Sync from SUSE:SLFO:Main debugedit revision 7bfb6f41cbf709222f2de0a276a63186
This commit is contained in:
commit
19dba5b278
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
BIN
debugedit-5.0.tar.xz
(Stored with Git LFS)
Normal file
BIN
debugedit-5.0.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
debugedit-5.0.tar.xz.sig
Normal file
BIN
debugedit-5.0.tar.xz.sig
Normal file
Binary file not shown.
36
debugedit.changes
Normal file
36
debugedit.changes
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 16 07:28:09 UTC 2022 - Ludwig Nussel <lnussel@suse.de>
|
||||||
|
|
||||||
|
- don't hard require gdb (boo#1205344)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Sep 4 10:29:29 UTC 2022 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||||
|
|
||||||
|
- finddebuginfo.patch: convert obsolete egrep to grep -E
|
||||||
|
(boo#1203092)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 6 12:43:49 UTC 2022 - Ludwig Nussel <lnussel@suse.de>
|
||||||
|
|
||||||
|
- move find-debuginfo and sepdebugcrcfix which are basically tools
|
||||||
|
for use by rpmbuild only to /usr/lib/rpm where they used to be
|
||||||
|
when debugedit was bundled with rpm.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 27 11:36:59 UTC 2022 - Ludwig Nussel <lnussel@suse.de>
|
||||||
|
|
||||||
|
- refresh patches to apply clean
|
||||||
|
- add git url
|
||||||
|
- add requires
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 30 13:06:47 UTC 2021 - Callum Farmer <gmbr3@opensuse.org>
|
||||||
|
|
||||||
|
- initial version 5.0
|
||||||
|
- Added patches from rpm:
|
||||||
|
* finddebuginfo.patch
|
||||||
|
* finddebuginfo-absolute-links.patch
|
||||||
|
* debugsubpkg.patch
|
||||||
|
* debuglink.patch
|
||||||
|
* debuginfo-mono.patch
|
||||||
|
- Add patch to fix bad shift: remove-bad-shift.patch
|
BIN
debugedit.keyring
Normal file
BIN
debugedit.keyring
Normal file
Binary file not shown.
82
debugedit.spec
Normal file
82
debugedit.spec
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#
|
||||||
|
# spec file for package debugedit
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: debugedit
|
||||||
|
Version: 5.0
|
||||||
|
Release: 0
|
||||||
|
Summary: Debuginfo extraction
|
||||||
|
License: GPL-3.0-or-later
|
||||||
|
Group: System/Packages
|
||||||
|
#Git-Clone: https://sourceware.org/git/debugedit.git
|
||||||
|
URL: https://www.sourceware.org/debugedit
|
||||||
|
Source0: https://sourceware.org/ftp/%{name}/%{version}/%{name}-%{version}.tar.xz
|
||||||
|
Source1: https://sourceware.org/ftp/%{name}/%{version}/%{name}-%{version}.tar.xz.sig
|
||||||
|
Source2: %{name}.keyring
|
||||||
|
Patch0: finddebuginfo.patch
|
||||||
|
Patch1: finddebuginfo-absolute-links.patch
|
||||||
|
Patch2: debugsubpkg.patch
|
||||||
|
Patch3: debuglink.patch
|
||||||
|
Patch4: debuginfo-mono.patch
|
||||||
|
Patch5: remove-bad-shift.patch
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
|
BuildRequires: help2man
|
||||||
|
BuildRequires: pkgconfig(libdw)
|
||||||
|
BuildRequires: pkgconfig(libelf)
|
||||||
|
# /usr/bin/gdb-add-index is optional
|
||||||
|
Suggests: gdb
|
||||||
|
Requires: binutils
|
||||||
|
Requires: coreutils
|
||||||
|
Requires: dwz
|
||||||
|
Requires: elfutils
|
||||||
|
Requires: findutils
|
||||||
|
Requires: gawk
|
||||||
|
Requires: grep
|
||||||
|
Requires: sed
|
||||||
|
Requires: xz
|
||||||
|
|
||||||
|
%description
|
||||||
|
debugedit provides programs and scripts for creating debuginfo and source file distributions,
|
||||||
|
collect build-ids and rewrite source paths in DWARF data for debugging, tracing and profiling.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p0
|
||||||
|
|
||||||
|
%build
|
||||||
|
autoreconf -fiv
|
||||||
|
%configure
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
mkdir -p %{buildroot}/usr/lib/rpm
|
||||||
|
mv %{buildroot}%{_bindir}/{find-debuginfo,sepdebugcrcfix} %{buildroot}/usr/lib/rpm
|
||||||
|
ln -s ../../bin/debugedit %{buildroot}/usr/lib/rpm
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYING3
|
||||||
|
%doc README
|
||||||
|
%{_bindir}/debugedit
|
||||||
|
/usr/lib/rpm/debugedit
|
||||||
|
/usr/lib/rpm/find-debuginfo
|
||||||
|
/usr/lib/rpm/sepdebugcrcfix
|
||||||
|
%{_mandir}/man1/debugedit.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/find-debuginfo.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/sepdebugcrcfix.1%{?ext_man}
|
||||||
|
|
||||||
|
%changelog
|
21
debuginfo-mono.patch
Normal file
21
debuginfo-mono.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Index: scripts/find-debuginfo.in
|
||||||
|
===================================================================
|
||||||
|
--- scripts/find-debuginfo.in.orig
|
||||||
|
+++ scripts/find-debuginfo.in
|
||||||
|
@@ -434,6 +434,16 @@ while read nlinks inum f; do
|
||||||
|
;;
|
||||||
|
*) continue ;;
|
||||||
|
esac
|
||||||
|
+ # double check that we really have an ELF file,
|
||||||
|
+ # to handle monodevelop-debugger-gdb and monodevelop-debugger-mdb
|
||||||
|
+ ftype=`/usr/bin/file $f | cut -d: -f2-`
|
||||||
|
+ case $ftype in
|
||||||
|
+ *ELF*) ;;
|
||||||
|
+ *)
|
||||||
|
+ echo "$f is not an ELF file, skipping"
|
||||||
|
+ continue
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
if [ $nlinks -gt 1 ]; then
|
||||||
|
var=seen_$inum
|
||||||
|
if test -n "${!var}"; then
|
13
debuglink.patch
Normal file
13
debuglink.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: scripts/find-debuginfo.in
|
||||||
|
===================================================================
|
||||||
|
--- scripts/find-debuginfo.in.orig
|
||||||
|
+++ scripts/find-debuginfo.in
|
||||||
|
@@ -407,7 +407,7 @@ debug_link()
|
||||||
|
get_debugfn()
|
||||||
|
{
|
||||||
|
dn=$(dirname "${1#$RPM_BUILD_ROOT}")
|
||||||
|
- bn=$(basename "$1" .debug)${unique_debug_suffix}.debug
|
||||||
|
+ bn=$(basename "$1")${unique_debug_suffix}.debug
|
||||||
|
debugdn=${debugdir}${dn}
|
||||||
|
debugfn=${debugdn}/${bn}
|
||||||
|
}
|
43
debugsubpkg.patch
Normal file
43
debugsubpkg.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Index: scripts/find-debuginfo.in
|
||||||
|
===================================================================
|
||||||
|
--- scripts/find-debuginfo.in.orig
|
||||||
|
+++ scripts/find-debuginfo.in
|
||||||
|
@@ -643,19 +643,25 @@ if $run_dwz \
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
-# For each symlink whose target has a .debug file,
|
||||||
|
-# make a .debug symlink to that file.
|
||||||
|
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*" -type l -print |
|
||||||
|
-while read f
|
||||||
|
-do
|
||||||
|
- t=$(readlink -m "$f").debug
|
||||||
|
- f=${f#$RPM_BUILD_ROOT}
|
||||||
|
- t=${t#$RPM_BUILD_ROOT}
|
||||||
|
- if [ -f "$debugdir$t" ]; then
|
||||||
|
- echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug"
|
||||||
|
- debug_link "/usr/lib/debug$t" "${f}.debug"
|
||||||
|
- fi
|
||||||
|
-done
|
||||||
|
+# We used to make a .debug symlink for each symlink whose target
|
||||||
|
+# has a .debug file to that file. This is not necessary because
|
||||||
|
+# the debuglink section contains only the destination of those links.
|
||||||
|
+# Creating those links anyway results in debuginfo packages for
|
||||||
|
+# devel packages just because of the .so symlinks in them.
|
||||||
|
+
|
||||||
|
+## For each symlink whose target has a .debug file,
|
||||||
|
+## make a .debug symlink to that file.
|
||||||
|
+#find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*" -type l -print |
|
||||||
|
+#while read f
|
||||||
|
+#do
|
||||||
|
+# t=$(readlink -m "$f").debug
|
||||||
|
+# f=${f#$RPM_BUILD_ROOT}
|
||||||
|
+# t=${t#$RPM_BUILD_ROOT}
|
||||||
|
+# if [ -f "$debugdir$t" ]; then
|
||||||
|
+# echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug"
|
||||||
|
+# debug_link "/usr/lib/debug$t" "${f}.debug"
|
||||||
|
+# fi
|
||||||
|
+#done
|
||||||
|
|
||||||
|
if [ -s "$SOURCEFILE" ]; then
|
||||||
|
# See also debugedit invocation. Directories must match up.
|
30
finddebuginfo-absolute-links.patch
Normal file
30
finddebuginfo-absolute-links.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From: Jan Blunck <jblunck@suse.de>
|
||||||
|
Subject: Do the symbolic links right in the first place
|
||||||
|
|
||||||
|
Since brp-symlink relinks symbolic links to enforce a certain policy we should
|
||||||
|
do it right in the first place. So this patch changes find-debuginfo.sh scripts
|
||||||
|
behavior to reflect that policy.
|
||||||
|
|
||||||
|
Signed-off-by: Jan Blunck <jblunck@suse.de>
|
||||||
|
|
||||||
|
--- ./scripts/find-debuginfo.in.orig 2017-12-01 15:26:21.939199791 +0000
|
||||||
|
+++ ./scripts/find-debuginfo.in 2017-12-01 15:27:03.153081225 +0000
|
||||||
|
@@ -305,7 +305,17 @@ debug_link()
|
||||||
|
local l="/usr/lib/debug$2"
|
||||||
|
local t="$1"
|
||||||
|
echo >> "$LINKSFILE" "$l $t"
|
||||||
|
- link_relative "$t" "$l" "$RPM_BUILD_ROOT"
|
||||||
|
+
|
||||||
|
+ # this should correspond to what brp-symlink is doing
|
||||||
|
+ case $t in
|
||||||
|
+ /usr*)
|
||||||
|
+ link_relative "$t" "$l" "$RPM_BUILD_ROOT"
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ mkdir -p "$(dirname "$RPM_BUILD_ROOT$l")" && \
|
||||||
|
+ ln -snf "$t" "$RPM_BUILD_ROOT$l"
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
}
|
||||||
|
|
||||||
|
get_debugfn()
|
91
finddebuginfo.patch
Normal file
91
finddebuginfo.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
Index: scripts/find-debuginfo.in
|
||||||
|
===================================================================
|
||||||
|
--- scripts/find-debuginfo.in.orig
|
||||||
|
+++ scripts/find-debuginfo.in
|
||||||
|
@@ -412,12 +412,18 @@ trap 'rm -rf "$temp"' EXIT
|
||||||
|
|
||||||
|
# Build a list of unstripped ELF files and their hardlinks
|
||||||
|
touch "$temp/primary"
|
||||||
|
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
|
||||||
|
- \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
|
||||||
|
- -print | LC_ALL=C sort |
|
||||||
|
-file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped.*/\1/p' |
|
||||||
|
-xargs --no-run-if-empty stat -c '%h %D_%i %n' |
|
||||||
|
+find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) ! -name "*.a" -print0 | LC_ALL=C sort -z |
|
||||||
|
+xargs --no-run-if-empty -0 stat -c '%h %D_%i %n' |
|
||||||
|
while read nlinks inum f; do
|
||||||
|
+ case $(objdump -h $f 2>/dev/null | grep -E -o '(debug[\.a-z_]*|gnu.version)') in
|
||||||
|
+ *debuglink*) continue ;;
|
||||||
|
+ *debug*) ;;
|
||||||
|
+ *gnu.version*)
|
||||||
|
+ echo "WARNING: "`echo $f | sed -e "s,^$RPM_BUILD_ROOT/*,/,"`" is already stripped!"
|
||||||
|
+ continue
|
||||||
|
+ ;;
|
||||||
|
+ *) continue ;;
|
||||||
|
+ esac
|
||||||
|
if [ $nlinks -gt 1 ]; then
|
||||||
|
var=seen_$inum
|
||||||
|
if test -n "${!var}"; then
|
||||||
|
@@ -450,6 +456,8 @@ do_file()
|
||||||
|
if [ "$no_recompute_build_id" = "true" ]; then
|
||||||
|
no_recompute="-n"
|
||||||
|
fi
|
||||||
|
+ mode=$(stat -c %a "$f")
|
||||||
|
+ chmod +w "$f"
|
||||||
|
id=$(${install_dir}/debugedit -b "$debug_base_name" -d "$debug_dest_name" \
|
||||||
|
$no_recompute -i \
|
||||||
|
${build_id_seed:+--build-id-seed="$build_id_seed"} \
|
||||||
|
@@ -477,17 +485,30 @@ do_file()
|
||||||
|
# just has its file names collected and adjusted.
|
||||||
|
case "$dn" in
|
||||||
|
/usr/lib/debug/*)
|
||||||
|
+ chmod $mode "$f"
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
mkdir -p "${debugdn}"
|
||||||
|
- if test -w "$f"; then
|
||||||
|
- strip_to_debug "${debugfn}" "$f"
|
||||||
|
- else
|
||||||
|
- chmod u+w "$f"
|
||||||
|
- strip_to_debug "${debugfn}" "$f"
|
||||||
|
- chmod u-w "$f"
|
||||||
|
- fi
|
||||||
|
+ objcopy --only-keep-debug "$f" "$debugfn" || :
|
||||||
|
+ (
|
||||||
|
+ shopt -s extglob
|
||||||
|
+ strip_option="--strip-all"
|
||||||
|
+ case "$f" in
|
||||||
|
+ *.ko)
|
||||||
|
+ strip_option="--strip-debug" ;;
|
||||||
|
+ *$STRIP_KEEP_SYMTAB*)
|
||||||
|
+ if test -n "$STRIP_KEEP_SYMTAB"; then
|
||||||
|
+ strip_option="--strip-debug"
|
||||||
|
+ fi
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
+ if test "$NO_DEBUGINFO_STRIP_DEBUG" = true ; then
|
||||||
|
+ strip_option=
|
||||||
|
+ fi
|
||||||
|
+ objcopy --add-gnu-debuglink="$debugfn" -R .comment -R .GCC.command.line $strip_option "$f"
|
||||||
|
+ chmod $mode "$f"
|
||||||
|
+ ) || :
|
||||||
|
|
||||||
|
# strip -g implies we have full symtab, don't add mini symtab in that case.
|
||||||
|
# It only makes sense to add a minisymtab for executables and shared
|
||||||
|
@@ -646,12 +667,14 @@ if [ -s "$SOURCEFILE" ]; then
|
||||||
|
# and non-standard modes may be inherented from original directories, fixup
|
||||||
|
find "${RPM_BUILD_ROOT}${debug_dest_name}" -type d -print0 |
|
||||||
|
xargs --no-run-if-empty -0 chmod 0755
|
||||||
|
+ find "${RPM_BUILD_ROOT}${debug_dest_name}" -type f -print0 |
|
||||||
|
+ xargs --no-run-if-empty -0 chmod a+r
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "${RPM_BUILD_ROOT}/usr/lib" ] || [ -d "${RPM_BUILD_ROOT}/usr/src" ]; then
|
||||||
|
((nout > 0)) ||
|
||||||
|
test ! -d "${RPM_BUILD_ROOT}/usr/lib" ||
|
||||||
|
- (cd "${RPM_BUILD_ROOT}/usr/lib"; find debug -type d) |
|
||||||
|
+ (cd "${RPM_BUILD_ROOT}/usr/lib"; test ! -d debug || find debug -type d) |
|
||||||
|
sed 's,^,%dir /usr/lib/,' >> "$LISTFILE"
|
||||||
|
|
||||||
|
(cd "${RPM_BUILD_ROOT}/usr"
|
10
remove-bad-shift.patch
Normal file
10
remove-bad-shift.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- ./scripts/find-debuginfo.in.orig 2017-12-01 15:40:27.006764372 +0000
|
||||||
|
+++ ./scripts/find-debuginfo.in 2017-12-01 15:41:17.270619182 +0000
|
||||||
|
@@ -168,7 +168,6 @@
|
||||||
|
;;
|
||||||
|
--dwz-single-file-mode)
|
||||||
|
dwz_single_file_mode=true
|
||||||
|
- shift
|
||||||
|
;;
|
||||||
|
--build-id-seed)
|
||||||
|
build_id_seed=$2
|
Loading…
Reference in New Issue
Block a user