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

This commit is contained in:
Tuomas Tynkkynen 2017-04-24 15:04:43 +03:00
commit 84982c28de
95 changed files with 1449 additions and 1001 deletions

View File

@ -167,6 +167,11 @@
Because of this, a best-of-both-worlds solution is in the works with no splicing or explicit access of <varname>buildPackages</varname> needed. Because of this, a best-of-both-worlds solution is in the works with no splicing or explicit access of <varname>buildPackages</varname> needed.
For now, feel free to use either method. For now, feel free to use either method.
</para> </para>
<note><para>
There is also a "backlink" <varname>__targetPackages</varname>, yielding a package set whose <varname>buildPackages</varname> is the current package set.
This is a hack, though, to accommodate compilers with lousy build systems.
Please do not use this unless you are absolutely sure you are packaging such a compiler and there is no other way.
</para></note>
</section> </section>
</section> </section>

View File

@ -16,8 +16,7 @@ $ cd sensu
$ cat > Gemfile $ cat > Gemfile
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'sensu' gem 'sensu'
$ nix-shell -p bundler --command "bundler package --path /tmp/vendor/bundle" $ $(nix-build '<nixpkgs>' -A bundix)/bin/bundix --magic
$ $(nix-build '<nixpkgs>' -A bundix)/bin/bundix
$ cat > default.nix $ cat > default.nix
{ lib, bundlerEnv, ruby }: { lib, bundlerEnv, ruby }:

View File

@ -16,7 +16,6 @@
<section><title>Installing a split package</title> <section><title>Installing a split package</title>
<para>When installing a package via <varname>systemPackages</varname> or <command>nix-env</command> you have several options:</para> <para>When installing a package via <varname>systemPackages</varname> or <command>nix-env</command> you have several options:</para>
<warning><para>Currently <command>nix-env</command> almost always installs all outputs until https://github.com/NixOS/nix/pull/815 gets merged.</para></warning>
<itemizedlist> <itemizedlist>
<listitem><para>You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The <varname>outputs</varname> attribute contains a list of output names.</para></listitem> <listitem><para>You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The <varname>outputs</varname> attribute contains a list of output names.</para></listitem>
<listitem><para>You can let it use the default outputs. These are handled by <varname>meta.outputsToInstall</varname> attribute that contains a list of output names.</para> <listitem><para>You can let it use the default outputs. These are handled by <varname>meta.outputsToInstall</varname> attribute that contains a list of output names.</para>

View File

