Merge staging into staging-next

This commit is contained in:
Frederik Rietdijk 2018-08-25 07:37:46 +02:00
commit 6d35919fcb
403 changed files with 7327 additions and 3379 deletions

View File

@ -43,7 +43,7 @@ See the nixpkgs manual for more details on [standard meta-attributes](https://ni
## Writing good commit messages ## Writing good commit messages
In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand *why* a change was made. While this information usually can be found by digging code, mailing list archives, pull request discussions or upstream changes, it may require a lot of work. In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand *why* a change was made. While this information usually can be found by digging code, mailing list/Discourse archives, pull request discussions or upstream changes, it may require a lot of work.
For package version upgrades and such a one-line commit message is usually sufficient. For package version upgrades and such a one-line commit message is usually sufficient.

View File

@ -38,5 +38,4 @@ For pull-requests, please rebase onto nixpkgs `master`.
Communication: Communication:
* [Discourse Forum](https://discourse.nixos.org/) * [Discourse Forum](https://discourse.nixos.org/)
* [Mailing list](https://groups.google.com/forum/#!forum/nix-devel)
* [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos) * [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos)

View File

@ -605,10 +605,11 @@ policy.
--> -->
<para> <para>
In a case a contributor leaves definitively the Nix community, he should In a case a contributor leaves definitively the Nix community, he
create an issue or notify the mailing list with references of packages and should create an issue or post on <link
modules he maintains so the maintainership can be taken over by other xlink:href="https://discourse.nixos.org">Discourse</link> with
contributors. references of packages and modules he maintains so the
maintainership can be taken over by other contributors.
</para> </para>
</section> </section>
</chapter> </chapter>

View File

@ -195,9 +195,10 @@ rec {
let self = f self // { let self = f self // {
newScope = scope: newScope (self // scope); newScope = scope: newScope (self // scope);
callPackage = self.newScope {}; callPackage = self.newScope {};
# TODO(@Ericson2314): Haromonize argument order of `g` with everything else
overrideScope = g: overrideScope = g:
makeScope newScope makeScope newScope
(self_: let super = f self_; in super // g super self_); (lib.fixedPoints.extends (lib.flip g) f);
packages = f; packages = f;
}; };
in self; in self;

View File

@ -80,7 +80,7 @@ let
inherit (strings) concatStrings concatMapStrings concatImapStrings inherit (strings) concatStrings concatMapStrings concatImapStrings
intersperse concatStringsSep concatMapStringsSep intersperse concatStringsSep concatMapStringsSep
concatImapStringsSep makeSearchPath makeSearchPathOutput concatImapStringsSep makeSearchPath makeSearchPathOutput
makeLibraryPath makeBinPath makePerlPath optionalString makeLibraryPath makeBinPath makePerlPath makeFullPerlPath optionalString
hasPrefix hasSuffix stringToCharacters stringAsChars escape hasPrefix hasSuffix stringToCharacters stringAsChars escape
escapeShellArg escapeShellArgs replaceChars lowerChars escapeShellArg escapeShellArgs replaceChars lowerChars
upperChars toLower toUpper addContextFrom splitString upperChars toLower toUpper addContextFrom splitString

View File

@ -126,6 +126,15 @@ rec {
*/ */
makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl"; makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl";
/* Construct a perl search path recursively including all dependencies (such as $PERL5LIB)
Example:
pkgs = import <nixpkgs> { }
makeFullPerlPath [ pkgs.perlPackages.CGI ]
=> "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl"
*/
makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps);
/* Depending on the boolean `cond', return either the given string /* Depending on the boolean `cond', return either the given string
or the empty string. Useful to concatenate against a bigger string. or the empty string. Useful to concatenate against a bigger string.

View File

@ -44,5 +44,5 @@ in rec {
openbsd = filterDoubles predicates.isOpenBSD; openbsd = filterDoubles predicates.isOpenBSD;
unix = filterDoubles predicates.isUnix; unix = filterDoubles predicates.isUnix;
mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux"]; mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "powerpc64le-linux"];
} }

View File

@ -8,6 +8,14 @@ rec {
# #
# Linux # Linux
# #
powernv = {
config = "powerpc64le-unknown-linux-gnu";
platform = platforms.powernv;
};
musl-power = {
config = "powerpc64le-unknown-linux-musl";
platform = platforms.powernv;
};
sheevaplug = rec { sheevaplug = rec {
config = "armv5tel-unknown-linux-gnueabi"; config = "armv5tel-unknown-linux-gnueabi";

View File

@ -11,6 +11,7 @@ rec {
isi686 = { cpu = cpuTypes.i686; }; isi686 = { cpu = cpuTypes.i686; };
isx86_64 = { cpu = cpuTypes.x86_64; }; isx86_64 = { cpu = cpuTypes.x86_64; };
isPowerPC = { cpu = cpuTypes.powerpc; }; isPowerPC = { cpu = cpuTypes.powerpc; };
isPower = { cpu = { family = "power"; }; };
isx86 = { cpu = { family = "x86"; }; }; isx86 = { cpu = { family = "x86"; }; };
isAarch32 = { cpu = { family = "arm"; bits = 32; }; }; isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
isAarch64 = { cpu = { family = "arm"; bits = 64; }; }; isAarch64 = { cpu = { family = "arm"; bits = 64; }; };

View File

@ -90,6 +90,8 @@ rec {
mips64el = { bits = 64; significantByte = littleEndian; family = "mips"; }; mips64el = { bits = 64; significantByte = littleEndian; family = "mips"; };
powerpc = { bits = 32; significantByte = bigEndian; family = "power"; }; powerpc = { bits = 32; significantByte = bigEndian; family = "power"; };
powerpc64 = { bits = 64; significantByte = bigEndian; family = "power"; };
powerpc64le = { bits = 64; significantByte = littleEndian; family = "power"; };
riscv32 = { bits = 32; significantByte = littleEndian; family = "riscv"; }; riscv32 = { bits = 32; significantByte = littleEndian; family = "riscv"; };
riscv64 = { bits = 64; significantByte = littleEndian; family = "riscv"; }; riscv64 = { bits = 64; significantByte = littleEndian; family = "riscv"; };

View File

@ -20,6 +20,22 @@ rec {
kernelAutoModules = false; kernelAutoModules = false;
}; };
powernv = {
name = "PowerNV";
kernelArch = "powerpc";
kernelBaseConfig = "powernv_defconfig";
kernelTarget = "zImage";
kernelInstallTarget = "install";
kernelFile = "vmlinux";
kernelAutoModules = true;
# avoid driver/FS trouble arising from unusual page size
kernelExtraConfig = ''
PPC_64K_PAGES n
PPC_4K_PAGES y
IPV6 y
'';
};
## ##
## ARM ## ARM
## ##
@ -458,5 +474,6 @@ rec {
"armv7l-linux" = armv7l-hf-multiplatform; "armv7l-linux" = armv7l-hf-multiplatform;
"aarch64-linux" = aarch64-multiplatform; "aarch64-linux" = aarch64-multiplatform;
"mipsel-linux" = fuloong2f_n32; "mipsel-linux" = fuloong2f_n32;
"powerpc64le-linux" = powernv;
}.${system} or pcBase; }.${system} or pcBase;
} }

View File

@ -673,6 +673,11 @@
github = "changlinli"; github = "changlinli";
name = "Changlin Li"; name = "Changlin Li";
}; };
CharlesHD = {
email = "charleshdespointes@gmail.com";
github = "CharlesHD";
name = "Charles Huyghues-Despointes";
};
chaoflow = { chaoflow = {
email = "flo@chaoflow.net"; email = "flo@chaoflow.net";
github = "chaoflow"; github = "chaoflow";
@ -1965,6 +1970,11 @@
github = "jpotier"; github = "jpotier";
name = "Martin Potier"; name = "Martin Potier";
}; };
jqueiroz = {
email = "nixos@johnjq.com";
github = "jqueiroz";
name = "Jonathan Queiroz";
};
jraygauthier = { jraygauthier = {
email = "jraygauthier@gmail.com"; email = "jraygauthier@gmail.com";
github = "jraygauthier"; github = "jraygauthier";
@ -3873,6 +3883,11 @@
github = "swarren83"; github = "swarren83";
name = "Shawn Warren"; name = "Shawn Warren";
}; };
swdunlop = {
email = "swdunlop@gmail.com";
github = "swdunlop";
name = "Scott W. Dunlop";
};
swflint = { swflint = {
email = "swflint@flintfam.org"; email = "swflint@flintfam.org";
github = "swflint"; github = "swflint";

View File

@ -326,10 +326,9 @@ Retype new UNIX password: ***
</screen> </screen>
<note> <note>
<para> <para>
To prevent the password prompt, set For unattended installations, it is possible to use
<code><xref linkend="opt-users.mutableUsers"/> = false;</code> in <command>nixos-install --no-root-passwd</command>
<filename>configuration.nix</filename>, which allows unattended in order to disable the password prompt entirely.
installation necessary in automation.
</para> </para>
</note> </note>
</para> </para>

View File

@ -17,8 +17,8 @@
<para> <para>
If you encounter problems, please report them on the If you encounter problems, please report them on the
<literal <literal
xlink:href="https://groups.google.com/forum/#!forum/nix-devel">nix-devel</literal> xlink:href="https://discourse.nixos.org">Discourse</literal>
mailing list or on the <link or on the <link
xlink:href="irc://irc.freenode.net/#nixos"> xlink:href="irc://irc.freenode.net/#nixos">
<literal>#nixos</literal> channel on Freenode</link>. Bugs should be <literal>#nixos</literal> channel on Freenode</link>. Bugs should be
reported in reported in

View File

@ -6,16 +6,19 @@
, storePaths , storePaths
, volumeLabel , volumeLabel
, uuid ? "44444444-4444-4444-8888-888888888888" , uuid ? "44444444-4444-4444-8888-888888888888"
, e2fsprogs
, libfaketime
, perl
}: }:
let let
sdClosureInfo = pkgs.closureInfo { rootPaths = storePaths; }; sdClosureInfo = pkgs.buildPackages.closureInfo { rootPaths = storePaths; };
in in
pkgs.stdenv.mkDerivation { pkgs.stdenv.mkDerivation {
name = "ext4-fs.img"; name = "ext4-fs.img";
nativeBuildInputs = with pkgs; [e2fsprogs.bin libfaketime perl]; nativeBuildInputs = [e2fsprogs.bin libfaketime perl];
buildCommand = buildCommand =
'' ''

View File

@ -524,6 +524,8 @@ in {
utmp.gid = ids.gids.utmp; utmp.gid = ids.gids.utmp;
adm.gid = ids.gids.adm; adm.gid = ids.gids.adm;
input.gid = ids.gids.input; input.gid = ids.gids.input;
kvm.gid = ids.gids.kvm;
render.gid = ids.gids.render;
}; };
system.activationScripts.users = stringAfter [ "stdio" ] system.activationScripts.users = stringAfter [ "stdio" ]

View File

@ -318,7 +318,7 @@ in
options = [ "allow_other" "cow" "nonempty" "chroot=/mnt-root" "max_files=32768" "hide_meta_files" "dirs=/nix/.rw-store=rw:/nix/.ro-store=ro" ]; options = [ "allow_other" "cow" "nonempty" "chroot=/mnt-root" "max_files=32768" "hide_meta_files" "dirs=/nix/.rw-store=rw:/nix/.ro-store=ro" ];
}; };
boot.initrd.availableKernelModules = [ "squashfs" "iso9660" "usb-storage" "uas" ]; boot.initrd.availableKernelModules = [ "squashfs" "iso9660" "uas" ];
boot.blacklistedKernelModules = [ "nouveau" ]; boot.blacklistedKernelModules = [ "nouveau" ];

View File

@ -12,13 +12,12 @@
with lib; with lib;
let let
rootfsImage = import ../../../lib/make-ext4-fs.nix { rootfsImage = pkgs.callPackage ../../../lib/make-ext4-fs.nix ({
inherit pkgs;
inherit (config.sdImage) storePaths; inherit (config.sdImage) storePaths;
volumeLabel = "NIXOS_SD"; volumeLabel = "NIXOS_SD";
} // optionalAttrs (config.sdImage.rootPartitionUUID != null) { } // optionalAttrs (config.sdImage.rootPartitionUUID != null) {
uuid = config.sdImage.rootPartitionUUID; uuid = config.sdImage.rootPartitionUUID;
}; });
in in
{ {
options.sdImage = { options.sdImage = {
@ -94,10 +93,10 @@ in
sdImage.storePaths = [ config.system.build.toplevel ]; sdImage.storePaths = [ config.system.build.toplevel ];
system.build.sdImage = pkgs.stdenv.mkDerivation { system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs, mtools, libfaketime, utillinux }: stdenv.mkDerivation {
name = config.sdImage.imageName; name = config.sdImage.imageName;
buildInputs = with pkgs; [ dosfstools e2fsprogs mtools libfaketime utillinux ]; nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime utillinux ];
buildCommand = '' buildCommand = ''
mkdir -p $out/nix-support $out/sd-image mkdir -p $out/nix-support $out/sd-image
@ -138,7 +137,7 @@ in
(cd boot; mcopy -bpsvm -i ../bootpart.img ./* ::) (cd boot; mcopy -bpsvm -i ../bootpart.img ./* ::)
dd conv=notrunc if=bootpart.img of=$img seek=$START count=$SECTORS dd conv=notrunc if=bootpart.img of=$img seek=$START count=$SECTORS
''; '';
}; }) {};
boot.postBootCommands = '' boot.postBootCommands = ''
# On the first boot do some maintenance tasks # On the first boot do some maintenance tasks

View File

@ -28,7 +28,6 @@ with lib;
++ (if pkgs.stdenv.system == "aarch64-linux" ++ (if pkgs.stdenv.system == "aarch64-linux"
then [] then []
else [ pkgs.grub2 pkgs.syslinux ]); else [ pkgs.grub2 pkgs.syslinux ]);
system.boot.loader.kernelFile = pkgs.stdenv.platform.kernelTarget;
fileSystems."/" = fileSystems."/" =
{ fsType = "tmpfs"; { fsType = "tmpfs";
@ -86,7 +85,7 @@ with lib;
system.build.netbootIpxeScript = pkgs.writeTextDir "netboot.ipxe" '' system.build.netbootIpxeScript = pkgs.writeTextDir "netboot.ipxe" ''
#!ipxe #!ipxe
kernel ${pkgs.stdenv.platform.kernelTarget} init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} kernel ${pkgs.stdenv.hostPlatform.platform.kernelTarget} init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
initrd initrd initrd initrd
boot boot
''; '';

View File

@ -326,6 +326,8 @@
cfssl = 299; cfssl = 299;
cassandra = 300; cassandra = 300;
qemu-libvirtd = 301; qemu-libvirtd = 301;
# kvm = 302; # unused
# render = 303; # unused
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -612,6 +614,8 @@
cfssl = 299; cfssl = 299;
cassandra = 300; cassandra = 300;
qemu-libvirtd = 301; qemu-libvirtd = 301;
kvm = 302; # default udev rules from systemd requires these
render = 303; # default udev rules from systemd requires these
# When adding a gid, make sure it doesn't match an existing # When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal # uid. Users and groups with the same name should have equal

View File

@ -281,6 +281,7 @@
./services/hardware/upower.nix ./services/hardware/upower.nix
./services/hardware/usbmuxd.nix ./services/hardware/usbmuxd.nix
./services/hardware/thermald.nix ./services/hardware/thermald.nix
./services/hardware/undervolt.nix
./services/logging/SystemdJournal2Gelf.nix ./services/logging/SystemdJournal2Gelf.nix
./services/logging/awstats.nix ./services/logging/awstats.nix
./services/logging/fluentd.nix ./services/logging/fluentd.nix

View File

@ -33,7 +33,7 @@
# USB support, especially for booting from USB CD-ROM # USB support, especially for booting from USB CD-ROM
# drives. # drives.
"usb_storage" "uas"
# Firewire support. Not tested. # Firewire support. Not tested.
"ohci1394" "sbp2" "ohci1394" "sbp2"

View File

@ -18,6 +18,16 @@ let
(boolFlag "secure" cfg.secure) (boolFlag "secure" cfg.secure)
(boolFlag "noupnp" cfg.noUPnP) (boolFlag "noupnp" cfg.noUPnP)
]; ];
stopScript = pkgs.writeScript "terraria-stop" ''
#!${pkgs.runtimeShell}
if ! [ -d "/proc/$1" ]; then
exit 0
fi
${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter exit Enter
${getBin pkgs.coreutils}/bin/tail --pid="$1" -f /dev/null
'';
in in
{ {
options = { options = {
@ -124,10 +134,10 @@ in
serviceConfig = { serviceConfig = {
User = "terraria"; User = "terraria";
Type = "oneshot"; Type = "forking";
RemainAfterExit = true; GuessMainPID = true;
ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}"; ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
ExecStop = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter \"exit\" Enter"; ExecStop = "${stopScript} $MAINPID";
}; };
postStart = '' postStart = ''

View File

@ -0,0 +1,134 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.undervolt;
in {
options.services.undervolt = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to undervolt intel cpus.
'';
};
verbose = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable verbose logging.
'';
};
package = mkOption {
type = types.package;
default = pkgs.undervolt;
defaultText = "pkgs.undervolt";
description = ''
undervolt derivation to use.
'';
};
coreOffset = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The amount of voltage to offset the CPU cores by. Accepts a floating point number.
'';
};
gpuOffset = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The amount of voltage to offset the GPU by. Accepts a floating point number.
'';
};
uncoreOffset = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The amount of voltage to offset uncore by. Accepts a floating point number.
'';
};
analogioOffset = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The amount of voltage to offset analogio by. Accepts a floating point number.
'';
};
temp = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The temperature target. Accepts a floating point number.
'';
};
tempAc = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The temperature target on AC power. Accepts a floating point number.
'';
};
tempBat = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The temperature target on battery power. Accepts a floating point number.
'';
};
};
config = mkIf cfg.enable {
boot.kernelModules = [ "msr" ];
environment.systemPackages = [ cfg.package ];
systemd.services.undervolt = {
path = [ pkgs.undervolt ];
description = "Intel Undervolting Service";
serviceConfig = {
Type = "oneshot";
Restart = "no";
# `core` and `cache` are both intentionally set to `cfg.coreOffset` as according to the undervolt docs:
#
# Core or Cache offsets have no effect. It is not possible to set different offsets for
# CPU Core and Cache. The CPU will take the smaller of the two offsets, and apply that to
# both CPU and Cache. A warning message will be displayed if you attempt to set different offsets.
ExecStart = ''
${pkgs.undervolt}/bin/undervolt \
${optionalString cfg.verbose "--verbose"} \
${optionalString (cfg.coreOffset != null) "--core ${cfg.coreOffset}"} \
${optionalString (cfg.coreOffset != null) "--cache ${cfg.coreOffset}"} \
${optionalString (cfg.gpuOffset != null) "--gpu ${cfg.gpuOffset}"} \
${optionalString (cfg.uncoreOffset != null) "--uncore ${cfg.uncoreOffset}"} \
${optionalString (cfg.analogioOffset != null) "--analogio ${cfg.analogioOffset}"} \
${optionalString (cfg.temp != null) "--temp ${cfg.temp}"} \
${optionalString (cfg.tempAc != null) "--temp-ac ${cfg.tempAc}"} \
${optionalString (cfg.tempBat != null) "--temp-bat ${cfg.tempBat}"}
'';
};
};
systemd.timers.undervolt = {
description = "Undervolt timer to ensure voltage settings are always applied";
partOf = [ "undervolt.service" ];
wantedBy = [ "multi-user.target" ];
timerConfig = {
OnBootSec = "2min";
OnUnitActiveSec = "30";
};
};
};
}

View File

@ -1,121 +1,124 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
# TODO: support non-postgresql
with lib; with lib;
let let
cfg = config.services.redmine; cfg = config.services.redmine;
ruby = pkgs.ruby; bundle = "${pkgs.redmine}/share/redmine/bin/bundle";
databaseYml = '' databaseYml = pkgs.writeText "database.yml" ''
production: production:
adapter: postgresql adapter: ${cfg.database.type}
database: ${cfg.databaseName} database: ${cfg.database.name}
host: ${cfg.databaseHost} host: ${cfg.database.host}
password: ${cfg.databasePassword} port: ${toString cfg.database.port}
username: ${cfg.databaseUsername} username: ${cfg.database.user}
encoding: utf8 password: #dbpass#
''; '';
configurationYml = '' configurationYml = pkgs.writeText "configuration.yml" ''
default: default:
# Absolute path to the directory where attachments are stored. scm_subversion_command: ${pkgs.subversion}/bin/svn
# The default is the 'files' directory in your Redmine instance. scm_mercurial_command: ${pkgs.mercurial}/bin/hg
# Your Redmine instance needs to have write permission on this scm_git_command: ${pkgs.gitAndTools.git}/bin/git
# directory. scm_cvs_command: ${pkgs.cvs}/bin/cvs
# Examples: scm_bazaar_command: ${pkgs.bazaar}/bin/bzr
# attachments_storage_path: /var/redmine/files scm_darcs_command: ${pkgs.darcs}/bin/darcs
# attachments_storage_path: D:/redmine/files
attachments_storage_path: ${cfg.stateDir}/files
# Absolute path to the SCM commands errors (stderr) log file.
# The default is to log in the 'log' directory of your Redmine instance.
# Example:
# scm_stderr_log_file: /var/log/redmine_scm_stderr.log
scm_stderr_log_file: ${cfg.stateDir}/redmine_scm_stderr.log
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
unpackTheme = unpack "theme"; in
unpackPlugin = unpack "plugin";
unpack = id: (name: source:
pkgs.stdenv.mkDerivation {
name = "redmine-${id}-${name}";
buildInputs = [ pkgs.unzip ];
buildCommand = ''
mkdir -p $out
cd $out
unpackFile ${source}
'';
});
in {
{
options = { options = {
services.redmine = { services.redmine = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = "Enable the Redmine service.";
Enable the redmine service. };
'';
user = mkOption {
type = types.str;
default = "redmine";
description = "User under which Redmine is ran.";
};
group = mkOption {
type = types.str;
default = "redmine";
description = "Group under which Redmine is ran.";
}; };
stateDir = mkOption { stateDir = mkOption {
type = types.str; type = types.str;
default = "/var/redmine"; default = "/var/lib/redmine";
description = "The state directory, logs and plugins are stored here"; description = "The state directory, logs and plugins are stored here.";
}; };
extraConfig = mkOption { extraConfig = mkOption {
type = types.lines; type = types.lines;
default = ""; default = "";
description = "Extra configuration in configuration.yml"; description = ''
Extra configuration in configuration.yml.
See https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
'';
}; };
themes = mkOption { database = {
type = types.attrsOf types.path; type = mkOption {
default = {}; type = types.enum [ "mysql2" "postgresql" ];
description = "Set of themes"; example = "postgresql";
default = "mysql2";
description = "Database engine to use.";
}; };
plugins = mkOption { host = mkOption {
type = types.attrsOf types.path;
default = {};
description = "Set of plugins";
};
#databaseType = mkOption {
# type = types.str;
# default = "postgresql";
# description = "Type of database";
#};
databaseHost = mkOption {
type = types.str; type = types.str;
default = "127.0.0.1"; default = "127.0.0.1";
description = "Database hostname"; description = "Database host address.";
}; };
databasePassword = mkOption { port = mkOption {
type = types.int;
default = 3306;
description = "Database host port.";
};
name = mkOption {
type = types.str;
default = "redmine";
description = "Database name.";
};
user = mkOption {
type = types.str;
default = "redmine";
description = "Database user.";
};
password = mkOption {
type = types.str; type = types.str;
default = ""; default = "";
description = "Database user password"; description = ''
The password corresponding to <option>database.user</option>.
Warning: this is stored in cleartext in the Nix store!
Use <option>database.passwordFile</option> instead.
'';
}; };
databaseName = mkOption { passwordFile = mkOption {
type = types.str; type = types.nullOr types.path;
default = "redmine"; default = null;
description = "Database name"; example = "/run/keys/redmine-dbpassword";
description = ''
A file containing the password corresponding to
<option>database.user</option>.
'';
}; };
databaseUsername = mkOption {
type = types.str;
default = "redmine";
description = "Database user";
}; };
}; };
}; };
@ -123,99 +126,106 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = [ assertions = [
{ assertion = cfg.databasePassword != ""; { assertion = cfg.database.passwordFile != null || cfg.database.password != "";
message = "services.redmine.databasePassword must be set"; message = "either services.redmine.database.passwordFile or services.redmine.database.password must be set";
} }
]; ];
users.users = [ environment.systemPackages = [ pkgs.redmine ];
{ name = "redmine";
group = "redmine";
uid = config.ids.uids.redmine;
} ];
users.groups = [
{ name = "redmine";
gid = config.ids.gids.redmine;
} ];
systemd.services.redmine = { systemd.services.redmine = {
after = [ "network.target" "postgresql.service" ]; after = [ "network.target" (if cfg.database.type == "mysql2" then "mysql.service" else "postgresql.service") ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
environment.RAILS_ENV = "production";
environment.RAILS_ETC = "${cfg.stateDir}/config";
environment.RAILS_LOG = "${cfg.stateDir}/log";
environment.RAILS_VAR = "${cfg.stateDir}/var";
environment.RAILS_CACHE = "${cfg.stateDir}/cache";
environment.RAILS_PLUGINS = "${cfg.stateDir}/plugins";
environment.RAILS_PUBLIC = "${cfg.stateDir}/public";
environment.RAILS_TMP = "${cfg.stateDir}/tmp";
environment.SCHEMA = "${cfg.stateDir}/cache/schema.db";
environment.HOME = "${pkgs.redmine}/share/redmine"; environment.HOME = "${pkgs.redmine}/share/redmine";
environment.RAILS_ENV = "production";
environment.RAILS_CACHE = "${cfg.stateDir}/cache";
environment.REDMINE_LANG = "en"; environment.REDMINE_LANG = "en";
environment.GEM_HOME = "${pkgs.redmine}/share/redmine/vendor/bundle/ruby/1.9.1"; environment.SCHEMA = "${cfg.stateDir}/cache/schema.db";
environment.GEM_PATH = "${pkgs.bundler}/${pkgs.bundler.ruby.gemPath}";
path = with pkgs; [ path = with pkgs; [
imagemagickBig imagemagickBig
subversion
mercurial
cvs
config.services.postgresql.package
bazaar bazaar
cvs
darcs
gitAndTools.git gitAndTools.git
# once we build binaries for darc enable it mercurial
#darcs subversion
]; ];
preStart = '' preStart = ''
# TODO: use env vars # start with a fresh config directory every time
for i in plugins public/plugin_assets db files log config cache var/files tmp; do rm -rf ${cfg.stateDir}/config
cp -r ${pkgs.redmine}/share/redmine/config.dist ${cfg.stateDir}/config
# create the basic state directory layout pkgs.redmine expects
mkdir -p /run/redmine
for i in config files log plugins tmp; do
mkdir -p ${cfg.stateDir}/$i mkdir -p ${cfg.stateDir}/$i
ln -fs ${cfg.stateDir}/$i /run/redmine/$i
done done
chown -R redmine:redmine ${cfg.stateDir} # ensure cache directory exists for db:migrate command
chmod -R 755 ${cfg.stateDir} mkdir -p ${cfg.stateDir}/cache
rm -rf ${cfg.stateDir}/public/* # link in the application configuration
cp -R ${pkgs.redmine}/share/redmine/public/* ${cfg.stateDir}/public/ ln -fs ${configurationYml} ${cfg.stateDir}/config/configuration.yml
for theme in ${concatStringsSep " " (mapAttrsToList unpackTheme cfg.themes)}; do
ln -fs $theme/* ${cfg.stateDir}/public/themes/
done
rm -rf ${cfg.stateDir}/plugins/* chmod -R ug+rwX,o-rwx+x ${cfg.stateDir}/
for plugin in ${concatStringsSep " " (mapAttrsToList unpackPlugin cfg.plugins)}; do
ln -fs $plugin/* ${cfg.stateDir}/plugins/''${plugin##*-redmine-plugin-}
done
ln -fs ${pkgs.writeText "database.yml" databaseYml} ${cfg.stateDir}/config/database.yml # handle database.passwordFile
ln -fs ${pkgs.writeText "configuration.yml" configurationYml} ${cfg.stateDir}/config/configuration.yml DBPASS=$(head -n1 ${cfg.database.passwordFile})
cp -f ${databaseYml} ${cfg.stateDir}/config/database.yml
sed -e "s,#dbpass#,$DBPASS,g" -i ${cfg.stateDir}/config/database.yml
chmod 440 ${cfg.stateDir}/config/database.yml
if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then # generate a secret token if required
if ! test -e "${cfg.stateDir}/db-created"; then if ! test -e "${cfg.stateDir}/config/initializers/secret_token.rb"; then
psql postgres -c "CREATE ROLE redmine WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${cfg.databasePassword}'" ${bundle} exec rake generate_secret_token
${config.services.postgresql.package}/bin/createdb --owner redmine redmine || true chmod 440 ${cfg.stateDir}/config/initializers/secret_token.rb
touch "${cfg.stateDir}/db-created"
fi
fi fi
cd ${pkgs.redmine}/share/redmine/ # ensure everything is owned by ${cfg.user}
${ruby}/bin/rake db:migrate chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir}
${ruby}/bin/rake redmine:plugins:migrate
${ruby}/bin/rake redmine:load_default_data ${bundle} exec rake db:migrate
${ruby}/bin/rake generate_secret_token ${bundle} exec rake redmine:load_default_data
''; '';
serviceConfig = { serviceConfig = {
PermissionsStartOnly = true; # preStart must be run as root PermissionsStartOnly = true; # preStart must be run as root
Type = "simple"; Type = "simple";
User = "redmine"; User = cfg.user;
Group = "redmine"; Group = cfg.group;
TimeoutSec = "300"; TimeoutSec = "300";
WorkingDirectory = "${pkgs.redmine}/share/redmine"; WorkingDirectory = "${pkgs.redmine}/share/redmine";
ExecStart="${ruby}/bin/ruby ${pkgs.redmine}/share/redmine/script/rails server webrick -e production -P ${cfg.stateDir}/redmine.pid"; ExecStart="${bundle} exec rails server webrick -e production -P ${cfg.stateDir}/redmine.pid";
}; };
}; };
users.extraUsers = optionalAttrs (cfg.user == "redmine") (singleton
{ name = "redmine";
group = cfg.group;
home = cfg.stateDir;
createHome = true;
uid = config.ids.uids.redmine;
});
users.extraGroups = optionalAttrs (cfg.group == "redmine") (singleton
{ name = "redmine";
gid = config.ids.gids.redmine;
});
warnings = optional (cfg.database.password != "")
''config.services.redmine.database.password will be stored as plaintext
in the Nix store. Use database.passwordFile instead.'';
# Create database passwordFile default when password is configured.
services.redmine.database.passwordFile =
(mkDefault (toString (pkgs.writeTextFile {
name = "redmine-database-password";
text = cfg.database.password;
})));
}; };
} }

View File

@ -11,7 +11,7 @@ let
api_key = ""; api_key = "";
confd_path = "/etc/datadog-agent/conf.d"; confd_path = "/etc/datadog-agent/conf.d";
additional_checksd = "/etc/datadog-agent/checks.d"; additional_checksd = "/etc/datadog-agent/checks.d";
use_dogstatsd = "yes"; use_dogstatsd = true;
} }
// optionalAttrs (cfg.logLevel != null) { log_level = cfg.logLevel; } // optionalAttrs (cfg.logLevel != null) { log_level = cfg.logLevel; }
// optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; } // optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; }

View File

@ -161,8 +161,9 @@ in
{ description = "DHCP Client"; { description = "DHCP Client";
wantedBy = [ "multi-user.target" ] ++ optional (!hasDefaultGatewaySet) "network-online.target"; wantedBy = [ "multi-user.target" ] ++ optional (!hasDefaultGatewaySet) "network-online.target";
wants = [ "network.target" ]; wants = [ "network.target" "systemd-udev-settle.service" ];
before = [ "network.target" ]; before = [ "network.target" ];
after = [ "systemd-udev-settle.service" ];
# Stopping dhcpcd during a reconfiguration is undesirable # Stopping dhcpcd during a reconfiguration is undesirable
# because it brings down the network interfaces configured by # because it brings down the network interfaces configured by

View File

@ -146,7 +146,7 @@ in {
}; };
}; };
config = { config = mkIf cfg.enable {
users.extraGroups.cfssl = { users.extraGroups.cfssl = {
gid = config.ids.gids.cfssl; gid = config.ids.gids.cfssl;
}; };
@ -159,7 +159,7 @@ in {
uid = config.ids.uids.cfssl; uid = config.ids.uids.cfssl;
}; };
systemd.services.cfssl = mkIf cfg.enable { systemd.services.cfssl = {
description = "CFSSL CA API server"; description = "CFSSL CA API server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; after = [ "network.target" ];

View File

@ -46,7 +46,7 @@ let
ln -s ${kernelPath} $out/kernel ln -s ${kernelPath} $out/kernel
ln -s ${config.system.modulesTree} $out/kernel-modules ln -s ${config.system.modulesTree} $out/kernel-modules
${optionalString (pkgs.stdenv.platform.kernelDTB or false) '' ${optionalString (pkgs.stdenv.hostPlatform.platform.kernelDTB or false) ''
ln -s ${config.boot.kernelPackages.kernel}/dtbs $out/dtbs ln -s ${config.boot.kernelPackages.kernel}/dtbs $out/dtbs
''} ''}
@ -74,7 +74,7 @@ let
echo -n "$configurationName" > $out/configuration-name echo -n "$configurationName" > $out/configuration-name
echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version
echo -n "$nixosLabel" > $out/nixos-version echo -n "$nixosLabel" > $out/nixos-version
echo -n "$system" > $out/system echo -n "${pkgs.stdenv.hostPlatform.system}" > $out/system
mkdir $out/fine-tune mkdir $out/fine-tune
childCount=0 childCount=0
@ -175,7 +175,7 @@ in
system.boot.loader.kernelFile = mkOption { system.boot.loader.kernelFile = mkOption {
internal = true; internal = true;
default = pkgs.stdenv.platform.kernelTarget; default = pkgs.stdenv.hostPlatform.platform.kernelTarget;
type = types.str; type = types.str;
description = '' description = ''
Name of the kernel file to be passed to the bootloader. Name of the kernel file to be passed to the bootloader.

View File

@ -13,7 +13,7 @@ let
}; };
# Temporary check, for nixos to cope both with nixpkgs stdenv-updates and trunk # Temporary check, for nixos to cope both with nixpkgs stdenv-updates and trunk
platform = pkgs.stdenv.platform; inherit (pkgs.stdenv.hostPlatform) platform;
in in

View File

@ -15,7 +15,7 @@ let
inherit configTxt; inherit configTxt;
}; };
platform = pkgs.stdenv.platform; inherit (pkgs.stdenv.hostPlatform) platform;
builderUboot = import ./builder_uboot.nix { inherit config; inherit pkgs; inherit configTxt; }; builderUboot = import ./builder_uboot.nix { inherit config; inherit pkgs; inherit configTxt; };

View File

@ -30,10 +30,10 @@ let
(assertValueOneOf "UDPSegmentationOffload" boolValues) (assertValueOneOf "UDPSegmentationOffload" boolValues)
(assertValueOneOf "GenericReceiveOffload" boolValues) (assertValueOneOf "GenericReceiveOffload" boolValues)
(assertValueOneOf "LargeReceiveOffload" boolValues) (assertValueOneOf "LargeReceiveOffload" boolValues)
(range "RxChannels" 1 4294967295) (assertRange "RxChannels" 1 4294967295)
(range "TxChannels" 1 4294967295) (assertRange "TxChannels" 1 4294967295)
(range "OtherChannels" 1 4294967295) (assertRange "OtherChannels" 1 4294967295)
(range "CombinedChannels" 1 4294967295) (assertRange "CombinedChannels" 1 4294967295)
]; ];
checkNetdev = checkUnitConfig "Netdev" [ checkNetdev = checkUnitConfig "Netdev" [

View File

@ -83,7 +83,7 @@ let
in in
tarball // tarball //
{ meta = { { meta = {
description = "NixOS system tarball for ${system} - ${stdenv.platform.name}"; description = "NixOS system tarball for ${system} - ${stdenv.hostPlatform.platform.name}";
maintainers = map (x: lib.maintainers.${x}) maintainers; maintainers = map (x: lib.maintainers.${x}) maintainers;
}; };
inherit config; inherit config;
@ -106,7 +106,7 @@ let
let let
configEvaled = import lib/eval-config.nix config; configEvaled = import lib/eval-config.nix config;
build = configEvaled.config.system.build; build = configEvaled.config.system.build;
kernelTarget = configEvaled.pkgs.stdenv.platform.kernelTarget; kernelTarget = configEvaled.pkgs.stdenv.hostPlatform.platform.kernelTarget;
in in
pkgs.symlinkJoin { pkgs.symlinkJoin {
name = "netboot"; name = "netboot";

View File

@ -2,7 +2,8 @@ import ./make-test.nix ({ pkgs, ... }:
let let
configDir = "/var/lib/foobar"; configDir = "/var/lib/foobar";
apiPassword = "secret"; apiPassword = "some_secret";
mqttPassword = "another_secret";
in { in {
name = "home-assistant"; name = "home-assistant";
@ -33,7 +34,9 @@ in {
}; };
frontend = { }; frontend = { };
http.api_password = apiPassword; http.api_password = apiPassword;
mqtt = { }; # Use hbmqtt as broker mqtt = { # Use hbmqtt as broker
password = mqttPassword;
};
binary_sensor = [ binary_sensor = [
{ {
platform = "mqtt"; platform = "mqtt";
@ -62,7 +65,7 @@ in {
# Toggle a binary sensor using MQTT # Toggle a binary sensor using MQTT
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"off\"'"); $hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"off\"'");
$hass->waitUntilSucceeds("mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${apiPassword}' -m let_there_be_light"); $hass->waitUntilSucceeds("mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light");
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"on\"'"); $hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"on\"'");
# Print log to ease debugging # Print log to ease debugging

View File

@ -18,9 +18,6 @@ import ./make-test.nix ({ pkgs, ... }:
enable = true; enable = true;
logPerVirtualHost = true; logPerVirtualHost = true;
adminAddr="js@lastlog.de"; adminAddr="js@lastlog.de";
extraModules = [
{ name = "php7"; path = "${pkgs.php}/modules/libphp7.so"; }
];
virtualHosts = [ virtualHosts = [
{ {
@ -30,7 +27,7 @@ import ./make-test.nix ({ pkgs, ... }:
{ {
serviceType = "wordpress"; serviceType = "wordpress";
dbPassword = "wordpress"; dbPassword = "wordpress";
wordpressUploads = "/data/uploads"; dbHost = "127.0.0.1";
languages = [ "de_DE" "en_GB" ]; languages = [ "de_DE" "en_GB" ];
} }
]; ];

View File

@ -34,9 +34,10 @@ stdenv.mkDerivation rec {
cp ${gnu-config}/config.guess configure.guess cp ${gnu-config}/config.guess configure.guess
''; '';
meta = { meta = with stdenv.lib; {
homepage = https://xiph.org/paranoia; homepage = https://xiph.org/paranoia;
description = "A tool and library for reading digital audio from CDs"; description = "A tool and library for reading digital audio from CDs";
platforms = stdenv.lib.platforms.unix; license = with licenses; [ gpl2Plus lgpl21Plus ];
platforms = platforms.unix;
}; };
} }

View File

@ -2,13 +2,14 @@
, pkgconfig, premake3, xorg, ladspa-sdk }: , pkgconfig, premake3, xorg, ladspa-sdk }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "distrho-ports-unstable-2018-01-01"; name = "distrho-ports-${version}";
version = "2018-04-16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "DISTRHO"; owner = "DISTRHO";
repo = "DISTRHO-Ports"; repo = "DISTRHO-Ports";
rev = "b200e7409aa9f6612c4d948932f6ce6f0a087f5a"; rev = version;
sha256 = "0672r0a9s6skzkxpjdraziwh5k8ivrfzvi4zcpkcg3zrv2hia2vz"; sha256 = "0l4zwl4mli8jzch32a1fh7c88r9q17xnkxsdw17ds5hadnxlk12v";
}; };
patchPhase = '' patchPhase = ''
@ -46,6 +47,6 @@ stdenv.mkDerivation rec {
TAL-Vocoder-2 TheFunction ThePilgrim Vex Wolpertinger TAL-Vocoder-2 TheFunction ThePilgrim Vex Wolpertinger
''; '';
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux; platforms = [ "x86_64-linux" ];
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "drumkv1-${version}"; name = "drumkv1-${version}";
version = "0.9.0"; version = "0.9.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz"; url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "1vm8lrk3lykdic6fyfpl12jx1xg6rcaid242s8sij30p1ix4zdab"; sha256 = "1z9l43z91d01b9rzam2cj9qmmg6s5y65fjvb83ms4iaa1p0mnwrn";
}; };
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ]; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];

View File

@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
homepage = https://xiph.org/flac/; homepage = https://xiph.org/flac/;
description = "Library and tools for encoding and decoding the FLAC lossless audio file format"; description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
platforms = platforms.all; platforms = platforms.all;
maintainers = [ ]; license = licenses.bsd3;
}; };
} }

View File

@ -1,12 +1,9 @@
{ stdenv, fetchurl, readline, patchelf, ncurses, qt48, libidn, expat, flac { stdenv, fetchurl
, libvorbis }: , flac, expat, libidn, qtbase, qtwebkit, libvorbis }:
assert stdenv.system == "x86_64-linux";
assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
let
archUrl = name: arch: "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_${arch}.deb";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "beta_1.0.243.1116-r0"; # friendly to nix-env version sorting algo version = "beta_1.0.467.4929-r0"; # friendly to nix-env version sorting algo
product = "google-musicmanager"; product = "google-musicmanager";
name = "${product}-${version}"; name = "${product}-${version}";
@ -16,37 +13,58 @@ stdenv.mkDerivation rec {
# curl http://dl.google.com/linux/musicmanager/deb/dists/stable/main/binary-amd64/Packages # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/main/binary-amd64/Packages
# which will contain the links to all available *.debs for the arch. # which will contain the links to all available *.debs for the arch.
src = if stdenv.system == "x86_64-linux" src = fetchurl {
then fetchurl { url = "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_amd64.deb";
url = archUrl name "amd64"; sha256 = "0yaprpbp44var88kdj1h11fqkhgcklixr69jyia49v9m22529gg2";
sha256 = "54f97f449136e173492d36084f2c01244b84f02d6e223fb8a40661093e0bec7c";
}
else fetchurl {
url = archUrl name "i386";
sha256 = "121a7939015e2270afa3f1c73554102e2b4f2e6a31482ff7be5e7c28dd101d3c";
}; };
unpackPhase = '' unpackPhase = ''
ar vx ${src} ar vx ${src}
tar -xvf data.tar.lzma tar xvf data.tar.xz
tar xvf control.tar.gz
''; '';
buildInputs = [ patchelf ]; prePatch = ''
sed -i "s@\(Exec=\).*@\1$out/bin/google-musicmanager@" opt/google/musicmanager/google-musicmanager.desktop
buildPhase = ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$out/opt/google/musicmanager:${stdenv.lib.makeLibraryPath [ readline ncurses stdenv.cc.libc.out qt48 stdenv.cc.cc libidn expat flac libvorbis ]}" opt/google/musicmanager/MusicManager
''; '';
dontPatchELF = true;
dontStrip = true;
installPhase = '' installPhase = ''
mkdir -p "$out" mkdir -p $out/bin
cp -r opt "$out" mkdir -p $out/lib
mkdir "$out/bin" mkdir -p $out/share/applications
ln -s "$out/opt/google/musicmanager/google-musicmanager" "$out/bin"
cp -r opt $out
find -name "*.so*" -exec cp "{}" $out/lib \;
ln -s $out/opt/google/musicmanager/google-musicmanager $out/bin
ln -s $out/opt/google/musicmanager/google-musicmanager.desktop $out/share/applications
for i in 16 32 48 128
do
iconDirectory=$out/usr/share/icons/hicolor/"$i"x"$i"/apps
mkdir -p $iconDirectory
ln -s $out/opt/google/musicmanager/product_logo_"$i".png $iconDirectory/google-musicmanager.png
done
'';
postFixup = ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/minidump_upload):${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
$out/opt/google/musicmanager/minidump_upload
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/MusicManager):$out/lib:${stdenv.lib.makeLibraryPath [
flac
expat
libidn
qtbase
qtwebkit
libvorbis
stdenv.cc.cc.lib
]}" \
$out/opt/google/musicmanager/MusicManager
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2,7 +2,7 @@
, avahi, bluez, boost, eigen, fftw, glib, glib-networking , avahi, bluez, boost, eigen, fftw, glib, glib-networking
, glibmm, gsettings-desktop-schemas, gtkmm2, libjack2 , glibmm, gsettings-desktop-schemas, gtkmm2, libjack2
, ladspaH, libav, librdf, libsndfile, lilv, lv2, serd, sord, sratom , ladspaH, libav, librdf, libsndfile, lilv, lv2, serd, sord, sratom
, wrapGAppsHook, zita-convolver, zita-resampler , wrapGAppsHook, zita-convolver, zita-resampler, curl
, optimizationSupport ? false # Enable support for native CPU extensions , optimizationSupport ? false # Enable support for native CPU extensions
}: }:
@ -12,11 +12,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "guitarix-${version}"; name = "guitarix-${version}";
version = "0.37.1"; version = "0.37.3";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz"; url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
sha256 = "064k0jzxqgx9gwf8za6jziansabzrwzjaim3qx1743ify5g3gaai"; sha256 = "1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac";
}; };
nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ]; nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ];
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
avahi bluez boost eigen fftw glib glibmm glib-networking.out avahi bluez boost eigen fftw glib glibmm glib-networking.out
gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav librdf gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav librdf
libsndfile lilv lv2 serd sord sratom zita-convolver libsndfile lilv lv2 serd sord sratom zita-convolver
zita-resampler zita-resampler curl
]; ];
configureFlags = [ configureFlags = [

View File

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec { pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris"; pname = "Mopidy-Iris";
version = "3.23.2"; version = "3.24.0";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1zf4ck19z3nh1x9a847ay1qnkyvi6s6866kp6q6dh1xpn7i9rmx7"; sha256 = "19aympbkiil68j9jpvk1pgl4hplfs0vpc0d4vmzmpbcslkpirx2g";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "padthv1-${version}"; name = "padthv1-${version}";
version = "0.9.0"; version = "0.9.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/padthv1/${name}.tar.gz"; url = "mirror://sourceforge/padthv1/${name}.tar.gz";
sha256 = "0c519qk2g0dk8gqf9ywqfp7dnr4b25lsnxxbf2l1spnnvf8nysvh"; sha256 = "1alfl0l5qdll0w5lwhrwzj5dina1big1zmjg5imi9h06dzhz51xl";
}; };
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ]; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "praat-${version}"; name = "praat-${version}";
version = "6.0.40"; version = "6.0.42";
src = fetchurl { src = fetchurl {
url = "https://github.com/praat/praat/archive/v${version}.tar.gz"; url = "https://github.com/praat/praat/archive/v${version}.tar.gz";
sha256 = "168qrrr59qxii265vba7pj6f61lzq5lk9c43zcda0wmmjp87bq1x"; sha256 = "1llcj1cq4k60lnr6jkdshd4l9nkg9yc2xmaqiinqryxrb58jmpcv";
}; };
configurePhase = '' configurePhase = ''

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "samplv1-${version}"; name = "samplv1-${version}";
version = "0.9.0"; version = "0.9.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/samplv1/${name}.tar.gz"; url = "mirror://sourceforge/samplv1/${name}.tar.gz";
sha256 = "0g67vm9ilmq5nlvk0f3abia9pbinr4ck5v4mll6igni1rxz2n7wk"; sha256 = "0rfcp4v971qfhw1hb43hw12wlxmg2q13l0m1h93pyfi5l4mfjkds";
}; };
buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "synthv1-${version}"; name = "synthv1-${version}";
version = "0.9.0"; version = "0.9.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/synthv1/${name}.tar.gz"; url = "mirror://sourceforge/synthv1/${name}.tar.gz";
sha256 = "1skynjg6ip0qfbqqkybfjh6xcwxagq89ghl08f7sp7j0sz5qdcwp"; sha256 = "1r60l286n8y4a4rrlnbc3h7xk4s2pvqykvskls89prxg0lkpz7kl";
}; };
buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ]; buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];

View File

@ -13,14 +13,14 @@ let
sha256Hash = "0xx6yprylmcb32ipmwdcfkgddlm1nrxi1w68miclvgrbk015brf2"; sha256Hash = "0xx6yprylmcb32ipmwdcfkgddlm1nrxi1w68miclvgrbk015brf2";
}; };
betaVersion = { betaVersion = {
version = "3.2.0.22"; # "Android Studio 3.2 Beta 5" version = "3.2.0.23"; # "Android Studio 3.2 RC 1"
build = "181.4913314"; build = "181.4963425";
sha256Hash = "016nyn1pqviy089hg0dq7m4cqb39fdxdcy4zknkaq7dmgv1dj6x9"; sha256Hash = "0b3mmafpnc07chiy3fv3vlrarkiwbb0c62x3qk26kpxq1l6m8bgw";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.3.0.5"; # "Android Studio 3.3 Canary 6" version = "3.3.0.6"; # "Android Studio 3.3 Canary 7"
build = "182.4954005"; build = "182.4968538";
sha256Hash = "0b8ias75f3p5nrmgp7iqz4n4r4dbwhgagqmyc1fqfd36wbglyaf4"; sha256Hash = "159sya24p99pj9q0mj1sbcz2609ackz54x4pj3q1mxhiamsn1y2q";
}; };
in rec { in rec {
# Old alias # Old alias

View File

@ -202,6 +202,12 @@ self:
# missing OCaml # missing OCaml
utop = markBroken super.utop; utop = markBroken super.utop;
vdiff-magit =
(super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
}));
# upstream issue: missing file header # upstream issue: missing file header
voca-builder = markBroken super.voca-builder; voca-builder = markBroken super.voca-builder;

View File

@ -194,6 +194,12 @@ self:
# missing OCaml # missing OCaml
utop = markBroken super.utop; utop = markBroken super.utop;
vdiff-magit =
(super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
}));
# upstream issue: missing file header # upstream issue: missing file header
voca-builder = markBroken super.voca-builder; voca-builder = markBroken super.voca-builder;

View File

@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
- Plugin interface - Plugin interface
''; '';
homepage = https://www.geany.org/; homepage = https://www.geany.org/;
license = "GPL"; license = licenses.gpl2;
maintainers = []; maintainers = [];
platforms = platforms.all; platforms = platforms.all;
}; };

View File

@ -1,7 +1,7 @@
{ runCommand, makeWrapper, geany, gnome2 }: { runCommand, makeWrapper, geany, gnome2 }:
let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name; let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name;
in in
runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; } " runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; inherit (geany.meta); } "
mkdir -p $out mkdir -p $out
ln -s ${geany}/share $out ln -s ${geany}/share $out
makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome2.vte}/lib makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome2.vte}/lib

View File

@ -249,12 +249,12 @@ in
clion = buildClion rec { clion = buildClion rec {
name = "clion-${version}"; name = "clion-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "16fr5760nkzgx8785x6hh7s96x097y6vdx7w1f9ipg71vv25cscq"; /* updated by script */ sha256 = "1wjrki0awjyjmv7hh5rkhbpx40yqjssgh4nv61fvg189aric4rzj"; /* updated by script */
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-clion";
update-channel = "CLion Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml update-channel = "CLion Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@ -262,12 +262,12 @@ in
datagrip = buildDataGrip rec { datagrip = buildDataGrip rec {
name = "datagrip-${version}"; name = "datagrip-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "Your Swiss Army Knife for Databases and SQL"; description = "Your Swiss Army Knife for Databases and SQL";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "1jfkxr790wr8ffn7ph694hfzahs2akjcfk4rfsvjv1dccqb0167k"; /* updated by script */ sha256 = "0sfcl6bcq5hzwx1fdn8zfyl4qqjcmjmzwspa7v7niyqhbj5zdba9"; /* updated by script */
}; };
wmClass = "jetbrains-datagrip"; wmClass = "jetbrains-datagrip";
update-channel = "DataGrip 2018.2"; update-channel = "DataGrip 2018.2";
@ -288,12 +288,12 @@ in
idea-community = buildIdea rec { idea-community = buildIdea rec {
name = "idea-community-${version}"; name = "idea-community-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "04dqyzkkrwvcdy1raard77v2315d44h29cpc9p98bjidvjd6bhsx"; /* updated by script */ sha256 = "1495zkccss1bkh803p6065nypqj72zra9dbnlx3iz4kkbawr7j15"; /* updated by script */
}; };
wmClass = "jetbrains-idea-ce"; wmClass = "jetbrains-idea-ce";
update-channel = "IntelliJ IDEA Release"; update-channel = "IntelliJ IDEA Release";
@ -301,12 +301,12 @@ in
idea-ultimate = buildIdea rec { idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}"; name = "idea-ultimate-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
sha256 = "0ydidg9pk8bqf5jb1z0fw2m88v6mi38b4ddgmh5c9d9p44g6mddv"; /* updated by script */ sha256 = "04jzsmnfmxxf264dla6scshk576z8w8sv78mpzb2mc1ndwviwflx"; /* updated by script */
}; };
wmClass = "jetbrains-idea"; wmClass = "jetbrains-idea";
update-channel = "IntelliJ IDEA Release"; update-channel = "IntelliJ IDEA Release";
@ -314,12 +314,12 @@ in
phpstorm = buildPhpStorm rec { phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}"; name = "phpstorm-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "Professional IDE for Web and PHP developers"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "042qhdkl4v5q4cdbqfbiwj6s3acivdb5kmbyn4jix8pg8r37yfnm"; /* updated by script */ sha256 = "1sjxavkfjg4g9rgjqjjb9d6wg53dwfs8n65w3qbp87c7x3pl006r"; /* updated by script */
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-phpstorm";
update-channel = "PhpStorm 2018.2"; update-channel = "PhpStorm 2018.2";
@ -327,12 +327,12 @@ in
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}"; name = "pycharm-community-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "PyCharm Community Edition"; description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "14vnwqk0x0anvzmdv2ddc3qc9g5fll2ql02mi12k425j30fl2z2q"; /* updated by script */ sha256 = "0nq4xwqczppdrswi826yzjdzqpiwl4iyi70d7g6ncqd9wyiay4z4"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm-ce"; wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm Release"; update-channel = "PyCharm Release";
@ -340,12 +340,12 @@ in
pycharm-professional = buildPycharm rec { pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}"; name = "pycharm-professional-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "PyCharm Professional Edition"; description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "1h4f9l577w2ps0y79x79yhpbrsv3j5nwr1lr1890phmp6zri6wyf"; /* updated by script */ sha256 = "1cf8z1wb532qhxlf0z4d791x084drfxzlaxq28hzy4f450bqbkp7"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm"; wmClass = "jetbrains-pycharm";
update-channel = "PyCharm Release"; update-channel = "PyCharm Release";
@ -353,15 +353,15 @@ in
rider = buildRider rec { rider = buildRider rec {
name = "rider-${version}"; name = "rider-${version}";
version = "2018.1.3"; /* updated by script */ version = "2018.2"; /* updated by script */
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz"; url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
sha256 = "00wskr60mjipyp44wrpc3pn6awc92djn7rwhc08nrar3zv0j4mgg"; /* updated by script */ sha256 = "0yigw9g53i6xamwva8vcd38f0aysxqkf77avms4l7l63dkap99nq"; /* updated by script */
}; };
wmClass = "jetbrains-rider"; wmClass = "jetbrains-rider";
update-channel = "Rider 2018.1.3"; update-channel = "Rider 2018.2";
}; };
ruby-mine = buildRubyMine rec { ruby-mine = buildRubyMine rec {
@ -379,12 +379,12 @@ in
webstorm = buildWebStorm rec { webstorm = buildWebStorm rec {
name = "webstorm-${version}"; name = "webstorm-${version}";
version = "2018.2.1"; /* updated by script */ version = "2018.2.2"; /* updated by script */
description = "Professional IDE for Web and JavaScript development"; description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "1jbzkp13qn4n58kbcsszm2gfnywjma2yvn48g0vi14v7x6zihhxd"; /* updated by script */ sha256 = "1a31q7wrg4ihap8j6n2cg98ml1zic78drkrp0p554rgsnh7v4hwr"; /* updated by script */
}; };
wmClass = "jetbrains-webstorm"; wmClass = "jetbrains-webstorm";
update-channel = "WebStorm Release"; update-channel = "WebStorm Release";

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "neovim-qt-${version}"; name = "neovim-qt-${version}";
version = "0.2.8"; version = "0.2.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "equalsraf"; owner = "equalsraf";
repo = "neovim-qt"; repo = "neovim-qt";
rev = "v${version}"; rev = "v${version}";
sha256 = "190yg6kkw953h8wajlqr2hvs2fz65y6z0blmywlg1nff724allaq"; sha256 = "014zqfbbv7q85z64h1iw88l37vhrvhjv7xxd0a76j7d1m2769kqs";
}; };
cmakeFlags = [ cmakeFlags = [

View File

@ -4,7 +4,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "OpenOrienteering-Mapper-${version}"; name = "OpenOrienteering-Mapper-${version}";
version = "0.8.1.2"; version = "0.8.2";
buildInputs = [ gdal qtbase qttools qtlocation qtimageformats buildInputs = [ gdal qtbase qttools qtlocation qtimageformats
qtsensors clipper zlib proj doxygen cups]; qtsensors clipper zlib proj doxygen cups];
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
owner = "OpenOrienteering"; owner = "OpenOrienteering";
repo = "mapper"; repo = "mapper";
rev = "v${version}"; rev = "v${version}";
sha256 = "0f7zxzl2n46qy86k6n3f6a7l1nhba58i28l8ngp3drf74qffaa33"; sha256 = "02lga6nlal4c7898zc3lv1pcwyv1wpkn7v2xji2kgq68r6aw6j59";
}; };
cmakeFlags = cmakeFlags =

