guix-devel
[Top][All Lists]
Advanced

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

[PATCH] gnu: Add cssc.


From: John Darrington
Subject: [PATCH] gnu: Add cssc.
Date: Wed, 28 May 2014 09:21:14 +0200

* 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                                   |    2 +
 gnu/packages/patches/cssc-gets-undeclared.patch |   17 +++++++++
 gnu/packages/patches/cssc-missing-include.patch |   12 ++++++
 gnu/packages/version-control.scm                |   46 ++++++++++++++++++++++-
 4 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/cssc-gets-undeclared.patch
 create mode 100644 gnu/packages/patches/cssc-missing-include.patch

diff --git a/gnu-system.am b/gnu-system.am
index 04c2d1d..9f3b100 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -275,6 +275,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         \
diff --git a/gnu/packages/patches/cssc-gets-undeclared.patch 
b/gnu/packages/patches/cssc-gets-undeclared.patch
new file mode 100644
index 0000000..68c607c
--- /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 0000000..3cef9c1
--- /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 <sys/types.h>
+ #include "filelock.h"
+ 
+ enum create_mode {
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ed7d6f6..3903b97 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -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+)))
-- 
1.7.10.4




reply via email to

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