@ -33,42 +33,124 @@
, name ? "nixos-disk-image" , name ? "nixos-disk-image"
# This prevents errors while checking nix-store validity, see
# https://github.com/NixOS/nix/issues/1134
, fixValidity ? true
, format ? "raw" , format ? "raw"
}: }:
with lib; with lib;
pkgs.vmTools.runInLinuxVM ( let
# Copied from https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/cd-dvd/channel.nix
# TODO: factor out more cleanly
# Do not include these things:
# - The '.git' directory
# - Result symlinks from nix-build ('result', 'result-2', 'result-bin', ...)
# - VIM/Emacs swap/backup files ('.swp', '.swo', '.foo.swp', 'foo~', ...)
filterFn = path: type: let basename = baseNameOf (toString path); in
if type == "directory" then basename != ".git"
else if type == "symlink" then builtins.match "^result(|-.*)$" basename == null
else builtins.match "^((|\..*)\.sw[a-z]|.*~)$" basename == null;
nixpkgs = builtins.filterSource filterFn pkgs.path;
channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} ''
mkdir -p $out
cp -prd ${nixpkgs} $out/nixos
chmod -R u+w $out/nixos
if [ ! -e $out/nixos/nixpkgs ]; then
ln -s . $out/nixos/nixpkgs
fi
rm -rf $out/nixos/.git
echo -n ${config.system.nixosVersionSuffix} > $out/nixos/.version-suffix
'';
metaClosure = pkgs.writeText "meta" ''
${config.system.build.toplevel}
${config.nix.package.out}
${channelSources}
'';
prepareImageInputs = with pkgs; [ rsync utillinux parted e2fsprogs lkl fakeroot config.system.build.nixos-prepare-root ] ++ stdenv.initialPath;
# I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate
# image building logic. The comment right below this now appears in 4 different places in nixpkgs :)
# !!! should use XML.
sources = map (x: x.source) contents;
targets = map (x: x.target) contents;
prepareImage = ''
export PATH=${pkgs.lib.makeSearchPathOutput "bin" "bin" prepareImageInputs}
mkdir $out
diskImage=nixos.raw
truncate -s ${toString diskSize}M $diskImage
${if partitioned then ''
parted $diskImage -- mklabel msdos mkpart primary ext4 1M -1s
offset=$((2048*512))
'' else ''
offset=0
''}
mkfs.${fsType} -F -L nixos -E offset=$offset $diskImage
root="$PWD/root"
mkdir -p $root
# Copy arbitrary other files into the image
# Semi-shamelessly copied from make-etc.sh. I (@copumpkin) shall factor this stuff out as part of
# https://github.com/NixOS/nixpkgs/issues/23052.
set -f
sources_=(${concatStringsSep " " sources})
targets_=(${concatStringsSep " " targets})
set +f
for ((i = 0; i < ''${#targets_[@]}; i++)); do
source="''${sources_[$i]}"
target="''${targets_[$i]}"
if [[ "$source" =~ '*' ]]; then
# If the source name contains '*', perform globbing.
mkdir -p $root/$target
for fn in $source; do
rsync -a --no-o --no-g "$fn" $root/$target/
done
else
mkdir -p $root/$(dirname $target)
if ! [ -e $root/$target ]; then
rsync -a --no-o --no-g $source $root/$target
else
echo "duplicate entry $target -> $source"
exit 1
fi
fi
done
# TODO: Nix really likes to chown things it creates to its current user...
fakeroot nixos-prepare-root $root ${channelSources} ${config.system.build.toplevel} closure
echo "copying staging root to image..."
cptofs ${pkgs.lib.optionalString partitioned "-P 1"} -t ${fsType} -i $diskImage $root/* /
'';
in pkgs.vmTools.runInLinuxVM (
pkgs.runCommand name pkgs.runCommand name
{ preVM = { preVM = prepareImage;
'' buildInputs = with pkgs; [ utillinux e2fsprogs ];
mkdir $out exportReferencesGraph = [ "closure" metaClosure ];
diskImage=$out/nixos.${if format == "qcow2" then "qcow2" else "img"} postVM = ''
${pkgs.vmTools.qemu}/bin/qemu-img create -f ${format} $diskImage "${toString diskSize}M" ${if format == "raw" then ''
mv closure xchg/ mv $diskImage $out/nixos.img
''; diskImage=$out/nixos.img
buildInputs = with pkgs; [ utillinux perl e2fsprogs parted rsync ]; '' else ''
${pkgs.qemu}/bin/qemu-img convert -f raw -O qcow2 $diskImage $out/nixos.qcow2
# I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate diskImage=$out/nixos.qcow2
# image building logic. The comment right below this now appears in 4 different places in nixpkgs :) ''}
# !!! should use XML. ${postVM}
sources = map (x: x.source) contents; '';
targets = map (x: x.target) contents;
exportReferencesGraph =
[ "closure" config.system.build.toplevel ];
inherit postVM;
memSize = 1024; memSize = 1024;
} }
'' ''
${if partitioned then '' ${if partitioned then ''
# Create a single / partition.
parted /dev/vda mklabel msdos
parted /dev/vda -- mkpart primary ext2 1M -1s
. /sys/class/block/vda1/uevent . /sys/class/block/vda1/uevent
mknod /dev/vda1 b $MAJOR $MINOR mknod /dev/vda1 b $MAJOR $MINOR
rootDisk=/dev/vda1 rootDisk=/dev/vda1
@ -76,74 +158,34 @@ pkgs.vmTools.runInLinuxVM (
rootDisk=/dev/vda rootDisk=/dev/vda
''} ''}
# Create an empty filesystem and mount it. # Some tools assume these exist
mkfs.${fsType} -L nixos $rootDisk
mkdir /mnt
mount $rootDisk /mnt
# Register the paths in the Nix database.
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
${config.nix.package.out}/bin/nix-store --load-db --option build-users-group ""
${if fixValidity then ''
# Add missing size/hash fields to the database. FIXME:
# exportReferencesGraph should provide these directly.
${config.nix.package.out}/bin/nix-store --verify --check-contents --option build-users-group ""
'' else ""}
# In case the bootloader tries to write to /dev/sda…
ln -s vda /dev/xvda ln -s vda /dev/xvda
ln -s vda /dev/sda ln -s vda /dev/sda
# Install the closure onto the image mountPoint=/mnt
USER=root ${config.system.build.nixos-install}/bin/nixos-install \ mkdir $mountPoint
--closure ${config.system.build.toplevel} \ mount $rootDisk $mountPoint
--no-channel-copy \
--no-root-passwd \
${optionalString (!installBootLoader) "--no-bootloader"}
# Install a configuration.nix. # Install a configuration.nix
mkdir -p /mnt/etc/nixos mkdir -p /mnt/etc/nixos
${optionalString (configFile != null) '' ${optionalString (configFile != null) ''
cp ${configFile} /mnt/etc/nixos/configuration.nix cp ${configFile} /mnt/etc/nixos/configuration.nix
''} ''}
# Remove /etc/machine-id so that each machine cloning this image will get its own id mount --rbind /dev $mountPoint/dev
rm -f /mnt/etc/machine-id mount --rbind /proc $mountPoint/proc
mount --rbind /sys $mountPoint/sys
# Copy arbitrary other files into the image # Set up core system link, GRUB, etc.
# Semi-shamelessly copied from make-etc.sh. I (@copumpkin) shall factor this stuff out as part of NIXOS_INSTALL_BOOTLOADER=1 chroot $mountPoint /nix/var/nix/profiles/system/bin/switch-to-configuration boot
# https://github.com/NixOS/nixpkgs/issues/23052.
set -f
sources_=($sources)
targets_=($targets)
set +f
for ((i = 0; i < ''${#targets_[@]}; i++)); do # TODO: figure out if I should activate, but for now I won't
source="''${sources_[$i]}" # chroot $mountPoint /nix/var/nix/profiles/system/activate
target="''${targets_[$i]}"
if [[ "$source" =~ '*' ]]; then # The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
rm -f $mountPoint/etc/machine-id
# If the source name contains '*', perform globbing. umount -R /mnt
mkdir -p /mnt/$target
for fn in $source; do
rsync -a --no-o --no-g "$fn" /mnt/$target/
done
else
mkdir -p /mnt/$(dirname $target)
if ! [ -e /mnt/$target ]; then
rsync -a --no-o --no-g $source /mnt/$target
else
echo "duplicate entry $target -> $source"
exit 1
fi
fi
done
umount /mnt
# Make sure resize2fs works. Note that resize2fs has stricter criteria for resizing than a normal # Make sure resize2fs works. Note that resize2fs has stricter criteria for resizing than a normal
# mount, so the `-c 0` and `-i 0` don't affect it. Setting it to `now` doesn't produce deterministic # mount, so the `-c 0` and `-i 0` don't affect it. Setting it to `now` doesn't produce deterministic

View File

@ -6,10 +6,7 @@ let
cfg = config.amazonImage; cfg = config.amazonImage;
in { in {
imports = imports = [ ../../../modules/virtualisation/amazon-image.nix ];
[ ../../../modules/installer/cd-dvd/channel.nix
../../../modules/virtualisation/amazon-image.nix
];
options.amazonImage = { options.amazonImage = {
contents = mkOption { contents = mkOption {

View File

@ -70,7 +70,7 @@ for i in $closures; do
rsync -a $j $mountPoint/nix/store/ rsync -a $j $mountPoint/nix/store/
done done
nix-store --register-validity < $i nix-store --option build-users-group root --register-validity < $i
fi fi
done done

View File

@ -102,7 +102,9 @@
./programs/wvdial.nix ./programs/wvdial.nix
./programs/xfs_quota.nix ./programs/xfs_quota.nix
./programs/xonsh.nix ./programs/xonsh.nix
./programs/zsh/oh-my-zsh.nix
./programs/zsh/zsh.nix ./programs/zsh/zsh.nix
./programs/zsh/zsh-syntax-highlighting.nix
./rename.nix ./rename.nix
./security/acme.nix ./security/acme.nix
./security/apparmor.nix ./security/apparmor.nix

View File

@ -0,0 +1,66 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.zsh.oh-my-zsh;
in
{
options = {
programs.zsh.oh-my-zsh = {
enable = mkOption {
default = false;
description = ''
Enable oh-my-zsh.
'';
};
plugins = mkOption {
default = [];
type = types.listOf(types.str);
description = ''
List of oh-my-zsh plugins
'';
};
custom = mkOption {
default = "";
type = types.str;
description = ''
Path to a custom oh-my-zsh package to override config of oh-my-zsh.
'';
};
theme = mkOption {
default = "";
type = types.str;
description = ''
Name of the theme to be used by oh-my-zsh.
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ oh-my-zsh ];
programs.zsh.interactiveShellInit = with pkgs; with builtins; ''
# oh-my-zsh configuration generated by NixOS
export ZSH=${oh-my-zsh}/share/oh-my-zsh
${optionalString (length(cfg.plugins) > 0)
"plugins=(${concatStringsSep " " cfg.plugins})"
}
${optionalString (stringLength(cfg.custom) > 0)
"ZSH_CUSTOM=\"${cfg.custom}\""
}
${optionalString (stringLength(cfg.theme) > 0)
"ZSH_THEME=\"${cfg.theme}\""
}
source $ZSH/oh-my-zsh.sh
'';
};
}

View File

@ -0,0 +1,43 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.zsh.syntax-highlighting;
in
{
options = {
programs.zsh.syntax-highlighting = {
enable = mkOption {
default = false;
type = types.bool;
description = ''
Enable zsh-syntax-highlighting.
'';
};
highlighters = mkOption {
default = [ "main" ];
type = types.listOf(types.str);
description = ''
Specifies the highlighters to be used by zsh-syntax-highlighting.
The following defined options can be found here:
https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ zsh-syntax-highlighting ];
programs.zsh.interactiveShellInit = with pkgs; with builtins; ''
source ${zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
${optionalString (length(cfg.highlighters) > 0)
"ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})"
}
'';
};
}

View File

@ -84,14 +84,6 @@ in
type = types.bool; type = types.bool;
}; };
enableSyntaxHighlighting = mkOption {
default = false;
description = ''
Enable zsh-syntax-highlighting
'';
type = types.bool;
};
enableAutosuggestions = mkOption { enableAutosuggestions = mkOption {
default = false; default = false;
description = '' description = ''
@ -130,10 +122,6 @@ in
${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""} ${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""}
${optionalString (cfg.enableSyntaxHighlighting)
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
}
${optionalString (cfg.enableAutosuggestions) ${optionalString (cfg.enableAutosuggestions)
"source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh" "source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
} }
@ -143,7 +131,6 @@ in
${cfge.interactiveShellInit} ${cfge.interactiveShellInit}
HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help" HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"
''; '';
@ -206,8 +193,7 @@ in
environment.etc."zinputrc".source = ./zinputrc; environment.etc."zinputrc".source = ./zinputrc;
environment.systemPackages = [ pkgs.zsh ] environment.systemPackages = [ pkgs.zsh ]
++ optional cfg.enableCompletion pkgs.nix-zsh-completions ++ optional cfg.enableCompletion pkgs.nix-zsh-completions;
++ optional cfg.enableSyntaxHighlighting pkgs.zsh-syntax-highlighting;
environment.pathsToLink = optional cfg.enableCompletion "/share/zsh"; environment.pathsToLink = optional cfg.enableCompletion "/share/zsh";

View File

@ -204,5 +204,8 @@ with lib;
"Set the option `services.xserver.displayManager.sddm.package' instead.") "Set the option `services.xserver.displayManager.sddm.package' instead.")
(mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
(mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
# ZSH
(mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntax-highlighting" "enable" ])
]; ];
} }

View File

@ -149,7 +149,7 @@ in
--group fcron \ --group fcron \
--directory /var/spool/fcron --directory /var/spool/fcron
# load system crontab file # load system crontab file
#${pkgs.fcron}/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab} /run/wrappers/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab}
''; '';
serviceConfig = { serviceConfig = {

View File

@ -17,6 +17,7 @@ let
login_cmd exec ${pkgs.stdenv.shell} ${dmcfg.session.script} "%session" login_cmd exec ${pkgs.stdenv.shell} ${dmcfg.session.script} "%session"
halt_cmd ${config.systemd.package}/sbin/shutdown -h now halt_cmd ${config.systemd.package}/sbin/shutdown -h now
reboot_cmd ${config.systemd.package}/sbin/shutdown -r now reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
logfile /dev/stderr
${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)} ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)}
${optionalString (cfg.defaultUser != null) ("focus_password yes")} ${optionalString (cfg.defaultUser != null) ("focus_password yes")}
${optionalString cfg.autoLogin "auto_login yes"} ${optionalString cfg.autoLogin "auto_login yes"}
@ -128,11 +129,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.displayManager.job = services.xserver.displayManager.job =
{ preStart = { environment =
''
rm -f /var/log/slim.log
'';
environment =
{ SLIM_CFGFILE = slimConfig; { SLIM_CFGFILE = slimConfig;
SLIM_THEMESDIR = slimThemesDir; SLIM_THEMESDIR = slimThemesDir;
}; };

View File

@ -94,6 +94,7 @@ in rec {
(all nixos.tests.proxy) (all nixos.tests.proxy)
(all nixos.tests.sddm.default) (all nixos.tests.sddm.default)
(all nixos.tests.simple) (all nixos.tests.simple)
(all nixos.tests.slim)
(all nixos.tests.udisks2) (all nixos.tests.udisks2)
(all nixos.tests.xfce) (all nixos.tests.xfce)

View File

@ -299,6 +299,7 @@ in rec {
tests.samba = callTest tests/samba.nix {}; tests.samba = callTest tests/samba.nix {};
tests.sddm = callSubTests tests/sddm.nix {}; tests.sddm = callSubTests tests/sddm.nix {};
tests.simple = callTest tests/simple.nix {}; tests.simple = callTest tests/simple.nix {};
tests.slim = callTest tests/slim.nix {};
tests.smokeping = callTest tests/smokeping.nix {}; tests.smokeping = callTest tests/smokeping.nix {};
tests.taskserver = callTest tests/taskserver.nix {}; tests.taskserver = callTest tests/taskserver.nix {};
tests.tomcat = callTest tests/tomcat.nix {}; tests.tomcat = callTest tests/tomcat.nix {};

66
nixos/tests/slim.nix Normal file
View File

@ -0,0 +1,66 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "slim";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
machine = { pkgs, lib, ... }: {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
services.xserver.displayManager.slim = {
enable = true;
# Use a custom theme in order to get best OCR results
theme = pkgs.runCommand "slim-theme-ocr" {
nativeBuildInputs = [ pkgs.imagemagick ];
} ''
mkdir "$out"
convert -size 1x1 xc:white "$out/background.jpg"
convert -size 200x100 xc:white "$out/panel.jpg"
cat > "$out/slim.theme" <<EOF
background_color #ffffff
background_style tile
input_fgcolor #000000
msg_color #000000
session_color #000000
session_font Verdana:size=16:bold
username_msg Username:
username_font Verdana:size=16:bold
username_color #000000
username_x 50%
username_y 40%
password_msg Password:
password_x 50%
password_y 40%
EOF
'';
};
};
enableOCR = true;
testScript = { nodes, ... }: let
user = nodes.machine.config.users.extraUsers.alice;
in ''
startAll;
$machine->waitForText(qr/Username:/);
$machine->sendChars("${user.name}\n");
$machine->waitForText(qr/Password:/);
$machine->sendChars("${user.password}\n");
$machine->waitForFile('${user.home}/.Xauthority');
$machine->succeed('xauth merge ${user.home}/.Xauthority');
$machine->waitForWindow('^IceWM ');
# Make sure SLiM doesn't create a log file
$machine->fail('test -e /var/log/slim.log');
'';
})

View File

@ -22,6 +22,10 @@ stdenv.mkDerivation rec {
# Ensure that sessions appear in sort order, rather than in # Ensure that sessions appear in sort order, rather than in
# directory order. # directory order.
./sort-sessions.patch ./sort-sessions.patch
# Allow to set logfile to a special "/dev/stderr" in order to continue
# logging to stderr and thus to the journal.
./no-logfile.patch
]; ];
preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib"; preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";

View File

@ -0,0 +1,80 @@
diff --git a/log.cpp b/log.cpp
index b44677a..7c89dda 100644
--- a/log.cpp
+++ b/log.cpp
@@ -1,23 +1,31 @@
#include "log.h"
#include <iostream>
+#include <cstring>
bool
LogUnit::openLog(const char * filename)
{
- if (logFile.is_open()) {
+ if (isFile && logFile.is_open()) {
cerr << APPNAME
<< ": opening a new Log file, while another is already open"
<< endl;
- logFile.close();
+ closeLog();
}
- logFile.open(filename, ios_base::app);
- return !(logFile.fail());
+ if (strcmp(filename, "/dev/stderr") == 0) {
+ isFile = false;
+ return true;
+ } else {
+ logFile.open(filename, ios_base::app);
+ isFile = true;
+ return !(logFile.fail());
+ }
}
void
LogUnit::closeLog()
{
+ if (!isFile) return;
if (logFile.is_open())
logFile.close();
}
diff --git a/log.h b/log.h
index b7810be..ad548a2 100644
--- a/log.h
+++ b/log.h
@@ -9,11 +9,14 @@
#endif
#include "const.h"
#include <fstream>
+#include <iostream>
using namespace std;
static class LogUnit {
ofstream logFile;
+ bool isFile;
+ inline ostream &getStream() { return isFile ? logFile : cerr; }
public:
bool openLog(const char * filename);
void closeLog();
@@ -22,17 +25,17 @@ public:
template<typename Type>
LogUnit & operator<<(const Type & text) {
- logFile << text; logFile.flush();
+ getStream() << text; getStream().flush();
return *this;
}
LogUnit & operator<<(ostream & (*fp)(ostream&)) {
- logFile << fp; logFile.flush();
+ getStream() << fp; getStream().flush();
return *this;
}
LogUnit & operator<<(ios_base & (*fp)(ios_base&)) {
- logFile << fp; logFile.flush();
+ getStream() << fp; getStream().flush();
return *this;
}
} logStream;

View File

@ -58,6 +58,6 @@ stdenv.mkDerivation rec {
homepage = http://code.google.com/p/tesseract-ocr/; homepage = http://code.google.com/p/tesseract-ocr/;
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [viric]; maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, gtk, gettext, ncurses { stdenv, fetchurl, pkgconfig, gtk, gettext, ncurses, libiconv, libintlOrEmpty
, withBuildColors ? true , withBuildColors ? true
}: }:
@ -18,7 +18,10 @@ stdenv.mkDerivation rec {
--replace 'ifdef TPUT_AVAILABLE' 'ifneq ($(TPUT_AVAILABLE), 0)' --replace 'ifdef TPUT_AVAILABLE' 'ifneq ($(TPUT_AVAILABLE), 0)'
''; '';
buildInputs = [ pkgconfig gtk gettext ]; buildInputs = [ pkgconfig gtk gettext libintlOrEmpty ]
++ stdenv.lib.optional stdenv.isDarwin libiconv;
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
makeFlags = [ makeFlags = [
"PREFIX=$(out)" "PREFIX=$(out)"
@ -35,7 +38,7 @@ stdenv.mkDerivation rec {
that focuses on simplicity and minimalism. that focuses on simplicity and minimalism.
''; '';
license = licenses.zlib; license = licenses.zlib;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
maintainers = [ maintainers.garbas ]; maintainers = [ maintainers.garbas ];
}; };
} }

View File

@ -2,11 +2,11 @@
, libtool, makeWrapper }: , libtool, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nut-2.7.1"; name = "nut-2.7.4";
src = fetchurl { src = fetchurl {
url = "http://www.networkupstools.org/source/2.7/${name}.tar.gz"; url = "http://www.networkupstools.org/source/2.7/${name}.tar.gz";
sha256 = "1667n9h8jcz7k6h24fn615khqahlq5z22zxs4s0q046rsqxdg9ki"; sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq";
}; };
buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ]; buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ];
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
postInstall = '' postInstall = ''
wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \ wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
"$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib" "$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib"

View File

@ -42,6 +42,6 @@ stdenv.mkDerivation {
homepage = http://wordnet.princeton.edu/; homepage = http://wordnet.princeton.edu/;
maintainers = [ ]; maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, config, makeWrapper { stdenv, fetchurl, config, wrapGAppsHook
, alsaLib , alsaLib
, atk , atk
, cairo , cairo
@ -77,7 +77,7 @@ stdenv.mkDerivation {
src = fetchurl { inherit (source) url sha512; }; src = fetchurl { inherit (source) url sha512; };
phases = "unpackPhase installPhase"; phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
libPath = stdenv.lib.makeLibraryPath libPath = stdenv.lib.makeLibraryPath
[ stdenv.cc.cc [ stdenv.cc.cc
@ -124,11 +124,12 @@ stdenv.mkDerivation {
stdenv.cc.cc stdenv.cc.cc
]; ];
buildInputs = [ makeWrapper gtk3 defaultIconTheme ]; buildInputs = [ wrapGAppsHook gtk3 defaultIconTheme ];
# "strip" after "patchelf" may break binaries. # "strip" after "patchelf" may break binaries.
# See: https://github.com/NixOS/patchelf/issues/10 # See: https://github.com/NixOS/patchelf/issues/10
dontStrip = 1; dontStrip = true;
dontPatchELF = true;
installPhase = installPhase =
'' ''
@ -155,22 +156,7 @@ stdenv.mkDerivation {
# wrapFirefox expects "$out/lib" instead of "$out/usr/lib" # wrapFirefox expects "$out/lib" instead of "$out/usr/lib"
ln -s "$out/usr/lib" "$out/lib" ln -s "$out/usr/lib" "$out/lib"
# Create a desktop item. gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
mkdir -p $out/share/applications
cat > $out/share/applications/firefox.desktop <<EOF
[Desktop Entry]
Type=Application
Exec=$out/bin/firefox
Icon=$out/usr/lib/firefox-bin-${version}/browser/icons/mozicon128.png
Name=Firefox
GenericName=Web Browser
Categories=Application;Network;
EOF
wrapProgram "$out/bin/firefox" \
--argv0 "$out/bin/.firefox-wrapped" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
--suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
''; '';
passthru.ffmpegSupport = true; passthru.ffmpegSupport = true;

View File

@ -13,13 +13,13 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dino-unstable-2017-04-20"; name = "dino-unstable-2017-04-24";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dino"; owner = "dino";
repo = "dino"; repo = "dino";
rev = "5c8275ed4efdc7a3a0bc2a9c3a3f46d0383ddcf4"; rev = "3eb9aa0fa79ea9fcebb5f702f81c2e54aafdc8cc";
sha256 = "12k3s8k8wmjyg5m0f4f2vp83bp0m9swmrsms81yd1722z3ragxsf"; sha256 = "0z9ql419q53f20bw4pfwsafxl4qqnz0ip91qibsf9jn5d56kcdwv";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -25,15 +25,18 @@ in stdenv.mkDerivation rec {
"16l9jma2hiwzl9l41yhrwribcgmxca271rq0cfbbm9701mmmciyy"; "16l9jma2hiwzl9l41yhrwribcgmxca271rq0cfbbm9701mmmciyy";
}; };
phases = [ "unpackPhase" "installPhase" "postFixup" ]; # don't remove runtime deps
dontPatchELF = true;
deps = with xorg; [ deps = (with xorg; [
gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes
libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libXrender libX11 libXtst libXScrnSaver
libXrender libX11 libXtst libXScrnSaver gnome2.GConf nss nspr alsaLib ]) ++ [
cups expat stdenv.cc.cc gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus
gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc
udev libnotify # runtime deps
] ++ [
udev libnotify
]; ];
unpackPhase = '' unpackPhase = ''
@ -42,19 +45,20 @@ in stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" Franz patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" Franz
patchelf --set-rpath "$out/share/franz:${stdenv.lib.makeLibraryPath deps}" Franz patchelf --set-rpath "$out/opt/franz:${stdenv.lib.makeLibraryPath deps}" Franz
mkdir -p $out/bin $out/share/franz mkdir -p $out/bin $out/opt/franz
cp -r * $out/share/franz cp -r * $out/opt/franz
ln -s $out/share/franz/Franz $out/bin ln -s $out/opt/franz/Franz $out/bin
# provide desktop item and icon
mkdir -p $out/share/applications $out/share/pixmaps mkdir -p $out/share/applications $out/share/pixmaps
ln -s ${desktopItem}/share/applications/* $out/share/applications ln -s ${desktopItem}/share/applications/* $out/share/applications
ln -s $out/share/franz/resources/app.asar.unpacked/assets/franz.png $out/share/pixmaps ln -s $out/opt/franz/resources/app.asar.unpacked/assets/franz.png $out/share/pixmaps
''; '';
postFixup = '' postFixup = ''
paxmark m $out/share/franz/Franz paxmark m $out/opt/franz/Franz
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -12,7 +12,6 @@ let
url = "https://raw.githubusercontent.com/saenzramiro/rambox/9e4444e6297dd35743b79fe23f8d451a104028d5/resources/Icon.png"; url = "https://raw.githubusercontent.com/saenzramiro/rambox/9e4444e6297dd35743b79fe23f8d451a104028d5/resources/Icon.png";
sha256 = "0r00l4r5mlbgn689i3rp6ks11fgs4h2flvrlggvm2qdd974d1x0b"; sha256 = "0r00l4r5mlbgn689i3rp6ks11fgs4h2flvrlggvm2qdd974d1x0b";
}; };
desktopItem = makeDesktopItem rec { desktopItem = makeDesktopItem rec {
name = "Rambox"; name = "Rambox";
exec = "rambox"; exec = "rambox";
@ -30,31 +29,35 @@ in stdenv.mkDerivation rec {
"13xmljsdahffdzndg30qxh8mj7bgd9jwkxknrvlh3l6w35pbj085"; "13xmljsdahffdzndg30qxh8mj7bgd9jwkxknrvlh3l6w35pbj085";
}; };
phases = [ "unpackPhase" "installPhase" "postFixup" ]; # don't remove runtime deps
dontPatchELF = true;
deps = with xorg; [ deps = (with xorg; [
gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes
libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libXrender libX11 libXtst libXScrnSaver
libXrender libX11 libXtst libXScrnSaver gnome2.GConf nss nspr alsaLib ]) ++ [
cups expat stdenv.cc.cc gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus
gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc
udev libnotify # runtime deps
] ++ [
udev libnotify
]; ];
installPhase = '' installPhase = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" rambox patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" rambox
patchelf --set-rpath "$out/share/rambox:${stdenv.lib.makeLibraryPath deps}" rambox patchelf --set-rpath "$out/opt/rambox:${stdenv.lib.makeLibraryPath deps}" rambox
mkdir -p $out/bin $out/share/rambox mkdir -p $out/bin $out/opt/rambox
cp -r * $out/share/rambox cp -r * $out/opt/rambox
ln -s $out/share/rambox/rambox $out/bin ln -s $out/opt/rambox/rambox $out/bin
# provide desktop item
mkdir -p $out/share/applications mkdir -p $out/share/applications
ln -s ${desktopItem}/share/applications/* $out/share/applications ln -s ${desktopItem}/share/applications/* $out/share/applications
''; '';
postFixup = '' postFixup = ''
paxmark m $out/share/rambox/rambox paxmark m $out/opt/rambox/rambox
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2,15 +2,15 @@
buildGoPackage rec { buildGoPackage rec {
name = "ipfs-${version}"; name = "ipfs-${version}";
version = "0.4.8"; version = "0.4.6";
rev = "8e7484ed794d1aecb3e773e9003ae64c7b78bb87"; rev = "ed729423ce548785834cdcaa21aab11ebc3a1b1a";
goPackagePath = "github.com/ipfs/go-ipfs"; goPackagePath = "github.com/ipfs/go-ipfs";
extraSrcPaths = [ extraSrcPaths = [
(fetchgx { (fetchgx {
inherit name src; inherit name src;
sha256 = "1h4n74n65z4sw3fqz8nfcrwisbvvwwfq69909w3kgrjsxs7505s5"; sha256 = "1wwzbps3ry3vlrr0iqhvxd44x0wi99dcp5hlxvh79dc0g9r7myfk";
}) })
]; ];
@ -18,7 +18,7 @@ buildGoPackage rec {
owner = "ipfs"; owner = "ipfs";
repo = "go-ipfs"; repo = "go-ipfs";
inherit rev; inherit rev;
sha256 = "15jcg0wbm7g82fsmhc1vxrsszbxcghls3rsyv35n1hv5k5r5d5nh"; sha256 = "1b262k1lhb1g68l8hghly4pdrxx1c6wbv6ij6dg399zdwqzczl13";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -21,12 +21,12 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.7"; version = "1.7.1";
name = "weechat-${version}"; name = "weechat-${version}";
src = fetchurl { src = fetchurl {
url = "http://weechat.org/files/src/weechat-${version}.tar.bz2"; url = "http://weechat.org/files/src/weechat-${version}.tar.bz2";
sha256 = "1l34rgr83nf2h71mwzhv5c0x03msrwv3kzx3cwzczx72xrih12n7"; sha256 = "1020m1lsm8lg9n0dlxgp2wbn9b0r11g8r0namnzi2x6gvxn7iyf0";
}; };
outputs = [ "out" "doc" ]; outputs = [ "out" "doc" ];

View File

@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
homepage = http://sylpheed.sraoss.jp/en/; homepage = http://sylpheed.sraoss.jp/en/;
description = "A lightweight and user-friendly e-mail client"; description = "A lightweight and user-friendly e-mail client";
maintainers = [ maintainers.eelco ]; maintainers = [ maintainers.eelco ];
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
license = "GPL"; license = "GPL";
}; };
} }

View File

@ -6,7 +6,7 @@
, cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc , cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc
, autoconf213, which, m4 , autoconf213, which, m4
, writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl , writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl
, enableGTK3 ? false, gtk3, wrapGAppsHook , enableGTK3 ? false, gtk3, wrapGAppsHook, makeWrapper
, enableCalendar ? true , enableCalendar ? true
, debugBuild ? false , debugBuild ? false
, # If you want the resulting program to call itself "Thunderbird" instead , # If you want the resulting program to call itself "Thunderbird" instead
@ -15,9 +15,12 @@
# Mozilla Foundation, see # Mozilla Foundation, see
# http://www.mozilla.org/foundation/trademarks/. # http://www.mozilla.org/foundation/trademarks/.
enableOfficialBranding ? false enableOfficialBranding ? false
, makeDesktopItem
}: }:
stdenv.mkDerivation rec { let
wrapperTool = if enableGTK3 then wrapGAppsHook else makeWrapper;
in stdenv.mkDerivation rec {
name = "thunderbird-${version}"; name = "thunderbird-${version}";
version = "52.0.1"; version = "52.0.1";
@ -46,8 +49,8 @@ stdenv.mkDerivation rec {
] ]
++ lib.optional enableGTK3 gtk3; ++ lib.optional enableGTK3 gtk3;
# from firefox + m4 # from firefox + m4 + wrapperTool
nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python ] ++ lib.optional enableGTK3 wrapGAppsHook; nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python wrapperTool ];
configureFlags = configureFlags =
[ # from firefox, but without sound libraries (alsa, libvpx, pulseaudio) [ # from firefox, but without sound libraries (alsa, libvpx, pulseaudio)
@ -100,13 +103,61 @@ stdenv.mkDerivation rec {
paxmark m ../objdir/dist/bin/xpcshell paxmark m ../objdir/dist/bin/xpcshell
''; '';
dontWrapGApps = true; # we do it ourselves
postInstall = postInstall =
'' ''
# For grsecurity kernels # For grsecurity kernels
paxmark m $out/lib/thunderbird-[0-9]*/thunderbird paxmark m $out/lib/thunderbird-[0-9]*/thunderbird
# Needed to find Mozilla runtime # TODO: Move to a dev output?
gappsWrapperArgs+=(--argv0 "$out/bin/.thunderbird-wrapped") rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
# $binary is a symlink to $target.
# We wrap $target by replacing the $binary symlink.
local target="$out/lib/thunderbird-${version}/thunderbird"
local binary="$out/bin/thunderbird"
# Wrap correctly, this is needed to
# 1) find Mozilla runtime, because argv0 must be the real thing,
# or a symlink thereto. It cannot be the wrapper itself
# 2) detect itself as the default mailreader across builds
gappsWrapperArgs+=(
--argv0 "$target"
--set MOZ_APP_LAUNCHER thunderbird
)
${
# We wrap manually because wrapGAppsHook does not detect the symlink
# To mimic wrapGAppsHook, we run it with dontWrapGApps, so
# gappsWrapperArgs gets defined correctly
lib.optionalString enableGTK3 "wrapGAppsHook"
}
# "$binary" is a symlink, replace it by the wrapper
rm "$binary"
makeWrapper "$target" "$binary" "''${gappsWrapperArgs[@]}"
${ let desktopItem = makeDesktopItem {
name = "thunderbird";
exec = "thunderbird %U";
desktopName = "Thunderbird";
icon = "$out/lib/thunderbird-${version}/chrome/icons/default/default256.png";
genericName = "Main Reader";
categories = "Application;Network";
mimeType = stdenv.lib.concatStringsSep ";" [
# Email
"x-scheme-handler/mailto"
"message/rfc822"
# Newsgroup
"x-scheme-handler/news"
"x-scheme-handler/snews"
"x-scheme-handler/nntp"
# Feed
"x-scheme-handler/feed"
"application/rss+xml"
"application/x-extension-rss"
];
}; in desktopItem.buildCommand
}
''; '';
postFixup = postFixup =

View File

@ -13,6 +13,7 @@ stdenv.mkDerivation {
prePatch = '' prePatch = ''
sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h
substituteInPlace Makefile --replace "gcc" "cc"
''; '';
patches = [ ./10_fix_buffer_overflow_wordole_c.patch ]; patches = [ ./10_fix_buffer_overflow_wordole_c.patch ];
@ -25,6 +26,6 @@ stdenv.mkDerivation {
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.peti ]; maintainers = [ stdenv.lib.maintainers.peti ];
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -1,24 +1,45 @@
{ stdenv, fetchurl, qtbase, qtsvg, qmakeHook, boost }: { stdenv, fetchpatch, fetchFromGitHub, makeQtWrapper, qmakeHook, pkgconfig
, qtbase, qtsvg, qtserialport, boost, libgit2
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.9.0b";
name = "fritzing-${version}"; name = "fritzing-${version}";
version = "0.9.3b";
src = fetchurl { src = fetchFromGitHub {
url = "http://fritzing.org/download/${version}/source-tarball/fritzing-${version}.source.tar_1.bz2"; owner = "fritzing";
sha256 = "181qnknq1j5x075icpw2qk0sc4wcj9f2hym533vs936is0wxp2gk"; repo = "fritzing-app";
rev = version;
sha256 = "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3";
}; };
unpackPhase = '' parts = fetchFromGitHub {
tar xjf ${src} owner = "fritzing";
''; repo = "fritzing-parts";
rev = version;
sha256 = "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1";
};
buildInputs = [ qtbase qtsvg boost qmakeHook ]; patches = [(fetchpatch {
name = "0001-Squashed-commit-of-the-following.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Squashed-commit-of-the-following.patch?h=fritzing";
sha256 = "1cv6myidxhy28i8m8v13ghzkvx5978p9dcd8v7885y0l1h3108mf";
})];
buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ];
nativeBuildInputs = [ qmakeHook makeQtWrapper pkgconfig ];
qmakeFlags = [ "phoenix.pro" ]; qmakeFlags = [ "phoenix.pro" ];
enableParallelBuilding = true;
preConfigure = '' preConfigure = ''
cd fritzing-${version}.source ln -s "$parts" parts
'';
postInstall = ''
wrapQtProgram $out/bin/Fritzing
''; '';
meta = { meta = {

View File

@ -22,6 +22,6 @@ stdenv.mkDerivation rec{
description = "Tools for generating DVD files to be played on standalone DVD players"; description = "Tools for generating DVD files to be played on standalone DVD players";
homepage = http://dvdauthor.sourceforge.net/; homepage = http://dvdauthor.sourceforge.net/;
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -79,13 +79,13 @@ let
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "mpv-${version}"; name = "mpv-${version}";
version = "0.24.0"; version = "0.25.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mpv-player"; owner = "mpv-player";
repo = "mpv"; repo = "mpv";
rev = "v${version}"; rev = "v${version}";
sha256 = "1aq1lvhw4l0i2gc9x6ijaaj2h3894jbcpd4j055n0y9vg9vqm6yy"; sha256 = "16r3fyq472hzxnh6g3gm520pmw1ybslaki3pqjm2d9jnd2md1pa5";
}; };
patchPhase = '' patchPhase = ''

View File

@ -9,10 +9,11 @@ let
else else
throw "Unsupported architecture"; throw "Unsupported architecture";
version = (builtins.parseDrvName edk2.name).version;
in in
stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" { stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" {
name = "OVMF-2014-12-10"; name = "OVMF-${version}";
# TODO: properly include openssl for secureBoot # TODO: properly include openssl for secureBoot
buildInputs = [nasm iasl] ++ stdenv.lib.optionals (secureBoot == true) [ openssl ]; buildInputs = [nasm iasl] ++ stdenv.lib.optionals (secureBoot == true) [ openssl ];

View File

@ -18,7 +18,7 @@
with stdenv.lib; with stdenv.lib;
let let
version = "2.8.1"; version = "2.9.0";
audio = optionalString (hasSuffix "linux" stdenv.system) "alsa," audio = optionalString (hasSuffix "linux" stdenv.system) "alsa,"
+ optionalString pulseSupport "pa," + optionalString pulseSupport "pa,"
+ optionalString sdlSupport "sdl,"; + optionalString sdlSupport "sdl,";
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2"; url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
sha256 = "1kdv8aa800rbsz9qnm4saw79vr052p83by21ryah68ics9z4r3h1"; sha256 = "053c7ivp3li7cdagzkp2wdc5myybzjf826r6qfkcf0xvn4bv5gq0";
}; };
buildInputs = buildInputs =
@ -54,66 +54,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
patches = let patches = [ ./no-etc-install.patch ]
upstreamPatch = name: commit: sha256: fetchurl { ++ optional nixosTestRunner ./force-uid0-on-9p.patch;
name = "${name}.patch";
url = "http://git.qemu-project.org/?p=qemu.git;a=patch;h=${commit}";
inherit sha256;
};
in [
./no-etc-install.patch
# bugfixes
# xhci: fix event queue IRQ handling
(upstreamPatch "qemu-fix-win7-xhci" "7da76e12cc5cc902dda4c168d8d608fd4e61cbc5"
"0m1ggbxziy7vqz9007ypzg23cni8cc4db36wlnhxz0kdpq70c6x0")
# xhci: only free completed transfers
(upstreamPatch "qemu-xhci-free-completed-transfers" "f94d18d6c6df388fde196d3ab252f57e33843a8b"
"0lk19qss6ky7cqnvis54742cr2z0vl8c64chhch0kp6n83hray9x")
# security fixes from upstream
# net: imx: limit buffer descriptor count
(upstreamPatch "CVE-2016-7907" "81f17e0d435c3db3a3e67e0d32ebf9c98973211f"
"0dzghbm3jmnyw34kd40a6akrr1cpizd9hdzqmhlc2ljab7pr1rcb")
# watchdog: 6300esb: add exit function
(upstreamPatch "CVE-2016-10155" "eb7a20a3616085d46aa6b4b4224e15587ec67e6e"
"1xk00fyls0hdza11dyfrnzcn6gibmmcrwy7sxgp6iizp6wgzi3vw")
# audio: ac97: add exit function
(upstreamPatch "CVE-2017-5525" "12351a91da97b414eec8cdb09f1d9f41e535a401"
"190b4aqr35p4lb3rjarknfi1ip1c9zizliqp1dd6frx4364y5yp2")
# audio: es1370: add exit function
(upstreamPatch "CVE-2017-5526" "069eb7b2b8fc47c7cb52e5a4af23ea98d939e3da"
"05xgzd3zldk3x2vqpjag9z5ilhdkpkyh633fb5kvnz8scns6v86f")
# serial: fix memory leak in serial exit
(upstreamPatch "CVE-2017-5579" "8409dc884a201bf74b30a9d232b6bbdd00cb7e2b"
"0lbcyhif1kdcy8my0bv8aqr2f421kmljcch3plrjzj9pgcm4sv83")
# megasas: fix guest-triggered memory leak
(upstreamPatch "CVE-2017-5856" "765a707000e838c30b18d712fe6cb3dd8e0435f3"
"03pjkn8l8rp9ip5h5rm1dp0nrwd43nmgpwamz4z1vy3rli1z3yjw")
# virtio-gpu: fix resource leak in virgl_cmd_resource_unref
(upstreamPatch "CVE-2017-5857" "5e8e3c4c75c199aa1017db816fca02be2a9f8798"
"1kz14rmxf049zl5m27apzpbvy8dk0g47n9gnwy0nm70g65rl1dh8")
# usb: ccid: check ccid apdu length
(upstreamPatch "CVE-2017-5898" "c7dfbf322595ded4e70b626bf83158a9f3807c6a"
"1y2j0qw04s8fl0cs8i619y08kj75lxn3c0y19g710fzpk3rq8dvn")
# xhci: apply limits to loops
(upstreamPatch "CVE-2017-5973" "f89b60f6e5fee3923bedf80e82b4e5efc1bb156b"
"06niyighjxb4p5z2as3mqfmrwrzn4sq47j7raipbq9gnda7x9sw6")
# sd: sdhci: check transfer mode register in multi block transfer
(upstreamPatch "CVE-2017-5987" "6e86d90352adf6cb08295255220295cf23c4286e"
"09yfxf93cisx8rhm0h48ib1ibwfs420k5pqpz8dnz33nci9567jm")
] ++ optional nixosTestRunner ./force-uid0-on-9p.patch;
hardeningDisable = [ "stackprotector" ]; hardeningDisable = [ "stackprotector" ];

View File

@ -1,11 +1,10 @@
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -461,7 +461,7 @@ @@ -597,7 +597,7 @@
install: all $(if $(BUILD_DOCS),install-doc) \ -install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir
-install-datadir install-localstatedir +install: all $(if $(BUILD_DOCS),install-doc) install-datadir
+install-datadir
ifneq ($(TOOLS),) ifneq ($(TOOLS),)
$(call install-prog,$(TOOLS),$(DESTDIR)$(bindir)) $(call install-prog,$(subst qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir))
endif endif

View File

@ -0,0 +1,37 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "emacs-all-the-icons-fonts-${version}";
version = "2.50";
src = fetchFromGitHub {
owner = "domtronn";
repo = "all-the-icons.el";
rev = "2.5.0";
sha256 = "125qw96rzbkv39skxk5511jrcx9hxm0fqcmny6213wzswgdn37z3";
};
installPhase = ''
mkdir -p $out/share/fonts/all-the-icons
for font in $src/fonts/*.ttf; do cp $font $out/share/fonts/all-the-icons; done
'';
meta = with stdenv.lib; {
description = "Icon fonts for emacs all-the-icons";
longDescription = ''
The emacs package all-the-icons provides icons to improve
presentation of information in emacs. This package provides
the fonts needed to make the package work properly.
'';
homepage = https://github.com/domtronn/all-the-icons.el;
/*
The fonts come under a mixture of licenses - the MIT license,
SIL OFL license, and Apache license v2.0. See the GitHub page
for further information.
*/
license = licenses.free;
platforms = platforms.all;
maintainers = with maintainers; [ rlupton20 ];
};
}

View File

@ -18,8 +18,13 @@ stdenv.mkDerivation rec {
buildInputs = [ vala_0_32 libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2 buildInputs = [ vala_0_32 libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
intltool docbook_xsl docbook_xsl_ns makeWrapper ]; intltool docbook_xsl docbook_xsl_ns makeWrapper ];
postConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace client/Makefile \
--replace "-soname=libdconf.so.1" "-install_name,libdconf.so.1"
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
maintainers = gnome3.maintainers; maintainers = gnome3.maintainers;
}; };
} }

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
preConfigure = "patchShebangs ."; preConfigure = "patchShebangs .";
configureFlags = [ "--enable-introspection" ]; configureFlags = [ "--enable-introspection" "--disable-Bsymbolic" ];
enableParallelBuilding = true; enableParallelBuilding = true;
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
''; '';
license = licenses.lgpl2; license = licenses.lgpl2;
maintainers = with maintainers; [ astsmtl antono lethalman ]; maintainers = with maintainers; [ astsmtl antono lethalman ];
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
description = "A programming language for the analysis and transformation of computer languages"; description = "A programming language for the analysis and transformation of computer languages";
homepage = http://www.colm.net/open-source/colm; homepage = http://www.colm.net/open-source/colm;
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ pSub ]; maintainers = with maintainers; [ pSub ];
}; };
} }

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation ( rec { stdenv.mkDerivation ( rec {
name = "ponyc-${version}"; name = "ponyc-${version}";
version = "0.13.0"; version = "0.13.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ponylang"; owner = "ponylang";
repo = "ponyc"; repo = "ponyc";
rev = version; rev = version;
sha256 = "1agb7aiii7pl8zsh3h0lfzghmm1ajj15gx1j48xjyvplxixdgn9j"; sha256 = "1x3w7mxpwgf2bn2c1qqxbj4w5gp775l7r42lj9jvspayb6a6w28s";
}; };
buildInputs = [ llvm makeWrapper which ]; buildInputs = [ llvm makeWrapper which ];

View File

@ -1,16 +1,16 @@
{stdenv, fetchgit, coq, coqPackages}: {stdenv, fetchgit, coq, coqPackages}:
let revision = "b73a594af5460567dc233b2f2e7b0f781ae0490d"; in let revision = "04785ee692036e7ba9f4c4e380b1995128a97bf8"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "coq-QuickChick-${coq.coq-version}-${version}"; name = "coq-QuickChick-${coq.coq-version}-${version}";
version = "20150605-${builtins.substring 0 7 revision}"; version = "20170422-${builtins.substring 0 7 revision}";
src = fetchgit { src = fetchgit {
url = git://github.com/QuickChick/QuickChick.git; url = git://github.com/QuickChick/QuickChick.git;
rev = revision; rev = revision;
sha256 = "1prlihkgi2yvgzd62x80fsnxp5w1n0wyk7zrd6zwa8dbqx9pbr09"; sha256 = "1x5idk9d9r5mj1w54676a5j92wr1id7c9dmknkpmnh78rgrqzy5j";
}; };
buildInputs = [ coq.ocaml coq.camlp5 ]; buildInputs = [ coq.ocaml coq.camlp5 ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, expat, zlib, boost }: { stdenv, fetchurl, expat, zlib, boost, libiconv, darwin }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "exempi-2.4.2"; name = "exempi-2.4.2";
@ -12,11 +12,12 @@ stdenv.mkDerivation rec {
"--with-boost=${boost.dev}" "--with-boost=${boost.dev}"
]; ];
buildInputs = [ expat zlib boost ]; buildInputs = [ expat zlib boost ]
++ stdenv.lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.CoreServices ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://libopenraw.freedesktop.org/wiki/Exempi/; homepage = http://libopenraw.freedesktop.org/wiki/Exempi/;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
license = licenses.bsd3; license = licenses.bsd3;
}; };
} }

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
code, LGPL or LGPL-compatible for the supporting library). code, LGPL or LGPL-compatible for the supporting library).
''; '';
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
src = fetchurl { src = fetchurl {

View File

@ -12,7 +12,7 @@ kdeFramework {
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;
meta = with lib; { meta = with lib; {
platforms = lib.platforms.linux; platforms = platforms.linux ++ platforms.darwin;
homepage = "http://www.kde.org"; homepage = "http://www.kde.org";
license = licenses.bsd2; license = licenses.bsd2;
maintainers = [ maintainers.ttuegel ]; maintainers = [ maintainers.ttuegel ];

View File

@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
description = "A simple library for processing structured configuration files"; description = "A simple library for processing structured configuration files";
license = licenses.lgpl3; license = licenses.lgpl3;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
quick to integrate with your code. quick to integrate with your code.
''; '';
license = licenses.isc; license = licenses.isc;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ nckx ]; maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -1,21 +1,25 @@
{ stdenv, fetchurl, cmake, pkgconfig }: { stdenv, fetchurl, cmake, pkgconfig, darwin }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libdiscid-${version}"; name = "libdiscid-${version}";
version = "0.6.2"; version = "0.6.2";
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ];
src = fetchurl { src = fetchurl {
url = "http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/${name}.tar.gz"; url = "http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/${name}.tar.gz";
sha256 = "1f9irlj3dpb5gyfdnb1m4skbjvx4d4hwiz2152f83m0d9jn47r7r"; sha256 = "1f9irlj3dpb5gyfdnb1m4skbjvx4d4hwiz2152f83m0d9jn47r7r";
}; };
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework CoreFoundation -framework IOKit";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A C library for creating MusicBrainz DiscIDs from audio CDs"; description = "A C library for creating MusicBrainz DiscIDs from audio CDs";
homepage = http://musicbrainz.org/doc/libdiscid; homepage = http://musicbrainz.org/doc/libdiscid;
maintainers = with maintainers; [ ehmry ]; maintainers = with maintainers; [ ehmry ];
license = licenses.lgpl21; license = licenses.lgpl21;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "A library for reading DVDs"; description = "A library for reading DVDs";
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.wmertens ]; maintainers = [ stdenv.lib.maintainers.wmertens ];
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21Plus; license = licenses.lgpl21Plus;
description = "A glib-based library for file management"; description = "A glib-based library for file management";
maintainers = [ maintainers.ttuegel ]; maintainers = [ maintainers.ttuegel ];
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, glib, pkgconfig, perl, intltool, gobjectIntrospection }: { stdenv, fetchurl, glib, pkgconfig, perl, intltool, gobjectIntrospection, libintlOrEmpty }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libgtop-${version}"; name = "libgtop-${version}";
major = "2.34"; major = "2.34";
@ -10,9 +10,12 @@ stdenv.mkDerivation rec {
}; };
propagatedBuildInputs = [ glib ]; propagatedBuildInputs = [ glib ];
buildInputs = libintlOrEmpty;
nativeBuildInputs = [ pkgconfig perl intltool gobjectIntrospection ]; nativeBuildInputs = [ pkgconfig perl intltool gobjectIntrospection ];
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
meta = { meta = {
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -3,7 +3,8 @@
, documentation ? false # build documentation , documentation ? false # build documentation
, avahiSupport ? false # build support for Avahi in libinfinity , avahiSupport ? false # build support for Avahi in libinfinity
, stdenv, fetchurl, pkgconfig, glib, libxml2, gnutls, gsasl , stdenv, fetchurl, pkgconfig, glib, libxml2, gnutls, gsasl
, gtk2 ? null, gtkdoc ? null, avahi ? null, libdaemon ? null, libidn, gss }: , gtk2 ? null, gtkdoc ? null, avahi ? null, libdaemon ? null, libidn, gss
, libintlOrEmpty }:
let let
edf = flag: feature: (if flag then "--with-" else "--without-") + feature; edf = flag: feature: (if flag then "--with-" else "--without-") + feature;
@ -17,7 +18,7 @@ in stdenv.mkDerivation rec {
sha256 = "1idsxb6rz4i55g3vi2sv7hmm57psbccpb57yc4jgphaq6ydgqsr6"; sha256 = "1idsxb6rz4i55g3vi2sv7hmm57psbccpb57yc4jgphaq6ydgqsr6";
}; };
buildInputs = [ pkgconfig glib libxml2 gsasl libidn gss ] buildInputs = [ pkgconfig glib libxml2 gsasl libidn gss libintlOrEmpty ]
++ optional gtkWidgets gtk2 ++ optional gtkWidgets gtk2
++ optional documentation gtkdoc ++ optional documentation gtkdoc
++ optional avahiSupport avahi ++ optional avahiSupport avahi
@ -34,12 +35,14 @@ in stdenv.mkDerivation rec {
${edf avahiSupport "avahi"} ${edf avahiSupport "avahi"}
''; '';
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
meta = { meta = {
homepage = http://gobby.0x539.de/; homepage = http://gobby.0x539.de/;
description = "An implementation of the Infinote protocol written in GObject-based C"; description = "An implementation of the Infinote protocol written in GObject-based C";
license = stdenv.lib.licenses.lgpl2Plus; license = stdenv.lib.licenses.lgpl2Plus;
maintainers = [ stdenv.lib.maintainers.phreedom ]; maintainers = [ stdenv.lib.maintainers.phreedom ];
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
homepage = http://sourceforge.net/projects/liblo; homepage = http://sourceforge.net/projects/liblo;
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
maintainers = [stdenv.lib.maintainers.marcweber]; maintainers = [stdenv.lib.maintainers.marcweber];
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -18,6 +18,6 @@ stdenv.mkDerivation {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
description = "Library to read freedesktop.org menu files"; description = "Library to read freedesktop.org menu files";
maintainers = [ maintainers.ttuegel ]; maintainers = [ maintainers.ttuegel ];
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -5,11 +5,12 @@
, enableJPEG ? true, libjpeg , enableJPEG ? true, libjpeg
, enablePNG ? true, libpng , enablePNG ? true, libpng
, enableTIFF ? true, libtiff , enableTIFF ? true, libtiff
, enableEXR ? true, openexr, ilmbase , enableEXR ? (!stdenv.isDarwin), openexr, ilmbase
, enableJPEG2K ? true, jasper , enableJPEG2K ? true, jasper
, enableFfmpeg ? false, ffmpeg , enableFfmpeg ? false, ffmpeg
, enableGStreamer ? false, gst_all , enableGStreamer ? false, gst_all
, enableEigen ? false, eigen , enableEigen ? false, eigen
, darwin
}: }:
let let
@ -48,6 +49,7 @@ stdenv.mkDerivation rec {
++ lib.optional enableFfmpeg ffmpeg ++ lib.optional enableFfmpeg ffmpeg
++ lib.optionals enableGStreamer (with gst_all; [ gstreamer gst-plugins-base ]) ++ lib.optionals enableGStreamer (with gst_all; [ gstreamer gst-plugins-base ])
++ lib.optional enableEigen eigen ++ lib.optional enableEigen eigen
++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa QTKit ])
; ;
propagatedBuildInputs = lib.optional enablePython pythonPackages.numpy; propagatedBuildInputs = lib.optional enablePython pythonPackages.numpy;
@ -76,11 +78,11 @@ stdenv.mkDerivation rec {
passthru = lib.optionalAttrs enablePython { pythonPath = []; }; passthru = lib.optionalAttrs enablePython { pythonPath = []; };
meta = { meta = with stdenv.lib; {
description = "Open Computer Vision Library with more than 500 algorithms"; description = "Open Computer Vision Library with more than 500 algorithms";
homepage = http://opencv.org/; homepage = http://opencv.org/;
license = stdenv.lib.licenses.bsd3; license = licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [viric flosse]; maintainers = with maintainers; [ viric flosse ];
platforms = with stdenv.lib.platforms; linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -1,13 +1,13 @@
{ stdenv, fetchFromGitHub, qmakeHook, qtbase, pkgconfig, gtk2 }: { stdenv, fetchFromGitHub, qmakeHook, qtbase, pkgconfig, gtk2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qtstyleplugins-2016-12-01"; name = "qtstyleplugins-2017-03-11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qt"; owner = "qt";
repo = "qtstyleplugins"; repo = "qtstyleplugins";
rev = "7aa47640c202cc4a9c16aa7df98191236743c8ba"; rev = "335dbece103e2cbf6c7cf819ab6672c2956b17b3";
sha256 = "0pysgn5yhbh85rv7syvf2w9g1gj1z1nwspjri39dc95vj108lin5"; sha256 = "085wyn85nrmzr8nv5zv7fi2kqf8rp1gnd30h72s30j55xvhmxvmy";
}; };
buildInputs = [ qmakeHook pkgconfig gtk2 ]; buildInputs = [ qmakeHook pkgconfig gtk2 ];
@ -23,6 +23,5 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21; license = licenses.lgpl21;
maintainers = [ maintainers.gnidorah ]; maintainers = [ maintainers.gnidorah ];
platforms = platforms.linux; platforms = platforms.linux;
broken = builtins.compareVersions qtbase.version "5.7.0" > 0;
}; };
} }

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
homepage = http://qwt.sourceforge.net/; homepage = http://qwt.sourceforge.net/;
# LGPL 2.1 plus a few exceptions (more liberal) # LGPL 2.1 plus a few exceptions (more liberal)
license = stdenv.lib.licenses.qwt; license = stdenv.lib.licenses.qwt;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
maintainers = [ maintainers.bjornfor ]; maintainers = [ maintainers.bjornfor ];
branch = "6"; branch = "6";
}; };

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec{
description = "Scaling, colorspace conversion and dithering library"; description = "Scaling, colorspace conversion and dithering library";
homepage = https://github.com/sekrit-twc/zimg; homepage = https://github.com/sekrit-twc/zimg;
license = licenses.wtfpl; license = licenses.wtfpl;
platforms = platforms.linux; # check upstream issue #52 platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ rnhmjoj ]; maintainers = with maintainers; [ rnhmjoj ];
}; };
} }

