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:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchgit, libmowgli, pkg-config, git, gettext, pcre, libidn, cracklib, openssl }:
stdenv.mkDerivation rec {
pname = "atheme";
version = "7.2.12";
src = fetchgit {
url = "https://github.com/atheme/atheme.git";
rev = "v${version}";
sha256 = "sha256-KAC1ZPNo4TqfVryKOYYef8cRWRgFmyEdvl1bgvpGNiM=";
leaveDotGit = true;
};
nativeBuildInputs = [ pkg-config git gettext ];
buildInputs = [ libmowgli pcre libidn cracklib openssl ];
configureFlags = [
"--with-pcre"
"--with-libidn"
"--with-cracklib"
"--enable-large-net"
"--enable-contrib"
"--enable-reproducible-builds"
];
meta = with lib; {
description = "A set of services for IRC networks";
homepage = "https://atheme.github.io/";
license = licenses.isc;
platforms = platforms.unix;
maintainers = with maintainers; [ leo60228 ];
};
}

View file

@ -0,0 +1,39 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, bison, flex, openssl, gnutls }:
stdenv.mkDerivation rec {
pname = "charybdis";
version = "4.1.2";
src = fetchFromGitHub {
owner = "charybdis-ircd";
repo = "charybdis";
rev = "${pname}-${version}";
sha256 = "1lndk0yp27qm8bds4jd204ynxcq92fqmpfb0kkcla5zgky3miks3";
};
postPatch = ''
substituteInPlace include/defaults.h --replace 'PKGLOCALSTATEDIR "' '"/var/lib/charybdis'
substituteInPlace include/defaults.h --replace 'ETCPATH "' '"/etc/charybdis'
'';
autoreconfPhase = "sh autogen.sh";
configureFlags = [
"--enable-epoll"
"--enable-ipv6"
"--enable-openssl=${openssl.dev}"
"--with-program-prefix=charybdis-"
];
nativeBuildInputs = [ autoreconfHook bison flex ];
buildInputs = [ openssl gnutls ];
meta = with lib; {
description = "IRCv3 server designed to be highly scalable";
homepage = "https://github.com/charybdis-ircd/charybdis";
license = licenses.gpl2;
maintainers = with maintainers; [ lassulus fpletz ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,26 @@
{ buildGoModule, fetchFromGitHub, lib, nixosTests }:
buildGoModule rec {
pname = "ergo";
version = "2.9.1";
src = fetchFromGitHub {
owner = "ergochat";
repo = "ergo";
rev = "v${version}";
sha256 = "sha256-RxsmkTfHymferS/FRW0sLnstKfvGXkW6cEb/JbeS4lc=";
};
vendorSha256 = null;
passthru.tests.ergochat = nixosTests.ergochat;
meta = {
changelog = "https://github.com/ergochat/ergo/blob/v${version}/CHANGELOG.md";
description = "A modern IRC server (daemon/ircd) written in Go";
homepage = "https://github.com/ergochat/ergo";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lassulus tv ];
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,225 @@
let
# inspircd ships a few extra modules that users can load
# via configuration. Upstream thus recommends to ship as
# many of them as possible. There is however a problem:
# inspircd is licensed under the GPL version 2 only and
# some modules link libraries that are incompatible with
# the GPL 2. Therefore we can't provide them as binaries
# via our binary-caches, but users should still be able
# to override this package and build the incompatible
# modules themselves.
#
# This means for us we need to a) prevent hydra from
# building a module set with a GPL incompatibility
# and b) dynamically figure out the largest possible
# set of modules to use depending on stdenv, because
# the used libc needs to be compatible as well.
#
# For an overview of all modules and their licensing
# situation, see https://docs.inspircd.org/packaging/
# Predicate for checking license compatibility with
# GPLv2. Since this is _only_ used for libc compatibility
# checking, only whitelist licenses used by notable
# libcs in nixpkgs (musl and glibc).
compatible = lib: drv:
lib.any (lic: lic == (drv.meta.license or {})) [
lib.licenses.mit # musl
lib.licenses.lgpl2Plus # glibc
];
# compatible if libc is compatible
libcModules = [
"regex_posix"
"sslrehashsignal"
];
# compatible if libc++ is compatible
# TODO(sternenseemann):
# we could enable "regex_stdlib" automatically, but only if
# we are using libcxxStdenv which is compatible with GPLv2,
# since the gcc libstdc++ license is GPLv2-incompatible
libcxxModules = [
"regex_stdlib"
];
compatibleModules = lib: stdenv: [
# GPLv2 compatible dependencies
"argon2"
"ldap"
"mysql"
"pgsql"
"regex_pcre"
"regex_re2"
"regex_tre"
"sqlite3"
"ssl_gnutls"
] ++ lib.optionals (compatible lib stdenv.cc.libc) libcModules;
in
{ lib
, stdenv
, fetchFromGitHub
, nixosTests
, perl
, pkg-config
, libargon2
, openldap
, postgresql
, libmysqlclient
, pcre
, tre
, re2
, sqlite
, gnutls
, libmaxminddb
, openssl
, mbedtls
# For a full list of module names, see https://docs.inspircd.org/packaging/
, extraModules ? compatibleModules lib stdenv
}:
let
extras = {
# GPLv2 compatible
argon2 = [
(libargon2 // {
meta = libargon2.meta // {
# use libargon2 as CC0 since ASL20 is GPLv2-incompatible
# updating this here is important that meta.license is accurate
# libargon2 is licensed under either ASL20 or CC0.
license = lib.licenses.cc0;
};
})
];
ldap = [ openldap ];
mysql = [ libmysqlclient ];
pgsql = [ postgresql ];
regex_pcre = [ pcre ];
regex_re2 = [ re2 ];
regex_tre = [ tre ];
sqlite3 = [ sqlite ];
ssl_gnutls = [ gnutls ];
# depends on stdenv.cc.libc
regex_posix = [];
sslrehashsignal = [];
# depends on used libc++
regex_stdlib = [];
# GPLv2 incompatible
geo_maxmind = [ libmaxminddb ];
ssl_mbedtls = [ mbedtls ];
ssl_openssl = [ openssl ];
};
# buildInputs necessary for the enabled extraModules
extraInputs = lib.concatMap
(m: extras."${m}" or (builtins.throw "Unknown extra module ${m}"))
extraModules;
# if true, we can't provide a binary version of this
# package without violating the GPL 2
gpl2Conflict =
let
allowed = compatibleModules lib stdenv;
in
!lib.all (lib.flip lib.elem allowed) extraModules;
# return list of the license(s) of the given derivation
getLicenses = drv:
let
lics = drv.meta.license or [];
in
if lib.isAttrs lics || lib.isString lics
then [ lics ]
else lics;
# Whether any member of list1 is also member of list2, i. e. set intersection.
anyMembers = list1: list2:
lib.any (m1: lib.elem m1 list2) list1;
in
stdenv.mkDerivation rec {
pname = "inspircd";
version = "3.13.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "1d5mnj86x4bk6iygns0cc15w315wrzmqxcq0sc4n75xsg6wwp1zl";
};
outputs = [ "bin" "lib" "man" "doc" "out" ];
nativeBuildInputs = [
perl
pkg-config
];
buildInputs = extraInputs;
configurePhase = ''
runHook preConfigure
patchShebangs configure make/*.pl
# configure is executed twice, once to set the extras
# to use and once to do the Makefile setup
./configure \
--enable-extras \
${lib.escapeShellArg (lib.concatStringsSep " " extraModules)}
# this manually sets the flags instead of using configureFlags, because otherwise stdenv passes flags like --bindir, which make configure fail
./configure \
--disable-auto-extras \
--distribution-label nixpkgs${version} \
--uid 0 \
--gid 0 \
--binary-dir ${placeholder "bin"}/bin \
--config-dir /etc/inspircd \
--data-dir ${placeholder "lib"}/lib/inspircd \
--example-dir ${placeholder "doc"}/share/doc/inspircd \
--log-dir /var/log/inspircd \
--manual-dir ${placeholder "man"}/share/man/man1 \
--module-dir ${placeholder "lib"}/lib/inspircd \
--runtime-dir /var/run \
--script-dir ${placeholder "bin"}/share/inspircd \
runHook postConfigure
'';
postInstall = ''
# for some reasons the executables are not executable
chmod +x $bin/bin/*
'';
enableParallelBuilding = true;
passthru.tests = {
nixos-test = nixosTests.inspircd;
};
meta = {
description = "A modular C++ IRC server";
license = [ lib.licenses.gpl2Only ]
++ lib.concatMap getLicenses extraInputs
++ lib.optionals (anyMembers extraModules libcModules) (getLicenses stdenv.cc.libc)
# FIXME(sternenseemann): get license of used lib(std)c++ somehow
++ lib.optional (anyMembers extraModules libcxxModules) "Unknown"
# Hack: Definitely prevent a hydra from building this package on
# a GPL 2 incompatibility even if it is not in a top-level attribute,
# but pulled in indirectly somehow.
++ lib.optional gpl2Conflict lib.licenses.unfree;
maintainers = [ lib.maintainers.sternenseemann ];
# windows is theoretically possible, but requires extra work
# which I am not willing to do and can't test.
# https://github.com/inspircd/inspircd/blob/master/win/README.txt
platforms = lib.platforms.unix;
homepage = "https://www.inspircd.org/";
} // lib.optionalAttrs gpl2Conflict {
# make sure we never distribute a GPLv2-violating module
# in binary form. They can be built locally of course.
hydraPlatforms = [];
};
}

View file

@ -0,0 +1,22 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "irccat";
version = "0.4.8";
src = fetchFromGitHub {
owner = "irccloud";
repo = "irccat";
rev = "v${version}";
sha256 = "sha256-fr5x1usviJPbc4t5SpIVgV9Q6071XG8eYtyeyraddts=";
};
vendorSha256 = "030hnkwh45yqppm96yy15j82skf7wmax5xkm7j5khr1l9lrz4591";
meta = with lib; {
homepage = "https://github.com/irccloud/irccat";
description = "Send events to IRC channels from scripts and other applications";
maintainers = with maintainers; [ qyliss ];
license = licenses.gpl3Only;
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchurl, openssl, zlib }:
stdenv.mkDerivation rec {
pname = "ircd-hybrid";
version = "8.2.39";
src = fetchurl {
url = "mirror://sourceforge/ircd-hybrid/ircd-hybrid-${version}.tgz";
sha256 = "sha256-A10nH2sN1FEVf4AUbRibwcm4TMm6G3rQb9cu5RCObk0=";
};
buildInputs = [ openssl zlib ];
configureFlags = [
"--with-nicklen=100"
"--with-topiclen=360"
"--enable-openssl=${openssl.dev}"
];
postInstall = "echo postinstall; mkdir -p \${out}/ ; rm -rf \${out}/logs ; ln -s /home/ircd \${out}/logs;";
meta = {
description = "An IPv6-capable IRC server";
platforms = lib.platforms.unix;
homepage = "https://www.ircd-hybrid.org/";
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchurl, zlib, openssl, pam, libiconv }:
stdenv.mkDerivation rec {
pname = "ngircd";
version = "26.1";
src = fetchurl {
url = "https://ngircd.barton.de/pub/ngircd/${pname}-${version}.tar.xz";
sha256 = "sha256-VcFv0mAJ9vxqAH3076yHoC4SL2gGEs2hzibhehjYYlQ=";
};
configureFlags = [
"--with-syslog"
"--with-zlib"
"--with-pam"
"--with-openssl"
"--enable-ipv6"
"--with-iconv"
];
buildInputs = [ zlib pam openssl libiconv ];
meta = {
description = "Next Generation IRC Daemon";
homepage = "https://ngircd.barton.de";
license = lib.licenses.gpl2;
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,28 @@
{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
buildGoModule rec {
pname = "robustirc-bridge";
version = "1.8";
src = fetchFromGitHub {
owner = "robustirc";
repo = "bridge";
rev = "v${version}";
sha256 = "12jzil97147f978shdgm6whz7699db0shh0c1fzgrjh512dw502c";
};
vendorSha256 = "0lm8j2iz0yysgi0bbh78ca629kb6sxvyy9al3aj2587hpvy79q85";
postInstall = ''
install -D robustirc-bridge.1 $out/share/man/man1/robustirc-bridge.1
'';
passthru.tests.robustirc-bridge = nixosTests.robustirc-bridge;
meta = with lib; {
description = "Bridge to robustirc.net-IRC-Network";
homepage = "https://robustirc.net/";
license = licenses.bsd3;
maintainers = [ maintainers.hax404 ];
};
}

View file

@ -0,0 +1,68 @@
{ lib, stdenv
, autoreconfHook
, bison
, fetchFromGitHub
, flex
, lksctp-tools
, openssl
, pkg-config
, sqlite
, util-linux
}:
stdenv.mkDerivation rec {
pname = "solanum";
version = "unstable-2021-11-14";
src = fetchFromGitHub {
owner = "solanum-ircd";
repo = pname;
rev = "bd38559fedcdfded4d9acbcbf988e4a8f5057eeb";
sha256 = "sha256-2P+mqf5b+TD9+9dLahXOdH7ZZhPWUoR1eV73YHbRbAA=";
};
patches = [
./dont-create-logdir.patch
];
postPatch = ''
substituteInPlace include/defaults.h --replace 'ETCPATH "' '"/etc/solanum'
'';
configureFlags = [
"--enable-epoll"
"--enable-ipv6"
"--enable-openssl=${openssl.dev}"
"--with-program-prefix=solanum-"
"--localstatedir=/var/lib"
"--with-rundir=/run"
"--with-logdir=/var/log"
] ++ lib.optionals (stdenv.isLinux) [
"--enable-sctp=${lksctp-tools.out}/lib"
];
nativeBuildInputs = [
autoreconfHook
bison
flex
pkg-config
util-linux
];
buildInputs = [
openssl
sqlite
];
doCheck = !stdenv.isDarwin;
enableParallelBuilding = true;
meta = with lib; {
description = "An IRCd for unified networks";
homepage = "https://github.com/solanum-ircd/solanum";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ hexa ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,14 @@
diff --git a/Makefile.am b/Makefile.am
index 19e7b396..21093521 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -35,9 +35,6 @@ include/serno.h:
echo '#define DATECODE 0UL' >>include/serno.h; \
fi
-install-data-hook:
- test -d ${DESTDIR}${logdir} || mkdir -p ${DESTDIR}${logdir}
-
install-exec-hook:
rm -f ${DESTDIR}${libdir}/*.la
rm -f ${DESTDIR}${moduledir}/*.la