首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RPM构建正确设置在openSUSE上提供,而不是Fedora

RPM构建正确设置在openSUSE上提供,而不是Fedora
EN

Stack Overflow用户
提问于 2016-07-07 19:43:02
回答 1查看 127关注 0票数 3

我有一个MakeMKV的RPM规格文件,它被上传到OBS,为Fedora和openSUSE构建包。两个发行版之间的specfile是相同的,但是只有openSUSE正确地将构建的库添加到构建包提供的部分,从而导致Fedora上的包安装失败。

我试图将所有的文件放在一个包中,但这仍然不允许在Fedora上安装。如果库都放在同一个包中或单独打包,openSUSE就会检测它们。

这是我的详细资料:

代码语言:javascript
运行
复制
Name: makemkv
Version: 1.9.10
Release: 0
Summary: DVD and Blu-ray to MKV converter and network streamer
License: SUSE-NonFree
Group: Productivity/Multimedia/Other
Url: http://www.makemkv.com
Source0: %name-oss-%version.tar.gz
Source1: %name-bin-%version.tar.gz
BuildRequires: pkgconfig(zlib) pkgconfig(openssl) pkgconfig(expat) pkgconfig(libavcodec) pkgconfig(libavutil)
%if 0%{?centos} || 0%{?fedora} || 0%{?rhel} || 0%{?scientificlinux}
BuildRequires: pkgconfig
%endif
%if 0%{?centos} || 0%{?rhel} || 0%{?scientificlinux}
BuildRequires: libqt4-devel
%endif
%if 0%{?fedora}
BuildRequires: qt5-qtbase-devel
%endif
%if 0%{?suse_version}
BuildRequires: pkg-config libqt5-qtbase-devel update-desktop-files
%endif

%description
MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere. MakeMKV is a format converter, otherwise called "transcoder". It converts the video clips from proprietary (and usually encrypted) disc into a set of MKV files, preserving most information but not changing it in any way. The MKV format can store multiple video/audio tracks with all meta-information and preserve chapters. There are many players that can play MKV files nearly on all platforms, and there are tools to convert MKV files to many formats, including DVD and Blu-ray discs.

Additionally MakeMKV can instantly stream decrypted video without intermediate conversion to wide range of players, so you may watch Blu-ray and DVD discs with your favorite player on your favorite OS or on your favorite device.

%package -n libdriveio0
Summary: DVD and Blu-ray to MKV converter and network streamer

%description -n libdriveio0
MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere. MakeMKV is a format converter, otherwise called "transcoder". It converts the video clips from proprietary (and usually encrypted) disc into a set of MKV files, preserving most information but not changing it in any way. The MKV format can store multiple video/audio tracks with all meta-information and preserve chapters. There are many players that can play MKV files nearly on all platforms, and there are tools to convert MKV files to many formats, including DVD and Blu-ray discs.

Additionally MakeMKV can instantly stream decrypted video without intermediate conversion to wide range of players, so you may watch Blu-ray and DVD discs with your favorite player on your favorite OS or on your favorite device.

%package -n libmakemkv1
Summary: DVD and Blu-ray to MKV converter and network streamer

%description -n libmakemkv1
MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere. MakeMKV is a format converter, otherwise called "transcoder". It converts the video clips from proprietary (and usually encrypted) disc into a set of MKV files, preserving most information but not changing it in any way. The MKV format can store multiple video/audio tracks with all meta-information and preserve chapters. There are many players that can play MKV files nearly on all platforms, and there are tools to convert MKV files to many formats, including DVD and Blu-ray discs.

Additionally MakeMKV can instantly stream decrypted video without intermediate conversion to wide range of players, so you may watch Blu-ray and DVD discs with your favorite player on your favorite OS or on your favorite device.

%package -n libmmbd0
Summary: DVD and Blu-ray to MKV converter and network streamer

%description -n libmmbd0
MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere. MakeMKV is a format converter, otherwise called "transcoder". It converts the video clips from proprietary (and usually encrypted) disc into a set of MKV files, preserving most information but not changing it in any way. The MKV format can store multiple video/audio tracks with all meta-information and preserve chapters. There are many players that can play MKV files nearly on all platforms, and there are tools to convert MKV files to many formats, including DVD and Blu-ray discs.

Additionally MakeMKV can instantly stream decrypted video without intermediate conversion to wide range of players, so you may watch Blu-ray and DVD discs with your favorite player on your favorite OS or on your favorite device.

%prep
tar xf %{SOURCE0}
tar xf %{SOURCE1}

%build
cd %{name}-oss-%{version}
%configure
make %{?_smp_mflags}

%install
cd %{name}-oss-%{version}
make install DESTDIR=%buildroot
%if 0%{?suse_version}
%suse_update_desktop_file -r makemkv
%suse_update_desktop_file -c makemkv MakeMKV "DVD and Blu-ray to MKV converter and network streamer" makemkv makemkv AudioVideo AudioVideoEditing
%endif

cd ../%{name}-bin-%{version}
mkdir tmp
echo accepted > tmp/eula_accepted
make install DESTDIR=%buildroot

%if "/usr/lib" != "%_libdir"
mv %buildroot/usr/lib/ %buildroot/%_libdir
%endif

%post -n libdriveio0 -p /sbin/ldconfig
%postun -n libdriveio0 -p /sbin/ldconfig
%post -n libmakemkv1 -p /sbin/ldconfig
%postun -n libmakemkv1 -p /sbin/ldconfig
%post -n libmmbd0 -p /sbin/ldconfig
%postun -n libmmbd0 -p /sbin/ldconfig

%files
%defattr(-,root,root)
#oss
%dir /usr/share/icons/hicolor
%dir /usr/share/icons/hicolor/*
%dir /usr/share/icons/hicolor/*/apps
/%_bindir/makemkv
/usr/share/applications/makemkv.desktop
/usr/share/icons/hicolor/*/apps/makemkv.png
#bin
/%_bindir/makemkvcon
/%_bindir/mmdtsdec
/usr/share/MakeMKV/

%files -n libdriveio0
%defattr(-,root,root)
/%_libdir/libdriveio.so.0

%files -n libmakemkv1
%defattr(-,root,root)
/%_libdir/libmakemkv.so.1

%files -n libmmbd0
%defattr(-,root,root)
/%_libdir/libmmbd.so.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-11 09:47:23

对库的权限没有正确设置。正在运行

代码语言:javascript
运行
复制
chmod 755 %buildroot/%_libdir/lib*.so*

修正了这个问题,然后Fedora正确地设置了Provides字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38254018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档