View File

@ -84,6 +84,7 @@ stdenv.mkDerivation rec {
homepage = http://www.imagemagick.org/; homepage = http://www.imagemagick.org/;
description = "A software suite to create, edit, compose, or convert bitmap images"; description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
license = licenses.asl20;
maintainers = with maintainers; [ the-kenny wkennington ]; maintainers = with maintainers; [ the-kenny wkennington ];
}; };
} }

View File

@ -10,7 +10,10 @@ stdenv.mkDerivation {
buildInputs = [unzip]; buildInputs = [unzip];
meta = { meta = with stdenv.lib; {
platforms = stdenv.lib.platforms.unix; description = "Java based toolkit for handling SVG";
homepage = https://xmlgraphics.apache.org/batik;
license = licenses.asl20;
platforms = platforms.unix;
}; };
} }

View File

@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
meta = { meta = with stdenv.lib; {
description = "Gnome Diagram drawing software"; description = "Gnome Diagram drawing software";
homepage = http://live.gnome.org/Dia; homepage = http://live.gnome.org/Dia;
maintainers = with stdenv.lib.maintainers; [raskin]; maintainers = with maintainers; [ raskin ];
platforms = stdenv.lib.platforms.unix; license = licenses.gpl2;
platforms = platforms.unix;
}; };
} }

