All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/apk-tools: new package
@ 2022-05-11 11:45 TIAN Yuanhao
  2022-08-01 22:16 ` Thomas Petazzoni via buildroot
  2022-08-02  3:50 ` François Perrad
  0 siblings, 2 replies; 3+ messages in thread
From: TIAN Yuanhao @ 2022-05-11 11:45 UTC (permalink / raw)
  To: buildroot; +Cc: TIAN Yuanhao

Alpine Package Keeper (apk) is a package manager developed for Alpine
Linux.

Signed-off-by: TIAN Yuanhao <tianyuanhao3@163.com>
---

I did read [1] before I submitted this patch.

I need a package manager in an embedded system and I found there are
some Buildroot based projects having similar things like [2] and [3].
Given the popularity of Alpine Linux in containers, I would like to
choose apk as the package manager.

There is a performance comparison of package managers at [4].

An interesting finding is that OpenWrt seems to be planning to switch
from opkg to apk [5].

In conclusion, I think Buildroot should have apk.

[1]: http://patchwork.ozlabs.org/project/buildroot/patch/1426736888-29437-5-git-send-email-steven@uplinklabs.net/
[2]: https://github.com/batocera-linux/batocera.linux/blob/5.27/package/batocera/utils/pacman/pacman.mk
[3]: https://github.com/gportay/linux-distros-br2-external/blob/master/package/apk-tools/apk-tools.mk
[4]: https://michael.stapelberg.ch/posts/2019-08-17-linux-package-managers-are-slow/#measurements
[5]: https://github.com/openwrt/openwrt/pull/4294
---
 DEVELOPERS                       |   3 +
 package/Config.in                |   1 +
 package/apk-tools/Config.in      |  12 ++
 package/apk-tools/apk-tools.hash |   3 +
 package/apk-tools/apk-tools.mk   |  53 ++++++
 package/apk-tools/help.h         | 274 +++++++++++++++++++++++++++++++
 6 files changed, 346 insertions(+)
 create mode 100644 package/apk-tools/Config.in
 create mode 100644 package/apk-tools/apk-tools.hash
 create mode 100644 package/apk-tools/apk-tools.mk
 create mode 100644 package/apk-tools/help.h

diff --git a/DEVELOPERS b/DEVELOPERS
index ffb55dee8e..f5ae2a4afc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2718,6 +2718,9 @@ F:	package/python-influxdb/
 N:	Sven Oliver Moll <svolli@svolli.de>
 F:	package/most/
 
+N:	TIAN Yuanhao <tianyuanhao3@163.com>
+F:	package/apk-tools/
+
 N:	Theo Debrouwere <t.debrouwere@televic.com>
 F:	board/beagleboardx15/
 F:	configs/beagleboardx15_defconfig
diff --git a/package/Config.in b/package/Config.in
index 8892134133..d4a16e3b1b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2439,6 +2439,7 @@ comment "*                                                      "
 comment "See the manual:                                        "
 comment "http://buildroot.org/manual.html#faq-no-binary-packages"
 comment "-------------------------------------------------------"
+	source "package/apk-tools/Config.in"
 	source "package/opkg/Config.in"
 	source "package/opkg-utils/Config.in"
 	source "package/rpm/Config.in"
