Bug 657040

Summary: Review Request: tudu - A simple, command line interface to do list application
Product: [Fedora] Fedora Reporter: eric
Component: Package ReviewAssignee: Kevin Fenzi <kevin>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, nelsoninva, notting, pikachu.2014, pingou
Target Milestone: ---Flags: kevin: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: tudu-0.7-2.fc14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-29 18:19:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
tudu makefile patch for config file locations
none
Specfile patch to use the Makefile patch none

Description eric 2010-11-24 18:25:46 UTC
Spec URL: http://sparks.fedorapeople.org/Packages/tudu/tudu.spec
SRPM URL: http://sparks.fedorapeople.org/Packages/tudu/tudu-0.7-1.fc14.src.rpm
Description: A command line interface to manage hierarchical to dos. Each task has a title, a long text description, a deadline (tudu warns you when the date is close), and a scheduled date. There are categories and priorities.

Comment 1 Kevin Fenzi 2010-11-25 00:00:23 UTC
This is a cute little package, and I was thinking of packaging it up... since you beat me to it, I'll go ahead and review. ;) 

Look for a full review in a bit.

Comment 2 Kevin Fenzi 2010-11-25 00:12:48 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.
[x]  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 (%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)).
[x]  Package run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) and the beginning of %install.
[x]  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).
[x]  Changelog in prescribed format.
[!]  Rpmlint output is silent.
[ ]  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.
[x]  License file installed when any subpackage combination is installed.
[x]  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]
[x]  Sources contain only permissible code or content.
[x]  Sources used to build the package matches the upstream source, as provided in the spec URL.
30c2a568ce9e0e5a0fe30746caa3c290  tudu-0.7.tar.gz
30c2a568ce9e0e5a0fe30746caa3c290  tudu-0.7.tar.gz.orig

[!]  Compiler flags are appropriate.
[!]  %build honors applicable compiler flags or justifies otherwise.
[x]  Package must own all directories that it creates.
[x]  Package does not own files or directories owned by other packages.
[x]  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.
[x]  %config files are marked noreplace or the reason is justified.
[x]  Package contains code, or permissable content.
[x]  File names are valid UTF-8.
[x]  Package uses nothing in %doc for runtime.
[x]  Package contains no bundled libraries.
[x]  Rpath absent or only used for internal libs.
[x]  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.
[x]  Package is not known to require ExcludeArch.
[x]  Package installs properly.
[x]  Package obeys FHS, except libexecdir and /usr/target.
[x]  Package meets the Packaging Guidelines. [6]

=== SUGGESTED ITEMS ===
[x]  Package functions as described.
[x]  Latest version is packaged.
[x]  SourceX is a working URL.
[x]  SourceX / PatchY prefixed with %{name}.
[x]  Final provides and requires are sane (rpm -q --provides and rpm -q --requires).
[x]  Reviewer should test that the package builds in mock.
[x]  Package should compile and build into binary rpms on all supported architectures.
[x]  Dist tag is present.
[x]  No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]  Man pages included for all executables.
[!]  Uses parallel make.

=== Issues ===
1. rpmlint says: 

tudu-debuginfo.x86_64: E: debuginfo-without-sources
3 packages and 0 specfiles checked; 1 errors, 0 warnings.

debuginfo-without-sources:
This debuginfo package appears to contain debug symbols but no source files.
This is often a sign of binaries being unexpectedly stripped too early during
the build, or being compiled without compiler debug flags (which again often
is a sign of distro's default compiler flags ignored which might have security
consequences), or other compiler flags which result in rpmbuild's debuginfo
extraction not working as expected.  Verify that the binaries are not
unexpectedly stripped and that the intended compiler flags are used.

Looks like the default compiler flags are not being used here. ;( 

2. Does %{?_smp_mflags} work here? If so, might be nice to use it.

Comment 3 eric 2010-11-25 03:48:52 UTC
Why is it that all the problems are going to crop up in the one file I forgot to check?

I added %{?_smp_mflags} onto the "make" in the %build but it didn't seem to fix the problem.  I've uploaded the new SPEC and SRPM to the original URLs if you'd like to look at them.

I'll look at this more tomorrow when I'm more awake.

Thanks for taking the review!

Comment 4 Ken Nelson 2010-11-25 16:13:56 UTC
I'd also note a couple of items related to locations of tudurc and welcome xml.
I downloaded and installed the package from the SPRM linked above. And, then:

[knelson@zonker x86_64]$ tudu
Err: Global config does not exist. The config should be /usr/local/etc/tudurc

Symlinking tudurc to /usr/local/etc, and then:

[knelson@zonker x86_64]$ tudu
Err: Welcome file does not exist. It should be /usr/local/share/tudu/welcome.xml

Another symlink, and all's well in tudu-land.

I'll be glad to see this package in Fedora!
-k-

Comment 5 Ken Nelson 2010-11-25 17:13:18 UTC
Created attachment 462943 [details]
tudu makefile patch for config file locations

Patch for the configuration files relocation..

Comment 6 Ken Nelson 2010-11-25 17:19:36 UTC
Created attachment 462945 [details]
Specfile patch to use the Makefile patch

A patch to the in-process specfile to use the Makefile patch previously submitted. Tread gently; my enthusiasm often exceeds my talent..

-k-

Comment 7 Kevin Fenzi 2010-11-25 21:18:56 UTC
Thanks for catching that Ken! ;) 

