diff options
author | Pol Dellaiera <pol.dellaiera@protonmail.com> | 2023-08-03 18:20:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-03 18:20:01 +0200 |
commit | 9aabdcf43f70b18bdebc39d7796c984672603d3e (patch) | |
tree | d0c45c472ee8fba176178281541595154e922333 /pkgs/development | |
parent | 69a8986058d36dc7444bfb7c2f030b94389af7f5 (diff) | |
parent | e85228766cff240418ddb8e0cb449805d0812d48 (diff) |
Merge pull request #237892 from jthulhu/update-pharo
pharo: old -> 10.0.5
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/pharo/default.nix | 99 | ||||
-rw-r--r-- | pkgs/development/pharo/launcher/default.nix | 83 | ||||
-rw-r--r-- | pkgs/development/pharo/vm/build-vm-legacy.nix | 104 | ||||
-rw-r--r-- | pkgs/development/pharo/vm/build-vm.nix | 179 | ||||
-rw-r--r-- | pkgs/development/pharo/vm/default.nix | 13 | ||||
-rw-r--r-- | pkgs/development/pharo/vm/share.nix | 58 | ||||
-rw-r--r-- | pkgs/development/pharo/vm/vms.nix | 67 | ||||
-rw-r--r-- | pkgs/development/pharo/wrapper/default.nix | 60 | ||||
-rw-r--r-- | pkgs/development/pharo/wrapper/magic | 37 | ||||
-rw-r--r-- | pkgs/development/pharo/wrapper/pharo-vm.sh | 57 |
10 files changed, 99 insertions, 658 deletions
diff --git a/pkgs/development/pharo/default.nix b/pkgs/development/pharo/default.nix new file mode 100644 index 0000000000000..6e83a31d5dd51 --- /dev/null +++ b/pkgs/development/pharo/default.nix @@ -0,0 +1,99 @@ +{ cairo +, cmake +, fetchurl +, freetype +, gcc +, git +, gnumake +, lib +, libffi +, libgit2 +, libpng +, libuuid +, makeBinaryWrapper +, openssl +, pixman +, runtimeShell +, SDL2 +, stdenv +, unzip +}: +let + inherit (lib.strings) makeLibraryPath; + pharo-sources = fetchurl { + # It is necessary to download from there instead of from the repository because that archive + # also contains artifacts necessary for the bootstrapping. + url = "https://files.pharo.org/vm/pharo-spur64-headless/Linux-x86_64/source/PharoVM-10.0.5-2757766-Linux-x86_64-c-src.zip"; + hash = "sha256-i6WwhdVdyzmqGlx1Fn12mCq5+HnRORT65HEiJo0joCE="; + }; + library_path = makeLibraryPath [ + libgit2 + SDL2 + cairo + "$out" + ]; +in +stdenv.mkDerivation { + pname = "pharo"; + version = "10.0.5"; + src = pharo-sources; + + buildInputs = [ + cairo + libgit2 + libpng + pixman + SDL2 + ]; + + nativeBuildInputs = [ + cmake + freetype + gcc + git + gnumake + libffi + libuuid + makeBinaryWrapper + openssl + pixman + SDL2 + unzip + ]; + + cmakeFlags = [ + # Necessary to perform the bootstrapping without already having Pharo available. + "-DGENERATED_SOURCE_DIR=." + "-DGENERATE_SOURCES=OFF" + # Prevents CMake from trying to download stuff. + "-DBUILD_BUNDLE=OFF" + ]; + + installPhase = '' + runHook preInstall + + cmake --build . --target=install + mkdir -p "$out/lib" + mkdir "$out/bin" + cp build/vm/*.so* "$out/lib/" + cp build/vm/pharo "$out/bin/pharo" + patchelf --allowed-rpath-prefixes /nix/store --shrink-rpath "$out/bin/pharo" + wrapProgram "$out/bin/pharo" --set LD_LIBRARY_PATH "${library_path}" + + runHook postInstall + ''; + + meta = with lib; { + description = "Clean and innovative Smalltalk-inspired environment"; + homepage = "https://pharo.org"; + license = licenses.mit; + 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. + ''; + maintainers = [ ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/development/pharo/launcher/default.nix b/pkgs/development/pharo/launcher/default.nix deleted file mode 100644 index d8d3bcb2cdd91..0000000000000 --- a/pkgs/development/pharo/launcher/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ lib, stdenv, fetchurl, bash, pharo, unzip, makeDesktopItem }: - -stdenv.mkDerivation rec { - version = "2017.02.28"; - pname = "pharo-launcher"; - src = fetchurl { - url = "http://files.pharo.org/platform/launcher/PharoLauncher-user-stable-${version}.zip"; - sha256 = "1hfwjyx0c47s6ivc1zr2sf5mk1xw2zspsv0ns8mj3kcaglzqwiq0"; - }; - - executable-name = "pharo-launcher"; - - desktopItem = makeDesktopItem { - name = "Pharo"; - exec = executable-name; - icon = "pharo"; - comment = "Launcher for Pharo distributions"; - desktopName = "Pharo"; - genericName = "Pharo"; - categories = [ "Development" ]; - }; - - # because upstream tarball has no top-level directory. - sourceRoot = "."; - - nativeBuildInputs = [ unzip ]; - buildInputs = [ bash pharo ]; - - installPhase = '' - mkdir -p $prefix/share/pharo-launcher - mkdir -p $prefix/bin - - mv PharoLauncher.image $prefix/share/pharo-launcher/pharo-launcher.image - mv PharoLauncher.changes $prefix/share/pharo-launcher/pharo-launcher.changes - - mkdir -p $prefix/share/applications - cp "${desktopItem}/share/applications/"* $out/share/applications - - cat > $prefix/bin/${executable-name} <<EOF - #!${bash}/bin/bash - exec "${pharo}/bin/pharo" $prefix/share/pharo-launcher/pharo-launcher.image - EOF - chmod +x $prefix/bin/${executable-name} - ''; - - doCheck = true; - - checkPhase = '' - # Launcher should be able to run for a few seconds without crashing. - (set +e - export HOME=. # Pharo will try to create files here - secs=5 - echo -n "Running headless Pharo for $secs seconds to check for a crash... " - timeout $secs \ - "${pharo}/bin/pharo" --nodisplay PharoLauncher.image --no-quit eval 'true' - test "$?" == 124 && echo "ok") - ''; - - meta = with lib; { - description = "Launcher for Pharo distributions"; - homepage = "https://pharo.org"; - 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. - - The Pharo Launcher is a cross-platform application that - - lets you manage your Pharo images (launch, rename, copy and delete); - - lets you download image templates (i.e., zip archives) from many - different sources (e.g., Jenkins, files.pharo.org); - - lets you create new images from any template. - - The idea behind the Pharo Launcher is that you should be able to - access it very rapidly from your OS application launcher. As a - result, launching any image is never more than 3 clicks away. - ''; - license = licenses.mit; - maintainers = [ ]; - platforms = pharo.meta.platforms; - }; -} diff --git a/pkgs/development/pharo/vm/build-vm-legacy.nix b/pkgs/development/pharo/vm/build-vm-legacy.nix deleted file mode 100644 index 12de7e84dbcd3..0000000000000 --- a/pkgs/development/pharo/vm/build-vm-legacy.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ lib, stdenv -, fetchurl -, cmake -, bash -, unzip -, glibc -, openssl -, gcc -, libGLU -, libGL -, freetype -, xorg -, alsa-lib -, cairo -, libuuid -, libnsl -, makeWrapper -, ... }: - -{ name, src, ... }: - -stdenv.mkDerivation rec { - - inherit name src; - - pharo-share = import ./share.nix { inherit lib stdenv fetchurl unzip; }; - - hardeningDisable = [ "format" "pic" ]; - - nativeBuildInputs = [ unzip cmake gcc makeWrapper ]; - - buildInputs = [ bash glibc openssl libGLU libGL freetype - xorg.libX11 xorg.libICE xorg.libSM alsa-lib cairo pharo-share libnsl ]; - - LD_LIBRARY_PATH = lib.makeLibraryPath - [ cairo libGLU libGL freetype openssl libuuid alsa-lib - xorg.libICE xorg.libSM ]; - - preConfigure = '' - cd build/ - ''; - - # -fcommon is a workaround build failure on -fno-common toolchains like upstream - # gcc-10. Otherwise build fails as: - # ld: CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/gcc3x-cointerp.c.o:(.bss+0x88): multiple definition of - # `sendTrace'; CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/cogit.c.o:(.bss+0x84): first defined here - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - installPhase = '' - mkdir -p "$prefix/lib/$name" - - 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/$name" - - mkdir $prefix/bin - - chmod u+w $prefix/bin - cat > $prefix/bin/pharo-cog <<EOF - #!${bash}/bin/bash - # disable parameter expansion to forward all arguments unprocessed to the VM - set -f - exec $prefix/lib/$name/pharo-vm "\$@" - EOF - - chmod +x $prefix/bin/pharo-cog - - # Add cairo library to the library path. - wrapProgram $prefix/bin/pharo-cog --prefix LD_LIBRARY_PATH : ${LD_LIBRARY_PATH} - - ln -s "${pharo-share}/lib/"*.sources $prefix/lib/$name - ''; - - meta = with lib; { - description = "Clean and innovative Smalltalk-inspired environment"; - homepage = "https://pharo.org"; - 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. - ''; - license = licenses.mit; - maintainers = [ maintainers.lukego ]; - # Pharo VM sources are packaged separately for darwin (OS X) - platforms = lib.filter - (system: with lib.systems.elaborate { inherit system; }; - isUnix && !isDarwin) - lib.platforms.mesaPlatforms; - }; -} diff --git a/pkgs/development/pharo/vm/build-vm.nix b/pkgs/development/pharo/vm/build-vm.nix deleted file mode 100644 index fe61061ca6e4c..0000000000000 --- a/pkgs/development/pharo/vm/build-vm.nix +++ /dev/null @@ -1,179 +0,0 @@ -{ lib, stdenv -, fetchurl -, bash -, unzip -, glibc -, openssl -, libgit2 -, libGLU, libGL -, freetype -, xorg -, alsa-lib -, cairo -, libuuid -, autoreconfHook -, gcc48 -, runtimeShell -, ... }: - -{ name, src, version, source-date, source-url, ... }: - -# Build the Pharo VM -stdenv.mkDerivation rec { - inherit name src; - - # Command line invocation name. - # Distinct name for 64-bit builds because they only work with 64-bit images. - cmd = if stdenv.is64bit then "pharo-spur64" else "pharo-spur"; - - # Choose desired VM sources. Separate for 32-bit and 64-bit VM. - # (Could extent to building more VM variants e.g. SpurV3, Sista, etc.) - vm = if stdenv.is64bit then "spur64src" else "spursrc"; - - # Choose target platform name in the format used by the vm. - flavor = - if stdenv.isLinux && stdenv.isi686 then "linux32x86" - else if stdenv.isLinux && stdenv.isx86_64 then "linux64x64" - else if stdenv.isDarwin && stdenv.isi686 then "macos32x86" - else if stdenv.isDarwin && stdenv.isx86_64 then "macos64x64" - else throw "Unsupported platform: only Linux/Darwin x86/x64 are supported."; - - # Shared data (for the sources file) - pharo-share = import ./share.nix { inherit lib stdenv fetchurl unzip; }; - - # Note: -fPIC causes the VM to segfault. - hardeningDisable = [ "format" "pic" - # while the VM depends on <= gcc48: - "stackprotector" ]; - - # gcc 4.8 used for the build: - # - # gcc5 crashes during compilation; gcc >= 4.9 produces a - # binary that crashes when forking a child process. See: - # http://forum.world.st/OSProcess-fork-issue-with-Debian-built-VM-td4947326.html - # - # (stack protection is disabled above for gcc 4.8 compatibility.) - nativeBuildInputs = [ autoreconfHook unzip ]; - buildInputs = [ - bash - glibc - openssl - gcc48 - libGLU libGL - freetype - xorg.libX11 - xorg.libICE - xorg.libSM - alsa-lib - cairo - pharo-share - libuuid - ]; - - enableParallelBuilding = true; - - # Regenerate the configure script. - # Unnecessary? But the build breaks without this. - autoreconfPhase = '' - pushd platforms/unix/config - make - popd - ''; - - # Configure with options modeled on the 'mvm' build script from the vm. - configureScript = "platforms/unix/config/configure"; - configureFlags = [ "--without-npsqueak" - "--with-vmversion=5.0" - "--with-src=${vm}" ]; - - # -fcommon is a workaround build failure on -fno-common toolchains like upstream - # gcc-10. Otherwise build fails as: - # ld: vm/vm.a(cogit.o):/build/source/spur64src/vm/cointerp.h:358: multiple definition of `checkAllocFiller'; - # vm/vm.a(gcc3x-cointerp.o):/build/source/spur64src/vm/cointerp.h:358: first defined here - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - CFLAGS = "-DPharoVM -DIMMUTABILITY=1 -msse2 -D_GNU_SOURCE -DCOGMTVM=0 -g -O2 -DNDEBUG -DDEBUGVM=0"; - LDFLAGS = "-Wl,-z,now"; - - # VM sources require some patching before build. - prePatch = '' - patchShebangs build.${flavor} - # Fix hard-coded path to /bin/rm in a script - sed -i -e 's:/bin/rm:rm:' platforms/unix/config/mkmf - # Fill in mandatory metadata about the VM source version - sed -i -e 's!\$Date\$!$Date: ${source-date} $!' \ - -e 's!\$Rev\$!$Rev: ${version} $!' \ - -e 's!\$URL\$!$URL: ${source-url} $!' \ - platforms/Cross/vm/sqSCCSVersion.h - ''; - - # Note: --with-vmcfg configure option is broken so copy plugin specs to ./ - preConfigure = '' - cp build."${flavor}"/pharo.cog.spur/plugins.{ext,int} . - ''; - - # (No special build phase.) - - installPhase = let - libs = [ - cairo - libgit2 - libGLU libGL - freetype - openssl - libuuid - alsa-lib - xorg.libICE - xorg.libSM - ]; - in '' - # Install in working directory and then copy - make install-squeak install-plugins prefix=$(pwd)/products - - # Copy binaries & rename from 'squeak' to 'pharo' - mkdir -p "$out" - cp products/lib/squeak/5.0-*/squeak "$out/pharo" - cp -r products/lib/squeak/5.0-*/*.so "$out" - ln -s "${pharo-share}/lib/"*.sources "$out" - - # Create a shell script to run the VM in the proper environment. - # - # These wrapper puts all relevant libraries into the - # LD_LIBRARY_PATH. This is important because various C code in the VM - # and Smalltalk code in the image will search for them there. - mkdir -p "$out/bin" - - # Note: include ELF rpath in LD_LIBRARY_PATH for finding libc. - libs=$out:$(patchelf --print-rpath "$out/pharo"):${lib.makeLibraryPath libs} - - # Create the script - cat > "$out/bin/${cmd}" <<EOF - #!${runtimeShell} - set -f - LD_LIBRARY_PATH="\$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$libs" exec $out/pharo "\$@" - EOF - chmod +x "$out/bin/${cmd}" - ln -s ${libgit2}/lib/libgit2.so* "$out/" - ''; - - meta = with lib; { - description = "Clean and innovative Smalltalk-inspired environment"; - homepage = "https://pharo.org"; - 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. - ''; - license = licenses.mit; - maintainers = [ maintainers.lukego ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/development/pharo/vm/default.nix b/pkgs/development/pharo/vm/default.nix deleted file mode 100644 index a60afcd59ed7d..0000000000000 --- a/pkgs/development/pharo/vm/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ stdenv, callPackage, pkgsi686Linux, ...}: - -let - i686 = pkgsi686Linux.callPackage ./vms.nix {}; - native = callPackage ./vms.nix {}; -in - -rec { - cog32 = i686.cog; - spur32 = i686.spur; - spur64 = if stdenv.is64bit then native.spur else "none"; - multi-vm-wrapper = callPackage ../wrapper { inherit cog32 spur32 spur64; }; -} diff --git a/pkgs/development/pharo/vm/share.nix b/pkgs/development/pharo/vm/share.nix deleted file mode 100644 index a2a55f2eb437e..0000000000000 --- a/pkgs/development/pharo/vm/share.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib, stdenv, fetchurl, unzip }: - -stdenv.mkDerivation rec { - version = "1.0"; - pname = "pharo-share"; - - dontUnpack = true; - - 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"; - }; - - sources50Zip = fetchurl { - url = "http://files.pharo.org/sources/PharoV50.sources.zip"; - sha256 = "1vmcah03zacvj1r2x27vdp63g6rcbz3prjd5sjy1z0a9xsjmqp25"; - }; - - sources60Zip = fetchurl { - url = "http://files.pharo.org/sources/PharoV60.sources.zip"; - sha256 = "0xbdi679ryb2zg412xy6zkh22l20pmbl92m3qhfgzjvgybna8z2a"; - }; - - nativeBuildInputs = [ unzip ]; - - installPhase = '' - mkdir -p $prefix/lib - - unzip ${sources10Zip} -d $prefix/lib/ - unzip ${sources20Zip} -d $prefix/lib/ - unzip ${sources30Zip} -d $prefix/lib/ - unzip ${sources40Zip} -d $prefix/lib/ - unzip ${sources50Zip} -d $prefix/lib/ - unzip ${sources60Zip} -d $prefix/lib/ - ''; - - meta = { - description = "Shared files for Pharo"; - homepage = "https://pharo.org"; - license = lib.licenses.mit; - maintainers = [ ]; - }; -} diff --git a/pkgs/development/pharo/vm/vms.nix b/pkgs/development/pharo/vm/vms.nix deleted file mode 100644 index a51366820a9d4..0000000000000 --- a/pkgs/development/pharo/vm/vms.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ cmake -, lib -, stdenv -, fetchurl -, bash -, unzip -, glibc -, openssl -, gcc -, libgit2 -, libGLU, libGL -, freetype -, xorg -, alsa-lib -, cairo -, libuuid -, autoreconfHook -, gcc48 -, fetchFromGitHub -, makeWrapper -, runtimeShell -, libnsl -} @args: - -let - pharo-vm-build = import ./build-vm.nix args; - pharo-vm-build-legacy = import ./build-vm-legacy.nix args; -in - -let suffix = if stdenv.is64bit then "64" else "32"; in - -{ - # Build the latest VM - spur = pharo-vm-build rec { - name = "pharo-spur${suffix}"; - version = "git.${revision}"; - src = fetchFromGitHub { - owner = "pharo-project"; - repo = "pharo-vm"; - rev = revision; - sha256 = "0dkiy5fq1xn2n93cwf767xz24c01ic0wfw94jk9nvn7pmcfj7m62"; - }; - # This metadata will be compiled into the VM and introspectable - # from Smalltalk. This has been manually extracted from 'git log'. - # - # The build would usually generate this automatically using - # opensmalltalk-vm/.git_filters/RevDateURL.smudge but that script - # is too impure to run from nix. - revision = "6a63f68a3dd4deb7c17dd2c7ac6e4dd4b0b6d937"; - source-date = "Tue May 30 19:41:27 2017 -0700"; - source-url = "https://github.com/pharo-project/pharo-vm"; - }; - - # Build an old ("legacy") CogV3 VM for running pre-spur images. - # (Could be nicer to build the latest VM in CogV3 mode but this is - # not supported on the Pharo VM variant at the moment.) - cog = pharo-vm-build-legacy rec { - version = "2016.02.18"; - name = "pharo-cog${suffix}"; - base-url = "http://files.pharo.org/vm/src/vm-unix-sources/blessed"; - src = fetchurl { - url = "${base-url}/pharo-vm-${version}.tar.bz2"; - sha256 = "16n2zg7v2s1ml0vvpbhkw6khmgn637sr0d7n2b28qm5yc8pfhcj4"; - }; - }; - -} diff --git a/pkgs/development/pharo/wrapper/default.nix b/pkgs/development/pharo/wrapper/default.nix deleted file mode 100644 index 1202b2dce6d46..0000000000000 --- a/pkgs/development/pharo/wrapper/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, file, makeDesktopItem, cog32, spur32, spur64 ? "none" }: - -stdenv.mkDerivation rec { - name = "pharo"; - src = ./pharo-vm.sh; - inherit cog32 spur32 spur64 file; - magic = ./magic; - desktopItem = makeDesktopItem { - inherit name; - desktopName = "Pharo VM"; - genericName = "Pharo Virtual Machine"; - exec = "pharo %F"; - icon = "pharo"; - startupNotify = false; - categories = [ "Development" ]; - mimeTypes = [ "application/x-pharo-image" ]; - }; - unpackPhase = '' - cp $src ./pharo-vm.sh - sourceRoot=$PWD - ''; - buildPhase = '' - substituteAllInPlace ./pharo-vm.sh - ''; - installPhase = '' - mkdir -p $out/bin - cp pharo-vm.sh $out/bin/pharo - chmod +x $out/bin/pharo - ''; - meta = { - description = "Pharo virtual machine (multiple variants)"; - - 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 a front-end for starting the virtual - machine. The command 'pharo-vm' automatically detects the type - of image and executes a suitable virtual machine: CogV3, Spur, - or Spur64. This makes it easy to open Pharo images because you - do not have to worry about which virtual machine variant is - required. - - More about the Cog family of virtual machines: - http://www.mirandabanda.org/cogblog/about-cog/ - ''; - - homepage = "http://pharo.org"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.lukego ]; - # Pharo VM sources are packaged separately for darwin (OS X) - platforms = lib.filter - (system: with lib.systems.elaborate { inherit system; }; - isUnix && !isDarwin) - lib.platforms.mesaPlatforms; - }; -} - diff --git a/pkgs/development/pharo/wrapper/magic b/pkgs/development/pharo/wrapper/magic deleted file mode 100644 index 3870ef2dd01c0..0000000000000 --- a/pkgs/development/pharo/wrapper/magic +++ /dev/null @@ -1,37 +0,0 @@ -# Smalltalk image file formats -0 lelong 6502 Smalltalk image V3 32b (%d) -!:mime application/squeak-image -0 belong 6502 Smalltalk image V3 32b (%d) -!:mime application/squeak-image -0 lelong 6504 Smalltalk image V3 32b +C (%d) -!:mime application/cog-image -0 belong 6504 Smalltalk image V3 32b +C (%d) -!:mime application/cog-image -0 lelong 68000 Smalltalk image V3 64b (%d) -!:mime application/squeak64-image -4 belong 68000 Smalltalk image V3 64b (%d) -!:mime application/squeak64-image -0 lelong 68002 Smalltalk image V3 64b +C (%d) -!:mime application/cog64-image -4 belong 68002 Smalltalk image V3 64b +C (%d) -!:mime application/cog64-image -0 lelong 6505 Smalltalk image V3 32b +C+NF (%d) -!:mime application/cog-image -0 belong 6505 Smalltalk image V3 32b +C+NF (%d) -!:mime application/cog-image -0 lelong 68003 Smalltalk image V3 64b +C+NF (%d) -!:mime application/cog64-image -4 belong 68003 Smalltalk image V3 64b +C+NF (%d) -!:mime application/cog64-image -0 lelong 6521 Smalltalk image Spur 32b +C+NF (%d) -!:mime application/spur-image -0 belong 6521 Smalltalk image Spur 32b +C+NF (%d) -!:mime application/spur-image -0 lelong 68019 Smalltalk image Spur 64b +C+NF (%d) -!:mime application/spur64-image -4 belong 68019 Smalltalk image Spur 64b +C+NF (%d) -!:mime application/spur64-image -0 lelong 68021 Smalltalk image Spur 64b +C+NF+Tag (%d) -!:mime application/spur64-image -4 belong 68021 Smalltalk image Spur 64b +C+NF+Tag (%d) -!:mime application/spur64-image diff --git a/pkgs/development/pharo/wrapper/pharo-vm.sh b/pkgs/development/pharo/wrapper/pharo-vm.sh deleted file mode 100644 index d5bd1a2d80186..0000000000000 --- a/pkgs/development/pharo/wrapper/pharo-vm.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# This is based on the script by David T. Lewis posted here: -# http://lists.squeakfoundation.org/pipermail/vm-dev/2017-April/024836.html -# -# VM run utility script -# usage: run <myimage> -# -# Select a VM and run an image based on the image format number - -PATH=$PATH:@file@/bin - -# Search for the image filename in the command line arguments -for arg in $* $SQUEAK_IMAGE; do - case ${arg} in - -*) # ignore - ;; - *) # either an option argument or the image name - if test -e ${arg}; then - magic=$(file -L -b -m @magic@ "$arg") - case "$magic" in - "Smalltalk image V3 32b"*) - image=${arg} - vm=@cog32@/bin/pharo-cog - ;; - "Smalltalk image Spur 32b"*) - image=${arg} - vm=@spur32@/bin/pharo-spur - ;; - "Smalltalk image Spur 64b"*) - if [ "@spur64vm@" == "none" ]; then - echo "error: detected 64-bit image but 64-bit VM is not available" >&2 - exit 1 - fi - image=${arg} - vm=@spur64@/bin/pharo-spur64 - ;; - esac - fi - ;; - esac -done - -# Print a message to explain our DWIM'ery. -if [ -n "$image" ]; then - echo "using VM selected by image type." - echo " image: $image" - echo " type: $magic" - echo " vm: $vm" -else - echo "using default vm; image type not detected" - vm=@cog32@/bin/pharo-cog -fi - -# Run the VM -set -f -exec -- "${vm}" "$@" - |