196 lines
5.6 KiB
Diff
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
|