From 04e180450d44c36b4246e8106609315bf2de3a7a Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Tue, 24 Feb 2015 20:26:02 +0100 Subject: [PATCH] - updated to 1.0.5 - added format patch (fixes build of some plugins with -Werror=format-security) - added bconds to enable some foreign backends (disabled by default) --- PackageKit-format.patch | 111 ++++++++++++++++++ PackageKit.spec | 248 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 345 insertions(+), 14 deletions(-) create mode 100644 PackageKit-format.patch diff --git a/PackageKit-format.patch b/PackageKit-format.patch new file mode 100644 index 0000000..a52caa5 --- /dev/null +++ b/PackageKit-format.patch @@ -0,0 +1,111 @@ +--- PackageKit-1.0.5/backends/zypp/pk-backend-zypp.cpp.orig 2014-12-15 16:21:39.000000000 +0100 ++++ PackageKit-1.0.5/backends/zypp/pk-backend-zypp.cpp 2015-02-21 11:57:31.071358228 +0100 +@@ -273,7 +273,7 @@ + } + + virtual Action problem (zypp::Resolvable::constPtr resolvable, Error error, const std::string &description, RpmLevel level) { +- pk_backend_job_error_code (_job, PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL, description.c_str ()); ++ pk_backend_job_error_code (_job, PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL, "%s", description.c_str ()); + return ABORT; + } + +@@ -308,7 +308,7 @@ + } + + virtual Action problem (zypp::Resolvable::constPtr resolvable, Error error, const std::string &description) { +- pk_backend_job_error_code (_job, PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE, description.c_str ()); ++ pk_backend_job_error_code (_job, PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE, "%s", description.c_str ()); + return ABORT; + } + +@@ -407,7 +407,7 @@ + { + virtual Action requestMedia (zypp::Url &url, unsigned mediaNr, const std::string &label, zypp::media::MediaChangeReport::Error error, const std::string &description, const std::vector & devices, unsigned int &dev_current) + { +- pk_backend_job_error_code (_job, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, description.c_str ()); ++ pk_backend_job_error_code (_job, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, "%s", description.c_str ()); + // We've to abort here, because there is currently no feasible way to inform the user to insert/change media + return ABORT; + } +@@ -597,10 +597,10 @@ + initialized = TRUE; + } + } catch (const ZYppFactoryException &ex) { +- pk_backend_job_error_code (priv->currentJob, PK_ERROR_ENUM_FAILED_INITIALIZATION, ex.asUserString().c_str() ); ++ pk_backend_job_error_code (priv->currentJob, PK_ERROR_ENUM_FAILED_INITIALIZATION, "%s", ex.asUserString().c_str() ); + return NULL; + } catch (const Exception &ex) { +- pk_backend_job_error_code (priv->currentJob, PK_ERROR_ENUM_INTERNAL_ERROR, ex.asUserString().c_str() ); ++ pk_backend_job_error_code (priv->currentJob, PK_ERROR_ENUM_INTERNAL_ERROR, "%s", ex.asUserString().c_str() ); + return NULL; + } + +@@ -966,7 +966,7 @@ + RepoManager manager; + info = manager.getRepositoryInfo (alias); + } catch (const repo::RepoNotFoundException &ex) { +- pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, ex.asUserString().c_str() ); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, "%s", ex.asUserString().c_str() ); + return RepoInfo (); + } + +@@ -1411,7 +1411,7 @@ + it->statusReset (); + } + +- pk_backend_job_error_code (job, PK_ERROR_ENUM_DEP_RESOLUTION_FAILED, emsg); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_DEP_RESOLUTION_FAILED, "%s", emsg); + g_free (emsg); + + goto exit; +@@ -1538,11 +1538,11 @@ + pk_backend_job_set_percentage(job, 100); + ret = TRUE; + } catch (const repo::RepoNotFoundException &ex) { +- pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, ex.asUserString().c_str() ); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, "%s", ex.asUserString().c_str() ); + } catch (const target::rpm::RpmException &ex) { +- pk_backend_job_error_code (job, PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED, ex.asUserString().c_str () ); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED, "%s", ex.asUserString().c_str () ); + } catch (const Exception &ex) { +- pk_backend_job_error_code (job, PK_ERROR_ENUM_INTERNAL_ERROR, ex.asUserString().c_str() ); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_INTERNAL_ERROR, "%s", ex.asUserString().c_str() ); + } + + exit: +@@ -1601,7 +1601,7 @@ + catch ( const Exception &e) + { + // FIXME: make sure this dumps out the right sring. +- pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, e.asUserString().c_str() ); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, "%s", e.asUserString().c_str() ); + return FALSE; + } + +@@ -1651,7 +1651,7 @@ + pk_backend_job_set_percentage (job, i >= num_of_repos ? 100 : (100 * i) / num_of_repos); + } + if (repo_messages != NULL) +- g_printf(repo_messages); ++ g_printf("%s", repo_messages); + + pk_backend_job_set_percentage (job, 100); + g_free (repo_messages); +@@ -2373,7 +2373,7 @@ + try { + manager.removeRepository (tmpRepo); + } catch (const repo::RepoNotFoundException &ex) { +- pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, ex.asUserString().c_str() ); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_REPO_NOT_FOUND, "%s", ex.asUserString().c_str() ); + } + } + +@@ -3308,7 +3308,7 @@ + } catch (const repo::RepoException &ex) { + pk_backend_job_error_code (job, PK_ERROR_ENUM_INTERNAL_ERROR, "Can't access the given URL"); + } catch (const Exception &ex) { +- pk_backend_job_error_code (job, PK_ERROR_ENUM_INTERNAL_ERROR, ex.asString ().c_str ()); ++ pk_backend_job_error_code (job, PK_ERROR_ENUM_INTERNAL_ERROR, "%s", ex.asString ().c_str ()); + } + } + diff --git a/PackageKit.spec b/PackageKit.spec index abf2ec4..171c25e 100644 --- a/PackageKit.spec +++ b/PackageKit.spec @@ -6,30 +6,44 @@ %bcond_without doc # build without docs %bcond_without introspection # gobject introspection, time to time broken %bcond_with alpm # ALPM (Arch Linux package manager) backend -%bcond_with hif # HIF backend -%bcond_without poldek # Poldek backend -%bcond_with python # Python binding (only for a few backends) +%bcond_with apt # APT (Debian/Ubuntu) backend using C++ API +%bcond_with entropy # Entropy (Sabayon) backend (Python) +%bcond_with hif # HIF (Fedora/RHEL) backend +%bcond_with katja # Katja (Slackware) backend +%bcond_with pisi # PiSi (Pardus) backend (Python) +%bcond_without poldek # Poldek (PLD) backend +%bcond_with portage # portage (Gentoo) backend (Python) +%bcond_with ports # ports (FreeBSD) backend (Ruby) +%bcond_with urpmi # urpmi (Mandriva/Mageia) backend (Perl) +%bcond_with zypp # ZYPP (openSUSE/SLE) backend +%bcond_without python # Python binding (only for a few backends) %bcond_with browser # browser plugin (patrys says: it's flawed by concept) - +# python binding is built when building any python binding +%if %{without entropy} && %{without pisi} && %{without ports} +%undefine with_python +%endif Summary: System daemon that is a D-Bus abstraction layer for package management Summary(pl.UTF-8): Demon systemowy będący warstwą abstrakcji D-Bus do zarządzania pakietami Name: PackageKit -Version: 1.0.4 +Version: 1.0.5 Release: 1 License: GPL v2+ Group: Applications/System Source0: http://www.freedesktop.org/software/PackageKit/releases/%{name}-%{version}.tar.xz -# Source0-md5: 4a07aa7e4c76052b2edf0765c26d2e35 +# Source0-md5: 1b7b4f820d522cf5fb1d4449afd89a27 Patch0: %{name}-poldek.patch Patch1: %{name}-bashcomp.patch +Patch2: %{name}-format.patch URL: http://www.packagekit.org/ BuildRequires: NetworkManager-devel >= 0.6.5 # pkgconfig(libalpm) >= 8.2.0 %{?with_alpm:BuildRequires: alpm-devel >= 4} %{?with_hif:BuildRequires: appstream-glib-devel} +%{?with_apt:BuildRequires: apt-devel >= 0.7} BuildRequires: autoconf >= 2.65 BuildRequires: automake >= 1:1.11 BuildRequires: connman-devel +%{?with_katja:BuildRequires: curl-devel} BuildRequires: dbus-devel >= 1.2.0 BuildRequires: dbus-glib-devel >= 0.76 BuildRequires: docbook-dtd412-xml @@ -48,6 +62,7 @@ BuildRequires: libarchive-devel %{?with_hif:BuildRequires: libhif-devel >= 0.1.7} BuildRequires: libtool BuildRequires: libxslt-progs +%{?with_zypp:BuildRequires: libzypp-devel >= 6.16.0} BuildRequires: pango-devel BuildRequires: pkgconfig %{?with_poldek:BuildRequires: poldek-devel >= 0.30-1.rc6.4} @@ -64,6 +79,7 @@ BuildRequires: xz %if %{with browser} BuildRequires: cairo-devel BuildRequires: nspr-devel >= 4.8 +BuildRequires: pango-devel BuildRequires: xulrunner-devel >= 8.0 %endif Requires(post,postun): shared-mime-info @@ -148,8 +164,6 @@ Summary(pl.UTF-8): Backend PackageKit oparty na bibliotece ALPM Group: Libraries Requires: %{name} = %{version}-%{release} Provides: %{name}-backend = %{version}-%{release} -Obsoletes: PackageKit-backend-hawkey -Conflicts: PackageKit < 0.6.8-3 %description backend-alpm A backend for PackageKit to enable Arch Linux packages via ALPM @@ -159,6 +173,37 @@ library. Backend PackageKit dodający obsługę pakietów Arch Linuksa poprzez bibliotekę ALPM. +%package backend-aptcc +Summary: PackageKit APTcc backend +Summary(pl.UTF-8): Backend PackageKit APTcc +Group: Libraries +Requires: %{name} = %{version}-%{release} +Provides: %{name}-backend = %{version}-%{release} + +%description backend-aptcc +A backend for PackageKit to enable APT support via C++ API. + +%description backend-aptcc -l pl.UTF-8 +Backend PackageKit dodający obsługę zarządcy pakietów APT poprzez API +C++. + +%package backend-entropy +Summary: PackageKit Entropy backend +Summary(pl.UTF-8): Backend PackageKit Entropy +Group: Libraries +Requires: %{name} = %{version}-%{release} +Requires: python-packagekit = %{version}-%{release} +#Requires: python-entropy +Provides: %{name}-backend = %{version}-%{release} + +%description backend-entropy +A backend for PackageKit to enable Sabayon packages support through +Entropy package manager. + +%description backend-entropy -l pl.UTF-8 +Backend PackageKit dodający obsługę pakietów dystrybucji Sabayon przy +użyciu zarządcy pakietów Entropy. + %package backend-hif Summary: PackageKit hif backend Summary(pl.UTF-8): Backend PackageKit oparty na bibliotece hif @@ -167,13 +212,46 @@ Requires: %{name} = %{version}-%{release} Requires: libhif >= 0.1.7 Provides: %{name}-backend = %{version}-%{release} Obsoletes: PackageKit-backend-hawkey -Conflicts: PackageKit < 0.6.8-3 %description backend-hif -A backend for PackageKit to enable hif functionality. +A backend for PackageKit to enable RPM packages support via hif +library (used in Fedora). %description backend-hif -l pl.UTF-8 -Backend PackageKit dodający obsługę biblioteki hif. +Backend PackageKit dodający obsługę pakietów RPM poprzez bibliotekę +hif (używaną w dystrybucji Fedora). + +%package backend-katja +Summary: PackageKit Katja backend +Summary(pl.UTF-8): Backend PackageKit Katja +Group: Libraries +Requires: %{name} = %{version}-%{release} +Provides: %{name}-backend = %{version}-%{release} + +%description backend-katja +Katja backend for PackageKit to enable Slackware repositories +support. + +%description backend-katja -l pl.UTF-8 +Backend PackageKit Katja dodający obsługę repozytoriów Slackware. + +%package backend-pisi +Summary: PackageKit PiSi backend +Summary(pl.UTF-8): Backend PackageKit PiSi +Group: Libraries +Requires: %{name} = %{version}-%{release} +Requires: python-packagekit = %{version}-%{release} +#Requires: python-piksemel +#Requires: python-pisi +Provides: %{name}-backend = %{version}-%{release} + +%description backend-pisi +A backend for PackageKit to enable PiSi packages support. PiSi +packages are originated in Pardus distribution. + +%description backend-pisi -l pl.UTF-8 +Backend PackageKit dodający obsługę pakietów PiSi. Pakiety PiSi +wywodzą się z dystrybucji Pardus. %package backend-poldek Summary: PackageKit Poldek backend @@ -182,13 +260,76 @@ Group: Libraries Requires: %{name} = %{version}-%{release} Requires: poldek >= 0.30-1.rc6.4 Provides: %{name}-backend = %{version}-%{release} -Conflicts: PackageKit < 0.6.8-3 %description backend-poldek -A backend for PackageKit to enable Poldek functionality. +A backend for PackageKit to enable RPM packages support through Poldek +- native PLD package manager. %description backend-poldek -l pl.UTF-8 -Backend PackageKit dodający obsługę Poldka. +Backend PackageKit dodający obsługę pakietów RPM poprzez Poldka - +natywnego zarządcę pakietów dystrybucji PLD. + +%package backend-portage +Summary: PackageKit Portage backend +Summary(pl.UTF-8): Backend PackageKit Portage +Group: Libraries +Requires: %{name} = %{version}-%{release} +Requires: python-packagekit = %{version}-%{release} +#Requires: python-portage +Provides: %{name}-backend = %{version}-%{release} + +%description backend-portage +A backend for PackageKit to enable Gentoo Portage support. + +%description backend-portage -l pl.UTF-8 +Backend PackageKit dodający obsługę systemu Portage dystrybucji +Gentoo. + +%package backend-ports +Summary: PackageKit Ports backend +Summary(pl.UTF-8): Backend PackageKit Ports +Group: Libraries +Requires: %{name} = %{version}-%{release} +#Requires: ruby-pkgtools +Provides: %{name}-backend = %{version}-%{release} + +%description backend-ports +A backend for PackageKit to enable FreeBSD Ports support. + +%description backend-ports -l pl.UTF-8 +Backend PackageKit dodający obsługę portów systemu FreeBSD. + +%package backend-urpmi +Summary: PackageKit URPMI backend +Summary(pl.UTF-8): Backend PackageKit URPMI +Group: Libraries +Requires: %{name} = %{version}-%{release} +#Requires: perl-URPM +Provides: %{name}-backend = %{version}-%{release} + +%description backend-urpmi +A backend for PackageKit to enable RPM packages support through URPMI +package manager (originated in Mandriva). + +%description backend-urpmi -l pl.UTF-8 +Backend PackageKit dodający obsługę pakietów RPM poprzez zarządcę +URPMI (pochodzącego z dystrybucji Mandriva). + +%package backend-zypp +Summary: PackageKit Zypp backend +Summary(pl.UTF-8): Backend PackageKit Zypp +Group: Libraries +Requires: %{name} = %{version}-%{release} +Requires: libzypp >= 6.16.0 +Provides: %{name}-backend = %{version}-%{release} + +%description backend-zypp +A backend for PackageKit to enable RPM packages support through Zypp +library (originated in openSUSE/SLE). + +%description backend-zypp -l pl.UTF-8 +Backend PackageKit dodający obsługę pakietów RPM poprzez bibliotekę +Zypp (pochodzącą z dystrybucji openSUSE/SLE). %package gstreamer-plugin Summary: GStreamer codecs installer @@ -279,6 +420,7 @@ Wtyczka PackageKit do przeglądarek WWW. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %if %{with doc} @@ -290,6 +432,7 @@ Wtyczka PackageKit do przeglądarek WWW. %{__autoconf} %{__autoheader} %{__automake} +%{?with_zypp:CPPFLAGS="%{rpmcppflags} -D_RPM_5 -I/usr/include/rpm"} %configure \ --disable-command-not-found \ --disable-dummy \ @@ -298,9 +441,17 @@ Wtyczka PackageKit do przeglądarek WWW. --disable-silent-rules \ --enable-bash-completion=%{bash_compdir} \ %{__enable_disable alpm} \ + %{__enable_disable apt aptcc} \ %{__enable_disable browser browser-plugin} \ + %{__enable_disable entropy} \ %{__enable_disable hif} \ + %{__enable_disable katja} \ + %{__enable_disable pisi} \ %{__enable_disable poldek} \ + %{__enable_disable portage} \ + %{__enable_disable ports} \ + %{__enable_disable urpmi} \ + %{__enable_disable zypp} \ --with-html-dir=%{_gtkdocdir} \ --with-mozilla-plugin-dir=%{_browserpluginsdir} \ --with-security-framework=polkit @@ -425,18 +576,87 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/alpm.d/repos.list %endif +%if %{with apt} +%files backend-aptcc +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_aptcc.so +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apt/apt.conf.d/20packagekit +%dir %{_datadir}/PackageKit/helpers/aptcc +%attr(755,root,root) %{_datadir}/PackageKit/helpers/aptcc/get-distro-upgrade.py +%attr(755,root,root) %{_datadir}/PackageKit/helpers/aptcc/pkconffile +%{_datadir}/PackageKit/helpers/aptcc/pkconffile.nodiff +%endif + +%if %{with entropy} +%files backend-entropy +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_entropy.so +%dir %{_datadir}/PackageKit/helpers/entropy +%attr(755,root,root) %{_datadir}/PackageKit/helpers/entropy/entropyBackend.py +%endif + %if %{with hif} %files backend-hif %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_hif.so %endif +%if %{with katja} +%files backend-katja +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_katja.so +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/Katja.conf +%dir /var/cache/PackageKit/metadata +%ghost /var/cache/PackageKit/metadata/metadata.db +%endif + +%if %{with pisi} +%files backend-pisi +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_pisi.so +%dir %{_datadir}/PackageKit/helpers/pisi +%attr(755,root,root) %{_datadir}/PackageKit/helpers/pisi/pisiBackend.py +%endif + %if %{with poldek} %files backend-poldek %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_poldek.so %endif +%if %{with portage} +%files backend-portage +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_portage.so +%dir %{_datadir}/PackageKit/helpers/portage +%attr(755,root,root) %{_datadir}/PackageKit/helpers/portage/portageBackend.py +%endif + +%if %{with ports} +%files backend-ports +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_ports.so +%dir %{_datadir}/PackageKit/helpers/ports +%attr(755,root,root) %{_datadir}/PackageKit/helpers/ports/portsBackend.rb +%{_datadir}/PackageKit/helpers/ports/ruby_packagekit +%endif + +%if %{with urpmi} +%files backend-urpmi +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_urpmi.so +%dir %{_datadir}/PackageKit/helpers/urpmi +%attr(755,root,root) %{_datadir}/PackageKit/helpers/urpmi/urpmi-dispatched-backend.pl +%{_datadir}/PackageKit/helpers/urpmi/perl_packagekit +%{_datadir}/PackageKit/helpers/urpmi/urpmi_backend +%endif + +%if %{with zypp} +%files backend-zypp +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_zypp.so +%endif + %files gstreamer-plugin %defattr(644,root,root,755) %doc contrib/gstreamer-plugin/README -- 2.44.0