Merge remote-tracking branch 'upstream/master' into staging

This commit is contained in:
Jan Tojnar 2018-11-30 20:09:45 +01:00
commit c5881ec2c9
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
104 changed files with 1238 additions and 607 deletions

View File

@ -66,6 +66,46 @@ rec {
# uname -r # uname -r
release = null; release = null;
}; };
qemuArch =
if final.isArm then "arm"
else if final.isx86_64 then "x86_64"
else if final.isx86 then "i386"
else {
"powerpc" = "ppc";
"powerpc64" = "ppc64";
"powerpc64le" = "ppc64";
"mips64" = "mips";
"mipsel64" = "mipsel";
}.${final.parsed.cpu.name} or final.parsed.cpu.name;
emulator = pkgs: let
qemu-user = pkgs.qemu.override {
smartcardSupport = false;
spiceSupport = false;
openGLSupport = false;
virglSupport = false;
vncSupport = false;
gtkSupport = false;
sdlSupport = false;
pulseSupport = false;
smbdSupport = false;
seccompSupport = false;
hostCpuTargets = ["${final.qemuArch}-linux-user"];
};
wine-name = "wine${toString final.parsed.cpu.bits}";
wine = (pkgs.winePackagesFor wine-name).minimal;
in
if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name &&
(final.parsed.cpu.name == pkgs.stdenv.hostPlatform.parsed.cpu.name ||
(final.platform.isi686 && pkgs.stdenv.hostPlatform.isx86_64))
then pkgs.runtimeShell
else if final.isWindows
then "${wine}/bin/${wine-name}"
else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux
then "${qemu-user}/bin/qemu-${final.qemuArch}"
else throw "Don't know how to run ${final.config} executables.";
} // mapAttrs (n: v: v final.parsed) inspect.predicates } // mapAttrs (n: v: v final.parsed) inspect.predicates
// args; // args;
in assert final.useAndroidPrebuilt -> final.isAndroid; in assert final.useAndroidPrebuilt -> final.isAndroid;

View File

@ -2,7 +2,14 @@
# `crossSystem`. They are put here for user convenience, but also used by cross # `crossSystem`. They are put here for user convenience, but also used by cross
# tests and linux cross stdenv building, so handle with care! # tests and linux cross stdenv building, so handle with care!
{ lib }: { lib }:
let platforms = import ./platforms.nix { inherit lib; }; in let
platforms = import ./platforms.nix { inherit lib; };
riscv = bits: {
config = "riscv${bits}-unknown-linux-gnu";
platform = platforms.riscv-multiplatform bits;
};
in
rec { rec {
# #
@ -92,10 +99,6 @@ rec {
musl64 = { config = "x86_64-unknown-linux-musl"; }; musl64 = { config = "x86_64-unknown-linux-musl"; };
musl32 = { config = "i686-unknown-linux-musl"; }; musl32 = { config = "i686-unknown-linux-musl"; };
riscv = bits: {
config = "riscv${bits}-unknown-linux-gnu";
platform = platforms.riscv-multiplatform bits;
};
riscv64 = riscv "64"; riscv64 = riscv "64";
riscv32 = riscv "32"; riscv32 = riscv "32";

View File

@ -243,6 +243,20 @@
options. options.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
GitLab Shell previously used the nix store paths for the
<literal>gitlab-shell</literal> command in its
<literal>authorized_keys</literal> file, which might stop working after
garbage collection. To circumvent that, we regenerated that file on each
startup. As <literal>gitlab-shell</literal> has now been changed to use
<literal>/var/run/current-system/sw/bin/gitlab-shell</literal>, this is
not necessary anymore, but there might be leftover lines with a nix store
path. Regenerate the <literal>authorized_keys</literal> file via
<command>sudo -u git -H gitlab-rake gitlab:shell:setup</command> in that
case.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -34,6 +34,17 @@ with lib;
''; '';
}; };
extraLocaleSettings = mkOption {
type = types.attrsOf types.str;
default = {};
example = { LC_MESSAGES = "en_US.UTF-8"; LC_TIME = "de_DE.UTF-8"; };
description = ''
A set of additional system-wide locale settings other than
<literal>LANG</literal> which can be configured with
<option>i18n.defaultLocale</option>.
'';
};
supportedLocales = mkOption { supportedLocales = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = ["all"]; default = ["all"];
@ -129,7 +140,7 @@ with lib;
environment.sessionVariables = environment.sessionVariables =
{ LANG = config.i18n.defaultLocale; { LANG = config.i18n.defaultLocale;
LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive"; LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive";
}; } // config.i18n.extraLocaleSettings;
systemd.globalEnvironment = mkIf (config.i18n.supportedLocales != []) { systemd.globalEnvironment = mkIf (config.i18n.supportedLocales != []) {
LOCALE_ARCHIVE = "${config.i18n.glibcLocales}/lib/locale/locale-archive"; LOCALE_ARCHIVE = "${config.i18n.glibcLocales}/lib/locale/locale-archive";
@ -141,6 +152,7 @@ with lib;
source = pkgs.writeText "locale.conf" source = pkgs.writeText "locale.conf"
'' ''
LANG=${config.i18n.defaultLocale} LANG=${config.i18n.defaultLocale}
${concatStringsSep "\n" (mapAttrsToList (n: v: ''${n}=${v}'') config.i18n.extraLocaleSettings)}
''; '';
}; };

View File

@ -332,6 +332,7 @@
./services/mail/rspamd.nix ./services/mail/rspamd.nix
./services/mail/rss2email.nix ./services/mail/rss2email.nix
./services/mail/rmilter.nix ./services/mail/rmilter.nix
./services/mail/roundcube.nix
./services/mail/nullmailer.nix ./services/mail/nullmailer.nix
./services/misc/airsonic.nix ./services/misc/airsonic.nix
./services/misc/apache-kafka.nix ./services/misc/apache-kafka.nix

View File

@ -49,7 +49,7 @@
]; ];
# Include support for various filesystems. # Include support for various filesystems.
boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ]; boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "zfs" "ntfs" "cifs" ];
# Configure host id for ZFS to work # Configure host id for ZFS to work
networking.hostId = lib.mkDefault "8425e349"; networking.hostId = lib.mkDefault "8425e349";

View File

