Bug 226522 - Merge Review: valgrind
Summary: Merge Review: valgrind
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Gwyn Ciesla
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-01-31 21:14 UTC by Nobody's working on this, feel free to take it
Modified: 2013-03-11 01:19 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-02-07 19:38:49 UTC
Type: ---
Embargoed:
gwync: fedora-review+


Attachments (Terms of Use)

Description Nobody's working on this, feel free to take it 2007-01-31 21:14:36 UTC
Fedora Merge Review: valgrind

http://cvs.fedora.redhat.com/viewcvs/devel/valgrind/
Initial Owner: jakub

Comment 1 Jerry James 2009-10-29 17:51:15 UTC
I will review the F-12 branch.  It looks like the F-12 branch is several commits ahead of the devel branch, so that needs to be sorted out.  Here is the output of rpmlint on F-12:

valgrind.x86_64: W: incoherent-version-in-changelog 3.5.0-6 ['1:3.5.0-6', '1:3.5.0-6']
valgrind.x86_64: W: obsolete-not-provided valgrind-callgrind
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/memcheck-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/memcheck-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/memcheck-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so
valgrind.x86_64: E: shared-lib-without-dependency-information /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so
valgrind.x86_64: W: unstripped-binary-or-object /usr/bin/valgrind-listener
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/cachegrind-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/cachegrind-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/cachegrind-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so
valgrind.x86_64: E: shared-lib-without-dependency-information /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/exp-bbv-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/exp-bbv-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/exp-bbv-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/exp-ptrcheck-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/exp-ptrcheck-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/exp-ptrcheck-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/drd-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/drd-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/drd-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/lackey-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/lackey-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/lackey-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/vgpreload_massif-amd64-linux.so
valgrind.x86_64: E: shared-lib-without-dependency-information /usr/lib64/valgrind/vgpreload_massif-amd64-linux.so
valgrind.x86_64: W: unstripped-binary-or-object /usr/bin/valgrind
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/vgpreload_exp-ptrcheck-amd64-linux.so
valgrind.x86_64: E: shared-lib-without-dependency-information /usr/lib64/valgrind/vgpreload_exp-ptrcheck-amd64-linux.so
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/vgpreload_drd-amd64-linux.so
valgrind.x86_64: E: shared-lib-without-dependency-information /usr/lib64/valgrind/vgpreload_drd-amd64-linux.so
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/none-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/none-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/none-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/bin/no_op_client_for_valgrind
valgrind.x86_64: W: unstripped-binary-or-object /usr/bin/cg_merge
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/massif-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/massif-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/massif-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/vgpreload_core-amd64-linux.so
valgrind.x86_64: E: shared-lib-without-dependency-information /usr/lib64/valgrind/vgpreload_core-amd64-linux.so
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/callgrind-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/callgrind-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/callgrind-amd64-linux
valgrind.x86_64: W: unstripped-binary-or-object /usr/lib64/valgrind/helgrind-amd64-linux
valgrind.x86_64: W: ldd-failed /usr/lib64/valgrind/helgrind-amd64-linux
valgrind.x86_64: E: statically-linked-binary /usr/lib64/valgrind/helgrind-amd64-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/cachegrind-x86-linux ../../lib/valgrind/cachegrind-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/vgpreload_massif-x86-linux.so ../../lib/valgrind/vgpreload_massif-x86-linux.so
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/vgpreload_core-x86-linux.so ../../lib/valgrind/vgpreload_core-x86-linux.so
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/helgrind-x86-linux ../../lib/valgrind/helgrind-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/callgrind-x86-linux ../../lib/valgrind/callgrind-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/memcheck-x86-linux ../../lib/valgrind/memcheck-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/vgpreload_drd-x86-linux.so ../../lib/valgrind/vgpreload_drd-x86-linux.so
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so ../../lib/valgrind/vgpreload_memcheck-x86-linux.so
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/massif-x86-linux ../../lib/valgrind/massif-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/vgpreload_exp-ptrcheck-x86-linux.so ../../lib/valgrind/vgpreload_exp-ptrcheck-x86-linux.so
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/vgpreload_helgrind-x86-linux.so ../../lib/valgrind/vgpreload_helgrind-x86-linux.so
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/lackey-x86-linux ../../lib/valgrind/lackey-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/exp-bbv-x86-linux ../../lib/valgrind/exp-bbv-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/exp-ptrcheck-x86-linux ../../lib/valgrind/exp-ptrcheck-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/drd-x86-linux ../../lib/valgrind/drd-x86-linux
valgrind.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/none-x86-linux ../../lib/valgrind/none-x86-linux
valgrind-devel.x86_64: W: no-documentation
valgrind-devel.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/libreplacemalloc_toolpreload-x86-linux.a ../../lib/valgrind/libreplacemalloc_toolpreload-x86-linux.a
valgrind-devel.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/libvex-x86-linux.a ../../lib/valgrind/libvex-x86-linux.a
valgrind-devel.x86_64: W: dangling-relative-symlink /usr/lib64/valgrind/libcoregrind-x86-linux.a ../../lib/valgrind/libcoregrind-x86-linux.a
valgrind.spec:26: W: unversioned-explicit-obsoletes valgrind-callgrind
valgrind.spec:29: E: hardcoded-library-path in /usr/lib/libc.so
valgrind.spec:126: W: make-check-outside-check-section make check || :
valgrind.spec:147: E: hardcoded-library-path in ../../lib/valgrind/$j
valgrind.spec:259: W: macro-in-%changelog %{_prefix}
valgrind.spec:352: W: macro-in-%changelog %rip)
2 packages and 1 specfiles checked; 18 errors, 56 warnings.

