aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/nickle.scm
blob: 13eba5a050ba1ac68d9fbf0ed3e78e8c7de902ff (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
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2024 Eric Bavier <bavier@posteo.net>
;;;
;;; 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 nickle)
  #:use-module (gnu packages)
  #:use-module (gnu packages readline)
  #:use-module (guix build-system gnu)
  #:use-module (guix download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))

(define-public nickle
  (package
    (name "nickle")
    (version "2.97")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://nickle.org/release/nickle-"
                                  version ".tar.gz"))
              (sha256
               (base32
                "0gqashcs3r0d1yp6rq6q2ayjdwsjxnd8z0ij55ayrbhn296l7mp2"))
              (patches (search-patches "nickle-man-release-date.patch"))))
    (build-system gnu-build-system)
    (inputs (list readline))
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-build-date
           (lambda _
             ;; Our patch touches Makefile.am, but rather than rebootstrap,
             ;; make the substitution directly in Makefile.in.
             (substitute* "Makefile.in"
               (("BUILD_DATE") "RELEASE_DATE")))))))
    (synopsis "Numeric oriented programming language")
    (description
     "Nickle is a programming language based prototyping environment with
powerful programming and scripting capabilities.  Nickle supports a variety of
datatypes, especially arbitrary precision numbers.  The programming language
vaguely resembles C.  Some things in C which do not translate easily are
different, some design choices have been made differently, and a very few
features are simply missing.  Nickle provides the functionality of Unix bc, dc
and expr in a different form.  It is also an ideal environment for prototyping
complex algorithms.  Nickle's scripting capabilities make it a replacement for
spreadsheets in some applications, and its numeric features complement the
limited numeric functionality of text-oriented languages such as AWK and Perl.")
    (home-page "https://nickle.org/")
    (license license:expat)))
