VERSION="v0.35/$rev"
VERSIONSTRING="\
Build package utility from PLD Linux Packages repository
-$VERSION (C) 1999-2013 Free Penguins".
+$VERSION (C) 1999-2014 Free Penguins".
CLEAN_PATH="/bin:/usr/bin:/usr/sbin:/sbin:/usr/X11R6/bin"
# target arch, can also be used for log file naming
TARGET=$(rpm -E %{_target})
+# Note the *single* quotes, this allows using shell variables expanded at build time
# Example: LOGFILE='../log.$PACKAGE_NAME'
# Example: LOGFILE='../LOGS/log.$PACKAGE_NAME.$DATE'
# Example: LOGFILE='$PACKAGE_NAME/$PACKAGE_NAME.$DATE.log'
# Example: LOGFILE='$PACKAGE_NAME.$DATE.log'
-# Yes, you can use variable name! Note _single_ quotes!
+# Example: LOGFILE='.log.$PACKAGE_NAME-$PACKAGE_VERSION-$PACKAGE_RELEASE.$TARGET.$DATE'
LOGFILE=''
# use teeboth Perl wrapper
" $specfile
}
+# try to upgrade .spec to new version
+# if --upgrade-version is specified, use that as new version, otherwise invoke pldnotify to find new version
+#
+# return 1: if .spec was updated
+# return 0: no changes to .spec
+# exit 1 in case of error
try_upgrade() {
- if [ -n "$TRY_UPGRADE" ]; then
- local TNOTIFY TNEWVER TOLDVER
- update_shell_title "build_package: try_upgrade"
+ if [ -z "$TRY_UPGRADE" ]; then
+ return 0
+ fi
- cd "$PACKAGE_DIR"
-
- if [ "$UPGRADE_VERSION" ]; then
- TNEWVER=$UPGRADE_VERSION
- else
- if [ -n "$FLOAT_VERSION" ]; then
- TNOTIFY=$($APPDIR/pldnotify.awk ${BE_VERBOSE:+-vDEBUG=1} $SPECFILE -n) || exit 1
- else
- TNOTIFY=$($APPDIR/pldnotify.awk ${BE_VERBOSE:+-vDEBUG=1} $SPECFILE) || exit 1
- fi
+ local TNOTIFY TNEWVER TOLDVER
+ update_shell_title "build_package: try_upgrade"
- # pldnotify.awk does not set exit codes, but it has match for ERROR
- # in output which means so.
- if [[ "$TNOTIFY" = *ERROR* ]]; then
- echo >&2 "$TNOTIFY"
- exit 1
- fi
+ cd "$PACKAGE_DIR"
- TNEWVER=$(echo $TNOTIFY | awk '{ match($4,/\[NEW\]/); print $5 }')
+ if [ "$UPGRADE_VERSION" ]; then
+ TNEWVER=$UPGRADE_VERSION
+ echo "Updating spec file to version $TNEWVER"
+ else
+ if [ -n "$FLOAT_VERSION" ]; then
+ TNOTIFY=$($APPDIR/pldnotify.awk ${BE_VERBOSE:+-vDEBUG=1} $SPECFILE -n) || exit 1
+ else
+ TNOTIFY=$($APPDIR/pldnotify.awk ${BE_VERBOSE:+-vDEBUG=1} $SPECFILE) || exit 1
fi
- if [ -n "$TNEWVER" ]; then
- TOLDVER=`echo $TNOTIFY | awk '{ print $3; }'`
- echo "New version found, updating spec file from $TOLDVER to version $TNEWVER"
- if [ "$REVERT_BROKEN_UPGRADE" = "yes" ]; then
- cp -f $SPECFILE $SPECFILE.bak
- fi
- chmod +w $SPECFILE
- set_release $SPECFILE $PACKAGE_RELEASE 1
- set_version $SPECFILE $PACKAGE_VERSION $TNEWVER
- parse_spec
- if [ "$PACKAGE_VERSION" != "$TNEWVER" ]; then
- echo >&2 "Upgrading version failed, you need to update spec yourself"
- exit 1
- fi
- return 1
+ # pldnotify.awk does not set exit codes, but it has match for ERROR
+ # in output which means so.
+ if [[ "$TNOTIFY" = *ERROR* ]]; then
+ echo >&2 "$TNOTIFY"
+ exit 1
fi
+
+ TOLDVER=`echo $TNOTIFY | awk '{ print $3; }'`
+ echo "New version found, updating spec file from $TOLDVER to version $TNEWVER"
+
+ TNEWVER=$(echo $TNOTIFY | awk '{ match($4,/\[NEW\]/); print $5 }')
+ fi
+
+ if [ -z "$TNEWVER" ]; then
+ return 0
+ fi
+
+ if [ "$REVERT_BROKEN_UPGRADE" = "yes" ]; then
+ cp -f $SPECFILE $SPECFILE.bak
fi
- return 0
+ chmod +w $SPECFILE
+ set_version $SPECFILE $PACKAGE_VERSION $TNEWVER
+ set_release $SPECFILE $PACKAGE_RELEASE 1
+ parse_spec
+ if [ "$PACKAGE_VERSION" != "$TNEWVER" ]; then
+ echo >&2 "Upgrading version failed, you need to update spec yourself"
+ exit 1
+ fi
+ return 1
}
build_package() {
package_name="${1}"
update_shell_title "run_sub_builder $package_name"
#
- # No i tutaj bym chcia³ zrobiæ sztuczn± inteligencjê, która spróbuje tego
- # pakieta zbudowaæ. Aktualnie niewiele dziala, bo generalnie nie widze do
+ # No i tutaj bym chciał zrobić sztuczną inteligencję, która spróbuje tego
+ # pakieta zbudować. Aktualnie niewiele dziala, bo generalnie nie widze do
# konca algorytmu... Ale damy rade. :) Na razie po prostu sie wyjebie tak samo
# jakby nie bylo tego kawalka kodu.
#
- # Update: Poprawi³em parê rzeczy i zaczê³o generowaæ pakiety spoza zadanej listy.
- # Jednym s³owem budowanie niespoldkowanych zale¿no¶ci dzia³a w paru przypadkach.
+ # Update: Poprawiłem parę rzeczy i zaczęło generować pakiety spoza zadanej listy.
+ # Jednym słowem budowanie niespoldkowanych zależności działa w paru przypadkach.
#
#
# y0shi.