Spec URL: http://www.lfarkas.org/linux/packages/centos/5/SPECS/mingw32-gstreamer.spec SRPM URL: http://www.lfarkas.org/linux/packages/centos/5/SRPMS/mingw32-gstreamer-0.10.22-1.src.rpm Description: MinGW Windows gstreamer library koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1251165 Approved packaging guidelines for MinGW are here: http://fedoraproject.org/wiki/Packaging/MinGW
Koji scratch-build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1251262
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
rpmlint output: mingw32-gstreamer.src:534: W: macro-in-%changelog doc
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.
Sure thing! Patches welcome ...
Taking for review ...
Unfortunately this package cannot be installed, because the -tools subpackage on which the main package depends isn't built (by RPM in Rawhide anyway).
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
ping...
Richard is there an reason not to approved?
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.
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
Ping Levente
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.
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.
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.
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.
i updated the spec: 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-1.src.rpm koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1422548
(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
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
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).
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
Just double the percent sign. It should be fixed in the native package as well.
done
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.
forget to upload the spec:-(
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.
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/
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
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/
*** This bug has been marked as a duplicate of bug 704635 ***