cruxports/pkgutils/pkgmk.in.patch

196 lines
5.6 KiB
Diff

--- pkgutils-5.40.7/pkgmk.in 2021-06-20 06:55:38.965326116 -0400
+++ pkgutils-5.40.7d/pkgmk.in 2021-07-02 07:49:45.218000256 -0400
@@ -171,36 +171,47 @@ download_file() {
}
download_source() {
- local FILE LOCAL_FILENAME
+ local RENAME LOCAL_FILE ORIG_FILE srcind
- for FILE in ${source[@]}; do
- LOCAL_FILENAME=`get_filename $FILE`
- if [ ! -e $LOCAL_FILENAME ]; then
- if [ "$LOCAL_FILENAME" = "$FILE" ]; then
- error "Source file '$LOCAL_FILENAME' not found (can not be downloaded, URL not specified)."
+ srcind=0
+ while [ $srcind -lt ${#source[@]} ]; do
+ ORIG_FILE=`get_filename "${source[$srcind]}"`
+ LOCAL_FILE=$ORIG_FILE
+ RENAME="${renames[$srcind]}"
+ [ -n "$RENAME" -a "$RENAME" != "SKIP" ] && LOCAL_FILE="$PKGMK_SOURCE_DIR/$RENAME"
+ if [ ! -e $LOCAL_FILE ]; then
+ if [ "$ORIG_FILE" = "${source[$srcind]}" ]; then
+ error "Source file '$LOCAL_FILE' not found (can not be downloaded, URL not specified)."
exit $E_DOWNLOAD
else
if [ "$PKGMK_DOWNLOAD" = "yes" ]; then
- download_file $FILE
+ download_file "${source[$srcind]}"
+ [ "$LOCAL_FILE" = "$ORIG_FILE" ] || mv $ORIG_FILE $LOCAL_FILE
+
else
- error "Source file '$LOCAL_FILENAME' not found (use option -d to download)."
+ error "Source file '$LOCAL_FILE' not found (use option -d to download)."
exit $E_DOWNLOAD
fi
fi
fi
+ srcind=$(( srcind+1 ))
done
}
unpack_source() {
- local FILE LOCAL_FILENAME COMMAND
+ local ORIG_FILE RENAME LOCAL_FILE srcind COMMAND
- for FILE in ${source[@]}; do
- LOCAL_FILENAME=`get_filename $FILE`
- case $LOCAL_FILENAME in
+ srcind=0
+ while [ $srcind -lt ${#source[@]} ]; do
+ ORIG_FILE=`get_filename ${source[$srcind]}`
+ LOCAL_FILE=$ORIG_FILE
+ RENAME="${renames[$srcind]}"
+ [ -n "$RENAME" -a "$RENAME" != "SKIP" ] && LOCAL_FILE="$PKGMK_SOURCE_DIR/$RENAME"
+ case $LOCAL_FILE in
*.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.tar.lz|*.zip|*.rpm|*.7z)
- COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" ;;
+ COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILE" ;;
*)
- COMMAND="cp $LOCAL_FILENAME $SRC" ;;
+ COMMAND="cp $LOCAL_FILE $SRC" ;;
esac
echo "$COMMAND"
@@ -214,15 +225,25 @@ unpack_source() {
error "Building '$TARGET' failed."
exit $E_UNPACK
fi
+ srcind=$(( srcind+1 ))
done
}
make_md5sum() {
- local FILE LOCAL_FILENAMES
+ local srcind FILE LOCAL_FILENAMES
if [ "$source" ]; then
- for FILE in ${source[@]}; do
+ srcind=0
+ while [ $srcind -lt ${#source[@]} ]; do
+ FILE="${source[$srcind]}"
+ if [ -n "${renames[$srcind]}" -a "${renames[$srcind]}" != "SKIP" ]; then
+ LOCAL_FILENAMES="$LOCAL_FILENAMES $PKGMK_SOURCE_DIR/${renames[$srcind]}"
+ elif [ "`get_basename $FILE`" = "$FILE" ]; then
+ LOCAL_FILENAMES="$LOCAL_FILENAMES $FILE"
+ else
LOCAL_FILENAMES="$LOCAL_FILENAMES `get_filename $FILE`"
+ fi
+ srcind=$(( srcind+1 ))
done
md5sum $LOCAL_FILENAMES | sed -e 's| .*/| |' | sort -k 2
@@ -294,7 +315,16 @@ check_signature() {
if [ -f $PKGMK_ROOT/$PKGMK_SIGNATURE ]; then
cd $SRC
- for FILE in "$PKGMK_PKGFILE" "$PKGMK_FOOTPRINT" ${source[@]}; do
+ local srcind=0
+
+ while [ $srcind -lt ${#source[@]} ]; do
+ if [ -n "${renames[$srcind]}" -a "${renames[$srcind]}" != "SKIP" ]; then
+ source[$srcind]="http://somehost/${renames[$srcind]}"
+ fi
+ srcind=$(( srcind+1 ))
+ done
+
+ for FILE in "$PKGMK_PKGFILE" "$PKGMK_FOOTPRINT" "${source[@]}"; do
ln -s $(get_filename -a $FILE) .
done
@@ -359,7 +389,15 @@ make_signature() {
local FILE LOCAL_FILENAMES
local REPO
- for FILE in "$PKGMK_PKGFILE" "$PKGMK_FOOTPRINT" ${source[@]}; do
+ local srcind=0
+ while [ $srcind -lt ${#source[@]} ]; do
+ if [ -n "${renames[$srcind]}" -a "${renames[$srcind]}" != "SKIP" ]; then
+ source[$srcind]="http://somehost/${renames[$srcind]}"
+ fi
+ srcind=$(( srcind+1 ))
+ done
+
+ for FILE in "$PKGMK_PKGFILE" "$PKGMK_FOOTPRINT" "${source[@]}"; do
LOCAL_FILENAMES="$LOCAL_FILENAMES `get_filename $FILE`"
done
@@ -619,19 +662,26 @@ recursive() {
}
clean() {
- local FILE LOCAL_FILENAME
+ local ORIG_FILE LOCAL_FILE srcind
if [ -f $TARGET ]; then
info "Removing $TARGET"
rm -f $TARGET
fi
- for FILE in ${source[@]}; do
- LOCAL_FILENAME=`get_filename $FILE`
- if [ -e $LOCAL_FILENAME ] && [ "$LOCAL_FILENAME" != "$FILE" ]; then
- info "Removing $LOCAL_FILENAME"
- rm -f $LOCAL_FILENAME
+ srcind=0
+ while [ $srcind -lt ${#source[@]} ]; do
+ ORIG_FILE="${source[$srcind]}"
+ LOCAL_FILE=`get_filename "$ORIG_FILE"`
+ RENAME="${renames[$srcind]}"
+ if [ -n "$RENAME" -a "$RENAME" != "SKIP" ]; then
+ LOCAL_FILE="$PKGMK_SOURCE_DIR/$RENAME"
+ fi
+ if [ -e $LOCAL_FILE ] && [ "$LOCAL_FILE" != "$ORIG_FILE" ]; then
+ info "Removing $LOCAL_FILE"
+ rm -f $LOCAL_FILE
fi
+ srcind=$(( srcind+1 ))
done
}
@@ -649,18 +699,30 @@ update_footprint() {
}
build_needed() {
- local FILE RESULT
+ local ORIG_FILE RENAME LOCAL_FILE srcind RESULT
RESULT="yes"
if [ -f $TARGET ]; then
RESULT="no"
- for FILE in $PKGMK_PKGFILE ${source[@]}; do
- FILE=`get_filename $FILE`
- if [ -e $FILE ] && [ ! $TARGET -nt $FILE ]; then
+ srcind=0
+
+ while [ $srcind -lt ${#source[@]} ]; do
+ ORIG_FILE=`get_filename "${source[$srcind]}"`
+ LOCAL_FILE=$ORIG_FILE
+ RENAME="${renames[$srcind]}"
+ if [ -n "$RENAME" -a "$RENAME" != "SKIP" ]; then
+ LOCAL_FILE="$PKGMK_SOURCE_DIR/$RENAME"
+ fi
+ if [ -e $LOCAL_FILE ] && [ ! $TARGET -nt $LOCAL_FILE ]; then
RESULT="yes"
break
fi
+ srcind=$(( srcind+1 ))
done
+
+ if [ -e $PKGMK_PKGFILE ] && [ ! $TARGET -nt $PKGMK_PKGFILE ]; then
+ RESULT="yes"
+ fi
fi
echo $RESULT