View File

@ -2,7 +2,7 @@ Node.js packages
=============== ===============
To add a package from [NPM](https://www.npmjs.com/) to nixpkgs: To add a package from [NPM](https://www.npmjs.com/) to nixpkgs:
1. Install node2nix: `nix-env -f '<nixpkgs>' -iA node2nix`. 1. Install node2nix: `nix-env -f '<nixpkgs>' -iA nodePackages.node2nix`.
2. Modify `pkgs/development/node-packages/node-packages.json`, to add, update, 2. Modify `pkgs/development/node-packages/node-packages.json`, to add, update,
or remove package entries. or remove package entries.
3. Run the script: `cd pkgs/development/node-packages && sh generate.sh`. 3. Run the script: `cd pkgs/development/node-packages && sh generate.sh`.

View File

@ -0,0 +1,57 @@
{ buildPythonPackage
, fetchPypi
, isPy3k
, stdenv
, numpy
, wxPython
, matplotlib
, pycairo
, python-gnupg
, xlrd
, xlwt
, jedi
, pyenchant
, basemap
, pygtk
, makeDesktopItem
}:
buildPythonPackage rec {
name = "${pname}-${version}";
pname = "pyspread";
version = "1.1";
src = fetchPypi {
inherit pname version;
sha256 = "0m1a4zvzrfrnc42j8mrbm7747w03nzyl9z02wjagccmlhi6nd9hx";
};
propagatedBuildInputs = [ numpy wxPython matplotlib pycairo python-gnupg xlrd xlwt jedi pyenchant basemap pygtk ];
# Could also (optionally) add pyrsvg and python bindings for libvlc
# Tests try to access X Display
doCheck = false;
disabled = isPy3k;
desktopItem = makeDesktopItem rec {
name = pname;
exec = name;
icon = name;
desktopName = "Pyspread";
genericName = "Spreadsheet";
comment = meta.description;
categories = "Development;Spreadsheet;";
};
postInstall = ''
mkdir -p $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications
'';
meta = with stdenv.lib; {
description = "Pyspread is a non-traditional spreadsheet application that is based on and written in the programming language Python";
homepage = https://manns.github.io/pyspread/;
license = licenses.gpl3;
};
}

View File

@ -12,6 +12,8 @@
, isPy3k , isPy3k
, isPyPy , isPyPy
, python , python
, cairo
, pango
}: }:
assert wxGTK.unicode; assert wxGTK.unicode;
@ -43,6 +45,15 @@ buildPythonPackage rec {
# this check is supposed to only return false on older systems running non-framework python # this check is supposed to only return false on older systems running non-framework python
substituteInPlace src/osx_cocoa/_core_wrap.cpp \ substituteInPlace src/osx_cocoa/_core_wrap.cpp \
--replace "return wxPyTestDisplayAvailable();" "return true;" --replace "return wxPyTestDisplayAvailable();" "return true;"
'' + lib.optionalString (!stdenv.isDarwin) ''
substituteInPlace wx/lib/wxcairo.py \
--replace 'cairoLib = None' 'cairoLib = ctypes.CDLL("${cairo}/lib/libcairo.so")'
substituteInPlace wx/lib/wxcairo.py \
--replace '_dlls = dict()' '_dlls = {k: ctypes.CDLL(v) for k, v in [
("gdk", "${wxGTK.gtk}/lib/libgtk-x11-2.0.so"),
("pangocairo", "${pango.out}/lib/libpangocairo-1.0.so"),
("appsvc", None)
]}'
''; '';
NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lX11 -lgdk-x11-2.0"; NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lX11 -lgdk-x11-2.0";