View File

@ -26,6 +26,9 @@ stdenv.mkDerivation rec {
homepage = https://github.com/mattes/epeg; homepage = https://github.com/mattes/epeg;
description = "Insanely fast JPEG/ JPG thumbnail scaling"; description = "Insanely fast JPEG/ JPG thumbnail scaling";
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
license = {
url = "https://github.com/mattes/epeg#license";
};
maintainers = with maintainers; [ nh2 ]; maintainers = with maintainers; [ nh2 ];
}; };
} }

View File

@ -9,11 +9,6 @@ stdenv.mkDerivation rec {
sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z"; sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z";
}; };
preConfigure = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
'';
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ stdenv openexr libpng12 libjpeg ]; buildInputs = [ stdenv openexr libpng12 libjpeg ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, autoreconfHook, pkgconfig, intltool, babl, gegl, gtk2, glib, gdk_pixbuf, isocodes { stdenv, fetchurl, pkgconfig, intltool, babl, gegl, gtk2, glib, gdk_pixbuf, isocodes
, pango, cairo, freetype, fontconfig, lcms, libpng, libjpeg, poppler, poppler_data, libtiff , pango, cairo, freetype, fontconfig, lcms, libpng, libjpeg, poppler, poppler_data, libtiff
, libmng, librsvg, libwmf, zlib, libzip, ghostscript, aalib, shared-mime-info , libmng, librsvg, libwmf, zlib, libzip, ghostscript, aalib, shared-mime-info
, python2Packages, libexif, gettext, xorg, glib-networking, libmypaint, gexiv2 , python2Packages, libexif, gettext, xorg, glib-networking, libmypaint, gexiv2
@ -9,14 +9,14 @@ let
inherit (python2Packages) pygtk wrapPython python; inherit (python2Packages) pygtk wrapPython python;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "gimp-${version}"; name = "gimp-${version}";
version = "2.10.4"; version = "2.10.6";
src = fetchurl { src = fetchurl {
url = "http://download.gimp.org/pub/gimp/v${stdenv.lib.versions.majorMinor version}/${name}.tar.bz2"; url = "http://download.gimp.org/pub/gimp/v${stdenv.lib.versions.majorMinor version}/${name}.tar.bz2";
sha256 = "14pi0q3wwkapy0inqxk1hjsa2h8lff1z4wgdsyrk29jaw66pdc7z"; sha256 = "07qh2ljbza2mph1gh8sicn27qihhj8hx3ivvry2874cfh8ghgj2f";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig intltool gettext wrapPython ]; nativeBuildInputs = [ pkgconfig intltool gettext wrapPython ];
propagatedBuildInputs = [ gegl ]; # needed by gimp-2.0.pc propagatedBuildInputs = [ gegl ]; # needed by gimp-2.0.pc
buildInputs = [ buildInputs = [
babl gegl gtk2 glib gdk_pixbuf pango cairo gexiv2 harfbuzz isocodes babl gegl gtk2 glib gdk_pixbuf pango cairo gexiv2 harfbuzz isocodes

View File

@ -18,9 +18,10 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
meta = { meta = with stdenv.lib; {
description = "A fast image viewer"; description = "A fast image viewer";
homepage = http://gqview.sourceforge.net; homepage = http://gqview.sourceforge.net;
platforms = stdenv.lib.platforms.unix; license = licenses.gpl2;
platforms = platforms.unix;
}; };
} }

View File

@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ ]; license = licenses.gpl3;
}; };
} }

