libostree: new package
PATCH RESEND v4 1/1 libostree: new package
OSTree is an upgrade system for Linux-based operating systems
---
v4:
- bump version to 2017.12
v3:
- move with the package within Config.in to match the chronological order (the former name was just 'ostree')
v2:
- add e2fsprogs as dependency
DEVELOPERS | 3 ++ package/Config.in | 1 + ...Use-autoreconf-from-the-build-environment.patch | 42 ++++++++++++++++++++++ package/libostree/Config.in | 12 +++++++ package/libostree/libostree.mk | 22 ++++++++++++ 5 files changed, 80 insertions(+) create mode 100644 package/libostree/0001-Use-autoreconf-from-the-build-environment.patch create mode 100644 package/libostree/Config.in create mode 100644 package/libostree/libostree.mk
DEVELOPERS +3 -0
@@ -1129,6 +1129,9 @@ F: package/turbolua/ N: Marcin Nowakowski <[email protected]> F: package/libkcapi/ +N: Marcus Folkesson <[email protected]> +F: package/libostree/ + N: Marek Belisko <[email protected]> F: package/libatasmart/ F: package/polkit/
package/Config.in +1 -0
@@ -1913,6 +1913,7 @@ menu "System tools" source "package/keyutils/Config.in" source "package/kmod/Config.in" source "package/kvmtool/Config.in" + source "package/libostree/Config.in" source "package/lxc/Config.in" source "package/monit/Config.in" source "package/ncdu/Config.in"
package/libostree/0001-Use-autoreconf-from-the-build-environment.patch new file +42 -0
42 lines not on this page · raw message
package/libostree/Config.in new file +12 -0
@@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBOSTREE + bool "libostree" + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_PKGCONF + select BR2_PACKAGE_XZ + select BR2_PACKAGE_E2FSPROGS + select BR2_PACKAGE_LIBFUSE + select BR2_PACKAGE_LIBGPGME + help + OSTree is an upgrade system for Linux-based operating systems. + + https://ostree.readthedocs.io/en/latest/
package/libostree/libostree.mk new file +22 -0
@@ -0,0 +1,22 @@ +################################################################################ +# +# libostree +# +################################################################################ + +LIBOSTREE_VERSION = v2017.12 +LIBOSTREE_SITE = https://github.com/ostreedev/ostree.git +LIBOSTREE_SITE_METHOD = git +LIBOSTREE_GIT_SUBMODULES = yes +LIBOSTREE_LICENSE = GPLv2 +LIBOSTREE_LICENSE_FILES = COPYING +LIBOSTREE_AUTORECONF = YES +LIBOSTREE_DEPENDENCIES = libgpgme libglib2 xz libfuse pkgconf e2fsprogs + +# Use their special autogen.sh script to workaround automake bug with subdir-objects and computed paths +define LIBOSTREE_RUN_AUTOGEN + cd $(@D) && PATH=$(BR_PATH) ./autogen.sh +endef +LIBOSTREE_PRE_CONFIGURE_HOOKS += LIBOSTREE_RUN_AUTOGEN + +$(eval $(autotools-package))
Signature · 1 line
2.13.1
PATCH RESEND v4 1/1 libostree: new package
Hi Marcus,
Am Sun, 29 Oct 2017 10:37:56 +0100 schrieb Marcus Folkesson:
you need to propagate some dependencies from packages libostree depends on.
package/libostree/Config.in line 3
Quoted 9 lines
package/libostree/Config.in new file +3
-0@@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBOSTREE + bool "libostree" + select BR2_PACKAGE_LIBGLIB2
libglib2 contains:
depends on BR2_USE_WCHAR # gettext
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU # fork()
package/libostree/Config.in line 4
Quoted 1 line
package/libostree/Config.in new file +1
-0+ select BR2_PACKAGE_PKGCONF
Is pkgconf really needed for the target?
package/libostree/Config.in line 6
Quoted 2 lines
package/libostree/Config.in new file +2
-0+ select BR2_PACKAGE_XZ + select BR2_PACKAGE_E2FSPROGS
e2fsprogs contains:
depends on BR2_USE_MMU # util-linux/libblkid
package/libostree/Config.in line 7
Quoted 1 line
package/libostree/Config.in new file +1
-0+ select BR2_PACKAGE_LIBFUSE
libfuse contains:
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU # fork()
package/libostree/Config.in line 8
Quoted 1 line
package/libostree/Config.in new file +1
-0+ select BR2_PACKAGE_LIBGPGME
libgpgme contains:
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_USE_MMU # libassuan
package/libostree/
Quoted 5 lines
package/libostree/Config.in new file +4
-0+ help + OSTree is an upgrade system for Linux-based operating systems. + + https://ostree.readthedocs.io/en/latest/package/libostree/ renamed from package/libostree/libostree.mk +0
-0
libostree.mk
package/libostree/libostree.mk
Quoted 6 lines
new file mode 100644
index 0000000000..5d0483665cpackage/libostree/libostree.mk new file +0
-0@@ -0,0 +1,22 @@
+################################################################################
package/libostree/libostree.mk line 4
Quoted 4 lines
package/libostree/libostree.mk new file +3
-0+# +# libostree +#
+################################################################################
package/libostree/libostree.mk line 10
Quoted 5 lines
package/libostree/libostree.mk new file +5
-0+ +LIBOSTREE_VERSION = v2017.12 +LIBOSTREE_SITE = https://github.com/ostreedev/ostree.git +LIBOSTREE_SITE_METHOD = git +LIBOSTREE_GIT_SUBMODULES = yes
What about using the tarball provided by upstream?
LIBOSTREE_VERSION = 2017.12LIBOSTREE_SOURCE = libostree-$(LIBOSTREE_VERSION).tar.xz LIBOSTREE_SITE = https://github.com/ostreedev/ostree/releases/download/v
$(LIBOSTREE_VERSION)
It contains the git submodules as well so you can drop autoreconf and patch 0001. Please also add a hash file.
package/libostree/libostree.mk line 14
Quoted 4 lines
package/libostree/libostree.mk new file +4
-0+LIBOSTREE_LICENSE = GPLv2 +LIBOSTREE_LICENSE_FILES = COPYING +LIBOSTREE_AUTORECONF = YES +LIBOSTREE_DEPENDENCIES = libgpgme libglib2 xz libfuse pkgconf e2fsprogs
Please sort this list alphabetically and add host-pkgconf as it is used by configure.
package/libostree/libostree.mk line 13
Quoted 1 line
package/libostree/libostree.mk new file +1
-0+# Use their special autogen.sh script to workaround automake bug with
subdir-objects and computed paths
Please wrap this line to 72 chars.
package/libostree/libostree.mk line 22
Quoted 6 lines
package/libostree/libostree.mk new file +6
-0+define LIBOSTREE_RUN_AUTOGEN + cd $(@D) && PATH=$(BR_PATH) ./autogen.sh +endef +LIBOSTREE_PRE_CONFIGURE_HOOKS += LIBOSTREE_RUN_AUTOGEN + +$(eval $(autotools-package))
Please add openssl as optional dependency:
ifeq ($(BR2_PACKAGE_OPENSSL),y)LIBOSTREE_CONF_OPTS += --with-opensslLIBOSTREE_DEPENDENCIES += openssl
elseLIBOSTREE_CONF_OPTS += --without-openssl
endif
Same for avahi, libarchive, libcurl, libsoup and systemd.
Please note that curl support also needs libsoup
configure: error: Curl enabled, but libsoup is not; libsoup is needed for tests
To solve this configure error:
checking for gpgme-config... no
checking for OT_DEP_GPGME... no
checking for GPGME pthread - version >= 1.1.8... no
configure: error: Need GPGME_PTHREAD version 1.1.8 or later
I needed to add
LIBOSTREE_CONF_OPTS += --with-gpgme-prefix=$(STAGING_DIR)/usr
Regards, Bernd
PATCH RESEND v4 1/1 libostree: new package
Hello,
Quoted 1 line · Bernd Kuhls
Hi Marcus,
First of all Bernd, thanks a lot for your detailed review! Everything is obviously correct in your review, and needs to be addressed by Marcus. However, there is just one point that needs clarification.
Quoted 10 lines
Please add openssl as optional dependency:
ifeq ($(BR2_PACKAGE_OPENSSL),y)
LIBOSTREE_CONF_OPTS+= --with-opensslLIBOSTREE_DEPENDENCIES+= openssl
elseLIBOSTREE_CONF_OPTS+= --without-openssl
endifSame for avahi, libarchive, libcurl, libsoup and systemd.
Adding support for optional dependencies is not a strict requirement, as long as the corresponding features are explicitly disabled.
I.e, for each optional dependency, Marcus has the choice of:
- Supporting it, by enabling the dependency if it's available in Buildroot
- Disabling explicitly the optional dependency by passing the appropriate --disable-<foo>
Indeed, we don't want to ask our contributors to support all possible optional dependencies. It might be a lot of work, and the contributor may not necessarily care about such optional dependencies. Hence, disabling a dependency explicitly is acceptable.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH RESEND v4 1/1 libostree: new package
In reply to Bernd KuhlsHi Bernd,
Thank you for your comments, really, that was helpful.
Quoted 19 lines · Bernd Kuhls
Hi Marcus,
Am Sun, 29 Oct 2017 10:37:56 +0100 schrieb Marcus Folkesson:
you need to propagate some dependencies from packages libostree depends on.
package/libostree/Config.in line 3
Quoted 9 lines
package/libostree/Config.in new file +3
-0@@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBOSTREE + bool "libostree" + select BR2_PACKAGE_LIBGLIB2libglib2 contains:
Quoted 4 lines
depends on
BR2_USE_WCHAR# gettext
depends onBR2_TOOLCHAIN_HAS_THREADS
depends onBR2_USE_MMU#fork()
Will do. Actually, I thought Buildroot would handle this. How about dependencies in the next step and so on?
Quoted 8 lines
package/libostree/Config.in line 8
Quoted 5 lines
package/libostree/Config.in new file +5
-0+ +LIBOSTREE_VERSION = v2017.12 +LIBOSTREE_SITE = https://github.com/ostreedev/ostree.git +LIBOSTREE_SITE_METHOD = git +LIBOSTREE_GIT_SUBMODULES = yesWhat about using the tarball provided by upstream?
Quoted 8 lines
LIBOSTREE_VERSION= 2017.12LIBOSTREE_SOURCE= libostree-$(LIBOSTREE_VERSION).tar.xzLIBOSTREE_SITE= https://github.com/ostreedev/ostree/releases/download/v
$(LIBOSTREE_VERSION)It contains the git submodules as well so you can drop autoreconf and patch 0001. Please also add a hash file.
Tarball is a much better approach. I was looking at this first but dropped it since I did not saw the submodules.
Guess I was looking at
https://github.com/ostreedev/ostree/archive/v2017.12.tar.gz then, not the actual releases.
Quoted 8 lines
package/libostree/Config.in line 12
Quoted 4 lines
package/libostree/Config.in new file +4
-0+LIBOSTREE_LICENSE = GPLv2 +LIBOSTREE_LICENSE_FILES = COPYING +LIBOSTREE_AUTORECONF = YES +LIBOSTREE_DEPENDENCIES = libgpgme libglib2 xz libfuse pkgconf e2fsprogsPlease sort this list alphabetically and add host-pkgconf as it is used by configure.
Ok.
Quoted 5 lines
Quoted 1 line
+# Use their special
autogen.shscript to workaround automake bug withsubdir-objects and computed paths
Please wrap this line to 72 chars.
Ok.
Quoted 9 lines
package/libostree/Config.in
Quoted 6 lines
package/libostree/Config.in new file +6
-0+define LIBOSTREE_RUN_AUTOGEN + cd $(@D) && PATH=$(BR_PATH) ./autogen.sh +endef +LIBOSTREE_PRE_CONFIGURE_HOOKS += LIBOSTREE_RUN_AUTOGEN + +$(eval $(autotools-package))Please add openssl as optional dependency:
Quoted 8 lines
ifeq ($(BR2_PACKAGE_OPENSSL),y)
LIBOSTREE_CONF_OPTS+= --with-opensslLIBOSTREE_DEPENDENCIES+= openssl
elseLIBOSTREE_CONF_OPTS+= --without-openssl
endifSame for avahi, libarchive, libcurl, libsoup and systemd.
Will do.
Quoted 13 lines
Please note that curl support also needs libsoup
configure: error: Curl enabled, but libsoup is not; libsoup is needed for tests
To solve this configure error:
checking for gpgme-config... no
checking forOT_DEP_GPGME... no
checking for GPGME pthread - version >= 1.1.8... no
configure: error: NeedGPGME_PTHREADversion 1.1.8 or later
Quoted 7 lines
I needed to add
LIBOSTREE_CONF_OPTS+= --with-gpgme-prefix=$(STAGING_DIR)/usrRegards, Bernd
Best regards
Marcus Folkesson
PATCH RESEND v4 1/1 libostree: new package
In reply to Marcus FolkessonAm Sun, 29 Oct 2017 10:37:56 +0100 schrieb Marcus Folkesson:
Quoted 4 lines
OSTree is an upgrade system for Linux-based operating systems
Signed-off-by: Marcus Folkesson
<[email protected]>
Hi,
an additional note: The package is broken when used with musl:
CC src/libostree/libostree_1_la-ostree-async-progress.lo
In file included from ./libglnx/libglnx.h:33:0,
from src/libostree/ostree-async-progress.c:24:./libglnx/glnx-dirfd.h: In function 'glnx_ensure_dir':./libglnx/glnx-dirfd.h:108:7: error: implicit declaration of function 'TEMP_FAILURE_RETRY' [-Werror=implicit-function-declaration]
if (TEMP_FAILURE_RETRY (mkdirat (dfd, path, mode)) != 0)
^~~~~~~~~~~~~~~~~~
Regards, Bernd