http://bioinfornatics.fedorapeople.org/glfw-2.7.5-1.fc16.src.rpm http://bioinfornatics.fedorapeople.org/glfw.spec $ rpmlint ~/rpmbuild/RPMS/x86_64/glfw-* glfw.x86_64: W: spelling-error Summary(fr_FR) platform -> plateforme glfw.x86_64: W: spelling-error Summary(fr_FR) multimedia -> multimédia glfw.x86_64: W: spelling-error Summary(fr_FR) library -> libraire glfw.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti glfw.x86_64: W: spelling-error %description -l fr_FR ouvere -> ouvre, ouverte, ouvert glfw.x86_64: W: spelling-error %description -l fr_FR multi -> mufti, multiple glfw.x86_64: W: spelling-error %description -l fr_FR dévelopement -> développement glfw.x86_64: W: spelling-error %description -l fr_FR threads -> thraces glfw-debuginfo.x86_64: E: debuginfo-without-sources glfw-devel.x86_64: W: spelling-error Summary(fr_FR) developing -> développante glfw-devel.x86_64: W: no-documentation glfw-devel.x86_64: W: dangling-relative-symlink /usr/lib64/libglfw.so.2.7 libglfw.so.2 glfw-devel.x86_64: W: dangling-relative-symlink /usr/lib64/libglfw.so.2.7.5 libglfw.so.2 glfw-geany-tags.x86_64: W: spelling-error Summary(en_US) autocompletion -> auto completion, auto-completion, completion glfw-geany-tags.x86_64: W: spelling-error Summary(fr) enable -> ensable, entable, tenable glfw-geany-tags.x86_64: W: spelling-error Summary(fr) autocompletion -> autoconsommation, automutilation glfw-geany-tags.x86_64: W: spelling-error %description -l en_US autocompletion -> auto completion, auto-completion, completion glfw-geany-tags.x86_64: W: spelling-error %description -l fr l'autocompletion -> autoconsommation glfw-geany-tags.x86_64: W: spelling-error %description -l fr derelict -> dentelière glfw-geany-tags.x86_64: W: no-documentation glfw-geany-tags.x86_64: E: script-without-shebang /usr/share/geany/tags/glfw.c.tags glfw-static.x86_64: W: spelling-error Summary(fr_FR) developing -> développante glfw-static.x86_64: W: no-documentation 5 packages and 0 specfiles checked; 2 errors, 21 warnings.
Hi, - any reason to ship the static library ? http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries_2 - And I think the french translation should be improved, cause this does look like it was done by a automated system, and there is still some weird sentences. - The first patch should be commented ( ie, say what it does, how it was sent upstream, and have a better name than %name.patch ) - I am not sure that %{_libdir}/libglfw.so.2.7 %{_libdir}/libglfw.so.2.7.5 belong to -devel, likely more to the main rpm - this is likely wrong : Requires: GLFW3-devel - there is uneeded BuildRequires ( like gcc, make ) BuildRequires: gcc, make, libX11, mesa-libGL, mesa-libGLU and this is better for patch review to have them on 1 line per BuildRequires ( so you can see at the first sight if something is added or removed ) I also think you need to add -devel, not regular library. ( and they are added to the -devel, but that's IMHO counter intuitive )
I have try to build without libX11, mesa-libGL, mesa-libGLU and rpm do not found the dependencies Curently i provides static lib as shared lib build is broken this will be silve with next major release (v3) I will fx other issue.
libglfw has already been in Fedora, it was orphaned and deprecated in Fedora 16. The reason for the deprecation is maintainer inactivity and it definitely should be revived. Original review: #469972 I would be interested in this package and would like to review it. Are you member of the "packagers" group? Informal review for now: - remove gcc and make build requires, they are not necessary - geany tags? seems wasteful to me though I see few packages have them - description of the static subpackage is wrong, though I would just remove the static subpackage completely and only provide the dynamic libs - shared objects in devel subpackage?! I would just remove the .a static archive, install shared objects in the main package, install headers in the devel package and doc in a doc package. The old spec file from the orphaned package might be worth looking into, just a version bump from there might be enough. Related bugs: #674380, #754658 I am also adding pwouters to the CC list since he also seems to be needing libglew, hope he doesn't mind :-)
Any news on this? I'd like to review (and sponsor if neccessary) but I agree that we should not ship the static library.
> BuildRequires: gcc, make, libX11, mesa-libGL, mesa-libGLU > > I have try to build without libX11, mesa-libGL, mesa-libGLU and rpm > do not found the dependencies What does that mean? What failure and when? Please explain. It's unusual that your BuildRequires do not contain "libX11-devel mesa-libGL-devel mesa-libGLU-devel" instead. > %package devel > BuildRequires: libX11-devel, mesa-libGL-devel, mesa-libGLU-devel There they are! That's not a good place where to put BuildRequires. For optional (!) subpackages, it may be suitable to mention the additional BR near to the subpackage section of the spec file. But for essential subpackages such as -devel that only adds confusion. As could be seen during this review. ;) > Curently i provides static lib as shared lib build is broken How is it broken? Why do you include the shared lib in the package if you know it's broken? > Requires: %{name} = %{version}-%{release} https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package > %build > make %{?_smp_mflags} x11 > > ... > > %install > make %{?_smp_mflags} x11-dist-install PREFIX=/usr LIBDIR=%{_lib} > DESTDIR=%{buildroot} CFLAGS="$RPM_OPT_FLAGS" That asks for a closer look. Why do you add CFLAGS for "install" but not "build". Nothing ought to be compiled anymore in the %install section.
thanks i will works soon on this (this week)
I've fixed up parts of it, thpugh not entirely happy of the fixes. Their handling and overriding of CFLAGS is a mess. * Tue Jul 17 2012 Paul Wouters <pwouters> - 2.7.6-1 - Updated to 2.7.6 - Link explicitely against -lrt - Renamed patch, use version macro to create softlink - hardcode compiler optargs in updated patch for configure/make (this fixes the debuginfo package)
Created attachment 598740 [details] updated spec file Updates spec file
Created attachment 598741 [details] updates the "gilfw.patch" file from the original 2.7.5 version updated patch for soname, adds optflags so we create proper libraries with debug symbols for the ebuginfo package
(my updated did not incorporate Michael's suggestions yet. This spec file still needs lots of love.
Really big thanks Paul for your work Below is an artefact to mine glfw3.spec sorry Requires: GLFW3-devel >> %build >> make %{?_smp_mflags} x11 >> >> ... >> >> %install >> make %{?_smp_mflags} x11-dist-install PREFIX=/usr LIBDIR=%{_lib} >> DESTDIR=%{buildroot} CFLAGS="$RPM_OPT_FLAGS" > > That asks for a closer look. Why do you add CFLAGS for "install" but not "build". Nothing ought to be compiled anymore in the %install section. yes i agree it was an error, fixed >> Requires: %{name} = %{version}-%{release} > https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package Fixed > I would just remove the static subpackage completely and only provide the dynamic libs Static subpackage removed Curently i got a littlke build problem ../internal.h:92:22: fatal error: platform.h: No such file or directory I looking to fix it just to see what is new: - http://bioinfornatics.fedorapeople.org/glfw-2.7.6-2.fc17.src.rpm - http://bioinfornatics.fedorapeople.org/glfw-2.7.6-soname-cflags.patch - http://bioinfornatics.fedorapeople.org/glfw.spec
Looks like the CFLAGS override problem. Did you apply my updated patch listed in the bug?
spec: http://bioinfornatics.fedorapeople.org/glfw.spec srpms: http://bioinfornatics.fedorapeople.org/glfw-3.0-2.fc17.src.rpm $ rpmlint ~/rpmbuild/SPECS/glfw.spec /home/builder/rpmbuild/SPECS/glfw.spec: W: invalid-url Source0: glfw-20120810git2f095cc.tar.xz 0 packages and 1 specfiles checked; 0 errors, 1 warnings. $ rpmlint ~/rpmbuild/SRPMS/glfw-3.0-2.fc17.src.rpm glfw.src: W: spelling-error Summary(fr) multi -> mufti, multiple glfw.src: W: spelling-error Summary(fr_FR) multi -> mufti, multiple glfw.src: W: spelling-error %description -l en_US multi -> mulch, mufti glfw.src: W: spelling-error %description -l fr_FR multi -> mufti, multiple glfw.src: W: invalid-url Source0: glfw-20120810git2f095cc.tar.xz 1 packages and 0 specfiles checked; 0 errors, 5 warnings. $ rpmlint ~/rpmbuild/RPMS/x86_64/glfw-* glfw.x86_64: W: spelling-error Summary(fr) multi -> mufti, multiple glfw.x86_64: W: spelling-error Summary(fr_FR) multi -> mufti, multiple glfw.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti glfw.x86_64: W: spelling-error %description -l fr_FR multi -> mufti, multiple glfw-devel.x86_64: W: no-documentation 3 packages and 0 specfiles checked; 0 errors, 5 warnings.
fix : Requiring_Base_Package SPEC: http://bioinfornatics.fedorapeople.org/glfw.spec sRPM: http://bioinfornatics.fedorapeople.org/glfw-3.0-4.fc17.src.rpm koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=4383713 $ find ~/rpmbuild/SPECS/ ~/rpmbuild/SRPMS ~/rpmbuild/RPMS -type f -iname "*glfw*" /home/builder/rpmbuild/SPECS/glfw.spec /home/builder/rpmbuild/SRPMS/glfw-3.0-4.fc17.src.rpm /home/builder/rpmbuild/RPMS/x86_64/glfw-devel-3.0-4.fc17.x86_64.rpm /home/builder/rpmbuild/RPMS/x86_64/glfw-3.0-4.fc17.x86_64.rpm /home/builder/rpmbuild/RPMS/x86_64/glfw-debuginfo-3.0-4.fc17.x86_64.rpm $ find ~/rpmbuild/SPECS/ ~/rpmbuild/SRPMS ~/rpmbuild/RPMS -type f -iname "*glfw*" | xargs rpmlint /home/builder/rpmbuild/SPECS/glfw.spec: W: invalid-url Source0: glfw-20120812gita9ed5b1.tar.xz glfw.src: W: spelling-error Summary(fr) multi -> mufti, multiple glfw.src: W: spelling-error Summary(fr_FR) multi -> mufti, multiple glfw.src: W: spelling-error %description -l en_US multi -> mulch, mufti glfw.src: W: spelling-error %description -l fr_FR multi -> mufti, multiple glfw.src: W: invalid-url Source0: glfw-20120812gita9ed5b1.tar.xz glfw-devel.x86_64: W: no-documentation glfw.x86_64: W: spelling-error Summary(fr) multi -> mufti, multiple glfw.x86_64: W: spelling-error Summary(fr_FR) multi -> mufti, multiple glfw.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti glfw.x86_64: W: spelling-error %description -l fr_FR multi -> mufti, multiple 4 packages and 1 specfiles checked; 0 errors, 11 warnings.
Mostly a few small things that need fixing and I'll approve it. Although one thing I would really like to see for this package is a working compile with %{optflags} But since we have packages that are broken because of this missing package, I don't want it to be a blocker now. Put please look into it at the next update. Package Review ============== Key: - = N/A x = Pass ! = Fail ? = Not evaluated ==== C/C++ ==== [x]: MUST Header files in -devel subpackage, if present. [x]: MUST ldconfig called in %post and %postun if required. [x]: MUST Package does not contain any libtool archives (.la) [ ]: MUST Package does not contain kernel modules. [ ]: MUST Package contains no static executables. [x]: MUST Rpath absent or only used for internal libs. [x]: MUST Development (unversioned) .so files in -devel subpackage, if present. ==== Generic ==== [x]: EXTRA Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: EXTRA Spec file according to URL is the same as in SRPM. [x]: MUST Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: MUST Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [!]: MUST %build honors applicable compiler flags or justifies otherwise. make is not using %{optflags} and fails to build when added. [!]: MUST All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. Note: These BR are not needed: gcc make [x]: MUST Package contains no bundled libraries. [x]: MUST Changelog in prescribed format. [x]: MUST Sources contain only permissible code or content. [x]: MUST Each %files section contains %defattr if rpm < 4.4 Note: Note: defattr macros not found. They would be needed for EPEL5 [x]: MUST Macros in Summary, %description expandable at SRPM build time. [ ]: MUST Package contains desktop file if it is a GUI application. [x]: MUST Development files must be in a -devel package [!]: MUST Package requires other packages for directories it uses. Note: missing Requires: xorg-x11-proto-devel [ ]: MUST Package uses nothing in %doc for runtime. [x]: MUST Package is not known to require ExcludeArch. [x]: MUST Permissions on files are set properly. [x]: MUST Package does not contain duplicates in %files. [x]: MUST Fully versioned dependency in subpackages, if present. [ ]: MUST Package complies to the Packaging Guidelines [x]: MUST Spec file lacks Packager, Vendor, PreReq tags. [x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. Note: rm -rf would be needed if support for EPEL5 is required [ ]: MUST Large documentation files are in a -doc subpackage, if required. [x]: MUST If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [x]: MUST License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "MIT/X11 (BSD like)", "*No copyright* Public domain", "BSD (2 clause)", "zlib/libpng" For detailed output of licensecheck see file: /vol/home/paul/813842-glfw/licensecheck.txt Paul: zlib is the predominant one, so good for license tag. [x]: MUST License file installed when any subpackage combination is installed. [!]: MUST Package consistently uses macro is (instead of hard-coded directory names). "/usr" is used instead of %{_prefix} [x]: MUST Package is named using only allowed ascii characters. [x]: MUST Package is named according to the Package Naming Guidelines. [x]: MUST Package does not generate any conflict. Note: Package contains no Conflicts: tag(s) [x]: MUST Package obeys FHS, except libexecdir and /usr/target. [ ]: MUST If the package is a rename of another package, proper Obsoletes and Provides are present. [ ]: MUST Package must own all directories that it creates. [x]: MUST Package does not own files or directories owned by other packages. [x]: MUST Package installs properly. [x]: MUST Package is not relocatable. [!]: MUST Package requires pkgconfig, if .pc files are present. (EPEL5) Note: Only applicable for EL-5 [!]: MUST Requires correct, justified where necessary. Note: gcc and make should be removed [x]: MUST Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: MUST Sources used to build the package match the upstream source, as provided in the spec URL. [x]: MUST Spec file is legible and written in American English. [x]: MUST Spec file name must match the spec package %{name}, in the format %{name}.spec. [ ]: MUST Package contains systemd file(s) if in need. [x]: MUST File names are valid UTF-8. [x]: MUST Useful -debuginfo package or justification otherwise. [x]: SHOULD Reviewer should test that the package builds in mock. [x]: SHOULD Buildroot is not present Note: Unless packager wants to package for EPEL5 this is fine [x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) Note: Clean would be needed if support for EPEL5 is required [ ]: SHOULD If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: SHOULD Dist tag is present. [x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q --requires). [ ]: SHOULD Package functions as described. [x]: SHOULD Latest version is packaged. [x]: SHOULD Package does not include license text files separate from upstream. [x]: SHOULD The placement of pkgconfig(.pc) files are correct. [ ]: SHOULD Scriptlets must be sane, if used. [x]: SHOULD SourceX tarball generation or download is documented. Note: Package contains tarball without URL, check comments [x]: SHOULD SourceX / PatchY prefixed with %{name}. [x]: SHOULD SourceX is a working URL. [x]: SHOULD Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: SHOULD Package should compile and build into binary rpms on all supported architectures. [ ]: SHOULD %check is present and all tests pass. [ ]: SHOULD Packages should try to preserve timestamps of original installed files. [x]: SHOULD Spec use %global instead of %define. Issues: [!]: MUST All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. Note: These BR are not needed: gcc make See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 [!]: MUST Package requires pkgconfig, if .pc files are present. (EPEL5) Note: Only applicable for EL-5 See: http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#EL5 Rpmlint ------- Checking: glfw-3.0-4.fc17.x86_64.rpm glfw-devel-3.0-4.fc17.x86_64.rpm glfw-debuginfo-3.0-4.fc17.x86_64.rpm glfw-3.0-4.fc17.src.rpm glfw.x86_64: I: enchant-dictionary-not-found fr glfw.x86_64: I: enchant-dictionary-not-found fr_FR glfw.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti glfw-devel.x86_64: W: no-documentation glfw.src: W: spelling-error %description -l en_US multi -> mulch, mufti glfw.src: W: invalid-url Source0: glfw-20120812gita9ed5b1.tar.xz 4 packages and 0 specfiles checked; 0 errors, 4 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint glfw-devel glfw-devel.x86_64: I: enchant-dictionary-not-found fr glfw-devel.x86_64: I: enchant-dictionary-not-found fr_FR glfw-devel.x86_64: W: no-documentation 1 packages and 0 specfiles checked; 0 errors, 1 warnings. # echo 'rpmlint-done:' Requires -------- glfw-3.0-4.fc17.x86_64.rpm (rpmlib, GLIBC filtered): /sbin/ldconfig libGL.so.1()(64bit) libX11.so.6()(64bit) libXxf86vm.so.1()(64bit) libc.so.6()(64bit) libm.so.6()(64bit) librt.so.1()(64bit) rtld(GNU_HASH) glfw-devel-3.0-4.fc17.x86_64.rpm (rpmlib, GLIBC filtered): /usr/bin/pkg-config glfw(x86-64) = 3.0-4.fc17 libglfw.so.3()(64bit) pkgconfig(gl) pkgconfig(x11) pkgconfig(xxf86vm) glfw-debuginfo-3.0-4.fc17.x86_64.rpm (rpmlib, GLIBC filtered): Provides -------- glfw-3.0-4.fc17.x86_64.rpm: glfw = 3.0-4.fc17 glfw(x86-64) = 3.0-4.fc17 libglfw.so.3()(64bit) glfw-devel-3.0-4.fc17.x86_64.rpm: glfw-devel = 3.0-4.fc17 glfw-devel(x86-64) = 3.0-4.fc17 pkgconfig(glfw3) = 3.0.0 glfw-debuginfo-3.0-4.fc17.x86_64.rpm: glfw-debuginfo = 3.0-4.fc17 glfw-debuginfo(x86-64) = 3.0-4.fc17 MD5-sum check ------------- Generated by fedora-review 0.2.2 (9f8c0e5) last change: 2012-08-09 Command line :/bin/fedora-review -b 813842 External plugins:
I have use this: %cmake then CFLAGS are set correctly ------------------------------- rpm --eval %cmake CFLAGS="${CFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic}" ; export CFLAGS ; CXXFLAGS="${CXXFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic}" ; export CXXFLAGS ; FFLAGS="${FFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/lib64/gfortran/modules}" ; export FFLAGS ; LDFLAGS="${LDFLAGS:--Wl,-z,relro }" ; export LDFLAGS ; /usr/bin/cmake \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ -DLIB_INSTALL_DIR:PATH=/usr/lib64 \ -DSYSCONF_INSTALL_DIR:PATH=/etc \ -DSHARE_INSTALL_PREFIX:PATH=/usr/share \ %if "lib64" == "lib64" -DLIB_SUFFIX=64 \ %endif -DBUILD_SHARED_LIBS:BOOL=ON -------------------------------
Spec: http://bioinfornatics.fedorapeople.org/glfw.spec SRPMS : http://bioinfornatics.fedorapeople.org/glfw-3.0-5.fc17.src.rpm
Thanks for clarifying the compiler flag issue. Can you change %cmake -DCMAKE_INSTALL_PREFIX=/usr . and PREFIX=/usr to use %{_prefix} instead of /usr? Requires: xorg-x11-proto-devel is still missing - it owns /usr/include/GL which is used by glfw-devel With these two changes, APPROVED Note you might want to remove this (debug?) line: ls -l --color=auto %{buildroot}%{_libdir}/*
I missed it also needs a Require: (not just Buildrequire) geany because it is installing files in /usr/share/geany
Spec: http://bioinfornatics.fedorapeople.org/glfw.spec SRPMS : http://bioinfornatics.fedorapeople.org/glfw-3.0-6.fc17.src.rpm
Is this a pre-release of 3.0? As I don't see tar balls for the 3.0 version? If so, the version shule be 3.0-0.6-1 ? Other then that ,as said it is approved now, so you can request the CVS flag
using http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages snapshot format is ok ? %global snapdate 20120812 %global glfw_revision a9ed5b1 %global alphatag %{snapdate}git%{glfw_revision} ... Release: 6.%{alphatag}%
not if 3.0 is a prerelease. You must make sure that 3.0-1 will be "newer" then any of these pre-release tags. but currently 3.0-1 would be older then 3.0-6.%{alphatag} so use: Release: 0.6.%{alphatag}
Spec: http://bioinfornatics.fedorapeople.org/glfw.spec SRPMS : http://bioinfornatics.fedorapeople.org/glfw-3.0-0.7.20120812gita9ed5b1.fc17.src.rpm New Package SCM Request ======================= Package Name: glfw Short Description: A cross-platform multimedia library Owners: bioinfornatics Branches: f17 f18 InitialCC: bioinfornatics
Git done (by process-git-requests).