Bug 172547 - Review Request: ghdl VHDL frontend for gcc
Review Request: ghdl VHDL frontend for gcc
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Paul Howarth
David Lawrence
http://www.baycom.org/~tom/fedora/
:
Depends On:
Blocks: FE-ACCEPT
  Show dependency treegraph
 
Reported: 2005-11-06 20:19 EST by Thomas Sailer
Modified: 2010-06-29 20:57 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-12-05 17:08:39 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
kevin: fedora‑cvs+


Attachments (Terms of Use)
Patch to create info dir entry in ghdl.info (312 bytes, patch)
2005-11-17 10:23 EST, Paul Howarth
no flags Details | Diff
Revised spec file (5.69 KB, text/plain)
2005-11-17 10:39 EST, Paul Howarth
no flags Details

  None (edit)
Description Thomas Sailer 2005-11-06 20:19:01 EST
http://www.baycom.org/~tom/fedora/ghdl.spec
http://www.baycom.org/~tom/fedora/ghdl-0.20-3.src.rpm
http://www.baycom.org/~tom/fedora/gtkwave.spec
http://www.baycom.org/~tom/fedora/gtkwave-1.3.76-1.src.rpm

Description:
ghdl is a VHDL frontend for gcc. VHDL (VHSIC Hardware Description Language) is used to describe (digital) electronic systems. ghdl turns such descriptions into executables that, when run simulate the digital system. Waveforms of all signals can be logged to a file. gtkwave then allows these signals to be displayed.
Comment 1 Paul Howarth 2005-11-07 03:54:06 EST
Please use separate bugzilla entries for each package.

I have a spec for gtkwave that you might want to look at, possibly taking some
things from that:

