Bug 178709 - Review Request: freehdl : GPLed free VHDL
Review Request: freehdl : GPLed free VHDL
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Ignacio Vazquez-Abrams
David Lawrence
:
Depends On:
Blocks: FE-ACCEPT 178685
  Show dependency treegraph
 
Reported: 2006-01-23 12:51 EST by Eric Tanguy
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-02-15 02:21:51 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Eric Tanguy 2006-01-23 12:51:08 EST
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 14:00:55 EST
-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 14:42:29 EST
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 17:35:07 EST
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 18:38:14 EST
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 00:32:42 EST
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 13:46:34 EST
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 14:22:18 EST
(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 14:45:45 EST
%{_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 16:10:13 EST
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 16:15:15 EST
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 16:41:30 EST
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 02:27:38 EST
May someone make a review of this package, please? This dependency is blocking
qucs update.

Comment 13 Ralf Corsepius 2006-01-26 01:40:32 EST
(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 02:29:17 EST
(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 03:01:48 EST
(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 05:11:18 EST
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 13:57:55 EST
May someone review this package, please? This dependency is blocking
qucs update.
Comment 18 Ignacio Vazquez-Abrams 2006-02-11 04:08:11 EST
- 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.