diff --git a/package/apk-tools/Config.in b/package/apk-tools/Config.in
new file mode 100644
index 0000000000..a7926a7c70
--- /dev/null
+++ b/package/apk-tools/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_APK_TOOLS
+	bool "apk-tools"
+	depends on !BR2_STATIC_LIBS # unconditionally shared
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # compound literals
+	depends on BR2_USE_MMU # fork()
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_ZLIB
+	help
+	  Alpine Package Keeper (apk) is a package manager developed for
+	  Alpine Linux.
+
+	  https://gitlab.alpinelinux.org/alpine/apk-tools
diff --git a/package/apk-tools/apk-tools.hash b/package/apk-tools/apk-tools.hash
new file mode 100644
index 0000000000..a9ec2fb2ce
--- /dev/null
+++ b/package/apk-tools/apk-tools.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  6362d8a14bb0460f15a041754148344cbfc0a953461c702717e0d263d054db4d  apk-tools-v2.12.9.tar.bz2
+sha256  b3c87315aae4c9f276c37168f2655dd8bd990544d7a0bbfb929664155c7ab257  LICENSE
diff --git a/package/apk-tools/apk-tools.mk b/package/apk-tools/apk-tools.mk
new file mode 100644
index 0000000000..b92092cd73
--- /dev/null
+++ b/package/apk-tools/apk-tools.mk
@@ -0,0 +1,53 @@
+################################################################################
+#
+# apk-tools
+#
+################################################################################
+
+# Regenerate help.h when changing the version number
+APK_TOOLS_VERSION = 2.12.9
+APK_TOOLS_SITE = https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/v$(APK_TOOLS_VERSION)
+APK_TOOLS_SOURCE = apk-tools-v$(APK_TOOLS_VERSION).tar.bz2
+APK_TOOLS_LICENSE = GPL-2.0
+APK_TOOLS_LICENSE_FILES = LICENSE
+
+APK_TOOLS_DEPENDENCIES = host-pkgconf openssl zlib
+
+APK_TOOLS_MAKE_OPTS = \
+	CROSS_COMPILE="$(TARGET_CROSS)" \
+	LUA=no \
+	SCDOC=: \
+	V=1 \
+	cmd_genhelp=:
+
+ifeq ($(BR2_SHARED_LIBS),y)
+APK_TOOLS_MAKE_OPTS += \
+	PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)"
+else
+APK_TOOLS_MAKE_OPTS += \
+	PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY) --static" \
+	STATIC=y
+endif
+
+define APK_TOOLS_CONFIGURE_CMDS
+	$(SED) 's/#\S\+\s\(APK_DEFAULT_ARCH\)\s.*/#define \1 $(BR2_ARCH)/' \
+		$(@D)/src/apk_defines.h
+	# Copy the pre-generated help.h so we don't need host-lua
+	$(INSTALL) -D -m 644 $(APK_TOOLS_PKGDIR)/help.h $(@D)/src/help.h
+endef
+
+define APK_TOOLS_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+		$(APK_TOOLS_MAKE_OPTS)
+endef
+
+define APK_TOOLS_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install \
+		$(APK_TOOLS_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR)
+	# Prepare an empty apk database
+	$(INSTALL) -D -m 644 /dev/null $(TARGET_DIR)/etc/apk/world
+	$(INSTALL) -d $(TARGET_DIR)/lib/apk/db
+endef
+
+$(eval $(generic-package))
diff --git a/package/apk-tools/help.h b/package/apk-tools/help.h
new file mode 100644
index 0000000000..d0bb9c3963
--- /dev/null
+++ b/package/apk-tools/help.h
@@ -0,0 +1,274 @@
+/* Automatically generated by genhelp.lua. Do not modify. */
+static const unsigned int uncompressed_help_size = 14239;
+static const unsigned char compressed_help[] = { /* 4315 bytes */
+	0x78,0xda,0xc5,0x5b,0xeb,0x6f,0xe3,0x36,0x12,0xdf,0xcf,0xf9,0x2b,0xf8,0x6d,0xd3,
+	0x83,0x95,0x43,0xef,0xd3,0xa1,0x58,0x14,0x48,0x93,0xec,0x36,0xd8,0x47,0x72,0x4e,
+	0xf6,0x51,0x14,0x87,0x03,0x2d,0xd1,0x36,0x61,0x59,0x54,0x49,0x6a,0x1d,0xf7,0xaf,
+	0xbf,0x79,0x90,0x12,0xf5,0x8a,0x77,0x0f,0x77,0x38,0x03,0xed,0xda,0x12,0x87,0x1c,
+	0xce,0x0c,0x7f,0xf3,0x62,0x2e,0xef,0xdf,0xbe,0x68,0x9c,0xdc,0xa8,0x9f,0x84,0xac,
+	0x77,0xe2,0xf7,0x57,0x77,0xf7,0x8f,0xb7,0x77,0x1f,0x1e,0x7e,0xbe,0xb8,0xb8,0xf8,
+	0xa7,0xb8,0xba,0x7b,0xff,0xfe,0xf2,0xc3,0x35,0x3c,0xbe,0x5c,0xbe,0xf9,0xf8,0xfe,
+	0xe6,0xc3,0x23,0xbf,0x38,0x3b,0xbb,0x97,0xf9,0x0e,0xa8,0x84,0xae,0x9c,0x97,0x65,
+	0x29,0xbd,0x36,0x95,0x90,0x55,0x21,0xac,0xda,0x9b,0xaf,0xb2,0xfc,0xe9,0x4c,0x08,
+	0x59,0x14,0x22,0x7c,0x2e,0xe1,0x6b,0xcd,0x24,0x4e,0x78,0x23,0x3e,0xdf,0x2d,0xdf,
+	0x5d,0xd3,0xf8,0xdc,0xec,0xf7,0xda,0x8b,0x7c,0x2b,0x2b,0x78,0x07,0x54,0x85,0x2a,
+	0x23,0xd5,0x12,0xe7,0x52,0x1d,0xe1,0xda,0x9a,0xfd,0x3c,0xe9,0xd9,0xc3,0xd1,0x79,
+	0xb5,0x17,0x7b,0xa9,0x2b,0xaf,0x2a,0x59,0xe5,0x0a,0xb9,0x58,0xeb,0xa7,0x38,0xdf,
+	0x6b,0xfd,0xb4,0x00,0x06,0x03,0xcf,0xc2,0x58,0xd1,0xd4,0x1b,0x2b,0x8b,0x64,0x89,
+	0x83,0xf6,0x5b,0xd3,0x78,0xb1,0x37,0x85,0x5e,0x1f,0x75,0xb5,0xe1,0xf5,0x60,0x9e,
+	0xa6,0x2e,0xa4,0x57,0x34,0xcf,0x47,0xfe,0x6a,0x55,0x6d,0x9c,0xf6,0xc6,0x1e,0x41,
+	0x0c,0x85,0x7a,0x22,0xf6,0xe3,0x8c,0xf0,0xb9,0x0d,0xeb,0x84,0x47,0x4e,0xc8,0xaf,
+	0x52,0x97,0x72,0x55,0x2a,0xde,0x49,0x4b,0xaf,0x89,0x32,0x97,0xf9,0x96,0xe7,0x17,
+	0xef,0x65,0x85,0xc2,0xf5,0xf0,0xbb,0x34,0xb9,0x2c,0x23,0x7f,0x3c,0xe6,0xec,0xec,
+	0x1f,0x8d,0xb2,0xc4,0x5c,0xdd,0xaa,0x61,0x6d,0xec,0x9e,0xb4,0x80,0x7b,0xc6,0x9f,
+	0x61,0xcf,0x6f,0x34,0x48,0xb0,0x50,0x1e,0x56,0x56,0x45,0x3a,0x4e,0xc8,0x15,0x6e,
+	0xb4,0xdd,0x39,0x48,0x63,0xc0,0x50,0xa9,0x9d,0x0f,0xb3,0xbc,0xc3,0xaf,0xed,0x50,
+	0x98,0x20,0xdf,0xe2,0xf2,0x12,0x9e,0x79,0xaf,0x6c,0x85,0xd4,0x06,0xd8,0xb5,0x22,
+	0xb7,0x1a,0x1e,0x68,0x89,0x9a,0x34,0xbe,0xd3,0x24,0x08,0xc8,0x02,0x1f,0x35,0x7e,
+	0xa9,0x72,0x8d,0xd2,0x70,0x02,0xe4,0x52,0x6f,0xbf,0xea,0x3f,0xf9,0x0b,0xae,0x59,
+	0x9b,0x52,0xe7,0x47,0xa2,0x79,0xd8,0x9a,0x43,0x2a,0xe3,0xf0,0x0a,0x36,0xd0,0x72,
+	0x02,0x04,0x4e,0x49,0x9b,0x6f,0x99,0x80,0xbf,0xa6,0x03,0xc4,0xea,0x28,0x2a,0xb9,
+	0x57,0xc8,0x1f,0x68,0x00,0x98,0xab,0x71,0xef,0x67,0x67,0xcb,0x6e,0xde,0x81,0xbd,
+	0x90,0x2a,0x99,0xeb,0x2b,0xab,0xa6,0xf4,0x0c,0x26,0x15,0x55,0x98,0x30,0xb2,0x56,
+	0x3e,0xf0,0x21,0xae,0xcd,0xa1,0x2a,0x8d,0x2c,0x06,0x96,0xbb,0x29,0xcd,0x0a,0x74,
+	0x99,0x4a,0x19,0xcf,0x82,0x0c,0x3a,0x2e,0xb4,0x55,0x39,0xae,0x02,0x93,0xed,0x65,
+	0xa5,0xd7,0x8a,0xc4,0x4f,0x62,0x00,0xad,0xe7,0x3b,0xd7,0xec,0x41,0x4d,0xeb,0xce,
+	0x18,0x0c,0xf2,0xed,0x71,0xf1,0xaf,0x20,0xf2,0x35,0x8b,0xed,0x13,0x7f,0xed,0x2c,
+	0xc3,0xab,0x0d,0xe8,0xe4,0x48,0x47,0xc6,0xe9,0x4d,0x25,0x7d,0x63,0xc1,0x86,0xde,
+	0x6b,0x97,0x2b,0x38,0xb9,0x95,0x32,0x8d,0xa3,0xe3,0xda,0x14,0x3a,0x28,0xec,0x92,
+	0xbe,0x3a,0x3e,0x4f,0x28,0xcf,0xee,0x78,0x82,0x49,0x7b,0x27,0x3a,0x05,0xe1,0x6f,
+	0x30,0x0e,0x9d,0xbb,0x60,0x50,0xbd,0xed,0xe1,0x9a,0x29,0x44,0x04,0x5e,0x1d,0xda,
+	0x1f,0x0a,0xd8,0xec,0x6b,0x69,0xdb,0xe3,0x17,0x5f,0x91,0x31,0xd6,0xca,0xa2,0xad,
+	0x0a,0x0f,0x62,0x80,0x07,0x55,0x4b,0xe7,0xbc,0x05,0xdb,0x83,0xf3,0xfe,0xb8,0xd5,
+	0x8e,0x50,0x6b,0x0b,0xa6,0x94,0x9b,0xf5,0x5a,0x29,0x10,0xdc,0x8e,0x0c,0x73,0xa5,
+	0x4b,0xed,0x81,0x83,0x8b,0xb3,0xd7,0x30,0xd7,0xde,0xd8,0xfe,0x19,0x41,0x01,0x8b,
+	0xbf,0x23,0xf1,0xd9,0x0b,0x80,0xa9,0x14,0x02,0x11,0xb5,0x06,0x30,0x78,0x7f,0x79,
+	0xf5,0xf6,0xf2,0xcd,0xcd,0x03,0xfc,0x38,0x3b,0xbb,0xee,0xcc,0x88,0xa4,0x16,0x48,
+	0xe0,0x3f,0x47,0x07,0xd6,0xaa,0x3f,0x1a,0x60,0x59,0xcd,0x01,0x5e,0x10,0x87,0x13,
+	0xe7,0x1d,0xfe,0xb8,0x1f,0x60,0x26,0x20,0xde,0x0b,0xbd,0x16,0x15,0x1c,0x1b,0x59,
+	0x82,0xe9,0x15,0xa0,0x45,0xab,0x1c,0xa8,0x78,0x21,0x54,0xe5,0x1a,0x4b,0x3b,0x03,
+	0x40,0xe9,0x1f,0x23,0xd8,0xda,0x5e,0xf9,0x0b,0xd8,0x08,0x6a,0xad,0xb7,0x15,0x52,
+	0xe3,0x60,0x33,0xd7,0xb7,0xcb,0x9b,0xab,0xc7,0xbb,0xe5,0xed,0x33,0xfb,0x21,0x3a,
+	0xfa,0x3f,0xef,0x29,0x58,0x02,0x30,0xec,0x6a,0x95,0xeb,0xb5,0x86,0xdd,0x45,0x73,
+	0x45,0x1e,0x12,0x13,0x41,0x54,0x46,0x9d,0x16,0xb8,0x23,0x43,0xd4,0x51,0xbb,0x00,
+	0x9a,0x72,0x25,0x9d,0x02,0x56,0x09,0xc7,0x52,0x56,0x19,0xfc,0x06,0xac,0xe6,0xa5,
+	0x92,0x15,0xcc,0x03,0x0b,0x3f,0x33,0xaa,0x08,0xa7,0xed,0xe4,0x40,0x77,0xac,0xf2,
+	0xd1,0x7e,0x03,0xd4,0x4e,0xc0,0x2c,0x62,0x07,0x79,0x33,0x14,0xbb,0x59,0x39,0x53,
+	0x2a,0xdf,0x79,0x8a,0x05,0x41,0x4a,0x58,0x1a,0x46,0xe0,0xa1,0xd5,0xce,0xd1,0x58,
+	0x2b,0x2a,0x75,0x50,0x76,0x70,0xfc,0xd9,0x38,0xba,0xc3,0x01,0x62,0x00,0x5f,0x97,
+	0x0a,0x01,0x5d,0xdf,0x77,0x9a,0x1e,0x92,0x10,0x93,0xb0,0xca,0x9c,0x9f,0x6c,0xaa,
+	0xd6,0xe6,0x3a,0x1b,0x83,0x1d,0x83,0xba,0x2c,0x4c,0x83,0x06,0x0b,0xba,0x2c,0x70,
+	0xbf,0xb2,0x3a,0x06,0x1c,0x8f,0x93,0x21,0x97,0xa6,0x67,0x55,0x08,0xeb,0x03,0x2e,
+	0x7f,0xbf,0x7f,0xfb,0xe6,0xfd,0xe5,0xc3,0x5b,0x8e,0x0d,0xa6,0xd8,0x34,0x08,0x0c,
+	0xe8,0x03,0x5c,0x67,0x0e,0xcf,0x3b,0x03,0x58,0x98,0x20,0x35,0x5d,0x9a,0x31,0xf6,
+	0x3b,0x45,0xc4,0x44,0x51,0x55,0xb3,0x87,0xb4,0xd5,0x11,0xc0,0xea,0x5a,0x6f,0x1a,
+	0xdb,0xbd,0x24,0x21,0x25,0xa8,0x76,0xee,0x54,0x5f,0x95,0x3f,0x4c,0xe2,0xf8,0x85,
+	0x78,0xc4,0xe9,0x1a,0x0b,0x3b,0xf7,0xe2,0x60,0xec,0x8e,0xed,0xa4,0x1d,0x20,0x00,
+	0xbf,0x1a,0x07,0xeb,0x48,0xe6,0x0a,0x80,0xc0,0xeb,0x8a,0xbd,0x73,0x37,0xa8,0xa9,
+	0x4a,0xe5,0x9c,0xc8,0x0c,0x0e,0x6f,0xcf,0x1f,0x8a,0x47,0x3f,0xf5,0x84,0x03,0x81,
+	0xce,0x48,0x2f,0x9d,0x6c,0xa6,0x15,0x83,0x44,0xb2,0xae,0x4b,0xdc,0x16,0xec,0x48,
+	0x6a,0x8b,0xf8,0x0a,0x5e,0x6f,0x13,0xbc,0x53,0x6e,0x2c,0x32,0x22,0x94,0xb5,0x06,
+	0x94,0xa7,0x2b,0xe2,0xb4,0x17,0xf6,0x99,0x35,0xa3,0x57,0x02,0x0e,0xbd,0x53,0x82,
+	0x90,0x15,0x08,0x52,0x81,0x93,0x19,0x56,0x8a,0x00,0x2c,0xdd,0x16,0xf9,0xd8,0x74,
+	0x63,0xec,0x74,0xbf,0x53,0xeb,0x4c,0x94,0x93,0x07,0x07,0xf3,0x9a,0x70,0xe2,0xa8,
+	0x6f,0xc9,0x41,0x4e,0xe2,0x54,0xd1,0xb7,0xbb,0x0b,0x88,0x25,0x46,0x5a,0x5f,0x4f,
+	0x38,0x12,0xf4,0x4b,0xfd,0x99,0x75,0xce,0x47,0x1b,0x07,0xf5,0x37,0x01,0x21,0xd9,
+	0x33,0x7b,0x48,0xc0,0x8b,0x86,0x66,0x9f,0xc5,0xeb,0xdb,0x77,0x37,0x33,0x7b,0x83,
+	0x01,0x35,0xb8,0x03,0xef,0x7a,0xcc,0xec,0x2a,0x30,0xf2,0xe0,0x86,0x29,0x76,0xd4,
+	0x3d,0x13,0xbf,0x10,0xbf,0x1c,0xc1,0xc6,0xd6,0xb2,0x29,0xc1,0xa3,0x68,0x8f,0xe1,
+	0x16,0x4f,0x12,0x8c,0x2f,0xae,0xb3,0x10,0x07,0xb5,0xaa,0x81,0x64,0x91,0x7a,0x2c,
+	0x85,0xe1,0xc3,0x9f,0x0a,0x85,0x95,0xa0,0x3a,0x4c,0x72,0x8e,0x00,0x02,0x31,0x3f,
+	0x5a,0x39,0x9e,0x83,0x76,0x0b,0xc5,0xc1,0xfd,0x00,0xa2,0x40,0x36,0x52,0x51,0x90,
+	0xc8,0x47,0xa2,0x78,0x7c,0xbc,0x59,0x7e,0x98,0xd3,0x26,0x91,0x70,0xa8,0xd7,0x01,
+	0x5d,0x2b,0xee,0x7e,0xc8,0xd7,0x46,0xa7,0xc8,0xe5,0x06,0xc2,0xdf,0x2a,0x46,0xa9,
+	0x18,0x7d,0xe0,0x86,0xc2,0xae,0x11,0xec,0xda,0xc1,0x09,0xde,0xc5,0xe0,0x2b,0xe5,
+	0xb9,0x0d,0xc8,0xbe,0xd3,0x0c,0x5b,0xba,0x44,0xd2,0xbd,0x60,0x8e,0xec,0x2d,0x1e,
+	0xab,0x91,0xc2,0xee,0x2a,0xb6,0x48,0x8c,0x4b,0x1d,0xcf,0x81,0xef,0x01,0x9f,0x4b,
+	0x5d,0x81,0x7a,0xd2,0xe9,0x60,0xa0,0x75,0xa0,0xd8,0xb5,0x29,0x4b,0x73,0x08,0x78,
+	0x0e,0x27,0x4b,0xe6,0x41,0x8f,0x30,0x98,0x96,0x41,0xbd,0x4b,0xbf,0x8d,0xee,0x19,
+	0xe7,0x87,0x5d,0x73,0x78,0x9d,0xee,0x39,0x04,0xdc,0xdf,0xb9,0xe3,0x40,0xe5,0x20,
+	0x38,0xa4,0xe8,0xec,0xa5,0x9b,0x09,0xe2,0xa7,0x11,0xe3,0x42,0xdc,0x26,0x86,0x39,
+	0x52,0x4f,0xdc,0x08,0xe0,0x54,0x1b,0x2c,0x0e,0xd2,0xaa,0x0e,0xbf,0x4f,0xe3,0xf6,
+	0x02,0x25,0x6f,0x2c,0xe6,0x26,0xa0,0x8b,0x1e,0xaa,0x41,0xe8,0xb5,0x56,0x80,0xdc,
+	0x39,0x0a,0x87,0x4d,0x2f,0x15,0x4e,0xc8,0x3b,0xbe,0xcf,0x8c,0x03,0x51,0x6b,0xc8,
+	0x88,0x8c,0x23,0x8c,0x99,0x48,0xb3,0xbc,0x80,0x48,0x08,0x71,0xaa,0x0a,0xca,0x43,
+	0x6b,0x06,0x49,0x91,0x23,0x8f,0x29,0x18,0x18,0x08,0x59,0x3b,0x1e,0x6d,0xb2,0x24,
+	0x9e,0xbf,0xc3,0xdb,0xaa,0x1f,0x82,0x80,0x7f,0xba,0xec,0x66,0xe3,0xd5,0x18,0x96,
+	0x81,0x1e,0x23,0x6b,0x08,0x83,0x9c,0xca,0x20,0xfe,0x84,0xe1,0x98,0x45,0xba,0x66,
+	0xc5,0xb1,0xf7,0x00,0x02,0x28,0xc3,0x42,0x21,0x61,0x6a,0xd0,0x93,0x11,0x3e,0x98,
+	0x16,0x04,0x65,0x11,0x41,0xc9,0xa3,0x14,0x62,0xec,0x2c,0x16,0xed,0x5a,0xa9,0xb8,
+	0x16,0xe1,0x3c,0x73,0xc4,0x92,0x20,0x21,0x30,0xc3,0xe9,0x7a,0xca,0x0d,0x3f,0x99,
+	0x64,0x27,0xe4,0xf6,0x40,0x9f,0x83,0x04,0xe8,0x57,0xb2,0xcd,0x90,0xdc,0x07,0x8f,
+	0x01,0x22,0x3d,0x19,0x21,0xa0,0xe7,0xd7,0x14,0x0a,0xef,0x09,0x40,0x1d,0x05,0xf5,
+	0x95,0x52,0x05,0xe5,0xe0,0xf0,0x0b,0x18,0x2d,0x85,0x81,0x83,0x1c,0x72,0x71,0xd6,
+	0x15,0x7a,0x62,0x45,0x09,0x1d,0x07,0x65,0xc8,0x44,0x5c,0xfd,0xa0,0x71,0x40,0xe3,
+	0x0d,0x6e,0x11,0xe2,0x8c,0x12,0xa3,0xd3,0x35,0xe4,0x07,0x5b,0x8e,0xea,0xe4,0xda,
+	0x63,0xfa,0x2d,0x03,0xf6,0xe9,0x3d,0x32,0xa5,0x9e,0x6a,0x88,0x23,0x1c,0xc9,0x83,
+	0x32,0x8d,0xbe,0x40,0xb8,0x54,0x31,0x0c,0x1a,0x5e,0xc5,0x23,0xfe,0xf3,0x6c,0xd8,
+	0x10,0x49,0xdb,0xd2,0xc6,0x84,0x7f,0x0f,0xf0,0x52,0xa2,0x03,0xf6,0x6d,0xf6,0xd6,
+	0x1e,0x56,0x4c,0x99,0xfb,0xc7,0x75,0x52,0xc7,0x13,0x87,0xf6,0x42,0x7c,0x46,0x24,
+	0x23,0xd3,0x6f,0xd3,0xef,0x5e,0x14,0xb1,0xe8,0x5b,0x3e,0xbe,0x0b,0x9c,0x16,0x68,
+	0xdf,0x30,0x97,0xd3,0xc0,0x02,0x9d,0xa0,0x41,0x00,0x00,0x5b,0xa1,0x3a,0x84,0x85,
+	0xb8,0xbf,0xc0,0x99,0x4c,0x05,0x92,0xf6,0x5b,0xe3,0xd4,0xcc,0x84,0x12,0x23,0x69,
+	0x2a,0x1c,0x45,0x0d,0xa7,0x91,0x2d,0x88,0x9e,0x93,0xf3,0x54,0xf2,0x21,0x5d,0x1f,
+	0x08,0x1e,0xfd,0xfd,0x2c,0xac,0x06,0x12,0xfa,0x87,0x42,0xb3,0x6d,0x9a,0xdb,0x0f,
+	0x0e,0x24,0x3b,0x95,0x4e,0x1c,0x98,0x75,0xcb,0x52,0x07,0xb3,0xee,0xfb,0x20,0xaa,
+	0xa4,0xd9,0x63,0xed,0x0d,0xc5,0xdd,0x3a,0xef,0x8a,0x04,0xcc,0x3b,0xaa,0x6d,0xc0,
+	0x3c,0x69,0xf2,0xd9,0x58,0x33,0x09,0x67,0xe2,0xf8,0x2c,0x17,0x9f,0x6e,0x96,0x0f,
+	0x48,0x31,0x08,0x78,0xda,0x11,0x3e,0x8e,0xf8,0x31,0x7e,0xf9,0xdb,0xe4,0xb8,0xdb,
+	0x39,0x11,0xd1,0xeb,0x90,0x81,0xb2,0x8c,0xba,0x92,0xc2,0x7a,0xca,0x48,0xe5,0x46,
+	0xe2,0xd3,0xe4,0x1c,0xcf,0xb9,0x95,0x93,0x46,0x79,0xeb,0xe1,0xf4,0x81,0x81,0x97,
+	0xce,0x88,0x95,0xa2,0xc0,0x9e,0x73,0xe0,0x20,0x7a,0x15,0x8b,0x96,0x54,0xf2,0x18,
+	0x54,0x33,0x40,0xd4,0x6f,0xde,0xdd,0xfd,0x72,0xf9,0xee,0xc5,0x1b,0xae,0x12,0x19,
+	0xda,0x1a,0x15,0x66,0xb2,0xf5,0x42,0x64,0x19,0x81,0x93,0xe8,0x3e,0x37,0x15,0xf1,
+	0xe6,0x54,0x09,0xe1,0x39,0x6c,0x29,0x8c,0xc8,0xfe,0x12,0x49,0xc5,0x39,0xd8,0x21,
+	0xc4,0xee,0xb0,0x72,0x81,0xf5,0x85,0x4c,0xe3,0x34,0x68,0x33,0x56,0xe6,0x04,0xe8,
+	0x54,0xea,0x71,0x3b,0x3e,0x82,0x31,0x88,0x5c,0xa9,0x35,0x06,0xb9,0xa1,0xfc,0x82,
+	0xf6,0x92,0x2b,0xeb,0x41,0x4a,0x67,0x62,0xe6,0xd3,0xc2,0x18,0x1e,0x9c,0xac,0xc6,
+	0x55,0xac,0x01,0xbc,0x7b,0xb5,0xbc,0xbb,0x7b,0xfc,0x39,0x2d,0x68,0x52,0xe1,0x2c,
+	0x14,0x13,0xc0,0xa9,0xe1,0x7b,0x24,0xf9,0x03,0x49,0x00,0xef,0x94,0x4f,0x66,0xbd,
+	0x47,0xe7,0x20,0x28,0xf5,0x49,0x90,0x1d,0x87,0x7f,0xc4,0xe1,0x0c,0xd9,0x59,0x5b,
+	0x34,0xbd,0x2c,0xb5,0x64,0xff,0xf9,0x32,0xe3,0xa7,0xd9,0x5e,0x3e,0x65,0xb8,0xea,
+	0x8f,0x2f,0x91,0xea,0x2b,0x52,0x81,0xd4,0x57,0x78,0x92,0xfb,0x8b,0x8c,0xa2,0xfa,
+	0x73,0x54,0xe4,0x2a,0x0d,0x4f,0xfc,0x41,0xe7,0x8a,0xa4,0xf8,0x29,0xcc,0x13,0x6b,
+	0x58,0xc9,0x3c,0x00,0x1a,0x70,0x86,0xf6,0x1d,0xd6,0x81,0xbe,0xd5,0x13,0x05,0xda,
+	0xd9,0x17,0x12,0x4b,0x17,0x08,0xbd,0x5a,0xde,0xdc,0xdf,0xfd,0x3c,0x2b,0xd3,0x07,
+	0x5a,0xf9,0x88,0x65,0x25,0x8d,0x2c,0x25,0xc5,0x89,0x6e,0x12,0x9c,0x37,0x93,0x18,
+	0xed,0x65,0x4d,0xe5,0x6d,0x43,0xc1,0x63,0x5a,0x79,0xee,0x95,0xb5,0x45,0x37,0xa6,
+	0x3d,0xe1,0x54,0xab,0x30,0xb3,0x5c,0x74,0xe5,0x42,0x5a,0x09,0x63,0x97,0xcb,0xe5,
+	0xd5,0xaf,0xc9,0x88,0x47,0xb5,0xaf,0x8d,0x95,0x56,0x03,0x48,0x1a,0xd8,0xb7,0x05,
+	0xd0,0x14,0x38,0x50,0x7b,0x30,0x4b,0xa0,0x5c,0xe0,0x09,0x58,0x61,0x56,0xbd,0x5f,
+	0x41,0xc8,0x5a,0xcc,0xae,0x45,0x2c,0xb2,0xe5,0xd0,0x6a,0xac,0x43,0x48,0x83,0xc5,
+	0xd5,0xe5,0xd5,0xaf,0x37,0xd7,0xb7,0xcb,0x99,0xd5,0x08,0xce,0xc8,0x0c,0xd2,0x0a,
+	0xea,0xd0,0x08,0x00,0x99,0xc8,0x0e,0x9f,0xf4,0x1e,0x42,0x65,0xfc,0x75,0x0e,0x8e,
+	0x18,0xec,0xbb,0xf1,0x98,0xbf,0xa3,0xe1,0x70,0x5e,0x08,0x4f,0x43,0xf9,0x87,0x0e,
+	0xc2,0x2c,0xbf,0xda,0x53,0x64,0x4b,0x1e,0x98,0xb6,0x15,0x0f,0x20,0x6c,0x53,0xda,
+	0x63,0xe6,0x7c,0x01,0xb1,0xcc,0x2c,0xf9,0x95,0xa9,0x00,0x8c,0x1b,0x25,0x14,0x26,
+	0x28,0xe0,0x94,0x98,0x8c,0x8a,0x64,0xec,0xeb,0x41,0x68,0x31,0xe0,0x67,0x57,0x3a,
+	0x3b,0x17,0x9c,0x68,0xd8,0x88,0x2c,0x53,0x26,0xac,0xd9,0xa9,0x2a,0x3b,0x18,0x5b,
+	0x16,0x13,0x8b,0x71,0x71,0x08,0xac,0x1c,0xe3,0x12,0x34,0x74,0x8c,0xc0,0xd0,0xd0,
+	0x93,0x29,0x20,0x39,0xcf,0x7a,0xb6,0xf6,0x8d,0x1b,0x49,0xe2,0xd7,0x23,0xce,0x5d,
+	0x1a,0x8a,0x5c,0x41,0x56,0xab,0xa8,0x5b,0x5e,0xc0,0x94,0x45,0x86,0xb8,0x7d,0x6a,
+	0x1e,0x40,0x52,0xb0,0x5d,0xd7,0xd4,0xa0,0x7b,0x94,0xc6,0x5a,0x91,0x4d,0xba,0x74,
+	0x2a,0x30,0x86,0x03,0x76,0x1e,0x68,0xaa,0xbb,0xf6,0x57,0x9b,0x5d,0xf5,0x8b,0x5a,
+	0x09,0x65,0x8c,0xa1,0x62,0xe5,0x9e,0x22,0x35,0x5c,0x91,0x8c,0xa0,0x08,0x33,0x9c,
+	0x73,0x69,0x07,0x8c,0x84,0xcb,0xfe,0xd6,0x3c,0x1d,0x09,0x0d,0xb2,0x9d,0x3a,0x3a,
+	0xb2,0xd2,0xb7,0x37,0xbf,0x3d,0x90,0x91,0xf2,0xfa,0x64,0x9a,0x5d,0x11,0x07,0x1d,
+	0x74,0x38,0x7c,0x48,0x41,0xa4,0x95,0xc9,0x92,0x9e,0xcf,0x88,0x01,0x4c,0x4f,0x79,
+	0x59,0x1e,0x85,0x39,0x5b,0xa4,0xab,0x94,0xc7,0x7a,0xd2,0x24,0x1d,0x9e,0x87,0xf0,
+	0x3e,0x0e,0x27,0x60,0x42,0x24,0x6d,0x87,0x6b,0x47,0xde,0xa3,0x7d,0xb1,0x92,0x96,
+	0x05,0x8f,0x07,0xe1,0xf1,0xf1,0x37,0xe6,0x90,0xec,0x2f,0x6b,0x1b,0x2c,0x09,0xd4,
+	0x85,0x32,0x02,0x1d,0xf5,0x1e,0xce,0x8d,0xd7,0x8a,0x9d,0x82,0xf8,0xa2,0x37,0x2a,
+	0x5b,0x17,0xe2,0xf5,0x35,0x8f,0xfa,0x4c,0x2a,0x6b,0xe9,0x43,0xfc,0xd8,0x61,0x30,
+	0x79,0x8f,0x58,0xa6,0x30,0x96,0xe7,0x69,0xec,0x46,0x0d,0x2c,0xf2,0x5a,0x51,0xa5,
+	0x96,0x5a,0x78,0x48,0x17,0x23,0x4c,0xc6,0x76,0x56,0x28,0x26,0x78,0xad,0xcb,0x9f,
+	0xfe,0x84,0x4e,0x66,0xbf,0x84,0x3a,0xaa,0x18,0xb2,0x6e,0x4c,0x00,0x8d,0xd9,0xc9,
+	0x62,0x29,0x3b,0xf1,0x01,0x10,0x35,0x64,0xb4,0x25,0xf4,0x04,0x54,0xeb,0x99,0x23,
+	0x6e,0xed,0x29,0xb8,0xce,0x5e,0x0e,0x24,0x86,0xa1,0x08,0xad,0x72,0x90,0x90,0xc4,
+	0x3d,0xde,0xbe,0xbf,0x49,0xa6,0xf9,0x8c,0xcf,0x48,0xbf,0xf8,0xdc,0x29,0x90,0x4b,
+	0x41,0x62,0xde,0x80,0xe3,0x05,0x87,0xa7,0x9e,0xf2,0xb2,0x71,0x18,0x18,0x7c,0xc3,
+	0xb1,0x07,0xcb,0xdc,0xc5,0x58,0x61,0x0d,0x81,0x12,0x96,0x36,0x5f,0x60,0xbf,0xf8,
+	0xf6,0xf1,0xc5,0x15,0x37,0x66,0xd3,0x10,0xc6,0xa1,0xfb,0x73,0x80,0xbd,0x65,0x6c,
+	0xa2,0xa2,0x59,0xc4,0xdf,0xfd,0x92,0x6c,0x97,0x16,0xb5,0xdd,0xd8,0xd0,0xd5,0xa9,
+	0xe6,0xf9,0xe9,0x3a,0x54,0x80,0xfc,0x28,0x6c,0x34,0x31,0xcf,0xa1,0x51,0x72,0x40,
+	0xb8,0x20,0x28,0x2e,0x00,0x77,0xe0,0x10,0x1d,0x3a,0x80,0xe8,0x19,0xc9,0xec,0x2a,
+	0x49,0xd3,0x83,0x56,0x42,0xdc,0x29,0xe5,0x31,0x43,0x53,0x40,0xc4,0x87,0x89,0xc4,
+	0x52,0xc9,0xa2,0xcd,0x2a,0xc2,0x80,0xb0,0x0e,0x59,0x0c,0x0d,0x8b,0x27,0x93,0x8d,
+	0xd9,0x8d,0x0e,0x32,0xa4,0x7c,0x79,0xe3,0x19,0x04,0xc2,0x98,0x16,0x33,0x48,0xba,
+	0xd9,0xd6,0x98,0x1d,0xd3,0x3d,0xec,0x74,0x8d,0xe5,0x8a,0xbf,0xd6,0x88,0xb4,0xf8,
+	0x3c,0x92,0x88,0xf3,0x15,0x48,0x0f,0xe7,0x63,0xfc,0x0b,0x8f,0x19,0xb9,0x74,0xa5,
+	0x3d,0x44,0x2b,0x6b,0x84,0x2f,0xb7,0xc3,0x40,0x2b,0x0b,0x00,0x3d,0xfd,0xf9,0xe8,
+	0xb8,0xa6,0xd4,0xd2,0x89,0x03,0xa6,0x61,0xc1,0x0f,0x92,0x60,0x51,0x49,0x14,0xfa,
+	0xf9,0x7d,0xbd,0x76,0xdc,0x5a,0xc3,0xd6,0x7f,0x6a,0x09,0xb4,0x6e,0xb1,0xea,0xcf,
+	0x7d,0x0b,0xcf,0x34,0x84,0xc9,0x7f,0xc2,0x8e,0xb1,0x79,0x32,0xea,0x19,0x21,0x65,
+	0x89,0x36,0x14,0xd2,0xc9,0xf6,0x73,0x59,0x1e,0xe4,0x11,0x52,0x6d,0xd8,0x76,0xc0,
+	0xbe,0x30,0x22,0xce,0xb0,0x3a,0xc6,0x78,0x0c,0xe7,0x68,0x38,0x76,0x6c,0x7b,0xf4,
+	0xa1,0x9f,0xcf,0xbf,0x63,0x06,0xc3,0x55,0x4f,0xdc,0x57,0x9a,0xc9,0x21,0xb9,0xa7,
+	0xe0,0x4f,0x5b,0xdf,0x00,0x30,0x7c,0xb8,0xe4,0xe3,0x15,0xda,0xc4,0xf1,0x71,0x5c,
+	0x98,0x5e,0x53,0x54,0xc3,0x45,0xc8,0xe1,0x5c,0xa4,0xcb,0x2d,0x56,0x6c,0xc7,0xf8,
+	0xcf,0xd6,0xcc,0x88,0x07,0x23,0xb0,0x3c,0x65,0xc5,0xc6,0x9a,0xa6,0x3e,0x3b,0xd5,
+	0xd0,0xcc,0x40,0xe8,0xb1,0x17,0xc8,0x7d,0xdc,0x9e,0xf4,0x57,0xc0,0x5d,0x53,0xf7,
+	0xa5,0xcf,0xc3,0xa6,0x61,0x12,0x22,0xad,0xf3,0x00,0xf6,0x6c,0x36,0x94,0x39,0x66,
+	0x35,0x86,0x1c,0x8e,0x13,0x25,0x90,0x00,0x3e,0x63,0x6e,0xd3,0x17,0xde,0x18,0x06,
+	0xe9,0x88,0x98,0xa3,0xf0,0x3e,0x24,0xd7,0x83,0x0b,0x18,0x61,0xfb,0xc1,0xf9,0xd2,
+	0x14,0x01,0xf9,0x26,0xd8,0xc6,0x38,0x37,0x76,0xaa,0xe3,0x70,0xcb,0xc1,0x76,0xde,
+	0x58,0x17,0xf3,0x1c,0x74,0x0b,0x2e,0x57,0x54,0xce,0x06,0xc8,0x4b,0xbb,0x97,0xa8,
+	0x6d,0x6e,0x79,0x72,0x21,0x05,0x98,0x50,0x65,0xf9,0x0d,0x82,0x46,0x9a,0xd8,0xcb,
+	0xbc,0x62,0x3f,0x90,0x88,0xfa,0xff,0x6d,0xae,0x27,0xf9,0x67,0x8f,0x45,0x4d,0x48,
+	0x70,0x99,0x3d,0xde,0x59,0x80,0x3c,0x9d,0xeb,0x2e,0x71,0x04,0x81,0x96,0xd8,0x46,
+	0x20,0x1f,0x8b,0xc2,0xf7,0xa6,0xce,0x4a,0x88,0x1d,0xb0,0x94,0x89,0xac,0xcf,0x3b,
+	0xc1,0x94,0xbd,0x05,0x59,0xc7,0x49,0x1e,0x61,0x1d,0x6e,0x40,0x5e,0x9b,0x81,0x21,
+	0x87,0x86,0xd4,0x30,0x16,0x75,0x9a,0x8a,0xb9,0x68,0x57,0x7d,0x9b,0xe2,0xf1,0x01,
+	0x81,0xa2,0x2f,0x9f,0x23,0x1d,0x7b,0xfb,0x6f,0x60,0x15,0xb0,0x33,0xb4,0x2c,0x5f,
+	0x53,0xcb,0x31,0x65,0xf7,0x1d,0x19,0x83,0xae,0x76,0x3d,0x76,0x19,0x38,0xb6,0xd2,
+	0xa2,0xc3,0xa8,0x76,0x2e,0x2d,0x4e,0x21,0x95,0x41,0x2a,0x70,0x80,0x35,0xa0,0x78,
+	0x88,0x2d,0x63,0x98,0x44,0x2d,0x9b,0xd0,0xd3,0x0c,0x27,0xe5,0x9c,0xfb,0x90,0x30,
+	0x10,0x69,0x97,0x53,0x67,0x80,0x19,0xeb,0x15,0xd3,0xe9,0x26,0xd4,0x3a,0xd4,0xd4,
+	0x87,0x18,0xc5,0x6e,0x9b,0x32,0x99,0x04,0xa3,0x9a,0x7d,0x4d,0xeb,0x5f,0x70,0x07,
+	0xb1,0x5d,0xb9,0x4d,0x79,0xc6,0xae,0xfe,0x7f,0xe9,0xee,0x1b,0x5b,0x8e,0xde,0x33,
+	0xbc,0x50,0x7b,0xa3,0x81,0x0d,0x7e,0x5c,0xbe,0xa3,0xc8,0x27,0x91,0xd8,0xb7,0x2b,
+	0x96,0x74,0xca,0xed,0xd6,0xd7,0xfa,0xa9,0xa7,0xd6,0x02,0xe5,0x33,0x38,0x26,0x70,
+	0xc6,0x9d,0xa1,0xc6,0x6a,0xaf,0xc3,0x0d,0x32,0x1e,0x77,0x3b,0x12,0xb0,0x8a,0xb7,
+	0xd2,0xe2,0x59,0xd3,0xc3,0x1c,0xbe,0x07,0xc3,0xcf,0x02,0x03,0xdd,0x78,0x0a,0xe8,
+	0x80,0x26,0x05,0x3b,0x89,0x43,0x21,0x4c,0xa7,0xc6,0x00,0x28,0xbe,0x30,0xb4,0xfe,
+	0xf4,0x87,0xf2,0x42,0x30,0xcf,0xdd,0xc8,0x24,0x9e,0x70,0xe5,0x27,0xe9,0xbd,0x4d,
+	0x86,0xa3,0x5c,0xfa,0xc7,0x8d,0x13,0x50,0x41,0x03,0x59,0x4d,0x6d,0x32,0x94,0x3a,
+	0x8f,0x59,0x06,0x96,0xca,0x29,0x06,0xf7,0x2e,0x89,0x4a,0xe9,0x4e,0x6b,0x4d,0x3f,
+	0xc5,0x5e,0xf2,0x2d,0x25,0xf6,0x13,0x7a,0x6b,0x4b,0x88,0xe2,0xf1,0xe6,0xcb,0xe3,
+	0x2c,0x2f,0x18,0xc2,0xc8,0xb4,0x41,0x1a,0x73,0x13,0x9a,0x7e,0x78,0x50,0x31,0x94,
+	0xe7,0xb0,0x9d,0x7f,0x6f,0x54,0x85,0x06,0x4e,0x95,0x7f,0xe4,0x03,0x68,0x43,0xb4,
+	0xcf,0xb2,0xe4,0xa7,0xb7,0x1f,0xae,0x6f,0xbe,0x84,0x9d,0x43,0xfc,0x48,0xe1,0x38,
+	0x36,0x45,0x62,0x07,0x80,0x63,0x47,0x1e,0x85,0x47,0xad,0x56,0x30,0x61,0x53,0x3f,
+	0x5b,0x17,0xe0,0x98,0x8c,0x3a,0xf4,0x21,0x2b,0x3c,0x84,0xc9,0xe8,0x6a,0x4b,0x43,
+	0xb7,0x55,0xb8,0xe0,0x00,0x91,0xdc,0xec,0x34,0x29,0x22,0x61,0xd0,0x72,0x90,0xb6,
+	0xc2,0x9a,0xe5,0x28,0x9b,0xc4,0x35,0xc2,0xcb,0xd0,0xc9,0x89,0x57,0x62,0x46,0xb1,
+	0x8f,0x55,0x94,0xa0,0xf7,0x6a,0x4a,0x0f,0x41,0xe1,0xc1,0x90,0x5e,0xba,0x5e,0x21,
+	0x09,0x77,0x8d,0x03,0x4f,0x6b,0x9e,0xb5,0xc2,0x1d,0xf8,0x5b,0x6c,0x44,0xa7,0x9a,
+	0x97,0x0b,0xae,0x99,0xf5,0x76,0x48,0xd7,0x1b,0xf9,0x9a,0xc2,0x7c,0x37,0xbd,0xcb,
+	0x17,0xc7,0xe6,0xd3,0x87,0x9c,0xee,0x86,0x4b,0x77,0xe3,0x10,0xa8,0xd4,0x62,0xc2,
+	0xf7,0x70,0xe8,0x54,0xf7,0xaf,0xd3,0x62,0x89,0xce,0x4b,0xdf,0xb8,0xd6,0x75,0xc4,
+	0xbb,0x7e,0x3d,0x8e,0x63,0xf2,0x02,0x69,0x5b,0x68,0x2c,0x0d,0xf8,0xbc,0x5f,0x70,
+	0xaa,0x8d,0xad,0x8c,0x3e,0xe9,0x61,0x2b,0xfb,0xbc,0xc6,0x51,0xb3,0xde,0x9f,0xc8,
+	0x82,0x87,0x1f,0x21,0x5b,0x3a,0xd3,0x39,0x79,0x14,0xcc,0x37,0xe6,0x2d,0xaa,0x85,
+	0x8a,0xad,0xc6,0xbb,0x39,0x34,0x1b,0x26,0xd1,0xc9,0x3c,0x3f,0xb4,0x4e,0x6c,0x88,
+	0xaf,0xc4,0x09,0x5f,0x59,0x98,0xe5,0x22,0xc9,0x39,0xff,0x54,0xd3,0x8e,0xa1,0x33,
+	0xb3,0xfe,0x05,0x07,0x24,0x3d,0x20,0x69,0xb8,0x04,0x31,0x41,0x1a,0xdd,0x49,0x7f,
+	0x9a,0xa6,0x76,0x1e,0x4e,0xdc,0x3e,0xde,0x9e,0xc0,0x89,0x3e,0xd3,0x44,0x5b,0x93,
+	0x81,0x2d,0xb9,0x59,0x1e,0x82,0x1c,0x68,0xcc,0xb8,0xe6,0x91,0xc6,0x2c,0x19,0xc0,
+	0xf9,0x58,0x10,0xa3,0xad,0xfc,0x0b,0x86,0xd9,0x26,0x90,0x96,0x1a,0xe2,0x5e,0xa7,
+	0xc4,0xb3,0x62,0x10,0x0f,0xf7,0xd7,0x5f,0x44,0x1c,0x0a,0x96,0x50,0x79,0xe4,0xc0,
+	0xc6,0x9a,0x45,0x29,0xf3,0x7e,0x00,0xdf,0x2e,0xde,0x2f,0xad,0x91,0x5c,0x78,0x3b,
+	0x1e,0x7b,0xa0,0xad,0x65,0xcf,0x43,0xfd,0x5e,0xda,0x1d,0x5f,0x82,0xa2,0x6b,0x3a,
+	0xb8,0xd2,0x1e,0x96,0xe7,0x95,0x27,0xf6,0x4d,0x2b,0x0f,0x56,0x3d,0x50,0x83,0x6e,
+	0xb0,0x7b,0xaa,0xcf,0xc2,0x28,0x3f,0x5f,0xe1,0x4e,0x79,0xa4,0x05,0xbd,0xd5,0x9b,
+	0x8d,0xb2,0x13,0xb9,0x4a,0x68,0x9a,0xb4,0x03,0x06,0x06,0xf0,0x2d,0xb8,0xb4,0x36,
+	0xe1,0x36,0x0c,0x6f,0x21,0x81,0xa5,0xdb,0x49,0x6c,0x38,0x15,0x93,0x02,0xe1,0x1d,
+	0x79,0x1e,0x5b,0x43,0x3c,0xd4,0xc5,0xb3,0x7d,0xc2,0xf6,0x6d,0x4a,0xc7,0x38,0xd8,
+	0xb6,0xb8,0xa6,0xe8,0xba,0xb7,0x29,0x61,0x12,0x79,0xe0,0xbb,0x24,0x0e,0x09,0x5d,
+	0xdd,0xd9,0x32,0x71,0x32,0x75,0x47,0xdf,0x9b,0x9b,0xdd,0x28,0x08,0x58,0x57,0x03,
+	0x43,0x4b,0x2f,0x74,0xf3,0x80,0xd9,0xf0,0x6b,0x34,0xbe,0x85,0x89,0xe3,0x10,0x13,
+	0x5b,0x35,0x8f,0x68,0xe2,0x80,0xd3,0x5a,0x45,0x7d,0xb6,0x17,0x44,0xc2,0x15,0xf4,
+	0x93,0x0e,0x27,0x58,0x14,0x3c,0x1d,0xde,0x70,0x69,0xfb,0x8f,0xb3,0x7e,0x86,0xc2,
+	0x4b,0xd7,0xdd,0x75,0x0f,0x77,0x4e,0x06,0xf0,0x3f,0xe5,0x7c,0x28,0xdc,0x50,0x4f,
+	0x60,0xc8,0x22,0xfe,0x9d,0x41,0x92,0x0e,0x50,0xd8,0xe8,0x04,0xbd,0x2f,0xb9,0x85,
+	0xb2,0x95,0x6e,0xa4,0x0e,0xa6,0x59,0x75,0x37,0xcc,0x3b,0x75,0x4c,0xaa,0x8f,0xb7,
+	0x8a,0x35,0x9c,0xde,0x42,0xb3,0x7e,0x86,0xc7,0x4f,0x3a,0x9a,0xf3,0xd1,0xa1,0x07,
+	0x98,0x39,0x91,0x6d,0x8e,0xbc,0xca,0x49,0x85,0xb2,0x68,0xbb,0x1b,0x13,0x31,0xaa,
+	0x1e,0x2b,0x75,0x70,0x7a,0xba,0x90,0x35,0xbd,0x03,0x31,0xd3,0x4f,0x9e,0x0f,0xda,
+	0xc2,0x7d,0xd1,0x51,0x49,0x57,0x6f,0x2a,0xe4,0xba,0x5f,0x93,0x0b,0xbc,0xb5,0x2e,
+	0x37,0x59,0x1a,0xce,0x3c,0xe3,0x73,0x05,0xbf,0xf8,0x66,0xd9,0x7f,0xab,0x2c,0x41,
+	0x95,0x4b,0x55,0xae,0x7b,0x19,0x48,0x28,0x5d,0x15,0x86,0x82,0x57,0x69,0xdb,0x63,
+	0xde,0x5e,0x19,0x7c,0x89,0xe2,0x85,0xb4,0xbf,0x74,0x2f,0x4f,0x85,0x06,0xa1,0x49,
+	0xd0,0x54,0x6a,0x94,0xd8,0xe1,0x33,0x9c,0x8d,0x7b,0x58,0xe9,0x25,0xed,0x41,0x58,
+	0x81,0x6d,0xf6,0x67,0x9a,0x9b,0x7c,0x01,0x7a,0xd8,0xe6,0xc7,0x82,0x6b,0x72,0x25,
+	0x65,0xd0,0x6c,0x4d,0x37,0x9d,0x11,0x92,0x41,0x98,0x4f,0xb5,0x86,0xf0,0xd7,0x0a,
+	0x52,0xf4,0xe4,0xf2,0x1f,0x6c,0xfc,0xa4,0x7d,0x86,0xb9,0xbb,0xbb,0x19,0x9f,0x42,
+	0xbb,0xf9,0x24,0xea,0xb4,0x18,0xdc,0x6f,0x61,0xf4,0x6e,0xa1,0x1d,0x85,0x97,0x1b,
+	0x32,0xb8,0x7c,0x11,0xab,0x7d,0xc3,0x7b,0x1b,0xd3,0x00,0x4f,0x23,0x5b,0x6b,0x47,
+	0x64,0xa2,0x8b,0x0f,0xda,0x1f,0x13,0x07,0xc7,0x77,0x99,0xc6,0x51,0x48,0xda,0x32,
+	0x4f,0x01,0x0f,0xa7,0x51,0xf2,0x99,0x53,0xde,0x31,0x4e,0xd1,0x4f,0xc8,0xc7,0xd8,
+	0xc8,0x35,0x76,0x21,0xee,0xee,0x6f,0x96,0xf8,0x37,0x6c,0x08,0xf2,0xf8,0xdb,0x9b,
+	0x41,0xa6,0x1a,0xd2,0xb6,0x16,0x88,0xb9,0x5a,0x1b,0xc8,0xda,0xa2,0x2f,0x9d,0x86,
+	0xc9,0xdb,0x29,0x33,0xee,0x8e,0xaf,0x79,0xf8,0x83,0x19,0xff,0xe1,0xca,0x29,0x0d,
+	0xc7,0x93,0xf6,0xe2,0xc5,0xbf,0x01,0xe1,0xf3,0xcb,0x23,
+};
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/apk-tools: new package
  2022-05-11 11:45 [Buildroot] [PATCH 1/1] package/apk-tools: new package TIAN Yuanhao
