Merge master into staging

This commit is contained in:
Frederik Rietdijk 2018-06-02 12:46:44 +02:00
commit 55c54d2bfe
57 changed files with 1756 additions and 165 deletions

View File

@ -2973,6 +2973,11 @@
github = "phreedom";
name = "Evgeny Egorochkin";
};
phryneas = {
email = "mail@lenzw.de";
github = "phryneas";
name = "Lenz Weber";
};
phunehehe = {
email = "phunehehe@gmail.com";
github = "phunehehe";

View File

@ -514,6 +514,7 @@
./services/networking/miniupnpd.nix
./services/networking/mosquitto.nix
./services/networking/monero.nix
./services/networking/morty.nix
./services/networking/miredo.nix
./services/networking/mstpd.nix
./services/networking/murmur.nix

View File

@ -20,6 +20,7 @@ let
exporterOpts = {
blackbox = import ./exporters/blackbox.nix { inherit config lib pkgs; };
collectd = import ./exporters/collectd.nix { inherit config lib pkgs; };
dnsmasq = import ./exporters/dnsmasq.nix { inherit config lib pkgs; };
dovecot = import ./exporters/dovecot.nix { inherit config lib pkgs; };
fritzbox = import ./exporters/fritzbox.nix { inherit config lib pkgs; };
json = import ./exporters/json.nix { inherit config lib pkgs; };

View File

@ -0,0 +1,39 @@
{ config, lib, pkgs }:
with lib;
let
cfg = config.services.prometheus.exporters.dnsmasq;
in
{
port = 9153;
extraOpts = {
dnsmasqListenAddress = mkOption {
type = types.str;
default = "localhost:53";
description = ''
Address on which dnsmasq listens.
'';
};
leasesPath = mkOption {
type = types.path;
default = "/var/lib/misc/dnsmasq.leases";
example = "/var/lib/dnsmasq/dnsmasq.leases";
description = ''
Path to the <literal>dnsmasq.leases</literal> file.
'';
};
};
serviceOpts = {
serviceConfig = {
DynamicUser = true;
ExecStart = ''
${pkgs.prometheus-dnsmasq-exporter}/bin/dnsmasq_exporter \
--listen ${cfg.listenAddress}:${toString cfg.port} \
--dnsmasq ${cfg.dnsmasqListenAddress} \
--leases_path ${cfg.leasesPath} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
};
};
}

View File

@ -0,0 +1,98 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.morty;
configFile = cfg.configFile;
in
{
###### interface
options = {
services.morty = {
enable = mkEnableOption
"Morty proxy server. See https://github.com/asciimoo/morty";
ipv6 = mkOption {
type = types.bool;
default = true;
description = "Allow IPv6 HTTP requests?";
defaultText = "Allow IPv6 HTTP requests.";
};
key = mkOption {
type = types.string;
default = "";
description = "HMAC url validation key (hexadecimal encoded).
Leave blank to disable. Without validation key, anyone can
submit proxy requests. Leave blank to disable.";
defaultText = "No HMAC url validation. Generate with echo -n somevalue | openssl dgst -sha1 -hmac somekey";
};
timeout = mkOption {
type = types.int;
default = 2;
description = "Request timeout in seconds.";
defaultText = "A resource now gets 2 seconds to respond.";
};
package = mkOption {
type = types.package;
default = pkgs.morty;
defaultText = "pkgs.morty";
description = "morty package to use.";
};
port = mkOption {
type = types.int;
default = 3000;
description = "Listing port";
};
listenAddress = mkOption {
type = types.string;
default = "127.0.0.1";
description = "The address on which the service listens";
defaultText = "127.0.0.1 (localhost)";
};
};
};
###### Service definition
config = mkIf config.services.morty.enable {
users.extraUsers.morty =
{ description = "Morty user";
createHome = true;
home = "/var/lib/morty";
};
systemd.services.morty =
{
description = "Morty sanitizing proxy server.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "morty";
ExecStart = ''${cfg.package}/bin/morty \
-listen ${cfg.listenAddress}:${toString cfg.port} \
${optionalString cfg.ipv6 "-ipv6"} \
${optionalString (cfg.key != "") "-key " + cfg.key} \
'';
};
};
environment.systemPackages = [ cfg.package ];
};
}

View File

@ -7,7 +7,7 @@ let
package = pkgs.openntpd_nixos;
cfgFile = pkgs.writeText "openntpd.conf" ''
configFile = ''
${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)}
${cfg.extraConfig}
'';
@ -31,8 +31,8 @@ in
type = with types; lines;
default = "";
example = ''
listen on 127.0.0.1
listen on ::1
listen on 127.0.0.1
listen on ::1
'';
description = ''
Additional text appended to <filename>openntpd.conf</filename>.
@ -57,6 +57,8 @@ in
# Add ntpctl to the environment for status checking
environment.systemPackages = [ package ];
environment.etc."ntpd.conf".text = configFile;
users.extraUsers = singleton {
name = "ntp";
uid = config.ids.uids.ntp;
@ -71,7 +73,7 @@ in
before = [ "time-sync.target" ];
after = [ "dnsmasq.service" "bind.service" "network-online.target" ];
serviceConfig = {
ExecStart = "${package}/sbin/ntpd -f ${cfgFile} -p ${pidFile} ${cfg.extraOptions}";
ExecStart = "${package}/sbin/ntpd -p ${pidFile} ${cfg.extraOptions}";
Type = "forking";
PIDFile = pidFile;
};

View File

@ -272,6 +272,31 @@ in
'';
};
logLevel = mkOption {
type = types.enum [ "QUIET" "FATAL" "ERROR" "INFO" "VERBOSE" "DEBUG" "DEBUG1" "DEBUG2" "DEBUG3" ];
default = "VERBOSE";
description = ''
Gives the verbosity level that is used when logging messages from sshd(8). The possible values are:
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3. The default is VERBOSE. DEBUG and DEBUG1
are equivalent. DEBUG2 and DEBUG3 each specify higher levels of debugging output. Logging with a DEBUG level
violates the privacy of users and is not recommended.
LogLevel VERBOSE logs user's key fingerprint on login.
Needed to have a clear audit track of which key was used to log in.
'';
};
useDns = mkOption {
type = types.bool;
default = false;
description = ''
Specifies whether sshd(8) should look up the remote host name, and to check that the resolved host name for
the remote IP address maps back to the very same IP address.
If this option is set to no (the default) then only addresses and not host names may be used in
~/.ssh/authorized_keys from and sshd_config Match Host directives.
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
@ -426,9 +451,14 @@ in
Ciphers ${concatStringsSep "," cfg.ciphers}
MACs ${concatStringsSep "," cfg.macs}
# LogLevel VERBOSE logs user's key fingerprint on login.
# Needed to have a clear audit track of which key was used to log in.
LogLevel VERBOSE
LogLevel ${cfg.logLevel}
${if cfg.useDns then ''
UseDNS yes
'' else ''
UseDNS no
''}
'';
assertions = [{ assertion = if cfg.forwardX11 then cfgc.setXAuthLocation else true;

View File

@ -128,6 +128,7 @@ in
owner = "fcron";
group = "fcron";
setgid = true;
setuid = true;
};
fcrondyn = {
source = "${pkgs.fcron}/bin/fcrondyn";

View File

@ -408,6 +408,7 @@ in rec {
tests.xss-lock = callTest tests/xss-lock.nix {};
tests.yabar = callTest tests/yabar.nix {};
tests.zookeeper = callTest tests/zookeeper.nix {};
tests.morty = callTest tests/morty.nix { };
/* Build a bunch of typical closures so that Hydra can keep track of
the evolution of closure sizes. */

View File

@ -9,22 +9,26 @@ with lib;
nodes = {
withIftop = {
imports = [ ./common/user-account.nix ];
programs.iftop.enable = true;
};
withoutIftop = {
imports = [ ./common/user-account.nix ];
environment.systemPackages = [ pkgs.iftop ];
};
};
testScript = ''
subtest "machine with iftop enabled", sub {
$withIftop->start;
$withIftop->succeed("su -l alice -c 'iftop -t -s 1'");
$withIftop->waitForUnit("default.target");
# limit to eth1 (eth0 is the test driver's control interface)
# and don't try name lookups
$withIftop->succeed("su -l alice -c 'iftop -t -s 1 -n -i eth1'");
};
subtest "machine without iftop", sub {
$withoutIftop->start;
$withoutIftop->mustFail("su -l alice -c 'iftop -t -s 1'");
$withoutIftop->waitForUnit("default.target");
# check that iftop is there but user alice lacks capabilities
$withoutIftop->succeed("iftop -t -s 1 -n -i eth1");
$withoutIftop->fail("su -l alice -c 'iftop -t -s 1 -n -i eth1'");
};
'';
})

32
nixos/tests/morty.nix Normal file
View File

@ -0,0 +1,32 @@
import ./make-test.nix ({ pkgs, ... }:
{
name = "morty";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ leenaars ];
};
nodes =
{ mortyProxyWithKey =
{ config, pkgs, ... }:
{ services.morty = {
enable = true;
key = "78a9cd0cfee20c672f78427efb2a2a96036027f0";
port = 3001;
};
};
};
testScript =
{ nodes , ... }:
''
startAll;
$mortyProxyWithKey->waitForUnit("morty");
$mortyProxyWithKey->succeed("curl -L 127.0.0.1:3001 | grep MortyProxy");
'';
})

View File

