From a61ea3923a43653dd34687188fd0434eb11ea915 Mon Sep 17 00:00:00 2001 From: Vasilis Tsiligiannis Date: Mon, 29 Mar 2010 14:58:36 +0000 Subject: [PATCH] [packages] wget: Fix installation and cleanup package makefile (#6990) * wget package binary installed at /usr/bin/wget-ssl * wget-nossl package binary installed at /usr/bin/wget-nossl * allows both packages to co-exist without conflict * busybox symlink is replaced with symlink to newest package binary * symlink is restored when removing package with the following preference: 1. /usr/bin/wget-ssl or /usr/bin/wget-nossl 2. /bin/busybox SVN-Revision: 20583 --- net/wget/Makefile | 89 ++++++++++++++++++++++++++++------------------- 1 file changed, 53 insertions(+), 36 deletions(-) diff --git a/net/wget/Makefile b/net/wget/Makefile index d410a0a131..ab933968c1 100644 --- a/net/wget/Makefile +++ b/net/wget/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2007-2008 OpenWrt.org +# Copyright (C) 2007-2010 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,12 +9,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wget PKG_VERSION:=1.12 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=@GNU/$(PKG_NAME) PKG_MD5SUM:=308a5476fc096a8a525d07279a6f6aa3 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) + include $(INCLUDE_DIR)/package.mk define Package/wget/Default @@ -37,6 +39,7 @@ define Package/wget $(call Package/wget/Default) DEPENDS+= +libopenssl TITLE+= (with SSL support) + VARIANT:=ssl endef define Package/wget/description @@ -47,6 +50,7 @@ endef define Package/wget-nossl $(call Package/wget/Default) TITLE+= (without SSL support) + VARIANT:=nossl endef define Package/wget-nossl/description @@ -54,52 +58,65 @@ $(call Package/wget/Default/description) This package is built without SSL support. endef +CONFIGURE_ARGS+= \ + --disable-rpath -define Build/Template +ifeq ($(BUILD_VARIANT),ssl) + CONFIGURE_ARGS+= \ + --with-ssl \ + --with-libssl-prefix="$(STAGING_DIR)/usr" +endif -$(STAMP_BUILT)-$(2): $(STAMP_PREPARED) - -$(MAKE) -C $(PKG_BUILD_DIR) clean - $(call Build/Configure/Default,$(3)) - $(MAKE) -C $(PKG_BUILD_DIR) - ( cd $(PKG_BUILD_DIR)/src; mv -f wget wget-$(2) ) - touch $$@ +ifeq ($(BUILD_VARIANT),nossl) + CONFIGURE_ARGS+= \ + --without-ssl +endif -$(STAMP_BUILT): $(STAMP_BUILT)-$(2) +define Package/wget/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/wget $(1)/usr/bin/wget-ssl +endef -define Package/$(1)/install - $(INSTALL_DIR) $$(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/wget-$(2) $$(1)/usr/bin/wget +define Package/wget-nossl/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/wget $(1)/usr/bin/wget-nossl endef -# FIXME: check if busybox really provides a wget applet -define Package/$(1)/postrm +define Package/wget/postinst #!/bin/sh -ln -sf ../../bin/busybox $${IPKG_INSTROOT}/usr/bin/wget +if [ -e $${IPKG_INSTROOT}/usr/bin/wget ]; then + rm -rf $${IPKG_INSTROOT}/usr/bin/wget; +fi +ln -sf ./wget-ssl $${IPKG_INSTROOT}/usr/bin/wget endef +define Package/wget/postrm +#!/bin/sh +rm $${IPKG_INSTROOT}/usr/bin/wget +[ -x $${IPKG_INSTROOT}/usr/bin/wget-nossl ] && ln -s ./wget-nossl $${IPKG_INSTROOT}/usr/bin/wget || { + ln -s ../../bin/busybox $${IPKG_INSTROOT}/usr/bin/wget + $${IPKG_INSTROOT}/usr/bin/wget 2>&1 | grep 'applet not found' > /dev/null 2>&1 && rm $${IPKG_INSTROOT}/usr/bin/wget +} +exit 0 endef -CONFIGURE_ARGS += \ - --disable-rpath +define Package/wget-nossl/postinst +#!/bin/sh +if [ -e $${IPKG_INSTROOT}/usr/bin/wget ]; then + rm -rf $${IPKG_INSTROOT}/usr/bin/wget; +fi +ln -s ./wget-nossl $${IPKG_INSTROOT}/usr/bin/wget +endef -ifneq ($(SDK)$(CONFIG_PACKAGE_wget),) - define Build/with-ssl - $(call Build/Template,wget,with-ssl, \ - --with-ssl \ - --with-libssl-prefix="$(STAGING_DIR)/usr" \ - ) - endef -endif -$(eval $(Build/with-ssl)) - -ifneq ($(SDK)$(CONFIG_PACKAGE_wget-nossl),) - define Build/without-ssl - $(call Build/Template,wget-nossl,without-ssl, \ - --without-ssl \ - ) - endef -endif -$(eval $(Build/without-ssl)) +define Package/wget-nossl/postrm +#!/bin/sh +rm $${IPKG_INSTROOT}/usr/bin/wget +[ -x $${IPKG_INSTROOT}/usr/bin/wget-ssl ] && ln -s ./wget-ssl $${IPKG_INSTROOT}/usr/bin/wget || { + ln -s ../../bin/busybox $${IPKG_INSTROOT}/usr/bin/wget + $${IPKG_INSTROOT}/usr/bin/wget 2>&1 | grep 'applet not found' > /dev/null 2>&1 && rm $${IPKG_INSTROOT}/usr/bin/wget +} +exit 0 +endef $(eval $(call BuildPackage,wget)) $(eval $(call BuildPackage,wget-nossl)) -- 2.30.2