Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 178709 - Review Request: freehdl : GPLed free VHDL
Summary: Review Request: freehdl : GPLed free VHDL
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ignacio Vazquez-Abrams
QA Contact: David Lawrence
URL:
Whiteboard:
Depends On:
Blocks: FE-ACCEPT 178685
TreeView+ depends on / blocked
 
Reported: 2006-01-23 17:51 UTC by Eric Tanguy
Modified: 2007-11-30 22:11 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-02-15 07:21:51 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Eric Tanguy 2006-01-23 17:51:08 UTC
Spec Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl.spec
SRPM Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl-0.0.1-1.src.rpm
Description: A project to develop a free, open source, GPL'ed VHDL simulator for Linux.

rpmlint ../RPMS/i386/freehdl-0.0.1-1.i386.rpm
E: freehdl invalid-dependency /usr/local/bin/perl
E: freehdl info-files-without-install-info-postin /usr/share/info/fire.info.gz
E: freehdl info-files-without-install-info-postun /usr/share/info/fire.info.gz
E: freehdl wrong-script-interpreter /usr/bin/gvhdl "/usr/local/bin/perl"

rpmlint ../RPMS/i386/freehdl-devel-0.0.1-1.i386.rpm
W: freehdl-devel no-documentation
W: freehdl-devel non-executable-in-bin /usr/bin/freehdl-config 0644
E: freehdl-devel non-executable-script /usr/bin/freehdl-config 0644
W: freehdl-devel dangling-relative-symlink /usr/lib/freehdl/libieee.so libieee.so.0.0.0

Comment 1 Mike McGrath 2006-01-23 19:00:55 UTC
-freehdl-config should be set executable
-See: http://fedoraproject.org/wiki/ScriptletSnippets under Texinfo for
information about getting rid of the "info-files-without-install-info" errors


Comment 2 Eric Tanguy 2006-01-23 19:42:29 UTC
I updated the files without changing the release number : 

rpmlint ../RPMS/i386/freehdl-0.0.1-1.i386.rpm
E: freehdl invalid-dependency /usr/local/bin/perl
E: freehdl wrong-script-interpreter /usr/bin/gvhdl "/usr/local/bin/perl"

I need to change /usr/local/bin/perl to /usr/bin/perl with sed but i don't know
how to do this. Help needed. Please.

 rpmlint ../RPMS/i386/freehdl-devel-0.0.1-1.i386.rpm
W: freehdl-devel no-documentation
W: freehdl-devel dangling-relative-symlink /usr/lib/freehdl/libieee.so
libieee.so.0.0.0

Comment 3 Tom "spot" Callaway 2006-01-23 22:35:07 UTC
If you want to do it in %install, this should work after the files have been
installed:

sed -i "s|/usr/local/bin/perl|%{__perl}|" $RPM_BUILD_ROOT%{_bindir}/gvhdl

Comment 4 Mike McGrath 2006-01-23 23:38:14 UTC
Actually I don't think this is a problem.  On my system at least, perl gets
detected properly in /usr/bin/perl.  My gvhdl reflects this correctly.  Do you
happen to have an installation of perl in /usr/local/bin/perl?

Comment 5 Eric Tanguy 2006-01-24 05:32:42 UTC
You are right. I had a symlink /usr/local/bin/perl pointing /usr/bin/perl. I
delete it and now i don't have this error.
So this package needs a formal review. Thanks


Comment 6 Eric Tanguy 2006-01-24 18:46:34 UTC
Ooops I made a mistake because this kind of packages don't have to be split in
package and package-devel.
So i updated the files : 
Spec Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl.spec
SRPM Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl-0.0.1-1.src.rpm
But i have a lot of problems with rpmbuild : 

rpmlint ../RPMS/i386/freehdl-0.0.1-1.i386.rpm
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/bin/freehdl-v2cc.debug
E: freehdl statically-linked-binary /usr/lib/debug/usr/bin/freehdl-v2cc.debug
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/lib/libfreehdl-std.so.
0.0.0.debug
W: freehdl no-soname /usr/lib/debug/usr/lib/libfreehdl-std.so.0.0.0.debug
E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/libf
reehdl-std.so.0.0.0.debug
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/lib/libfreehdl-fire.so
.0.0.0.debug
W: freehdl no-soname /usr/lib/debug/usr/lib/libfreehdl-fire.so.0.0.0.debug
E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/libf
reehdl-fire.so.0.0.0.debug
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/lib/libfreehdl-kernel.
so.0.0.0.debug
W: freehdl no-soname /usr/lib/debug/usr/lib/libfreehdl-kernel.so.0.0.0.debug
E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/libf
reehdl-kernel.so.0.0.0.debug
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/lib/libfreehdl-cdfggen
.so.0.0.0.debug
W: freehdl no-soname /usr/lib/debug/usr/lib/libfreehdl-cdfggen.so.0.0.0.debug
E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/libf
reehdl-cdfggen.so.0.0.0.debug
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/lib/freehdl/libieee.so
.0.0.0.debug
E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/free
hdl/libieee.so.0.0.0.debug
W: freehdl unstripped-binary-or-object /usr/lib/debug/usr/lib/libfreehdl-vaul.so
.0.0.0.debug
W: freehdl no-soname /usr/lib/debug/usr/lib/libfreehdl-vaul.so.0.0.0.debug
E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/libf
reehdl-vaul.so.0.0.0.debug

