Bug 492110 (mingw32-libsigc++20)

Summary: Review Request: mingw32-libsigc++20 - MinGW Windows port of the typesafe signal framework for C++
Product: [Fedora] Fedora Reporter: Thomas Sailer <fedora>
Component: Package ReviewAssignee: Mattias Ellert <mattias.ellert>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: fedora-mingw, fedora-package-review, notting, rjones
Target Milestone: ---Flags: mattias.ellert: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.2.2-6.fc10 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-04-02 17:15:43 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:
Bug Depends On: 454410    
Bug Blocks: 492113, 492122    

Description Thomas Sailer 2009-03-25 12:57:54 UTC
Spec URL: http://sailer.fedorapeople.org/mingw32-libsigc++20.spec
SRPM URL: http://sailer.fedorapeople.org/mingw32-libsigc++20-2.2.2-5.fc11.src.rpm
Description:
MinGW Windows port of the typesafe signal framework for C++

This is just Richard M. W. Jones unmodified Spec file.

Approved MinGW packaging guidelines are here:
http://fedoraproject.org/wiki/Packaging/MinGW

Comment 1 Mattias Ellert 2009-03-29 17:38:11 UTC
Fedora review mingw32-libsigc++20-2.2.2-5.fc11.src.rpm (2009-03-29)

rpmlint output:

mingw32-libsigc++20.noarch: E: arch-independent-package-contains-binary-or-object /usr/i686-pc-mingw32/sys-root/mingw/lib/libsigc-2.0.dll.a
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/retype.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/trackable.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/bound_argument.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/bind_return.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/limit_reference.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/bind.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/sigc++.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/bind.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/lib/libsigc-2.0.dll.a
mingw32-libsigc++20.noarch: W: spurious-executable-perm /usr/i686-pc-mingw32/sys-root/mingw/lib/libsigc-2.0.dll.a
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/signal_base.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/retype_return.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/functors/ptr_fun.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/deduce_result_type.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/retype.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/lambda/operator.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/lib/sigc++-2.0/include/sigc++config.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/connection.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/compose.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/lambda/select.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/visit_each.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/slot.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/retype_return.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/bind_return.h
mingw32-libsigc++20.noarch: E: script-without-shebang /usr/i686-pc-mingw32/sys-root/mingw/lib/libsigc-2.0.la
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/functors/slot_base.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/functors/mem_fun.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/class_slot.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/functors/functor_trait.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/signal.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/method_slot.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/lambda/base.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/object.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/type_traits.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/reference_wrapper.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/functors/functors.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/hide.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/hide.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/sigc++-2.0.pc
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/exception_catch.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/lambda/group.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/object_slot.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/lambda/lambda.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/adaptors/adaptors.h
mingw32-libsigc++20.noarch: W: devel-file-in-non-devel-package /usr/i686-pc-mingw32/sys-root/mingw/include/sigc++-2.0/sigc++/functors/slot.h
mingw32-libsigc++20.noarch: W: non-standard-dir-in-usr i686-pc-mingw32
2 packages and 1 specfiles checked; 2 errors, 46 warnings.

Legend:
  * OK
  ! Needs attention

* rpmlint output - I guess rpmlint was not updated to handle mingw
  packages very well. The devel-file-in-non-devel-package warnings are
  of course totally bogus in this case. The same is true for
  arch-independent-package-contains-binary-or-object and
  non-standard-dir-in-usr - someone might want to file a bug to
  rpmlint, so that it stops complaining abou these. The only
  warnings/errors that make sense are these two:

mingw32-libsigc++20.noarch: W: spurious-executable-perm /usr/i686-pc-mingw32/sys-root/mingw/lib/libsigc-2.0.dll.a
mingw32-libsigc++20.noarch: E: script-without-shebang /usr/i686-pc-mingw32/sys-root/mingw/lib/libsigc-2.0.la

  These could be fixed by removing the executable permissions on these
  two files - unless that breaks anything. Windows has a tendency to
  put executable permissions on everything.

* Package is named according to Fedora mingw packaging guidelines

* Spec file is named as the package

* Package follows the Fedora mingw packaging guidelines

* The stated license (LGPLv2+) is a Fedora approved license

* The stated license is the same as the one for the corresponding
  Fedora package

* The package contains the license file (COPYING)