With 74 errors and warnings to get through, let's count from the top, starting at 1, to make references easier.

#1 is solved by prefixing the changelog version numbers with "1:".  Since the epoch was bumped before version numbers started appearing there, all of the version numbers need this.

#2 and #69 are described in https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Renaming.2Freplacing_existing_packages.  But I'm confused.  The changelog says the Obsoletes was removed, but it is still there.  Should it be there or not?

#3-#7,#9-#27,#29-#35,#38-#48 are just due to the nature of valgrind, I think, although I would appreciate a comment on that.

#8,#28,#36-#37: is it too difficult or impossible to allow debuginfo generation for the binarines in /usr/bin without also allowing it for everything else, too?

#49-#64,#66-#68,#72: these really are dangling symlinks.  Do they serve some purpose?  I'd expect them to be for support of 32-bit binaries on a 64-bit arch, but I don't see an i686 valgrind package in the x86_64 repository.

#65: no documentation for the -devel subpackage is fine.

#70: I think we can ignore this one, since it just ensure BRs for the 64-bit platforms.

#71: Is there some reason for running tests in %build instead of %check?

#73-#74: These just need doubled %s to be sure rpm doesn't try to process them.

I'd like to get some feedback on the issues raised above before continuing with the full review.

Comment 2 Jerry James 2010-01-13 19:43:53 UTC
Ping.  F-12 is still ahead of devel in CVS.  Most of the rpmlint warnings and errors reported in comment 1 are still reported, although a few of them have been removed.

Comment 3 Jerry James 2010-08-23 17:36:57 UTC
It's pretty obvious this maintainer doesn't want to participate in a merge review.  I'm leaving in search of greener pastures.  Someone else feel free to try to get the maintainer to respond.

Comment 4 Gwyn Ciesla 2012-04-03 14:53:04 UTC
I'll have a look.

Comment 5 Gwyn Ciesla 2012-04-03 16:11:17 UTC
Good:

- rpmlint checks return:
valgrind.spec:24: W: unversioned-explicit-obsoletes valgrind-callgrind
The specfile contains an unversioned Obsoletes: token, which will match all
older, equal and newer versions of the obsoleted thing.  This may cause update
problems, restrict future package/provides naming, and may match something it
was originally not inteded to match -- make the Obsoletes versioned if
possible.

This should be fixed, or removed if no longer needed.

valgrind.spec:27: E: hardcoded-library-path in /usr/lib/libc.so
A library path is hardcoded to one of the following paths: /lib, /usr/lib. It
should be replaced by something like /%{_lib} or %{_libdir}.

This should be replaced by arch-specific requires on glibc-devel.

valgrind.spec:169: E: hardcoded-library-path in ../../lib/valgrind/$j
A library path is hardcoded to one of the following paths: /lib, /usr/lib. It
should be replaced by something like /%{_lib} or %{_libdir}.

Should be fixed.

