diff options
author | Damien Cassou <damien@cassou.me> | 2016-01-14 11:33:59 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2016-01-15 09:29:11 +0100 |
commit | 0b4c7d42a87b8fe3028de9ef7790e0564c316a08 (patch) | |
tree | 67ddb63617eb36b71eb0969e84a80a7fc263c4a8 /pkgs/development/pharo/vm/build-vm.nix | |
parent | 98218971c210bd0e65b0171ea5d0680544c16701 (diff) | |
download | nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.tar nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.tar.gz nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.tar.bz2 nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.tar.lz nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.tar.xz nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.tar.zst nixpkgs-0b4c7d42a87b8fe3028de9ef7790e0564c316a08.zip |
pharo-vm: Refactor to introduce new VMs (close #12388)
The Pharo community now has a Spur VM: this VM is the only one to open Pharo50 images.
Diffstat (limited to 'pkgs/development/pharo/vm/build-vm.nix')
-rw-r--r-- | pkgs/development/pharo/vm/build-vm.nix | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/pkgs/development/pharo/vm/build-vm.nix b/pkgs/development/pharo/vm/build-vm.nix new file mode 100644 index 00000000000..b5fa7a97e13 --- /dev/null +++ b/pkgs/development/pharo/vm/build-vm.nix @@ -0,0 +1,102 @@ +{ stdenv, fetchurl, cmake, bash, unzip, glibc, openssl, gcc, mesa, freetype, xorg, alsaLib, cairo }: + +{ name, src, binary-basename, ... }: + +stdenv.mkDerivation rec { + + inherit name src binary-basename; + + sources10Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV10.sources.zip; + sha256 = "0aijhr3w5w3jzmnpl61g6xkwyi2l1mxy0qbvr9k3whz8zlrsijh2"; + }; + + sources20Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV20.sources.zip; + sha256 = "1xsc0p361pp8iha5zckppw29sbapd706wbvzvgjnkv2n6n1q5gj7"; + }; + + sources30Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV30.sources.zip; + sha256 = "08d9a7gggwpwgrfbp7iv5896jgqz3vgjfrq19y3jw8k10pva98ak"; + }; + + sources40Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV40.sources.zip; + sha256 = "1xq1721ql19hpgr8ir372h92q7g8zwd6k921b21dap4wf8djqnpd"; + }; + + # Building + preConfigure = '' + cd build/ + ''; + resources = ./resources; + installPhase = '' + echo Current directory $(pwd) + echo Creating prefix "$prefix" + mkdir -p "$prefix/lib/pharo-vm" + + cd ../../results + + mv vm-display-null vm-display-null.so + mv vm-display-X11 vm-display-X11.so + mv vm-sound-null vm-sound-null.so + mv vm-sound-ALSA vm-sound-ALSA.so + mv pharo pharo-vm + + cp * "$prefix/lib/pharo-vm" + + cp -R "$resources/"* "$prefix/" + + mkdir $prefix/bin + + chmod u+w $prefix/bin + cat > $prefix/bin/${binary-basename}-x <<EOF + #!${bash}/bin/bash + + # disable parameter expansion to forward all arguments unprocessed to the VM + set -f + + exec $prefix/lib/pharo-vm/pharo-vm "\$@" + EOF + + cat > $prefix/bin/${binary-basename}-nox <<EOF + #!${bash}/bin/bash + + # disable parameter expansion to forward all arguments unprocessed to the VM + set -f + + exec $prefix/lib/pharo-vm/pharo-vm -vm-display-null "\$@" + EOF + + chmod +x $prefix/bin/${binary-basename}-x $prefix/bin/${binary-basename}-nox + + unzip ${sources10Zip} -d $prefix/lib/pharo-vm/ + unzip ${sources20Zip} -d $prefix/lib/pharo-vm/ + unzip ${sources30Zip} -d $prefix/lib/pharo-vm/ + unzip ${sources40Zip} -d $prefix/lib/pharo-vm/ + ''; + + buildInputs = [ bash unzip cmake glibc openssl gcc mesa freetype xorg.libX11 xorg.libICE xorg.libSM alsaLib cairo ]; + + meta = { + description = "Clean and innovative Smalltalk-inspired environment"; + longDescription = '' + Pharo's goal is to deliver a clean, innovative, free open-source + Smalltalk-inspired environment. By providing a stable and small core + system, excellent dev tools, and maintained releases, Pharo is an + attractive platform to build and deploy mission critical applications. + + This package provides the executable VM. You should probably not care + about this package (which represents a packaging detail) and have a + look at the pharo-vm-core package instead. + + Please fill bug reports on http://bugs.pharo.org under the 'Ubuntu + packaging (ppa:pharo/stable)' project. + ''; + homepage = http://pharo.org; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.DamienCassou ]; + platforms = stdenv.lib.platforms.mesaPlatforms; + }; +} |