On 02/25/2014 12:09 AM, Artem Tarasov wrote:
On Tue, Feb 25, 2014 at 7:16 AM, Shammah Chancellor
<[email protected] <mailto:[email protected]>> wrote:
Have you looked at having dub be your autotool?
The complaint is about difficulties with installation of a compiler
and rdmd, and you suggest to bring in yet another dependency?
My experience is the same as described, I keep a VM on Amazon EC2
with CentOS 5, which contains installed LDC2, just so that the
compiled binaries run on any Linux x86_64 machine no matter how old
glibc version is.
Thanks!
I was beginning to think I'm alone in this problem :)
I'm getting the impression that D is either windows-focused (which is a mostly
homogenous system everywhere and easy to work with), or
unix-experts/developers-focused (where people feel naturally comfortable with
downloading and compiling and fidgeting with programs).
-----
To address some of the other responses:
On 02/24/2014 09:09 PM, Adam D. Ruppe wrote:> On Tuesday, 25 February 2014 at
01:21:03 UTC, Assaf Gordon wrote:
dmd does not require root. The install instructions about copying
stuff into /etc and such are ridiculously overcomplicated - dmd
actually just works* if you run it straight out of the zip as any
regular user in any location.
From a non-expert unix POV -
Either you download and install the package (deb/rpm) which is easy but
requires root,
or you download and compile the sources from the source zip - which is
complicated.
We can argue about what "complicated" means, obviously the members of this
forums are mostly experts, so they don't think that compiling from source is tricky.
But if you download the zip, and try to look at it from a novice's POV:
The README.txt is not helpful.
There's no "configure" or "CMakefile" or "Makefile" - which are the most common ways to
"just make it work" for open source projects.
Going into "src", there's no Makefile, and the "readme.txt" is again not
helpful (talks about the license, not about the installation).
If you're have some experience, you can guess that "posix.mak" is the relevant file, and
indeed "make -f posix.mak" builds dmd correctly.
Then you have to repeat the same for "./src/dmd", "./src/druntime" and
"./src/phobos" - and then what?
update $PATH, $LD_LIBRARY_PATH ? would that be enough ?
All these might be easy for you - but not for a casual Linux user (which is my
intended target audience).
-----
On 02/25/2014 12:48 AM, Jesse Phillips wrote:
If you want to distribute to desktop users, binary packages is the
way to go. The issues with static linking are related to C
libraries. If you develop in Linux you generally don't statically
link.
You "generally don't statically link" because you can:
1. Readily and easily compile from source code on the local machine, or
2. Have binary distribution that perfectly matches your system (in the case of
debs/rpms from an official repository).
With D - I have none of these.
And when distribution just an executable to run on an unknown linux machine,
the best way is a statically linked binary.
All your D code is statically linked, work has been done to support
dynamic linking with Phobos, but for now that isn't default.
But I'm not asking for dynamic linking... I'm asking for static linking that
works...
----
On 02/25/2014 08:13 AM, Dicebot wrote:
For building dub and/or rdmd are de-facto standard for any D
developers. You should just start from source tarball and proceed
from there to finding maintainers in specific distributives, possibly
being the one for distro or two. Then conform packaging rules there.
My target audience is not D developers - it is unix casual users (not even
developers).
I want to make it the easiest for them to use my program.
If it's requires more than the standard "configure && make && make install" (or
the cmake equivalent), then many of them will not do it.
Single Linux-wide binary distribution is mostly a myth and dmd shows
it by its own.
Not sure what the "myth" is - but a statically-linked binaries work well (if
your program is self-contained and properly compiled), and there are many examples of it.
----
On the upside: I now see that "dub" provides a good Debian repository, and a
HomeBrew formula (and by proxy, a LinuxBrew formula) - so perhaps that is the way to go.
Still, if I may suggest:
There have been recent threads in the mailing list about "the future of D" and creating
"Killer Apps" and making D more popular - From my (biased) POV, one big step would be to
make D easily useable on more platforms - so the casual (non-windows) users could also experiment
with it, and developers would have easier time to distribute software written in D.
Also, as long as DMD is not free, providing easy way to install LDC/GDC is
highly desired.
Thanks for reading so far,
-gordon