From: Michael Tremer Date: Fri, 29 May 2009 09:03:52 +0000 (+0200) Subject: Changed package format and updated bash scripts. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a395adb5e51d42c4fef76f7cab029c9a3fbbefbd;p=ipfire-3.x.git Changed package format and updated bash scripts. --- diff --git a/lfs/Config b/lfs/Config index 23fad1552..f3f26587e 100644 --- a/lfs/Config +++ b/lfs/Config @@ -69,7 +69,7 @@ CONFIGURE_ARCH = \ --build=$(IFS_TARGET) \ --host=$(IFS_TARGET) -PKG_PACKAGE=$(PKG_NAME)-$(PKG_VER)-$(SNAME)$(PKG_REL).$(TARGET).ipk +PKG_PACKAGE=$(LFS_FILE)-$(PKG_VER)-$(SNAME)$(PKG_REL).$(TARGET).ipk IMAGE_FILE = $(IMAGES_DIR)/$(SNAME)-$(VERSION).sfs @@ -119,6 +119,13 @@ endef define DO_PACKAGE NAME=$(NAME) SNAME=$(SNAME) VERSION=$(VERSION) KVER=$(KVER) \ TARGET=$(TARGET) MACHINE=$(MACHINE) IFS_TARGET=$(IFS_TARGET) \ + PKG_BUILD_DEPS="$(BUILD_DEPS)" PKG_CORE="$(CORE)" \ + PKG_DEBUG="$(DEBUG)" PKG_DEPS="$(DEPS)" PKG_EXTRA="$(EXTRA)" \ + PKG_GROUP="$(GROUP)" PKG_LICENSE="$(LICENSE)" PKG_MAINTAINER="$(MAINTAINER)" \ + PKG_NAME="$(PKG_NAME)" PKG_VER="$(PKG_VER)" PKG_REL="$(PKG_REL)" \ + PKG_SHORT="$(value SHORT_DESC)" PKG_URL="$(URL)" \ + CONTROL_PREIN="$(value CONTROL_PREIN)" CONTROL_PREUN="$(value CONTROL_POSTUN)" \ + CONTROL_POSTIN="$(value CONTROL_POSTIN)" CONTROL_POSTUN="$(value CONTROL_POSTIN)" \ $(DIR_SOURCE)/pakfire/compressor $(PKG_PACKAGE) $$ROOTFILE endef diff --git a/src/pakfire/compressor b/src/pakfire/compressor index 351baa1cd..8750da18e 100755 --- a/src/pakfire/compressor +++ b/src/pakfire/compressor @@ -49,6 +49,8 @@ if [ -e "/packages/$PKG_TARGET" ]; then fi ARCHIEVE=$(mktemp) +CONTROL=$(mktemp) +INFO=$(mktemp) TMP_DIR=$(mktemp -d) for rootfile in $ROOTFILES; do @@ -60,10 +62,67 @@ done cd $TMP_DIR -find . | cpio -o --quiet | lzma -czv - > $ARCHIEVE +find . | cpio -o -H newc --quiet | lzma -czv - > $ARCHIEVE + +cat <$INFO +### $NAME package + +BUILD_HOST="$(cat /proc/sys/kernel/hostname)" +BUILD_DATE="$(date -u)" + +# Version info +PKG_NAME="$PKG_NAME" +PKG_VER="$PKG_VER" +PKG_REL="$PKG_REL" +PKG_GROUP="$PKG_GROUP" + +PKG_MAINTAINER="$PKG_MAINTAINER" +PKG_LICENSE="$PKG_LICENSE" + +PKG_SUMMARY="$PKG_SHORT" +PKG_DESCRIPTION="$PKG_LONG" + +# Dependency info +PKG_DEPS="$PKG_DEPS" +PKG_BUILD_DEPS="$PKG_BUILD_DEPS" + +PKG_DATA_SHA1="$(sha1sum $ARCHIEVE | awk '{ print $1 }')" + +### +EOF + +cat <$CONTROL +#!/bin/sh + +function prein() { +$CONTROL_PREIN +} + +function preun() { +$CONTROL_PREUN +} + +function postin() { +$CONTROL_POSTIN +} + +function postun() { +$CONTROL_POSTUN +} + +### +EOF + +rm -rf $TMP_DIR/* + +cat $ARCHIEVE > $TMP_DIR/data.img +cat $CONTROL > $TMP_DIR/control +cat $INFO > $TMP_DIR/info + +find . | cpio -o -H newc --quiet > $ARCHIEVE cat $ARCHIEVE > /packages/$PKG_TARGET echo "Done." -rm -rf $ARCHIEVE $TMP_DIR +rm -rf $ARCHIEVE $CONTROL $INFO $TMP_DIR diff --git a/src/pakfire/decompressor b/src/pakfire/decompressor index 75bc101f2..a79d9b523 100755 --- a/src/pakfire/decompressor +++ b/src/pakfire/decompressor @@ -55,5 +55,6 @@ FILES=$(for i in $FILES; do echo $i; done | sort -u) for file in $FILES; do echo "Extracting $file..." - lzma -cd $file | cpio -diu --no-absolute-filenames --quiet + cpio --extract --quiet --to-stdout data.img < $file | lzmadec | \ + cpio -diu --no-absolute-filenames --quiet done