Proposal: drop the hard dependency on mingw32-gettext from mingw32-glib2
by Erik van Pienbroek
Hi,
Recently I was browsing the upstream GTK website and I noticed that
upstream has used a special trick to build the Win32 binaries for GLib.
In order to make the dependency on gettext a soft one they used a small
static wrapper library called libproxy-intl [1]. With this wrapper
library the GLib DLL doesn't depend directly anymore on libintl-8.dll
(from mingw32-gettext). The wrapper library makes the hard dependency a
runtime one. This means that if libintl-8.dll is bundled with the
application then gettext translations will be used, otherwise nothing
gets translated.
I'd like to propose that we apply this change as well in our Fedora
MinGW toolchain.
Such a change consists of the following smaller changes:
- Bundle the libproxy-intl code (1 .c file and 1 .h file) in
the mingw32-gettext srpm as additional source files
- Compile the libproxy-intl code with these 2 instructions:
%{_mingw32_cc} -c libintl.c -o libintl.o -I.
%{_mingw32_ar} rc libintl.a libintl.o
- Replace the files libintl.{a,.dll.a,.la} generated by the
gettext compilation with the libintl.a file from libproxy-intl.
This makes any binary which tries to link against mingw32-gettext
using '-lintl' have a soft-dependency on libintl.
After this a simple rebuild of mingw32-glib2 should be sufficient enough
to make mingw32-gettext a soft dependency.
Next to glib2 there are also some other packages which have a hard
dependency on libintl-8.dll:
$ repoquery --whatrequires 'mingw32(libintl-8.dll)'
mingw32-atk-0:1.32.0-1.fc14.noarch
mingw32-gdk-pixbuf-0:2.22.0-1.fc14.noarch
mingw32-glib2-0:2.26.0-1.fc14.noarch
mingw32-gnutls-0:2.6.4-3.fc13.noarch
mingw32-gtk-vnc-0:0.4.1-1.fc14.noarch
mingw32-gtk2-0:2.22.0-1.fc14.noarch
mingw32-gtkhtml3-0:3.32.0-1.fc14.noarch
mingw32-gvnc-0:0.4.1-1.fc14.noarch
mingw32-hunspell-0:1.2.8-11.fc12.noarch
mingw32-libglade2-0:2.6.4-4.fc12.noarch
mingw32-libidn-0:1.14-5.fc12.noarch
Most of these packages (if not all) don't use gettext directly, but get
linked against gettext because of it being mentioned in glib2's
pkgconfig and .la files. A rebuild should be sufficient to replace the
hard dependencies on those packages by soft ones. However, in order to
prevent the libproxy-intl functions from being exported in other DLL's
(as mentioned on [1]) I think it's better drop the reference to libintl
from glib2's pkgconfig and .la files. As most of the packages mentioned
above don't use gettext directly, but the GLib gettext functions to
handle translations this shouldn't cause any major problems.
As the glib2 headers depend on the libintl.h header a 'Requires:
mingw32-gettext' also needs to be added to the mingw32-glib2 package.
I already applied these changes in a testing repository for a generic
cross compiler framework (coming soon!) [2][3] and it works fine there.
Another thing GTK upstream has done in their Win32 binaries is using
win-iconv instead of GNU iconv. I just put up a review request for
mingw32-win-iconv at [4]. Could somebody please review that package?
Does everybody agree to these changes?
Kind regards,
Erik van Pienbroek
[1]: http://www.gtk.org/download-windows.html
[2]: http://svn.openftd.org/svn/fedora_cross
[3]: http://svn.openftd.org/viewvc/Fedora%20Cross%20Compiler%
20Framework/
[4]: https://bugzilla.redhat.com/show_bug.cgi?id=642208
12 years, 10 months
Status update about mingw-w64 support
by Erik van Pienbroek
Hi everybody,
It's been a while since the last announcement about mingw-w64 support so
I think it's about time for another update.
Packaging guidelines:
---------------------
Some weeks ago I proposed a new set of packaging guidelines for
mingw-w64 support. These have been under review for a few weeks and have
been approved by the Fedora Packaging Committee at the meeting of April
13 [1]. These guidelines will be effective as of Fedora 16 [2].
One of the changes which wasn't in the initial draft, but was proposed
by the FPC is that all mingw macros shouldn't contain an underscore any
more. For example, the macro %{_mingw32_bindir} is now called
%{mingw32_bindir}.
Another change is that all mingw packages have to use the macros %
mingw_configure, %mingw_make, %mingw_make_install and %mingw_cmake to
build/install the package. In the original draft these macros were
surrounded by curly braces. Upon request of the FPC, these curly braces
were dropped. A test has been done to be sure this doesn't break
anything.
Backwards compatibility macros also have been introduced so packages
using the original mingw packaging guidelines can still work (though
package maintainers are recommended to make their packages compliant
with the new guidelines once the 5 toolchain packages have been imported
in Fedora)
Package reviews:
----------------
As the approved packaging guidelines differ a bit from the original
draft, the 5 base toolchain packages needed to be updated. This has
already been done by now and updated packages have been put up for
review [3]. Unfortunately, nobody has started reviewing the packages
yet, so without that we can't continue. In order to perform a review you
only have to be a package maintainer in Fedora, so various people in the
MinGW SIG should already be able to perform these reviews (you don't
need to have any other magic powers to perform reviews, so please help!)
Legal approval:
---------------
Back in Januari, when I put up the mingw-w64 packages up for review I
already made them block 'FE-Legal'. Unfortunately, I haven't heard
anything ever since from FE-Legal about the packages.
Recently, one of the lead developers of the mingw-w64 project, Kai Tietz
has been hired by Red Hat to help maintaining Windows cross compiler
support. Right now he's trying to get everything rolling in Red Hat
Legal internally to get legal clearance for mingw-w64 so we can continue
with the introduction of mingw-w64 in Fedora. At the moment we don't
have an indication about an estimated time for such an approval, but I'm
confident that it will be cleared before the Fedora 16 feature freeze.
Testing repository:
-------------------
Because of the new packaging guidelines, all packages in the testing
repository have also been adjusted to be compliant with these new
guidelines. At the moment only the mingw32 and mingw64 packages are
compliant with these new guidelines. The darwinx packages aren't really
updated for now, but some changes have been made so that the darwinx
packages can be installed independent of the mingw32 and mingw64
packages.
In this new round of updated packages the mingw-w64 toolchain is now
also based on the trunk branch. Support for the secure API (as was
requested for wine-gecko support) is also enabled.
Kind regards,
Erik van Pienbroek
[1]:
http://meetbot.fedoraproject.org/fedora-meeting/2011-04-13/fpc.2011-04-13...
[2]: https://fedoraproject.org/wiki/Packaging:MinGW
[3]:
https://bugzilla.redhat.com/showdependencytree.cgi?id=673784&hide_resolved=1
12 years, 11 months
[Bug 679060] Review Request: mingw32-antlr - MinGW Windows ANTLR C++ run-time library
by Red Hat Bugzilla
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=679060
Kalev Lember <kalev(a)smartlink.ee> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |kalev(a)smartlink.ee
AssignedTo|nobody(a)fedoraproject.org |kalev(a)smartlink.ee
--- Comment #1 from Kalev Lember <kalev(a)smartlink.ee> 2011-04-30 08:41:13 EDT ---
Taking for review.
The spec and srpm above are missing all BuildRequires, did you upload the right
files?
The comment "we ship only a static library" just above the %files section is
misleading now that you're also building a dll.
There are some substantial build system improvements in mingw32-antlr.patch,
have you submitted it upstream already?
Not sure how close you want to keep to the native antlr spec file, but if
that's not important, then you can remove BuildRoot definition, the whole
%clean section, and the "rm -rf $RPM_BUILD_ROOT" in the beginning of %install,
as they are no longer needed with current Fedora releases.
--
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
12 years, 11 months
[mingw32-gcc] Update to 4.5.3
by Kalev Lember
commit bf9bb7bc5e59e85510197935c928f477a32c4392
Author: Kalev Lember <kalev(a)smartlink.ee>
Date: Sat Apr 30 11:49:41 2011 +0300
Update to 4.5.3
.gitignore | 1 +
mingw32-gcc.spec | 7 +++++--
sources | 2 +-
3 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 3dd5d3e..23e47ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
gcc-4.5.1.tar.bz2
+/gcc-4.5.3.tar.bz2
diff --git a/mingw32-gcc.spec b/mingw32-gcc.spec
index fdf01bc..284d1ed 100644
--- a/mingw32-gcc.spec
+++ b/mingw32-gcc.spec
@@ -1,8 +1,8 @@
%global __os_install_post /usr/lib/rpm/brp-compress %{nil}
Name: mingw32-gcc
-Version: 4.5.1
-Release: 2%{?dist}
+Version: 4.5.3
+Release: 1%{?dist}
Summary: MinGW Windows cross-compiler (GCC) for C
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
@@ -279,6 +279,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat Apr 30 2011 Kalev Lember <kalev(a)smartlink.ee> - 4.5.3-1
+- Update to 4.5.3
+
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 4.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
diff --git a/sources b/sources
index c8ef8d2..1e11f67 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-48231a8e33ed6e058a341c53b819de1a gcc-4.5.1.tar.bz2
+8e0b5c12212e185f3e4383106bfa9cc6 gcc-4.5.3.tar.bz2
12 years, 11 months