Merge remote-tracking branch 'ni/master'
This commit is contained in:
commit
02b58a8884
2
ci.nix
2
ci.nix
@ -1,4 +1,4 @@
|
|||||||
# usage: nix-instantiate --eval --strict --json ./ci.nix
|
# usage: nix-instantiate --eval --json --read-write-mode --strict ci.nix | jq .
|
||||||
with import ./lib;
|
with import ./lib;
|
||||||
let
|
let
|
||||||
pkgs = import <nixpkgs> { overlays = [ (import ./submodules/nix-writers/pkgs) ]; };
|
pkgs = import <nixpkgs> { overlays = [ (import ./submodules/nix-writers/pkgs) ]; };
|
||||||
|
@ -30,6 +30,8 @@ let
|
|||||||
nix-instantiate --quiet -Q --eval --strict --json ./ci.nix
|
nix-instantiate --quiet -Q --eval --strict --json ./ci.nix
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
profileRoot = "/nix/var/nix/profiles/ci";
|
||||||
|
|
||||||
imp = {
|
imp = {
|
||||||
krebs.buildbot.master = {
|
krebs.buildbot.master = {
|
||||||
slaves = {
|
slaves = {
|
||||||
@ -98,9 +100,16 @@ let
|
|||||||
self.addBuildSteps([steps.ShellCommand(
|
self.addBuildSteps([steps.ShellCommand(
|
||||||
name=str(new_step),
|
name=str(new_step),
|
||||||
command=[
|
command=[
|
||||||
new_steps[new_step]
|
"${pkgs.writeDash "build-stepper.sh" ''
|
||||||
|
set -efu
|
||||||
|
profile=${shell.escape profileRoot}/$build_name
|
||||||
|
result=$("$build_script")
|
||||||
|
${pkgs.nix}/bin/nix-env -p "$profile" --set "$result"
|
||||||
|
''}"
|
||||||
],
|
],
|
||||||
env={
|
env={
|
||||||
|
"build_name": new_step,
|
||||||
|
"build_script": new_steps[new_step],
|
||||||
"NIX_REMOTE": "daemon",
|
"NIX_REMOTE": "daemon",
|
||||||
"NIX_PATH": "secrets=/var/src/stockholm/null:/var/src",
|
"NIX_PATH": "secrets=/var/src/stockholm/null:/var/src",
|
||||||
},
|
},
|
||||||
@ -163,6 +172,20 @@ let
|
|||||||
password = "lasspass";
|
password = "lasspass";
|
||||||
packages = with pkgs; [ gnumake jq nix populate gnutar lzma gzip ];
|
packages = with pkgs; [ gnumake jq nix populate gnutar lzma gzip ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
system.activationScripts.buildbots-nix-profile = ''
|
||||||
|
${pkgs.coreutils}/bin/mkdir -p ${shell.escape profileRoot}
|
||||||
|
${pkgs.coreutils}/bin/chmod 0770 ${shell.escape profileRoot}
|
||||||
|
${pkgs.coreutils}/bin/chgrp buildbots ${shell.escape profileRoot}
|
||||||
|
'';
|
||||||
|
|
||||||
|
users = {
|
||||||
|
groups.buildbots.gid = genid "buildbots";
|
||||||
|
users = {
|
||||||
|
buildbotMaster.extraGroups = [ "buildbots" ];
|
||||||
|
buildbotSlave.extraGroups = [ "buildbots" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
in out
|
in out
|
||||||
|
@ -1,122 +0,0 @@
|
|||||||
{ stdenv, writeScriptBin, lib, fetchurl, git, cacert
|
|
||||||
, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, utillinux, procps, gd
|
|
||||||
, withMysql ? false
|
|
||||||
, withPgsql ? false
|
|
||||||
, withSqlite ? false, sqlite
|
|
||||||
, withPam ? false, pam
|
|
||||||
, withZlib ? true, zlib
|
|
||||||
, withRiak ? false
|
|
||||||
, withElixir ? false, elixir
|
|
||||||
, withIconv ? true
|
|
||||||
, withTools ? false
|
|
||||||
, withRedis ? false
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
fakegit = writeScriptBin "git" ''
|
|
||||||
#! ${stdenv.shell} -e
|
|
||||||
if [ "$1" = "describe" ]; then
|
|
||||||
[ -r .rev ] && cat .rev || true
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils utillinux procps ];
|
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
version = "18.01";
|
|
||||||
name = "ejabberd-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz";
|
|
||||||
sha256 = "01i2n8mlgw293jdf4172f9q8ca8m35vysjws791p7nynpfdb4cn6";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ fakegit ];
|
|
||||||
|
|
||||||
buildInputs = [ erlang openssl expat libyaml gd ]
|
|
||||||
++ lib.optional withSqlite sqlite
|
|
||||||
++ lib.optional withPam pam
|
|
||||||
++ lib.optional withZlib zlib
|
|
||||||
++ lib.optional withElixir elixir
|
|
||||||
;
|
|
||||||
|
|
||||||
# Apparently needed for Elixir
|
|
||||||
LANG = "en_US.UTF-8";
|
|
||||||
|
|
||||||
deps = stdenv.mkDerivation {
|
|
||||||
name = "ejabberd-deps-${version}";
|
|
||||||
|
|
||||||
inherit src;
|
|
||||||
|
|
||||||
configureFlags = [ "--enable-all" "--with-sqlite3=${sqlite.dev}" ];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ git erlang openssl expat libyaml sqlite pam zlib elixir ];
|
|
||||||
|
|
||||||
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
|
||||||
|
|
||||||
makeFlags = [ "deps" ];
|
|
||||||
|
|
||||||
phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
for i in deps/*; do
|
|
||||||
( cd $i
|
|
||||||
git reset --hard
|
|
||||||
git clean -ffdx
|
|
||||||
git describe --always --tags > .rev
|
|
||||||
rm -rf .git
|
|
||||||
)
|
|
||||||
done
|
|
||||||
rm deps/.got
|
|
||||||
|
|
||||||
cp -r deps $out
|
|
||||||
'';
|
|
||||||
|
|
||||||
outputHashMode = "recursive";
|
|
||||||
outputHashAlgo = "sha256";
|
|
||||||
outputHash = "1v3h0c7kfifb6wsfxyv5j1wc7rlxbb7r0pgd4s340wiyxnllzzhk";
|
|
||||||
};
|
|
||||||
|
|
||||||
configureFlags =
|
|
||||||
[ (lib.enableFeature withMysql "mysql")
|
|
||||||
(lib.enableFeature withPgsql "pgsql")
|
|
||||||
(lib.enableFeature withSqlite "sqlite")
|
|
||||||
(lib.enableFeature withPam "pam")
|
|
||||||
(lib.enableFeature withZlib "zlib")
|
|
||||||
(lib.enableFeature withRiak "riak")
|
|
||||||
(lib.enableFeature withElixir "elixir")
|
|
||||||
(lib.enableFeature withIconv "iconv")
|
|
||||||
(lib.enableFeature withTools "tools")
|
|
||||||
(lib.enableFeature withRedis "redis")
|
|
||||||
] ++ lib.optional withSqlite "--with-sqlite3=${sqlite.dev}";
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./ejabberdctl.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
cp -r $deps deps
|
|
||||||
chmod -R +w deps
|
|
||||||
patchShebangs deps
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
sed -i \
|
|
||||||
-e '2iexport PATH=${ctlpath}:$PATH' \
|
|
||||||
-e 's,\(^ *FLOCK=\).*,\1${utillinux}/bin/flock,' \
|
|
||||||
-e 's,\(^ *JOT=\).*,\1,' \
|
|
||||||
-e 's,\(^ *CONNLOCKDIR=\).*,\1/var/lock/ejabberdctl,' \
|
|
||||||
$out/sbin/ejabberdctl
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Open-source XMPP application server written in Erlang";
|
|
||||||
license = licenses.gpl2;
|
|
||||||
homepage = http://www.ejabberd.im;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
maintainers = with maintainers; [ sander abbradar ];
|
|
||||||
broken = withElixir;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
--- a/ejabberdctl.template 1970-01-01 01:00:01.000000000 +0100
|
|
||||||
+++ b/ejabberdctl.template 2018-04-24 23:06:54.127715441 +0200
|
|
||||||
@@ -42,19 +42,18 @@
|
|
||||||
esac
|
|
||||||
|
|
||||||
# parse command line parameters
|
|
||||||
-for arg; do
|
|
||||||
- case $arg in
|
|
||||||
- -n|--node) ERLANG_NODE_ARG=$2; shift;;
|
|
||||||
- -s|--spool) SPOOL_DIR=$2; shift;;
|
|
||||||
- -l|--logs) LOGS_DIR=$2; shift;;
|
|
||||||
- -f|--config) EJABBERD_CONFIG_PATH=$2; shift;;
|
|
||||||
- -c|--ctl-config) EJABBERDCTL_CONFIG_PATH=$2; shift;;
|
|
||||||
- -d|--config-dir) ETC_DIR=$2; shift;;
|
|
||||||
- -t|--no-timeout) NO_TIMEOUT="--no-timeout";;
|
|
||||||
- --) :;;
|
|
||||||
+while test $# -gt 0; do
|
|
||||||
+ case $1 in
|
|
||||||
+ -n|--node) ERLANG_NODE_ARG=$2; shift 2;;
|
|
||||||
+ -s|--spool) SPOOL_DIR=$2; shift 2;;
|
|
||||||
+ -l|--logs) LOGS_DIR=$2; shift 2;;
|
|
||||||
+ -f|--config) EJABBERD_CONFIG_PATH=$2; shift 2;;
|
|
||||||
+ -c|--ctl-config) EJABBERDCTL_CONFIG_PATH=$2; shift 2;;
|
|
||||||
+ -d|--config-dir) ETC_DIR=$2; shift 2;;
|
|
||||||
+ -t|--no-timeout) NO_TIMEOUT="--no-timeout"; shift 1;;
|
|
||||||
+ # --) :;; what is this for?
|
|
||||||
*) break;;
|
|
||||||
esac
|
|
||||||
- shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# define ejabberd variables if not already defined from the command line
|
|
@ -87,7 +87,6 @@ in /* yaml */ ''
|
|||||||
mod_configure: {}
|
mod_configure: {}
|
||||||
mod_disco: {}
|
mod_disco: {}
|
||||||
mod_echo: {}
|
mod_echo: {}
|
||||||
mod_irc: {}
|
|
||||||
mod_bosh: {}
|
mod_bosh: {}
|
||||||
mod_last: {}
|
mod_last: {}
|
||||||
mod_offline:
|
mod_offline:
|
||||||
|
@ -2,12 +2,15 @@
|
|||||||
{
|
{
|
||||||
services.pcscd = {
|
services.pcscd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs; [ ifdnfc ccid ];
|
plugins = with pkgs;
|
||||||
|
[ #ifdnfc
|
||||||
|
ccid
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# need to run ifdnfc-activate before usage
|
# need to run ifdnfc-activate before usage
|
||||||
ifdnfc
|
# ifdnfc
|
||||||
# pcsc_scan
|
# pcsc_scan
|
||||||
pcsctools
|
pcsctools
|
||||||
];
|
];
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit e2b29654251367545700154ffbac806705dd04c0
|
Subproject commit ce37b2a9c2a438b7278e8e8ab045df34f00ad386
|
@ -76,6 +76,7 @@ let {
|
|||||||
};
|
};
|
||||||
} // mapAttrs (_: recursiveUpdate { cgit.section = "3. Haskell libraries"; }) {
|
} // mapAttrs (_: recursiveUpdate { cgit.section = "3. Haskell libraries"; }) {
|
||||||
blessings = {};
|
blessings = {};
|
||||||
|
hc = {};
|
||||||
mime = {};
|
mime = {};
|
||||||
quipper = {};
|
quipper = {};
|
||||||
scanner = {};
|
scanner = {};
|
||||||
|
@ -14,8 +14,25 @@ let {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [
|
extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [
|
||||||
|
# cannot use pkgs.vimPlugins.fzf-vim as it's missing :Rg
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "fzf-2018-11-14";
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = https://github.com/junegunn/fzf.vim;
|
||||||
|
rev = "ad1833ecbc9153b6e34a4292dc089a58c4bcb8dc";
|
||||||
|
sha256 = "1z2q71q6l9hq9fqfqpj1svhyk4yk1bzw1ljhksx4bnpz8gkfbx2m";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
pkgs.vimPlugins.fzfWrapper
|
||||||
pkgs.vimPlugins.undotree
|
pkgs.vimPlugins.undotree
|
||||||
pkgs.vimPlugins.vim-elixir
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "vim-elixir-2018-08-17";
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = https://github.com/elixir-editors/vim-elixir;
|
||||||
|
rev = "0a847f0faed5ba2d94bb3d51f355c50f37ba025b";
|
||||||
|
sha256 = "1jl85wpgywhcvhgw02y8zpvqf0glr4i8522kxpvhsiacb1v1xh04";
|
||||||
|
};
|
||||||
|
})
|
||||||
(pkgs.vimUtils.buildVimPlugin {
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
name = "vim-syntax-jq";
|
name = "vim-syntax-jq";
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchgit {
|
||||||
@ -309,6 +326,11 @@ let {
|
|||||||
paths = [
|
paths = [
|
||||||
(pkgs.writeDashBin "vim" ''
|
(pkgs.writeDashBin "vim" ''
|
||||||
set -efu
|
set -efu
|
||||||
|
export FZF_DEFAULT_COMMAND='${pkgs.ripgrep}/bin/rg --files'
|
||||||
|
export PATH=$PATH:${makeBinPath [
|
||||||
|
pkgs.fzf
|
||||||
|
pkgs.ripgrep
|
||||||
|
]}
|
||||||
(umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString need-dirs})
|
(umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString need-dirs})
|
||||||
exec ${pkgs.vim}/bin/vim "$@"
|
exec ${pkgs.vim}/bin/vim "$@"
|
||||||
'')
|
'')
|
||||||
@ -333,6 +355,7 @@ let {
|
|||||||
set shortmess+=I
|
set shortmess+=I
|
||||||
set showcmd
|
set showcmd
|
||||||
set showmatch
|
set showmatch
|
||||||
|
set timeoutlen=0
|
||||||
set ttimeoutlen=0
|
set ttimeoutlen=0
|
||||||
set undodir=${dirs.undodir}
|
set undodir=${dirs.undodir}
|
||||||
set undofile
|
set undofile
|
||||||
@ -385,5 +408,13 @@ let {
|
|||||||
noremap <esc>[c <nop> | noremap! <esc>[c <nop>
|
noremap <esc>[c <nop> | noremap! <esc>[c <nop>
|
||||||
noremap <esc>[d <nop> | noremap! <esc>[d <nop>
|
noremap <esc>[d <nop> | noremap! <esc>[d <nop>
|
||||||
vnoremap u <nop>
|
vnoremap u <nop>
|
||||||
|
|
||||||
|
" fzf
|
||||||
|
nnoremap <esc>q :Files<cr>
|
||||||
|
nnoremap <esc>w :Rg<cr>
|
||||||
|
|
||||||
|
" edit alternate buffer
|
||||||
|
" For some reason neither putting <ctrl>6 nor <ctrl>^ works here...
|
||||||
|
nnoremap <esc>a
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,6 @@ in /* yaml */ ''
|
|||||||
mod_configure: {}
|
mod_configure: {}
|
||||||
mod_disco: {}
|
mod_disco: {}
|
||||||
mod_echo: {}
|
mod_echo: {}
|
||||||
mod_irc: {}
|
|
||||||
mod_bosh: {}
|
mod_bosh: {}
|
||||||
mod_last: {}
|
mod_last: {}
|
||||||
mod_offline:
|
mod_offline:
|
||||||
|
37
tv/5pkgs/simple/hc.nix
Normal file
37
tv/5pkgs/simple/hc.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ coreutils, fetchgit, findutils, gawk, gnugrep, makeWrapper, qrencode, stdenv, texlive, utillinux, zbar }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "hc-${meta.version}";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://cgit.krebsco.de/hc";
|
||||||
|
rev = "refs/tags/v${meta.version}";
|
||||||
|
sha256 = "09349gja22p0j3xs082kp0fnaaada14bafszn4r3q7rg1id2slfb";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildPhase = null;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
|
||||||
|
cp $src/bin/hc $out/bin/hc
|
||||||
|
|
||||||
|
wrapProgram $out/bin/hc \
|
||||||
|
--prefix PATH : ${stdenv.lib.makeBinPath [
|
||||||
|
coreutils
|
||||||
|
findutils
|
||||||
|
gawk
|
||||||
|
gnugrep
|
||||||
|
qrencode
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
utillinux
|
||||||
|
zbar
|
||||||
|
]}
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
version = "1.0.0";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user