@ 2022-08-01 22:16 ` Thomas Petazzoni via buildroot
  2022-08-02  3:50 ` François Perrad
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-01 22:16 UTC (permalink / raw)
  To: TIAN Yuanhao; +Cc: buildroot

Hello,

Thanks for your contribution.

On Wed, 11 May 2022 04:45:08 -0700
TIAN Yuanhao <tianyuanhao3@163.com> wrote:

> Alpine Package Keeper (apk) is a package manager developed for Alpine
> Linux.
> 
> Signed-off-by: TIAN Yuanhao <tianyuanhao3@163.com>
> ---
> 
> I did read [1] before I submitted this patch.
> 
> I need a package manager in an embedded system and I found there are
> some Buildroot based projects having similar things like [2] and [3].
> Given the popularity of Alpine Linux in containers, I would like to
> choose apk as the package manager.
> 
> There is a performance comparison of package managers at [4].
> 
> An interesting finding is that OpenWrt seems to be planning to switch
> from opkg to apk [5].
> 
> In conclusion, I think Buildroot should have apk.
> 
> [1]: http://patchwork.ozlabs.org/project/buildroot/patch/1426736888-29437-5-git-send-email-steven@uplinklabs.net/
> [2]: https://github.com/batocera-linux/batocera.linux/blob/5.27/package/batocera/utils/pacman/pacman.mk
> [3]: https://github.com/gportay/linux-distros-br2-external/blob/master/package/apk-tools/apk-tools.mk
> [4]: https://michael.stapelberg.ch/posts/2019-08-17-linux-package-managers-are-slow/#measurements
> [5]: https://github.com/openwrt/openwrt/pull/4294

