From 25f76ef0bae59fc7da6f1e0d4f62ec9e5f75ee94 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 27 May 2014 21:38:47 +0200 Subject: gnu: Add cssc. * gnu/packages/version-control.scm (cssc): New variable. * gnu/packages/patches/cssc-gets-undeclared.patch: New file * gnu/packages/patches/cssc-missing-include.patch: New file * gnu-system.am: Add gnu/packages/patches/cssc-gets-undeclared.patch and gnu/packages/patches/cssc-missing-include.patch --- gnu/packages/patches/cssc-gets-undeclared.patch | 17 +++++++++ gnu/packages/patches/cssc-missing-include.patch | 12 +++++++ gnu/packages/version-control.scm | 46 ++++++++++++++++++++++++- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/cssc-gets-undeclared.patch create mode 100644 gnu/packages/patches/cssc-missing-include.patch (limited to 'gnu') diff --git a/gnu/packages/patches/cssc-gets-undeclared.patch b/gnu/packages/patches/cssc-gets-undeclared.patch new file mode 100644 index 0000000000..68c607cf58 --- /dev/null +++ b/gnu/packages/patches/cssc-gets-undeclared.patch @@ -0,0 +1,17 @@ +CSSC uses a gets in a couple of places. For security reasons, modern gnulib +does not allow this. This patch allows it again. +--- CSSC-1.3.0/gl/lib/stdio.in.h 2010-05-15 00:15:35.000000000 +0200 ++++ CSSC-1.3.0/gl/lib/stdio.in.h 2014-02-03 21:27:10.000000000 +0100 +@@ -135,12 +135,6 @@ + "use gnulib module fflush for portable POSIX compliance"); + #endif + +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-#undef gets +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +- + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) diff --git a/gnu/packages/patches/cssc-missing-include.patch b/gnu/packages/patches/cssc-missing-include.patch new file mode 100644 index 0000000000..3cef9c15f1 --- /dev/null +++ b/gnu/packages/patches/cssc-missing-include.patch @@ -0,0 +1,12 @@ +Added a missing include file (necessary for gid_t and others). +So far as I am aware, this has not been added upstream yet. +--- CSSC-1.3.0/src/file.h 2010-05-16 19:31:33.000000000 +0200 ++++ CSSC-1.3.0/src/file.h 2014-02-03 21:48:30.000000000 +0100 +@@ -30,6 +30,7 @@ + #ifndef CSSC__FILE_H__ + #define CSSC__FILE_H__ + ++#include + #include "filelock.h" + + enum create_mode { diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index ed7d6f61ad..3903b971ad 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -44,7 +44,8 @@ (define-module (gnu packages version-control) #:use-module (gnu packages emacs) #:use-module (gnu packages compression) #:use-module (gnu packages swig) - #:use-module (gnu packages tcl)) + #:use-module (gnu packages tcl) + #:use-module (gnu packages)) (define-public bazaar (package @@ -435,3 +436,46 @@ (define-public diffstat insertions, deletions, and modifications per-file. It is useful for reviewing large, complex patch files.") (license (x11-style "file://COPYING")))) + + +(define-public cssc + (package + (name "cssc") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/" name "/CSSC-" + version ".tar.gz")) + (sha256 + (base32 + "0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm")) + (patches (list (search-patch "cssc-gets-undeclared.patch") + (search-patch "cssc-missing-include.patch"))))) + (build-system gnu-build-system) + (arguments + `(#:phases (alist-cons-before + 'check 'precheck + (lambda _ + (begin + (substitute* "tests/common/test-common" + (("/bin/pwd") (which "pwd"))) + + (substitute* "tests/prt/all-512.sh" + (("/bin/sh") (which "sh"))) + + ;; XXX: This test has no hope of passing until there is a "nogroup" + ;; entry (or at least some group to which the guix builder does + ;; not belong) in the /etc/group file of the build environment. + ;; Currently we do not have such a group. Disable this test for now. + (substitute* "tests/Makefile" + (("test-delta ") "")))) + %standard-phases))) + ;; These are needed for the tests + (native-inputs `(("git" ,git) + ("cvs" ,cvs))) + (home-page "http://www.gnu.org/software/cssc/") + (synopsis "File-based version control like SCCS") + (description "GNU CSSC provides a replacement for the legacy Unix source +code control system SCCS. This allows old code still under that system to be +accessed and migrated on modern systems.") + (license gpl3+))) -- cgit v1.2.3