Spec URL: http://cicku.me/edelib.spec SRPM URL: http://cicku.me/edelib-2.0-1.fc20.src.rpm Description: A small and portable C++ library for EDE (Equinox Desktop Environment). Aims are to provide enough background for easier EDE components construction and development. Fedora Account System Username: cicku
Hi Christopher, I am missing BuildRequire jam in this spec. Can you please look? Thanks Douglas
I forgot to upload the correct version. Please check again at the same url before, thanks.
Hi Christopher, fedora-review tool just shared the below messages, can you please take a look? Issues: ======= - Large documentation must go in a -doc subpackage. Note: Documentation size is 5949440 bytes in 372 files. See: http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation edelib-devel.x86_64: W: install-file-in-docs /usr/share/doc/edelib-2.0.0/INSTALL Thanks!
NEW Spec URL: http://cicku.me/edelib.spec NEW SRPM URL: http://cicku.me/edelib-2.0-2.fc20.src.rpm
Hi Christopher, I have only one concern at moment, why are you keeping the .ss files? $ cd ~/rpmbuild/RPMS/x86_64/usr/lib64/edelib/sslib $ ls init-2.ss init.ss theme.ss Thanks Douglas
Quoted from author: "ss files are needed. They are Scheme sources and are needed by edelib-script. Later (2.1 svn version) they are used even more extensively by edelib-dbus-explorer tool."
Hi Christopher, Thanks for your reply. Below my review. [OK] MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review Rpmlint ------- Checking: edelib-2.0-2.fc18.x86_64.rpm edelib-devel-2.0-2.fc18.x86_64.rpm edelib-doc-2.0-2.fc18.noarch.rpm edelib.x86_64: W: only-non-binary-in-usr-lib edelib.x86_64: W: no-documentation edelib.x86_64: W: no-manual-page-for-binary edelib-mk-indextheme edelib.x86_64: W: no-manual-page-for-binary edelib-catchsegv edelib.x86_64: W: no-manual-page-for-binary edelib-dbus-introspect edelib.x86_64: W: no-manual-page-for-binary edelib-script edelib.x86_64: W: no-manual-page-for-binary edelib-update-font-cache edelib.x86_64: W: no-manual-page-for-binary edelib-convert-icontheme edelib-devel.x86_64: W: no-documentation edelib-doc.noarch: E: incorrect-fsf-address /usr/share/doc/edelib-2.0.0/COPYING edelib-doc.noarch: W: install-file-in-docs /usr/share/doc/edelib-2.0.0/INSTALL 3 packages and 0 specfiles checked; 1 errors, 10 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint edelib-devel edelib-doc edelib edelib-devel.x86_64: W: no-documentation edelib-doc.noarch: E: incorrect-fsf-address /usr/share/doc/edelib-2.0.0/COPYING edelib-doc.noarch: W: install-file-in-docs /usr/share/doc/edelib-2.0.0/INSTALL edelib.x86_64: W: only-non-binary-in-usr-lib OK .ss files are required (comment #6) and non binary. edelib.x86_64: W: no-documentation edelib.x86_64: W: no-manual-page-for-binary edelib-mk-indextheme edelib.x86_64: W: no-manual-page-for-binary edelib-catchsegv edelib.x86_64: W: no-manual-page-for-binary edelib-dbus-introspect edelib.x86_64: W: no-manual-page-for-binary edelib-script edelib.x86_64: W: no-manual-page-for-binary edelib-update-font-cache edelib.x86_64: W: no-manual-page-for-binary edelib-convert-icontheme [OK] MUST: The package must be named according to the Package Naming Guidelines [OK] MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [OK] MUST: The package must meet the Packaging Guidelines [OK] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines [OK] MUST: The License field in the package spec file must match the actual license. [OK] 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 must be included in %doc [OK] MUST: The spec file must be written in American English. [5] [OK] MUST: The spec file for the package MUST be legible [OK] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use sha256sum for this task as it is used by the sources file once imported into git. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this. CHECKSUM(SHA256) this package : c31bc7e5156424fa7e2fe3e671e7d7d876cbe55f035029ac8569bfc946fc84ae CHECKSUM(SHA256) upstream package : c31bc7e5156424fa7e2fe3e671e7d7d876cbe55f035029ac8569bfc946fc84ae [OK] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [OK] MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense. [OK] MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun [OK] MUST: Packages must NOT bundle copies of system libraries. [OK] MUST: A Fedora package must not list a file more than once in the spec file's %files listings [OK] MUST: Each package must consistently use macros. [OK] MUST: The package must contain code, or permissable content. [OK] MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity) [OK] MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. [OK] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built [OK] MUST: All filenames in rpm packages must be valid UTF-8. [OK] SHOULD: Package functions as described. [OK] SHOULD: Latest version is packaged. [OK] SHOULD: Packager, Vendor, PreReq, Copyright tags should not be in spec file [OK] SHOULD: Sources can be downloaded from URI in Source: tag [OK] SHOULD: Reviewer should test that the package builds in mock. [OK] SHOULD: Buildroot is not present [OK] SHOULD: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [OK] SHOULD: Dist tag is present. [OK] SHOULD: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [OK] SHOULD: The placement of pkgconfig(.pc) files are correct. [OK] SHOULD: SourceX tarball generation or download is documented. [OK] SHOULD: SourceX is a working URL. [OK] SHOULD: Spec use %global instead of %define. Suggestions ================= - edelib-doc.noarch: W: install-file-in-docs /usr/share/doc/edelib-2.0.0/INSTALL - If possible fix the above warning. - Work with upstream for the following: edelib.x86_64: W: no-documentation edelib.x86_64: W: no-manual-page-for-binary edelib-mk-indextheme edelib.x86_64: W: no-manual-page-for-binary edelib-catchsegv edelib.x86_64: W: no-manual-page-for-binary edelib-dbus-introspect edelib.x86_64: W: no-manual-page-for-binary edelib-script edelib.x86_64: W: no-manual-page-for-binary edelib-update-font-cache edelib.x86_64: W: no-manual-page-for-binary edelib-convert-icontheme edelib-doc.noarch: E: incorrect-fsf-address /usr/share/doc/edelib-2.0.0/COPYING All above suggestions can be worked in parallel of packaging. Please let me know if you need any help. Status: APPROVED
New Package SCM Request ======================= Package Name: edelib Short Description: Small and portable C++ library for EDE Owners: cicku Branches: f18 f19 InitialCC:
Git done (by process-git-requests).
edelib-2.0-2.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/edelib-2.0-2.fc19
edelib-2.0-2.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/edelib-2.0-2.fc18
edelib-2.0-2.fc19 has been pushed to the Fedora 19 testing repository.
Created attachment 758720 [details] Build with $RPM_OPT_FLAGS, BR libXpm-devel Package is not built with $RPM_OPT_FLAGS, and build dependency on libXpm-devel is missing, fix attached.
(In reply to Ville Skyttä from comment #13) > Created attachment 758720 [details] > Build with $RPM_OPT_FLAGS, BR libXpm-devel Can I build without optflags?
(In reply to Christopher Meng from comment #14) > Can I build without optflags? Only if there is a good reason to do so, and that reason must be documented in the specfile. Why wouldn't you build with optflags? http://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags
Seriously, guys, please restart the review, and don't rush. Even a brief look at the spec file raises questions: > %post -p /sbin/ldconfig > > %postun -p /sbin/ldconfig Why these scriptlets? The %files section doesn't contain anything related. > %files > %{_bindir}/%{name}* > %{_libdir}/%{name}/ > %install > jam install > find %{buildroot} -name '*.a' -exec rm -f {} ';' > find %{buildroot} -name 'INSTALL' -exec rm -f {} ';' So, first you compile and build libraries only to delete them? /usr/lib64/libedelib.a /usr/lib64/libedelib_dbus.a /usr/lib64/libedelib_gui.a > %files devel > %{_libdir}/pkgconfig/%{name}*.pc Untested pkgconfig files. They could have served as an early-warning system. Examine them with real-world pkg-config queries.
More to come: * There are headers in -devel-pkg with no lib to link against, as well. * The binaries are linked against the static-lib, which surely will cause problems when fully-hardnened build will be mandatory. There should at least have been a virtual provides: %{name}-static for having this issue auto-tracked. If anybody objects I'll take this for re-review...
(In reply to Björn Esser from comment #17) > More to come: > > * There are headers in -devel-pkg with no lib to link against, as well. > > * The binaries are linked against the static-lib, which surely will cause > problems when fully-hardnened build will be mandatory. > There should at least have been a virtual provides: %{name}-static > for having this issue auto-tracked. > > If anybody objects I'll take this for re-review... From my side it's ok, I wish I could see the issues raised by you and Michael before. Thanks
Just have a look at the build.log on koji: http://kojipkgs.fedoraproject.org//packages/edelib/2.0/3.fc20/data/logs/x86_64/build.log MkDir1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/pkgconfig Install1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/pkgconfig/edelib.pc ... more *.pc installed ... ================================= Here it comes: ================================= Install1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/libedelib.a Chmod1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/libedelib.a Install1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/libedelib_gui.a Chmod1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/libedelib_gui.a Install1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/libedelib_dbus.a Chmod1 /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64/usr/lib64/libedelib_dbus.a ... ================================ Here it's deleted: ================================ = + find /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64 -name '*.a' -exec rm -f '{}' ';' + find /builddir/build/BUILDROOT/edelib-2.0-3.fc20.x86_64 -name INSTALL -exec rm -f '{}' ';' If you have a look inside the build pkgs: no lib*.so in main-pkg. About static-linking: https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Statically_Linking_Executables Hope this helps you.
Sorry guys, I've made some mistakes. For the shlib problem, I'll contact upstream. But maybe I have to raise an exception. I don't know what's wrong with the pkgconfig files? Björn if you have time you can take over this.
> I don't know what's wrong with the pkgconfig files? Well, they refer to libraries you have deleted. ;-) Examples: $ pkg-config --libs edelib -ledelib $ pkg-config --libs edelib-dbus -L/lib64 -ledelib_dbus -ledelib -ldbus-1 $ pkg-config --libs edelib-gui -Wl,-z,relro -ledelib_gui -lfltk_images -lfltk -ledelib $ pkg-config --libs edelib-gui-no-images -Wl,-z,relro -ledelib_gui -lfltk -ledelib What to do about the FLTK libs that are being referred to is an entirely different matter and also depends on whether libedelib_gui is a shared or static lib.
(In reply to Michael Schwendt from comment #21) Ok I know...I built them and deleted them... The main problem is that I forgot to pass --enable-shared option to the jam. I will release a corrected version later.
Hi all, Things should get better now. I've fixed the shared library problem. NEW SPEC URL: http://cicku.me/edelib.spec NEW SRPM URL: http://cicku.me/edelib-2.0-3.fc20.src.rpm Can someone help do a review again? I've unpushed the updates so this becomes a new review request again.
Some questions based on another brief look at the new spec file: > BuildRequires: libX11 Not libX11-devel? > %build > CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" \ > ./configure --enable-shared \ > --prefix=%{buildroot}%{_prefix} \ > --libdir=%{buildroot}%{_libdir} Why isn't %configure used instead? Could you avoid using %buildroot in this section? Passing %buildroot based paths to a configure script is a common packaging pitfall, because when paths are inserted into any built files, they would contain the %buildroot prefix. Typically, you should not refer to %buildroot before the %install section. > sed -i 's|%{buildroot}||' *.pc edelib/edelib-config.h qed > %install > jam install Is "jam install" capable of installing into a buildroot? That would be the preferred solution. > %files devel > %{_libdir}/%{name}/sslib/*.ss What files are they? When are they needed? At run-time or only during development? For example, src/Scheme.cpp refers to these files. There is a hardcoded path in that file, too, which differs from the location you've packaged, and it may need further patching for targets where %_lib is not /lib: /lib/edelib/sslib > %{_libdir}/%{name}/sslib/*.ss Two "unowned" directories there: https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership
edelib-2.1-2.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/edelib-2.1-2.fc20
edelib-2.1-2.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/edelib-2.1-2.fc19
Package edelib-2.1-2.fc19: * should fix your issue, * was pushed to the Fedora 19 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing edelib-2.1-2.fc19' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-7719/edelib-2.1-2.fc19 then log in and leave karma (feedback).
closing this bug and the package is orphan at this time.