Thanks for your contribution and this argumentation. I will need some
feedback from other Buildroot maintainers before we can merge this
patch.

Could you describe a bit more how you are going to use it in the
context of Buildroot (which, as a reminder, doesn't support generate
binary packages) ?


> diff --git a/package/apk-tools/Config.in b/package/apk-tools/Config.in
> new file mode 100644
> index 0000000000..a7926a7c70
> --- /dev/null
> +++ b/package/apk-tools/Config.in
> @@ -0,0 +1,12 @@
> +config BR2_PACKAGE_APK_TOOLS
> +	bool "apk-tools"
> +	depends on !BR2_STATIC_LIBS # unconditionally shared
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # compound literals

Then you need a Config.in "comment", look at how other packages do this.

> +	depends on BR2_USE_MMU # fork()
> +	select BR2_PACKAGE_OPENSSL
> +	select BR2_PACKAGE_ZLIB
> +	help
> +	  Alpine Package Keeper (apk) is a package manager developed for
> +	  Alpine Linux.
> +
> +	  https://gitlab.alpinelinux.org/alpine/apk-tools
> diff --git a/package/apk-tools/apk-tools.hash b/package/apk-tools/apk-tools.hash
> new file mode 100644
> index 0000000000..a9ec2fb2ce
> --- /dev/null
> +++ b/package/apk-tools/apk-tools.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +sha256  6362d8a14bb0460f15a041754148344cbfc0a953461c702717e0d263d054db4d  apk-tools-v2.12.9.tar.bz2
> +sha256  b3c87315aae4c9f276c37168f2655dd8bd990544d7a0bbfb929664155c7ab257  LICENSE
> diff --git a/package/apk-tools/apk-tools.mk b/package/apk-tools/apk-tools.mk
> new file mode 100644
> index 0000000000..b92092cd73
> --- /dev/null
> +++ b/package/apk-tools/apk-tools.mk
> @@ -0,0 +1,53 @@
> +################################################################################
> +#
> +# apk-tools
> +#
> +################################################################################
> +
> +# Regenerate help.h when changing the version number
> +APK_TOOLS_VERSION = 2.12.9
> +APK_TOOLS_SITE = https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/v$(APK_TOOLS_VERSION)
> +APK_TOOLS_SOURCE = apk-tools-v$(APK_TOOLS_VERSION).tar.bz2
> +APK_TOOLS_LICENSE = GPL-2.0
> +APK_TOOLS_LICENSE_FILES = LICENSE
> +
> +APK_TOOLS_DEPENDENCIES = host-pkgconf openssl zlib
> +
> +APK_TOOLS_MAKE_OPTS = \
> +	CROSS_COMPILE="$(TARGET_CROSS)" \
> +	LUA=no \
> +	SCDOC=: \
> +	V=1 \

