www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - New/final RPM package spec

reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
I made a final RPM package, for DMD 0.121
See: http://www.algonet.se/~afb/d/dmd.spec

I took out all the patches and workarounds,
and reset the release version back to "1".

So now it's back to the default behaviour:
- Phobos does not build with warnings enabled
- Concurrent make ("make -j2") does not work,
   Makefile needs to use "$(MAKE)" - not "make"
- Phobos/recls does not honor the $CXXFLAGS, and
   thus build for the wrong arch and optimization
   (the zlib library builds OK, as it uses CFLAGS)
- printf and print are back into object.d/Object

Changes to the RPM packaging / specfile itself:
- fixed the license field on dmd vs. phobos package
- build for i586 (Pentium) now, as that is required
- "phobos-debug" was renamed as "phobos-contracts"
- "dmd-doc" now holds both html/d and samples/d dirs
- added all the "internal" files back into phobos
- etc/c/zlib.d is back, as the *only* file in "etc",
   I had previously moved it to std.c.zlib instead.
- now defaults to using the bundled "libphobos.a",
   instead of recompiling the library using DMD
- it now builds a SRPM, that is not distributable
   (i.e. took out the NoSource file for .nosrc.rpm)

Not distributable:
448K    dmd-0.121-1.i586.rpm
100K    dmd-debuginfo-0.121-1.i586.rpm
372K    dmd-doc-0.121-1.i586.rpm

zlib/png License:
516K    phobos-0.121-1.i586.rpm
280K    phobos-contracts-0.121-1.i586.rpm

(dependencies: "dmd" requires phobos package,
  and "phobos-contracts" requires phobos too.
  The package phobos-contracts has the library
  "libphobos-contracts.a", i.e. without -release)

Source package:
3.1M    dmd-0.121-1.src.rpm :
     8.0K    SPECS/dmd.spec
     3.1M    SOURCES/dmd.121.zip

I don't think I will do any more packages for DMD,
but focus on the GDC compiler instead. It should be
simple enough to change the top version in dmd.spec,
and the broken Makefiles are only a problem if you
rebuild the libraries - which it defaults not to do ?
(the Gentoo ebuild should be equally simple to upgrade,
see http://bugs.gentoo.org/show_bug.cgi?id=46806)

Improving the Windows and Linux installation experience
is now up to Walter, using the packaging sources provided.

I'll make GDC packages for installing on Mac OS X, instead...
They'll be posted on http://sourceforge.net/projects/gdcmac/


I posted specs for recls-1.6.1-1 and stlsoft 1.8.3-0.6beta earlier
(if you want to update the recls 1.2.1, that ships with DMD 0.121)
Apr 17 2005
parent reply Dejan Lekic <leka entropy.tmok.com> writes:
Anders, an excellent work!
However, have you thought of adding wget ftp://... in your .spec file? It
would download proper DMD archive and continue building RPM .

Kind regards


Dejan Lekic
Apr 18 2005
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Dejan Lekic wrote:

 However, have you thought of adding wget ftp://... in your .spec file?
 It would download proper DMD archive and continue building RPM .

Suppose I *could*, but that would be unorthodox ? :-) RPMS are supposed to be self-contained in a .src.rpm, including all of the necessary "distfiles" required... When you get binary-only packages, like DMD or Java, and it is no longer possible to distribute the sources, then one has to manually go download them from the Vendor. The problem is that even if you do add a scriptlet to download the %{SOURCE0}, it will still fail to start building since it was missing a source file... However, the simplest approach here is to install "spectool" (RPMS available at http://dag.wieers.com/packages/spectool/) Then you can just issue this command, to download the files: spectool --get-files dmd.spec Myself, and several others too, have requested this functionality be included in RPM itself - to be able to download distfiles itself. But it hasn't been all that popular with the grandfather of RPM. --anders PS. Naturally, "spectool" is just a little Perl script.
Apr 18 2005