My main problem is below with unstripped-binary-or-object
I think the lines above are not important in this case.


W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-cdfggen.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/kernel.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/FlexLexer.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-vaul.a
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-chunk.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-ref.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-lexer.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-creator-bas e.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-parser.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-mempool.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/cdfggen-chunk.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/tree-supp.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-kernel.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-list.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-fire.a
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-std.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-util.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/std.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-types.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul.h
W: freehdl devel-file-in-non-devel-package /usr/lib/freehdl/libieee.a
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire-types.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire-chunk.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-kernel.a
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-vaul.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-dfile.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-dunit.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-pool.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-dynarray.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-fire.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-printer.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-errors.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-std.a
W: freehdl devel-file-in-non-devel-package /usr/bin/freehdl-config
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-cdfggen.a
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire.h

Comment 7 Dawid Gajownik 2006-01-24 19:22:18 UTC
(In reply to comment #6)
> W: freehdl no-soname /usr/lib/debug/usr/lib/libfreehdl-vaul.so.0.0.0.debug
> E: freehdl shared-lib-without-dependency-information /usr/lib/debug/usr/lib/libf
> reehdl-vaul.so.0.0.0.debug
> 
> My main problem is below with unstripped-binary-or-object
> I think the lines above are not important in this case.

You should not use â%{_libdir}/*â in %files section, because final package will
contain files from debug subpackage, which is just plain wrong.

Comment 8 Dawid Gajownik 2006-01-24 19:45:45 UTC
%{_libdir}/freehdl/
%{_libdir}/libfreehdl*

should resolve your problem.

BTW is there any reason why don't you use `--disable-dependency-tracking
--disable-static' flags? This will speed up build process and remove static
libraries.

Comment 9 Eric Tanguy 2006-01-24 21:10:13 UTC
I'm sorry but i'm quite new in packaging. This is the first time i package such
a soft and i know nothing about `--disable-dependency-tracking --disable-static'.
What is it ? How you use it ? What are the advantages and the disadvantages of
using or not using these flags ?
Thanks

Comment 10 Rex Dieter 2006-01-24 21:15:15 UTC
Eric, As Dawid said, 
--disable-dependancy-tracking speeds one-time builds
--disable-static omits static libs

Add these to %configure, like
%configure \
  --disable-dependancy-tracking \
  --disable-static


Comment 11 Eric Tanguy 2006-01-24 21:41:30 UTC
Thanks all.
New version : 
Spec Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl.spec
SRPM Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl-0.0.1-1.src.rpm

 rpmlint ../RPMS/i386/freehdl-0.0.1-1.i386.rpm
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-cdfggen.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/kernel.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/FlexLexer.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-chunk.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-ref.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-lexer.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-creator-base.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-parser.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-mempool.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/cdfggen-chunk.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/tree-supp.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-kernel.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-list.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-dynarray.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-std.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-util.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/std.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-types.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire-types.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire-chunk.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-vaul.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-dfile.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-dunit.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-pool.h
W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-fire.so
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-printer.h
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/vaul-errors.h
W: freehdl devel-file-in-non-devel-package /usr/bin/freehdl-config
W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire.h

I think it's not relevant with this package.

The new version works fine with the new version of qucs which now support also
digital simulation!!


Comment 12 Eric Tanguy 2006-01-25 07:27:38 UTC
May someone make a review of this package, please? This dependency is blocking
qucs update.



Comment 13 Ralf Corsepius 2006-01-26 06:40:32 UTC
(In reply to comment #11)
> Thanks all.
> New version : 
> Spec Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl.spec
> SRPM Name or Url: http://perso.wanadoo.fr/eric.tanguy/freehdl-0.0.1-1.src.rpm
> 
>  rpmlint ../RPMS/i386/freehdl-0.0.1-1.i386.rpm
> W: freehdl devel-file-in-non-devel-package /usr/lib/libfreehdl-cdfggen.so
...
> W: freehdl devel-file-in-non-devel-package /usr/include/freehdl/fire.h
> 
> I think it's not relevant with this package.
What makes you think so? I disagree on this.
If these files are host development files (very likely), then they should go to
a *-devel package, if these files are target development files they are
miss-places. I'd suggest you to implement a *-devel package.

Besides this, there are further minor issues:
* freehdl-config --cxxflags returns -I/usr/include
* freehdl-config --ldflags returns -L/usr/lib
* Some of the doc files aren't utf-8 nor asci encoded (German umlauts, probably
iso8859-1 or iso8859-15 encoded).

Comment 14 Eric Tanguy 2006-01-26 07:29:17 UTC
(In reply to comment #13)
...
> > I think it's not relevant with this package.
> What makes you think so? I disagree on this.
> If these files are host development files (very likely), then they should go to
> a *-devel package, if these files are target development files they are
> miss-places. I'd suggest you to implement a *-devel package.

I don't know what to do about it! at the beginning i have implemented a devel
package but contacting upstream and comparing with ghdl
(https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172547) leads me to make
only one package as for a compliler. All these files are needed by freehdl to be
compiled with gcc. I'm not a specialist with this so i would like to have more
opinions.

> Besides this, there are further minor issues:
> * freehdl-config --cxxflags returns -I/usr/include
> * freehdl-config --ldflags returns -L/usr/lib

I'm not sure to see where the problem is. the returns seems fine for me. no ?

> * Some of the doc files aren't utf-8 nor asci encoded (German umlauts, probably
> iso8859-1 or iso8859-15 encoded).

You are right. How to solve this ?


Comment 15 Ralf Corsepius 2006-01-26 08:01:48 UTC
(In reply to comment #14)
> (In reply to comment #13)
> ...
> > > I think it's not relevant with this package.
> > What makes you think so? I disagree on this.
> > If these files are host development files (very likely), then they should go to
> > a *-devel package, if these files are target development files they are
> > miss-places. I'd suggest you to implement a *-devel package.
> 
> I don't know what to do about it! at the beginning i have implemented a devel
> package but contacting upstream and comparing with ghdl
> (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172547) leads me to make
> only one package as for a compliler. All these files are needed by freehdl to be
> compiled with gcc. I'm not a specialist with this so i would like to have more
> opinions.
I don't know about ghdl, and can't comment on it. May-be it's carelessly
packaged - I don't know.

However, that's why I asked if these files are host (linux) or target (vhdl)
files. If these are target files, they must be shipped as part of the
application package, but must be moved out of the standard include/library paths
.
If these are host files and specify the API to the libraries inside of the
library package, then these files belong into a devel package.

If the applications (compiler) require the headers and/or libraries, then it
proably would be best to split the package into 3 subpackages, say apps, devel
and libs.

Unfortunately, I am not familiar with this package's details and also could not
find any example on how to use it. Do you have a pointer to an example? This
would help clarifying this point.

> > Besides this, there are further minor issues:
> > * freehdl-config --cxxflags returns -I/usr/include
> > * freehdl-config --ldflags returns -L/usr/lib
> 
> I'm not sure to see where the problem is. the returns seems fine for me. no ?
No, /usr/lib and /usr/include are on the system include/library paths in GCC.
Therefore, explicitly passing them to the compiler always is a bug because it
interferes with the system include/library paths (cf. -isystem in gcc.info rsp.
man gcc). Should a package require them, its design is broken.

> > * Some of the doc files aren't utf-8 nor asci encoded (German umlauts, probably
> > iso8859-1 or iso8859-15 encoded).
> 
> You are right. How to solve this ?
Apply iconv ("iconv -f iso8859-1 -t utf-8") to the source files somewhere inside
of the spec (e.g. in %prep). Alternatively, you could do this outside of the
spec and apply a patch.


Comment 16 Eric Tanguy 2006-01-26 10:11:18 UTC
I contacted the upstream team to obtain some explanation : 
----------
the freehdl thingie does this:  Probably you understand better then...

  1. Translates a VHDL file into C++ file(s).
  2. Runs a C++ compiler (gcc) in order to compile the generated files.
     This is why the header files are required for the app!
  3. Runs a C++ compiler (gcc) in order to link the objects produced in
     step 2 to produce a binary.  In this step the libraries are used, so
     these are required for the app as well!
  4. Runs the binary produced in step 3.
----------
so i think all the files are required in only one package, no ?

(In reply to comment #15)
> No, /usr/lib and /usr/include are on the system include/library paths in GCC.
> Therefore, explicitly passing them to the compiler always is a bug because it
> interferes with the system include/library paths (cf. -isystem in gcc.info rsp.
> man gcc). Should a package require them, its design is broken.

The flags etc. necessary if someone would like to relocate the package (other
--prefix than /usr). So i think it's an upstream problem, no ?

(In reply to comment #15)
> Apply iconv ("iconv -f iso8859-1 -t utf-8") to the source files somewhere inside
> of the spec (e.g. in %prep). Alternatively, you could do this outside of the
> spec and apply a patch.
Please let me know which files have this problem then i could solve it and fill
a bug upstream

Comment 17 Eric Tanguy 2006-01-28 18:57:55 UTC
May someone review this package, please? This dependency is blocking
qucs update.

Comment 18 Ignacio Vazquez-Abrams 2006-02-11 09:08:11 UTC
- Missing Requires(post): /sbin/ldconfig

The rest looks good to me. Fix that up then consider it APPROVED.


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