# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI="3" # 0.7.x is untested with Python 3.x PYTHON_DEPEND="2" inherit eutils multilib python nsplugins bash-completion-r1 MY_PN="PackageKit" MY_P=${MY_PN}-${PV} DESCRIPTION="Manage packages in a secure way using a cross-distro and cross-architecture API" HOMEPAGE="http://www.packagekit.org/" SRC_URI="http://www.packagekit.org/releases/${MY_P}.tar.xz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~x86" IUSE="connman cron doc +introspection networkmanager nsplugin pm-utils +policykit entropy static-libs test udev" CDEPEND="connman? ( net-misc/connman ) introspection? ( >=dev-libs/gobject-introspection-0.9.9 ) networkmanager? ( >=net-misc/networkmanager-0.6.4 ) nsplugin? ( >=dev-libs/nspr-4.8 x11-libs/cairo >=x11-libs/gtk+-2.14.0:2 x11-libs/pango ) policykit? ( >=sys-auth/polkit-0.98 ) udev? ( virtual/libgudev ) dev-db/sqlite:3 >=dev-libs/dbus-glib-0.74 >=dev-libs/glib-2.26.1:2 >=sys-apps/dbus-1.3.0" DEPEND="${CDEPEND} doc? ( dev-util/gtk-doc ) nsplugin? ( =dev-util/intltool-0.35.0 virtual/pkgconfig sys-devel/gettext" RDEPEND="${CDEPEND} entropy? ( >=sys-apps/entropy-1.0_rc27 ) pm-utils? ( sys-power/pm-utils ) >=app-portage/layman-1.2.3 >=sys-apps/portage-2.1.9 sys-auth/consolekit" APP_LINGUAS="as bg bn ca cs da de el en_GB es fi fr gu he hi hu it ja kn ko ml mr ms nb nl or pa pl pt pt_BR ro ru sk sr sr@latin sv ta te th tr uk zh_CN zh_TW" for X in ${APP_LINGUAS}; do IUSE=" ${IUSE} linguas_${X}" done S="${WORKDIR}/${MY_P}" RESTRICT="test" # tests are failing atm # NOTES: # do not use a specific user, useless and not more secure according to upstream # doc is in the tarball and always installed # mono doesn't install anything (RDEPEND dev-dotnet/gtk-sharp-gapi:2 # (R)DEPEND dev-dotnet/glib-sharp:2 dev-lang/mono), upstream bug 23247 # >=npapi-sdk-0.27.1 has slightly changed API, once it is unmasked in tree # drop the npapi-api-change patch below and relax the dependency constraints # UPSTREAM: # documentation/website with --enable-doc-install # failing tests src_prepare() { epatch "${FILESDIR}"/${PN}-0.7.x-npapi-sdk.patch #383141 epatch "${FILESDIR}"/${PN}-0.7.x-npapi-api-change.patch #416711 # http://pkgs.fedoraproject.org/gitweb/?p=PackageKit.git;a=commit;h=0b378668288db34890b82c7be007fc76c7fcd956 sed -i -e '/polkit-backend-1/d' configure || die #423431 } src_configure() { local myconf="" if use policykit; then myconf+=" --with-security-framework=polkit" else myconf+=" --with-security-framework=dummy" fi if [[ -z "${LINGUAS}" ]]; then myconf+=" --disable-nls" else myconf+=" --enable-nls" fi # localstatedir: for gentoo it's /var/lib but for $PN it's /var # dep-tracking,option-check,libtool-lock,strict,local: obvious reasons # command,debuginfo,gstreamer,service-packs: not supported by backend # NOTE: default backend is autodetected at runtime, also if use entropy; then myconf+=" --with-default-backend=entropy" else myconf+=" --with-default-backend=portage" fi econf \ ${myconf} \ --enable-introspection=$(use introspection && echo -n "yes" || echo -n "no") \ --localstatedir=/var \ --disable-dependency-tracking \ --enable-option-checking \ --enable-libtool-lock \ --disable-strict \ --disable-local \ $(use_enable doc gtk-doc) \ --enable-command-not-found \ --disable-debuginfo-install \ --disable-gstreamer-plugin \ --disable-service-packs \ --enable-man-pages \ --enable-portage \ $(use_enable entropy) \ $(use_enable cron) \ --disable-gtk-module \ $(use_enable introspection) \ $(use_enable networkmanager) \ $(use_enable nsplugin browser-plugin) \ $(use_enable connman) \ $(use_enable pm-utils) \ --disable-qt \ $(use_enable static-libs static) \ $(use_enable test tests) \ $(use_enable udev device-rebind) } src_install() { emake DESTDIR="${D}" install || die "emake install failed" dodoc AUTHORS MAINTAINERS NEWS README TODO || die "dodoc failed" dodoc ChangeLog || die "dodoc failed" if use nsplugin; then dodir "/usr/$(get_libdir)/${PLUGINS_DIR}" mv "${D}"/usr/$(get_libdir)/mozilla/plugins/* \ "${D}/usr/$(get_libdir)/${PLUGINS_DIR}/" fi if ! use static-libs; then find "${D}" -name *.la | xargs rm || die "removing .la files failed" fi # Remove precompiled python modules, we handle byte compiling rm -f "${D}/$(python_get_sitedir)"/${PN}*.py[co] newbashcomp "${S}/contrib/pk-completion.bash" ${PN} # Remove bashcomp file installed by build-system rm -f "${D}/bash_completion.d/pk-completion.bash" # Remove unwanted PackageKit website stuff rm -rf "${D}/usr/share/PackageKit/website" } pkg_postinst() { python_mod_optimize ${PN/-base} if ! use policykit; then ewarn "You are not using policykit, the daemon can't be considered as secure." ewarn "All users will be able to do anything through ${MY_PN}." ewarn "Please, consider rebuilding ${MY_PN} with policykit USE flag." ewarn "THIS IS A SECURITY ISSUE." echo fi } pkg_prerm() { einfo "Removing downloaded files with ${MY_PN}..." [[ -d "${ROOT}"/var/cache/${MY_PN}/downloads/ ]] && \ rm -rf /var/cache/PackageKit/downloads/* } pkg_postrm() { python_mod_cleanup ${PN/-base} }