summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/heimdal/Makefile38
-rw-r--r--package/heimdal/patches/patch-cf_check-compile-et_m417
-rw-r--r--package/heimdal/patches/patch-lib_com_err_Makefile_am11
-rw-r--r--package/heimdal/patches/patch-lib_roken_roken_h_in11
-rw-r--r--package/heimdal/src/cf/roken-h-process.pl184
-rw-r--r--package/samba/Makefile147
-rw-r--r--package/samba/files/cache.txt38
-rw-r--r--package/samba/patches/patch-buildtools_wafsamba_samba_autoconf_py13
8 files changed, 364 insertions, 95 deletions
diff --git a/package/heimdal/Makefile b/package/heimdal/Makefile
new file mode 100644
index 000000000..dcf648db2
--- /dev/null
+++ b/package/heimdal/Makefile
@@ -0,0 +1,38 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= heimdal
+PKG_VERSION:= 1.5.3
+PKG_RELEASE:= 1
+PKG_HASH:= aac27bedb33c341b6aed202af07ccc816146a893148721f8123abbbf93bbfea5
+PKG_DESCR:= kerberos server
+PKG_SECTION:= app/crypto
+PKG_URL:= http://www.h5l.org/
+PKG_SITES:= http://www.h5l.org/dist/src/
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+
+PKG_CFLINE_HEIMDAL:= depends on ADK_HOST_ONLY
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,HEIMDAL,heimdal,$(PKG_VERSION)-${PKG_RELEASE}))
+
+HOST_CONFIGURE_ARGS+= --disable-pk-init \
+ --without-openldap \
+ --disable-kcm \
+ --disable-kx509 \
+ --disable-ndbm-db \
+ --without-berkeley-db \
+ --disable-sqlite-cache \
+ --disable-otp
+
+hostpost-install:
+ $(CP) $(STAGING_HOST_DIR)/usr/libexec/heimdal/asn1_compile \
+ $(STAGING_HOST_DIR)/usr/bin
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/heimdal/patches/patch-cf_check-compile-et_m4 b/package/heimdal/patches/patch-cf_check-compile-et_m4
new file mode 100644
index 000000000..0211e2b8f
--- /dev/null
+++ b/package/heimdal/patches/patch-cf_check-compile-et_m4
@@ -0,0 +1,17 @@
+--- heimdal-1.5.3.orig/cf/check-compile-et.m4 2012-12-09 23:06:44.000000000 +0100
++++ heimdal-1.5.3/cf/check-compile-et.m4 2014-04-24 11:55:02.000000000 +0200
+@@ -3,12 +3,12 @@ dnl
+ dnl CHECK_COMPILE_ET
+ AC_DEFUN([CHECK_COMPILE_ET], [
+
+-AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et])
++AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et],[no])
+
+ krb_cv_compile_et="no"
+ krb_cv_com_err_need_r=""
+ krb_cv_compile_et_cross=no
+-if test "${COMPILE_ET}" = "compile_et"; then
++if test "${COMPILE_ET}" != no; then
+
+ dnl We have compile_et. Now let's see if it supports `prefix' and `index'.
+ AC_MSG_CHECKING(whether compile_et has the features we need)
diff --git a/package/heimdal/patches/patch-lib_com_err_Makefile_am b/package/heimdal/patches/patch-lib_com_err_Makefile_am
new file mode 100644
index 000000000..9c2faa8d8
--- /dev/null
+++ b/package/heimdal/patches/patch-lib_com_err_Makefile_am
@@ -0,0 +1,11 @@
+--- heimdal-1.5.3.orig/lib/com_err/Makefile.am 2012-12-09 23:06:44.000000000 +0100
++++ heimdal-1.5.3/lib/com_err/Makefile.am 2014-05-27 11:51:26.000000000 +0200
+@@ -13,7 +13,7 @@ endif
+
+ libcom_err_la_LIBADD = $(LIB_libintl)
+
+-bin_PROGRAMS = compile_et
++libexec_heimdal_PROGRAMS = compile_et
+
+ include_HEADERS = com_err.h com_right.h
+
diff --git a/package/heimdal/patches/patch-lib_roken_roken_h_in b/package/heimdal/patches/patch-lib_roken_roken_h_in
new file mode 100644
index 000000000..b571cc428
--- /dev/null
+++ b/package/heimdal/patches/patch-lib_roken_roken_h_in
@@ -0,0 +1,11 @@
+--- heimdal-1.5.3.orig/lib/roken/roken.h.in 2012-12-09 23:06:44.000000000 +0100
++++ heimdal-1.5.3/lib/roken/roken.h.in 2014-04-24 10:36:35.000000000 +0200
+@@ -551,7 +551,7 @@ ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL ge
+ ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL strerror(int);
+ #endif
+
+-#if (!defined(HAVE_STRERROR_R) && !defined(strerror_r)) || (!defined(STRERROR_R_PROTO_COMPATIBLE) && defined(HAVE_STRERROR_R))
++#if (defined(HAVE_STRERROR_R) && !defined(strerror_r)) || (!defined(STRERROR_R_PROTO_COMPATIBLE) && defined(HAVE_STRERROR_R))
+ int ROKEN_LIB_FUNCTION rk_strerror_r(int, char *, size_t);
+ #else
+ #define rk_strerror_r strerror_r
diff --git a/package/heimdal/src/cf/roken-h-process.pl b/package/heimdal/src/cf/roken-h-process.pl
new file mode 100644
index 000000000..aa371a364
--- /dev/null
+++ b/package/heimdal/src/cf/roken-h-process.pl
@@ -0,0 +1,184 @@
+#!/usr/bin/perl
+
+require 'getopts.pl';
+
+my $debug = 0;
+
+Getopts('dc:p:o:') || die "foo";
+
+if ($opt_d) {
+ $debug = 1;
+}
+
+die "missing arg" if (!defined $opt_c || !defined $opt_p || !defined $opt_o);
+
+my %defines;
+my $IN;
+my $OUT;
+
+print "parse config.h\n" if ($debug);
+
+open IN, $opt_c || die "failed open ${opt_c}";
+
+my @nesting;
+
+push @nesting, 1;
+
+while (<IN>) {
+ if (m/\s*#ifdef\s+(.*)/) {
+ my $var = $1;
+ if (defined $defines{$var}) {
+ push @nesting, 1;
+ } else {
+ push @nesting, 0;
+ }
+ next;
+ } elsif (m/\s*#ifndef\s+(.*)/) {
+ my $var = $1;
+ if (defined $defines{$var}) {
+ push @nesting, 0;
+ } else {
+ push @nesting, 1;
+ }
+ next;
+ } elsif (m/\s*#else/) {
+ my $var = pop @nesting;
+ $var = !$var;
+ push @nesting, $var;
+ next;
+ } elsif ($nesting[$#nesting] and m/\s*#define\s+(\w+)\s+(\S+)/) {
+ my $res = $2;
+ $res = 1 if (!defined $res);
+ $defines{$1} = $res;
+ }
+}
+
+close IN;
+
+if ($debug) {
+ foreach my $i (keys %defines) {
+ print "k: $i v: $defines{$i}\n";
+ }
+}
+
+open IN, "$opt_p" || die "failed open ${opt_p}";
+open OUT, ">$opt_o" || die "failed open ${opt_o}";
+
+print "parse roken.h.in\n" if ($debug);
+
+print OUT "/* This is an OS dependent, generated file */\n";
+print OUT "\n";
+print OUT "\n";
+print OUT "#ifndef __ROKEN_H__\n";
+print OUT "#define __ROKEN_H__\n";
+print OUT "\n";
+
+@nesting = (1);
+
+while (<IN>) {
+ if (m/\s*#ifdef\s+(.*)/) {
+ my $var = $1;
+ if (defined $defines{$var}) {
+ push @nesting, 1;
+ } else {
+ push @nesting, 0;
+ }
+ next;
+ } elsif (m/\s*#ifndef\s+(.*)/) {
+ my $var = $1;
+ if (defined $defines{$var}) {
+ push @nesting, 0;
+ } else {
+ push @nesting, 1;
+ }
+ next;
+ } elsif (m/\s*#if\s+(.*)/) {
+ my $res = parse_if($1);
+ print "line = $res: $1\n" if ($debug);
+ push @nesting, $res;
+ next;
+ } elsif (m/\s*#elif\s+(.*)/) {
+ my $res = pop @nesting;
+ if ($res gt 0) {
+ $res = -1;
+ } else {
+ my $res = parse_if($1);
+ }
+ push @nesting, $res;
+ next;
+ } elsif (m/\s*#else/) {
+ my $var = pop @nesting;
+ $var = !$var;
+ push @nesting, $var;
+ next;
+ } elsif (m/\s*#endif/) {
+ pop @nesting;
+ next;
+ }
+ print "line: $_\n" if ($debug);
+ print "nesting dep $#{nesting}\n" if ($debug);
+ my $i = 0, $t = 1;
+ while ($i le $#nesting) {
+ $t = 0 if ($nesting[$i] le 0);
+ print "nesting $i val $nesting[$i] -> $t\n" if ($debug);
+ $i++;
+ }
+ if ($t) {
+ print OUT;
+ }
+}
+
+print OUT "\n";
+print OUT "#endif /* __ROKEN_H__ */\n";
+
+
+close IN;
+
+exit 0;
+
+sub parse_if
+{
+ my ($neg, $var);
+
+ $_ = shift;
+
+ if (m/^\s*$/) {
+ print "end $_\n" if ($debug);
+ return 1;
+ } elsif (m/^\(([^&]+)\&\&(.*)$/) {
+ print "$1 and $2\n" if ($debug);
+ return parse_if($1) and parse_if($2);
+ } elsif (m/^([^&]+)\&\&(.*)$/) {
+ print "$1 and $2\n" if ($debug);
+ return parse_if($1) and parse_if($2);
+ } elsif (m/^([^\|]+)\|\|(.*)$/) {
+ print "$1 or $2\n" if ($debug);
+ return parse_if($1) or parse_if($2);
+ } elsif (m/^\s*(\!)?\s*defined\((\w+)\)/) {
+ ($neg, $var) = ($1, $2);
+ print "def: ${neg}-defined(${var})\n" if ($debug);
+ my $res = defined $defines{$var};
+ if ($neg eq "!") {
+ if ($res) {
+ $res = 0;
+ } else {
+ $res = 1;
+ }
+ }
+ print "res: $res\n" if ($debug);
+ return $res;
+ } elsif (m/^\s*(\!)?(\w+)/) {
+ ($neg, $var) = ($1, $2);
+ print "var: $neg $var\n" if ($debug);
+ my $res;
+ if (defined $defines{$var}) {
+ $res = $defines{$var};
+ } else {
+ $res = 0;
+ }
+ $res = ! $res if ($neg =~ m/!/);
+ print "res: $res\n" if ($debug);
+ return $res;
+ }
+ die "failed parse: $_\n";
+}
diff --git a/package/samba/Makefile b/package/samba/Makefile
index c1f575b57..c73b92fd5 100644
--- a/package/samba/Makefile
+++ b/package/samba/Makefile
@@ -1,109 +1,66 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-include ${ADK_TOPDIR}/rules.mk
+include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= samba
-PKG_VERSION:= 3.6.25
+PKG_VERSION:= 4.2.0
PKG_RELEASE:= 1
-PKG_HASH:= 8f2c8a7f2bd89b0dfd228ed917815852f7c625b2bc0936304ac3ed63aaf83751
-PKG_DESCR:= smb file and print server
+PKG_HASH:= 66a6057815a971fee64fbe936ff6cbad542421a4bd52cba8d8d41afc9abc490f
+PKG_DESCR:= file and print server
PKG_SECTION:= net/fs
-PKG_BUILDDEP:= gettext-tiny util-linux popt
-PKG_DEPENDS:= samba-lib libuuid libpopt
+PKG_BUILDDEP:= gettext-tiny util-linux popt python2 gnutls
+PKG_BUILDDEP:= heimdal-host python2-host
+PKG_DEPENDS:= libuuid libpopt libgnutls
PKG_URL:= http://www.samba.org/
PKG_SITES:= http://samba.org/samba/ftp/stable/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-PKG_SUBPKGS:= SAMBA SAMBA_CLIENT SAMBA_PASSWD SAMBA_LIB
-PKGSD_SAMBA_CLIENT:= smb client
-PKGSS_SAMBA_CLIENT:= libreadline samba-lib
-PKGSD_SAMBA_PASSWD:= smb password utility
-PKGSD_SAMBA_LIB:= smb libraries
-PKGSC_SAMBA_LIB:= libs/net
-
-PKG_FLAVOURS_SAMBA:= WITH_WINBIND WITH_LDAP
-PKGFD_WITH_WINBIND:= enable winbind support
-PKGFS_WITH_WINBIND:= libkrb5
-PKGFB_WITH_WINBIND:= krb5
-PKGFD_WITH_LDAP:= enable ldap support
-PKGFS_WITH_LDAP:= libopenldap
-PKGFB_WITH_LDAP:= openldap
-
-WRKSRC= ${WRKDIST}/source3
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,SAMBA,samba,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,SAMBA_CLIENT,samba-client,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_SAMBA_CLIENT},${PKG_SECTION}))
-$(eval $(call PKG_template,SAMBA_PASSWD,samba-passwd,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_SAMBA_PASSWD},${PKG_SECTION}))
-$(eval $(call PKG_template,SAMBA_LIB,samba-lib,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_SAMBA_LIB},${PKGSC_SAMBA_LIB}))
-
-ifneq ($(ADK_PACKAGE_SAMBA_WITH_WINBIND),)
-CONFIGURE_ARGS+= --with-winbind \
- --with-krb5="$(STAGING_TARGET_DIR)/usr"
-else
-CONFIGURE_ARGS+= --without-winbind
-endif
-
-ifneq ($(ADK_PACKAGE_SAMBA_WITH_LDAP),)
-CONFIGURE_ARGS+= --with-ldap
-else
-CONFIGURE_ARGS+= --with-ldap=no
-endif
-
-CONFIGURE_ENV+= samba_cv_CC_NEGATIVE_ENUM_VALUES=no \
- samba_cv_USE_SETRESUID=yes \
- samba_cv_HAVE_WRFILE_KEYTAB=yes \
- ac_cv_func_ext_krb5_enctype_to_string=yes \
- smb_krb5_cv_enctype_to_string_takes_krb5_context_arg=yes \
- smb_krb5_cv_enctype_to_string_takes_size_t_arg=no \
- ac_cv_lib_ext_nsl_connect=no \
- ac_cv_search_yp_get_default_domain=no \
- ac_cv_lib_ext_nsl_gethostbyname=no \
- ac_cv_file__proc_sys_kernel_core_pattern=yes \
- libreplace_cv_HAVE_GETADDRINFO=no
-CONFIGURE_ARGS+= --libdir=/usr/lib \
- --localstatedir=/var/log/samba \
- --with-configdir=/etc/samba \
- --with-lockdir=/var/run/samba \
- --with-privatedir=/etc/samba \
- --with-libiconv=/dev/null \
- --with-syslog \
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SAMBA,samba,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= minimal
+CONFIGURE_ARGS+= --enable-fhs \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --cross-compile \
+ --cross-answers=$(WRKSRC)/cache.txt \
+ --hostcc=gcc \
+ --without-pam \
+ --without-fam \
+ --without-dmapi \
+ --without-ads \
+ --without-ldap \
+ --without-acl-support \
+ --disable-glusterfs \
+ --disable-iprint \
--disable-cups \
- --disable-swat \
--disable-avahi \
- --with-utmp=no \
- --with-pam=no \
- --without-cluster-support \
- --without-sendfile-support
-
-samba-install:
- ${INSTALL_DIR} ${IDIR_SAMBA}/etc/samba ${IDIR_SAMBA}/usr/sbin
- ${INSTALL_DIR} ${IDIR_SAMBA}/usr/lib/{charset,vfs}
- ${INSTALL_DATA} ${WRKINST}/usr/lib/charset/CP850.so \
- ${IDIR_SAMBA}/usr/lib/charset
- ${INSTALL_DATA} ./files/smb.conf ${IDIR_SAMBA}/etc/samba
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/{nmbd,smbd} ${IDIR_SAMBA}/usr/sbin
- ${CP} ${WRKINST}/usr/lib/vfs/*.so* ${IDIR_SAMBA}/usr/lib/vfs
- ${INSTALL_DATA} ${WRKINST}/usr/lib/*.dat ${IDIR_SAMBA}/usr/lib
+ --disable-rpath \
+ --bundled-libraries='!asn1_compile,!compile_et' \
+ --disable-rpath-install
+CONFIGURE_ENV+= PYTHON_CONFIG="$(STAGING_TARGET_DIR)/usr/bin/python-config" \
+ python_LDFLAGS="" \
+ python_LIBDIR=""
-samba-passwd-install:
- ${INSTALL_DIR} ${IDIR_SAMBA_PASSWD}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/smbpasswd \
- ${IDIR_SAMBA_PASSWD}/usr/bin
+pre-configure:
+ $(CP) ./files/cache.txt $(WRKSRC)
+ echo 'Checking uname machine type: "$(ADK_TARGET_ARCH)"' >>$(WRKSRC)/cache.txt
-samba-client-install:
- ${INSTALL_DIR} ${IDIR_SAMBA_CLIENT}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/smbclient \
- ${IDIR_SAMBA_CLIENT}/usr/bin
-
-samba-lib-install:
- ${INSTALL_DIR} ${IDIR_SAMBA_LIB}/usr/lib
- ${CP} ${WRKINST}/usr/lib/{libsmbclient,libsmbsharemodes,libnetapi}.so* \
- ${IDIR_SAMBA_LIB}/usr/lib
- $(CP) ${WRKINST}/usr/lib/{libtalloc,libtdb,libtevent}.so* \
- ${IDIR_SAMBA_LIB}/usr/lib
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
+samba-install:
+ $(INSTALL_DIR) $(IDIR_SAMBA)/etc/samba
+ $(INSTALL_DIR) $(IDIR_SAMBA)/usr/{sbin,bin,lib}
+ $(INSTALL_DATA) ./files/smb.conf $(IDIR_SAMBA)/etc/samba
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/{nmbd,smbd} \
+ $(IDIR_SAMBA)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/{smbpasswd,smbclient} \
+ $(IDIR_SAMBA)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/lib*.so* \
+ $(IDIR_SAMBA)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/samba \
+ $(IDIR_SAMBA)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/samba/files/cache.txt b/package/samba/files/cache.txt
new file mode 100644
index 000000000..c9e34b630
--- /dev/null
+++ b/package/samba/files/cache.txt
@@ -0,0 +1,38 @@
+Checking simple C program: OK
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking for large file support without additional flags: OK
+Checking for -D_LARGE_FILES: OK
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: OK
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_INCOHERENT_MMAP: NO
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking if can we convert from CP850 to UCS-2LE: OK
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
+Checking whether we can use Linux thread-specific credentials: OK
+Checking whether setreuid is available: OK
+Checking whether setresuid is available: OK
+Checking whether seteuid is available: OK
+Checking whether fcntl locking is available: OK
+Checking for the maximum value of the 'time_t' type: OK
+Checking whether the realpath function allows a NULL argument: OK
+Checking whether POSIX capabilities are available: OK
+Checking for ftruncate extend: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+getcwd takes a NULL argument: OK
+Checking uname sysname type: "Linux"
+Checking uname release type: "3.0.0"
+Checking uname version type: "#1 Tue Nov 1 12:34:56 UTC 2013"
+Checking value of NSIG: "65"
+Checking value of _NSIG: "65"
+Checking value of SIGRTMAX: "64"
+Checking value of SIGRTMIN: "34"
diff --git a/package/samba/patches/patch-buildtools_wafsamba_samba_autoconf_py b/package/samba/patches/patch-buildtools_wafsamba_samba_autoconf_py
new file mode 100644
index 000000000..d8025784a
--- /dev/null
+++ b/package/samba/patches/patch-buildtools_wafsamba_samba_autoconf_py
@@ -0,0 +1,13 @@
+--- samba-4.2.0.orig/buildtools/wafsamba/samba_autoconf.py 2015-02-24 19:59:51.000000000 +0100
++++ samba-4.2.0/buildtools/wafsamba/samba_autoconf.py 2015-04-07 23:06:53.000000000 +0200
+@@ -646,10 +646,6 @@ def SAMBA_CONFIG_H(conf, path=None):
+ if not IN_LAUNCH_DIR(conf):
+ return
+
+- if conf.CHECK_CFLAGS(['-fstack-protector']) and conf.CHECK_LDFLAGS(['-fstack-protector']):
+- conf.ADD_CFLAGS('-fstack-protector')
+- conf.ADD_LDFLAGS('-fstack-protector')
+-
+ if Options.options.debug:
+ conf.ADD_CFLAGS('-g', testflags=True)
+