Bug 894834 - Review Request: mingw-gtkglext - OpenGL Extension to GTK+
Summary: Review Request: mingw-gtkglext - OpenGL Extension to GTK+
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Erik van Pienbroek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-01-13 20:02 UTC by Marcel Wysocki
Modified: 2013-07-01 01:44 UTC (History)
5 users (show)

Fixed In Version: mingw-gtkglext-1.2.0-10.fc19
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-07-01 01:28:13 UTC
Type: ---
Embargoed:
erik-fedora: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)
Fix out of source builds (674 bytes, patch)
2013-04-29 12:22 UTC, Erik van Pienbroek
no flags Details | Diff

Description Marcel Wysocki 2013-01-13 20:02:09 UTC
Spec URL: http://maci.satgnu.net/rpmbuild/SPECS/mingw-gtkglext.spec
SRPM URL: http://maci.satgnu.net/rpmbuild/SRPMS/mingw-gtkglext-1.2.0-2.fc18.src.rpm
Description: GtkGLExt is an OpenGL extension to GTK+. It provides additional GDK objects which 
support OpenGL rendering in GTK+ and GtkWidget API add-ons to make GTK+ widgets OpenGL-capable.
Fedora Account System Username: maci

Koji URL: http://koji.fedoraproject.org/koji/taskinfo?taskID=4864807

Comment 1 Marcel Wysocki 2013-01-14 12:55:39 UTC
Update:
* Mon Jan 14 2013 Marcel Wysocki <maci> - 1.2.0-3
- use mingw header macro
- build debuginfo packages


http://koji.fedoraproject.org/koji/taskinfo?taskID=4866908

Comment 2 Marcel Wysocki 2013-01-17 20:28:46 UTC
* Thu Jan 17 2013 Marcel Wysocki <maci> - 1.2.0-4
- add -static packages
- update summary and description
- update buildrequires
- follow https://fedoraproject.org/wiki/Packaging:MinGW

http://koji.fedoraproject.org/koji/taskinfo?taskID=4879446

Comment 3 Marcel Wysocki 2013-01-17 20:38:35 UTC
* Thu Jan 17 2013 Marcel Wysocki <maci> - 1.2.0-5
- add autoconf to BR again, woops

http://koji.fedoraproject.org/koji/taskinfo?taskID=4879455

Comment 4 Erik van Pienbroek 2013-03-11 11:21:51 UTC
Taking for review

* Why are you manually moving the .def files in the %build section? If the build fails without it, then this is most likely caused by a bug in the Makefile.am file which should be patched and reported upstream
* Why is the %mingw_find_lang line commented out? If this package doesn't provide translations then please remove this line completely
* The documentation can be removed as there's already a native gtkglext package in Fedora which provides these docs as well
* The 'rm -rf $RPM_BUILD_ROOT' line isn't needed any more on modern environment and can be removed
* The file containing the license should be added to the filelist for both packages and marked as %doc
* Please update the summary for the main package so that it reflects the fact that this is a MinGW package

Comment 5 Marcel Wysocki 2013-04-17 07:09:05 UTC
fixed all issues locally, except the .def file issue.

i reported it to the upstream mailing list.
https://mail.gnome.org/archives/gtkglext-list/2013-April/msg00000.html

Comment 6 Erik van Pienbroek 2013-04-29 12:21:18 UTC
I've created a small patch to fix the .def issue. Feel free to propose it upstream.

After applying it you need to run 'autoreconf -i --force' in the %prep section. There's already an 'autoconf -i --force' in the %build section. This one can be removed

Once you've published an updated src.rpm we can continue this review

Comment 7 Erik van Pienbroek 2013-04-29 12:22:00 UTC
Created attachment 741444 [details]
Fix out of source builds

Comment 8 Marcel Wysocki 2013-04-30 08:31:32 UTC
thanks for the patch but autoreconf -i --force fails somewhere at the autoconf part

configure.in:190: error: possibly undefined macro: AC_MSG_ERROR
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.in:360: error: possibly undefined macro: AM_PATH_GTK_2_0
autoreconf: /usr/bin/autoconf failed with exit status: 1


running libtoolize before doesnt help either.

it works fine however if i install gtk2-devel on the build machine.
but i guess thats another bug in the auto* construct

Comment 9 Erik van Pienbroek 2013-04-30 10:42:51 UTC
You can add an "BuildRequires: gtk2-devel" to your spec file to resolve this for now. Once the patch has been accepted upstream and upstream releases a new version you can remove this temporary BuildRequires addition and the autoreconf call.

