aboutsummaryrefslogtreecommitdiff
path: root/package/system/apk/Makefile
diff options
context:
space:
mode:
authorPaul Spooren <mail@aparcar.org>2024-03-17 18:11:48 +0100
committerPaul Spooren <mail@aparcar.org>2024-04-29 11:36:03 +0200
commit00b86168bd3c575a740696eaf25f31f01d178b4b (patch)
tree8f9627d322f6ea471fa2de7211f909f308574bdb /package/system/apk/Makefile
parent7d5f7b8b6ca408f8a8282d14c89f1f3fa14f4ef7 (diff)
apk: add package
APK (Alpine Package Keeper) is the package manager of Alpine Linux and has multiple advantages over OPKG. While Alpine uses APK version 2, this commit adds version 3 with a heavily optimised database structure and additional feature making it suitable for OpenWrt. This commit will be followed by many more to add APK build capabilities to the OpenWrt build system, firstly enabling side by side builds of APK and OPKG packages, later replacing OPKG entirely. Signed-off-by: Paul Spooren <mail@aparcar.org>
Diffstat (limited to 'package/system/apk/Makefile')
-rw-r--r--package/system/apk/Makefile87
1 files changed, 87 insertions, 0 deletions
diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
new file mode 100644
index 0000000000..912ddc253e
--- /dev/null
+++ b/package/system/apk/Makefile
@@ -0,0 +1,87 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=apk
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2024-04-16
+PKG_SOURCE_VERSION:=ba6c31a5469ef74fb85119508e55de9631ffef41
+PKG_MIRROR_HASH:=3455d5799481add9ece3db685576d58be6303f3a13140133979b965cbd3c9966
+
+PKG_VERSION=3.0.0_pre$(subst -,,$(PKG_SOURCE_DATE))
+
+PKG_MAINTAINER:=Paul Spooren <mail@aparcar.org>
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=LICENSE
+PKG_INSTALL:=1
+
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+HOST_BUILD_DEPENDS:=lua/host
+PKG_BUILD_DEPENDS:=$(HOST_BUILD_DEPENDS)
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/meson.mk
+
+define Package/apk/default
+ SECTION:=base
+ CATEGORY:=Base system
+ TITLE:=apk package manager
+ DEPENDS:=+zlib
+ URL:=$(PKG_SOURCE_URL)
+endef
+
+define Package/apk-mbedtls
+ $(Package/apk/default)
+ TITLE += (mbedtls)
+ DEPENDS +=+libmbedtls
+ VARIANT:=mbedtls
+ DEFAULT_VARIANT:=1
+ CONFLICTS:=apk-openssl
+endef
+
+define Package/apk-openssl
+ $(Package/apk/default)
+ TITLE += (openssl)
+ DEPENDS +=+libopenssl
+ VARIANT:=openssl
+endef
+
+MESON_HOST_VARS+=VERSION=$(PKG_VERSION)
+MESON_VARS+=VERSION=$(PKG_VERSION)
+
+MESON_HOST_ARGS += \
+ -Dlua_version=5.1 \
+ -Dcompressed-help=false \
+ -Ddocs=disabled \
+ -Dcrypto_backend=openssl \
+ -Dzstd=false
+
+MESON_ARGS += \
+ -Dlua_version=5.1 \
+ -Dcompressed-help=false \
+ -Ddocs=disabled \
+ -Durl_backend=wget \
+ -Dcrypto_backend=$(BUILD_VARIANT) \
+ -Dzstd=false
+
+HOST_LDFLAGS += \
+ -Wl,-rpath $(STAGING_DIR_HOST)/lib
+
+define Package/apk/default/install
+ $(INSTALL_DIR) $(1)/lib/apk/db
+
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/apk $(1)/usr/bin/apk
+
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libapk.so.* $(1)/usr/lib/
+endef
+
+Package/apk-mbedtls/install = $(Package/apk/default/install)
+Package/apk-openssl/install = $(Package/apk/default/install)
+
+$(eval $(call BuildPackage,apk-mbedtls))
+$(eval $(call BuildPackage,apk-openssl))
+$(eval $(call HostBuild))