X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=scripts%2Fipkg-build;h=21127f33910cabb82f6b025a1865f305c88b9c10;hb=0f3667864d5391c2d9ace63ccfc83ab270405cc9;hp=73cd87ceea1949222524b9f2a84a669061af8de0;hpb=1a2fd4f86916c1bf9b1a751e83a65c5c085dc859;p=oweals%2Fopenwrt.git diff --git a/scripts/ipkg-build b/scripts/ipkg-build index 73cd87ceea..21127f3391 100755 --- a/scripts/ipkg-build +++ b/scripts/ipkg-build @@ -13,14 +13,18 @@ version=1.0 FIND="$(which find)" FIND="${FIND:-$(which gfind)}" TAR="${TAR:-$(which tar)}" -SVN="$(which svn)" -GIT="$(which git)" -export GZIP="-n" +GZIP="$(which gzip)" + +# try to use fixed source epoch +if [ -n "$SOURCE_DATE_EPOCH" ]; then + TIMESTAMP=$(date --date="@$SOURCE_DATE_EPOCH") # look up date of last commit -if [ -d "$TOPDIR/.git" ]; then +elif [ -d "$TOPDIR/.git" ]; then + GIT="$(which git)" TIMESTAMP=$(cd $TOPDIR; $GIT log -1 -s --format=%ci) elif [ -d "$TOPDIR/.svn" ]; then + SVN="$(which svn)" TIMESTAMP=$($SVN info "$TOPDIR" | sed -n "s/^Last Changed Date: \(.*\)/\1/p") else TIMESTAMP=$(date) @@ -60,8 +64,10 @@ pkg_appears_sane() { done rm $CONTROL/conffiles - mv $CONTROL/conffiles.resolved $CONTROL/conffiles - chmod 0644 $CONTROL/conffiles + if [ -f $CONTROL/conffiles.resolved ]; then + mv $CONTROL/conffiles.resolved $CONTROL/conffiles + chmod 0644 $CONTROL/conffiles + fi fi cd $owd @@ -139,20 +145,20 @@ mkdir $tmp_dir echo $CONTROL > $tmp_dir/tarX # Preserve permissions (-p) when creating data.tar.gz as non-root user -( cd $pkg_dir && $TAR $ogargs -X $tmp_dir/tarX --format=gnu --sort=name -czpf $tmp_dir/data.tar.gz --mtime="$TIMESTAMP" . ) +( cd $pkg_dir && $TAR $ogargs -X $tmp_dir/tarX --format=gnu --sort=name -cpf - --mtime="$TIMESTAMP" . | $GZIP -n - > $tmp_dir/data.tar.gz ) installed_size=`stat -c "%s" $tmp_dir/data.tar.gz` sed -i -e "s/^Installed-Size: .*/Installed-Size: $installed_size/" \ $pkg_dir/$CONTROL/control -( cd $pkg_dir/$CONTROL && $TAR $ogargs --format=gnu --sort=name -czf $tmp_dir/control.tar.gz --mtime="$TIMESTAMP" . ) +( cd $pkg_dir/$CONTROL && $TAR $ogargs --format=gnu --sort=name -cf - --mtime="$TIMESTAMP" . | $GZIP -n - > $tmp_dir/control.tar.gz ) rm $tmp_dir/tarX echo "2.0" > $tmp_dir/debian-binary pkg_file=$dest_dir/${pkg}_${version}_${arch}.ipk rm -f $pkg_file -( cd $tmp_dir && $TAR $ogargs --format=gnu --sort=name -zcf $pkg_file --mtime="$TIMESTAMP" ./debian-binary ./data.tar.gz ./control.tar.gz ) +( cd $tmp_dir && $TAR $ogargs --format=gnu --sort=name -cf - --mtime="$TIMESTAMP" ./debian-binary ./data.tar.gz ./control.tar.gz | $GZIP -n - > $pkg_file ) rm $tmp_dir/debian-binary $tmp_dir/data.tar.gz $tmp_dir/control.tar.gz rmdir $tmp_dir