guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#46090] [PATCH] updated skarnet and added s6-man-pages new prjware w


From: s . karrmann
Subject: [bug#46090] [PATCH] updated skarnet and added s6-man-pages new prjware with runwhen new mandoc
Date: Sun, 24 Jan 2021 22:44:22 +0100

---
 gnu/packages/mandoc.scm  |  67 +++++++++++++
 gnu/packages/prjware.scm |  86 ++++++++++++++++
 gnu/packages/skarnet.scm | 205 +++++++++++++++++++++++++++++++++++++--
 3 files changed, 350 insertions(+), 8 deletions(-)
 create mode 100644 gnu/packages/mandoc.scm
 create mode 100644 gnu/packages/prjware.scm

diff --git a/gnu/packages/mandoc.scm b/gnu/packages/mandoc.scm
new file mode 100644
index 0000000000..04ff18b14d
--- /dev/null
+++ b/gnu/packages/mandoc.scm
@@ -0,0 +1,67 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Dr. Stefan Karrmann <S.Karrmann@web.de>
+;;;
+;;; 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 mandoc)
+  #:use-module (guix packages)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages compression)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages gawk))
+
+(define-public mandoc
+  (package
+    (name "mandoc")
+    (version "1.14.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                     "https://mandoc.bsd.lv/snapshots/mandoc-";
+                     version ".tar.gz"))
+              (sha256 (base32
+                "1xyqllxpjj1kimlipx11pzyywf5c25i4wmv0lqm7ph3gnlnb86c2"))))
+    (native-inputs `(("perl" ,perl)))
+    (inputs `(("zlib" ,zlib)))
+    (build-system gnu-build-system)
+    (arguments '(#:tests? #f
+                 #:phases
+                  (modify-phases %standard-phases
+                    (replace 'check
+                      (lambda _ (invoke "make" "regress") #t))
+                    (delete 'check)
+                    (add-before 'configure 'conf-local
+                      ; in general chdir subdir unless not sticky
+                      (lambda* (#:key outputs #:allow-other-keys)
+                         (substitute* "configure"
+                           (("DEFCFLAGS=\\\"-g") "DEFCFLAGS=\"-O3 -static")
+                           (("PREFIX=.*$") (string-append
+                             "PREFIX=" (assoc-ref outputs "out") "\n"))
+                           (("CC=.*$") "CC=gcc\n"))
+                           )))))
+    (synopsis "The mandoc manpage compiler toolset")
+    (description "The mandoc manpage compiler toolset (formerly called 
\"mdocml\")
+is a suite of tools compiling mdoc(7), the roff(7) macro language
+of choice for BSD manual pages, and man(7), the predominant
+historical language for UNIX manuals.
+
+It includes a man(1) manual viewer and additional tools.
+For general information, see <http://mandoc.bsd.lv/>.")
+    (home-page "https://mandoc.bsd.lv";)
+;    (license isc bsd-2 bsd-3)))
+    (license (@ (guix licenses) isc))))
diff --git a/gnu/packages/prjware.scm b/gnu/packages/prjware.scm
new file mode 100644
index 0000000000..290ef9435c
--- /dev/null
+++ b/gnu/packages/prjware.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Dr. Stefan Karrmann <S.Karrmann@web.de>
+;;;
+;;; 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 prjware)
+  #:use-module (guix packages)
+  #:use-module (gnu packages skarnet)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages gawk))
+
+(define-public runwhen
+  (package
+    (name "runwhen")
+    (version "2020.05.04")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                     "https://code.dogmap.org/runwhen/releases/runwhen-";
+                     version ".tar.bz2"))
+              (sha256
+               (base32 ; guix hash /tmp/<runwhen...>
+                "0jqci0sbg116lrghhrdyvmb4a8haqmk6yb34liy5qbprmznkbmi7"))))
+    (build-system gnu-build-system)
+    (arguments `(#:phases
+                  (modify-phases %standard-phases
+                    (add-after 'unpack 'subdir
+                      ; in general chdir subdir unless not sticky
+                      (lambda _ (chdir (string-append ,name "-" ,version))
+                                #t))
+                    (replace 'configure
+                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                         (substitute* (find-files "src" "\\.c$")
+                            (("pathexec0_run") "exec_e")
+                            (("pathexec_env") "env_mexec")
+                            (("pathexec\\(") "mexec("))
+                         (with-output-to-file "conf-compile/package-home"
+                           (lambda _ (display (assoc-ref outputs "out"))))
+                         (with-output-to-file "conf-compile/host_link.sh"
+                           (lambda _ (display (string-append "gcc "
+                             "-L" (assoc-ref inputs "skalibs") "/lib "
+                             "-o \"${output?}\" -s ${1+\"$@\"} "
+                            ))))
+                         (with-output-to-file "conf-compile/host_compile.sh"
+                           (lambda _ (display (string-append "gcc -O2 "
+                            "-I" (assoc-ref inputs "skalibs") "/include "
+                            "${1+\"$@\"} -c \"${input?}\" -o \"${output?}\" "
+                            "-Wall -W -Wpointer-arith -Wcast-align "
+                            "-Wwrite-strings"))))
+                         (with-output-to-file 
"conf-compile/depend_skalibs_sysdeps"
+                           (lambda _ (display (string-append
+                                                (assoc-ref inputs "skalibs")
+                                                "/lib/skalibs/sysdeps"))))
+                         #t))
+                    (replace 'build
+                      (lambda _ (invoke "package/build")))
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                         (let ((bin (string-append
+                                      (assoc-ref outputs "out") "/bin")))
+                           (copy-recursively "command" bin))))
+                    (replace 'check
+                      (lambda _ (invoke "package/check")))
+                  )))
+    (inputs `(("skalibs" ,skalibs)))
+    ;(native-inputs `(("coreutils" ,coreutils)))
+    (synopsis "Paul Jarc's runwhen package")
+    (description "Programms rw-sleep, -match, -add, -sub, -min, -max, -touch")
+    (home-page "https://code.dogmap.org./runwhen/";)
+    (license gpl2)))
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 51be1a30e8..1e0d754ebe 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2021 Dr. Stefan Karrmann <S.Karrmann@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,22 +23,24 @@
 
 (define-module (gnu packages skarnet)
   #:use-module (gnu packages)
+  #:use-module (gnu packages mandoc)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu))
 
 (define-public skalibs
   (package
     (name "skalibs")
-    (version "2.10.0.0")
+    (version "2.10.0.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://skarnet.org/software/skalibs/skalibs-";
                           version ".tar.gz"))
       (sha256
-       (base32 "122xipbxh6awsfdfj37mjc8f3g8ndmmmps4gw5s43mya8wgzib61"))))
+       (base32 "1chwjzlh13jbrldk77h3i4qjqv8hjpvvd3papcb8j46mvj7sxysg"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests exist
@@ -50,6 +53,7 @@
                         (("\\$\\(wildcard src/lib\\*/\\*.c\\)")
                          "$(sort $(wildcard src/lib*/*.c))"))
                       #t)))))
+    ; (native-inputs `(("execline" ,execline)))
     (home-page "https://skarnet.org/software/skalibs/";)
     (synopsis "Platform abstraction libraries for skarnet.org software")
     (description
@@ -59,6 +63,14 @@ including primitive data types, cryptography, and POSIX 
concepts like sockets
 and file system operations.  It is used by all skarnet.org software.")
     (license isc)))
 
