From 1930720250f7d0eb2cafff98da9d78b224a8953c Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Tue, 15 Aug 2017 18:35:43 +0200 Subject: snapd: backport pyro version from meta-snappy meta-snappy now uses go from oe-core. This commit backports the relevant changes to the recipe. Signed-off-by: Max Krummenacher Acked-by: Marcel Ziswiler --- .../files/0001-cmd-make-rst2man-optional.patch | 79 ++++++++++++++++++++++ recipes-support/snapd/snapd_2.25.bb | 71 +++++++------------ 2 files changed, 102 insertions(+), 48 deletions(-) create mode 100644 recipes-support/snapd/files/0001-cmd-make-rst2man-optional.patch diff --git a/recipes-support/snapd/files/0001-cmd-make-rst2man-optional.patch b/recipes-support/snapd/files/0001-cmd-make-rst2man-optional.patch new file mode 100644 index 0000000..6210130 --- /dev/null +++ b/recipes-support/snapd/files/0001-cmd-make-rst2man-optional.patch @@ -0,0 +1,79 @@ +From 924fd52ac95ed530091308876342d1cdbab01c80 Mon Sep 17 00:00:00 2001 +From: Simon Fels +Date: Fri, 28 Apr 2017 08:04:39 +0200 +Subject: [PATCH] cmd: make rst2man optional + +--- + cmd/Makefile.am | 8 ++++++++ + cmd/configure.ac | 3 ++- + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/cmd/Makefile.am b/cmd/Makefile.am +index 9474944..26dd010 100644 +--- a/cmd/Makefile.am ++++ b/cmd/Makefile.am +@@ -187,9 +187,11 @@ all_tests = \ + snap-confine/tests/test_whitelist + + libexec_PROGRAMS += snap-confine/snap-confine ++if HAVE_RST2MAN + dist_man_MANS += snap-confine/snap-confine.5 + CLEANFILES += snap-confine/snap-confine.5 + EXTRA_DIST += snap-confine/snap-confine.rst ++endif + EXTRA_DIST += snap-confine/snap-confine.apparmor.in + EXTRA_DIST += $(all_tests) snap-confine/tests/common.sh + if SECCOMP +@@ -307,9 +309,11 @@ snap-confine/unit-tests$(EXEEXT): $(snap_confine_unit_tests_OBJECTS) $(snap_conf + snap-confine/unit-tests$(EXEEXT): LIBS += -Wl,-Bstatic $(snap_confine_unit_tests_STATIC) -Wl,-Bdynamic -pthread + endif # WITH_UNIT_TESTS + ++if HAVE_RST2MAN + snap-confine/%.5: snap-confine/%.rst + mkdir -p snap-confine + $(HAVE_RST2MAN) $^ > $@ ++endif + + snap-confine/snap-confine.apparmor: snap-confine/snap-confine.apparmor.in Makefile + sed -e 's,[@]LIBEXECDIR[@],$(libexecdir),g' -e 's,[@]SNAP_MOUNT_DIR[@],$(SNAP_MOUNT_DIR),' <$< >$@ +@@ -372,9 +376,11 @@ install-exec-local:: + ## + + libexec_PROGRAMS += snap-discard-ns/snap-discard-ns ++if HAVE_RST2MAN + dist_man_MANS += snap-discard-ns/snap-discard-ns.5 + CLEANFILES += snap-discard-ns/snap-discard-ns.5 + EXTRA_DIST += snap-discard-ns/snap-discard-ns.rst ++endif + + snap_discard_ns_snap_discard_ns_SOURCES = \ + snap-confine/ns-support.c \ +@@ -409,9 +415,11 @@ snap-discard-ns/snap-discard-ns$(EXEEXT): $(snap_discard_ns_snap_discard_ns_OBJE + + snap-discard-ns/snap-discard-ns$(EXEEXT): LIBS += -Wl,-Bstatic $(snap_discard_ns_snap_discard_ns_STATIC) -Wl,-Bdynamic -pthread + ++if HAVE_RST2MAN + snap-discard-ns/%.5: snap-discard-ns/%.rst + mkdir -p snap-discard-ns + $(HAVE_RST2MAN) $^ > $@ ++endif + + ## + ## system-shutdown +diff --git a/cmd/configure.ac b/cmd/configure.ac +index 39a6800..bcd142a 100644 +--- a/cmd/configure.ac ++++ b/cmd/configure.ac +@@ -175,7 +175,8 @@ AS_IF([test "x$enable_caps_over_setuid" = "xyes"], [ + [Use capabilities rather than setuid bit])]) + + AC_PATH_PROGS([HAVE_RST2MAN],[rst2man rst2man.py]) +-AS_IF([test "x$HAVE_RST2MAN" = "x"], [AC_MSG_ERROR(["cannot find the rst2man tool, install python-docutils or similar"])]) ++AS_IF([test "x$HAVE_RST2MAN" = "x"], [AC_MSG_WARN(["cannot find the rst2man tool, install python-docutils or similar"])]) ++AM_CONDITIONAL([HAVE_RST2MAN], [test "x${HAVE_RST2MAN}" != "x"]) + + AC_PATH_PROG([HAVE_SHELLCHECK],[shellcheck]) + AM_CONDITIONAL([HAVE_SHELLCHECK], [test "x${HAVE_SHELLCHECK}" != "x"]) +-- +2.7.4 + diff --git a/recipes-support/snapd/snapd_2.25.bb b/recipes-support/snapd/snapd_2.25.bb index 5844455..8ea3364 100644 --- a/recipes-support/snapd/snapd_2.25.bb +++ b/recipes-support/snapd/snapd_2.25.bb @@ -3,16 +3,19 @@ HOMEPAGE = "https://www.snapcraft.io" LICENSE = "GPL-3.0" LIC_FILES_CHKSUM = "file://${WORKDIR}/${PN}-${PV}/COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "https://github.com/snapcore/snapd/releases/download/${PV}/snapd_${PV}.vendor.tar.xz" +SRC_URI = " \ + https://github.com/snapcore/snapd/releases/download/${PV}/snapd_${PV}.vendor.tar.xz \ + file://0001-cmd-make-rst2man-optional.patch \ +" SRC_URI[md5sum] = "453ffdc2ecdbb7058ac193f81ac37135" SRC_URI[sha256sum] = "accd4c94049ce79443ff995c27111f3851e9896bbad502dd5d341f8847645b90" -SNAPD_PKG = "github.com/snapcore/snapd" +GO_IMPORT = "github.com/snapcore/snapd" DEPENDS += " \ - glib-2.0 \ go-cross \ + glib-2.0 \ python3-docutils-native \ udev \ xfsprogs \ @@ -31,7 +34,7 @@ EXTRA_OECONF += " \ --libexecdir=${libdir}/snapd \ " -inherit systemd autotools pkgconfig python3native +inherit systemd autotools pkgconfig python3native go # Our tools build with autotools are inside the cmd subdirectory # and we need to tell the autotools class to look in there. @@ -43,45 +46,19 @@ do_configure_prepend() { (cd ${S} ; ./mkversion.sh ${PV}) } -do_compile_prepend() { - export GOARCH="${TARGET_ARCH}" - # supported amd64, 386, arm arm64 - if [ "${TARGET_ARCH}" = "x86_64" ]; then - export GOARCH="amd64" - fi - if [ "${TARGET_ARCH}" = "aarch64" ]; then - export GOARCH="arm64" - fi - if [ "${TARGET_ARCH}" = "i586" ]; then - export GOARCH="386" - fi - - # Set GOPATH. See 'PACKAGERS.md'. Don't rely on - # docker to download its dependencies but rather - # use dependencies packaged independently. - cd ${S} - rm -rf .gopath - mkdir -p .gopath/src/"$(dirname "${SNAPD_PKG}")" - ln -sf ../../../.. .gopath/src/"${SNAPD_PKG}" - export GOPATH="${S}/.gopath:${S}/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go" - export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go" - cd - - - # Pass the needed cflags/ldflags so that cgo - # can find the needed headers files and libraries - export CGO_ENABLED="1" - export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}" - export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" - - rm -rf ${B}/build - mkdir ${B}/build - go build -a -v -o ${B}/build/snapd ${SNAPD_PKG}/cmd/snapd - go build -a -v -o ${B}/build/snap ${SNAPD_PKG}/cmd/snap - go build -a -v -o ${B}/build/snapctl ${SNAPD_PKG}/cmd/snapctl - go build -a -v -o ${B}/build/snap-exec ${SNAPD_PKG}/cmd/snap-exec +do_compile() { + # Ensure we our component at the right place in our GOPATH + mkdir -p ${STAGING_LIBDIR}/${TARGET_SYS}/go/src/github.com/snapcore + ln -sf ${S} ${STAGING_LIBDIR}/${TARGET_SYS}/go/src/github.com/snapcore/snapd + + for d in snap snapd snap-exec snapctl; do + GOPATH=${STAGING_LIBDIR}/${TARGET_SYS}/go go build github.com/snapcore/snapd/cmd/$d + done + + oe_runmake } -do_install_append() { +do_install() { install -d ${D}${libdir}/snapd install -d ${D}${bindir} install -d ${D}${systemd_unitdir}/system @@ -92,15 +69,13 @@ do_install_append() { install -d ${D}/var/snap install -d ${D}${sysconfdir}/profile.d - # NOTE: This file needs to be present to allow snapd's service - # units to startup. - + oe_runmake -C ${B} install DESTDIR=${D} oe_runmake -C ${S}/data/systemd install DESTDIR=${D} - install -m 0755 ${B}/build/snapd ${D}${libdir}/snapd/ - install -m 0755 ${B}/build/snap-exec ${D}${libdir}/snapd/ - install -m 0755 ${B}/build/snap ${D}${bindir} - install -m 0755 ${B}/build/snapctl ${D}${bindir} + install -m 0755 ${B}/snapd ${D}${libdir}/snapd/ + install -m 0755 ${B}/snap-exec ${D}${libdir}/snapd/ + install -m 0755 ${B}/snap ${D}${bindir} + install -m 0755 ${B}/snapctl ${D}${bindir} echo "PATH=\$PATH:/snap/bin" > ${D}${sysconfdir}/profile.d/20-snap.sh } -- cgit v1.2.3