]> git.pld-linux.org Git - packages/crossmingw32-glib2.git/blobdiff - crossmingw32-glib2.spec
- adjusted executables paths in .pc files to point to native tools; release 2
[packages/crossmingw32-glib2.git] / crossmingw32-glib2.spec
index c880ccedfec832e3ab18e01a5f0dc4a2c63efcd4..455a814eb8868b85022413ee509cbc4211a7085f 100644 (file)
@@ -1,4 +1,4 @@
-Summary:       Useful routines for 'C' programming - Ming32 cross version
+Summary:       Useful routines for 'C' programming - MinGW32 cross version
 Summary(cs.UTF-8):     Šikovná knihovna s funkcemi pro pomocné programy
 Summary(da.UTF-8):     Nyttige biblioteksfunktioner
 Summary(de.UTF-8):     Eine nützliche Library von Dienstprogramm-Funktionen
@@ -6,33 +6,48 @@ Summary(es.UTF-8):    Conjunto de funciones gráficas utilitarias
 Summary(fi.UTF-8):     Kirjasto, jossa on työkalufunktioita
 Summary(fr.UTF-8):     Bibliothèque de fonctions utilitaires
 Summary(ja.UTF-8):     便利なユーティリティ関数のライブラリ
-Summary(pl.UTF-8):     Biblioteka zawierająca wiele użytecznych funkcji C - wersja skrośna dla Ming32
+Summary(pl.UTF-8):     Biblioteka zawierająca wiele użytecznych funkcji C - wersja skrośna dla MinGW32
 Summary(pt_BR.UTF-8):  Conjunto de funções gráficas utilitárias
 Summary(tr.UTF-8):     Yararlı ufak yordamlar kitaplığı
 Summary(zh_CN.UTF-8):  实用工具函数库
 %define                realname   glib
-Name:          crossmingw32-%{realname}2
-Version:       2.20.1
-Release:       1
+Name:          crossmingw32-glib2
+Version:       2.66.8
+Release:       2
 License:       LGPL v2+
 Group:         Development/Libraries
-Source0:       http://ftp.gnome.org/pub/GNOME/sources/glib/2.20/glib-%{version}.tar.bz2
-# Source0-md5: d7ef53c7b65827a1baa4bad1c6893fa3
-Patch0:                %{name}-stacktest.patch
-URL:           http://www.gtk.org/
-BuildRequires: autoconf >= 2.54
-BuildRequires: automake >= 1:1.7
-BuildRequires: crossmingw32-gcc
+Source0:       https://download.gnome.org/sources/glib/2.66/glib-%{version}.tar.xz
+# Source0-md5: 705dd46a43d339e8aea19e946e71c32a
+Patch0:                glib2-win32.patch
+URL:           https://www.gtk.org/
+BuildRequires: crossmingw32-gcc-c++
 BuildRequires: crossmingw32-gettext
+BuildRequires: crossmingw32-libffi >= 3.0.0
 BuildRequires: crossmingw32-libiconv
-BuildRequires: crossmingw32-pcre >= 7.8
-BuildRequires: libtool
-BuildRequires: pkgconfig >= 1:0.16.0
+BuildRequires: crossmingw32-pcre >= 8.31
+# rand_s()
+BuildRequires: crossmingw32-runtime >= 1:4.0.3-2
+# SetThreadErrorMode and more
+BuildRequires: crossmingw32-w32api >= 1:5.0.2-9
+BuildRequires: crossmingw32-zlib
+# host glib-genmarshall and glib-compile-schemas are needed for cross-compiling
+BuildRequires: glib2 >= 1:2.62.0
+BuildRequires: gtk-doc >= 1.20
+BuildRequires: meson >= 0.50.0-2
+BuildRequires: ninja >= 1.5
+BuildRequires: pkgconfig >= 1:0.16
+BuildRequires: python3 >= 1:3.5
+BuildRequires: rpmbuild(macros) >= 1.736
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
 Requires:      crossmingw32-gettext
