From 03711dd7715cf3e1ab9a31458ee039f62e032128 Mon Sep 17 00:00:00 2001 From: li Date: Tue, 30 Jan 2024 17:16:48 +0800 Subject: [PATCH] Feature: Update mingw-filesystem version 118 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新mingw-filesystem 118版本 --- macros.mingw | 9 +- macros.mingw32 | 8 +- macros.mingw64 | 8 +- mingw-filesystem.spec | 659 +++++++++++++++++++++++++++++++++++++++- mingw-find-provides.sh | 4 +- mingw-find-requires.sh | 6 +- toolchain-mingw32.meson | 1 + toolchain-mingw64.meson | 1 + 8 files changed, 665 insertions(+), 31 deletions(-) diff --git a/macros.mingw b/macros.mingw index c152d6d..78417ef 100644 --- a/macros.mingw +++ b/macros.mingw @@ -62,10 +62,10 @@ run_mingw_configure run_mingw_make() \ { \ %if 0%{?mingw_build_win32} == 1 \ -make -C build_win32$MINGW_BUILDDIR_SUFFIX "$@" $MINGW32_MAKE_ARGS \ +%{__make} -C build_win32$MINGW_BUILDDIR_SUFFIX "$@" $MINGW32_MAKE_ARGS \ %endif \ %if 0%{?mingw_build_win64} == 1 \ -make -C build_win64$MINGW_BUILDDIR_SUFFIX "$@" $MINGW64_MAKE_ARGS \ +%{__make} -C build_win64$MINGW_BUILDDIR_SUFFIX "$@" $MINGW64_MAKE_ARGS \ %endif \ } \ run_mingw_make @@ -184,5 +184,6 @@ DESTDIR=%{buildroot} ninja -C build_win64$MINGW_BUILDDIR_SUFFIX install \ } \ run_mingw_ninja_install -# Deprecated: -%mingw_make_install %mingw_make install + +%mingw_make_build %mingw_make %{_make_output_sync} %{?_smp_mflags} %{_make_verbose} +%mingw_make_install %mingw_make install DESTDIR=%{?buildroot} INSTALL="%{__install} -p" diff --git a/macros.mingw32 b/macros.mingw32 index 87af379..3c393e1 100644 --- a/macros.mingw32 +++ b/macros.mingw32 @@ -25,7 +25,7 @@ %mingw32_cflags %{mingw32_cppflags} -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 %mingw32_cppflags %{nil} -%mingw32_ldflags %{nil} +%mingw32_ldflags -fstack-protector -lssp %mingw32_cc %{mingw32_target}-gcc %mingw32_cxx %{mingw32_target}-g++ @@ -152,8 +152,10 @@ %mingw32_qmake_qt5 /usr/bin/mingw32-qmake-qt5 %mingw32_meson %{mingw32_env} ; \ - unset CC CFLAGS CPPFLAGS CXX CXXFLAGS LDFLAGS; \\\ - export CFLAGS="%{__global_cflags}" CXXFLAGS="%{__global_cxxflags}" LDFLAGS="%{__global_ldflags}"; \\\ + unset CC CFLAGS CPPFLAGS CXX CXXFLAGS LD LDFLAGS; \\\ + CFLAGS="${MINGW32_CFLAGS-%mingw32_cflags}"; export CFLAGS; \\\ + CPPFLAGS="${MINGW32_CPPFLAGS-%mingw32_cppflags}"; export CPPFLAGS; \\\ + LDFLAGS="${MINGW32_LDFLAGS:-%mingw32_ldflags}"; export LDFLAGS; \\\ if test -f meson.build; then __mingw32_topdir=.; \\\ elif test -f ../meson.build; then __mingw32_topdir=..; \\\ else __mingw32_topdir=""; fi; \\\ diff --git a/macros.mingw64 b/macros.mingw64 index 39b4f4f..cb37add 100644 --- a/macros.mingw64 +++ b/macros.mingw64 @@ -25,7 +25,7 @@ %mingw64_cflags %{mingw64_cppflags} -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 %mingw64_cppflags %{nil} -%mingw64_ldflags %{nil} +%mingw64_ldflags -fstack-protector -lssp %mingw64_cc %{mingw64_target}-gcc %mingw64_cxx %{mingw64_target}-g++ @@ -152,8 +152,10 @@ %mingw64_qmake_qt5 /usr/bin/mingw64-qmake-qt5 %mingw64_meson %{mingw64_env} ; \ - unset CC CFLAGS CPPFLAGS CXX CXXFLAGS LDFLAGS; \\\ - export CFLAGS="%{__global_cflags}" CXXFLAGS="%{__global_cxxflags}" LDFLAGS="%{__global_ldflags}"; \\\ + unset CC CFLAGS CPPFLAGS CXX CXXFLAGS LD LDFLAGS; \\\ + CFLAGS="${MINGW64_CFLAGS-%mingw64_cflags}"; export CFLAGS; \\\ + CPPFLAGS="${MINGW64_CPPFLAGS-%mingw64_cppflags}"; export CPPFLAGS; \\\ + LDFLAGS="${MINGW64_LDFLAGS:-%mingw64_ldflags}"; export LDFLAGS; \\\ if test -f meson.build; then __mingw64_topdir=.; \\\ elif test -f ../meson.build; then __mingw64_topdir=..; \\\ else __mingw64_topdir=""; fi; \\\ diff --git a/mingw-filesystem.spec b/mingw-filesystem.spec index 8bafe84..5a93b24 100644 --- a/mingw-filesystem.spec +++ b/mingw-filesystem.spec @@ -1,13 +1,19 @@ %global debug_package %{nil} + +# Place RPM macros in %%{_rpmconfigdir}/macros.d if it exists (RPM 4.11+) +# Otherwise, use %%{_sysconfdir}/rpm +# https://lists.fedoraproject.org/pipermail/devel/2014-January/195026.html %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: mingw-filesystem -Version: 110 -Release: 5 +Version: 118 +Release: 2 Summary: MinGW cross compiler base filesystem and environment + License: GPLv2+ URL: http://fedoraproject.org/wiki/MinGW BuildArch: noarch + Source0: COPYING Source1: macros.mingw Source2: macros.mingw32 @@ -24,43 +30,85 @@ Source12: toolchain-mingw64.cmake Source13: mingw-find-lang.sh Source14: mingw32.attr Source15: mingw64.attr +# generated with: +# (rpm -ql mingw32-crt | grep '\.a$' | while read f ; do i686-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr A-Z a-z > standard-dlls-mingw32 Source16: standard-dlls-mingw32 +# (rpm -ql mingw64-crt | grep '\.a$' | while read f ; do x86_64-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr A-Z a-z > standard-dlls-mingw64 Source17: standard-dlls-mingw64 Source18: toolchain-mingw32.meson Source19: toolchain-mingw64.meson + +# Taken from the Fedora filesystem package Source101: https://fedorahosted.org/filesystem/browser/lang-exceptions Source102: iso_639.sed Source103: iso_3166.sed + +BuildRequires: make BuildRequires: iso-codes + %description This package contains the base filesystem layout, RPM macros and -environment for MinGW packages. +environment for all Fedora MinGW packages. + +This environment is maintained by the Fedora MinGW SIG at: + + http://fedoraproject.org/wiki/SIGs/MinGW + %package base Summary: Generic files which are needed for both mingw32-filesystem and mingw64-filesystem -Requires: %{_vendor}-rpm-config + +Requires: openEuler-rpm-config +# Obsolete the packages from the test repo Obsoletes: cross-filesystem < 67-2 Obsoletes: cross-filesystem-scripts < 67-2 +Obsoletes: mingw-filesystem < 75-2 Obsoletes: mingw-filesystem-scripts < 75-2 %description base This package contains the base filesystem layout, RPM macros and -environment for MinGW packages. +environment for all Fedora MinGW packages. + +This environment is maintained by the Fedora MinGW SIG at: + + http://fedoraproject.org/wiki/SIGs/MinGW + %package -n mingw32-filesystem Summary: MinGW cross compiler base filesystem and environment for the win32 target -Requires: mingw-filesystem-base = 110-%{release} +Requires: %{name}-base = %{version}-%{release} + +# Note about 'Provides: mingw32(foo.dll)' +# ------------------------------------------------------------ +# +# We want to be able to build & install mingw32 libraries without +# necessarily needing to install wine. (And certainly not needing to +# install Windows!) There is no requirement to have wine installed in +# order to use the mingw toolchain to develop software (ie. to +# compile more stuff on top of it), so why require that? +# +# So for expediency, this base package provides the "missing" DLLs +# from Windows. Another way to do it would be to exclude these +# proprietary DLLs in our find-requires checking script - essentially +# it comes out the same either way. +# Provides: %(sed "s/\(.*\)/mingw32(\1) /g" %{SOURCE16} | tr "\n" " ") Provides: mingw32(mscoree.dll) %description -n mingw32-filesystem This package contains the base filesystem layout, RPM macros and -environment for MinGW packages. +environment for all Fedora MinGW packages. + +This environment is maintained by the Fedora MinGW SIG at: + + http://fedoraproject.org/wiki/SIGs/MinGW + %package -n mingw64-filesystem Summary: MinGW cross compiler base filesystem and environment for the win64 target -Requires: mingw-filesystem-base = 110-%{release} +Requires: %{name}-base = %{version}-%{release} + Provides: %(sed "s/\(.*\)/mingw64(\1) /g" %{SOURCE17} | tr "\n" " ") Provides: mingw64(mscoree.dll) @@ -68,16 +116,26 @@ Provides: mingw64(mscoree.dll) This package contains the base filesystem layout, RPM macros and environment for all Fedora MinGW packages. +This environment is maintained by the Fedora MinGW SIG at: + + http://fedoraproject.org/wiki/SIGs/MinGW + + %prep %setup -q -c -T cp %{SOURCE0} COPYING + %build +# nothing + %install mkdir -p $RPM_BUILD_ROOT + mkdir -p $RPM_BUILD_ROOT%{_libexecdir} install -m 755 %{SOURCE9} $RPM_BUILD_ROOT%{_libexecdir}/mingw-scripts + mkdir -p $RPM_BUILD_ROOT%{_bindir} pushd $RPM_BUILD_ROOT%{_bindir} for i in mingw32-configure mingw32-cmake mingw32-make mingw32-meson mingw32-pkg-config \ @@ -98,6 +156,7 @@ install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{macrosdir}/macros.mingw64 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpmlint install -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/rpmlint/ +# Create the folders required for gcc and binutils mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32 mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/lib @@ -105,6 +164,8 @@ mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/lib +# The MinGW system root which will contain Windows native binaries +# and Windows-specific header files, pkgconfig, etc. mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/etc @@ -125,6 +186,14 @@ mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconf mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/lib/cmake mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/sbin +# We don't normally package manual pages and info files, except +# where those are not supplied by a Fedora native package. So we +# need to create the directories. +# +# Note that some packages try to install stuff in +# /usr/x86_64-pc-mingw32/sys-root/man and +# /usr/x86_64-pc-mingw32/sys-root/doc +# but those are both packaging bugs. mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/doc mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/info @@ -149,6 +218,8 @@ mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/local mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/pkgconfig mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/xml +# Own folders for all locales +# Snippet taken from the Fedora filesystem package sed -n -f %{SOURCE102} /usr/share/xml/iso-codes/iso_639.xml > $RPM_BUILD_ROOT/iso_639.tab sed -n -f %{SOURCE103} /usr/share/xml/iso-codes/iso_3166.xml > $RPM_BUILD_ROOT/iso_3166.tab @@ -173,9 +244,11 @@ cat %{SOURCE101} | grep -v "^#" | grep -v "^$" | while read loc ; do [[ "$locality" =~ "." ]] && locality=${locality%%%%.*} [[ "$loc" =~ "_" ]] || [[ "$loc" =~ "@" ]] || special=$loc + # If the locality is not official, skip it if [ -n "$locality" ]; then grep -q "^$locality" $RPM_BUILD_ROOT/iso_3166.tab || continue fi + # If the locale is not official and not special, skip it if [ -z "$special" ]; then egrep -q "[[:space:]]${locale%%_*}[[:space:]]" $RPM_BUILD_ROOT/iso_639.tab || continue fi @@ -190,6 +263,7 @@ cat filelist_mingw32 filelist_mingw64 | grep "locale" | while read a b ; do mkdir -p -m 755 %{buildroot}/$b/LC_MESSAGES done +# NB. NOT _libdir mkdir -p $RPM_BUILD_ROOT/usr/lib/rpm install -m 0755 %{SOURCE6} $RPM_BUILD_ROOT%{_rpmconfigdir} install -m 0755 %{SOURCE7} $RPM_BUILD_ROOT%{_rpmconfigdir} @@ -206,6 +280,7 @@ install -m 0644 %{SOURCE12} $RPM_BUILD_ROOT%{_datadir}/mingw/ install -m 0644 %{SOURCE18} $RPM_BUILD_ROOT%{_datadir}/mingw/ install -m 0644 %{SOURCE19} $RPM_BUILD_ROOT%{_datadir}/mingw/ + %files base %doc COPYING %dir %{_sysconfdir}/rpmlint/ @@ -241,15 +316,567 @@ install -m 0644 %{SOURCE19} $RPM_BUILD_ROOT%{_datadir}/mingw/ %{_datadir}/mingw/toolchain-mingw64.cmake %{_datadir}/mingw/toolchain-mingw64.meson + %changelog -* Thu Dec 22 2022 wanglin - 110-5 -- Fix rpm-config hard code problem +* Tue Jan 30 2024 Li Shunlong - 118-2 + +* Mon Jun 07 2021 Sandro Mani - 118-1 +- Allow overriding CFLAGS/CXXFLAGS/LDFLAGS for %%mingw_meson + +* Mon Feb 01 2021 Sandro Mani - 117-1 +- Filter Windows API umbrella libraries from requires + +* Tue Jan 26 2021 Fedora Release Engineering 116-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Sandro Mani - 116-1 +- Add -lssp to LDFLAGS + +* Thu Jul 23 2020 Sandro Mani - 115-1 +- Add -fstack-protector to LDFLAGS (since we carry -D_FORTIFY_SOURCE=2 in cflags, see https://sourceforge.net/p/mingw-w64/bugs/818/) + +* Tue Jul 14 2020 Daniel P. Berrangé - 114-1 +- Add meson hint for libgcrypt-config on mingw cross builds (#1856446) + +* Sat May 23 2020 Sandro Mani - 113-1 +- Add %%mingw_make_build and %%mingw_make_install + +* Fri May 22 2020 Sandro Mani - 112-1 +- Fix %%mingw_meson resulting in ERROR: Unable to determine dynamic linker + +* Fri May 01 2020 David Woodhouse - 111-1 +- Quote tr sequences like '[blank]' to prevent the shell from doing so (#1830233) + +* Wed Jan 29 2020 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Nov 07 2019 Marc-André Lureau - 110-1 +- Add redhat-rpm-config dependency. Fixes rhbz#1769792 + +* Thu Aug 29 2019 Sandro Mani - 109-1 +- Add dlltool to toolchain-mingw{32,64}.meson + +* Mon Aug 12 2019 Sandro Mani - 108-1 +- Fix mingw-find-debuginfo.sh to pick up strippable binaries also in %%{_prefix}/%%{mingw32,64_target} + +* Thu Jul 25 2019 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 19 2019 Fabiano Fidêncio - 107-1 +- Add %%mingw_ninja_install macro + +* Thu Feb 14 2019 Sandro Mani - 106-1 +- Revert "Remove redundant $@ in mingw_cmake and mingw_meson", it causes no arguments at all to be passed to cmake + +* Tue Feb 05 2019 Elliott Sales de Andrade - 105-1 +- Remove redundant $@ in mingw_cmake and mingw_meson, breaking wrapper scripts + +* Fri Feb 01 2019 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Apr 20 2018 Elliott Sales de Andrade - 104-1 +- Add macros for meson and ninja + +* Thu Feb 08 2018 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Sep 10 2017 Sandro Mani - 103-1 +- Add %%mingw_nm macro + +* Sat Sep 09 2017 Sandro Mani - 102-1 +- Also extract debuginfo data from pyd binaries + +* Wed Jul 26 2017 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sun May 8 2016 Erik van Pienbroek - 101-1 +- Update config.{guess,sub} in %%mingw_configure (#1288256) +- Regenerated list of default win32 DLL's + +* Thu Feb 04 2016 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Apr 11 2015 Erik van Pienbroek - 100-1 +- Various CMake improvements: + * The toolchain files /usr/share/data/mingw/toolchain-mingw32.cmake + and /usr/share/data/mingw/toolchain-mingw64.cmake don't have + an uppercase character in their file name any more + * Add CMAKE_SYSTEM_PROCESSOR to the CMake toolchain files + * Removed Boost_COMPILER from the CMake toolchain files as + it was unused and broken anyway + * Made the RPM macros mingw32_cmake, mingw32_cmake_kde4, + mingw64_cmake and mingw64_cmake_kde4 more generic + * Removed the rpath references as mingw doesn't support rpath + * Allow verbose CMake output to be disabled by setting the + environment variable MINGW_CMAKE_NO_VERBOSE (RHBZ #987644) + * When calling the mingw32-cmake and mingw64-cmake wrapper + scripts don't use verbose CMake output by default + * When using the CMake wrappers, prevent CFLAGS and CXXFLAGS + from being set unless they're already set in the current + environment (RHBZ #1136069) + * Don't set LIB_INSTALL_DIR any more in the CMake macros + as it breaks CPack and isn't needed by any of the + Fedora MinGW packages (RHBZ #1152696) +- Accept empty MINGW{32,64}_{C,CPP,CXX}FLAGS environment variables +- Removed old _mingw32 macros which have been deprecated since Fedora 17 + +* Sat Jun 07 2014 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Feb 8 2014 Erik van Pienbroek - 99-4 +- Place the RPM macros in /usr/lib/rpm/macros.d when using a modern RPM + +* Sat Aug 3 2013 Erik van Pienbroek - 99-3 +- Own the folders %%{mingw32_libdir}/cmake and %%{mingw64_libdir}/cmake +- Own all the locale folders below %%{mingw32_datadir}/locale and %%{mingw64_datadir}/locale (RHBZ #798329) + +* Sat Aug 03 2013 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Jun 15 2013 Kalev Lember - 99-1 +- Remove invalid macros with '++' in the name + +* Sun Jun 2 2013 Erik van Pienbroek - 98-2 +- Only set the environment variable PKG_CONFIG_LIBDIR when + using the macros %%mingw32_cmake, %%mingw32_cmake_kde4, + %%mingw64_cmake or %%mingw64_cmake_kde4 +- Fixes FTBFS of the mingw-matahari package + +* Sun May 12 2013 Erik van Pienbroek - 98-1 +- Removed the use of the environment variable PKG_CONFIG_LIBDIR + While building binaries the tool {i686,x86_64}-w64-mingw32-pkg-config + should be used to find out pkg-config information + The environment variable PKG_CONFIG already automatically points + to the right cross-compiler aware version of pkg-config when + the mingw{32,64}-pkg-config packages are installed +- Fixes compilation of mingw-gtk3 3.9.0 (GNOME BZ #699690) +- Automatically add R: mingw{32,64}-pkg-config tags when .pc files + are detected while building mingw packages +- Bumped the minimum required version of mingw{32,64}-filesystem + to >= 95 in built mingw packages as this is the first version of + which was introduced in Fedora with a stable interface +- Updated the list of DLLs which are part of the Win32 API with + the libraries d3dcompiler_46.dll, d3dcsx_46.dll, davclnt.dll, + devmgr.dll, devobj.dll and devrtl.dll + +* Thu Feb 28 2013 Ralf Corsépius - 97-3 +- Remove %%config from %%{_sysconfdir}/rpm/macros.* + (https://fedorahosted.org/fpc/ticket/259). +- Minor spec fixes. + +* Thu Feb 14 2013 Fedora Release Engineering - 97-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Dec 16 2012 Erik van Pienbroek - 97-1 +- Added support for using the environment variables MINGW32_MAKE_ARGS and + MINGW64_MAKE_ARGS. These environment variables can be used to provide + additional target-specific arguments when using the %%mingw_make macro + +* Mon Dec 3 2012 Erik van Pienbroek - 96-3 +- Added support for RHEL6 + +* Sat Nov 10 2012 Kalev Lember - 96-2 +- Add provides for mscoree.dll and regenerate the standard-dlls file + +* Mon Sep 17 2012 Erik van Pienbroek - 96-1 +- Added new macros for Qt5 support, %%mingw32_qmake_qt5, %%mingw64_qmake_qt5, + %%mingw_qmake_qt4 and %%mingw_qmake_qt5 +- It isn't necessary to call %%mingw32_env / %%mingw64_env any more + in the %%mingw32_qmake_qt4 and %%mingw64_qmake_qt4 macros + +* Mon Aug 13 2012 Erik van Pienbroek - 95-14 +- Fix the handling of quoted arguments in the cmake macros + +* Tue Jul 24 2012 Erik van Pienbroek - 95-13 +- Make sure the %%mingw_cmake and %%mingw_cmake_kde4 macros respect the + environment variable MINGW_BUILDDIR_SUFFIX + +* Fri Jul 20 2012 Fedora Release Engineering - 95-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 13 2012 Kalev Lember - 95-11 +- Fix syntax error in mingw64_env macro, thanks to Akira TAGOH (#831534) + +* Wed Jun 6 2012 Erik van Pienbroek - 95-10 +- Prevent errors when the folders %%{mingw32_prefix} or %%{mingw64_prefix} are missing +- Fix parse error when -config files containing a . are available + in %%{mingw32_bindir} or %%{mingw64_bindir} (RHBZ #657478) + +* Thu Apr 19 2012 Kalev Lember - 95-9 +- Fix whitespace handling in %%mingw_configure and friends + +* Sat Mar 17 2012 Kalev Lember - 95-8 +- Generate the list of mingw32(...) and mingw64(...) DLL name provides from + mingw-crt import libraries + +* Sat Mar 17 2012 Kalev Lember - 95-7 +- Define mingw_build_win32/win64 in system macros, so that each + individual package wouldn't have to + +* Fri Mar 16 2012 Kalev Lember - 95-6 +- Fix warnings during debuginfo generation + +* Fri Mar 16 2012 Kalev Lember - 95-5 +- Simplify the mingw_make_install macro, also moving it to the deprecated + section + +* Mon Mar 12 2012 Erik van Pienbroek - 95-4 +- Added a manual provides for the native windows library ksuser.dll as + wine doesn't have an implementation for this library at the moment + +* Tue Mar 06 2012 Kalev Lember - 95-3 +- Merge copy-n-paste duplicate %%mingw32_debug_package code +- Get rid of the USE_OLD_METHOD hack in mingw-find-debuginfo.sh +- Add missing %%mingw32_debug_install_post + +* Tue Feb 28 2012 Erik van Pienbroek - 95-2 +- Fixed broken summary tags + +* Sat Feb 25 2012 Erik van Pienbroek - 95-1 +- Added support for both win32 and win64 targets +- Fixed rpmlint issues +- Fixed permissions of the scripts (775 -> 755) +- Fixed description of the various subpackages +- Make the various macros compliant with the new packaging guidelines: + https://fedorahosted.org/fpc/ticket/71 +- Suppress arch-independent-package-contains-binary-or-object rpmlint + errors for static libraries +- Improved the mingw_configure, mingw_make, mingw_make_install, + mingw_cmake and mingw_cmake_kde4 RPM macros so packagers don't need + to use quotes anymore when using arguments. Thanks to Kalev Lember + for the initial proof of concept +- Dropped the -mms-bitfields argument from the default CFLAGS as + it is enabled by default as of gcc 4.7 +- Replaced the CMake defines QT_HEADERS_DIR and QT_LIBRARY_DIR + with QT_BINARY_DIR which is a more proper method to make CMake + aware of the location of Qt. Thx to Dominik Schmidt for the hint +- Make sure CMake can detect the qmake-qt4 binary in /usr/$target/bin +- Make sure CMake can also detect the (native) Qt tools + qdbuscpp2xml and qdbusxml2cpp +- Added new RPM macros mingw_cmake_kde4, mingw32_cmake_kde4 and mingw64_cmake_kde4 +- Added three new environment variables which can be set to + influence the behaviour of the cmake macros: + MINGW_CMAKE_ARGS, MINGW32_CMAKE_ARGS and MINGW64_CMAKE_ARGS +- Dropped the mingw32-qmake-qt4 and mingw64-qmake-qt4 wrapper scripts + as they're now provided by the mingw{32,64}-qt-qmake packages +- Added a new RPM macro: %%{?mingw_package_header} + Packagers can use this macro instead of the original boilerplate + code which is needed for all mingw packages +- Made argument passing using the backwards compatibility macro %%{_mingw32_cmake} work +- Fixed an issue in the mingw_cmake macro where it could point to + a non-existant CMakeLists.txt file +- Fixed a bug in the find-requires script which causes all packages to depend + on both the mingw32 and the mingw64 toolchains +- Split out the RPM macros which require both the mingw{32,64}-filesystem + packages in a new file and put it in the mingw-filesystem-base package +- Generate seperate debuginfo packages for mingw32 and mingw64 +- Set the minimum version of R: mingw{32,64}-filesystem to 70 +- Use the correct FSF-address in some scripts +- Thanks to all the contributors: Erik van Pienbroek, Kalev Lember, Levente + Farkas, Marc-Andre Lureau. + +* Thu Feb 23 2012 Kalev Lember - 69-15 +- Rename the source package to mingw-filesystem (#673784) + +* Sun Feb 5 2012 Erik van Pienbroek - 69-14 +- Use a more complete list of Win32 default dlls based on the + dlls exported by wine (thanks to Levente Farkas). RHBZ #787486 + +* Tue Jan 31 2012 Kalev Lember - 69-13 +- Remove the mingw32-pkg-config wrapper as well, now that we have separate + mingw32-pkg-config package + +* Tue Jan 31 2012 Erik van Pienbroek - 69-12 +- Don't provide the wrapper i686-pc-mingw32-pkg-config anymore as we now + have a mingw32-pkg-config package + +* Tue Jan 10 2012 Erik van Pienbroek - 69-11 +- Set Boost_COMPILER to -gcc47 in cmake toolchain file + +* Tue Nov 22 2011 Erik van Pienbroek - 69-10 +- Fixed a small regression introduced by the previous release which caused an + FTBFS for mingw32-matahari as indicated on the fedora-mingw mailing list + +* Wed Nov 16 2011 Erik van Pienbroek - 69-9 +- Added various definitions to the CMake toolchain file (RHBZ #753906) + +* Tue Aug 02 2011 Kalev Lember - 69-8 +- Added avicap32.dll and psapi.dll to the list of Win32 default DLLs + (thanks to Farkas Levente) + +* Wed Jul 13 2011 Erik van Pienbroek - 69-7 +- Added glu32.dll and wsock32.dll to the list of Win32 default dll's + +* Wed Jul 6 2011 Erik van Pienbroek - 69-6 +- Use a more complete list of Win32 default dll's + +* Wed Jul 06 2011 Kalev Lember - 69-5 +- Fixed dep gen with upper case dll names + +* Fri Jul 1 2011 Erik van Pienbroek - 69-4 +- The %%{_mingw32_qmake_qt4} macro pointed to an invalid mkspecs name. Fixed + +* Tue Jun 28 2011 Kalev Lember - 69-3 +- Set Boost_COMPILER to -gcc46 in cmake toolchain file + +* Sun May 29 2011 Kalev Lember - 69-2 +- Make sure the -debuginfo subpackages are mingw32- prefixed + even if the base package is mingw- + +* Tue May 24 2011 Kalev Lember - 69-1 +- Adjusted PKG_CONFIG_LIBDIR to also search in _mingw32_datadir/pkgconfig/ +- Own the sbin/ directory +- Fixed the -n option with _mingw32_debug_package macro + +* Mon May 23 2011 Kalev Lember - 68-3 +- Own etc/, share/pkgconfig/, share/xml/ directories + +* Sat May 21 2011 Kalev Lember - 68-2 +- Own the _mingw32_datadir/cmake/ directory + +* Fri May 20 2011 Kalev Lember - 68-1 +- Support RPM 4.9 new "fileattr" dep extraction system +- Cleaned up the spec file from cruft not needed with latest rpm +- Generate versionless mingw32-filesystem Requires + +* Sat May 14 2011 Erik van Pienbroek - 67-1 +- Don't unset PKG_CONFIG_PATH in the wrapper scripts + mingw32-pkg-config and i686-pc-mingw32-pkg-config (BZ #688171) + +* Sun May 01 2011 Kalev Lember - 66-1 +- Override boost library suffix in cmake toolchain file + +* Thu Mar 17 2011 Kalev Lember - 65-1 +- Don't error out trying to set illegal LD.BFD variable name + +* Tue Feb 08 2011 Fedora Release Engineering - 64-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 12 2011 Erik van Pienbroek - 64-2 +- Own the directory %%{_mingw32_datadir}/themes + +* Sun Nov 14 2010 Ivan Romanov - 64-1 +- Removed -win32 option for mingw32-qmake-qt4 (is obsoletes since qt version 4.7.0) +- Using win32-g++-fedora-cross instead fedora-win32-cross spec file + +* Thu Nov 11 2010 Erik van Pienbroek - 63-1 +- Set the CMAKE_RC_COMPILER variable in the CMake toolchain file (RHBZ #652435) + +* Tue Oct 19 2010 Ivan Romanov - 62-2 +- Added mingw32-qmake-qt4 + +* Mon Oct 11 2010 Erik van Pienbroek - 62-1 +- Provide mingw32(odbc32.dll) for Qt + +* Sun Sep 12 2010 Erik van Pienbroek - 61-1 +- Provide mingw32(gdiplus.dll) for gdk-pixbuf + +* Thu Sep 9 2010 Richard W.M. Jones - 60-1 +- Provide virtual mingw32(ws2_32.dll) for libvirt. + +* Mon Sep 06 2010 Kalev Lember - 59-1 +- Own /etc/rpmlint/ dir instead of depending on rpmlint package (RHBZ#629791) + +* Fri Sep 3 2010 Richard W.M. Jones - 58-1 +- Remove requires setup and rpm (RHBZ#629791). + +* Tue Jun 8 2010 Richard W.M. Jones - 57-1 +- Add provides mingw32(rpcrt4.dll) (RHBZ#594581). + +* Mon May 24 2010 Kalev Lember - 56-2 +- Work around cmake's Qt detection in the toolchain file + +* Fri Sep 18 2009 Erik van Pienbroek - 55-1 +- The wrapper scripts i686-pc-mingw32-pkg-config, mingw32-pkg-config, + mingw32-configure, mingw32-make and mingw32-cmake had a bug where + quoted arguments could get interpreted incorrect. + Thanks to Michael Ploujnikov for helping out with this issue + +* Sat Aug 29 2009 Erik van Pienbroek - 54-1 +- Added the file /usr/bin/i686-pc-mingw32-pkg-config which is a wrapper script + which calls pkg-config with the right environment variables set (BZ #513825) + +* Sun Aug 23 2009 Erik van Pienbroek - 53-1 +- Fixed a small rpmlint warning caused by the debuginfo generation macro + Thanks to Kalev Lember for spotting this + +* Sat Jul 25 2009 Fedora Release Engineering - 52-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jun 24 2009 Erik van Pienbroek - 52-2 +- Updated ChangeLog comment from previous version as the RPM variable + __debug_install_post needs to be overridden instead of __os_install_post + for -debuginfo subpackage generation + +* Mon Jun 22 2009 Erik van Pienbroek - 52-1 +- Add script to create -debuginfo subpackages + This script was created by Fridrich Strba +- All mingw32 packages now need to add these lines to their .spec files: + %%define __debug_install_post %%{_mingw32_debug_install_post} + %%{_mingw32_debug_package} + +* Thu Jun 4 2009 Adam Goode - 51-1 +- Add CMake rules + +* Tue Apr 21 2009 Richard W.M. Jones - 50-4 +- Fix dependency problem with + in DLL name (Thomas Sailer). + +* Fri Mar 27 2009 Richard W.M. Jones - 50-3 +- Fix up and test mingw32-pkg-config changes. + +* Thu Mar 26 2009 Levente Farkas - 50-1 +- Add mingw32-pkg-config. + +* Wed Feb 25 2009 Fedora Release Engineering - 49-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 20 2009 Richard W.M. Jones - 49-2 +- Rebuild for mingw32-gcc 4.4 + +* Thu Feb 19 2009 Richard W.M. Jones - 49-1 +- Added virtual provides for mingw32(cfgmgr32.dll) and mingw32(setupapi.dll). + +* Wed Feb 18 2009 Richard W.M. Jones - 48-1 +- Fix _mingw32_configure. + +* Tue Feb 17 2009 Richard W.M. Jones - 47-1 +- Rename mingw32-COPYING to COPYING. +- Rename mingw32-macros.mingw32 to macros.mingw32. +- _mingw32_configure looks for configure in "." and ".." dirs. +- Added _mingw32_description. +- Added mingw32(version.dll) virtual provides (rhbz#485842). + +* Sun Feb 1 2009 Richard W.M. Jones - 46-1 +- Unset PKG_CONFIG_PATH because /usr/lib/rpm/macros sets it (Erik van + Pienbroek). + +* Wed Jan 28 2009 Richard W.M. Jones - 45-1 +- Use PKG_CONFIG_LIBDIR instead of PKG_CONFIG_PATH so that native pkgconfig + is never searched. + +* Mon Jan 26 2009 Richard W.M. Jones - 44-1 +- Install rpmlint overrides file to suppress some rpmlint warnings. + +* Sat Jan 24 2009 Richard W.M. Jones - 43-6 +- Don't claim C++ compiler exists if it's not installed, as this + breaks autoconf and (in particular) libtool. + +* Wed Jan 14 2009 Richard W.M. Jones - 42-1 +- Add pseudo-provides secur32.dll + +* Wed Dec 17 2008 Levente Farkas - 41-1 +- Re-add mingw32-make + +* Sat Dec 6 2008 Levente Farkas - 40-2 +- Rewrite mingw32-scripts to run in the current shell +- (Re-add mingw32-make) - Removed by RWMJ. +- Add mingw32-env to mingw32.sh + +* Mon Nov 24 2008 Richard W.M. Jones - 39-3 +- Unify mingw32-filesystem packages from all three branches again, and test. +- Fix mingw32-scripts so it can handle extra parameters correctly. +- Remove mingw32-env & mingw32-make since neither of them actually work. + +* Sun Nov 23 2008 Richard Jones - 38-1 +- Added mingw32(glut32.dll). + +* Wed Nov 19 2008 Richard Jones - 37-1 +- Revert part of the 36-1 patch. --build option to configure was wrong. + +* Wed Nov 19 2008 Richard Jones - 36-1 +- Greatly improved macros (Levente Farkas). +- Added -mms-bitfields. + +* Thu Nov 13 2008 Richard Jones - 35-1 +- Added mingw32(wldap32.dll) pseudo-provides. + +* Wed Oct 29 2008 Richard Jones - 34-1 +- Set --prefix correctly. + +* Wed Oct 29 2008 Richard Jones - 33-1 +- Remove mingw32.{sh,csh} which are unused. + +* Mon Oct 27 2008 Richard Jones - 32-1 +- Add mingw32-configure script. + +* Mon Oct 27 2008 Richard Jones - 31-1 +- Update the spec file with explanation of the 'Provides: mingw32(...)' + lines for Windows system DLLs. + +* Mon Oct 6 2008 Richard Jones - 30-1 +- Added _mingw32_cxx. + +* Thu Sep 25 2008 Richard Jones - 29-1 +- Added _mingw32_as, _mingw32_dlltool, _mingw32_windres. + +* Wed Sep 24 2008 Richard W.M. Jones - 27-1 +- Begin the grand renaming of mingw -> mingw32. +- Added mingw32(mscoree.dll). + +* Sun Sep 21 2008 Richard W.M. Jones - 25-1 +- Add shared aclocal directory. + +* Sun Sep 21 2008 Richard W.M. Jones - 24-1 +- Remove mingw-defs, since no longer used. +- Add _mingw_infodir. + +* Thu Sep 11 2008 Daniel P. Berrange - 23-1 +- Add macros for find-provides/requires scripts + +* Wed Sep 10 2008 Richard W.M. Jones - 22-1 +- Windows provides OLE32.DLL. + +* Wed Sep 10 2008 Richard W.M. Jones - 21-1 +- Allow '.' in dll names for find-requires +- Windows provides GDI32.DLL. + +* Fri Sep 5 2008 Richard W.M. Jones - 20-1 +- On 64 bit install in /usr/lib/rpm always. + +* Thu Sep 4 2008 Richard W.M. Jones - 19-1 +- 'user32.dll' is provided by Windows. +- Allow '-' in DLL names. +- More accurate detection of DLLs in requires/provides scripts. + +* Thu Sep 4 2008 Richard W.M. Jones - 17-1 +- Automatically add mingw-filesystem and mingw-runtime requires. +- Add --prefix to _mingw_configure macro. +- Three backslashes required on each continuation line in RPM macros. + +* Thu Sep 4 2008 Richard W.M. Jones - 14-1 +- Fix path to mingw-find-requires/provides scripts. + +* Thu Sep 4 2008 Richard W.M. Jones - 12-1 +- Put CFLAGS on a single line to avoid problems in some configure scripts. + +* Thu Sep 4 2008 Richard W.M. Jones - 10-1 +- Provides certain base Windows DLLs (not literally). + +* Thu Sep 4 2008 Richard W.M. Jones - 9-1 +- Include RPM dependency generators and definitions. + +* Thu Sep 4 2008 Richard W.M. Jones - 4-1 +- Add _mingw_cc/cflags/etc. and _mingw_configure macros. -* Tue Nov 03 2020 Zhiyi Weng - 110-4 -- test ci error +* Thu Sep 4 2008 Richard W.M. Jones - 3-1 +- Add _mingw_host macro. -* Fri Apr 3 2020 likexin - 110-3 -- fix wrong requires +* Thu Sep 4 2008 Richard W.M. Jones - 2-1 +- Add _mingw_sysroot macro. +- Add _mingw_target macro. -* Thu Dec 9 2019 openEuler Buildteam - 110-2 -- Package init +* Thu Sep 4 2008 Richard W.M. Jones - 1-1 +- Basic filesystem layout. diff --git a/mingw-find-provides.sh b/mingw-find-provides.sh index 30c6150..1bcb2da 100755 --- a/mingw-find-provides.sh +++ b/mingw-find-provides.sh @@ -11,10 +11,10 @@ fi filelist=`sed "s/['\"]/\\\&/g"` -dlls=$(echo $filelist | tr [:blank:] '\n' | grep '\.dll$') +dlls=$(echo $filelist | tr '[:blank:]' '\n' | grep '\.dll$') for f in $dlls; do - basename=`basename $f | tr [:upper:] [:lower:]` + basename=`basename $f | tr '[:upper:]' '[:lower:]'` for target in $targets; do host_triplet=`rpm --eval "%{${target}_target}"` [[ $f =~ .*$host_triplet.* ]] && echo "$target($basename)" diff --git a/mingw-find-requires.sh b/mingw-find-requires.sh index 84686c1..9e8e303 100755 --- a/mingw-find-requires.sh +++ b/mingw-find-requires.sh @@ -15,8 +15,8 @@ fi filelist=`sed "s/['\"]/\\\&/g"` -dlls=$(echo $filelist | tr [:blank:] '\n' | grep -Ei '\.(dll|exe)$') -pkgconfig_files=$(echo $filelist | tr [:blank:] '\n' | grep -Ei '\.(pc)$') +dlls=$(echo $filelist | tr '[:blank:]' '\n' | grep -Ei '\.(dll|exe)$') +pkgconfig_files=$(echo $filelist | tr '[:blank:]' '\n' | grep -Ei '\.(pc)$') for target in $targets; do dll_found=false @@ -24,7 +24,7 @@ for target in $targets; do for f in $dlls; do if [[ $f =~ .*$host_triplet.* ]]; then $OBJDUMP -p $f | grep 'DLL Name' | grep -Eio '[-._\+[:alnum:]]+\.dll' | - tr [:upper:] [:lower:] | + grep -v 'api-ms-win' | tr '[:upper:]' '[:lower:]' | sed "s/\(.*\)/$target(\1)/" dll_found=true fi diff --git a/toolchain-mingw32.meson b/toolchain-mingw32.meson index edae1d6..4d3000b 100644 --- a/toolchain-mingw32.meson +++ b/toolchain-mingw32.meson @@ -9,6 +9,7 @@ ranlib = '/usr/bin/x86_64-w64-mingw32-ranlib' strip = '/usr/bin/i686-w64-mingw32-strip' windres = '/usr/bin/i686-w64-mingw32-windres' dlltool = '/usr/bin/i686-w64-mingw32-dlltool' +libgcrypt-config = '/usr/i686-w64-mingw32/sys-root/mingw/bin/libgcrypt-config' [properties] root = '/usr/i686-w64-mingw32/sys-root/mingw' diff --git a/toolchain-mingw64.meson b/toolchain-mingw64.meson index 195df84..918bee0 100644 --- a/toolchain-mingw64.meson +++ b/toolchain-mingw64.meson @@ -9,6 +9,7 @@ ranlib = '/usr/bin/x86_64-w64-mingw32-ranlib' strip = '/usr/bin/x86_64-w64-mingw32-strip' windres = '/usr/bin/x86_64-w64-mingw32-windres' dlltool = '/usr/bin/x86_64-w64-mingw32-dlltool' +libgcrypt-config = '/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcrypt-config' [properties] root = '/usr/x86_64-w64-mingw32/sys-root/mingw' -- Gitee