summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/smalltalk.scm67
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)))