Spec URL: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd.spec SRPM URL: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd-0.9.27-1.fc19.src.rpm Description: MinGW package for libmicrohttpd Fedora Account System Username: mooninite
Taking for review - The published spec file doesn't match the spec file used in the src.rpm (BuildRequires: mingw32/64-plibc is missing) - There appear to be an 'rm -rf' in the %install section which looks unintended to me. I guess this should be removed
OK, I fixed the stupid errors, and have a new (correct) spec and SRPM for you. Use the original links to grab the new copies. After those fixes, I tried to remove the configure dependency on PlibC, but found some interesting things: - libmicrohttpd has an embedded plibc.h that it depends on to pull in Linux or Windows includes. Editing this to the point of pulling in things that MinGW-w64 doesn't provide allowed compiling, but not linking. - Linking found a few functions that PlibC offers that MinGW-w64 doesn't have. * SetErrnoFromWinError * pipe * plibc_init * plibc_shutdown * munmap I may pursue upstream to detach itself from PlibC if PlibC cannot get its license clarified. The list of undefined functions is small and it shouldn't be too difficult to remove the dependency by adding replacement code for MinGW builds.
Apart from the licensing issue in plibc this package is okay. The POSIX symbols pipe and mmap aren't available on win32, so if you want to continue this route you'd have to manually write replacements for those. Another possibility you could do is to replace the offending code in plibc with printf/scanf functions which are available in mingw-w64-crt (perhaps in combination with the define __USE_MINGW_ANSI_STDIO set)
I've created a patch set that removes the PlibC requirement. The patches have been sent upstream for consideration. Spec: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd.spec SRPM: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd-0.9.27-2.fc19.src.rpm
Upstream did not accept the patches to remove the dependency on PlibC, but have accepted the other fixes. New spec: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd.spec New SRPM: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd-0.9.27-4.fc19.src.rpm
* The BuildRequires: mingw32-binutils mingw64-binutils is redundant and can be removed * As of Fedora 20, the mingw-pthreads package got replaced by mingw-winpthreads. The mingw{32,64}-winpthreads packages automatically gets pulled in by mingw{32,64}-headers so the BuildRequires for winpthreads doesn't have to be explicitly mentioned any more on Fedora 20+. You could guard the BuildRequires: mingw32-pthreads mingw64-pthreads inside an %if 0%{?fedora} < 20 section and remove this section once Fedora 19 goes end-of-life * The unintended 'rm -rf' which was mentioned earlier seems to have been reintroduced in your latest src.rpm. Please remove it
Updated to latest upstream + review fixes. New spec: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd.spec New SRPM: http://michael.cronenworth.com/RPMS/mingw-libmicrohttpd-0.9.33-1.fc20.src.rpm
$ rpmlint mingw-libmicrohttpd.spec 0 packages and 1 specfiles checked; 0 errors, 0 warnings. $ rpmlint mingw-libmicrohttpd-0.9.33-1.fc20.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. $ rpmlint mingw32-libmicrohttpd-0.9.33-1.fc20.noarch.rpm mingw32-libmicrohttpd-static-0.9.33-1.fc20.noarch.rpm mingw64-libmicrohttpd-0.9.33-1.fc20.noarch.rpm mingw64-libmicrohttpd-static-0.9.33-1.fc20.noarch.rpm mingw32-libmicrohttpd-static.noarch: W: no-documentation mingw64-libmicrohttpd-static.noarch: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 2 warnings. $ rpm --query --requires mingw32-libmicrohttpd rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 mingw32-crt mingw32-filesystem >= 95 mingw32(kernel32.dll) mingw32(libgcc_s_sjlj-1.dll) mingw32(libgcrypt-11.dll) mingw32(libgnutls-28.dll) mingw32(libplibc-1.dll) mingw32(libwinpthread-1.dll) mingw32(msvcrt.dll) mingw32-pkg-config mingw32(ws2_32.dll) rpmlib(PayloadIsXz) <= 5.2-1 $ rpm --query --requires mingw64-libmicrohttpd rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 mingw64-crt mingw64-filesystem >= 95 mingw64(kernel32.dll) mingw64(libgcrypt-11.dll) mingw64(libgnutls-28.dll) mingw64(libplibc-1.dll) mingw64(libwinpthread-1.dll) mingw64(msvcrt.dll) mingw64-pkg-config mingw64(ws2_32.dll) rpmlib(PayloadIsXz) <= 5.2-1 $ rpm --query --requires mingw32-libmicrohttpd-static mingw32-libmicrohttpd = 0.9.33-1.fc20 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsXz) <= 5.2-1 $ rpm --query --requires mingw64-libmicrohttpd-static mingw64-libmicrohttpd = 0.9.33-1.fc20 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadIsXz) <= 5.2-1 $ rpm --query --provides mingw32-libmicrohttpd mingw32-libmicrohttpd = 0.9.33-1.fc20 mingw32(libmicrohttpd-10.dll) $ rpm --query --provides mingw64-libmicrohttpd mingw64-libmicrohttpd = 0.9.33-1.fc20 mingw64(libmicrohttpd-10.dll) $ rpm --query --provides mingw32-libmicrohttpd-static mingw32-libmicrohttpd-static = 0.9.33-1.fc20 $ rpm --query --provides mingw64-libmicrohttpd-static mingw64-libmicrohttpd-static = 0.9.33-1.fc20 $ wget --quiet http://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.33.tar.gz -O - | md5sum 013b10f9de1cda5448b29c81305354a3 - $ md5sum libmicrohttpd-0.9.33.tar.gz 013b10f9de1cda5448b29c81305354a3 libmicrohttpd-0.9.33.tar.gz + 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 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 BuildRequires: mingw32-filesystem mingw64-filesystem should be versioned (to >= 95). Please fix this before importing this package in Fedora ========================================================= The package mingw-libmicrohttpd is APPROVED by epienbro =========================================================
(In reply to Erik van Pienbroek from comment #8) > The BuildRequires: mingw32-filesystem mingw64-filesystem should be versioned > (to >= 95). > Please fix this before importing this package in Fedora The spec has the BRs versioned this way. I'll wait to request SCM to hear if you meant something else in the spec was wrong.
You can ignore that, it's a copy/paste issue in my review template which I forgot to remove
New Package SCM Request ======================= Package Name: mingw-libmicrohttpd Short Description: MinGW package for libmicrohttpd Owners: mooninite Branches: f20 InitialCC:
Git done (by process-git-requests).
Package is in Fedora 20 and rawhide. Closing review request