id program. This change turns screen-locker-configuration from strict PAM AND setuid to more flexible PAM AND/OR setuid. Allowing swaylock to be configured properly while supporting other screen locker preferences. * gnu/services/xorg.scm (screen-locker-configuration): Switch from define-record-type to define-configuration. [using-pam?]: New field to control PAM entry existence. [using-setuid?]: New field to control setuid binary existence. (screen-locker-pam-services): Should not make unix-pam-service if using-pam? is set to #f. (screen-locker-setuid-programs): Should not make program setuid program if using-setuid? is set to #f. (screen-locker-generate-doc): Internal function to generate configuration documentation. (screen-locker-service): Adapt to new screen-locker-configuration. * gnu/services/desktop.scm (desktop-services-for-system): Adapt to new screen-locker-configuration. * doc/guix.texi: Reflect new changes to screen-locker-configuration. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> muradm 2023-05-11system: pam: Let PAM extensions add shepherd requirements....* gnu/system/pam.scm (<pam-extension>): New record type. (pam-shepherd-service): Add Shepherd synchronization point. * gnu/services/mail.scm (dovecot-shepherd-service) * gnu/services/lightdm.scm (lightdm-shepherd-service) * gnu/services/mail.scm (opensmtpd-shepherd-service) * gnu/services/sddm.scm (sddm-shepherd-service) * gnu/services/ssh.scm (lsh-shepherd-service, openssh-shepherd-service) * gnu/services/xorg.scm (slim-shepherd-service, gdm-shepherd-service) * gnu/services/base.scm (greetd-shepherd-services): Add PAM requirement. * gnu/system/pam.scm (/etc-entry, extend-configuration, pam-root-service-type, pam-root-service) * gnu/services/authentication.scm (pam-ldap-pam-service) * gnu/services/base.scm (pam-limits-service-type) (greetd-pam-service) * gnu/services/desktop.scm (pam-gnome-keyring) * gnu/services/kerberos.scm (pam-krb5-pam-service) * gnu/services/pam-mount.scm (pam-mount-pam-service): Adapt to use pam-extension. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret 2023-03-25services: xorg-wrapper: Support xorg server input rewriting....This patch adds support for proper xorg server input rewriting. It uses the lookup-package-direct-input procedure to configure the X server paths dynamically, instead of always using the hard coded package. Something like this is now possible: (define other-mesa (package-input-rewriting/spec `(("mesa" . ,(const other-mesa))))) (xorg-configuration (xorg-configuration (server (other-mesa xorg-server)))) Without this patch the X server would still be configured with mesa (causing version issues), and not with other-mesa (as per the input rewrite). * gnu/services/xorg.scm (xorg-configuration-server-package-path) (xorg-configuration-dri-driver-path, xorg-configuration-xkb-bin-dir) (xorg-configuration-xkb-dir): New procedures. (xorg-wrapper): Use them for dri and xkb paths. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> r0man 2023-03-10services: xorg: Deprecate 'screen-locker-service' procedure....* doc/guix.texi (X Window): Replace 'screen-locker-service' with 'screen-locker-service-type'. Document <screen-locker-configuration>. * gnu/services/desktop.scm (desktop-services-for-system): Use screen-locker-service-type. * gnu/services/xorg.scm: Export accessors for <screen-locker-configuration>. (<screen-locker>): Rename to ... (<screen-locker-configuration>): ... this. (<screen-locker-configuration>)[empty?]: Rename to ... (<screen-locker-configuration>)[allow-empty-password?]: ... this. (screen-locker-pam-services): Update record name. (screen-locker-setuid-programs): Update accessor name. (screen-locker-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2022-11-18services: Add Shepherd 'configuration' action to various services....* gnu/services/avahi.scm (avahi-shepherd-service): Add 'actions' field. * gnu/services/base.scm (nscd-actions): Add call to 'shepherd-configuration-action'. * gnu/services/desktop.scm (upower-shepherd-service): Add 'actions' field. (elogind-shepherd-service): Likewise. * gnu/services/dict.scm (dicod-shepherd-service): Likewise. * gnu/services/networking.scm (openntpd-shepherd-service): Likewise. (tor-shepherd-service): Likewise. * gnu/services/ssh.scm (openssh-shepherd-service): Likewise. * gnu/services/web.scm (nginx-shepherd-service): Likewise. * gnu/services/xorg.scm (gdm-shepherd-service): Likewise. * gnu/tests/base.scm (run-basic-test)["nscd configuration action"]: New test. * doc/guix.texi (Services): Document it. Ludovic Courtès 2022-10-11services: slim-service-type: Do not extend profile with xterm....This is not done for gdm-service-type, so do not do it here either, for consistency. Perhaps that change had been motivated by the fact that using ratpoison without a default terminal makes for a poor user experience (one cannot even view the help screen without a terminal); this was fixed with the preceding commit. * gnu/services/xorg.scm (slim-service-type) [profile-service-type]: Remove extension. Maxim Cournoyer 2022-10-07services: xorg: Add auto-suspend? field to <gdm-configuration>....* gnu/services/xorg.scm (<gdm-configuration>) <auto-suspend?>: New field. (gdm-dconf-profiles): New variable. * gnu/services/xorg.scm (gdm-shepherd-service) <environment-variables> [!auto-suspend?]: Specify DCONF_PROFILE. (gdm-service-type): Extend DCONF-SERVICE-TYPE. * doc/guix.texi (X Window): Document the new field. Maxim Cournoyer 2022-10-07services: Add dconf-service-type....This allows the dconf profile directive "system-db:" to look up profiles by name from under /etc/dconf/db/. * gnu/services/xorg.scm (dconf-keyfile, dconf-profile): New procedures. (dconf-profiles?): New predicate. (dconf-configuration): New procedure. (dconf-profile->profile-file): Likewise. (dconf-profile->db-keyfile): Likewise. (dconf-profile->db-keyfile-dir): Likewise. (dconf-profile->db): Likewise. (dconf-profile->files): Likewise. (dconf-service-type): New service type. Maxim Cournoyer 2022-10-07services: gdm: Add a configuration field to enable XDMCP....* gnu/services/xorg.scm (<gdm-configuration>)[xdmcp?]: New field. * gnu/services/xorg.scm (gdm-configuration-file): Use it. Use (ice-9 format) to serialize boolean. (gdm-polkit-rules): New variable. (gdm-service-type): Use it to extend polkit. * doc/guix.texi (X Window): Document it. Maxim Cournoyer 2022-09-16services: desktop: Mount /var/lib/gdm on a tmpfs file system....Fixes <https://issues.guix.gnu.org/44944>. * gnu/services/xorg.scm (%gdm-activation): Delete variable. (gdm-service-type): De-register it. * gnu/services/desktop.scm (%gdm-file-system): New variable. (gdm-file-system-service): Likewise. (desktop-services-for-system): Use it. Maxim Cournoyer