View File

@ -5,9 +5,9 @@ buildRubyGem rec {
name = "${gemName}-${version}"; name = "${gemName}-${version}";
gemName = "bundix"; gemName = "bundix";
version = "2.0.8"; version = "2.1.0";
sha256 = "0ikpf2g01izadjpdnc4k2rb9v4g11f1jk2y5alxc7n7rxjkwdc66"; sha256 = "5a073c59dfc7e2367c47e6513fc8914d27e11c08f82bc1103c4793dfb2837bef";
buildInputs = [bundler]; buildInputs = [bundler];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ammonite-repl-${version}"; name = "ammonite-repl-${version}";
version = "0.8.2"; version = "0.8.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/2.12-${version}"; url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/2.12-${version}";
sha256 = "0fgwqdvk0nljd6xm16r8qdhjcp7ix4vx91w5ab856hllf4911120"; sha256 = "0y4524y2w7aq300djcazb7ckkr3gqpim2grcgb237mxq3fdvb0r8";
}; };
propagatedBuildInputs = [ jre ] ; propagatedBuildInputs = [ jre ] ;

View File

@ -1,16 +1,16 @@
{ lib, buildGoPackage, fetchFromGitLab, fetchurl, go-bindata }: { lib, buildGoPackage, fetchFromGitLab, fetchurl, go-bindata }:
let let
version = "9.0.0"; version = "9.1.0";
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64 # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
docker_x86_64 = fetchurl { docker_x86_64 = fetchurl {
url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-x86_64.tar.xz"; url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-x86_64.tar.xz";
sha256 = "1f170akb7j7imgr18m32fy6v3rk98inrjl5a4xymfpivwwqyv9p8"; sha256 = "1mdcw755fygnf30v0gr13mx20zjqmxg5w2kj3k2jgcsh3gyrvymr";
}; };
docker_arm = fetchurl { docker_arm = fetchurl {
url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-arm.tar.xz"; url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-arm.tar.xz";
sha256 = "15mlix8j7bqjg5y07c439d7s197c16zxffknx42z1i3qxcz2mpa4"; sha256 = "1m5p6mlhy3xf0chrjlfpdyp24pv32b61s8iryh6a617i91vpzjg6";
}; };
in in
buildGoPackage rec { buildGoPackage rec {
@ -29,7 +29,7 @@ buildGoPackage rec {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-ci-multi-runner"; repo = "gitlab-ci-multi-runner";
rev = "v${version}"; rev = "v${version}";
sha256 = "1csha30lcwm1mk6hqbh0j8bb25apyni23szw79l8xjhmiw2ch619"; sha256 = "0n8hcj2b1pb95x4bd7fb9ri43vgc4h2dj2v3iiziw2imqjyphfx4";
}; };
buildInputs = [ go-bindata ]; buildInputs = [ go-bindata ];

View File

@ -1,16 +1,16 @@
{ lib, buildGoPackage, fetchFromGitLab, fetchurl, go-bindata }: { lib, buildGoPackage, fetchFromGitLab, fetchurl, go-bindata }:
let let
version = "1.11.1"; version = "1.11.2";
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64 # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
docker_x86_64 = fetchurl { docker_x86_64 = fetchurl {
url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-x86_64.tar.xz"; url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-x86_64.tar.xz";
sha256 = "1fahwvwdli6glxsljrd030x15y18jwk72lg1xmrgms409r9y308m"; sha256 = "08lacd2p7915y7yjnwkj2k0b0x4qj9kc53p7qgvmq8kdi31xnh4z";
}; };
docker_arm = fetchurl { docker_arm = fetchurl {
url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-arm.tar.xz"; url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-arm.tar.xz";
sha256 = "0nqda27qcb6r1p2xc2973g08fwb8cnmyc9rswy6776r8ypagn2zw"; sha256 = "0lzvx3jfy8493q8zkbs7kgm5a3jgsi3f2x25jwg4lx7agcwwsygw";
}; };
in in
buildGoPackage rec { buildGoPackage rec {
@ -29,7 +29,7 @@ buildGoPackage rec {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-ci-multi-runner"; repo = "gitlab-ci-multi-runner";
rev = "v${version}"; rev = "v${version}";
sha256 = "0ix00p9f01fg8m6p3b1c20hqrcv7pivh6hq92pb9qyiyzmcfap47"; sha256 = "1sjvlb5981ykc8hr4kp1ibh9jw2wdjjp9zs2nqs9lpsav4nda5fr";
}; };
buildInputs = [ go-bindata ]; buildInputs = [ go-bindata ];

View File

@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
walk parse trees. walk parse trees.
''; '';
homepage = http://www.antlr.org/; homepage = http://www.antlr.org/;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -31,6 +31,7 @@ in rec {
}; };
unstable = fetchurl rec { unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well.
version = "2.6"; version = "2.6";
url = "https://dl.winehq.org/wine/source/2.x/wine-${version}.tar.xz"; url = "https://dl.winehq.org/wine/source/2.x/wine-${version}.tar.xz";
sha256 = "1h5ajw50fax2pg9p4wch6824zxdd85g2gh9nkbllfxj3ixsn9zz6"; sha256 = "1h5ajw50fax2pg9p4wch6824zxdd85g2gh9nkbllfxj3ixsn9zz6";
@ -39,7 +40,7 @@ in rec {
staging = fetchFromGitHub rec { staging = fetchFromGitHub rec {
inherit (unstable) version; inherit (unstable) version;
sha256 = "1l0sjbsajr4m7w3ar2ljwr3ffmwyv57g85a068ard3v8fv4nil22"; sha256 = "1j1fsq7pb7rxi7ppagrk93gmg5wk3anr9js0civxiqd3h8d4lsz2";
owner = "wine-compholio"; owner = "wine-compholio";
repo = "wine-staging"; repo = "wine-staging";
rev = "v${version}"; rev = "v${version}";

File diff suppressed because it is too large Load Diff

View File

@ -33,6 +33,7 @@
"github:bbchung/clighter8" "github:bbchung/clighter8"
"github:benekastah/neomake" "github:benekastah/neomake"
"github:bitc/vim-hdevtools" "github:bitc/vim-hdevtools"
"github:bronson/vim-trailing-whitespace"
"github:christoomey/vim-sort-motion" "github:christoomey/vim-sort-motion"
"github:christoomey/vim-tmux-navigator" "github:christoomey/vim-tmux-navigator"
"github:ctjhoa/spacevim" "github:ctjhoa/spacevim"
@ -40,6 +41,7 @@
"github:derekelkins/agda-vim" "github:derekelkins/agda-vim"
"github:derekwyatt/vim-scala" "github:derekwyatt/vim-scala"
"github:digitaltoad/vim-jade" "github:digitaltoad/vim-jade"
"github:dleonard0/pony-vim-syntax"
"github:dracula/vim" "github:dracula/vim"
"github:eagletmt/neco-ghc" "github:eagletmt/neco-ghc"
"github:eikenb/acp" "github:eikenb/acp"

View File

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
description = "Displays text on your screen"; description = "Displays text on your screen";
homepage = http://sourceforge.net/projects/libxosd; homepage = http://sourceforge.net/projects/libxosd;
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ pSub ]; maintainers = with maintainers; [ pSub ];
}; };
} }

View File

@ -123,7 +123,7 @@ in
# to be adapted # to be adapted
zfsStable = common { zfsStable = common {
# comment/uncomment if breaking kernel versions are known # comment/uncomment if breaking kernel versions are known
incompatibleKernelVersion = "4.10"; incompatibleKernelVersion = "4.11";
version = "0.6.5.9"; version = "0.6.5.9";

View File

@ -4,7 +4,7 @@ with lib;
buildGoPackage rec { buildGoPackage rec {
name = "etcd-${version}"; name = "etcd-${version}";
version = "3.0.6"; # After updating check that nixos tests pass version = "3.1.6"; # After updating check that nixos tests pass
rev = "v${version}"; rev = "v${version}";
goPackagePath = "github.com/coreos/etcd"; goPackagePath = "github.com/coreos/etcd";
@ -13,10 +13,16 @@ buildGoPackage rec {
inherit rev; inherit rev;
owner = "coreos"; owner = "coreos";
repo = "etcd"; repo = "etcd";
sha256 = "163qji360y21nr1wnl16nbvvgdgqgbny4c3v3igp87q9p78sdf75"; sha256 = "1qgi6zxnijzr644w2da2gbn3gw2qwk6a3z3qmdln0r2rjnm70sx0";
}; };
goDeps = ./deps.nix; subPackages = [
"cmd/etcd"
"cmd/etcdctl"
"cmd/tools/benchmark"
"cmd/tools/etcd-dump-db"
"cmd/tools/etcd-dump-logs"
];
buildInputs = [ libpcap ]; buildInputs = [ libpcap ];

View File

@ -1,335 +0,0 @@
[
{
goPackagePath = "github.com/beorn7/perks";
fetch = {
type = "git";
url = "https://github.com/beorn7/perks";
rev = "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9";
sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y";
};
}
{
goPackagePath = "github.com/boltdb/bolt";
fetch = {
type = "git";
url = "https://github.com/boltdb/bolt";
rev = "583e8937c61f1af6513608ccc75c97b6abdf4ff9";
sha256 = "0cp5v9iypg9ysiq40k3h3lg7aisxplnmxshha7nama6b170izyay";
};
}
{
goPackagePath = "github.com/cloudfoundry-incubator/candiedyaml";
fetch = {
type = "git";
url = "https://github.com/cloudfoundry-incubator/candiedyaml";
rev = "99c3df83b51532e3615f851d8c2dbb638f5313bf";
sha256 = "106nibg7423642gbkg88c5x2jxfz6nmxbribhwb8cr1rn9vpjaxs";
};
}
{
goPackagePath = "github.com/cockroachdb/cmux";
fetch = {
type = "git";
url = "https://github.com/cockroachdb/cmux";
rev = "b64f5908f4945f4b11ed4a0a9d3cc1e23350866d";
sha256 = "1by4f3x7j3r3z1sdx1v04r494hn6jaag7lc03prrgx455j8i0jlh";
};
}
{
goPackagePath = "github.com/coreos/etcd";
fetch = {
type = "git";
url = "https://github.com/coreos/etcd.git";
rev = "9efa00d1030d4bf62eb8e5ec130023aeb1b8e2d0";
sha256 = "163qji360y21nr1wnl16nbvvgdgqgbny4c3v3igp87q9p78sdf75";
};
}
{
goPackagePath = "github.com/coreos/go-semver";
fetch = {
type = "git";
url = "https://github.com/coreos/go-semver";
rev = "8ab6407b697782a06568d4b7f1db25550ec2e4c6";
sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
};
}
{
goPackagePath = "github.com/coreos/go-systemd";
fetch = {
type = "git";
url = "https://github.com/coreos/go-systemd";
rev = "5c49e4850c879a0ddc061e8f4adcf307de8a8bc2";
sha256 = "1w16bnrgfjb5rwha7g8rdjhpgjf8bzmlzhrda5bfvc9ymj3qjibk";
};
}
{
goPackagePath = "github.com/coreos/pkg";
fetch = {
type = "git";
url = "https://github.com/coreos/pkg";
rev = "3ac0863d7acf3bc44daf49afef8919af12f704ef";
sha256 = "0l5ans1ls2gknkrnhymgc0zbgg5nqjbjbqc51r611adcr0m6gg8l";
};
}
{
goPackagePath = "github.com/ghodss/yaml";
fetch = {
type = "git";
url = "https://github.com/ghodss/yaml";
rev = "aa0c862057666179de291b67d9f093d12b5a8473";
sha256 = "0cbc78n8l7h1gdzhrvahplcvr4v7n8v23vkgskfp843rcx5h6isr";
};
}
{
goPackagePath = "github.com/gogo/protobuf";
fetch = {
type = "git";
url = "https://github.com/gogo/protobuf";
rev = "f20a1444730c7d9949b880a0309e737d007def25";
sha256 = "12wa3r2cb2v1m65phbkh692ldlklk459z4x6avpc6im0zkr6r73c";
};
}
{
goPackagePath = "github.com/golang/protobuf";
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
rev = "f592bd283e9ef86337a432eb50e592278c3d534d";
sha256 = "01gxhzn9m6jz6ihwxfycnx39zf5pmkan61l278cnynsb8mibdpvb";
};
}
{
goPackagePath = "github.com/google/btree";
fetch = {
type = "git";
url = "https://github.com/google/btree";
rev = "7d79101e329e5a3adf994758c578dab82b90c017";
sha256 = "1c1hsy5s2pfawg3l9954jmqmy4yc2zp3f7i87m00km2yqgb8xpd0";
};
}
{
goPackagePath = "github.com/grpc-ecosystem/grpc-gateway";
fetch = {
type = "git";
url = "https://github.com/grpc-ecosystem/grpc-gateway";
rev = "5e0e028ba0a015710eaebf6e47af18812c9f2767";
sha256 = "00s4wxzs6lz5al7y2hxi6r4bxhx5b0ajk5rwxrnb4a4mhlaii8pk";
};
}
{
goPackagePath = "github.com/jonboulle/clockwork";
fetch = {
type = "git";
url = "https://github.com/jonboulle/clockwork";
rev = "e3653ace2d63753697e0e5b07b9393971c0bba9d";
sha256 = "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc";
};
}
{
goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
fetch = {
type = "git";
url = "https://github.com/matttproud/golang_protobuf_extensions";
rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c";
sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
};
}
{
goPackagePath = "github.com/prometheus/client_golang";
fetch = {
type = "git";
url = "https://github.com/prometheus/client_golang";
rev = "c5b7fccd204277076155f10851dad72b76a49317";
sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd";
};
}
{
goPackagePath = "github.com/prometheus/client_model";
fetch = {
type = "git";
url = "https://github.com/prometheus/client_model";
rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6";
sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
};
}
{
goPackagePath = "github.com/prometheus/common";
fetch = {
type = "git";
url = "https://github.com/prometheus/common";
rev = "ebdfc6da46522d58825777cf1f90490a5b1ef1d8";
sha256 = "0js62pj8600773wx6labpd772yyhz5ivim7dnl7b862wblbmc8mq";
};
}
{
goPackagePath = "github.com/prometheus/procfs";
fetch = {
type = "git";
url = "https://github.com/prometheus/procfs";
rev = "abf152e5f3e97f2fafac028d2cc06c1feb87ffa5";
sha256 = "0cp8lznv1b4zhi3wnbjkfxwzhkqd3wbmiy6mwgjanip8l9l3ykws";
};
}
{
goPackagePath = "github.com/spf13/cobra";
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "7c674d9e72017ed25f6d2b5e497a1368086b6a6f";
sha256 = "0an935r7lc11a744mvdrsy56rs2w0ah3gdclvr4gzd5iqr9ap3dr";
};
}
{
goPackagePath = "github.com/spf13/pflag";
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "6454a84b6da0ea8b628d5d8a26759f62c6c161b4";
sha256 = "06rfi73jhkncn8gxy6klgmba5947k9gpwdswipdpz680yxczcwna";
};
}
{
goPackagePath = "github.com/ugorji/go";
fetch = {
type = "git";
url = "https://github.com/ugorji/go";
rev = "4a1cb5252a6951f715a85d0e4be334c2a2dbf2a2";
sha256 = "0izpijk3piihl4fnqg8ncnp5ivbq41pg3xf7iagg4fbg5id4pxbx";
};
}
{
goPackagePath = "github.com/xiang90/probing";
fetch = {
type = "git";
url = "https://github.com/xiang90/probing";
rev = "07dd2e8dfe18522e9c447ba95f2fe95262f63bb2";
sha256 = "0r8rq27yigz72mk8z7p61yjfan8id021dnp1v421ln9byzpvabn2";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "88d0005bf4c3ec17306ecaca4281a8d8efd73e91";
sha256 = "1d3x0rwfd4cml06ka8gy74wxrw94m2z7qgz6ky0rgmxcr7p5iikz";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "7394c112eae4dba7e96bfcfe738e6373d61772b4";
sha256 = "1p8wsxnbsp2lq6hbza2n0zgv4sgpxzzjjlrmcngkhxj47kp3hin7";
};
}
{
goPackagePath = "google.golang.org/grpc";
fetch = {
type = "git";
url = "https://github.com/grpc/grpc-go";
rev = "0032a855ba5c8a3c8e0d71c2deef354b70af1584";
sha256 = "0qkynp65jwk6jk932k7kwxs5v6fzlfsb1fay71a00dwr36f44s67";
};
}
{
goPackagePath = "github.com/urfave/cli";
fetch = {
type = "git";
url = "https://github.com/urfave/cli";
rev = "168c95418e66e019fe17b8f4f5c45aa62ff80e23";
sha256 = "1gdvvim2f1zigcmbpcgypgn7nvpnlr87grbg7lw13fbpy6fnlw2n";
};
}
{
goPackagePath = "github.com/mattn/go-runewidth";
fetch = {
type = "git";
url = "https://github.com/mattn/go-runewidth";
rev = "d6bea18f789704b5f83375793155289da36a3c7f";
sha256 = "1hnigpn7rjbwd1ircxkyx9hvi0xmxr32b2jdy2jzw6b3jmcnz1fs";
};
}
{
goPackagePath = "github.com/olekukonko/tablewriter";
fetch = {
type = "git";
url = "https://github.com/olekukonko/tablewriter";
rev = "daf2955e742cf123959884fdff4685aa79b63135";
sha256 = "1fvl251ms7qmzfbi853kdgghqkrmyy6n1605mfy50nhgvw03z203";
};
}
{
goPackagePath = "github.com/dustin/go-humanize";
fetch = {
type = "git";
url = "https://github.com/dustin/go-humanize";
rev = "2fcb5204cdc65b4bec9fd0a87606bb0d0e3c54e8";
sha256 = "1m2qgn5vh5m66ggmclgikvwc05np2r7sxgpvlj2jip5d61x29j5k";
};
}
{
goPackagePath = "github.com/bgentry/speakeasy";
fetch = {
type = "git";
url = "https://github.com/bgentry/speakeasy";
rev = "a1ccbf2c40dfc8ce514b5c5c6e6d1429ea6880da";
sha256 = "0xqpc1qhdcs5blp1mkrppfb1x0rcv4a445mj0yzdwshbzkw5di01";
};
}
{
goPackagePath = "github.com/kr/pty";
fetch = {
type = "git";
url = "https://github.com/kr/pty";
rev = "ce7fa45920dc37a92de8377972e52bc55ffa8d57";
sha256 = "0mdlr2mmwjznw2id0l4200xjajq9dh1kxn3z7d3ksn0b5fwinzmk";
};
}
{
goPackagePath = "github.com/golang/groupcache";
fetch = {
type = "git";
url = "https://github.com/golang/groupcache";
rev = "a6b377e3400b08991b80d6805d627f347f983866";
sha256 = "125a6zdaxj916yp2rlrkg8xw00vjf5ga9xwdg4clby8wj4fysma2";
};
}
{
goPackagePath = "gopkg.in/cheggaaa/pb.v1";
fetch = {
type = "git";
url = "https://gopkg.in/cheggaaa/pb.v1";
rev = "9453b2db37f4d8bc63751daca63bbe7049eb5e74";
sha256 = "0py7dxvm3ydxcw260x7r7xbjww1vkil3rhyy3f9njmjydyb303rb";
};
}
{
goPackagePath = "github.com/golang/glog";
fetch = {
type = "git";
url = "https://github.com/golang/glog";
rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
};
}
{
goPackagePath = "github.com/spacejam/loghisto";
fetch = {
type = "git";
url = "https://github.com/spacejam/loghisto";
rev = "9d1d8c1fd2a4ac852bf2e312f2379f553345fda7";
sha256 = "0r31y4ci35pp11wqdyarimdq5a703byk3cf6d67adsa4nw0ysfm1";
};
}
{
goPackagePath = "github.com/akrennmair/gopcap";
fetch = {
type = "git";
url = "https://github.com/akrennmair/gopcap";
rev = "00e11033259acb75598ba416495bb708d864a010";
sha256 = "0xfw7x5a36w0g76imjvgk055360xg0nva42qhmflfvll7ldxq96a";
};
}
]

