Re: Powerbox for SWT?
Thomas Leonard <[email protected]>
| Newsgroups | gmane.comp.lang.e.general |
|---|---|
| Message-ID | <[email protected]> |
On 27 June 2010 21:53, Mark Miller <[email protected]> wrote: > On Sun, Jun 27, 2010 at 6:10 AM, Thomas Leonard <[email protected]> wrote: >> >> I had a go at integrating 0install with the new E loader stuff. > > Hi Thomas, what is 0install? Hi Mark, it's an installer I work on: http://0install.net/ It's mainly used on Linux. For example, on a clean Ubuntu system, you can run E like this: $ sudo apt-get install zeroinstall-injector $ 0launch http://repo.roscidus.com/e/e-core ? Or, to run an SWT program you could do: $ 0launch http://repo.roscidus.com/e/e-swt myProg.e-swt You can install a short-cut called "rune" like this: $ 0alias rune http://repo.roscidus.com/e/e-swt $ rune ? 0launch will download the e.jar package, the correct SWT libraries for the platform, and even Java itself if necessary. Each package name is a URI, which can be used to download a (signed) XML file describing available versions and their dependencies. For example, http://repo.roscidus.com/e/e-core contains: <group license="OSI Approved :: Mozilla Public License (MPL)" main="rune"> <requires interface="http://repo.roscidus.com/java/openjdk-6-jre"> <environment insert="bin/" mode="replace" name="RUNE_JRE_BIN"/> </requires> <implementation id="sha1new=d0ecc18c74a4342bf2a08da8237aee11d9f32b27" released="2009-12-30" version="0.9.2-post1"> <archive href="http://repo.roscidus.com/e/e-core/E-core-0.9.2-post1.tar.bz2" size="2933851" type="application/x-bzip-compressed-tar"/> </implementation> <implementation id="sha1new=304c4433219b85bc7ebf7bc1d506ff2bc95aadb3" released="2010-03-31" version="0.9.2-post2"> <archive href="http://repo.roscidus.com/e/e-core/E-core-0.9.2-post2.tar.bz2" size="2946251" type="application/x-bzip-compressed-tar"/> </implementation> [...] </group> This says that there are two available versions of e-core (0.9.2-post1 and 0.9.2-post2). Both depend on the OpenJDK JRE, and the rune script should be told where Java is through the $RUNE_JRE_BIN environment variable. 0launch downloads all the XML files, turns all the dependencies and constraints into a huge boolean expression and runs a SAT solver on it to select a set of compatible versions. Each package archive is then downloaded to its own directory and the main process is invoked. Normally, each component is told where to find its dependencies by setting environment variables, but in my experimental E installer we instead pass the selected versions to an E launcher script that creates E loaders instead. -- Dr Thomas Leonard ROX desktop / Zero Install GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA