Subject: Re: [PATCH 1/3] gnu: Add inform.

From: Adam Faiz <[email-masked]>
Date: Sun, 24 Dec 2023 20:35:24 +0800

On 12/23/23 01:05, Liliana Marie Prikler wrote:
> Am Donnerstag, dem 21.12.2023 um 18:40 +0800 schrieb Adam Faiz:
>> From 7e5c86c9e60ba200f14c0fd8ef8e555c0dabcbc1 Mon Sep 17 00:00:00
>> 2001
>> Message-ID:
>> <7e5c86c9e60ba200f14c0fd8ef8e555c0dabcbc1.1703154486.git.adam.faiz@di
>> sroot.org>
>> In-Reply-To: <[email-masked]>
>> References: <[email-masked]>
>> From: AwesomeAdam54321 <[email-masked]>
>> Date: Thu, 21 Dec 2023 18:15:41 +0800
>> Subject: [PATCH 1/3] gnu: Add inform.
>>
>> * gnu/packages/patches/inform-add-makefile.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Register it here.
>> * gnu/packages/game-development.scm (inform): New variable.
>> ---
>>  gnu/local.mk                                  |   1 +
>>  gnu/packages/game-development.scm             |  25 ++++
>>  .../patches/inform-add-makefile.patch         | 109
>> ++++++++++++++++++
>>  3 files changed, 135 insertions(+)
>>  create mode 100644 gnu/packages/patches/inform-add-makefile.patch
>>
>> diff --git a/gnu/local.mk b/gnu/local.mk
>> index f7aec83e8a..1bc955ce1f 100644
>> --- a/gnu/local.mk
>> +++ b/gnu/local.mk
>> @@ -1449,6 +1449,7 @@ dist_patch_DATA
>> =                                         \
>>    %D%/packages/patches/imagemagick-ReadDCMImage-fix.patch      \
>>    %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch     \
>>    %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-
>> fix.patch       \
>> +  %D%/packages/patches/inform-add-makefile.patch               \
>>    %D%/packages/patches/inkscape-poppler-compat.patch           \
>>    %D%/packages/patches/instead-use-games-path.patch            \
>>    %D%/packages/patches/intltool-perl-compatibility.patch       \
>> diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-
>> development.scm
>> index a2d7c5ea63..0c467de23f 100644
>> --- a/gnu/packages/game-development.scm
>> +++ b/gnu/packages/game-development.scm
>> @@ -2771,6 +2771,31 @@ (define-public ioquake3
>>  people base their games, ports to new platforms, and other
>> projects.")
>>        (license license:gpl2))))
>>  
>> +(define-public inform
>> +  (package
>> +    (name "inform")
>> +    (version "6.41")
>> +    (source
>> +     (origin
>> +       (method git-fetch)
>> +       (uri (git-reference
>> +             (url "https://jxself.org/git/inform.git")
>> +             (commit (string-append "v" version))))
>> +       (file-name (git-file-name name version))
>> +       (sha256
>> +        (base32
>> "1g2misbp4lacaqa96wk0ad59ybr2dvjnhjsrz98byx4i99s2m2nr"))
>> +       (patches
>> +        (search-patches
>> +         "inform-add-makefile.patch"))))
>> +    (build-system gnu-build-system)
>> +    (native-inputs (list autoconf automake))
>> +    (synopsis "The Inform 6 compiler")
>> +    (description
>> +     "This is an Inform 6 compiler that has been modified slightly
>> to work better
>> +when the Inform standard library is in a non-standard location.")
>> +    (home-page "https://jxself.org/git/inform.git")
>> +    (license license:gpl3+)))
>> +
>>  (define-public instead
>>    (package
>>      (name "instead")
>> diff --git a/gnu/packages/patches/inform-add-makefile.patch
>> b/gnu/packages/patches/inform-add-makefile.patch
>> new file mode 100644
>> index 0000000000..497d40979e
>> --- /dev/null
>> +++ b/gnu/packages/patches/inform-add-makefile.patch
>> @@ -0,0 +1,109 @@
>> +From b2332ab850dc260be8892ad5a4148b335c6b193b Mon Sep 17 00:00:00
>> 2001
>> +From: AwesomeAdam54321 <[email-masked]>
>> +Date: Wed, 20 Dec 2023 22:38:41 +0800
>> +Subject: [PATCH] Implement a Makefile for Inform.
>> +
>> +---
>> + Makefile.am     | 17 +++++++++++++++++
>> + configure.ac    | 40 ++++++++++++++++++++++++++++++++++++++++
>> + src/Makefile.am | 17 +++++++++++++++++
>> + 3 files changed, 74 insertions(+)
>> + create mode 100644 Makefile.am
>> + create mode 100644 configure.ac
>> + create mode 100644 src/Makefile.am
>> +
>> +diff --git a/Makefile.am b/Makefile.am
>> +new file mode 100644
>> +index 0000000..fb99417
>> +--- /dev/null
>> ++++ b/Makefile.am
>> +@@ -0,0 +1,17 @@
>> ++# This file is part of Inform.
>> ++#
>> ++# Inform is free software: you can redistribute it and/or modify it
>> ++# under the terms of the GNU General Public License as published by
>> ++# theFree Software Foundation, either version 3 of the License, or
>> ++#(at your option) any later version.
>> ++#
>> ++# Inform 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 Inform. If not, see https://gnu.org/licenses/
>> ++
>> ++AUTOMAKE_OPTIONS = foreign
>> ++SUBDIRS = src
>> +diff --git a/configure.ac b/configure.ac
>> +new file mode 100644
>> +index 0000000..0ff8ced
>> +--- /dev/null
>> ++++ b/configure.ac
>> +@@ -0,0 +1,40 @@
>> ++# Process this file with autoconf to produce a configure script.
>> ++#
>> ++# This file is part of Inform.
>> ++#
>> ++# Inform is free software: you can redistribute it and/or modify it
>> ++# under the terms of the GNU General Public License as published by
>> ++# theFree Software Foundation, either version 3 of the License, or
>> ++#(at your option) any later version.
>> ++#
>> ++# Inform 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 Inform. If not, see https://gnu.org/licenses/
>> ++
>> ++AC_INIT([inform], [6.41], [[email-masked]])
>> ++AM_INIT_AUTOMAKE([foreign])
>> ++AC_OUTPUT(Makefile src/Makefile)
>> ++
>> ++# Checks for programs.
>> ++AC_PROG_CC
>> ++
>> ++# Checks for libraries.
>> ++
>> ++# Checks for header files.
>> ++AC_CHECK_HEADERS([limits.h stdlib.h string.h unistd.h])
>> ++
>> ++# Checks for typedefs, structures, and compiler characteristics.
>> ++AC_CHECK_HEADER_STDBOOL
>> ++AC_TYPE_SIZE_T
>> ++
>> ++# Checks for library functions.
>> ++AC_FUNC_ERROR_AT_LINE
>> ++AC_FUNC_MALLOC
>> ++AC_FUNC_REALLOC
>> ++AC_CHECK_FUNCS([memmove memset realpath strchr strtol])
>> ++
>> ++AC_OUTPUT
>> +diff --git a/src/Makefile.am b/src/Makefile.am
>> +new file mode 100644
>> +index 0000000..b548944
>> +--- /dev/null
>> ++++ b/src/Makefile.am
>> +@@ -0,0 +1,17 @@
>> ++# This file is part of Inform.
>> ++#
>> ++# Inform is free software: you can redistribute it and/or modify it
>> ++# under the terms of the GNU General Public License as published by
>> ++# theFree Software Foundation, either version 3 of the License, or
>> ++#(at your option) any later version.
>> ++#
>> ++# Inform 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 Inform. If not, see https://gnu.org/licenses/
>> ++
>> ++bin_PROGRAMS = inform
>> ++inform_SOURCES = arrays.c asm.c bpatch.c chars.c directs.c errors.c
>> expressc.c expressp.c files.c header.h inform.c lexer.c memory.c
>> objects.c states.c symbols.c syntax.c tables.c text.c veneer.c
>> verbs.c
>> +-- 
>> +2.41.0
>> +
> You might want to suggest this patch to upstream.  If not, you can do
> something similar by using copy-build-system and a build phase that
> reads something along the lines of
>   (apply invoke (gcc-for-target) "-o" "inform"
>          (find-files "src" "\\.c$"))
> Cheers

Thanks, I already sent this patch upstream, but I haven't gotten a response yet.
I'll send a V2 of this patch series using your copy-build-system with a build phase idea.