View File

@ -1,5 +1,35 @@
{ stdenv, fetchurl, perl }: { stdenv, buildEnv, fetchurl, perl, perlPackages, makeWrapper }:
# This package isn't extremely useful as it is, but is getting close.
# After running:
#
# nix-build . -A rt
#
# I created a config file named myconfig.pm with:
#
# use utf8;
# Set($rtname, '127.0.0.1');
# # These dirs need to be pre-created:
# Set($MasonSessionDir, '/home/grahamc/foo/sessiondir/');
# Set($MasonDataDir, '/home/grahamc/foo/localstate/');
# Set($WebPort, 8080);
#
# Set($DatabaseType, "SQLite");
# Set( $DatabaseName, '/home/grahamc/projects/foo/my.db' );
#
# 1;
#
# and ran
#
# RT_SITE_CONFIG=$(pwd)/myconfig.pm ./result/bin/rt-setup-database --action init
#
# Then:
#
# RT_SITE_CONFIG=$(pwd)/myconfig.pm ./result/bin/rt-server
#
# Make sure to check out result/etc/RT_Config.pm
#
# Good luck.
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "rt-${version}"; name = "rt-${version}";
@ -12,14 +42,58 @@ stdenv.mkDerivation rec {
patches = [ ./override-generated.patch ]; patches = [ ./override-generated.patch ];
buildInputs = [ perl ]; buildInputs = [
makeWrapper
perl
(buildEnv {
name = "rt-perl-deps";
paths = (with perlPackages; [
ApacheSession BusinessHours CGIEmulatePSGI CGIPSGI
CSSMinifierXP CSSSquish ConvertColor CryptEksblowfish
CryptSSLeay DBDSQLite DBDmysql DBIxSearchBuilder DataGUID
DataICal DataPagePageset DateExtract DateManip
DateTimeFormatNatural DevelGlobalDestruction EmailAddress
EmailAddressList FCGI FCGIProcManager FileShareDir FileWhich
GD GDGraph GnuPGInterface GraphViz HTMLFormatTextWithLinks
HTMLFormatTextWithLinksAndTables HTMLMason
HTMLMasonPSGIHandler HTMLQuoted HTMLRewriteAttributes
HTMLScrubber IPCRun IPCRun3 JSON JavaScriptMinifierXS LWP
LWPProtocolHttps LocaleMaketextFuzzy LocaleMaketextLexicon
LogDispatch MIMETools MIMETypes MailTools ModuleRefresh
ModuleVersionsReport MozillaCA NetCIDR NetIP PerlIOeol Plack
RegexpCommon RegexpCommonnetCIDR RegexpIPv6 RoleBasic
ScopeUpper Starlet SymbolGlobalName TermReadKey
TextPasswordPronounceable TextQuoted TextTemplate
TextWikiFormat TextWrapper TimeParseDate TreeSimple
UNIVERSALrequire XMLRSS
]);
})
];
dontBuild = true; preConfigure = ''
configureFlags="$configureFlags --with-web-user=$UID"
configureFlags="$configureFlags --with-web-group=$(id -g)"
configureFlags="$configureFlags --with-rt-group=$(id -g)"
configureFlags="$configureFlags --with-bin-owner=$UID"
configureFlags="$configureFlags --with-libs-owner=$UID"
configureFlags="$configureFlags --with-libs-group=$(id -g)"
'';
configureFlags = [
"--enable-graphviz"
"--enable-gd"
"--enable-gpg"
"--with-db-type=SQLite"
];
installPhase = '' buildPhase = ''
mkdir $out make testdeps | grep -i missing | sort
cp -a {bin,docs,etc,lib,sbin,share} $out '';
find $out -name '*.in' -exec rm '{}' \;
preFixup = ''
for i in $(find $out/bin -type f; find $out/sbin -type f); do
wrapProgram $i \
--prefix PERL5LIB ':' $PERL5LIB
done
''; '';
meta = { meta = {

View File

@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
To copy the Oh My Zsh configuration file to your home directory, run To copy the Oh My Zsh configuration file to your home directory, run
the following command: the following command:
$ cp -v $(nix-env -q --out-path oh-my-zsh-git | cut -d' ' -f3)/share/oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc $ cp -v $(nix-env -q --out-path oh-my-zsh | cut -d' ' -f3)/share/oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
''; '';
homepage = "http://ohmyz.sh/"; homepage = "http://ohmyz.sh/";
license = licenses.mit; license = licenses.mit;

View File

@ -41,6 +41,35 @@
# other words, this does a foldr not foldl. # other words, this does a foldr not foldl.
stageFuns: let stageFuns: let
/* "dfold" a ternary function `op' between successive elements of `list' as if
it was a doubly-linked list with `lnul' and `rnul` base cases at either
end. In precise terms, `fold op lnul rnul [x_0 x_1 x_2 ... x_n-1]` is the
same as
let
f_-1 = lnul;
f_0 = op f_-1 x_0 f_1;
f_1 = op f_0 x_1 f_2;
f_2 = op f_1 x_2 f_3;
...
f_n = op f_n-1 x_n f_n+1;
f_n+1 = rnul;
in
f_0
*/
dfold = op: lnul: rnul: list:
let
len = builtins.length list;
go = pred: n:
if n == len
then rnul
else let
# Note the cycle -- call-by-need ensures finite fold.
cur = op pred (builtins.elemAt list n) succ;
succ = go cur (n + 1);
in cur;
in go lnul 0;
# Take the list and disallow custom overrides in all but the final stage, # Take the list and disallow custom overrides in all but the final stage,
# and allow it in the final flag. Only defaults this boolean field if it # and allow it in the final flag. Only defaults this boolean field if it
# isn't already set. # isn't already set.
@ -55,19 +84,21 @@ stageFuns: let
# Adds the stdenv to the arguments, and sticks in it the previous stage for # Adds the stdenv to the arguments, and sticks in it the previous stage for
# debugging purposes. # debugging purposes.
folder = stageFun: finalSoFar: let folder = nextStage: stageFun: prevStage: let
args = stageFun finalSoFar; args = stageFun prevStage;
args' = args // { args' = args // {
stdenv = args.stdenv // { stdenv = args.stdenv // {
# For debugging # For debugging
__bootPackages = finalSoFar; __bootPackages = prevStage;
__hatPackages = nextStage;
}; };
}; };
in in
if args.__raw or false if args.__raw or false
then args' then args'
else allPackages ((builtins.removeAttrs args' ["selfBuild"]) // { else allPackages ((builtins.removeAttrs args' ["selfBuild"]) // {
buildPackages = if args.selfBuild or true then null else finalSoFar; buildPackages = if args.selfBuild or true then null else prevStage;
__targetPackages = if args.selfBuild or true then null else nextStage;
}); });
in lib.lists.fold folder {} withAllowCustomOverrides in dfold folder {} {} withAllowCustomOverrides