@ -191,7 +191,7 @@ in {
options = { options = {
paths = mkOption { paths = mkOption {
type = with types; either path (nonEmptyListOf path); type = with types; either path (listOf str);
description = "Path(s) to back up."; description = "Path(s) to back up.";
example = "/home/user"; example = "/home/user";
apply = x: if isList x then x else [ x ]; apply = x: if isList x then x else [ x ];

View File

@ -0,0 +1,153 @@
{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.services.roundcube;
in
{
options.services.roundcube = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable roundcube.
Also enables nginx virtual host management.
Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
'';
};
hostName = mkOption {
type = types.str;
example = "webmail.example.com";
description = "Hostname to use for the nginx vhost";
};
database = {
username = mkOption {
type = types.str;
default = "roundcube";
description = "Username for the postgresql connection";
};
host = mkOption {
type = types.str;
default = "localhost";
description = ''
Host of the postgresql server. If this is not set to
<literal>localhost</literal>, you have to create the
postgresql user and database yourself, with appropriate
permissions.
'';
};
password = mkOption {
type = types.str;
description = "Password for the postgresql connection";
};
dbname = mkOption {
type = types.str;
default = "roundcube";
description = "Name of the postgresql database";
};
};
plugins = mkOption {
type = types.listOf types.str;
default = [];
description = ''
List of roundcube plugins to enable. Currently, only those directly shipped with Roundcube are supported.
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = "Extra configuration for roundcube webmail instance";
};
};
config = mkIf cfg.enable {
environment.etc."roundcube/config.inc.php".text = ''
<?php
$config = array();
$config['db_dsnw'] = 'pgsql://${cfg.database.username}:${cfg.database.password}@${cfg.database.host}/${cfg.database.dbname}';
$config['log_driver'] = 'syslog';
$config['max_message_size'] = '25M';
$config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
${cfg.extraConfig}
'';
services.nginx = {
enable = true;
virtualHosts = {
${cfg.hostName} = {
forceSSL = mkDefault true;
enableACME = mkDefault true;
locations."/" = {
root = pkgs.roundcube;
index = "index.php";
extraConfig = ''
location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/phpfpm/roundcube;
include ${pkgs.nginx}/conf/fastcgi_params;
include ${pkgs.nginx}/conf/fastcgi.conf;
}
'';
};
};
};
};
services.postgresql = mkIf (cfg.database.host == "localhost") {
enable = true;
};
services.phpfpm.poolConfigs.roundcube = ''
listen = /run/phpfpm/roundcube
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
user = nginx
pm = dynamic
pm.max_children = 75
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 20
pm.max_requests = 500
php_admin_value[error_log] = 'stderr'
php_admin_flag[log_errors] = on
php_admin_value[post_max_size] = 25M
php_admin_value[upload_max_filesize] = 25M
catch_workers_output = yes
'';
systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ];
systemd.services.roundcube-setup = let
pgSuperUser = config.services.postgresql.superUser;
in {
requires = [ "postgresql.service" ];
after = [ "postgresql.service" ];
wantedBy = [ "multi-user.target" ];
path = [ config.services.postgresql.package ];
script = ''
mkdir -p /var/lib/roundcube
if [ ! -f /var/lib/roundcube/db-created ]; then
if [ "${cfg.database.host}" = "localhost" ]; then
${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql postgres -c "create role ${cfg.database.username} with login password '${cfg.database.password}'";
${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql postgres -c "create database ${cfg.database.dbname} with owner ${cfg.database.username}";
fi
PGPASSWORD=${cfg.database.password} ${pkgs.postgresql}/bin/psql -U ${cfg.database.username} \
-f ${pkgs.roundcube}/SQL/postgres.initial.sql \
-h ${cfg.database.host} ${cfg.database.dbname}
touch /var/lib/roundcube/db-created
fi
${pkgs.php}/bin/php ${pkgs.roundcube}/bin/update.sh
'';
serviceConfig.Type = "oneshot";
};
};
}

View File

@ -609,10 +609,6 @@ in {
touch "${cfg.statePath}/db-seeded" touch "${cfg.statePath}/db-seeded"
fi fi
# The gitlab:shell:setup regenerates the authorized_keys file so that
# the store path to the gitlab-shell in it gets updated
${pkgs.sudo}/bin/sudo -u ${cfg.user} -H force=yes ${gitlab-rake}/bin/gitlab-rake gitlab:shell:setup
# The gitlab:shell:create_hooks task seems broken for fixing links # The gitlab:shell:create_hooks task seems broken for fixing links
# so we instead delete all the hooks and create them anew # so we instead delete all the hooks and create them anew
rm -f ${cfg.statePath}/repositories/**/*.git/hooks rm -f ${cfg.statePath}/repositories/**/*.git/hooks

View File

@ -178,6 +178,7 @@ in
rabbitmq = handleTest ./rabbitmq.nix {}; rabbitmq = handleTest ./rabbitmq.nix {};
radicale = handleTest ./radicale.nix {}; radicale = handleTest ./radicale.nix {};
redmine = handleTest ./redmine.nix {}; redmine = handleTest ./redmine.nix {};
roundcube = handleTest ./roundcube.nix {};
rspamd = handleTest ./rspamd.nix {}; rspamd = handleTest ./rspamd.nix {};
rss2email = handleTest ./rss2email.nix {}; rss2email = handleTest ./rss2email.nix {};
rsyslogd = handleTest ./rsyslogd.nix {}; rsyslogd = handleTest ./rsyslogd.nix {};

28
nixos/tests/roundcube.nix Normal file
View File

@ -0,0 +1,28 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "roundcube";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ globin ];
};
nodes = {
roundcube = { config, pkgs, ... }: {
services.roundcube = {
enable = true;
hostName = "roundcube";
database.password = "notproduction";
};
services.nginx.virtualHosts.roundcube = {
forceSSL = false;
enableACME = false;
};
};
};
testScript = ''
$roundcube->start;
$roundcube->waitForUnit("postgresql.service");
$roundcube->waitForUnit("phpfpm-roundcube.service");
$roundcube->waitForUnit("nginx.service");
$roundcube->succeed("curl -sSfL http://roundcube/");
'';
})

View File

@ -1,7 +1,13 @@
{ stdenv, fetchFromGitHub, alsaLib, fftwSinglePrec, freetype, libjack2 { stdenv, fetchFromGitHub, alsaLib, fftwSinglePrec, freetype, libjack2
, pkgconfig, premake3, xorg, ladspa-sdk }: , pkgconfig, ladspa-sdk, premake3
, libX11, libXcomposite, libXcursor, libXext, libXinerama, libXrender
}:
stdenv.mkDerivation rec { let
premakeos = if stdenv.hostPlatform.isDarwin then "osx"
else if stdenv.hostPlatform.isWindows then "mingw"
else "linux";
in stdenv.mkDerivation rec {
name = "distrho-ports-${version}"; name = "distrho-ports-${version}";
version = "2018-04-16"; version = "2018-04-16";
@ -12,27 +18,26 @@ stdenv.mkDerivation rec {
sha256 = "0l4zwl4mli8jzch32a1fh7c88r9q17xnkxsdw17ds5hadnxlk12v"; sha256 = "0l4zwl4mli8jzch32a1fh7c88r9q17xnkxsdw17ds5hadnxlk12v";
}; };
configurePhase = ''
runHook preConfigure
sh ./scripts/premake-update.sh ${premakeos}
runHook postConfigure
'';
patchPhase = '' patchPhase = ''
sed -e "s#@./scripts#sh scripts#" -i Makefile sed -e "s#@./scripts#sh scripts#" -i Makefile
''; '';
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig premake3 ];
buildInputs = [ buildInputs = [
alsaLib fftwSinglePrec freetype libjack2 premake3 alsaLib fftwSinglePrec freetype libjack2
xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext libX11 libXcomposite libXcursor libXext
xorg.libXinerama xorg.libXrender ladspa-sdk libXinerama libXrender ladspa-sdk
]; ];
buildPhase = '' makeFlags = "PREFIX=$(out)";
sh ./scripts/premake-update.sh linux
make lv2
'';
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/lib/lv2
cp -a bin/lv2/* $out/lib/lv2/
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://distrho.sourceforge.net; homepage = http://distrho.sourceforge.net;

View File

@ -18,9 +18,9 @@ let
sha256Hash = "0apc566l4gwkwvfgj50d4qxm2gw26rxdlyr8kj3kfcra9a33c2b7"; sha256Hash = "0apc566l4gwkwvfgj50d4qxm2gw26rxdlyr8kj3kfcra9a33c2b7";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.4.0.4"; # "Android Studio 3.4 Canary 5" version = "3.4.0.5"; # "Android Studio 3.4 Canary 6"
build = "183.5141831"; build = "183.5146016";
sha256Hash = "0xfk5vyjk3pdb44jp43vb5394486z2qgzrdhjzbf1ncbhvaf0aji"; sha256Hash = "1z2asimpsw15iild7c4aqicph6v327qx3ffjgvl2n8vr5rspsns1";
}; };
in rec { in rec {
# Old alias # Old alias

View File

@ -1,58 +0,0 @@
{ fetchhg, stdenv, xorg, makeWrapper }:
stdenv.mkDerivation rec {
# Inferno is a rolling release from a mercurial repository. For the verison number
# of the package I'm using the mercurial commit number.
rev = "785";
name = "inferno-${rev}";
host = "Linux";
objtype = "386";
src = fetchhg {
url = "https://bitbucket.org/inferno-os/inferno-os";
sha256 = "1b428ma9fi5skvfrxp91dr43a62kax89wmx7950ahc1cxyx90k7x";
};
buildInputs = [ makeWrapper ] ++ (with xorg; [ libX11 libXpm libXext xextproto ]);
infernoWrapper = ./inferno;
configurePhase = ''
sed -e 's@^ROOT=.*$@ROOT='"$out"'/share/inferno@g' \
-e 's@^OBJTYPE=.*$@OBJTYPE=${objtype}@g' \
-e 's@^SYSHOST=.*$@SYSHOST=${host}@g' \
-i mkconfig
# Get rid of an annoying warning
sed -e 's/_BSD_SOURCE/_DEFAULT_SOURCE/g' \
-i ${host}/${objtype}/include/lib9.h
'';
buildPhase = ''
mkdir -p $out/share/inferno
cp -r . $out/share/inferno
./makemk.sh
export PATH=$PATH:$out/share/inferno/Linux/386/bin
mk nuke
mk
'';
installPhase = ''
# Installs executables in $out/share/inferno/${host}/${objtype}/bin
mk install
mkdir -p $out/bin
# Install start-up script
makeWrapper $infernoWrapper $out/bin/inferno \
--suffix PATH ':' "$out/share/inferno/Linux/386/bin" \
--set INFERNO_ROOT "$out/share/inferno"
'';
hardeningDisable = [ "fortify" ];
meta = {
description = "A compact distributed operating system for building cross-platform distributed systems";
homepage = http://inferno-os.org/;
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ doublec kovirobi ];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -1,31 +0,0 @@
#! /usr/bin/env bash
export INFERNO_HOME="$HOME/.local/share/inferno"
if [ -n "$XDG_DATA_HOME" ]
then export INFERNO_HOME="$XDG_DATA_HOME/inferno"
fi
if [ ! -d $INFERNO_HOME ]; then
mkdir -p $INFERNO_HOME
fi
if [ ! -d $INFERNO_HOME/tmp ]; then
mkdir -p $INFERNO_HOME/tmp
fi
for d in $INFERNO_HOME/{acme,appl,dis,lib,man,module,usr/inferno}; do
if [ ! -d $d ]; then
mkdir -p $d
cp --no-preserve=all -r $INFERNO_ROOT/${d#$INFERNO_HOME/}/* $d/
chmod -R +w $d
fi
done
if [ ! -d $INFERNO_HOME/usr/$USER ]; then
mkdir -p $INFERNO_HOME/usr/$USER
cp -r $INFERNO_ROOT/usr/inferno/* $INFERNO_HOME/usr/$USER/
chmod -R +w $INFERNO_HOME/usr/$USER
fi
exec emu "$@" /dis/sh.dis -c "bind -b -c '#U*$INFERNO_HOME/' /; /dis/sh.dis"

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, xorg, xlibsWrapper }: { stdenv, fetchurl, imake, gccmakedep, xlibsWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version_name = "1.2.sakura.5"; version_name = "1.2.sakura.5";
@ -8,14 +8,11 @@ stdenv.mkDerivation rec {
url = "http://www.daidouji.com/oneko/distfiles/oneko-${version_name}.tar.gz"; url = "http://www.daidouji.com/oneko/distfiles/oneko-${version_name}.tar.gz";
sha256 = "2c2e05f1241e9b76f54475b5577cd4fb6670de058218d04a741a04ebd4a2b22f"; sha256 = "2c2e05f1241e9b76f54475b5577cd4fb6670de058218d04a741a04ebd4a2b22f";
}; };
buildInputs = [ xorg.imake xorg.gccmakedep xlibsWrapper ]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ xlibsWrapper ];
configurePhase = "xmkmf"; makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
installTargets = "install install.man";
installPhase = ''
make install BINDIR=$out/bin
make install.man MANPATH=$out/share/man
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Creates a cute cat chasing around your mouse cursor"; description = "Creates a cute cat chasing around your mouse cursor";

View File

@ -33,7 +33,7 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "slic3r-prusa-edition-${version}"; name = "slic3r-prusa-edition-${version}";
version = "1.41.1"; version = "1.41.2";
enableParallelBuilding = true; enableParallelBuilding = true;
@ -118,7 +118,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "prusa3d"; owner = "prusa3d";
repo = "Slic3r"; repo = "Slic3r";
sha256 = "0crjrll8cjpkllval6abrqzvzp8g3rnb4vmwi5vivw0jvdv3w5y7"; sha256 = "046ircwc0wr586v7106ys557ypslmyq9p4qgi34ads1d6bgxhlyy";
rev = "version_${version}"; rev = "version_${version}";
}; };

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gccmakedep, xorg }: { stdenv, fetchurl, gccmakedep, xorg, imake, libXt, libXaw, libXpm, libXext }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "xcruiser-0.30"; name = "xcruiser-0.30";
@ -8,13 +8,13 @@ stdenv.mkDerivation {
sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi"; sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
}; };
buildInputs = with xorg; [ gccmakedep imake libXt libXaw libXpm libXext ]; nativeBuildInputs = [ gccmakedep imake ];
buildInputs = [ libXt libXaw libXpm libXext ];
configurePhase = "xmkmf -a"; makeFlags = [
"BINDIR=$(out)/bin"
preBuild = '' "XAPPLOADDIR=$(out)/etc/X11/app-defaults"
makeFlagsArray=( BINDIR=$out/bin XAPPLOADDIR=$out/etc/X11/app-defaults) ];
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Filesystem visualization utility"; description = "Filesystem visualization utility";

View File

@ -1,19 +0,0 @@
{stdenv, fetchurl, libX11, libXi, imake, xauth, libXau}:
stdenv.mkDerivation {
name = "xmove-2.0b2";
src = fetchurl {
url = mirror://debian/pool/main/x/xmove/xmove_2.0beta2.orig.tar.gz;
sha256 = "0q310k3bi39vdk0kqqvsahnb1k6lx9hlx80iyxnkq59l6jxnhyhf";
};
buildPhase = "cd xmove; sed -e 's/.*No address for our host.*/{hp = gethostbyname(\"localhost\");};/' -i main.c; cp ../man/man1/xmove.1 xmove.man ; xmkmf; make; cd .. ; cd xmovectrl ; cp ../man/man1/xmovectrl.1 xmovectrl.man; xmkmf; make ; cd ..";
installPhase = "cd xmove; make install install.man MANDIR=\${out}/man/man1 BINDIR=\${out}/bin; cd .. ; cd xmovectrl ; make install install.man MANDIR=\${out}/man/man1 BINDIR=\${out}/bin; cd ..";
buildInputs = [libX11 libXi imake xauth libXau];
meta = {
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.mit;
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, libX11, libXt, libXext, libXpm, imake { stdenv, fetchurl, libX11, libXt, libXext, libXpm, imake, gccmakedep
, svgSupport ? true, librsvg, glib, gdk_pixbuf, pkgconfig , svgSupport ? false, librsvg, glib, gdk_pixbuf, pkgconfig
}: }:
assert svgSupport -> assert svgSupport ->
@ -13,20 +13,21 @@ stdenv.mkDerivation rec {
sha256 = "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf"; sha256 = "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf";
}; };
nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ buildInputs = [
imake
libX11 libXt libXext libXpm libX11 libXt libXext libXpm
] ++ stdenv.lib.optionals svgSupport [ librsvg glib gdk_pixbuf pkgconfig ]; ] ++ stdenv.lib.optionals svgSupport [ librsvg glib gdk_pixbuf pkgconfig ];
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
configurePhase = '' imakeFlags = stdenv.lib.optionalString svgSupport "-DWITH_SVG_SUPPORT";
xmkmf ${stdenv.lib.optionalString svgSupport "-DWITH_SVG_SUPPORT"}
'';
preBuild = '' makeFlags = [
makeFlagsArray=( BINDIR=$out/bin PIXMAPDIR=$out/share/xxkb XAPPLOADDIR=$out/etc/X11/app-defaults MANDIR=$man/share/man ) "BINDIR=${placeholder "out"}/bin"
''; "PIXMAPDIR=${placeholder "out"}/share/xxkb"
"XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults"
"MANDIR=${placeholder "man"}/share/man"
];
installTargets = "install install.man"; installTargets = "install install.man";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tixati-${version}"; name = "tixati-${version}";
version = "2.57"; version = "2.58";
src = fetchurl { src = fetchurl {
url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz"; url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
sha256 = "0z6znh62ry4fmc6c54zq79pk1b5bwkz93bxsfgvxpf6sajpyf9n7"; sha256 = "077z5i0grkxkgw2npylv4r897434k2pr03brqx5hjpjw3797r141";
}; };
installPhase = '' installPhase = ''

View File

@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
buildInputs = [ imake zlib jdk libX11 libXt libXmu libXaw libXext libXpm openjpeg openssl ]; buildInputs = [ imake zlib jdk libX11 libXt libXmu libXaw libXext libXpm openjpeg openssl ];
configurePhase = "makeFlags=PREFIX=$out"; dontUseImakeConfigure = true;
makeFlags = "PREFIX=$(out)";
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, xorg }: { stdenv, fetchurl, imake, gccmakedep, libXt, libXext }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xearth-${version}"; name = "xearth-${version}";
version = "1.1"; version = "1.1";
@ -8,10 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "bcb1407cc35b3f6dd3606b2c6072273b6a912cbd9ed1ae22fb2d26694541309c"; sha256 = "bcb1407cc35b3f6dd3606b2c6072273b6a912cbd9ed1ae22fb2d26694541309c";
}; };
buildInputs = with xorg; [ imake libXt libXext ]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ libXt libXext ];
dontAddPrefix = true;
configureScript="xmkmf";
installFlags=[ "DESTDIR=$(out)/" "BINDIR=bin" "MANDIR=man/man1"]; installFlags=[ "DESTDIR=$(out)/" "BINDIR=bin" "MANDIR=man/man1"];
installTargets="install install.man"; installTargets="install install.man";

View File

@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs"; sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
}; };
buildInputs = [ tcl tk libX11 which yacc flex imake xproto gccmakedep ]; nativeBuildInputs = [ which yacc flex imake gccmakedep ];
buildInputs = [ tcl tk libX11 xproto ];
dontUseImakeConfigure = true;
patchPhase = '' patchPhase = ''
sed -i config.h \ sed -i config.h \

View File

