aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/smalltalk.scm
blob: 9b36d83a80ccab0308c87dd06d8a6ca1fe1c1ad5 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages smalltalk)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system cmake)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages audio)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages base)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages fontutils)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages libsigsegv)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages pulseaudio)
  #:use-module (gnu packages xorg))

(define-public smalltalk
  (package
    (name "smalltalk")
    (version "3.2.5")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "mirror://gnu/smalltalk/smalltalk-"
                          version ".tar.xz"))
      (sha256
       (base32
        "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("libffi" ,libffi)
       ("libltdl" ,libltdl)
       ("libsigsegv" ,libsigsegv)
       ("pkg-config" ,pkg-config)))
    (inputs
     `(("zip" ,zip)))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-before 'configure 'fix-libc
           (lambda _
             (let ((libc (assoc-ref %build-inputs "libc")))
               (substitute* "libc.la.in"
                 (("@LIBC_SO_NAME@") "libc.so")
                 (("@LIBC_SO_DIR@")  (string-append libc "/lib"))))
             #t)))))
    (home-page "http://smalltalk.gnu.org/")
    (synopsis "Smalltalk environment")
    (description
     "GNU Smalltalk is a free implementation of the Smalltalk language.  It
implements the ANSI standard for the language and also includes extra classes
such as ones for networking and GUI programming.")
    (license license:gpl2+)))

(define-public squeak-vm
  (package
    (name "squeak-vm")
    (version "4.10.2.2614")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "http://www.squeakvm.org/unix/release/"
                           "Squeak-" version "-src.tar.gz"))
       (sha256
        (base32
         "0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix"))
       (modules '((guix build utils)))
       (snippet
        ;; Make builds bit-reproducible.
        '(begin
           (substitute* "unix/cmake/verstamp"
             (("vm_date=.*")
              "vm_date = \"1970-01-01\";\n")
             (("ux_version=.*")
              "ux_version = \"GNU\";\n"))
           (substitute* "unix/vm/config.cmake"
             (("\\(VM_BUILD_STRING.*")
              "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")"))
           #t))))
    (inputs
     `(("alsa-lib" ,alsa-lib)
       ("dbus" ,dbus)
       ("freetype" ,freetype)
       ("libffi" ,libffi)
       ("libxrender" ,libxrender)
       ("mesa" ,mesa)
       ("pulseaudio" ,pulseaudio)))
    (native-inputs
     `(("pkg-config" ,pkg-config)))
    (build-system cmake-build-system)
    (arguments
     `(#:tests? #f                      ;no check target
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'remove-hardcoded-PATH
           (lambda _
             ;; Remove hard-coded FHS PATH entries.
             (substitute* '("unix/cmake/squeak.in"
                            "unix/cmake/squeak.sh.in")
               (("^PATH=.*") ""))
             #t))
         (add-after 'unpack 'create-build-dir
           (lambda _
             (mkdir "bld")
             #t))
         (replace 'configure
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (with-directory-excursion "bld"
                 (invoke "../unix/cmake/configure"
                           (string-append "--prefix=" out)
                           "--without-quartz")
                 #t))))
         (replace 'build
           (lambda _
             (with-directory-excursion "bld"
               (invoke "make"))
             #t)))))
    (synopsis "Smalltalk programming language and environment")
    (description "Squeak is a full-featured implementation of the Smalltalk
programming language and environment based on (and largely compatible with)
the original Smalltalk-80 system.  Squeak has very powerful 2- and 3-D
graphics, sound, video, MIDI, animation and other multimedia capabilities.  It
also includes a customisable framework for creating dynamic HTTP servers and
interactively extensible Web sites.")
    (home-page "http://www.squeakvm.org")
    (license license:x11)))
sg-tooltip'>* gnu/packages/hurd.scm (hurd-target?): Remove. (hurd-system?): Move to... * guix/utils.scm (system-hurd?): ...here. * gnu/packages/*: Update all users, removing (gnu packages hurd) include where now unused. Janneke Nieuwenhuizen 2023-06-02gnu: gcc-boot0: Do not use 'coreutils-boot0' on GNU/Hurd....Fixes <https://issues.guix.gnu.org/63789>. Reported by Janneke Nieuwenhuizen <janneke@gnu.org>. * gnu/packages/commencement.scm (gcc-boot0)[source]: Use '%bootstrap-coreutils&co' when on GNU/Hurd. Ludovic Courtès 2023-05-29gnu: commencement: m4-boot0: Disable tests for the Hurd too....GNU lib's stack-overflow tests fail. * gnu/packages/commencement.scm (m4-boot0)[arguments]: Set #:tests? to #false for the Hurd. Janneke Nieuwenhuizen 2023-05-07gnu: findutils: Update XFAIL_TESTS for the hurd....This could do with more investigating, but this reflects what I see locally. * gnu/packages/base.scm (findutils)[arguments]: Update XFAIL_TESTS for the hurd. * gnu/packages/commencement.scm (findutils-boot0): Stop clearing the make-flags, so the above change applies to findutils-boot0. Christopher Baines 2023-05-07Revert "gnu: gcc-11: Adapt patching for hurd to not use gexp's."...This reverts commit 08acdd0765b5f4fbfafa699a823ea7985d4d35a7. This change is now unnecessary now that gcc-boot0 uses gexps (a795a02a9d988be5a762886620f7bb6a95e7ffdb). * gnu/packages/gcc.scm (gcc-11)[arguments]: Use gexp for modify-phases. [native-inputs]: Remove. * gnu/packages/commencement.scm (gcc-boot0)[native-inputs]: Remove. Christopher Baines 2023-05-07gnu: Use gexps for gcc-boot0 and related packages....There are currently problems with native or cross building for i586-gnu, and one factor mixed up with this is that some of the gcc packages use sexp's for the phases, and thus introducing gexp's has caused problems. As part of the going in circles with this, this commit switches gcc-boot0 to use gexp's in it's arguments, and then also modifies libstdc++-boot0, libstdc++-boot0-gcc7, cross-gcc-wrapper, gcc-final and make-libstdc++ to handle this change. If done correctly, this change shouldn't affect any derivations. * gnu/packages/commencement.scm (libstdc++-boot0, libstdc++-boot0-gcc7, gcc-boot0, gcc-final)[arguments]: Use gexps. (cross-gcc-wrapper): Use gexps in the generated package. * gnu/packages/gcc.scm (make-libstdc++): Use gexps in the generated package. Christopher Baines 2023-05-05gnu: gcc-11: Fix patch-hurd-libpthread phase....It didn't work when it was introduced in 08acdd0765b5f4fbfafa699a823ea7985d4d35a7. * gnu/packages/gcc.scm (gcc-11)[arguments]: Remove the procedure arguments, and use %build-inputs rather than inputs. * gnu/packages/commencement.scm (gcc-boot0)[native-inputs]: Add hurd-patch, as this package inherits from gcc-11. Christopher Baines 2023-04-10gnu: Add gdc-toolchain-11....* gnu/packages/commencement.scm (gdc-toolchain-11): New variable. Efraim Flashner 2023-03-20Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge 2023-03-15gnu: coreutils-boot0: Fix building on armhf-linux....* gnu/packages/commencement.scm (coreutils-boot0)[arguments]: When building for armhf-linux include the workaround to force 32-bit time. Rearrange arguments so that the configure-flags for armhf-linux aren't overridden. Efraim Flashner 2023-03-02Merge remote-tracking branch 'savannah/master' into core-updates...Conflicts: gnu/local.mk gnu/packages/autotools.scm gnu/packages/cmake.scm gnu/packages/gnuzilla.scm gnu/packages/haskell.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/samba.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/wxwidgets.scm Christopher Baines 2023-02-28gnu: static-bash-for-glibc: Use gexps....* gnu/packages/commencement.scm (static-bash-for-glibc)[arguments]: Use gexps. Ludovic Courtès 2023-03-04gnu: mig: Remove dependency on Perl....* gnu/packages/hurd.scm (mig)[inputs]: Remove PERL. [arguments]: Remove 'patch-non-shebang-references' phase and add 'avoid-perl-dependency' phase. Ludovic Courtès 2023-02-15gnu: commencement: mes-boot: Update to 0.24.2....This fixes <https://debbugs.gnu.org/41264>. * gnu/packages/commencement.scm (mes-boot): Update to 0.24.2. Jan (janneke) Nieuwenhuizen 2023-02-15gnu: commencement: tcc-boot: Rebuild Mes C Library....* gnu/packages/commencement.scm (tcc-boot)[arguments]: Rebuild the Mes C Library in the "install" phase. Jan (janneke) Nieuwenhuizen 2023-02-15Revert "gnu: commencement: mes-boot: Update to 0.24.2."...This reverts commit b928e38bd333e6186727fe5c5e94b85d157b79d6. The gcc-core-mesboot0 package fails to build with mes-boot-0.24.2, `ar' segfaults $ strace ar rc libiberty.a argv.o execve("/gnu/store/nvb6jh26hfjifs79h7hrlkw3cisgc353-binutils-mesboot0-2.20.1a/bin/ar", ["ar", "rc", "libiberty.a", "argv.o"], 0x7ffc4187fff8 /* 82 vars */) = 0 [ Process PID=22689 runs in 32 bit mode. ] brk(NULL) = 0x830f000 brk(0x830f000) = 0x830f000 stat64("libiberty.a", {st_mode=S_IFREG|0600, st_size=8, ...}) = 0 brk(0x830f0a4) = 0x830f0a4 brk(0x830f0b4) = 0x830f0b4 brk(0x8310098) = 0x8310098 brk(0x83100a4) = 0x83100a4 brk(0x8311088) = 0x8311088 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x63ecebc8} --- +++ killed by SIGSEGV +++ Segmentation fault See also <https://debbugs.gnu.org/41264>. Jan (janneke) Nieuwenhuizen 2023-02-15gnu: commencement: mes-boot: Update to 0.24.2....This fixes <https://debbugs.gnu.org/41264>. * gnu/packages/commencement.scm (mes-boot): Update to 0.24.2. Jan (janneke) Nieuwenhuizen 2023-02-14gnu: %boot6-inputs: Replace xz with xz-final....* gnu/packages/commencement.scm (xz-final): New variable. (%boot6-inputs): Add xz-final. Remove xz. (%final-inputs): Add xz-final. Remove xz from packages 'to finalize'. Efraim Flashner 2023-02-12gnu: coreutils-boot0: Add comment about arm* configure-flags....* gnu/packages/commencement.scm (coreutils-boot0)[arguments]: Add a full comment around the configure-flags used when building for arm architectures. Efraim Flashner 2023-02-05gnu: Rename 'guile-3.0/fixed' to 'guile-3.0/pinned'....* gnu/packages/guile.scm: Rename variable 'guile-3.0/fixed' to 'guile-3.0/pinned', add deprecation. * etc/release-manifest.scm (%packages-to-cross-build): Replace 'guile-3.0/fixed' with 'guile-3.0/pinned'. * gnu/packages/autotools.scm (make-autoconf-wrapper)[inputs]: Likewise. * gnu/packages/commencement.scm (guile-final): Likewise. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Simon Tournier 2023-01-30Merge remote-tracking branch 'origin/master' into core-updates... Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm Efraim Flashner 2022-12-11gnu: coreutils-boot0: Fix building on arm architectures....* gnu/packages/commencement.scm (coreutils-boot0)[arguments]: When building for arm architectures skip building some programs. Efraim Flashner