-Requires:      crossmingw32-pcre >= 7.8
+Requires:      crossmingw32-libffi >= 3.0.0
+Requires:      crossmingw32-pcre >= 8.31
+ExcludeArch:   i386
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                no_install_post_strip   1
+%define                _enable_debug_packages  0
 
 %define                target                  i386-mingw32
 %define                host                    %{target}
@@ -43,15 +58,14 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                _libdir                 %{_prefix}/lib
 %define                _pkgconfigdir           %{_prefix}/lib/pkgconfig
 %define                _dlldir                 /usr/share/wine/windows/system
-%define                __cc                    %{target}-gcc
-%define                __cxx                   %{target}-g++
+%define                __pkgconfig_provides    %{nil}
+%define                __pkgconfig_requires    %{nil}
 
-%ifnarch %{ix86}
-# arch-specific flags (like alpha's -mieee) are not valid for i386 gcc
-%define                optflags        -O2
-%endif
-# -z options are invalid for mingw linker
+# for meson 0.50+, keep __cc/__cxx as host compiler and pass %{target}-* in meson-cross.txt
+
+# -z options are invalid for mingw linker, most of -f options are Linux-specific
 %define                filterout_ld    -Wl,-z,.*
+%define                filterout_c     -f[-a-z0-9=]*
 
 %description
 GLib, is a library which includes support routines for C such as
@@ -106,58 +120,89 @@ arquivos de inclusão estão em glib-devel.
 Yararlı yordamlar kitaplığı. Geliştirme kitaplıkları ve başlık
 dosyaları glib-devel paketinde yer almaktadır.
 
+%package static
+Summary:       Static GLib 2 libraries (cross MinGW32 version)
+Summary(pl.UTF-8):     Statyczne biblioteki GLib 2 (wersja skrośna MinGW32)
+Group:         Development/Libraries
+Requires:      %{name} = %{version}-%{release}
+
+%description static
+Static GLib 2 libraries (cross MinGW32 version).
+
+%description static -l pl.UTF-8
+Statyczne biblioteki GLib 2 (wersja skrośna MinGW32).
+
 %package dll
-Summary:       DLL glib2 libraries for Windows
-Summary(pl.UTF-8):     Biblioteki DLL glib2 dla Windows
+Summary:       DLL GLib 2 libraries for Windows
+Summary(pl.UTF-8):     Biblioteki DLL GLib 2 dla Windows
 Group:         Applications/Emulators
 Requires:      crossmingw32-gettext-dll
-Requires:      crossmingw32-pcre-dll >= 7.8
+Requires:      crossmingw32-libffi-dll >= 3.0.0
+Requires:      crossmingw32-pcre-dll >= 8.31
 Requires:      wine
 
 %description dll
-DLL glib2 libraries for Windows.
+DLL GLib 2 libraries for Windows.
 
 %description dll -l pl.UTF-8
-Biblioteki DLL glib2 dla Windows.
+Biblioteki DLL GLib 2 dla Windows.
 
 %prep
 %setup -q -n %{realname}-%{version}
 %patch0 -p1
 
+cat > meson-cross.txt <<'EOF'
+[host_machine]
+system = 'windows'
+cpu_family = 'x86'
+cpu = 'i386'
+endian='little'
+[binaries]
+c = '%{target}-gcc'
+cpp = '%{target}-g++'
+ar = '%{target}-ar'
+windres = '%{target}-windres'
+pkgconfig = 'pkg-config'
+[properties]
+%ifarch %{ix86}
+c_args = ['%(echo %{rpmcflags} | sed -e "s/ \+/ /g;s/ /', '/g")']
+%else
+# arch-specific flags (like alpha's -mieee) are not valid for i386 gcc.
+# now at least i486 is required for atomic operations
+c_args = ['-O2', '-march=i486']
+%endif
+EOF
+
 %build
 export PKG_CONFIG_LIBDIR=%{_prefix}/lib/pkgconfig