@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
sha256 = "0463bff5eea0f3d93fa071f79c18d0993878fd4f2e18ae6cf22c1639d11457ed"; sha256 = "0463bff5eea0f3d93fa071f79c18d0993878fd4f2e18ae6cf22c1639d11457ed";
}; };
dontUseImakeConfigure = true;
buildInputs = [ buildInputs = [
bzip2 gfortran libX11 libXmu libXt libXt libjpeg libpng libtiff ncurses bzip2 gfortran libX11 libXmu libXt libXt libjpeg libpng libtiff ncurses
pango pcre perl readline texLive xz zlib less texinfo graphviz icu pango pcre perl readline texLive xz zlib less texinfo graphviz icu

View File

@ -43,3 +43,16 @@ index 57c70f5..700569b 100644
end end
def api def api
diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
index 0600a18..6814f0a 100644
--- a/lib/gitlab_keys.rb
+++ b/lib/gitlab_keys.rb
@@ -10,7 +10,7 @@ class GitlabKeys # rubocop:disable Metrics/ClassLength
attr_accessor :auth_file, :key
def self.command(whatever)
- "#{ROOT_PATH}/bin/gitlab-shell #{whatever}"
+ "/run/current-system/sw/bin/gitlab-shell #{whatever}"
end
def self.command_key(key_id)

View File

@ -18,6 +18,10 @@
, virglSupport ? openGLSupport, virglrenderer , virglSupport ? openGLSupport, virglrenderer
, smbdSupport ? false, samba , smbdSupport ? false, samba
, hostCpuOnly ? false , hostCpuOnly ? false
, hostCpuTargets ? (if hostCpuOnly
then (stdenv.lib.optional stdenv.isx86_64 "i386-softmmu"
++ ["${stdenv.hostPlatform.qemuArch}-softmmu"])
else null)
, nixosTestRunner ? false , nixosTestRunner ? false
}: }:
@ -27,11 +31,6 @@ let
+ optionalString pulseSupport "pa," + optionalString pulseSupport "pa,"
+ optionalString sdlSupport "sdl,"; + optionalString sdlSupport "sdl,";
hostCpuTargets = if stdenv.isx86_64 then "i386-softmmu,x86_64-softmmu"
else if stdenv.isi686 then "i386-softmmu"
else if stdenv.isAarch32 then "arm-softmmu"
else if stdenv.isAarch64 then "aarch64-softmmu"
else throw "Don't know how to build a 'hostCpuOnly = true' QEMU";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -113,7 +112,7 @@ stdenv.mkDerivation rec {
++ optional smartcardSupport "--enable-smartcard" ++ optional smartcardSupport "--enable-smartcard"
++ optional spiceSupport "--enable-spice" ++ optional spiceSupport "--enable-spice"
++ optional usbredirSupport "--enable-usb-redir" ++ optional usbredirSupport "--enable-usb-redir"
++ optional hostCpuOnly "--target-list=${hostCpuTargets}" ++ optional (hostCpuTargets != null) "--target-list=${stdenv.lib.concatStringsSep "," hostCpuTargets}"
++ optional stdenv.isDarwin "--enable-cocoa" ++ optional stdenv.isDarwin "--enable-cocoa"
++ optional stdenv.isLinux "--enable-linux-aio" ++ optional stdenv.isLinux "--enable-linux-aio"
++ optional gtkSupport "--enable-gtk" ++ optional gtkSupport "--enable-gtk"
@ -135,12 +134,13 @@ stdenv.mkDerivation rec {
''; '';
# Add a qemu-kvm wrapper for compatibility/convenience. # Add a qemu-kvm wrapper for compatibility/convenience.
postInstall = postInstall = ''
if stdenv.isx86_64 then ''makeWrapper $out/bin/qemu-system-x86_64 $out/bin/qemu-kvm --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"'' if [ -x $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} ]; then
else if stdenv.isi686 then ''makeWrapper $out/bin/qemu-system-i386 $out/bin/qemu-kvm --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"'' makeWrapper $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} \
else if stdenv.isAarch32 then ''makeWrapper $out/bin/qemu-system-arm $out/bin/qemu-kvm --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"'' $out/bin/qemu-kvm \
else if stdenv.isAarch64 then ''makeWrapper $out/bin/qemu-system-aarch64 $out/bin/qemu-kvm --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"'' --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"
else ""; fi
'';
passthru = { passthru = {
qemu-system-i386 = "bin/qemu-system-i386"; qemu-system-i386 = "bin/qemu-system-i386";

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, imake, libX11, libXext, libXmu}: { stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "larswm-7.5.3"; name = "larswm-7.5.3";
@ -8,13 +8,11 @@ stdenv.mkDerivation {
sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v"; sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v";
}; };
buildInputs = [ imake libX11 libXext libXmu ]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ libX11 libXext libXmu ];
configurePhase = '' makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
xmkmf installTargets = "install install.man";
makeFlags="BINDIR=$out/bin MANPATH=$out/share/man"
installTargets="install install.man"
'';
meta = { meta = {
homepage = http://www.fnurt.net/larswm; homepage = http://www.fnurt.net/larswm;

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "sway"; pname = "sway";
version = "1.0-beta.1"; version = "1.0-beta.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "swaywm"; owner = "swaywm";
repo = "sway"; repo = "sway";
rev = version; rev = version;
sha256 = "0h9kgrg9mh2acks63z72bw3lwff32pf2nb4i7i5xhd9i6l4gfnqa"; sha256 = "0f9rniwizbc3vzxdy6rc47749p6gczfbgfdy4r458134rbl551hw";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -15,16 +15,15 @@ infoFile: let
script = writeText "build-maven-repository.sh" '' script = writeText "build-maven-repository.sh" ''
${lib.concatStrings (map (dep: let ${lib.concatStrings (map (dep: let
inherit (dep) inherit (dep) sha1 groupId artifactId version metadata repository-id;
url sha1 groupId artifactId
version metadata repository-id;
versionDir = dep.unresolved-version or version; versionDir = dep.unresolved-version or version;
authenticated = dep.authenticated or false; authenticated = dep.authenticated or false;
url = dep.url or "";
fetch = (if authenticated then requireFile else fetchurl) { fetch = if (url != "") then ((if authenticated then requireFile else fetchurl) {
inherit url sha1; inherit url sha1;
}; }) else "";
fetchMetadata = (if authenticated then requireFile else fetchurl) { fetchMetadata = (if authenticated then requireFile else fetchurl) {
inherit (metadata) url sha1; inherit (metadata) url sha1;
@ -32,11 +31,16 @@ infoFile: let
in '' in ''
dir=$out/$(echo ${groupId} | sed 's|\.|/|g')/${artifactId}/${versionDir} dir=$out/$(echo ${groupId} | sed 's|\.|/|g')/${artifactId}/${versionDir}
mkdir -p $dir mkdir -p $dir
${lib.optionalString (fetch != "") ''
ln -sv ${fetch} $dir/${fetch.name} ln -sv ${fetch} $dir/${fetch.name}
''}
${lib.optionalString (dep ? metadata) '' ${lib.optionalString (dep ? metadata) ''
ln -svf ${fetchMetadata} $dir/maven-metadata-${repository-id}.xml ln -svf ${fetchMetadata} $dir/maven-metadata-${repository-id}.xml
${lib.optionalString (fetch != "") ''
ln -sv ${fetch} $dir/$(echo ${fetch.name} | sed 's|${version}|${dep.unresolved-version}|') ln -sv ${fetch} $dir/$(echo ${fetch.name} | sed 's|${version}|${dep.unresolved-version}|')
''} ''}
''}
'') info.dependencies)} '') info.dependencies)}
''; '';

View File

@ -25,12 +25,12 @@ stdenv.mkDerivation ({
runHook postInstall runHook postInstall
''; '';
meta.platform = ocaml.meta.platform;
} // args // { } // args // {
name = "ocaml${ocaml.version}-${pname}-${version}"; name = "ocaml${ocaml.version}-${pname}-${version}";
buildInputs = [ ocaml dune findlib ] ++ buildInputs; buildInputs = [ ocaml dune findlib ] ++ buildInputs;
meta = (args.meta or {}) // { platforms = args.meta.platforms or ocaml.meta.platforms; };
}) })

View File

@ -1,8 +1,8 @@
{ mkDerivation }: { mkDerivation }:
mkDerivation rec { mkDerivation rec {
version = "21.1.2"; version = "21.1.3";
sha256 = "0kn6ghr151b1qmbazc1c8k1r0wpsrqh9l3wrhfyxix3ld5yc3a5c"; sha256 = "0374qpafrpnfspsvjaa3sgs0h8ryi3ah8fvmr7dm7zsmgb4ihdsg";
prePatch = '' prePatch = ''
substituteInPlace configure.in --replace '`sw_vers -productVersion`' '10.10' substituteInPlace configure.in --replace '`sw_vers -productVersion`' '10.10'

View File

@ -8,6 +8,7 @@ stdenv.mkDerivation {
url = https://www.x.org/releases/individual/lib/libXaw3d-1.6.3.tar.bz2; url = https://www.x.org/releases/individual/lib/libXaw3d-1.6.3.tar.bz2;
sha256 = "0i653s8g25cc0mimkwid9366bqkbyhdyjhckx7bw77j20hzrkfid"; sha256 = "0i653s8g25cc0mimkwid9366bqkbyhdyjhckx7bw77j20hzrkfid";
}; };
dontUseImakeConfigure = true;
nativeBuildInputs = [ pkgconfig bison flex imake gccmakedep ]; nativeBuildInputs = [ pkgconfig bison flex imake gccmakedep ];
buildInputs = [ libXpm libXp ]; buildInputs = [ libXpm libXp ];
propagatedBuildInputs = [ xlibsWrapper libXmu ]; propagatedBuildInputs = [ xlibsWrapper libXmu ];

View File

@ -25,19 +25,19 @@ stdenv.mkDerivation rec {
sha256 = "1qf8wkv00pb9w1aa0dl89c8gm4rmzkxfl7hidj4gz0wpy7a24qa2"; sha256 = "1qf8wkv00pb9w1aa0dl89c8gm4rmzkxfl7hidj4gz0wpy7a24qa2";
}) ]; }) ];
platform = # Avoid guessing where files end up. Just use current directory.
if stdenv.isLinux then "linux" postPatch = ''
else if stdenv.isDarwin then "macosx" substituteInPlace projects/premake4.lua \
else throw "unrecognized system ${stdenv.hostPlatform.system}"; --replace 'location ( os.get() .. "/" .. _ACTION )' 'location ( ".." )'
substituteInPlace projects/bootil.lua \
--replace 'targetdir ( "../lib/" .. os.get() .. "/" .. _ACTION )' 'targetdir ( ".." )'
'';
buildInputs = [ premake4 ]; nativeBuildInputs = [ premake4 ];
premakefile = "projects/premake4.lua";
configurePhase = "premake4 --file=projects/premake4.lua gmake";
makeFlags = "-C projects/${platform}/gmake";
installPhase = '' installPhase = ''
mkdir -p $out/lib install -D libbootil_static.a $out/lib/libbootil_static.a
cp lib/${platform}/gmake/libbootil_static.a $out/lib/ cp -r include $out
cp -r include $out/
''; '';
} }

View File

