-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
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.12.9
+%define realname glib
+Name: crossmingw32-glib2
+Version: 2.60.1
Release: 1
-License: LGPL
-Group: Libraries
-#Source0: ftp://ftp.gtk.org/pub/glib/2.12/win32/glib-dev-%{version}.zip
-Source0: ftp://ftp.gtk.org/pub/glib/2.12/%{_realname}-%{version}.tar.bz2
-# Source0-md5: b3f6a2a318610af6398b3445f1a2d6c6
-Patch0: %{name}-stacktest.patch
+License: LGPL v2+
+Group: Development/Libraries
+Source0: http://ftp.gnome.org/pub/GNOME/sources/glib/2.60/glib-%{version}.tar.xz
+# Source0-md5: 3b6046a33102397330cbc63847093a39
+Patch0: glib2-win32.patch
URL: http://www.gtk.org/
-BuildRequires: crossmingw32-libiconv
+BuildRequires: crossmingw32-gcc
BuildRequires: crossmingw32-gettext
-BuildRequires: unzip
-Requires: crossmingw32-binutils
+BuildRequires: crossmingw32-libffi >= 3.0.0
+BuildRequires: crossmingw32-libiconv
+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-4
+BuildRequires: crossmingw32-zlib
+# host glib-genmarshall and glib-compile-schemas are needed for cross-compiling
+BuildRequires: glib2 >= 1:2.32.0
+BuildRequires: gtk-doc >= 1.20
+BuildRequires: meson >= 0.50.0-2
+BuildRequires: ninja
+BuildRequires: pkgconfig >= 1:0.16
+BuildRequires: python3 >= 1:3.4
+BuildRequires: rpmbuild(macros) >= 1.736
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Requires: crossmingw32-gettext
+Requires: crossmingw32-pcre >= 8.31
+ExcludeArch: i386
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define no_install_post_strip 1
%define target i386-mingw32
%define host %{target}
%define target_platform %{target}
-%define arch %{_prefix}/%{target}
-%define gccarch %{_prefix}/lib/gcc-lib/%{target}
-%define gcclib %{_prefix}/lib/gcc-lib/%{target}/%{version}
%define _sysprefix /usr
%define _prefix %{_sysprefix}/%{target}
+%define _libdir %{_prefix}/lib
%define _pkgconfigdir %{_prefix}/lib/pkgconfig
-%define __cc %{target}-gcc
-%define __cxx %{target}-g++
+%define _dlldir /usr/share/wine/windows/system
+%define __pkgconfig_provides %{nil}
+%define __pkgconfig_requires %{nil}
+# for meson 0.50+, keep __cc/__cxx as host compiler and pass %{target}-* in meson-cross.txt
+
+%ifnarch %{ix86}
+# arch-specific flags (like alpha's -mieee) are not valid for i386 gcc.
+# now at least i486 is required for atomic operations
+%define optflags -O2 -march=i486
+%endif
+# -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
-lists, trees, hashes, memory allocation, and many other things. GLIB
+lists, trees, hashes, memory allocation, and many other things. GLib
includes also generally useful data structures used by GIMP and many
other.
header-tiedostot ovat glib-devel-paketissa.
%description -l ja.UTF-8
-
GLibはユーティリティ関数を集めた便利なライブラリです。このC言語用ライブラリは、
いくつかの問題を解決するよう設計されており、多くのプログラムから要求される使いやすい
関数を提供します。
等のためにこのglibパッケージをインストールしてください。
%description -l pl.UTF-8
-Glib jest zestawem bibliotek zawierających funkcje do obsługi list i
+GLib jest zestawem bibliotek zawierających funkcje do obsługi list i
drzew, funkcje mieszające, funkcje do alokacji pamięci i dużo innych
podstawowych funkcji i różnych struktur danych używanych przez program
GIMP i wiele innych.
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 GLib 2 libraries for Windows
+Summary(pl.UTF-8): Biblioteki DLL GLib 2 dla Windows
+Group: Applications/Emulators
+Requires: crossmingw32-gettext-dll
+Requires: crossmingw32-libffi-dll >= 3.0.0
+Requires: crossmingw32-pcre-dll >= 8.31
+Requires: wine
+
+%description dll
+DLL GLib 2 libraries for Windows.
+
+%description dll -l pl.UTF-8
+Biblioteki DLL GLib 2 dla Windows.
+
%prep
-%setup -q -n %{_realname}-%{version}
+%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]
+c_args = ['%(echo %{rpmcflags} | sed -e "s/ \+/ /g;s/ /', '/g")']
+EOF
+
%build
-export PKG_CONFIG_PATH=%{_prefix}/lib/pkgconfig
-%{__libtoolize}
-%{__aclocal}
-%{__automake}
-%{__autoconf}
-%configure \
- --target=%{target} \
- --host=%{target} \
- --disable-gtk-doc \
- --enable-shared
-
-%{__make}
+export PKG_CONFIG_LIBDIR=%{_prefix}/lib/pkgconfig
+%meson build \
+ --cross-file meson-cross.txt \
+ %{?debug:--debug} \
+ -Dselinux=disabled
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-#install -d $RPM_BUILD_ROOT%{arch}/share
-#
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
-%find_lang glib20 --with-gnome
+%ninja_install -C build
+
+install -d $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
+
+# use system glib2-devel instead
+%{__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} -r $RPM_BUILD_ROOT%{_datadir}/locale
%clean
rm -rf $RPM_BUILD_ROOT
-%files -f glib20.lang
+%files
%defattr(644,root,root,755)
-%dir %{_includedir}/glib-2.0
+%{_libdir}/libgio-2.0.dll.a
+%{_libdir}/libglib-2.0.dll.a
+%{_libdir}/libgmodule-2.0.dll.a
+%{_libdir}/libgobject-2.0.dll.a
+%{_libdir}/libgthread-2.0.dll.a
+%{_includedir}/gio-win32-2.0
%{_includedir}/glib-2.0
-%{_libdir}/*.la
-%{_libdir}/*.a
-%{_bindir}/*.dll
+%dir %{_libdir}/glib-2.0
%dir %{_libdir}/glib-2.0/include
%{_libdir}/glib-2.0/include/glibconfig.h
-%{_pkgconfigdir}/*.pc
-%{_datadir}/aclocal/glib*
-%dir %{_datadir}/glib-2.0/gettext
-%attr(755,root,root) %{_datadir}/glib-2.0/gettext/mkinstalldirs
-%dir %{_datadir}/glib-2.0/gettext/po
-%{_datadir}/glib-2.0/gettext/po/*
+%{_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
+%{_pkgconfigdir}/gmodule-no-export-2.0.pc
+%{_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-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