View File

@ -17,10 +17,11 @@ stdenv.mkDerivation (rec {
substituteInPlace Makefile --replace /man/ /share/man/ substituteInPlace Makefile --replace /man/ /share/man/
''; '';
meta = { meta = with stdenv.lib; {
description = "Quick image viewer"; description = "Quick image viewer";
homepage = http://spiegl.de/qiv/; homepage = http://spiegl.de/qiv/;
inherit version; inherit version;
platforms = stdenv.lib.platforms.linux; license = licenses.gpl2;
platforms = platforms.linux;
}; };
}) })

View File

@ -2,24 +2,24 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "1password-${version}"; name = "1password-${version}";
version = "0.5.1"; version = "0.5.3";
src = src =
if stdenv.system == "i686-linux" then if stdenv.system == "i686-linux" then
fetchzip { fetchzip {
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip"; url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
sha256 = "08kzjilxpkvlwqjyxnic1n6xiy6gkndijwxdksm59k7c56mdawsz"; sha256 = "05s223h1yps4k9kmignl0r5sbh6w7m1hnlmafnf1kiwv7gacvxjc";
stripRoot = false; stripRoot = false;
} }
else if stdenv.system == "x86_64-linux" then else if stdenv.system == "x86_64-linux" then
fetchzip { fetchzip {
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip"; url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
sha256 = "1bsbzaqws0z991r6rkjrxay74fj4g5ld4d748ygr0950zwi1m3h7"; sha256 = "0p9x1fx0309v8dxxaf88m8x8q15zzqywfmjn6v5wb9v3scp9396v";
stripRoot = false; stripRoot = false;
} }
else if stdenv.system == "x86_64-darwin" then else if stdenv.system == "x86_64-darwin" then
fetchzip { fetchzip {
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip"; url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip";
sha256 = "1dhr8m9icip27v802gxl1vhl9rf0jq5awirdm72lqmlypj86df0g"; sha256 = "1z2xp9bn93gr4ha6zx65va1fb58a2xlnnmpv583y96gq3vbnqdcj";
stripRoot = false; stripRoot = false;
} }
else throw "Architecture not supported"; else throw "Architecture not supported";