@ -3,11 +3,11 @@
# Note that this does not provide the ngspice command-line utility. For that see # Note that this does not provide the ngspice command-line utility. For that see
# the ngspice derivation. # the ngspice derivation.
stdenv.mkDerivation { stdenv.mkDerivation {
name = "libngspice-28"; name = "libngspice-29";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/ngspice/ngspice-28.tar.gz"; url = "mirror://sourceforge/ngspice/ngspice-29.tar.gz";
sha256 = "0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l"; sha256 = "0jjwz73naq7l9yhwdqbpnrfckywp2ffkppivxjv8w92zq7xhyvcd";
}; };
nativeBuildInputs = [ flex bison ]; nativeBuildInputs = [ flex bison ];
@ -18,7 +18,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "The Next Generation Spice (Electronic Circuit Simulator)"; description = "The Next Generation Spice (Electronic Circuit Simulator)";
homepage = http://ngspice.sourceforge.net; homepage = http://ngspice.sourceforge.net;
license = with licenses; [ "BSD" gpl2 ]; license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ]; # See https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/COPYING
maintainers = with maintainers; [ bgamari ]; maintainers = with maintainers; [ bgamari ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View File

@ -1,17 +0,0 @@
{stdenv, fetchurl}:
stdenv.mkDerivation rec {
version = "3.6.0";
src = fetchurl {
url = "mirror://gnu/osip/libosip2-${version}.tar.gz";
sha256 = "1kcndqvsyxgbhkksgydvvjw15znfq6jiznvw058d21h5fq68p8f9";
};
name = "libosip2-${version}";
meta = {
license = stdenv.lib.licenses.lgpl21Plus;
homepage = http://www.gnu.org/software/osip/;
description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
maintainers = with stdenv.lib.maintainers; [ raskin ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, python, pkgconfig, readline, libxslt { stdenv, fetchurl, python, pkgconfig, readline, libxslt
, docbook_xsl, docbook_xml_dtd_42, fixDarwinDylibNames , docbook_xsl, docbook_xml_dtd_42, fixDarwinDylibNames
, buildPackages
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -10,10 +11,9 @@ stdenv.mkDerivation rec {
sha256 = "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di"; sha256 = "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di";
}; };
nativeBuildInputs = [ pkgconfig fixDarwinDylibNames ]; nativeBuildInputs = [ pkgconfig fixDarwinDylibNames python
buildInputs = [ docbook_xsl docbook_xml_dtd_42 ];
python readline libxslt docbook_xsl docbook_xml_dtd_42 buildInputs = [ readline libxslt ];
];
prePatch = '' prePatch = ''
patchShebangs buildtools/bin/waf patchShebangs buildtools/bin/waf
@ -23,10 +23,14 @@ stdenv.mkDerivation rec {
"--enable-talloc-compat1" "--enable-talloc-compat1"
"--bundled-libraries=NONE" "--bundled-libraries=NONE"
"--builtin-libraries=replace" "--builtin-libraries=replace"
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--cross-compile"
"--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
]; ];
configurePlatforms = [];
postInstall = '' postInstall = ''
ar q $out/lib/libtalloc.a bin/default/talloc_[0-9]*.o ${stdenv.cc.targetPrefix}ar q $out/lib/libtalloc.a bin/default/talloc_[0-9]*.o
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -7,7 +7,7 @@
let let
pname = "wlroots"; pname = "wlroots";
version = "0.1"; version = "0.2";
meson480 = meson.overrideAttrs (oldAttrs: rec { meson480 = meson.overrideAttrs (oldAttrs: rec {
name = pname + "-" + version; name = pname + "-" + version;
pname = "meson"; pname = "meson";
@ -17,8 +17,11 @@ let
inherit pname version; inherit pname version;
sha256 = "0qawsm6px1vca3babnqwn0hmkzsxy4w0gi345apd2qk3v0cv7ipc"; sha256 = "0qawsm6px1vca3babnqwn0hmkzsxy4w0gi345apd2qk3v0cv7ipc";
}; };
patches = builtins.filter # Remove gir-fallback-path.patch # Remove gir-fallback-path.patch and
(str: !(stdenv.lib.hasSuffix "gir-fallback-path.patch" str)) # a87496addd9160300837aa50193f4798c6f1d251.patch (already in 0.48.0):
patches = builtins.filter
(str: !(stdenv.lib.hasSuffix "gir-fallback-path.patch" str
|| stdenv.lib.hasSuffix "a87496addd9160300837aa50193f4798c6f1d251.patch" str))
oldAttrs.patches; oldAttrs.patches;
}); });
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
@ -28,13 +31,13 @@ in stdenv.mkDerivation rec {
owner = "swaywm"; owner = "swaywm";
repo = "wlroots"; repo = "wlroots";
rev = version; rev = version;
sha256 = "0xfipgg2qh2xcf3a1pzx8pyh1aqpb9rijdyi0as4s6fhgy4w269c"; sha256 = "0gfxawjlb736xl90zfv3n6zzf5n1cacgzflqi1zq1wn7wd3j6ppv";
}; };
patches = [ (fetchpatch { # TODO: Only required for version 0.1 postPatch = ''
url = https://github.com/swaywm/wlroots/commit/be6210cf8216c08a91e085dac0ec11d0e34fb217.patch; substituteInPlace meson.build \
sha256 = "0njv7mr4ark603w79cxcsln29galh87vpzsx2dzkrl1x5x4i6cj5"; --replace "version: '0.1.0'" "version: '${version}.0'"
}) ]; '';
# $out for the library, $bin for rootston, and $examples for the example # $out for the library, $bin for rootston, and $examples for the example
# programs (in examples) AND rootston # programs (in examples) AND rootston
@ -50,7 +53,7 @@ in stdenv.mkDerivation rec {
mesonFlags = [ mesonFlags = [
"-Dlibcap=enabled" "-Dlogind=enabled" "-Dxwayland=enabled" "-Dx11-backend=enabled" "-Dlibcap=enabled" "-Dlogind=enabled" "-Dxwayland=enabled" "-Dx11-backend=enabled"
"-Dxcb-icccm=enabled" "-Dxcb-xkb=enabled" "-Dxcb-errors=enabled" "-Dxcb-icccm=enabled" "-Dxcb-errors=enabled"
]; ];
postInstall = '' postInstall = ''

View File

@ -15,9 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ premake5 doxygen ]; nativeBuildInputs = [ premake5 doxygen ];
propagatedBuildInputs = [ libsodium mbedtls ]; propagatedBuildInputs = [ libsodium mbedtls ];
buildPhase = '' postBuild = ''
premake5 gmake
make all
premake5 docs premake5 docs
''; '';
@ -28,6 +26,8 @@ stdenv.mkDerivation rec {
cp -r docs/html $out/share/doc/yojimbo cp -r docs/html $out/share/doc/yojimbo
''; '';
doCheck = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A network library for client/server games with dedicated servers"; description = "A network library for client/server games with dedicated servers";
longDescription = '' longDescription = ''

View File

@ -2,11 +2,11 @@
buildDunePackage rec { buildDunePackage rec {
pname = "csv"; pname = "csv";
version = "2.1"; version = "2.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/Chris00/ocaml-${pname}/releases/download/${version}/csv-${version}.tbz"; url = "https://github.com/Chris00/ocaml-${pname}/releases/download/${version}/csv-${version}.tbz";
sha256 = "0cgfb6cwhwy7ypc1i3jyfz6sdnykp75aqi6kk0g1a2d81yjwzbcg"; sha256 = "1llwjdi14vvfy4966crapibq0djii71x47b0yxhjcl5jw4xnsaha";
}; };
meta = { meta = {

View File

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, ocaml, findlib }: { stdenv, fetchFromGitHub, ocaml, findlib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2.0.0-rc2"; version = "2.0.0";
name = "ocaml${ocaml.version}-opam-file-format-${version}"; name = "ocaml${ocaml.version}-opam-file-format-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ocaml"; owner = "ocaml";
repo = "opam-file-format"; repo = "opam-file-format";
rev = "${version}"; rev = "${version}";
sha256 = "05g0pikmifmfkwyws5x82fglgsz3d317yfn6nrz7zmpn22cirvir"; sha256 = "0fqb99asnair0043hhc8r158d6krv5nzvymd0xwycr5y72yrp0hv";
}; };
buildInputs = [ ocaml findlib ]; buildInputs = [ ocaml findlib ];

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, cppo, ppx_tools, ppx_deriving, result }: { stdenv, fetchurl, ocaml, findlib, ocamlbuild, cppo, ppx_tools, ppx_deriving, result }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "ocaml${ocaml.version}-visitors-20171124"; name = "ocaml${ocaml.version}-visitors-20180513";
src = fetchurl { src = fetchurl {
url = http://gallium.inria.fr/~fpottier/visitors/visitors-20171124.tar.gz; url = http://gallium.inria.fr/~fpottier/visitors/visitors-20180513.tar.gz;
sha256 = "04047k2v0pgwcdkgw7jk4955pgil0nj2ji0zfhmlqrdbinyfqzac"; sha256 = "12j8n9fkl43sd0j78x2zqix8m1vinswl2jgwndd62vmx98f5rl1v";
}; };
buildInputs = [ ocaml findlib ocamlbuild cppo ]; buildInputs = [ ocaml findlib ocamlbuild cppo ];

View File

@ -0,0 +1,37 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, cairocffi, nose, fontconfig
, cssselect2, defusedxml, pillow, tinycss2 }:
# CairoSVG 2.x dropped support for Python 2 so offer CairoSVG 1.x as an
# alternative
buildPythonPackage rec {
pname = "CairoSVG";
version = "1.0.22";
# PyPI doesn't include tests so use GitHub
src = fetchFromGitHub {
owner = "Kozea";
repo = pname;
rev = version;
sha256 = "15z0cag5s79ghhrlgs5xc9ayvzzdr3v8151vf6k819f1drsfjfxl";
};
propagatedBuildInputs = [ cairocffi ];
checkInputs = [ nose fontconfig cssselect2 defusedxml pillow tinycss2 ];
# Almost all tests just fail. Not sure how to fix them.
doCheck = false;
# checkInputs = [ nose fontconfig cssselect2 defusedxml pillow tinycss2 ];
# checkPhase = ''
# FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf nosetests .
# '';
meta = with stdenv.lib; {
homepage = https://cairosvg.org;
license = licenses.lgpl3;
description = "SVG converter based on Cairo";
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, buildPythonPackage, fetchPypi { stdenv, buildPythonPackage, fetchPypi
, pytest, pytestrunner, hypothesis}: , cython, pytest, pytestrunner, hypothesis }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "datrie"; pname = "datrie";
@ -10,8 +10,15 @@ buildPythonPackage rec {
sha256 = "08r0if7dry2q7p34gf7ffyrlnf4bdvnprxgydlfxgfnvq8f3f4bs"; sha256 = "08r0if7dry2q7p34gf7ffyrlnf4bdvnprxgydlfxgfnvq8f3f4bs";
}; };
nativeBuildInputs = [ cython ];
buildInputs = [ pytest pytestrunner hypothesis ]; buildInputs = [ pytest pytestrunner hypothesis ];
# recompile pxd and pyx for python37
# https://github.com/pytries/datrie/issues/52
preBuild = ''
./update_c.sh
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Super-fast, efficiently stored Trie for Python"; description = "Super-fast, efficiently stored Trie for Python";
homepage = "https://github.com/kmike/datrie"; homepage = "https://github.com/kmike/datrie";

View File

@ -28,6 +28,17 @@ in buildPythonPackage rec {
url = https://bugzilla.gnome.org/attachment.cgi?id=371989; url = https://bugzilla.gnome.org/attachment.cgi?id=371989;
sha256 = "1k46nvw175c1wvkqnx783i9d4w9vn431spcl48jb3y224jj3va08"; sha256 = "1k46nvw175c1wvkqnx783i9d4w9vn431spcl48jb3y224jj3va08";
}) })
# Fixes `from gi.repository import Gst` when gst-python's site-package is in
# PYTHONPATH
(fetchurl {
url = https://gitlab.freedesktop.org/gstreamer/gst-python/commit/d64bbc1e0c3c948c148f505cc5f856ce56732880.diff;
sha256 = "1n9pxmcl1x491mp47avpcw2a6n71lm0haz6mfas168prkgsk8q3r";
})
# Fixes python2 build from the above changes
(fetchurl {
url = https://gitlab.freedesktop.org/gstreamer/gst-python/commit/f79ac2d1434d7ba9717f3e943cfdc76e121eb5dd.diff;
sha256 = "17a164b0v36g0kwiqdlkjx6g0pjhcs6ilizck7iky8bgjnmiypm1";
})
]; ];
# TODO: First python_dep in meson.build needs to be removed # TODO: First python_dep in meson.build needs to be removed

View File

