Bug 507053 - Review Request: latrace - glibc 2.4+ LD_AUDIT feature frontend
Review Request: latrace - glibc 2.4+ LD_AUDIT feature frontend
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Dan Horák
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-20 05:04 EDT by Jiri Olsa
Modified: 2010-04-14 17:47 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-09-17 04:31:39 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
dan: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Jiri Olsa 2009-06-20 05:04:06 EDT
Spec URL: http://people.redhat.com/jolsa/latrace/latrace.spec
SRPM URL: http://people.redhat.com/jolsa/latrace/latrace-0.5.5-1.fc10.src.rpm
Description: 

This is my first package so I need a sponsor.

latrace allows you to trace library calls and get their statistics in a
manner similar to the strace utility (syscall tracing)

- display dynamic library functions as they are called
- fast, using callbacks directly from dynamic loader (LD_AUDIT feature)
- display function arguments (C style config file)
- display statistics for called functions
- x86/x86_64/ARM ports
- extensive man page doc
- http://latrace.sourceforge.net/
- http://latrace.sourceforge.net/latrace.html
- http://www.kernel.org/doc/man-pages/online/pages/man7/rtld-audit.7.html
Comment 1 Dan Horák 2009-06-30 05:53:57 EDT
some notes
- tool name shouldn't be repeated in summary (e.g. LD_AUDIT feature frontend for glibc 2.4+), but IMHO it should be description
- license tag should be GPLv3+, because you have "GPLv3 or any later version" in the sources
- s/dl/download/ in the URL tag (https://fedoraproject.org/wiki/Packaging:SourceURL#Sourceforge.net)
- at least bison, asciidoc and xmlto are missing in the BuildRequires - you should try building the package in mock to find all the BRs
- run make with V=1 in %build, options passed to gcc must be visible
- doesn't build in Rawhide, I get an error
...
Note: Writing latrace.1
  ASCIIDOC doc/latrace.html
ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11.css
ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11-manpage.css
ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11-quirks.css
make: *** [doc/latrace.html] Error 1
chyba: Špatný návratový kód z /var/tmp/rpm-tmp.q7Pndh (%install)
chyby sestavení RPM:
...

- 32-bit Intel platform should be encoded as "%{ix86}" in the ExclusiveArch tag and ARM in lowercase
- don't mark the man page as %doc

Increase the release in next published iteration of the package if the version remains the same.
Comment 2 Jiri Olsa 2009-07-02 16:37:36 EDT
made updates based on comments,
new spec file and sources are uploaded:

Spec URL: http://people.redhat.com/jolsa/latrace/latrace.spec
SRPM URL: http://people.redhat.com/jolsa/latrace/latrace-0.5.5-2.fc11.src.rpm
Comment 3 Dan Horák 2009-07-03 03:56:45 EDT
formal review is here, see the notes below:

BAD	source files match upstream:
OK	package meets naming and versioning guidelines.
OK	specfile is properly named, is cleanly written and uses macros consistently.
OK	dist tag is present.
OK	license field matches the actual license.
OK	license is open source-compatible (GPLv3+). License text included in package.
OK	latest version is being packaged.
OK	BuildRequires are proper.
OK	compiler flags are appropriate.
OK	%clean is present.
OK	package builds in mock (Rawhide/x86_64).
OK	debuginfo package looks complete.
BAD	rpmlint is silent.
OK	final provides and requires look sane.
N/A	%check is present and all tests pass.
OK	no shared libraries are added to the regular linker search paths.
OK	owns the directories it creates.
OK	doesn't own any directories it shouldn't.
OK	no duplicates in %files.
BAD	file permissions are appropriate.
OK	correct scriptlets present.
OK	code, not content.
OK	documentation is small, so no -docs subpackage is necessary.
OK	%docs are not necessary for the proper functioning of the package.
OK	no headers.
OK	no pkgconfig files.
OK	no libtool .la droppings.
OK	not a GUI app.

- source archives differs - a newer one is packaged in srpm, you should never change a publicly released archive, but release a new one with increased version
- rpmlint complains a bit:
latrace.src: W: no-version-in-last-changelog
latrace.x86_64: W: no-version-in-last-changelog
  - https://fedoraproject.org/wiki/Packaging/Guidelines#Changelogs
latrace.x86_64: W: no-soname /usr/lib64/libltaudit.so
  - can be ignored here
latrace.x86_64: W: shared-lib-calls-exit /usr/lib64/libltaudit.so exit@GLIBC_2.2.5
  - hint when rpmlint is run with "-i"
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.
  - requires a comment why this is correct

latrace.x86_64: E: non-standard-executable-perm /usr/bin/latrace 0555
latrace.x86_64: E: non-standard-executable-perm /usr/lib64/libltaudit.so 0555
  - should be 0755
- config files in /etc should be writable by owner (0644)
Comment 4 Jiri Olsa 2009-07-06 12:39:20 EDT
(In reply to comment #3)
> formal review is here, see the notes below:
> 
> BAD source files match upstream:
> OK package meets naming and versioning guidelines.
> OK specfile is properly named, is cleanly written and uses macros consistently.
> OK dist tag is present.
> OK license field matches the actual license.
> OK license is open source-compatible (GPLv3+). License text included in
> package.
> OK latest version is being packaged.
> OK BuildRequires are proper.
> OK compiler flags are appropriate.
> OK %clean is present.
> OK package builds in mock (Rawhide/x86_64).
> OK debuginfo package looks complete.
> BAD rpmlint is silent.
> OK final provides and requires look sane.
> N/A %check is present and all tests pass.
> OK no shared libraries are added to the regular linker search paths.
> OK owns the directories it creates.
> OK doesn't own any directories it shouldn't.
> OK no duplicates in %files.
> BAD file permissions are appropriate.
> OK correct scriptlets present.
> OK code, not content.
> OK documentation is small, so no -docs subpackage is necessary.
> OK %docs are not necessary for the proper functioning of the package.
> OK no headers.
> OK no pkgconfig files.
> OK no libtool .la droppings.
> OK not a GUI app.
> 
> - source archives differs - a newer one is packaged in srpm, you should never
> change a publicly released archive, but release a new one with increased
> version
> - rpmlint complains a bit:
> latrace.src: W: no-version-in-last-changelog
> latrace.x86_64: W: no-version-in-last-changelog
>   - https://fedoraproject.org/wiki/Packaging/Guidelines#Changelogs
fixed

> latrace.x86_64: W: no-soname /usr/lib64/libltaudit.so
>   - can be ignored here
fixed

> latrace.x86_64: W: shared-lib-calls-exit /usr/lib64/libltaudit.so
> exit@GLIBC_2.2.5
>   - hint when rpmlint is run with "-i"
> This library package calls exit() or _exit(), probably in a non-fork()
> context. Doing so from a library is strongly discouraged - when a library
> function calls exit(), it prevents the calling program from handling the
> error, reporting it to the user, closing files properly, and cleaning up any
> state that the program has. It is preferred for the library to return an
> actual error code and let the calling program decide how to handle the
> situation.
>   - requires a comment why this is correct
it is in the flex code.. YY_FATAL_ERROR define defaults to yy_fatal_error function, which calls exit. 
So far I can see 2 options:
- either leave it as it is, ending up in the program exit due to the fatal cond., 
- or redefine YY_FATAL_ERROR to notify user without exit, but this ends with segfault..

currently I'd rather leave it as it is

> 
> latrace.x86_64: E: non-standard-executable-perm /usr/bin/latrace 0555
> latrace.x86_64: E: non-standard-executable-perm /usr/lib64/libltaudit.so 0555
>   - should be 0755
> - config files in /etc should be writable by owner (0644)  
fixed

new spec file and sources are uploaded:

Spec URL: http://people.redhat.com/jolsa/latrace/latrace.spec
SRPM URL: http://people.redhat.com/jolsa/latrace/latrace-0.5.6-1.fc11.src.rpm
Comment 5 Bill Nottingham 2009-07-06 12:57:18 EDT
Should this obsolete ltrace? Maybe I'm confused as to the usage case overlap here.
Comment 6 Jiri Olsa 2009-07-06 15:50:15 EDT
Well, ltrace is able to display system calls also, which latrace is not,
as it is a pure glibc LD_AUDIT frontend.

The justification for the latrace usage should be probably the speed.. it should be far more faster then ltrace, since it uses callbacks directly from the glibc dynamic linker.

for latrace usage plz see links on http://latrace.sourceforge.net/doc.shtml
Comment 7 Dan Horák 2009-07-08 16:30:46 EDT
All issues are fixed

OK	source files match upstream:
	    03953b3b97ef32f5b279071c60426ce2eeb3ca53  latrace-0.5.6.tar.bz2
OK	rpmlint is silent.
OK	file permissions are appropriate.

this package is APPROVED.
Comment 8 Jiri Olsa 2009-07-15 10:27:32 EDT
New Package CVS Request
=======================
Package Name: latrace
Short Description: LD_AUDIT feature frontend for glibc 2.4+
Owners: jolsa
Branches: F11
InitialCC:
Comment 9 Kevin Fenzi 2009-07-16 01:34:35 EDT
cvs done.
Comment 10 Fabian Affolter 2009-07-29 06:30:18 EDT
I see no build for this package.

Bug assigned to the reviewer.
Comment 11 Jiri Olsa 2009-07-30 01:37:51 EDT
I haven't make it so far due to lack of time.. I'll provide within a week
Comment 12 Dan Horák 2009-09-17 04:31:39 EDT
Closing, the package is imported and built.
Comment 13 Jiri Olsa 2010-04-14 08:42:07 EDT
Package Change Request
======================
Package Name: latrace
New Branches: EPEL
Owners: jolsa

I'd like to provide latrace in EPEL to be available in RHEL5.
I'm the upstream/fedora/RHEL6 pkg maintainer.

thanks,
jirka
Comment 14 Jiri Olsa 2010-04-14 09:05:08 EDT
Package Change Request
======================
Package Name: latrace
New Branches: EL-5
Owners: jolsa

I'd like to provide latrace in EPEL to be available in RHEL5.
I'm the upstream/fedora/RHEL6 pkg maintainer.

thanks,
jirka
Comment 15 Kevin Fenzi 2010-04-14 17:47:09 EDT
cvs done.

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