From 9d3300b77db53a142e251cd8376255633ab0e425 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Sat, 6 Feb 2021 12:31:38 +0000 Subject: [PATCH 01/10] Added Dale's GPG key. --- dale.key | Bin 0 -> 2263 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 dale.key diff --git a/dale.key b/dale.key new file mode 100644 index 0000000000000000000000000000000000000000..3110d69fbe9646d7cf4cc9dddc1b9a84e38667d4 GIT binary patch literal 2263 zcma)-c{J4h9>;&Pn2dGC&XjFvEFrSRWSNkC4NaEJ$dYYDw);q>EZNHPBpKUKPu4WCf7x-@c;e37b3I&USl^`7Wfnq${jMlx;`I%&;;-#b+YEJ#+ZoLP&@0|c->>x> zP~I=V6{>q!BrIq)`Btw(6W>KWOMj&$Ag~*Wvx}K4#0*8|En8z1EFseAM?ajXB#yvF zb7}Tm0%V_D8^1LE8ORTjl-Y4x?aHGOgPry`#lenIs@17IY_nlm{CHhOwqj4WhS&I2 z{u_=JP-JDDf@@~|{*}cpC(({9`MaVKwpAJ^jWJxG0s7Q4vkz(1!XyR~kr7f!6O+7=xv#nrLBR?c{V(j)k|iJH0j_>clb zv6l}XIsun`{pCpk9$K-kP;Mj`K!Z^b7%QCl2m}n}1v5jSd|(I&EDQqk-(&(?yp%Em z3xWU^IHL2M$a@eW&geQB$U^N;Jon~%nVYd*XVq){LY`K;(F{ev07V>p0%HQ7Ym6fNoI|I?l_(0JamD>WwkpL?b-T36o?DJa#IF*marBRF zK#m7SF{~hX#=#P|*I!)p;FuK0vwN{FzhFg~z&}IxzmX4Fe|BFEd0c6(CzJ}tX!5r!? zIMd1V#%f|kRWKmO%OgA?LW6AJ9<<<6uizC8IzO!ZHw>Z=!PQ&Nlk}JTgdW&n0o3`# zpfgypFVPn3Ykwe3C;y!jCa{a}t?~mpreEP=;$?v|voi5Pz#!mX={oGFlI_3-m}ovtSyWe5T}j-R+9%*Uq18G^?!PFn=LD!&1^7Rr9mJ)C3&0?5-2=UI1a zMUF1`H&~cy2XC{uI+v?Goi)`Tk_m%Ua*K7I4vyCLn=TXYr3V$PtW_v{ zKTeQi$W%At4S1Z5gz?H1lab5n0X)i?Jy*LM>UrM4^WsSUaNNaWcQZ#QM&Ih($@-wl?mj&r`&x)vs5EE(!cS|C%+99eCq zn+hpX=!dm!<5MQmNul=>iZE|UgY`M%(>(wlcAJJ%QDxbq=a)5XSXNA4{@w0e`>GQm zU-YWgVBv3R4C|AZsEf@u(tAngtwK;-F$uFOp^$j;?emOM1rygu&(9(oAMoM5!TxFw zlFMWw!B^RWEp=|*53fM$B_iECSQdM}1$}cx3F_9XDemla!DpLl3_qj!=3XgL0t@%N zu=@l5n5&Q;d8Y+MKa@G6%~yDhW4X&6>t%~UKEzyD%oV>So2ZnDtBUHw)ls289Vo25#nx(k;Fi^dD+ksdonp_c~X+B=^lV42M=hTco z;-_0S8d_S@LwDxax-~AUY^sfgpWxd|x4m!sV`_s5A3?N(01y}gNW0CVxbK6bedXE^ zE|(~MrJAhLKGIK>^AzLUjX1iHyz~5V$l5&@TA{MTqc6FBj!#g{4)!l~`i!{C199U1 zJ5%h11DYxE#U?5Dh^{Sa<~hWqZ*-lCms`{$R;FEn85u{7vuc-4N_^Zc$d|5Z=Xp(p zszR1#T?#TXsgYyhOcxvYw;Ni2=lwEdn)HYlO|TAdn9pvGGi~Fbj}82Q!NRiw;EwZ& zYkJ6zU8SO913LKFZ=7Xoe%GI4P%G*-jmJ~=!=kcdf2&%HJ-)fn_jSD15-G)HX4u94-9IW)VMkM(3PKXWb)))_D9>&PxvY16mJgQl!BMT$9_Gq1V#0zDe zEe5s)vQc9x;Lb&GKxKXmUOiPZ&;N1BBh6h$wpvE(R*J6Wp5SWU5v6)#*E;VN=bj6l zo=-{NhMsZT4-+T*%+sj#>nT%fixqn7CkD*dd({Yy1>bL-c2Mitu77X13NKNoUy(i8 zvJGjIQIYtVsG#>p=b8TUdQj(!uRf_cQ%2LBu-wlp!LB+}mHoABX!Y-daer?2H>UFl zDaXl>MWDnWdYK2)-G^H>wlE4$^V67he~q4ITvLF}^;bI9O{tq}`i|udc2hF?bRGx! z-t{&iA(!1~ALitVARg1y$71qUO2iDwr2U27*e)l%^^#a4sKCLIf&V-XoMbSH?Qpe3 yeFAdM28BM_u9+K!IPw?X|LAMBROkESp!e>cH*jf5i literal 0 HcmV?d00001 From 2ea5ab7cc2408b316edfea947c5c522d57031758 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Mon, 26 Feb 2024 10:37:51 +0000 Subject: [PATCH 02/10] The DMBCS Guix channel. --- .gitignore | 1 + .guix-authorizations | 4 + dmbcs/development/packages/guile.scm | 137 +++++++++ dmbcs/development/packages/mcron.scm | 56 ++++ dmbcs/development/packages/micro-server.scm | 38 +++ gnu/packages/curl.scm | 293 ++++++++++++++++++++ packages/curlpp.scm | 39 +++ packages/hack-font.scm | 28 ++ 8 files changed, 596 insertions(+) create mode 100644 .gitignore create mode 100644 .guix-authorizations create mode 100644 dmbcs/development/packages/guile.scm create mode 100644 dmbcs/development/packages/mcron.scm create mode 100644 dmbcs/development/packages/micro-server.scm create mode 100644 gnu/packages/curl.scm create mode 100644 packages/curlpp.scm create mode 100644 packages/hack-font.scm diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/.guix-authorizations b/.guix-authorizations new file mode 100644 index 0000000..76030c9 --- /dev/null +++ b/.guix-authorizations @@ -0,0 +1,4 @@ +(authorizations + (version 0) + (("E23C 21ED 864F F4F3 A711 4CDF CA47 1FD5 0161 8A49" + (name "dale")))) diff --git a/dmbcs/development/packages/guile.scm b/dmbcs/development/packages/guile.scm new file mode 100644 index 0000000..6f6c2ac --- /dev/null +++ b/dmbcs/development/packages/guile.scm @@ -0,0 +1,137 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès +;;; Copyright © 2014 Cyril Roelandt +;;; Copyright © 2014, 2016, 2018 David Thompson +;;; Copyright © 2014, 2017, 2018 Mark H Weaver +;;; Copyright © 2015, 2017 Christopher Allan Webber +;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2016, 2017 Leo Famulari +;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus +;;; Copyright © 2017 Andy Wingo +;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2019 Mathieu Othacehe +;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Amirouche +;;; Copyright © 2018 Danny Milosavljevic +;;; Copyright © 2018 Eric Bavier +;;; Copyright © 2019 Taylan Kammer +;;; +;;; 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 . + +(define-module (dmbcs development packages guile) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages compression) + #:use-module (gnu packages dbm) + #:use-module (gnu packages flex) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gettext) + #:use-module (gnu packages guile) + #:use-module (gnu packages hurd) + #:use-module (gnu packages libffi) + #:use-module (gnu packages libunistring) + #:use-module (gnu packages linux) + #:use-module (gnu packages m4) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages version-control) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system guile) + #:use-module (guix deprecation) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module ((srfi srfi-1) #:prefix srfi-1:)) + +;;; Commentary: +;;; +;;; GNU Guile, and modules and extensions. +;;; +;;; Code: + + +(define-public guile + ;; This is the latest Guile stable version. + (package + (inherit guile-2.2) + (name "guile") + (version "3.0.4+dmbcs") + (source (origin + (inherit (package-source guile-2.2)) + (method git-fetch) + (uri (git-reference + (url "https://rdmp.org/dmbcs/guile.git") + (commit "a3a28334a3d5c397dfc24dfbceab113f993c5f0b"))) + (sha256 + (base32 + "0zw2s748d0gj31q9wc23mmgdjc8fpl6577v5b2lqj5ca4m69d8x0")) + (patches '()))) + (arguments + ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd. + (if #f ;; (hurd-target?) + (substitute-keyword-arguments (package-arguments guile-2.2) + ((#:configure-flags flags ''()) + `(cons "--disable-jit" ,flags))) + (substitute-keyword-arguments (package-arguments guile-2.2) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (replace 'bootstrap + (lambda _ + ;; Disable broken tests. + ;; TODO: Fix them! + (substitute* "test-suite/tests/gc.test" + (("\\(pass-if \"after-gc-hook gets called\"" m) + (string-append "#;" m))) + (substitute* "test-suite/tests/version.test" + (("\\(pass-if \"version reporting works\"" m) + (string-append "#;" m))) + ;; Warning: Unwind-only `out-of-memory' exception; skipping pre-unwind handler. + ;; FAIL: test-out-of-memory + (substitute* "test-suite/standalone/Makefile.am" + (("(check_SCRIPTS|TESTS) \\+= test-out-of-memory") "")) + + (patch-shebang "build-aux/git-version-gen") + (invoke "sh" "autogen.sh") + #t))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("flex" ,flex) + ("texinfo" ,texinfo) + ("gettext" ,gettext-minimal) + ,@(package-native-inputs guile-2.2))) + (native-search-paths + (list (search-path-specification + (variable "GUILE_LOAD_PATH") + (files '("share/guile/site/3.0"))) + (search-path-specification + (variable "GUILE_LOAD_COMPILED_PATH") + (files '("lib/guile/3.0/site-ccache" + "share/guile/site/3.0"))))))) + + +;;; guile.scm ends here + diff --git a/dmbcs/development/packages/mcron.scm b/dmbcs/development/packages/mcron.scm new file mode 100644 index 0000000..87b7172 --- /dev/null +++ b/dmbcs/development/packages/mcron.scm @@ -0,0 +1,56 @@ +;;;; mcron.scm -- Guix package definition +;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2018 宋文武 +;;; Copyright © 2019 Efraim Flashner +;;; +;;; This file is part of GNU Mcron. +;;; +;;; GNU Mcron 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 Mcron 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 Mcron. If not, see . + +(define-module (dmbcs development packages mcron) + #:use-module (ice-9 popen) + #:use-module (ice-9 rdelim) + #:use-module (gnu) + #:use-module (guix) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (srfi srfi-1)) + +(define-public mcron +(package + (name "mcron") + (version "1.2.0+dmbcs") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://rdmp.org/dmbcs/mcron.git") + (commit "833ae20c31d9951e7721bb55441df2630aae4765"))) + (sha256 (base32 "0a5smlnmkcgccam0hgcwcxr7b5df3sxbb2bikxrv13qxfr4xpbwg")))) + (inputs + `(("guile" ,(specification->package "guile@3.0.4+dmbcs")))) + (native-inputs + `(("autoconf" ,(specification->package "autoconf")) + ("automake" ,(specification->package "automake")) + ("help2man" ,(specification->package "help2man")) + ("pkg-config" ,(specification->package "pkg-config")) + ("texinfo" ,(specification->package "texinfo")) + ("tzdata" ,(specification->package "tzdata")))) + (build-system gnu-build-system) + (arguments `(#:phases (modify-phases %standard-phases (delete 'check)))) + (synopsis "Daemon to schedule unattended jobs") + (description "Daemon to schedule unattended jobs") + (home-page "https://gnu.org/software/mcron") + (license gpl3+))) diff --git a/dmbcs/development/packages/micro-server.scm b/dmbcs/development/packages/micro-server.scm new file mode 100644 index 0000000..cd7ca83 --- /dev/null +++ b/dmbcs/development/packages/micro-server.scm @@ -0,0 +1,38 @@ +(define-module (dmbcs development packages micro-server) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) + #:use-module (guix licenses) + #:use-module (packages curlpp) + #:use-module (gnu packages) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gawk)) + + +(define-public dmbcs-micro-server + (package + (name "dmbcs-micro-server") + (version "0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://rdmp.org/dmbcs/micro-server.git") + (commit "4e10087710a3591b228f845e36c6171f4b1feac3"))) + (sha256 (base32 "1gp9ax7x3mc9zzi0b3fgynsr9bn12cmdysbkylsva7544vzgdd5a")))) + (build-system cmake-build-system) + (arguments `(#:phases (modify-phases %standard-phases (delete 'check)))) + (native-inputs + `(("gcc-toolchain" ,(specification->package "gcc-toolchain@10")) + ("texinfo" ,(specification->package "texinfo")) + ("pkg-config" ,pkg-config))) + (propagated-inputs `(("curlpp" ,curlpp) ("libgcrypt" ,libgcrypt) )) + (synopsis "Yet another C++ web server class") + (description + (string-append "A C++ web service module.")) + (home-page "https://rdmp.org/dmbcs/micro-server") + (license gpl3+))) + + +dmbcs-micro-server diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm new file mode 100644 index 0000000..c8db551 --- /dev/null +++ b/gnu/packages/curl.scm @@ -0,0 +1,293 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015 Andreas Enge +;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015 Tomáš Čech +;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2016, 2017, 2019 Leo Famulari +;;; Copyright © 2017, 2019, 2020 Marius Bakke +;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Roel Janssen +;;; Copyright © 2019 Ricardo Wurmus +;;; Copyright © 2020 Jakub Kądziołka +;;; Copyright © 2020 Dale Mellor +;;; +;;; 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 . + +(define-module (gnu packages curl) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix utils) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system go) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages gawk) + #:use-module (gnu packages golang) + #:use-module (gnu packages guile) + #:use-module (gnu packages kerberos) + #:use-module (gnu packages libidn) + #:use-module (gnu packages openldap) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages tls) + #:use-module (gnu packages web) + #:use-module (srfi srfi-1)) + +(define-public curl + (package + (name "curl") + (version "7.69.1") + (source (origin + (method url-fetch) + (uri (string-append "https://curl.haxx.se/download/curl-" + version ".tar.xz")) + (sha256 + (base32 + "0kwxh76iq9fblk7iyv4f75bmcmasarp2bcm1mm07wyvzd7kdbiq3")) + (patches (search-patches "curl-use-ssl-cert-env.patch")))) + (build-system gnu-build-system) + (outputs '("out" + "doc")) ;1.2 MiB of man3 pages + (inputs `(("gnutls" ,gnutls) + ("libidn" ,libidn) + ("openldap" ,openldap) + ("mit-krb5" ,mit-krb5) + ("nghttp2" ,nghttp2 "lib") + ("zlib" ,zlib))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) + (native-search-paths + ;; These variables are introduced by curl-use-ssl-cert-env.patch. + (list (search-path-specification + (variable "SSL_CERT_DIR") + (separator #f) ;single entry + (files '("etc/ssl/certs"))) + (search-path-specification + (variable "SSL_CERT_FILE") + (file-type 'regular) + (separator #f) ;single entry + (files '("etc/ssl/certs/ca-certificates.crt"))) + ;; Note: This search path is respected by the `curl` command-line + ;; tool only. Patching libcurl to read it too would bring no + ;; advantages and require maintaining a more complex patch. + (search-path-specification + (variable "CURL_CA_BUNDLE") + (file-type 'regular) + (separator #f) ;single entry + (files '("etc/ssl/certs/ca-certificates.crt"))))) + (arguments + `(#:disallowed-references ("doc") + #:configure-flags (list "--with-gnutls" + (string-append "--with-gssapi=" + (assoc-ref %build-inputs "mit-krb5")) + "--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-record-configure-flags + (lambda _ + ;; Do not save the configure options to avoid unnecessary references. + (substitute* "curl-config.in" + (("@CONFIGURE_OPTIONS@") + "\"not available\"")) + #t)) + (add-after + 'install 'move-man3-pages + (lambda* (#:key outputs #:allow-other-keys) + ;; Move section 3 man pages to "doc". + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share/man")) + (rename-file (string-append out "/share/man/man3") + (string-append doc "/share/man/man3")) + #t))) + (replace + 'check + (lambda _ + (substitute* "tests/runtests.pl" + (("/bin/sh") (which "sh"))) + + ;; XXX FIXME: Test #1510 seems to work on some machines and not + ;; others, possibly based on the kernel version. It works on Guix System + ;; on x86_64 with linux-libre-4.1, but fails on Hydra for both i686 + ;; and x86_64 with the following error: + ;; + ;; test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)] + ;; + ;; 1510: output (log/stderr1510) FAILED: + ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000 + ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000 + ;; @@ -1,5 +1,5 @@ + ;; * Connection #0 to host server1.example.com left intact[LF] + ;; * Connection #1 to host server2.example.com left intact[LF] + ;; * Connection #2 to host server3.example.com left intact[LF] + ;; -* Closing connection 0[LF] + ;; +* Closing connection 1[LF] + ;; * Connection #3 to host server4.example.com left intact[LF] + (delete-file "tests/data/test1510") + + ;; The top-level "make check" does "make -C tests quiet-test", which + ;; is too quiet. Use the "test" target instead, which is more + ;; verbose. + (invoke "make" "-C" "tests" "test")))))) + (synopsis "Command line tool for transferring data with URL syntax") + (description + "curl is a command line tool for transferring data with URL syntax, +supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, +LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. +curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP +form based upload, proxies, cookies, file transfer resume, user+password +authentication (Basic, Digest, NTLM, Negotiate, kerberos...), proxy +tunneling, and so on.") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution.")) + (home-page "https://curl.haxx.se/"))) + +;; This package exists mainly to bootstrap CMake. It must not depend on +;; anything that uses cmake-build-system. +(define-public curl-minimal + (hidden-package + (package/inherit + curl + (name "curl-minimal") + (inputs (alist-delete "openldap" (package-inputs curl)))))) + +(define-public kurly + (package + (name "kurly") + (version "1.2.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/davidjpeacock/kurly.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "003jv2k45hg2svhjpy5253ccd250vi2r17x2zhm51iw54kgwxipm")))) + (build-system go-build-system) + (arguments + `(#:import-path "gitlab.com/davidjpeacock/kurly" + #:install-source? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-documentation + (lambda* (#:key import-path outputs #:allow-other-keys) + (let* ((source (string-append "src/" import-path)) + (out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version)) + (man (string-append out "/share/man/man1"))) + (with-directory-excursion source + (install-file "README.md" doc) + (mkdir-p man) + (copy-file "doc/kurly.man" + (string-append man "/kurly.1"))) + #t)))))) + (inputs + `(("go-github-com-alsm-ioprogress" ,go-github-com-alsm-ioprogress) + ("go-github-com-aki237-nscjar" ,go-github-com-aki237-nscjar) + ("go-github-com-urfave-cli" ,go-github-com-urfave-cli))) + (synopsis "Command-line HTTP client") + (description "kurly is an alternative to the @code{curl} program written in +Go. kurly is designed to operate in a similar manner to curl, with select +features. Notably, kurly is not aiming for feature parity, but common flags and +mechanisms particularly within the HTTP(S) realm are to be expected. kurly does +not offer a replacement for libcurl.") + (home-page "https://gitlab.com/davidjpeacock/kurly") + (license license:asl2.0))) + +(define-public guile-curl + (package + (name "guile-curl") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://www.lonelycactus.com/tarball/" + "guile_curl-" version ".tar.gz")) + (sha256 + (base32 + "1pxdhnk288ky6gkpad8i60m0p6404rdvls43lr1b5d3csrklyc70")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list (string-append + "--with-guilesitedir=" + (assoc-ref %outputs "out") + "/share/guile/site/2.2") + (string-append + "-with-guileextensiondir=" + (assoc-ref %outputs "out") + "/lib/guile/2.2/extensions")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'patch-extension-path + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (curl.scm (string-append + out "/share/guile/site/2.2/curl.scm")) + (curl.go (string-append + out "/lib/guile/2.2/site-ccache/curl.go")) + (ext (string-append out "/lib/guile/2.2/" + "extensions/libguile-curl"))) + (substitute* curl.scm (("libguile-curl") ext)) + ;; The build system does not actually compile the Scheme module. + ;; So we can compile it and put it in the right place in one go. + (invoke "guild" "compile" curl.scm "-o" curl.go))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("guile" ,guile-2.2))) + (home-page "http://www.lonelycactus.com/guile-curl.html") + (synopsis "Curl bindings for Guile") + (description "@code{guile-curl} is a project that has procedures that allow +Guile to do client-side URL transfers, like requesting documents from HTTP or +FTP servers. It is based on the curl library.") + (license license:gpl3+))) + +(define-public curlpp + (package + (name "curlpp") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jpbarrette/curlpp.git") + (commit "v0.8.1"))) + (sha256 + (base32 "1b0ylnnrhdax4kwjq64r1fk0i24n5ss6zfzf4hxwgslny01xiwrk")))) + (build-system cmake-build-system) + ;; There are no build tests to be had. + (arguments + '(#:tests? #f)) + ;; The installed version needs the header files from the C library. + (propagated-inputs + `(("curl" ,curl))) + (synopsis "C++ wrapper around libcURL") + (description + "A free and easy-to-use client-side C++ URL transfer library, +supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP; in +particular it supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, +kerberos, HTTP form based upload, proxies, cookies, user+password +authentication, file transfer resume, http proxy tunneling and more!") + (home-page "http://www.curlpp.org") + (license license:x11-style))) diff --git a/packages/curlpp.scm b/packages/curlpp.scm new file mode 100644 index 0000000..5b33385 --- /dev/null +++ b/packages/curlpp.scm @@ -0,0 +1,39 @@ +(define-module (packages curlpp) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix licenses) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk)) + + +(define-public curlpp + (package + (name "curlpp") + (version "0.8.1") + (source (origin (method git-fetch) + (uri (git-reference + (url "https://github.com/jpbarrette/curlpp.git") + (commit "v0.8.1"))) + (sha256 (base32 "1b0ylnnrhdax4kwjq64r1fk0i24n5ss6zfzf4hxwgslny01xiwrk")))) + (build-system cmake-build-system) + (arguments `(#:phases (modify-phases %standard-phases (delete 'check)))) + (propagated-inputs `(("curl" ,curl))) + (synopsis "C++ wrapper around libcURL") + (description + (string-append + "A free and easy-to-use client-side URL transfer library," + "supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and" + "LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT," + "FTP uploading, kerberos, HTTP form based upload, proxies," + "cookies, user+password authentication, file transfer resume, http" + "proxy tunneling and more! libcurl is highly portable, it builds" + "and works identically on numerous platforms, including Solaris," + "NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux," + "Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC" + "OS, Novell NetWare, DOS and more... libcurl is free, thread-safe," + "IPv6 compatible, feature rich, well supported and fast." )) + (home-page "http://www.curlpp.org") + (license (non-copyleft "file://COPYING" + "See COPYING in the distribution.")))) diff --git a/packages/hack-font.scm b/packages/hack-font.scm new file mode 100644 index 0000000..3e5d773 --- /dev/null +++ b/packages/hack-font.scm @@ -0,0 +1,28 @@ +(define-module (packages hack-font) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system font) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages gawk)) + + +(define-public hack-font + (package + (name "hack-font") + (version "3.003") + (source (origin (method url-fetch) + (uri "https://github.com/source-foundry/Hack/releases/download/v3.003/Hack-v3.003-ttf.zip") + (sha256 (base32 "1b4hh8zkrx92m2v2vfkja1napb0192p0j3laqr0m018z3dih89hc")))) + (build-system font-build-system) + (synopsis "A typeface designed for source code") + (description + (string-append "A workhorse for code. No frills. No gimmicks. " + "Hack is hand-groomed and optically balanced to be " + "your go-to code face.")) + (home-page "https://sourcefoundry.org/hack/") + (license + ;; See https://github.com/source-foundry/Hack/issues/271 for details. + (list license:expat ; the Hack modifications to... + license:public-domain ; ...the DejaVu modifications to... + (license:x11-style ; ...the Bitstream Vera typeface + "file://LICENSE.md" "Bitstream Vera License"))))) From 693c8c86caf141ec51b3e03a03f263b2c2f5a506 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Thu, 23 Jun 2022 12:22:03 +0100 Subject: [PATCH 03/10] Use our guile module in our mcron one. --- dmbcs/development/packages/mcron.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/dmbcs/development/packages/mcron.scm b/dmbcs/development/packages/mcron.scm index 87b7172..3715d90 100644 --- a/dmbcs/development/packages/mcron.scm +++ b/dmbcs/development/packages/mcron.scm @@ -19,6 +19,7 @@ ;;; along with GNU Mcron. If not, see . (define-module (dmbcs development packages mcron) + #:use-module (dmbcs development packages guile) #:use-module (ice-9 popen) #:use-module (ice-9 rdelim) #:use-module (gnu) From cd7c675ef8cb259134454e202d3d7e2c1d46b1b1 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Wed, 15 May 2024 22:12:06 +0100 Subject: [PATCH 04/10] Mcron update. --- dmbcs/development/packages/mcron.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/dmbcs/development/packages/mcron.scm b/dmbcs/development/packages/mcron.scm index 3715d90..cc97576 100644 --- a/dmbcs/development/packages/mcron.scm +++ b/dmbcs/development/packages/mcron.scm @@ -19,29 +19,32 @@ ;;; along with GNU Mcron. If not, see . (define-module (dmbcs development packages mcron) - #:use-module (dmbcs development packages guile) + ;; #:use-module (dmbcs development packages guile) #:use-module (ice-9 popen) #:use-module (ice-9 rdelim) #:use-module (gnu) #:use-module (guix) #:use-module (guix build-system gnu) #:use-module (guix git-download) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) (define-public mcron (package (name "mcron") - (version "1.2.0+dmbcs") + (version "1.2.3+dmbcs") (source (origin (method git-fetch) (uri (git-reference (url "https://rdmp.org/dmbcs/mcron.git") - (commit "833ae20c31d9951e7721bb55441df2630aae4765"))) - (sha256 (base32 "0a5smlnmkcgccam0hgcwcxr7b5df3sxbb2bikxrv13qxfr4xpbwg")))) + (commit "a9d16d8e7c902e178060b26cfd1f986b002669a2"))) + (sha256 (base32 "0y00r6vjlgv3i6rym3ky1392cch0xqnb04scakr550fpg09rlxp7")))) + ;; Be sure to un-comment the use-module line near the top. + ;; (inputs + ;; `(("guile" ,(specification->package "guile@3.0.4+dmbcs")))) (inputs - `(("guile" ,(specification->package "guile@3.0.4+dmbcs")))) + `(("guile" ,(specification->package "guile@3")))) (native-inputs `(("autoconf" ,(specification->package "autoconf")) ("automake" ,(specification->package "automake")) @@ -54,4 +57,4 @@ (synopsis "Daemon to schedule unattended jobs") (description "Daemon to schedule unattended jobs") (home-page "https://gnu.org/software/mcron") - (license gpl3+))) + (license license:gpl3+))) From 00d5930b9b5c1bb456b2f25b0558446843a312a3 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Fri, 31 May 2024 10:56:45 +0100 Subject: [PATCH 05/10] Mcron update. * dmbcs/development/packages/mcron.scm: mostly re-written * gnu/packages/curl.scm: removed --- dmbcs/development/packages/mcron.scm | 44 ++-- gnu/packages/curl.scm | 293 --------------------------- 2 files changed, 16 insertions(+), 321 deletions(-) delete mode 100644 gnu/packages/curl.scm diff --git a/dmbcs/development/packages/mcron.scm b/dmbcs/development/packages/mcron.scm index cc97576..723922d 100644 --- a/dmbcs/development/packages/mcron.scm +++ b/dmbcs/development/packages/mcron.scm @@ -27,34 +27,22 @@ #:use-module (guix build-system gnu) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) + #:use-module ((gnu packages guile-xyz) #:prefix guix-base:) #:use-module (srfi srfi-1)) (define-public mcron -(package - (name "mcron") - (version "1.2.3+dmbcs") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://rdmp.org/dmbcs/mcron.git") - (commit "a9d16d8e7c902e178060b26cfd1f986b002669a2"))) - (sha256 (base32 "0y00r6vjlgv3i6rym3ky1392cch0xqnb04scakr550fpg09rlxp7")))) - ;; Be sure to un-comment the use-module line near the top. - ;; (inputs - ;; `(("guile" ,(specification->package "guile@3.0.4+dmbcs")))) - (inputs - `(("guile" ,(specification->package "guile@3")))) - (native-inputs - `(("autoconf" ,(specification->package "autoconf")) - ("automake" ,(specification->package "automake")) - ("help2man" ,(specification->package "help2man")) - ("pkg-config" ,(specification->package "pkg-config")) - ("texinfo" ,(specification->package "texinfo")) - ("tzdata" ,(specification->package "tzdata")))) - (build-system gnu-build-system) - (arguments `(#:phases (modify-phases %standard-phases (delete 'check)))) - (synopsis "Daemon to schedule unattended jobs") - (description "Daemon to schedule unattended jobs") - (home-page "https://gnu.org/software/mcron") - (license license:gpl3+))) + (package + (inherit guix-base:mcron) + (name "mcron") + (version "1.2.3+dmbcs") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://rdmp.org/dmbcs/mcron.git") + (commit "a16fd52bc5053032079533169baec131e271fbd4"))) + (sha256 (base32 "0gvhqq0cyjm6gd2jhvy8xfhny4mbdnp4z0nqzk11dvnwzs9wk09z")))) + ;; Be sure to un-comment the use-module line near the top. + ;; (inputs + ;; `(("guile" ,(specification->package "guile@3.0.4+dmbcs")))) + (home-page "https://rdmp.org/dmbcs/mcron"))) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm deleted file mode 100644 index c8db551..0000000 --- a/gnu/packages/curl.scm +++ /dev/null @@ -1,293 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Andreas Enge -;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2015 Tomáš Čech -;;; Copyright © 2015 Ludovic Courtès -;;; Copyright © 2016, 2017, 2019 Leo Famulari -;;; Copyright © 2017, 2019, 2020 Marius Bakke -;;; Copyright © 2017 Efraim Flashner -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice -;;; Copyright © 2018 Roel Janssen -;;; Copyright © 2019 Ricardo Wurmus -;;; Copyright © 2020 Jakub Kądziołka -;;; Copyright © 2020 Dale Mellor -;;; -;;; 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 . - -(define-module (gnu packages curl) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix utils) - #:use-module (guix build-system cmake) - #:use-module (guix build-system gnu) - #:use-module (guix build-system go) - #:use-module (gnu packages) - #:use-module (gnu packages compression) - #:use-module (gnu packages gawk) - #:use-module (gnu packages golang) - #:use-module (gnu packages guile) - #:use-module (gnu packages kerberos) - #:use-module (gnu packages libidn) - #:use-module (gnu packages openldap) - #:use-module (gnu packages perl) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) - #:use-module (gnu packages tls) - #:use-module (gnu packages web) - #:use-module (srfi srfi-1)) - -(define-public curl - (package - (name "curl") - (version "7.69.1") - (source (origin - (method url-fetch) - (uri (string-append "https://curl.haxx.se/download/curl-" - version ".tar.xz")) - (sha256 - (base32 - "0kwxh76iq9fblk7iyv4f75bmcmasarp2bcm1mm07wyvzd7kdbiq3")) - (patches (search-patches "curl-use-ssl-cert-env.patch")))) - (build-system gnu-build-system) - (outputs '("out" - "doc")) ;1.2 MiB of man3 pages - (inputs `(("gnutls" ,gnutls) - ("libidn" ,libidn) - ("openldap" ,openldap) - ("mit-krb5" ,mit-krb5) - ("nghttp2" ,nghttp2 "lib") - ("zlib" ,zlib))) - (native-inputs - `(("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) - (native-search-paths - ;; These variables are introduced by curl-use-ssl-cert-env.patch. - (list (search-path-specification - (variable "SSL_CERT_DIR") - (separator #f) ;single entry - (files '("etc/ssl/certs"))) - (search-path-specification - (variable "SSL_CERT_FILE") - (file-type 'regular) - (separator #f) ;single entry - (files '("etc/ssl/certs/ca-certificates.crt"))) - ;; Note: This search path is respected by the `curl` command-line - ;; tool only. Patching libcurl to read it too would bring no - ;; advantages and require maintaining a more complex patch. - (search-path-specification - (variable "CURL_CA_BUNDLE") - (file-type 'regular) - (separator #f) ;single entry - (files '("etc/ssl/certs/ca-certificates.crt"))))) - (arguments - `(#:disallowed-references ("doc") - #:configure-flags (list "--with-gnutls" - (string-append "--with-gssapi=" - (assoc-ref %build-inputs "mit-krb5")) - "--disable-static") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'do-not-record-configure-flags - (lambda _ - ;; Do not save the configure options to avoid unnecessary references. - (substitute* "curl-config.in" - (("@CONFIGURE_OPTIONS@") - "\"not available\"")) - #t)) - (add-after - 'install 'move-man3-pages - (lambda* (#:key outputs #:allow-other-keys) - ;; Move section 3 man pages to "doc". - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share/man")) - (rename-file (string-append out "/share/man/man3") - (string-append doc "/share/man/man3")) - #t))) - (replace - 'check - (lambda _ - (substitute* "tests/runtests.pl" - (("/bin/sh") (which "sh"))) - - ;; XXX FIXME: Test #1510 seems to work on some machines and not - ;; others, possibly based on the kernel version. It works on Guix System - ;; on x86_64 with linux-libre-4.1, but fails on Hydra for both i686 - ;; and x86_64 with the following error: - ;; - ;; test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)] - ;; - ;; 1510: output (log/stderr1510) FAILED: - ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000 - ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000 - ;; @@ -1,5 +1,5 @@ - ;; * Connection #0 to host server1.example.com left intact[LF] - ;; * Connection #1 to host server2.example.com left intact[LF] - ;; * Connection #2 to host server3.example.com left intact[LF] - ;; -* Closing connection 0[LF] - ;; +* Closing connection 1[LF] - ;; * Connection #3 to host server4.example.com left intact[LF] - (delete-file "tests/data/test1510") - - ;; The top-level "make check" does "make -C tests quiet-test", which - ;; is too quiet. Use the "test" target instead, which is more - ;; verbose. - (invoke "make" "-C" "tests" "test")))))) - (synopsis "Command line tool for transferring data with URL syntax") - (description - "curl is a command line tool for transferring data with URL syntax, -supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, -LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. -curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP -form based upload, proxies, cookies, file transfer resume, user+password -authentication (Basic, Digest, NTLM, Negotiate, kerberos...), proxy -tunneling, and so on.") - (license (license:non-copyleft "file://COPYING" - "See COPYING in the distribution.")) - (home-page "https://curl.haxx.se/"))) - -;; This package exists mainly to bootstrap CMake. It must not depend on -;; anything that uses cmake-build-system. -(define-public curl-minimal - (hidden-package - (package/inherit - curl - (name "curl-minimal") - (inputs (alist-delete "openldap" (package-inputs curl)))))) - -(define-public kurly - (package - (name "kurly") - (version "1.2.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/davidjpeacock/kurly.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "003jv2k45hg2svhjpy5253ccd250vi2r17x2zhm51iw54kgwxipm")))) - (build-system go-build-system) - (arguments - `(#:import-path "gitlab.com/davidjpeacock/kurly" - #:install-source? #f - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-documentation - (lambda* (#:key import-path outputs #:allow-other-keys) - (let* ((source (string-append "src/" import-path)) - (out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/" ,name "-" ,version)) - (man (string-append out "/share/man/man1"))) - (with-directory-excursion source - (install-file "README.md" doc) - (mkdir-p man) - (copy-file "doc/kurly.man" - (string-append man "/kurly.1"))) - #t)))))) - (inputs - `(("go-github-com-alsm-ioprogress" ,go-github-com-alsm-ioprogress) - ("go-github-com-aki237-nscjar" ,go-github-com-aki237-nscjar) - ("go-github-com-urfave-cli" ,go-github-com-urfave-cli))) - (synopsis "Command-line HTTP client") - (description "kurly is an alternative to the @code{curl} program written in -Go. kurly is designed to operate in a similar manner to curl, with select -features. Notably, kurly is not aiming for feature parity, but common flags and -mechanisms particularly within the HTTP(S) realm are to be expected. kurly does -not offer a replacement for libcurl.") - (home-page "https://gitlab.com/davidjpeacock/kurly") - (license license:asl2.0))) - -(define-public guile-curl - (package - (name "guile-curl") - (version "0.6") - (source (origin - (method url-fetch) - (uri (string-append "http://www.lonelycactus.com/tarball/" - "guile_curl-" version ".tar.gz")) - (sha256 - (base32 - "1pxdhnk288ky6gkpad8i60m0p6404rdvls43lr1b5d3csrklyc70")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags (list (string-append - "--with-guilesitedir=" - (assoc-ref %outputs "out") - "/share/guile/site/2.2") - (string-append - "-with-guileextensiondir=" - (assoc-ref %outputs "out") - "/lib/guile/2.2/extensions")) - #:phases - (modify-phases %standard-phases - (add-after 'install 'patch-extension-path - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (curl.scm (string-append - out "/share/guile/site/2.2/curl.scm")) - (curl.go (string-append - out "/lib/guile/2.2/site-ccache/curl.go")) - (ext (string-append out "/lib/guile/2.2/" - "extensions/libguile-curl"))) - (substitute* curl.scm (("libguile-curl") ext)) - ;; The build system does not actually compile the Scheme module. - ;; So we can compile it and put it in the right place in one go. - (invoke "guild" "compile" curl.scm "-o" curl.go))))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs - `(("curl" ,curl) - ("guile" ,guile-2.2))) - (home-page "http://www.lonelycactus.com/guile-curl.html") - (synopsis "Curl bindings for Guile") - (description "@code{guile-curl} is a project that has procedures that allow -Guile to do client-side URL transfers, like requesting documents from HTTP or -FTP servers. It is based on the curl library.") - (license license:gpl3+))) - -(define-public curlpp - (package - (name "curlpp") - (version "0.8.1") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/jpbarrette/curlpp.git") - (commit "v0.8.1"))) - (sha256 - (base32 "1b0ylnnrhdax4kwjq64r1fk0i24n5ss6zfzf4hxwgslny01xiwrk")))) - (build-system cmake-build-system) - ;; There are no build tests to be had. - (arguments - '(#:tests? #f)) - ;; The installed version needs the header files from the C library. - (propagated-inputs - `(("curl" ,curl))) - (synopsis "C++ wrapper around libcURL") - (description - "A free and easy-to-use client-side C++ URL transfer library, -supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP; in -particular it supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, -kerberos, HTTP form based upload, proxies, cookies, user+password -authentication, file transfer resume, http proxy tunneling and more!") - (home-page "http://www.curlpp.org") - (license license:x11-style))) From c93ab3bd53d804a4af64d9a3924ad9af4f39ca1b Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Fri, 7 Jun 2024 18:09:47 +0100 Subject: [PATCH 06/10] curlpp and hack-font are now in the mainline. * packages/curlpp.scm * packages/hack-font.scm --- packages/curlpp.scm | 39 --------------------------------------- packages/hack-font.scm | 28 ---------------------------- 2 files changed, 67 deletions(-) delete mode 100644 packages/curlpp.scm delete mode 100644 packages/hack-font.scm diff --git a/packages/curlpp.scm b/packages/curlpp.scm deleted file mode 100644 index 5b33385..0000000 --- a/packages/curlpp.scm +++ /dev/null @@ -1,39 +0,0 @@ -(define-module (packages curlpp) - #:use-module (guix packages) - #:use-module (guix git-download) - #:use-module (guix build-system gnu) - #:use-module (guix build-system cmake) - #:use-module (guix licenses) - #:use-module (gnu packages curl) - #:use-module (gnu packages gawk)) - - -(define-public curlpp - (package - (name "curlpp") - (version "0.8.1") - (source (origin (method git-fetch) - (uri (git-reference - (url "https://github.com/jpbarrette/curlpp.git") - (commit "v0.8.1"))) - (sha256 (base32 "1b0ylnnrhdax4kwjq64r1fk0i24n5ss6zfzf4hxwgslny01xiwrk")))) - (build-system cmake-build-system) - (arguments `(#:phases (modify-phases %standard-phases (delete 'check)))) - (propagated-inputs `(("curl" ,curl))) - (synopsis "C++ wrapper around libcURL") - (description - (string-append - "A free and easy-to-use client-side URL transfer library," - "supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and" - "LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT," - "FTP uploading, kerberos, HTTP form based upload, proxies," - "cookies, user+password authentication, file transfer resume, http" - "proxy tunneling and more! libcurl is highly portable, it builds" - "and works identically on numerous platforms, including Solaris," - "NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux," - "Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC" - "OS, Novell NetWare, DOS and more... libcurl is free, thread-safe," - "IPv6 compatible, feature rich, well supported and fast." )) - (home-page "http://www.curlpp.org") - (license (non-copyleft "file://COPYING" - "See COPYING in the distribution.")))) diff --git a/packages/hack-font.scm b/packages/hack-font.scm deleted file mode 100644 index 3e5d773..0000000 --- a/packages/hack-font.scm +++ /dev/null @@ -1,28 +0,0 @@ -(define-module (packages hack-font) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system font) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (gnu packages gawk)) - - -(define-public hack-font - (package - (name "hack-font") - (version "3.003") - (source (origin (method url-fetch) - (uri "https://github.com/source-foundry/Hack/releases/download/v3.003/Hack-v3.003-ttf.zip") - (sha256 (base32 "1b4hh8zkrx92m2v2vfkja1napb0192p0j3laqr0m018z3dih89hc")))) - (build-system font-build-system) - (synopsis "A typeface designed for source code") - (description - (string-append "A workhorse for code. No frills. No gimmicks. " - "Hack is hand-groomed and optically balanced to be " - "your go-to code face.")) - (home-page "https://sourcefoundry.org/hack/") - (license - ;; See https://github.com/source-foundry/Hack/issues/271 for details. - (list license:expat ; the Hack modifications to... - license:public-domain ; ...the DejaVu modifications to... - (license:x11-style ; ...the Bitstream Vera typeface - "file://LICENSE.md" "Bitstream Vera License"))))) From a3802df3c8a5526c0c840b4a1b201dcfdef98810 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Fri, 7 Jun 2024 19:02:58 +0100 Subject: [PATCH 07/10] Use official curlpp package. * dmbcs/development/packages/micro-server.scm --- dmbcs/development/packages/micro-server.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dmbcs/development/packages/micro-server.scm b/dmbcs/development/packages/micro-server.scm index cd7ca83..e299892 100644 --- a/dmbcs/development/packages/micro-server.scm +++ b/dmbcs/development/packages/micro-server.scm @@ -3,12 +3,10 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix licenses) - #:use-module (packages curlpp) #:use-module (gnu packages) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages gnupg) - #:use-module (gnu packages gawk)) + #:use-module (gnu)) +(use-package-modules curlpp pkg-config gnupg gawk) (define-public dmbcs-micro-server (package From 478211714d7eb99ff31e22db23aeed60ef9ce202 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Fri, 7 Jun 2024 19:10:25 +0100 Subject: [PATCH 08/10] Fix on last. * dmbcs/development/packages/micro-server.scm --- dmbcs/development/packages/micro-server.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dmbcs/development/packages/micro-server.scm b/dmbcs/development/packages/micro-server.scm index e299892..21c58f1 100644 --- a/dmbcs/development/packages/micro-server.scm +++ b/dmbcs/development/packages/micro-server.scm @@ -6,7 +6,7 @@ #:use-module (gnu packages) #:use-module (gnu)) -(use-package-modules curlpp pkg-config gnupg gawk) +(use-package-modules curl pkg-config gnupg gawk) (define-public dmbcs-micro-server (package From 47e38e62c9cae6fb88a7cf9cce10073f2b6e675b Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Tue, 28 Oct 2025 08:19:17 +0000 Subject: [PATCH 09/10] Mcron no longer needs our own guile. * dmbcs/development/packages/guile.scm * dmbcs/development/packages/mcron.scm --- dmbcs/development/packages/guile.scm | 3 ++- dmbcs/development/packages/mcron.scm | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dmbcs/development/packages/guile.scm b/dmbcs/development/packages/guile.scm index 6f6c2ac..1381a58 100644 --- a/dmbcs/development/packages/guile.scm +++ b/dmbcs/development/packages/guile.scm @@ -130,7 +130,8 @@ (search-path-specification (variable "GUILE_LOAD_COMPILED_PATH") (files '("lib/guile/3.0/site-ccache" - "share/guile/site/3.0"))))))) + "share/guile/site/3.0"))))) + (license license:gpl3+))) ;;; guile.scm ends here diff --git a/dmbcs/development/packages/mcron.scm b/dmbcs/development/packages/mcron.scm index 723922d..c4f1231 100644 --- a/dmbcs/development/packages/mcron.scm +++ b/dmbcs/development/packages/mcron.scm @@ -20,6 +20,9 @@ (define-module (dmbcs development packages mcron) ;; #:use-module (dmbcs development packages guile) + + ;; !!! We can probably get rid of most of these. + #:use-module (ice-9 popen) #:use-module (ice-9 rdelim) #:use-module (gnu) @@ -41,7 +44,13 @@ (uri (git-reference (url "https://rdmp.org/dmbcs/mcron.git") (commit "a16fd52bc5053032079533169baec131e271fbd4"))) - (sha256 (base32 "0gvhqq0cyjm6gd2jhvy8xfhny4mbdnp4z0nqzk11dvnwzs9wk09z")))) + (sha256 + (base32 "0gvhqq0cyjm6gd2jhvy8xfhny4mbdnp4z0nqzk11dvnwzs9wk09z")))) + + ;; !!! The current incarnation of mcron includes the enhanced + ;; command-line module from our new guile in its own source tree, + ;; so we can get away with using the conventional guile now. + ;; ;; Be sure to un-comment the use-module line near the top. ;; (inputs ;; `(("guile" ,(specification->package "guile@3.0.4+dmbcs")))) From ec0f033e5dde1707ebacab7b879f314cd9d57894 Mon Sep 17 00:00:00 2001 From: Dale Mellor Date: Tue, 28 Oct 2025 08:39:45 +0000 Subject: [PATCH 10/10] MICRO-SERVER updated to v0.5. --- dmbcs/development/packages/micro-server.scm | 47 ++++++++++++++------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/dmbcs/development/packages/micro-server.scm b/dmbcs/development/packages/micro-server.scm index 21c58f1..bfaa58f 100644 --- a/dmbcs/development/packages/micro-server.scm +++ b/dmbcs/development/packages/micro-server.scm @@ -1,35 +1,52 @@ +;; dmbcs-micro-server A C++ library providing CGI or built-in +;; web server functions +;; +;; Copyright (C) 2025 DM Bespoke Computer Solutions +;; +;; This program 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. +;; +;; This program 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 this program. If not, see . + + + (define-module (dmbcs development packages micro-server) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix licenses) #:use-module (gnu packages) - #:use-module (gnu)) + #:use-module (gnu packages curl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages texinfo)) -(use-package-modules curl pkg-config gnupg gawk) (define-public dmbcs-micro-server (package (name "dmbcs-micro-server") - (version "0.4") + (version "0.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://rdmp.org/dmbcs/micro-server.git") - (commit "4e10087710a3591b228f845e36c6171f4b1feac3"))) - (sha256 (base32 "1gp9ax7x3mc9zzi0b3fgynsr9bn12cmdysbkylsva7544vzgdd5a")))) + (url "https://khleedril.org/forge/dmbcs/micro-server") + (commit (string-append "v" version)))) + (sha256 (base32 "1a2la52dgmfi3gjdjg8jdahwy33p3hzmrfnsvjvn9cgwvfwrixzy")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases (delete 'check)))) - (native-inputs - `(("gcc-toolchain" ,(specification->package "gcc-toolchain@10")) - ("texinfo" ,(specification->package "texinfo")) - ("pkg-config" ,pkg-config))) - (propagated-inputs `(("curlpp" ,curlpp) ("libgcrypt" ,libgcrypt) )) - (synopsis "Yet another C++ web server class") - (description - (string-append "A C++ web service module.")) - (home-page "https://rdmp.org/dmbcs/micro-server") + (native-inputs (list pkg-config texinfo)) + (propagated-inputs (list curlpp)) + (synopsis "Yet another C++ web server class library") + (description "A C++ web service module.") + (home-page "https://khleedril.org/dmbcs/micro-server") (license gpl3+)))