aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/opkg/Makefile76
-rw-r--r--package/opkg/files/opkg.conf4
-rw-r--r--package/opkg/files/postinst2
-rw-r--r--package/opkg/patches/001-use-wget77
-rw-r--r--package/opkg/patches/002-fix-autogen8
5 files changed, 167 insertions, 0 deletions
diff --git a/package/opkg/Makefile b/package/opkg/Makefile
new file mode 100644
index 0000000000..b9e3e2979a
--- /dev/null
+++ b/package/opkg/Makefile
@@ -0,0 +1,76 @@
+#
+# Copyright (C) 2006-2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=opkg
+PKG_REV:=4561
+PKG_VERSION:=$(PKG_REV)
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=svn
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE_SUBDIR:=opkg-$(PKG_VERSION)
+PKG_SOURCE_URL:=http://svn.openmoko.org/trunk/src/target/opkg/
+PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
+PKG_FIXUP = libtool
+include $(INCLUDE_DIR)/package.mk
+
+define Package/opkg
+ SECTION:=base
+ CATEGORY:=Base system
+ TITLE:=opkg package management system
+ URL:=http://wiki.openmoko.org/wiki/Opkg
+endef
+
+define Package/opkg/description
+ Lightweight package management system
+ opkg is the opkg 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.
+
+ opkg knows how to install both .ipk and .deb packages.
+endef
+
+EXTRA_CFLAGS+=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/lib
+EXTRA_LDFLAGS+=-L$(STAGING_DIR)/usr/lib -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
+
+CONFIGURE_ARGS += \
+ --disable-curl \
+ --disable-gpg \
+
+define Build/Configure
+ (cd $(PKG_BUILD_DIR); \
+ ./autogen.sh \
+ );
+ $(call Build/Configure/Default)
+endef
+
+define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ CC=$(TARGET_CC) \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ all install
+endef
+
+define Package/opkg/install
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_DATA) ./files/opkg.conf $(1)/etc/
+ $(SED) 's,$$$$S,$(BOARD),g' $(1)/etc/opkg.conf
+ $(INSTALL_BIN) ./files/postinst $(1)/CONTROL/postinst
+ $(INSTALL_DIR) $(1)/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopkg.so.* $(1)/usr/lib/
+endef
+
+define Build/InstallDev
+ mkdir -p $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/libopkg $(1)/usr/include/
+endef
+
+$(eval $(call BuildPackage,opkg))
diff --git a/package/opkg/files/opkg.conf b/package/opkg/files/opkg.conf
new file mode 100644
index 0000000000..f7f96fe2b6
--- /dev/null
+++ b/package/opkg/files/opkg.conf
@@ -0,0 +1,4 @@
+src snapshots http://downloads.openwrt.org/snapshots/$S/packages
+dest root /
+dest ram /tmp
+lists_dir ext /var/opkg-lists
diff --git a/package/opkg/files/postinst b/package/opkg/files/postinst
new file mode 100644
index 0000000000..c479744500
--- /dev/null
+++ b/package/opkg/files/postinst
@@ -0,0 +1,2 @@
+#!/bin/sh
+ln -sf "${IPKG_INSTROOT}/usr/lib/ipkg" "${IPKG_INSTROOT}/usr/lib/opkg"
diff --git a/package/opkg/patches/001-use-wget b/package/opkg/patches/001-use-wget
new file mode 100644
index 0000000000..a8ec7c518a
--- /dev/null
+++ b/package/opkg/patches/001-use-wget
@@ -0,0 +1,77 @@
+Index: opkg-4561/libopkg/opkg_download.c
+===================================================================
+--- opkg-4561/libopkg/opkg_download.c (revision 4480)
++++ opkg-4561/libopkg/opkg_download.c (working copy)
+@@ -17,7 +17,9 @@
+ General Public License for more details.
+ */
+ #include "config.h"
++#ifdef HAVE_CURL
+ #include <curl/curl.h>
++#endif
+ #ifdef HAVE_GPGME
+ #include <gpgme.h>
+ #endif
+@@ -74,6 +76,7 @@
+ setenv("no_proxy", conf->no_proxy, 1);
+ }
+
++#ifdef HAVE_CURL
+ CURL *curl;
+ CURLcode res;
+ FILE * file = fopen (tmp_file_location, "w");
+@@ -119,6 +122,31 @@
+ free(src_basec);
+ return -1;
+ }
++#else /* if wget is selected */
++ char *cmd;
++ /* XXX: BUG rewrite to use execvp or else busybox's internal wget -Jamey 7/23/2002 */
++ sprintf_alloc(&cmd, "wget --passive-ftp %s %s%s %s%s -P %s %s",
++ (conf->http_proxy || conf->ftp_proxy) ? "--proxy=on" : "",
++ conf->proxy_user ? "--proxy-user=" : "",
++ conf->proxy_user ? conf->proxy_user : "",
++ conf->proxy_passwd ? "--proxy-passwd=" : "",
++ conf->proxy_passwd ? conf->proxy_passwd : "",
++ conf->tmp_dir,
++ src);
++ err = xsystem(cmd);
++ if (err) {
++ if (err != -1) {
++ opkg_message(conf,OPKG_ERROR, "%s: ERROR: Command failed with return value %d: `%s'\n",
++ __FUNCTION__, err, cmd);
++ }
++ unlink(tmp_file_location);
++ free(tmp_file_location);
++ free(src_basec);
++ free(cmd);
++ return EINVAL;
++ }
++ free(cmd);
++#endif
+
+ err = file_move(tmp_file_location, dest_file_name);
+
+Index: opkg-4561/configure.ac
+===================================================================
+--- opkg-4561/configure.ac (revision 4480)
++++ opkg-4561/configure.ac (working copy)
+@@ -22,9 +22,16 @@
+
+ # Checks for libraries
+
+-# check for libcurl
+-PKG_CHECK_MODULES(CURL, libcurl)
++AC_ARG_ENABLE(curl,
++ AC_HELP_STRING([--enable-curl], [Enable use of libcurl instead of wget
++ [[default=yes]] ]),
++ [want_curl="$enableval"], [want_curl="yes"])
+
++if test "x$want_curl" = "xyes"; then
++ # check for libcurl
++ PKG_CHECK_MODULES(CURL, libcurl)
++ AC_DEFINE(HAVE_CURL, 1, [Define if you want to use libcurl instead of wget])
++fi
+
+
+ dnl **********
diff --git a/package/opkg/patches/002-fix-autogen b/package/opkg/patches/002-fix-autogen
new file mode 100644
index 0000000000..0d39c42298
--- /dev/null
+++ b/package/opkg/patches/002-fix-autogen
@@ -0,0 +1,8 @@
+--- opkg-4561/autogen.sh-orig 2008-07-28 18:00:33.000000000 -0500
++++ opkg-4561/autogen.sh 2008-07-28 18:00:45.000000000 -0500
+@@ -1,5 +1,3 @@
+ #! /bin/sh
+ autoreconf -v --install || exit 1
+ glib-gettextize --force --copy || exit 1
+-./configure --enable-maintainer-mode "$@"
+-