Bug 652544 - Review Request: erlang-rpm-macros - Macros for simplifying building of Erlang packages
Summary: Review Request: erlang-rpm-macros - Macros for simplifying building of Erlang...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Andrea Musuruane
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-11-12 07:25 UTC by Peter Lemenkov
Modified: 2010-11-29 21:30 UTC (History)
3 users (show)

Fixed In Version: erlang-rpm-macros-0.1.2-2.fc14
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-11-17 06:21:02 UTC
Type: ---
Embargoed:
musuruan: fedora-review+
j: fedora-cvs+


Attachments (Terms of Use)

Description Peter Lemenkov 2010-11-12 07:25:05 UTC
Spec URL: http://peter.fedorapeople.org/erlang-rpm-macros.spec
SRPM URL: http://peter.fedorapeople.org/erlang-rpm-macros-0.1.1-1.fc12.src.rpm
Description: Macros for simplifying building of Erlang packages.

These are macros and helpers for building Erlang-related rpm packages. They are currently shipped with erlang itself but it's time to split them off thus simplifying their maintenance.

Comment 1 Andrea Musuruane 2010-11-14 15:44:15 UTC
Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

=== REQUIRED ITEMS ===
[x]  Package is named according to the Package Naming Guidelines. [1]
[x]  Spec file name must match the base package %{name}, in the format %{name}.spec.
[x]  Spec file is legible and written in American English.
[x]  Spec file lacks Packager, Vendor, PreReq tags.
[x]  Spec uses macros instead of hard-coded directory names.
[x]  Package consistently uses macros.
[x]  Macros in Summary, %description expandable at SRPM build time.
[x]  PreReq is not used.
[!]  Requires correct, justified where necessary.
[x]  All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [2]
[x]  Buildroot is correct.
[x]  Package run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) and the beginning of %install.
[-]  Package use %makeinstall only when ``make install DESTDIR=...'' doesn't work.
[x]  Package has a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[-]  The spec file handles locales properly.
[x]  Changelog in prescribed format.
[!]  Rpmlint output is NOT silent.

$ rpmlint erlang-rpm-macros-0.1.1-1.fc14.src.rpm
erlang-rpm-macros.src:44: W: macro-in-comment %doc
erlang-rpm-macros.src: W: invalid-url Source0: lemenkov-erlang-rpm-macros-0.1.1-0-g6838d80.tar.gz
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

$ rpmlint erlang-rpm-macros-0.1.1-1.fc14.noarch.rpm
erlang-rpm-macros.noarch: W: only-non-binary-in-usr-lib
erlang-rpm-macros.noarch: W: no-documentation
erlang-rpm-macros.noarch: W: non-conffile-in-etc /etc/rpm/macros.erlang
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

[!]  License field in the package spec file matches the actual license.
[x]  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.
[-]  License file installed when any subpackage combination is installed.
[!]  Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [3,4]
[!]  Sources contain only permissible code or content.
[x]  Sources used to build the package matches the upstream source, as provided in the spec URL.
     MD5SUM this package     : 8dc6ce97c0aa64a0fae8ee45b9c6bd0e
     MD5SUM upstream package : 8dc6ce97c0aa64a0fae8ee45b9c6bd0e
[-]  Compiler flags are appropriate.
[-]  %build honors applicable compiler flags or justifies otherwise.
[-]  ldconfig called in %post and %postun if required.
[-]  Package must own all directories that it creates.
[x]  Package does not own files or directories owned by other packages.
[!]  Package requires other packages for directories it uses.
[x]  Package does not contain duplicates in %files.
[x]  Permissions on files are set properly.
[x]  Each %files section contains %defattr.
[x]  No %config files under /usr.
[!]  %config files are marked noreplace or the reason is justified.
[-]  Package contains a properly installed %{name}.desktop using desktop-file-install file if it is a GUI application. [5]
[-]  Package contains a valid .desktop file.
[!]  Package contains code, or permissable content.
[-]  Package contains a SysV-style init script if in need of one.
[x]  File names are valid UTF-8.
[-]  Large documentation files are in a -doc subpackage, if required.
[-]  Package uses nothing in %doc for runtime.
[-]  Package contains no bundled libraries.
[-]  Header files in -devel subpackage, if present.
[-]  Static libraries in -static subpackage, if present.
[-]  Package contains no static executables.
[-]  Package requires pkgconfig, if .pc files are present.
[-]  Development .so files in -devel subpackage, if present.
[-]  Fully versioned dependency in subpackages, if present.
[-]  Package does not contain any libtool archives (.la).
[-]  Useful -debuginfo package or justification otherwise.
[-]  Rpath absent or only used for internal libs.
[!]  Package does not genrate any conflict.
[x]  Package does not contains kernel modules.
[x]  Package is not relocatable.
[x]  Package successfully compiles and builds into binary rpms on at least one supported architecture.
Tested on F14/x86_64
[x]  Package is not known to require ExcludeArch.
[x]  Package installs properly.
[x]  Package obeys FHS, except libexecdir and /usr/target.
[!]  Package meets the Packaging Guidelines. [6]

