2 # Copyright (C) 2006-2015 OpenWrt.org
3 # Copyright (C) 2016 LEDE Project
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10 include $(INCLUDE_DIR)/version.mk
11 include $(INCLUDE_DIR)/feeds.mk
14 PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
15 PKG_VERSION:=$(PKG_REV)
19 PKG_SOURCE_VERSION:=$(PKG_REV)
20 PKG_SOURCE_SUBDIR:=opkg-$(PKG_VERSION)
21 PKG_SOURCE_URL:=http://git.yoctoproject.org/git/opkg
22 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.xz
23 PKG_MIRROR_MD5SUM:=abba824695a7dd4acf2a6371c4e22142656b3d1f0fa93c04410116d2170ce1a9
24 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
26 PKG_REMOVE_FILES = autogen.sh aclocal.m4
29 PKG_LICENSE_FILES:=COPYING
31 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
33 PKG_FLAGS := nonshared
34 PKG_CONFIG_DEPENDS := CONFIG_SIGNED_PACKAGES
37 HOST_BUILD_PARALLEL:=1
40 include $(INCLUDE_DIR)/package.mk
41 include $(INCLUDE_DIR)/host-build.mk
43 define Package/opkg/Default
46 TITLE:=opkg package manager
47 DEPENDS:=+uclient-fetch
48 URL:=http://wiki.openmoko.org/wiki/Opkg
52 define Package/opkg/Default/description
53 Lightweight package management system
54 opkg is the opkg Package Management System, for handling
55 installation and removal of packages on a system. It can
56 recursively follow dependencies and download all packages
57 necessary to install a particular package.
59 opkg knows how to install both .ipk and .deb packages.
62 define Package/opkg/config
63 config OPKG_SUPPORT_MD5
66 depends on PACKAGE_opkg
67 prompt "Support reading old md5 hashes."
69 Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha.
73 $(call Package/opkg/Default)
77 define Package/opkg/description
78 $(call Package/opkg/Default/description)
81 define Package/opkg/conffiles
84 /etc/opkg/customfeeds.conf
88 define Package/opkg-smime
89 $(call Package/opkg/Default)
90 TITLE+= (with S/MIME signature support)
91 DEPENDS+=+PACKAGE_opkg-smime:libopenssl
95 define Package/opkg-smime/description
96 $(call Package/opkg/Default/description)
98 This package allows the Package index to be verified with S/MIME.
101 define Package/opkg-smime/config
102 config OPKG_SMIME_SUPPORT_MD5
105 depends on PACKAGE_opkg-smime
106 prompt "Support reading old md5 hashes."
108 Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha.
111 Package/opkg-smime/conffiles = $(Package/opkg/conffiles)
113 TARGET_CFLAGS += -ffunction-sections -fdata-sections
114 EXTRA_CFLAGS += $(TARGET_CPPFLAGS)
120 --with-opkgetcdir=/etc \
121 --with-opkglockfile=/var/lock/opkg.lock
123 ifeq ($(BUILD_VARIANT),smime)
124 CONFIGURE_ARGS += --enable-openssl --disable-usign
125 ifeq ($(CONFIG_OPKG_SMIME_SUPPORT_MD5),y)
126 CONFIGURE_ARGS += --enable-md5
128 CONFIGURE_ARGS += --disable-md5
131 ifndef CONFIG_SIGNED_PACKAGES
132 CONFIGURE_ARGS += --disable-usign
134 ifeq ($(CONFIG_OPKG_SUPPORT_MD5),y)
135 CONFIGURE_ARGS += --enable-md5
137 CONFIGURE_ARGS += --disable-md5
143 DESTDIR="$(PKG_INSTALL_DIR)" \
144 HOST_CPU="$(PKGARCH)" \
145 LDFLAGS="-Wl,--gc-sections" \
147 define Package/opkg/Default/install
148 $(INSTALL_DIR) $(1)/usr/lib/opkg
149 $(INSTALL_DIR) $(1)/bin
150 $(INSTALL_DIR) $(1)/etc/opkg
151 $(INSTALL_DIR) $(1)/etc/uci-defaults
152 $(INSTALL_DATA) ./files/customfeeds.conf $(1)/etc/opkg/customfeeds.conf
153 $(INSTALL_DATA) ./files/opkg$(2).conf $(1)/etc/opkg.conf
154 $(call FeedSourcesAppend,$(1)/etc/opkg/distfeeds.conf)
155 $(VERSION_SED) $(1)/etc/opkg/distfeeds.conf
156 $(INSTALL_BIN) ./files/20_migrate-feeds $(1)/etc/uci-defaults/
157 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
160 define Package/opkg/install
161 $(call Package/opkg/Default/install,$(1),)
162 ifneq ($(CONFIG_SIGNED_PACKAGES),)
163 echo "option check_signature 1" >> $(1)/etc/opkg.conf
166 $(INSTALL_BIN) ./files/opkg-key $(1)/usr/sbin/
169 define Package/opkg-smime/install
170 $(call Package/opkg/Default/install,$(1),-smime)
171 $(INSTALL_DIR) $(1)/etc/ssl/certs
172 $(if $(CONFIG_OPKGSMIME_CERT),$(INSTALL_DATA) $(call qstrip,$(CONFIG_OPKGSMIME_CERT)) $(1)/etc/ssl/certs/opkg.pem,)
175 define Build/InstallDev
176 mkdir -p $(1)/usr/include
177 $(CP) $(PKG_INSTALL_DIR)/usr/include/libopkg $(1)/usr/include/
181 HOST_CONFIGURE_ARGS+= \
185 --with-opkgetcdir=/etc \
186 --with-opkglockfile=/tmp/opkg.lock
189 +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)" all
193 $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/opkg-cl $(STAGING_DIR_HOST)/bin/opkg
196 $(eval $(call BuildPackage,opkg))
197 $(eval $(call BuildPackage,opkg-smime))
198 $(eval $(call HostBuild))