Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Emanuele Peruffo 2017-04-24 10:25:40 +02:00
commit 1f80c7f837
106 changed files with 1913 additions and 1443 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

@ -452,7 +452,7 @@
romildo = "José Romildo Malaquias <malaquias@gmail.com>"; romildo = "José Romildo Malaquias <malaquias@gmail.com>";
rongcuid = "Rongcui Dong <rongcuid@outlook.com>"; rongcuid = "Rongcui Dong <rongcuid@outlook.com>";
ronny = "Ronny Pfannschmidt <nixos@ronnypfannschmidt.de>"; ronny = "Ronny Pfannschmidt <nixos@ronnypfannschmidt.de>";
rszibele = "Richard Szibele <richard_szibele@hotmail.com>"; rszibele = "Richard Szibele <richard@szibele.com>";
rtreffer = "Rene Treffer <treffer+nixos@measite.de>"; rtreffer = "Rene Treffer <treffer+nixos@measite.de>";
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>"; rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>"; rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>";

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,35 @@
# A profile with most (vanilla) hardening options enabled by default,
# potentially at the cost of features and performance.
{ config, lib, pkgs, ... }:
with lib;
{
security.hideProcessInformation = mkDefault true;
security.apparmor.enable = mkDefault true;
# Restrict ptrace() usage to processes with a pre-defined relationship
# (e.g., parent/child)
boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1;
# Prevent replacing the running kernel image w/o reboot
boot.kernel.sysctl."kernel.kexec_load_disabled" = mkDefault true;
# Restrict access to kernel ring buffer (information leaks)
boot.kernel.sysctl."kernel.dmesg_restrict" = mkDefault true;
# Hide kptrs even for processes with CAP_SYSLOG
boot.kernel.sysctl."kernel.kptr_restrict" = mkOverride 500 2;
# Unprivileged access to bpf() has been used for privilege escalation in
# the past
boot.kernel.sysctl."kernel.unprivileged_bpf_disabled" = mkDefault true;
# Disable bpf() JIT (to eliminate spray attacks)
boot.kernel.sysctl."net.core.bpf_jit_enable" = mkDefault false;
# ... or at least apply some hardening to it
boot.kernel.sysctl."net.core.bpf_jit_harden" = mkDefault true;
}

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

