Thread overview
New/final RPM package spec
Apr 18, 2005
Dejan Lekic
April 17, 2005
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
  http://www.algonet.se/~afb/d/phobos-121-warnings.txt
- 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/

--anders

PS.
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)
April 18, 2005
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

-- 
...........
Dejan Lekic
  http://dejan.lekic.org

April 18, 2005
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.