From patchwork Tue May 15 18:34:23 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas De Schampheleire X-Patchwork-Id: 159408 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 02CC8B6FB9 for ; Wed, 16 May 2012 04:34:53 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 7BCBB319CC; Tue, 15 May 2012 18:34:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DkoK4+0LyMYJ; Tue, 15 May 2012 18:34:49 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id DCE493158F; Tue, 15 May 2012 18:34:48 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 8CA2A8F791 for ; Tue, 15 May 2012 18:34:47 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 830DA8C8ED for ; Tue, 15 May 2012 18:34:47 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aUEtbv-U+ZQj for ; Tue, 15 May 2012 18:34:44 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-ee0-f43.google.com (mail-ee0-f43.google.com [74.125.83.43]) by whitealder.osuosl.org (Postfix) with ESMTPS id 788308C828 for ; Tue, 15 May 2012 18:34:42 +0000 (UTC) Received: by eeke50 with SMTP id e50so507943eek.16 for ; Tue, 15 May 2012 11:34:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:content-transfer-encoding:subject :x-mercurial-node:message-id:user-agent:date:from:to:cc; bh=v2CERH3FZ+nXbDvpEAoz0f9xsh8uwYUUzPIb/lyboHA=; b=AIC9a8dKyo0JfMU0+C0FzfjPusGuaAxehcxNIhQ13mCUPtX/Kh+xh/II10K8kBqSgi ZcsXqP/7P+HUuuEo9w0itPjkEzOiu1wxjsuiAHKrkdTt+Tu69+EU9k1f24jJ5f+XqwZO qLzDL2aMZSGpZWXOBsdueqkOp0eKmRP0JO9KanlhhutCkEl38Tm7kPCOw+K3LxxKbZUo syjZTeT5BCvNsmhrDdRvJ64NigdWWTnCIRBWvYEQWd7kqHDd+FOUl1kzMv7KF2szrxYN EFd37oKlyG6+MzegVyglNbGrHxkrqOZosLSyV6C84YDSgbRFJkWXHRKMFf5tkg11Kddc IZtA== Received: by 10.14.29.13 with SMTP id h13mr829eea.48.1337106879734; Tue, 15 May 2012 11:34:39 -0700 (PDT) Received: from [127.0.1.1] (d54C62A5A.access.telenet.be. [84.198.42.90]) by mx.google.com with ESMTPS id q53sm34407088eef.8.2012.05.15.11.34.38 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 15 May 2012 11:34:39 -0700 (PDT) MIME-Version: 1.0 X-Mercurial-Node: 327c9a85485315c6da4f6f741433aa9da75a143d Message-Id: <327c9a85485315c6da4f.1337106863@beantl019720> User-Agent: Mercurial-patchbomb/1.9.1 Date: Tue, 15 May 2012 20:34:23 +0200 From: Thomas De Schampheleire To: buildroot@busybox.net Subject: [Buildroot] [PATCH] Add package 'opkg' X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Signed-off-by: Thomas De Schampheleire --- Notes: - opkg-build is more or less a copy of ipkg-build. Not sure if you'd prefer to keep some parts common... - if you prefer a patch not using copies from ipkg, let me know. diff --git a/package/Config.in b/package/Config.in --- a/package/Config.in +++ b/package/Config.in @@ -591,6 +591,7 @@ endmenu menu "Package managers" source "package/ipkg/Config.in" +source "package/opkg/Config.in" if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/rpm/Config.in" endif diff --git a/package/ipkg/Config.in b/package/opkg/Config.in copy from package/ipkg/Config.in copy to package/opkg/Config.in --- a/package/ipkg/Config.in +++ b/package/opkg/Config.in @@ -1,7 +1,13 @@ -config BR2_PACKAGE_IPKG - bool "ipkg" +config BR2_PACKAGE_OPKG + bool "opkg" help - The Itsy Package Installer from handhelds.org + Opkg is a lightweight package management system, based on ipkg. It is + written in C and resembles apt/dpkg in operation. It is intended for + use on embedded Linux devices. + Opkg is maintained, stable, robust and conservative in its memory + usage, despite its buggy ipkg ancestry. As best it can, opkg + maintains backwards compatibility with ipkg and conforms to a subset + of debian's policy manual regarding control files. - http://www.handhelds.org + http://code.google.com/p/opkg/ diff --git a/package/ipkg/ipkg-build b/package/opkg/opkg-build copy from package/ipkg/ipkg-build copy to package/opkg/opkg-build --- a/package/ipkg/ipkg-build +++ b/package/opkg/opkg-build @@ -1,20 +1,20 @@ #!/bin/sh -# ipkg-build -- construct a .ipk from a directory +# opkg-build -- construct a .opk from a directory # Carl Worth # based on a script by Steve Redler IV, steve@sr-tech.com 5-21-2001 set -e -ipkg_extract_value() { +opkg_extract_value() { sed -e "s/^[^:]*:[[:space:]]*//" } required_field() { field=$1 - value=`grep "^$field:" < $CONTROL/control | ipkg_extract_value` + value=`grep "^$field:" < $CONTROL/control | opkg_extract_value` if [ -z "$value" ]; then - echo "ipkg-build: Error: $CONTROL/control is missing field $field" ; + echo "opkg-build: Error: $CONTROL/control is missing field $field" ; PKG_ERROR=1 fi echo $value @@ -28,7 +28,7 @@ pkg_appears_sane() { PKG_ERROR=0 if [ ! -f "$CONTROL/control" ]; then - echo "ipkg-build: Error: Control file $pkg_dir/$CONTROL/control not found." + echo "opkg-build: Error: Control file $pkg_dir/$CONTROL/control not found." cd $owd return 1 fi @@ -40,22 +40,22 @@ pkg_appears_sane() { required_field Description >/dev/null if echo $pkg | grep '[^a-z0-9.+-]'; then - echo "ipkg-build: Error: Package name $name contains illegal characters, (other than [a-z0-9.+-])" + echo "opkg-build: Error: Package name $name contains illegal characters, (other than [a-z0-9.+-])" PKG_ERROR=1; fi local bad_fields=`sed -ne 's/^\([^[:space:]][^:[:space:]]\+[[:space:]]\+\)[^:].*/\1/p' < $CONTROL/control | sed -e 's/\\n//'` if [ -n "$bad_fields" ]; then bad_fields=`echo $bad_fields` - echo "ipkg-build: Error: The following fields in $CONTROL/control are missing a ':'" + echo "opkg-build: Error: The following fields in $CONTROL/control are missing a ':'" echo " $bad_fields" - echo "ipkg-build: This may be due to a missing initial space for a multi-line field value" + echo "opkg-build: This may be due to a missing initial space for a multi-line field value" PKG_ERROR=1 fi for script in $CONTROL/preinst $CONTROL/postinst $CONTROL/prerm $CONTROL/postrm; do if [ -f $script -a ! -x $script ]; then - echo "ipkg-build: Error: package script $script is not executable" + echo "opkg-build: Error: package script $script is not executable" PKG_ERROR=1 fi done @@ -63,7 +63,7 @@ pkg_appears_sane() { if [ -f $CONTROL/conffiles ]; then for cf in `cat $CONTROL/conffiles`; do if [ ! -f ./$cf ]; then - echo "ipkg-build: Error: $CONTROL/conffiles mentions conffile $cf which does not exist" + echo "opkg-build: Error: $CONTROL/conffiles mentions conffile $cf which does not exist" PKG_ERROR=1 fi done @@ -74,7 +74,7 @@ pkg_appears_sane() { } ### -# ipkg-build "main" +# opkg-build "main" ### case $# in @@ -85,7 +85,7 @@ 2) dest_dir=$2 ;; *) - echo "Usage: ipkg-build []" ; + echo "Usage: opkg-build []" ; exit 1 ;; esac @@ -93,7 +93,7 @@ esac pkg_dir=$1 if [ ! -d $pkg_dir ]; then - echo "ipkg-build: Error: Directory $pkg_dir does not exist" + echo "opkg-build: Error: Directory $pkg_dir does not exist" exit 1 fi @@ -102,7 +102,7 @@ CONTROL= [ -d $pkg_dir/DEBIAN ] && CONTROL=DEBIAN [ -d $pkg_dir/CONTROL ] && CONTROL=CONTROL if [ -z "$CONTROL" ]; then - echo "ipkg-build: Error: Directory $pkg_dir has no CONTROL subdirectory." + echo "opkg-build: Error: Directory $pkg_dir has no CONTROL subdirectory." exit 1 fi @@ -111,7 +111,7 @@ if ! pkg_appears_sane $pkg_dir; then exit 1 fi -tmp_dir=$dest_dir/IPKG_BUILD.$$ +tmp_dir=$dest_dir/OPKG_BUILD.$$ mkdir $tmp_dir tar -C $pkg_dir -czf $tmp_dir/data.tar.gz . --exclude=$CONTROL @@ -119,7 +119,7 @@ tar -C $pkg_dir/$CONTROL -czf $tmp_dir/c echo "2.0" > $tmp_dir/debian-binary -pkg_file=$dest_dir/${pkg}_${version}_${arch}.ipk +pkg_file=$dest_dir/${pkg}_${version}_${arch}.opk tar -C $tmp_dir -czf $pkg_file debian-binary data.tar.gz control.tar.gz rm $tmp_dir/debian-binary $tmp_dir/data.tar.gz $tmp_dir/control.tar.gz rmdir $tmp_dir diff --git a/package/ipkg/ipkg.mk b/package/opkg/opkg.mk copy from package/ipkg/ipkg.mk copy to package/opkg/opkg.mk --- a/package/ipkg/ipkg.mk +++ b/package/opkg/opkg.mk @@ -1,12 +1,20 @@ ############################################################# # -# ipkg +# opkg # ############################################################# -IPKG_VERSION = 0.99.163 -IPKG_SOURCE = ipkg-$(IPKG_VERSION).tar.gz -IPKG_SITE = http://www.handhelds.org/download/packages/ipkg -IPKG_INSTALL_STAGING = YES +OPKG_VERSION = 0.1.8 +OPKG_SOURCE = opkg-$(OPKG_VERSION).tar.gz +OPKG_SITE = http://opkg.googlecode.com/files +OPKG_INSTALL_STAGING = YES +OPKG_CONF_OPT = --disable-curl --disable-gpg + +# Ensure directory for lockfile exists +define OPKG_CREATE_LOCKDIR + mkdir -p $(TARGET_DIR)/usr/lib/opkg +endef + +OPKG_POST_INSTALL_TARGET_HOOKS += OPKG_CREATE_LOCKDIR $(eval $(call AUTOTARGETS))