summaryrefslogtreecommitdiff
path: root/core/heimdal
diff options
context:
space:
mode:
Diffstat (limited to 'core/heimdal')
-rw-r--r--core/heimdal/001_all_heimdal-no_libedit.patch10
-rw-r--r--core/heimdal/002_all_heimal-fPIC.patch12
-rw-r--r--core/heimdal/003_all_heimdal-rxapps.patch22
-rw-r--r--core/heimdal/005_all_heimdal-suid_fix.patch20
-rw-r--r--core/heimdal/012_all_heimdal-berkdb.patch124
-rw-r--r--core/heimdal/013_all_heimdal-pthread-lib.patch11
-rw-r--r--core/heimdal/014_all_heimdal-path.patch50
-rw-r--r--core/heimdal/PKGBUILD113
-rw-r--r--core/heimdal/heimdal-kdc.rc40
-rw-r--r--core/heimdal/heimdal.install20
-rw-r--r--core/heimdal/kadmind.rc40
-rw-r--r--core/heimdal/kpasswd.rc40
12 files changed, 502 insertions, 0 deletions
diff --git a/core/heimdal/001_all_heimdal-no_libedit.patch b/core/heimdal/001_all_heimdal-no_libedit.patch
new file mode 100644
index 000000000..a551bdce1
--- /dev/null
+++ b/core/heimdal/001_all_heimdal-no_libedit.patch
@@ -0,0 +1,10 @@
+--- cf/krb-readline.m4 2005-06-16 18:28:32.000000000 +0200
++++ cf/krb-readline.m4 2005-06-27 23:17:06.000000000 +0200
+@@ -6,7 +6,6 @@
+ dnl el_init
+
+ AC_DEFUN([KRB_READLINE],[
+-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
+ if test "$ac_cv_func_el_init" = yes ; then
+ AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
diff --git a/core/heimdal/002_all_heimal-fPIC.patch b/core/heimdal/002_all_heimal-fPIC.patch
new file mode 100644
index 000000000..c67dbae76
--- /dev/null
+++ b/core/heimdal/002_all_heimal-fPIC.patch
@@ -0,0 +1,12 @@
+--- lib/editline/Makefile.am 2005-06-16 18:28:44.000000000 +0200
++++ lib/editline/Makefile.am 2005-06-27 23:21:02.000000000 +0200
+@@ -41,6 +41,9 @@
+
+ EXTRA_DIST = $(man_MANS)
+
++$(libeditline_la_OBJECTS): %.lo: %.c
++ $(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
++
+ snprintf.c:
+ $(LN_S) $(srcdir)/../roken/snprintf.c .
+ strdup.c:
diff --git a/core/heimdal/003_all_heimdal-rxapps.patch b/core/heimdal/003_all_heimdal-rxapps.patch
new file mode 100644
index 000000000..40fc05f08
--- /dev/null
+++ b/core/heimdal/003_all_heimdal-rxapps.patch
@@ -0,0 +1,22 @@
+--- appl/kx/rxtelnet.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxtelnet.in 2005-06-27 23:21:34.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxtelnet.in,v 1.31 2004/03/07 17:22:06 lha Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]"
+-binary=telnet
++binary=ktelnet
+ term=
+ kx_args=-P
+ while true
+--- appl/kx/rxterm.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxterm.in 2005-06-27 23:21:55.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxterm.in,v 1.23 2002/03/18 17:37:34 joda Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host"
+-binary=rsh
++binary=krsh
+ term=xterm
+ while true
+ do
diff --git a/core/heimdal/005_all_heimdal-suid_fix.patch b/core/heimdal/005_all_heimdal-suid_fix.patch
new file mode 100644
index 000000000..35a9ed9f6
--- /dev/null
+++ b/core/heimdal/005_all_heimdal-suid_fix.patch
@@ -0,0 +1,20 @@
+--- appl/su/Makefile.am 2005-06-16 18:27:46.000000000 +0200
++++ appl/su/Makefile.am 2005-06-27 23:25:21.000000000 +0200
+@@ -7,6 +7,7 @@
+ bin_PROGRAMS = su
+ bin_SUIDS = su
+ su_SOURCES = su.c supaths.h
++su_LDFLAGS = -Wl,-z,now
+ man_MANS = su.1
+
+ LDADD = $(LIB_kafs) \
+--- appl/otp/Makefile.am 2005-06-16 18:28:46.000000000 +0200
++++ appl/otp/Makefile.am 2005-06-27 23:25:40.000000000 +0200
+@@ -8,6 +8,7 @@
+ bin_SUIDS = otp
+ otp_SOURCES = otp.c otp_locl.h
+ otpprint_SOURCES = otpprint.c otp_locl.h
++otp_LDFLAGS = -Wl,-z,now
+
+ man_MANS = otp.1 otpprint.1
+
diff --git a/core/heimdal/012_all_heimdal-berkdb.patch b/core/heimdal/012_all_heimdal-berkdb.patch
new file mode 100644
index 000000000..46762c220
--- /dev/null
+++ b/core/heimdal/012_all_heimdal-berkdb.patch
@@ -0,0 +1,124 @@
+Binary files heimdal-0.7-old/cf/.find-func-no-libs2.m4.swp and heimdal-0.7/cf/.find-func-no-libs2.m4.swp differ
+Index: heimdal/cf/db.m4
+===================================================================
+--- heimdal.orig/cf/db.m4
++++ heimdal/cf/db.m4
+@@ -18,24 +18,13 @@ db_type=unknown
+
+ if test "$enable_berkeley_db" != no; then
+
+- AC_CHECK_HEADERS([ \
+- db4/db.h \
+- db3/db.h \
+- db.h \
+- db_185.h \
+- ])
++ AC_CHECK_HEADERS([db.h])
+
+ dnl db_create is used by db3 and db4
+
+- AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
++ AC_FIND_FUNC_NO_LIBS(db_create, db, [
+ #include <stdio.h>
+- #ifdef HAVE_DB4_DB_H
+- #include <db4/db.h>
+- #elif defined(HAVE_DB3_DB_H)
+- #include <db3/db.h>
+- #else
+ #include <db.h>
+- #endif
+ ],[NULL, NULL, 0])
+
+ if test "$ac_cv_func_db_create" = "yes"; then
+@@ -50,17 +39,9 @@ dnl db_create is used by db3 and db4
+
+ dnl dbopen is used by db1/db2
+
+- AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
++ AC_FIND_FUNC_NO_LIBS(dbopen, db, [
+ #include <stdio.h>
+- #if defined(HAVE_DB2_DB_H)
+- #include <db2/db.h>
+- #elif defined(HAVE_DB_185_H)
+- #include <db_185.h>
+- #elif defined(HAVE_DB_H)
+ #include <db.h>
+- #else
+- #error no db.h
+- #endif
+ ],[NULL, 0, 0, 0, NULL])
+
+ if test "$ac_cv_func_dbopen" = "yes"; then
+Index: heimdal/lib/hdb/db.c
+===================================================================
+--- heimdal.orig/lib/hdb/db.c
++++ heimdal/lib/hdb/db.c
+@@ -37,11 +37,7 @@ RCSID("$Id: db.c 20215 2007-02-09 21:59:
+
+ #if HAVE_DB1
+
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/hdb/db3.c
+===================================================================
+--- heimdal.orig/lib/hdb/db3.c
++++ heimdal/lib/hdb/db3.c
+@@ -37,13 +37,7 @@ RCSID("$Id: db3.c 21610 2007-07-17 07:10
+
+ #if HAVE_DB3
+
+-#ifdef HAVE_DB4_DB_H
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/roken/getcap.c
+===================================================================
+--- heimdal.orig/lib/roken/getcap.c
++++ heimdal/lib/roken/getcap.c
+@@ -38,11 +38,13 @@
+ #include "roken.h"
+ RCSID("$Id: getcap.c 16561 2006-01-13 14:25:32Z lha $");
+
++#if defined(HAVE_DBOPEN) && defined(HAVE_DB_H)
++#define USE_DB
++#endif
++
+ #include <sys/types.h>
+ #include <ctype.h>
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
++#ifdef USE_DB
+ #include <db.h>
+ #endif
+ #include <errno.h>
+Index: heimdal/lib/roken/ndbm_wrap.c
+===================================================================
+--- heimdal.orig/lib/roken/ndbm_wrap.c
++++ heimdal/lib/roken/ndbm_wrap.c
+@@ -37,13 +37,7 @@ RCSID("$Id: ndbm_wrap.c 21634 2007-07-17
+ #endif
+
+ #include "ndbm_wrap.h"
+-#if defined(HAVE_DB4_DB_H)
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/core/heimdal/013_all_heimdal-pthread-lib.patch b/core/heimdal/013_all_heimdal-pthread-lib.patch
new file mode 100644
index 000000000..19f879407
--- /dev/null
+++ b/core/heimdal/013_all_heimdal-pthread-lib.patch
@@ -0,0 +1,11 @@
+--- heimdal-0.7.1/cf/pthreads.m4.old 2005-09-09 12:12:28.000000000 +0000
++++ heimdal-0.7.1/cf/pthreads.m4 2005-09-17 22:23:23.000000000 +0000
+@@ -32,7 +32,7 @@
+ 2.*)
+ native_pthread_support=yes
+ PTHREADS_CFLAGS=-pthread
+- PTHREADS_LIBS=-pthread
++ PTHREADS_LIBS=-lpthread
+ ;;
+ esac
+ ;;
diff --git a/core/heimdal/014_all_heimdal-path.patch b/core/heimdal/014_all_heimdal-path.patch
new file mode 100644
index 000000000..36a86f1f9
--- /dev/null
+++ b/core/heimdal/014_all_heimdal-path.patch
@@ -0,0 +1,50 @@
+--- appl/rcp/rcp.c.old 2006-05-03 13:31:59.398493625 +0200
++++ appl/rcp/rcp.c 2006-05-03 13:32:04.494485981 +0200
+@@ -34,7 +34,7 @@
+ #include "rcp_locl.h"
+ #include <getarg.h>
+
+-#define RSH_PROGRAM "rsh"
++#define RSH_PROGRAM "krsh"
+
+ struct passwd *pwd;
+ uid_t userid;
+--- appl/rcp/rcp_locl.h.old 2006-05-03 02:30:31.602025409 +0200
++++ appl/rcp/rcp_locl.h 2006-05-03 02:30:35.886018983 +0200
+@@ -64,4 +64,4 @@
+ #define _PATH_CP "/bin/cp"
+ #endif
+ #undef _PATH_RSH
+-#define _PATH_RSH BINDIR "/rsh"
++#define _PATH_RSH BINDIR "/krsh"
+--- appl/telnet/telnetd/telnetd.h.old 2006-05-03 02:23:14.582680939 +0200
++++ appl/telnet/telnetd/telnetd.h 2006-05-03 02:23:23.746667193 +0200
+@@ -192,7 +192,7 @@
+ #endif
+
+ #undef _PATH_LOGIN
+-#define _PATH_LOGIN BINDIR "/login"
++#define _PATH_LOGIN BINDIR "/klogin"
+
+ /* fallbacks */
+
+--- appl/login/shadow.c.old 2006-05-05 06:31:29.517138115 +0200
++++ appl/login/shadow.c 2006-05-05 06:32:26.433052741 +0200
+@@ -38,7 +38,7 @@
+ #ifdef HAVE_SHADOW_H
+
+ #ifndef _PATH_CHPASS
+-#define _PATH_CHPASS "/usr/bin/passwd"
++#define _PATH_CHPASS "/usr/bin/kpasswd"
+ #endif
+
+ static int
+@@ -52,7 +52,7 @@
+ printf("fork /bin/passwd");
+ exit(1);
+ case 0:
+- execlp(_PATH_CHPASS, "passwd", who->pw_name, (char *) 0);
++ execlp(_PATH_CHPASS, "kpasswd", who->pw_name, (char *) 0);
+ exit(1);
+ default:
+ waitpid(pid, &status, 0);
diff --git a/core/heimdal/PKGBUILD b/core/heimdal/PKGBUILD
new file mode 100644
index 000000000..55f7acf34
--- /dev/null
+++ b/core/heimdal/PKGBUILD
@@ -0,0 +1,113 @@
+# $Id: PKGBUILD 101969 2010-12-03 09:59:28Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+#
+### Attention: remove old pkg before building - it links against itself! ###
+#
+
+pkgname=heimdal
+pkgver=1.3.3
+pkgrel=4
+pkgdesc="Implementation of Kerberos V5 libraries"
+arch=('i686' 'x86_64')
+url="http://www.h5l.org/"
+license=('custom')
+depends=('db' 'openssl' 'sqlite3' 'e2fsprogs' 'libldap')
+backup=(etc/krb5.conf)
+options=('!libtool' '!emptydirs')
+install=heimdal.install
+source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz
+ 001_all_heimdal-no_libedit.patch
+ 002_all_heimal-fPIC.patch
+ 003_all_heimdal-rxapps.patch
+ 005_all_heimdal-suid_fix.patch
+ 012_all_heimdal-berkdb.patch
+ 013_all_heimdal-pthread-lib.patch
+ 014_all_heimdal-path.patch
+ heimdal-kdc.rc
+ kadmind.rc
+ kpasswd.rc)
+md5sums=('963c09f1b14c41660be70b55fae9f163'
+ '98e28f11f906c967aac22d6184102c9e'
+ '6d5571bdedba2e2423b90bccdbac2c0a'
+ '2feec3924ee5230b54175b4d4000c872'
+ '45aeb207f360f9f4e9e0fabc8bfeecbc'
+ '56f5d10d0ec40f2fda82ef144ffac1e0'
+ '1b8665b771c4eb6b56ea8582c96e56e3'
+ '8208ae8c0b6ff5ab4f64af1693e9e396'
+ 'e59650992b9541a30dfce727a194f6e0'
+ '1f2f86a67bbfddb7af581d35fdca9627'
+ 'f8f1eca95b9d3f2b4ebf2417b71b81cf')
+
+build() {
+ cd ${srcdir}/heimdal-${pkgver}
+ patch -Np0 -i ${srcdir}/001_all_heimdal-no_libedit.patch
+ patch -Np0 -i ${srcdir}/002_all_heimal-fPIC.patch
+ patch -Np0 -i ${srcdir}/003_all_heimdal-rxapps.patch
+ patch -Np0 -i ${srcdir}/005_all_heimdal-suid_fix.patch
+ patch -Np1 -i ${srcdir}/012_all_heimdal-berkdb.patch
+ patch -Np1 -i ${srcdir}/013_all_heimdal-pthread-lib.patch
+ patch -Np0 -i ${srcdir}/014_all_heimdal-path.patch
+
+ sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in \
+ doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \
+ lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5
+
+ sed -i 's|$(LIB_NDBM)|$(LIB_NDBM) $(LIB_db_create)|' lib/otp/Makefile.am
+
+ libtoolize --force
+ aclocal -I cf
+ autoconf
+ automake
+
+ ./configure --prefix=/usr --enable-shared=yes --without-x \
+ --sysconfdir=/etc --mandir=/usr/share/man \
+ --datadir=/var/lib/heimdal \
+ --localstatedir=/var/lib/heimdal \
+ --with-openssl=/usr \
+ --with-readline-lib=/usr/lib \
+ --with-readline-include=/usr/include/readline \
+ --with-sqlite3-lib=/usr/lib \
+ --with-sqlite3-include=/usr/include \
+ --with-openldap=/usr \
+ --libexecdir=/usr/sbin
+
+ make
+}
+
+package() {
+ cd ${srcdir}/heimdal-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Rename daemons and their manpages
+ for i in telnetd ftpd rshd; do
+ mv ${pkgdir}/usr/share/man/man8/{,k}${i}.8
+ mv ${pkgdir}/usr/sbin/{,k}${i}
+ done
+
+ # Rename clients and their manpages
+ for i in rcp rsh telnet ftp su login; do
+ if [ -f ${pkgdir}/usr/share/man/man1/${i}.1 ]; then
+ mv ${pkgdir}/usr/share/man/man1/{,k}${i}.1
+ fi
+ mv ${pkgdir}/usr/bin/{,k}${i}
+ done
+ rm -rf ${pkgdir}/usr/share/man/cat{1,3,5,8}
+
+ # Arch could be a KDC too
+ install -d ${pkgdir}/etc/rc.d
+ install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc/
+ for i in heimdal-kdc kadmind kpasswd; do
+ install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i}
+ done
+
+ # Remove conflicts
+ rm ${pkgdir}/usr/share/man/man5/ftpusers.5* # man-pages
+ rm ${pkgdir}/usr/share/man/man3/{DES,DH,EVP,OpenSSL,RAND,RSA}* # openssl (a bit overzealous...)
+ rm ${pkgdir}/usr/share/man/man3/os.3* # erlang
+
+ # Install the license
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/heimdal/heimdal-kdc.rc b/core/heimdal/heimdal-kdc.rc
new file mode 100644
index 000000000..b2a3b5fcf
--- /dev/null
+++ b/core/heimdal/heimdal-kdc.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kdc`
+case "$1" in
+ start)
+ stat_busy "Starting heimdal kdc"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kdc --detach
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon heimdal-kdc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping heimdal kdc"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon heimdal-kdc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/heimdal/heimdal.install b/core/heimdal/heimdal.install
new file mode 100644
index 000000000..b4fd19000
--- /dev/null
+++ b/core/heimdal/heimdal.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(heimdal hx509)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.info.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.info.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/heimdal/kadmind.rc b/core/heimdal/kadmind.rc
new file mode 100644
index 000000000..0f3b8c7c4
--- /dev/null
+++ b/core/heimdal/kadmind.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kadmind`
+case "$1" in
+ start)
+ stat_busy "Starting heimdal admin server"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kadmind &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kadmind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping heimdal admin server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kadmind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/heimdal/kpasswd.rc b/core/heimdal/kpasswd.rc
new file mode 100644
index 000000000..3697322b9
--- /dev/null
+++ b/core/heimdal/kpasswd.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kpasswdd`
+case "$1" in
+ start)
+ stat_busy "Starting heimdal kpasswdd"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kpasswdd &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kpasswd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping heimdal kpasswdd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kpasswd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0