Comment 10 Marcel Wysocki 2013-05-02 08:21:00 UTC
* Tue Apr 30 2013 Marcel Wysocki <maci> - 1.2.0-8
- add gtk2-devel BR
- run autoreconf -i --force in prep

* Mon Apr 29 2013 Marcel Wysocki <maci> - 1.2.0-7
- add gtkglext-fix-out-of-source-builds.patch


Spec URL: http://maci.satgnu.net/rpmbuild/SPECS/mingw-gtkglext.spec

Comment 11 Erik van Pienbroek 2013-05-04 19:06:28 UTC
Please also upload the updated source rpm

Comment 13 Erik van Pienbroek 2013-05-19 15:42:28 UTC
* The autoconf files which are created by this package can be removed (%{mingw32_datadir}/aclocal/* and %{mingw64_datadir}/aclocal/*) as they're duplicate files which are already provided by their native counterpart
* Please replace %{mingw32_libdir}/pkgconfig/*.pc and %{mingw64_libdir}/pkgconfig/*.pc with the individual files (as general rule of thumb: try to prevent the use of wildcards in filelists)
* Please add a comment to each patch explaining what the patch does and whether is has already been proposed upstream (reference to upstream bug tracker)

Comment 14 Kalev Lember 2013-05-19 16:02:49 UTC
(In reply to comment #13)
> * The autoconf files which are created by this package can be removed
> (%{mingw32_datadir}/aclocal/* and %{mingw64_datadir}/aclocal/*) as they're
> duplicate files which are already provided by their native counterpart

I have a nagging feeling that there must be some case where they are useful.

I would suspect the mingw aclocal files get included when the 'configure' script tries to rebuild itself after the configure.ac timestamp has changed. Not all packages do that, it depends on if/how the AM_MAINTAINER_MODE macro is used.

(This case above can be "fixed" by forcing a rebuild of 'configure' with the native aclocal files by running autoreconf before %mingw_configure.)

Comment 15 Erik van Pienbroek 2013-05-19 16:23:52 UTC
(In reply to comment #14)
> (In reply to comment #13)
> > * The autoconf files which are created by this package can be removed
> > (%{mingw32_datadir}/aclocal/* and %{mingw64_datadir}/aclocal/*) as they're
> > duplicate files which are already provided by their native counterpart
> 
> I have a nagging feeling that there must be some case where they are useful.
> 
> I would suspect the mingw aclocal files get included when the 'configure'
> script tries to rebuild itself after the configure.ac timestamp has changed.
> Not all packages do that, it depends on if/how the AM_MAINTAINER_MODE macro
> is used.
> 
> (This case above can be "fixed" by forcing a rebuild of 'configure' with the
> native aclocal files by running autoreconf before %mingw_configure.)

I understand the situation you're trying to explain, but afaik autoconf/automake is only aware of /usr/share/data/aclocal. There are no references to /usr/i686-w64-mingw32/sys-root/mingw/share/data/aclocal in our mingw macros so how is autofoo ever supposed to be aware of files in these folders?

Comment 16 Erik van Pienbroek 2013-05-19 16:25:43 UTC
Typo in paths:

/usr/share/data/aclocal --> /usr/share/aclocal
/usr/i686-w64-mingw32/sys-root/mingw/share/data/aclocal --> /usr/i686-w64-mingw32/sys-root/mingw/share/aclocal

Comment 17 Kalev Lember 2013-05-19 16:39:08 UTC
Fair enough, sounds like they don't really get used then.

I also did a little bit digging and found the following in /usr/bin/aclocal. We don't set ACLOCAL_PATH so it will only use the hardcoded system dir.

# Include paths for searching macros.  We search macros in this order:
# user-supplied directories first, then the directory containing the
# automake macros, and finally the system-wide directories for
# third-party macros.
# @user_includes can be augmented with -I.
# @automake_includes can be reset with the '--automake-acdir' option.
# @system_includes can be augmented with the 'dirlist' file or the
# ACLOCAL_PATH environment variable, and reset with the '--system-acdir'
# option.
my @user_includes = ();
my @automake_includes = ("/usr/share/aclocal-$APIVERSION");
my @system_includes = ('/usr/share/aclocal');

Comment 18 Erik van Pienbroek 2013-05-19 16:41:47 UTC
I was just working on updating the MinGW packaging guidelines and this looks like a candidate which can also be added to the guidelines: autoconf files don't need to be bundled in mingw packages when their native counterparts also provide the same autoconf files

Comment 19 Erik van Pienbroek 2013-05-19 16:54:52 UTC
Section added to the draft MinGW packaging guidelines on what files not to package: https://fedoraproject.org/wiki/PackagingDrafts/MinGWCrossCompiler#Files_which_are_already_part_of_native_packages

Comment 20 Marcel Wysocki 2013-05-20 09:02:06 UTC
* Mon May 20 2013 Marcel Wysocki <maci> - 1.2.0-9
- remove autoconf files
- spec cleanups
- added infos about patches


SPEC URL: http://maci.satgnu.net/rpmbuild/SPECS/mingw-gtkglext.spec
SRPM URL: http://maci.satgnu.net/rpmbuild/SRPMS/mingw-gtkglext-1.2.0-9.fc19.src.rpm

Comment 21 Erik van Pienbroek 2013-05-20 16:06:21 UTC
$ rpmlint mingw-gtkglext.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

$ rpmlint mingw-gtkglext-1.2.0-9.fc19.src.rpm 
mingw-gtkglext.src: W: spelling-error %description -l en_US ons -> nos, ins, obs
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

$ rpmlint mingw32-gtkglext-1.2.0-9.fc19.noarch.rpm mingw32-gtkglext-static-1.2.0-9.fc19.noarch.rpm mingw64-gtkglext-1.2.0-9.fc19.noarch.rpm mingw64-gtkglext-static-1.2.0-9.fc19.noarch.rpm
mingw32-gtkglext.noarch: W: spelling-error %description -l en_US ons -> nos, ins, obs
mingw32-gtkglext.noarch: E: incorrect-fsf-address /usr/share/doc/mingw32-gtkglext-1.2.0/COPYING
mingw32-gtkglext.noarch: E: incorrect-fsf-address /usr/share/doc/mingw32-gtkglext-1.2.0/COPYING.LIB
mingw32-gtkglext-static.noarch: W: spelling-error %description -l en_US ons -> nos, ins, obs
mingw32-gtkglext-static.noarch: W: no-documentation
mingw64-gtkglext.noarch: W: spelling-error %description -l en_US ons -> nos, ins, obs
mingw64-gtkglext.noarch: E: incorrect-fsf-address /usr/share/doc/mingw64-gtkglext-1.2.0/COPYING.LIB
mingw64-gtkglext.noarch: E: incorrect-fsf-address /usr/share/doc/mingw64-gtkglext-1.2.0/COPYING
mingw64-gtkglext-static.noarch: W: spelling-error %description -l en_US ons -> nos, ins, obs
mingw64-gtkglext-static.noarch: W: no-documentation
packages and 0 specfiles checked; 4 errors, 6 warnings.


$ rpm --query --requires mingw32-gtkglext
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
mingw32-crt
mingw32-filesystem >= 83
mingw32(gdi32.dll)
mingw32(glu32.dll)
mingw32(kernel32.dll)
mingw32(libgcc_s_sjlj-1.dll)
mingw32(libgdkglext-win32-1.0-0.dll)
mingw32(libgdk-win32-2.0-0.dll)
mingw32(libglib-2.0-0.dll)
mingw32(libgobject-2.0-0.dll)
mingw32(libgtk-win32-2.0-0.dll)
mingw32(libpango-1.0-0.dll)
mingw32(libpangowin32-1.0-0.dll)
mingw32(msvcrt.dll)
mingw32(opengl32.dll)
mingw32-pkg-config
mingw32(user32.dll)
rpmlib(PayloadIsXz) <= 5.2-1

$ rpm --query --requires mingw64-gtkglext
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
mingw64-crt
mingw64-filesystem >= 83
mingw64(gdi32.dll)
mingw64(glu32.dll)
mingw64(kernel32.dll)
mingw64(libgdkglext-win32-1.0-0.dll)
mingw64(libgdk-win32-2.0-0.dll)
mingw64(libglib-2.0-0.dll)
mingw64(libgobject-2.0-0.dll)
mingw64(libgtk-win32-2.0-0.dll)
mingw64(libpango-1.0-0.dll)
mingw64(libpangowin32-1.0-0.dll)
mingw64(msvcrt.dll)
mingw64(opengl32.dll)
mingw64-pkg-config
mingw64(user32.dll)
rpmlib(PayloadIsXz) <= 5.2-1

$ rpm --query --requires mingw32-gtkglext-static
mingw32-gtkglext = 1.2.0-9.fc19
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1

$ rpm --query --requires mingw64-gtkglext-static
mingw64-gtkglext = 1.2.0-9.fc19
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1


$ rpm --query --provides mingw32-gtkglext
mingw32-gtkglext = 1.2.0-9.fc19
mingw32(libgdkglext-win32-1.0-0.dll)
mingw32(libgtkglext-win32-1.0-0.dll)

$ rpm --query --provides mingw64-gtkglext
mingw64-gtkglext = 1.2.0-9.fc19
mingw64(libgdkglext-win32-1.0-0.dll)
mingw64(libgtkglext-win32-1.0-0.dll)

$ rpm --query --provides mingw32-gtkglext-static
mingw32-gtkglext-static = 1.2.0-9.fc19

$ rpm --query --provides mingw64-gtkglext-static
mingw64-gtkglext-static = 1.2.0-9.fc19


$ wget --quiet  http://downloads.sourceforge.net/sourceforge/gtkglext/gtkglext-1.2.0.tar.bz2 -O - | md5sum
ed7ba24ce06a8630c07f2d0ee5f04ab4  -
$ md5sum gtkglext-1.2.0.tar.bz2 
ed7ba24ce06a8630c07f2d0ee5f04ab4  gtkglext-1.2.0.tar.bz2


+ OK
! Needs to be looked into
/ Not applicable

[!] Compliant with generic Fedora Packaging Guidelines
[+] Source package name is prefixed with 'mingw-'
[+] Spec file starts with %{?mingw_package_header}
[+] BuildRequires: mingw32-filesystem >= 95 is in the .spec file
[+] BuildRequires: mingw64-filesystem >= 95 is in the .spec file
[+] Spec file contains %package sections for both mingw32 and mingw64 packages
[+] Binary mingw32 and mingw64 packages are noarch
[+] Spec file contains %{?mingw_debug_package} after the %description section
[+] Uses one of the macros %mingw_configure, %mingw_cmake, or %mingw_cmake_kde4
    to configure the package
[+] Uses the macro %mingw_make to build the package
[+] Uses the macro %mingw_make to install the package
[+] If package contains translations, the %mingw_find_lang macro must be used
[+] No binary package named mingw-$pkgname is generated
[+] Libtool .la files are not bundled
[+] .def files are not bundled
[+] Man pages which duplicate native package are not bundled
[+] Info files which duplicate native package are not bundled
[+] Provides of the binary mingw32 and mingw64 packages are equal
[!] Requires of the binary mingw32 and mingw64 packages are equal


The incorrect-fsf-address rpmlint warning should be reported upstream.
All other rpmlint warnings can be ignored.

The mingw32 package seems to depend on libgcc_s_sjlj-1.dll while the mingw64
package doesn't. I've also seen this on various other packages so we can
ignore this for now


====================================================
 The package mingw-gtkglext is APPROVED by epienbro
====================================================

Comment 22 Marcel Wysocki 2013-05-21 09:28:46 UTC
New Package SCM Request
=======================
Package Name: mingw-gtkglext
Short Description: GtkGLExt is an OpenGL extension to GTK+. Compiled for the MinGW Platform.
Owners: maci
Branches: f17 f18 f19 el6
InitialCC:

Comment 23 Gwyn Ciesla 2013-05-21 11:05:40 UTC
Git done (by process-git-requests).

Comment 24 Erik van Pienbroek 2013-05-21 11:38:35 UTC
Note: it isn't possible to build this package on RHEL6. This is because of the fact that Red Hat is shipping the old mingw.org toolchain by default in RHEL6. All the mingw-filesystem infrastructure is also still based on the mingw.org toolchain and only supports the win32 target (win64 isn't supported).

We can't introduce the mingw-w64 toolchain in RHEL6 because according to the EPEL packaging guidelines it isn't allowed to replace packages which are already part of the official RHEL6 repositories.

Comment 25 Fedora Update System 2013-06-05 12:41:36 UTC
mingw-gtkglext-1.2.0-10.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/mingw-gtkglext-1.2.0-10.fc18

Comment 26 Fedora Update System 2013-06-05 12:42:14 UTC
mingw-gtkglext-1.2.0-10.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/mingw-gtkglext-1.2.0-10.fc19

Comment 27 Fedora Update System 2013-06-05 16:52:12 UTC
mingw-gtkglext-1.2.0-10.fc19 has been pushed to the Fedora 19 testing repository.

Comment 28 Fedora Update System 2013-07-01 01:28:13 UTC
mingw-gtkglext-1.2.0-10.fc18 has been pushed to the Fedora 18 stable repository.

Comment 29 Fedora Update System 2013-07-01 01:44:37 UTC
mingw-gtkglext-1.2.0-10.fc19 has been pushed to the Fedora 19 stable repository.


Note You need to log in before you can comment on or make changes to this bug.