Thread overview
RPM for DMD
Dec 11, 2004
Georg Wrede
Dec 12, 2004
Georg Wrede
December 11, 2004
I've done a RPM package for the DMD compiler and libs:

http://www.algonet.se/~afb/d/dmd-0.109-2.nosrc.rpm

Since DMD is *not* redistributable (license does not
permit you to), you also need to get the original file:

ftp://ftp.digitalmars.com/dmd.109.zip (2.9M)


Put the zipfile in your SOURCES directory for RPM,
could be something like /usr/src/redhat/SOURCES,
and then run the following command to build it:

rpmbuild --rebuild dmd-0.109-2.nosrc.rpm
(you can add: "--with unittest" if you want to)

When that is completed you can use the binary RPMS,
located in something like /usr/src/redhat/RPMS/i686,
and install them as usual: (using "sudo" or similar)

rpm -Uvh dmd-0.109-2.i686.rpm phobos-0.109-2.i686.rpm


No further customization is required or needed.
(release "2" just patches the Phobos makefiles)

Share and Enjoy,
--anders


PS. I wish both Sun/Java and Digital Mars/DMD
    would make their compilers redistributable...


RPM CONTENTS (file size)
------------

dmd-0.109-2.i686.rpm: (512K)

/etc/dmd.conf
(config file, any old one is saved as .rpmsave)

/usr/bin/dmd
/usr/bin/dumpobj
/usr/bin/obj2asm
(also installs some documentation, and manpages)

phobos-0.109-2.i686.rpm: (448K, required)

/usr/include/dmd
/usr/lib/libphobos.a
(installs all the .d files and phobos.html doc)

dmd-doc-0.109-2.i686.rpm: (340K, optional)

(installs the "html" and "samples" documentation)
December 11, 2004
In article <cpf2q1$2e8d$1@digitaldaemon.com>, =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= says...
>
>I've done a RPM package for the DMD compiler and libs:
>
>http://www.algonet.se/~afb/d/dmd-0.109-2.nosrc.rpm
>
>Since DMD is *not* redistributable (license does not
>permit you to), you also need to get the original file:

Unless I'm a complete idiot, here's a misunderstanding;
either from Anders, or Walter. (I haven't researched
enough to take sides.)

Anyhow, one of the best things to happen to D is that
there would be an RPM (and a similar Suse) package.

I bet, if you ask Walter, he'd be more than glad to offer any assistance for such an endeavour!

(And whatever you have to ask about writing a shell script to install D both as a loser or as root, I'll help you.)


December 12, 2004
Georg Wrede wrote:

> Unless I'm a complete idiot, here's a misunderstanding;
> either from Anders, or Walter. (I haven't researched
> enough to take sides.)

When it comes to legalese, I tend to go by the writing...

dmd/license.txt:
> The Software is copyrighted and comes with a single user license,
> and may not be redistributed. If you wish to obtain a
> redistribution license, please contact Digital Mars.

It's "not a technical problem", since one now only has to
remove one line in my spec: "NoSource: 0" to make a src.rpm
(and then update the version in top line for: 110, 111, etc.)

If Walter wants to distribute the *.686.rpm files, go ahead...
(quite possibly one would also want to kill Windows files in
a source package for Linux, but that's for someone else to do)

The *front end* is dual-licensed under GNU GPL and Artistic, which
allows GDC to be redistributed under the GNU General Public License.
While that is great, it does not affect the Digital Mars compilers.

It would be even better if the D language specification and the
D standard runtime library (Phobos) could be decoupled from DMD.
Right now it's sort of blended together, making it harder for GDC.

Like requiring one phobos directory and one phobos library each ?

--anders

PS. This has got to be the most humble introduction I've read:

> The Software is not generally available software. It has not
> undergone testing and may contain errors. The Software was not
> designed to operate after December 31, 1999. It may be incomplete
> and it may not function properly.
December 12, 2004
In article <cpg45i$nn9$1@digitaldaemon.com>, =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= says...
>
>When it comes to legalese, I tend to go by the writing...
..
>If Walter wants to distribute the *.686.rpm files, go ahead... (quite possibly one would also want to kill Windows files in a source package for Linux, but that's for someone else to do)

What if we wrote a script that creates an RPM for D. Then each time there's a new version, Walter could just run the script.

Anyhow, this would be of help, and take some work off his back.

((BTW, I think phobos and dmd should not YET be split into two rpms, because we still might see changes in the compiler that break previous versions of phobos. But definitely, later this would be a great idea.))


December 12, 2004
Georg Wrede wrote:

> (And whatever you have to ask about writing a shell script
> to install D both as a loser or as root, I'll help you.)

Thomas has already written such a shell script for DMD 0.109:
http://dmd.kuehne.cn/

And I wrote a Makefile to compile/install GCC 3.4.3 / GDC 0.8:
http://www.algonet.se/~afb/d/Makefile

--anders

PS.
Use the Makefile something like: (works on Mac OS X and on Linux)
> make prep
> make gdc
> sudo make gdc-install
> make phobos
> sudo make phobos-install
> make clean
Takes forever to compile, so a binary package would be good too...

PPS.
I couldn't decide which GCC packages that I needed to compile all of
GDC, so I just went with the full. Broadband spoils you, I guess ?
December 12, 2004
Georg Wrede wrote:

> What if we wrote a script that creates an RPM for D. Then each
> time there's a new version, Walter could just run the script.

The .src.rpm *is* that script. You run it with rpmbuild --rebuild.

> ((BTW, I think phobos and dmd should not YET be split into two
> rpms, because we still might see changes in the compiler that
> break previous versions of phobos. But definitely, later this
> would be a great idea.))

dmd-0.109 "requires" phobos = 0.109, so it's not much of a problem.

--anders
December 12, 2004
>> What if we wrote a script that creates an RPM for D. Then each
>> time there's a new version, Walter could just run the script.
> 
> The .src.rpm *is* that script. You run it with rpmbuild --rebuild.

To clearify, inside of the source RPM is a "dmd.spec" file.
At the very top of that file, is a line: "%define vers 109"

The rest of files are: (rpm -qpl)
> dmd-0.109-phobos_make.patch
> dmd-0.109-recls_make.patch
> dmd.1
> dmd.conf
> dmd.spec
> dumpobj.1
> obj2asm.1

After changing the spec file, one then uses : "rpmbuild -ba dmd.spec"
When the make patches are not needed anymore, release goes back to 1.

Best would be if Walter could include an updated dmd.spec in the zip?
Then you can just build the RPMS from the "dmd.xxx.zip" file directly!

--anders

PS. The URL was: http://www.algonet.se/~afb/d/dmd-0.109-2.nosrc.rpm

PPS. Some might find this rather useful, too: http://rpmwin32.sf.net