Bug 569582 - Review Request: udev-browse - Udev browser tool
Summary: Review Request: udev-browse - Udev browser tool
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Michael S.
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-03-01 19:12 UTC by Rahul Sundaram
Modified: 2012-04-16 18:26 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-04-16 18:26:01 UTC
Type: ---
Embargoed:
misc: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Rahul Sundaram 2010-03-01 19:12:58 UTC
Spec URL: http://sundaram.fedorapeople.org/packages/udev-browse.spec
SRPM URL: http://sundaram.fedorapeople.org/packages/udev-browse-0.1-1.fc12.src.rpm
Description: 
Graphical tool for browsing and exploring the udev/sysfs tree

Comment 1 Kalev Lember 2010-03-01 20:23:35 UTC
I'm not going to do a thorough review, but I have a comment.

rpmlint complains:
udev-browse-debuginfo.i686: E: debuginfo-without-sources

The reason why this happens is that $RPM_OPT_FLAGS aren't passed to the C compiler. Also, valac is run in a non-verbose mode, so it's not possible to inspect compiler flags by looking at the build logs.

Right now the simplistic Makefile just runs valac, which in turn generates C code and runs C compiler. Valac, however, seems to completely ignore CFLAGS. I don't have any experience with vala, but I think this problem could be solved by using valac only to generate C code, and later running the C compiler directly. That way it's certainly possible to pass CFLAGS to the compiler.

I would suggest to contact upstream maintainer and discuss this issue with him. It might be possible that he's willing to switch to autotools or cmake, both of which AFAIK can be used to build vala code.

Comment 2 Jochen Schmitt 2010-03-15 18:01:24 UTC
Sorry, but from my point of view, it make no sense to copmile the source code into C only to get source files for the debuginfo package.

In opposite, I suggest to suppress the generation of the debuginfo file for this package. The debuginfo file should contains the orignal sources and not any sources generated by a compiler.

Best Regards:

Jochen Schmitt

Comment 3 Kalev Lember 2010-03-23 21:51:41 UTC
(In reply to comment #2)
> Sorry, but from my point of view, it make no sense to copmile the source code
> into C only to get source files for the debuginfo package.

Debuginfo subpackages isn't the only reason for $RPM_OPT_FLAGS: they also turn on security features (-fstack-protector --param=ssp-buffer-size=4, -D_FORTIFY_SOURCE=2), enable specific compiler optimization flags (-O2, -mtune=atom, -fasynchronous-unwind-tables), and more.


> /.../ it make no sense to copmile the source code into C only to /.../

That's exactly what vala compiler always does: compiles vala code into C. After generating the C code, it also executes the C compiler. What I was suggesting was to stop vala from running the C compiler, so that it would be possible for the build scripts to 1) run vala compiler to produce C code, 2) call the C compiler with our preferred $RPM_OPT_FLAGS.

From my point of view, honouring $RPM_OPT_FLAGS is a MUSTFIX.

Comment 4 Jason Tibbitts 2010-11-23 18:17:05 UTC
It doesn't look like anything ever happened with this package.  Does vala still improperly call the C compiler?

Comment 5 Lennart Poettering 2012-01-25 02:34:13 UTC
As I am upstream for this, and nothing happened on this package I think I should take this one over.

I have now fixed upstream, to honour $CFLAGS, and the .spec file to honour $RPM_OPT_FLAGS, which fixes the debuginfo issue.

New .spec and srpm are now available here:

Spec URL: http://0pointer.de/public/udev-browse.spec
SRPM URL: http://0pointer.de/public/udev-browse-0.2-1.fc16.src.rpm

Comment 6 Michael S. 2012-03-19 18:54:40 UTC
Let me take this review. 

A small comment :
- %defattr is no longer needed, and should be removed

Rpmlint output :

$ rpmlint udev-browse-0.2-1.fc16.i686.rpm 
udev-browse.i686: W: spelling-error %description -l en_US sysfs -> sysops
udev-browse.i686: W: no-manual-page-for-binary udev-browse
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

$ rpmlint udev-browse-0.2-1.fc16.src.rpm 
udev-browse.src: W: spelling-error %description -l en_US sysfs -> sysops
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

However, it build fine for f16, but not on rawhide :
http://koji.fedoraproject.org/koji/getfile?taskID=3910816&name=build.log 

+ make -j16
valac --save-temps --pkg gee-1.0 --pkg gtk+-3.0 --pkg gudev-1.0 --pkg gnu --vapidir=. --Xcc=-O2 --Xcc=-g --Xcc=-pipe --Xcc=-Wall --Xcc=-Wp,-D_FORTIFY_SOURCE=2 --Xcc=-fexceptions --Xcc=-fstack-protector --Xcc=--param=ssp-buffer-size=4 --Xcc=-m32 --Xcc=-march=i686 --Xcc=-mtune=atom --Xcc=-fasynchronous-unwind-tables --Xcc=-D_GNU_SOURCE udev-browse.vala
error: Package `gee-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)

Comment 7 Lennart Poettering 2012-03-27 10:11:39 UTC
Thanks for the review!

OK, added the necessary dep for libgee06-devel and dropped the defattr.

New .spec and srpm are now available here:

Spec URL: http://0pointer.de/public/udev-browse.spec
SRPM URL: http://0pointer.de/public/udev-browse-0.2-2.fc17.src.rpm

Comment 8 Michael S. 2012-03-27 18:00:57 UTC
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[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.
[x]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[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.
[x]: MUST Package requires other packages for directories it uses.
[x]: 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 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
[x]: 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: No licenses found! Please check the source files for licenses
     manually.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: 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 Requires correct, justified where necessary.
[!]: MUST Rpmlint output is silent.

rpmlint udev-browse-0.2-2.fc18.i686.rpm

udev-browse.i686: W: spelling-error %description -l en_US sysfs -> sysops
udev-browse.i686: W: no-manual-page-for-binary udev-browse
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint udev-browse-debuginfo-0.2-2.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint udev-browse-0.2-2.fc18.src.rpm

udev-browse.src: W: spelling-error %description -l en_US sysfs -> sysops
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/home/misc/checkout/git/FedoraReview/src/569582/udev-browse-0.2.tar.xz :
  MD5SUM this package     : 7bf36bdc0be743605b06b40452457d32
  MD5SUM upstream package : 7bf36bdc0be743605b06b40452457d32

[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 a SysV-style init script if in need of one.
[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.
[-]: 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.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: 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 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.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Rpmlint output is silent.

rpmlint udev-browse-0.2-2.fc18.i686.rpm

udev-browse.i686: W: spelling-error %description -l en_US sysfs -> sysops
udev-browse.i686: W: no-manual-page-for-binary udev-browse
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint udev-browse-debuginfo-0.2-2.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint udev-browse-0.2-2.fc18.src.rpm

udev-browse.src: W: spelling-error %description -l en_US sysfs -> sysops
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint


Generated by fedora-review 0.2.0git
External plugins:


the 2 rpmlint warning are not blocking or wrong. So the package is ok for f17/rawhide.

Comment 9 Lennart Poettering 2012-04-14 13:28:05 UTC
New Package SCM Request
=======================
Package Name: udev-browse
Short Description: Graphical tool for browsing and exploring the udev/sysfs tree.
Owners: lennart kay
Branches: InitialCC:

Comment 10 Gwyn Ciesla 2012-04-15 20:07:15 UTC
Git done (by process-git-requests).

Fixed bad formatting.

Comment 11 Lennart Poettering 2012-04-16 18:26:01 UTC
Commited to git and built.


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