[PATCH 2/2] gnu: add package notcurses.scm

  • Done
  • quality assurance status badge
Details
2 participants
  • Blake Shaw
  • Leo Famulari
Owner
unassigned
Submitted by
Blake Shaw
Severity
normal
Merged with
B
B
Blake Shaw wrote on 6 Dec 2021 20:00
(address . guix-patches@gnu.org)(name . Blake Shaw)(address . blake@nonconstructivism.com)
1aa737a8cdcbe9c0e95052fd3187b059355f86f9.1638817174.git.blake@nonconstructivism.com
Signed-off-by: Blake Shaw <blake@nonconstructivism.com>
---
gnu/packages/notcurses.scm | 73 ++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 gnu/packages/notcurses.scm

Toggle diff (81 lines)
diff --git a/gnu/packages/notcurses.scm b/gnu/packages/notcurses.scm
new file mode 100644
index 0000000000..00e2fd92db
--- /dev/null
+++ b/gnu/packages/notcurses.scm
@@ -0,0 +1,73 @@
+;;; Copyright © 2021 Blake Shaw <blake@nonconstructivism.com>
+;;;
+;;; 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 notcurses)
+ #:use-module (guix utils)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (guix build utils)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages libunistring)
+ #:use-module (ice-9 match))
+
+(define-public notcurses
+ (package
+ (name "notcurses")
+ (version "3.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dankamongmen/notcurses")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1y9s77m1pp6syfml559d8dvif61y6zjldrdx1zri18q9sr0zqm9m"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:make-flags
+ (list ,(string-append "CC=" (cc-for-target))
+ (string-append "prefix="))
+ #:configure-flags
+ (map (lambda (s)
+ (string-append "-D" s))
+ '("USE_CPP=off" "USE_COVERAGE=off" ;;here we set the default cmake
+ "USE_DOXYGEN=off" "USE_DOCTEST=off" ;;configuration. FSG=FSF approved only
+ "USE_GPM=off" "USE_MULTIMEDIA=ffmpeg" ;;other choices based on
+ "USE_PANDOC=off" "FSG_BUILD=ON")))) ;;reducing package footprint
+ (native-inputs
+ `(("gcc-toolchain" ,gcc)
+ ("ncurses" ,ncurses)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("libdeflate" ,libdeflate)
+ ("libunistring" ,libunistring)
+ ("zlib" ,zlib)))
+ (synopsis "Library facilitating complex textual user interfaces on modern terminals")
+ (description "Notcurses is a library for building complex
+textual user interfaces on modern terminals. It does not use ncurses, while it does make use of libtinfo from that package.")
+ (home-page "https://notcurses.com/html/")
+ (license license:asl2.0)))
--
2.33.1
L
L
Leo Famulari wrote on 22 Dec 2021 00:22
(no subject)
(address . control@debbugs.gnu.org)
YcJh0QvP4a/JssjY@jasmine.lan
merge 52335 52336
L
L
Leo Famulari wrote on 22 Dec 2021 04:57
Re: [bug#52335] [PATCH 2/2] gnu: add package notcurses.scm
(name . Blake Shaw via Guix-patches via)(address . guix-patches@gnu.org)
YcKiNSWQgB7ape7H@jasmine.lan
Attachment: file
From c080b1a8a18f9091a0aa90cfaf05d239cde77cde Mon Sep 17 00:00:00 2001
From: Blake Shaw <blake@nonconstructivism.com>
Date: Tue, 7 Dec 2021 02:00:01 +0700
Subject: [PATCH] gnu: Add notcurses.

* gnu/packages/notcurses.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Leo Famulari <leo@famulari.name>
---
gnu/local.mk | 1 +
gnu/packages/notcurses.scm | 78 ++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+)
create mode 100644 gnu/packages/notcurses.scm

Toggle diff (98 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 72fa405e17..675775d620 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -425,6 +425,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ninja.scm \
%D%/packages/node.scm \
%D%/packages/node-xyz.scm \
+ %D%/packages/notcurses.scm \
%D%/packages/noweb.scm \
%D%/packages/nss.scm \
%D%/packages/ntp.scm \
diff --git a/gnu/packages/notcurses.scm b/gnu/packages/notcurses.scm
new file mode 100644
index 0000000000..1fc176c27c
--- /dev/null
+++ b/gnu/packages/notcurses.scm
@@ -0,0 +1,78 @@
+;;; Copyright � 2021 Blake Shaw <blake@nonconstructivism.com>
+;;;
+;;; 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 notcurses)
+ #:use-module (guix utils)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (guix build utils)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages haskell-xyz)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages libunistring))
+
+(define-public notcurses
+ (package
+ (name "notcurses")
+ (version "3.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dankamongmen/notcurses")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1y9s77m1pp6syfml559d8dvif61y6zjldrdx1zri18q9sr0zqm9m"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "CC=" ,(cc-for-target)))
+ ;; These flags are documented in 'INSTALL.md' in the source distribution.
+ #:configure-flags
+ '(;; Do not build "coverage"
+ "-DUSE_COVERAGE=off"
+ ;; Do not build HTML documentation
+ "-DUSE_DOXYGEN=off"
+ ;; Don't include mouse support
+ "-DUSE_GPM=off"
+ ;; Use FFmpeg for multimedia support
+ "-DUSE_MULTIMEDIA=ffmpeg"
+ ;; Follow the Debian Free Software Guidelines
+ ;; Yes, 'INSTALL.md' says that "OFF" means to omit non-free code.
+ "-DFSG_BUILD=OFF")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("pandoc" ,pandoc)
+ ("doctest" ,doctest)))
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("libdeflate" ,libdeflate)
+ ("libunistring" ,libunistring)
+ ("ncurses" ,ncurses)
+ ("zlib" ,zlib)))
+ (synopsis "Textual user interfaces")
+ (description "Notcurses is a library for building complex textual user
+interfaces on modern terminals.")
+ (home-page "https://notcurses.com")
+ (license license:asl2.0)))
--
2.34.0
L
L
Leo Famulari wrote on 29 Dec 2021 18:48
(name . Blake Shaw)(address . blake@nonconstructivism.com)(address . 52335@debbugs.gnu.org)
YcyfdtbMB6IAD/ik@jasmine.lan
On Wed, Dec 29, 2021 at 06:03:36PM +0700, Blake Shaw wrote:
Toggle quote (11 lines)
> Hi Leo,
>
> Sorry, I had missed your response and just found it when visiting Mumi.
>
> This is great feedback, and very informative for a new contributor. I
> agree to all points, I had originally tried to keep the file size down
> quite a bit, because with pandoc, c++, et al it nearly triples the
> install size, and I couldn't quite figure out how to make those optional
> as inputs. But if its best to provide a fully-featured over package over
> a slimmed-down version, lets definitely go with that.

Okay, thanks for letting me know.

I found the use of DFSG_BUILD to be confusing, so I asked upstream:


We can push the patch pending clarification of that.
L
L
Leo Famulari wrote on 29 Dec 2021 19:20
(name . Blake Shaw)(address . blake@nonconstructivism.com)(address . 52335-done@debbugs.gnu.org)
YcynCwNzbkaQevdN@jasmine.lan
On Wed, Dec 29, 2021 at 12:48:38PM -0500, Leo Famulari wrote:
Toggle quote (4 lines)
> I found the use of DFSG_BUILD to be confusing, so I asked upstream:
>
> https://github.com/dankamongmen/notcurses/issues/2508

They helpfully clarified that we want this option to be ON. So, I've
done that, partially migrated the package to the "new style" [0], and
pushed as 7022eb6ea0f3be2f0eb58617c607ce34dfbff90a.

Thanks a lot for the contribution!

[0] I only changed the inputs to the new style. Changing the package's
arguments field is future work.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 52335@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 52335
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch