diff --git a/zilti/packages/pharo.scm b/zilti/packages/pharo.scm new file mode 100644 index 0000000..b38f791 --- /dev/null +++ b/zilti/packages/pharo.scm @@ -0,0 +1,77 @@ +(define-module (zilti packages pharo) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix build-system cmake) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages libffi) + #:use-module (gnu packages linux) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xdisorg)) + +(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_BIN_LOCATION=" + (assoc-ref %outputs "out") "/bin") + (string-append "-DPHARO_LIBRARY_PATH=" + (assoc-ref %outputs "out") "/lib") + "-DGENERATED_SOURCE_DIR=." + "-DALWAYS_INTERACTIVE=on" + "-DBUILD_IS_RELEASE=on" + "-DGENERATE_SOURCES=off" + "-DBUILD_BUNDLE=off") + #:phases + #~(modify-phases %standard-phases + (delete 'check) + (add-after 'install 'really-install + (lambda _ + (let ((bin (string-append #$output "/bin")) + (lib (string-append #$output "/lib"))) + (wrap-program "./build/vm/pharo" + `("LD_LIBRARY_PATH" prefix (,lib))) + (mkdir-p bin) + (mkdir-p lib) + (copy-recursively "./build/vm/pharo" + (string-append bin "/pharo")) + (for-each (lambda (file) + (let ((inode (string-append "./build/vm/" file))) + (copy-recursively + inode + (string-append lib "/" file)))) + (with-directory-excursion + "./build/vm" + (find-files "." + (lambda (file stat) + (string-contains file ".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)))