340 lines
13 KiB
RPMSpec
340 lines
13 KiB
RPMSpec
%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: 118
|
|
Release: 4
|
|
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
|
|
Source3: macros.mingw64
|
|
Source4: mingw32.sh
|
|
Source5: mingw64.sh
|
|
Source6: mingw-find-debuginfo.sh
|
|
Source7: mingw-find-requires.sh
|
|
Source8: mingw-find-provides.sh
|
|
Source9: mingw-scripts.sh
|
|
Source10: mingw-rpmlint.config
|
|
Source11: toolchain-mingw32.cmake
|
|
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 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
|
|
# 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 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: %{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 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: %{name}-base = %{version}-%{release}
|
|
|
|
Provides: %(sed "s/\(.*\)/mingw64(\1) /g" %{SOURCE17} | tr "\n" " ")
|
|
Provides: mingw64(mscoree.dll)
|
|
|
|
%description -n mingw64-filesystem
|
|
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 \
|
|
mingw64-configure mingw64-cmake mingw64-make mingw64-meson mingw64-pkg-config ; do
|
|
ln -s %{_libexecdir}/mingw-scripts $i
|
|
done
|
|
popd
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
|
install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
|
|
install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{macrosdir}
|
|
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{macrosdir}/macros.mingw
|
|
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{macrosdir}/macros.mingw32
|
|
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
|
|
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
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/include
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/include/sys
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/lib
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/lib/cmake
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/sbin
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/bin
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/etc
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/include
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/include
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/lib
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig
|
|
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
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/man
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/man/man{1,2,3,4,5,6,7,8,l,n}
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/aclocal
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/themes
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/cmake
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/locale
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/pkgconfig
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/i686-w64-mingw32/sys-root/mingw/share/xml
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/doc
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/info
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/man
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/man/man{1,2,3,4,5,6,7,8,l,n}
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/aclocal
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/themes
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/cmake
|
|
mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/locale
|
|
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
|
|
|
|
grep -v "^$" $RPM_BUILD_ROOT/iso_639.tab | grep -v "^#" | while read a b c d ; do
|
|
[[ "$d" =~ "^Reserved" ]] && continue
|
|
[[ "$d" =~ "^No linguistic" ]] && continue
|
|
|
|
locale=$c
|
|
if [ "$locale" = "XX" ]; then
|
|
locale=$b
|
|
fi
|
|
echo "%lang(${locale}) %{_prefix}/i686-w64-mingw32/sys-root/mingw/share/locale/${locale}" >> filelist_mingw32
|
|
echo "%lang(${locale}) %{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/locale/${locale}" >> filelist_mingw64
|
|
done
|
|
|
|
cat %{SOURCE101} | grep -v "^#" | grep -v "^$" | while read loc ; do
|
|
locale=$loc
|
|
locality=
|
|
special=
|
|
[[ "$locale" =~ "@" ]] && locale=${locale%%%%@*}
|
|
[[ "$locale" =~ "_" ]] && locality=${locale##*_}
|
|
[[ "$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
|
|
echo "%lang(${locale}) %{_prefix}/i686-w64-mingw32/sys-root/mingw/share/locale/${loc}" >> filelist_mingw32
|
|
echo "%lang(${locale}) %{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/locale/${loc}" >> filelist_mingw64
|
|
done
|
|
|
|
rm -f $RPM_BUILD_ROOT/iso_639.tab
|
|
rm -f $RPM_BUILD_ROOT/iso_3166.tab
|
|
|
|
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}
|
|
install -m 0755 %{SOURCE8} $RPM_BUILD_ROOT%{_rpmconfigdir}
|
|
install -m 0755 %{SOURCE13} $RPM_BUILD_ROOT%{_rpmconfigdir}
|
|
|
|
mkdir -p $RPM_BUILD_ROOT/usr/lib/rpm/fileattrs
|
|
install -m 0644 %{SOURCE14} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/
|
|
install -m 0644 %{SOURCE15} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/mingw
|
|
install -m 0644 %{SOURCE11} $RPM_BUILD_ROOT%{_datadir}/mingw/
|
|
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/
|
|
%config(noreplace) %{_sysconfdir}/rpmlint/mingw-rpmlint.config
|
|
%{macrosdir}/macros.mingw
|
|
%{_libexecdir}/mingw-scripts
|
|
%{_rpmconfigdir}/mingw*
|
|
%dir %{_datadir}/mingw/
|
|
|
|
%files -n mingw32-filesystem
|
|
%{macrosdir}/macros.mingw32
|
|
%config(noreplace) %{_sysconfdir}/profile.d/mingw32.sh
|
|
%{_bindir}/mingw32-configure
|
|
%{_bindir}/mingw32-cmake
|
|
%{_bindir}/mingw32-make
|
|
%{_bindir}/mingw32-meson
|
|
%{_bindir}/mingw32-pkg-config
|
|
%{_prefix}/i686-w64-mingw32
|
|
%{_rpmconfigdir}/fileattrs/mingw32.attr
|
|
%{_datadir}/mingw/toolchain-mingw32.cmake
|
|
%{_datadir}/mingw/toolchain-mingw32.meson
|
|
|
|
%files -n mingw64-filesystem
|
|
%{macrosdir}/macros.mingw64
|
|
%config(noreplace) %{_sysconfdir}/profile.d/mingw64.sh
|
|
%{_bindir}/mingw64-configure
|
|
%{_bindir}/mingw64-cmake
|
|
%{_bindir}/mingw64-make
|
|
%{_bindir}/mingw64-meson
|
|
%{_bindir}/mingw64-pkg-config
|
|
%{_prefix}/x86_64-w64-mingw32
|
|
%{_rpmconfigdir}/fileattrs/mingw64.attr
|
|
%{_datadir}/mingw/toolchain-mingw64.cmake
|
|
%{_datadir}/mingw/toolchain-mingw64.meson
|
|
|
|
|
|
%changelog
|
|
* Mon Apr 22 2024 yueyuankun <yueyuankun@kylinos.cn> - 118-4
|
|
- modify spec, add vendor
|
|
|
|
* Mon Feb 5 2024 Li Shunlong <lishunlong@kylinsec.com.cn> - 118-3
|
|
- update changelog info
|
|
|
|
* Tue Jan 30 2024 Li Shunlong <lishunlong@kylinsec.com.cn> - 118-2
|
|
|
|
* Thu Dec 22 2022 wanglin <wangl29@chinatelecom.cn> - 110-5
|
|
- Fix rpm-config hard code problem
|
|
|
|
* Tue Nov 03 2020 Zhiyi Weng <zhiyi@iscas.ac.cn> - 110-4
|
|
- test ci error
|
|
|
|
* Fri Apr 3 2020 likexin <likexin4@huawei.com> - 110-3
|
|
- fix wrong requires
|
|
|
|
* Thu Dec 9 2019 openEuler Buildteam <buildteam@openeuler.org> - 110-2
|
|
- Package init
|