17
0

12 Commits

Author SHA256 Message Date
601a87cd0c Accepting request 1315683 from windows:mingw:win32
- Update to version 20251105
- Removed unnecessary runtime dependency on rpmlint, which is only
  required for building packages and is installed by default on OBS
  (bsc#1252998)
- Update to version 20251104
- Fix 'mingw32-filesystem requires rpmlint-mini' outside
  opensuse build system on Tumbleweed (bsc#1252998)

OBS-URL: https://build.opensuse.org/request/show/1315683
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw32-filesystem?expand=0&rev=38
2025-11-06 17:12:36 +00:00
1bd818cab8 - Update to version 20251105
- Removed unnecessary runtime dependency on rpmlint, which is only
  required for building packages and is installed by default on OBS
  (bsc#1252998)

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=211
2025-11-05 09:48:34 +00:00
576261388d Limit last change to tumbleweed only
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=210
2025-11-04 23:22:28 +00:00
84fa0fdb3a - Update to version 20251104
- Fix 'mingw32-filesystem requires rpmlint-mini' outside
  opensuse build system on Tumbleweed (bsc#1252998)

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=209
2025-11-04 23:06:14 +00:00
9b72f8fb18 Accepting request 1302201 from windows:mingw:win32
- Update to version 20250901
- Add providing support for metainfo and desktop files

OBS-URL: https://build.opensuse.org/request/show/1302201
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw32-filesystem?expand=0&rev=37
2025-09-01 15:18:50 +00:00
9191505b0e - Update to version 20250901
- Add providing support for metainfo and desktop files

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=207
2025-09-01 11:48:17 +00:00
fd43318c49 Accepting request 1301036 from windows:mingw:win32
OBS-URL: https://build.opensuse.org/request/show/1301036
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw32-filesystem?expand=0&rev=36
2025-08-25 18:37:45 +00:00
ab8a94c4c1 - Update to version 20250822
- Add checks to shell scripts to see if host-specific executable
  files are present and report this as an error to avoid hidden
  problems (bsc#1248468)

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=205
2025-08-23 04:09:53 +00:00
15fdeb208d Accepting request 1299479 from windows:mingw:win32
- Update to version 20250814
- Fix egrep: warning: egrep is obsolescent; using grep -E when
  creating debug info package

OBS-URL: https://build.opensuse.org/request/show/1299479
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw32-filesystem?expand=0&rev=35
2025-08-15 19:52:24 +00:00
c337d6fdc2 Update
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=203
2025-08-14 21:25:20 +00:00
6f4330e7b1 Update
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=202
2025-08-14 21:22:58 +00:00
a6398b5b0c Fixes
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win32/mingw32-filesystem?expand=0&rev=201
2025-08-14 21:22:19 +00:00
10 changed files with 165 additions and 18 deletions

28
mingw32-desktop-file.prov Normal file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
#
# Transform desktop mimetype info into RPM mimehandler(type) provides
#
# Author: Richard Hughes <richard@hughsie.com>
# Based on other provides scripts from RPM
OLD_IFS="$IFS"
while read instfile ; do
case "$instfile" in
*.desktop)
if ! grep -q '^Type=Application$' "$instfile"; then continue; fi
if ! grep -q '^Exec=' "$instfile"; then continue; fi
echo "application()"
echo "application(${instfile##*/applications/})"
echo "mingw32(application)"
echo "mingw32(application:${instfile##*/applications/})"
mime=`grep '^MimeType=' "$instfile" | cut -d'=' -f2`
IFS=';'
for type in $mime ; do
echo 'mimehandler('$type')'
echo 'mingw32(mimehandler:'$type')'
done
;;
esac
done
IFS=$OLD_IFS

View File

@@ -1,3 +1,39 @@
-------------------------------------------------------------------
Wed Nov 5 09:45:07 UTC 2025 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to version 20251105
- Removed unnecessary runtime dependency on rpmlint, which is only
required for building packages and is installed by default on OBS
(bsc#1252998)
-------------------------------------------------------------------
Tue Nov 4 22:51:49 UTC 2025 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to version 20251104
- Fix 'mingw32-filesystem requires rpmlint-mini' outside
opensuse build system on Tumbleweed (bsc#1252998)
-------------------------------------------------------------------
Mon Sep 1 09:19:16 UTC 2025 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to version 20250901
- Add providing support for metainfo and desktop files
-------------------------------------------------------------------
Fri Aug 22 09:44:22 UTC 2025 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to version 20250822
- Add checks to shell scripts to see if host-specific executable
files are present and report this as an error to avoid hidden
problems (bsc#1248468)
-------------------------------------------------------------------
Thu Aug 14 21:19:58 UTC 2025 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to version 20250814
- Fix egrep: warning: egrep is obsolescent; using grep -E when
creating debug info package
-------------------------------------------------------------------
Tue May 13 16:20:39 UTC 2025 - Michal Suchanek <msuchanek@suse.de>

View File

@@ -1,7 +1,7 @@
#
# spec file for package mingw32-filesystem
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# 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: mingw32-filesystem
Version: 20250515
Version: 20251105
Release: 0
Summary: MinGW base filesystem and environment
License: GPL-2.0-or-later
@@ -55,6 +55,10 @@ Source17: mingw32_binaries.attr
Source19: mingw32_config.attr
Source20: mingw32_libs.attr
Source21: mingw32_pkgconfig.attr
Source22: mingw32_desktop.attr
Source23: mingw32_metainfo.attr
Source24: mingw32-desktop-file.prov
Source25: mingw32-metainfo.prov
# add excluded system libraries to mingw32-find-requires.sh
# TODO: The following provides could be removed after all packages has been rebuild
Provides: mingw32(bcrypt.dll)
@@ -82,7 +86,6 @@ Requires: mingw32-cross-binutils-utils
Requires: mingw32-cross-pkgconf-utils
Requires: python3
Requires: rpm
Requires: rpmlint-mini
Requires: sed
BuildArch: noarch
#!BuildIgnore: post-build-checks
@@ -182,12 +185,17 @@ install -m 0755 %{SOURCE4} %{buildroot}%{_rpmconfigdir}
install -m 0755 %{SOURCE5} %{buildroot}%{_rpmconfigdir}
install -m 0755 %{SOURCE8} %{buildroot}%{_rpmconfigdir}
install -m 0755 %{SOURCE9} %{buildroot}%{_rpmconfigdir}
install -m 0755 %{SOURCE24} %{buildroot}%{_rpmconfigdir}
install -m 0755 %{SOURCE25} %{buildroot}%{_rpmconfigdir}
# dependency generator support
mkdir -p %{buildroot}%{_fileattrsdir}
install -m 0644 %{SOURCE17} %{buildroot}%{_fileattrsdir}
install -m 0644 %{SOURCE19} %{buildroot}%{_fileattrsdir}
install -m 0644 %{SOURCE20} %{buildroot}%{_fileattrsdir}
install -m 0644 %{SOURCE21} %{buildroot}%{_fileattrsdir}
install -m 0644 %{SOURCE22} %{buildroot}%{_fileattrsdir}
install -m 0644 %{SOURCE23} %{buildroot}%{_fileattrsdir}
# Create the locale directories:
while read LANG ; do

View File

@@ -10,7 +10,10 @@
# BUILDDIR build directory (often $HOME/rpmbuild/BUILD)
#
# environment variables:
# OBJCOPY - object file copy tool (optional, default is $host-objcopy)
# OBJDUMP - object file dumper (optional, default is $host-objdump)
# ROOT_DIR - directory where to install debug sources (optional, default is <$ROOT_DIR>/src/debug)
# SRCFILES - tool to get debug source files from binaries (optional, default is $host-objdump-srcfiles)
#
# $PWD package dir below $BUILDDIR
@@ -20,25 +23,40 @@ host="i686-w64-mingw32"
# 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
result=$("$OBJDUMP" -h "$f" 2>/dev/null | grep -E -o '(debug[\.a-z_]*|gnu.version)')
case $result in
*debuglink*) exit 0;;
*debug*) ;;
*gnu.version*)
echo "WARNING: "`echo $f | sed -e "s,^$RPM_BUILD_ROOT/*,/,"`" is already stripped!"
exit 0
;;
*) exit 0 ;;
;;
*)
echo "WARNING: "`echo $f | sed -e "s,^$RPM_BUILD_ROOT/*,/,"`" unknown case, value is '$result'"
exit 0
;;
esac
echo extracting debug info from $f
# grep all listed source files belonging to this package into temporary source file list.
"$host-objdump" -Wi "$f" | "$host-objdump-srcfiles" | grep $srcdir >>"$SOURCEFILE.tmp"
"$host-objcopy" --only-keep-debug "$f" "$f.debug" || :
"$OBJDUMP" -Wi "$f" | "$SRCFILES" | grep $srcdir >>"$SOURCEFILE.tmp"
"$OBJCOPY" --only-keep-debug "$f" "$f.debug" || :
pushd `dirname $f`
"$host-objcopy" --add-gnu-debuglink=`basename "$f.debug"` --strip-unneeded `basename "$f"` || :
"$OBJCOPY" --add-gnu-debuglink=`basename "$f.debug"` --strip-unneeded `basename "$f"` || :
popd
exit 0
fi
[ -z "$OBJDUMP" ] && OBJDUMP="$host-objdump"
[ -z "$OBJCOPY" ] && OBJCOPY="$host-objcopy"
[ -z "$SRCFILES" ] && SRCFILES="$host-objdump-srcfiles"
for i in $OBJDUMP $OBJCOPY $SRCFILES; do
if ! [ -x "$(command -v $i)" ]; then
echo "Error: $i is not installed." >&2
exit 1
fi
done
# speed up running objdump, see bug https://bugzilla.opensuse.org/show_bug.cgi?id=1202431
export MALLOC_CHECK_=0
export MALLOC_PERTURB_=0
@@ -80,7 +98,15 @@ 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
BUILDDIR=$BUILDDIR \
OBJDUMP=$OBJDUMP \
OBJCOPY=$OBJCOPY \
RPM_BUILD_ROOT=$RPM_BUILD_ROOT \
RUN_SINGLE=1 \
SOURCEFILE=$SOURCEFILE \
SRCFILES=$SRCFILES \
srcdir=$srcdir \
xargs --max-args=1 --max-procs=0 bash -x $0
# generate debug info file list
find $RPM_BUILD_ROOT -type f \

View File

@@ -10,6 +10,14 @@ if [ -n "$1" ]; then
fi
[ -z "$OBJDUMP" ] && OBJDUMP="$host-objdump"
[ -z "$PKGCONF" ] && PKGCONF="$host-pkgconf"
for i in $OBJDUMP $PKGCONF; do
if ! [ -x "$(command -v $i)" ]; then
echo "Error: $i is not installed." >&2
exit 1
fi
done
filelist=`sed "s/['\"]/\\\&/g"`
@@ -25,7 +33,7 @@ done
for g in $pcs; do
[ ! -f "$g" ] && continue
PKG_CONFIG_PATH="${g%/*}" "$host-pkgconf" --print-errors --print-provides "$g" | awk '{ print "'"$target"'(pkg:"$1")", $2, $3 }'
PKG_CONFIG_PATH="${g%/*}" "$PKGCONF" --print-errors --print-provides "$g" | awk '{ print "'"$target"'(pkg:"$1")", $2, $3 }'
done | sort -u
for h in $libs; do

View File

@@ -23,8 +23,16 @@ if [ -n "$1" ]; then
fi
[ -z "$OBJDUMP" ] && OBJDUMP="$host-objdump"
[ -z "$PKGCONF" ] && PKGCONF="$host-pkgconf"
[ -z "$STRINGS" ] && STRINGS="$host-strings"
for i in $OBJDUMP $PKGCONF $STRINGS; do
if ! [ -x "$(command -v $i)" ]; then
echo "Error: $i is not installed." >&2
exit 1
fi
done
# Get the list of files.
filelist=`sed "s/['\"]/\\\&/g"`
@@ -140,14 +148,14 @@ fi
(
for g in $pcs; do
dirname="${g%/*}"
PKG_CONFIG_PATH="$dirname" "$host-pkgconf" --print-errors --print-requires "$g" | awk '{ print "'"$target"'(pkg:"$1")", $2, $3 }'
PKG_CONFIG_PATH="$dirname" "$host-pkgconf" --print-errors --print-requires-private "$g" | grep -Ev "$exclude_pattern" | awk '{ print "'"$target"'(pkg:"$1")", $2, $3 }'
for h in $(PKG_CONFIG_PATH="$dirname" "$host-pkgconf" --libs-only-l "$g" | sed 's#^\-l##g;s# \-l# #g'); do
PKG_CONFIG_PATH="$dirname" "$PKGCONF" --print-errors --print-requires "$g" | awk '{ print "'"$target"'(pkg:"$1")", $2, $3 }'
PKG_CONFIG_PATH="$dirname" "$PKGCONF" --print-errors --print-requires-private "$g" | grep -Ev "$exclude_pattern" | awk '{ print "'"$target"'(pkg:"$1")", $2, $3 }'
for h in $(PKG_CONFIG_PATH="$dirname" "$PKGCONF" --libs-only-l "$g" | sed 's#^\-l##g;s# \-l# #g'); do
echo "$target(lib:$h)"
done
done
for k in $configs; do
for j in $(PKG_CONFIG="$host-pkgconf" "$k" --libs); do
for j in $(PKG_CONFIG="$PKGCONF" "$k" --libs); do
case "$j" in
-l*)
echo "$j" | sed 's#\-l##g' | grep -Ev "$exclude_pattern" | awk '{ print "'"$target"'(lib:"$1")" }'

View File

@@ -10,16 +10,24 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
exit 0
fi
[ -z "$OBJDUMP" ] && OBJDUMP="$host-objdump"
[ -z "$STRIP" ] && STRIP="$host-strip"
for i in $OBJDUMP $STRIP; do
if ! [ -x "$(command -v $i)" ]; then
echo "Error: $i is not installed." >&2
exit 1
fi
done
LC_ALL=
LANG=
LC_TIME=POSIX
cd "$RPM_BUILD_ROOT"
[ -z "$STRIP" ] && STRIP="$host-strip"
for f in `find . -type f -name "*.exe" -or -name "*.dll"`; do
case $("$host-objdump" -h "$f" 2>/dev/null | grep -E -o '(debug[\.a-z_]*|gnu.version)') in
case $("$OBJDUMP" -h "$f" 2>/dev/null | grep -E -o '(debug[\.a-z_]*|gnu.version)') in
*debuglink*) continue ;;
*debug*) ;;
*gnu.version*)