=== SUGGESTED ITEMS ===
[-]  Package functions as described.
[x]  Latest version is packaged.
[x]  Package does not include license text files separate from upstream.
[!]  If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[-]  Description and summary sections in the package spec file contains translations for supported Non-English languages, if available.
[!]  SourceX is a working URL.
[!]  SourceX / PatchY prefixed with %{name}.
[x]  Final provides and requires are sane (rpm -q --provides and rpm -q --requires).
[-]  %check is present and all tests pass.
[-]  Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[x]  Reviewer should test that the package builds in mock.
Tested on F14/x86_64
[-]  Package should compile and build into binary rpms on all supported architectures.
[x]  Dist tag is present.
[x]  Spec use %global instead of %define.
[-]  Scriptlets must be sane, if used.
[-]  The placement of pkgconfig(.pc) files are correct.
[x]  No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]  Packages should try to preserve timestamps of original installed files.
[-]  File based requires are sane.
[-]  Man pages included for all executables.
[-]  Uses parallel make.
[-]  Patches link to upstream bugs/comments/lists or are otherwise justified.

[1] https://fedoraproject.org/wiki/Packaging:NamingGuidelines
[2] https://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 
[3] https://fedoraproject.org/wiki/Packaging:LicensingGuidelines
[4] https://fedoraproject.org/wiki/Licensing:Main
[5] https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files
[6] https://fedoraproject.org/wiki/Packaging:Guidelines


=== Issues ===
1. Upstream has no license file included. Because you are also upstream, please choose a license from the ones acceptable in Fedora, include the license file in the source archive, and then package it in %doc.
http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text

You are also very welcome to include a README file stating the purpose of the project and the chosen license.

2. This package must "Requires:       rpm" also because it uses its directories.

3. Files in %{_sysconfdir} must be marked %config or %config(noreplace).

4. This package conflicts with erlang. I'm sure it won't be the case once imported. So this can be safely ignored.

Comment 2 Peter Lemenkov 2010-11-14 20:20:33 UTC
Thanks for these issues found - I'll package new version soon.

Comment 3 Peter Lemenkov 2010-11-15 10:42:19 UTC
(In reply to comment #1)
> === Issues ===
> 1. Upstream has no license file included. Because you are also upstream, please
> choose a license from the ones acceptable in Fedora, include the license file
> in the source archive, and then package it in %doc.
> http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text

Done.

> You are also very welcome to include a README file stating the purpose of the
> project and the chosen license.

Added README too.

> 2. This package must "Requires:       rpm" also because it uses its
> directories.

I added dependency on rpm-build because this package is almost useless for any other needs than building. Also I added dependency on vesrion >= 4.7 because of particular macros used.

> 3. Files in %{_sysconfdir} must be marked %config or %config(noreplace).

Done. Marked as %config.

> 4. This package conflicts with erlang. I'm sure it won't be the case once
> imported. So this can be safely ignored.

Yes, it's intentional - the original goal was to move off these scripts from erlang into their own independent package.


http://peter.fedorapeople.org/erlang-rpm-macros.spec
http://peter.fedorapeople.org/erlang-rpm-macros-0.1.2-1.fc12.src.rpm

Comment 4 Andrea Musuruane 2010-11-15 11:12:25 UTC
Why did you add the following line?
Obsoletes:	%{name} < 0.1.2

It should be obvious that a package with higher NEVR will obsolete the same package with lower NEVR.

Moreover, are you sure that "Requires:	erlang-erts" is mandatory? I do not think that this is required to install erlang-rpm-macros. It will be probably required by spec files that need erlang to build the RPM. Or maybe erlang-erts should require erlang-rpm-macros as a facility for the developer to build RPM files.

Comment 5 Peter Lemenkov 2010-11-15 11:19:28 UTC
(In reply to comment #4)
> Why did you add the following line?
> Obsoletes: %{name} < 0.1.2

Previous package was arch-dependent. So, unfortunately, this "Obsoletes" directive is required.

> Moreover, are you sure that "Requires: erlang-erts" is mandatory? I do not
> think that this is required to install erlang-rpm-macros. It will be probably
> required by spec files that need erlang to build the RPM. Or maybe erlang-erts
> should require erlang-rpm-macros as a facility for the developer to build RPM
> files.

Yes, after giving some consideration to the matter I agree with you here.

New spec and src.rpm:

http://peter.fedorapeople.org/erlang-rpm-macros.spec
http://peter.fedorapeople.org/erlang-rpm-macros-0.1.2-2.fc12.src.rpm

Comment 6 Andrea Musuruane 2010-11-15 11:35:33 UTC
(In reply to comment #5)
> Previous package was arch-dependent. So, unfortunately, this "Obsoletes"
> directive is required.

This package is not yet out in the wild. I am probably the only user of it right now. I think you can safely omit the "obsoletes" but it's really your choice.

I approve this package; you can strip the "obsoletes" before importing if you want. Good work!

APPROVED!

Comment 7 Peter Lemenkov 2010-11-15 11:49:11 UTC
Thanks!

New Package SCM Request
=======================
Package Name: erlang-rpm-macros
Short Description: Macros for simplifying building of Erlang packages
Owners: peter
Branches: f14 el6
InitialCC:

Comment 8 Jason Tibbitts 2010-11-15 14:44:00 UTC
Git done (by process-git-requests).

Comment 9 Peter Lemenkov 2010-11-17 06:21:02 UTC
Ok, the package is available in Rawhide so I'm closing this.

Comment 10 Fedora Update System 2010-11-21 14:56:35 UTC
erlang-rpm-macros-0.1.2-2.fc14,erlang-R14B-0.5.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/erlang-rpm-macros-0.1.2-2.fc14,erlang-R14B-0.5.fc14

Comment 11 Fedora Update System 2010-11-29 21:30:06 UTC
erlang-rpm-macros-0.1.2-2.fc14, erlang-R14B-0.5.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.


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