Eric: You are going to have to patch src/Makefile it looks like to setup the cflags right. ;(

Comment 8 eric 2010-11-25 22:34:40 UTC
I added the patch and applied the patch to the SPEC.  Still have the same problem with the debug file:

tudu-debuginfo.i686: E: debuginfo-without-sources

Comment 9 Ken Nelson 2010-11-26 14:13:16 UTC
The Makefile under src in the tarball needs to be patched.  My effort is rather ham-fisted, but succeeds in quieting rpmlint on the debug package.
I applied this patch(Patch1) to src/Makefile:

diff --git a/Makefile b/Makefile
index 4a139fc..504854c 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ PROG=tudu
 SRCS=tudu.cc data.cc editor.cc interface.cc window.cc text.cc parser.cc
 SRCS+= config.cc date.cc screen.cc sched.cc cmd.cc
 CXX=g++
-CFLAGS=-Wall -O2 -DSHARE_DIR=\"$(SHARE_DIR)\" -DETC_DIR=\"$(ETC_DIR)\"
+CFLAGS+= -DSHARE_DIR=\"$(SHARE_DIR)\" -DETC_DIR=\"$(ETC_DIR)\"
 
 OBJS=$(SRCS:.cc=.o)
 
And then changed the prep section in the specfile to look like this:
%prep
%setup -q
%patch0 -p1
pushd src
%patch1 -p1
sed -i -e "1 i \
CFLAGS=%{optflags}
" Makefile
popd

---
And, after an rpmbuild, I have:
[knelson@zonker SPECS]$ rpmlint /home/knelson/rpmbuild/RPMS/x86_64/tudu-debuginfo-0.7-2.fc14.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

which is the desired result.  I have zero doubt that there are vastly better ways to change the Makefile than my clumsy attempt outlined above; I look forward to seeing what those ways are, so I can further my education.

-k-

Comment 10 eric 2010-11-26 14:48:28 UTC
(In reply to comment #9)

Awesome work.  Would you like to co-maintain this package?  :)

rpmlint is happy:

[christensene@mini rpmbuild]$ rpmlint SPECS/tudu.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
[christensene@mini rpmbuild]$ rpmlint SRPMS/tudu-0.7-1.fc14.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[christensene@mini rpmbuild]$ rpmlint RPMS/i686/tudu-0.7-1.fc14.i686.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[christensene@mini rpmbuild]$ rpmlint RPMS/i686/tudu-debuginfo-0.7-1.fc14.i686.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.


And the package installs and runs without any problems.

Comment 11 Ken Nelson 2010-11-26 15:55:40 UTC
(In reply to comment #10)
> (In reply to comment #9)
> 
> Awesome work.  Would you like to co-maintain this package?  :)
> 
I have no sponsor, or mentor, or whatever it's called. I don't know beans about the Fedora packaging mechanism, which I'm sure differs substantially from that on my  Lenovo laptop ;)

Having said that, I'd be delighted to help. That enthusiasm > talent thing that I have.

-k-

Comment 12 Kevin Fenzi 2010-11-26 22:18:40 UTC
Eric: Care to post a final package with all the changes and changelogs, then we can finish this up. ;)

Comment 14 Kevin Fenzi 2010-11-27 02:59:03 UTC
ok, I don't see any further blockers here... You should contact upstream about the Makefile changes here and ask them to fix things so you don't need patches moving forward. :) 

This package is APPROVED.

Comment 15 eric 2010-11-27 03:26:20 UTC
New Package SCM Request
=======================
Package Name: tudu
Short Description: A simple, command line interface to do list application
Owners: sparks
Branches: f13 f14
InitialCC:

Comment 16 Ken Nelson 2010-11-27 14:30:07 UTC
(In reply to comment #13)
> SPEC: http://sparks.fedorapeople.org/Packages/tudu/tudu.spec
> 
> SRPM: http://sparks.fedorapeople.org/Packages/tudu/tudu-0.7-2.fc14.src.rpm

Just tried it out.

Works great!

-k-

Comment 17 Jason Tibbitts 2010-11-29 17:03:41 UTC
Git done (by process-git-requests).

Comment 18 Fedora Update System 2010-11-29 18:20:57 UTC
tudu-0.7-2.fc13 has been submitted as an update for Fedora 13.
https://admin.fedoraproject.org/updates/tudu-0.7-2.fc13

Comment 19 Fedora Update System 2010-11-29 18:22:17 UTC
tudu-0.7-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/tudu-0.7-2.fc14

Comment 20 eric 2010-12-01 17:16:57 UTC
Package Change Request
======================
Package Name: tudu
New Branches: el5 el6
Owners: sparks
InitialCC:

Comment 21 Jason Tibbitts 2010-12-02 19:38:51 UTC
Git done (by process-git-requests).

Comment 22 Fedora Update System 2010-12-08 21:38:28 UTC
tudu-0.7-2.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 23 Fedora Update System 2010-12-08 21:40:04 UTC
tudu-0.7-2.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.