Bug 828993

Summary: Review Request: l3afpad - Simple text editor
Product: [Fedora] Fedora Reporter: Benedikt Schäfer <ib54003>
Component: Package ReviewAssignee: Christoph Wickert <cwickert>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: cwickert, dmaphy, mrunge, notting, package-review
Target Milestone: ---Flags: cwickert: fedora‑review+
limburgher: fedora‑cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-23 15:53:13 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Description Flags
fedora-review for l3afpad none

Description Benedikt Schäfer 2012-06-05 13:49:05 EDT
Spec URL: http://ib54003.fedorapeople.org/rpm/l3afpad/l3afpad.spec
SRPM URL: http://ib54003.fedorapeople.org/rpm/l3afpad/l3afpad-
Description: L3afpad is a simple GTK+ text editor that emphasizes simplicity.
As development focuses on keeping weight down to a minimum, only
the most essential features are implemented in the editor.
L3afpad is simple to use, is easily compiled, requires few
libraries, and starts up quickly.
Fedora Account System Username:ib54003

This is my first package and I need a sponsor.
Comment 1 John Morris 2012-06-28 18:17:47 EDT
Hi Benedikt,

Is your package different from the one already available in Fedora?

Comment 2 Christoph Wickert 2012-06-28 21:20:16 EDT
Yes, l3afpad is not leafpad but a fork of it that builds against GTK3 and includes some bugfixes.
Comment 3 John Morris 2012-06-29 00:01:10 EDT
Created attachment 595172 [details]
fedora-review for l3afpad

Output of fedora-review;  Items marked with a capital "X" are items I checked manually.  Items needing attention pasted at bottom.
Comment 4 John Morris 2012-06-29 00:04:53 EDT
Hi Benedikt, here are a few issues, the first detected by fedora-review, the rest I found myself.  Be sure to check the attached review.  I checked most of the items, but left a few blank.

