0compile autocompile

View: New views
1 Messages — Rating Filter:   Alert me  

0compile autocompile

by Thomas Leonard-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've added a new "autocompile" command to 0compile (GIT version).

This will download and build the source code for the given program. It
also downloads and builds any missing dependencies, recursively. The
resulting binaries will be placed in the Zero Install implementation
cache (just like normal binary downloads). A feed file describing each
new binary  is created under
$XDG_CONFIG_DIRS/0install.net/0compile/builds/ and registered with
Zero Install (using "0launch --feed").

On error, 0compile will display the name of the temporary directory in
which it was compiling the component which failed. You can cd to this
directory and fix the problem using the other 0compile commands.

I've put an example on http://0install.net/injector-tests.html
(Test-Hello is a simple C program that needs GNU-Hello as part of its
build process):

$ 0compile autocompile http://0install.net/tests/Test-Hello.xml
================= http://0install.net/tests/Test-Hello.xml =================

Selecting versions for Test-Hello...
Selection done.

Plan:

- Test-Hello: Compile 1.0 (sha1new=8c368c5ed6cc65f528efd7b24cc8c25e4490977f)
  - GNU Hello: Compile 1.3 (sha1=2aae32fd27d194167eac7eb611d7ce0983f83dd7)
[...]

It will then compile GNU-Hello first, then Test-Hello.

Apart from saving time recompiling, it also ensures you compile the
right version. For example, ROX-Filer needs GLib-dev at compile-time,
but simply compiling the latest version doesn't help because it likes
to compile with an older version.

I also tried it with ROX-Filer on FreeBSD but it didn't work too well
because lots of other things don't work there (maybe not many people
are using FreeBSD with ROX?).

- Downloads don't work in 0launch because sockets seem to get wrapped
in an extra object. I've put a work-around in 0launch's GIT
repository.

- Had to install py-libxml2 from ports to build libxml2. This seems to
be a libxml2 bug.

- Had to set some environment variables so things installed using
ports are actually available to other programs:

setenv LDFLAGS "-L/usr/local/lib"
setenv CFLAGS "-I/usr/local/include"

- ROX-Filer's build script does "cp -ru" in two places. FreeBSD's cp
doesn't have a "-u" flag.

After that, it runs.


--
Dr Thomas Leonard ROX desktop / Zero Install
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Zero-install-devel mailing list
Zero-install-devel@...
https://lists.sourceforge.net/lists/listinfo/zero-install-devel