www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - RPM for DMD

reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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)
Dec 11 2004
parent reply Georg Wrede <Georg_member pathlink.com> writes:
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.)
Dec 11 2004
next sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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.

Dec 11 2004
parent reply Georg Wrede <Georg_member pathlink.com> writes:
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.))
Dec 12 2004
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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
Dec 12 2004
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
 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
Dec 12 2004
prev sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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

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 ?
Dec 12 2004