add opkg - symlink /usr/lib/ipkg to /usr/lib/opkg so that opkg can be used as a drop in replacement of ipkg

SVN-Revision: 11983
This commit is contained in:
Travis Kemen 2008-07-29 04:16:43 +00:00
parent 2ddbb426c8
commit 53332ba9c2
5 changed files with 167 additions and 0 deletions

76
package/opkg/Makefile Normal file
View file

@ -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))

View file

@ -0,0 +1,4 @@
src snapshots http://downloads.openwrt.org/snapshots/$S/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists

View file

@ -0,0 +1,2 @@
#!/bin/sh
ln -sf "${IPKG_INSTROOT}/usr/lib/ipkg" "${IPKG_INSTROOT}/usr/lib/opkg"

View file

@ -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 **********

View file

@ -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 "$@"
-