treewide: clean up and unify PKG_VERSION for git based downloads
[openwrt/openwrt.git] / package / system / opkg / Makefile
1 #
2 # Copyright (C) 2006-2015 OpenWrt.org
3 # Copyright (C) 2016 LEDE Project
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10 include $(INCLUDE_DIR)/version.mk
11 include $(INCLUDE_DIR)/feeds.mk
12
13 PKG_NAME:=opkg
14 PKG_RELEASE:=15
15
16 PKG_SOURCE_PROTO:=git
17 PKG_SOURCE_URL:=http://git.yoctoproject.org/git/opkg
18 PKG_SOURCE_DATE:=2011-04-08
19 PKG_SOURCE_VERSION:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
20 PKG_MIRROR_HASH:=55e05270f3eb2f3aff5d3791463ce3d13b8197ca7b301cd58e731a249552c48f
21 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
22 PKG_FIXUP:=autoreconf
23 PKG_REMOVE_FILES = autogen.sh aclocal.m4
24
25 PKG_LICENSE:=GPL-2.0
26 PKG_LICENSE_FILES:=COPYING
27
28 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
29
30 PKG_FLAGS := nonshared
31 PKG_CONFIG_DEPENDS := CONFIG_SIGNED_PACKAGES
32
33 PKG_BUILD_PARALLEL:=1
34 HOST_BUILD_PARALLEL:=1
35 PKG_INSTALL:=1
36
37 include $(INCLUDE_DIR)/package.mk
38 include $(INCLUDE_DIR)/host-build.mk
39
40 define Package/opkg/Default
41 SECTION:=base
42 CATEGORY:=Base system
43 TITLE:=opkg package manager
44 DEPENDS:=+uclient-fetch
45 URL:=http://wiki.openmoko.org/wiki/Opkg
46 MENU:=1
47 endef
48
49 define Package/opkg/Default/description
50 Lightweight package management system
51 opkg is the opkg Package Management System, for handling
52 installation and removal of packages on a system. It can
53 recursively follow dependencies and download all packages
54 necessary to install a particular package.
55
56 opkg knows how to install both .ipk and .deb packages.
57 endef
58
59 define Package/opkg/config
60 config OPKG_SUPPORT_MD5
61 bool
62 default n
63 depends on PACKAGE_opkg
64 prompt "Support reading old md5 hashes."
65 help
66 Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha.
67 endef
68
69 define Package/opkg
70 $(call Package/opkg/Default)
71 VARIANT:=unsigned
72 endef
73
74 define Package/opkg/description
75 $(call Package/opkg/Default/description)
76 endef
77
78 define Package/opkg/conffiles
79 /etc/opkg.conf
80 /etc/opkg/keys/
81 /etc/opkg/customfeeds.conf
82 endef
83
84
85 define Package/opkg-smime
86 $(call Package/opkg/Default)
87 TITLE+= (with S/MIME signature support)
88 DEPENDS+=+PACKAGE_opkg-smime:libopenssl
89 VARIANT:=smime
90 endef
91
92 define Package/opkg-smime/description
93 $(call Package/opkg/Default/description)
94
95 This package allows the Package index to be verified with S/MIME.
96 endef
97
98 define Package/opkg-smime/config
99 config OPKG_SMIME_SUPPORT_MD5
100 bool
101 default n
102 depends on PACKAGE_opkg-smime
103 prompt "Support reading old md5 hashes."
104 help
105 Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha.
106 endef
107
108 Package/opkg-smime/conffiles = $(Package/opkg/conffiles)
109
110 TARGET_CFLAGS += -ffunction-sections -fdata-sections
111 EXTRA_CFLAGS += $(TARGET_CPPFLAGS)
112
113 CONFIGURE_ARGS += \
114 --disable-curl \
115 --disable-gpg \
116 --enable-sha256 \
117 --with-opkgetcdir=/etc \
118 --with-opkglockfile=/var/lock/opkg.lock
119
120 ifeq ($(BUILD_VARIANT),smime)
121 CONFIGURE_ARGS += --enable-openssl --disable-usign
122 ifeq ($(CONFIG_OPKG_SMIME_SUPPORT_MD5),y)
123 CONFIGURE_ARGS += --enable-md5
124 else
125 CONFIGURE_ARGS += --disable-md5
126 endif
127 else
128 ifndef CONFIG_SIGNED_PACKAGES
129 CONFIGURE_ARGS += --disable-usign
130 endif
131 ifeq ($(CONFIG_OPKG_SUPPORT_MD5),y)
132 CONFIGURE_ARGS += --enable-md5
133 else
134 CONFIGURE_ARGS += --disable-md5
135 endif
136 endif
137
138 MAKE_FLAGS = \
139 CC="$(TARGET_CC)" \
140 DESTDIR="$(PKG_INSTALL_DIR)" \
141 HOST_CPU="$(PKGARCH)" \
142 LDFLAGS="-Wl,--gc-sections" \
143
144 define Package/opkg/Default/install
145 $(INSTALL_DIR) $(1)/usr/lib/opkg
146 $(INSTALL_DIR) $(1)/bin
147 $(INSTALL_DIR) $(1)/etc/opkg
148 $(INSTALL_DIR) $(1)/etc/uci-defaults
149 $(INSTALL_DATA) ./files/customfeeds.conf $(1)/etc/opkg/customfeeds.conf
150 $(INSTALL_DATA) ./files/opkg$(2).conf $(1)/etc/opkg.conf
151 $(call FeedSourcesAppend,$(1)/etc/opkg/distfeeds.conf)
152 $(VERSION_SED) $(1)/etc/opkg/distfeeds.conf
153 $(INSTALL_BIN) ./files/20_migrate-feeds $(1)/etc/uci-defaults/
154 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
155 endef
156
157 define Package/opkg/install
158 $(call Package/opkg/Default/install,$(1),)
159 ifneq ($(CONFIG_SIGNED_PACKAGES),)
160 echo "option check_signature 1" >> $(1)/etc/opkg.conf
161 endif
162 mkdir $(1)/usr/sbin
163 $(INSTALL_BIN) ./files/opkg-key $(1)/usr/sbin/
164 endef
165
166 define Package/opkg-smime/install
167 $(call Package/opkg/Default/install,$(1),-smime)
168 $(INSTALL_DIR) $(1)/etc/ssl/certs
169 $(if $(CONFIG_OPKGSMIME_CERT),$(INSTALL_DATA) $(call qstrip,$(CONFIG_OPKGSMIME_CERT)) $(1)/etc/ssl/certs/opkg.pem,)
170 endef
171
172 define Build/InstallDev
173 mkdir -p $(1)/usr/include
174 $(CP) $(PKG_INSTALL_DIR)/usr/include/libopkg $(1)/usr/include/
175 endef
176
177
178 HOST_CONFIGURE_ARGS+= \
179 --disable-curl \
180 --disable-gpg \
181 --enable-sha256 \
182 --with-opkgetcdir=/etc \
183 --with-opkglockfile=/tmp/opkg.lock
184
185 define Host/Compile
186 +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)" all
187 endef
188
189 define Host/Install
190 $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/opkg-cl $(STAGING_DIR_HOST)/bin/opkg
191 endef
192
193 $(eval $(call BuildPackage,opkg))
194 $(eval $(call BuildPackage,opkg-smime))
195 $(eval $(call HostBuild))