@ -1,7 +1,10 @@
{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc, openssl, pkgconfig, unbound }:
{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz
, boost, miniupnpc, openssl, unbound, cppzmq
, zeromq, pcsclite, readline
}:
let
version = "0.9.14.0";
version = "0.12.0.0";
in
stdenv.mkDerivation {
name = "aeon-${version}";
@ -10,19 +13,24 @@ stdenv.mkDerivation {
owner = "aeonix";
repo = "aeon";
rev = "v${version}";
sha256 = "0pl9nfhihj0wsdgvvpv5f14k4m2ikk8s3xw6nd8ymbnpxfzyxynr";
fetchSubmodules = true;
sha256 = "1schzlscslhqq7zcd68b1smqlaf7k789x1rwpplm7qi5iz9a8cfr";
};
nativeBuildInputs = [ cmake pkgconfig ];
nativeBuildInputs = [ cmake pkgconfig git doxygen graphviz ];
buildInputs = [ boost miniupnpc openssl unbound ];
buildInputs = [
boost miniupnpc openssl unbound
cppzmq zeromq pcsclite readline
];
installPhase = ''
install -D src/aeond "$out/bin/aeond"
install src/simpleminer "$out/bin/aeon-simpleminer"
install src/simplewallet "$out/bin/aeon-simplewallet"
install src/connectivity_tool "$out/bin/aeon-connectivity-tool"
'';
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DBUILD_GUI_DEPS=ON"
"-DReadline_ROOT_DIR=${readline.dev}"
];
hardeningDisable = [ "fortify" ];
meta = with stdenv.lib; {
description = "Private, secure, untraceable currency";

View File

@ -0,0 +1,33 @@
{ stdenv, fetchurl, cmake, curl, xorg, avahi, qt5,
avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; }
}:
stdenv.mkDerivation rec {
name = "barrier-${version}";
version = "2.1.1";
src = fetchurl {
url = "https://github.com/debauchee/barrier/archive/v${version}.tar.gz";
sha256 = "0x17as5ikfx2r5hawr368a9risvcavyc8zv5g724s709nr6m0pbp";
};
buildInputs = [ cmake curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat ];
propagatedBuildInputs = with qt5; [ qtbase ];
postFixup = ''
substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier"
'';
meta = {
description = "Open-source KVM software";
longDescription = ''
Barrier is KVM software forked from Symless's synergy 1.9 codebase.
Synergy was a commercialized reimplementation of the original
CosmoSynergy written by Chris Schoeneman.
'';
homepage = https://github.com/debauchee/barrier;
downloadPage = https://github.com/debauchee/barrier/releases;
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.phryneas ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols, curaengine }:
{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols2, curaengine }:
mkDerivation rec {
name = "cura-${version}";
@ -11,7 +11,14 @@ mkDerivation rec {
sha256 = "0yaya0ww92qjm7g31q85m5f95nwdapldjx1kdf1ar4yzwh4r15rp";
};
buildInputs = [ qtbase qtquickcontrols ];
materials = fetchFromGitHub {
owner = "Ultimaker";
repo = "fdm_materials";
rev = "3.2.1";
sha256 = "1kr9ga727x0kazw2ypac9bi6g6lddbsx80qw8fbn0514kg2mr9n3";
};
buildInputs = [ qtbase qtquickcontrols2 ];
propagatedBuildInputs = with python3.pkgs; [ uranium zeroconf pyserial numpy-stl ];
nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
@ -22,6 +29,11 @@ mkDerivation rec {
sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py
'';
postInstall = ''
mkdir -p $out/share/cura/resources/materials
cp ${materials}/*.fdm_material $out/share/cura/resources/materials/
'';
postFixup = ''
wrapPythonPrograms
'';

View File

@ -4,12 +4,12 @@
stdenv.mkDerivation rec {
name = "wsjtx-${version}";
version = "1.8.0";
version = "1.9.0";
# This is a composite source tarball containing both wsjtx and a hamlib fork
src = fetchurl {
url = "http://physics.princeton.edu/pulsar/K1JT/wsjtx-${version}.tgz";
sha256 = "21603ad4d5f43cd9c79a6e8cf468bde88c554654012b2c6c1ef9144cfbf668ce";
sha256 = "1qxwiylnykh37kw780hh9xfphzbj8ndpfqz4xazld16v3qx2g0jc";
};
# Hamlib builds with autotools, wsjtx builds with cmake

View File

@ -29,13 +29,13 @@ let
in python3Packages.buildPythonApplication rec {
name = "qutebrowser-${version}${versionPostfix}";
namePrefix = "";
version = "1.3.0";
version = "1.3.1";
versionPostfix = "";
# the release tarballs are different from the git checkout!
src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${name}.tar.gz";
sha256 = "159h669x60pfla71zx28wnrik8rvsrw5i8kbd3xccynk6klm3kw3";
sha256 = "121fz549vlxdasw0lcx6v394x8g34nadvrfs4svw3b65n0shv1ky";
};
# Needs tox

View File

@ -1,51 +1,76 @@
{ stdenv, fetchurl, makeWrapper, which, jre, bash }:
stdenv.mkDerivation rec {
let
hadoopDerivation = { version, sha256 }: stdenv.mkDerivation rec {
name = "hadoop-2.2.0";
name = "hadoop-${version}";
src = fetchurl {
url = "mirror://apache/hadoop/common/${name}/${name}.tar.gz";
sha256 = "0r0kx8arsrvmcfy0693hpv4cz3i0razvk1xa3yhlf3ybb80a8106";
};
src = fetchurl {
url = "mirror://apache/hadoop/common/${name}/${name}.tar.gz";
sha256 = "${sha256}";
};
buildInputs = [ makeWrapper ];
buildInputs = [ makeWrapper ];
buildPhase = ''
for n in "bin/"* "sbin/"*; do
buildPhase = ''
for n in bin/{hadoop,hdfs,mapred,yarn} sbin/*.sh; do
sed -i $n -e "s|#!/usr/bin/env bash|#! ${bash}/bin/bash|"
done
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" bin/container-executor;
'';
installPhase = ''
mkdir -p $out
mv *.txt share/doc/hadoop/
mv * $out
for n in $out/{bin,sbin}"/"*; do
wrapProgram $n --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash ]}" --set JAVA_HOME "${jre}" --set HADOOP_PREFIX "$out"
done
'';
meta = {
homepage = http://hadoop.apache.org/;
description = "Framework for distributed processing of large data sets across clusters of computers";
license = stdenv.lib.licenses.asl20;
longDescription = ''
The Apache Hadoop software library is a framework that allows for
the distributed processing of large data sets across clusters of
computers using a simple programming model. It is designed to
scale up from single servers to thousands of machines, each
offering local computation and storage. Rather than rely on
hardware to deliver high-avaiability, the library itself is
designed to detect and handle failures at the application layer,
so delivering a highly-availabile service on top of a cluster of
computers, each of which may be prone to failures.
done
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" bin/container-executor;
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" bin/test-container-executor;
'';
platforms = stdenv.lib.platforms.linux;
installPhase = ''
mkdir -p $out
mv *.txt share/doc/hadoop/
mv * $out
for n in $out/bin/{hadoop,hdfs,mapred,yarn} $out/sbin/*.sh; do
wrapProgram $n --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash ]}" --set JAVA_HOME "${jre}" --set HADOOP_HOME "$out"
done
'';
meta = {
homepage = http://hadoop.apache.org/;
description = "Framework for distributed processing of large data sets across clusters of computers";
license = stdenv.lib.licenses.asl20;
longDescription = ''
The Apache Hadoop software library is a framework that allows for
the distributed processing of large data sets across clusters of
computers using a simple programming model. It is designed to
scale up from single servers to thousands of machines, each
offering local computation and storage. Rather than rely on
hardware to deliver high-avaiability, the library itself is
designed to detect and handle failures at the application layer,
so delivering a highly-availabile service on top of a cluster of
computers, each of which may be prone to failures.
'';
platforms = stdenv.lib.platforms.linux;
};
};
in
{
hadoop_2_7 = hadoopDerivation {
version = "2.7.6";
sha256 = "0sanwam0k2m40pfsf9l5zxvklv8rvq78xvhd2pbsbiab7ylpwcpj";
};
hadoop_2_8 = hadoopDerivation {
version = "2.8.4";
sha256 = "05dik4qnazhf5aldwkljf610cwncsg5y3hyvgj476cfpzmr5jm3b";
};
hadoop_2_9 = hadoopDerivation {
version = "2.9.1";
sha256 = "1z22v46mmq9hfjc229x61ws332sa1rvmib3v4jsd6i1n29d03mpf";
};
hadoop_3_0 = hadoopDerivation {
version = "3.0.2";
sha256 = "10ig3rrcaizvs5bnni15fvm942mr5hfc2hr355g6ich722kpll0d";
};
hadoop_3_1 = hadoopDerivation {
version = "3.1.0";
sha256 = "1rs3a752is1y2vgxjlqmmln00iwzncwlwg59l6gjv92zb7njq3b7";
};
}

View File

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
name = "errbot-${version}";
version = "5.1.3";
version = "5.2.0";
src = fetchurl {
url = "mirror://pypi/e/errbot/${name}.tar.gz";
sha256 = "0nkfq6fx87g7kvxrb5lp8gkb75658cmyffnacpy8jq3a16py3jrr";
sha256 = "0q5fg113s3gnym38d4y5mlnxw6vrm388zw5mlapf7b2zgx34r053";
};
disabled = !pythonPackages.isPy3k;

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "ipfs-${version}";
version = "0.4.14";
version = "0.4.15";
rev = "v${version}";
goPackagePath = "github.com/ipfs/go-ipfs";
@ -10,7 +10,7 @@ buildGoPackage rec {
extraSrcPaths = [
(fetchgx {
inherit name src;
sha256 = "0gad5y5clkrk5jsjj9gmrlnx8kbn2vg50vka1b8jg7b55hdvvlcg";
sha256 = "0bysfh2hd040i8lnyzhy96frflls4kdnlw748cl51ngqg3rwbhgz";
})
];
@ -18,7 +18,7 @@ buildGoPackage rec {
owner = "ipfs";
repo = "go-ipfs";
inherit rev;
sha256 = "0wvjw8jziwhvfwhksg26qlj2irznl5bs2yll9jkv335pnwb5qi3v";
sha256 = "1ry4a4pq26dbwy2b9cwi3xjaiyq6sng9lxnb1n30zxhp4w7rla2h";
};
meta = with stdenv.lib; {

View File

@ -0,0 +1,41 @@
{ stdenv, fetchFromGitHub, python2Packages }:
python2Packages.buildPythonApplication rec {
pname = "zeronet";
version = "0.6.2";
src = fetchFromGitHub {
owner = "HelloZeroNet";
repo = "ZeroNet";
rev = "v${version}";
sha256 = "0v19jjirkyv8hj2yfdj0c40zwynn51h2bj4issn5blr95vhfm8s7";
};
propagatedBuildInputs = with python2Packages; [ msgpack gevent ];
format = "other";
buildPhase = "${python2Packages.python.interpreter} -O -m compileall .";
installPhase = ''
mkdir -p $out/share
cp -r plugins src tools *.py $out/share/
'';
# Wrap the main executable and set the log and data dir to something out of
# the store
postFixup = ''
makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
--set PYTHONPATH "$PYTHONPATH" \
--set PATH ${python2Packages.python}/bin \
--add-flags "--log_dir \$HOME/.local/share/zeronet/logs" \
--add-flags "--data_dir \$HOME/.local/share/zeronet"
'';
meta = with stdenv.lib; {
description = "Decentralized websites using Bitcoin crypto and BitTorrent network";
homepage = "https://zeronet.io/";
license = licenses.gpl2;
maintainers = with maintainers; [ fgaz ];
};
}

View File

@ -5,9 +5,9 @@
, perlBindings ? false
, javahlBindings ? false
, saslSupport ? false
, stdenv, fetchurl, apr, aprutil, zlib, sqlite
, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc
, apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
, sasl ? null, serf ? null, openssl
, sasl ? null, serf ? null
}:
assert bdbSupport -> aprutil.bdbSupport;
@ -17,7 +17,7 @@ assert javahlBindings -> jdk != null && perl != null;
let
common = { version, sha256 }: stdenv.mkDerivation (rec {
common = { version, sha256, extraBuildInputs ? [ ] }: stdenv.mkDerivation (rec {
inherit version;
name = "subversion-${version}";
@ -30,6 +30,7 @@ let
outputs = [ "out" "dev" "man" ];
buildInputs = [ zlib apr aprutil sqlite openssl ]
++ extraBuildInputs
++ stdenv.lib.optional httpSupport serf
++ stdenv.lib.optional pythonBindings python
++ stdenv.lib.optional perlBindings perl
@ -114,4 +115,10 @@ in {
version = "1.9.7";
sha256 = "08qn94zaqcclam2spb4h742lvhxw8w5bnrlya0fm0bp17hriicf3";
};
subversion_1_10 = common {
version = "1.10.0";
sha256 = "115mlvmf663w16mc3xyypnaizq401vbypc56hl2ylzc3pcx3zwic";
extraBuildInputs = [ lz4 utf8proc ];
};
}

View File

@ -0,0 +1,63 @@
{ stdenv
, fetchFromGitHub
, qttools
, qtbase
, qtmultimedia
, liblo
, gst_all_1
, qmake
, pkgconfig
}:
with stdenv;
mkDerivation rec {
version = "0.6.1";
name = "mapmap-${version}";
src = fetchFromGitHub {
owner = "mapmapteam";
repo = "mapmap";
rev = version;
sha256 = "15km6xmfkxhrflq4sl9m9r85zi4shrr4k5h15x17v7x0qkc3xgsh";
};
nativeBuildInputs = [
qmake
pkgconfig
];
buildInputs = [
qttools
qtmultimedia
liblo
gst_all_1.gstreamer
gst_all_1.gstreamermm
gst_all_1.gst-libav
gst_all_1.gst-vaapi
];
installPhase = ''
mkdir -p $out/bin
cp mapmap $out/bin/mapmap
mkdir -p $out/share/applications/
sed 's|Icon=/usr/share/icons/hicolor/scalable/apps/mapmap.svg|Icon=mapmap|g' resources/texts/mapmap.desktop > $out/share/applications/mapmap.desktop
mkdir -p $out/share/icons/hicolor/scalable/apps/
cp resources/images/logo/mapmap.* $out/share/icons/hicolor/scalable/apps/
'';
# RPATH in /tmp hack
# preFixup = ''
# rm -r $NIX_BUILD_TOP/__nix_qt5__
# '';
meta = with stdenv.lib; {
description = "Open source video mapping software";
homepage = https://github.com/mapmapteam/mapmap;
license = licenses.gpl3;
maintainers = [ maintainers.erictapen ];
platforms = platforms.linux;
};
}

View File

@ -9,7 +9,7 @@ let
certdata2pem = fetchurl {
name = "certdata2pem.py";
url = "https://anonscm.debian.org/cgit/collab-maint/ca-certificates.git/plain/mozilla/certdata2pem.py?h=debian/20170717";
url = "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py";
sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
};

View File

@ -1,6 +1,6 @@
{stdenv, fetchpatch, fetchurl, autoreconfHook, pkgconfig, atk, cairo, glib
, gnome-common, gtk, pango
, libxml2Python, perl, intltool, gettext, gtk-mac-integration }:
, libxml2Python, perl, intltool, gettext, gtk-mac-integration-gtk2 }:
with stdenv.lib;
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
pango libxml2Python perl intltool
gettext
] ++ optionals stdenv.isDarwin [
autoreconfHook gnome-common gtk-mac-integration
autoreconfHook gnome-common gtk-mac-integration-gtk2
];
preConfigure = optionalString stdenv.isDarwin ''

View File

@ -1,41 +0,0 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "adobe-flex-sdk-4.0.0.14159";
src = fetchurl {
# This is the open source distribution
url = http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4/flex_sdk_4.0.0.14159_mpl.zip;
sha256 = "1x12sji6g42bm1h7jndkda5vpah6vnkpc13qwq0c4xvbsh8757v5";
};
phases = "installPhase";
buildInputs = [ unzip ];
# Why do shell scripts have \r\n ??
# moving to /opt because jdk has lib/xercesImpl.jar as well
installPhase = ''
unzip ${src}
t=$out/opt/flex-sdk
mkdir -p $t $out/bin
mv * $t
rm $t/bin/*.exe $t/bin/*.bat
sed 's/ $//' -i $t/bin/*
for i in $t/bin/*; do
b="$(basename "$i")";
cat > "$out/bin/$b" << EOF
#!/bin/sh
exec $t/bin/$b "\$@"
EOF
chmod +x $out/bin/$b $t/bin/$b
done
'';
meta = {
description = "Flex SDK for Adobe Flash / ActionScript";
homepage = "https://www.adobe.com/products/flex.html";
license = stdenv.lib.licenses.mpl11;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -0,0 +1,56 @@
{ stdenv, fetchurl, makeWrapper, jre }:
let
playerglobal_ver = "27.0";
playerglobal = fetchurl {
url = "https://fpdownload.macromedia.com/get/flashplayer/updaters/27/playerglobal27_0.swc";
sha256 = "0qw2bgls8qsmp80j8vpd4c7s0c8anlrk0ac8z42w89bajcdbwk2f";
};
in stdenv.mkDerivation rec {
name = "apache-flex-sdk-${version}";
version = "4.16.1";
src = fetchurl {
url = "https://www.apache.org/dist/flex/${version}/binaries/${name}-bin.tar.gz";
sha256 = "13iq16dqvgcpb0p35x66hzxsq5pkbr2lbwr766nnqiryinnagz8p";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ jre ];
buildPhase = ":";
postPatch = ''
shopt -s extglob
for i in bin/!(aasdoc|acompc|amxmlc); do
substituteInPlace $i --replace "java " "${jre}/bin/java "
done
'';
installPhase = ''
t=$out/opt/apache-flex-sdk
mkdir -p $t $out/bin
mv * $t
rm $t/bin/*.bat
ln -s $t/bin/* $out/bin/
for i in $out/bin/!(aasdoc|acompc|amxmlc); do
wrapProgram $i \
--set FLEX_HOME $t \
--set PLAYERGLOBAL_HOME $t/frameworks/libs/player/
done
mkdir -p $t/frameworks/libs/player/${playerglobal_ver}/
cp ${playerglobal} $t/frameworks/libs/player/${playerglobal_ver}/playerglobal.swc
'';
fixupPhase = ":";
meta = with stdenv.lib; {
description = "Flex SDK for Adobe Flash / ActionScript";
homepage = "https://flex.apache.org/";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ dywedir ];
};
}

View File

@ -0,0 +1,35 @@
require "yaml"
require "json"
class PrefetchJSON
JSON.mapping(sha256: String)
end
File.open "shards.nix", "w+" do |file|
file.puts %({)
yaml = YAML.parse(File.read("shard.lock"))
yaml["shards"].each do |key, value|
owner, repo = value["github"].as_s.split("/")
url = "https://github.com/#{value["github"]}"
rev = if value["version"]?
"v#{value["version"]}"
else
value["commit"].as_s
end
sha256 = ""
args = ["--url", url, "--rev", rev]
Process.run("nix-prefetch-git", args: args) do |x|
x.error.each_line { |e| puts e }
sha256 = PrefetchJSON.from_json(x.output).sha256
end
file.puts %( #{key} = {)
file.puts %( owner = "#{owner}";)
file.puts %( repo = "#{repo}";)
file.puts %( rev = "#{rev}";)
file.puts %( sha256 = "#{sha256}";)
file.puts %( };)
end
file.puts %(})
end

View File

@ -0,0 +1,61 @@
{stdenv, lib, fetchFromGitHub, crystal, zlib, openssl, duktape}:
let
crystalPackages = lib.mapAttrs (name: src:
stdenv.mkDerivation {
name = lib.replaceStrings ["/"] ["-"] name;
src = fetchFromGitHub src;
phases = "installPhase";
installPhase = ''cp -r $src $out'';
passthru = { libName = name; };
}
) (import ./shards.nix);
crystalLib = stdenv.mkDerivation {
name = "crystal-lib";
src = lib.attrValues crystalPackages;
libNames = lib.mapAttrsToList (k: v: [k v]) crystalPackages;
phases = "buildPhase";
buildPhase = ''
mkdir -p $out
linkup () {
while [ "$#" -gt 0 ]; do
ln -s $2 $out/$1
shift; shift
done
}
linkup $libNames
'';
};
in
stdenv.mkDerivation rec {
version = "2018-05-27";
name = "mint-${version}";
src = fetchFromGitHub {
owner = "mint-lang";
repo = "mint";
rev = "a3f0c86f54b8b3a18dda5c39c2089bdb1d774b4f";
sha256 = "1bgs6jkwfc2ksq4gj55cl3h2l5g25f5bwlsjryiw9cbx5k4bp1kz";
};
buildInputs = [ crystal zlib openssl duktape ];
buildPhase = ''
mkdir -p $out/bin
mkdir tmp
cd tmp
ln -s ${crystalLib} lib
cp -r $src/* .
crystal build src/mint.cr -o $out/bin/mint --verbose --progress --release --no-debug
'';
installPhase = ''true'';
meta = {
description = "A refreshing language for the front-end web";
homepage = https://mint-lang.com/;
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ manveru ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
}

View File

@ -0,0 +1,62 @@
{
admiral = {
owner = "jwaldrip";
repo = "admiral.cr";
rev = "v1.6.1";
sha256 = "0y30b9b9rkz43afd3b9l24hs0r170qyc07r05kvydbv89376c53i";
};
ameba = {
owner = "veelenga";
repo = "ameba";
rev = "v0.6.0";
sha256 = "16jfyrkfc909h16si513lw944qp3dyapymczcqc2ic0jaal0af5b";
};
baked_file_system = {
owner = "schovi";
repo = "baked_file_system";
rev = "v0.9.6";
sha256 = "06cpriaizp5pcqwdq3jl2lm4sz9b2gcxg3a9q3lh0fqk2acajzmx";
};
duktape = {
owner = "jessedoyle";
repo = "duktape.cr";
rev = "v0.13.0";
sha256 = "0v0nckprgr7idmsx97g98as1a7z4hmlmwl924dbbaqvyslv5ls6w";
};
kemal = {
owner = "kemalcr";
repo = "kemal";
rev = "v0.22.0";
sha256 = "0gq3c27grgh90fykbj9fdsz507lwd41gk686qfnig6npndqv1v10";
};
kilt = {
owner = "jeromegn";
repo = "kilt";
rev = "v0.4.0";
sha256 = "1w9ib6j4xhwxdxx58nzc06gw7ci7vga03vgj1z1bnklamb0b0l0k";
};
radix = {
owner = "luislavena";
repo = "radix";
rev = "v0.3.8";
sha256 = "1kn2xxj8a8j6f6g1dr0s9mkrj1xqnpzw9wnbq24mbv8ach9a1hva";
};
string_inflection = {
owner = "mosop";
repo = "string_inflection";
rev = "v0.2.1";
sha256 = "10vkr28h7n53ijjv57ldxhh473086qg313lzs55a7wsh0zgc104m";
};
time_format = {
owner = "vladfaust";
repo = "time_format.cr";
rev = "v0.1.0";
sha256 = "1f3rssdlcw2a5f74qa8bzlf1rh5dzvyg1d32w9qlisf2cc4lkh9g";
};
tree_template = {
owner = "anykeyh";
repo = "tree_template";
rev = "3fcb71ee6852040077dd1a2c8c55c67f4a95ba4e";
sha256 = "04w89wpnkna4ipyy3pxshqqwgk965hz1d31vqp0mrb0ilmpsywdk";
};
}

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation ( rec {
name = "ponyc-${version}";
version = "0.22.2";
version = "0.22.3";
src = fetchFromGitHub {
owner = "ponylang";
repo = "ponyc";
rev = version;
sha256 = "1sw038mci4174zn8n3b4p511bdwjb3hwrv5gyzbv477nna1y9lvn";
sha256 = "0av664n3k73psn00bd36pibkyc5b530aqqiqpg4mw2ks060dm40v";
};
buildInputs = [ llvm makeWrapper which ];

View File

@ -0,0 +1,61 @@
{ stdenv, fetchFromGitLab, buildEnv, makeWrapper, lua, luajit, readline
, useLuaJit ? false
, extraLibraries ? []
}:
let
version = "0.7.1";
# Build a sort of "union package" with all the native dependencies we
# have: Lua (or LuaJIT), readline, etc. Then, we can depend on this
# and refer to ${urn-rt} instead of ${lua}, ${readline}, etc.
urn-rt = buildEnv {
name = "urn-rt-${version}";
ignoreCollisions = true;
paths = if useLuaJit then
[ luajit readline ]
else
[ lua ];
};
inherit (stdenv.lib) optionalString concatMapStringsSep;
in
stdenv.mkDerivation rec {
name = "urn-${optionalString (extraLibraries != []) "with-libraries-"}${version}";
src = fetchFromGitLab {
owner = "urn";
repo = "urn";
rev = "v${version}";
sha256 = "1vw0sljrczbwl7fl5d3frbpklb0larzyp7s7mwwprkb07b027sd5";
};
buildInputs = [ makeWrapper ];
# Any packages that depend on the compiler have a transitive
# dependency on the Urn runtime support.
propagatedBuildInputs = [ urn-rt ];
makeFlags = ["-B"];
installPhase = ''
mkdir -p $out/bin $out/lib
install -m 0755 bin/urn.lua $out/bin/urn
cp -r lib $out/lib/urn
wrapProgram $out/bin/urn \
--add-flags "-i $out/lib/urn --prelude $out/lib/urn/prelude.lisp" \
--add-flags "${concatMapStringsSep " " (x: "-i ${x.libraryPath}") extraLibraries}" \
--prefix PATH : ${urn-rt}/bin/ \
--prefix LD_LIBRARY_PATH : ${urn-rt}/lib/
'';
meta = with stdenv.lib; {
homepage = https://urn-lang.com;
description = "Yet another Lisp variant which compiles to Lua";
license = licenses.bsd3;
maintainers = with maintainers; [ CrazedProgrammer ];
};
passthru = {
inherit urn-rt;
};
}

View File

@ -15,13 +15,13 @@ let
else throw "Unsupported system!";
in stdenv.mkDerivation rec {
name = "aws-sdk-cpp-${version}";
version = "1.4.40";
version = "1.4.50";
src = fetchFromGitHub {
owner = "awslabs";
repo = "aws-sdk-cpp";
rev = version;
sha256 = "16n5p29pf062mfsn7q8q8hw0ppxb02a0kkakd0vjrybqflpgf42j";
sha256 = "1qly5zn7w9j8w6a9pjw25xnr01sfq8dn8g5zrz6xyjgz590fj2x7";
};
# FIXME: might be nice to put different APIs in different outputs

View File

@ -38,6 +38,7 @@ in stdenv.mkDerivation {
"-C src"
];
nativeBuildInputs = [ bison perl ];
hardeningDisable = [ "format" ];
installPhase = ''
install -D -m 644 src/bulletml.d "$out"/include/d/bulletml.d

View File

@ -0,0 +1,25 @@
diff -ruN cfitsio/configure cfitsio-curl-config/configure
--- cfitsio/configure 2018-05-09 21:16:00.000000000 +0200
+++ cfitsio-curl-config/configure 2018-05-30 13:28:58.000000000 +0200
@@ -4783,13 +4783,6 @@
CURL_LIB=""
CURL_INC=""
# Use curl-config to get compiler & linker flags, if available.
-# On Macs, prefer XCode curl-config, and reject MacPorts version
-# until further notice to prevent build errors:
-if test "x$EXT" = xdarwin -a -x /usr/bin/curl-config; then
- CURLCONFIG="/usr/bin/curl-config"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for curl-config... choosing /usr/bin/curl-config on Mac" >&5
-$as_echo "checking for curl-config... choosing /usr/bin/curl-config on Mac" >&6; }
-else
# Extract the first word of "curl-config", so it can be a program name with args.
set dummy curl-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -4833,7 +4826,6 @@
fi
fi
fi
-fi
CURLCONFIG=$ac_cv_prog_CURLCONFIG
if test -n "$CURLCONFIG"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CURLCONFIG" >&5

View File

@ -0,0 +1,21 @@
diff -ruN cfitsio/configure cfitsio-rpath-universal/configure
--- cfitsio/configure 2018-05-09 21:16:00.000000000 +0200
+++ cfitsio-rpath-universal/configure 2018-05-31 12:02:25.000000000 +0200
@@ -4727,16 +4727,7 @@
SHLIB_SUFFIX=".dylib"
CFITSIO_SHLIB="lib\${PACKAGE}.\${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}\${SHLIB_SUFFIX}"
CFITSIO_SHLIB_SONAME="lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX}"
- case $host in
- *darwin[56789]*)
- SHLIB_LD="$CC -dynamiclib -install_name lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}"
- ;;
- *)
- # Build 'Universal' binaries (i386 & x86_64 architectures) and
- # use rpath token on Darwin 10.x or newer:
- SHLIB_LD="$CC -dynamiclib $C_UNIV_SWITCH -headerpad_max_install_names -install_name @rpath/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}"
- ;;
- esac
+ SHLIB_LD="$CC -dynamiclib -install_name ${out}/lib/lib\${PACKAGE}.\${CFITSIO_SONAME}\${SHLIB_SUFFIX} -compatibility_version \${CFITSIO_SONAME} -current_version \${CFITSIO_SONAME}.\${CFITSIO_MAJOR}.\${CFITSIO_MINOR}"
lhea_shlib_cflags="-fPIC -fno-common"
;;

View File

@ -8,9 +8,11 @@
sha256 = "07fghxh5fl8nqk3q0dh8rvc83npnm0hisxzcj16a6r7gj5pmp40l";
};
patches = [ ./darwin-curl-config.patch ./darwin-rpath-universal.patch ];
# Shared-only build
buildFlags = "shared";
patchPhase = '' sed -e '/^install:/s/libcfitsio.a //' -e 's@/bin/@@g' -i Makefile.in
postPatch = '' sed -e '/^install:/s/libcfitsio.a //' -e 's@/bin/@@g' -i Makefile.in
'';
meta = with stdenv.lib; {
@ -27,6 +29,6 @@
'';
# Permissive BSD-style license.
license = "permissive";
platforms = platforms.linux;
platforms = with platforms; linux ++ darwin;
};
}

View File

@ -29,9 +29,9 @@ else
if [[ $LUA_PATH = *"$package_path"* ]]; then return; fi
if [[ -z $LUA_PATH ]]; then
export LUA_PATH="$package_path/?.lua"
export LUA_PATH="$package_path/?.lua;$package_path/?/init.lua"
else
export LUA_PATH="$LUA_PATH;$package_path/?.lua"
export LUA_PATH="$LUA_PATH;$package_path/?.lua;$package_path/?/init.lua"
fi
}

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, zlib, ncurses, p7zip, lib, makeWrapper
{ stdenv, fetchurl, zlib, ncurses5, p7zip, lib, makeWrapper
, coreutils, file, findutils, gawk, gnugrep, gnused, jdk, which
, platformTools, python3, version, sha256
, platformTools, python3, libcxx, version, sha256
}:
stdenv.mkDerivation rec {
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
phases = "buildPhase";
nativeBuildInputs = [ p7zip makeWrapper ];
nativeBuildInputs = [ p7zip makeWrapper file ];
buildCommand = let
bin_path = "$out/bin";
@ -33,9 +33,14 @@ stdenv.mkDerivation rec {
in ''
set -x
mkdir -pv $out/libexec
mkdir -pv $out/lib64
ln -s ${ncurses5.out}/lib/libncursesw.so.5 $out/lib64/libtinfo.so.5
ln -s ${ncurses5.out}/lib/libncurses.so.5 $out/lib64/libncurses.so.5
cd $out/libexec
7z x $src
patchShebangs ${pkg_path}
# so that it doesn't fail because of read-only permissions set
cd -
${if (version == "10e") then
@ -46,8 +51,6 @@ stdenv.mkDerivation rec {
''
else
''
patchShebangs ${pkg_path}/build/tools/make-standalone-toolchain.sh
patch -p1 \
--no-backup-if-mismatch \
-d $out/libexec/${name} < ${ ./. + builtins.toPath ("/make_standalone_toolchain.py_" + "${version}" + ".patch") }
@ -60,17 +63,13 @@ stdenv.mkDerivation rec {
\( -type f -a -name "*.so*" \) -o \
\( -type f -a -perm -0100 \) \
\) -exec patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-*so.? \
--set-rpath ${stdenv.lib.makeLibraryPath [ zlib.out ncurses ]} {} \;
--set-rpath $out/lib64:${stdenv.lib.makeLibraryPath [ libcxx.out zlib.out ncurses5 ]} {} \;
# fix ineffective PROGDIR / MYNDKDIR determination
for i in ndk-build ${lib.optionalString (version == "10e") "ndk-gdb ndk-gdb-py"}
do
sed -i -e ${sed_script_1} $i
done
${lib.optionalString (version == "10e") ''
sed -i -e ${sed_script_2} ndk-which
# a bash script
patchShebangs ndk-which
''}
# wrap
for i in ndk-build ${lib.optionalString (version == "10e") "ndk-gdb ndk-gdb-py ndk-which"}
do

View File

@ -219,7 +219,7 @@ rec {
inherit (buildPackages)
p7zip makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses lib python3
stdenv fetchurl zlib ncurses5 lib python3 libcxx
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
version = "10e";
@ -230,7 +230,7 @@ rec {
inherit (buildPackages)
p7zip makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses lib python3
stdenv fetchurl zlib ncurses5 lib python3 libcxx
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
version = "16b";
@ -241,7 +241,7 @@ rec {
inherit (buildPackages)
p7zip makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses lib python3
stdenv fetchurl zlib ncurses5 lib python3 libcxx
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
version = "17";

View File

@ -0,0 +1,34 @@
{ stdenv, fetchFromGitHub, buildGoPackage
, makeWrapper, nix-prefetch-git }:
buildGoPackage rec {
name = "dep2nix-${version}";
version = "0.0.1";
goPackagePath = "github.com/nixcloud/dep2nix";
src = fetchFromGitHub {
owner = "nixcloud";
repo = "dep2nix";
rev = version;
sha256 = "05b06wgcy88fb5ccqwq3mfhrhcblr1akpxgsf44kgbdwf5nzz87g";
};
nativeBuildInputs = [
makeWrapper
];
postFixup = ''
wrapProgram $bin/bin/dep2nix \
--prefix PATH : ${nix-prefetch-git}/bin
'';
goDeps = ./deps.nix;
meta = with stdenv.lib; {
description = "Convert `Gopkg.lock` files from golang dep into `deps.nix`";
license = licenses.bsd3;
homepage = https://github.com/nixcloud/dep2nix;
maintainers = [ maintainers.mic92 ];
};
}

145
pkgs/development/tools/dep2nix/deps.nix generated Normal file
View File

@ -0,0 +1,145 @@
# file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
[
{
goPackagePath = "github.com/Masterminds/semver";
fetch = {
type = "git";
url = "https://github.com/Masterminds/semver";
rev = "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
};
}
{
goPackagePath = "github.com/Masterminds/vcs";
fetch = {
type = "git";
url = "https://github.com/Masterminds/vcs";
rev = "6f1c6d150500e452704e9863f68c2559f58616bf";
sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
};
}
{
goPackagePath = "github.com/armon/go-radix";
fetch = {
type = "git";
url = "https://github.com/armon/go-radix";
rev = "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
};
}
{
goPackagePath = "github.com/boltdb/bolt";
fetch = {
type = "git";
url = "https://github.com/boltdb/bolt";
rev = "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
};
}
{
goPackagePath = "github.com/golang/dep";
fetch = {
type = "git";
url = "https://github.com/CrushedPixel/dep";
rev = "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
};
}
{
goPackagePath = "github.com/golang/protobuf";
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
rev = "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
};
}
{
goPackagePath = "github.com/jmank88/nuts";
fetch = {
type = "git";
url = "https://github.com/jmank88/nuts";
rev = "8b28145dffc87104e66d074f62ea8080edfad7c8";
sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
};
}
{
goPackagePath = "github.com/nightlyone/lockfile";
fetch = {
type = "git";
url = "https://github.com/nightlyone/lockfile";
rev = "6a197d5ea61168f2ac821de2b7f011b250904900";
sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
};
}
{
goPackagePath = "github.com/pelletier/go-toml";
fetch = {
type = "git";
url = "https://github.com/pelletier/go-toml";
rev = "acdc4509485b587f5e675510c4f2c63e90ff68a8";
sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "645ef00459ed84a119197bfb8d8205042c6df63d";
sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
};
}
{
goPackagePath = "github.com/sdboyer/constext";
fetch = {
type = "git";
url = "https://github.com/sdboyer/constext";
rev = "836a144573533ea4da4e6929c235fd348aed1c80";
sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
};
}
{
goPackagePath = "golang.org/x/sync";
fetch = {
type = "git";
url = "https://go.googlesource.com/sync";
rev = "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "37707fdb30a5b38865cfb95e5aab41707daec7fd";
sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
};
}
]

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "gllvm-${version}";
version = "1.2.1";
version = "1.2.2";
goPackagePath = "github.com/SRI-CSL/gllvm";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "SRI-CSL";
repo = "gllvm";
rev = "v${version}";
sha256 = "1rbvn7qhzb7xxqv0wrkwxq4sm657vsl6q7nwrfq2zwb21573811z";
sha256 = "1k6081frnc6i6h3fa8d796cirhbf5kkshw7qyarz5wi3fcgijn4s";
};
meta = with stdenv.lib; {
@ -18,5 +18,6 @@ buildGoPackage rec {
description = "Whole Program LLVM: wllvm ported to go";
license = licenses.bsd3;
maintainers = with maintainers; [ dtzWill ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,27 @@
{ stdenv, fetchFromGitHub, ocamlPackages }:
stdenv.mkDerivation rec {
version = "0.3.1";
name = "opaline-${version}";
src = fetchFromGitHub {
owner = "jaapb";
repo = "opaline";
rev = "v${version}";
sha256 = "0vd5xaf272hk4iqfj347jvbppy7my5p5gz8yqpkvl1d1i6lzh08v";
};
buildInputs = with ocamlPackages; [ ocaml findlib ocamlbuild opam-file-format ];
preInstall = "mkdir -p $out/bin";
installFlags = [ "PREFIX=$(out)" ];
meta = {
description = "OPAm Light INstaller Engine";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.vbgl ];
inherit (src.meta) homepage;
inherit (ocamlPackages.ocaml.meta) platforms;
};
}

View File

@ -1,13 +1,13 @@
{ stdenv, python3Packages }:
python3Packages.buildPythonApplication rec {
version = "1.2.1";
version = "1.2.2";
pname = "wllvm";
name = "${pname}-${version}";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "1yr0gijhgbxx1sl5a8dygr3a8g5wfkh9rk4v789r2aplvcbanv5a";
sha256 = "1zrjcabv41105mmv632gp488kmhya37n0jwgwxhadps4z3jv2qxb";
};
meta = with stdenv.lib; {

View File

@ -13,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}:
in rec {
stable = fetchurl rec {
version = "3.0";
version = "3.0.1";
url = "https://dl.winehq.org/wine/source/3.0/wine-${version}.tar.xz";
sha256 = "1v7vq9iinkscbq6wg85fb0d2137660fg2nk5iabxkl2wr850asil";
sha256 = "1wr63n70pli83p3rmclr2j4lxzs4ll1cwlpdlaajfrf6v9yhvl5s";
## see http://wiki.winehq.org/Gecko
gecko32 = fetchurl rec {
@ -39,16 +39,16 @@ in rec {
unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well.
version = "3.7";
version = "3.9";
url = "https://dl.winehq.org/wine/source/3.x/wine-${version}.tar.xz";
sha256 = "1drbzk3y0m14lkq3vzwwkvain5shykgcbmyzh6gcb5r4sxh3givn";
sha256 = "0ddphvlp9lsjyqc6zckinc36bggpkg925v0x2vqr8nkdjs0w5bfc";
inherit (stable) mono gecko32 gecko64;
};
staging = fetchFromGitHub rec {
# https://github.com/wine-compholio/wine-staging/releases
inherit (unstable) version;
sha256 = "0kam73jqhah7bzji5csxxhhfdp6byhzpcph6xnzjqz2aic5xk7xi";
sha256 = "022hzh9i0pc063vcdy7ilb1lxlxpzgr4llcb52y2j3gz1psrcyqs";
owner = "wine-staging";
repo = "wine-staging";
rev = "v${version}";
@ -56,8 +56,8 @@ in rec {
winetricks = fetchFromGitHub rec {
# https://github.com/Winetricks/winetricks/releases
version = "20180217";
sha256 = "0k3vlsqjbzys5dfbxwgw76al8gh44jsjqkc06va103frkrgjxvc5";
version = "20180513";
sha256 = "0ijjqvx2110mfcfyj3rvw53phqbay91vsp5ncv40szx0d259jbw4";
owner = "Winetricks";
repo = "winetricks";
rev = version;

View File

@ -0,0 +1,28 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "adapta-kde-theme-${version}";
version = "20180512";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = "adapta-kde";
rev = version;
sha256 = "1lgpkylhzbayk892inql16sjyy9d3v126f9i1v7qgha1203rwcji";
};
makeFlags = ["PREFIX=$(out)" ];
# Make this a fixed-output derivation
outputHashMode = "recursive";
outputHashAlgo = "sha256";
ouputHash = "0rxhk8sp81vb2mngqr7kn9vlqyliq9aqj2d25igcr01v5axbxbzb";
meta = {
description = "A port of the Adapta theme for Plasma";
homepage = https://git.io/adapta-kde;
license = stdenv.lib.licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.tadfisher ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -2,12 +2,12 @@
, flex, bison, libmnl, libnftnl, gmp, readline }:
stdenv.mkDerivation rec {
version = "0.8.3";
version = "0.8.5";
name = "nftables-${version}";
src = fetchurl {
url = "http://netfilter.org/projects/nftables/files/${name}.tar.bz2";
sha256 = "0f2yv7as1ybkfvn75f72x0z9y1ydibw4s3hbzhlmvsc8vgsy2syi";
sha256 = "08z3xaxdryi0i9gcfifs77c96xs8ljynkr2hbfgf3w67l60az6wf";
};
configureFlags = [

View File

@ -8,11 +8,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "pdns-recursor-${version}";
version = "4.1.2";
version = "4.1.3";
src = fetchurl {
url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
sha256 = "0xpd8k7ahwrwabz05zbjmg54dmd4hm5hkbfn8m1ws6y4f7qm4inv";
sha256 = "12x8gm6771wh2xaqad3p5y08p5pimp6k9h830s0487mwg9glacy1";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
name = "powerdns-${version}";
version = "4.1.2";
version = "4.1.3";
src = fetchurl {
url = "http://downloads.powerdns.com/releases/pdns-${version}.tar.bz2";
sha256 = "15anf9x4h3acf7rhvaim4595v2hrz7mn4va9qv18bfnif40vxn46";
sha256 = "1bh1qdgw415ax542123b6isri1jh4mbf2i9i1yffkfk0xmyv79cs";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -0,0 +1,93 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
{
goPackagePath = "github.com/beorn7/perks";
fetch = {
type = "git";
url = "https://github.com/beorn7/perks";
rev = "3a771d992973f24aa725d07868b467d1ddfceafb";
sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
};
}
{
goPackagePath = "github.com/golang/protobuf";
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
rev = "b4deda0973fb4c70b50d226b1af49f3da59f5265";
sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
};
}
{
goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
fetch = {
type = "git";
url = "https://github.com/matttproud/golang_protobuf_extensions";
rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c";
sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
};
}
{
goPackagePath = "github.com/miekg/dns";
fetch = {
type = "git";
url = "https://github.com/miekg/dns";
rev = "9c76f9827e170bfcd354c2cb02a6fd428faf81a6";
sha256 = "0yym4jr15cqwlppnqfsp92i7p1ir12ys695wffb3in7gnnm0d38n";
};
}
{
goPackagePath = "github.com/prometheus/client_golang";
fetch = {
type = "git";
url = "https://github.com/prometheus/client_golang";
rev = "82f5ff156b29e276022b1a958f7d385870fb9814";
sha256 = "111j329yrlgvh73dm80gawwxsh9dgjkw74254kyj5c2rfmra7znz";
};
}
{
goPackagePath = "github.com/prometheus/client_model";
fetch = {
type = "git";
url = "https://github.com/prometheus/client_model";
rev = "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c";
sha256 = "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998";
};
}
{
goPackagePath = "github.com/prometheus/common";
fetch = {
type = "git";
url = "https://github.com/prometheus/common";
rev = "d811d2e9bf898806ecfb6ef6296774b13ffc314c";
sha256 = "0r4067r4ysmljksqw3awcxx5qplqhykahc5igdzgkky7i4bvaik1";
};
}
{
goPackagePath = "github.com/prometheus/procfs";
fetch = {
type = "git";
url = "https://github.com/prometheus/procfs";
rev = "8b1c2da0d56deffdbb9e48d4414b4e674bd8083e";
sha256 = "0x128p15h35mgwqxkigfkk1lfrcz9g697ahl8v6xp9kwvcqvjrrf";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "640f4622ab692b87c2f3a94265e6f579fe38263d";
sha256 = "097m4qhcljhp180171j5fjhq4740iirfkkajfd7yrxqhp4s9hljx";
};
}
{
goPackagePath = "golang.org/x/sync";
fetch = {
type = "git";
url = "https://go.googlesource.com/sync";
rev = "1d60e4601c6fd243af51cc01ddf169918a5407ca";
sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
};
}
]

View File

@ -0,0 +1,23 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "dnsmasq_exporter-unstable-2018-05-05";
goPackagePath = "github.com/google/dnsmasq_exporter";
src = fetchFromGitHub {
owner = "google";
repo = "dnsmasq_exporter";
sha256 = "1kzq4h7z28xadx425nbgxadk62yiz6279d300fyiyi83hwq0ay8c";
rev = "e1f281b435bbefbb2d17fc57c051ede0ab973c59";
};
goDeps = ./dnsmasq-exporter-deps.nix;
meta = with stdenv.lib; {
inherit (src.meta) homepage;
description = "A dnsmasq exporter for Prometheus";
license = licenses.asl20;
maintainers = with maintainers; [ willibutz ];
};
}

View File

@ -0,0 +1,41 @@
{ stdenv, buildGoPackage, fetchgit }:
buildGoPackage rec {
name = "morty-${version}";
version = "0.2.0";
goPackagePath = "github.com/asciimoo/morty";
src = fetchgit {
rev = "v${version}";
url = "https://github.com/asciimoo/morty";
sha256 = "1wvrdlwbpzizfg7wrcfyf1x6qllp3aw425n88z516wc9jalfqrrm";
};
goDeps = ./deps.nix;
meta = with stdenv.lib; {
homepage = "https://github.com/asciimoo/morty";
maintainers = with maintainers; [ leenaars ];
description = "Privacy aware web content sanitizer proxy as a service";
longDescription = ''
Morty is a web content sanitizer proxy as a service. It rewrites web
pages to exclude malicious HTML tags and attributes. It also replaces
external resource references to prevent third party information leaks.
The main goal of morty is to provide a result proxy for searx, but it
can be used as a standalone sanitizer service too.
Features:
* HTML sanitization
* Rewrites HTML/CSS external references to locals
* JavaScript blocking
* No Cookies forwarded
* No Referrers
* No Caching/Etag
* Supports GET/POST forms and IFrames
* Optional HMAC URL verifier key to prevent service abuse
'';
};
}

57
pkgs/servers/web-apps/morty/deps.nix generated Normal file
View File

@ -0,0 +1,57 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
{
goPackagePath = "github.com/klauspost/compress";
fetch = {
type = "git";
url = "https://github.com/klauspost/compress";
rev = "5698df94daded084fa836b7df2ffbf6cbd3dd63a";
sha256 = "1jligmzsyv08dysdaih3r95ki0dqnay9wlzganl4r0mamwhq22wz";
};
}
{
goPackagePath = "github.com/klauspost/cpuid";
fetch = {
type = "git";
url = "https://github.com/klauspost/cpuid";
rev = "ae832f27941af41db13bd6d8efd2493e3b22415a";
sha256 = "1h46y0lbzx0zjdnwbh0znf2ghgbvpzk1p269kkn7v8645xk3apk9";
};
}
{
goPackagePath = "github.com/valyala/bytebufferpool";
fetch = {
type = "git";
url = "https://github.com/valyala/bytebufferpool";
rev = "e746df99fe4a3986f4d4f79e13c1e0117ce9c2f7";
sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93";
};
}
{
goPackagePath = "github.com/valyala/fasthttp";
fetch = {
type = "git";
url = "https://github.com/valyala/fasthttp";
rev = "e5f51c11919d4f66400334047b897ef0a94c6f3c";
sha256 = "0g24gys7xk449jd9ja89vr33i3amcb12jnmhsrmd5r2q8byv3l09";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "f5dfe339be1d06f81b22525fe34671ee7d2c8904";
sha256 = "01y9j7pjnnld4ipmzjvs0hls0hh698f2sga8cxaw5y6r5j7igaah";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "4e4a3210bb54bb31f6ab2cdca2edcc0b50c420c1";
sha256 = "10505r4xw1njnr2ns1s5r62s4pwif0kfaa30xxpgpz6qxrrmw15s";
};
}
]

View File

@ -0,0 +1,431 @@
diff --git a/squashfs-tools/action.c b/squashfs-tools/action.c
index 4b06ccb..26365e7 100644
--- a/squashfs-tools/action.c
+++ b/squashfs-tools/action.c
@@ -38,6 +38,10 @@
#include <limits.h>
#include <errno.h>
+#ifndef FNM_EXTMATCH /* glibc extension */
+ #define FNM_EXTMATCH 0
+#endif
+
#include "squashfs_fs.h"
#include "mksquashfs.h"
#include "action.h"
@@ -2284,9 +2288,12 @@ static char *get_start(char *s, int n)
static int subpathname_fn(struct atom *atom, struct action_data *action_data)
{
- return fnmatch(atom->argv[0], get_start(strdupa(action_data->subpath),
+ char *path = strdup(action_data->subpath);
+ int is_match = fnmatch(atom->argv[0], get_start(path,
count_components(atom->argv[0])),
FNM_PATHNAME|FNM_PERIOD|FNM_EXTMATCH) == 0;
+ free(path);
+ return is_match;
}
/*
diff --git a/squashfs-tools/info.c b/squashfs-tools/info.c
index 7968c77..c8e4c52 100644
--- a/squashfs-tools/info.c
+++ b/squashfs-tools/info.c
@@ -134,31 +134,22 @@ void dump_state()
void *info_thrd(void *arg)
{
sigset_t sigmask;
- struct timespec timespec = { .tv_sec = 1, .tv_nsec = 0 };
- int sig, waiting = 0;
+ int sig, err, waiting = 0;
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGQUIT);
sigaddset(&sigmask, SIGHUP);
+ sigaddset(&sigmask, SIGALRM);
while(1) {
- if(waiting)
- sig = sigtimedwait(&sigmask, NULL, &timespec);
- else
- sig = sigwaitinfo(&sigmask, NULL);
+ err = sigwait(&sigmask, &sig);
- if(sig == -1) {
+ if(err == -1) {
switch(errno) {
- case EAGAIN:
- /* interval timed out */
- waiting = 0;
- /* FALLTHROUGH */
case EINTR:
- /* if waiting, the wait will be longer, but
- that's OK */
continue;
default:
- BAD_ERROR("sigtimedwait/sigwaitinfo failed "
+ BAD_ERROR("sigwaitfailed "
"because %s\n", strerror(errno));
}
}
@@ -169,8 +160,12 @@ void *info_thrd(void *arg)
/* set one second interval period, if ^\ received
within then, dump queue and cache status */
waiting = 1;
- } else
+ alarm(1);
+ } else if (sig == SIGQUIT) {
dump_state();
+ } else if (sig == SIGALRM) {
+ waiting = 0;
+ }
}
}
diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
index d696a51..c86d1b3 100644
--- a/squashfs-tools/mksquashfs.c
+++ b/squashfs-tools/mksquashfs.c
@@ -50,6 +50,10 @@
#include <limits.h>
#include <ctype.h>
+#ifndef FNM_EXTMATCH /* glibc extension */
+ #define FNM_EXTMATCH 0
+#endif
+
#ifndef linux
#define __BYTE_ORDER BYTE_ORDER
#define __BIG_ENDIAN BIG_ENDIAN
@@ -831,13 +835,13 @@ char *subpathname(struct dir_ent *dir_ent)
}
-inline unsigned int get_inode_no(struct inode_info *inode)
+static inline unsigned int get_inode_no(struct inode_info *inode)
{
return inode->inode_number;
}
-inline unsigned int get_parent_no(struct dir_info *dir)
+static inline unsigned int get_parent_no(struct dir_info *dir)
{
return dir->depth ? get_inode_no(dir->dir_ent->inode) : inode_no;
}
@@ -2030,7 +2034,7 @@ struct file_info *duplicate(long long file_size, long long bytes,
}
-inline int is_fragment(struct inode_info *inode)
+static inline int is_fragment(struct inode_info *inode)
{
off_t file_size = inode->buf.st_size;
@@ -2999,13 +3003,13 @@ struct inode_info *lookup_inode2(struct stat *buf, int pseudo, int id)
}
-inline struct inode_info *lookup_inode(struct stat *buf)
+static inline struct inode_info *lookup_inode(struct stat *buf)
{
return lookup_inode2(buf, 0, 0);
}
-inline void alloc_inode_no(struct inode_info *inode, unsigned int use_this)
+static inline void alloc_inode_no(struct inode_info *inode, unsigned int use_this)
{
if (inode->inode_number == 0) {
inode->inode_number = use_this ? : inode_no ++;
@@ -3016,7 +3020,7 @@ inline void alloc_inode_no(struct inode_info *inode, unsigned int use_this)
}
-inline struct dir_ent *create_dir_entry(char *name, char *source_name,
+static inline struct dir_ent *create_dir_entry(char *name, char *source_name,
char *nonstandard_pathname, struct dir_info *dir)
{
struct dir_ent *dir_ent = malloc(sizeof(struct dir_ent));
@@ -3034,7 +3038,7 @@ inline struct dir_ent *create_dir_entry(char *name, char *source_name,
}
-inline void add_dir_entry(struct dir_ent *dir_ent, struct dir_info *sub_dir,
+static inline void add_dir_entry(struct dir_ent *dir_ent, struct dir_info *sub_dir,
struct inode_info *inode_info)
{
struct dir_info *dir = dir_ent->our_dir;
@@ -3050,7 +3054,7 @@ inline void add_dir_entry(struct dir_ent *dir_ent, struct dir_info *sub_dir,
}
-inline void add_dir_entry2(char *name, char *source_name,
+static inline void add_dir_entry2(char *name, char *source_name,
char *nonstandard_pathname, struct dir_info *sub_dir,
struct inode_info *inode_info, struct dir_info *dir)
{
@@ -3062,7 +3066,7 @@ inline void add_dir_entry2(char *name, char *source_name,
}
-inline void free_dir_entry(struct dir_ent *dir_ent)
+static inline void free_dir_entry(struct dir_ent *dir_ent)
{
if(dir_ent->name)
free(dir_ent->name);
@@ -3083,7 +3087,7 @@ inline void free_dir_entry(struct dir_ent *dir_ent)
}
-inline void add_excluded(struct dir_info *dir)
+static inline void add_excluded(struct dir_info *dir)
{
dir->excluded ++;
}
@@ -4200,6 +4204,7 @@ void initialise_threads(int readq, int fragq, int bwriteq, int fwriteq,
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGQUIT);
sigaddset(&sigmask, SIGHUP);
+ sigaddset(&sigmask, SIGALRM);
if(pthread_sigmask(SIG_BLOCK, &sigmask, NULL) == -1)
BAD_ERROR("Failed to set signal mask in intialise_threads\n");
@@ -4987,6 +4992,36 @@ int parse_num(char *arg, int *res)
int get_physical_memory()
{
+ int phys_mem;
+#ifndef linux
+ #ifdef HW_MEMSIZE
+ #define SYSCTL_PHYSMEM HW_MEMSIZE
+ #elif defined(HW_PHYSMEM64)
+ #define SYSCTL_PHYSMEM HW_PHYSMEM64
+ #else
+ #define SYSCTL_PHYSMEM HW_PHYSMEM
+ #endif
+
+ int mib[2];
+ uint64_t sysctl_physmem = 0;
+ size_t sysctl_len = sizeof(sysctl_physmem);
+
+ mib[0] = CTL_HW;
+ mib[1] = SYSCTL_PHYSMEM;
+
+ if(sysctl(mib, 2, &sysctl_physmem, &sysctl_len, NULL, 0) == 0) {
+ /* some systems use 32-bit values, work with what we're given */
+ if (sysctl_len == 4)
+ sysctl_physmem = *(uint32_t*)&sysctl_physmem;
+ phys_mem = sysctl_physmem >> 20;
+ } else {
+ ERROR_START("Failed to get amount of available "
+ "memory.");
+ ERROR_EXIT(" Defaulting to least viable amount\n");
+ phys_mem = SQUASHFS_LOWMEM;
+ }
+ #undef SYSCTL_PHYSMEM
+#else
/*
* Long longs are used here because with PAE, a 32-bit
* machine can have more than 4GB of physical memory
@@ -4996,10 +5031,11 @@ int get_physical_memory()
*/
long long num_pages = sysconf(_SC_PHYS_PAGES);
long long page_size = sysconf(_SC_PAGESIZE);
- int phys_mem = num_pages * page_size >> 20;
+ phys_mem = num_pages * page_size >> 20;
if(num_pages == -1 || page_size == -1)
return 0;
+#endif
if(phys_mem < SQUASHFS_LOWMEM)
BAD_ERROR("Mksquashfs requires more physical memory than is "
diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
index 55708a3..d44d1fd 100644
--- a/squashfs-tools/mksquashfs.h
+++ b/squashfs-tools/mksquashfs.h
@@ -24,6 +24,7 @@
* mksquashfs.h
*
*/
+#include <pthread.h>
struct dir_info {
char *pathname;
diff --git a/squashfs-tools/pseudo.c b/squashfs-tools/pseudo.c
index cb74cf6..fe2b4bc 100644
--- a/squashfs-tools/pseudo.c
+++ b/squashfs-tools/pseudo.c
@@ -30,6 +30,7 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
+#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
diff --git a/squashfs-tools/read_xattrs.c b/squashfs-tools/read_xattrs.c
index 42106f5..837d3fb 100644
--- a/squashfs-tools/read_xattrs.c
+++ b/squashfs-tools/read_xattrs.c
@@ -39,13 +39,13 @@
#include <endian.h>
#endif
+#include <stdlib.h>
+
#include "squashfs_fs.h"
#include "squashfs_swap.h"
#include "xattr.h"
#include "error.h"
-#include <stdlib.h>
-
extern int read_fs_bytes(int, long long, int, void *);
extern int read_block(int, long long, long long *, int, void *);
diff --git a/squashfs-tools/unsquashfs.c b/squashfs-tools/unsquashfs.c
index f190e96..927e441 100644
--- a/squashfs-tools/unsquashfs.c
+++ b/squashfs-tools/unsquashfs.c
@@ -32,7 +32,12 @@
#include "stdarg.h"
#include "fnmatch_compat.h"
+#ifndef linux
+#include <sys/sysctl.h>
+#else
#include <sys/sysinfo.h>
+#endif
+
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
@@ -2185,6 +2190,7 @@ void initialise_threads(int fragment_buffer_size, int data_buffer_size)
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGQUIT);
sigaddset(&sigmask, SIGHUP);
+ sigaddset(&sigmask, SIGALRM);
if(pthread_sigmask(SIG_BLOCK, &sigmask, NULL) == -1)
EXIT_UNSQUASH("Failed to set signal mask in initialise_threads"
"\n");
diff --git a/squashfs-tools/unsquashfs.h b/squashfs-tools/unsquashfs.h
index 0edbd25..cea9caa 100644
--- a/squashfs-tools/unsquashfs.h
+++ b/squashfs-tools/unsquashfs.h
@@ -46,6 +46,10 @@
#include <sys/ioctl.h>
#include <sys/time.h>
+#ifndef FNM_EXTMATCH /* glibc extension */
+ #define FNM_EXTMATCH 0
+#endif
+
#ifndef linux
#define __BYTE_ORDER BYTE_ORDER
#define __BIG_ENDIAN BIG_ENDIAN
diff --git a/squashfs-tools/unsquashfs_info.c b/squashfs-tools/unsquashfs_info.c
index c8e2b9b..7d4f7af 100644
--- a/squashfs-tools/unsquashfs_info.c
+++ b/squashfs-tools/unsquashfs_info.c
@@ -97,31 +97,22 @@ void dump_state()
void *info_thrd(void *arg)
{
sigset_t sigmask;
- struct timespec timespec = { .tv_sec = 1, .tv_nsec = 0 };
- int sig, waiting = 0;
+ int sig, err, waiting = 0;
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGQUIT);
sigaddset(&sigmask, SIGHUP);
+ sigaddset(&sigmask, SIGALRM);
while(1) {
- if(waiting)
- sig = sigtimedwait(&sigmask, NULL, &timespec);
- else
- sig = sigwaitinfo(&sigmask, NULL);
+ err = sigwait(&sigmask, &sig);
- if(sig == -1) {
+ if(err == -1) {
switch(errno) {
- case EAGAIN:
- /* interval timed out */
- waiting = 0;
- /* FALLTHROUGH */
case EINTR:
- /* if waiting, the wait will be longer, but
- that's OK */
continue;
default:
- BAD_ERROR("sigtimedwait/sigwaitinfo failed "
+ BAD_ERROR("sigwait failed "
"because %s\n", strerror(errno));
}
}
@@ -133,8 +124,12 @@ void *info_thrd(void *arg)
/* set one second interval period, if ^\ received
within then, dump queue and cache status */
waiting = 1;
- } else
+ alarm(1);
+ } else if (sig == SIGQUIT) {
dump_state();
+ } else if (sig == SIGALRM) {
+ waiting = 0;
+ }
}
}
diff --git a/squashfs-tools/unsquashfs_xattr.c b/squashfs-tools/unsquashfs_xattr.c
index 59f4aae..13f0e35 100644
--- a/squashfs-tools/unsquashfs_xattr.c
+++ b/squashfs-tools/unsquashfs_xattr.c
@@ -27,6 +27,11 @@
#include <sys/xattr.h>
+#ifdef XATTR_NOFOLLOW /* Apple's xattrs */
+ #define lsetxattr(path_, name_, val_, sz_, flags_) \
+ setxattr(path_, name_, val_, sz_, 0, flags_ | XATTR_NOFOLLOW)
+#endif
+
#define NOSPACE_MAX 10
extern int root_process;
diff --git a/squashfs-tools/xattr.c b/squashfs-tools/xattr.c
index b46550c..5b32eca 100644
--- a/squashfs-tools/xattr.c
+++ b/squashfs-tools/xattr.c
@@ -22,6 +22,14 @@
* xattr.c
*/
+#ifndef linux
+#define __BYTE_ORDER BYTE_ORDER
+#define __BIG_ENDIAN BIG_ENDIAN
+#define __LITTLE_ENDIAN LITTLE_ENDIAN
+#else
+#include <endian.h>
+#endif
+
#define TRUE 1
#define FALSE 0
@@ -36,6 +44,13 @@
#include <stdlib.h>
#include <sys/xattr.h>
+#ifdef XATTR_NOFOLLOW /* Apple's xattrs */
+ #define llistxattr(path_, buf_, sz_) \
+ listxattr(path_, buf_, sz_, XATTR_NOFOLLOW)
+ #define lgetxattr(path_, name_, val_, sz_) \
+ getxattr(path_, name_, val_, sz_, 0, XATTR_NOFOLLOW)
+#endif
+
#include "squashfs_fs.h"
#include "squashfs_swap.h"
#include "mksquashfs.h"

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
./0001-If-SOURCE_DATE_EPOCH-is-set-override-timestamps-with.patch
./0002-If-SOURCE_DATE_EPOCH-is-set-also-clamp-content-times.patch
./0003-remove-frag-deflator-thread.patch
];
] ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
buildInputs = [ zlib xz ]
++ stdenv.lib.optional lz4Support lz4;
@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = http://squashfs.sourceforge.net/;
description = "Tool for creating and unpacking squashfs filesystems";
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ ruuda ];
};

View File

@ -37,6 +37,7 @@ mapAliases (rec {
QmidiNet = qmidinet; # added 2016-05-22
accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19
adobeReader = adobe-reader; # added 2013-11-04
adobe_flex_sdk = apache-flex-sdk; # added 2018-06-01
ag = silver-searcher; # added 2018-04-25
aircrackng = aircrack-ng; # added 2016-01-14
ammonite-repl = ammonite; # added 2017-05-02

View File

@ -738,6 +738,8 @@ with pkgs;
adapta-gtk-theme = callPackage ../misc/themes/adapta { };
adapta-kde-theme = callPackage ../misc/themes/adapta-kde { };
aria2 = callPackage ../tools/networking/aria2 {
inherit (darwin.apple_sdk.frameworks) Security;
};
@ -6119,7 +6121,7 @@ with pkgs;
elmPackages = recurseIntoAttrs (callPackage ../development/compilers/elm { });
adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
apache-flex-sdk = callPackage ../development/compilers/apache-flex-sdk { };
fpc = callPackage ../development/compilers/fpc { };
@ -6782,6 +6784,8 @@ with pkgs;
microscheme = callPackage ../development/compilers/microscheme { };
mint = callPackage ../development/compilers/mint { };
mitscheme = callPackage ../development/compilers/mit-scheme {
texLive = texlive.combine { inherit (texlive) scheme-small; };
texinfo = texinfo5;
@ -6873,6 +6877,8 @@ with pkgs;
ocamlPackages = ocamlPackages_4_02;
};
opaline = callPackage ../development/tools/ocaml/opaline { };
opam = callPackage ../development/tools/ocaml/opam { };
picat = callPackage ../development/compilers/picat {
@ -7004,6 +7010,8 @@ with pkgs;
bupc = callPackage ../development/compilers/bupc { };
urn = callPackage ../development/compilers/urn { };
urweb = callPackage ../development/compilers/urweb { };
inherit (callPackage ../development/compilers/vala { })
@ -7134,7 +7142,13 @@ with pkgs;
guile = guile_2_2;
hadoop = callPackage ../applications/networking/cluster/hadoop { };
inherit (callPackage ../applications/networking/cluster/hadoop { })
hadoop_2_7
hadoop_2_8
hadoop_2_9
hadoop_3_0
hadoop_3_1;
hadoop = hadoop_2_7;
io = callPackage ../development/interpreters/io { };
@ -12597,6 +12611,8 @@ with pkgs;
mlmmj = callPackage ../servers/mail/mlmmj { };
morty = callPackage ../servers/web-apps/morty { };
myserver = callPackage ../servers/http/myserver { };
nas = callPackage ../servers/nas { };
@ -12840,6 +12856,7 @@ with pkgs;
prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
prometheus-dnsmasq-exporter = callPackage ../servers/monitoring/prometheus/dnsmasq-exporter.nix { };
prometheus-dovecot-exporter = callPackage ../servers/monitoring/prometheus/dovecot-exporter.nix { };
prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { };
prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
@ -13868,6 +13885,8 @@ with pkgs;
dep = callPackage ../development/tools/dep { };
dep2nix = callPackage ../development/tools/dep2nix { };
easyjson = callPackage ../development/tools/easyjson { };
go-bindata = callPackage ../development/tools/go-bindata { };
@ -14946,6 +14965,8 @@ with pkgs;
ffmpeg = ffmpeg_1;
};
barrier = callPackage ../applications/misc/barrier {};
banshee = callPackage ../applications/audio/banshee {
gconf = pkgs.gnome2.GConf;
libgpod = pkgs.libgpod.override { monoSupport = true; };
@ -16770,6 +16791,8 @@ with pkgs;
makeself = callPackage ../applications/misc/makeself { };
mapmap = libsForQt5.callPackage ../applications/video/mapmap { };
marathon = callPackage ../applications/networking/cluster/marathon { };
marathonctl = callPackage ../tools/virtualization/marathonctl { } ;
@ -18006,7 +18029,7 @@ with pkgs;
saslSupport = false;
sasl = cyrus_sasl;
})
subversion18 subversion19;
subversion18 subversion19 subversion_1_10;
subversion = pkgs.subversion19;
@ -18917,6 +18940,8 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) Security;
};
zeronet = callPackage ../applications/networking/p2p/zeronet { };
zexy = callPackage ../applications/audio/pd-plugins/zexy { };
zgrviewer = callPackage ../applications/graphics/zgrviewer {};