gnu: mit-krb5: don't assume arguments are evaluated right-to-left.

* gnu/packages/patches/mit-krb5-init-fix.patch: New file.
* gnu/packages/mit-krb5.scm (mit-krb5): Apply patch at the end of the custom
  unpack phase.
* gnu-system.am (dist_patch_DATA): Add patch.
master
Mark H Weaver 2013-11-04 13:33:49 -05:00
parent 2ebab8e909
commit 7a78cc7af2
3 changed files with 27 additions and 1 deletions

View File

@ -251,6 +251,7 @@ dist_patch_DATA = \
gnu/packages/patches/m4-readlink-EINVAL.patch \
gnu/packages/patches/make-impure-dirs.patch \
gnu/packages/patches/mcron-install.patch \
gnu/packages/patches/mit-krb5-init-fix.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/procps-make-3.82.patch \

View File

@ -37,6 +37,8 @@
(sha256 (base32
"1daiaxgkxcryqs37w28v4x1vajqmay4l144d1zd9c2d7jjxr9gcs"))))
(build-system gnu-build-system)
(native-inputs
`(("patch/init-fix" ,(search-patch "mit-krb5-init-fix.patch"))))
(inputs `(("bison" ,bison)
("perl" ,perl)))
(arguments
@ -51,7 +53,12 @@
(and (zero? (system* "tar" "xvf" source))
(zero? (system* "tar" "xvf" (string-append inner ".tar.gz")))
(chdir inner)
(chdir "src"))))
(chdir "src")
;; XXX The current patch system does not support unusual
;; source unpack methods, so we have to apply this patch in a
;; non-standard way.
(zero? (system* "patch" "-p1" "--batch" "-i"
(assoc-ref %build-inputs "patch/init-fix"))))))
(alist-replace
'check
(lambda* (#:key inputs #:allow-other-keys #:rest args)

View File

@ -0,0 +1,18 @@
Fix the early context initialization code to avoid assuming that
arguments will be evaluated from right to left.
Patch by Mark H Weaver <mhw@netris.org>.
--- src/lib/krb5/krb/t_cc_config.c.orig 2012-12-17 21:47:05.000000000 -0500
+++ src/lib/krb5/krb/t_cc_config.c 2013-10-29 18:19:16.547994590 -0400
@@ -117,8 +117,8 @@
int c;
unsigned int i;
- bail_on_err(context, "Error initializing Kerberos library",
- krb5_init_context(&context));
+ ret = krb5_init_context(&context);
+ bail_on_err(context, "Error initializing Kerberos library", ret);
bail_on_err(context, "Error getting location of default ccache",
krb5_cc_default(context, &ccache));
server = NULL;