Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2017-04-06 00:16:59 +02:00
commit c6bc4cfdbc
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
169 changed files with 3608 additions and 1557 deletions

@ -34,7 +34,7 @@ first one present is considered, and all the rest are ignored:
<listitem>
<para>In the directory <filename>~/.nixpkgs/overlays/</filename>.</para>
<para>In the directory <filename>~/.config/nixpkgs/overlays/</filename>.</para>
</listitem>
</orderedlist>
@ -50,7 +50,7 @@ the same recipe. In the case where overlays are loaded from a directory, they ar
alphabetical order.</para>
<para>To install an overlay using the last option, you can clone the overlay's repository and add
a symbolic link to it in <filename>~/.nixpkgs/overlays/</filename> directory.</para>
a symbolic link to it in <filename>~/.config/nixpkgs/overlays/</filename> directory.</para>
</section>

@ -25,6 +25,7 @@
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
afranchuk = "Alex Franchuk <alex.franchuk@gmail.com>";
aherrmann = "Andreas Herrmann <andreash87@gmx.ch>";
ahmedtd = "Taahir Ahmed <ahmed.taahir@gmail.com>";
ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
akaWolf = "Artjom Vejsel <akawolf0@gmail.com>";
akc = "Anders Claesson <akc@akc.is>";
@ -135,6 +136,7 @@
dgonyeo = "Derek Gonyeo <derek@gonyeo.com>";
dipinhora = "Dipin Hora <dipinhora+github@gmail.com>";
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
DmitryTsygankov = "Dmitry Tsygankov <dmitry.tsygankov@gmail.com>";
dmjio = "David Johnson <djohnson.m@gmail.com>";
dochang = "Desmond O. Chang <dochang@gmail.com>";
domenkozar = "Domen Kozar <domen@dev.si>";
@ -142,6 +144,7 @@
dpaetzel = "David Pätzel <david.a.paetzel@gmail.com>";
drets = "Dmytro Rets <dmitryrets@gmail.com>";
drewkett = "Andrew Burkett <burkett.andrew@gmail.com>";
dsferruzza = "David Sferruzza <david.sferruzza@gmail.com>";
dtzWill = "Will Dietz <nix@wdtz.org>";
e-user = "Alexander Kahl <nixos@sodosopa.io>";
ebzzry = "Rommel Martinez <ebzzry@gmail.com>";
@ -519,6 +522,7 @@
tvorog = "Marsel Zaripov <marszaripov@gmail.com>";
twey = "James Twey Kay <twey@twey.co.uk>";
uralbash = "Svintsov Dmitry <root@uralbash.ru>";
utdemir = "Utku Demir <me@utdemir.com>";
#urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>"; inactive since 2012
uwap = "uwap <me@uwap.name>";
vandenoever = "Jos van den Oever <jos@vandenoever.info>";