valgrind.spec:368: W: macro-in-%changelog %{_prefix}
Macros are expanded in %changelog too, which can in unfortunate cases lead to
the package not building at all, or other subtle unexpected conditions that
affect the build.  Even when that doesn't happen, the expansion results in
possibly "rewriting history" on subsequent package revisions and generally odd
entries eg. in source rpms, which is rarely wanted.  Avoid use of macros in
%changelog altogether, or use two '%'s to escape them, like '%%foo'.

valgrind.spec:461: W: macro-in-%changelog %rip)
Macros are expanded in %changelog too, which can in unfortunate cases lead to
the package not building at all, or other subtle unexpected conditions that
affect the build.  Even when that doesn't happen, the expansion results in
possibly "rewriting history" on subsequent package revisions and generally odd
entries eg. in source rpms, which is rarely wanted.  Avoid use of macros in
%changelog altogether, or use two '%'s to escape them, like '%%foo'.

These are easily fixed.

valgrind.src: W: spelling-error %description -l en_US malloc -> mallow
The value of this tag appears to be misspelled. Please double-check.

Ignore.

valgrind.x86_64: W: incoherent-version-in-changelog 3.7.0-2 ['1:3.7.0-2.fc18', '1:3.7.0-2']
The latest entry in %changelog contains a version identifier that is not
coherent with the epoch:version-release tuple of the package.

Fix.

valgrind.x86_64: W: obsolete-not-provided valgrind-callgrind
If a package is obsoleted by a compatible replacement, the obsoleted package
should also be provided in order to not cause unnecessary dependency breakage.
If the obsoleting package is not a compatible replacement for the old one,
leave out the Provides.

Fix or remove, see above.

Lots of unstripped binary or object warnings, and some statically linked binaries, as well as shared lib without dep info. I'm assuming these should be ignored, this being valgrind, but you should check them out to be sure.

valgrind.x86_64: E: incorrect-fsf-address /usr/share/doc/valgrind-3.7.0/COPYING
valgrind-devel.x86_64: E: incorrect-fsf-address /usr/include/valgrind/vki/vki-s390x-linux.h
valgrind-devel.x86_64: E: incorrect-fsf-address /usr/include/valgrind/pub_tool_libcsetjmp.h
valgrind-devel.x86_64: E: incorrect-fsf-address /usr/include/valgrind/pub_tool_gdbserver.h
The Free Software Foundation address in this file seems to be outdated or
misspelled.  Ask upstream to update the address, or if this is a license file,
possibly the entire file with a new copy available from the FSF.

Fix if possible, or bug upstream.

Lots of dangling relative symlink errors that should probably be fixed.

valgrind.x86_64: W: no-manual-page-for-binary vgdb
Each executable in standard binary directories should have a man page.

valgrind.x86_64: W: no-manual-page-for-binary cg_diff
Each executable in standard binary directories should have a man page.

valgrind.x86_64: W: no-manual-page-for-binary valgrind-listener
Each executable in standard binary directories should have a man page.

valgrind.x86_64: W: no-manual-page-for-binary cg_merge
Each executable in standard binary directories should have a man page.

valgrind-devel.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

valgrind-openmpi.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

Fix if possible.

- package meets naming guidelines
- package meets packaging guidelines
- license ( GPLv2 ) OK, text in %doc, matches source
- spec file legible, in am. english
- source matches upstream
- package compiles on devel (x86_64)
- no missing BR
- no unnecessary BR
- no locales
- not relocatable
- owns all directories that it creates
- no duplicate files
- permissions ok
- %clean ok
- macro use consistent
- code, not content
- no need for -docs
- nothing in %doc affects runtime
- no need for .desktop file
- devel package ok
- no .la files
- post/postun ldconfig ok
- devel requires base package n-v-r 

So it looks like there isn't much to do, let me know if you want me to commit any of it?

Comment 6 Gwyn Ciesla 2012-04-26 13:39:17 UTC
Ping?

Comment 7 Gwyn Ciesla 2013-02-07 19:38:49 UTC
Fixed most relevant issues, committed to rawhide and built, APPROVED, closing.

Comment 8 Fedora Update System 2013-02-28 15:28:19 UTC
valgrind-3.8.1-9.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/valgrind-3.8.1-9.fc18

Comment 9 Fedora Update System 2013-03-11 01:19:51 UTC
valgrind-3.8.1-9.fc18 has been pushed to the Fedora 18 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.