diff options
-rw-r--r-- | gnu/packages/smalltalk.scm | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index 64146813d1..a27237ef81 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2024 Daniel Ziltener <dziltener@lyrion.ch> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ (define-module (gnu packages smalltalk) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) @@ -36,13 +38,17 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages libffi) #:use-module (gnu packages libsigsegv) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xorg) + #:use-module (gnu packages xdisorg)) (define-public smalltalk (package @@ -184,3 +190,62 @@ also includes a customisable framework for creating dynamic HTTP servers and interactively extensible Web sites.") (home-page "http://squeakvm.org/") (license license:x11))) + +(define-public pharo-vm + (package + (name "pharo-vm") + (version "10.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://files.pharo.org/vm/pharo-spur64-headless/Linux-x86_64/source/PharoVM-" version "-32b2be5-Linux-x86_64-c-src.tar.gz")) + (sha256 + (base32 + "1hbkvfrw57sz5nw48z64789yjcry9l1am4hmkndy9dd6i06n2c2n")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list + (string-append "-DPHARO_LIBRARY_PATH=" #$output "/lib") + "-DGENERATED_SOURCE_DIR=." + "-DALWAYS_INTERACTIVE=on" + "-DBUILD_IS_RELEASE=on" + "-DGENERATE_VMMAKER=off" ; FIXME: bootstrap chain to resolve + "-DGENERATE_SOURCES=off" ; FIXME: properly generate sources + "-DFEATURE_COMPILE_GNUISATION=on" + "-DBUILD_BUNDLE=off" + "-DWITHOUT_DEPENDENCIES=on" + (string-append "-DCMAKE_INSTALL_PREFIX=" #$output) + ;; add libraries of the project itself to rpath + (string-append "-DCMAKE_INSTALL_RPATH=" #$output "/lib") + "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE") + #:tests? #false ; no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-rpath + (lambda _ + (substitute* "cmake/Linux.cmake" + (("set\\(CMAKE_C_FLAGS \"\\$\\{CMAKE_C_FLAGS\\}\ + -Wl,-rpath=\\.\"\\)") + "")))) + (add-after 'install 'really-install + (lambda _ + (install-file "./build/vm/pharo" + (string-append #$output "/bin")) + (for-each + (lambda (file) + (install-file file (string-append #$output "/lib"))) + (find-files "./build/vm" "\\.so"))))))) + (inputs + (list libffi + libgit2 + cairo + freetype + pixman + libpng + util-linux)) + (synopsis "This is the VM used by Pharo") + (home-page "https://www.pharo.org") + (description "This is the VM used by Pharo.") + (license license:expat))) |