summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authoragb <agb@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-07-29 03:35:55 +0000
committeragb <agb@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-07-29 03:35:55 +0000
commit31ad6d72b32edec4d692a68172eadb56293c4330 (patch)
treeb3ce0828e5b72122bc7d7c0cb56c7ee4ac06ff33 /package
parent061f665c71938e9968cd7b83e53add7c0b91e2df (diff)
[ipkg] Port the full ipkg to Kamikaze
- Does not suffer from most of the issues the busybox implementation experiences - busybox ipkg is still the default package manager - Removes /usr/bin/ipkg on install if it is a symlink - Relinks /usr/bin/ipkg to busybox on removal if ipkg is compiled into busybox - Supports gzip'd package lists, results in substantial space savings git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11980 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/ipkg/Makefile76
1 files changed, 76 insertions, 0 deletions
diff --git a/package/ipkg/Makefile b/package/ipkg/Makefile
new file mode 100644
index 000000000..8b3b5c87f
--- /dev/null
+++ b/package/ipkg/Makefile
@@ -0,0 +1,76 @@
+# Copyright (C) 2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ipkg
+PKG_VERSION:=0.99.163
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://ftp.gwdg.de/pub/linux/handhelds/packages/ipkg \
+ http://www.handhelds.org/packages/ipkg \
+ http://www.gtlib.gatech.edu/pub/handhelds.org/packages/ipkg
+PKG_MD5SUM:=0b10ad2924611bccaea8ddf98481a192
+
+PKG_FIXUP = libtool
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/ipkg
+ SECTION:=base
+ CATEGORY:=Base system
+ TITLE:=Itsy package management system
+ URL:=http://handhelds.org/moin/moin.cgi/Ipkg
+endef
+
+define Package/ipkg/description
+ Lightweight package management system
+ ipkg is the Itsy Package Management System, for handling
+ installation and removal of packages on a system. It can
+ recursively follow dependencies and download all packages
+ necessary to install a particular package.
+ .
+ ipkg knows how to install both .ipk and .deb packages.
+endef
+
+CONFIGURE_ARGS += $(DISABLE_LARGEFILE)
+
+define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ CC=$(TARGET_CC) \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ all install
+endef
+
+define Package/ipkg/preinst
+ if [ -L $${IPKG_INSTROOT}/usr/bin/ipkg ] ; then
+ echo -e "Removing busybox ipkg symlink"
+ rm $${IPKG_INSTROOT}/usr/bin/ipkg
+ fi
+endef
+
+define Package/ipkg/postrm
+ if [ "$(busybox ipkg 2>&1)" != "busybox: applet not found" ] ; then
+ echo -e "Reinstalling busybox ipkg symlink"
+ ln -sf ../../bin/busybox $${IPKG_INSTROOT}/usr/bin/ipkg
+ fi
+endef
+
+define Package/ipkg/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ipkg-cl $(1)/usr/bin/ipkg
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libipkg.so.* $(1)/usr/lib/
+endef
+
+define Build/InstallDev
+ mkdir -p $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/libipkg $(1)/usr/include/
+endef
+
+$(eval $(call BuildPackage,ipkg))