diff --git a/macros.mingw64 b/macros.mingw64 index 63477eb..4399e24 100644 --- a/macros.mingw64 +++ b/macros.mingw64 @@ -93,15 +93,20 @@ %_mingw64_find_lang /usr/lib/rpm/mingw64-find-lang.sh %{buildroot} %_mingw64_debug_install_post \ - /usr/lib/rpm/mingw64-find-debuginfo.sh %{_builddir} 1\ + /usr/lib/rpm/mingw64-find-debuginfo.sh --merge-debug-source-package %{_builddir} \ %{nil} +# # Template for combined debuginfo and debugsource sub-package. -%_mingw64_debug_package(n:) \ +# Parameter: +# -e exclude BuildArch: noarch +# -n package name (-debug will be appended) +# +%_mingw64_debug_package(en:) \ %package %{-n:-n %{-n*}-}debug \ Summary: Debug information for package %{name} \ Group: Development/Sources \ -BuildArch: noarch \ +%{!-e:BuildArch: noarch} \ %description %{-n:-n %{-n*}-}debug \ This package provides debug information for package %{name}.\ Debug information is useful when developing applications that use this\ diff --git a/mingw64-filesystem.changes b/mingw64-filesystem.changes index 5cc6a64..e4ea539 100644 --- a/mingw64-filesystem.changes +++ b/mingw64-filesystem.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Sun Feb 2 20:32:09 UTC 2025 - Ralf Habacker + +- Syntax fix in %_mingw64_debug_package on Leap 15.x + +------------------------------------------------------------------- +Sun Feb 2 08:30:18 UTC 2025 - Ralf Habacker + +- Update version to 202500202 +- Extend mingw64-find-debuginfo.sh: + * Merging debug source package into debug info package is now + provided with option '--merge-debug-source-package' + * Add option '--no-debug-source-package' to skip building of + debug source package used by wine package + * Add option '--src-root-dir' to specify a custom directory + for installing debug source files +- mingw64.macros: Add parameter '-e' to %_mingw64_debug_package + to exclude BuildArch: noarch used by wine package + ------------------------------------------------------------------- Mon Nov 18 09:42:14 UTC 2024 - Ralf Habacker diff --git a/mingw64-filesystem.spec b/mingw64-filesystem.spec index 5779e6c..347b5e4 100644 --- a/mingw64-filesystem.spec +++ b/mingw64-filesystem.spec @@ -1,7 +1,7 @@ # # spec file for package mingw64-filesystem # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -31,7 +31,7 @@ %define _rpmmacrodir %{_sysconfdir}/rpm %endif Name: mingw64-filesystem -Version: 20241118 +Version: 20250202 Release: 0 Summary: MinGW base filesystem and environment License: GPL-2.0-or-later diff --git a/mingw64-find-debuginfo.sh b/mingw64-find-debuginfo.sh index 3edc32c..504c1eb 100644 --- a/mingw64-find-debuginfo.sh +++ b/mingw64-find-debuginfo.sh @@ -1,13 +1,20 @@ #!/bin/bash -#mingw64-find-debuginfo.sh - automagically generate debug info and file list -#for inclusion in an rpm spec file for mingw64-* packages. +# mingw64-find-debuginfo.sh - automatically generate debug info, sources and file list +# for inclusion in an rpm spec file for mingw64-* packages. # +# syntax: mingw64--find-debuginfo.sh [] [] +# options: +# --merge-debug-source-package merge debug source package into debug info package +# --no-debug-source-package do not create debug source package +# --src-root-dir root dir for installing debug source files (src/debug is appended) +# BUILDDIR build directory (often $HOME/rpmbuild/BUILD) +# # $PWD package dir below $BUILDDIR target="mingw64" host="x86_64-w64-mingw32" -# create for single package as child process +# extract debug info for a single file as child process if [[ -v RUN_SINGLE ]]; then f=$1 case $("$host-objdump" -h "$f" 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in @@ -34,16 +41,29 @@ export MALLOC_CHECK_=0 export MALLOC_PERTURB_=0 BUILDDIR=. -if [ -n "$1" ]; then - BUILDDIR="$1" -fi +MERGE_SOURCE_PACKAGE=0 +SOURCE_PACKAGE=1 -# generate separate debuginfo and debugsource or single debug package combining both -if [ -n "$2" ]; then - SINGLE_DEBUG_PACKAGE=1 -else - SINGLE_DEBUG_PACKAGE=0 -fi +while [ $# -gt 0 ]; do + case "$1" in + --merge-debug-source-package) + MERGE_SOURCE_PACKAGE=1 + ;; + --no-debug-source-package) + SOURCE_PACKAGE=0 + ;; + --src-root-dir) + ROOT_DIR=$2 + shift + ;; + *) + BUILDDIR=$1 + shift + break + ;; + esac + shift +done SOURCEFILE="$BUILDDIR/$target-debugsources.list" > "$SOURCEFILE" @@ -55,13 +75,11 @@ if [ ! -e "$BUILDDIR" ]; then mkdir -p "$BUILDDIR" fi +# extract debug info find $RPM_BUILD_ROOT -type f -name "*.exe" -or -name "*.dll" | sort | \ srcdir=$srcdir SOURCEFILE=$SOURCEFILE BUILDDIR=$BUILDDIR RPM_BUILD_ROOT=$RPM_BUILD_ROOT RUN_SINGLE=1 xargs --max-args=1 --max-procs=0 bash -x $0 -ROOT_DIR="/usr/$host/sys-root/mingw" -SOURCE_DIR="${ROOT_DIR}/src" -DEBUGSOURCE_DIR="${SOURCE_DIR}/debug" - +# generate debug info file list find $RPM_BUILD_ROOT -type f \ -name "*.exe.debug" \ -or -name "*.dll.debug" \ @@ -70,7 +88,17 @@ find $RPM_BUILD_ROOT -type f \ | sort \ | sed -n -e "s#^$RPM_BUILD_ROOT##p" > $BUILDDIR/$target-debugfiles.list -echo creating debugsource file structure +if [ "$SOURCE_PACKAGE" -eq 0 ]; then + echo creating debugsource file structure skipped + exit 0 +else + echo creating debugsource file structure +fi + +# create debug sources +ROOT_DIR="${ROOT_DIR:-/usr/$host/sys-root/mingw}" +SOURCE_DIR="${ROOT_DIR}/src" +DEBUGSOURCE_DIR="${SOURCE_DIR}/debug" destdir=${RPM_BUILD_ROOT}${DEBUGSOURCE_DIR} if [ ! -e "$destdir" ]; then @@ -99,7 +127,7 @@ if [ -e "$RPM_BUILD_ROOT/$DEBUGSOURCE_DIR" ]; then echo "$DEBUGSOURCE_DIR" >> $SOURCEFILE fi -if test "$SINGLE_DEBUG_PACKAGE" -eq 1; then +if [ "$MERGE_SOURCE_PACKAGE" -eq 1 ]; then cat $SOURCEFILE >> $BUILDDIR/$target-debugfiles.list rm $SOURCEFILE* fi