Bug 491317 - (mingw32-gstreamer) Review Request: mingw32-gstreamer - MinGW Windows gstreamer library
Review Request: mingw32-gstreamer - MinGW Windows gstreamer library
Status: CLOSED DUPLICATE of bug 704635
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Erik van Pienbroek
Fedora Extras Quality Assurance
:
Depends On: 454410 mingw32-glib2 mingw32-libxml2
Blocks:
  Show dependency treegraph
 
Reported: 2009-03-20 08:11 EDT by Levente Farkas
Modified: 2011-05-16 13:42 EDT (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-05-16 13:42:41 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
erik-fedora: fedora‑review?


Attachments (Terms of Use)

  None (edit)
Comment 1 Richard W.M. Jones 2009-03-20 09:30:34 EDT
Koji scratch-build:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1251262
Comment 2 Richard W.M. Jones 2009-03-20 09:32:48 EDT
Auto-buildrequires says:

BuildRequires: bash = 3.2.30.fc10.x86_64
BuildRequires: binutils = 2.18.50.0.9.8.fc10.x86_64
BuildRequires: bison = 2.3.5.fc9.x86_64
BuildRequires: bzip2 = 1.0.5.3.fc10.x86_64
BuildRequires: coreutils = 6.12.20.fc10.x86_64
BuildRequires: cpp = 4.3.2.7.x86_64
BuildRequires: diffutils = 2.8.1.21.fc9.x86_64
BuildRequires: file = 4.26.4.fc10.x86_64
BuildRequires: findutils = 1:4.4.0.1.fc10.x86_64
BuildRequires: flex = 2.5.35.2.fc10.x86_64
BuildRequires: gawk = 3.1.6.2.fc10.x86_64
BuildRequires: gcc = 4.3.2.7.x86_64
BuildRequires: gettext = 0.17.8.fc10.x86_64
BuildRequires: glib2-devel = 2.18.4.1.fc10.x86_64
BuildRequires: glibc-common = 2.9.3.x86_64
BuildRequires: grep = 2.5.1a.61.fc10.x86_64
BuildRequires: gtk-doc = 1.10.2.fc10.noarch
BuildRequires: kdelibs3 = 3.5.10.3.fc10.x86_64
BuildRequires: make = 1:3.81.14.fc10.x86_64
BuildRequires: mingw32-binutils = 2.19.2.fc10.x86_64
BuildRequires: mingw32-cpp = 4.3.2.12.fc10.x86_64
BuildRequires: mingw32-dlfcn = 0.0.3.r11.fc10.noarch
BuildRequires: mingw32-filesystem = 43.6.fc11.noarch
BuildRequires: mingw32-gcc = 4.3.2.12.fc10.x86_64
BuildRequires: mingw32-gettext = 0.17.7.fc10.noarch
BuildRequires: mingw32-glib2 = 2.19.5.2.1.fc10.noarch
BuildRequires: mingw32-iconv = 1.12.7.fc10.noarch
BuildRequires: mingw32-libxml2 = 2.7.2.6.fc10.noarch
BuildRequires: mingw32-runtime = 3.15.1.10.fc10.noarch
BuildRequires: mingw32-w32api = 3.12.8.fc10.noarch
BuildRequires: net-tools = 1.60.91.fc10.x86_64
BuildRequires: patch = 2.5.4.35.fc10.x86_64
BuildRequires: perl = 4:5.10.0.56.fc10.x86_64
BuildRequires: pkgconfig = 1:0.23.6.fc10.x86_64
BuildRequires: sed = 4.1.5.11.fc10.x86_64
BuildRequires: tar = 2:1.20.5.fc10.x86_64
BuildRequires: which = 2.19.3.fc9.x86_64
Comment 3 Richard W.M. Jones 2009-03-20 09:35:40 EDT
rpmlint output:

mingw32-gstreamer.src:534: W: macro-in-%changelog doc
Comment 4 Levente Farkas 2009-03-20 09:40:35 EDT
it'd be useful to somehow shorten the length of this Auto-buildrequires.
eg: don't include default pacakges like patch, sed, etc. don't include pacakges which already required by other BR's eg. mingw32-glib2 already BR all other mingw32*
and there are some noise since gcc shouldn't have to be in list.

for the rpmlint warning i saw it, but wouldn't like to change native pacakge's changelog.
Comment 5 Richard W.M. Jones 2009-03-20 09:44:08 EDT
Sure thing!  Patches welcome ...
Comment 6 Richard W.M. Jones 2009-03-24 09:02:02 EDT
Taking for review ...
Comment 7 Richard W.M. Jones 2009-03-25 07:00:41 EDT
Unfortunately this package cannot be installed, because
the -tools subpackage on which the main package depends
isn't built (by RPM in Rawhide anyway).
Comment 8 Levente Farkas 2009-03-25 10:08:51 EDT
i updated the spec to build tools and not to requires it (since imho it has no reason even in the native packages):
http://www.lfarkas.org/linux/packages/centos/5/SPECS/mingw32-gstreamer.spec
http://www.lfarkas.org/linux/packages/centos/5/SRPMS/mingw32-gstreamer-0.10.22-2.src.rpm

koji build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1258243
Comment 9 Levente Farkas 2009-04-12 17:47:18 EDT
ping...
Comment 10 Levente Farkas 2009-04-30 07:32:52 EDT
Richard is there an reason not to approved?
Comment 11 Richard W.M. Jones 2009-04-30 07:41:59 EDT
Probably because I'm super-busy.  Unassigning myself from review.

If you ask on the fedora-mingw mailing list I'm sure you can get
someone to review this.
Comment 12 Erik van Pienbroek 2009-05-09 14:15:17 EDT
Okay, I'll continue the review.

- The .spec file contains a lot of commented out parts. You might want to remove these for readability
- The %{_mingw32_configure} call contains --with-package-name='Fedora Core gstreamer package'. Fedora Core isn't used anymore these days, so you might want to use just plain 'Fedora' here (without the 'Core').
- When performing make, you've added -D__MSVCRT_VERSION__=0x0601 to the CFLAGS. You might want to put a reference to the discussion about this in there as a comment: http://www.mail-archive.com/fedora-mingw@lists.fedoraproject.org/msg00741.html
- Isn't it possible to set the -D__MSVCRT_VERSION__=0x0601 in the %configure phase? This is recommended to minimize the chance of side-effects
- At line 116 there's the comment '# Install doc temporarily in order to be included later by rpm'. This is confusing as the next line contains a regular 'make install' command
- The libtool .la files don't need to be removed as they're required to compile applications/other libraries with want to link against gstreamer
- You might want to put the .a files (static libraries) in a seperate -static subpackage
- Why is an empty cache directory created in the %install phase? It isn't being used elsewhere in the .spec file
- Why are the binaries split across two packages?
- Why is the %defattr line at line 162 commented out ?
- The include files and pkgconfig files are placed in the 'tools' subpackage, while they should be in the main package
Comment 13 Erik van Pienbroek 2009-06-05 14:23:18 EDT
Ping Levente
Comment 14 Levente Farkas 2009-06-08 03:50:02 EDT
sorry i was a serious accident 2 weeks ago and was at the intensive care for too weeks yesterday i can come home. i've to be in my bad for another 6 weeks. may be in a few weeks i'll be do something useful.
Comment 15 Erik van Pienbroek 2009-06-08 06:56:29 EDT
Thanks for the heads up. Take your time to get well first. We'll continue with the review whenever you're well enough, even if that takes a couple of weeks.
Comment 16 Levente Farkas 2009-06-16 12:57:49 EDT
now i take my time to read your comments and the reason for many of them that the spec file are made from the native packages. imho it's a good practice to keep the mingw packages close to the native in this case when new native version comes it's much easier to compare and patch. if i remove all those comments then it'd be much harder. should i really do that? other comments are on the way to fix.
Comment 17 Levente Farkas 2009-06-16 13:13:11 EDT
the other reason for these much comment because as we discussed earlier and as i wrote in http://fedoraproject.org/wiki/MinGW/Packaging_issues#devel_package_split if we start to create static sub-packages then we've to rethink the packaging to create devel subpackages similar to the native case. mainly in this case as there're binaries in the main packages not just dlls.
Comment 19 Erik van Pienbroek 2009-06-19 12:18:18 EDT
(In reply to comment #17)
> the other reason for these much comment because as we discussed earlier and as
> i wrote in
> http://fedoraproject.org/wiki/MinGW/Packaging_issues#devel_package_split if we
> start to create static sub-packages then we've to rethink the packaging to
> create devel subpackages similar to the native case. mainly in this case as
> there're binaries in the main packages not just dlls.  

Yeah, this is an issue which should probably be brought up on the mailing list so we can decide which direction we want to go with subpackages. The question which type of executables are allowed also needs to be discussed there as win32 applications aren't really welcome in Fedora (only libraries).

I had one remaining question:
- Why are the binaries split across two packages?

To comply with the Fedora packaging guidelines, the %define's at the top of the .spec file need to be changed to %global's as mentioned in http://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define
It's okay to just replace all occurences of '%define' with '%global'

In the latest .spec (0.10.23-1) you've added %{_mingw32_libdir}/*.a to the -static subpackage. The *.a also catches the .dll.a files while those should be in the main package.
-> All the *.dll.a files need to be part of the main package
-> All the *.a (NOT *.dll.a) files need to be part of the -static subpackage
Comment 20 Levente Farkas 2009-06-19 13:54:10 EDT
because it was done in this way in the native packages and i follow it.

yes this guidelines created after i made this spec but now i change this define.

i fix the .a files.

http://www.lfarkas.org/linux/packages/centos/5/i386/cross/SPECS/mingw32-gstreamer.spec
http://www.lfarkas.org/linux/packages/centos/5/i386/cross/SRPMS/mingw32-gstreamer-0.10.23-2.src.rpm

http://koji.fedoraproject.org/koji/taskinfo?taskID=1425246
Comment 21 Erik van Pienbroek 2009-07-05 08:05:03 EDT
After discussion on the Fedora-MinGW mailing list ( http://lists.fedoraproject.org/pipermail/fedora-mingw/2009-June/001739.html ) we decided that it's okay to keep the commented out blocks and -tools subpackage if that's what the packager desires. Now that's cleared up we can continue with the review.


$ rpmlint mingw32-gstreamer.spec 
mingw32-gstreamer.spec:196: E: files-attr-not-set
mingw32-gstreamer.spec:553: W: macro-in-%changelog doc
mingw32-gstreamer.spec: W: mixed-use-of-spaces-and-tabs (spaces: line 9, tab: line 7)
0 packages and 1 specfiles checked; 1 errors, 2 warnings.

$ rpmlint mingw32-gstreamer-*
mingw32-gstreamer-static.noarch: E: description-line-too-long The mingw32-gstreamer-static package contains static library for mingw32-gstreamer development.
mingw32-gstreamer-static.noarch: E: arch-independent-package-contains-binary-or-object /usr/i686-pc-mingw32/sys-root/mingw/lib/libgstreamer-0.10.a
mingw32-gstreamer-static.noarch: E: arch-independent-package-contains-binary-or-object /usr/i686-pc-mingw32/sys-root/mingw/lib/libgstcontroller-0.10.a
mingw32-gstreamer-static.noarch: E: arch-independent-package-contains-binary-or-object /usr/i686-pc-mingw32/sys-root/mingw/lib/libgstbase-0.10.a
mingw32-gstreamer-static.noarch: E: arch-independent-package-contains-binary-or-object /usr/i686-pc-mingw32/sys-root/mingw/lib/libgstdataprotocol-0.10.a
mingw32-gstreamer-static.noarch: E: arch-independent-package-contains-binary-or-object /usr/i686-pc-mingw32/sys-root/mingw/lib/libgstnet-0.10.a
mingw32-gstreamer-static.noarch: W: no-documentation
mingw32-gstreamer-tools.noarch: W: summary-not-capitalized common tools and files for GStreamer streaming media framework
mingw32-gstreamer-tools.noarch: W: no-documentation
3 packages and 0 specfiles checked; 6 errors, 3 warnings.

All these rpmlint messages need to be fixed with the exception of the arch-independent-package-contains-binary-or-object and no-documentation ones (as they're false positives for the mingw32 toolchain).
Comment 22 Levente Farkas 2009-07-05 10:16:57 EDT
i updated the spec and hope to fix everything except the 
W: macro-in-%changelog doc
since it's comes from the native part of the changelog and i'd not like to change it:
http://www.lfarkas.org/linux/packages/centos/5/i386/cross/SPECS/mingw32-gstreamer.spec
http://www.lfarkas.org/linux/packages/centos/5/i386/cross/SRPMS/mingw32-gstreamer-0.10.23-3.src.rpm
koji build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1455083
http://koji.fedoraproject.org/koji/taskinfo?taskID=1455085
Comment 23 Kevin Kofler 2009-07-05 16:56:41 EDT
Just double the percent sign. It should be fixed in the native package as well.
Comment 24 Levente Farkas 2009-07-06 05:47:46 EDT
done
Comment 25 Erik van Pienbroek 2009-07-06 06:04:24 EDT
rpmlint still isn't silent:

$ rpmlint mingw32-gstreamer.spec 
mingw32-gstreamer.spec:558: W: macro-in-%changelog doc
mingw32-gstreamer.spec: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 7)
0 packages and 1 specfiles checked; 0 errors, 2 warnings.
Comment 26 Levente Farkas 2009-07-06 06:22:04 EDT
forget to upload the spec:-(
Comment 27 Austin Foxley 2010-10-29 15:19:13 EDT
Levente, are you still around?

Does anyone have a copy of the mingw32-gstreamer.spec that was referenced above? The link seems to be down.
Comment 28 Levente Farkas 2010-10-29 15:39:00 EDT
i upload back the specs and even others. feel free to use them (update them since they are outdated) and submit them for review:
http://www.lfarkas.org/linux/packages/centos/5/SPECS/
Comment 29 Erik van Pienbroek 2010-11-06 19:30:34 EDT
Levente: If you still want to have in package in Fedora, please update it to the latest version so we can continue the review.

Note that rpmlint still had some complaints the last time I took a look at it. Please fix those errors as well before uploading a new .spec file
Comment 30 Levente Farkas 2010-11-07 12:14:32 EST
i no longer believe it's possible to add gstreamer to fedora as part of the mingw project. the main problem here is that gstreamer alone are not usable. it requires a lots of other media library which also should have to added. and that'd be a huge job (for which i don't have enough time). and it's not possible that some lib are compiled with mingw while others with msvc:-(
i'd rather recommend ossbuild for everybody
http://code.google.com/p/ossbuild/
Comment 31 Kalev Lember 2011-05-16 13:42:41 EDT

*** This bug has been marked as a duplicate of bug 704635 ***

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