21
mingw32-metainfo.prov Normal file
View File

@@ -0,0 +1,21 @@
#!/bin/sh
#
# Transform appdata/metainfo xml file into RPM metainfo(filename) provides
#
# Author: Michael Schroeder <mls@suse.de>
# Modified by Neal Gompa <ngompa13@gmail.com> to generate metainfo instead of appdata
# Based on other provides scripts from RPM
OLD_IFS="$IFS"
while read instfile ; do
case "$instfile" in
*.appdata.xml|*.metainfo.xml)
echo "metainfo()"
echo "metainfo(${instfile##*/})"
echo "mingw32(metainfo)"
echo "mingw32(metainfo:${instfile##*/})"
;;
esac
done
IFS=$OLD_IFS

2
mingw32_desktop.attr Normal file
View File

@@ -0,0 +1,2 @@
%__desktop_provides %{_rpmconfigdir}/mingw32-desktop-file.prov
%__desktop_path ^%{_mingw32_datadir}/applications/.*\\.desktop$

2
mingw32_metainfo.attr Normal file
View File

@@ -0,0 +1,2 @@
%__metainfo_provides %{_rpmconfigdir}/mingw32-metainfo.prov
%__metainfo_path ^%{_mingw32_datadir}/(appdata|metainfo)/.*\\.(appdata|metainfo)\\.xml$