summaryrefslogtreecommitdiff
path: root/recipes-support
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2017-08-15 18:35:43 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-12-22 01:59:56 +0100
commit1930720250f7d0eb2cafff98da9d78b224a8953c (patch)
tree06dbc74f189f05dc87878a122b6b67ee76fb6964 /recipes-support
parentd507e8981652e3abaece415cd5de1bd76c23050b (diff)
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 <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Diffstat (limited to 'recipes-support')
-rw-r--r--recipes-support/snapd/files/0001-cmd-make-rst2man-optional.patch79
-rw-r--r--recipes-support/snapd/snapd_2.25.bb71
2 files changed, 102 insertions, 48 deletions
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 <simon.fels@canonical.com>
+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
}