mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-23 08:18:51 -05:00
Manually check xdelta exit codes.
This is needed because 'xdelta delta' returns 1 even when the delta creation succeeds. This was causing makepkg to exit after the command due to bash's -e option. Some information from the xdelta man page: The delta command exits with status 0 to indicate that no differences were found, with status 1 to indicate that some differences were found, and with status 2 to indicate an error of some kind. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
0adedc536f
commit
abce73de4c
@ -899,18 +899,29 @@ create_xdelta() {
|
|||||||
if [ "$base_file" != "" ]; then
|
if [ "$base_file" != "" ]; then
|
||||||
msg "$(gettext "Making delta from version %s...")" "$latest_version"
|
msg "$(gettext "Making delta from version %s...")" "$latest_version"
|
||||||
local delta_file="$PKGDEST/$pkgname-${latest_version}_to_$pkgver-$pkgrel-$CARCH.delta"
|
local delta_file="$PKGDEST/$pkgname-${latest_version}_to_$pkgver-$pkgrel-$CARCH.delta"
|
||||||
|
local ret=0
|
||||||
|
|
||||||
# xdelta will decompress base_file & pkg_file into TMP_DIR (or /tmp if
|
# xdelta will decompress base_file & pkg_file into TMP_DIR (or /tmp if
|
||||||
# TMP_DIR is unset) then perform the delta on the resulting tars
|
# TMP_DIR is unset) then perform the delta on the resulting tars
|
||||||
xdelta delta "$base_file" "$pkg_file" "$delta_file"
|
xdelta delta "$base_file" "$pkg_file" "$delta_file" || ret=$?
|
||||||
|
|
||||||
|
if [ $ret -eq 0 -o $ret -eq 1 ]; then
|
||||||
# Generate the final gz using xdelta for compression. xdelta will be our
|
# Generate the final gz using xdelta for compression. xdelta will be our
|
||||||
# common denominator compression utility between the packager and the users
|
# common denominator compression utility between the packager and the
|
||||||
# makepkg and pacman must use the same compression algorithm or the delta
|
# users. makepkg and pacman must use the same compression algorithm or
|
||||||
# generated package may not match, producing md5 checksum errors.
|
# the delta generated package may not match, producing md5 checksum
|
||||||
|
# errors.
|
||||||
msg2 "$(gettext "Recreating package tarball from delta to match md5 signatures")"
|
msg2 "$(gettext "Recreating package tarball from delta to match md5 signatures")"
|
||||||
msg2 "$(gettext "NOTE: the delta should ONLY be distributed with this tarball")"
|
msg2 "$(gettext "NOTE: the delta should ONLY be distributed with this tarball")"
|
||||||
xdelta patch "$delta_file" "$base_file" "$pkg_file"
|
ret=0
|
||||||
|
xdelta patch "$delta_file" "$base_file" "$pkg_file" || ret=$?
|
||||||
|
if [ $ret -ne 0 ]; then
|
||||||
|
error "$(gettext "Could not generate the package from the delta.")"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warning "$(gettext "Delta was not able to be created.")"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
warning "$(gettext "No previous version found, skipping xdelta.")"
|
warning "$(gettext "No previous version found, skipping xdelta.")"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user