# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit desktop systemd xdg-utils DESCRIPTION="Graphical package manager for Gentoo Linux (pre-compiled binary)" HOMEPAGE="https://codeberg.org/NoBodyZ/gpkg" SRC_URI="https://codeberg.org/NoBodyZ/gpkg/releases/download/v${PV}/${PN/-bin/}-${PV}-x86_64-v3.tar.xz" S="${WORKDIR}/${PN/-bin/}-${PV}" LICENSE="GPL-2" LICENSE+=" Apache-2.0 BSD ISC MIT MPL-2.0 Unicode-3.0" SLOT="0" KEYWORDS="-* ~amd64" IUSE="btrfs dracut appindicator grub2 kerneltools limine refind systemd systemd-boot" REQUIRED_USE=" kerneltools? ( || ( grub2 limine systemd-boot refind ) ) btrfs? ( kerneltools ) dracut? ( kerneltools ) limine? ( kerneltools ) grub2? ( kerneltools ) systemd-boot? ( kerneltools ) refind? ( kerneltools ) " RESTRICT="mirror strip" RDEPEND=" !app-portage/gpkg >=gui-libs/gtk-4.12:4 >=gui-libs/libadwaita-1.4:1 >=dev-libs/glib-2.76:2 sys-apps/dbus media-libs/graphene x11-libs/cairo x11-libs/pango x11-libs/gdk-pixbuf:2 media-libs/freetype:2 media-libs/fontconfig >=gui-libs/vte-0.74:2.91-gtk4 >=gui-libs/gtksourceview-5.10:5 sys-apps/portage app-portage/gentoolkit app-portage/eix app-portage/portage-utils app-admin/eselect sys-auth/polkit net-misc/rsync dev-vcs/git kerneltools? ( || ( sys-apps/systemd sys-apps/systemd-utils[kernel-install] ) ) dracut? ( sys-kernel/dracut ) grub2? ( sys-boot/grub:2 ) limine? ( sys-boot/limine ) systemd-boot? ( sys-apps/systemd[boot] ) refind? ( sys-boot/refind ) btrfs? ( app-backup/snapper ) appindicator? ( gnome-extra/gnome-shell-extension-appindicator ) " QA_PREBUILT=" usr/bin/gpkg usr/bin/gpkg-daemon " src_install() { # Binaries dobin usr/bin/gpkg dobin usr/bin/gpkg-daemon # D-Bus system bus configuration insinto /etc/dbus-1/system.d doins usr/share/dbus-1/system.d/org.gentoo.PkgMngt.conf # D-Bus service activation file insinto /usr/share/dbus-1/system-services doins usr/share/dbus-1/system-services/org.gentoo.PkgMngt.service # Polkit authorization policies insinto /usr/share/polkit-1/actions doins usr/share/polkit-1/actions/org.gentoo.pkgmngt.policy # Desktop file domenu usr/share/applications/org.gentoo.PkgMngt.desktop # Icons - install entire hicolor tree insinto /usr/share doins -r usr/share/icons # AppStream metainfo insinto /usr/share/metainfo doins usr/share/metainfo/org.gentoo.PkgMngt.metainfo.xml # CSS stylesheet insinto /usr/share/gpkg doins usr/share/gpkg/style.css # Locale insinto /usr/share/locale/fr/LC_MESSAGES doins usr/share/locale/fr/LC_MESSAGES/gpkg.mo # State directory (required by systemd ReadWritePaths) keepdir /var/lib/gpkg # Kernel tools (USE=kerneltools) if use kerneltools; then exeinto /usr/lib/kernel doexe usr/lib/kernel/compile-kernel.sh exeinto /usr/lib/kernel/install.d use limine && doexe usr/lib/kernel/install.d/95-limine-gentoo.install insinto /etc/kernel doins usr/etc/kernel/auto-compile.conf doins usr/etc/kernel/default-type keepdir /var/log/kernel-compile fi # Systemd service unit if use systemd; then systemd_dounit usr/lib/systemd/system/gpkg-daemon.service fi # OpenRC init script and config newinitd "${FILESDIR}"/gpkg-daemon.initd gpkg-daemon newconfd "${FILESDIR}"/gpkg-daemon.confd gpkg-daemon } pkg_postinst() { xdg_icon_cache_update xdg_desktop_database_update # Reload systemd to pick up updated service file if use systemd; then systemctl daemon-reload 2>/dev/null fi elog "" elog "To start the gpkg daemon:" elog "" if use systemd; then elog " systemctl enable --now gpkg-daemon" elog "" elog "If upgrading and the daemon was crash-looping:" elog " systemctl reset-failed gpkg-daemon" elog " systemctl restart gpkg-daemon" else elog " rc-update add gpkg-daemon default" elog " rc-service gpkg-daemon start" fi elog "" elog "Then launch the GUI: gpkg" elog "" elog "The console tab works without the daemon." elog "All other tabs require a running gpkg-daemon." elog "" } pkg_postrm() { xdg_icon_cache_update xdg_desktop_database_update }