http://www.city-fan.org/~paul/extras/gtkwave/gtkwave.spec
Comment 2 Thomas Sailer 2005-11-07 04:50:49 EST
(In reply to comment #1) 
 
Are you planning to request inclusion of gtkwave to fedora extras? Your spec 
file looks much more elaborate than mine, so I'm happy if you submit your 
version of gtkwave. 
 
However, I'd like the ghdl patch to be applied, it adds support for ghdl's ghw 
wavefile format. While ghdl also supports VCD, VCD only allows a subset of the 
VHDL data types. 
 
Comment 3 Paul Howarth 2005-11-07 05:38:23 EST
(In reply to comment #2)
> (In reply to comment #1) 
>  
> Are you planning to request inclusion of gtkwave to fedora extras? Your spec 
> file looks much more elaborate than mine, so I'm happy if you submit your 
> version of gtkwave.
>  
> However, I'd like the ghdl patch to be applied, it adds support for ghdl's ghw 
> wavefile format. While ghdl also supports VCD, VCD only allows a subset of the 
> VHDL data types.

OK, I'll do that; change this bugzilla entry to just include ghdl, I'll post a
separate request for gtkwave and we can review each other's packages.

Regarding the ghdl patch, have you passed it on to Tony (upstream) for inclusion
in gtkwave? He's getting though around 2 releases a week at the moment, so there
could be issues maintaining a patch like this if it's unsupported upstream.
Comment 4 Paul Howarth 2005-11-07 10:18:05 EST
I've submitted the gtkwave package for review as Bug 172579.
Comment 5 Paul Howarth 2005-11-10 09:03:13 EST
This package is implemented as an additional language frontend for gcc, which
introduces some issues I'd like to raise with the other readers of
fedora-extras-list. In this particular case, the package includes
files/directories as follows:

%{_bindir}/i686-pc-linux-gnu-gcc
%{_bindir}/i686-pc-linux-gnu-gcc-4.0.2
%{_libdir}/gcc/i686-pc-linux-gnu/4.0.2/
%{_libexecdir}/gcc/i686-pc-linux-gnu/4.0.2/

These could potentially conflict with any other language frontend based on the
same gcc version, which would not be good. I don't think this arrangement
currently clashes with anything in Core or Extras, but the potential is there.

One workaround I could think of would be to include the name of the language or
package in the target designation, e.g. i686-pc-linux-ghdl instead of
i686-pc-linux-gnu), but that doesn't look "right" to me.

Any other suggestions?
Comment 6 Paul Howarth 2005-11-10 09:11:48 EST
Some minor issues whilst awaiting resolution of the bigger ones:

* Please use full URLs for the sources:
Source0: http://ghdl.free.fr/ghdl-%{version}.tar.bz2
Source1: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{gccver}/gcc-core-%{gccver}.tar.bz2

* Please use the standard Extras buildroot:
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

* The %description seems excessively long to me. How about this:
GHDL is a VHDL simulator, using the GCC technology. VHDL is a language
standardized by the IEEE, intended for developing electronic systems. GHDL
implements the VHDL language according to the IEEE 1076-1987 or the IEEE
1076-1993 standard. It compiles VHDL files and creates a binary that simulates
(or executes) your design. GHDL does not do synthesis: it cannot translate your
design into a netlist.

Since GHDL is a compiler (i.e., it generates object files), you can call
functions or procedures written in a foreign language, such as C, C++, or
Ada95.

* Please include the ghdl.info file in the files list, with appropriate
scriptlets to install it (see http://fedoraproject.org/wiki/ScriptletSnippets)



Comment 7 Thomas Sailer 2005-11-11 17:34:51 EST
(In reply to comment #5) 
 
I don't have a better idea. 
 
Probably the ideal would be to base it on the same gcc version as Fedora Core 
uses, but historically ghdl's requirements were off by one or two gcc 
releases, and porting ghdl to different gcc releases seems to be nontrivial. 
So I would like to keep ghdl's gcc core separate from that of Fedora Core. 
 
Comment 8 Thomas Sailer 2005-11-11 19:18:24 EST
(In reply to comment #6)  
> Some minor issues whilst awaiting resolution of the bigger ones:  
  
Your wishes should now be integrated in ghdl-0.21-0.21.src.rpm, thanks!  
Furthermore, I upgraded the ghdl version to SVN revision 21, to make it work  
on x86_64 natively too. Maybe other archs (like ia64) work now too, but I can  
only test i386 and x86_64.  
 
Note: to display ghw output files, you should use gtkwave 1.3.78, since it 
fixes a ghw related bug. 
 
http://www.baycom.org/~tom/fedora/ghdl-0.21-0.21.src.rpm 
 
Comment 9 Paul Howarth 2005-11-14 08:51:30 EST
(In reply to comment #8)
> Note: to display ghw output files, you should use gtkwave 1.3.78, since it 
> fixes a ghw related bug.

Bug 172579 is for a gtkwave 1.3.78 package, still awaiting review.
Comment 10 Paul Howarth 2005-11-17 10:23:41 EST
Created attachment 121191 [details]
Patch to create info dir entry in ghdl.info

Without this patch (or similar), install-info complains about a missing info
dir entry.
Comment 11 Paul Howarth 2005-11-17 10:39:19 EST
Created attachment 121192 [details]
Revised spec file

This attachment is a revised spec file that attempts to address the following
issues:

* pull in some arch-specific tweaks from the gcc package; there are plenty more
tweaks from that package that could be applied if you were sufficiently
knowledgeable about gcc internals and building it. I've no idea if the package
builds on anything other than i386 though because I don't have any other arch
boxes to try.

* remove files we don't want packaged for ghdl in %install, so that the
unpackaged file checks can be turned back on

* use fedora_ghdl as the machine vendor name to avoid namespace clashes with
other packages

* own directories properly so they get deleted on package removal

* add buildreq texinfo, needed to make info file

* don't include README, which is aimed at building ghdl rather than using it

* only run install-info if the info file is installed, which it might not be if
--excludedocs has been used when the package was installed

* filter out some optflags that cause builds on rawhide to fail

* some cosmetic tweaks to the spec file itself

I've built this OK in mock on FC4 (i386) and it runs OK. It also builds OK in
mock for rawhide.

The removal of unneeded files also gets rid of most of the rpmlint errors,
which is a nice bonus.
Comment 12 Thomas Sailer 2005-11-25 18:10:36 EST
Some more changes: 
 
* added some more removes of build but not packaged files to make the build 
succeed on x86_64 
 
* updated to svn 24, this fixes resolved boolean signals. 
 
Someone please sponsor me. 
 
http://www.baycom.org/~tom/fedora/ghdl.spec 
http://www.baycom.org/~tom/fedora/ghdl-0.21-0.24svn.1.src.rpm 
http://www.baycom.org/~tom/fedora/ghdl-0.21-0.24svn.1.i386.rpm 
http://www.baycom.org/~tom/fedora/ghdl-0.21-0.24svn.1.x86_64.rpm 
 
Comment 13 Paul Howarth 2005-11-28 06:10:18 EST
Review:

- package and spec file naming OK
- package meets guidelines
- license is GPL, matches spec, text included
- spec file written in English and is legible
- package builds OK in mock (rawhide i386)
- BR's OK
- all locale data inherited from gcc removed from buildroot, so no locale issues
- no libraries, subpackages, or pkgconfigs to worry about
- not relocatable
- no directory ownership or permissions issues
- no duplicate file problems
- %clean section present and correct
- macro usage is consistent
- code, not content
- no large docs
- docs don't affect runtime
- no libtool archives
- no desktop entry needed
- package appears to function correctly (tested on FC4 i386)
- scriptlets for info file seem sane

Notes:

* rpmlint output:

  W: ghdl devel-file-in-non-devel-package
/usr/lib/gcc/i386-fedora_ghdl-linux/4.0.2/libgcov.a
  W: ghdl devel-file-in-non-devel-package
/usr/lib/gcc/i386-fedora_ghdl-linux/4.0.2/libgcc.a
  W: ghdl devel-file-in-non-devel-package
/usr/lib/gcc/i386-fedora_ghdl-linux/4.0.2/libgcc_eh.a
  W: ghdl devel-file-in-non-devel-package
/usr/lib/gcc/i386-fedora_ghdl-linux/4.0.2/vhdl/lib/libgrt.a
  W: ghdl non-standard-dir-in-usr libexec

  This package is based on gcc, and these files are part of the compiler itself.
  The directory structure is the same as for the core gcc package itself, except
  that the vendor name has been changed to "fedora_ghdl" to avoid namespace clashes.

* source is a subversion checkout and hence can't be compared with upstream

Approved.

I'll sponsor you for membership of the cvsextras group.
Comment 14 Thomas Sailer 2010-06-28 20:45:31 EDT
Package Change Request
======================
Package Name: ghdl
New Branches: EL-5 EL-6
Owners: sailer
Comment 15 Kevin Fenzi 2010-06-29 20:57:17 EDT
CVS done (by process-cvs-requests.py).

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