# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit bash-completion-r1 golang-base golang-vcs-snapshot linux-info systemd DESCRIPTION="Service and tools for management of snap packages" HOMEPAGE="http://snapcraft.io/" SRC_URI="https://github.com/snapcore/${PN}/releases/download/${PV}/${PN}_${PV}.vendor.tar.xz -> ${P}.tar.xz" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64" IUSE="" MY_S="${S}/src/github.com/snapcore/${PN}" PKG_LINGUAS="am bs ca cs da de el en_GB es fi fr gl hr ia id it ja lt ms nb oc pt_BR pt ru sv tr ug zh_CN" CONFIG_CHECK=" CGROUPS \ CGROUP_DEVICE \ CGROUP_FREEZER \ NAMESPACES \ SQUASHFS \ SQUASHFS_ZLIB \ SQUASHFS_LZO \ SQUASHFS_XZ \ BLK_DEV_LOOP \ SECCOMP \ SECCOMP_FILTER" export GOPATH="${S}/${PN}" EGO_PN="github.com/snapcore/${PN}" RDEPEND="!sys-apps/snap-confine sys-libs/libseccomp[static-libs] sys-apps/apparmor dev-libs/glib sys-fs/squashfs-tools:*" DEPEND="${RDEPEND} >=dev-lang/go-1.9 dev-python/docutils sys-devel/gettext sys-fs/xfsprogs" src_configure() { debug-print-function $FUNCNAME "$@" cd "${MY_S}/cmd/" cat < "${MY_S}/cmd/version_generated.go" package cmd func init() { Version = "${PV}" } EOF echo "${PV}" > "${MY_S}/cmd/VERSION" echo "VERSION=${PV}" > "${MY_S}/data/info" test -f configure.ac # Sanity check, are we in the right directory? rm -f config.status autoreconf -i -f # Regenerate the build system econf --enable-maintainer-mode --disable-silent-rules } src_compile() { debug-print-function $FUNCNAME "$@" C="${MY_S}/cmd/" emake -C "${MY_S}/data/" emake -C "${C}" export GOPATH="${S}/" VX="-v -x" # or "-v -x" for verbosity for I in snapctl snap-exec snap snapd snap-seccomp snap-update-ns; do einfo "go building: ${I}" go install $VX "github.com/snapcore/${PN}/cmd/${I}" done "${S}/bin/snap" help --man > "${C}/snap/snap.1" rst2man.py "${C}/snap-confine/"snap-confine.{rst,1} rst2man.py "${C}/snap-discard-ns/"snap-discard-ns.{rst,5} for I in ${PKG_LINGUAS};do einfo "mo building: ${I}" msgfmt -v --output-file="${MY_S}/po/${I}.mo" "${MY_S}/po/${I}.po" done } src_install() { debug-print-function $FUNCNAME "$@" C="${MY_S}/cmd" DS="${MY_S}/data/systemd" doman \ "${C}/snap-confine/snap-confine.1" \ "${C}/snap/snap.1" \ "${C}/snap-discard-ns/snap-discard-ns.5" systemd_dounit \ "${DS}/snapd.service" "${DS}/snapd.socket" cd "${MY_S}" dodir \ "/etc/profile.d" \ "/usr/lib/snapd" \ "/usr/share/dbus-1/services" \ "/usr/share/polkit-1/actions" exeinto "/usr/lib/${PN}" doexe \ data/completion/etelpmoc.sh \ data/completion/complete.sh insinto "/usr/share/selinux/targeted/include/snapd/" doins \ data/selinux/snappy.if \ data/selinux/snappy.te \ data/selinux/snappy.fc doexe "${C}"/decode-mount-opts/decode-mount-opts doexe "${C}"/snap-discard-ns/snap-discard-ns insinto "/usr/share/dbus-1/services/" doins data/dbus/io.snapcraft.Launcher.service insinto "/usr/share/polkit-1/actions/" doins data/polkit/io.snapcraft.snapd.policy doexe "${S}/bin"/snapd doexe "${S}/bin"/snap-exec doexe "${S}/bin"/snap-update-ns doexe "${S}/bin"/snap-seccomp ### missing libseccomp insinto "/usr/lib/snapd/" doins "${MY_S}/data/info" insinto "/etc/profile.d/" doins data/env/snapd.sh dodoc "${MY_S}/packaging/ubuntu-14.04"/copyright \ "${MY_S}/packaging/ubuntu-16.04"/changelog dobin "${S}/bin"/{snap,snapctl} dobashcomp data/completion/snap domo "${MY_S}/po"/*.mo exeopts -m 6755 doexe "${C}"/snap-confine/snap-confine } pkg_postrm() { debug-print-function $FUNCNAME "$@" systemctl disable snapd.service systemctl stop snapd.service systemctl disable snapd.socket }