! The specfile is written in legible English, but...
  ... the WTF comment is a bit inapproriate and should preferably be
  removed, the $libdir/$packagename is a standard place for
  architecture dependent headers, so its presence is not surprising

* Sources matches upstream

962493fd6b26425f21504c3416c4efa1  libsigc++-2.2.2.tar.bz2
962493fd6b26425f21504c3416c4efa1  SRPM/libsigc++-2.2.2.tar.bz2

  It is not the latest version (which is 2.2.3), but it is the same as
  the version currently in Fedora, which the mingw packaging
  guidelines says it should be.

* Package builds in mock (Fedora 10)

* BuildRequires look sane

* Owns the directories it creates

* No duplicate files

* %files has %defattr

! two files have questionable permissions and give rpmlint warnings
  (see above). If possible these two should be fixed by removing
  executable permissions.

* %clean clears %buildroot

* Specfile uses macros consistently

* Package does not own other's directories

* %install clears %buildroot

* Installed filenames are valid UTF8

Comment 2 Thomas Sailer 2009-03-29 20:41:03 UTC
Thank you for taking the review!

I have updated the spec and srpm files:
http://sailer.fedorapeople.org/mingw32-libsigc++20-2.2.2-6.fc11.src.rpm
http://sailer.fedorapeople.org/mingw32-libsigc++20.spec

> The specfile is written in legible English, but...
> ... the WTF comment is a bit inapproriate and should preferably be
> removed, the $libdir/$packagename is a standard place for
> architecture dependent headers, so its presence is not surprising

You are completely right, I didn't understand this comment either. I've deleted it.

> two files have questionable permissions and give rpmlint warnings
> (see above). If possible these two should be fixed by removing
> executable permissions.

Ok, I've removed the exec permissions. Now I would really like to know why my rpmlint hasn't found this...

Comment 3 Mattias Ellert 2009-03-30 08:17:01 UTC
Package approved.

Comment 4 Thomas Sailer 2009-03-30 08:31:39 UTC
New Package CVS Request
=======================
Package Name: mingw32-libsigc++20
Short Description: MinGW Windows port of the typesafe signal framework for C++
Owners: sailer rjones
Branches: F-10
InitialCC:

Comment 5 Richard W.M. Jones 2009-03-30 11:04:02 UTC
WRT comment 1, see also:
http://fedoraproject.org/wiki/MinGW/Rpmlint

Comment 6 Mattias Ellert 2009-03-30 11:59:57 UTC
As I said the only two possibly relevant comment were the two warnings about bad permissions. I said in my review that this should be fixed if it doesn't break anything. My review comments were stated in such a way that if you could give a good argument for it, I would be happy to leave the executable permissions there if they are needed.

The page you quote in comment 5 says in the section about spurious-executable-perm that things might break if the .a file does not have executable permissions, and that the executable permissions are the default output of the tools and that you want to keep it that way. That is fine with me.

The page also gives a comment about the script-without-shebang for the .la files. The text under this heading seems to be off topic. The text says that the .la files should not be removed - which is already stated clearly in the main MinGW Packaging Guidelines page. And totally fails to address the reason for the rpmlint warning, which is that the .la file has executable permission. If also the .la file needs to have executable permissions, it would be better to repeat the comment from the section about spurious-executable-perm in this section, than to state the redundant and irrelevant information it currently contains.

Comment 7 Richard W.M. Jones 2009-03-30 12:12:51 UTC
No problem, I just added like "FYI" :-)

Comment 8 Richard W.M. Jones 2009-03-30 12:13:14 UTC
s/like/link/ ...

Comment 9 Mattias Ellert 2009-03-30 12:34:52 UTC
There doesn't seem to be a link from the http://fedoraproject.org/wiki/Packaging/MinGW page to the http://fedoraproject.org/wiki/MinGW/Rpmlint page. Which is probably why I didn't see it.

Comment 10 Kevin Fenzi 2009-03-30 21:31:04 UTC
cvs done.

Comment 11 Fedora Update System 2009-03-30 21:59:48 UTC
mingw32-libsigc++20-2.2.2-6.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/mingw32-libsigc++20-2.2.2-6.fc10

Comment 12 Fedora Update System 2009-04-02 17:15:38 UTC
mingw32-libsigc++20-2.2.2-6.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.