View File

@ -1,28 +1,23 @@
{ stdenv, python3, fetchFromGitHub, fetchpatch }: { stdenv, python3, fetchFromGitHub, fetchpatch }:
with python3.pkgs; buildPythonApplication rec { with python3.pkgs; buildPythonApplication rec {
version = "3.7"; version = "3.8";
pname = "buku"; pname = "buku";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jarun"; owner = "jarun";
repo = "buku"; repo = "buku";
rev = "v${version}"; rev = "v${version}";
sha256 = "0qc6xkrhf2phaj9fhym19blr4rr2vllvnyljjz909xr4vsynvb41"; sha256 = "0gv26c4rr1akcaiff1nrwil03sv7d58mfxr86pgsw6nwld67ns0r";
};
patches = fetchpatch {
url = https://github.com/jarun/Buku/commit/495d6eac4d9371e8ce6d3f601e2bb9e5e74962b4.patch;
sha256 = "0py4l5qcgdzqr0iqmcc8ddld1bspk8iwypz4dcr88y70j86588gk";
}; };
checkInputs = [ checkInputs = [
pytestcov pytestcov
pytest-catchlog
hypothesis hypothesis
pytest pytest
pylint pylint
flake8 flake8
pyyaml
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -30,6 +25,14 @@ with python3.pkgs; buildPythonApplication rec {
beautifulsoup4 beautifulsoup4
requests requests
urllib3 urllib3
flask
flask-api
flask-bootstrap
flask-paginate
flask_wtf
arrow
werkzeug
click
]; ];
preCheck = '' preCheck = ''
@ -43,7 +46,7 @@ with python3.pkgs; buildPythonApplication rec {
--replace "self.assertEqual(url, 'https://www.google.com')" "" --replace "self.assertEqual(url, 'https://www.google.com')" ""
''; '';
installPhase = '' postInstall = ''
make install PREFIX=$out make install PREFIX=$out
mkdir -p $out/share/zsh/site-functions $out/share/bash-completion/completions $out/share/fish/vendor_completions.d mkdir -p $out/share/zsh/site-functions $out/share/bash-completion/completions $out/share/fish/vendor_completions.d

View File

@ -4,13 +4,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "clipmenu-${version}"; name = "clipmenu-${version}";
version = "5.4.0"; version = "5.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cdown"; owner = "cdown";
repo = "clipmenu"; repo = "clipmenu";
rev = version; rev = version;
sha256 = "1qbpca0wny6i222vbikfl2znn3fynhbl4100qs8v4wn27ra5p0mi"; sha256 = "15if7bwqviyynbrcwrn04r418cfnxf2mkmq112696np24bggvljg";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -0,0 +1,61 @@
{ stdenv, fetchFromGitHub, ncurses, hdate, lua5_2 }:
stdenv.mkDerivation rec {
version = "12010904";
name = "dozenal-${version}";
src = fetchFromGitHub {
owner = "dgoodmaniii";
repo = "dozenal";
rev = "v${version}";
sha256 = "1ic63gpdda762x6ks3al71dwgmsy2isicqyr2935bd245jx8s209";
};
makeFlags = [
# author do not use configure and prefix directly using $prefix
"prefix=$(out)"
# graphical version of dozdc requires xforms, which is not i nixpkgs so I turned it down
"XFORMS_FLAGS=-UXFORMS"
"LUALIB=-llua"
"bindir=$(prefix)/bin/"
];
# some include hardcodes the lua libraries path. This is a patch for that
patches = [ ./lua-header.patch ];
preBuild = "cd dozenal";
buildInputs = [ ncurses hdate lua5_2 ];
# I remove gdozdc, as I didn't figure all it's dependency yet.
postInstall = "rm $out/bin/gdozdc";
meta = {
description = "A complete suite of dozenal (base twelve) programs";
longDescription = ''
Programs
doz --- a converter; converts decimal numbers into dozenal. Accepts
input in standard or exponential notation (i.e., "1492.2" or "1.4922e3").
dec --- a converter; converts dozenal numbers into decimal. Accepts input
in standard or exponential notation (i.e., "X44;4" or "X;444e2").
dozword --- converts a dozenal number (integers only) into words,
according to the Pendlebury system.
dozdc --- a full-featured scientific calculator which works in the
dozenal base. RPN command line.
tgmconv --- a converter for all standard measurements; converts to and
from TGM, Imperial, customary, and SI metric.
dozpret --- a pretty-printer for dozenal numbers; inserts spacing (or
other characters) as desired, and can also transform transdecimal digits
from 'X' to 'E' into any character or sequence of characters desired.
dozdate --- a more-or-less drop-in replacement for GNU and BSD date, it
outputs the date and time in dozenal, as well as containing some TGM
extensions.
dozstring --- a simple byte converter; absorbs a string either from
standard input or a command line argument, leaving it identical but
for the numbers, which it converts into dozenal. Options for padding
and for not converting specific numbers.
doman --- a converter which takes a dozenal integer and
emits its equivalent in a non-place-value system, such as
Roman numerals. Arbitrary ranks and symbols may be used.
Defaults to dozenal Roman numerals.
'';
homepage = https://github.com/dgoodmaniii/dozenal/;
maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
license = stdenv.lib.licenses.gpl3;
};
}

View File

@ -0,0 +1,16 @@
diff -ruN dozenal-12010904/dozenal/dozcal/call_lua.c dozenal-patched/dozenal/dozcal/call_lua.c
--- dozenal-12010904/dozenal/dozcal/call_lua.c 2017-09-04 19:25:01.000000000 +0200
+++ dozenal-patched/dozenal/dozcal/call_lua.c 2018-06-13 10:19:57.821950327 +0200
@@ -38,9 +38,9 @@
#include"utility.h"
#include"conv.h"
#include"proc_date.h"
-#include<lua5.2/lua.h>
-#include<lua5.2/lauxlib.h>
-#include<lua5.2/lualib.h>
+#include<lua.h>
+#include<lauxlib.h>
+#include<lualib.h>
void bail(lua_State *L, int err_code, char *filename);
int file_prefix(char **s, char *t);

View File

@ -0,0 +1,16 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
version = "1.6.02";
name = "hdate-${version}";
src = fetchurl {
url = "https://sourceforge.net/projects/libhdate/files/libhdate/libhdate-${version}/libhdate-${version}.tar.bz2";
sha256 = "3c930a8deb57c01896dc37f0d7804e5a330ee8e88c4ff610b71f9d2b02c17762";
};
meta = {
description = "Hebrew calendar and solar astronomical times library and utilities";
homepage = https://sourceforge.net/projects/libhdate/;
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
};
}

View File

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "hugo-${version}"; name = "hugo-${version}";
version = "0.47"; version = "0.47.1";
goPackagePath = "github.com/gohugoio/hugo"; goPackagePath = "github.com/gohugoio/hugo";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "gohugoio"; owner = "gohugoio";
repo = "hugo"; repo = "hugo";
rev = "v${version}"; rev = "v${version}";
sha256 = "1h62ix285mx977mgawyanyvsqqic1xx0gmi1r5wn43w9yc29wr0z"; sha256 = "0n27vyg66jfx4lwswsmdlybly8c9gy5rk7yhy7wzs3rwzlqv1jzj";
}; };
goDeps = ./deps.nix; goDeps = ./deps.nix;

