* New script. Move skipped patches list from gdb.spec to script. - Update to fedora 38 @ 82cc8e0. - Patch renamed: * pass-const-frame_info_ptr-reference-for-skip_-langua.patch -> gdb-rhbz2192105-ftbs-dangling-pointer - Patches added: * gdb-bz2237392-dwarf-obstack-allocation.patch * gdb-bz2237515-debuginfod-double-free.patch * gdb-rhbz2160211-excessive-core-file-warnings.patch * gdb-rhbz2196395-debuginfod-legacy-openssl-crash.patch * gdb-rhbz2233961-CVE-2022-4806.patch * gdb-rhbz2233965-memory-leak.patch - Maintenance script qa-local.sh: * Add openSUSE_Leap_15.5 and openSUSE_Factory_LegacyX86. * Add "List configs" item. * Skip i586 for SLE-11. - Maintenance script qa.sh: * Make sure exit status is 0 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=363
156 lines
3.0 KiB
Bash
156 lines
3.0 KiB
Bash
#!/bin/bash
|
|
|
|
# Fedora Packages not copied:
|
|
#
|
|
skip_patches=(
|
|
# Not applicable for openSUSE.
|
|
gdb-add-index.patch
|
|
gdb-6.3-rh-testversion-20041202.patch
|
|
gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
|
|
gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
|
gdb-container-rh-pkg.patch
|
|
|
|
# Broken.
|
|
# Over-specific test-case in a shell script.
|
|
gdb-6.5-BEA-testsuite.patch
|
|
# Hangs for horizontal-scroll-mode on, times out after 10 minutes.
|
|
gdb-6.5-readline-long-line-crash-test.patch
|
|
|
|
# Fragile test-case, requires glibc to fail in a certain way.
|
|
gdb-rhbz1156192-recursive-dlopen-test.patch
|
|
|
|
# Obsolete (dropped by fedora).
|
|
gdb-6.7-charsign-test.patch
|
|
gdb-test-ivy-bridge.patch
|
|
gdb-ppc-power7-test.patch
|
|
gdb-6.3-bz140532-ppc-unwinding-test.patch
|
|
|
|
# Obsolete.
|
|
gdb-6.7-charsign-test.patch
|
|
gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
|
)
|
|
|
|
usage ()
|
|
{
|
|
echo "usage: $(basename "$0") <fedora package dir> "
|
|
}
|
|
|
|
dir="$1"
|
|
|
|
if [ ! -f "$dir"/_patch_order ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
mark1="^#Fedora Packages begin"
|
|
mark2="^#Fedora Packages end"
|
|
mark3="^#Fedora patching start"
|
|
mark4="^#Fedora patching end"
|
|
|
|
remove_current_patches ()
|
|
{
|
|
# shellcheck disable=SC2207
|
|
current_patches=($(awk "/$mark1/,/$mark2/{ print }" gdb.spec \
|
|
| grep Patch \
|
|
| awk '{print $2}'))
|
|
|
|
for current_patch in "${current_patches[@]}"; do
|
|
rm -f "$current_patch"
|
|
done
|
|
}
|
|
|
|
skip ()
|
|
{
|
|
local p
|
|
p="$1"
|
|
|
|
for skip_patch in "${skip_patches[@]}"; do
|
|
if [ "$p" = "$skip_patch" ]; then
|
|
return 0
|
|
fi
|
|
done
|
|
|
|
return 1
|
|
}
|
|
|
|
import_patches ()
|
|
{
|
|
# Get the parts of gdb.spec that we want to keep unchanged.
|
|
awk "NR==1,/$mark1/" gdb.spec \
|
|
> gdb.spec.1
|
|
awk "/$mark2/,/$mark3/" gdb.spec \
|
|
> gdb.spec.3
|
|
awk "/$mark4/,0" gdb.spec \
|
|
> gdb.spec.5
|
|
|
|
# Start generating the parts of gdb.spec that we want to change.
|
|
f1=gdb.spec.2
|
|
f2=gdb.spec.4
|
|
rm -f $f1 $f2
|
|
|
|
# Handle each fedora patch.
|
|
skipped_patches=()
|
|
n=1
|
|
# shellcheck disable=SC2013
|
|
for p in $(cat "$dir"/_patch_order); do
|
|
if skip "$p"; then
|
|
echo "Skipped: $p"
|
|
skipped_patches=("${skipped_patches[@]}" "$p")
|
|
|
|
# Keep numbers the same as in fedora package.
|
|
n=$((n + 1))
|
|
continue
|
|
fi
|
|
|
|
cp "$dir"/"$p" .
|
|
|
|
printf \
|
|
"%-16s%s\n" "Patch$n:" "$p" \
|
|
>> $f1
|
|
|
|
echo \
|
|
"%patch$n -p1" \
|
|
>> $f2
|
|
|
|
n=$((n + 1))
|
|
done
|
|
|
|
# Report which patches did not get skipped.
|
|
for skip_patch in "${skip_patches[@]}"; do
|
|
found=false
|
|
for skipped_patch in "${skipped_patches[@]}"; do
|
|
if [ "$skip_patch" = "$skipped_patch" ]; then
|
|
found=true
|
|
break
|
|
fi
|
|
done
|
|
if ! $found; then
|
|
echo "Not skipped: $skip_patch"
|
|
fi
|
|
done
|
|
|
|
# Assemble new gdb.spec.
|
|
rm -f gdb.spec.new
|
|
for n in $(seq 1 5); do
|
|
cat gdb.spec."$n" \
|
|
>> gdb.spec.new
|
|
done
|
|
|
|
# Cleanup.
|
|
for n in $(seq 1 5); do
|
|
rm -f gdb.spec."$n"
|
|
done
|
|
|
|
# Update gdb.spec.
|
|
mv gdb.spec.new gdb.spec
|
|
}
|
|
|
|
main ()
|
|
{
|
|
remove_current_patches
|
|
|
|
import_patches
|
|
}
|
|
|
|
main "$@"
|