diff --git a/PackageKit-sysconfig-cron.patch b/PackageKit-sysconfig-cron.patch new file mode 100644 index 0000000..e2477da --- /dev/null +++ b/PackageKit-sysconfig-cron.patch @@ -0,0 +1,45 @@ +Index: PackageKit-0.6.3/contrib/cron/packagekit-background +=================================================================== +--- PackageKit-0.6.3.orig/contrib/cron/packagekit-background ++++ PackageKit-0.6.3/contrib/cron/packagekit-background +@@ -1,14 +1,32 @@ +-# should we attempt to do this? (valid: yes|no) ++## Path: System/Cron/PackageKit ++## Description: Cron job to update the system daily with PackageKit ++ ++## Type: yesno ++## Default: no ++# ++# Run the cron job. ++# + ENABLED=no + +-# don't install, just check (valid: yes|no) ++## Type: yesno ++## Default: no ++# ++# Check if updates are available, instead of installing. ++# + CHECK_ONLY=no + +-# if MAILTO is set, the mail command is used to deliver PackageKit output +-# by default MAILTO is unset, so crond mails the output by itself +-#MAILTO=root ++## Type: string ++## Default: "" ++# ++# If MAILTO is set, the mail command is used to deliver PackageKit output. ++# By default MAILTO is unset, so crond mails the output by itself. ++# ++MAILTO="" + +-# you may set SYSTEMNAME if you want your PackageKit emails tagged differently +-# default is output of hostname command +-#SYSTEM_NAME="" ++## Type: string ++## Default: "" ++# ++# You may set SYSTEM_NAME if you want your PackageKit emails tagged differently. ++# Default is output of hostname command. ++SYSTEM_NAME="" + diff --git a/PackageKit.changes b/PackageKit.changes index b47b6bc..087dcca 100644 --- a/PackageKit.changes +++ b/PackageKit.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Sat Apr 10 01:40:59 CEST 2010 - vuntz@opensuse.org + +- Use %py_requires instead of an explicit python PreReq. +- Create browser-plugin, gstreamer-plugin and gtk-module + subpackages. +- Use update-alternatives to setup the gstreamer helper, so we + don't have to pass a special argument when building + gstreamer-0_10-plugins-base. +- Do not build the PackageKit-based command-not-found since it + doesn't work with our zypp backend. We make it easy to have it + back with a build-time option. +- Build the cron script, that makes it possible to update the + system daily with PackageKit: + + remove --disable-cron from configure + + add PackageKit-sysconfig-cron.patch to make the configuration a + real sysconfig-like configuration + + add %fillup_prereq PreReq + + add a %post section to fill the sysconfig configuration based + on the template + ------------------------------------------------------------------- Wed Mar 31 01:45:31 CEST 2010 - vuntz@opensuse.org diff --git a/PackageKit.spec b/PackageKit.spec index e35407c..2d2e6f8 100644 --- a/PackageKit.spec +++ b/PackageKit.spec @@ -15,6 +15,10 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +# We disable the command-not-found handler because the zypp backend cannot find +# files from non-installed packages. Enable the build once this works: +# $ pkcon search file /usr/bin/anjuta +%define BUILD_CNF 0 %if 0%{suse_version} > 1120 %define xulrunner_version 192 @@ -55,6 +59,8 @@ Group: System/Daemons Summary: Simple software installation management software Url: http://packagekit.org/ Source: %{name}-%{version}.tar.bz2 +# PATCH-FEATURE-OPENSUSE PackageKit-sysconfig-cron.patch vuntz@opensuse.org -- Change the configuration of the cron script to a sysconfig-like config +Patch0: PackageKit-sysconfig-cron.patch # PATCH-FIX-UPSTREAM PackageKit-libzypp6.patch fdo#20366 Patch2: PackageKit-libzypp6.patch # PATCH-FIX-UPSTREAM PackageKit-BNC559802-zypp-count-patch-size.patch glin@novell.com -- calculate the download size of the patch @@ -62,7 +68,8 @@ Patch6: PackageKit-BNC559802-zypp-count-patch-size.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: %{name}-branding Requires: %{name}-lang = %{version} -PreReq: python-base = %{py_ver} +PreReq: %fillup_prereq +%py_requires %if %suse_version <= 1110 %define python_sitelib %{py_sitedir} %endif @@ -74,6 +81,51 @@ all the software graphical tools used in different distributions, and use some of the latest technology like PolicyKit to make the process suck less. +%package browser-plugin +License: GPLv2+ +Summary: Simple software installation management software +Group: System/Daemons +Recommends: %{name} = %{version} +Supplements: packageand(%{name}:MozillaFirefox) +Supplements: packageand(%{name}:epiphany) + +%description browser-plugin +PackageKit is a system designed to make installing and updating +software on your computer easier. The primary design goal is to unify +all the software graphical tools used in different distributions, and +use some of the latest technology like PolicyKit to make the process +suck less. + +%package gstreamer-plugin +License: GPLv2+ +Summary: Simple software installation management software +Group: System/Daemons +Requires(post): update-alternatives +Requires(postun): update-alternatives +Recommends: %{name} = %{version} +Supplements: packageand(%{name}:gstreamer-0_10-plugins-base) + +%description gstreamer-plugin +PackageKit is a system designed to make installing and updating +software on your computer easier. The primary design goal is to unify +all the software graphical tools used in different distributions, and +use some of the latest technology like PolicyKit to make the process +suck less. + +%package gtk-module +License: GPLv2+ +Summary: Simple software installation management software +Group: System/Daemons +Recommends: %{name} = %{version} +Supplements: packageand(%{name}:gtk2) + +%description gtk-module +PackageKit is a system designed to make installing and updating +software on your computer easier. The primary design goal is to unify +all the software graphical tools used in different distributions, and +use some of the latest technology like PolicyKit to make the process +suck less. + %package -n ruck License: GPLv2+ Summary: PackageKit interface similar to rug @@ -189,6 +241,7 @@ This package provides upstream Look and Feel for PackageKit. %lang_package %prep %setup -q +%patch0 -p1 %patch2 %patch6 -p1 @@ -199,7 +252,10 @@ This package provides upstream Look and Feel for PackageKit. --with-default-backend=zypp \ --with-security-framework=polkit \ --with-mozilla-plugin-dir=%{_libdir}/browser-plugins \ - --disable-cron +%if ! %BUILD_CNF + --disable-command-not-found \ +%endif + %{nil} %__make %{?jobs: -j%jobs} %install @@ -208,15 +264,32 @@ mv %{buildroot}%{_sysconfdir}/bash_completion.d/pk-completion.{ba,}sh find %{buildroot} -type f -name "*.la" -exec %{__rm} -fv {} + # the pm-utils package in openSUSE uses libexecdir and not libdir %if "%{_libdir}" != "%{_libexecdir}" -test ! -e %{buildroot}%{_libexecdir}/pm-utils -mv %{buildroot}%{_libdir}/pm-utils %{buildroot}%{_libexecdir}/pm-utils + test ! -e %{buildroot}%{_libexecdir}/pm-utils + mv %{buildroot}%{_libdir}/pm-utils %{buildroot}%{_libexecdir}/pm-utils %endif +# move the cron configuration to a sysconfig template +test -x %{buildroot}%{_sysconfdir}/sysconfig/packagekit-background +chmod a-x %{buildroot}%{_sysconfdir}/sysconfig/packagekit-background +install -d %{buildroot}%{_localstatedir}/adm/fillup-templates +mv %{buildroot}%{_sysconfdir}/sysconfig/packagekit-background %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.packagekit-background %find_lang %{name} %fdupes $RPM_BUILD_ROOT %clean rm -rf "$RPM_BUILD_ROOT" +%post +%{fillup_only -n packagekit-background} + +%post gstreamer-plugin +update-alternatives --install %{_libexecdir}/gst-install-plugins-helper gst-install-plugins-helper %{_libexecdir}/pk-gstreamer-install 10 + +%postun gstreamer-plugin +# Note: we don't use "$1 -eq 0", to avoid issues if the package gets renamed +if [ ! -f %{_libexecdir}/pk-gstreamer-install ]; then + update-alternatives --remove gst-install-plugins-helper %{_libexecdir}/pk-gstreamer-install +fi + %post -n libpackagekit-glib2-14 -p /sbin/ldconfig %post -n libpackagekit-qt14 -p /sbin/ldconfig @@ -238,10 +311,14 @@ rm -rf "$RPM_BUILD_ROOT" %dir %{python_sitelib}/packagekit %dir %{_libexecdir}/pm-utils %dir %{_libexecdir}/pm-utils/sleep.d -%dir /var/lib/PackageKit +%dir %{_localstatedir}/lib/PackageKit %{_sysconfdir}/bash_completion.d/pk-completion.sh +%{_sysconfdir}/cron.daily/packagekit-background.cron %{_sysconfdir}/dbus-1/system.d/org.freedesktop.PackageKit.conf +%if %BUILD_CNF %{_sysconfdir}/profile.d/PackageKit.sh +%endif +%{_localstatedir}/adm/fillup-templates/sysconfig.packagekit-background %{_bindir}/packagekit-bugreport.sh %{_bindir}/pk-debuginfo-install %{_bindir}/pkcon @@ -249,10 +326,9 @@ rm -rf "$RPM_BUILD_ROOT" %{_bindir}/pkgenpack %{_libdir}/packagekit-backend/*.so %{_libexecdir}/pm-utils/sleep.d/95packagekit +%if %BUILD_CNF %{_libexecdir}/pk-command-not-found -%{_libexecdir}/pk-gstreamer-install -%{_libdir}/gtk-2.0/modules/* -%{_libdir}/browser-plugins/packagekit-plugin.so +%endif %{_libdir}/polkit-1/extensions/libpackagekit-action-lookup.so %{python_sitelib}/packagekit/* %{_sbindir}/packagekitd @@ -263,7 +339,19 @@ rm -rf "$RPM_BUILD_ROOT" %{_datadir}/polkit-1/actions/org.freedesktop.packagekit.policy %{_datadir}/dbus-1/system-services/* %doc %{_mandir}/man?/*.* -%verify(not md5 size mtime) /var/lib/PackageKit/transactions.db +%verify(not md5 size mtime) %{_localstatedir}/lib/PackageKit/transactions.db + +%files browser-plugin +%defattr(-,root,root) +%{_libdir}/browser-plugins/packagekit-plugin.so + +%files gstreamer-plugin +%defattr(-,root,root) +%{_libexecdir}/pk-gstreamer-install + +%files gtk-module +%defattr(-,root,root) +%{_libdir}/gtk-2.0/modules/* %files doc %defattr(-,root,root) @@ -312,7 +400,9 @@ rm -rf "$RPM_BUILD_ROOT" %files branding-upstream %defattr(-,root,root) +%if %BUILD_CNF %config(noreplace) %{_sysconfdir}/PackageKit/CommandNotFound.conf +%endif %config(noreplace) %{_sysconfdir}/PackageKit/PackageKit.conf # This file should not be touched by users/admins, so we can replace it %{_sysconfdir}/PackageKit/Vendor.conf