17
0

10 Commits

Author SHA256 Message Date
c7b9a861ea Accepting request 1315684 from windows:mingw:win64
- 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 'mingw64-filesystem requires rpmlint-mini' outside
  open build service on Tumbleweed (bsc#1252998)

OBS-URL: https://build.opensuse.org/request/show/1315684
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw64-filesystem?expand=0&rev=37
2025-11-06 17:12:37 +00:00
b3103789ea - 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:win64/mingw64-filesystem?expand=0&rev=190
2025-11-05 09:50:27 +00:00
e5f1d6ecee Limit last change to tumbleweed only
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-filesystem?expand=0&rev=189
2025-11-04 23:24:23 +00:00
2149fae718 - Update to version 20251104
- Fix 'mingw64-filesystem requires rpmlint-mini' outside
  open build service on Tumbleweed (bsc#1252998)

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-filesystem?expand=0&rev=188
2025-11-04 23:06:04 +00:00
5e601963ea Accepting request 1302200 from windows:mingw:win64
OBS-URL: https://build.opensuse.org/request/show/1302200
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw64-filesystem?expand=0&rev=36
2025-09-01 15:18:49 +00:00
033d9ba64d - Update to version 20250901
- Add providing support for metainfo and desktop files

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-filesystem?expand=0&rev=186
2025-09-01 11:49:11 +00:00
84113d3175 Accepting request 1301037 from windows:mingw:win64
OBS-URL: https://build.opensuse.org/request/show/1301037
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw64-filesystem?expand=0&rev=35
2025-08-25 18:37:46 +00:00
31e98f5ec2 - 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:win64/mingw64-filesystem?expand=0&rev=184
2025-08-23 04:10:19 +00:00
e62bad4d55 Accepting request 1299478 from windows:mingw:win64
OBS-URL: https://build.opensuse.org/request/show/1299478
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw64-filesystem?expand=0&rev=34
2025-08-15 19:52:23 +00:00
7649273788 - Update to version 20250814
- Fix egrep: warning: egrep is obsolescent; using grep -E when
  creating debug info package

OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-filesystem?expand=0&rev=182
2025-08-14 21:27:35 +00:00
10 changed files with 167 additions and 17 deletions

28
mingw64-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 "mingw64(application)"
echo "mingw64(application:${instfile##*/applications/})"
mime=`grep '^MimeType=' "$instfile" | cut -d'=' -f2`
IFS=';'
for type in $mime ; do
echo 'mimehandler('$type')'
echo 'mingw64(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 'mingw64-filesystem requires rpmlint-mini' outside
open build service 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 mingw64-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: mingw64-filesystem
Version: 20250515
Version: 20251105
Release: 0
Summary: MinGW base filesystem and environment
License: GPL-2.0-or-later
@@ -55,6 +55,10 @@ Source17: mingw64_binaries.attr
Source19: mingw64_config.attr
Source20: mingw64_libs.attr
Source21: mingw64_pkgconfig.attr
Source22: mingw64_desktop.attr
Source23: mingw64_metainfo.attr
Source24: mingw64-desktop-file.prov
Source25: mingw64-metainfo.prov
# add excluded system libraries to mingw64-find-requires.sh
# TODO: The following provides could be removed after all packages has been rebuild
Provides: mingw64(bcrypt.dll)
@@ -82,7 +86,6 @@ Requires: mingw64-cross-binutils-utils
Requires: mingw64-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

@@ -9,6 +9,12 @@
# --src-root-dir root dir for installing debug source files (src/debug is appended)
# 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
target="mingw64"
@@ -17,25 +23,40 @@ host="x86_64-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
@@ -77,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
mingw64-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 "mingw64(metainfo)"
echo "mingw64(metainfo:${instfile##*/})"
;;
esac
done
IFS=$OLD_IFS

2
mingw64_desktop.attr Normal file
View File

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

2
mingw64_metainfo.attr Normal file
View File

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