@ -8,7 +8,7 @@
<para>By default, NixOSs <command>nixos-rebuild</command> command
uses the NixOS and Nixpkgs sources provided by the
<literal>nixos-unstable</literal> channel (kept in
<literal>nixos</literal> channel (kept in
<filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>).
To modify NixOS, however, you should check out the latest sources from
Git. This is as follows:
@ -41,7 +41,7 @@ branch based on your current NixOS version:
$ nixos-version
17.09pre104379.6e0b727 (Hummingbird)
$ git checkout -b local e3938c8
$ git checkout -b local 6e0b727
</screen>
Or, to base your local branch on the latest version available in a
@ -87,7 +87,11 @@ $ ln -s <replaceable>/my/sources</replaceable>/nixpkgs ~/.nix-defexpr/nixpkgs
You may want to delete the symlink
<filename>~/.nix-defexpr/channels_root</filename> to prevent roots
NixOS channel from clashing with your own tree.</para>
NixOS channel from clashing with your own tree (this may break the
command-not-found utility though). If you want to go back to the default
state, you may just remove the <filename>~/.nix-defexpr</filename>
directory completely, log out and log in again and it should have been
recreated with a link to the root channels.</para>
<!-- FIXME: not sure what this means.
<para>You should not pass the base directory

@ -501,6 +501,14 @@ following incompatible changes:</para>
necessary to pull in all of <literal>bind</literal> to use them.
</para>
</listitem>
<listitem>
<para>
Per-user configuration was moved from <filename>~/.nixpkgs</filename> to
<filename>~/.config/nixpkgs</filename>. The former is still valid for
<filename>config.nix</filename> for backwards compatibility.
</para>
</listitem>
</itemizedlist>
</section>
</section>

@ -3,21 +3,20 @@
# To start with do: nix-shell -p awscli --run "aws configure"
set -e
set -o pipefail
#set -x
stateDir=${TMPDIR:-/tmp}/ec2-image
echo "keeping state in $stateDir"
mkdir -p $stateDir
version=$(nix-instantiate --eval --strict '<nixpkgs>' -A lib.nixpkgsVersion | sed s/'"'//g)
major=${version:0:5}
echo "NixOS version is $version ($major)"
stateDir=/var/tmp/ec2-image-$version
echo "keeping state in $stateDir"
mkdir -p $stateDir
rm -f ec2-amis.nix
types="hvm pv"
types="hvm"
stores="ebs s3"
regions="eu-west-1 eu-west-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2 ca-central-1 ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2 sa-east-1 ap-south-1"
@ -206,7 +205,7 @@ for type in $types; do
# Register the AMI.
if [ $type = pv ]; then
kernel=$(aws ec2 describe-images --owner amazon --filters "Name=name,Values=pv-grub-hd0_1.04-$arch.gz" | jq -r .Images[0].ImageId)
kernel=$(aws ec2 describe-images --owner amazon --filters "Name=name,Values=pv-grub-hd0_1.05-$arch.gz" | jq -r .Images[0].ImageId)
if [ "$kernel" = null ]; then break; fi
echo "using PV-GRUB kernel $kernel"
extraFlags+=" --virtualization-type paravirtual --kernel $kernel"

@ -3,23 +3,236 @@
with lib;
let
cfg = config.fonts.fontconfig.penultimate;
cfg = config.fonts.fontconfig;
fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>";
# back-supported fontconfig version and package
# version is used for font cache generation
supportVersion = "210";
supportPkg = pkgs."fontconfig_${supportVersion}";
# latest fontconfig version and package
# version is used for configuration folder name, /etc/fonts/VERSION/
# note: format differs from supportVersion and can not be used with makeCacheConf
latestVersion = pkgs.fontconfig.configVersion;
latestPkg = pkgs.fontconfig;
# supported version fonts.conf
supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
# configuration file to read fontconfig cache
# version dependent
# priority 0
cacheConfSupport = makeCacheConf { version = supportVersion; };
cacheConfLatest = makeCacheConf {};
# generate the font cache setting file for a fontconfig version
# use latest when no version is passed
makeCacheConf = { version ? null }:
let
fcPackage = if builtins.isNull version
then "fontconfig"
else "fontconfig_${version}";
makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
cache = makeCache pkgs."${fcPackage}";
cache32 = makeCache pkgs.pkgsi686Linux."${fcPackage}";
in
pkgs.writeText "fc-00-nixos-cache.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Font directories -->
${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
<!-- Pre-generated font caches -->
<cachedir>${cache}</cachedir>
${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
<cachedir>${cache32}</cachedir>
''}
</fontconfig>
'';
# The configuration to be included in /etc/font/
confPkg = pkgs.runCommand "font-penultimate-conf" {} ''
penultimateConf = pkgs.runCommand "font-penultimate-conf" {} ''
support_folder=$out/etc/fonts/conf.d
latest_folder=$out/etc/fonts/${latestVersion}/conf.d
mkdir -p $support_folder
mkdir -p $latest_folder
# fontconfig ultimate various configuration files
ln -s ${supportFontsConf} $support_folder/../fonts.conf
ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
$latest_folder/../fonts.conf
# fontconfig-penultimate various configuration files
ln -s ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/*.conf \
$support_folder
ln -s ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/*.conf \
$latest_folder
ln -s ${cacheConfSupport} $support_folder/00-nixos-cache.conf
ln -s ${cacheConfLatest} $latest_folder/00-nixos-cache.conf
rm $support_folder/10-antialias.conf $latest_folder/10-antialias.conf
ln -s ${antialiasConf} $support_folder/10-antialias.conf
ln -s ${antialiasConf} $latest_folder/10-antialias.conf
rm $support_folder/10-hinting.conf $latest_folder/10-hinting.conf
ln -s ${hintingConf} $support_folder/10-hinting.conf
ln -s ${hintingConf} $latest_folder/10-hinting.conf
${optionalString cfg.useEmbeddedBitmaps ''
rm $support_folder/10-no-embedded-bitmaps.conf
rm $latest_folder/10-no-embedded-bitmaps.conf
''}
rm $support_folder/10-subpixel.conf $latest_folder/10-subpixel.conf
ln -s ${subpixelConf} $support_folder/10-subpixel.conf
ln -s ${subpixelConf} $latest_folder/10-subpixel.conf
${optionalString (cfg.dpi != 0) ''
ln -s ${dpiConf} $support_folder/11-dpi.conf
ln -s ${dpiConf} $latest_folder/11-dpi.conf
''}
${optionalString (!cfg.includeUserConf) ''
rm $support_folder/50-user.conf
rm $latest_folder/50-user.conf
''}
# 51-local.conf
rm $latest_folder/51-local.conf
substitute \
${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/51-local.conf \
$latest_folder/51-local.conf \
--replace local.conf /etc/fonts/${latestVersion}/local.conf
ln -s ${defaultFontsConf} $support_folder/52-default-fonts.conf
ln -s ${defaultFontsConf} $latest_folder/52-default-fonts.conf
${optionalString cfg.allowBitmaps ''
rm $support_folder/53-no-bitmaps.conf
rm $latest_folder/53-no-bitmaps.conf
''}
${optionalString (!cfg.allowType1) ''
ln -s ${rejectType1} $support_folder/53-no-type1.conf
ln -s ${rejectType1} $latest_folder/53-no-type1.conf
''}
'';
hintingConf = pkgs.writeText "fc-10-hinting.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default rendering settings -->
<match target="pattern">
<edit mode="append" name="hinting">
${fcBool cfg.hinting.enable}
</edit>
<edit mode="append" name="autohint">
${fcBool cfg.hinting.autohint}
</edit>
<edit mode="append" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
</fontconfig>
'';
antialiasConf = pkgs.writeText "fc-10-antialias.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default rendering settings -->
<match target="pattern">
<edit mode="append" name="antialias">
${fcBool cfg.antialias}
</edit>
</match>
</fontconfig>
'';
subpixelConf = pkgs.writeText "fc-10-subpixel.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default rendering settings -->
<match target="pattern">
<edit mode="append" name="rgba">
<const>${cfg.subpixel.rgba}</const>
</edit>
<edit mode="append" name="lcdfilter">
<const>lcd${cfg.subpixel.lcdfilter}</const>
</edit>
</match>
</fontconfig>
'';
dpiConf = pkgs.writeText "fc-11-dpi.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="pattern">
<edit name="dpi" mode="assign">
<double>${toString cfg.dpi}</double>
</edit>
</match>
</fontconfig>
'';
defaultFontsConf =
let genDefault = fonts: name:
optionalString (fonts != []) ''
<alias>
<family>${name}</family>
<prefer>
${concatStringsSep ""
(map (font: ''
<family>${font}</family>
'') fonts)}
</prefer>
</alias>
'';
in
pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default fonts -->
${genDefault cfg.defaultFonts.sansSerif "sans-serif"}
${genDefault cfg.defaultFonts.serif "serif"}
${genDefault cfg.defaultFonts.monospace "monospace"}
</fontconfig>
'';
rejectType1 = pkgs.writeText "fc-53-no-type1.conf" ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Reject Type 1 fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="fontformat"><string>Type 1</string></patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>
'';
in
@ -50,7 +263,7 @@ in
config = mkIf (config.fonts.fontconfig.enable && cfg.enable) {
fonts.fontconfig.confPackages = [ confPkg ];
fonts.fontconfig.confPackages = [ penultimateConf ];
};

@ -104,13 +104,6 @@ let cfg = config.fonts.fontconfig;
</match>
''}
<!-- Force autohint always -->
<match target="font">
<edit name="force_autohint" mode="assign">
${fcBool cfg.forceAutohint}
</edit>
</match>
</fontconfig>
'';
@ -174,13 +167,6 @@ let cfg = config.fonts.fontconfig;
</edit>
</match>
<!-- Render some monospace TTF fonts as bitmaps -->
<match target="pattern">
<edit name="bitmap_monospace" mode="assign">
${fcBool cfg.renderMonoTTFAsBitmap}
</edit>
</match>
</fontconfig>
'';
@ -372,11 +358,11 @@ in
autohint = mkOption {
type = types.bool;
default = true;
default = false;
description = ''
Enable the autohinter, which provides hinting for otherwise
un-hinted fonts. The results are usually lower quality than
correctly-hinted fonts.
Enable the autohinter in place of the default interpreter.
The results are usually lower quality than correctly-hinted
fonts, but better than unhinted fonts.
'';
};
};
@ -453,31 +439,19 @@ in
description = ''Use embedded bitmaps in fonts like Calibri.'';
};
forceAutohint = mkOption {
type = types.bool;
default = false;
description = ''
Force use of the TrueType Autohinter. Useful for debugging or
free-software purists.
'';
};
renderMonoTTFAsBitmap = mkOption {
type = types.bool;
default = false;
description = ''Render some monospace TTF fonts as bitmaps.'';
};
};
};
};
config = mkIf cfg.enable {
fonts.fontconfig.confPackages = [ confPkg ];
environment.systemPackages = [ pkgs.fontconfig ];
environment.etc.fonts.source = "${fontconfigEtc}/etc/fonts/";
};
config = mkMerge [
(mkIf cfg.enable {
environment.systemPackages = [ pkgs.fontconfig ];
environment.etc.fonts.source = "${fontconfigEtc}/etc/fonts/";
})
(mkIf (cfg.enable && !cfg.penultimate.enable) {
fonts.fontconfig.confPackages = [ confPkg ];
})
];
}

@ -26,6 +26,7 @@ with lib;
firmwareLinuxNonfree
intel2200BGFirmware
rtl8723bs-firmware
rtl8192su-firmware
];
};

@ -202,5 +202,7 @@ with lib;
(mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "")
(mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ]
"Set the option `services.xserver.displayManager.sddm.package' instead.")
(mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
(mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
];
}

@ -178,7 +178,7 @@ in
path = [ pkgs.simp_le ];
preStart = ''
mkdir -p '${cfg.directory}'
chown '${data.user}:${data.group}' '${cfg.directory}'
chown -R '${data.user}:${data.group}' '${cfg.directory}'
if [ ! -d '${cpath}' ]; then
mkdir '${cpath}'
fi

@ -64,7 +64,7 @@ in
systemd.packages = [ pkgs.polkit.out ];
systemd.services.polkit.restartTriggers = [ config.system.path ];
systemd.services.polkit.unitConfig.X-StopIfChanged = false;
systemd.services.polkit.stopIfChanged = false;
# The polkit daemon reads action/rule files
environment.pathsToLink = [ "/share/polkit-1" ];

@ -18,17 +18,12 @@ in
services.searx = {
enable = mkOption {
type = types.bool;
default = false;
description = "
Whether to enable the Searx server. See https://github.com/asciimoo/searx
";
};
enable = mkEnableOption
"the searx server. See https://github.com/asciimoo/searx";
configFile = mkOption {
type = types.path;
default = "";
type = types.nullOr types.path;
default = null;
description = "
The path of the Searx server configuration file. If no file
is specified, a default file is used (default config file has
@ -72,7 +67,7 @@ in
User = "searx";
ExecStart = "${cfg.package}/bin/searx-run";
};
} // (optionalAttrs (configFile != "") {
} // (optionalAttrs (configFile != null) {
environment.SEARX_SETTINGS_PATH = configFile;
});

@ -53,6 +53,8 @@ let
ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd
ln -s ${config.system.build.initialRamdiskSecretAppender}/bin/append-initrd-secrets $out
ln -s ${config.hardware.firmware}/lib/firmware $out/firmware
''}

@ -44,9 +44,10 @@ in
description = ''
RSA SSH private key file in the Dropbear format.
WARNING: This key is contained insecurely in the global Nix store. Do NOT
use your regular SSH host private keys for this purpose or you'll expose
them to regular users!
WARNING: Unless your bootloader supports initrd secrets, this key is
contained insecurely in the global Nix store. Do NOT use your regular
SSH host private keys for this purpose or you'll expose them to
regular users!
'';
};
@ -56,9 +57,10 @@ in
description = ''
DSS SSH private key file in the Dropbear format.
WARNING: This key is contained insecurely in the global Nix store. Do NOT
use your regular SSH host private keys for this purpose or you'll expose
them to regular users!
WARNING: Unless your bootloader supports initrd secrets, this key is
contained insecurely in the global Nix store. Do NOT use your regular
SSH host private keys for this purpose or you'll expose them to
regular users!
'';
};
@ -68,9 +70,10 @@ in
description = ''
ECDSA SSH private key file in the Dropbear format.
WARNING: This key is contained insecurely in the global Nix store. Do NOT
use your regular SSH host private keys for this purpose or you'll expose
them to regular users!
WARNING: Unless your bootloader supports initrd secrets, this key is
contained insecurely in the global Nix store. Do NOT use your regular
SSH host private keys for this purpose or you'll expose them to
regular users!
'';
};
@ -97,10 +100,6 @@ in
boot.initrd.extraUtilsCommands = ''
copy_bin_and_libs ${pkgs.dropbear}/bin/dropbear
cp -pv ${pkgs.glibc.out}/lib/libnss_files.so.* $out/lib
${optionalString (cfg.hostRSAKey != null) "install -D ${cfg.hostRSAKey} $out/etc/dropbear/dropbear_rsa_host_key"}
${optionalString (cfg.hostDSSKey != null) "install -D ${cfg.hostDSSKey} $out/etc/dropbear/dropbear_dss_host_key"}
${optionalString (cfg.hostECDSAKey != null) "install -D ${cfg.hostECDSAKey} $out/etc/dropbear/dropbear_ecdsa_host_key"}
'';
boot.initrd.extraUtilsCommandsTest = ''
@ -116,9 +115,6 @@ in
touch /var/log/lastlog
mkdir -p /etc/dropbear
${optionalString (cfg.hostRSAKey != null) "ln -s $extraUtils/etc/dropbear/dropbear_rsa_host_key /etc/dropbear/dropbear_rsa_host_key"}
${optionalString (cfg.hostDSSKey != null) "ln -s $extraUtils/etc/dropbear/dropbear_dss_host_key /etc/dropbear/dropbear_dss_host_key"}
${optionalString (cfg.hostECDSAKey != null) "ln -s $extraUtils/etc/dropbear/dropbear_ecdsa_host_key /etc/dropbear/dropbear_ecdsa_host_key"}
mkdir -p /root/.ssh
${concatStrings (map (key: ''
@ -128,6 +124,11 @@ in
dropbear -s -j -k -E -m -p ${toString cfg.port}
'';
boot.initrd.secrets =
(optionalAttrs (cfg.hostRSAKey != null) { "/etc/dropbear/dropbear_rsa_host_key" = cfg.hostRSAKey; }) //
(optionalAttrs (cfg.hostDSSKey != null) { "/etc/dropbear/dropbear_dss_host_key" = cfg.hostDSSKey; }) //
(optionalAttrs (cfg.hostECDSAKey != null) { "/etc/dropbear/dropbear_ecdsa_host_key" = cfg.hostECDSAKey; });
};
}

@ -32,8 +32,11 @@ def write_loader_conf(generation):
f.write("editor 0");
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
def profile_path(generation, name):
return os.readlink("%s/%s" % (system_dir(generation), name))
def copy_from_profile(generation, name, dry_run=False):
store_file_path = os.readlink("%s/%s" % (system_dir(generation), name))
store_file_path = profile_path(generation, name)
suffix = os.path.basename(store_file_path)
store_dir = os.path.basename(os.path.dirname(store_file_path))
efi_file_path = "/efi/nixos/%s-%s.efi" % (store_dir, suffix)
@ -44,6 +47,11 @@ def copy_from_profile(generation, name, dry_run=False):
def write_entry(generation, machine_id):
kernel = copy_from_profile(generation, "kernel")
initrd = copy_from_profile(generation, "initrd")
try:
append_initrd_secrets = profile_path(generation, "append-initrd-secrets")
subprocess.check_call([append_initrd_secrets, "@efiSysMountPoint@%s" % (initrd)])
except FileNotFoundError:
pass
entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation)
generation_dir = os.readlink(system_dir(generation))
tmp_path = "%s.tmp" % (entry_file)

@ -65,6 +65,8 @@ in {
boot.loader.grub.enable = mkDefault false;
boot.loader.supportsInitrdSecrets = true;
system = {
build.installBootLoader = gummibootBuilder;

@ -6,29 +6,38 @@ let
luks = config.boot.initrd.luks;
openCommand = name': { name, device, header, keyFile, keyFileSize, allowDiscards, yubikey, ... }: assert name' == name; ''
# Wait for luksRoot to appear, e.g. if on a usb drive.
# XXX: copied and adapted from stage-1-init.sh - should be
# available as a function.
if ! test -e ${device}; then
echo -n "waiting 10 seconds for device ${device} to appear..."
for try in $(seq 10); do
sleep 1
if test -e ${device}; then break; fi
echo -n .
done
echo "ok"
fi
# Wait for a target (e.g. device, keyFile, header, ...) to appear.
wait_target() {
local name="$1"
local target="$2"
if [ ! -e $target ]; then
echo -n "Waiting 10 seconds for $name $target to appear"
local success=false;
for try in $(seq 10); do
echo -n "."
sleep 1
if [ -e $target ]; then success=true break; fi
done
if [ $success = true ]; then
echo " - success";
else
echo " - failure";
fi
fi
}
# Wait for luksRoot (and optionally keyFile and/or header) to appear, e.g.
# if on a USB drive.
wait_target "device" ${device}
${optionalString (keyFile != null) ''
if ! test -e ${keyFile}; then
echo -n "waiting 10 seconds for key file ${keyFile} to appear..."
for try in $(seq 10); do
sleep 1
if test -e ${keyFile}; then break; fi
echo -n .
done
echo "ok"
fi
wait_target "key file" ${keyFile}
''}
${optionalString (header != null) ''
wait_target "header" ${header}
''}
open_normally() {

@ -8,6 +8,14 @@ export LD_LIBRARY_PATH=@extraUtils@/lib
export PATH=@extraUtils@/bin
ln -s @extraUtils@/bin /bin
# Copy the secrets to their needed location
if [ -d "@extraUtils@/secrets" ]; then
for secret in $(cd "@extraUtils@/secrets"; find . -type f); do
mkdir -p $(dirname "/$secret")
ln -s "@extraUtils@/secrets/$secret" "$secret"
done
fi
# Stop LVM complaining about fd3
export LVM_SUPPRESS_FD_WARNINGS=true

@ -82,6 +82,17 @@ let
copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/resize2fs
''}
# Copy secrets if needed.
${optionalString (!config.boot.loader.supportsInitrdSecrets)
(concatStringsSep "\n" (mapAttrsToList (dest: source:
let source' = if source == null then dest else source; in
''
mkdir -p $(dirname "$out/secrets/${dest}")
cp -a ${source'} "$out/secrets/${dest}"
''
) config.boot.initrd.secrets))
}
${config.boot.initrd.extraUtilsCommands}
# Copy ld manually since it isn't detected correctly
@ -242,6 +253,52 @@ let
];
};
# Script to add secret files to the initrd at bootloader update time
initialRamdiskSecretAppender =
pkgs.writeScriptBin "append-initrd-secrets"
''
#!${pkgs.bash}/bin/bash -e
function usage {
echo "USAGE: $0 INITRD_FILE" >&2
echo "Appends this configuration's secrets to INITRD_FILE" >&2
}
if [ $# -ne 1 ]; then
usage
exit 1
fi
if [ "$1"x = "--helpx" ]; then
usage
exit 0
fi
${lib.optionalString (config.boot.initrd.secrets == {})
"exit 0"}
export PATH=${pkgs.coreutils}/bin:${pkgs.cpio}/bin:${pkgs.gzip}/bin:${pkgs.findutils}/bin
function cleanup {
if [ -n "$tmp" -a -d "$tmp" ]; then
rm -fR "$tmp"
fi
}
trap cleanup EXIT
tmp=$(mktemp -d initrd-secrets.XXXXXXXXXX)
${lib.concatStringsSep "\n" (mapAttrsToList (dest: source:
let source' = if source == null then dest else toString source; in
''
mkdir -p $(dirname "$tmp/${dest}")
cp -a ${source'} "$tmp/${dest}"
''
) config.boot.initrd.secrets)
}
(cd "$tmp" && find . | cpio -H newc -o) | gzip >>"$1"
'';
in
{
@ -370,6 +427,25 @@ in
example = "xz";
};
boot.initrd.secrets = mkOption
{ internal = true;
default = {};
type = types.attrsOf (types.nullOr types.path);
description =
''
Secrets to append to the initrd. The attribute name is the
path the secret should have inside the initrd, the value
is the path it should be copied from (or null for the same
path inside and out).
'';
example = literalExample
''
{ "/etc/dropbear/dropbear_rsa_host_key" =
./secret-dropbear-key;
}
'';
};
boot.initrd.supportedFilesystems = mkOption {
default = [ ];
example = [ "btrfs" ];
@ -377,6 +453,18 @@ in
description = "Names of supported filesystem types in the initial ramdisk.";
};
boot.loader.supportsInitrdSecrets = mkOption
{ internal = true;
default = false;
type = types.bool;
description =
''
Whether the bootloader setup runs append-initrd-secrets.
If not, any needed secrets must be copied into the initrd
and thus added to the store.
'';
};
fileSystems = mkOption {
options.neededForBoot = mkOption {
default = false;
@ -404,9 +492,8 @@ in
}
];
system.build.bootStage1 = bootStage1;
system.build.initialRamdisk = initialRamdisk;
system.build.extraUtils = extraUtils;
system.build =
{ inherit bootStage1 initialRamdisk initialRamdiskSecretAppender extraUtils; };
system.requiredKernelConfig = with config.lib.kernelConfig; [
(isYes "TMPFS")

@ -829,7 +829,8 @@ in
# Some overrides to upstream units.
systemd.services."systemd-backlight@".restartIfChanged = false;
systemd.services."systemd-rfkill@".restartIfChanged = false;
systemd.services."systemd-fsck@".restartIfChanged = false;
systemd.services."systemd-fsck@".path = [ config.system.path ];
systemd.services."user@".restartIfChanged = false;
systemd.services.systemd-journal-flush.restartIfChanged = false;
systemd.services.systemd-random-seed.restartIfChanged = false;

@ -159,35 +159,42 @@ let
after = [ "network-pre.target" ] ++ (deviceDependency i.name);
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
# Restart rather than stop+start this unit to prevent the
# network from dying during switch-to-configuration.
stopIfChanged = false;
path = [ pkgs.iproute ];
script =
''
# FIXME: shouldn't this be done in network-link?
echo "bringing up interface..."
ip link set "${i.name}" up
restart_network_interfaces=false
state="/run/nixos/network/addresses/${i.name}"
mkdir -p $(dirname "$state")
'' + flip concatMapStrings (ips) (ip:
let
address = "${ip.address}/${toString ip.prefixLength}";
in
''
echo "checking ip ${address}..."
echo "${address}" >> $state
if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then
echo "added ip ${address}..."
echo "added ip ${address}"
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
echo "failed to add ${address}"
exit 1
fi
'');
preStop = flip concatMapStrings (ips) (ip:
let
address = "${ip.address}/${toString ip.prefixLength}";
in
''
echo -n "deleting ${address}..."
ip addr del "${address}" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
echo ""
'');
preStop = ''
state="/run/nixos/network/addresses/${i.name}"
while read address; do
echo -n "deleting $address..."
ip addr del "$address" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
echo ""
done < "$state"
rm -f "$state"
'';
};
createTunDevice = i: nameValuePair "${i.name}-netdev"

@ -15,6 +15,12 @@ let cfg = config.ec2; in
config = {
assertions = [
{ assertion = cfg.hvm;
message = "Paravirtualized EC2 instances are no longer supported.";
}
];
virtualisation.growPartition = cfg.hvm;
fileSystems."/" = {

@ -3,7 +3,7 @@
options = {
ec2 = {
hvm = lib.mkOption {
default = false;
default = lib.versionAtLeast config.system.stateVersion "17.03";
internal = true;
description = ''
Whether the EC2 instance is a HVM instance.
@ -11,6 +11,4 @@
};
};
};
config = {};
}

@ -126,7 +126,17 @@ in
path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs);
};
systemd.sockets.docker.socketConfig.ListenStream = cfg.listenOptions;
systemd.sockets.docker = {
description = "Docker Socket for the API";
wantedBy = [ "sockets.target" ];
socketConfig = {
ListenStream = cfg.listenOptions;
SocketMode = "0660";
SocketUser = "root";
SocketGroup = "docker";
};
};
}
]);

@ -193,5 +193,35 @@ let self = {
"16.09".us-west-2.pv-ebs = "ami-6d4af60d";
"16.09".us-west-2.pv-s3 = "ami-de48f4be";
latest = self."16.09";
# 17.03.885.6024dd4067
"17.03".ap-northeast-1.hvm-ebs = "ami-dbd0f7bc";
"17.03".ap-northeast-1.hvm-s3 = "ami-7cdff81b";
"17.03".ap-northeast-2.hvm-ebs = "ami-c59a48ab";
"17.03".ap-northeast-2.hvm-s3 = "ami-0b944665";
"17.03".ap-south-1.hvm-ebs = "ami-4f413220";
"17.03".ap-south-1.hvm-s3 = "ami-864033e9";
"17.03".ap-southeast-1.hvm-ebs = "ami-e08c3383";
"17.03".ap-southeast-1.hvm-s3 = "ami-c28f30a1";
"17.03".ap-southeast-2.hvm-ebs = "ami-fca9a69f";
"17.03".ap-southeast-2.hvm-s3 = "ami-3daaa55e";
"17.03".ca-central-1.hvm-ebs = "ami-9b00bdff";
"17.03".ca-central-1.hvm-s3 = "ami-e800bd8c";
"17.03".eu-central-1.hvm-ebs = "ami-5450803b";
"17.03".eu-central-1.hvm-s3 = "ami-6e2efe01";
"17.03".eu-west-1.hvm-ebs = "ami-10754c76";
"17.03".eu-west-1.hvm-s3 = "ami-11734a77";
"17.03".eu-west-2.hvm-ebs = "ami-ff1d099b";
"17.03".eu-west-2.hvm-s3 = "ami-fe1d099a";
"17.03".sa-east-1.hvm-ebs = "ami-d95d3eb5";
"17.03".sa-east-1.hvm-s3 = "ami-fca2c190";
"17.03".us-east-1.hvm-ebs = "ami-0940c61f";
"17.03".us-east-1.hvm-s3 = "ami-674fc971";
"17.03".us-east-2.hvm-ebs = "ami-afc2e6ca";
"17.03".us-east-2.hvm-s3 = "ami-a1cde9c4";
"17.03".us-west-1.hvm-ebs = "ami-587b2138";
"17.03".us-west-1.hvm-s3 = "ami-70411b10";
"17.03".us-west-2.hvm-ebs = "ami-a93daac9";
"17.03".us-west-2.hvm-s3 = "ami-5139ae31";
latest = self."17.03";
}; in self

@ -11,6 +11,21 @@ import ./make-test.nix ({ pkgs, ...} : {
{ config, pkgs, ... }:
{
virtualisation.docker.enable = true;
users.users = {
noprivs = {
isNormalUser = true;
description = "Can't access the docker daemon";
password = "foobar";
};
hasprivs = {
isNormalUser = true;
description = "Can access the docker daemon";
password = "foobar";
extraGroups = [ "docker" ];
};
};
};
};
@ -21,6 +36,8 @@ import ./make-test.nix ({ pkgs, ...} : {
$docker->succeed("tar cv --files-from /dev/null | docker import - scratchimg");
$docker->succeed("docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10");
$docker->succeed("docker ps | grep sleeping");
$docker->succeed("sudo -u hasprivs docker ps");
$docker->fail("sudo -u noprivs docker ps");
$docker->succeed("docker stop sleeping");
'';
})

@ -13,7 +13,7 @@ import ./make-test.nix (pkgs: {
networking.firewall.allowedTCPPorts = [ 4444 ];
systemd.services.listener.serviceConfig.ExecStart = "${pkgs.netcat}/bin/nc -l 4444";
systemd.services.listener.serviceConfig.ExecStart = "${pkgs.netcat}/bin/nc -l 4444 -k";
};
probe = { config, lib, pkgs, ...}: {
@ -32,6 +32,7 @@ import ./make-test.nix (pkgs: {
$machine->succeed("mkswap /dev/vdb");
$machine->succeed("swapon -a");
$machine->startJob("listener");
$machine->waitForOpenPort(4444);
$machine->succeed("systemctl hibernate &");
$machine->waitForShutdown;
$machine->start;

@ -0,0 +1,60 @@
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
, withGui }:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
version = "1.0.1.3";
src = fetchFromGitHub {
owner = "bitcoinunlimited";
repo = "bitcoinunlimited";
rev = "${version}";
sha256 = "177l2jf2yqxh3sgf80dhgyk3wgjdnqszy3hb83clk8q1wyjkfz7y";
};
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ openssl db48 boost zlib
miniupnpc utillinux protobuf libevent ]
++ optionals withGui [ qt4 qrencode ];
configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
++ optionals withGui [ "--with-gui=qt4" ];
meta = {
description = "Peer-to-peer electronic cash system (Unlimited client)";
longDescription= ''
Bitcoin is a free open source peer-to-peer electronic cash system that is
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
The Bitcoin Unlimited (BU) project seeks to provide a voice to all
stakeholders in the Bitcoin ecosystem.
Every node operator or miner can currently choose their own blocksize limit
by modifying their client. Bitcoin Unlimited makes the process easier by
providing a configurable option for the accepted and generated blocksize via
a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe
setting allowing you to accept a block larger than your maximum accepted
blocksize if it reaches a certain number of blocks deep in the chain.
The Bitcoin Unlimited client is not a competitive block scaling proposal
like BIP-101, BIP-102, etc. Instead it tracks consensus. This means that it
tracks the blockchain that the hash power majority follows, irrespective of
blocksize, and signals its ability to accept larger blocks via protocol and
block versioning fields.
If you support an increase in the blocksize limit by any means - or just
support Bitcoin conflict resolution as originally envisioned by its founder -
consider running a Bitcoin Unlimited client.
'';
homepage = https://www.bitcoinunlimited.info/;
maintainers = with maintainers; [ DmitryTsygankov ];
license = licenses.mit;
platforms = platforms.unix;
};
}

@ -4,19 +4,18 @@
with stdenv.lib;
stdenv.mkDerivation rec{
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
core_version = "0.13.1";
version = core_version;
version = "0.14.0";
src = fetchurl {
urls = [ "https://bitcoin.org/bin/bitcoin-core-${core_version}/bitcoin-${version}.tar.gz"
"mirror://sourceforge/bitcoin/Bitcoin/bitcoin-${core_version}/bitcoin-${version}.tar.gz"
urls = [ "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
"mirror://sourceforge/bitcoin/Bitcoin/bitcoin-${version}/bitcoin-${version}.tar.gz"
];
sha256 = "d8edbd797ff1c8266113e54d851a85def46ab82389abe7d7bd0d2827e74cecd7";
sha256 = "07k4i9r033dsvkp5ii5g3hykidm8b19c8c0mz1bi8k0dda3d8hyp";
};
buildInputs = [ pkgconfig autoreconfHook openssl db48 boost zlib
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ openssl db48 boost zlib
miniupnpc protobuf libevent]
++ optionals stdenv.isLinux [ utillinux ]
++ optionals withGui [ qt4 qrencode ];

@ -5,6 +5,9 @@ rec {
bitcoin = callPackage ./bitcoin.nix { withGui = true; };
bitcoind = callPackage ./bitcoin.nix { withGui = false; };
bitcoin-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = true; };
bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = false; };
bitcoin-classic = callPackage ./bitcoin-classic.nix { withGui = true; };
bitcoind-classic = callPackage ./bitcoin-classic.nix { withGui = false; };

@ -4,38 +4,39 @@
, withQt5 ? false, qtbase
}:
with stdenv.lib;
let
ver_branch = "1.19";
version = "1.19.5";
ver_branch = "1.22";
version = "1.22.0";
in
stdenv.mkDerivation rec {
name = "lightdm-${version}";
src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
sha256 = "0gbz8jk1ljh8rwgvldkiqma1k61sd27yh008228ahdqd5i2v1r1z";
sha256 = "0a5bvfl2h7r873al6q7c819h0kg564k9fh51rl6489z6lyvazfg4";
};
patches = [ ./fix-paths.patch ];
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
pam libxcb glib libXdmcp itstool libxml2 libxklavier libgcrypt
qt4 libaudit gcc6
] ++ stdenv.lib.optional withQt5 qtbase;
] ++ optional withQt5 qtbase;
configureFlags = [
"--localstatedir=/var"
"--sysconfdir=/etc"
"--disable-tests"
] ++ stdenv.lib.optional (qt4 != null) "--enable-liblightdm-qt"
++ stdenv.lib.optional withQt5 "--enable-liblightdm-qt5";
] ++ optional (qt4 != null) "--enable-liblightdm-qt"
++ optional withQt5 "--enable-liblightdm-qt5";
installFlags = [
"sysconfdir=\${out}/etc"
"localstatedir=\${TMPDIR}"
];
meta = with stdenv.lib; {
meta = {
homepage = https://launchpad.net/lightdm;
platforms = platforms.linux;
license = licenses.gpl3;

@ -1,61 +0,0 @@
diff --git a/common/user-list.c b/common/user-list.c
index 792c6d3..57fbfb7 100644
--- a/common/user-list.c
+++ b/common/user-list.c
@@ -331,7 +331,7 @@ load_passwd_file (CommonUserList *user_list, gboolean emit_add_signal)
value = g_key_file_get_string (config, "UserList", "hidden-shells", NULL);
if (!value)
- value = g_strdup ("/bin/false /usr/sbin/nologin");
+ value = g_strdup ("/run/current-system/sw/bin/nologin");
hidden_shells = g_strsplit (value, " ", -1);
g_free (value);
diff --git a/src/seat.c b/src/seat.c
index f9b149d..9029742 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -343,7 +343,7 @@ run_script (Seat *seat, DisplayServer *display_server, const gchar *script_name,
/* Set POSIX variables */
process_set_clear_environment (script, TRUE);
- process_set_env (script, "SHELL", "/bin/sh");
+ process_set_env (script, "SHELL", "/run/current-system/sw/bin/sh");
/* Variables required for regression tests */
if (g_getenv ("LIGHTDM_TEST_ROOT"))
@@ -354,7 +354,7 @@ run_script (Seat *seat, DisplayServer *display_server, const gchar *script_name,
process_set_env (script, "PATH", g_getenv ("PATH"));
}
else
- process_set_env (script, "PATH", "/usr/local/bin:/usr/bin:/bin");
+ process_set_env (script, "PATH", "/run/current-system/sw/bin");
if (user)
{
diff --git a/src/session-child.c b/src/session-child.c
index e85f57d..93db0bd 100644
--- a/src/session-child.c
+++ b/src/session-child.c
@@ -410,7 +410,7 @@ session_child_run (int argc, char **argv)
else
{
/* Set POSIX variables */
- pam_putenv (pam_handle, "PATH=/usr/local/bin:/usr/bin:/bin");
+ pam_putenv (pam_handle, "PATH=/run/current-system/sw/bin");
pam_putenv (pam_handle, g_strdup_printf ("USER=%s", username));
pam_putenv (pam_handle, g_strdup_printf ("LOGNAME=%s", username));
pam_putenv (pam_handle, g_strdup_printf ("HOME=%s", user_get_home_directory (user)));
diff --git a/src/shared-data-manager.c b/src/shared-data-manager.c
index 47f1c10..cc82652 100644
--- a/src/shared-data-manager.c
+++ b/src/shared-data-manager.c
@@ -68,7 +68,7 @@ delete_unused_user (gpointer key, gpointer value, gpointer user_data)
gchar *path = g_build_filename (USERS_DIR, user, NULL);
gchar *quoted_path = g_shell_quote (path);
- gchar *cmd = g_strdup_printf ("/bin/rm -rf %s", quoted_path);
+ gchar *cmd = g_strdup_printf ("/run/current-system/sw/bin/rm -rf %s", quoted_path);
g_spawn_command_line_async (cmd, &error);
if (error)

@ -2,18 +2,18 @@
stdenv.mkDerivation rec {
name = "leo-editor-${version}";
version = "5.3";
version = "5.5";
src = fetchFromGitHub {
owner = "leo-editor";
repo = "leo-editor";
rev = version;
sha256 = "0whbay8ilabzpxdjaxv447y6bqbsilx161fv7wa15v3qqm2kapsp";
sha256 = "0crzljirzfiy9xn02ydd23clmd8bzdjxkyxdqsvdkgfy9j41b8hr";
};
dontBuild = true;
buildInputs = [ makeWrapper python3Packages.python ];
nativeBuildInputs = [ makeWrapper python3Packages.python ];
propagatedBuildInputs = with python3Packages; [ pyqt5 ];
desktopItem = makeDesktopItem rec {
@ -56,10 +56,10 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = "http://leoeditor.com";
homepage = http://leoeditor.com;
description = "A powerful folding editor";
longDescription = "Leo is a PIM, IDE and outliner that accelerates the work flow of programmers, authors and web designers.";
license = with licenses; [ mit ];
license = licenses.mit;
maintainers = with maintainers; [ leonardoce ramkromberg ];
};
}

@ -20,18 +20,18 @@ let
in stdenv.mkDerivation rec {
name = "nano-${version}";
version = "2.7.5";
version = "2.8.0";
src = fetchurl {
url = "mirror://gnu/nano/${name}.tar.xz";
sha256 = "1r37gqx7hppqbgsbclchiis8wzzpb9srm3q3dlvlii2gpkk28kd6";
sha256 = "1hjxr0kgq3q1fcns9y4lj0dbhjf33j3pa2wayrb3p3c8v3sbrh8m";
};
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
buildInputs = [ ncurses ];
outputs = [ "out" "info" ];
configureFlags = ''
--sysconfdir=/etc
${optionalString (!enableNls) "--disable-nls"}

@ -55,7 +55,7 @@ in
'' else ''
mkdir -p $out/lib/vscode $out/bin
cp -r ./* $out/lib/vscode
ln -s $out/lib/vscode/code $out/bin
ln -s $out/lib/vscode/bin/code $out/bin
mkdir -p $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications
@ -67,11 +67,8 @@ in
postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$out/lib/vscode" \
--set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1:$out/lib/vscode" \
$out/lib/vscode/code
wrapProgram $out/bin/code \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
'';
meta = with stdenv.lib; {

@ -0,0 +1,65 @@
{ stdenv
, fetchFromGitHub
, cmake
, makeWrapper
, pkgconfig
, wrapGAppsHook
, gsettings_desktop_schemas
, qtbase
, qttools
, qtsvg
, exiv2
, opencv
, libraw
, libtiff
, quazip
}:
stdenv.mkDerivation rec {
version = "3.6.1";
src = fetchFromGitHub {
owner = "nomacs";
repo = "nomacs";
rev = version;
sha256 = "0yli05hhmd57v3mynq78nmr15rbpm0vadv273pavmcnayv86yl44";
};
name = "nomacs-${version}";
enableParallelBuilding = true;
sourceRoot = "${name}-src/ImageLounge";
patches = [./fix-appdata-install.patch];
nativeBuildInputs = [cmake
pkgconfig
wrapGAppsHook];
buildInputs = [qtbase
qttools
qtsvg
exiv2
opencv
libraw
libtiff
quazip
gsettings_desktop_schemas];
cmakeFlags = ["-DENABLE_OPENCV=ON"
"-DENABLE_RAW=ON"
"-DENABLE_TIFF=ON"
"-DENABLE_QUAZIP=ON"
"-DUSE_SYSTEM_QUAZIP=ON"];
meta = with stdenv.lib; {
homepage = https://nomacs.org;
description = "Qt-based image viewer";
maintainers = [maintainers.ahmedtd];
license = licenses.gpl3Plus;
repositories.git = https://github.com/nomacs/nomacs.git;
inherit (qtbase.meta) platforms;
};
}

@ -0,0 +1,13 @@
diff --git a/cmake/UnixBuildTarget.cmake b/cmake/UnixBuildTarget.cmake
index 3521056a..34f99ed9 100644
--- a/cmake/UnixBuildTarget.cmake
+++ b/cmake/UnixBuildTarget.cmake
@@ -80,7 +80,7 @@ install(FILES ${NOMACS_QM} DESTINATION share/nomacs/translations)
# manpage
install(FILES Readme/nomacs.1 DESTINATION share/man/man1)
# appdata
-install(FILES nomacs.appdata.xml DESTINATION /usr/share/appdata/)
+install(FILES nomacs.appdata.xml DESTINATION share/appdata/)
# "make dist" target
string(TOLOWER ${PROJECT_NAME} CPACK_PACKAGE_NAME)

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "albert-${version}";
version = "0.10.0";
version = "0.10.2";
src = fetchFromGitHub {
owner = "albertlauncher";
repo = "albert";
rev = "v${version}";
sha256 = "1r8m0b6lqljy314ilpi58sdpqyb9rr502nzx3pgmx2g2xz4izsfj";
sha256 = "0plb8c7js91bpf7qgq1snhry8x4zixyy34lq42nhsglab2kaq4ns";
};
nativeBuildInputs = [ cmake makeQtWrapper ];

@ -5,12 +5,12 @@
}:
stdenv.mkDerivation rec {
version = "2.80.0";
version = "2.82.0";
name = "calibre-${version}";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
sha256 = "1cgj30b0imv4gl12y1lcd07w3bx10sapclvjr78z78n7g32xp9ik";
sha256 = "073iarhjsapqf1g8ji1w835biixybqq869flq58vkz37wjmray8k";
};
patches = [

@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
meta = {
description = "A patched fork of the original dmenu - an efficient dynamic menu for X";
homepage = https://bitbucket.org/melek/dmenu2;
license = stdenv.lib.licenses.mit;
maintainers = with maintainers; [ cstrahan ];
license = licenses.mit;
maintainers = [ maintainers.cstrahan ];
platforms = platforms.all;
};
}

@ -18,11 +18,11 @@ stdenv.mkDerivation rec {
substituteInPlace src/core/CMakeLists.txt --replace /usr/share/applications "$out"/share/applications
'';
meta = {
meta = with stdenv.lib; {
homepage = http://doomseeker.drdteam.org/;
description = "Multiplayer server browser for many Doom source ports";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ MP2E ];
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = [ maintainers.MP2E ];
};
}

@ -1,14 +1,16 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk2, poppler }:
stdenv.mkDerivation rec {
name = "epdfview-0.1.8";
name = "epdfview-${version}";
version = "0.1.8";
src = fetchurl {
url = "http://trac.emma-soft.com/epdfview/chrome/site/releases/${name}.tar.bz2";
sha256 = "1w7qybh8ssl4dffi5qfajq8mndw7ipsd92vkim03nywxgjp4i1ll";
url = "mirror://debian/pool/main/e/epdfview/epdfview_${version}.orig.tar.gz";
sha256 = "0ibyb60a0b4n34bsjgvhdw8yf24463ky0hpmf6a2jjqsbm5g4v64";
};
buildInputs = [ pkgconfig gtk2 poppler ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk2 poppler ];
hardeningDisable = [ "format" ];
@ -24,16 +26,16 @@ stdenv.mkDerivation rec {
})
];
meta = {
homepage = http://trac.emma-soft.com/epdfview/;
meta = with stdenv.lib; {
homepage = https://packages.debian.org/wheezy/epdfview;
description = "A lightweight PDF document viewer using Poppler and GTK+";
longDescription = ''
ePDFView is a free lightweight PDF document viewer using Poppler and
GTK+ libraries. The aim of ePDFView is to make a simple PDF document
viewer, in the lines of Evince but without using the Gnome libraries.
'';
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ astsmtl ];
platforms = with stdenv.lib.platforms; linux;
license = licenses.gpl2;
maintainers = [ maintainers.astsmtl ];
platforms = platforms.linux;
};
}

@ -1,23 +1,24 @@
{ stdenv, fetchgit, bzip2, qt4, qmake4Hook, libX11 }:
{ stdenv, fetchFromGitHub, bzip2, qt4, qmake4Hook, libX11 }:
stdenv.mkDerivation rec {
name = "evopedia-${version}";
version = "0.4.4";
src = fetchgit {
url = https://github.com/evopedia/evopedia_qt;
rev = "refs/tags/v${version}";
src = fetchFromGitHub {
owner = "evopedia";
repo = "evopedia_qt";
rev = "v${version}";
sha256 = "0snp5qiywj306kfaywvkl7j34fivgxcb8dids1lzmbqq5xcpqqvc";
};
buildInputs = [ bzip2 qt4 libX11 ];
nativeBuildInputs = [ qmake4Hook ];
meta = {
meta = with stdenv.lib; {
description = "Offline Wikipedia Viewer";
homepage = http://www.evopedia.info;
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ qknight ];
platforms = with stdenv.lib.platforms; linux;
license = licenses.gpl3Plus;
maintainers = [ maintainers.qknight ];
platforms = platforms.linux;
};
}

@ -1,27 +1,29 @@
{ stdenv, lib, fetchgit, makeWrapper
{ stdenv, lib, fetchFromGitHub, makeWrapper
, pkgconfig, cmake, libxml2, vala_0_23, intltool, libmx, gnome3, gtk3, gtk_doc
, keybinder3, clutter_gtk, libnotify
, libxkbcommon, xorg, udev
, bashInteractive
}:
with stdenv.lib;
stdenv.mkDerivation {
name = "finalterm-git-2014-11-15";
src = fetchgit {
url = "https://github.com/p-e-w/finalterm.git";
src = fetchFromGitHub {
owner = "p-e-w";
repo = "finalterm";
rev = "39b078b2a96a5c3c9e74f92b1929f383d220ca8b";
sha256 = "14viln5nabr39lafg1lzf6ydibz1h5d9346drp435ljxc6wsh21i";
};
nativeBuildInputs = [ pkgconfig cmake intltool makeWrapper ];
buildInputs = [
pkgconfig cmake vala_0_23 intltool gtk3 gnome3.gnome_common gnome3.libgee
gtk_doc clutter_gtk libmx keybinder3 libxml2 libnotify makeWrapper
vala_0_23 gtk3 gnome3.gnome_common gnome3.libgee
gtk_doc clutter_gtk libmx keybinder3 libxml2 libnotify
xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence
libxkbcommon
] ++ lib.optionals stdenv.isLinux [
udev
];
] ++ optionals stdenv.isLinux [ udev ];
preConfigure = ''
substituteInPlace data/org.gnome.finalterm.gschema.xml \
@ -44,7 +46,7 @@ stdenv.mkDerivation {
--prefix XDG_DATA_DIRS : "${gnome3.defaultIconTheme}/share:${gnome3.gtk.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with lib; {
meta = {
homepage = "http://finalterm.org";
description = "A new breed of terminal emulator";
longDescription = ''
@ -57,7 +59,7 @@ stdenv.mkDerivation {
- GUI terminal controls
'';
license = licenses.gpl3Plus;
maintainers = with maintainers; [ cstrahan ];
maintainers = [ maintainers.cstrahan ];
platforms = platforms.linux;
};
}

@ -1,16 +1,19 @@
{ stdenv, fetchurl, libjpeg }:
{ stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
stdenv.mkDerivation rec {
version = "1.0.6";
version = "1.0.7";
name = "jp2a-${version}";
src = fetchurl {
url = "mirror://sourceforge/jp2a/${name}.tar.gz";
sha256 = "076frk3pa16s4r1b10zgy81vdlz0385zh3ykbnkaij25jn5aqc09";
src = fetchFromGitHub {
owner = "cslarsen";
repo = "jp2a";
rev = "v${version}";
sha256 = "12a1z9ba2j16y67f41y8ax5sgv1wdjd71pg7circdxkj263n78ql";
};
makeFlags = "PREFIX=$(out)";
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ libjpeg ];
meta = with stdenv.lib; {

@ -0,0 +1,40 @@
{ stdenv, fetchsvn
, wrapGAppsHook, makeWrapper, gettext
, python3Packages, gtk3, poppler_gi
, gnome3, gsettings_desktop_schemas, shared_mime_info,
}:
python3Packages.buildPythonApplication rec {
name = "pdfshuffler-unstable-2017-02-26"; # no official release in 5 years
src = fetchsvn {
url = "http://svn.gna.org/svn/pdfshuffler/trunk";
rev = "20";
sha256 = "1g20dy45xg5vda9y58d2b1gkczj44xgrfi59jx6hr62ynd3z0dfc";
};
nativeBuildInputs = [ wrapGAppsHook gettext makeWrapper ];
buildInputs = [
gtk3 gsettings_desktop_schemas poppler_gi gnome3.adwaita-icon-theme
];
propagatedBuildInputs = with python3Packages; [
pygobject3
pycairo
pypdf2
];
preFixup = ''
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared_mime_info}/share")
'';
doCheck = false; # no tests
meta = with stdenv.lib; {
homepage = https://gna.org/projects/pdfshuffler/;
description = "Merge or split pdf documents and rotate, crop and rearrange their pages";
platforms = platforms.linux;
maintainers = with maintainers; [ mic92 ];
};
}

@ -0,0 +1,45 @@
{ fetchurl, stdenv, pkgconfig, nasm, fuse, wxGTK30, devicemapper, makeself,
wxGUI ? true
}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "veracrypt-${version}";
version = "1.19";
src = fetchurl {
url = "https://launchpad.net/veracrypt/trunk/${version}/+download/VeraCrypt_${version}_Source.tar.gz";
sha256 = "111xs1zmic82lpn5spn0ca33q0g4za04a2k4cvjwdb7k3vcicq6v";
};
# The source archive appears to be compressed twice ...
unpackPhase =
''
gzip -dc $src | tar xz
cd Vera*/src
'';
nativeBuildInputs = [ makeself nasm pkgconfig ];
buildInputs = [ fuse devicemapper ]
++ optional wxGUI wxGTK30;
makeFlags = optionalString (!wxGUI) "NOGUI=1";
installPhase =
''
mkdir -p $out/bin
cp Main/veracrypt $out/bin
mkdir -p $out/share/$name
cp License.txt $out/share/$name/LICENSE
mkdir -p $out/share/applications
sed "s,Exec=.*,Exec=$out/bin/veracrypt," Setup/Linux/veracrypt.desktop > $out/share/applications/veracrypt.desktop
'';
meta = {
description = "Free Open-Source filesystem on-the-fly encryption";
homepage = https://veracrypt.codeplex.com/;
license = "VeraCrypt License";
maintainers = with maintainers; [ dsferruzza ];
platforms = platforms.linux;
};
}

@ -1,8 +1,10 @@
{ stdenv, fetchurl, unzip, buildPythonApplication, makeQtWrapper, wrapGAppsHook
{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeQtWrapper, wrapGAppsHook
, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, cssutils, glib_networking
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav
, qtwebkit-plugins }:
, qtwebkit-plugins
, withWebEngineDefault ? false
}:
let
pdfjs = stdenv.mkDerivation rec {
@ -73,7 +75,8 @@ in buildPythonApplication rec {
postFixup = ''
mv $out/bin/qutebrowser $out/bin/.qutebrowser-noqtpath
makeQtWrapper $out/bin/.qutebrowser-noqtpath $out/bin/qutebrowser
makeQtWrapper $out/bin/.qutebrowser-noqtpath $out/bin/qutebrowser \
${lib.optionalString withWebEngineDefault ''--add-flags "--backend webengine"''}
sed -i 's/\.qutebrowser-wrapped/qutebrowser/g' $out/bin/..qutebrowser-wrapped-wrapped
'';

@ -1,42 +1,36 @@
{stdenv, fetchurl, makeWrapper, gtk2, webkit, pkgconfig, glib, glib_networking, libsoup, gsettings_desktop_schemas, patches ? null}:
{ stdenv, fetchurl
, pkgconfig, wrapGAppsHook
, glib, glib_networking, gsettings_desktop_schemas, gtk, libsoup, webkitgtk
, patches ? null
}:
stdenv.mkDerivation rec {
name = "surf-${version}";
version="0.7";
version = "2.0";
src = fetchurl {
url = "http://dl.suckless.org/surf/surf-${version}.tar.gz";
sha256 = "0jj93izd8fizxfa6ln9w1h9bwki81sz5dhskh5x1rl34zd38aq4m";
sha256 = "07cmajyafljigy10d21kkyvv5jf3hxkx06pz3rwwk3y3c9x4rvps";
};
buildInputs = [ gtk2 makeWrapper webkit gsettings_desktop_schemas pkgconfig glib libsoup ];
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
buildInputs = [ glib glib_networking gsettings_desktop_schemas gtk libsoup webkitgtk ];
# Allow users set their own list of patches
inherit patches;
buildPhase = " make ";
# `-lX11' to make sure libX11's store path is in the RPATH
NIX_LDFLAGS = "-lX11";
preConfigure = ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'';
installFlags = [ "PREFIX=/" "DESTDIR=$(out)" ];
preFixup = ''
wrapProgram "$out/bin/surf" \
--prefix GIO_EXTRA_MODULES : ${glib_networking.out}/lib/gio/modules \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
meta = {
description = "Simple web browser";
meta = with stdenv.lib; {
description = "A simple web browser based on WebKit/GTK+";
longDescription = ''
Surf is a simple web browser based on WebKit/GTK+. It is able to display
websites and follow links. It supports the XEmbed protocol which makes it
possible to embed it in another application. Furthermore, one can point
surf to another URI by setting its XProperties.
'';
'';
homepage = http://surf.suckless.org;
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
license = licenses.mit;
platforms = webkitgtk.meta.platforms;
maintainers = with maintainers; [ joachifm ];
};
}

@ -1,42 +0,0 @@
{ stdenv, fetchzip
, pkgconfig, wrapGAppsHook
, glib, glib_networking, gsettings_desktop_schemas, gtk2, libsoup, webkitgtk
, patches ? null
}:
let
# http://git.suckless.org/surf/log/?h=surf-webkit2
rev = "7e02344a615a61246ccce1c7f770e88fbd57756e";
sha256 = "11f93fbjhl7nfgwkcc45lcm3x1wk5h87ap8fbw9w855021i57pp6";
date = "2017-03-22";
in
stdenv.mkDerivation rec {
name = "surf-webkit2-${date}";
src = fetchzip {
url = "http://git.suckless.org/surf/snapshot/surf-${rev}.tar.gz";
inherit sha256;
};
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
buildInputs = [ glib glib_networking gsettings_desktop_schemas gtk2 libsoup webkitgtk ];
inherit patches;
installFlags = [ "PREFIX=/" "DESTDIR=$(out)" ];
meta = with stdenv.lib; {
description = "A simple web browser based on WebKit/GTK+";
longDescription = ''
Surf is a simple web browser based on WebKit/GTK+. It is able to display
websites and follow links. It supports the XEmbed protocol which makes it
possible to embed it in another application. Furthermore, one can point
surf to another URI by setting its XProperties.
'';
homepage = http://surf.suckless.org;
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ joachifm ];
};
}

@ -1,34 +0,0 @@
{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "terraform-${version}";
version = "0.8.5";
goPackagePath = "github.com/hashicorp/terraform";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "terraform";
rev = "v${version}";
sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09";
};
postInstall = ''
# remove all plugins, they are part of the main binary now
for i in $bin/bin/*; do
if [[ $(basename $i) != terraform ]]; then
rm "$i"
fi
done
'';
meta = with stdenv.lib; {
description = "Tool for building, changing, and versioning infrastructure";
homepage = "https://www.terraform.io/";
license = licenses.mpl20;
maintainers = with maintainers; [
jgeerds
zimbatm
];
};
}

@ -1,43 +1,44 @@
{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
{ stdenv, lib, buildGoPackage, fetchpatch, fetchFromGitHub }:
let
generic = { version, sha256 }:
buildGoPackage rec {
name = "terraform-${version}";
goPackagePath = "github.com/hashicorp/terraform";
goPackagePath = "github.com/hashicorp/terraform";
generic = { version, sha256, ... }@attrs:
let attrs' = builtins.removeAttrs attrs ["version" "sha256"]; in
buildGoPackage ({
name = "terraform-${version}";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "terraform";
rev = "v${version}";
inherit sha256;
};
inherit goPackagePath;
postInstall = ''
# remove all plugins, they are part of the main binary now
for i in $bin/bin/*; do
if [[ $(basename $i) != terraform ]]; then
rm "$i"
fi
done
'';
src = fetchFromGitHub {
owner = "hashicorp";
repo = "terraform";
rev = "v${version}";
inherit sha256;
};
preCheck = ''
export HOME=$TMP
'';
postInstall = ''
# remove all plugins, they are part of the main binary now
for i in $bin/bin/*; do
if [[ $(basename $i) != terraform ]]; then
rm "$i"
fi
done
'';
doCheck = builtins.compareVersions version "0.9.0" >= 0;
preCheck = ''
export HOME=$TMP
'';
meta = with stdenv.lib; {
description = "Tool for building, changing, and versioning infrastructure";
homepage = https://www.terraform.io/;
license = licenses.mpl20;
maintainers = with maintainers; [ jgeerds zimbatm peterhoeg ];
};
};
meta = with stdenv.lib; {
description = "Tool for building, changing, and versioning infrastructure";
homepage = https://www.terraform.io/;
license = licenses.mpl20;
maintainers = with maintainers; [ jgeerds zimbatm peterhoeg ];
};
} // attrs');
in rec {
in {
terraform_0_8_5 = generic {
version = "0.8.5";
sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09";
@ -48,8 +49,21 @@ in rec {
sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb";
};
terraform_0_9_1 = generic {
version = "0.9.1";
sha256 = "081p6dlvkg9mgaz49ichxzlk1ks0rxa7nvilaq8jj1gq3jvylqnh";
terraform_0_9_2 = generic {
version = "0.9.2";
sha256 = "1yj5x1d10028fm3v3gjyjdn128ps0as345hr50y8x3vn86n70lxl";
patches = [
(fetchpatch {
url = "https://github.com/hashicorp/terraform/pull/13237.patch";
sha256 = "03c2nq12gvqqp12znvl3lmiviwsqksx4nrplv09fns2kz2gyfnbm";
})
(fetchpatch {
url = "https://github.com/hashicorp/terraform/pull/13248.patch";
sha256 = "0awj8gaic0j7a69is95f2rll3yip4n6avai1jh20b1x7dybdrp5m";
})
];
doCheck = true;
};
}

@ -3,14 +3,14 @@
, glib_networking }:
stdenv.mkDerivation rec {
version = "1.3.3";
version = "1.4.2";
name = "corebird-${version}";
src = fetchFromGitHub {
owner = "baedert";
repo = "corebird";
rev = version;
sha256 = "09k0jrhjqrmpvyz5pf1g7wkidflkhpvw5869a95vnhfxjd45kzs3";
sha256 = "0s28q9c7p4p4jyhb1g6gdwdphlf6yhi6yg4yn8bkd0gmyf9acakb";
};
preConfigure = ''
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ automake autoconf libtool pkgconfig wrapGAppsHook ];
buildInputs = [
gtk3 json_glib sqlite libsoup gettext vala_0_32 gnome3.rest gnome3.dconf glib_networking
gtk3 json_glib sqlite libsoup gettext vala_0_32 gnome3.rest gnome3.dconf gnome3.gspell glib_networking
] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav ]);
meta = {

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
description = "Mini Web server that let others upload files to your computer";
homepage = http://stackp.online.fr/droopy;
license = licenses.bsd3;
maintainers = maintainers.profpatsch;
maintainers = [ maintainers.profpatsch ];
};
}

@ -0,0 +1,29 @@
{ pythonPackages, fetchurl, lib }:
with pythonPackages;
buildPythonApplication rec {
name = "${pname}-${version}";
pname = "rss2email";
version = "3.9";
propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ];
src = fetchurl {
url = "mirror://pypi/r/rss2email/${name}.tar.gz";
sha256 = "02wj9zhmc2ym8ba1i0z9pm1c622z2fj7fxwagnxbvpr1402ahmr5";
};
postInstall = ''
install -Dm 644 r2e.1 $out/share/man/man1/r2e.1
# an alias for better finding the manpage
ln -s -T r2e.1 $out/share/man/man1/rss2email.1
'';
meta = with lib; {
description = "A tool that converts RSS/Atom newsfeeds to email.";
homepage = "https://pypi.python.org/pypi/rss2email";
license = licenses.gpl2;
maintainers = with maintainers; [ jb55 profpatsch ];
};
}

@ -1,5 +1,5 @@
{ stdenv, fetchurl, zlib
, ocaml, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }:
, ocaml, ocamlbuild, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }:
stdenv.mkDerivation rec {
name = "google-drive-ocamlfuse-${version}";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "1ldja7080pnjaibrbdvfqwakp4mac8yw1lkb95f7lgldmy96lxas";
};
buildInputs = [ zlib ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl];
buildInputs = [ zlib ocaml ocamlbuild ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl];
configurePhase = "ocaml setup.ml -configure --prefix \"$out\"";
buildPhase = "ocaml setup.ml -build";

@ -6,7 +6,6 @@
assert stdenv.isLinux;
stdenv.mkDerivation rec {
name = "jitsi-${version}";
version = "2.10.5550";
@ -15,7 +14,6 @@ stdenv.mkDerivation rec {
sha256 = "11vjchc3dnzj55x7c62wsm6masvwmij1ifkds917r1qvil1nzz6d";
};
patches = [ ./jitsi.patch ];
jitsiItem = makeDesktopItem {
@ -42,7 +40,8 @@ stdenv.mkDerivation rec {
xorg.libXv
]);
buildInputs = [unzip ant jdk];
nativeBuildInputs = [ unzip ];
buildInputs = [ ant jdk ];
buildPhase = ''ant make'';
@ -55,11 +54,11 @@ stdenv.mkDerivation rec {
cp resources/install/generic/run.sh $out/bin/jitsi
chmod +x $out/bin/jitsi
substituteInPlace $out/bin/jitsi \
--subst-var-by JAVA ${jdk}/bin/java \
--subst-var-by EXTRALIBS ${gtk2.out}/lib
--subst-var-by JAVA ${jdk}/bin/java \
--subst-var-by EXTRALIBS ${gtk2.out}/lib
sed -e 's,^java\ ,${jdk}/bin/java ,' -i $out/bin/jitsi
patchShebangs $out
libPath="$libPath:${jdk.jre.home}/lib/${jdk.architecture}"
libPath="$libPath:${jdk.home}/lib/${jdk.architecture}"
find $out/ -type f -name '*.so' | while read file; do
patchelf --set-rpath "$libPath" "$file" && \
patchelf --shrink-rpath "$file"
@ -71,7 +70,6 @@ stdenv.mkDerivation rec {
description = "Open Source Video Calls and Chat";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = [ maintainers.khumba ];
maintainers = with maintainers; [ khumba ndowens ];
};
}

@ -1,144 +1,92 @@
{ stdenv, lib, fetchFromGitHub, fetchgit, pkgconfig, gyp, cmake
, qtbase, qtimageformats, qtwayland
, breakpad, ffmpeg, openalSoft, openssl, zlib, libexif, lzma, libopus
, gtk2, glib, cairo, pango, gdk_pixbuf, atk, libappindicator-gtk2
, libwebp, libunity, dee, libdbusmenu-glib, libva-full, wayland
, xcbutilrenderutil, icu, libSM, libICE, libproxy, libvdpau
, libxcb, xcbutilwm, xcbutilimage, xcbutilkeysyms, libxkbcommon
, libpng, libjpeg, freetype, harfbuzz, pcre16, xproto, libX11
, inputproto, sqlite, dbus
, qtbase, qtimageformats, makeQtWrapper
, breakpad, gtk3, libappindicator-gtk3, dee
, ffmpeg, openalSoft, minizip
}:
let
system-x86_64 = lib.elem stdenv.system lib.platforms.x86_64;
packagedQt = "5.6.2";
# Hacky: split "1.2.3-4" into "1.2.3" and "4"
systemQt = (builtins.parseDrvName qtbase.version).name;
qtLibs = [ qtbase qtimageformats qtwayland ];
in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
name = "telegram-desktop-${version}";
version = "1.0.2";
qtVersion = lib.replaceStrings ["."] ["_"] packagedQt;
version = "1.0.27";
src = fetchFromGitHub {
owner = "telegramdesktop";
repo = "tdesktop";
rev = "v${version}";
sha256 = "1pakxzs28v794x9mm7pb2m0phkfrwq19shz8a6lfyidb6ng85hy2";
# Submodules
src = fetchgit {
url = "https://github.com/telegramdesktop/tdesktop";
rev = "refs/tags/v${version}";
sha256 = "05g88g6h2a7f9biliicg81fqssx0y3akd3y5r2q2b5h8q3igqrfc";
};
tgaur = fetchgit {
url = "https://aur.archlinux.org/telegram-desktop.git";
rev = "957a76f9fb691486341bcf4781ad0ef3d16f6b69";
sha256 = "01nrvvq0mrdyvamjgqr4z5aahyd1wrf28jyddpfsnixp2w5kxqj8";
url = "https://aur.archlinux.org/telegram-desktop-systemqt.git";
rev = "b4d169076ed12ec01941a95499774d5caa6fc00e";
sha256 = "0pmm6slabg9xazgs0ffnp8v0hx3vnpdfgymvapwqpm3h9mwk22x9";
};
buildInputs = [
breakpad ffmpeg openalSoft openssl zlib libexif lzma libopus
gtk2 glib libappindicator-gtk2 libunity cairo pango gdk_pixbuf atk
dee libdbusmenu-glib libva-full xcbutilrenderutil icu libproxy
libSM libICE
# Qt dependencies
libxcb xcbutilwm xcbutilimage xcbutilkeysyms libxkbcommon
libpng libjpeg freetype harfbuzz pcre16 xproto libX11
inputproto sqlite dbus libwebp wayland libvdpau
gtk3 libappindicator-gtk3 dee qtbase qtimageformats ffmpeg openalSoft minizip
];
nativeBuildInputs = [ pkgconfig gyp cmake ];
nativeBuildInputs = [ pkgconfig gyp cmake makeQtWrapper ];
patches = [ "${tgaur}/aur-fixes.diff" ];
patches = [ "${tgaur}/aur-build-fixes.patch" ];
enableParallelBuilding = true;
qtSrcs = builtins.map (x: x.src) qtLibs;
qtNames = builtins.map (x: (builtins.parseDrvName x.name).name) (lib.tail qtLibs);
qtPatches = qtbase.patches;
GYP_DEFINES = lib.concatStringsSep "," [
"TDESKTOP_DISABLE_CRASH_REPORTS"
"TDESKTOP_DISABLE_AUTOUPDATE"
"TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
];
buildCommand = ''
unpackPhase
cd "$sourceRoot"
patchPhase
sed -i Telegram/gyp/Telegram.gyp \
-e 's,/usr/include/breakpad,${breakpad}/include/breakpad,g'
NIX_CFLAGS_COMPILE = [
"-DTDESKTOP_DISABLE_AUTOUPDATE"
"-DTDESKTOP_DISABLE_CRASH_REPORTS"
"-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
"-I${minizip}/include/minizip"
# See Telegram/gyp/qt.gypi
"-I${qtbase.dev}/mkspecs/linux-g++"
] ++ lib.concatMap (x: [
"-I${qtbase.dev}/include/${x}"
"-I${qtbase.dev}/include/${x}/${qtbase.version}"
"-I${qtbase.dev}/include/${x}/${qtbase.version}/${x}"
]) [ "QtCore" "QtGui" ];
CPPFLAGS = NIX_CFLAGS_COMPILE;
preConfigure = ''
sed -i Telegram/gyp/telegram_linux.gypi \
-e 's,/usr,/does-not-exist,g' \
-e 's,appindicator-0.1,appindicator3-0.1,g' \
-e 's,-flto,,g'
sed -i Telegram/gyp/qt.gypi \
-e 's,${packagedQt},${systemQt},g'
-e "s,/usr/bin/moc,moc,g"
sed -i Telegram/gyp/qt_rcc.gypi \
-e "s,/usr/bin/rcc,rcc,g"
gypFlagsArray=(
"-Dlinux_path_qt=$PWD/../qt"
"-Dlinux_lib_ssl=-lssl"
"-Dlinux_lib_crypto=-lcrypto"
"-Dlinux_lib_icu=-licuuc -licutu -licui18n"
)
gyp \
-Gconfig=Release \
--depth=Telegram/gyp \
--generator-output=../.. \
-Goutput_dir=out \
--format=cmake \
Telegram/gyp/Telegram.gyp
export QMAKE=$PWD/../qt/bin/qmake
( mkdir -p ../Libraries
cd ../Libraries
for i in $qtSrcs; do
tar -xaf $i
done
cd qtbase-*
# This patch is often outdated but the fixes doesn't feel very important
patch -p1 < ../../$sourceRoot/Telegram/Patches/qtbase_${qtVersion}.diff || true
for i in $qtPatches; do
patch -p1 < $i
done
${qtbase.postPatch}
cd ..
cd out/Release
export configureFlags="-prefix "$PWD/../qt" -release -opensource -confirm-license -system-zlib \
-system-libpng -system-libjpeg -system-freetype -system-harfbuzz -system-pcre -system-xcb \
-system-xkbcommon-x11 -no-eglfs -no-gtkstyle -static -nomake examples -nomake tests \
-no-directfb -system-proxies -openssl-linked -dbus-linked -system-sqlite -verbose \
${lib.optionalString (!system-x86_64) "-no-sse2"} -no-sse3 -no-ssse3 \
-no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-mips_dsp -no-mips_dspr2"
export dontAddPrefix=1
export MAKEFLAGS=-j$NIX_BUILD_CORES
NUM=$((`wc -l < CMakeLists.txt` - 2))
sed -i "$NUM r $tgaur/CMakeLists.inj" CMakeLists.txt
( cd qtbase-*
configurePhase
buildPhase
make install
)
for i in $qtNames; do
( cd $i-*
$QMAKE
buildPhase
make install
)
done
)
export ASM=$(type -p gcc)
'';
( cd Telegram/gyp
gyp "''${gypFlagsArray[@]}" --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=cmake
)
( cd out/Release
export ASM=$(type -p gcc)
cmake .
# For some reason, it can't find stdafx.h -- we need to build dependencies till it fails and then retry.
buildPhase || true
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -include stdafx.h"
buildPhase
)
install -Dm755 out/Release/Telegram $out/bin/telegram-desktop
installPhase = ''
install -Dm755 Telegram $out/bin/telegram-desktop
mkdir -p $out/share/applications $out/share/kde4/services
sed "s,/usr/bin,$out/bin,g" $tgaur/telegramdesktop.desktop > $out/share/applications/telegramdesktop.desktop
sed "s,/usr/bin,$out/bin,g" $tgaur/tg.protocol > $out/share/kde4/services/tg.protocol
for icon_size in 16 32 48 64 128 256 512; do
install -Dm644 "Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram-desktop.png"
install -Dm644 "../../../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram-desktop.png"
done
fixupPhase
wrapQtProgram $out/bin/telegram-desktop
'';
meta = with stdenv.lib; {

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

@ -6,13 +6,13 @@
let
pname = "liferea";
version = "1.12-rc2";
version = "1.12-rc3";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
sha256 = "1q83s900skl0w9pb0afq8z387ynhl0rqn6fmps8wmncj0z1q07wb";
sha256 = "0dd6hisqvc4ps6dx9ly34qx49ab1qa5h826b7dvf64mjqxa2v3kr";
};
nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ];

@ -0,0 +1,56 @@
{ stdenv, fetchFromGitHub, wxGTK, makeWrapper }:
stdenv.mkDerivation rec {
name = "treesheets-${version}";
version = "2017-03-27";
src = fetchFromGitHub {
owner = "aardappel";
repo = "treesheets";
rev = "1d1d6b214e3ae88445eb1ec0032d5fef14160f32";
sha256 = "0np91c4skq3yxq76c4zi33w73qb1w2nrcin490kkvrxk53jspklb";
};
buildInputs = [ wxGTK makeWrapper ];
preConfigure = "cd src";
postInstall = ''
mkdir "$out/share" -p
cp -av ../TS "$out/share/libexec"
mkdir "$out/bin" -p
makeWrapper "$out/share/libexec/treesheets" "$out/bin/treesheets"
mkdir "$out/share/doc" -p
for f in readme.html docs examples
do
mv -v "$out/share/libexec/$f" "$out/share/doc"
ln -sv "$out/share/doc/$f" "$out/share/libexec/$f"
done
mkdir "$out/share/applications" -p
mv -v "$out/share/libexec/treesheets.desktop" "$out/share/applications"
substituteInPlace "$out/share/applications/treesheets.desktop" \
--replace "Icon=images/treesheets.svg" "Icon=$out/share/libexec/images/treesheets.svg"
'';
meta = with stdenv.lib; {
description = "Free Form Data Organizer";
longDescription = ''
The ultimate replacement for spreadsheets, mind mappers, outliners,
PIMs, text editors and small databases.
Suitable for any kind of data organization, such as Todo lists,
calendars, project management, brainstorming, organizing ideas,
planning, requirements gathering, presentation of information, etc.
'';
homepage = http://strlen.com/treesheets/;
maintainers = with maintainers; [ obadz ];
platforms = platforms.linux;
license = licenses.zlib;
};
}

@ -2,18 +2,18 @@
stdenv.mkDerivation rec {
name = "diff-so-fancy-${version}";
version = "0.11.1";
# perl is needed here so patchShebangs can do its job
buildInputs = [perl makeWrapper];
version = "0.11.4";
src = fetchFromGitHub {
owner = "so-fancy";
repo = "diff-so-fancy";
rev = "v${version}";
sha256 = "1dw32c5i9mry6zr2a6h1369fhp1qbqimx04qgdmdnmn1imyck1h3";
sha256 = "1za2rm8jzcdc6bkpl198nrqf5bc05nw53vlkk15nmmb9snnb69ig";
};
# Perl is needed here for patchShebangs
nativeBuildInputs = [ perl makeWrapper ];
buildPhase = null;
installPhase = ''
@ -34,16 +34,14 @@ stdenv.mkDerivation rec {
--prefix PATH : "${ncurses.out}/bin"
'';
meta = {
meta = with stdenv.lib; {
homepage = https://github.com/so-fancy/diff-so-fancy;
description = "Good-looking diffs filter for git";
license = stdenv.lib.licenses.mit;
license = licenses.mit;
platforms = platforms.all;
longDescription = ''
diff-so-fancy builds on the good-lookin' output of git contrib's
diff-highlight to upgrade your diffs' appearances.
'';
platforms = stdenv.lib.platforms.all;
};
}

@ -1,33 +1,21 @@
{ stdenv, fetchurl, pythonPackages, makeWrapper, gettext, git }:
{ stdenv, fetchFromGitHub, pythonPackages, makeWrapper, gettext, git }:
let
inherit (pythonPackages) buildPythonApplication pyqt4 sip pyinotify python mock;
in buildPythonApplication rec {
name = "git-cola-${version}";
version = "2.8";
version = "2.10";
src = fetchurl {
url = "https://github.com/git-cola/git-cola/archive/v${version}.tar.gz";
sha256 = "19ff7i0h5fznrkm17lp3xkxwkq27whhiil6y6bm16b1wny5hjqlr";
src = fetchFromGitHub {
owner = "git-cola";
repo = "git-cola";
rev = "v${version}";
sha256 = "067g0yya6718kxagf5qm59zizp0lizca4m3ih85y732i6rqpgwv8";
};
buildInputs = [ git makeWrapper gettext ];
buildInputs = [ git gettext ];
propagatedBuildInputs = [ pyqt4 sip pyinotify ];
# HACK: wrapPythonPrograms adds 'import sys; sys.argv[0] = "git-cola"', but
# "import __future__" must be placed above that. This removes the argv[0] line.
postFixup = ''
wrapPythonPrograms
sed -i "$out/bin/.git-dag-wrapped" -e '{
/import sys; sys.argv/d
}'
sed -i "$out/bin/.git-cola-wrapped" -e '{
/import sys; sys.argv/d
}'
'';
doCheck = false;
meta = with stdenv.lib; {

@ -1,22 +1,20 @@
{ stdenv, fetchurl, pythonPackages }:
{ stdenv, fetchFromGitHub, pythonPackages }:
stdenv.mkDerivation rec {
name = "git-imerge-${version}";
version = "0.7.0";
version = "1.0.0";
src = fetchurl {
url = "https://github.com/mhagger/git-imerge/archive/${version}.tar.gz";
sha256 = "00nwn3rfhf15wsv01lfji5412d7yz827ric916lnyp662d6gx206";
src = fetchFromGitHub {
owner = "mhagger";
repo = "git-imerge";
rev = "v${version}";
sha256 = "1ylzxmbjfrzzxmcrbqzy1wv21npqj1r6cgl77a9n2zvsrz8zdb74";
};
buildInputs = [ pythonPackages.python pythonPackages.wrapPython ];
installPhase = ''
mkdir -p $out/bin
make install PREFIX=$out
wrapPythonPrograms
'';
makeFlags = "PREFIX= DESTDIR=$(out)" ;
meta = with stdenv.lib; {
homepage = https://github.com/mhagger/git-imerge;
description = "Perform a merge between two branches incrementally";

@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
name = "git-radar-${version}";
version = "0.3.2";
version = "0.5";
phases = [ "unpackPhase" "installPhase" ];
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
owner = "michaeldfallen";
repo = "git-radar";
rev = "v${version}";
sha256 = "1028462b4kqxx66vjv7r8nnr6bi3kw11fixpqyg2srqriha6447p";
sha256 = "1915aqx8bfc4xmvhx2gfxv72p969a6rn436kii9w4yi38hibmqv9";
};
installPhase = ''
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://github.com/michaeldfallen/git-radar;
license = licenses.mit;
description = "Git-radar is a tool you can add to your prompt to provide at-a-glance information on your git repo";
description = "A tool you can add to your prompt to provide at-a-glance information on your git repo";
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ kamilchm ];
};

@ -1,7 +1,7 @@
{ stdenv, fetchurl, unzip, makeWrapper, jre }:
stdenv.mkDerivation {
name = "subgit-3.1.0";
stdenv.mkDerivation rec {
name = "subgit-3.2.4";
meta = {
description = "A tool for a smooth, stress-free SVN to Git migration";
@ -11,7 +11,7 @@ stdenv.mkDerivation {
platforms = stdenv.lib.platforms.all;
};
buildInputs = [ unzip makeWrapper ];
nativeBuildInputs = [ unzip makeWrapper ];
installPhase = ''
mkdir $out;
@ -20,7 +20,7 @@ stdenv.mkDerivation {
'';
src = fetchurl {
url = http://old.subgit.com/download/subgit-3.1.0.zip;
sha256 = "08qhpg6y2ziwplm0z1ghh1wfp607sw4hyb53a7qzfn759j5kcdrg";
url = "http://subgit.com/download/${name}.zip";
sha256 = "13r6hi2zk46bs3j17anfc85kszlwliv2yc16qx834b3v4w68hajw";
};
}
}

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "transcrypt-${version}";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitHub {
owner = "elasticdog";
repo = "transcrypt";
rev = "v${version}";
sha256 = "12n8714my9i93lysqa3dj1z5xgi10iv5y1mnsqki9zn5av3lgqkq";
sha256 = "05q0rgcsphrkavmcsm3qghsl1pkgshvhdf6zpwkn1qcj288h8gkc";
};
buildInputs = [ git makeWrapper openssl ];

@ -2,17 +2,18 @@
, libXfixes, atk, gtk2, libXrender, pango, gnome2, cairo, freetype, fontconfig
, libX11, libXi, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
, nss, nspr, cups, fetchurl, expat, gdk_pixbuf, libXdamage, libXrandr, dbus
, dpkg, makeDesktopItem
}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "gitkraken-${version}";
version = "2.2.1";
version = "2.3.1";
src = fetchurl {
url = "https://release.gitkraken.com/linux/v${version}.tar.gz";
sha256 = "12nyw2dh9ylrms264dbw0xzyif0znmba32zyfq7kdp0iay0wvgqd";
url = "https://release.gitkraken.com/linux/v${version}.deb";
sha256 = "ddb9eec34232e830646633c43bc9adc61afa0eee79500af29918b62780093b2a";
};
libPath = makeLibraryPath [
@ -53,9 +54,29 @@ stdenv.mkDerivation rec {
dontBuild = true;
desktopItem = makeDesktopItem {
name = "gitkraken";
exec = "gitkraken";
icon = "app";
desktopName = "GitKraken";
genericName = "Git Client";
categories = "Application;Development;";
comment = "Graphical Git client from Axosoft";
};
buildInputs = [ dpkg ];
unpackPhase = "dpkg-deb -x $src .";
installPhase = ''
mkdir -p "$out/opt/gitkraken"
cp -r ./* "$out/opt/gitkraken"
cp -r usr/share/gitkraken/* "$out/opt/gitkraken"
mkdir -p "$out/share/applications"
cp $desktopItem/share/applications/* "$out/share/applications"
mkdir -p "$out/share/pixmaps"
cp usr/share/pixmaps/app.png "$out/share/pixmaps"
'';
postFixup = ''

@ -4,11 +4,11 @@ with rustPlatform;
buildRustPackage rec {
name = "pijul-${version}";
version = "0.3.3";
version = "0.4.1";
src = fetchurl {
url = "https://pijul.org/releases/${name}.tar.gz";
sha256 = "933e68703916ee7b50cd09f928bb072bdfc3388b69ff657578c23080f7df22b8";
sha256 = "e492fde1bea839f474f5b91bb762a0fab5ff6a9bc2b8f20eb91a253ca6feda5a";
};
sourceRoot = "${name}/pijul";
@ -18,7 +18,7 @@ buildRustPackage rec {
doCheck = false;
depsSha256 = "1aiyjl8jbmr8yys5bsd2mg1i7jryzb8kxqlmxp7kjn2qx7b4q2zd";
depsSha256 = "17n66clr31s49gbbcsii0f31s63rncc9mmz4wwdi0yl4r6ykv9h7";
meta = with stdenv.lib; {
description = "A distributed version control system";

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "src-${version}";
version = "1.12";
version = "1.13";
src = fetchurl {
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
sha256 = "1m6rjbizx9win3jkciyx176sfy98r5arb1g3l6aqnqam9gpr44zm";
sha256 = "0l13ld8nxm1c720ns22lyx3q1bq2c2zn78vi5w92b7nl6p2nncy8";
};
buildInputs = [ python rcs git makeWrapper ];

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "distribution-${version}";
version = "2.5.1";
version = "2.6.0";
rev = "v${version}";
goPackagePath = "github.com/docker/distribution";
@ -11,7 +11,7 @@ buildGoPackage rec {
owner = "docker";
repo = "distribution";
inherit rev;
sha256 = "08nxcsl9bc3k9gav2mkqccm5byrlfcgy6qaqaywiyza0b0cn4kdc";
sha256 = "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6";
};
meta = with stdenv.lib; {

@ -6,134 +6,154 @@
}:
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md
# https://github.com/docker/docker/blob/TAG/hack/dockerfile/binaries-commits
with lib;
stdenv.mkDerivation rec {
name = "docker-${version}";
version = "17.03.0-ce";
rev = "60ccb22"; # should match the version commit
rec {
dockerGen = {
version, rev, sha256
, runcRev, runcSha256
, containerdRev, containerdSha256
, tiniRev, tiniSha256
} : stdenv.mkDerivation rec {
inherit version rev;
src = fetchFromGitHub {
owner = "docker";
repo = "docker";
rev = "v${version}";
sha256 = "0ml9aan8x4w8kfz7dm9vvl8b1a0vq09si9b7z50xz84040cjhnr9";
};
name = "docker-${version}";
docker-runc = runc.overrideAttrs (oldAttrs: rec {
name = "docker-runc";
src = fetchFromGitHub {
owner = "docker";
repo = "runc";
rev = "a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70";
sha256 = "0n7vr47fhpyxx5vdnp453qp4cq50w4hwgq3ldyj5878d91iir7l1";
};
# docker/runc already include these patches / are not applicable
patches = [];
});
docker-containerd = containerd.overrideAttrs (oldAttrs: rec {
name = "docker-containerd";
src = fetchFromGitHub {
owner = "docker";
repo = "containerd";
rev = "977c511eda0925a723debdc94d09459af49d082a";
sha256 = "0hmcj8i70vv3a3bbdawrgi84a442m09x5mpc7fgn8dd3v031lcbc";
};
});
docker-tini = tini.overrideAttrs (oldAttrs: rec {
name = "docker-init";
src = fetchFromGitHub {
owner = "krallin";
repo = "tini";
rev = "949e6facb77383876aeff8a6944dde66b3089574";
sha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
repo = "docker";
rev = "v${version}";
sha256 = sha256;
};
# Do not remove static from make files as we want a static binary
patchPhase = ''
docker-runc = runc.overrideAttrs (oldAttrs: rec {
name = "docker-runc";
src = fetchFromGitHub {
owner = "docker";
repo = "runc";
rev = runcRev;
sha256 = runcSha256;
};
# docker/runc already include these patches / are not applicable
patches = [];
});
docker-containerd = containerd.overrideAttrs (oldAttrs: rec {
name = "docker-containerd";
src = fetchFromGitHub {
owner = "docker";
repo = "containerd";
rev = containerdRev;
sha256 = containerdSha256;
};
});
docker-tini = tini.overrideAttrs (oldAttrs: rec {
name = "docker-init";
src = fetchFromGitHub {
owner = "krallin";
repo = "tini";
rev = tiniRev;
sha256 = tiniSha256;
};
# Do not remove static from make files as we want a static binary
patchPhase = ''
'';
NIX_CFLAGS_COMPILE = [
"-DMINIMAL=ON"
];
});
buildInputs = [
makeWrapper removeReferencesTo pkgconfig go-md2man go
sqlite devicemapper btrfs-progs systemd
];
dontStrip = true;
DOCKER_BUILDTAGS = []
++ optional (systemd != null) [ "journald" ]
++ optional (btrfs-progs == null) "exclude_graphdriver_btrfs"
++ optional (devicemapper == null) "exclude_graphdriver_devicemapper";
# systemd 230 no longer has libsystemd-journal as a separate entity from libsystemd
postPatch = ''
substituteInPlace ./hack/make.sh --replace libsystemd-journal libsystemd
substituteInPlace ./daemon/logger/journald/read.go --replace libsystemd-journal libsystemd
'';
NIX_CFLAGS_COMPILE = [
"-DMINIMAL=ON"
];
});
buildPhase = ''
patchShebangs .
export AUTO_GOPATH=1
export DOCKER_GITCOMMIT="${rev}"
./hack/make.sh dynbinary
'';
buildInputs = [
makeWrapper removeReferencesTo pkgconfig go-md2man go
sqlite devicemapper btrfs-progs systemd
];
outputs = ["out" "man"];
dontStrip = true;
extraPath = makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux ];
DOCKER_BUILDTAGS = []
++ optional (systemd != null) [ "journald" ]
++ optional (btrfs-progs == null) "exclude_graphdriver_btrfs"
++ optional (devicemapper == null) "exclude_graphdriver_devicemapper";
installPhase = ''
install -Dm755 ./bundles/${version}/dynbinary-client/docker-${version} $out/libexec/docker/docker
install -Dm755 ./bundles/${version}/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd
makeWrapper $out/libexec/docker/docker $out/bin/docker \
--prefix PATH : "$out/libexec/docker:$extraPath"
makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
--prefix PATH : "$out/libexec/docker:$extraPath"
# systemd 230 no longer has libsystemd-journal as a separate entity from libsystemd
postPatch = ''
substituteInPlace ./hack/make.sh --replace libsystemd-journal libsystemd
substituteInPlace ./daemon/logger/journald/read.go --replace libsystemd-journal libsystemd
'';
# docker uses containerd now
ln -s ${docker-containerd}/bin/containerd $out/libexec/docker/docker-containerd
ln -s ${docker-containerd}/bin/containerd-shim $out/libexec/docker/docker-containerd-shim
ln -s ${docker-runc}/bin/runc $out/libexec/docker/docker-runc
ln -s ${docker-proxy}/bin/docker-proxy $out/libexec/docker/docker-proxy
ln -s ${docker-tini}/bin/tini-static $out/libexec/docker/docker-init
buildPhase = ''
patchShebangs .
export AUTO_GOPATH=1
export DOCKER_GITCOMMIT="${rev}"
./hack/make.sh dynbinary
'';
# systemd
install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
outputs = ["out" "man"];
# completion
install -Dm644 ./contrib/completion/bash/docker $out/share/bash-completion/completions/docker
install -Dm644 ./contrib/completion/fish/docker.fish $out/share/fish/vendor_completions.d/docker.fish
install -Dm644 ./contrib/completion/zsh/_docker $out/share/zsh/site-functions/_docker
extraPath = makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux ];
installPhase = ''
install -Dm755 ./bundles/${version}/dynbinary-client/docker-${version} $out/libexec/docker/docker
install -Dm755 ./bundles/${version}/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd
makeWrapper $out/libexec/docker/docker $out/bin/docker \
--prefix PATH : "$out/libexec/docker:$extraPath"
makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
--prefix PATH : "$out/libexec/docker:$extraPath"
# docker uses containerd now
ln -s ${docker-containerd}/bin/containerd $out/libexec/docker/docker-containerd
ln -s ${docker-containerd}/bin/containerd-shim $out/libexec/docker/docker-containerd-shim
ln -s ${docker-runc}/bin/runc $out/libexec/docker/docker-runc
ln -s ${docker-proxy}/bin/docker-proxy $out/libexec/docker/docker-proxy
ln -s ${docker-tini}/bin/tini-static $out/libexec/docker/docker-init
# systemd
install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
# completion
install -Dm644 ./contrib/completion/bash/docker $out/share/bash-completion/completions/docker
install -Dm644 ./contrib/completion/fish/docker.fish $out/share/fish/vendor_completions.d/docker.fish
install -Dm644 ./contrib/completion/zsh/_docker $out/share/zsh/site-functions/_docker
# Include contributed man pages
man/md2man-all.sh -q
manRoot="$man/share/man"
mkdir -p "$manRoot"
for manDir in man/man?; do
manBase="$(basename "$manDir")" # "man1"
for manFile in "$manDir"/*; do
manName="$(basename "$manFile")" # "docker-build.1"
mkdir -p "$manRoot/$manBase"
gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
# Include contributed man pages
man/md2man-all.sh -q
manRoot="$man/share/man"
mkdir -p "$manRoot"
for manDir in man/man?; do
manBase="$(basename "$manDir")" # "man1"
for manFile in "$manDir"/*; do
manName="$(basename "$manFile")" # "docker-build.1"
mkdir -p "$manRoot/$manBase"
gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
done
done
done
'';
'';
preFixup = ''
find $out -type f -exec remove-references-to -t ${go} -t ${stdenv.cc.cc} -t ${stdenv.glibc.dev} '{}' +
'';
preFixup = ''
find $out -type f -exec remove-references-to -t ${go} -t ${stdenv.cc.cc} -t ${stdenv.glibc.dev} '{}' +
'';
meta = {
homepage = http://www.docker.com/;
description = "An open source project to pack, ship and run any application as a lightweight container";
license = licenses.asl20;
maintainers = with maintainers; [ offline tailhook ];
platforms = platforms.linux;
meta = {
homepage = http://www.docker.com/;
description = "An open source project to pack, ship and run any application as a lightweight container";
license = licenses.asl20;
maintainers = with maintainers; [ offline tailhook ];
platforms = platforms.linux;
};
};
docker_17_03 = dockerGen rec {
version = "17.03.1-ce";
rev = "c6d412e"; # git commit
sha256 = "1h3hkg15c3isfgaqpkp3mr7ys5826cz24hn3f3wz07jmismq98q7";
runcRev = "54296cf40ad8143b62dbcaa1d90e520a2136ddfe";
runcSha256 = "0ylymx7pi4jmvbqj94j2i8qspy8cpq0m91l6a0xiqlx43yx6qi2m";
containerdRev = "4ab9917febca54791c5f071a9d1f404867857fcc";
containerdSha256 = "06f2gsx4w9z4wwjhrpafmz6c829wi8p7crj6sya6x9ii50bkn8p6";
tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
};
}

@ -2,17 +2,19 @@
, xcbutilimage, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
stdenv.mkDerivation rec {
rev = "c8e1aece7301c3c6481bf2f695734f8d273f252e";
version = "2.7-2016-09-17";
version = "2.7-2017-04-01";
name = "i3lock-color-${version}";
src = fetchFromGitHub {
owner = "chrjguill";
repo = "i3lock-color";
inherit rev;
sha256 = "07fpvwgdfxsnxnf63idrz3n1kbyayr53lsfns2q775q93cz1mfia";
rev = "61f6428aedbe4829d3e0f51d137283c8aec1e206";
sha256 = "0h4nzx46kcsp6b1i2lm9y4d1w1icrpvjl8g1h3wbpa5x4crh4703";
};
buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutilimage pam libX11
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ which libxcb xcbutilkeysyms xcbutilimage pam libX11
libev cairo libxkbcommon libxkbfile ];
makeFlags = "all";
preInstall = ''
mkdir -p $out/share/man/man1

@ -1,10 +1,11 @@
{ stdenv, fetchFromGitHub, pango, libinput
, makeWrapper, cmake, pkgconfig, asciidoc, libxslt, docbook_xsl, cairo
, wayland, wlc, libxkbcommon, pixman, fontconfig, pcre, json_c, dbus_libs, libcap
, xwayland
}:
let
version = "0.11";
version = "0.12.2";
in
stdenv.mkDerivation rec {
name = "sway-${version}";
@ -13,12 +14,12 @@ in
owner = "Sircmpwn";
repo = "sway";
rev = "${version}";
sha256 = "01k01f72kh90fwgqh2hgg6dv9931x4v18bzz11b47mn7p9z68ddv";
sha256 = "1hkr6pmz45xa5w5y21ijz7i2dwb62rifhcy28r8kh5r2hwbil2hs";
};
nativeBuildInputs = [ makeWrapper cmake pkgconfig asciidoc libxslt docbook_xsl ];
buildInputs = [ wayland wlc libxkbcommon pixman fontconfig pcre json_c dbus_libs pango cairo libinput libcap ];
buildInputs = [ wayland wlc libxkbcommon pixman fontconfig pcre json_c dbus_libs pango cairo libinput libcap xwayland ];
patchPhase = ''
sed -i s@/etc/sway@$out/etc/sway@g CMakeLists.txt;

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub }:
let version = "0.2.1"; in
let version = "0.3.2"; in
stdenv.mkDerivation {
name = "fontconfig-penultimate-${version}";
@ -8,7 +8,7 @@ stdenv.mkDerivation {
owner = "ttuegel";
repo = "fontconfig-penultimate";
rev = version;
sha256 = "14arpalmpn7ig2myxslk4jdg6lm0cnmwsxy7zl0j7yr417k1kprf";
sha256 = "01cgqdmgpqahkg71lnvr3yzsmka9q1kgkbiz6w5ds1fhrpcswj7p";
};
installPhase = ''

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "iosevka-${version}";
version = "1.11.4";
version = "1.12.1";
buildInputs = [ unzip ];
src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/01-iosevka-${version}.zip";
sha256 = "0mn9pqkambsal5cvz8hzlwx7qvcdfch8g1iy7mqhgghzflfhsy8x";
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/iosevka-pack-${version}.zip";
sha256 = "1rwg06fbizf2cmjwysx4ciz96nh80k48drsyr3rshppycajnaahj";
};
sourceRoot = ".";

@ -1,6 +1,6 @@
{ stdenv, intltool, fetchurl, vala_0_32, libgtop
{ stdenv, intltool, fetchurl, vala, libgtop
, pkgconfig, gtk3, glib
, bash, makeWrapper, itstool, libxml2
, bash, wrapGAppsHook, itstool, libxml2
, gnome3, librsvg, gdk_pixbuf, file }:
stdenv.mkDerivation rec {
@ -10,17 +10,8 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
buildInputs = [ vala_0_32 pkgconfig gtk3 glib libgtop intltool itstool libxml2
gnome3.gsettings_desktop_schemas makeWrapper file
gdk_pixbuf gnome3.defaultIconTheme librsvg ];
preFixup = ''
wrapProgram "$out/bin/baobab" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
wrapGAppsHook file gdk_pixbuf gnome3.defaultIconTheme librsvg ];
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Baobab;

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib, libxslt
, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit, makeWrapper
, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit, wrapGAppsHook
, docbook_xsl_ns, docbook_xsl, gnome3 }:
stdenv.mkDerivation rec {
@ -7,25 +7,18 @@ stdenv.mkDerivation rec {
buildInputs = with gnome3; [
dbus libgcrypt pam python gtk3 gconf libgnome_keyring
pango gcr gdk_pixbuf atk p11_kit makeWrapper
pango gcr gdk_pixbuf atk p11_kit
];
propagatedBuildInputs = [ glib libtasn1 libxslt ];
nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ];
nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl wrapGAppsHook ];
configureFlags = [
"--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
"--with-pkcs11-modules=$$out/lib/pkcs11/"
];
preFixup = ''
wrapProgram "$out/bin/gnome-keyring" \
--prefix XDG_DATA_DIRS : "${glib.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
wrapProgram "$out/bin/gnome-keyring-daemon" \
--prefix XDG_DATA_DIRS : "${glib.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = gnome3.maintainers;

@ -1,9 +1,9 @@
{ stdenv, fetchurl, pkgconfig, glib, gtk3, enchant, isocodes }:
{ stdenv, fetchurl, pkgconfig, glib, gtk3, enchant, isocodes, vala }:
stdenv.mkDerivation rec {
inherit (import ./src.nix fetchurl) name src;
buildInputs = [ pkgconfig glib gtk3 enchant isocodes ];
buildInputs = [ pkgconfig glib gtk3 enchant isocodes vala ];
meta = with stdenv.lib; {
platforms = platforms.linux;

@ -1,10 +1,10 @@
fetchurl: rec {
major = "1.0";
minor = "3";
major = "1.2";
minor = "1";
name = "gspell-${major}.${minor}";
src = fetchurl {
url = "mirror://gnome/sources/gspell/${major}/${name}.tar.xz";
sha256 = "1m8v4rqaxjsblccc3nnirkbkzgqm90vfpzp3x08lkqriqvk0anfr";
sha256 = "18zisdrq14my2iq6iv3lhqfn9jg98bqwbzcdidp7hfk915gkw74z";
};
}

@ -382,6 +382,7 @@
version = "1.24.0.0";
src = "${ghcjsBoot}/boot/cabal/Cabal";
doCheck = false;
hyperlinkSource = false;
libraryHaskellDepends = [
array base binary bytestring containers deepseq directory filepath
pretty process time unix

@ -1,11 +1,11 @@
{ stdenv, fetchurl, makeWrapper, jre, gnugrep, coreutils }:
stdenv.mkDerivation rec {
name = "scala-2.11.8";
name = "scala-2.11.9";
src = fetchurl {
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
sha256 = "1khs7673wca7gnxz2rxphv6v5k94jkpcarlqznsys9cpknhqdz47";
sha256 = "02rpx0pzr98vla2mgkgf6s8blccnrji5bxw05z36m1iwqmpryx5r";
};
propagatedBuildInputs = [ jre ] ;

@ -1,4 +1,4 @@
{ go, govers, parallel, lib, fetchgit, fetchhg, rsync }:
{ go, govers, parallel, lib, fetchgit, fetchhg, rsync, removeReferencesTo }:
{ name, buildInputs ? [], nativeBuildInputs ? [], passthru ? {}, preFixup ? ""
@ -41,9 +41,7 @@ let
removeReferences = [ ] ++ lib.optional (!allowGoReference) go;
removeExpr = refs: lib.flip lib.concatMapStrings refs (ref: ''
| sed "s,${ref},$(echo "${ref}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" \
'');
removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}'';
dep2src = goDep:
{
@ -70,7 +68,7 @@ go.stdenv.mkDerivation (
(builtins.removeAttrs args [ "goPackageAliases" "disabled" ]) // {
inherit name;
nativeBuildInputs = [ go parallel ]
nativeBuildInputs = [ removeReferencesTo go parallel ]
++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs;
buildInputs = [ go ] ++ buildInputs;
@ -186,11 +184,7 @@ go.stdenv.mkDerivation (
'';
preFixup = preFixup + ''
while read file; do
cat $file ${removeExpr removeReferences} > $file.tmp
mv $file.tmp $file
chmod +x $file
done < <(find $bin/bin -type f 2>/dev/null)
find $bin/bin -type f -exec ${removeExpr removeReferences} '{}' +
'';
shellHook = ''

@ -41,7 +41,7 @@ self: super: {
unix = null;
# These packages are core libraries in GHC 7.10.x, but not here.
binary = self.binary_0_8_4_1;
binary = self.binary_0_8_5_1;
deepseq = self.deepseq_1_3_0_1;
haskeline = self.haskeline_0_7_3_1;
hoopl = self.hoopl_3_10_2_0;

@ -42,7 +42,7 @@ self: super: {
xhtml = self.xhtml_3000_2_1;
# https://github.com/haskell/cabal/issues/2322
Cabal_1_22_4_0 = super.Cabal_1_22_4_0.override { binary = self.binary_0_8_4_1; process = self.process_1_2_3_0; };
Cabal_1_22_4_0 = super.Cabal_1_22_4_0.override { binary = self.binary_0_8_5_1; process = self.process_1_2_3_0; };
# https://github.com/tibbe/hashable/issues/85
hashable = dontCheck super.hashable;

@ -41,10 +41,10 @@ self: super: {
xhtml = self.xhtml_3000_2_1;
# https://github.com/haskell/cabal/issues/2322
Cabal_1_22_4_0 = super.Cabal_1_22_4_0.override { binary = dontCheck self.binary_0_8_4_1; };
Cabal_1_22_4_0 = super.Cabal_1_22_4_0.override { binary = dontCheck self.binary_0_8_5_1; };
# Avoid inconsistent 'binary' versions from 'text' and 'Cabal'.
cabal-install = super.cabal-install.overrideScope (self: super: { binary = dontCheck self.binary_0_8_4_1; });
cabal-install = super.cabal-install.overrideScope (self: super: { binary = dontCheck self.binary_0_8_5_1; });
# https://github.com/tibbe/hashable/issues/85
hashable = dontCheck super.hashable;

@ -39,11 +39,8 @@ self: super: {
transformers = self.transformers_0_4_3_0;
xhtml = self.xhtml_3000_2_1;
# https://github.com/haskell/cabal/issues/2322
Cabal_1_22_4_0 = super.Cabal_1_22_4_0.override { binary = dontCheck self.binary_0_8_4_1; };
# Avoid inconsistent 'binary' versions from 'text' and 'Cabal'.
cabal-install = super.cabal-install.overrideScope (self: super: { binary = dontCheck self.binary_0_8_4_1; });
cabal-install = super.cabal-install.overrideScope (self: super: { binary = dontCheck self.binary_0_8_5_1; });
# https://github.com/tibbe/hashable/issues/85
hashable = dontCheck super.hashable;
@ -101,6 +98,12 @@ self: super: {
lens = addBuildDepends super.lens (with self; [doctest generic-deriving nats simple-reflect]);
distributive = addBuildDepend super.distributive self.semigroups;
QuickCheck = addBuildDepend super.QuickCheck self.semigroups;
void = addBuildDepends super.void (with self; [hashable semigroups]);
# Need a newer version of Cabal to interpret their build instructions.
cmdargs = addSetupDepend super.cmdargs self.Cabal_1_24_2_0;
extra = addSetupDepend super.extra self.Cabal_1_24_2_0;
hlint = addSetupDepend super.hlint self.Cabal_1_24_2_0;
# Haddock doesn't cope with the new markup.
bifunctors = dontHaddock super.bifunctors;

@ -38,7 +38,7 @@ core-packages:
default-package-overrides:
- store < 0.4.1 # https://github.com/fpco/store/issues/104
# LTS Haskell 8.6
# LTS Haskell 8.8
- abstract-deque ==0.3
- abstract-par ==0.3.3
- AC-Vector ==2.3.2
@ -371,7 +371,7 @@ default-package-overrides:
- cmark ==0.5.5.1
- cmark-highlight ==0.2.0.0
- cmark-lucid ==0.1.0.0
- cmdargs ==0.10.16
- cmdargs ==0.10.17
- code-builder ==0.1.3
- code-page ==0.1.3
- codo-notation ==0.5.2
@ -666,6 +666,7 @@ default-package-overrides:
- format-numbers ==0.1.0.0
- formatting ==6.2.4
- fortran-src ==0.1.0.4
- foundation ==0.0.4
- Frames ==0.1.9
- free ==4.12.4
- free-vl ==0.1.4
@ -695,7 +696,7 @@ default-package-overrides:
- getopt-generics ==0.13
- ghc-events ==0.4.4.0
- ghc-exactprint ==0.5.3.0
- ghc-heap-view ==0.5.7
- ghc-heap-view ==0.5.9
- ghc-mod ==5.7.0.0
- ghc-paths ==0.1.0.9
- ghc-prof ==1.3.0.2
@ -708,7 +709,7 @@ default-package-overrides:
- ghcjs-base-stub ==0.1.0.2
- ghcjs-codemirror ==0.0.0.1
- ghcjs-hplay ==0.3.4.2
- ghcjs-perch ==0.3.3.1
- ghcjs-perch ==0.3.3.2
- gi-atk ==2.0.11
- gi-cairo ==1.0.11
- gi-gdk ==3.0.11
@ -897,10 +898,10 @@ default-package-overrides:
- hashable ==1.2.6.0
- hashable-time ==0.2
- hashmap ==1.3.2
- hashtables ==1.2.1.0
- hashtables ==1.2.1.1
- haskeline ==0.7.3.1
- haskell-gi ==0.20
- haskell-gi-base ==0.20
- haskell-gi ==0.20.1
- haskell-gi-base ==0.20.1
- haskell-import-graph ==1.0.1
- haskell-lexer ==1.0.1
- haskell-names ==0.8.0
@ -957,6 +958,7 @@ default-package-overrides:
- hfsevents ==0.1.6
- hid ==0.2.2
- hidapi ==0.1.4
- hidden-char ==0.1.0.0
- hierarchical-clustering ==0.4.6
- highjson ==0.4.0.0
- highjson-swagger ==0.4.0.0
@ -1097,7 +1099,8 @@ default-package-overrides:
- hyphenation ==0.6
- ical ==0.0.1
- iconv ==0.4.1.3
- identicon ==0.2.0
- identicon ==0.2.1
- idris ==1.0
- ieee754 ==0.8.0
- if ==0.1.0.0
- IfElse ==0.85
@ -1224,6 +1227,7 @@ default-package-overrides:
- leveldb-haskell ==0.6.4
- lexer-applicative ==2.1.0.1
- lhs2tex ==1.19
- libffi ==0.1
- libgit ==0.3.1
- libinfluxdb ==0.0.4
- libmpd ==0.9.0.6
@ -1291,7 +1295,7 @@ default-package-overrides:
- median-stream ==0.7.0.0
- mega-sdist ==0.3.0.2
- megaparsec ==5.2.0
- memory ==0.14.2
- memory ==0.14.3
- MemoTrie ==0.6.7
- mersenne-random ==1.0.0.1
- mersenne-random-pure64 ==0.2.2.0
@ -1327,7 +1331,7 @@ default-package-overrides:
- monad-extras ==0.6.0
- monad-http ==0.1.0.0
- monad-journal ==0.7.2
- monad-logger ==0.3.21
- monad-logger ==0.3.22
- monad-logger-json ==0.1.0.0
- monad-logger-prefix ==0.1.6
- monad-logger-syslog ==0.1.3.0
@ -1371,7 +1375,7 @@ default-package-overrides:
- multistate ==0.7.1.1
- murmur-hash ==0.1.0.9
- MusicBrainz ==0.2.4
- mustache ==2.1.2
- mustache ==2.1.3
- mutable-containers ==0.3.3
- mwc-probability ==1.3.0
- mwc-random ==0.13.5.0
@ -1567,6 +1571,7 @@ default-package-overrides:
- prelude-safeenum ==0.1.1.2
- preprocessor-tools ==1.0.1
- presburger ==1.3.1
- present ==4.1.0
- pretty-class ==1.0.1.1
- pretty-hex ==1.0
- pretty-show ==1.6.12
@ -1587,7 +1592,7 @@ default-package-overrides:
- prometheus-metrics-ghc ==0.1.0.1
- prompt ==0.1.1.2
- protobuf ==0.2.1.1
- protobuf-simple ==0.1.0.2
- protobuf-simple ==0.1.0.3
- protocol-buffers ==2.4.0
- protocol-buffers-descriptor ==2.4.0
- protolude ==0.1.10
@ -1725,7 +1730,7 @@ default-package-overrides:
- scalpel ==0.5.0
- scalpel-core ==0.5.0
- scanner ==0.2
- scientific ==0.3.4.10
- scientific ==0.3.4.11
- scotty ==0.11.0
- scrape-changes ==0.1.0.5
- scrypt ==0.5.0
@ -1867,7 +1872,7 @@ default-package-overrides:
- storable-record ==0.0.3.1
- store-core ==0.4
- Strafunski-StrategyLib ==5.0.0.10
- stratosphere ==0.4.1
- stratosphere ==0.4.2
- streaming ==0.1.4.5
- streaming-bytestring ==0.1.4.6
- streaming-commons ==0.1.17
@ -1935,11 +1940,11 @@ default-package-overrides:
- tasty-program ==1.0.5
- tasty-quickcheck ==0.8.4
- tasty-rerun ==1.1.6
- tasty-silver ==3.1.9
- tasty-silver ==3.1.10
- tasty-smallcheck ==0.8.1
- tasty-stats ==0.2.0.2
- tasty-tap ==0.0.4
- tasty-th ==0.1.4
- tasty-th ==0.1.5
- Taxonomy ==1.0.2
- TCache ==0.12.1
- tce-conf ==1.3
@ -2054,7 +2059,7 @@ default-package-overrides:
- uglymemo ==0.1.0.1
- unbound ==0.5.1
- unbound-generics ==0.3.1
- unbounded-delays ==0.1.0.9
- unbounded-delays ==0.1.0.10
- uncertain ==0.3.1.0
- unexceptionalio ==0.3.0
- unicode-show ==0.1.0.2
@ -2138,7 +2143,7 @@ default-package-overrides:
- wai-middleware-consul ==0.1.0.2
- wai-middleware-content-type ==0.5.0.1
- wai-middleware-crowd ==0.1.4.2
- wai-middleware-metrics ==0.2.3
- wai-middleware-metrics ==0.2.4
- wai-middleware-prometheus ==0.1.0.1
- wai-middleware-static ==0.8.1
- wai-middleware-throttle ==0.2.1.0
@ -2168,7 +2173,7 @@ default-package-overrides:
- webdriver-angular ==0.1.11
- webkitgtk3 ==0.14.2.1
- webkitgtk3-javascriptcore ==0.14.2.1
- webpage ==0.0.4
- webpage ==0.0.5
- webrtc-vad ==0.1.0.3
- websockets ==0.10.0.0
- websockets-snap ==0.10.2.0
@ -2203,7 +2208,7 @@ default-package-overrides:
- writer-cps-full ==0.1.0.0
- writer-cps-lens ==0.1.0.1
- writer-cps-morph ==0.1.0.2
- writer-cps-mtl ==0.1.1.2
- writer-cps-mtl ==0.1.1.3
- writer-cps-transformers ==0.1.1.2
- wuss ==1.1.3
- X11 ==1.8
@ -2281,7 +2286,7 @@ default-package-overrides:
- yjtools ==0.9.18
- zero ==0.1.4
- zeromq4-haskell ==0.6.5
- zip ==0.1.9
- zip ==0.1.10
- zip-archive ==0.3.0.5
- zippers ==0.2.2
- zlib ==0.6.1.2
@ -2409,12 +2414,14 @@ dont-distribute-packages:
shine-varying: [ i686-linux, x86_64-linux, x86_64-darwin ]
# these packages depend on software with an unfree license
accelerate-bignum: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-cublas: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-cuda: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-cufft: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-examples: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-fft: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-fourier-benchmark: [ i686-linux, x86_64-linux, x86_64-darwin ]
accelerate-llvm-ptx: [ i686-linux, x86_64-linux, x86_64-darwin ]
bindings-yices: [ i686-linux, x86_64-linux, x86_64-darwin ]
ccelerate-cuda: [ i686-linux, x86_64-linux, x86_64-darwin ]
cublas: [ i686-linux, x86_64-linux, x86_64-darwin ]

@ -239,6 +239,8 @@ self: super: builtins.intersectAttrs super {
}
);
llvm-hs = super.llvm-hs.override { llvm-config = pkgs.llvm_4; };
# Needs help finding LLVM.
spaceprobe = addBuildTool super.spaceprobe self.llvmPackages.llvm;

@ -80,12 +80,12 @@ let
in
import ./hackage-packages.nix { inherit pkgs stdenv callPackage; } self // {
inherit mkDerivation callPackage;
inherit mkDerivation callPackage haskellSrc2nix hackage2nix;
callHackage = name: version: self.callPackage (hackage2nix name version);
callHackage = name: version: self.callPackage (self.hackage2nix name version);
# Creates a Haskell package from a source package by calling cabal2nix on the source.
callCabal2nix = name: src: self.callPackage (haskellSrc2nix { inherit src name; });
callCabal2nix = name: src: self.callPackage (self.haskellSrc2nix { inherit src name; });
ghcWithPackages = selectFrom: withPackages (selectFrom self);

File diff suppressed because it is too large Load Diff

@ -181,10 +181,10 @@ let
in {
ruby_2_0_0 = generic {
version = rubyVersion "2" "0" "0" "p647";
version = rubyVersion "2" "0" "0" "p648";
sha256 = {
src = "1v2vbvydarcx5801gx9lc6gr6dfi0i7qbzwhsavjqbn79rdsz2n8";
git = "186pf4q9xymzn4zn1sjppl1skrl5f0159ixz5cz8g72dmmynq3g3";
src = "1y3n4c6xw2wki7pyjpq5zpbgxnw5i3jc8mcpj6rk7hs995mvv446";
git = "0ncjfq4hfqj9kcr8pbll6kypwnmcgs8w7l4466qqfyv7jj3yjd76";
};
};
@ -196,27 +196,27 @@ in {
};
};
ruby_2_2_5 = generic {
version = rubyVersion "2" "2" "5" "";
ruby_2_2_7 = generic {
version = rubyVersion "2" "2" "7" "";
sha256 = {
src = "1qrmlcyc0cy9hgafb1wny2h90rjyyh6d72nvr2h4xjm4jwbb7i1h";
git = "0k0av6ypyq08c9axm721f0xi2bcp1443l7ydbxv4v8x4vsxdkmq2";
src = "199xz5bvmp26c7vyzw47cpxkd8jk826kc8nlpavqzj5vqp388h9p";
git = "0i0nsm9ldjp39m9xq47v8w6wlg821ikczz530493cs150qkqa0a1";
};
};
ruby_2_3_3 = generic {
version = rubyVersion "2" "3" "3" "";
ruby_2_3_4 = generic {
version = rubyVersion "2" "3" "4" "";
sha256 = {
src = "1dqmh42p6siv9aqzdjldsnhljj3f2h30m0v8cf25icjmqp40h514";
git = "0cwjf0nrzaa5g81bw0qp65byyadhxvbnvprkshv3ckjl7yi46zf6";
src = "1hy0zr4vwkqcjbykh2hp0d6ifkrhgskaxlzy6878sc9kr4bqzqcq";
git = "0jjhgdjv3aayxb0flxjiny7xfzh3ggrqcpvgjv2ydm25padfbqmp";
};
};
ruby_2_4_0 = generic {
version = rubyVersion "2" "4" "0" "";
ruby_2_4_1 = generic {
version = rubyVersion "2" "4" "1" "";
sha256 = {
src = "0gcyn9328w2vma882l71c9v9ygmmsj2z8j1l44c4l2x92nyx0bqm";
git = "1w9zyx8xmka8jdiha57snnbfls2r6dc9g03d8cjx0nxkmwf3r2l3";
src = "0l0201fqwzwygnrgxay469gbb2w865bnqckq00x3prdmbh6y2c53";
git = "1gjn31ymypzzcwkrjx62hqw59fywz1x3cyvmi1f2yb9bwb3659ss";
};
};
}

@ -24,24 +24,19 @@ rec {
"${patchSet}/patches/ruby/2.1.8/railsexpress/08-funny-falcon-method-cache.patch"
"${patchSet}/patches/ruby/2.1.8/railsexpress/09-heap-dump-support.patch"
];
"2.2.5" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.2.5/railsexpress/01-zero-broken-tests.patch"
"${patchSet}/patches/ruby/2.2.5/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.2.5/railsexpress/03-display-more-detailed-stack-trace.patch"
"2.2.7" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.2/head/railsexpress/01-zero-broken-tests.patch"
"${patchSet}/patches/ruby/2.2/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.2/head/railsexpress/03-display-more-detailed-stack-trace.patch"
];
"2.3.1" = ops useRailsExpress [
"2.3.4" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.3/head/railsexpress/01-skip-broken-tests.patch"
"${patchSet}/patches/ruby/2.3/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.3/head/railsexpress/03-display-more-detailed-stack-trace.patch"
];
"2.3.3" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.3/head/railsexpress/01-skip-broken-tests.patch"
"${patchSet}/patches/ruby/2.3/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.3/head/railsexpress/03-display-more-detailed-stack-trace.patch"
];
"2.4.0" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.4.0/railsexpress/01-skip-broken-tests.patch"
"${patchSet}/patches/ruby/2.4.0/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.4.0/railsexpress/03-display-more-detailed-stack-trace.patch"
"2.4.1" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.4/head/railsexpress/01-skip-broken-tests.patch"
"${patchSet}/patches/ruby/2.4/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.4/head/railsexpress/03-display-more-detailed-stack-trace.patch"
];
}

@ -1,8 +1,8 @@
{ fetchFromGitHub }:
fetchFromGitHub {
owner = "manveru";
owner = "skaes";
repo = "rvm-patchsets";
rev = "46e04f230ce91a786f5e583389443efec0ecd594";
sha256 = "0ayh8zj8knyz3344an942qdf33pi42jmksqk34frb346zi1ag693";
rev = "15f5df0fba0e2fb489856b5bdb67a52fb9745f94";
sha256 = "0vdgr7xp3gbmsyaz4q78qlbwmp006b1gkgj0kwi6h8d80dclbzny";
}

@ -1,19 +1,11 @@
{ stdenv, fetchurl, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan
, useGnupg1 ? false, gnupg1 ? null }:
{ stdenv, fetchurl, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan }:
assert useGnupg1 -> gnupg1 != null;
assert !useGnupg1 -> gnupg != null;
let
gpgStorePath = if useGnupg1 then gnupg1 else gnupg;
gpgProgram = if useGnupg1 then "gpg" else "gpg2";
in
stdenv.mkDerivation rec {
name = "gpgme-1.8.0";
name = "gpgme-1.9.0";
src = fetchurl {
url = "mirror://gnupg/gpgme/${name}.tar.bz2";
sha256 = "0csx3qnycwm0n90ql6gs65if5xi4gqyzzy21fxs2xqicghjrfq2r";
sha256 = "1ssc0gs02r4fasabk7c6v6r865k2j02mpb5g1vkpbmzsigdzwa8v";
};
outputs = [ "out" "dev" "info" ];
@ -24,20 +16,24 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig gnupg ];
configureFlags = [
"--enable-fixed-path=${gpgStorePath}/bin"
"--enable-fixed-path=${gnupg}/bin"
];
# https://www.gnupg.org/documentation/manuals/gpgme/Largefile-Support-_0028LFS_0029.html
NIX_CFLAGS_COMPILE =
with stdenv; lib.optional (system == "i686-linux") "-D_FILE_OFFSET_BITS=64";
AM_CXXFLAGS =
with stdenv; lib.optional (isDarwin) "-D_POSIX_C_SOURCE=200809L";
meta = with stdenv.lib; {
homepage = "http://www.gnupg.org/related_software/gpgme";
homepage = "https://gnupg.org/software/gpgme/index.html";
description = "Library for making GnuPG easier to use";
license = licenses.gpl2;
longDescription = ''
GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
easier for applications. It provides a High-Level Crypto API for
encryption, decryption, signing, signature verification and key
management.
'';
license = with licenses; [ lgpl21Plus gpl3Plus ];
platforms = platforms.unix;
maintainers = [ maintainers.fuuzetsu ];
maintainers = with maintainers; [ fuuzetsu primeos ];
};
}

@ -1,6 +1,6 @@
{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets
, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes
, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt
, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt, gpgme
}:
kdeFramework {
@ -9,6 +9,6 @@ kdeFramework {
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedBuildInputs = [
kconfig kconfigwidgets kcoreaddons kdbusaddons ki18n kiconthemes
knotifications kservice kwidgetsaddons kwindowsystem libgcrypt
knotifications kservice kwidgetsaddons kwindowsystem libgcrypt gpgme
];
}

@ -27,12 +27,17 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig autoconf ];
propagatedBuildInputs =
if gtkVersion == "2"
then [ gtk2 libdbusmenu-gtk2 ]
else [ gtk3 libdbusmenu-gtk3 ];
buildInputs = [
glib dbus_glib
python pygobject2 pygtk gobjectIntrospection vala_0_23
] ++ (if gtkVersion == "2"
then [ gtk2 libindicator-gtk2 libdbusmenu-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
else [ gtk3 libindicator-gtk3 libdbusmenu-gtk3 ]);
then [ libindicator-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
else [ libindicator-gtk3 ]);
postPatch = ''
substituteInPlace configure.ac \

@ -0,0 +1,29 @@
{ stdenv, fetchFromGitHub, bap, ocaml, findlib, ctypes, autoreconfHook,
which }:
stdenv.mkDerivation rec {
name = "libbap-${version}";
version = "master-2017-02-08";
src = fetchFromGitHub {
owner = "BinaryAnalysisPlatform";
repo = "bap-bindings";
rev = "b3da5bd5cdb3d646015ccdeb886b5ea8fd85a108";
sha256 = "0cwfyfpxbi9bm4kkpamyd7mgsm5b6j1rh217fqb5gi05wg45rkbb";
};
nativeBuildInputs = [ autoreconfHook which ];
buildInputs = [ ocaml bap findlib ctypes ];
preInstall = ''
mkdir -p $out/lib
mkdir -p $out/include
'';
meta = {
homepage = http://github.com/binaryanalysisplatform/bap-bindings;
description = "A C library for interacting with BAP";
maintainers = [ stdenv.lib.maintainers.maurer ];
platforms = stdenv.lib.platforms.unix;
};
}

@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ libxml2 glib gdk_pixbuf libiconv ]
++ libintlOrEmpty;
outputs = [ "out" "dev" ];
doCheck = true;
preCheck = "patchShebangs ./tests/";

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake
, dbus, networkmanager, spidermonkey_1_8_5 }:
, dbus, networkmanager, webkitgtk214x, pcre, python2 }:
stdenv.mkDerivation rec {
name = "libproxy-${version}";
@ -16,7 +16,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ dbus networkmanager spidermonkey_1_8_5 ];
buildInputs = [ dbus networkmanager webkitgtk214x pcre ];
cmakeFlags = [
"-DWITH_WEBKIT3=ON"
"-DWITH_MOZJS=OFF"
"-DPYTHON_SITEPKG_DIR=$(out)/${python2.sitePackages}"
];
meta = with stdenv.lib; {
platforms = platforms.linux;

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