uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
11
pkgs/servers/samba/4.x-fix-makeflags-parsing.patch
Normal file
11
pkgs/servers/samba/4.x-fix-makeflags-parsing.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- a/buildtools/wafsamba/samba_utils.py 2019-04-08 01:13:47.525306574 +0000
|
||||
+++ b/buildtools/wafsamba/samba_utils.py 2019-04-08 01:14:34.805245676 +0000
|
||||
@@ -495,7 +495,7 @@
|
||||
Logs.zones = ['runner']
|
||||
if Logs.verbose > 2:
|
||||
Logs.zones = ['*']
|
||||
- elif opt[0].isupper() and opt.find('=') != -1:
|
||||
+ elif opt[0] and opt.find('=') != -1:
|
||||
# this allows us to set waf options on the make command line
|
||||
# for example, if you do "make FOO=blah", then we set the
|
||||
# option 'FOO' in Options.options, to blah. If you look in wafsamba/wscript
|
||||
18
pkgs/servers/samba/4.x-no-persistent-install-dynconfig.patch
Normal file
18
pkgs/servers/samba/4.x-no-persistent-install-dynconfig.patch
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
--- a/dynconfig/wscript 2018-12-23 20:28:42.908832206 -0800
|
||||
+++ b/dynconfig/wscript 2018-12-23 20:31:55.568835627 -0800
|
||||
@@ -419,15 +419,3 @@
|
||||
public_headers=os_path_relpath(os.path.join(Options.launch_dir, version_header), bld.curdir),
|
||||
header_path='samba',
|
||||
cflags=cflags)
|
||||
-
|
||||
- # install some extra empty directories
|
||||
- bld.INSTALL_DIR("${CONFIGDIR}")
|
||||
- bld.INSTALL_DIR("${LOGFILEBASE}")
|
||||
- bld.INSTALL_DIR("${PRIVILEGED_SOCKET_DIR}")
|
||||
- bld.INSTALL_DIR("${PRIVATE_DIR}", 0o700)
|
||||
- bld.INSTALL_DIR("${BINDDNS_DIR}", 0o770)
|
||||
- bld.INSTALL_DIR("${STATEDIR}")
|
||||
- bld.INSTALL_DIR("${CACHEDIR}")
|
||||
-
|
||||
- # these might be on non persistent storage
|
||||
- bld.INSTALL_DIRS("", "${LOCKDIR} ${PIDDIR} ${SOCKET_DIR}")
|
||||
39
pkgs/servers/samba/4.x-no-persistent-install.patch
Normal file
39
pkgs/servers/samba/4.x-no-persistent-install.patch
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
--- a/ctdb/wscript 2019-01-15 02:07:00.000000000 -0800
|
||||
+++ b/ctdb/wscript 2019-01-20 20:21:08.800187459 -0800
|
||||
@@ -814,7 +814,7 @@
|
||||
for t in etc_subdirs:
|
||||
files = SUBDIR_MODE('%s/%s' % (configdir, t), trim_path=configdir)
|
||||
for fmode in files:
|
||||
- bld.INSTALL_FILES(bld.env.CTDB_ETCDIR, 'config/%s' % fmode[0],
|
||||
+ bld.INSTALL_FILES('${EXEC_PREFIX}${CTDB_ETCDIR}', 'config/%s' % fmode[0],
|
||||
destname=fmode[0], chmod=fmode[1])
|
||||
|
||||
# If this is a direct install and there are no event scripts
|
||||
@@ -852,24 +852,20 @@
|
||||
]
|
||||
|
||||
for t in etc_scripts:
|
||||
- bld.INSTALL_FILES(bld.env.CTDB_ETCDIR, 'config/%s' % t,
|
||||
+ bld.INSTALL_FILES('${EXEC_PREFIX}${CTDB_ETCDIR}', 'config/%s' % t,
|
||||
destname=t, chmod=MODE_755)
|
||||
|
||||
bld.SAMBA_GENERATOR('ctdb-sudoers',
|
||||
source='config/ctdb.sudoers',
|
||||
target='ctdb.sudoers',
|
||||
rule='sed %s ${SRC} > ${TGT}' % (sed_cmdline))
|
||||
- bld.INSTALL_FILES('${SYSCONFDIR}/sudoers.d', 'ctdb.sudoers',
|
||||
+ bld.INSTALL_FILES('${EXEC_PREFIX}${SYSCONFDIR}/sudoers.d', 'ctdb.sudoers',
|
||||
destname='ctdb')
|
||||
|
||||
- bld.INSTALL_FILES('${CTDB_ETCDIR}/events/notification',
|
||||
+ bld.INSTALL_FILES('${EXEC_PREFIX}${CTDB_ETCDIR}/events/notification',
|
||||
'config/notification.README',
|
||||
destname='README')
|
||||
|
||||
- bld.INSTALL_DIR(bld.env.CTDB_LOGDIR)
|
||||
- bld.INSTALL_DIR(bld.env.CTDB_RUNDIR)
|
||||
- bld.INSTALL_DIR(bld.env.CTDB_VARDIR)
|
||||
-
|
||||
for d in ['volatile', 'persistent', 'state']:
|
||||
bld.INSTALL_DIR(os.path.join(bld.env.CTDB_VARDIR, d))
|
||||
|
||||
194
pkgs/servers/samba/4.x.nix
Normal file
194
pkgs/servers/samba/4.x.nix
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
{ lib, stdenv
|
||||
, buildPackages
|
||||
, fetchurl
|
||||
, wafHook
|
||||
, pkg-config
|
||||
, bison
|
||||
, flex
|
||||
, perl
|
||||
, libxslt
|
||||
, heimdal
|
||||
, docbook_xsl
|
||||
, fixDarwinDylibNames
|
||||
, docbook_xml_dtd_45
|
||||
, readline
|
||||
, popt
|
||||
, dbus
|
||||
, libbsd
|
||||
, libarchive
|
||||
, zlib
|
||||
, liburing
|
||||
, gnutls
|
||||
, libunwind
|
||||
, systemd
|
||||
, jansson
|
||||
, libtasn1
|
||||
, tdb
|
||||
, cmocka
|
||||
, rpcsvc-proto
|
||||
, python3Packages
|
||||
, nixosTests
|
||||
|
||||
, enableLDAP ? false, openldap
|
||||
, enablePrinting ? false, cups
|
||||
, enableProfiling ? true
|
||||
, enableMDNS ? false, avahi
|
||||
, enableDomainController ? false, gpgme, lmdb
|
||||
, enableRegedit ? true, ncurses
|
||||
, enableCephFS ? false, ceph
|
||||
, enableGlusterFS ? false, glusterfs, libuuid
|
||||
, enableAcl ? (!stdenv.isDarwin), acl
|
||||
, enablePam ? (!stdenv.isDarwin), pam
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "samba";
|
||||
version = "4.15.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-aRFeM4MZN7pRUb4CR5QxR3Za7OZYunQ/RHQWcq1o0X8=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
patches = [
|
||||
./4.x-no-persistent-install.patch
|
||||
./patch-source3__libads__kerberos_keytab.c.patch
|
||||
./4.x-no-persistent-install-dynconfig.patch
|
||||
./4.x-fix-makeflags-parsing.patch
|
||||
./build-find-pre-built-heimdal-build-tools-in-case-of-.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3Packages.python
|
||||
wafHook
|
||||
pkg-config
|
||||
bison
|
||||
flex
|
||||
perl
|
||||
perl.pkgs.ParseYapp
|
||||
libxslt
|
||||
buildPackages.stdenv.cc
|
||||
heimdal
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_45
|
||||
cmocka
|
||||
rpcsvc-proto
|
||||
] ++ optionals stdenv.isDarwin [
|
||||
fixDarwinDylibNames
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
python3Packages.python
|
||||
python3Packages.wrapPython
|
||||
readline
|
||||
popt
|
||||
dbus
|
||||
jansson
|
||||
libbsd
|
||||
libarchive
|
||||
zlib
|
||||
libunwind
|
||||
gnutls
|
||||
libtasn1
|
||||
tdb
|
||||
] ++ optionals stdenv.isLinux [ liburing systemd ]
|
||||
++ optionals enableLDAP [ openldap.dev python3Packages.markdown ]
|
||||
++ optional (enablePrinting && stdenv.isLinux) cups
|
||||
++ optional enableMDNS avahi
|
||||
++ optionals enableDomainController [ gpgme lmdb python3Packages.dnspython ]
|
||||
++ optional enableRegedit ncurses
|
||||
++ optional (enableCephFS && stdenv.isLinux) (lib.getDev ceph)
|
||||
++ optionals (enableGlusterFS && stdenv.isLinux) [ glusterfs libuuid ]
|
||||
++ optional enableAcl acl
|
||||
++ optional enablePam pam;
|
||||
|
||||
wafPath = "buildtools/bin/waf";
|
||||
|
||||
postPatch = ''
|
||||
# Removes absolute paths in scripts
|
||||
sed -i 's,/sbin/,,g' ctdb/config/functions
|
||||
|
||||
# Fix the XML Catalog Paths
|
||||
sed -i "s,\(XML_CATALOG_FILES=\"\),\1$XML_CATALOG_FILES ,g" buildtools/wafsamba/wafsamba.py
|
||||
|
||||
patchShebangs ./buildtools/bin
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
export PKGCONFIG="$PKG_CONFIG"
|
||||
'';
|
||||
|
||||
wafConfigureFlags = [
|
||||
"--with-static-modules=NONE"
|
||||
"--with-shared-modules=ALL"
|
||||
"--enable-fhs"
|
||||
"--sysconfdir=/etc"
|
||||
"--localstatedir=/var"
|
||||
"--disable-rpath"
|
||||
] ++ optional (!enableDomainController)
|
||||
"--without-ad-dc"
|
||||
++ optionals (!enableLDAP) [
|
||||
"--without-ldap"
|
||||
"--without-ads"
|
||||
] ++ optional enableProfiling "--with-profiling-data"
|
||||
++ optional (!enableAcl) "--without-acl-support"
|
||||
++ optional (!enablePam) "--without-pam"
|
||||
++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"--bundled-libraries=!asn1_compile,!compile_et"
|
||||
] ++ optional stdenv.isAarch32 [
|
||||
# https://bugs.gentoo.org/683148
|
||||
"--jobs 1"
|
||||
];
|
||||
|
||||
# python-config from build Python gives incorrect values when cross-compiling.
|
||||
# If python-config is not found, the build falls back to using the sysconfig
|
||||
# module, which works correctly in all cases.
|
||||
PYTHON_CONFIG = "/invalid";
|
||||
|
||||
pythonPath = [ python3Packages.dnspython tdb ];
|
||||
|
||||
preBuild = ''
|
||||
export MAKEFLAGS="-j $NIX_BUILD_CORES"
|
||||
'';
|
||||
|
||||
# Some libraries don't have /lib/samba in RPATH but need it.
|
||||
# Use find -type f -executable -exec echo {} \; -exec sh -c 'ldd {} | grep "not found"' \;
|
||||
# Looks like a bug in installer scripts.
|
||||
postFixup = ''
|
||||
export SAMBA_LIBS="$(find $out -type f -regex '.*\.so\(\..*\)?' -exec dirname {} \; | sort | uniq)"
|
||||
read -r -d "" SCRIPT << EOF || true
|
||||
[ -z "\$SAMBA_LIBS" ] && exit 1;
|
||||
BIN='{}';
|
||||
OLD_LIBS="\$(patchelf --print-rpath "\$BIN" 2>/dev/null | tr ':' '\n')";
|
||||
ALL_LIBS="\$(echo -e "\$SAMBA_LIBS\n\$OLD_LIBS" | sort | uniq | tr '\n' ':')";
|
||||
patchelf --set-rpath "\$ALL_LIBS" "\$BIN" 2>/dev/null || exit $?;
|
||||
patchelf --shrink-rpath "\$BIN";
|
||||
EOF
|
||||
find $out -type f -regex '.*\.so\(\..*\)?' -exec $SHELL -c "$SCRIPT" \;
|
||||
|
||||
# Samba does its own shebang patching, but uses build Python
|
||||
find "$out/bin" -type f -executable -exec \
|
||||
sed -i '1 s^#!${python3Packages.python.pythonForBuild}/bin/python.*^#!${python3Packages.python.interpreter}^' {} \;
|
||||
|
||||
# Fix PYTHONPATH for some tools
|
||||
wrapPythonPrograms
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.samba = nixosTests.samba;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.samba.org";
|
||||
description = "The standard Windows interoperability suite of programs for Linux and Unix";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.unix;
|
||||
# N.B. enableGlusterFS does not build
|
||||
broken = stdenv.isDarwin || enableGlusterFS;
|
||||
maintainers = with maintainers; [ aneeshusa ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
From f3f98c6ecc6febd8e79696672668e33d11fc19cb Mon Sep 17 00:00:00 2001
|
||||
From: Pascal Bach <pascal.bach@nextrem.ch>
|
||||
Date: Wed, 22 Sep 2021 09:42:42 +0200
|
||||
Subject: [PATCH] build: find pre-built heimdal build tools in case of embedded
|
||||
heimdal
|
||||
|
||||
This patch fixes the case of finding asn1_compile and compile_et for
|
||||
building embedded heimdal, by setting
|
||||
--bundled-libraries='!asn1_compile,!compile_et' as configure flags.
|
||||
|
||||
The Heimdal build tools compile_et and asn1_compile are needed *only*
|
||||
if we use the embedded heimdal (otherwise we don't build heimdal and
|
||||
use headers that have been generated by those tools elsewhere).
|
||||
|
||||
For cross-compilation with embedded heimdal, it is vital to use host build
|
||||
tools, and so asn1_compile and compile_et must be supplied and not
|
||||
built. One way of doing this would be to set the COMPILE_ET and
|
||||
ASN1_COMPILE env vars to the location of supplied binaries. Another way,
|
||||
which is more commonly used, is to exclude asn1_compile and compile_et
|
||||
from bundled packages via the switch
|
||||
-bundled-libraries='!asn1_compile,!compile_et'. When this is done,
|
||||
the build script searches the path for those tools and sets the
|
||||
ASN1_COMPILE and COMPILE_ET vars accordingly. (this is admittedly
|
||||
kind of a round-about way of doing things but this has become the
|
||||
de-facto standard amongst embedded distro builders).
|
||||
|
||||
In commit 8061983d4882f3ba3f12da71443b035d7b672eec, this process of
|
||||
finding the binaris has been moved to be carried out only in the
|
||||
system heimdal case. As explained above, we only need these tools,
|
||||
and hence the check, in bundled mode.
|
||||
|
||||
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14164
|
||||
|
||||
Signed-off-by: Uri Simchoni <uri@samba.org>
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
[Bachp: rebased for version 4.15.0]
|
||||
|
||||
# Conflicts:
|
||||
# wscript_configure_system_heimdal
|
||||
---
|
||||
wscript_configure_embedded_heimdal | 11 +++++++++++
|
||||
wscript_configure_system_heimdal | 11 -----------
|
||||
2 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/wscript_configure_embedded_heimdal b/wscript_configure_embedded_heimdal
|
||||
index 1c7801f705e..edcab15a88e 100644
|
||||
--- a/wscript_configure_embedded_heimdal
|
||||
+++ b/wscript_configure_embedded_heimdal
|
||||
@@ -6,3 +6,14 @@ if not conf.env['BISON']:
|
||||
|
||||
conf.define('USING_EMBEDDED_HEIMDAL', 1)
|
||||
conf.RECURSE('source4/heimdal_build')
|
||||
+
|
||||
+def check_system_heimdal_binary(name):
|
||||
+ if conf.LIB_MAY_BE_BUNDLED(name):
|
||||
+ return False
|
||||
+ if not conf.find_program(name, var=name.upper()):
|
||||
+ return False
|
||||
+ conf.define('USING_SYSTEM_%s' % name.upper(), 1)
|
||||
+ return True
|
||||
+
|
||||
+check_system_heimdal_binary("compile_et")
|
||||
+check_system_heimdal_binary("asn1_compile")
|
||||
diff --git a/wscript_configure_system_heimdal b/wscript_configure_system_heimdal
|
||||
index 67d8804d0ff..20aee31aac7 100644
|
||||
--- a/wscript_configure_system_heimdal
|
||||
+++ b/wscript_configure_system_heimdal
|
||||
@@ -37,14 +37,6 @@ def check_system_heimdal_lib(name, functions='', headers='', onlyif=None):
|
||||
conf.define('USING_SYSTEM_%s' % name.upper(), 1)
|
||||
return True
|
||||
|
||||
-def check_system_heimdal_binary(name):
|
||||
- if conf.LIB_MAY_BE_BUNDLED(name):
|
||||
- return False
|
||||
- if not conf.find_program(name, var=name.upper()):
|
||||
- return False
|
||||
- conf.define('USING_SYSTEM_%s' % name.upper(), 1)
|
||||
- return True
|
||||
-
|
||||
check_system_heimdal_lib("com_err", "com_right_r com_err", "com_err.h")
|
||||
|
||||
if check_system_heimdal_lib("roken", "rk_socket_set_reuseaddr", "roken.h"):
|
||||
@@ -96,9 +88,6 @@ finally:
|
||||
#if conf.CHECK_BUNDLED_SYSTEM('tommath', checkfunctions='mp_init', headers='tommath.h'):
|
||||
# conf.define('USING_SYSTEM_TOMMATH', 1)
|
||||
|
||||
-check_system_heimdal_binary("compile_et")
|
||||
-check_system_heimdal_binary("asn1_compile")
|
||||
-
|
||||
conf.env.KRB5_VENDOR = 'heimdal'
|
||||
conf.define('USING_SYSTEM_KRB5', 1)
|
||||
conf.define('USING_SYSTEM_HEIMDAL', 1)
|
||||
--
|
||||
2.33.0
|
||||
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
--- old/source3/libads/kerberos_keytab.c 2017-12-23 14:23:53.247467000 +0100
|
||||
+++ new/source3/libads/kerberos_keytab.c 2017-12-23 18:57:07.135340000 +0100
|
||||
@@ -32,8 +32,6 @@
|
||||
|
||||
#ifdef HAVE_KRB5
|
||||
|
||||
-#ifdef HAVE_ADS
|
||||
-
|
||||
/* This MAX_NAME_LEN is a constant defined in krb5.h */
|
||||
#ifndef MAX_KEYTAB_NAME_LEN
|
||||
#define MAX_KEYTAB_NAME_LEN 1100
|
||||
@@ -85,6 +83,8 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_ADS
|
||||
+
|
||||
/**********************************************************************
|
||||
Adds a single service principal, i.e. 'host' to the system keytab
|
||||
***********************************************************************/
|
||||
Loading…
Add table
Add a link
Reference in a new issue