From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id WHt+Esd3VWcXWgAA62LTzQ:P1 (envelope-from ) for ; Sun, 08 Dec 2024 10:41:11 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id WHt+Esd3VWcXWgAA62LTzQ (envelope-from ) for ; Sun, 08 Dec 2024 11:41:11 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=Uaecu6Cz; dkim=fail ("headers rsa verify failed") header.d=disroot.org header.s=mail header.b=j9sLeCbT; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1733654471; a=rsa-sha256; cv=none; b=cPTiD5UWPn01wL8J+sBvQlJVtTahQ4QJ3Qx7Rnpl5fFUOuOk6NX4T2pUX6XcvUnGzKJXMu wQB9T8OmLrrUy3FWuW6iVUiWaaq/a+7XfNLmL17Y+HtIBzhLEyI/f9aWJbx8g1dyPotUwg /nHbOFO7QWkdT+/WYJelADttwXu8kftEtTgTcPAfK8eurI5+1K2eLPBT/fDmmGLrWevr6y 0nai/xwkPVZ7x16xpu0WEjhZOn2TbY9E2W13lv5fo4WGFl9xyh4TS3M/ejv2CuuwD5oxXZ KbxYfhJY5qgcb+LzS3iFRJ54cyeGbvQq31X+KbHiCiZboZ2Oo74iLWoHgjvbdw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=Uaecu6Cz; dkim=fail ("headers rsa verify failed") header.d=disroot.org header.s=mail header.b=j9sLeCbT; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1733654471; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=9JG+Tobs4HZtI9OSahhfn2U2fDOP/3lwL47tuMHbw/U=; b=UGZIiT/Ncik3/ifLCapxomvYNNYX7KLU1zArzNcSyETcIoGKz5SltVfnGiVVCgF/qqZRCd YXebvCuZO/iOvlcSv/doUmZ9UbZavO+yJLce+Vlj+iOHIwEYuS3fJ0+TlLbsX+MbQ1md8a k77ssadx67wTSr4huERIr0Yjaom3hWpK+esnW+PLUM+A1fZsQhradvYVj7wI0HbJgbiwO+ gmJ3OrvemzaFzNgIFzGE5QmkiHjd6JNgpFBW6Gbbrbk3WOGl7WcNrZ4/hXjth2bgH3DMMb OhBRmQiUGAzgIwgFhBEbbquOOr+wWKoWsFwdSOxx2wyD9I1hEFSfJbb6NzgT5A== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8E3781F20C for ; Sun, 08 Dec 2024 11:41:10 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tKEiY-00040K-2H; Sun, 08 Dec 2024 05:40:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tKCf2-0005DP-2t for guix-patches@gnu.org; Sun, 08 Dec 2024 03:29:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tKCf1-0006vC-Qk for guix-patches@gnu.org; Sun, 08 Dec 2024 03:29:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:Subject; bh=9JG+Tobs4HZtI9OSahhfn2U2fDOP/3lwL47tuMHbw/U=; b=Uaecu6CzcBfHTwc1nKlRViPZrDKV6VOX/InFihHRIsmYC+jxShrF8raL6HlVQG3/ovNVZFETqVUUkrOAEm7NWtZ39/wQKUErnqRkFJGMYAtKjq2QOnHBNTf2VQ1fHZSMc98wLNgAnZ2AXdmeLE2pw7eXa4etyaE4GtzxVu5DkYZML/FmE6dP9fdKD3pFQ9NAwqaoOkyRazeuMqEVii5f37BJbOhexiD4za6le83Za+T9QcyyE2dhKSnHRv/1SeYUp/vJZTLfYTE16qVqxubCQAXiysQhqyPvrqFgB8neia5k2DD759YrzCLmtwBRgFQ7F29GMz0t/8iEHDUPUrkFKw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tKCf1-0003gT-Ks for guix-patches@gnu.org; Sun, 08 Dec 2024 03:29:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#74734] [PATCH] gnu: Add inferno Resent-From: Homo Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 08 Dec 2024 08:29:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 74734 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 74734@debbugs.gnu.org Cc: Homo X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.173364653514112 (code B ref -1); Sun, 08 Dec 2024 08:29:03 +0000 Received: (at submit) by debbugs.gnu.org; 8 Dec 2024 08:28:55 +0000 Received: from localhost ([127.0.0.1]:49632 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tKCeq-0003fT-Aw for submit@debbugs.gnu.org; Sun, 08 Dec 2024 03:28:55 -0500 Received: from lists.gnu.org ([209.51.188.17]:40834) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tK58Q-0004Y3-0U for submit@debbugs.gnu.org; Sat, 07 Dec 2024 19:26:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tK56K-0006vl-7R for guix-patches@gnu.org; Sat, 07 Dec 2024 19:24:44 -0500 Received: from layka.disroot.org ([178.21.23.139]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tK56G-0002d9-Es for guix-patches@gnu.org; Sat, 07 Dec 2024 19:24:43 -0500 Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 5A40C252C0; Sun, 8 Dec 2024 01:24:37 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 9eEhnHEWURTA; Sun, 8 Dec 2024 01:24:24 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1733617464; bh=YMaytbtVkG3SaGqNb3/iRuLWqe8hBzGpMHxj4L1kKBY=; h=From:To:Cc:Subject:Date; b=j9sLeCbT6Njr1iI0xlSuoXjMXxNCzHa4ZS+BZ16Y5eIUf0M6dBaPO8ChYureLOdg+ BYfuuBYfH/V/QnuWmS/XHg4I1JQCCbY3aN9x2Szpi8kwn1ZG7J5GVnYqhb/YgxI//M etEi7k7pIoVwUU8kBt1tegC9KosAXJhL5eK9x4gOESEdAYM2vCV4DU4ZdHPtenpw9Z XTFOZ+zDqJA192pK0zcH59ZU+VPgSsMGqxBi3ad0E4Cpqitjs1FB5kFcMIHVuLX3bw xbWxkwNJq4vR3Y7JnBAn93A2F3dZt1E4i2j9S19pnuYsDKXn1uwZUGyL5vM7zvc16P UlOOO+eDNEiYA== Date: Sun, 8 Dec 2024 02:24:09 +0200 Message-ID: <20241208002411.20796-1-gay@disroot.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=178.21.23.139; envelope-from=gay@disroot.org; helo=layka.disroot.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 08 Dec 2024 03:28:50 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Sun, 08 Dec 2024 05:40:44 -0500 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Homo X-ACL-Warn: , Homo via Guix-patches From: Homo via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -4.05 X-Spam-Score: -4.05 X-Migadu-Queue-Id: 8E3781F20C X-Migadu-Scanner: mx10.migadu.com X-TUID: USS5QcwIoZ8t Based on earlier work rejected for licensing reasons, code has been relicensed from LPL to MIT and all fonts are removed from distribution, instead fonts from plan9port are used. --- gnu/local.mk | 1 + gnu/packages/inferno.scm | 336 +++++++++++++++++++ gnu/packages/patches/inferno-fix-crash.patch | 14 + 3 files changed, 351 insertions(+) create mode 100644 gnu/packages/inferno.scm create mode 100644 gnu/packages/patches/inferno-fix-crash.patch diff --git a/gnu/local.mk b/gnu/local.mk index a7bd32453b..42dcf82ea3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -375,6 +375,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/image-processing.scm \ %D%/packages/image-viewers.scm \ %D%/packages/imagemagick.scm \ + %D%/packages/inferno.scm \ %D%/packages/inklingreader.scm \ %D%/packages/inkscape.scm \ %D%/packages/installers.scm \ diff --git a/gnu/packages/inferno.scm b/gnu/packages/inferno.scm new file mode 100644 index 0000000000..b4a60ad34c --- /dev/null +++ b/gnu/packages/inferno.scm @@ -0,0 +1,336 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Diego Nicola Barbato +;;; Copyright © 2024 Homo +;;; +;;; 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 . + +(define-module (gnu packages inferno) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages plan9) + #:use-module (gnu packages xorg) + #:use-module (ice-9 match)) + +(define-public inferno + (let ((commit "67e70befb2ad0058fd7894be34c492ddb6d09988") + (revision "0")) + (package + (name "inferno") + (version (git-version "4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inferno-os/inferno-os") + (commit commit) + ;; Inferno uses customized Freetype library with #include "lib9.h" + ;; TODO: use packaged Freetype library. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g3fzb991hbwa7r3vsnybw7m1v13nins5ajmygnvz4vmx5rzl405")) + (patches (search-patches "inferno-fix-crash.patch")) + ;; Remove bundled non-free and potentially non-free fonts. + (modules '((guix build utils))) + (snippet '(begin + (delete-file-recursively "fonts") #t)))) + (build-system gnu-build-system) + (inputs `(("libx11" ,libx11) + ("libxext" ,libxext) + ("plan9port" ,plan9port) + ("xorgproto" ,xorgproto))) + (arguments + `( ;Force a 32-bit build targeting a similar architecture, i.e.: + ;; armhf for armhf/aarch64, i686 for i686/x86_64. + #:system ,@(match (%current-system) + ((or "armhf-linux" "aarch64-linux") + `("armhf-linux")) + (_ `("i686-linux"))) + #:phases (let* ((bash (assoc-ref %build-inputs "bash")) + (objtype ,@(match (%current-system) + ((or "armhf-linux" "aarch64-linux") + `("arm")) + (_ `("386")))) + (out (assoc-ref %outputs "out")) + (root (string-append out "/share/inferno")) + (root/bindir (string-append root "/Linux/" objtype + "/bin")) + (root/fontdir (string-append root "/fonts")) + (simulate-fonts (lambda (size targets) + (string-concatenate (map (lambda (file) + (string-append + "ramfile /fonts/" + file + ".font; " + "bind /fonts/fixed/unicode." + size + ".font /fonts/" + file + ".font; ")) + targets)))) + (bindir (string-append out "/bin")) + (emu-script (string-append bindir "/emu")) + (infwm-script (string-append bindir "/infwm"))) + `(,(assoc 'set-paths %standard-phases) (unpack unquote + (lambda* (#:key + source + #:allow-other-keys) + ;; Extract directly to 'root' since the source + ;; tree doubles as Inferno's root directory + ;; and its path is baked into the emu binary. + (mkdir-p + root) + (copy-recursively + source + root) + (chdir + root) + #t)) + (patch-src-files unquote + (lambda _ + ;; Substitute ocurrences of /bin/sh. + (for-each (lambda (file) + (substitute* file + (("/bin/sh") + (string-append bash + "/bin/sh")))) + '("makemk.sh" + "mkfiles/mkhost-Linux" + "emu/Linux/mk-wrt" + "utils/mk/Posix.c")) + ;; Do not pass '-m32' unconditionally + ;; when building mk. + (substitute* "makemk.sh" + (("-m32") + "")) + ;; Use the correct name for gcc. + (substitute* "mkfiles/mkfile-Linux-386" + (("cc -") + ;; Don't match yacc. + "gcc -")) + (substitute* "mkfiles/mkfile-Linux-arm" + (("arm-gcc") + "gcc")) + ;; Conflicting occurence of fsub. + (for-each (lambda (file) + (substitute* file + (("fsub") + "_fsub"))) + '("utils/libmach/vcodas.c" + "utils/libmach/vdb.c")) + ;; Fix build. + (for-each (lambda (file) + (substitute* file + (("^CFLAGS=") + "CFLAGS=-D_GNU_SOURCE -fcommon"))) + '("mkfiles/mkfile-Linux-386" + "mkfiles/mkfile-Linux-arm" + "mkfiles/mkfile-Linux-power" + "mkfiles/mkfile-Linux-spim")) + ;; Make build reproducible by + ;; ensuring timestamps embedded into + ;; binaries are set to 0. + (substitute* "emu/Linux/mkfile" + (("^KERNDATE=.*$") + "KERNDATE=0\n")) + #t)) + (configure unquote + (lambda _ + (substitute* "mkconfig" + (("ROOT=/usr/inferno") + (string-append "ROOT=" root)) + (("SYSHOST=Plan9") + "SYSHOST=Linux") + (("OBJTYPE=\\$objtype") + (string-append "OBJTYPE=" objtype))) #t)) + ;; Build mk. + ;; TODO: Use mk from plan9port or 9base instead. + (makemk unquote + (lambda _ + (invoke "./makemk.sh"))) + (build unquote + (lambda _ + ;; Add mk's location to PATH. + (setenv "PATH" + (string-append root/bindir ":" + (getenv "PATH"))) + ;; Build emu and .dis files using mk. + (invoke "mk" "-s" "nuke" "mkdirs" "install"))) + (install unquote + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p bindir) + (mkdir-p root/fontdir) + ;; Install emu script. + (with-output-to-file emu-script + (lambda () + (display (string-append "#!" + bash + "/bin/sh\n" + "exec " + root/bindir + "/emu " + "/dis/sh.dis -c \"" + ;; Use plan9port's fonts. + "bind '#U*" + (search-input-directory inputs + "/plan9/font") + "' /fonts; " + ;; Pretend fonts were not removed. + ;; TODO: de-hardcode. + ;; TODO: use fonts available in the host system. + ;; TODO: minitel fonts. + "memfs -b /fonts; " + (string-concatenate (map (lambda + (dir) + (string-append + "mkdir /fonts/" + dir + "; " + "bind /fonts/fixed /fonts/" + dir + "; ")) + '("charon" + "lucida" + "lucidasans" + "lucm" + "pelm"))) + (simulate-fonts "6x9" + '("charon/cw.tiny" + "charon/plain.tiny" + "lucida/unicode.6" + "lucidasans/latin1.6" + "lucidasans/typelatin1.6" + "lucidasans/unicode.6")) + (simulate-fonts "7x13" + '("charon/cw.small" + "charon/plain.small" + "lucida/unicode.7" + "lucidasans/latin1.7" + "lucidasans/typelatin1.7" + "lucidasans/unicode.7")) + (simulate-fonts "8x13" + '("charon/cw.normal" + "charon/plain.normal" + "lucida/unicode.8" + "lucidasans/euro.8" + "lucidasans/latin1.8" + "lucidasans/typelatin1.8" + "lucidasans/unicode.8" + "pelm/unicode.8")) + (simulate-fonts "9x15" + '("charon/cw.large" + "charon/plain.large" + "lucida/unicode.10" + "lucidasans/latin1.10" + "lucidasans/typelatin1.10" + "lucidasans/unicode.10" + "lucm/unicode.9" + "pelm/ascii.12" + "pelm/latin1.9" + "pelm/unicode.9")) + (simulate-fonts "10x20" + '("charon/cw.vlarge" + "charon/plain.vlarge" + "lucida/moo.16" + "lucida/unicode.13" + "lucidasans/latin1.13" + "lucidasans/typelatin1.13" + "lucidasans/unicode.13" + "pelm/ascii.16")) + (simulate-fonts "6x13O" + '("charon/italic.tiny" + "charon/italic.small" + "lucidasans/italiclatin1.6" + "lucidasans/italiclatin1.7")) + (simulate-fonts "7x13O" + '("charon/italic.normal" + "lucidasans/italiclatin1.8")) + (simulate-fonts "8x13O" + '("charon/italic.large" + "charon/italic.vlarge" + "lucidasans/italiclatin1.10" + "lucidasans/italiclatin1.13")) + (simulate-fonts "6x13B" + '("charon/bold.tiny" + "lucidasans/boldlatin1.6")) + (simulate-fonts "7x13B" + '("charon/bold.small" + "lucidasans/boldlatin1.7")) + (simulate-fonts "8x13B" + '("charon/bold.normal" + "lucidasans/boldlatin1.8")) + (simulate-fonts "9x15B" + '("charon/bold.large" + "lucidasans/boldlatin1.10")) + (simulate-fonts "9x18B" + '("charon/bold.vlarge" + "lucidasans/boldlatin1.13")) + ;; Bind the host's /tmp to Inferno's + ;; /tmp to make it writable. + "bind -bc '#U*/tmp' /tmp; " + ;; Bind the host's /home to Inferno's + ;; /usr. + "bind '#U*/home' /usr; " + "$*\"\n")))) + (chmod emu-script #o755) + ;; Install infwm script. + (with-output-to-file infwm-script + (lambda () + (display (string-append "#!" + bash + "/bin/sh\n" + "exec " + bindir + "/emu $* wm/wm wm/logon -u $USER\n")))) + (chmod infwm-script #o755) + ;; Install a symlink to the Limbo compiler. + (symlink (string-append root/bindir "/limbo") + (string-append bindir "/limbo")) + #t)))))) + (home-page "https://www.inferno-os.org") + (synopsis + "Compact operating system for building cross-platform distributed systems") + (description + ;; Except for the last sentence this is taken verbatim from the + ;; intro(1) man page (man/1/0intro in the source tree). + "Inferno is a virtualised operating system that can run natively across +a wide range of processor architectures or hosted on a wide range of +operating systems. The principal components of the system are: +@itemize +@item The Inferno kernel which can run both native and hosted on a +range of platforms and which presents the same interface to programs +in both cases. +@item The Dis virtual machine. +@item Styx - the tiny broad-spectrum file service protocol. +@item Limbo - a new simple, modular, concurrent programming language. +@item Tk and Prefab - graphical user interface (GUI) primitives +without a lot of goo. +@item The portable cross-development suites that allow any native +Inferno platform to be cross-compiled on any hosted system. +@end itemize +This package provides hosted Inferno. +") + (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux" + "aarch64-linux")) + (license (list license:expat ;MIT license + license:freetype + ;; According to NOTICE the combined work is effectively + ;; GPLv2+. + license:gpl2+ + license:lgpl2.0+))))) diff --git a/gnu/packages/patches/inferno-fix-crash.patch b/gnu/packages/patches/inferno-fix-crash.patch new file mode 100644 index 0000000000..acf7b718b8 --- /dev/null +++ b/gnu/packages/patches/inferno-fix-crash.patch @@ -0,0 +1,14 @@ +diff --git a/emu/Linux/os.c b/emu/Linux/os.c +index 08b039d6..0d8a0cf3 100644 +--- a/emu/Linux/os.c ++++ b/emu/Linux/os.c +@@ -18,6 +18,9 @@ + + #include + ++/* For dynamic linking init/fini code that needs malloc */ ++void (*coherence)(void) = nofence; ++ + /* glibc 2.3.3-NTPL messes up getpid() by trying to cache the result, so we'll do it ourselves */ + #include + #define getpid() syscall(SYS_getpid) -- 2.46.0