-%{__libtoolize}
-%{__aclocal}
-%{__automake}
-%{__autoconf}
-%configure \
-       --target=%{target} \
-       --host=%{target} \
-       --disable-gtk-doc \
-       --enable-shared \
-       --with-pcre=system
-
-%{__make}
+%meson build \
+       --cross-file meson-cross.txt \
+       %{?debug:--debug} \
+       -Dselinux=disabled
+
+%ninja_build -C build
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-%{__make} install \
-       DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
 
 install -d $RPM_BUILD_ROOT%{_dlldir}
-mv -f $RPM_BUILD_ROOT%{_prefix}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir}
+%{__mv} $RPM_BUILD_ROOT%{_prefix}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir}
 
 %if 0%{!?debug:1}
 %{target}-strip --strip-unneeded -R.comment -R.note $RPM_BUILD_ROOT%{_dlldir}/*.dll
 %{target}-strip -g -R.comment -R.note $RPM_BUILD_ROOT%{_libdir}/*.a
 %endif
 
-rm -f $RPM_BUILD_ROOT%{_libdir}/charset.alias
+# adjust for system tools
+%{__sed} -i -e '/^\(gio\|gio_querymodules\|glib_compile_schemas\|glib_compile_resources\|gdbus\|gdbus_codegen\|gresource\|gsettings\|glib_genmarshal\|gobject_query\|glib_mkenums\)=/ s,\${bindir},/usr/bin,' $RPM_BUILD_ROOT%{_pkgconfigdir}/{gio,glib}-2.0.pc
+
 # use system glib2-devel instead
-rm -rf $RPM_BUILD_ROOT%{_datadir}/{aclocal,glib-2.0,gtk-doc,man}
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/{gdbus-codegen,glib-genmarshal,glib-gettextize,glib-mkenums,gtester-report,*.exe}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/{aclocal,bash-completion,gettext,glib-2.0}
 # runtime
-rm -rf $RPM_BUILD_ROOT%{_datadir}/locale
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -169,21 +214,13 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgmodule-2.0.dll.a
 %{_libdir}/libgobject-2.0.dll.a
 %{_libdir}/libgthread-2.0.dll.a
-%{_libdir}/libgio-2.0.la
-%{_libdir}/libglib-2.0.la
-%{_libdir}/libgmodule-2.0.la
-%{_libdir}/libgobject-2.0.la
-%{_libdir}/libgthread-2.0.la
-%{_libdir}/gio-2.0.def
-%{_libdir}/glib-2.0.def
-%{_libdir}/gmodule-2.0.def
-%{_libdir}/gobject-2.0.def
-%{_libdir}/gthread-2.0.def
+%{_includedir}/gio-win32-2.0
 %{_includedir}/glib-2.0
 %dir %{_libdir}/glib-2.0
 %dir %{_libdir}/glib-2.0/include
 %{_libdir}/glib-2.0/include/glibconfig.h
 %{_pkgconfigdir}/gio-2.0.pc
+%{_pkgconfigdir}/gio-windows-2.0.pc
 %{_pkgconfigdir}/glib-2.0.pc
 %{_pkgconfigdir}/gmodule-2.0.pc
 %{_pkgconfigdir}/gmodule-export-2.0.pc
@@ -191,10 +228,18 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/gobject-2.0.pc
 %{_pkgconfigdir}/gthread-2.0.pc
 
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libgio-2.0.a
+%{_libdir}/libglib-2.0.a
+%{_libdir}/libgmodule-2.0.a
+%{_libdir}/libgobject-2.0.a
+%{_libdir}/libgthread-2.0.a
+
 %files dll
 %defattr(644,root,root,755)
-%{_dlldir}/libgio-2.0-*.dll
-%{_dlldir}/libglib-2.0-*.dll
-%{_dlldir}/libgmodule-2.0-*.dll
-%{_dlldir}/libgobject-2.0-*.dll
-%{_dlldir}/libgthread-2.0-*.dll
+%{_dlldir}/libgio-2.0-0.dll
+%{_dlldir}/libglib-2.0-0.dll
+%{_dlldir}/libgmodule-2.0-0.dll
+%{_dlldir}/libgobject-2.0-0.dll
+%{_dlldir}/libgthread-2.0-0.dll
This page took 0.062591 seconds and 4 git commands to generate.