@ -0,0 +1,35 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, six, nose, nose-of-yeti
, nose-pattern-exclude, which }:
buildPythonPackage rec {
pname = "nose-focus";
version = "0.1.3";
propagatedBuildInputs = [ six ];
checkInputs = [ nose nose-of-yeti nose-pattern-exclude which ];
# PyPI doesn't contain tests so let's use GitHub. See:
# https://github.com/delfick/nose-focus/issues/4
#
# However, the versions aren't tagged on GitHub so need to use a manually
# checked revision. See: https://github.com/delfick/nose-focus/issues/5
src = fetchFromGitHub {
owner = "delfick";
repo = pname;
rev = "4dac785ba07ed6e1df61b0fe2854685eef3bd115";
sha256 = "0gpd4j4433dc5ifh31w08c3bx862md0qm1ix6aam1rz4ayxpq51f";
};
checkPhase = ''
patchShebangs test.sh
./test.sh
'';
meta = with stdenv.lib; {
description = "Decorator and plugin to make nose focus on specific tests";
homepage = https://nose-focus.readthedocs.io/en/latest/;
license = licenses.wtfpl;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -0,0 +1,30 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, six, nose, fudge, should-dsl }:
buildPythonPackage rec {
pname = "nose-of-yeti";
version = "1.8";
propagatedBuildInputs = [ six ];
checkInputs = [ nose fudge should-dsl ];
# PyPI doesn't contain tests so let's use GitHub.
src = fetchFromGitHub {
owner = "delfick";
repo = pname;
rev = "v${version}";
sha256 = "1pq9bf47k0csv41vdh2g6n336p3pd11q91hj5ypk0ls3nj756gbx";
};
checkPhase = ''
patchShebangs test.sh
./test.sh
'';
meta = with stdenv.lib; {
description = "Nose plugin providing BDD dsl for python";
homepage = https://github.com/delfick/nose-of-yeti;
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -0,0 +1,23 @@
{ stdenv, buildPythonPackage, fetchPypi, nose }:
buildPythonPackage rec {
pname = "nose-pattern-exclude";
version = "0.1.3";
propagatedBuildInputs = [ nose ];
src = fetchPypi {
inherit pname version;
sha256 = "0apzxx8lavsdlxlpaxqw1snx5p7q8v5dfbip6v32f9pj2vyain1i";
};
# There are no tests
doCheck = false;
meta = with stdenv.lib; {
description = "Exclude specific files and directories from nosetests runs";
homepage = https://github.com/jakubroztocil/nose-pattern-exclude;
license = licenses.bsd3;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -2,22 +2,15 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "piexif"; pname = "piexif";
version = "1.0.13"; version = "1.1.2";
# pillow needed for unit tests # Pillow needed for unit tests
buildInputs = [ pillow ]; checkInputs = [ pillow ];
postPatch = ''
# incompatibility with pillow => 4.2.0
# has been resolved in https://github.com/hMatoba/Piexif/commit/c3a8272f5e6418f223b25f6486d8ddda201bbdf1
# remove this in the next version
sed -i -e 's/RGBA/RGB/' tests/s_test.py
'';
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
extension = "zip"; extension = "zip";
sha256 = "1d3dde03bd6298393645bc11d585b67a6ea98fd7e9e1aded6d5d6ec3e4cfbdda"; sha256 = "0dj6wiw4mk65zn7p0qpghra39mf88m3ph2xn7ff9jvasgczrgkb0";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,25 @@
{ stdenv, buildPythonPackage, fetchPypi, six, unidecode, nose, yanc }:
buildPythonPackage rec {
pname = "preggy";
version = "1.4.2";
propagatedBuildInputs = [ six unidecode ];
checkInputs = [ nose yanc ];
src = fetchPypi {
inherit pname version;
sha256 = "0g4ifjh01dkmdzs4621ahk8hpkngid1xxhl51jvzy4h4li4590hw";
};
checkPhase = ''
nosetests .
'';
meta = with stdenv.lib; {
description = "Assertion library for Python";
homepage = http://heynemann.github.io/preggy/;
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -0,0 +1,45 @@
{ stdenv, fetchPypi, buildPythonPackage, fetchFromGitHub, simplejson, redis, setproctitle, nose, pkgs }:
let
# the requirements of `pyres` support Redis 3.x (due to a missing upper-bound),
# but it doesn't support Redis 3.x.
redis' = redis.overridePythonAttrs (old: rec {
pname = "redis";
version = "2.10.6";
src = fetchPypi {
inherit pname version;
sha256 = "03vcgklykny0g0wpvqmy8p6azi2s078317wgb2xjv5m2rs9sjb52";
};
});
in
buildPythonPackage rec {
pname = "pyres";
version = "1.5";
# ps is used in Worker.worker_pids method
propagatedBuildInputs = [ simplejson setproctitle redis' pkgs.ps ];
checkInputs = [ nose pkgs.redis ];
# PyPI tarball doesn't contain tests so let's use GitHub
src = fetchFromGitHub {
owner = "binarydud";
repo = pname;
rev = version;
sha256 = "1rkpv7gbjxl9h9g7kncmsrgmi77l7pgfq8d7dbnsr3ia2jmjqb8y";
};
checkPhase = ''
redis-server &
nosetests .
'';
meta = with stdenv.lib; {
description = "Python resque clone";
homepage = https://github.com/binarydud/pyres;
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -0,0 +1,32 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, scipy, pillow }:
buildPythonPackage rec {
pname = "pyssim";
version = "0.4";
propagatedBuildInputs = [ numpy scipy pillow ];
# PyPI tarball doesn't contain test images so let's use GitHub
src = fetchFromGitHub {
owner = "jterrace";
repo = pname;
rev = "v${version}";
sha256 = "0rnj3xdhma1fc0fg0jjsdy74ar0hgr3w8kygbnijqjdms7m3asqm";
};
# Tests are copied from .travis.yml
checkPhase = ''
$out/bin/pyssim test-images/test1-1.png test-images/test1-1.png | grep 1
$out/bin/pyssim test-images/test1-1.png test-images/test1-2.png | grep 0.998
$out/bin/pyssim test-images/test1-1.png "test-images/*" | grep -E " 1| 0.998| 0.672| 0.648" | wc -l | grep 4
$out/bin/pyssim --cw --width 128 --height 128 test-images/test1-1.png test-images/test1-1.png | grep 1
$out/bin/pyssim --cw --width 128 --height 128 test-images/test3-orig.jpg test-images/test3-rot.jpg | grep 0.938
'';
meta = with stdenv.lib; {
description = "Module for computing Structured Similarity Image Metric (SSIM) in Python";
homepage = https://github.com/jterrace/pyssim;
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -0,0 +1,18 @@
{ stdenv, buildPythonPackage, fetchPypi }:
buildPythonPackage rec {
pname = "python-mnist";
version = "0.6";
src = fetchPypi {
inherit pname version;
sha256 = "5d59a44335eccb4b310efb2ebb76f44e8588a1732cfb4923f4a502b61d8b653a";
};
meta = with stdenv.lib; {
homepage = https://github.com/sorki/python-mnist;
description = "Simple MNIST data parser written in Python";
license = licenses.bsd3;
maintainers = with maintainers; [ cmcdragonkai ];
};
}

View File

@ -0,0 +1,38 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, pillow, argparse, pyres, nose
, preggy, numpy, yanc, nose-focus, mock, opencv }:
buildPythonPackage rec {
pname = "remotecv";
version = "2.2.2";
propagatedBuildInputs = [ pillow argparse pyres ];
checkInputs = [ nose preggy numpy yanc nose-focus mock opencv ];
# PyPI tarball doesn't contain tests so let's use GitHub
src = fetchFromGitHub {
owner = "thumbor";
repo = pname;
rev = version;
sha256 = "0slalp1x626ajy2cbdfifhxf0ffzckqdz6siqsqr6s03hrl877hy";
};
# Remove unnecessary argparse dependency and some seemingly unnecessary
# version upper bounds because nixpkgs contains (or could contain) newer
# versions.
# See: https://github.com/thumbor/remotecv/issues/15
patches = [
./install_requires.patch
];
checkPhase = ''
nosetests --with-yanc -s tests/
'';
meta = with stdenv.lib; {
description = "OpenCV worker for facial and feature recognition";
homepage = https://github.com/thumbor/remotecv/wiki;
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -0,0 +1,16 @@
diff --git a/setup.py b/setup.py
index 70f765c..8003cda 100644
--- a/setup.py
+++ b/setup.py
@@ -53,9 +53,8 @@ remotecv is an OpenCV worker for facial and feature recognition
},
install_requires=[
- "argparse>=1.2.1,<1.3.0",
- "pyres>=1.5,<1.6",
- "Pillow>=4.3.0,<5.2.0",
+ "pyres>=1.5",
+ "Pillow>=4.3.0",
],
entry_points={

View File

@ -0,0 +1,22 @@
{ stdenv, buildPythonPackage, fetchPypi }:
buildPythonPackage rec {
pname = "should-dsl";
version = "2.1.2";
src = fetchPypi {
inherit version;
pname = "should_dsl";
sha256 = "0ai30dxgygwzaj9sgdzyfr9p5b7gwc9piq59nzr4xy5x1zcm7xrn";
};
# There are no tests
doCheck = false;
meta = with stdenv.lib; {
description = "Should assertions in Python as clear and readable as possible";
homepage = http://www.should-dsl.info/;
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -1,6 +1,8 @@
{ buildPythonPackage, tornado, pycrypto, pycurl, pytz { buildPythonPackage, python, tornado, pycrypto, pycurl, pytz
, pillow, derpconf, python_magic, pexif, libthumbor, opencv, webcolors , pillow, derpconf, python_magic, libthumbor, webcolors
, piexif, futures, statsd, thumborPexif, fetchPypi, isPy3k, lib , piexif, futures, statsd, thumborPexif, fetchFromGitHub, isPy3k, lib
, mock, raven, nose, yanc, remotecv, pyssim, cairosvg1, preggy, opencv3
, pkgs, coreutils
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -9,16 +11,40 @@ buildPythonPackage rec {
disabled = isPy3k; # see https://github.com/thumbor/thumbor/issues/1004 disabled = isPy3k; # see https://github.com/thumbor/thumbor/issues/1004
src = fetchPypi { # Tests aren't included in PyPI tarball so use GitHub instead
inherit pname version; src = fetchFromGitHub {
sha256 = "1icfnzwzi5lvnh576n7v3r819jaw15ph9ja2w3fwg5z9qs40xvl8"; owner = pname;
repo = pname;
rev = version;
sha256 = "1ys5ymwbvgh2ir85g9nyrzzf8vgi16j6pzzi53b0rgjx0kwlmnxg";
}; };
postPatch = '' postPatch = ''
substituteInPlace "setup.py" \ substituteInPlace "setup.py" \
--replace '"argparse",' "" ${lib.optionalString isPy3k ''--replace '"futures",' ""''} --replace '"argparse",' "" ${lib.optionalString isPy3k ''--replace '"futures",' ""''}
substituteInPlace "setup.py" \
--replace "piexif>=1.0.13,<1.1.0" "piexif>=1.0.13"
substituteInPlace "tests/test_utils.py" \
--replace "/bin/ls" "${coreutils}/bin/ls"
substituteInPlace "tests/detectors/test_face_detector.py" \
--replace "./thumbor" "$out/lib/${python.libPrefix}/site-packages/thumbor"
substituteInPlace "tests/detectors/test_glasses_detector.py" \
--replace "./thumbor" "$out/lib/${python.libPrefix}/site-packages/thumbor"
''; '';
checkInputs = [
nose
pyssim
preggy
mock
yanc
remotecv
cairosvg1
raven
pkgs.redis
pkgs.glibcLocales
];
propagatedBuildInputs = [ propagatedBuildInputs = [
tornado tornado
pycrypto pycrypto
@ -27,18 +53,26 @@ buildPythonPackage rec {
pillow pillow
derpconf derpconf
python_magic python_magic
pexif
libthumbor libthumbor
opencv opencv3
webcolors webcolors
piexif piexif
statsd statsd
pkgs.exiftool
pkgs.libjpeg
pkgs.ffmpeg
pkgs.gifsicle
] ++ lib.optionals (!isPy3k) [ futures thumborPexif ]; ] ++ lib.optionals (!isPy3k) [ futures thumborPexif ];
# disabled due to too many impure tests and issues with native modules in # Remove the source tree before running nosetests because otherwise nosetests
# the pure testing environment. See https://github.com/NixOS/nixpkgs/pull/37147 # uses that instead of the installed package. Is there some other way to
# for further reference. # achieve this?
doCheck = false; checkPhase = ''
redis-server --port 6668 --requirepass hey_you &
rm -r thumbor
export LC_ALL="en_US.UTF-8"
nosetests -v --with-yanc -s tests/
'';
meta = with lib; { meta = with lib; {
description = "A smart imaging service"; description = "A smart imaging service";

View File

@ -0,0 +1,27 @@
{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, nose }:
buildPythonPackage rec {
pname = "yanc";
version = "0.3.3";
# Tests fail on Python>=3.5. See: https://github.com/0compute/yanc/issues/10
disabled = !(pythonOlder "3.5");
checkInputs = [ nose ];
src = fetchPypi {
inherit pname version;
sha256 = "0z35bkk9phs40lf5061k1plhjdl5fskm0dmdikrsqi1bjihnxp8w";
};
checkPhase = ''
nosetests .
'';
meta = with stdenv.lib; {
description = "Yet another nose colorer";
homepage = https://github.com/0compute/yanc;
license = licenses.gpl3;
maintainers = with maintainers; [ jluttine ];
};
}

View File

@ -18,6 +18,9 @@ stdenv.mkDerivation {
install -Dm755 bin/premake $out/bin/premake install -Dm755 bin/premake $out/bin/premake
''; '';
premake_cmd = "premake3";
setupHook = ./setup-hook.sh;
meta = { meta = {
homepage = http://industriousone.com/premake; homepage = http://industriousone.com/premake;
description = "A simple build configuration and project generation tool using lua"; description = "A simple build configuration and project generation tool using lua";

View File

@ -31,6 +31,9 @@ stdenv.mkDerivation rec {
install -Dm755 bin/release/premake5 $out/bin/premake5 install -Dm755 bin/release/premake5 $out/bin/premake5
''; '';
premake_cmd = "premake5";
setupHook = ./setup-hook.sh;
meta = { meta = {
homepage = https://premake.github.io; homepage = https://premake.github.io;
description = "A simple build configuration and project generation tool using lua"; description = "A simple build configuration and project generation tool using lua";

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation {
sha256 = "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn"; sha256 = "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn";
}; };
buildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];
buildPhase = '' buildPhase = ''
make -C build/gmake.unix/ make -C build/gmake.unix/
@ -22,11 +22,14 @@ stdenv.mkDerivation {
install -Dm755 bin/release/premake4 $out/bin/premake4 install -Dm755 bin/release/premake4 $out/bin/premake4
''; '';
premake_cmd = "premake4";
setupHook = ./setup-hook.sh;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://industriousone.com/premake; homepage = http://industriousone.com/premake;
description = "A simple build configuration and project generation tool using lua"; description = "A simple build configuration and project generation tool using lua";
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
platforms = platforms.linux; platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ]; maintainers = [ maintainers.bjornfor ];
}; };
} }

View File

@ -0,0 +1,19 @@
premakeConfigurePhase() {
runHook preConfigure
local flagsArray=(
${premakefile:+--file=$premakefile}
$premakeFlags ${premakeFlagsArray[@]}
${premakeBackend:-gmake}
)
echoCmd 'configure flags' "${flagsArray[@]}"
@premake_cmd@ "${flagsArray[@]}"
runHook postConfigure
}
if [ -z "$configurePhase" ]; then
configurePhase=premakeConfigurePhase
fi

View File

@ -2,11 +2,11 @@
with python3Packages; buildPythonApplication rec { with python3Packages; buildPythonApplication rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "pipenv"; pname = "pipenv";
version = "2018.10.13"; version = "2018.11.14";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0qwflq00rwk3pnldndb30f3avnbi4hvv6c8mm6l5xxnxy9dj71d7"; sha256 = "1ni2cjgm04dwi8a0376nzwwy3gklqk9d0hkl8d9j760lvqshsxjz";
}; };
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";

View File

@ -0,0 +1,28 @@
{ stdenv, fetchFromGitHub, buildGoPackage, CoreFoundation }:
buildGoPackage rec {
name = "tychus-${version}";
version = "0.6.3";
goPackagePath = "github.com/devlocker/tychus";
goDeps = ./deps.nix;
subPackages = [];
src = fetchFromGitHub {
owner = "devlocker";
repo = "tychus";
rev = "v${version}";
sha256 = "02ybxjsfga89gpg0k21zmykhhnpx1vy3ny8fcwj0qsg73i11alvw";
};
buildInputs = stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ CoreFoundation ];
buildFlags = "--tags release";
meta = {
description = "Command line utility to live-reload your application.";
homepage = https://github.com/devlocker/tychus;
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.all;
};
}

30
pkgs/development/tools/tychus/deps.nix generated Normal file
View File

@ -0,0 +1,30 @@
# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
[
{
goPackagePath = "github.com/inconshreveable/mousetrap";
fetch = {
type = "git";
url = "https://github.com/inconshreveable/mousetrap";
rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
};
}
{
goPackagePath = "github.com/spf13/cobra";
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "f91529fc609202eededff4de2dc0ba2f662240a3";
sha256 = "10c3d5dp98rys134dnsl19ldj8bca183z91lj8rkbsy78qzrr9af";
};
}
{
goPackagePath = "github.com/spf13/pflag";
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
};
}
]

View File

@ -3,13 +3,13 @@
buildGoPackage rec { buildGoPackage rec {
name = "boohu-${version}"; name = "boohu-${version}";
version = "0.11.0"; version = "0.11.1";
goPackagePath = "git.tuxfamily.org/boohu/boohu.git"; goPackagePath = "git.tuxfamily.org/boohu/boohu.git";
src = fetchurl { src = fetchurl {
url = "https://download.tuxfamily.org/boohu/downloads/boohu-${version}.tar.gz"; url = "https://download.tuxfamily.org/boohu/downloads/boohu-${version}.tar.gz";
sha256 = "1qc3mz1mj6byyslmx1afprg1l7x8rcy7i004sy32g590jaahwqdr"; sha256 = "0m0ajxiyx8qwxj2zq33s5qpjr65cr33f7dpirg6b4w4y9gyhhv1g";
}; };
buildFlags = "--tags ansi"; buildFlags = "--tags ansi";

View File

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
else if stdenv.isDarwin then "gmad_osx" else if stdenv.isDarwin then "gmad_osx"
else "gmad"; else "gmad";
configurePhase = "premake4 --bootil_lib=${bootil}/lib --bootil_inc=${bootil}/include gmake"; premakeFlags = "--bootil_lib=${bootil}/lib --bootil_inc=${bootil}/include";
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin

View File

@ -25,9 +25,10 @@ in stdenv.mkDerivation rec {
sha256 = "0mc5dgh2x9nbili7gy6srjhb23ckalf08wqq2amyjr5rq392jvd7"; sha256 = "0mc5dgh2x9nbili7gy6srjhb23ckalf08wqq2amyjr5rq392jvd7";
}; };
nativeBuildInputs = [ premake4 makeWrapper unzip ]; nativeBuildInputs = [ makeWrapper unzip premake4 ];
# tome4 vendors quite a few libraries so someone might want to look into avoiding that... # tome4 vendors quite a few libraries so someone might want to look
# into avoiding that...
buildInputs = [ buildInputs = [
libGLU openal libpng libvorbis SDL2 SDL2_ttf SDL2_image libGLU openal libpng libvorbis SDL2 SDL2_ttf SDL2_image
]; ];
@ -36,20 +37,11 @@ in stdenv.mkDerivation rec {
enableParallelBuilding = false; enableParallelBuilding = false;
NIX_CFLAGS_COMPILE = [ NIX_CFLAGS_COMPILE = [
"-I${SDL2.dev}/include/SDL2"
"-I${SDL2_image}/include/SDL2" "-I${SDL2_image}/include/SDL2"
"-I${SDL2_ttf}/include/SDL2" "-I${SDL2_ttf}/include/SDL2"
]; ];
postPatch = ''
substituteInPlace premake4.lua \
--replace "/opt/SDL-2.0/include/SDL2" "${SDL2.dev}/include/SDL2" \
--replace "/usr/include/GL" "/run/opengl-driver/include"
'';
preConfigure = ''
premake4 gmake
'';
makeFlags = [ "config=release" ]; makeFlags = [ "config=release" ];
# The wrapper needs to cd into the correct directory as tome4's detection of # The wrapper needs to cd into the correct directory as tome4's detection of

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, libXt, libXpm, libXext, imake }: { stdenv, fetchurl, libXt, libXpm, libXext, imake, gccmakedep }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -10,20 +10,12 @@ stdenv.mkDerivation rec {
sha256 = "06jnbp88wc9i9dbmy7kggplw4hzlx2bhghxijmlhkjlizgqwimyh"; sha256 = "06jnbp88wc9i9dbmy7kggplw4hzlx2bhghxijmlhkjlizgqwimyh";
}; };
nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ buildInputs = [
libXt libXpm libXext imake libXt libXpm libXext
]; ];
buildPhase = '' makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
xmkmf
make
'';
installPhase = ''
mkdir -p $out/bin $out/share/man/man1
cp xsnow $out/bin/
cp xsnow.1 $out/share/man/man1/
'';
meta = { meta = {
description = "An X-windows application that will let it snow on the root, in between and on windows"; description = "An X-windows application that will let it snow on the root, in between and on windows";

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, xlibsWrapper, imake, libXScrnSaver, scrnsaverproto }: { stdenv, fetchurl, xlibsWrapper
, imake, gccmakedep, libXScrnSaver, scrnsaverproto }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xautolock-2.2"; name = "xautolock-2.2";
@ -14,10 +15,13 @@ stdenv.mkDerivation rec {
}) })
]; ];
NIX_CFLAGS_COMPILE = "-DSYSV"; NIX_CFLAGS_COMPILE = "-DSYSV";
makeFlags="BINDIR=\${out}/bin MANPATH=\${out}/man"; makeFlags = [
preBuild = "xmkmf"; "BINDIR=$(out)/bin"
"MANPATH=$(out)/share/man"
];
installTargets = "install install.man"; installTargets = "install install.man";
buildInputs = [xlibsWrapper imake libXScrnSaver scrnsaverproto]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ xlibsWrapper libXScrnSaver scrnsaverproto ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A program that launches a given program when your X session has been idle for a given time."; description = "A program that launches a given program when your X session has been idle for a given time.";
homepage = http://www.ibiblio.org/pub/linux/X11/screensavers; homepage = http://www.ibiblio.org/pub/linux/X11/screensavers;

View File

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
}) })
(fetchurl { (fetchurl {
url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-standard-buttons.tar.xz"; url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-standard-buttons.tar.xz";
sha256 = "0xnj1am1q26xppp8y07iik648hhgn3gmzqvkdhg3il4qnkndjvld"; sha256 = "1h0690cijaipidb5if2bxhvvkrx5src3akyxvfywxg4bf8x7jxs5";
}) })
]; ];

View File

@ -1,22 +0,0 @@
{ fetchurl }:
rec {
version = "3.2.10";
libvsl = fetchurl {
name = "fusionio-libvsl-${version}.deb";
url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2Wc01uNk1nVURMVFk";
sha256 = "1i8ii9dlyskj2dvad7nfvlm1wz2s4gy5llbl29hfa13w6nhcl5wk";
};
util = fetchurl {
name = "fusionio-util-${version}.deb";
url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2WbDVuQkwzWjZONGs";
sha256 = "0aw64kk5cwchjhqh5n1lpqrrh5gn4qdalnmasd25z7sijy2flxgq";
};
vsl = fetchurl {
name = "fusionio-iomemory-vsl-${version}.tar.gz";
url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2WbXFMbExEMUFCcWM";
sha256 = "1zm20aa1jmmqcqkb4p9r4jsgbg371zr1abdz32rw02i9687fsgcc";
};
}

View File

@ -1,45 +0,0 @@
{ stdenv, fetchurl, dpkg, glibc, gcc, libuuid }:
let
srcs = import ./srcs.nix { inherit fetchurl; };
in
stdenv.mkDerivation {
name = "fusionio-util-${srcs.version}";
nativeBuildInputs = [ dpkg ];
buildCommand = ''
dpkg-deb -R ${srcs.libvsl} $TMPDIR
dpkg-deb -R ${srcs.util} $TMPDIR
rm $TMPDIR/usr/bin/fio-{bugreport,sanitize}
mkdir -p $out
cp -r $TMPDIR/{etc,usr/{bin,lib,share}} $out
for BIN in $(find $out/bin -type f); do
echo Patching $BIN
patchelf --set-interpreter "${glibc.out}/lib/ld-linux-x86-64.so.2" --set-rpath "${stdenv.lib.makeLibraryPath [ glibc gcc.cc libuuid ] }:$out/lib" $BIN
# Test our binary to see if it was correctly patched
set +e
$BIN --help >/dev/null 2>&1
ST="$?"
set -e
if [ "$ST" -ge "10" ]; then
echo "Failed testing $BIN"
exit 1;
fi
done
'';
dontStrip = true;
meta = with stdenv.lib; {
homepage = http://fusionio.com;
description = "Fusionio command line utilities";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
broken = stdenv.hostPlatform.system != "x86_64-linux";
maintainers = with maintainers; [ wkennington ];
};
}

View File

@ -1,13 +0,0 @@
diff --git a/kfile.c b/kfile.c
index 5014e77..a65d921 100644
--- a/kfile.c
+++ b/kfile.c
@@ -51,7 +51,7 @@ fusion_inode * noinline kfio_fs_inode(fusion_file *fp)
#if KFIOC_STRUCT_FILE_HAS_PATH
return (fusion_inode *) ((struct file *)fp)->f_path.dentry->d_inode;
#else
- return (fusion_inode *) ((struct file *)fp)->f_dentry->d_inode;
+ return (fusion_inode *) file_inode((struct file *)fp);
#endif
}

View File

@ -1,39 +0,0 @@
{ stdenv, fetchurl, kernel }:
let
srcs = import ./srcs.nix { inherit fetchurl; };
in
stdenv.mkDerivation rec {
name = "fusionio-iomemory-vsl-${srcs.version}";
src = srcs.vsl;
hardeningDisable = [ "pic" ];
prePatch = ''
cd root/usr/src/iomemory-vsl-*
'';
patches = stdenv.lib.optional (stdenv.lib.versionAtLeast kernel.version "3.19") ./vsl-fix-file-inode.patch;
preBuild = ''
sed -i Makefile kfio_config.sh \
-e "s,\(KERNELDIR=\"\|KERNEL_SRC =\)[^\"]*,\1${kernel.dev}/lib/modules/${kernel.modDirVersion}/build,g"
export DKMS_KERNEL_VERSION=${kernel.modDirVersion}
export TARGET="x86_64_cc48"
'';
installPhase = ''
export INSTALL_ROOT=$out
make modules_install
'';
meta = with stdenv.lib; {
homepage = http://fusionio.com;
description = "Kernel driver for accessing fusion-io cards";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
broken = stdenv.hostPlatform.system != "x86_64-linux";
maintainers = with maintainers; [ wkennington ];
};
}

View File

@ -641,6 +641,7 @@ let
MEGARAID_NEWGEN = yes; MEGARAID_NEWGEN = yes;
MLX4_EN_VXLAN = whenOlder "4.8" yes; MLX4_EN_VXLAN = whenOlder "4.8" yes;
MLX5_CORE_EN = option yes;
MODVERSIONS = whenOlder "4.9" yes; MODVERSIONS = whenOlder "4.9" yes;
MOUSE_PS2_ELANTECH = yes; # Elantech PS/2 protocol extension MOUSE_PS2_ELANTECH = yes; # Elantech PS/2 protocol extension

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub }: { stdenv, lib, fetchFromGitHub }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.6.2"; version = "0.6.2";
@ -20,9 +20,15 @@ stdenv.mkDerivation rec {
makeFlags = ["PREFIX=$(out)"]; makeFlags = ["PREFIX=$(out)"];
meta = { meta = {
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [
maintainers = with stdenv.lib.maintainers; [raskin]; "i686-linux"
license = stdenv.lib.licenses.mit; "x86_64-linux"
description = ''A Linux tool to change controlling pty of a process''; "i686-freebsd"
"x86_64-freebsd"
] ++ lib.platforms.arm;
maintainers = with lib.maintainers; [raskin];
license = lib.licenses.mit;
description = "Reparent a running program to a new terminal";
homepage = https://github.com/nelhage/reptyr;
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jackett-${version}"; name = "jackett-${version}";
version = "0.10.446"; version = "0.10.471";
src = fetchurl { src = fetchurl {
url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz"; url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
sha256 = "1vmgywklax5br3pynjp5b74l2mkmhk3njiccjrl0l7j8ikyar1fw"; sha256 = "0la05akvpvfg9jdgfd39wnc87zi7axzx7499w9m3py7qqqyvgyin";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -16,12 +16,9 @@ in stdenv.mkDerivation {
buildInputs = [ xproto libXau libXt libXext libXaw libXpm ]; buildInputs = [ xproto libXau libXt libXext libXaw libXpm ];
buildPhase = '' buildFlags = [ "WORLDOPTS=" "World" ];
xmkmf
make WORLDOPTS="" World
'';
installFlags = "LDLIBS=-lfl DESTDIR=\${out}"; installFlags = [ "LDLIBS=-lfl" "DESTDIR=${placeholder "out"}" ];
postInstall = '' postInstall = ''
mv $out/${xorgcffiles}/* $out mv $out/${xorgcffiles}/* $out

View File

@ -1,12 +1,12 @@
{ lib, stdenv, fetchzip }: { lib, stdenv, fetchzip }:
let let
version = "1.3.7"; version = "1.3.8";
in in
fetchzip rec { fetchzip rec {
name= "roundcube-${version}"; name= "roundcube-${version}";
url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz"; url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
sha256 = "0xwqy0adynx7066a0cvz9vyg85waax1i4p70kcdkz7q5jnw4jzhf"; sha256 = "1lhwr13bglm8rqgamnb480b07wpqhw9bskjj2xxb0x8kdjly29ks";
extraPostFetch = '' extraPostFetch = ''
ln -sf /etc/roundcube/config.inc.php $out/config/config.inc.php ln -sf /etc/roundcube/config.inc.php $out/config/config.inc.php

View File

@ -1,18 +1,28 @@
{ stdenv, buildGoPackage, fetchurl, cmake, xz, which, autoconf, ncurses6, libedit }: { stdenv, buildGoPackage, fetchurl
, cmake, xz, which, autoconf
, ncurses6, libedit, libunwind
}:
let
darwinDeps = [ libunwind libedit ];
linuxDeps = [ ncurses6 ];
buildInputs = if stdenv.isDarwin then darwinDeps else linuxDeps;
nativeBuildInputs = [ cmake xz which autoconf ];
in
buildGoPackage rec { buildGoPackage rec {
name = "cockroach-${version}"; name = "cockroach-${version}";
version = "2.0.0"; version = "2.1.1";
goPackagePath = "github.com/cockroachdb/cockroach"; goPackagePath = "github.com/cockroachdb/cockroach";
src = fetchurl { src = fetchurl {
url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz"; url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz";
sha256 = "0x8hf5qwvgb2w6dcnvy20v77nf19f0l1pb40jf31rm72xhk3bwvy"; sha256 = "1z34zlwznh4lgbc1ryn577w7mmycyjbmz28k1hhhb6ricmk1x847";
}; };
buildInputs = [ (if stdenv.isDarwin then libedit else ncurses6) ]; inherit nativeBuildInputs buildInputs;
nativeBuildInputs = [ cmake xz which autoconf ];
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
@ -21,24 +31,34 @@ buildGoPackage rec {
make buildoss make buildoss
cd src/${goPackagePath} cd src/${goPackagePath}
for asset in man autocomplete; do for asset in man autocomplete; do
./cockroach gen $asset ./cockroachoss gen $asset
done done
runHook postBuild runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -D cockroach $bin/bin/cockroach
install -D cockroachoss $bin/bin/cockroach
install -D cockroach.bash $bin/share/bash-completion/completions/cockroach.bash install -D cockroach.bash $bin/share/bash-completion/completions/cockroach.bash
cp -r man $bin/share/man
mkdir -p $man/share/man
cp -r man $man/share/man
runHook postInstall runHook postInstall
''; '';
# Unfortunately we have to keep an empty reference to $out, because it seems
# buildGoPackages only nukes references to the go compiler under $bin, effectively
# making all binary output under $bin mandatory. Ideally, we would just use
# $out and $man and remove $bin since there's no point in an empty path. :(
outputs = [ "bin" "man" "out" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://www.cockroachlabs.com; homepage = https://www.cockroachlabs.com;
description = "A scalable, survivable, strongly-consistent SQL database"; description = "A scalable, survivable, strongly-consistent SQL database";
license = licenses.asl20; license = licenses.asl20;
platforms = [ "x86_64-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
maintainers = [ maintainers.rushmorem ]; maintainers = with maintainers; [ rushmorem thoughtpolice ];
}; };
} }

View File

@ -1 +0,0 @@
export IMAKECPP="@tradcpp@/bin/tradcpp"

View File

@ -0,0 +1,19 @@
export IMAKECPP="@tradcpp@/bin/tradcpp"
imakeConfigurePhase() {
runHook preConfigure
echoCmd 'configuring with imake'
if [ -z "${imakefile:-}" -a ! -e Imakefile ]; then
echo "no Imakefile, doing nothing"
else
xmkmf -a
fi
runHook postConfigure
}
if [ -z "$dontUseImakeConfigure" -a -z "$configurePhase" ]; then
configurePhase=imakeConfigurePhase
fi

View File

@ -63,12 +63,12 @@ self: super:
inherit (self) xorgcffiles; inherit (self) xorgcffiles;
x11BuildHook = ./imake.sh; x11BuildHook = ./imake.sh;
patches = [./imake.patch ./imake-cc-wrapper-uberhack.patch]; patches = [./imake.patch ./imake-cc-wrapper-uberhack.patch];
setupHook = if stdenv.isDarwin then ./darwin-imake-setup-hook.sh else null; setupHook = ./imake-setup-hook.sh;
CFLAGS = [ "-DIMAKE_COMPILETIME_CPP=\\\"${if stdenv.isDarwin CFLAGS = [ ''-DIMAKE_COMPILETIME_CPP='"${if stdenv.isDarwin
then "${tradcpp}/bin/cpp" then "${tradcpp}/bin/cpp"
else "gcc"}\\\"" else "gcc"}"' ''
]; ];
tradcpp = if stdenv.isDarwin then tradcpp else null; inherit tradcpp;
}); });
mkfontdir = super.mkfontdir.overrideAttrs (attrs: { mkfontdir = super.mkfontdir.overrideAttrs (attrs: {

View File

@ -98,7 +98,7 @@ rec {
++ depsTargetTarget ++ depsTargetTargetPropagated) == 0; ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || stdenv.cc == null; dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || stdenv.cc == null;
supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ]; supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
defaultHardeningFlags = if stdenv.targetPlatform.isMusl defaultHardeningFlags = if stdenv.hostPlatform.isMusl
then supportedHardeningFlags then supportedHardeningFlags
else lib.remove "pie" supportedHardeningFlags; else lib.remove "pie" supportedHardeningFlags;
enabledHardeningOptions = enabledHardeningOptions =

View File

@ -1,12 +1,11 @@
{ pkgs, pkgsCross, lib }: { pkgs, lib }:
let let
emulators = { testedSystems = lib.filterAttrs (name: value: let
mingw32 = "WINEDEBUG=-all ${pkgs.winePackages.minimal}/bin/wine"; platform = lib.systems.elaborate value;
mingwW64 = "WINEDEBUG=-all ${pkgs.wineWowPackages.minimal}/bin/wine"; in platform.isLinux || platform.isWindows
# TODO: add some qemu-based emulaltors here ) lib.systems.examples;
};
getExecutable = pkgs: pkgFun: exec: getExecutable = pkgs: pkgFun: exec:
"${pkgFun pkgs}${exec}${pkgs.hostPlatform.extensions.executable}"; "${pkgFun pkgs}${exec}${pkgs.hostPlatform.extensions.executable}";
@ -17,6 +16,10 @@ let
in pkgs.runCommand "test-${pkgName}-${crossPkgs.hostPlatform.config}" { in pkgs.runCommand "test-${pkgName}-${crossPkgs.hostPlatform.config}" {
nativeBuildInputs = [ pkgs.dos2unix ]; nativeBuildInputs = [ pkgs.dos2unix ];
} '' } ''
# Just in case we are using wine, get rid of that annoying extra
# stuff.
export WINEDEBUG=-all
HOME=$(pwd) HOME=$(pwd)
mkdir -p $out mkdir -p $out
@ -44,10 +47,13 @@ let
fi fi
''; '';
in mapMultiPlatformTest = test: lib.mapAttrs (name: system: test rec {
crossPkgs = import pkgs.path {
localSystem = { inherit (pkgs.hostPlatform) config; };
crossSystem = system;
};
lib.mapAttrs (name: emulator: let emulator = crossPkgs.hostPlatform.emulator pkgs;
crossPkgs = pkgsCross.${name};
# Apply some transformation on windows to get dlls in the right # Apply some transformation on windows to get dlls in the right
# place. Unfortunately mingw doesnt seem to be able to do linking # place. Unfortunately mingw doesnt seem to be able to do linking
@ -57,16 +63,13 @@ lib.mapAttrs (name: emulator: let
name = "${pkg.name}-winlinks"; name = "${pkg.name}-winlinks";
paths = [pkg] ++ pkg.buildInputs; paths = [pkg] ++ pkg.buildInputs;
} else pkg; } else pkg;
in { }) testedSystems;
hello = compareTest { in
inherit emulator crossPkgs;
hostPkgs = pkgs;
exec = "/bin/hello";
pkgFun = pkgs: pkgs.hello;
};
file = compareTest { lib.mapAttrs (_: mapMultiPlatformTest) {
file = {platformFun, crossPkgs, emulator}: compareTest {
inherit emulator crossPkgs; inherit emulator crossPkgs;
hostPkgs = pkgs; hostPkgs = pkgs;
exec = "/bin/file"; exec = "/bin/file";
@ -77,4 +80,11 @@ in {
pkgFun = pkgs: platformFun pkgs.file; pkgFun = pkgs: platformFun pkgs.file;
}; };
}) emulators hello = {platformFun, crossPkgs, emulator}: compareTest {
inherit emulator crossPkgs;
hostPkgs = pkgs;
exec = "/bin/hello";
pkgFun = pkgs: pkgs.hello;
};
}

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, imake, libX11, libXtst, libXext}: { stdenv, fetchurl, imake, libX11, libXtst, libXext, gccmakedep }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "x2x-1.27"; name = "x2x-1.27";
@ -8,20 +8,16 @@ stdenv.mkDerivation {
sha256 = "0dha0kn1lbc4as0wixsvk6bn4innv49z9a0sm5wlx4q1v0vzqzyj"; sha256 = "0dha0kn1lbc4as0wixsvk6bn4innv49z9a0sm5wlx4q1v0vzqzyj";
}; };
buildInputs = [ imake libX11 libXtst libXext ]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ libX11 libXtst libXext ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
configurePhase = '' buildFlags = [ "x2x" ];
xmkmf
makeFlags="BINDIR=$out/bin x2x"
'';
installPhase = '' installPhase = ''
mkdir -p $out/bin install -D x2x $out/bin/x2x
mkdir -p $out/man/man1 install -D x2x.1 $out/man/man1/x2x.1
cp x2x $out/bin/
cp x2x.1 $out/man/man1/
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, xorg }: { stdenv, fetchurl, imake, gccmakedep
, libX11, libXaw, libXext, libXmu, libXpm, libXxf86vm }:
stdenv.mkDerivation { stdenv.mkDerivation {
@ -8,22 +9,11 @@ stdenv.mkDerivation {
sha256 = "2564dbd393544657cdabe4cbf535d9cfb9abe8edddb1b8cdb1ed4d12f358626e"; sha256 = "2564dbd393544657cdabe4cbf535d9cfb9abe8edddb1b8cdb1ed4d12f358626e";
}; };
buildInputs = [ nativeBuildInputs = [ imake gccmakedep ];
xorg.imake buildInputs = [ libX11 libXaw libXext libXmu libXpm libXxf86vm ];
xorg.libX11
xorg.libXaw
xorg.libXext
xorg.libXmu
xorg.libXpm
xorg.libXxf86vm
];
configurePhase = "xmkmf"; makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
installTargets = "install install.man";
installPhase = ''
make install BINDIR=$out/bin
make install.man MANPATH=$out/share/man
'';
meta = { meta = {
description = "X11 brigthness and gamma software control"; description = "X11 brigthness and gamma software control";

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, imake, libXt, libXaw, libXtst, libXi, libXpm, xextproto, gccmakedep, Xaw3d }: { stdenv, fetchurl, imake, libXt, libXaw, libXtst
, libXi, libXpm, xextproto, gccmakedep, Xaw3d }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xvkbd-${version}"; name = "xvkbd-${version}";
@ -8,12 +9,14 @@ stdenv.mkDerivation rec {
sha256 = "17csj6x5zm3g67izfwhagkal1rbqzpw09lqmmlyrjy3vzgfkf75q"; sha256 = "17csj6x5zm3g67izfwhagkal1rbqzpw09lqmmlyrjy3vzgfkf75q";
}; };
buildInputs = [ imake libXt libXaw libXtst xextproto libXi Xaw3d libXpm gccmakedep ]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ libXt libXaw libXtst xextproto libXi Xaw3d libXpm ];
installTargets = [ "install" "install.man" ]; installTargets = [ "install" "install.man" ];
preBuild = '' makeFlags = [
makeFlagsArray=( BINDIR=$out/bin XAPPLOADDIR=$out/etc/X11/app-defaults MANPATH=$out/man ) "BINDIR=$(out)/bin"
''; "XAPPLOADDIR=$(out)/etc/X11/app-defaults"
configurePhase = '' xmkmf -a ''; "MANPATH=$(out)/man"
];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Virtual keyboard for X window system"; description = "Virtual keyboard for X window system";

View File

@ -1,4 +1,5 @@
{stdenv, fetchurl, libX11, imake, libXext, libXt}: { stdenv, fetchurl, libX11, libXext, libXt, imake, gccmakedep}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}.${patchlevel}"; name = "${pname}-${version}.${patchlevel}";
pname = "xzoom"; pname = "xzoom";
@ -16,12 +17,16 @@ stdenv.mkDerivation rec {
sha256 = "0zhc06whbvaz987bzzzi2bz6h9jp6rv812qs7b71drivvd820qbh"; sha256 = "0zhc06whbvaz987bzzzi2bz6h9jp6rv812qs7b71drivvd820qbh";
}) })
]; ];
buildInputs = [libX11 imake libXext libXt];
configurePhase = '' nativeBuildInputs = [ imake gccmakedep ];
xmkmf buildInputs = [ libX11 libXext libXt ];
makeFlags="$makeFlags PREFIX=$out BINDIR=$out/bin MANPATH=$out/share/man"
''; makeFlags = [
"PREFIX=$(out)"
"BINDIR=$(out)/bin"
"MANPATH=$(out)/share/man"
];
installTargets = "install install.man";
meta = { meta = {
inherit version; inherit version;

View File

@ -10,15 +10,14 @@ stdenv.mkDerivation {
}; };
# for the builder script # for the builder script
inherit xauth fontDirectories perl; inherit fontDirectories;
gcc = stdenv.cc.cc;
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
buildInputs = [ xlibsWrapper zlib libjpeg imake gccmakedep libXmu libXaw buildInputs = [ xlibsWrapper zlib libjpeg imake gccmakedep libXmu libXaw
libXpm libXp xauth openssh ]; libXpm libXp xauth openssh ];
patchPhase = '' postPatch = ''
fontPath= fontPath=
for i in $fontDirectories; do for i in $fontDirectories; do
for j in $(find $i -name fonts.dir); do for j in $(find $i -name fonts.dir); do
@ -27,37 +26,38 @@ stdenv.mkDerivation {
done done
sed -i "s@/usr/bin/ssh@${openssh}/bin/ssh@g" vncviewer/vncviewer.h sed -i "s@/usr/bin/ssh@${openssh}/bin/ssh@g" vncviewer/vncviewer.h
'';
buildPhase = ''
xmkmf
make World
sed -e 's@/usr/bin/perl@${perl}/bin/perl@' \ sed -e 's@/usr/bin/perl@${perl}/bin/perl@' \
-e 's@unix/:7100@'$fontPath'@' \ -e 's@unix/:7100@'$fontPath'@' \
-i vncserver -i vncserver
cd Xvnc sed -e 's@.* CppCmd .*@#define CppCmd cpp@' -i Xvnc/config/cf/linux.cf
sed -e 's@.* CppCmd .*@#define CppCmd '$gcc'/bin/cpp@' -i config/cf/linux.cf sed -e 's@.* CppCmd .*@#define CppCmd cpp@' -i Xvnc/config/cf/Imake.tmpl
sed -e 's@.* CppCmd .*@#define CppCmd '$gcc'/bin/cpp@' -i config/cf/Imake.tmpl
sed -i \ sed -i \
-e 's@"uname","xauth","Xvnc","vncpasswd"@"uname","Xvnc","vncpasswd"@g' \ -e 's@"uname","xauth","Xvnc","vncpasswd"@"uname","Xvnc","vncpasswd"@g' \
-e "s@\<xauth\>@${xauth}/bin/xauth@g" \ -e "s@\<xauth\>@${xauth}/bin/xauth@g" \
../vncserver vncserver
./configure '';
make
cd .. preInstall = ''
mkdir -p $out/bin
mkdir -p $out/share/man/man1
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin runHook preInstall
mkdir -p $out/share/man/man1
./vncinstall $out/bin $out/share/man ./vncinstall $out/bin $out/share/man
runHook postInstall
'';
postInstall = ''
# fix HTTP client: # fix HTTP client:
t=$out/share/tightvnc mkdir -p $out/share/tightvnc
mkdir -p $t cp -r classes $out/share/tightvnc
sed -i "s@/usr/local/vnc/classes@$out/vnc/classes@g" $out/bin/vncserver substituteInPlace $out/bin/vncserver \
cp -r classes $t --replace /usr/local/vnc/classes $out/share/tightvnc/classes
''; '';
meta = { meta = {

View File

@ -0,0 +1,10 @@
--- jfsutils-1.1.15/configure.in.orig 2018-11-27 20:46:55.830242385 +0300
+++ jfsutils-1.1.15/configure.in 2018-11-27 20:47:00.596307630 +0300
@@ -15,6 +15,7 @@
AC_PATH_PROG(LN, ln, ln)
AC_PROG_LN_S
AC_PROG_RANLIB
+AM_PROG_AR
dnl Checks for header files.
AC_HEADER_STDC

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, libuuid }: { stdenv, fetchurl, libuuid, autoreconfHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jfsutils-1.1.15"; name = "jfsutils-1.1.15";
@ -8,8 +8,14 @@ stdenv.mkDerivation rec {
sha256 = "0kbsy2sk1jv4m82rxyl25gwrlkzvl3hzdga9gshkxkhm83v1aji4"; sha256 = "0kbsy2sk1jv4m82rxyl25gwrlkzvl3hzdga9gshkxkhm83v1aji4";
}; };
patches = [ ./types.patch ./hardening-format.patch ]; patches = [
./types.patch
./hardening-format.patch
# required for cross-compilation
./ar-fix.patch
];
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ libuuid ]; buildInputs = [ libuuid ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, libuuid }: { stdenv, fetchurl, libuuid, autoreconfHook }:
let version = "3.6.24"; in let version = "3.6.24"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "0q07df9wxxih8714a3mdp61h5n347l7j2a0l351acs3xapzgwi3y"; sha256 = "0q07df9wxxih8714a3mdp61h5n347l7j2a0l351acs3xapzgwi3y";
}; };
patches = [ ./reiserfsprogs-ar-fix.patch ];
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ libuuid ]; buildInputs = [ libuuid ];
NIX_CFLAGS_COMPILE = "-std=gnu90"; NIX_CFLAGS_COMPILE = "-std=gnu90";

View File

@ -0,0 +1,10 @@
--- reiserfsprogs-3.6.24/configure.ac.orig 2018-11-29 17:16:52.313624894 +0300
+++ reiserfsprogs-3.6.24/configure.ac 2018-11-29 17:16:54.480669132 +0300
@@ -21,6 +21,7 @@
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
+AM_PROG_AR
dnl Checks for libraries.

View File

@ -0,0 +1,25 @@
{ stdenv, fetchFromGitHub, cmake, freeimage }:
stdenv.mkDerivation rec {
pname = "perceptualdiff";
name = "${pname}-${version}";
version = "2.1";
src = fetchFromGitHub {
owner = "myint";
repo = pname;
rev = "v${version}";
sha256 = "176n518xv0pczf1yyz9r5a8zw5r6sh5ym596kmvw30qznp8n4a8j";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ freeimage ];
meta = with stdenv.lib; {
description = "A program that compares two images using a perceptually based image metric";
homepage = "https://github.com/myint/perceptualdiff";
license = licenses.gpl2;
maintainers = with maintainers; [ uri-canva ];
platforms = platforms.x86;
};
}

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, zlib, libjpeg, libpng, imake}: { stdenv, fetchurl, zlib, libjpeg, libpng, imake, gccmakedep }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "transfig-3.2.4"; name = "transfig-3.2.4";
@ -7,7 +7,8 @@ stdenv.mkDerivation rec {
sha256 = "0429snhp5acbz61pvblwlrwv8nxr6gf12p37f9xxwrkqv4ir7dd4"; sha256 = "0429snhp5acbz61pvblwlrwv8nxr6gf12p37f9xxwrkqv4ir7dd4";
}; };
buildInputs = [zlib libjpeg libpng imake]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ zlib libjpeg libpng ];
patches = [ patches = [
./patch-fig2dev-dev-Imakefile ./patch-fig2dev-dev-Imakefile
@ -45,12 +46,7 @@ stdenv.mkDerivation rec {
runHook postPatch runHook postPatch
''; '';
preBuild = '' makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
xmkmf
make Makefiles
'';
makeFlags = [ "CC=cc" ];
preInstall = '' preInstall = ''
mkdir -p $out mkdir -p $out

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, premake5, ninja }: { stdenv, fetchFromGitHub, premake5 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "otfcc-${version}"; name = "otfcc-${version}";
@ -11,15 +11,15 @@ stdenv.mkDerivation rec {
sha256 = "1rnjfqqyc6d9nhlh8if9k37wk94mcwz4wf3k239v6idg48nrk10b"; sha256 = "1rnjfqqyc6d9nhlh8if9k37wk94mcwz4wf3k239v6idg48nrk10b";
}; };
nativeBuildInputs = [ premake5 ninja ]; nativeBuildInputs = [ premake5 ];
configurePhase = '' # Dont guess where our makefiles will end up. Just use current
premake5 ninja # directory.
patchPhase = ''
substituteInPlace premake5.lua \
--replace 'location "build/gmake"' 'location "."'
''; '';
ninjaFlags = let x = if stdenv.hostPlatform.isi686 then "x86" else "x64"; in
[ "-C" "build/ninja" "otfccdump_release_${x}" "otfccbuild_release_${x}" ];
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp bin/release-x*/otfcc* $out/bin/ cp bin/release-x*/otfcc* $out/bin/

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, xlibsWrapper, imake }: { stdenv, fetchurl, xlibsWrapper, imake, gccmakedep }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "x11-ssh-askpass-1.2.4.1"; name = "x11-ssh-askpass-1.2.4.1";
@ -10,16 +10,16 @@ stdenv.mkDerivation {
sha256 = "620de3c32ae72185a2c9aeaec03af24242b9621964e38eb625afb6cdb30b8c88"; sha256 = "620de3c32ae72185a2c9aeaec03af24242b9621964e38eb625afb6cdb30b8c88";
}; };
nativeBuildInputs = [ imake ]; nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ xlibsWrapper ]; buildInputs = [ xlibsWrapper ];
configureFlags = [ configureFlags = [
"--with-app-defaults-dir=$out/etc/X11/app-defaults" "--with-app-defaults-dir=$out/etc/X11/app-defaults"
]; ];
preBuild = '' dontUseImakeConfigure = true;
xmkmf postConfigure = ''
make includes xmkmf -a
''; '';
installTargets = [ "install" "install.man" ]; installTargets = [ "install" "install.man" ];

View File

@ -12,16 +12,17 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
nativeBuildInputs = [ imake gccmakedep ];
buildInputs = [ buildInputs = [
libX11 xproto imake gccmakedep libXt libXmu libXaw libX11 xproto libXt libXmu libXaw
libXext xextproto libSM libICE libXpm libXp libXext xextproto libSM libICE libXpm libXp
]; ];
buildPhase = ''xmkmf && make World''; makeFlags = [
"BINDIR=${placeholder "out"}/bin"
installPhase = '' "MANDIR=${placeholder "out"}/share/man"
make DESTDIR=$out BINDIR=/bin MANDIR=/share/man/man1 install install.man ];
''; installTargets = "install install.man";
meta = { meta = {
description = "VNC recorder"; description = "VNC recorder";

Some files were not shown because too many files have changed in this diff Show More