View File

@ -16,6 +16,6 @@ stdenv.mkDerivation {
license = stdenv.lib.licenses.isc; license = stdenv.lib.licenses.isc;
homepage = http://fragglet.github.io/lhasa; homepage = http://fragglet.github.io/lhasa;
maintainers = with stdenv.lib; [ maintainers.sander ]; maintainers = with stdenv.lib; [ maintainers.sander ];
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
homepage = http://www.nongnu.org/icoutils/; homepage = http://www.nongnu.org/icoutils/;
description = "Set of programs to deal with Microsoft Windows(R) icon and cursor files"; description = "Set of programs to deal with Microsoft Windows(R) icon and cursor files";
license = stdenv.lib.licenses.gpl3Plus; license = stdenv.lib.licenses.gpl3Plus;
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -1,4 +1,6 @@
{ stdenv, fetchurl, pkgconfig, glib }: { stdenv, fetchurl, pkgconfig, glib, libintlOrEmpty }:
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "desktop-file-utils-0.22"; name = "desktop-file-utils-0.22";
@ -8,11 +10,13 @@ stdenv.mkDerivation rec {
sha256 = "1ianvr2a69yjv4rpyv30w7yjsmnsb23crrka5ndqxycj4rkk4dc4"; sha256 = "1ianvr2a69yjv4rpyv30w7yjsmnsb23crrka5ndqxycj4rkk4dc4";
}; };
buildInputs = [ pkgconfig glib ]; buildInputs = [ pkgconfig glib libintlOrEmpty ];
NIX_LDFLAGS = optionalString stdenv.isDarwin "-lintl";
meta = { meta = {
homepage = http://www.freedesktop.org/wiki/Software/desktop-file-utils; homepage = http://www.freedesktop.org/wiki/Software/desktop-file-utils;
description = "Command line utilities for working with .desktop files"; description = "Command line utilities for working with .desktop files";
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -0,0 +1,31 @@
{ stdenv, fetchFromGitHub, qtbase, qmakeHook, makeQtWrapper, libXrandr }:
stdenv.mkDerivation rec {
name = "radeon-profile-${version}";
version = "20161221";
nativeBuildInputs = [ qmakeHook makeQtWrapper ];
buildInputs = [ qtbase libXrandr ];
src = (fetchFromGitHub {
owner = "marazmista";
repo = "radeon-profile";
rev = version;
sha256 = "0zdmpc0rx6i0y32dcbz02whp95hpbmmbkmcp39f00byvjm5cprgg";
}) + "/radeon-profile";
postInstall = ''
mkdir -p $out/bin
cp ./radeon-profile $out/bin/radeon-profile
wrapQtProgram $out/bin/radeon-profile
'';
meta = with stdenv.lib; {
description = "Application to read current clocks of AMD Radeon cards";
homepage = https://github.com/marazmista/radeon-profile;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@ -1,19 +1,19 @@
{ stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto { stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto, wrapGAppsHook
, makeWrapper, gtk3, docbook_xml_dtd_412, docbook_xsl , makeWrapper, gtk3, docbook_xml_dtd_412, docbook_xsl
, libxml2, desktop_file_utils, libusb1, cups, gdk_pixbuf, pango, atk, libnotify , libxml2, desktop_file_utils, libusb1, cups, gdk_pixbuf, pango, atk, libnotify
, gobjectIntrospection, libgnome_keyring3
, cups-filters , cups-filters
, pythonPackages , pythonPackages
, withGUI ? true , withGUI ? true
}: }:
let majorVersion = "1.5"; stdenv.mkDerivation rec {
name = "system-config-printer-${version}";
in stdenv.mkDerivation rec { version = "1.5.9";
name = "system-config-printer-${majorVersion}.7";
src = fetchurl { src = fetchurl {
url = "http://cyberelk.net/tim/data/system-config-printer/${majorVersion}/${name}.tar.xz"; url = "https://github.com/zdohnal/system-config-printer/releases/download/v${version}/${name}.tar.gz";
sha256 = "1vxczk22f58nbikvj47s2x1gzh6q4mbgwnf091p00h3b6nxppdgn"; sha256 = "03bwlpsiqpxzcwd78a7rmwiww4jnqd7kl7il4kx78l1r57lasd2r";
}; };
patches = [ ./detect_serverbindir.patch ]; patches = [ ./detect_serverbindir.patch ];
@ -22,8 +22,12 @@ in stdenv.mkDerivation rec {
[ intltool pkgconfig glib udev libusb1 cups xmlto [ intltool pkgconfig glib udev libusb1 cups xmlto
libxml2 docbook_xml_dtd_412 docbook_xsl desktop_file_utils libxml2 docbook_xml_dtd_412 docbook_xsl desktop_file_utils
pythonPackages.python pythonPackages.wrapPython pythonPackages.python pythonPackages.wrapPython
libnotify gobjectIntrospection gdk_pixbuf pango atk
libgnome_keyring3
]; ];
nativeBuildInputs = [ wrapGAppsHook ];
pythonPath = with pythonPackages; pythonPath = with pythonPackages;
[ pycups pycurl dbus-python pygobject3 requests2 pycairo pythonPackages.pycurl ]; [ pycups pycurl dbus-python pygobject3 requests2 pycairo pythonPackages.pycurl ];
@ -33,36 +37,22 @@ in stdenv.mkDerivation rec {
"--with-systemdsystemunitdir=$(out)/etc/systemd/system" "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
]; ];
stripDebugList = "bin lib etc/udev"; stripDebugList = [ "bin" "lib" "etc/udev" ];
postInstall = postInstall =
let
giTypelibPath = stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gdk_pixbuf.out gtk3.out pango.out atk.out libnotify.out ];
in
'' ''
export makeWrapperArgs="--set prefix $out \ buildPythonPath "$out $pythonPath"
--set GI_TYPELIB_PATH ${giTypelibPath} \ gappsWrapperArgs+=(
--set CUPS_DATADIR ${cups-filters}/share/cups" --prefix PATH "$program_PATH"
wrapPythonPrograms --set CUPS_DATADIR "${cups-filters}/share/cups"
# The program imports itself, so we need to move shell wrappers to a proper place.
fixupWrapper() {
mv "$out/share/system-config-printer/$2.py" \
"$out/bin/$1"
sed -i "s/.$2.py-wrapped/$2.py/g" "$out/bin/$1"
mv "$out/share/system-config-printer/.$2.py-wrapped" \
"$out/share/system-config-printer/$2.py"
}
fixupWrapper scp-dbus-service scp-dbus-service
fixupWrapper system-config-printer system-config-printer
fixupWrapper system-config-printer-applet applet
# This __init__.py is both executed and imported.
( cd $out/share/system-config-printer/troubleshoot
mv .__init__.py-wrapped __init__.py
) )
find $out/share/system-config-printer -name \*.py -type f -perm -0100 -print0 | while read -d "" f; do
patchPythonScript "$f"
done
# The below line will be unneeded when the next upstream release arrives. # The below line will be unneeded when the next upstream release arrives.
sed -i -e "s|/usr/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service" sed -i -e "s|/usr/local/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service"
# Manually expand literal "$(out)", which have failed to expand # Manually expand literal "$(out)", which have failed to expand
sed -e "s|ExecStart=\$(out)|ExecStart=$out|" \ sed -e "s|ExecStart=\$(out)|ExecStart=$out|" \

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
}; };
buildPhase = '' buildPhase = ''
make posix make CC=cc posix
''; '';
installPhase = '' installPhase = ''
@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
homepage = http://savannah.nongnu.org/projects/flvstreamer; homepage = http://savannah.nongnu.org/projects/flvstreamer;
maintainers = [ stdenv.lib.maintainers.thammers ]; maintainers = [ stdenv.lib.maintainers.thammers ];
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -19,7 +19,7 @@ let
meta = { meta = {
homepage = http://miniupnp.free.fr/; homepage = http://miniupnp.free.fr/;
description = "A client that implements the UPnP Internet Gateway Device (IGD) specification"; description = "A client that implements the UPnP Internet Gateway Device (IGD) specification";
platforms = with stdenv.lib.platforms; linux ++ freebsd; platforms = with stdenv.lib.platforms; linux ++ freebsd ++ darwin;
}; };
}; };
in { in {

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation {
preBuild = '' preBuild = ''
substituteInPlace Makefile --replace ' -o root' ' ' --replace 111 755 substituteInPlace Makefile --replace ' -o root' ' ' --replace 111 755
makeFlags="DESTROOT=$out" makeFlags="DESTROOT=$out CC=cc"
# We want to ignore the $glibc/include/paths.h definition of # We want to ignore the $glibc/include/paths.h definition of
# sendmail path. # sendmail path.
@ -35,6 +35,6 @@ stdenv.mkDerivation {
meta = { meta = {
description = "Daemon for running commands at specific times (Vixie Cron)"; description = "Daemon for running commands at specific times (Vixie Cron)";
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
}; };
} }

View File

@ -22,7 +22,7 @@ let
(fetchpatch { (fetchpatch {
name = "git-mergetool.diff"; # see https://gitlab.com/tfischer/kdiff3/merge_requests/2 name = "git-mergetool.diff"; # see https://gitlab.com/tfischer/kdiff3/merge_requests/2
url = "https://gitlab.com/vcunat/kdiff3/commit/6106126216.patch"; url = "https://gitlab.com/vcunat/kdiff3/commit/6106126216.patch";
sha256 = "0v638rk05wz51qcqnc6blcp2v74f04wn8ifgzw7qi5vr0yfh775r"; sha256 = "16xqc24y8bg8gzkdbwapiwi68rzqnkpz4hgn586mi01ngig2fd7y";
}) })
]; ];
patchFlags = "-p 2"; patchFlags = "-p 2";

View File

@ -1,13 +1,15 @@
{ stdenv, fetchurl }: { stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "patchutils-0.3.4"; name = "patchutils-0.3.3";
src = fetchurl { src = fetchurl {
url = "http://cyberelk.net/tim/data/patchutils/stable/${name}.tar.xz"; url = "http://cyberelk.net/tim/data/patchutils/stable/${name}.tar.xz";
sha256 = "0xp8mcfyi5nmb5a2zi5ibmyshxkb1zv1dgmnyn413m7ahgdx8mfg"; sha256 = "0g5df00cj4nczrmr4k791l7la0sq2wnf8rn981fsrz1f3d2yix4i";
}; };
patches = [ ./drop-comments.patch ]; # we would get into a cycle when using fetchpatch on this one
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,84 @@
From 58987954647f51dc42fb13b7759923c6170dd905 Mon Sep 17 00:00:00 2001
From: Tim Waugh <twaugh@redhat.com>
Date: Fri, 9 May 2014 16:23:27 +0100
Subject: Make --clean drop comments after '@@' lines as well (trac #29).
diff --git a/Makefile.am b/Makefile.am
index 99ad2a3..f3c6dbc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -198,6 +198,7 @@ TESTS = tests/newline1/run-test \
tests/convert1/run-test \
tests/convert2/run-test \
tests/clean1/run-test \
+ tests/clean2/run-test \
tests/stdin/run-test
# These ones don't work yet.
diff --git a/src/filterdiff.c b/src/filterdiff.c
index 383e72b..6ca2316 100644
--- a/src/filterdiff.c
+++ b/src/filterdiff.c
@@ -2,7 +2,7 @@
* filterdiff - extract (or exclude) a diff from a diff file
* lsdiff - show which files are modified by a patch
* grepdiff - show files modified by a patch containing a regexp
- * Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2011 Tim Waugh <twaugh@redhat.com>
+ * Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2011, 2013, 2014 Tim Waugh <twaugh@redhat.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -408,7 +408,8 @@ do_unified (FILE *f, char *header[2], int match, char **line,
" Hunk #%lu, %s",
hunknum, bestname);
- fputs (trailing, output_to);
+ fputs (clean_comments ? "\n" : trailing,
+ output_to);
break;
case Before:
// Note the initial line number
diff --git a/tests/clean2/run-test b/tests/clean2/run-test
new file mode 100755
index 0000000..42320df
--- /dev/null
+++ b/tests/clean2/run-test
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# This is a filterdiff(1) testcase.
+# Test: Make sure --clean removes hunk-level comments.
+
+
+. ${top_srcdir-.}/tests/common.sh
+
+cat << EOF > diff
+non-diff line
+--- a/file1
++++ b/file1
+@@ -0,0 +1 @@ this is a hunk-level comment
++a
+EOF
+
+${FILTERDIFF} --clean diff 2>errors >filtered || exit 1
+[ -s errors ] && exit 1
+
+cat << EOF | cmp - filtered || exit 1
+--- a/file1
++++ b/file1
+@@ -0,0 +1 @@
++a
+EOF
+
+${FILTERDIFF} --clean -x file1 diff 2>errors >filtered || exit 1
+[ -s errors ] && exit 1
+cat << EOF | cmp - filtered || exit 1
+--- a/file1
++++ b/file1
+@@ -0,0 +1 @@
++a
+EOF
--
cgit v0.10.1

View File

@ -4,16 +4,16 @@ with rustPlatform;
buildRustPackage rec { buildRustPackage rec {
name = "ripgrep-${version}"; name = "ripgrep-${version}";
version = "0.5.0"; version = "0.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "BurntSushi"; owner = "BurntSushi";
repo = "ripgrep"; repo = "ripgrep";
rev = "${version}"; rev = "${version}";
sha256 = "13mg624867hqxp9pzpq1gn9kqkvbaqcphdjia3bz5wvff1cbxkfy"; sha256 = "1fbvc419gh1rix8v3bh9a63r993kvfizp49p5ps6y22wggpy0k77";
}; };
depsSha256 = "0glw8xk77w2h1xg6c451fg8cmwx3vz7dyzdrbf0i8d84yq8sh0i1"; depsSha256 = "0vyrcgcmlf3lbp15nip2cm8xv4n6qldfbl0iwy3jb69i2mazi6nm";
preFixup = '' preFixup = ''
mkdir -p "$out/man/man1" mkdir -p "$out/man/man1"

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation {
description = "Source code renderer with syntax highlighting"; description = "Source code renderer with syntax highlighting";
homepage = http://www.gnu.org/software/src-highlite/; homepage = http://www.gnu.org/software/src-highlite/;
license = stdenv.lib.licenses.gpl3Plus; license = stdenv.lib.licenses.gpl3Plus;
platforms = stdenv.lib.platforms.linux; platforms = with stdenv.lib.platforms; linux ++ darwin;
longDescription = longDescription =
'' ''
GNU Source-highlight, given a source file, produces a document GNU Source-highlight, given a source file, produces a document

View File

@ -3690,6 +3690,8 @@ with pkgs;
radarr = callPackage ../servers/radarr { }; radarr = callPackage ../servers/radarr { };
radeon-profile = libsForQt5.callPackage ../tools/misc/radeon-profile { };
radvd = callPackage ../tools/networking/radvd { }; radvd = callPackage ../tools/networking/radvd { };
rambox = callPackage ../applications/networking/instant-messengers/rambox { }; rambox = callPackage ../applications/networking/instant-messengers/rambox { };
@ -12483,6 +12485,8 @@ with pkgs;
faba-mono-icons = callPackage ../data/icons/faba-mono-icons { }; faba-mono-icons = callPackage ../data/icons/faba-mono-icons { };
emacs-all-the-icons-fonts = callPackage ../data/fonts/emacs-all-the-icons-fonts { };
emojione = callPackage ../data/fonts/emojione { emojione = callPackage ../data/fonts/emojione {
inherit (nodePackages) svgo; inherit (nodePackages) svgo;
inherit (pythonPackages) scfbuild; inherit (pythonPackages) scfbuild;
@ -17507,6 +17511,7 @@ with pkgs;
mathcomp = callPackage ../development/coq-modules/mathcomp { }; mathcomp = callPackage ../development/coq-modules/mathcomp { };
math-classes = callPackage ../development/coq-modules/math-classes { }; math-classes = callPackage ../development/coq-modules/math-classes { };
ssreflect = callPackage ../development/coq-modules/ssreflect { }; ssreflect = callPackage ../development/coq-modules/ssreflect { };
QuickChick = callPackage ../development/coq-modules/QuickChick {};
fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {}; fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
}; };
@ -17522,6 +17527,7 @@ with pkgs;
interval = callPackage ../development/coq-modules/interval {}; interval = callPackage ../development/coq-modules/interval {};
mathcomp = callPackage ../development/coq-modules/mathcomp { }; mathcomp = callPackage ../development/coq-modules/mathcomp { };
ssreflect = callPackage ../development/coq-modules/ssreflect { }; ssreflect = callPackage ../development/coq-modules/ssreflect { };
QuickChick = callPackage ../development/coq-modules/QuickChick {};
fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {}; fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
}; };

View File

@ -734,6 +734,19 @@ let self = _self // overrides; _self = with self; {
]; ];
}; };
BusinessHours = buildPerlPackage rec {
name = "Business-Hours-0.12";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/R/RU/RUZ/Business-Hours-0.12.tar.gz";
sha256 = "15c5g278m1x121blspf4bymxp89vysizr3z6s1g3sbpfdkrn4gyv";
};
buildInputs = [ TestPod TestPodCoverage ];
propagatedBuildInputs = [ SetIntSpan TimeLocal ];
meta = {
description = "Calculate business hours in a time period";
};
};
BusinessISBN = buildPerlPackage rec { BusinessISBN = buildPerlPackage rec {
name = "Business-ISBN-2.09"; name = "Business-ISBN-2.09";
src = fetchurl { src = fetchurl {
@ -2777,6 +2790,18 @@ let self = _self // overrides; _self = with self; {
buildInputs = [ Clone ]; buildInputs = [ Clone ];
}; };
CSSMinifierXP = buildPerlPackage rec {
name = "CSS-Minifier-XS-0.09";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.09.tar.gz";
sha256 = "1myswrmh0sqp5xjpp03x45z8arfmgkjx0srl3r6kjsyzl1zrk9l8";
};
meta = {
description = "XS based CSS minifier";
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
};
};
CSSSquish = buildPerlPackage { CSSSquish = buildPerlPackage {
name = "CSS-Squish-0.10"; name = "CSS-Squish-0.10";
src = fetchurl { src = fetchurl {
@ -2997,6 +3022,20 @@ let self = _self // overrides; _self = with self; {
propagatedBuildInputs = [TestException ClassAccessorChained]; propagatedBuildInputs = [TestException ClassAccessorChained];
}; };
DataPagePageset = buildPerlPackage rec {
name = "Data-Page-Pageset-1.02";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/C/CH/CHUNZI/Data-Page-Pageset-1.02.tar.gz";
sha256 = "142isi8la383dbjxj7lfgcbmmrpzwckcc4wma6rdl8ryajsipb6f";
};
buildInputs = [ TestPod TestPodCoverage ];
propagatedBuildInputs = [ DataPage ];
meta = {
description = "change long page list to be shorter and well navigate";
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
};
};
DataPassword = buildPerlPackage { DataPassword = buildPerlPackage {
name = "Data-Password-1.12"; name = "Data-Password-1.12";
src = fetchurl { src = fetchurl {
@ -5694,6 +5733,20 @@ let self = _self // overrides; _self = with self; {
makeMakerFlags = "--lib_png_path=${pkgs.libpng.out} --lib_jpeg_path=${pkgs.libjpeg.out} --lib_zlib_path=${pkgs.zlib.out} --lib_ft_path=${pkgs.freetype.out} --lib_fontconfig_path=${pkgs.fontconfig.lib} --lib_xpm_path=${pkgs.xorg.libXpm.out}"; makeMakerFlags = "--lib_png_path=${pkgs.libpng.out} --lib_jpeg_path=${pkgs.libjpeg.out} --lib_zlib_path=${pkgs.zlib.out} --lib_ft_path=${pkgs.freetype.out} --lib_fontconfig_path=${pkgs.fontconfig.lib} --lib_xpm_path=${pkgs.xorg.libXpm.out}";
}; };
GDGraph = buildPerlPackage rec {
name = "GDGraph-1.54";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/R/RU/RUZ/GDGraph-1.54.tar.gz";
sha256 = "0kzsdc07ycxjainmz0dnsclb15w2j1y7g8b5mcb7vhannq85qvxr";
};
propagatedBuildInputs = [ GD GDText ];
buildInputs = [ TestException CaptureTiny ];
meta = {
description = "Graph Plotting Module for Perl 5";
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
};
};
GDSecurityImage = buildPerlPackage { GDSecurityImage = buildPerlPackage {
name = "GD-SecurityImage-1.72"; name = "GD-SecurityImage-1.72";
src = fetchurl { src = fetchurl {
@ -5707,6 +5760,18 @@ let self = _self // overrides; _self = with self; {
}; };
}; };
GDText = buildPerlPackage rec {
name = "GDTextUtil-0.86";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz";
sha256 = "1g0nc7fz4d672ag7brlrrcz7ibm98x49qs75bq9z957ybkwcnvl8";
};
propagatedBuildInputs = [ GD ];
meta = {
description = "Text utilities for use with GD";
};
};
GeoIP = buildPerlPackage rec { GeoIP = buildPerlPackage rec {
name = "Geo-IP-1.45"; name = "Geo-IP-1.45";
src = fetchurl { src = fetchurl {
@ -6832,7 +6897,7 @@ let self = _self // overrides; _self = with self; {
sha256 = "74d22c44b5ad2e7190e2786e8a17d74bbf4cef89b4d1157ba33598b5a2720dad"; sha256 = "74d22c44b5ad2e7190e2786e8a17d74bbf4cef89b4d1157ba33598b5a2720dad";
}; };
}; };
IOPager = buildPerlPackage { IOPager = buildPerlPackage {
name = "IO-Pager-0.06"; name = "IO-Pager-0.06";
src = fetchurl { src = fetchurl {
@ -7136,6 +7201,20 @@ let self = _self // overrides; _self = with self; {
}; };
}; };
JavaScriptMinifierXS = buildPerlPackage rec {
name = "JavaScript-Minifier-XS-0.11";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.11.tar.gz";
sha256 = "1vlyhckpjbrg2v4dy9szsxxl0q44n0y1xl763mg2y2ym9g5144hm";
};
propagatedBuildInputs = [ ];
meta = {
description = "XS based JavaScript minifier";
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
};
};
JSON = buildPerlPackage { JSON = buildPerlPackage {
name = "JSON-2.90"; name = "JSON-2.90";
src = fetchurl { src = fetchurl {
@ -8225,6 +8304,29 @@ let self = _self // overrides; _self = with self; {
buildInputs = [ ProcWaitStat ]; buildInputs = [ ProcWaitStat ];
}; };
MIMETools = buildPerlPackage rec {
name = "MIME-tools-5.509";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/D/DS/DSKOLL/MIME-tools-5.509.tar.gz";
sha256 = "0wv9rzx5j1wjm01c3dg48qk9wlbm6iyf91j536idk09xj869ymv4";
};
propagatedBuildInputs = [
MailTools
FilePath
FileTemp
MIMEBase64
];
buildInputs = [
TestDeep
TestPod
TestPodCoverage
];
meta = {
description = "class for parsed-and-decoded MIME message";
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
};
};
MIMELite = buildPerlPackage rec { MIMELite = buildPerlPackage rec {
name = "MIME-Lite-3.030"; name = "MIME-Lite-3.030";
src = fetchurl { src = fetchurl {
@ -11468,6 +11570,18 @@ let self = _self // overrides; _self = with self; {
}; };
}; };
SetIntSpan = buildPerlPackage rec {
name = "Set-IntSpan-1.19";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/S/SW/SWMCD/Set-IntSpan-1.19.tar.gz";
sha256 = "1l6znd40ylzvfwl02rlqzvakv602rmvwgm2xd768fpgc2fdm9dqi";
};
meta = {
description = "Manages sets of integers";
};
};
SetObject = buildPerlPackage { SetObject = buildPerlPackage {
name = "Set-Object-1.34"; name = "Set-Object-1.34";
src = fetchurl { src = fetchurl {
@ -12319,7 +12433,7 @@ let self = _self // overrides; _self = with self; {
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
}; };
}; };
TaskFreecellSolverTesting = buildPerlModule rec { TaskFreecellSolverTesting = buildPerlModule rec {
name = "Task-FreecellSolver-Testing-v0.0.10"; name = "Task-FreecellSolver-Testing-v0.0.10";
src = fetchurl { src = fetchurl {
@ -13541,7 +13655,7 @@ let self = _self // overrides; _self = with self; {
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
}; };
}; };
TestTrailingSpace = buildPerlPackage rec { TestTrailingSpace = buildPerlPackage rec {
name = "Test-TrailingSpace-0.0301"; name = "Test-TrailingSpace-0.0301";
src = fetchurl { src = fetchurl {

View File

@ -20401,6 +20401,8 @@ in {
}; };
}; };
pyspread = callPackage ../development/python-modules/pyspread { };
pyx = buildPythonPackage rec { pyx = buildPythonPackage rec {
name = "pyx-${version}"; name = "pyx-${version}";
version = "0.14.1"; version = "0.14.1";

View File

@ -64,7 +64,11 @@ let
splicedPackages = splicedPackages =
if actuallySplice if actuallySplice
then splicer defaultBuildScope defaultRunScope then splicer defaultBuildScope defaultRunScope // {
# These should never be spliced under any circumstances
inherit (pkgs) pkgs buildPackages __targetPackages
buildPlatform targetPlatform hostPlatform;
}
else pkgs // pkgs.xorg; else pkgs // pkgs.xorg;
in in

View File

@ -46,9 +46,18 @@
## ##
, # The package set used at build-time. If null, `buildPackages` will , # The package set used at build-time. If null, `buildPackages` will
# be defined internally as the produced package set as itself. # be defined internally as the final produced package set itself. This allows
# us to avoid expensive splicing.
buildPackages buildPackages
, # The package set used in the next stage. If null, `__targetPackages` will be
# defined internally as the final produced package set itself, just like with
# `buildPackages` and for the same reasons.
#
# THIS IS A HACK for compilers that don't think critically about cross-
# compilation. Please do *not* use unless you really know what you are doing.
__targetPackages
, # The standard environment to use for building packages. , # The standard environment to use for building packages.
stdenv stdenv
@ -87,6 +96,8 @@ let
stdenvBootstappingAndPlatforms = self: super: { stdenvBootstappingAndPlatforms = self: super: {
buildPackages = (if buildPackages == null then self else buildPackages) buildPackages = (if buildPackages == null then self else buildPackages)
// { recurseForDerivations = false; }; // { recurseForDerivations = false; };
__targetPackages = (if __targetPackages == null then self else __targetPackages)
// { recurseForDerivations = false; };
inherit stdenv inherit stdenv
buildPlatform hostPlatform targetPlatform; buildPlatform hostPlatform targetPlatform;
}; };