about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorPol Dellaiera <pol.dellaiera@protonmail.com>2023-08-03 18:20:01 +0200
committerGitHub <noreply@github.com>2023-08-03 18:20:01 +0200
commit9aabdcf43f70b18bdebc39d7796c984672603d3e (patch)
treed0c45c472ee8fba176178281541595154e922333 /pkgs/development
parent69a8986058d36dc7444bfb7c2f030b94389af7f5 (diff)
parente85228766cff240418ddb8e0cb449805d0812d48 (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.nix99
-rw-r--r--pkgs/development/pharo/launcher/default.nix83
-rw-r--r--pkgs/development/pharo/vm/build-vm-legacy.nix104
-rw-r--r--pkgs/development/pharo/vm/build-vm.nix179
-rw-r--r--pkgs/development/pharo/vm/default.nix13
-rw-r--r--pkgs/development/pharo/vm/share.nix58
-rw-r--r--pkgs/development/pharo/vm/vms.nix67
-rw-r--r--pkgs/development/pharo/wrapper/default.nix60
-rw-r--r--pkgs/development/pharo/wrapper/magic37
-rw-r--r--pkgs/development/pharo/wrapper/pharo-vm.sh57
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}" "$@"
-