Merge branch 'master.upstream' into staging.upstream

This commit is contained in:
William A. Kennington III 2015-08-19 20:52:17 -07:00
commit 4f22eadf2c
21 changed files with 742 additions and 107 deletions

View File

@ -78,12 +78,6 @@ in {
type = types.int;
};
readOnlyPort = mkOption {
description = "Kubernets apiserver read-only port.";
default = 7080;
type = types.int;
};
securePort = mkOption {
description = "Kubernetes apiserver secure port.";
default = 6443;
@ -102,6 +96,12 @@ in {
type = types.str;
};
clientCaFile = mkOption {
description = "Kubernetes apiserver CA file for client auth.";
default = "";
type = types.str;
};
tokenAuth = mkOption {
description = ''
Kubernetes apiserver token authentication file. See
@ -158,6 +158,19 @@ in {
type = types.str;
};
runtimeConfig = mkOption {
description = "Api runtime configuration";
default = "";
example = "api/all=false,api/v1=true";
type = types.str;
};
admissionControl = mkOption {
description = "Kubernetes admission control plugins to use.";
default = ["AlwaysAdmit"];
type = types.listOf types.str;
};
extraOpts = mkOption {
description = "Kubernetes apiserver extra command line options.";
default = "";
@ -222,12 +235,6 @@ in {
type = types.str;
};
machines = mkOption {
description = "Kubernetes controller list of machines to schedule to schedule onto";
default = [];
type = types.listOf types.str;
};
extraOpts = mkOption {
description = "Kubernetes controller extra command line options.";
default = "";
@ -260,6 +267,20 @@ in {
type = types.int;
};
healthz = {
bind = mkOption {
description = "Kubernetes kubelet healthz listening address.";
default = "127.0.0.1";
type = types.str;
};
port = mkOption {
description = "Kubernetes kubelet healthz port.";
default = 10248;
type = types.int;
};
};
hostname = mkOption {
description = "Kubernetes kubelet hostname override";
default = config.networking.hostName;
@ -374,7 +395,6 @@ in {
--etcd-servers=${concatMapStringsSep "," (f: "http://${f}") cfg.etcdServers} \
--insecure-bind-address=${cfg.apiserver.address} \
--insecure-port=${toString cfg.apiserver.port} \
--read-only-port=${toString cfg.apiserver.readOnlyPort} \
--bind-address=${cfg.apiserver.publicAddress} \
--allow-privileged=${if cfg.apiserver.allowPrivileged then "true" else "false"} \
${optionalString (cfg.apiserver.tlsCertFile!="")
@ -383,11 +403,16 @@ in {
"--tls-private-key-file=${cfg.apiserver.tlsPrivateKeyFile}"} \
${optionalString (cfg.apiserver.tokenAuth!=[])
"--token-auth-file=${tokenAuthFile}"} \
${optionalString (cfg.apiserver.clientCaFile!="")
"--client-ca-file=${cfg.apiserver.clientCaFile}"} \
--authorization-mode=${cfg.apiserver.authorizationMode} \
${optionalString (cfg.apiserver.authorizationMode == "ABAC")
"--authorization-policy-file=${authorizationPolicyFile}"} \
--secure-port=${toString cfg.apiserver.securePort} \
--service-cluster-ip-range=${cfg.apiserver.portalNet} \
${optionalString (cfg.apiserver.runtimeConfig!="")
"--runtime-config=${cfg.apiserver.runtimeConfig}"} \
--admission_control=${cfg.apiserver.admissionControl} \
--logtostderr=true \
${optionalString cfg.verbose "--v=6 --log-flush-frequency=1s"} \
${cfg.apiserver.extraOpts}
@ -431,7 +456,6 @@ in {
--address=${cfg.controllerManager.address} \
--port=${toString cfg.controllerManager.port} \
--master=${cfg.controllerManager.master} \
--machines=${concatStringsSep "," cfg.controllerManager.machines} \
--logtostderr=true \
${optionalString cfg.verbose "--v=6 --log-flush-frequency=1s"} \
${cfg.controllerManager.extraOpts}
@ -454,6 +478,8 @@ in {
--register-node=${if cfg.kubelet.registerNode then "true" else "false"} \
--address=${cfg.kubelet.address} \
--port=${toString cfg.kubelet.port} \
--healthz-bind-address=${cfg.kubelet.healthz.bind} \
--healthz-port=${toString cfg.kubelet.healthz.port} \
--hostname-override=${cfg.kubelet.hostname} \
--allow-privileged=${if cfg.kubelet.allowPrivileged then "true" else "false"} \
--root-dir=${cfg.dataDir} \
@ -504,9 +530,6 @@ in {
User = "kubernetes";
};
};
services.skydns.enable = mkDefault true;
services.skydns.domain = mkDefault cfg.kubelet.clusterDomain;
})
(mkIf (any (el: el == "master") cfg.roles) {
@ -524,6 +547,9 @@ in {
(mkIf (any (el: el == "node" || el == "master") cfg.roles) {
services.etcd.enable = mkDefault true;
services.skydns.enable = mkDefault true;
services.skydns.domain = mkDefault cfg.kubelet.clusterDomain;
})
(mkIf (
@ -538,8 +564,10 @@ in {
serviceConfig.Type = "oneshot";
script = ''
mkdir -p /var/run/kubernetes
chown kubernetes /var/run/kubernetes
ln -fs ${pkgs.writeText "kubernetes-dockercfg" cfg.dockerCfg} /var/run/kubernetes/.dockercfg
chown kubernetes /var/lib/kubernetes
rm ${cfg.dataDir}/.dockercfg || true
ln -fs ${pkgs.writeText "kubernetes-dockercfg" cfg.dockerCfg} ${cfg.dataDir}/.dockercfg
'';
};

View File

@ -122,14 +122,6 @@ in {
mkdir -m 0700 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown etcd ${cfg.dataDir}; fi
'';
postStart = ''
until ${pkgs.etcdctl}/bin/etcdctl set /nixos/state 'up'; do
sleep 1;
done
until ${pkgs.etcdctl}/bin/etcdctl get /nixos/state | grep up; do
sleep 1;
done
'';
};
environment.systemPackages = [ pkgs.etcdctl ];

View File

@ -36,7 +36,10 @@ in {
Type = "forking";
Restart = "always";
};
preStart = "rm /var/run/racoon.pid || true";
preStart = ''
rm /var/run/racoon.pid || true
mkdir -p /var/racoon
'';
};
};
}

View File

@ -79,7 +79,7 @@ in {
ETCD_CACERT = cfg.etcd.caCert;
SKYDNS_ADDR = cfg.address;
SKYDNS_DOMAIN = cfg.domain;
SKYDNS_NAMESERVER = concatStringsSep "," cfg.nameservers;
SKYDNS_NAMESERVERS = concatStringsSep "," cfg.nameservers;
};
serviceConfig = {
ExecStart = "${cfg.package}/bin/skydns";

View File

@ -1,15 +1,28 @@
{ stdenv, fetchurl, cairo, colord, glib, gtk3, intltool, itstool, libxml2
, makeWrapper, pkgconfig, saneBackends, systemd, vala }:
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb, libxml2
, makeWrapper, packagekit, pkgconfig, saneBackends, systemd, vala }:
let version = "3.17.4"; in
let version = "3.17.90"; in
stdenv.mkDerivation rec {
name = "simple-scan-${version}";
src = fetchurl {
sha256 = "1pslbv45g01g039zj2b01k08f763kkhzqw8wwz7yh27m7bjllnx6";
sha256 = "0xc3ln97dgvxrwy2qn82k9qvsr5kxksms4igzkivya3xpq2kx85c";
url = "https://launchpad.net/simple-scan/3.17/${version}/+download/${name}.tar.xz";
};
buildInputs = [ cairo colord glib gusb gtk3 libusb libxml2 packagekit
saneBackends systemd vala ];
nativeBuildInputs = [ intltool itstool makeWrapper pkgconfig ];
enableParallelBuilding = true;
doCheck = true;
preFixup = ''
wrapProgram "$out/bin/simple-scan" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
description = "Simple scanning utility";
longDescription = ''
@ -25,17 +38,4 @@ stdenv.mkDerivation rec {
platforms = with platforms; linux;
maintainers = with maintainers; [ nckx ];
};
buildInputs = [ cairo colord glib gtk3 libxml2
saneBackends systemd vala ];
nativeBuildInputs = [ intltool itstool makeWrapper pkgconfig ];
enableParallelBuilding = true;
doCheck = true;
preFixup = ''
wrapProgram "$out/bin/simple-scan" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
}

View File

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, which, go, makeWrapper, iptables, rsync, utillinux, coreutils }:
{ stdenv, fetchFromGitHub, which, go, makeWrapper, iptables, rsync, utillinux, coreutils, e2fsprogs, procps-ng }:
stdenv.mkDerivation rec {
name = "kubernetes-${version}";
version = "0.18.0";
version = "1.0.3";
src = fetchFromGitHub {
owner = "GoogleCloudPlatform";
repo = "kubernetes";
rev = "v${version}";
sha256 = "1adbd5n2fs1278f6kz6pd23813w2k4pgcxjl21idflh8jafxsyj7";
sha256 = "12wqw9agiz07wlw1sd0n41fn6xf74zn5sv37hslfa77w2d4ri5yb";
};
buildInputs = [ makeWrapper which go iptables rsync ];
@ -26,14 +26,23 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
mkdir -p "$out/bin"
cp _output/local/go/bin/* "$out/bin/"
mkdir -p "$out/bin" "$out"/libexec/kubernetes/cluster
cp _output/local/go/bin/{kube*,hyperkube} "$out/bin/"
cp cluster/addons/dns/kube2sky/kube2sky "$out/bin/"
cp cluster/saltbase/salt/helpers/safe_format_and_mount "$out/libexec/kubernetes"
cp -R hack "$out/libexec/kubernetes"
cp cluster/update-storage-objects.sh "$out/libexec/kubernetes/cluster"
makeWrapper "$out"/libexec/kubernetes/cluster/update-storage-objects.sh "$out"/bin/kube-update-storage-objects \
--prefix KUBE_BIN : "$out/bin"
'';
preFixup = ''
wrapProgram "$out/bin/kube-proxy" --prefix PATH : "${iptables}/bin"
wrapProgram "$out/bin/kubelet" --prefix PATH : "${utillinux}/bin"
wrapProgram "$out/bin/kubelet" --prefix PATH : "${utillinux}/bin:${procps-ng}/bin"
chmod +x "$out/libexec/kubernetes/safe_format_and_mount"
wrapProgram "$out/libexec/kubernetes/safe_format_and_mount" --prefix PATH : "${e2fsprogs}/bin:${utillinux}/bin"
substituteInPlace "$out"/libexec/kubernetes/cluster/update-storage-objects.sh \
--replace KUBE_OUTPUT_HOSTBIN KUBE_BIN
'';
meta = with stdenv.lib; {

View File

@ -1,11 +1,10 @@
{ stdenv, lib, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc, perl, goPackages
{ stdenv, lib, fetchurl, tzdata, iana_etc, libcCross
, pkgconfig
, pcre
, Security }:
let
loader386 = "${glibc}/lib/ld-linux.so.2";
loaderAmd64 = "${glibc}/lib/ld-linux-x86-64.so.2";
loaderArm = "${glibc}/lib/ld-linux.so.3";
libc = if stdenv ? "cross" then libcCross else stdenv.cc.libc;
in
stdenv.mkDerivation rec {
@ -17,10 +16,8 @@ stdenv.mkDerivation rec {
sha256 = "3e5d07bc5214a1ffe187cf6406c5b5a80ee44f12f6bca97a5463db0afee2f6ac";
};
# perl is used for testing go vet
buildInputs = [ bison bash makeWrapper perl ]
++ lib.optionals stdenv.isLinux [ glibc ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ pcre ];
propagatedBuildInputs = lib.optional stdenv.isDarwin Security;
# I'm not sure what go wants from its 'src', but the go installation manual
@ -51,14 +48,18 @@ stdenv.mkDerivation rec {
sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/areturn' src/os/os_test.go
sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/net/lookup_unix.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/net/lookup_unix.go
'' + lib.optionalString stdenv.isLinux ''
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
sed -i 's,/lib/ld-linux.so.3,${loaderArm},' src/cmd/5l/asm.c
sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
# Find the loader dynamically
LOADER="$(find ${libc}/lib -name ld-linux\* | head -n 1)"
# Replace references to the loader
find src/cmd -name asm.c -exec sed -i "s,/lib/ld-linux.*\.so\.[0-9],$LOADER," {} \;
'' + lib.optionalString stdenv.isDarwin ''
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go

View File

@ -0,0 +1,118 @@
{ stdenv, lib, fetchurl, tzdata, iana_etc, go_1_4, runCommand
, perl, which, pkgconfig, patch
, pcre
, Security }:
let
goBootstrap = runCommand "go-bootstrap" {} ''
mkdir $out
cp -rf ${go_1_4}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
in
stdenv.mkDerivation rec {
name = "go-${version}";
version = "1.5";
src = fetchurl {
url = "https://github.com/golang/go/archive/go${version}.tar.gz";
sha256 = "03g3w6af74xggqlgwf5xriqzl9a0q17sp0qbyq8qs55qls07r81p";
};
# perl is used for testing go vet
nativeBuildInputs = [ perl which pkgconfig patch ];
buildInputs = [ pcre ];
propagatedBuildInputs = lib.optional stdenv.isDarwin Security;
# I'm not sure what go wants from its 'src', but the go installation manual
# describes an installation keeping the src.
preUnpack = ''
mkdir -p $out/share
cd $out/share
'';
prePatch = ''
# Ensure that the source directory is named go
cd ..
if [ ! -d go ]; then
mv * go
fi
cd go
patchShebangs ./ # replace /bin/bash
# Disabling the 'os/http/net' tests (they want files not available in
# chroot builds)
rm src/net/{listen_test.go,parse_test.go,port_test.go}
rm src/syscall/exec_linux_test.go
# !!! substituteInPlace does not seems to be effective.
# The os test wants to read files in an existing path. Just don't let it be /usr/bin.
sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Disable the unix socket test
sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/areturn' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/net/lookup_unix.go
'' + lib.optionalString stdenv.isLinux ''
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
'' + lib.optionalString stdenv.isDarwin ''
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
sed -i '/TestRead0/areturn' src/os/os_test.go
sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
'';
patches = [
./cacert-1.5.patch
./remove-tools-1.5.patch
];
GOOS = if stdenv.isDarwin then "darwin" else "linux";
GOARCH = if stdenv.isDarwin then "amd64"
else if stdenv.system == "i686-linux" then "386"
else if stdenv.system == "x86_64-linux" then "amd64"
else if stdenv.isArm then "arm"
else throw "Unsupported system";
GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
GO386 = 387; # from Arch: don't assume sse2 on i686
CGO_ENABLED = 1;
GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
# The go build actually checks for CC=*/clang and does something different, so we don't
# just want the generic `cc` here.
CC = if stdenv.isDarwin then "clang" else "cc";
installPhase = ''
mkdir -p "$out/bin"
export GOROOT="$(pwd)/"
export GOBIN="$out/bin"
export PATH="$GOBIN:$PATH"
cd ./src
echo Building
./all.bash
'';
setupHook = ./setup-hook.sh;
meta = with stdenv.lib; {
branch = "1.5";
homepage = http://golang.org/;
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = with maintainers; [ cstrahan wkennington ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@ -0,0 +1,8 @@
--- a/src/crypto/x509/root_linux.go 2015-08-19 23:06:11.115133174 +0200
+++ b/src/crypto/x509/root_linux.go 2015-08-19 23:07:04.238507161 +0200
@@ -10,4 +10,5 @@
"/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL
"/etc/ssl/ca-bundle.pem", // OpenSUSE
"/etc/pki/tls/cacert.pem", // OpenELEC
+ "/etc/ssl/certs/ca-bundle.crt", // NixOS
}

View File

@ -0,0 +1,60 @@
diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go
index 61e3d8d..f8475f4 100644
--- a/src/cmd/go/pkg.go
+++ b/src/cmd/go/pkg.go
@@ -665,7 +665,7 @@ var goTools = map[string]targetDir{
"cmd/asm": toTool,
"cmd/compile": toTool,
"cmd/cgo": toTool,
- "cmd/cover": toTool,
+ "nixos.org/x/tools/cmd/cover": toTool,
"cmd/dist": toTool,
"cmd/doc": toTool,
"cmd/fix": toTool,
@@ -676,9 +676,9 @@ var goTools = map[string]targetDir{
"cmd/pack": toTool,
"cmd/pprof": toTool,
"cmd/trace": toTool,
- "cmd/vet": toTool,
+ "nixos.org/x/tools/cmd/vet": toTool,
"cmd/yacc": toTool,
- "golang.org/x/tools/cmd/godoc": toBin,
+ "nixos.org/x/tools/cmd/godoc": toBin,
"code.google.com/p/go.tools/cmd/cover": stalePath,
"code.google.com/p/go.tools/cmd/godoc": stalePath,
"code.google.com/p/go.tools/cmd/vet": stalePath,
diff --git a/src/go/build/build.go b/src/go/build/build.go
index 496fe11..8c81dbd 100644
--- a/src/go/build/build.go
+++ b/src/go/build/build.go
@@ -1388,7 +1388,7 @@ func init() {
}
// ToolDir is the directory containing build tools.
-var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
+var ToolDir = runtime.GOTOOLDIR()
// IsLocalImport reports whether the import path is
// a local import path, like ".", "..", "./foo", or "../foo".
diff --git a/src/runtime/extern.go b/src/runtime/extern.go
index d346362..fb22b6e 100644
--- a/src/runtime/extern.go
+++ b/src/runtime/extern.go
@@ -194,6 +194,17 @@ func GOROOT() string {
return defaultGoroot
}
+// GOTOOLDIR returns the root of the Go tree.
+// It uses the GOTOOLDIR environment variable, if set,
+// or else the root used during the Go build.
+func GOTOOLDIR() string {
+ s := gogetenv("GOTOOLDIR")
+ if s != "" {
+ return s
+ }
+ return GOROOT() + "/pkg/tool/" + GOOS + "_" + GOARCH
+}
+
// Version returns the Go tree's version string.
// It is either the commit hash and date at the time of the build or,
// when possible, a release tag like "go1.3".

View File

@ -1,9 +1,9 @@
import ./jdk-linux-base.nix {
productVersion = "8";
patchVersion = "51";
patchVersion = "60";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
sha256_i686 = "0awzgs090n2cj6a5mlla0pgxk0y6aslhm6024pqrnxgai1fkmm1z";
sha256_x86_64 = "1wggrcr2gjwkv5bawgcw86h6rhyzw0jphxm1sfwcvhjirh99056p";
sha256_i686 = "e6a36b458351ed35bd7943739ba93d9a246e08a86433e148ff68b1b40d74c2e5";
sha256_x86_64 = "ebe51554d2f6c617a4ae8fc9a8742276e65af01bd273e96848b262b3c05424e5";
jceName = "jce_policy-8.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";

View File

@ -0,0 +1,220 @@
{stdenv, fetchurl, unzip, autoreconfHook, libtool, makeWrapper, cups, ghostscript, callPackage_i686 }:
let
i686_NIX_GCC = callPackage_i686 ({gcc}: gcc) {};
i686_libxml2 = callPackage_i686 ({libxml2}: libxml2) {};
i686_glibc = callPackage_i686 ({glibc}: glibc) {};
src_canon = fetchurl {
url = "http://files.canon-europe.com/files/soft45378/software/o147jen_linuxufrII_0290.zip";
sha256 = "1qpdmaaw42gm5fi21rp4lf05skffkq42ka5c8xkw8rckzb13sy9j";
};
in
stdenv.mkDerivation rec {
name = "canon-cups-ufr2-2.90";
src = src_canon;
phases = [ "unpackPhase" "installPhase" ];
postUnpack = ''
(cd $sourceRoot; tar -xzf Sources/cndrvcups-common-2.90-1.tar.gz)
(cd $sourceRoot; tar -xzf Sources/cndrvcups-lb-2.90-1.tar.gz)
'';
nativeBuildInputs = [ makeWrapper unzip autoreconfHook libtool ];
buildInputs = [ cups ];
installPhase = ''
##
## cndrvcups-common buildPhase
##
( cd cndrvcups-common-2.90/buftool
autoreconf -fi
./autogen.sh --prefix=$out --enable-progpath=$out/bin --libdir=$out/lib --disable-shared --enable-static
make
)
( cd cndrvcups-common-2.90/backend
./autogen.sh --prefix=$out --libdir=$out/lib
make
)
( cd cndrvcups-common-2.90/c3plmod_ipc
make
)
##
## cndrvcups-common installPhase
##
( cd cndrvcups-common-2.90/buftool
make install
)
( cd cndrvcups-common-2.90/backend
make install
)
( cd cndrvcups-common-2.90/c3plmod_ipc
make install DESTDIR=$out/lib
)
( cd cndrvcups-common-2.90/libs
chmod 755 *
mkdir -p $out/lib32
mkdir -p $out/bin
cp libcaiowrap.so.1.0.0 $out/lib32
cp libcaiousb.so.1.0.0 $out/lib32
cp libc3pl.so.0.0.1 $out/lib32
cp libcaepcm.so.1.0 $out/lib32
cp libColorGear.so.0.0.0 $out/lib32
cp libColorGearC.so.0.0.0 $out/lib32
cp libcanon_slim.so.1.0.0 $out/lib32
cp c3pldrv $out/bin
)
(cd cndrvcups-common-2.90/data
chmod 644 *.ICC
mkdir -p $out/share/caepcm
cp *.ICC $out/share/caepcm
)
(cd $out/lib32
ln -sf libc3pl.so.0.0.1 libc3pl.so.0
ln -sf libc3pl.so.0.0.1 libc3pl.so
ln -sf libcaepcm.so.1.0 libcaepcm.so.1
ln -sf libcaepcm.so.1.0 libcaepcm.so
ln -sf libcaiowrap.so.1.0.0 libcaiowrap.so.1
ln -sf libcaiowrap.so.1.0.0 libcaiowrap.so
ln -sf libcaiousb.so.1.0.0 libcaiousb.so.1
ln -sf libcaiousb.so.1.0.0 libcaiousb.so
ln -sf libcanon_slim.so.1.0.0 libcanon_slim.so.1
ln -sf libcanon_slim.so.1.0.0 libcanon_slim.so
ln -sf libColorGear.so.0.0.0 libColorGear.so.0
ln -sf libColorGear.so.0.0.0 libColorGear.so
ln -sf libColorGearC.so.0.0.0 libColorGearC.so.0
ln -sf libColorGearC.so.0.0.0 libColorGearC.so
)
(cd $out/lib
ln -sf libcanonc3pl.so.1.0.0 libcanonc3pl.so
ln -sf libcanonc3pl.so.1.0.0 libcanonc3pl.so.1
)
patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGear.so.0.0.0
patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGearC.so.0.0.0
patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32" $out/bin/c3pldrv
# c3pldrv is programmed with fixed paths that point to "/usr/{bin,lib.share}/..."
# preload32 wrappes all necessary function calls to redirect the fixed paths
# into $out.
mkdir -p $out/libexec
preload32=$out/libexec/libpreload32.so
${i686_NIX_GCC}/bin/gcc -shared ${./preload.c} -o $preload32 -ldl -DOUT=\"$out\" -fPIC
wrapProgram "$out/bin/c3pldrv" \
--set PRELOAD_DEBUG 1 \
--set LD_PRELOAD $preload32 \
--prefix LD_LIBRARY_PATH : "$out/lib32"
##
## cndrvcups-lb buildPhase
##
( cd cndrvcups-lb-2.90/ppd
./autogen.sh --prefix=$out
make
)
( cd cndrvcups-lb-2.90/pstoufr2cpca
CPPFLAGS="-I$out/include" LDFLAGS=" -L$out/lib" ./autogen.sh --prefix=$out --enable-progpath=$out/bin
make
)
( cd cndrvcups-lb-2.90/cpca
CPPFLAGS="-I$out/include" LDFLAGS=" -L$out/lib" ./autogen.sh --prefix=$out --enable-progpath=$out/bin --enable-static
make
)
##
## cndrvcups-lb installPhase
##
( cd cndrvcups-lb-2.90/ppd
make install
)
( cd cndrvcups-lb-2.90/pstoufr2cpca
make install
)
( cd cndrvcups-lb-2.90/cpca
make install
)
( cd cndrvcups-lb-2.90/libs
chmod 755 *
mkdir -p $out/lib32
mkdir -p $out/bin
cp libcanonufr2.la $out/lib32
cp libcanonufr2.so.1.0.0 $out/lib32
cp libufr2filter.so.1.0.0 $out/lib32
cp libEnoJBIG.so.1.0.0 $out/lib32
cp libEnoJPEG.so.1.0.0 $out/lib32
cp libcaiocnpkbidi.so.1.0.0 $out/lib32
cp libcnlbcm.so.1.0 $out/lib32
cp cnpkmoduleufr2 $out/bin #maybe needs setuid 4755
cp cnpkbidi $out/bin
)
( cd $out/lib32
ln -sf libcanonufr2.so.1.0.0 libcanonufr2.so
ln -sf libcanonufr2.so.1.0.0 libcanonufr2.so.1
ln -sf libufr2filter.so.1.0.0 libufr2filter.so
ln -sf libufr2filter.so.1.0.0 libufr2filter.so.1
ln -sf libEnoJBIG.so.1.0.0 libEnoJBIG.so
ln -sf libEnoJBIG.so.1.0.0 libEnoJBIG.so.1
ln -sf libEnoJPEG.so.1.0.0 libEnoJPEG.so
ln -sf libEnoJPEG.so.1.0.0 libEnoJPEG.so.1
ln -sf libcaiocnpkbidi.so.1.0.0 libcaiocnpkbidi.so
ln -sf libcaiocnpkbidi.so.1.0.0 libcaiocnpkbidi.so.1
ln -sf libcnlbcm.so.1.0 libcnlbcm.so.1
ln -sf libcnlbcm.so.1.0 libcnlbcm.so
)
( cd cndrvcups-lb-2.90
chmod 644 data/CnLB*
chmod 644 libs/cnpkbidi_info*
chmod 644 libs/ThLB*
mkdir -p $out/share/caepcm
mkdir -p $out/share/cnpkbidi
mkdir -p $out/share/ufr2filter
cp data/CnLB* $out/share/caepcm
cp libs/cnpkbidi_info* $out/share/cnpkbidi
cp libs/ThLB* $out/share/ufr2filter
)
patchelf --set-rpath "$out/lib32:${i686_libxml2}/lib" $out/lib32/libcanonufr2.so.1.0.0
patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32" $out/bin/cnpkmoduleufr2
patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32:${i686_libxml2}/lib" $out/bin/cnpkbidi
makeWrapper "${ghostscript}/bin/gs" "$out/bin/gs" \
--prefix LD_LIBRARY_PATH ":" "$out/lib" \
--prefix PATH ":" "$out/bin"
'';
meta = {
description = "CUPS Linux drivers for Canon printers";
homepage = "http://www.canon.com/";
license = stdenv.lib.licenses.unfree;
};
}

View File

@ -0,0 +1,81 @@
/*
* LD_PRELOAD trick to make c3pldrv handle the absolute path to /usr/{bin,lib,share)}.
* As c3pldrv is a 32 bit executable, /lib will be rewritten to /lib32.
*
* Usage:
* gcc -shared -fPIC -DOUT="$out" preload.c -o preload.so -ldl
* LD_PRELOAD=$PWD/preload.so ./c3pldrv
*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <dlfcn.h>
#include <limits.h>
#ifndef OUT
#error Missing OUT define - path to the installation directory.
#endif
typedef void *(*dlopen_func_t)(const char *filename, int flag);
typedef int (*open_func_t)(const char *pathname, int flags, ...);
typedef int (*execv_func_t)(const char *path, char *const argv[]);
void *dlopen(const char *filename, int flag)
{
dlopen_func_t orig_dlopen;
const char *new_filename;
char buffer[PATH_MAX];
orig_dlopen = (dlopen_func_t)dlsym(RTLD_NEXT, "dlopen");
new_filename = filename;
if (strncmp("/usr/lib", filename, 8) == 0) {
snprintf(buffer, PATH_MAX, OUT "/lib32%s", filename+8);
buffer[PATH_MAX-1] = '\0';
new_filename = buffer;
}
return orig_dlopen(new_filename, flag);
}
int open(const char *pathname, int flags, ...)
{
open_func_t orig_open;
const char *new_pathname;
char buffer[PATH_MAX];
orig_open = (open_func_t)dlsym(RTLD_NEXT, "open");
new_pathname = pathname;
if (strncmp("/usr/share", pathname, 10) == 0) {
snprintf(buffer, PATH_MAX, OUT "%s", pathname+4);
buffer[PATH_MAX-1] = '\0';
new_pathname = buffer;
}
return orig_open(new_pathname, flags);
}
int execv(const char *path, char *const argv[])
{
execv_func_t orig_execv;
const char *new_path;
char buffer[PATH_MAX];
orig_execv = (execv_func_t)dlsym(RTLD_NEXT, "execv");
new_path = path;
if (strncmp("/usr/bin", path, 8) == 0) {
snprintf(buffer, PATH_MAX, OUT "%s", path+4);
buffer[PATH_MAX-1] = '\0';
new_path = buffer;
}
return orig_execv(new_path, argv);
}

View File

@ -131,6 +131,8 @@ let
else true;
in
assert licenseAllowed attrs;
lib.addPassthru (derivation (
(removeAttrs attrs
["meta" "passthru" "crossAttrs" "pos"
@ -150,7 +152,7 @@ let
computedPropagatedImpureHostDeps = lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (propagatedBuildInputs ++ propagatedNativeBuildInputs));
in
{
builder = assert licenseAllowed attrs; attrs.realBuilder or shell;
builder = attrs.realBuilder or shell;
args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
stdenv = result;
system = result.system;

View File

@ -1,14 +1,18 @@
{stdenv, fetchurl, autoconf, automake, pkgconfig, curl, openssl, libxml2, fuse}:
stdenv.mkDerivation {
name = "s3fs-fuse-1.78";
name = "s3fs-fuse-1.79";
src = fetchurl {
url = https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.78.tar.gz;
sha256 = "1xcp0bqa4a2ynjn5phb1pj70wm322czhqp4qcb27d5jd545b1h1n";
url = https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.79.tar.gz;
sha256 = "0rmzkngzq040g020pv75qqx3jy34vdxzqvxz29k6q8yfb3wpkhb1";
};
preConfigure = "./autogen.sh";
buildInputs = [ autoconf automake pkgconfig curl openssl libxml2 fuse ];
postInstall = ''
ln -s $out/bin/s3fs $out/bin/mount.s3fs
'';
meta = with stdenv.lib; {
description = "Mount an S3 bucket as filesystem through FUSE";
license = licenses.gpl2;

View File

@ -0,0 +1,26 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libpcap, libjpeg, libungif, libpng, giflib, glib, gtk2, cairo, pango, gdk_pixbuf, atk, pkgconfig }:
with lib;
stdenv.mkDerivation rec {
name = "driftnet-${stdenv.lib.strings.substring 0 7 rev}";
rev = "8d47fd563a06122d4a6f9b9b9d27ba3d635148c0";
buildInputs = [ autoconf automake pkgconfig libpcap libjpeg libungif libpng giflib glib gtk2 glib cairo pango gdk_pixbuf atk ];
preConfigure = "autoreconf -fi";
src = fetchFromGitHub {
inherit rev;
owner = "deiv";
repo = "driftnet";
sha256 = "1i9fqbsfrhvr36r17v3ydr1bqsszns8gyjbvlfqbdd4l5l5n6amg";
};
meta = {
description = "Driftnet watches network traffic, and picks out and displays JPEG and GIF images for display.";
homepage = https://github.com/deiv/driftnet;
maintainers = with maintainers; [ offline ];
platforms = with platforms; linux;
};
}

View File

@ -2,7 +2,7 @@
, libnetfilter_conntrack, libnl, libpcap, libsodium, liburcu, ncurses, perl
, pkgconfig, zlib }:
let version = "0.5.9-80-g3384ee7"; in
let version = "0.5.9-85-g71c28ef"; in
stdenv.mkDerivation {
name = "netsniff-ng-${version}";
@ -10,8 +10,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub rec {
repo = "netsniff-ng";
owner = repo;
rev = "3384ee7119222a6230c983dbdcbaf2ac2d6f92fb";
sha256 = "1j0g7sdf5ikr2bwd2qdwd1dpmknwaz55x3cgc8yiw39xp69hm7na";
rev = "71c28eff00a8a8896c45fa20330b623d265ae5c7";
sha256 = "1d0k7dydy57fn2qx5mwwx5wplbgm90y9chc5q15m8phsh0nm13qi";
};
buildInputs = [ bison flex geoip geolite-legacy libcli libnet libnl

View File

@ -0,0 +1,73 @@
{ stdenv, fetchurl, intltool, glib, pkgconfig, polkit, python3, sqlite }:
let version = "1.0.7"; in
stdenv.mkDerivation {
name = "packagekit-${version}";
src = fetchurl {
sha256 = "0klwr0y3a72xpz6bwv4afbk3vvx5r1av5idhz3mx4p9ssnscb1mi";
url = "https://www.freedesktop.org/software/PackageKit/releases/PackageKit-${version}.tar.xz";
};
buildInputs = [ glib polkit python3 ];
propagatedBuildInputs = [ sqlite ];
nativeBuildInputs = [ intltool pkgconfig ];
configureFlags = ''
--disable-static
--disable-python3
--disable-networkmanager
--disable-connman
--disable-systemd
--disable-bash-completion
--disable-browser-plugin
--disable-gstreamer-plugin
--disable-gtk-module
--disable-command-not-found
--disable-cron
--disable-daemon-tests
--disable-alpm
--disable-aptcc
--enable-dummy
--disable-entropy
--disable-hif
--disable-pisi
--disable-poldek
--disable-portage
--disable-ports
--disable-katja
--disable-urmpi
--disable-yum
--disable-zypp
'';
enableParallelBuilding = true;
preInstall = ''
# Don't install anything to e.g. $out/var/cache:
for dir in src data; do
substituteInPlace $dir/Makefile \
--replace " install-data-hook" "" \
--replace " install-databaseDATA" ""
done
'';
meta = with stdenv.lib; {
inherit version;
description = "System to facilitate installing and updating packages";
longDescription = ''
PackageKit is a system designed to make installing and updating software
on your computer easier. The primary design goal is to unify all the
software graphical tools used in different distributions, and use some of
the latest technology like PolicyKit. The actual nuts-and-bolts distro
tool (dnf, apt, etc) is used by PackageKit using compiled and scripted
helpers. PackageKit isn't meant to replace these tools, instead providing
a common set of abstractions that can be used by standard GUI and text
mode package managers.
'';
homepage = http://www.packagekit.org/;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
};
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, attr, keyutils }:
let version = "0.04.14"; in
let version = "0.04.15"; in
stdenv.mkDerivation rec {
name = "stress-ng-${version}";
src = fetchurl {
sha256 = "17lgsxg2k7w12i1wmzq4zqavkicikzkgz2h7mzl8lrk8c85mwf3m";
sha256 = "1jazcfviqx3pyhv2jzsp6y37ndsj1smfk6jacpxg9vrg5k3cm3wq";
url = "http://kernel.ubuntu.com/~cking/tarballs/stress-ng/${name}.tar.gz";
};

View File

@ -1346,6 +1346,8 @@ let
drive = callPackage ../applications/networking/drive { };
driftnet = callPackage ../tools/networking/driftnet {};
dropbear = callPackage ../tools/networking/dropbear { };
dtach = callPackage ../tools/misc/dtach { };
@ -2560,6 +2562,8 @@ let
p7zip = callPackage ../tools/archivers/p7zip { };
packagekit = callPackage ../tools/package-management/packagekit { };
pal = callPackage ../tools/misc/pal { };
pandoc = haskell.lib.overrideCabal haskellPackages.pandoc (drv: {
@ -4050,7 +4054,11 @@ let
inherit (darwin.apple_sdk.frameworks) Security;
};
go = go_1_4;
go_1_5 = callPackage ../development/compilers/go/1.5.nix {
inherit (darwin.apple_sdk.frameworks) Security;
};
go = go_1_5;
go-repo-root = callPackage ../development/tools/misc/go-repo-root { };
@ -8633,7 +8641,17 @@ let
overrides = (config.goPackageOverrides or (p: {})) pkgs;
});
goPackages = go14Packages;
go15Packages = recurseIntoAttrs (callPackage ./go-packages.nix {
go = go_1_5;
buildGoPackage = import ../development/go-modules/generic {
go = go_1_5;
govers = go15Packages.govers;
inherit lib;
};
overrides = (config.goPackageOverrides or (p: {})) pkgs;
});
goPackages = go15Packages;
### DEVELOPMENT / LISP MODULES
@ -11042,9 +11060,7 @@ let
dmtx-utils = callPackage (import ../tools/graphics/dmtx-utils) {
};
docker = callPackage ../applications/virtualization/docker {
go = go_1_4;
};
docker = callPackage ../applications/virtualization/docker { };
doodle = callPackage ../applications/search/doodle { };
@ -12449,7 +12465,7 @@ let
inherit (xorg) libXpm;
};
pond = callPackage ../applications/networking/pond { goPackages = go14Packages; };
pond = callPackage ../applications/networking/pond { };
ponymix = callPackage ../applications/audio/ponymix { };
@ -14943,6 +14959,8 @@ let
sails = callPackage ../misc/sails { };
canon-cups-ufr2 = callPackage ../misc/cups/drivers/canon { };
samsungUnifiedLinuxDriver = import ../misc/cups/drivers/samsung {
inherit fetchurl stdenv;
inherit cups ghostscript glibc patchelf;

View File

@ -2994,11 +2994,11 @@ let
};
docker = buildPythonPackage rec {
name = "docker-py-1.1.0";
name = "docker-py-1.3.1";
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz";
md5 = "b44f34530a21ed1129887f9a8b01ecec";
md5 = "07a5f41fd3f8cc72d05deed628700e99";
};
propagatedBuildInputs = with self; [ six requests websocket_client ];
@ -3014,13 +3014,15 @@ let
};
dockerpty = buildPythonPackage rec {
name = "dockerpty-0.3.2";
name = "dockerpty-0.3.4";
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/d/dockerpty/${name}.tar.gz";
md5 = "1f97b24d2f4b2c345f176f91655002dd";
md5 = "92fb66d28aa19bf5268e7e3935670e5d";
};
propagatedBuildInputs = with self; [ six ];
meta = {
description = "Functionality needed to operate the pseudo-tty (PTY) allocated to a docker container";
homepage = https://github.com/d11wtq/dockerpty;
@ -5663,32 +5665,22 @@ let
};
docker_compose = buildPythonPackage rec {
name = "docker-compose-1.2.0rc2";
version = "1.4.0";
name = "docker-compose-${version}";
namePrefix = "";
disabled = isPy3k || isPyPy;
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/d/docker-compose/${name}.tar.gz";
md5 = "311ec5023e51097ca3acbf37fac062bd";
md5 = "a93e801ebe829c2f869cb23d0b606272";
};
propagatedBuildInputs = with self; [
six requests pyyaml texttable docopt docker
six requests pyyaml texttable docopt docker dockerpty websocket_client
(requests2.override {
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/r/requests/requests-2.5.3.tar.gz";
md5 = "23bf4fcc89ea8d353eb5353bb4a475b1";
};
})
(dockerpty.override {
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/d/dockerpty/dockerpty-0.3.2.tar.gz";
md5 = "1f97b24d2f4b2c345f176f91655002dd";
};
})
(websocket_client.override {
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/w/websocket-client/websocket-client-0.11.0.tar.gz";
md5 = "fcffbb5ac10941d9ace416d14d1e3ec8";
url = "https://pypi.python.org/packages/source/r/requests/requests-2.6.1.tar.gz";
md5 = "da6e487f89e6a531699b7fd97ff182af";
};
})
];
@ -15691,11 +15683,11 @@ let
websocket_client = buildPythonPackage rec {
name = "websocket-client-0.17.0";
name = "websocket_client-0.32.0";
src = pkgs.fetchurl {
url = "https://pypi.python.org/packages/source/w/websocket-client/${name}.tar.gz";
md5 = "c86591719085eaf4a01c2275e0c834fc";
md5 = "b07a897511a3c585251fe2ea85a9d9d9";
};
propagatedBuildInputs = with self; [ six backports_ssl_match_hostname_3_4_0_2 unittest2 argparse ];