From ece262461625e80957d904f39a6818286099d367 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 5 Mar 2014 02:16:06 -0500 Subject: gnu: Add lynx. * gnu/packages/lynx.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index ef89b42b23..f034b292dc 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -139,6 +139,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/lsof.scm \ gnu/packages/lua.scm \ gnu/packages/lvm.scm \ + gnu/packages/lynx.scm \ gnu/packages/m4.scm \ gnu/packages/mail.scm \ gnu/packages/make-bootstrap.scm \ -- cgit 1.4.1 From 7c706558f564e878415a14d32286c31c5ef370fb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 5 Mar 2014 19:12:19 -0500 Subject: gnu: Add libotr. * gnu/packages/messaging.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 3 +- gnu/packages/messaging.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/messaging.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index f034b292dc..de975e927e 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -1,7 +1,7 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012, 2013, 2014 Ludovic Courtès # Copyright © 2013 Andreas Enge -# Copyright © 2013 Mark H Weaver +# Copyright © 2013, 2014 Mark H Weaver # # This file is part of GNU Guix. # @@ -144,6 +144,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/mail.scm \ gnu/packages/make-bootstrap.scm \ gnu/packages/maths.scm \ + gnu/packages/messaging.scm \ gnu/packages/mit-krb5.scm \ gnu/packages/moe.scm \ gnu/packages/mpd.scm \ diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm new file mode 100644 index 0000000000..34efa85970 --- /dev/null +++ b/gnu/packages/messaging.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Mark H Weaver +;;; +;;; 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 messaging) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages gnupg)) + +(define-public libotr + (package + (name "libotr") + (version "4.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://otr.cypherpunks.ca/libotr-" + version ".tar.gz")) + (sha256 + (base32 "1d4k0b7v4d3scwm858cmqr9c6xgd6ppla1vk4x2yg64q82a1k49z")))) + (build-system gnu-build-system) + (propagated-inputs + `(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h + (inputs `(("libgpg-error" ,libgpg-error))) + (arguments + `(#:configure-flags '("--with-pic"))) + (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit") + (description + "OTR allows you to have private conversations over instant messaging by +providing: +* Encryption: No one else can read your instant messages. +* Authentication: You are assured the correspondent is who you think it is. +* Deniability: The messages you send do not have digital signatures that are + checkable by a third party. Anyone can forge messages after a conversation + to make them look like they came from you. However, during a conversation, + your correspondent is assured the messages he sees are authentic and + unmodified. +* Perfect forward secrecy: If you lose control of your private keys, no + previous conversation is compromised.") + (home-page "https://otr.cypherpunks.ca/") + (license (list lgpl2.1 gpl2)))) + +(define-public libotr-3 + (package (inherit libotr) + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://otr.cypherpunks.ca/libotr-" + version ".tar.gz")) + (sha256 + (base32 "1x6dd4rh499hdraiqfhz81igrj0a5rs0gjhc8l4sljwqhjjyla6l")))))) + +;;; messaging.scm ends here -- cgit 1.4.1 From 8b3099cf03b2d1ebcd233b4a35d132cd73b5728d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 6 Mar 2014 00:07:07 -0500 Subject: gnu: Add bitlbee. * gnu/packages/messaging.scm (bitlbee): New variable. * gnu/packages/patches/bitlbee-fix-tests.patch: New file. * gnu/packages/patches/bitlbee-memset-fix.patch: New file. * gnu-system.am (dist_patch_DATA): Add patches. --- gnu-system.am | 2 + gnu/packages/messaging.scm | 59 ++++++++++++++++++++++++++- gnu/packages/patches/bitlbee-fix-tests.patch | 33 +++++++++++++++ gnu/packages/patches/bitlbee-memset-fix.patch | 15 +++++++ 4 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/bitlbee-fix-tests.patch create mode 100644 gnu/packages/patches/bitlbee-memset-fix.patch (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index de975e927e..ff45aa7764 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -252,6 +252,8 @@ dist_patch_DATA = \ gnu/packages/patches/binutils-ld-new-dtags.patch \ gnu/packages/patches/binutils-loongson-madd-fix.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \ + gnu/packages/patches/bitlbee-fix-tests.patch \ + gnu/packages/patches/bitlbee-memset-fix.patch \ gnu/packages/patches/cdparanoia-fpic.patch \ gnu/packages/patches/cmake-fix-tests.patch \ gnu/packages/patches/cpio-gets-undeclared.patch \ diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 34efa85970..c1a755ef84 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -17,11 +17,20 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages messaging) - #:use-module (guix licenses) + #:use-module ((guix licenses) + #:select (gpl2+ gpl2 lgpl2.1 bsd-2)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (gnu packages gnupg)) + #:use-module (gnu packages) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages python) + #:use-module (gnu packages perl) + #:use-module (gnu packages compression) + #:use-module (gnu packages check)) (define-public libotr (package @@ -65,4 +74,50 @@ providing: (sha256 (base32 "1x6dd4rh499hdraiqfhz81igrj0a5rs0gjhc8l4sljwqhjjyla6l")))))) +(define-public bitlbee + (package + (name "bitlbee") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "http://get.bitlbee.org/src/bitlbee-" + version ".tar.gz")) + (sha256 + (base32 "0n8g5452i5qap43zxb83gxp01d48psf6rr3k1q7z6a3dgpfi3x00")) + (patches (list (search-patch "bitlbee-memset-fix.patch") + (search-patch "bitlbee-fix-tests.patch"))))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config) + ("check" ,check))) + (inputs `(("glib" ,glib) + ("libotr" ,libotr-3) + ("gnutls" ,gnutls) + ("zlib" ,zlib) ; Needed to satisfy "pkg-config --exists gnutls" + ("python" ,python-2) + ("perl" ,perl))) + (arguments + `(#:phases (alist-cons-after + 'install 'install-etc + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "install-etc" make-flags))) + (alist-replace + 'configure + ;; bitlbee's configure script does not tolerate many of the + ;; variable settings that Guix would pass to it. + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + "--otr=1"))) + %standard-phases)))) + (synopsis "IRC to instant messaging gateway") + (description "BitlBee brings IM (instant messaging) to IRC clients, for +people who have an IRC client running all the time and don't want to run an +additional IM client. BitlBee currently supports XMPP/Jabber (including +Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter +microblogging network (plus all other Twitter API compatible services like +identi.ca and status.net).") + (home-page "http://www.bitlbee.org/") + (license (list gpl2+ bsd-2)))) + ;;; messaging.scm ends here diff --git a/gnu/packages/patches/bitlbee-fix-tests.patch b/gnu/packages/patches/bitlbee-fix-tests.patch new file mode 100644 index 0000000000..52bb6c605d --- /dev/null +++ b/gnu/packages/patches/bitlbee-fix-tests.patch @@ -0,0 +1,33 @@ +Pass the correct number of arguments to 'nick_strip' and 'nick_ok' in tests. + +Patch by Mark H Weaver . + +--- bitlbee/tests/check_nick.c.orig 2013-11-27 17:54:54.000000000 -0500 ++++ bitlbee/tests/check_nick.c 2014-03-05 23:41:45.761230468 -0500 +@@ -30,7 +30,7 @@ START_TEST(test_nick_strip) + for (i = 0; get[i]; i++) { + char copy[60]; + strcpy(copy, get[i]); +- nick_strip(copy); ++ nick_strip(NULL, copy); + fail_unless (strcmp(copy, expected[i]) == 0, + "(%d) nick_strip broken: %s -> %s (expected: %s)", + i, get[i], copy, expected[i]); +@@ -45,7 +45,7 @@ START_TEST(test_nick_ok_ok) + int i; + + for (i = 0; nicks[i]; i++) { +- fail_unless (nick_ok(nicks[i]) == 1, ++ fail_unless (nick_ok(NULL, nicks[i]) == 1, + "nick_ok() failed: %s", nicks[i]); + } + } +@@ -58,7 +58,7 @@ START_TEST(test_nick_ok_notok) + int i; + + for (i = 0; nicks[i]; i++) { +- fail_unless (nick_ok(nicks[i]) == 0, ++ fail_unless (nick_ok(NULL, nicks[i]) == 0, + "nick_ok() succeeded for invalid: %s", nicks[i]); + } + } diff --git a/gnu/packages/patches/bitlbee-memset-fix.patch b/gnu/packages/patches/bitlbee-memset-fix.patch new file mode 100644 index 0000000000..1d801e0070 --- /dev/null +++ b/gnu/packages/patches/bitlbee-memset-fix.patch @@ -0,0 +1,15 @@ +Fix the size argument to 'memset'. + +Patch by Mark H Weaver . + +--- bitlbee/lib/md5.c.orig 2013-11-27 17:54:54.000000000 -0500 ++++ bitlbee/lib/md5.c 2014-03-05 21:39:04.739746093 -0500 +@@ -159,7 +159,7 @@ void md5_finish(struct MD5Context *ctx, + ctx->buf[2] = cvt32(ctx->buf[2]); + ctx->buf[3] = cvt32(ctx->buf[3]); + memcpy(digest, ctx->buf, 16); +- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */ ++ memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ + } + + void md5_finish_ascii(struct MD5Context *context, char *ascii) -- cgit 1.4.1 From 583103416dc868826ef573b55c2e6657cd62eb36 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 6 Mar 2014 14:16:18 -0600 Subject: gnu: Add a2ps, trueprint, enscript, and source-highlight * gnu/packages/pretty-print.scm: New file * gnu/packages/patches/source-highlight-regexrange-test.patch: New file * gnu-system.am (dist_patch_DATA): Add patch. (GNU_SYSTEM_MODULES): Add pretty-print.scm --- gnu-system.am | 2 + .../patches/source-highlight-regexrange-test.patch | 15 ++ gnu/packages/pretty-print.scm | 224 +++++++++++++++++++++ 3 files changed, 241 insertions(+) create mode 100644 gnu/packages/patches/source-highlight-regexrange-test.patch create mode 100644 gnu/packages/pretty-print.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index ff45aa7764..2eae1483cc 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -176,6 +176,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/popt.scm \ gnu/packages/pth.scm \ gnu/packages/pulseaudio.scm \ + gnu/packages/pretty-print.scm \ gnu/packages/python.scm \ gnu/packages/qemu.scm \ gnu/packages/qt.scm \ @@ -322,6 +323,7 @@ dist_patch_DATA = \ gnu/packages/patches/slim-session.patch \ gnu/packages/patches/slim-config.patch \ gnu/packages/patches/slim-sigusr1.patch \ + gnu/packages/patches/source-highlight-regexrange-test.patch \ gnu/packages/patches/tcsh-fix-autotest.patch \ gnu/packages/patches/teckit-cstdio.patch \ gnu/packages/patches/valgrind-glibc.patch \ diff --git a/gnu/packages/patches/source-highlight-regexrange-test.patch b/gnu/packages/patches/source-highlight-regexrange-test.patch new file mode 100644 index 0000000000..298c831b35 --- /dev/null +++ b/gnu/packages/patches/source-highlight-regexrange-test.patch @@ -0,0 +1,15 @@ +Disable a single check. The failure is discussed at: + + https://savannah.gnu.org/bugs/index.php?41786 + +--- a/lib/tests/test_regexranges_main.cpp 2012-04-14 08:58:25.000000000 -0500 ++++ b/lib/tests/test_regexranges_main.cpp 2014-03-05 23:49:23.520402043 -0600 +@@ -52,7 +52,7 @@ + check_range_regex("simple regex"); + check_range_regex("[[:alpha:]]+"); + // test with a wrong regular expression +- check_range_regex("{notclosed", false); ++ // check_range_regex("{notclosed", false); + + // reset regular expressions + ranges.clear(); diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm new file mode 100644 index 0000000000..98663cd834 --- /dev/null +++ b/gnu/packages/pretty-print.scm @@ -0,0 +1,224 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 pretty-print) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages groff) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages gv) + #:use-module (gnu packages boost) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) + #:use-module (gnu packages gperf) + #:use-module (gnu packages perl) + #:use-module (gnu packages file)) + +(define-public a2ps + (package + (name "a2ps") + (version "4.14") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/a2ps/a2ps-" + version ".tar.gz")) + (sha256 + (base32 + "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk")))) + (build-system gnu-build-system) + (inputs + `(("psutils" ,psutils) + ("groff" ,groff) + ("gv" ,gv) + ("imagemagick" ,imagemagick))) + (native-inputs + `(("gperf" ,gperf) + ("perl" ,perl) + ("file" ,file))) + (arguments + '(#:phases (alist-replace + 'configure + (lambda* (#:key #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + (substitute* "configure" + (("/usr/bin/file") (which "file"))) + (apply configure args))) + (alist-cons-before + 'build 'patch-scripts + (lambda _ + (substitute* + '("afm/make_fonts_map.sh" + "tests/defs" + "tests/backup.tst" + "tests/styles.tst") + (("/bin/rm") (which "rm")))) + (alist-cons-before + 'check 'patch-test-files + ;; Alternatively, we could unpatch the shebangs in tstfiles + (lambda* (#:key inputs #:allow-other-keys) + (let ((perl (assoc-ref inputs "perl"))) + (substitute* '("tests/ps-ref/includeres.ps" + "tests/gps-ref/includeres.ps") + (("/usr/local/bin/perl") + (string-append perl "/bin/perl")))) + ;; Some of the reference postscript contain a 'version 3' + ;; string that in inconsistent with the source text in the + ;; tstfiles directory. Erroneous search-and-replace? + (substitute* '("tests/ps-ref/InsertBlock.ps" + "tests/gps-ref/InsertBlock.ps" + "tests/ps-ref/bookie.ps" + "tests/gps-ref/bookie.ps") + (("version 3") "version 2")) + (substitute* '("tests/ps-ref/psmandup.ps" + "tests/gps-ref/psmandup.ps") + (("#! */bin/sh") (string-append + "#!" (which "sh"))))) + %standard-phases))))) + (home-page "http://www.gnu.org/software/a2ps") + (synopsis "Any file to PostScript, including pretty-printing") + (description + "GNU a2ps converts almost anything to a PostScript file, ready for +printing. It accomplishes this by being able to delegate files to external +handlers, such as Groff and Gzip. It handles as many steps as is necessary to +produce a pretty-printed file. It also includes some extra abilities for +special cases, such as pretty-printing \"--help\" output.") + (license gpl3+))) + +(define-public trueprint + (package + (name "trueprint") + (version "5.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/trueprint/trueprint-" + version ".tar.gz")) + (sha256 + (base32 + "13rkc0fga10xyf56yy9dnq95zndnfadkhxflnp24skszj21y8jqh")))) + (build-system gnu-build-system) + (native-inputs `(("file" ,file))) + (arguments + ;; Must define DIFF_CMD for tests to pass + '(#:configure-flags '("CPPFLAGS=-DDIFF_CMD=\\\"diff\\\"") + #:phases (alist-replace + 'configure + (lambda* (#:key #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + (substitute* "configure" + (("/usr/bin/file") (which "file"))) + (apply configure args))) + %standard-phases))) + (home-page "http://www.gnu.org/software/trueprint") + (synopsis "Pretty-print C sources and other plain text to PostScript") + (description + "GNU Trueprint translates C source code files as PostScript files. +In addition to the basic source code output, it can also perform diff-marking, +indentation counting, function and file indices and more.") + (license gpl2))) + +(define-public enscript + (package + (name "enscript") + (version "1.6.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/enscript/enscript-" + version ".tar.gz")) + (sha256 + (base32 + "1fy0ymvzrrvs889zanxcaxjfcxarm2d3k43c9frmbl1ld7dblmkd")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/enscript") + (synopsis "Generating PostScript, including pretty-printing") + (description + "GNU Enscript is a program to convert ASCII text files to PostScript, +HTML or RTF formats, to be stored in files or sent immediately to a printer. +It also includes the capability to perform syntax highlighting for several +different programming languages.") + (license gpl3+))) + +(define-public source-highlight + (package + (name "source-highlight") + (version "3.1.7") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/src-highlite/source-highlight-" + version ".tar.gz")) + (sha256 + (base32 + "1s49ld8cnpzhhwq0r7s0sfm3cg3nhhm0wla27lwraifrrl3y1cp1")) + (patches + (list (search-patch + ;; Patch submitted as Savannah item #41786 + "source-highlight-regexrange-test.patch"))))) + (build-system gnu-build-system) + ;; The ctags that comes with emacs does not support the --excmd options, + ;; so can't be used + (inputs + `(("boost" ,boost-1.54))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("file" ,file))) + (arguments + `(#:configure-flags + (list (string-append "--with-boost=" + (assoc-ref %build-inputs "boost"))) + #:parallel-tests? #f ;There appear to be race conditions + #:phases (alist-replace + 'configure + (lambda* (#:key #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + (substitute* "configure" + (("/usr/bin/file") (which "file"))) + (apply configure args))) + (alist-cons-before + 'check 'patch-test-files + (lambda* (#:key inputs #:allow-other-keys) + ;; Unpatch shebangs in test input so that source-highlight + ;; is still able to infer input language + (substitute* '("tests/test.sh" + "tests/test2.sh" + "tests/test.tcl") + (((string-append "#! *" (which "sh"))) "#!/bin/sh")) + ;; Initial patching unrecoverably removes whitespace, so + ;; remove it also in the comparison output. + (substitute* '("tests/test.sh.html" + "tests/test2.sh.html" + "tests/test.tcl.html") + (("#! */bin/sh") "#!/bin/sh"))) + %standard-phases)))) + (home-page "http://www.gnu.org/software/src-highlite") + (synopsis "Produce a document with syntax highlighting from a source file") + (description + "GNU source-highlight reads in a source code file and produces an output +file in which the keywords are highlighted in different colors to designate +their syntactic role. It supports over 150 different languages and it can +output to 8 different formats, including HTML, LaTeX and ODF. It can also +output to ANSI color escape sequences, so that highlighted source code can be +seen in a terminal.") + (license gpl3+))) -- cgit 1.4.1