V=1 should probably be conditional on the $(QUIET) variable.

> +	cmd_genhelp=:

I think we prefer to use /bin/true instead of : in such situations.

> +
> +ifeq ($(BR2_SHARED_LIBS),y)
> +APK_TOOLS_MAKE_OPTS += \
> +	PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)"
> +else
> +APK_TOOLS_MAKE_OPTS += \
> +	PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY) --static" \

This should not be needed, in the BR2_STATIC_LIBS case, pkg-config
already uses --static.

> +	STATIC=y

Isn't this forcing static linking? Your Config.in prevents
BR2_STATIC_LIBS=y configuration, so in the else clause of
BR2_SHARED_LIBS, you only have BR2_SHARED_STATIC_LIBS=y, a case where
we want to link dynamically but (ideally) build/install both shared and
static libraries (even though clearly many of our packages do not
comply with this).

> +endif
> +
> +define APK_TOOLS_CONFIGURE_CMDS
> +	$(SED) 's/#\S\+\s\(APK_DEFAULT_ARCH\)\s.*/#define \1 $(BR2_ARCH)/' \
> +		$(@D)/src/apk_defines.h
> +	# Copy the pre-generated help.h so we don't need host-lua
> +	$(INSTALL) -D -m 644 $(APK_TOOLS_PKGDIR)/help.h $(@D)/src/help.h