@ -32,14 +32,8 @@ let
'' ''
#! ${pkgs.bash}/bin/bash #! ${pkgs.bash}/bin/bash
# SDDM splits "Exec" line in .desktop file by whitespace and pass script path as $1 # Handle being called by SDDM.
if [[ "$0" = "$1" ]]; then if test "''${1:0:1}" = / ; then eval exec $1 $2 ; fi
# remove superfluous $1 again
shift
# join arguments again and evaluate them in a shell context
# to interpret shell quoting
eval exec "$0" "$@"
fi
${optionalString cfg.displayManager.logToJournal '' ${optionalString cfg.displayManager.logToJournal ''
if [ -z "$_DID_SYSTEMD_CAT" ]; then if [ -z "$_DID_SYSTEMD_CAT" ]; then

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 {};

View File

@ -122,7 +122,7 @@ import ./make-test.nix ({ pkgs, ...} : {
# Test hidepid # Test hidepid
subtest "hidepid", sub { subtest "hidepid", sub {
$machine->succeed("grep -Fq hidepid=2 /etc/mtab"); $machine->succeed("grep -Fq hidepid=2 /proc/mounts");
$machine->succeed("[ `su - sybil -c 'pgrep -c -u root'` = 0 ]"); $machine->succeed("[ `su - sybil -c 'pgrep -c -u root'` = 0 ]");
$machine->succeed("[ `su - alice -c 'pgrep -c -u root'` != 0 ]"); $machine->succeed("[ `su - alice -c 'pgrep -c -u root'` != 0 ]");
}; };

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

@ -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;

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
, yasm, mesa, sqlite, unzip, makeWrapper , yasm, mesa, sqlite, unzip, makeWrapper
, hunspell, libevent, libstartup_notification, libvpx , hunspell, libevent, libstartup_notification, libvpx
, cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc, libpulseaudio , cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc, libpulseaudio
, autoconf213, which , autoconf213, which, cargo, rustc
, 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
, debugBuild ? false , debugBuild ? false
@ -48,7 +48,9 @@ common = { pname, version, sha512, updateScript }: stdenv.mkDerivation rec {
++ lib.optional enableGTK3 gtk3 ++ lib.optional enableGTK3 gtk3
++ lib.optionals (!passthru.ffmpegSupport) [ gstreamer gst-plugins-base ]; ++ lib.optionals (!passthru.ffmpegSupport) [ gstreamer gst-plugins-base ];
nativeBuildInputs = [ autoconf213 which gnused pkgconfig perl python ] ++ lib.optional enableGTK3 wrapGAppsHook; nativeBuildInputs =
[ autoconf213 which gnused pkgconfig perl python cargo rustc ]
++ lib.optional enableGTK3 wrapGAppsHook;
configureFlags = configureFlags =
[ "--enable-application=browser" [ "--enable-application=browser"
@ -151,8 +153,8 @@ in {
firefox-unwrapped = common { firefox-unwrapped = common {
pname = "firefox"; pname = "firefox";
version = "52.0.2"; version = "53.0";
sha512 = "15668625d212acf874b560d0adf738faf3e0df532c549ab94e1d91944542e13bf16265f08fca1eded42820f9b7ad3f0ff70a8b5bc9adde0a79d11e022bb1158e"; sha512 = "36ec810bab58e3d99478455a38427a5efbc74d6dd7d4bb93b700fd7429b9b89250efd0abe4609091483991802090c6373c8434dfc9ba64c79a778e51fd2a2886";
updateScript = import ./update.nix { updateScript = import ./update.nix {
attrPath = "firefox-unwrapped"; attrPath = "firefox-unwrapped";
inherit writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl; inherit writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl;
@ -161,8 +163,8 @@ in {
firefox-esr-unwrapped = common { firefox-esr-unwrapped = common {
pname = "firefox-esr"; pname = "firefox-esr";
version = "52.0.2esr"; version = "52.1.0esr";
sha512 = "a0f31479e5265c7f40d3013c3dc8368c6bdf03f21f1c9054fb2ae5557065584da433b288b493680d6147a3b11155f41bd33ad2a5d53c6eaa507258c7e00d7335"; sha512 = "ba833904654eda347f83df77e04c8e81572772e8555f187b796ecc30e498b93fb729b6f60935731d9584169adc9d61329155364fddf635cbd11abebe4a600247";
updateScript = import ./update.nix { updateScript = import ./update.nix {
attrPath = "firefox-esr-unwrapped"; attrPath = "firefox-esr-unwrapped";
versionSuffix = "esr"; versionSuffix = "esr";

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

@ -0,0 +1,34 @@
{ stdenv, fetchurl, qmakeHook, makeQtWrapper, qtsvg }:
let
version = "1.42.2";
in stdenv.mkDerivation rec {
name = "mytetra-${version}";
src = fetchurl {
url = "https://github.com/xintrea/mytetra_dev/archive/v.${version}.tar.gz";
sha256 = "1ah44nf4ksxkh01a2zmgvvby4pwczhyq5vcp270rf6visp8v9804";
};
buildInputs = [ qmakeHook makeQtWrapper qtsvg ];
hardeningDisable = [ "format" ];
preBuild = ''
substituteInPlace mytetra.pro \
--replace /usr/local/bin $out/bin \
--replace /usr/share $out/share
substituteInPlace src/views/mainWindow/MainWindow.cpp \
--replace ":/resource/pic/logo.svg" "$out/share/icons/hicolor/48x48/apps/mytetra.png"
'';
postInstall = "wrapQtProgram $out/bin/mytetra";
meta = with stdenv.lib; {
description = "Smart manager for information collecting";
homepage = http://webhamster.ru/site/page/index/articles/projectcode/138;
license = licenses.gpl3;
maintainers = [ maintainers.gnidorah ];
platforms = platforms.linux;
};
}

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.0"; 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 = "0qjy3rcrn89n42y5iz60kgr0rrl29hpnj8mq2yvbc1wrcizmvzfs"; sha256 = "053c7ivp3li7cdagzkp2wdc5myybzjf826r6qfkcf0xvn4bv5gq0";
}; };
buildInputs = buildInputs =
@ -54,94 +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
(fetchurl {
name = "qemu-vnc-do-not-disconnect-on-EAGAIN.patch";
url = "https://anonscm.debian.org/cgit/pkg-qemu/qemu.git/plain/debian/patches/vnc-do-not-disconnect-on-EAGAIN.patch?h=debian/qemu_2.8%2bdfsg-3";
sha256 = "1nqhfgfw1pzhid094pk204qy36r6n7w1yilsiwabgcsyxs5bymnh";
})
(upstreamPatch "qemu-fix-win7-xhci" "7da76e12cc5cc902dda4c168d8d608fd4e61cbc5"
"0m1ggbxziy7vqz9007ypzg23cni8cc4db36wlnhxz0kdpq70c6x0")
(upstreamPatch "qemu-xhci-free-completed-transfers" "f94d18d6c6df388fde196d3ab252f57e33843a8b"
"0lk19qss6ky7cqnvis54742cr2z0vl8c64chhch0kp6n83hray9x")
# security fixes from debian
(fetchurl {
name = "CVE-2016-9602.patch";
url = "https://anonscm.debian.org/cgit/pkg-qemu/qemu.git/plain/debian/patches/9pfs-symlink-attack-fixes-CVE-2016-9602.patch?h=debian/qemu_2.8%2bdfsg-3";
sha256 = "0f7m1k3hbw9v0dwqn53ds36s7s334vlidvbn0682s9r2sq0sjlkv";
})
(fetchurl {
name = "CVE-2017-2630.patch";
url = "https://anonscm.debian.org/cgit/pkg-qemu/qemu.git/plain/debian/patches/nbd_client-fix-drop_sync-CVE-2017-2630.patch?h=debian/qemu_2.8%2bdfsg-3";
sha256 = "1gdxaari53iwgj3gyczz30rhg8lj6xqycxym4snw9z5vmkyj1bbq";
})
(fetchurl {
name = "CVE-2017-6058.patch";
url = "https://anonscm.debian.org/cgit/pkg-qemu/qemu.git/plain/debian/patches/vmxnet3-fix-memory-corruption-on-vlan-header-stripping-CVE-2017-6058.patch?h=debian/qemu_2.8%2bdfsg-3";
sha256 = "0w8az2cr116mnijxjd4aprl8dvfdj76gm7ddajmngdslxiax601f";
})
# security fixes from upstream
(upstreamPatch "CVE-2016-7907" "81f17e0d435c3db3a3e67e0d32ebf9c98973211f"
"0dzghbm3jmnyw34kd40a6akrr1cpizd9hdzqmhlc2ljab7pr1rcb")
(upstreamPatch "CVE-2016-10155" "eb7a20a3616085d46aa6b4b4224e15587ec67e6e"
"1xk00fyls0hdza11dyfrnzcn6gibmmcrwy7sxgp6iizp6wgzi3vw")
(upstreamPatch "CVE-2017-2615" "62d4c6bd5263bb8413a06c80144fc678df6dfb64"
"0miph2x4d474issa44hmc542zxmkc7lsr4ncb7pwarq6j7v52l8h")
(upstreamPatch "CVE-2017-2620" "92f2b88cea48c6aeba8de568a45f2ed958f3c298"
"1kz12qmvfccy7xilsrxahbs67jycv4zjfbijxivadvx9klxs1n58")
(upstreamPatch "CVE-2017-5525" "12351a91da97b414eec8cdb09f1d9f41e535a401"
"190b4aqr35p4lb3rjarknfi1ip1c9zizliqp1dd6frx4364y5yp2")
(upstreamPatch "CVE-2017-5526" "069eb7b2b8fc47c7cb52e5a4af23ea98d939e3da"
"05xgzd3zldk3x2vqpjag9z5ilhdkpkyh633fb5kvnz8scns6v86f")
(upstreamPatch "CVE-2017-5579" "8409dc884a201bf74b30a9d232b6bbdd00cb7e2b"
"0lbcyhif1kdcy8my0bv8aqr2f421kmljcch3plrjzj9pgcm4sv83")
(upstreamPatch "CVE-2017-5667" "42922105beb14c2fc58185ea022b9f72fb5465e9"
"049vq70is3fj9bf4ysfj3s44iz93qhyqn6xijck32w1x6yyzqyx4")
(upstreamPatch "CVE-2017-5667-fix" "913a87885f589d263e682c2eb6637c6e14538061"
"0nm1k2r9n6r86dvjr16hxak2vcsinj7ijlqw5i6f4y5h2sh37wr5")
(upstreamPatch "CVE-2017-5856" "765a707000e838c30b18d712fe6cb3dd8e0435f3"
"03pjkn8l8rp9ip5h5rm1dp0nrwd43nmgpwamz4z1vy3rli1z3yjw")
(upstreamPatch "CVE-2017-5857" "5e8e3c4c75c199aa1017db816fca02be2a9f8798"
"1kz14rmxf049zl5m27apzpbvy8dk0g47n9gnwy0nm70g65rl1dh8")
(upstreamPatch "CVE-2017-5898" "c7dfbf322595ded4e70b626bf83158a9f3807c6a"
"1y2j0qw04s8fl0cs8i619y08kj75lxn3c0y19g710fzpk3rq8dvn")
(upstreamPatch "CVE-2017-5931" "a08aaff811fb194950f79711d2afe5a892ae03a4"
"0hlih9jhbb1mb174hvxs7pf7lgcs7s9g705ri9rliw7wrhqdpja5")
(upstreamPatch "CVE-2017-5973" "f89b60f6e5fee3923bedf80e82b4e5efc1bb156b"
"06niyighjxb4p5z2as3mqfmrwrzn4sq47j7raipbq9gnda7x9sw6")
(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
@@ -418,7 +418,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

@ -32,7 +32,10 @@ stdenv.mkDerivation rec {
patchShebangs . patchShebangs .
''; '';
hardeningDisable = ["all"]; hardeningDisable = ["all"];
postInstall = "$out/bin/halvm-ghc-pkg recache"; postInstall = ''
patchShebangs $out/bin
$out/bin/halvm-ghc-pkg recache
'';
passthru = { passthru = {
inherit bootPkgs; inherit bootPkgs;
cross.config = "halvm"; cross.config = "halvm";
@ -45,6 +48,5 @@ stdenv.mkDerivation rec {
description = "The Haskell Lightweight Virtual Machine (HaLVM): GHC running on Xen"; description = "The Haskell Lightweight Virtual Machine (HaLVM): GHC running on Xen";
maintainers = with stdenv.lib.maintainers; [ dmjio ]; maintainers = with stdenv.lib.maintainers; [ dmjio ];
inherit (bootPkgs.ghc.meta) license platforms; inherit (bootPkgs.ghc.meta) license platforms;
broken = true; # http://hydra.nixos.org/build/51814615
}; };
} }

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,13 +1,14 @@
{ stdenv, fetchFromGitHub, cmake, curl }: { stdenv, fetchFromGitHub, cmake, curl }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "curlcpp-20160901"; name = "curlcpp-${version}";
version = "1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "JosephP91"; owner = "JosephP91";
repo = "curlcpp"; repo = "curlcpp";
rev = "98286da1d6c9f6158344a8e272eae5030cbf6c0e"; rev = "${version}";
sha256 = "00nm2b8ik1yvaz5dp1b61jid841jv6zf8k5ma2nxbf1di1apqh0d"; sha256 = "1akibhrmqsy0dlz9lq93508bhkh7r1l0aycbzy2x45a9gqxfdi4q";
}; };
buildInputs = [ cmake curl ]; buildInputs = [ cmake curl ];
@ -15,9 +16,9 @@ stdenv.mkDerivation {
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://josephp91.github.io/curlcpp/"; homepage = "http://josephp91.github.io/curlcpp/";
description = "Object oriented C++ wrapper for CURL"; description = "Object oriented C++ wrapper for CURL";
platforms = platforms.unix ; platforms = platforms.unix;
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.juliendehos ]; maintainers = with maintainers; [ juliendehos rszibele ];
}; };
} }

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

@ -1,16 +1,21 @@
{ stdenv, fetchurl, ncurses, readline }: { stdenv, fetchurl, ncurses, readline, autoreconfHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "hunspell-1.3.3"; version = "1.6.1";
name = "hunspell-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/hunspell/${name}.tar.gz"; url = "https://github.com/hunspell/hunspell/archive/v${version}.tar.gz";
sha256 = "0v14ff9s37vkh45diaddndcrj0hmn67arh8xh8k79q9c1vgc1cm7"; sha256 = "0j9c20sj7bgd6f77193g1ihy8w905byk2gdhdc0r9dsh7irr7x9h";
}; };
outputs = [ "bin" "dev" "out" "man" ]; outputs = [ "bin" "dev" "out" "man" ];
buildInputs = [ ncurses readline ]; buildInputs = [ ncurses readline ];
nativeBuildInputs = [ autoreconfHook ];
autoreconfFlags = "-vfi";
configureFlags = [ "--with-ui" "--with-readline" ]; configureFlags = [ "--with-ui" "--with-readline" ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

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,4 +1,4 @@
{ stdenv, fetchurl, cmake, pkgconfig }: { stdenv, fetchurl, cmake, pkgconfig, darwin }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libdiscid-${version}"; name = "libdiscid-${version}";
@ -6,16 +6,20 @@ stdenv.mkDerivation rec {
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

@ -15,7 +15,7 @@ stdenv.mkDerivation {
buildInputs = [ qtwebkit hunspell ]; buildInputs = [ qtwebkit hunspell ];
postPatch = '' postPatch = ''
sed -i "s,-lhunspell,-lhunspell-1.3," src/spellcheck/spellcheck.pri sed -i "s,-lhunspell,-lhunspell-1.6," src/spellcheck/spellcheck.pri
sed -i "s,\$\$\[QT_INSTALL_PLUGINS\],$out/lib/qt5/plugins," src/src.pro sed -i "s,\$\$\[QT_INSTALL_PLUGINS\],$out/lib/qt5/plugins," src/src.pro
''; '';

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

@ -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

@ -7,7 +7,7 @@
- -llua5.1 \ - -llua5.1 \
- -lhunspell \ - -lhunspell \
+ -llua \ + -llua \
+ -lhunspell-1.3 \ + -lhunspell-1.6 \
-L/usr/local/lib/ \ -L/usr/local/lib/ \
-lyajl \ -lyajl \
-lGLU \ -lGLU \

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

@ -101,8 +101,8 @@ rec {
grsecurity_testing = grsecPatch grsecurity_testing = grsecPatch
{ kver = "4.9.24"; { kver = "4.9.24";
grrev = "201704210851"; grrev = "201704220732";
sha512 = "398cnj7cnzp2vxy54y1538bgqrg2gbz2f7wnx2yhv5xgdwc9b87z9r0d7znk3ah79vrpr2m87394m6zk7d96sjq483y4nm9b1rz5pmn"; sha512 = "0n9v066z3qh296fyvsg1gnygy7jd0cy0pnywxzglh58dnibl28q2ywjnp4ff30andzzq7rvjkk4n151xvs1n04pf2azkgz6igwfisg7";
}; };
# This patch relaxes grsec constraints on the location of usermode helpers, # This patch relaxes grsec constraints on the location of usermode helpers,

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

@ -1,33 +1,22 @@
{ stdenv, fetchurl, groff }: { stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mksh-${version}"; name = "mksh-${version}";
version = "52c"; version = "55";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz" "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
"http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz" "http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
]; ];
sha256 = "19ivsic15903hv3ipzk0kvkaxardw7b99s8l5iw3y415lz71ld66"; sha256 = "0mssqd2wp3cs9x01v6g66iy3ymdxagbyw2c0v597vnc1l6s2rm6f";
}; };
buildInputs = [ groff ]; buildPhase = ''sh ./Build.sh -r -c lto'';
hardeningDisable = [ "format" ];
buildPhase = ''
mkdir build-dir/
cp mksh.1 dot.mkshrc build-dir/
cd build-dir/
sh ../Build.sh -c lto
'';
installPhase = '' installPhase = ''
mkdir -p $out/bin $out/share/man/man1 $out/share/mksh $out/bin
install -D -m 755 mksh $out/bin/mksh install -D -m 755 mksh $out/bin/mksh
install -D -m 644 mksh.1 $out/share/man/man1/mksh.1 install -D -m 644 mksh.1 $out/share/man/man1/mksh.1
install -D -m 644 mksh.cat1 $out/share/mksh/mksh.cat1
install -D -m 644 dot.mkshrc $out/share/mksh/mkshrc install -D -m 644 dot.mkshrc $out/share/mksh/mkshrc
''; '';
@ -41,8 +30,8 @@ stdenv.mkDerivation rec {
systems. systems.
''; '';
homepage = "https://www.mirbsd.org/mksh.htm"; homepage = "https://www.mirbsd.org/mksh.htm";
license = licenses.free; license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres nckx ]; maintainers = with maintainers; [ AndersonTorres nckx joachifm ];
platforms = platforms.unix; platforms = platforms.unix;
}; };

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

@ -4,7 +4,7 @@ let
pythonPackages = python3Packages; pythonPackages = python3Packages;
in pythonPackages.buildPythonApplication rec { in pythonPackages.buildPythonApplication rec {
name = "asciinema-${version}"; name = "asciinema-${version}";
version = "1.3.0"; version = "1.4.0";
buildInputs = with pythonPackages; [ nose ]; buildInputs = with pythonPackages; [ nose ];
propagatedBuildInputs = with pythonPackages; [ requests2 ]; propagatedBuildInputs = with pythonPackages; [ requests2 ];
@ -13,9 +13,14 @@ in pythonPackages.buildPythonApplication rec {
owner = "asciinema"; owner = "asciinema";
repo = "asciinema"; repo = "asciinema";
rev = "v${version}"; rev = "v${version}";
sha256 = "1hx7xipyy9w72iwlawldlif9qk3f7b8jx8c1wcx114pqbjz5d347"; sha256 = "1m2gjqxb5gqyz19lvp7jmwp7cxjc6nb0b2rrlsg3z2bl6vmi1xn2";
}; };
patchPhase = ''
# disable one test which is failing with -> OSError: out of pty devices
rm tests/pty_recorder_test.py
'';
checkPhase = '' checkPhase = ''
nosetests nosetests
''; '';

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

@ -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

@ -1,4 +1,6 @@
{ stdenv, fetchurl { stdenv, fetchurl
# Build runit-init as a static binary
, static ? false , static ? false
}: }:
@ -19,7 +21,9 @@ stdenv.mkDerivation rec {
buildInputs = stdenv.lib.optionals static [ stdenv.cc.libc stdenv.cc.libc.static ]; buildInputs = stdenv.lib.optionals static [ stdenv.cc.libc stdenv.cc.libc.static ];
postPatch = stdenv.lib.optionalString (!static) '' postPatch = ''
sed -i "s,\(#define RUNIT\) .*,\1 \"$out/bin/runit\"," src/runit.h
'' + stdenv.lib.optionalString (!static) ''
sed -i 's,-static,,g' src/Makefile sed -i 's,-static,,g' src/Makefile
''; '';

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"

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