[!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf is only needed if supporting EPEL5
     ** rm -rf %{buildroot} in %install; is this intended for EPEL5?
[!]: MUST Package consistently uses macros (instead of hard-coded directory
     ** There is an %{_iconsdir} macro; could replace %{_datadir}/icons
     ** There is a %{_desktopdir} macro; could replace %{_datadir}/applications
[!]: MUST Package does not own files or directories owned by other packages.
     ** Does this pkg need to own all those directories in %{_iconsdir}?
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Patch0: l3afpad-
     ** I'd put:
     ** Patch0:         %{name}-%{version}-missing-semicolon.patch
Comment 5 Benedikt Schäfer 2012-08-13 04:51:33 EDT
sorry that i answer only now, but i completely forgot it. 
Here are the corrections:

Spec URL: http://ib54003.fedorapeople.org/rpm/l3afpad/l3afpad.spec
SRPM URL: http://ib54003.fedorapeople.org/rpm/l3afpad/l3afpad-
Comment 6 Christoph Wickert 2012-09-26 16:22:27 EDT
The new package does not build:

Fehler beim Bauen des RPM:
    Datei muss mit "/" beginnen: %{_desktopdir}/l3afpad.desktop
    Datei muss mit "/" beginnen: %{_iconsdir}/hicolor/*/apps/
Child return code was: 1
EXCEPTION: Command failed. See logs for output.

John, I never heard of %{_desktopdir} and %{_iconsdir}. Are you sure these macros are defined in Fedora?
Comment 7 Christoph Wickert 2012-09-26 16:36:19 EDT
$  rpm --eval %{_iconsdir}
$  rpm --eval %{_desktopdir}

So the two marcos are defined...

$  grep -r %_desktopdir /etc/rpm
/etc/rpm/macros.jpackage:%_desktopdir    %{_datadir}/applications
$  grep -r %_iconsdir /etc/rpm
/etc/rpm/macros.jpackage:%_iconsdir	%{_datadir}/icons

... and they are defined in /etc/rpm/macros.jpackage

$  rpm -qf /etc/rpm/macros.jpackage 

... which belongs to jpackage-utils. This means we either need "BuildRequires: jpackage-utils" or use the %{_datadir} marco. I thin this is better because we cannot be sure that jpackage-utils is always available. We should not require anything just for two macro.
Comment 8 John Morris 2012-09-27 14:20:55 EDT
Christoph is right.  Suggestion withdrawn.  :)
Comment 9 Benedikt Schäfer 2012-10-15 08:40:57 EDT
Ok, i finished the RPM! 

Comment 11 Christoph Wickert 2012-10-15 10:40:14 EDT
Package Review

[x] = Pass
[!] = Fail
[-] = Not applicable
[?] = Not evaluated

===== MUST items =====

[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines (GPLv2+).
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package contains no bundled libraries.
[x]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf %{buildroot} present but not required
[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install if there is
     such a file.
[x]: Development files must be in a -devel package
[-]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[-]: Large documentation files are in a -doc subpackage, if required.
[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.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL (v2.1 or later)", "GPL (v2 or later)". 2 files have unknown
[x]: The spec file handles locales properly.
[x]: Package consistently uses macro is (instead of hard-coded directory
[x]: Package is named using only allowed ASCII characters.
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: Package do not use a name that already exist
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package installs properly.
[x]: Package is not relocatable.
[x]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file is legible and written in American English.
[x]: Spec file name must match the spec package %{name}, in the format
[-]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.
[x]: Useful -debuginfo package or justification otherwise.

===== SHOULD items =====

[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
[-]: 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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Final provides and requires are sane (rpm -q --provides and rpm -q
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Patches link to upstream bugs/comments/lists or are otherwise justified.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: Scriptlets must be sane, if used.
[x]: SourceX tarball generation or download is documented.
[!]: SourceX / PatchY prefixed with %{name}.
     Note: Source0 (l3afpad-
[x]: SourceX is a working URL.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
[-]: %check is present and all tests pass.
[!]: Packages should try to preserve timestamps of original installed files.
[x]: Spec use %global instead of %define.

===== EXTRA items =====

[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.

Checking: l3afpad-
l3afpad.x86_64: W: no-manual-page-for-binary l3afpad
3 packages and 0 specfiles checked; 0 errors, 1 warnings.

Rpmlint (installed packages)
# rpmlint l3afpad l3afpad-debuginfo
l3afpad.x86_64: W: no-manual-page-for-binary l3afpad
2 packages and 0 specfiles checked; 0 errors, 1 warnings.
# echo 'rpmlint-done:'

l3afpad- (rpmlib, GLIBC filtered):

l3afpad-debuginfo- (rpmlib, GLIBC filtered):

    l3afpad =
    l3afpad(x86-64) =

    l3afpad-debuginfo =
    l3afpad-debuginfo(x86-64) =

MD5-sum check
http://www.calno.com/l3afpad/l3afpad- :
  CHECKSUM(SHA256) this package     : c08cceaa3c957e235ec9d698f93524d86ef68670681cf204552e2f5fd632f957
  CHECKSUM(SHA256) upstream package : c08cceaa3c957e235ec9d698f93524d86ef68670681cf204552e2f5fd632f957

Generated by fedora-review 0.3.0 (c78e275) last change: 2012-09-24
Buildroot used: fedora-17-x86_64
Command line :/usr/bin/fedora-review -b 828993

So there is only one minor item: The package does not preserve timestamps during %install. Instead of
make install DESTDIR=%{buildroot} use
make install DESTDIR=%{buildroot} INATALL='install -p'

And a suggestion:
Instead of patching the desktop file for a missing semicolon, just use desktop-file-install, it will add the semicolon automatically:

desktop-file-install \
    --delete-original \
    --dir=%{buildroot}%{_datadir}/applications \

The package is APPROVED, but before I sponsor you, I'd like you to take part in other reviews and do at least one complete informal review.
Comment 12 Christoph Wickert 2012-10-24 18:56:06 EDT
New version is out.
Comment 13 Benedikt Schäfer 2012-10-30 05:11:25 EDT
Ok do i have, first to correct the Specfile and than doing the upgrade to the new version or can i do it in one step.
Comment 14 Christoph Wickert 2012-10-30 05:23:20 EDT
You can do it in one step but please make sure to list all changes in the %changelog. E.g.:

- Update to
- Fix this
- Change that
Comment 15 Benedikt Schäfer 2012-11-14 16:11:07 EST
Ok, now it should be finished! Hopefully ;)

Spec URL: http://ib54003.fedorapeople.org/rpm/l3afpad/l3afpad.spec
SRPM URL: http://ib54003.fedorapeople.org/rpm/l3afpad/l3afpad-
Comment 16 Benedikt Schäfer 2013-02-15 14:01:47 EST
Package Name: l3afpad
Short Description: Simple text editor
Owners: ib54003 cwickert
Branches: f17 f18
Comment 17 Christoph Wickert 2013-02-15 14:21:09 EST
Benedikt, please make sure to use the template form the wiki *with* the heading. This is parsed by a tool and not done manually by a human.

New Package SCM Request
Package Name: l3afpad
Short Description: Simple text editor
Owners: ib54003 cwickert
Branches: f17 f18
Comment 18 Gwyn Ciesla 2013-02-15 15:02:42 EST
FAS email and bugzilla email don't match.
Comment 19 Christoph Wickert 2013-02-15 15:33:20 EST
That is intended, Toshio pushed an exception.

New Package SCM Request
Package Name: l3afpad
Short Description: Simple text editor
Owners: ib54003 cwickert
Branches: f17 f18
Comment 20 Gwyn Ciesla 2013-02-15 17:05:41 EST
Git done (by process-git-requests).
Comment 21 Fedora Update System 2013-03-02 10:43:10 EST
l3afpad- has been submitted as an update for Fedora 18.
Comment 22 Fedora Update System 2013-03-02 10:43:28 EST
l3afpad- has been submitted as an update for Fedora 17.
Comment 23 Fedora Update System 2013-03-12 04:40:32 EDT
l3afpad- has been pushed to the Fedora 17 stable repository.
Comment 24 Fedora Update System 2013-03-12 04:59:34 EDT
l3afpad- has been pushed to the Fedora 18 stable repository.