[Bug 874980] Review Request: chicken - A compiler for the Scheme programming language

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Product: Fedora
https://bugzilla.redhat.com/show_bug.cgi?id=874980

--- Comment #12 from Alec Leamas <leamas.alec@xxxxxxxxx> ---
Hi Ngo! Nice to hear from you (back from New Year celebrations?)

We have settled the first issue, the links.

As for the LICENSE, the fact that it's mentioned in the LICENSE file isn't
enough to get it included; e. g., licenses for test files which are not part of
package should not be included the in License: tag. Furthermore, if multiple
licenses are indeed used as you propose you must somehow provide a license
break-down. [1]

The static archive and package is removed. Fine with me, I assume you have
checked that it wasn't essential for using the thing.

Although the changelog states that you have coped with %{optflags} I cannot see
that it's used. On the contrary, an example compilaton in the log is like

gcc  -L. -shared -Wl,-R"/usr/lib" srfi-13.import.o -o srfi-13.import.so \
  -lchicken \
  -lm -ldl

Here you have at least two problems: the %{optflags} are missing, and here is
also the reason for the bad rpath (see below).

As a starter, you could try adding export CFLAGS="%{optflags}" before the
'make'. It might be enough to include %{optflags}. Use "rpm --eval %optflags"
to see what optflags really is, and compare with the build logs to see that
they are in effect.

The rpath is trickier, you will need to patch the build script to get rid of
that. Run rpmlint yourself, and look for lines like "chicken.i686: E:
binary-or-shlib-defines-rpath /usr/bin/csc ['/usr/lib']". You must get rid of
those, period.

The -devel package solves the libchicken.so and /usr/include files nicely.

The -doc package is still arched i. e., it's missing Arch: noarch tag. Just add
that to the subpackage (to avoid generating different docs for
i386/x86_64/arm).

Please change %doc %{_mandir}/man1/cs?.1.gz to %doc %{_mandir}/man1/cs?.1.* -
rumor is that gz some day will be replaced w something else.

If you make something like rpm -q --provides -p <your binary rpm> you will see
(excerpt)

chicken:
    chicken
    chicken(x86-32)
    chicken.import.so
    csi.import.so
    data-structures.import.so
    extras.import.so
    files.import.so
    foreign.import.so
    irregex.import.so
    libchicken.so.6


The problem here is that almost all of these libraries are private and not
meant to be used by others. But since they are in the Provides: list, other
packages might (and thus eventually will)  link to them causing all sorts of
troubles e. g. when upgrading. To avoid this you must filter these Provides: as
described in links in comment #6.

This is actually a mess. Perhaps example in [2] could be useful, don't know.

Summary:
 - Fix the rpath
 - Filter the Provides:
 - Either provide a license break-down if needed, or use a single 
   license if this is the outcome of your break-down work.
 - Fix  noarch docs, 
 - Fix.* manpage in %files, 

Don't hesitate to ask! I'm here to help you :)

[1]
http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios
[2] http://leamas.fedorapeople.org/spotify/0.8.8/spotify-client.spec

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=4yEOl42ZaH&a=cc_unsubscribe
_______________________________________________
package-review mailing list
package-review@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/package-review



[Index of Archives]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]