Please add host-lua as a dependency. This pre-generated help.h is
really horrible :-/

> +define APK_TOOLS_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
> +		$(APK_TOOLS_MAKE_OPTS)
> +endef
> +
> +define APK_TOOLS_INSTALL_TARGET_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install \
> +		$(APK_TOOLS_MAKE_OPTS) \
> +		DESTDIR=$(TARGET_DIR)
> +	# Prepare an empty apk database
> +	$(INSTALL) -D -m 644 /dev/null $(TARGET_DIR)/etc/apk/world

What are you trying to do here? Seems weird to install /dev/null.

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/apk-tools: new package
  2022-05-11 11:45 [Buildroot] [PATCH 1/1] package/apk-tools: new package TIAN Yuanhao
  2022-08-01 22:16 ` Thomas Petazzoni via buildroot
@ 2022-08-02  3:50 ` François Perrad
  1 sibling, 0 replies; 3+ messages in thread
From: François Perrad @ 2022-08-02  3:50 UTC (permalink / raw)
  To: buildroot; +Cc: TIAN Yuanhao


[-- Attachment #1.1: Type: text/plain, Size: 1577 bytes --]

Le mer. 11 mai 2022 à 13:45, TIAN Yuanhao <tianyuanhao3@163.com> a écrit :

> Alpine Package Keeper (apk) is a package manager developed for Alpine
> Linux.
>
> Signed-off-by: TIAN Yuanhao <tianyuanhao3@163.com>
> ---
>
> I did read [1] before I submitted this patch.
>
> I need a package manager in an embedded system and I found there are
> some Buildroot based projects having similar things like [2] and [3].
> Given the popularity of Alpine Linux in containers, I would like to
> choose apk as the package manager.
>
>
FYI, the package Busybox could be built with its own version of dpkg,
dpkg-deb, rpm, rpm2cpio (see section Archival Utilities).

François


> There is a performance comparison of package managers at [4].
>
> An interesting finding is that OpenWrt seems to be planning to switch
> from opkg to apk [5].
>
> In conclusion, I think Buildroot should have apk.
>
> [1]:
> http://patchwork.ozlabs.org/project/buildroot/patch/1426736888-29437-5-git-send-email-steven@uplinklabs.net/
> [2]:
> https://github.com/batocera-linux/batocera.linux/blob/5.27/package/batocera/utils/pacman/pacman.mk
> [3]:
> https://github.com/gportay/linux-distros-br2-external/blob/master/package/apk-tools/apk-tools.mk
> [4]:
> https://michael.stapelberg.ch/posts/2019-08-17-linux-package-managers-are-slow/#measurements
> [5]: https://github.com/openwrt/openwrt/pull/4294
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
>

[-- Attachment #1.2: Type: text/html, Size: 3030 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-02  3:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-11 11:45 [Buildroot] [PATCH 1/1] package/apk-tools: new package TIAN Yuanhao
2022-08-01 22:16 ` Thomas Petazzoni via buildroot
2022-08-02  3:50 ` François Perrad

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.