View File

@ -104,8 +104,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/disintegration/imaging"; url = "https://github.com/disintegration/imaging";
rev = "8021a62ea0dfe0ed2e6107f5ccd37e0d4a92a996"; rev = "0bd5694c78c9c3d9a3cd06a706a8f3c59296a9ac";
sha256 = "1c32sqfz78g9wxvpng8n9r404lf2lgjn9b24mg8y3rxylx29gks7"; sha256 = "1laxccmzi7q51zxn81ringmdwp8iaipivrl375yc3gq56d70sp0r";
}; };
} }
{ {
@ -140,8 +140,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/gobuffalo/envy"; url = "https://github.com/gobuffalo/envy";
rev = "2d0f467653f3d961ce9ada4d32a230bdcb3bfe11"; rev = "3c96536452167a705ca5a70b831d3810e1e10452";
sha256 = "0p9raqrsqg2z1hq2kbvbq5qcwqihjqf28xnfh62214p7ak9b9x8n"; sha256 = "0ixqpdmb7kjlarkv0qlbwnbr194sajx9flysnhcldzmciqgk5bqs";
}; };
} }
{ {
@ -347,8 +347,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/spf13/cobra"; url = "https://github.com/spf13/cobra";
rev = "7c4570c3ebeb8129a1f7456d0908a8b676b6f9f1"; rev = "ff0d02e8555041edecbd0ce27f32c6ea4b214483";
sha256 = "16amh0prlzqrrbg5j629sg0f688nfzfgn9sair8jyybqampr3wc7"; sha256 = "1ilw6b2nir1bg7hmx8hrn60za37qqm18xvamv90fx5vxq85fsml9";
}; };
} }
{ {
@ -446,8 +446,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/net"; url = "https://go.googlesource.com/net";
rev = "aaf60122140d3fcf75376d319f0554393160eb50"; rev = "922f4815f713f213882e8ef45e0d315b164d705c";
sha256 = "03i6ij7jcf5mp9dc8ps8b63g1k843z7c823qyzn5a276gpxvxlvv"; sha256 = "1ci1rxk2d6hmfsjjc19n2sxhyn4jqr5ia3ykyah1h08p0pn7k52w";
}; };
} }
{ {
@ -464,8 +464,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/sys"; url = "https://go.googlesource.com/sys";
rev = "1c9583448a9c3aa0f9a6a5241bf73c0bd8aafded"; rev = "4ea2f632f6e912459fe60b26b1749377f0d889d5";
sha256 = "0g0nc549pmdmvja4mdqh0kgvznnw6wliqmx5wrnj02l3a23vizmi"; sha256 = "16pdi4mmjlcrjdcz7k559jqnsvkhdmff68bbqq7ii1lp8vrpqqmy";
}; };
} }
{ {

View File

@ -26,13 +26,13 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "keepassxc-${version}"; name = "keepassxc-${version}";
version = "2.3.3"; version = "2.3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "keepassxreboot"; owner = "keepassxreboot";
repo = "keepassxc"; repo = "keepassxc";
rev = "${version}"; rev = "${version}";
sha256 = "08cj1nxbjy2m80h3irnra2qha7fc5ahhzcgkyk9jv4zyys9xv998"; sha256 = "1gja402dsbws4z8ybnhqbw7rc9svgqnshqjgf7158d6x0ni386m3";
}; };
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [

View File

@ -7,7 +7,7 @@
with python3Packages; with python3Packages;
buildPythonApplication rec { buildPythonApplication rec {
version = "0.11.2"; version = "0.11.3";
name = "kitty-${version}"; name = "kitty-${version}";
format = "other"; format = "other";
@ -15,7 +15,7 @@ buildPythonApplication rec {
owner = "kovidgoyal"; owner = "kovidgoyal";
repo = "kitty"; repo = "kitty";
rev = "v${version}"; rev = "v${version}";
sha256 = "0vmxgyxrgaqijwd51ldd8pkz7jn9hdcfib1dqr0ai614286v69hw"; sha256 = "1fql8ayxvip8hgq9gy0dhqfvngv13gh5bf71vnc3agd80kzq1n73";
}; };
buildInputs = [ buildInputs = [

View File

@ -81,11 +81,6 @@ stdenv.mkDerivation rec {
cd ../../.. cd ../../..
''; '';
preConfigure = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
'';
configureFlags = [ configureFlags = [
"--disable-static" "--disable-static"
"--disable-staticbins" "--disable-staticbins"

View File

@ -1,30 +1,58 @@
{ stdenv, fetchsvn, pkgconfig, gtk2, SDL, fontconfig, freetype, imlib2, SDL_image, libGLU_combined, { stdenv, fetchFromGitHub, pkgconfig, gtk2, SDL, fontconfig, freetype, imlib2, SDL_image, libGLU_combined,
libXmu, freeglut, python, gettext, quesoglc, gd, postgresql, cmake, qt4, SDL_ttf, fribidi}: libXmu, freeglut, pcre, dbus-glib, glib, librsvg, freeimage, libxslt,
stdenv.mkDerivation rec { qtbase, qtquickcontrols, qtsvg, qtdeclarative, qtlocation, qtsensors, qtmultimedia, qtspeech, espeak,
name = "navit-svn-3537"; cairo, gdk_pixbuf, pango, atk, patchelf, fetchurl, bzip2,
python, gettext, quesoglc, gd, postgresql, cmake, shapelib, SDL_ttf, fribidi}:
src = fetchsvn { stdenv.mkDerivation rec {
url = svn://svn.code.sf.net/p/navit/code/trunk/navit; name = "navit-${version}";
rev = 5576; version = "0.5.1";
sha256 = "1xx62l5srfhh9cfi7n3pxj8hpcgr1rpa0hzfmbrqadzv09z36723";
src = fetchFromGitHub {
owner = "navit-gps";
repo = "navit";
rev = "v${version}";
sha256 = "0jf2gjh2sszr5y5c2wvamfj2qggi2y5k3ynb32pak9vhf5xyl5xj";
}; };
hardeningDisable = [ "format" ]; sample_map = fetchurl {
url = "http://www.navit-project.org/maps/osm_bbox_11.3,47.9,11.7,48.2.osm.bz2";
buildInputs = [ gtk2 SDL fontconfig freetype imlib2 SDL_image libGLU_combined name = "sample_map.bz2";
libXmu freeglut python gettext quesoglc gd postgresql qt4 SDL_ttf fribidi ]; sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d";
};
nativeBuildInputs = [ pkgconfig cmake ];
#hardeningDisable = [ "format" ];
NIX_CFLAGS_COMPILE = [ "-I${SDL.dev}/include/SDL" ]; NIX_CFLAGS_COMPILE = [ "-I${SDL.dev}/include/SDL" ];
cmakeFlags = [ "-DSAMPLE_MAP=n" ]; # TODO: fix speech options.
cmakeFlags = [ "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-Dsupport/espeak=FALSE" "-Dspeech/qt5_espeak=FALSE" ];
meta = { buildInputs = [ gtk2 SDL fontconfig freetype imlib2 SDL_image libGLU_combined freeimage libxslt
homepage = http://www.navit-project.org/; libXmu freeglut python gettext quesoglc gd postgresql qtbase SDL_ttf fribidi pcre qtquickcontrols
espeak qtmultimedia qtspeech qtsensors qtlocation qtdeclarative qtsvg dbus-glib librsvg shapelib glib
cairo gdk_pixbuf pango atk ];
nativeBuildInputs = [ pkgconfig cmake patchelf bzip2 ];
# we dont want blank screen by defaut
postInstall = ''
# emulate DSAMPLE_MAP
mkdir -p $out/share/navit/maps/maps
bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin"
'';
# TODO: fix upstream?
postFixup = ''
for lib in $(find "$out/lib/navit/" -iname "*.so" ); do
patchelf --set-rpath ${stdenv.lib.makeLibraryPath buildInputs} $lib
done
'';
meta = with stdenv.lib; {
homepage = http://www.navit-project.org;
description = "Car navigation system with routing engine using OSM maps"; description = "Car navigation system with routing engine using OSM maps";
license = stdenv.lib.licenses.gpl2; license = licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ ]; maintainers = [ maintainers.genesis ];
platforms = with stdenv.lib.platforms; linux; platforms = platforms.linux;
}; };
} }

View File

@ -1,23 +1,23 @@
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus
, gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd , gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd, libsecret
, perlPackages, wrapGAppsHook, xdg_utils }: , perlPackages, wrapGAppsHook, xdg_utils }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tilix-${version}"; name = "tilix-${version}";
version = "1.8.1"; version = "1.8.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gnunn1"; owner = "gnunn1";
repo = "tilix"; repo = "tilix";
rev = "${version}"; rev = "${version}";
sha256 = "19dx3hlj40cqwph98pcifkm6axfszfr0v9k6sr3caw4ycml84ci1"; sha256 = "05x2nyyb5w3122j90g0f7lh9jl7xi1nk176sl01vl2ks7zar00dq";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
autoreconfHook dmd desktop-file-utils perlPackages.Po4a pkgconfig xdg_utils autoreconfHook dmd desktop-file-utils perlPackages.Po4a pkgconfig xdg_utils
wrapGAppsHook wrapGAppsHook
]; ];
buildInputs = [ gnome3.dconf gettext gsettings-desktop-schemas gtkd dbus ]; buildInputs = [ gnome3.dconf gettext gsettings-desktop-schemas gtkd dbus libsecret ];
preBuild = '' preBuild = ''
makeFlagsArray=( makeFlagsArray=(
@ -28,6 +28,9 @@ stdenv.mkDerivation rec {
postInstall = with gnome3; '' postInstall = with gnome3; ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
wrapProgram $out/bin/tilix \
--prefix LD_LIBRARY_PATH ":" "${libsecret}/lib"
''; '';

View File

@ -0,0 +1,38 @@
{ stdenv, fetchFromGitHub
, meson, ninja, pkgconfig
, gnome3, vala, gobjectIntrospection, wrapGAppsHook
, gtk3, granite
, json-glib, glib, glib-networking
}:
let
pname = "tootle";
version = "0.1.5";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "bleakgrey";
repo = pname;
rev = version;
sha256 = "022h1rh1jk3m1f9al0s1rylmnqnkydyc81idfc8jf1g0frnvn5i6";
};
nativeBuildInputs = [ meson ninja pkgconfig vala gobjectIntrospection wrapGAppsHook ];
buildInputs = [
gtk3 granite json-glib glib glib-networking
gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas
];
postPatch = ''
chmod +x ./meson/post_install.py
patchShebangs ./meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Simple Mastodon client designed for elementary OS";
homepage = https://github.com/bleakgrey/tootle;
license = licenses.gpl3;
maintainers = with maintainers; [ dtzWill ];
};
}

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xpad-${version}"; name = "xpad-${version}";
version = "5.0.0"; version = "5.1.0";
src = fetchurl { src = fetchurl {
url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2"; url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2";
sha256 = "02yikxg6z9bwla09ka001ppjlpbv5kbza3za9asazm5aiz376mkb"; sha256 = "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];

View File

@ -82,7 +82,7 @@ let
xdg_utils yasm minizip libwebp xdg_utils yasm minizip libwebp
libusb1 re2 zlib libusb1 re2 zlib
ffmpeg libxslt libxml2 ffmpeg libxslt libxml2
# harfbuzz-icu # in versions over 63 harfbuzz and freetype are being built together # harfbuzz # in versions over 63 harfbuzz and freetype are being built together
# so we can't build with one from system and other from source # so we can't build with one from system and other from source
]; ];

View File

@ -185,7 +185,7 @@ stdenv.mkDerivation (rec {
"--disable-gconf" "--disable-gconf"
"--enable-default-toolkit=${default-toolkit}" "--enable-default-toolkit=${default-toolkit}"
] ]
++ lib.optional stdenv.isDarwin "--disable-xcode-checks" ++ lib.optional (stdenv.isDarwin && lib.versionAtLeast version "61") "--disable-xcode-checks"
++ lib.optional (lib.versionOlder version "61") "--enable-system-hunspell" ++ lib.optional (lib.versionOlder version "61") "--enable-system-hunspell"
++ lib.optionals (lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [ ++ lib.optionals (lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [
# on i686-linux: --with-libclang-path is not available in this configuration # on i686-linux: --with-libclang-path is not available in this configuration

View File

@ -1,17 +1,19 @@
{ fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper }: { fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper, unzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "davmail-4.8.0"; name = "davmail-4.8.6";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/davmail/4.8.0/davmail-linux-x86_64-4.8.0-2479.tgz"; url = "mirror://sourceforge/davmail/4.8.6/davmail-4.8.6-2600.zip";
sha256 = "0e650c4a060d64fd2b270ddb00baa906aac617865d5e60c9f526a281cdb27b62"; sha256 = "1wk4jxb46qlyipxj57flqadgm4mih243rhqq9sp9m5pifjqrw9dp";
}; };
nativeBuildInputs = [ makeWrapper ]; sourceRoot = ".";
nativeBuildInputs = [ makeWrapper unzip ];
installPhase = '' installPhase = ''
mkdir -p $out/share/davmail mkdir -p $out/share/davmail
cp -R ./* $out/share/davmail cp -vR ./* $out/share/davmail
makeWrapper $out/share/davmail/davmail.sh $out/bin/davmail \ makeWrapper $out/share/davmail/davmail.sh $out/bin/davmail \
--prefix PATH : ${jre}/bin \ --prefix PATH : ${jre}/bin \
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]} --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]}

View File

@ -3,7 +3,7 @@
, libGL, xcbutilkeysyms, xdg_utils, libtool }: , libGL, xcbutilkeysyms, xdg_utils, libtool }:
let let
version = "4.30.5.1676"; version = "4.30.5.1682";
rpath = stdenv.lib.makeLibraryPath [ rpath = stdenv.lib.makeLibraryPath [
xdg_utils xdg_utils
@ -43,7 +43,7 @@ in stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb"; url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
sha256 = "1fmvarq7zf1cnah2d1l7rxhbiw3dmjcxsldys5is63y204hdh04y"; sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }: { stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }:
let version = "1.23.2"; in let version = "1.23.3"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "pidgin-sipe-${version}"; name = "pidgin-sipe-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz"; url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz";
sha256 = "1xj4nn5h103q4agar167xwcp98qf8knrgs918nl07qaxp9g4558w"; sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,22 +1,44 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk24x-gtk3 { stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk
, libsass, notmuch, boost, wrapGAppsHook, glib-networking }: , libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable
, makeWrapper, python3, python3Packages
, vim ? vim_configurable.override {
features = "normal";
gui = "auto";
}
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "astroid-${version}"; name = "astroid-${version}";
version = "0.11.1"; version = "0.13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "astroidmail"; owner = "astroidmail";
repo = "astroid"; repo = "astroid";
rev = "v${version}"; rev = "v${version}";
sha256 = "1z48rvlzwi7bq7j55rnb0gg1a4k486yj910z2cxz1p46lxk332j1"; sha256 = "105x5g44hng3fi03h67j3an53088148jbq8726nmcp0zs0cy9gac";
}; };
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
buildInputs = [ gnome3.gtkmm gmime3 webkitgtk24x-gtk3 libsass gnome3.libpeas buildInputs = [ gnome3.gtkmm gmime3 webkitgtk libsass gnome3.libpeas
notmuch boost gnome3.gsettings-desktop-schemas python3 python3Packages.pygobject3
glib-networking ]; notmuch boost gnome3.gsettings-desktop-schemas gnome3.defaultIconTheme
glib-networking protobuf ] ++ (if vim == null then [] else [ vim ]);
patches = [
# TODO: remove when https://github.com/astroidmail/astroid/pull/531
# is released
./run_tests.diff
];
postPatch = ''
sed -i "s~gvim ~${vim}/bin/vim -g ~g" src/config.cc
sed -i "s~ -geom 10x10~~g" src/config.cc
'';
postInstall = ''
wrapProgram "$out/bin/astroid" --set CHARSET=en_us.UTF-8
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://astroidmail.github.io/; homepage = https://astroidmail.github.io/;

View File

@ -0,0 +1,10 @@
diff --git a/tests/run_test.sh b/tests/run_test.sh
index f2ea7d7..927c61d 100755
--- a/tests/run_test.sh
+++ b/tests/run_test.sh
@@ -1,4 +1,4 @@
-#! /bin/bash
+#! /usr/bin/env bash
#
# Set up environment and run test specified on command line

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig { stdenv, lib, fetchpatch, fetchurl, autoreconfHook, pkgconfig
, openssl, netcat-gnu, gnutls, gsasl, libidn, Security , openssl, netcat-gnu, gnutls, gsasl, libidn, Security
, withKeyring ? true, libsecret ? null , withKeyring ? true, libsecret ? null
, systemd ? null }: , systemd ? null }:
@ -19,6 +19,14 @@ in stdenv.mkDerivation rec {
patches = [ patches = [
./paths.patch ./paths.patch
# To support passwordeval commands that do not print a final
# newline.
(fetchpatch {
name = "passwordeval-without-nl.patch";
url = "https://gitlab.marlam.de/marlam/msmtp/commit/df22dccf9d1af06fcd09dfdd0d6a38e1372dd5e8.patch";
sha256 = "06gbhvzi46zqigmmsin2aard7b9v3ihx62hbz5ljmfbj9rfs1x5y";
})
]; ];
buildInputs = [ openssl gnutls gsasl libidn ] buildInputs = [ openssl gnutls gsasl libidn ]

View File

@ -10,7 +10,7 @@
}: }:
let let
version = "1.2.31.2"; version = "1.2.31.3";
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "remmina"; name = "remmina";
@ -29,7 +29,7 @@ in stdenv.mkDerivation {
owner = "Remmina"; owner = "Remmina";
repo = "Remmina"; repo = "Remmina";
rev = "v${version}"; rev = "v${version}";
sha256 = "09jdrs2hbr9wyd5yqw5bri41rnfnxxyh98mlv6ig2phlvs9cg73d"; sha256 = "0lvang4587wz292c3k3s8n4icc25cia1phmij34ndrl1f9lg34dp";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -5,14 +5,14 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "6.2.3"; version = "6.2.4";
name = "seafile-client-${version}"; name = "seafile-client-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "haiwen"; owner = "haiwen";
repo = "seafile-client"; repo = "seafile-client";
rev = "v${version}"; rev = "v${version}";
sha256 = "1wdpz7vxhn9mcc7kxhrz9c5dwd492akirz351wfi4xxy5np6p6kp"; sha256 = "0z5li1d7ipsm1mp0lk6mls220v4vlmsqm8ym8kxlkinqbmkky0hz";
}; };
nativeBuildInputs = [ pkgconfig cmake makeWrapper ]; nativeBuildInputs = [ pkgconfig cmake makeWrapper ];

View File

@ -1,5 +1,5 @@
{ {
mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools, mkDerivation, lib, fetchurl, fetchpatch, extra-cmake-modules, kdoctools,
boost, qttools, qtwebkit, boost, qttools, qtwebkit,
breeze-icons, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets, kcoreaddons, breeze-icons, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
kcrash, kguiaddons, ki18n, kiconthemes, kitemviews, kio, ktexteditor, ktextwidgets, kcrash, kguiaddons, ki18n, kiconthemes, kitemviews, kio, ktexteditor, ktextwidgets,
@ -29,6 +29,13 @@ mkDerivation rec {
propagatedUserEnvPkgs = [ kproperty ]; propagatedUserEnvPkgs = [ kproperty ];
patches = [
(fetchpatch {
url = "https://phabricator.kde.org/file/data/6iwzltiifyqwjnzbvyo6/PHID-FILE-li4a7j35wkdkm2qdtnp4/D11503.diff";
sha256 = "0yj717m4x1zb4xjy1ayhz78xkxpawxgsvjgvf5iw81jnlr8absq9";
})
];
meta = with lib; { meta = with lib; {
description = "A open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker"; description = "A open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
longDescription = '' longDescription = ''

View File

@ -0,0 +1,57 @@
{ stdenv, python3, glibcLocales }:
let
inherit (python3.pkgs) buildPythonApplication fetchPypi;
in
buildPythonApplication rec {
pname = "todoman";
version = "3.4.0";
name = "${pname}-${version}";
src = fetchPypi {
inherit pname version;
sha256 = "09441fdrwz2irsbrxnpwys51372z6rn6gnxn87p95r3fv9gmh0fw";
};
LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
"${glibcLocales}/lib/locale/locale-archive";
LANG = "en_US.UTF-8";
LC_TYPE = "en_US.UTF-8";
buildInputs = [ glibcLocales ];
propagatedBuildInputs = with python3.pkgs;
[ atomicwrites click click-log configobj humanize icalendar parsedatetime
python-dateutil pyxdg tabulate urwid ];
checkInputs = with python3.pkgs;
[ flake8 flake8-import-order freezegun hypothesis pytest pytestrunner pytestcov ];
makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
"--set CHARSET en_us.UTF-8" ];
preCheck = ''
# Remove one failing test that only checks whether the command line works
rm tests/test_main.py
'';
meta = with stdenv.lib; {
homepage = https://github.com/pimutils/todoman;
description = "Standards-based task manager based on iCalendar";
longDescription = ''
Todoman is a simple, standards-based, cli todo (aka: task) manager. Todos
are stored into icalendar files, which means you can sync them via CalDAV
using, for example, vdirsyncer.
Todos are read from individual ics files from the configured directory.
This matches the vdir specification. Theres support for the most common TODO
features for now (summary, description, location, due date and priority) for
now. Runs on any Unix-like OS. Its been tested on GNU/Linux, BSD and macOS.
Unsupported fields may not be shown but are never deleted or altered.
Todoman is part of the pimutils project
'';
license = licenses.isc;
maintainers = with maintainers; [ leenaars ];
platforms = platforms.linux;
};
}

View File

@ -14,10 +14,10 @@ with stdenv.lib;
python2Packages.buildPythonApplication rec { python2Packages.buildPythonApplication rec {
pname = "tryton"; pname = "tryton";
version = "4.8.4"; version = "4.8.5";
src = python2Packages.fetchPypi { src = python2Packages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "6cf3091424853e1270d61f3a9b15ad8e6b36a44c28becf216c324ca8dc1474b0"; sha256 = "43759d22b061a7a392a534d19a045fafd442ce98a0e390ee830127367dcaf4b4";
}; };
nativeBuildInputs = [ pkgconfig gobjectIntrospection ]; nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
propagatedBuildInputs = with python2Packages; [ propagatedBuildInputs = with python2Packages; [

View File

@ -5,10 +5,10 @@ with stdenv.lib;
python2Packages.buildPythonApplication rec { python2Packages.buildPythonApplication rec {
pname = "trytond"; pname = "trytond";
version = "4.8.3"; version = "4.8.4";
src = python2Packages.fetchPypi { src = python2Packages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "11d01dc984d9274229b5c80f883679d130a55e14e9124b051274fce9aea4ef77"; sha256 = "1935045b1b4674de602b4279a9cfd0a14431624a28ccb490234cffecb81fbca7";
}; };
# Tells the tests which database to use # Tells the tests which database to use

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl, jre, makeWrapper, unzip }:
stdenv.mkDerivation rec {
name = "astrolabe-generator-${version}";
version = "3.3";
src = fetchurl {
url = "https://github.com/wymarc/astrolabe-generator/releases/download/v${version}/AstrolabeGenerator-${version}.zip";
sha256 = "141gfmrqa1mf2qas87qig4phym9fg9gbrcfl2idzd5gi91824dn9";
};
buildInputs = [ jre ];
nativeBuildInputs = [ makeWrapper unzip ];
sourceRoot = ".";
installPhase = ''
mkdir -p $out/{bin,share/java}
cp AstrolabeGenerator-${version}.jar $out/share/java
makeWrapper ${jre}/bin/java $out/bin/AstrolabeGenerator \
--add-flags "-jar $out/share/java/AstrolabeGenerator-${version}.jar"
'';
meta = with stdenv.lib;{
homepage = https://www.astrolabeproject.com;
description = "A Java-based tool for generating EPS files for constructing astrolabes and related tools";
license = licenses.gpl3;
maintainers = [ maintainers.genesis ];
platforms = platforms.all;
};
}

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bowtie2"; pname = "bowtie2";
version = "2.3.4.1"; version = "2.3.4.2";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "BenLangmead"; owner = "BenLangmead";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "07cvcy6483araayj41arjzpxjmf4fmn4iqyl6gp6zmrbzw72wwzj"; sha256 = "1gsfaf7rjg4nwhs7vc1vf63xd5r5v1yq58w7x3barycplzbvixzz";
}; };
buildInputs = [ zlib tbb ]; buildInputs = [ zlib tbb ];
@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
homepage = http://bowtie-bio.sf.net/bowtie2; homepage = http://bowtie-bio.sf.net/bowtie2;
maintainers = with maintainers; [ rybern ]; maintainers = with maintainers; [ rybern ];
platforms = platforms.all; platforms = platforms.all;
broken = stdenv.isAarch64;
}; };
} }

View File

@ -0,0 +1,83 @@
{ stdenv, fetchurl, makeDesktopItem, patchelf
, libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
, cups , libGL, glib, nss, nspr, expat, alsaLib
, qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
}:
let
libPath = stdenv.lib.makeLibraryPath
[ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
libGL glib nss nspr expat alsaLib
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
];
in
stdenv.mkDerivation rec {
name = "eagle-${version}";
version = "9.1.2";
src = fetchurl {
url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
sha256 = "0y7ahl9z5a7l9cjk8hzmyv6ga8chlry5rr8v116q5mnsgs4i11an";
};
desktopItem = makeDesktopItem {
name = "eagle";
exec = "eagle";
icon = "eagle";
comment = "Schematic capture and PCB layout";
desktopName = "Eagle";
genericName = "Schematic editor";
categories = "Application;Development;";
};
buildInputs =
[ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
libGL glib nss nspr expat alsaLib
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
];
doConfigure = false;
doBuild = false;
installPhase = ''
# Extract eagle tarball
mkdir "$out"
tar -xzf "$src" -C "$out"
# Install manpage
mkdir -p "$out"/share/man/man1
ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}:$out/eagle-${version}/lib:${stdenv.cc.cc.lib}/lib" \
"$out"/eagle-${version}/eagle
mkdir -p "$out"/bin
ln -s "$out"/eagle-${version}/eagle "$out"/bin/eagle
# Remove bundled libraries that are available in nixpkgs
# TODO: There still may be unused bundled libraries
rm "$out"/eagle-${version}/lib/libQt5*.so.5
rm "$out"/eagle-${version}/lib/{libxcb-*.so.*,libX*.so.*,libxshmfence.so.1}
rm "$out"/eagle-${version}/lib/{libEGL.so.1,libglapi.so.0,libgbm.so.1}
# No longer needed (we don't use the bundled Qt libraries)
rm -r "$out"/eagle-${version}/libexec
rm -r "$out"/eagle-${version}/plugins
# Make desktop item
mkdir -p "$out"/share/applications
cp "$desktopItem"/share/applications/* "$out"/share/applications/
mkdir -p "$out"/share/icons
ln -s "$out/eagle-${version}/bin/eagle-logo.png" "$out"/share/icons/eagle.png
'';
meta = with stdenv.lib; {
description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
homepage = https://www.autodesk.com/products/eagle/overview;
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.rittelle ];
};
}

View File

@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
# Build LD_PRELOAD library that redirects license file access to the home # Build LD_PRELOAD library that redirects license file access to the home
# directory of the user # directory of the user
mkdir -p "$out"/lib mkdir -p "$out"/lib
gcc -shared -fPIC -DEAGLE_PATH=\"$out/eagle-${version}\" ${./eagle_fixer.c} -o "$out"/lib/eagle_fixer.so -ldl gcc -shared -fPIC -DEAGLE_PATH=\"$out/eagle-${version}\" ${./eagle7_fixer.c} -o "$out"/lib/eagle_fixer.so -ldl
# Make wrapper script # Make wrapper script
dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)" dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)"

View File

@ -12,9 +12,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
configurePhase = '' configurePhase = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
# Set up picosat, so we can build 'aigbmc' # Set up picosat, so we can build 'aigbmc'
mkdir ../picosat mkdir ../picosat
ln -s ${picosat}/include/picosat/picosat.h ../picosat/picosat.h ln -s ${picosat}/include/picosat/picosat.h ../picosat/picosat.h

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