Package: guix-patches;
Reported by: Adam Faiz <adam.faiz <at> disroot.org>
Date: Tue, 21 Feb 2023 13:21:02 UTC
Severity: normal
Tags: patch
To reply to this bug, email your comments to 61675 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#61675
; Package guix-patches
.
(Tue, 21 Feb 2023 13:21:02 GMT) Full text and rfc822 format available.Adam Faiz <adam.faiz <at> disroot.org>
:guix-patches <at> gnu.org
.
(Tue, 21 Feb 2023 13:21:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: guix-patches <at> gnu.org Subject: [PATCH 0/2] gnu: Add latino. Date: Tue, 21 Feb 2023 21:20:16 +0800
From 61ad312f6f4663b1208eba1cd175df0e0bc15837 Mon Sep 17 00:00:00 2001 Message-Id: <cover.1676971062.git.adam.faiz <at> disroot.org> From: AwesomeAdam54321 <adam.faiz <at> disroot.org> Date: Tue, 21 Feb 2023 17:17:42 +0800 Subject: [PATCH 0/2] gnu: Add latino. The first patch fixes linenoise to provide shared libraries. The second patch adds the Latino programming language. AwesomeAdam54321 (2): gnu: linenoise: Patch in a 'make install' target. gnu: Add latino. gnu/local.mk | 4 + gnu/packages/latino.scm | 66 +++++++++++++ .../linenoise-add-install-target.patch | 51 ++++++++++ .../patches/linenoise-add-symbol-map.patch | 25 +++++ ...noise-mark-internal-functions-static.patch | 95 +++++++++++++++++++ .../patches/linenoise-use-symbol-map.patch | 14 +++ gnu/packages/shells.scm | 32 +++---- 7 files changed, 270 insertions(+), 17 deletions(-) create mode 100644 gnu/packages/latino.scm create mode 100644 gnu/packages/patches/linenoise-add-install-target.patch create mode 100644 gnu/packages/patches/linenoise-add-symbol-map.patch create mode 100644 gnu/packages/patches/linenoise-mark-internal-functions-static.patch create mode 100644 gnu/packages/patches/linenoise-use-symbol-map.patch base-commit: 08edbd2535ae622d319a51e6f877d23d75dc24f3 -- 2.39.1
guix-patches <at> gnu.org
:bug#61675
; Package guix-patches
.
(Tue, 21 Feb 2023 13:37:01 GMT) Full text and rfc822 format available.Message #8 received at 61675 <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: 61675 <at> debbugs.gnu.org Subject: [PATCH 1/2] gnu: linenoise: Patch in a 'make install' target. Date: Tue, 21 Feb 2023 21:36:09 +0800
From 8739b1b5d6eb9de504d7799e22efd7996acfac83 Mon Sep 17 00:00:00 2001 Message-Id: <8739b1b5d6eb9de504d7799e22efd7996acfac83.1676986321.git.adam.faiz <at> disroot.org> From: AwesomeAdam54321 <adam.faiz <at> disroot.org> Date: Tue, 21 Feb 2023 17:02:14 +0800 Subject: [PATCH 1/2] gnu: linenoise: Patch in a 'make install' target. * gnu/packages/shells.scm (linenoise): Patch in a 'make install' target. [source]: Remove '-checkout' suffix. Add patches for a 'make install' target. [arguments]: Use gexps. Proceed with build procedure in GNUmakefile.libs. * gnu/packages/patches/linenoise-add-install-target.patch: New file. * gnu/packages/patches/linenoise-add-symbol-map.patch: New file. * gnu/packages/patches/linenoise-mark-internal-functions-static.patch: New file. * gnu/packages/patches/linenoise-use-symbol-map.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 4 + .../linenoise-add-install-target.patch | 51 ++++++++++ .../patches/linenoise-add-symbol-map.patch | 25 +++++ ...noise-mark-internal-functions-static.patch | 95 +++++++++++++++++++ .../patches/linenoise-use-symbol-map.patch | 14 +++ gnu/packages/shells.scm | 32 +++---- 6 files changed, 204 insertions(+), 17 deletions(-) create mode 100644 gnu/packages/patches/linenoise-add-install-target.patch create mode 100644 gnu/packages/patches/linenoise-add-symbol-map.patch create mode 100644 gnu/packages/patches/linenoise-mark-internal-functions-static.patch create mode 100644 gnu/packages/patches/linenoise-use-symbol-map.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5fcbdd4586..b64d6fc966 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1384,6 +1384,10 @@ dist_patch_DATA = \ %D%/packages/patches/lightdm-arguments-ordering.patch \ %D%/packages/patches/lightdm-vncserver-check.patch \ %D%/packages/patches/lightdm-vnc-color-depth.patch \ + %D%/packages/patches/linenoise-add-install-target.patch \ + %D%/packages/patches/linenoise-add-symbol-map.patch \ + %D%/packages/patches/linenoise-mark-internal-functions-static.patch \ + %D%/packages/patches/linenoise-use-symbol-map.patch \ %D%/packages/patches/localed-xorg-keyboard.patch \ %D%/packages/patches/kcontacts-incorrect-country-name.patch \ %D%/packages/patches/kde-cli-tools-delay-mime-db.patch \ diff --git a/gnu/packages/patches/linenoise-add-install-target.patch b/gnu/packages/patches/linenoise-add-install-target.patch new file mode 100644 index 0000000000..7371126574 --- /dev/null +++ b/gnu/packages/patches/linenoise-add-install-target.patch @@ -0,0 +1,51 @@ +This patch is taken from https://github.com/antirez/linenoise/pull/174 + +Subject: [PATCH] linenoise: Add a makefile for creating and installing libraries and headers. +--- a/GNUmakefile.libs 1970-01-01 07:30:00.000000000 +0730 ++++ b/GNUmakefile.libs 2023-02-21 13:29:52.275610851 +0800 +@@ -0,0 +1,45 @@ ++PREFIX ?= /usr/local ++INCLUDEDIR ?= $(PREFIX)/include ++LIBDIR ?= $(PREFIX)/lib ++ ++SOURCES = linenoise.c ++HEADERS = $(SOURCES:%.c=%.h) ++OBJECTS = $(SOURCES:%.c=%.o) ++ ++LIBVERSION = 0.0.0 ++ ++SHLIBNAME = liblinenoise.so.$(LIBVERSION) ++SONAME = liblinenoise.so.$(word 1, $(subst ., ,$(LIBVERSION))) ++STLIBNAME = liblinenoise.a ++ ++LD = $(CC) ++ ++DEFAULT_CPPFLAGS = ++DEFAULT_CFLAGS = -Wall -W -O2 -g -fPIC ++DEFAULT_LDFLAGS = -shared -Wl,-soname,$(SONAME) ++ ++all: $(SHLIBNAME) $(STLIBNAME) ++ ++$(SHLIBNAME): $(OBJECTS) ++ $(LD) $(DEFAULT_LDFLAGS) $(LDFLAGS) $^ -o $@ ++ ++$(STLIBNAME): $(OBJECTS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(OBJECTS) : %.o : %.c ++ $(CC) $(DEFAULT_CPPFLAGS) $(CPPFLAGS) $(DEFAULT_CFLAGS) $(CFLAGS) \ ++ -c $< -o $@ ++ ++install: $(SHLIBNAME) ++ install -d $(DESTDIR)$(INCLUDEDIR) ++ install -m 0644 $(HEADERS) $(DESTDIR)$(INCLUDEDIR) ++ install -d $(DESTDIR)$(LIBDIR) ++ install -m 0644 $(STLIBNAME) $(DESTDIR)$(LIBDIR) ++ install -m 0755 $(SHLIBNAME) $(DESTDIR)$(LIBDIR) ++ ln -sf $(SHLIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME) ++ ln -sf $(SHLIBNAME) $(DESTDIR)$(LIBDIR)/liblinenoise.so ++ ++clean: ++ rm -f $(SHLIBNAME) $(STLIBNAME) $(OBJECTS) ++ ++.PHONY: all clean install diff --git a/gnu/packages/patches/linenoise-add-symbol-map.patch b/gnu/packages/patches/linenoise-add-symbol-map.patch new file mode 100644 index 0000000000..ec241e60b1 --- /dev/null +++ b/gnu/packages/patches/linenoise-add-symbol-map.patch @@ -0,0 +1,25 @@ +This patch is taken from https://github.com/antirez/linenoise/pull/174 + +Subject: [PATCH] linenoise: Add a symbol-map for versioning symbols in the shared library. +--- a/symbol.map 1970-01-01 07:30:00.000000000 +0730 ++++ b/symbol.map 2023-02-21 13:31:08.620340334 +0800 +@@ -0,0 +1,19 @@ ++LINENOISE_0.0 { ++global: ++ linenoiseSetCompletionCallback; ++ linenoiseSetHintsCallback; ++ linenoiseSetFreeHintsCallback; ++ linenoiseAddCompletion; ++ linenoise; ++ linenoiseFree; ++ linenoiseHistoryAdd; ++ linenoiseHistorySetMaxLen; ++ linenoiseHistorySave; ++ linenoiseHistoryLoad; ++ linenoiseClearScreen; ++ linenoiseSetMultiLine; ++ linenoisePrintKeyCodes; ++ ++local: ++ *; ++}; diff --git a/gnu/packages/patches/linenoise-mark-internal-functions-static.patch b/gnu/packages/patches/linenoise-mark-internal-functions-static.patch new file mode 100644 index 0000000000..e08bb05f19 --- /dev/null +++ b/gnu/packages/patches/linenoise-mark-internal-functions-static.patch @@ -0,0 +1,95 @@ +This patch is adapted from https://github.com/antirez/linenoise/pull/174 + +Subject: [PATCH] linenoise: Mark functions that are not part of the API as static. +--- a/linenoise.c 1970-01-01 07:30:01.000000000 +0730 ++++ b/linenoise.c 2023-02-21 13:28:59.739080092 +0800 +@@ -473,7 +473,7 @@ + + /* Helper of refreshSingleLine() and refreshMultiLine() to show hints + * to the right of the prompt. */ +-void refreshShowHints(struct abuf *ab, struct linenoiseState *l, int plen) { ++static void refreshShowHints(struct abuf *ab, struct linenoiseState *l, int plen) { + char seq[64]; + if (hintsCallback && plen+l->len < l->cols) { + int color = -1, bold = 0; +@@ -635,7 +637,7 @@ + /* Insert the character 'c' at cursor current position. + * + * On error writing to the terminal -1 is returned, otherwise 0. */ +-int linenoiseEditInsert(struct linenoiseState *l, char c) { ++static int linenoiseEditInsert(struct linenoiseState *l, char c) { + if (l->len < l->buflen) { + if (l->len == l->pos) { + l->buf[l->pos] = c; +@@ -662,7 +664,7 @@ + } + + /* Move cursor on the left. */ +-void linenoiseEditMoveLeft(struct linenoiseState *l) { ++static void linenoiseEditMoveLeft(struct linenoiseState *l) { + if (l->pos > 0) { + l->pos--; + refreshLine(l); +@@ -670,7 +672,7 @@ + } + + /* Move cursor on the right. */ +-void linenoiseEditMoveRight(struct linenoiseState *l) { ++static void linenoiseEditMoveRight(struct linenoiseState *l) { + if (l->pos != l->len) { + l->pos++; + refreshLine(l); +@@ -678,7 +680,7 @@ + } + + /* Move cursor to the start of the line. */ +-void linenoiseEditMoveHome(struct linenoiseState *l) { ++static void linenoiseEditMoveHome(struct linenoiseState *l) { + if (l->pos != 0) { + l->pos = 0; + refreshLine(l); +@@ -686,7 +688,7 @@ + } + + /* Move cursor to the end of the line. */ +-void linenoiseEditMoveEnd(struct linenoiseState *l) { ++static void linenoiseEditMoveEnd(struct linenoiseState *l) { + if (l->pos != l->len) { + l->pos = l->len; + refreshLine(l); +@@ -697,7 +699,7 @@ + * entry as specified by 'dir'. */ + #define LINENOISE_HISTORY_NEXT 0 + #define LINENOISE_HISTORY_PREV 1 +-void linenoiseEditHistoryNext(struct linenoiseState *l, int dir) { ++static void linenoiseEditHistoryNext(struct linenoiseState *l, int dir) { + if (history_len > 1) { + /* Update the current history entry before to + * overwrite it with the next one. */ +@@ -721,7 +723,7 @@ + + /* Delete the character at the right of the cursor without altering the cursor + * position. Basically this is what happens with the "Delete" keyboard key. */ +-void linenoiseEditDelete(struct linenoiseState *l) { ++static void linenoiseEditDelete(struct linenoiseState *l) { + if (l->len > 0 && l->pos < l->len) { + memmove(l->buf+l->pos,l->buf+l->pos+1,l->len-l->pos-1); + l->len--; +@@ -731,7 +733,7 @@ + } + + /* Backspace implementation. */ +-void linenoiseEditBackspace(struct linenoiseState *l) { ++static void linenoiseEditBackspace(struct linenoiseState *l) { + if (l->pos > 0 && l->len > 0) { + memmove(l->buf+l->pos-1,l->buf+l->pos,l->len-l->pos); + l->pos--; +@@ -743,7 +745,7 @@ + + /* Delete the previosu word, maintaining the cursor at the start of the + * current word. */ +-void linenoiseEditDeletePrevWord(struct linenoiseState *l) { ++static void linenoiseEditDeletePrevWord(struct linenoiseState *l) { + size_t old_pos = l->pos; + size_t diff; + diff --git a/gnu/packages/patches/linenoise-use-symbol-map.patch b/gnu/packages/patches/linenoise-use-symbol-map.patch new file mode 100644 index 0000000000..c58378adf1 --- /dev/null +++ b/gnu/packages/patches/linenoise-use-symbol-map.patch @@ -0,0 +1,14 @@ +This patch is taken from https://github.com/antirez/linenoise/pull/174 + +Subject: [PATCH] linenoise: Add a symbol-map for versioning symbols in the shared library. +--- a/GNUmakefile.libs 2023-02-21 13:29:52.275610851 +0800 ++++ b/GNUmakefile.libs 2023-02-21 13:30:55.336216832 +0800 +@@ -16,7 +16,7 @@ + + DEFAULT_CPPFLAGS = + DEFAULT_CFLAGS = -Wall -W -O2 -g -fPIC +-DEFAULT_LDFLAGS = -shared -Wl,-soname,$(SONAME) ++DEFAULT_LDFLAGS = -shared -Wl,-soname,$(SONAME) -Wl,--version-script=symbol.map + + all: $(SHLIBNAME) $(STLIBNAME) + diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 0c8cbf3f4c..8561db835f 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -658,27 +658,25 @@ (define-public linenoise (uri (git-reference (url "https://github.com/antirez/linenoise") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "1z16qwix8z6a40fskdgxsibkqgdrp4q6ncp4n6hnv4r9iihy2d8r")))) + "1z16qwix8z6a40fskdgxsibkqgdrp4q6ncp4n6hnv4r9iihy2d8r")) + (patches (search-patches + "linenoise-mark-internal-functions-static.patch" + "linenoise-add-install-target.patch" + "linenoise-add-symbol-map.patch" + "linenoise-use-symbol-map.patch")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests are included - #:make-flags - (list ,(string-append "CC=" (cc-for-target))) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - ;; At the moment there is no 'make install' in upstream. - (let* ((out (assoc-ref outputs "out"))) - (install-file "linenoise.h" - (string-append out "/include/linenoise")) - (install-file "linenoise.c" - (string-append out "/include/linenoise")) - #t)))))) + (list #:tests? #f ; no tests are included + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output) + "--makefile=GNUmakefile.libs") + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) (home-page "https://github.com/antirez/linenoise") (synopsis "Minimal zero-config readline replacement") (description base-commit: 08edbd2535ae622d319a51e6f877d23d75dc24f3 -- 2.39.1
guix-patches <at> gnu.org
:bug#61675
; Package guix-patches
.
(Tue, 21 Feb 2023 13:47:02 GMT) Full text and rfc822 format available.Message #11 received at 61675 <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: 61675 <at> debbugs.gnu.org Subject: [PATCH 2/2] gnu: Add latino. Date: Tue, 21 Feb 2023 21:46:11 +0800
From cb275653fdd7bb8562708e7865a0be8d903998d6 Mon Sep 17 00:00:00 2001 Message-Id: <cb275653fdd7bb8562708e7865a0be8d903998d6.1676986321.git.adam.faiz <at> disroot.org> In-Reply-To: <8739b1b5d6eb9de504d7799e22efd7996acfac83.1676986321.git.adam.faiz <at> disroot.org> References: <8739b1b5d6eb9de504d7799e22efd7996acfac83.1676986321.git.adam.faiz <at> disroot.org> From: AwesomeAdam54321 <adam.faiz <at> disroot.org> Date: Tue, 21 Feb 2023 17:06:04 +0800 Subject: [PATCH 2/2] gnu: Add latino. * gnu/packages/latino.scm: New file. --- gnu/packages/latino.scm | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 gnu/packages/latino.scm diff --git a/gnu/packages/latino.scm b/gnu/packages/latino.scm new file mode 100644 index 0000000000..ae12702b8a --- /dev/null +++ b/gnu/packages/latino.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Adam Faiz <adam.faiz <at> disroot.org> +;;; +;;; 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 latino) + #:use-module (guix build-system cmake) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages readline) + #:use-module (gnu packages shells)) + +(define-public latino + (let ((commit "c9ba798aeebd733c0986eced78021394b2d87d4c") + (revision "0")) + (package + (name "latino") + (version (git-version "1.4.3" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/lenguaje-latino/latino-core") + (commit commit))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1pmplp32i5c546mcij9cks3lgqysz1bixy8ll4v9bb8c3f5pmaa1")) + (modules '((guix build utils))) + (snippet + #~(begin + ; Unbundle linenoise + (for-each delete-file-recursively + '("src/lib" "src/linenoise")) + (substitute* "src/CMakeLists.txt" + ((".*linenoise.*") "") + (("latuilib.c") "latuilib.c)") + (("link_libraries.m.") + (string-append "link_libraries(m)\n" + " link_libraries(linenoise)"))))))) + (build-system cmake-build-system) + (inputs + (list linenoise readline)) + (synopsis "Programming language with Spanish syntax") + (description + "Latino is a programming language with Spanish syntax, +inspired by Lua and Python.") + (home-page "https://www.lenguajelatino.org") + (license license:gpl3+)))) -- 2.39.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.