~ruther/guix-local

25f76ef0bae59fc7da6f1e0d4f62ec9e5f75ee94 — John Darrington 11 years ago 93c3de9
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
M gnu-system.am => gnu-system.am +2 -0
@@ 279,6 279,8 @@ dist_patch_DATA =						\
  gnu/packages/patches/coreutils-dummy-man.patch		\
  gnu/packages/patches/coreutils-skip-nohup.patch		\
  gnu/packages/patches/cpio-gets-undeclared.patch		\
  gnu/packages/patches/cssc-gets-undeclared.patch               \
  gnu/packages/patches/cssc-missing-include.patch               \
  gnu/packages/patches/curl-fix-test172.patch			\
  gnu/packages/patches/dbus-localstatedir.patch			\
  gnu/packages/patches/diffutils-gets-undeclared.patch		\

A gnu/packages/patches/cssc-gets-undeclared.patch => gnu/packages/patches/cssc-gets-undeclared.patch +17 -0
@@ 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)

A gnu/packages/patches/cssc-missing-include.patch => gnu/packages/patches/cssc-missing-include.patch +12 -0
@@ 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 <sys/types.h>
 #include "filelock.h"
 
 enum create_mode {

M gnu/packages/version-control.scm => gnu/packages/version-control.scm +45 -1
@@ 44,7 44,8 @@
  #: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 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
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+)))