www.digitalmars.com         C & C++   DMDScript  

D.gnu - Debian and others

reply Joakim Karlsson <aio treyst.se> writes:
Hi there!

I'm new to D - I run a company in Sweden that are thinking of starting 
development in the D Language.

There is a problem though... It's a pain to install. Is there some major 
reason why you (Digital Mars) do not provide Debian packages (and 
others) for gdc?

The thing is: When you run modern Linux distributions you want 
everything just to work. And packet managers are quite good at making 
this a reality.

Ps.
   It is really a good thing to make these things _simple_ to install as 
possible - If you want programmers to start using the product.
Ds.

Yours truly,
//Joakim Karlsson
Dec 02 2005
next sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Joakim Karlsson wrote:

 I'm new to D - I run a company in Sweden that are thinking of starting 
 development in the D Language.

Låter bra! (Sounds good!)
 There is a problem though... It's a pain to install. Is there some major 
 reason why you (Digital Mars) do not provide Debian packages (and 
 others) for gdc?

Note: Digital Mars makes DMD, while GDC is more of a volunteer effort. (DMD also needs Linux packaging, but since it is non-distributable...) I've done some RPM packages before, but am the doing Mac packages now. One problem has been that you either need a bundled GCC (making it huge), or you need to work with the system GCC (making it "dependent") So aside from a source package, a binary package is not all that easy.
 The thing is: When you run modern Linux distributions you want 
 everything just to work. And packet managers are quite good at making 
 this a reality.

No argument there. Are you volunteering to make a Debian package ? :-) Have my old RPM spec up at http://www.algonet.se/~afb/d/gdc.spec (0.15), might try to update it for 0.17 and build it on Fedora just to test it. --anders
Dec 02 2005
prev sibling parent reply clayasaurus <clayasaurus gmail.com> writes:
It doesn't take long to make your own install script that does all the 
steps of installing dmd on linux for you.

I have made one which is very specifically for me. I know others have 
made some as well.

I'm guessing the reason they don't make .deb's is because they don't 
have time to support all of linux's package formats, and leave that as a 
task for others.

~ Clay

Joakim Karlsson wrote:
 Hi there!
 
 I'm new to D - I run a company in Sweden that are thinking of starting 
 development in the D Language.
 
 There is a problem though... It's a pain to install. Is there some major 
 reason why you (Digital Mars) do not provide Debian packages (and 
 others) for gdc?
 
 The thing is: When you run modern Linux distributions you want 
 everything just to work. And packet managers are quite good at making 
 this a reality.
 
 Ps.
   It is really a good thing to make these things _simple_ to install as 
 possible - If you want programmers to start using the product.
 Ds.
 
 Yours truly,
 //Joakim Karlsson

Dec 02 2005
next sibling parent reply clayasaurus <clayasaurus gmail.com> writes:
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

I decided I'd provide a sample of how this can be done. Take it with a 
grain of salt :-P This script is very specific to my machine.

clayasaurus wrote:
 It doesn't take long to make your own install script that does all the 
 steps of installing dmd on linux for you.
 
 I have made one which is very specifically for me. I know others have 
 made some as well.
 
 I'm guessing the reason they don't make .deb's is because they don't 
 have time to support all of linux's package formats, and leave that as a 
 task for others.
 
 ~ Clay
 
 Joakim Karlsson wrote:
 
 Hi there!

 I'm new to D - I run a company in Sweden that are thinking of starting 
 development in the D Language.

 There is a problem though... It's a pain to install. Is there some 
 major reason why you (Digital Mars) do not provide Debian packages 
 (and others) for gdc?

 The thing is: When you run modern Linux distributions you want 
 everything just to work. And packet managers are quite good at making 
 this a reality.

 Ps.
   It is really a good thing to make these things _simple_ to install 
 as possible - If you want programmers to start using the product.
 Ds.

 Yours truly,
 //Joakim Karlsson


Dec 02 2005
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
clayasaurus wrote:

 I decided I'd provide a sample of how this can be done. Take it with a 
 grain of salt :-P This script is very specific to my machine.

Why do you copy it to your home directory first and chown it to you ? Looks like it might just as well install it to /usr/local directly... (assuming that Phobos is also installed under /usr/local, that is) I put my own scripts on the Wiki4D: http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/InstallingDCompiler#InstallingDMDonLinuxX86 Shows both how to install in /usr/local, and in your home directory. Somehow, upgrading a package is still easier than running this script ? And the OP asked about GDC installation, which is a little different. (your script showed how to install DMD, as per the original manual) --anders
Dec 02 2005
parent reply clayasaurus <clayasaurus gmail.com> writes:
I know, my script sucks, I just wanted to show it is possible to easily do.

Anders F Björklund wrote:
 clayasaurus wrote:
 
 I decided I'd provide a sample of how this can be done. Take it with a 
 grain of salt :-P This script is very specific to my machine.

Why do you copy it to your home directory first and chown it to you ? Looks like it might just as well install it to /usr/local directly... (assuming that Phobos is also installed under /usr/local, that is) I put my own scripts on the Wiki4D: http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/InstallingDCompiler#Ins allingDMDonLinuxX86 Shows both how to install in /usr/local, and in your home directory. Somehow, upgrading a package is still easier than running this script ? And the OP asked about GDC installation, which is a little different. (your script showed how to install DMD, as per the original manual) --anders

Dec 02 2005
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
clayasaurus wrote:

 I know, my script sucks, I just wanted to show it is possible to easily do.

