download.pl: use https://source.openwrt.org
[oweals/openwrt.git] / scripts / ipkg-build
index 73cd87ceea1949222524b9f2a84a669061af8de0..21127f33910cabb82f6b025a1865f305c88b9c10 100755 (executable)
@@ -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