summaryrefslogtreecommitdiffstats
path: root/source/d/cvs
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/cvs')
-rwxr-xr-xsource/d/cvs/cvs.SlackBuild10
-rw-r--r--source/d/cvs/cvs.crypt-2.diff53
-rw-r--r--source/d/cvs/cvs.getline64.diff34
3 files changed, 95 insertions, 2 deletions
diff --git a/source/d/cvs/cvs.SlackBuild b/source/d/cvs/cvs.SlackBuild
index 4c3528cba..81250f4a0 100755
--- a/source/d/cvs/cvs.SlackBuild
+++ b/source/d/cvs/cvs.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
VERSION=1.11.23
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -56,6 +56,12 @@ cd $TMP
rm -rf cvs-$VERSION
tar xvf $CWD/cvs-$VERSION.tar.bz2 || exit 1
cd cvs-$VERSION
+
+# Patch to handle recent glib crypt():
+zcat $CWD/cvs.crypt-2.diff.gz | patch -p1 --verbose || exit 1
+# Fix getline compile error:
+zcat $CWD/cvs.getline64.diff.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
diff --git a/source/d/cvs/cvs.crypt-2.diff b/source/d/cvs/cvs.crypt-2.diff
new file mode 100644
index 000000000..140d0b959
--- /dev/null
+++ b/source/d/cvs/cvs.crypt-2.diff
@@ -0,0 +1,53 @@
+--- cvs-1.11.23/src/server.c.orig 2013-05-17
++++ cvs-1.11.23/src/server.c 2013-05-22
+@@ -5632,9 +5632,11 @@ check_repository_password (username, pas
+ host_user_tmp = username;
+
+ /* Verify blank passwords directly, otherwise use crypt(). */
++ char *crypt_passwd = found_password ? crypt (password, found_password): NULL;
+ if ((found_password == NULL)
+- || ((strcmp (found_password, crypt (password, found_password))
+- == 0)))
++ || (crypt_passwd != NULL
++ && (strcmp (found_password, crypt_passwd)
++ == 0)))
+ {
+ /* Give host_user_ptr permanent storage. */
+ *host_user_ptr = xstrdup (host_user_tmp);
+@@ -5645,7 +5647,7 @@ check_repository_password (username, pas
+ #ifdef LOG_AUTHPRIV
+ syslog (LOG_AUTHPRIV | LOG_NOTICE,
+ "password mismatch for %s in %s: %s vs. %s", username,
+- repository, crypt(password, found_password), found_password);
++ repository, crypt_passwd, found_password);
+ #endif
+ *host_user_ptr = NULL;
+ retval = 2;
+@@ -5675,6 +5677,7 @@ check_password (username, password, repo
+ char *host_user = NULL;
+ char *found_passwd = NULL;
+ struct passwd *pw;
++ char *crypt_passwd = NULL;
+
+ /* First we see if this user has a password in the CVS-specific
+ password file. If so, that's enough to authenticate with. If
+@@ -5752,7 +5755,9 @@ error 0 %s: no such user\n", username);
+ if (*found_passwd)
+ {
+ /* user exists and has a password */
+- if (strcmp (found_passwd, crypt (password, found_passwd)) == 0)
++ crypt_passwd = crypt (password, found_passwd);
++ if ((crypt_passwd != NULL) &&
++ (strcmp (found_passwd, crypt_passwd) == 0))
+ {
+ host_user = xstrdup (username);
+ }
+@@ -5762,7 +5767,7 @@ error 0 %s: no such user\n", username);
+ #ifdef LOG_AUTHPRIV
+ syslog (LOG_AUTHPRIV | LOG_NOTICE,
+ "password mismatch for %s: %s vs. %s", username,
+- crypt(password, found_passwd), found_passwd);
++ crypt_passwd, found_passwd);
+ #endif
+ }
+ goto handle_return;
diff --git a/source/d/cvs/cvs.getline64.diff b/source/d/cvs/cvs.getline64.diff
new file mode 100644
index 000000000..99942e058
--- /dev/null
+++ b/source/d/cvs/cvs.getline64.diff
@@ -0,0 +1,34 @@
+--- cvs-1.11.23/lib/getline.c 2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.c.old 2008-06-03 19:06:25.000000000 +0200
+@@ -154,7 +154,7 @@
+ return ret;
+ }
+
+-int
++ssize_t
+ getline (lineptr, n, stream)
+ char **lineptr;
+ size_t *n;
+@@ -163,7 +163,7 @@
+ return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+ }
+
+-int
++ssize_t
+ getline_safe (lineptr, n, stream, limit)
+ char **lineptr;
+ size_t *n;
+--- cvs-1.11.23/lib/getline.h 2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.h.old 2008-06-03 19:06:27.000000000 +0200
+@@ -11,9 +11,9 @@
+
+ #define GETLINE_NO_LIMIT -1
+
+-int
++ssize_t
+ getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+-int
++ssize_t
+ getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+ int limit));
+ int