On Wednesday, 4 September 2013 at 00:53:14 UTC, Nick Sabalausky
wrote:
tl;dr: The main things I need help with: Installing 32-bit
libcurl on
64-bit Debian, testing on 64-bit FreeBSD, and figuring out WTF
is so
screwed up on Windows.
It's almost finished, but I've hit some problems I'm having a
hell of a
time figuring out. I'm getting a kinda brain-fried and need
some help
with it:
Here's what I have right now (it's named "create_dmd_release"):
https://github.com/Abscissa/installer/tree/create-zip
The "how to" documentation is at the top of the source file:
https://github.com/Abscissa/installer/blob/create-zip/create_dmd_release/create_dmd_release.d
Important note for trying it out:
--------------------------------------
This tool depends on itself actually being in the official
repo. Since
this hasn't actually been pulled in yet (I don't think it's
ready for a
pull request just yet), you will need one small change to the
instructions for step #2 to make it work right:
Run the command line in step #2, but after it finishes cloning,
go
ahead and Ctrl-C kill it (or wait for it to end - either way).
Then,
copy the "create_dmd_release" directory tree into "[your temp
dir]/.create_dmd_release/installer". You can check the temp dir
it uses
with "create_dmd_release --help". Finally, re-run the same
original command, but add the flag "--skip-clone".
DMD versions:
-----------------------
This is intended for DMDs *after* v2.063.2, because it requires
some
changes in the "master" of the "tools" repo.
However, you *can* coax it to work on v2.063.2 by halting it
after the
"clone" stage, then updating
"[tmp-dir]/.create_dmd_release/tools/*.mak" with the latest
versions
from master, and then resuming the process by re-running with
"--skip-clone". But additional hacking may be needed on Windows.
The current status:
-----------------------
- OSX 10.7: Works fine. (At least it did last time I tried it,
a couple
weeks ago. It *could* have regressed but I won't have access
to the
machine again until maybe Sunday.)
- Debian 6 (32-bit OS): This tool isn't intended to support
32-bit OSes
(since it must compile both 32-bit and 64-bit phobos), but it
works
fine up until it gets to the 64-bit stuff. If I manually
comment out
the 64-bit stuff, then everything else works fine.
- Debian 6 (64-bit OS): It fails when linking the 32-bit phobos
complaining that it can't link with libcurl. I'm fairly
certain this
is because I have no freaking idea how to install the 32-bit
libcurl*-*-dev on a 64-bit Debian. (I *did* install
"libcurl4-openssl-dev", but I'm pretty sure it only installed
for
64-bit. And I can't figure out how to get the 32-bit.)
- FreeBSD 9.1 (32-bit OS): Same as 32-bit Debian 6: It works,
except
for the 64-bit stuff.
- FreeBSD 9.1 (64-bit OS): No idea, I don't have access to a
64-bit
FreeBSD machine, and my stupid Intel CPU lacks the ability to
run a
64-bit OS in a VM.
- Windows 7 (64-bit OS): This is where I'm having the biggest
trouble.
I can coaxing it to handle v2.063.2 just fine (ie, if I
update the
"tools" makefiles as described above, and comment out all the
"libcurl" and "chm" stuff.) However, on master, after it
compiles
DMD/druntime/phobos, the resulting DMD/phobos can't compile
anything
that uses phobos because OPTLINK will spew out a bunch of
errors. I
am *completely* at a loss on this one. It seems like an
sc.ini issue,
but I've spent days checking everything and I still can't
make heads
or tails of it.
You have to manually tell dpkg that it can use specific
architectures like 32bit in a 64bit system [1].
However this takes a bit of configuration to get working so this
might have to be left to the user and not placed into the script.
[1] https://wiki.debian.org/Multiarch/HOWTO