diff options
author | Jo-Philipp Wich <jo@mein.io> | 2017-02-16 17:36:47 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2017-02-19 19:08:46 +0100 |
commit | b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9 (patch) | |
tree | 6ebef4cc7d786698b57488d1d3d929dd7c398560 /package/system/opkg/Makefile | |
parent | 84ceca514841dd6d4705dc27d2104ee0aa18b9e1 (diff) | |
download | upstream-b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9.tar.gz upstream-b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9.tar.bz2 upstream-b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9.zip |
opkg: switch to own fork to improve memory usage
Switch to our own fork of opkg to significantly reduce the required amount
of memory when updating lists or installing packages.
Preliminary tests showed a usage drop of about 90% during these operations,
from ~3.7MB with unmodified opkg to ~360KB with our custom fork.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'package/system/opkg/Makefile')
-rw-r--r-- | package/system/opkg/Makefile | 88 |
1 files changed, 24 insertions, 64 deletions
diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile index 39e6b4d058..5586eadcad 100644 --- a/package/system/opkg/Makefile +++ b/package/system/opkg/Makefile @@ -11,15 +11,13 @@ include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/feeds.mk PKG_NAME:=opkg -PKG_RELEASE:=17 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=http://git.yoctoproject.org/git/opkg -PKG_SOURCE_DATE:=2011-04-08 -PKG_SOURCE_VERSION:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d -PKG_MIRROR_HASH:=55e05270f3eb2f3aff5d3791463ce3d13b8197ca7b301cd58e731a249552c48f -PKG_FIXUP:=autoreconf -PKG_REMOVE_FILES = autogen.sh aclocal.m4 +PKG_SOURCE_URL:=https://git.lede-project.org/project/opkg-lede.git +PKG_SOURCE_DATE:=2017-02-18 +PKG_SOURCE_VERSION:=db3fc0ce879bfe784d32ffe5a70e057459039dd5 +PKG_MIRROR_HASH:= PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING @@ -33,15 +31,18 @@ PKG_BUILD_PARALLEL:=1 HOST_BUILD_PARALLEL:=1 PKG_INSTALL:=1 +HOST_BUILD_DEPENDS:=libubox/host + include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/cmake.mk define Package/opkg SECTION:=base CATEGORY:=Base system TITLE:=opkg package manager - DEPENDS:=+uclient-fetch +libpthread - URL:=http://wiki.openmoko.org/wiki/Opkg + DEPENDS:=+uclient-fetch +libpthread +libubox + URL:=https://git.lede-project.org/?p=project/opkg-lede.git MENU:=1 endef @@ -55,16 +56,6 @@ define Package/opkg/description opkg knows how to install both .ipk and .deb packages. endef -define Package/opkg/config -config OPKG_SUPPORT_MD5 - bool - default n - depends on PACKAGE_opkg - prompt "Support reading old md5 hashes." - help - Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha. -endef - define Package/opkg/conffiles /etc/opkg.conf /etc/opkg/keys/ @@ -74,29 +65,19 @@ endef TARGET_CFLAGS += -ffunction-sections -fdata-sections EXTRA_CFLAGS += $(TARGET_CPPFLAGS) -CONFIGURE_ARGS += \ - --disable-curl \ - --disable-gpg \ - --enable-sha256 \ - --with-opkgetcdir=/etc \ - --with-opkglockfile=/var/lock/opkg.lock - -ifndef CONFIG_SIGNED_PACKAGES - CONFIGURE_ARGS += --disable-usign -endif -ifeq ($(CONFIG_OPKG_SUPPORT_MD5),y) - CONFIGURE_ARGS += --enable-md5 -else - CONFIGURE_ARGS += --disable-md5 -endif - -MAKE_FLAGS = \ - CC="$(TARGET_CC)" \ - DESTDIR="$(PKG_INSTALL_DIR)" \ - HOST_CPU="$(PKGARCH)" \ - LDFLAGS="-Wl,--gc-sections" \ - -define Package/opkg/Default/install +CMAKE_OPTIONS += \ + -DBUILD_TESTS=OFF \ + -DHOST_CPU=$(PKGARCH) \ + -DVERSION="$(PKG_SOURCE_VERSION) ($(PKG_SOURCE_DATE))" + +CMAKE_HOST_OPTIONS += \ + -DSTATIC_UBOX=ON \ + -DBUILD_TESTS=OFF \ + -DHOST_CPU=$(PKGARCH) \ + -DLOCK_FILE=/tmp/opkg.lock \ + -DVERSION="$(PKG_SOURCE_VERSION) ($(PKG_SOURCE_DATE))" + +define Package/opkg/install $(INSTALL_DIR) $(1)/usr/lib/opkg $(INSTALL_DIR) $(1)/bin $(INSTALL_DIR) $(1)/etc/opkg @@ -107,34 +88,13 @@ define Package/opkg/Default/install $(VERSION_SED) $(1)/etc/opkg/distfeeds.conf $(INSTALL_BIN) ./files/20_migrate-feeds $(1)/etc/uci-defaults/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg -endef - -define Package/opkg/install - $(call Package/opkg/Default/install,$(1),) ifneq ($(CONFIG_SIGNED_PACKAGES),) echo "option check_signature 1" >> $(1)/etc/opkg.conf endif - mkdir $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) ./files/opkg-key $(1)/usr/sbin/ endef -define Build/InstallDev - mkdir -p $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/include/libopkg $(1)/usr/include/ -endef - - -HOST_CONFIGURE_ARGS+= \ - --disable-curl \ - --disable-gpg \ - --enable-sha256 \ - --with-opkgetcdir=/etc \ - --with-opkglockfile=/tmp/opkg.lock - -define Host/Compile - +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)" all -endef - define Host/Install $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/opkg-cl $(STAGING_DIR_HOST)/bin/opkg endef |