+(define-public skalibs-tai
+  (package (inherit skalibs)
+     (name "skalibs-tai")
+     (arguments
+       (append '(#:configure-flags '("--enable-tai-clock"))
+               (package-arguments skalibs)))
+  ))
+
 (define-public execline
   (package
     (name "execline")
@@ -102,16 +114,21 @@ rather than in special syntax, minimizing runtime 
footprint and
 complexity.")))
 
 (define-public s6
+ (let ((commit "7fba356b1378b0d470f746b45797c229e9d882cd")
+       (revision "1"))
   (package
    (name "s6")
-   (version "2.10.0.0")
+   (version (git-version "2.10.0.0" revision commit))
    (source
     (origin
-     (method url-fetch)
-     (uri (string-append "https://skarnet.org/software/s6/s6-";
-                         version ".tar.gz"))
+     (method git-fetch)
+     (uri (git-reference
+            (url "https://github.com/skarnet/s6";)
+            (commit commit)
+            (recursive? #t)))
+     (file-name (git-file-name name version))
      (sha256
-      (base32 "0xzqrd0m3wjklmw1w3gjw5dcdxnhgvxv2r5wd6m2ismw2jprr9k0"))))
+      (base32 "0mi23zimrbklwlx7qsiv9xb85k833lxj1vpvs4xzjjvw8plly1xd"))))
    (build-system gnu-build-system)
    (inputs `(("skalibs" ,skalibs)
              ("execline" ,execline)))
@@ -145,7 +162,7 @@ runit, as well as various operations on processes and 
daemons.  It is meant to
 be a toolbox for low-level process and service administration, providing
 different sets of independent tools that can be used within or without the
 framework, and that can be assembled together to achieve powerful
-functionality with a very small amount of code.")))
+functionality with a very small amount of code."))))
 
 (define-public s6-dns
   (package
@@ -368,3 +385,175 @@ all the details.")))
      "s6-linux-utils is a set of minimalistic Linux-specific system utilities,
 such as @command{mount}, @command{umount}, and @command{chroot} commands,
 Linux uevent listeners, a @command{devd} device hotplug daemon, and more.")))
+
+(define-public mdevd
+  (package
+   (name "mdevd")
+   (version "0.1.3.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://skarnet.org/software/mdevd/mdevd-";
+           version ".tar.gz"))
+     (sha256
+      (base32 "0spvw27xxd0m6j8bl8xysmgsx18fl769smr6dsh25s2d5h3sp2dy"))))
+    (build-system gnu-build-system)
+    (inputs `(("skalibs" ,skalibs)
+              ("execline" ,execline)))
+    (arguments
+     '(#:configure-flags (list
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs")
+                          (string-append "--with-sysdeps="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs/sysdeps"))
+       #:tests? #f))                    ; no tests exist
+    (home-page "https://skarnet.org/software/mdevd";)
+    (license isc)
+    (synopsis "A small daemon managing kernel hotplug events, similarly to 
udevd")
+    (description
+     "It uses the same configuration file as mdev, which is a hotplug
+manager integrated in the Busybox suite of tools. However, mdev needs
+to be registered in /proc/sys/kernel/hotplug, and the kernel forks an
+instance of mdev for every event; by contrast, mdevd is a daemon and
+does not fork.
+
+The point of mdevd is to provide a drop-in replacement to mdev that
+does not fork, so it can handle large influxes of events at boot time
+without a performance drop. mdevd is designed to be entirely
+compatible with advanced mdev usage such as mdev-like-a-boss.")))
+
+(define-public utmps
+  (package
+   (name "utmps")
+   (version "0.1.0.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://skarnet.org/software/utmps/utmps-";
+           version ".tar.gz"))
+     (sha256
+      (base32 "09p0k2sgxr7jlsbrn66fzvzf9zxvpjp85y79xk10hxjglypszyml"))))
+    (build-system gnu-build-system)
+    (inputs `(("skalibs" ,skalibs)
+              ("s6" ,s6)))
+    (arguments
+     '(#:configure-flags (list
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs")
+                          (string-append "--with-sysdeps="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs/sysdeps"))
+       #:tests? #f))                    ; no tests exist
+    (home-page "https://skarnet.org/software/utmps";)
+    (license isc)
+    (synopsis "Implementation of the utmpx.h family of functions performing 
user accounting on Unix systems")
+    (description
+     "Traditionally, utmp functionality is provided by the system's libc.
+However, not all libcs implement utmp: for instance the musl libc, on
+Linux, does not. The main reason for it is that utmp functionality is
+difficult to implement in a secure way; in particular, it is
+impossible to implement without either running a daemon or allowing
+arbitrary programs to tamper with user accounting.
+
+utmps is a secure implementation of user accounting, using a daemon as
+the only authority to manage the utmp and wtmp data; programs running
+utmp functions are just clients to this daemon.")))
+
+(define-public nsss
+  (package
+   (name "nsss")
+   (version "0.1.0.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://skarnet.org/software/nsss/nsss-";
+           version ".tar.gz"))
+     (sha256
+      (base32 "15rxbwf16wm1la079yr2xn4bccjgd7m8dh6r7bpr6s57cj93i2mq"))))
+    (build-system gnu-build-system)
+    (inputs `(("skalibs" ,skalibs)
+              ("s6" ,s6)))
+    (arguments
+     '(#:configure-flags (list
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs")
+                          (string-append "--with-sysdeps="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs/sysdeps"))
+       #:tests? #f))                    ; no tests exist
+    (home-page "https://skarnet.org/software/nsss";)
+    (license isc)
+    (synopsis "subset of the pwd.h, group.h and shadow.h family of functions, 
performing user database access on Unix systems")
+    (description
+     "Usually, user database access via getpwnam() and similar function is
+provided by the system's libc. However, not all libcs implement a
+configurable backend for the user/group database. For instance the
+musl libc, on Linux, only supports the standard /etc/passwd mechanism;
+it also supports the nscd protocol but this is not quite enough:
+
+musl only connects to nscd when it cannot find an answer in its files backend
+The nscd protocol does not support enumeration, so primitives
+such as getpwent() cannot be implemented over nscd.
+
+The mechanism used by glibc, called Name Service Switch
+(abbreviated to nsswitch or NSS), has its own set of issues
+that makes it unsuitable in certain situations.
+
+nsss is a secure implementation of a \"name service switch\":
+configurable user/group/shadow database access, providing
+getpwnam() et al. functionality by communicating over a Unix
+domain socket with a daemon; the daemon can perform lookups in
+any database it chooses.
+
+nsss does not perform dynamic module loading, only adds a
+small footprint to the application's binary, and does not add
+any complex decision engine into the client's address space.
+Applications can be statically linked against the nsss
+library, and still benefit from configurable user database
+access functions.")))
+
+(define-public s6-man-pages
+  (package
+   (name "s6-man-pages")
+   (version "2.10.0.0.1")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+             "https://github.com/flexibeast/s6-man-pages/archive/v";
+             version ".tar.gz"))
+     (sha256
+      (base32 "00qx3qki5wz28sky782h2hwd82fr3nsqrhchrkph9yq4did3354g"))))
+    (native-inputs `(("mandoc" ,mandoc)))
+    (build-system gnu-build-system)
+    (arguments
+      '(#:tests? #f                    ; no tests exist
+        #:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (substitute* "Makefile"
+                        (("^install-mdoc:") "install-mdoc:
+\tmkdir -p $(man1) $(man7)")
+                        (("^install-man:") "install-man:
+\tmkdir -p $(man1) $(man7)")
+                        (("MANPATH .= /usr/share/man")
+                         (string-append "MANPATH ="
+                           (assoc-ref outputs "out")
+                           "/man")))))
+                  (replace 'build
+                    (lambda _ (invoke "make" "-j" "1")))
+                  (replace 'install
+                    (lambda _
+                      (invoke "make" "install-man"))))))
+    (home-page "https://github.com/flexibeast/s6-man-pages";)
+    (license isc)
+    (synopsis "man pages for s6")
+    (description
+     "Additional man pages for s6")))
-- 
2.20.1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]