I wouldn't say that it sucks, I just meant that with a few minor adjustments (such as replacing "/home/clayasaurus" with just "~") it would be more generic and all wouldn't have to write their own? One point I was trying to make in the Wiki4D is that there are two methods of installing DMD, either in your home dir (and C:\, etc.) *or* you install it in the usual locations (/usr, /usr/local, etc.) The current Digital Mars DMD instructions is a pretty weird mix... (installing parts in ~/dmd, parts in /usr and parts in /usr/local?) For the DMD packaging I did, they placed Phobos in /usr/lib/phobos But I think I will just let Walter sort that out on his own. :-) --anders
Dec 02 2005
parent reply Joakim Karlsson <aio treyst.se> writes:
Anders F Björklund wrote:

 clayasaurus wrote:
 
 I know, my script sucks, I just wanted to show it is possible to 
 easily do.

I wouldn't say that it sucks, I just meant that with a few minor adjustments (such as replacing "/home/clayasaurus" with just "~") it would be more generic and all wouldn't have to write their own? One point I was trying to make in the Wiki4D is that there are two methods of installing DMD, either in your home dir (and C:\, etc.) *or* you install it in the usual locations (/usr, /usr/local, etc.) The current Digital Mars DMD instructions is a pretty weird mix... (installing parts in ~/dmd, parts in /usr and parts in /usr/local?) For the DMD packaging I did, they placed Phobos in /usr/lib/phobos But I think I will just let Walter sort that out on his own. :-)

Well.. I was asking about GDC and not DMD, but thanks anyway. I guess it will take some time before I bother, then. //Joakim
Dec 06 2005
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Joakim Karlsson wrote:

 Well.. I was asking about GDC and not DMD, but thanks anyway.
 I guess it will take some time before I bother, then.

Were you looking for a "bundle" with GCC / G++, or just the frontend for D ? (i.e. the gdc, gdmd and cc1d/libgphobos.a) Main difference is whether we're talking 3 or 30 MB package... I don't use Debian/Ubuntu myself, but have done packages for RedHat/Fedora, Gentoo and for Mac OS X. (specs posted earlier) To make a Debian package, a DEB maintainer needs to volunteer. --anders
Dec 06 2005
parent reply Charles Hixson <charleshixsn earthlink.net> writes:
Anders F Björklund wrote:
 Joakim Karlsson wrote:
 
 Well.. I was asking about GDC and not DMD, but thanks anyway.
 I guess it will take some time before I bother, then.

Were you looking for a "bundle" with GCC / G++, or just the frontend for D ? (i.e. the gdc, gdmd and cc1d/libgphobos.a) Main difference is whether we're talking 3 or 30 MB package... I don't use Debian/Ubuntu myself, but have done packages for RedHat/Fedora, Gentoo and for Mac OS X. (specs posted earlier) To make a Debian package, a DEB maintainer needs to volunteer. --anders

want to yield a un-installation of Gnat or Objective-C or C++...which were installed via debs. I've thought about installing gdc several times, but every time it's felt too dangerous. It's felt that *I* would need to create a new OS disk partition, boot into it, and experiment until I was certain that I could install gdc without killing the rest of the system. (I know that this reveals my lack of skills...but I doubt that I am alone in this trepidation.)
Dec 11 2005
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Charles Hixson wrote:

 I can't read his mind, but when I'm thinking about it, I don't want to 
 yield a un-installation of Gnat or Objective-C or C++...which were 
 installed via debs.  I've thought about installing gdc several times, 
 but every time it's felt too dangerous.  It's felt that *I* would need 
 to create a new OS disk partition, boot into it, and experiment until I 
 was certain that I could install gdc without killing the rest of the 
 system.  (I know that this reveals my lack of skills...but I doubt that 
 I am alone in this trepidation.)

I've made two RPM packages/distributions, one "gdc" and one "opt-gdc". The first installs in /usr, and might be considered "dangerous"... Although it should only feature files that are new for GDC itself: /usr/bin/gdc /usr/libexec/gcc/i586-redhat-linux/4.0.2/cc1d /usr/include/d/ /usr/lib/libgphobos.a (...etc...) Downside is that to function, it depends on the system GCC version. The other installs in /opt/gdc, and is thus completely "harmless". Downside is that you need to set the $PATH, and it uses a new GCC. But it should be possible to do a distro-agnostic package of this ? (it'll still have some dependencies like glibc etc, but a lot fewer) It's still prettty small, even with the C++ crud that "recls" needs. Once the binary RPMS are posted (later), it should be possible to convert them to DEB format too - using the "alien" tool ? (AFAIK) But before it becomes a "real" Debian package, it needs a maintainer. As per http://www.debian.org/doc/debian-policy/ (definitely *not* me) --anders PS. Never hurts to be cautious, but --prefix=/opt/gdc should be enough, as in: ./configure --prefix=/opt/gdc --enable-languages=d \ && make && sudo make install I don't really think you need a new partition just for testing GDC.
Dec 11 2005
prev sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
clayasaurus wrote:

 I'm guessing the reason they don't make .deb's is because they don't 
 have time to support all of linux's package formats, and leave that as a 
 task for others.

But they don't provide rpms either, even if it has been done by others ? (I think the main reason is because Walter *prefers* doing it manually) GDC is easy to package since it's GPL, but DMD is somewhat "trickier"... (since you cannot redistribute the packaged software, it's useless. Kinda like the mess that Sun has made with the RPMS for Java 2 ?) --anders
Dec 02 2005