Merge master into staging-next

This commit is contained in:
Frederik Rietdijk 2019-04-18 08:25:25 +02:00
commit 9d87ccabce
136 changed files with 5780 additions and 2599 deletions

View file

@ -30,9 +30,12 @@ rec {
# nix-repl> converge (x: x / 2) 16
# 0
converge = f: x:
if (f x) == x
then x
else converge f (f x);
let
x' = f x;
in
if x' == x
then x
else converge f x';
# Modify the contents of an explicitly recursive attribute set in a way that
# honors `self`-references. This is accomplished with a function

View file

@ -258,7 +258,6 @@ rec {
name = "armeabi-v7a";
gcc = {
arch = "armv7-a";
float = "hard";
float-abi = "softfp";
fpu = "vfpv3-d16";
};

View file

@ -63,18 +63,49 @@ in
};
enable = mkEnableOption "Whether to enable Kubernetes addon manager.";
kubeconfig = top.lib.mkKubeConfigOptions "Kubernetes addon manager";
bootstrapAddonsKubeconfig = top.lib.mkKubeConfigOptions "Kubernetes addon manager bootstrap";
};
###### implementation
config = mkIf cfg.enable {
config = let
addonManagerPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
];
bootstrapAddonsPaths = filter (a: a != null) [
cfg.bootstrapAddonsKubeconfig.caFile
cfg.bootstrapAddonsKubeconfig.certFile
cfg.bootstrapAddonsKubeconfig.keyFile
];
in mkIf cfg.enable {
environment.etc."kubernetes/addons".source = "${addons}/";
#TODO: Get rid of kube-addon-manager in the future for the following reasons
# - it is basically just a shell script wrapped around kubectl
# - it assumes that it is clusterAdmin or can gain clusterAdmin rights through serviceAccount
# - it is designed to be used with k8s system components only
# - it would be better with a more Nix-oriented way of managing addons
systemd.services.kube-addon-manager = {
description = "Kubernetes addon manager";
wantedBy = [ "kubernetes.target" ];
after = [ "kube-apiserver.service" ];
environment.ADDON_PATH = "/etc/kubernetes/addons/";
path = [ pkgs.gawk ];
after = [ "kube-node-online.target" ];
before = [ "kubernetes.target" ];
environment = {
ADDON_PATH = "/etc/kubernetes/addons/";
KUBECONFIG = top.lib.mkKubeConfig "kube-addon-manager" cfg.kubeconfig;
};
path = with pkgs; [ gawk kubectl ];
preStart = ''
until kubectl -n kube-system get serviceaccounts/default 2>/dev/null; do
echo kubectl -n kube-system get serviceaccounts/default: exit status $?
sleep 2
done
'';
serviceConfig = {
Slice = "kubernetes.slice";
ExecStart = "${top.package}/bin/kube-addons";
@ -84,8 +115,52 @@ in
Restart = "on-failure";
RestartSec = 10;
};
unitConfig.ConditionPathExists = addonManagerPaths;
};
systemd.paths.kube-addon-manager = {
wantedBy = [ "kube-addon-manager.service" ];
pathConfig = {
PathExists = addonManagerPaths;
PathChanged = addonManagerPaths;
};
};
services.kubernetes.addonManager.kubeconfig.server = mkDefault top.apiserverAddress;
systemd.services.kube-addon-manager-bootstrap = mkIf (top.apiserver.enable && top.addonManager.bootstrapAddons != {}) {
wantedBy = [ "kube-control-plane-online.target" ];
after = [ "kube-apiserver.service" ];
before = [ "kube-control-plane-online.target" ];
path = [ pkgs.kubectl ];
environment = {
KUBECONFIG = top.lib.mkKubeConfig "kube-addon-manager-bootstrap" cfg.bootstrapAddonsKubeconfig;
};
preStart = with pkgs; let
files = mapAttrsToList (n: v: writeText "${n}.json" (builtins.toJSON v))
cfg.bootstrapAddons;
in ''
until kubectl auth can-i '*' '*' -q 2>/dev/null; do
echo kubectl auth can-i '*' '*': exit status $?
sleep 2
done
kubectl apply -f ${concatStringsSep " \\\n -f " files}
'';
script = "echo Ok";
unitConfig.ConditionPathExists = bootstrapAddonsPaths;
};
systemd.paths.kube-addon-manager-bootstrap = {
wantedBy = [ "kube-addon-manager-bootstrap.service" ];
pathConfig = {
PathExists = bootstrapAddonsPaths;
PathChanged = bootstrapAddonsPaths;
};
};
services.kubernetes.addonManager.bootstrapAddonsKubeconfig.server = mkDefault top.apiserverAddress;
services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled
(let
name = system:kube-addon-manager;

View file

@ -169,6 +169,23 @@ in {
};
};
kubernetes-dashboard-cm = {
apiVersion = "v1";
kind = "ConfigMap";
metadata = {
labels = {
k8s-app = "kubernetes-dashboard";
# Allows editing resource and makes sure it is created first.
"addonmanager.kubernetes.io/mode" = "EnsureExists";
};
name = "kubernetes-dashboard-settings";
namespace = "kube-system";
};
};
};
services.kubernetes.addonManager.bootstrapAddons = mkMerge [{
kubernetes-dashboard-sa = {
apiVersion = "v1";
kind = "ServiceAccount";
@ -210,20 +227,9 @@ in {
};
type = "Opaque";
};
kubernetes-dashboard-cm = {
apiVersion = "v1";
kind = "ConfigMap";
metadata = {
labels = {
k8s-app = "kubernetes-dashboard";
# Allows editing resource and makes sure it is created first.
"addonmanager.kubernetes.io/mode" = "EnsureExists";
};
name = "kubernetes-dashboard-settings";
namespace = "kube-system";
};
};
} // (optionalAttrs cfg.rbac.enable
}
(optionalAttrs cfg.rbac.enable
(let
subjects = [{
kind = "ServiceAccount";
@ -323,6 +329,6 @@ in {
inherit subjects;
};
})
));
))];
};
}

View file

@ -184,6 +184,18 @@ in
type = bool;
};
proxyClientCertFile = mkOption {
description = "Client certificate to use for connections to proxy.";
default = null;
type = nullOr path;
};
proxyClientKeyFile = mkOption {
description = "Key to use for connections to proxy.";
default = null;
type = nullOr path;
};
runtimeConfig = mkOption {
description = ''
Api runtime configuration. See
@ -272,11 +284,32 @@ in
###### implementation
config = mkMerge [
(mkIf cfg.enable {
(let
apiserverPaths = filter (a: a != null) [
cfg.clientCaFile
cfg.etcd.caFile
cfg.etcd.certFile
cfg.etcd.keyFile
cfg.kubeletClientCaFile
cfg.kubeletClientCertFile
cfg.kubeletClientKeyFile
cfg.serviceAccountKeyFile
cfg.tlsCertFile
cfg.tlsKeyFile
];
etcdPaths = filter (a: a != null) [
config.services.etcd.trustedCaFile
config.services.etcd.certFile
config.services.etcd.keyFile
];
in mkIf cfg.enable {
systemd.services.kube-apiserver = {
description = "Kubernetes APIServer Service";
wantedBy = [ "kubernetes.target" ];
after = [ "network.target" ];
wantedBy = [ "kube-control-plane-online.target" ];
after = [ "certmgr.service" ];
before = [ "kube-control-plane-online.target" ];
serviceConfig = {
Slice = "kubernetes.slice";
ExecStart = ''${top.package}/bin/kube-apiserver \
@ -316,6 +349,10 @@ in
"--kubelet-client-certificate=${cfg.kubeletClientCertFile}"} \
${optionalString (cfg.kubeletClientKeyFile != null)
"--kubelet-client-key=${cfg.kubeletClientKeyFile}"} \
${optionalString (cfg.proxyClientCertFile != null)
"--proxy-client-cert-file=${cfg.proxyClientCertFile}"} \
${optionalString (cfg.proxyClientKeyFile != null)
"--proxy-client-key-file=${cfg.proxyClientKeyFile}"} \
--insecure-bind-address=${cfg.insecureBindAddress} \
--insecure-port=${toString cfg.insecurePort} \
${optionalString (cfg.runtimeConfig != "")
@ -341,6 +378,15 @@ in
Restart = "on-failure";
RestartSec = 5;
};
unitConfig.ConditionPathExists = apiserverPaths;
};
systemd.paths.kube-apiserver = mkIf top.apiserver.enable {
wantedBy = [ "kube-apiserver.service" ];
pathConfig = {
PathExists = apiserverPaths;
PathChanged = apiserverPaths;
};
};
services.etcd = {
@ -354,6 +400,18 @@ in
initialAdvertisePeerUrls = mkDefault ["https://${top.masterAddress}:2380"];
};
systemd.services.etcd = {
unitConfig.ConditionPathExists = etcdPaths;
};
systemd.paths.etcd = {
wantedBy = [ "etcd.service" ];
pathConfig = {
PathExists = etcdPaths;
PathChanged = etcdPaths;
};
};
services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled {
apiserver-kubelet-api-admin-crb = {
@ -389,6 +447,11 @@ in
] ++ cfg.extraSANs;
action = "systemctl restart kube-apiserver.service";
};
apiserverProxyClient = mkCert {
name = "kube-apiserver-proxy-client";
CN = "front-proxy-client";
action = "systemctl restart kube-apiserver.service";
};
apiserverKubeletClient = mkCert {
name = "kube-apiserver-kubelet-client";
CN = "system:kube-apiserver";

View file

@ -104,11 +104,31 @@ in
};
###### implementation
config = mkIf cfg.enable {
systemd.services.kube-controller-manager = {
config = let
controllerManagerPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
cfg.rootCaFile
cfg.serviceAccountKeyFile
cfg.tlsCertFile
cfg.tlsKeyFile
];
in mkIf cfg.enable {
systemd.services.kube-controller-manager = rec {
description = "Kubernetes Controller Manager Service";
wantedBy = [ "kubernetes.target" ];
wantedBy = [ "kube-control-plane-online.target" ];
after = [ "kube-apiserver.service" ];
before = [ "kube-control-plane-online.target" ];
environment.KUBECONFIG = top.lib.mkKubeConfig "kube-controller-manager" cfg.kubeconfig;
preStart = ''
until kubectl auth can-i get /api -q 2>/dev/null; do
echo kubectl auth can-i get /api: exit status $?
sleep 2
done
'';
serviceConfig = {
RestartSec = "30s";
Restart = "on-failure";
@ -120,7 +140,7 @@ in
"--cluster-cidr=${cfg.clusterCidr}"} \
${optionalString (cfg.featureGates != [])
"--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \
--kubeconfig=${top.lib.mkKubeConfig "kube-controller-manager" cfg.kubeconfig} \
--kubeconfig=${environment.KUBECONFIG} \
--leader-elect=${boolToString cfg.leaderElect} \
${optionalString (cfg.rootCaFile!=null)
"--root-ca-file=${cfg.rootCaFile}"} \
@ -141,7 +161,16 @@ in
User = "kubernetes";
Group = "kubernetes";
};
path = top.path;
path = top.path ++ [ pkgs.kubectl ];
unitConfig.ConditionPathExists = controllerManagerPaths;
};
systemd.paths.kube-controller-manager = {
wantedBy = [ "kube-controller-manager.service" ];
pathConfig = {
PathExists = controllerManagerPaths;
PathChanged = controllerManagerPaths;
};
};
services.kubernetes.pki.certs = with top.lib; {

View file

@ -263,6 +263,30 @@ in {
wantedBy = [ "multi-user.target" ];
};
systemd.targets.kube-control-plane-online = {
wantedBy = [ "kubernetes.target" ];
before = [ "kubernetes.target" ];
};
systemd.services.kube-control-plane-online = rec {
description = "Kubernetes control plane is online";
wantedBy = [ "kube-control-plane-online.target" ];
after = [ "kube-scheduler.service" "kube-controller-manager.service" ];
before = [ "kube-control-plane-online.target" ];
environment.KUBECONFIG = cfg.lib.mkKubeConfig "default" cfg.kubeconfig;
path = [ pkgs.kubectl ];
preStart = ''
until kubectl get --raw=/healthz 2>/dev/null; do
echo kubectl get --raw=/healthz: exit status $?
sleep 3
done
'';
script = "echo Ok";
serviceConfig = {
TimeoutSec = "500";
};
};
systemd.tmpfiles.rules = [
"d /opt/cni/bin 0755 root root -"
"d /run/kubernetes 0755 kubernetes kubernetes -"
@ -286,6 +310,8 @@ in {
services.kubernetes.apiserverAddress = mkDefault ("https://${if cfg.apiserver.advertiseAddress != null
then cfg.apiserver.advertiseAddress
else "${cfg.masterAddress}:${toString cfg.apiserver.securePort}"}");
services.kubernetes.kubeconfig.server = mkDefault cfg.apiserverAddress;
})
];
}

View file

@ -24,16 +24,26 @@ in
###### interface
options.services.kubernetes.flannel = {
enable = mkEnableOption "enable flannel networking";
kubeconfig = top.lib.mkKubeConfigOptions "Kubernetes flannel";
};
###### implementation
config = mkIf cfg.enable {
config = let
flannelPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
];
kubeconfig = top.lib.mkKubeConfig "flannel" cfg.kubeconfig;
in mkIf cfg.enable {
services.flannel = {
enable = mkDefault true;
network = mkDefault top.clusterCidr;
inherit storageBackend;
nodeName = config.services.kubernetes.kubelet.hostname;
inherit storageBackend kubeconfig;
nodeName = top.kubelet.hostname;
};
services.kubernetes.kubelet = {
@ -48,24 +58,66 @@ in
}];
};
systemd.services."mk-docker-opts" = {
systemd.services.mk-docker-opts = {
description = "Pre-Docker Actions";
wantedBy = [ "flannel.target" ];
before = [ "flannel.target" ];
path = with pkgs; [ gawk gnugrep ];
script = ''
${mkDockerOpts}/mk-docker-opts -d /run/flannel/docker
systemctl restart docker
'';
unitConfig.ConditionPathExists = [ "/run/flannel/subnet.env" ];
serviceConfig.Type = "oneshot";
};
systemd.paths."flannel-subnet-env" = {
wantedBy = [ "flannel.service" ];
systemd.paths.flannel-subnet-env = {
wantedBy = [ "mk-docker-opts.service" ];
pathConfig = {
PathModified = "/run/flannel/subnet.env";
PathExists = [ "/run/flannel/subnet.env" ];
PathChanged = [ "/run/flannel/subnet.env" ];
Unit = "mk-docker-opts.service";
};
};
systemd.targets.flannel = {
wantedBy = [ "kube-node-online.target" ];
before = [ "kube-node-online.target" ];
};
systemd.services.flannel = {
wantedBy = [ "flannel.target" ];
after = [ "kubelet.target" ];
before = [ "flannel.target" ];
path = with pkgs; [ iptables kubectl ];
environment.KUBECONFIG = kubeconfig;
preStart = let
args = [
"--selector=kubernetes.io/hostname=${top.kubelet.hostname}"
# flannel exits if node is not registered yet, before that there is no podCIDR
"--output=jsonpath={.items[0].spec.podCIDR}"
# if jsonpath cannot be resolved exit with status 1
"--allow-missing-template-keys=false"
];
in ''
until kubectl get nodes ${concatStringsSep " " args} 2>/dev/null; do
echo Waiting for ${top.kubelet.hostname} to be RegisteredNode
sleep 1
done
'';
unitConfig.ConditionPathExists = flannelPaths;
};
systemd.paths.flannel = {
wantedBy = [ "flannel.service" ];
pathConfig = {
PathExists = flannelPaths;
PathChanged = flannelPaths;
};
};
services.kubernetes.flannel.kubeconfig.server = mkDefault top.apiserverAddress;
systemd.services.docker = {
environment.DOCKER_OPTS = "-b none";
serviceConfig.EnvironmentFile = "-/run/flannel/docker";
@ -92,7 +144,6 @@ in
# give flannel som kubernetes rbac permissions if applicable
services.kubernetes.addonManager.bootstrapAddons = mkIf ((storageBackend == "kubernetes") && (elem "RBAC" top.apiserver.authorizationMode)) {
flannel-cr = {
apiVersion = "rbac.authorization.k8s.io/v1beta1";
kind = "ClusterRole";
@ -128,7 +179,6 @@ in
name = "flannel-client";
}];
};
};
};
}

View file

@ -241,21 +241,28 @@ in
###### implementation
config = mkMerge [
(mkIf cfg.enable {
(let
kubeletPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
cfg.clientCaFile
cfg.tlsCertFile
cfg.tlsKeyFile
];
in mkIf cfg.enable {
services.kubernetes.kubelet.seedDockerImages = [infraContainer];
systemd.services.kubelet = {
description = "Kubernetes Kubelet Service";
wantedBy = [ "kubernetes.target" ];
after = [ "network.target" "docker.service" "kube-apiserver.service" ];
wantedBy = [ "kubelet.target" ];
after = [ "kube-control-plane-online.target" ];
before = [ "kubelet.target" ];
path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables socat ] ++ top.path;
preStart = ''
${concatMapStrings (img: ''
echo "Seeding docker image: ${img}"
docker load <${img}
'') cfg.seedDockerImages}
rm /opt/cni/bin/* || true
rm -f /opt/cni/bin/* || true
${concatMapStrings (package: ''
echo "Linking cni package: ${package}"
ln -fs ${package}/bin/* /opt/cni/bin
@ -308,6 +315,56 @@ in
'';
WorkingDirectory = top.dataDir;
};
unitConfig.ConditionPathExists = kubeletPaths;
};
systemd.paths.kubelet = {
wantedBy = [ "kubelet.service" ];
pathConfig = {
PathExists = kubeletPaths;
PathChanged = kubeletPaths;
};
};
systemd.services.docker.before = [ "kubelet.service" ];
systemd.services.docker-seed-images = {
wantedBy = [ "docker.service" ];
after = [ "docker.service" ];
before = [ "kubelet.service" ];
path = with pkgs; [ docker ];
preStart = ''
${concatMapStrings (img: ''
echo "Seeding docker image: ${img}"
docker load <${img}
'') cfg.seedDockerImages}
'';
script = "echo Ok";
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
serviceConfig.Slice = "kubernetes.slice";
};
systemd.services.kubelet-online = {
wantedBy = [ "kube-node-online.target" ];
after = [ "flannel.target" "kubelet.target" ];
before = [ "kube-node-online.target" ];
# it is complicated. flannel needs kubelet to run the pause container before
# it discusses the node CIDR with apiserver and afterwards configures and restarts
# dockerd. Until then prevent creating any pods because they have to be recreated anyway
# because the network of docker0 has been changed by flannel.
script = let
docker-env = "/run/flannel/docker";
flannel-date = "stat --print=%Y ${docker-env}";
docker-date = "systemctl show --property=ActiveEnterTimestamp --value docker";
in ''
until test -f ${docker-env} ; do sleep 1 ; done
while test `${flannel-date}` -gt `date +%s --date="$(${docker-date})"` ; do
sleep 1
done
'';
serviceConfig.Type = "oneshot";
serviceConfig.Slice = "kubernetes.slice";
};
# Allways include cni plugins
@ -354,5 +411,16 @@ in
};
})
{
systemd.targets.kubelet = {
wantedBy = [ "kube-node-online.target" ];
before = [ "kube-node-online.target" ];
};
systemd.targets.kube-node-online = {
wantedBy = [ "kubernetes.target" ];
before = [ "kubernetes.target" ];
};
}
];
}

View file

@ -27,12 +27,11 @@ let
certmgrAPITokenPath = "${top.secretsPath}/${cfsslAPITokenBaseName}";
cfsslAPITokenLength = 32;
clusterAdminKubeconfig = with cfg.certs.clusterAdmin;
top.lib.mkKubeConfig "cluster-admin" {
server = top.apiserverAddress;
certFile = cert;
keyFile = key;
};
clusterAdminKubeconfig = with cfg.certs.clusterAdmin; {
server = top.apiserverAddress;
certFile = cert;
keyFile = key;
};
remote = with config.services; "https://${kubernetes.masterAddress}:${toString cfssl.port}";
in
@ -119,6 +118,12 @@ in
cfsslCertPathPrefix = "${config.services.cfssl.dataDir}/cfssl";
cfsslCert = "${cfsslCertPathPrefix}.pem";
cfsslKey = "${cfsslCertPathPrefix}-key.pem";
cfsslPort = toString config.services.cfssl.port;
certmgrPaths = [
top.caFile
certmgrAPITokenPath
];
in
{
@ -168,13 +173,40 @@ in
chown cfssl "${cfsslAPITokenPath}" && chmod 400 "${cfsslAPITokenPath}"
'')]);
systemd.targets.cfssl-online = {
wantedBy = [ "network-online.target" ];
after = [ "cfssl.service" "network-online.target" "cfssl-online.service" ];
};
systemd.services.cfssl-online = {
description = "Wait for ${remote} to be reachable.";
wantedBy = [ "cfssl-online.target" ];
before = [ "cfssl-online.target" ];
path = [ pkgs.curl ];
preStart = ''
until curl --fail-early -fskd '{}' ${remote}/api/v1/cfssl/info -o /dev/null; do
echo curl ${remote}/api/v1/cfssl/info: exit status $?
sleep 2
done
'';
script = "echo Ok";
serviceConfig = {
TimeoutSec = "300";
};
};
systemd.services.kube-certmgr-bootstrap = {
description = "Kubernetes certmgr bootstrapper";
wantedBy = [ "certmgr.service" ];
after = [ "cfssl.target" ];
wantedBy = [ "cfssl-online.target" ];
after = [ "cfssl-online.target" ];
before = [ "certmgr.service" ];
path = with pkgs; [ curl cfssl ];
script = concatStringsSep "\n" [''
set -e
mkdir -p $(dirname ${certmgrAPITokenPath})
mkdir -p $(dirname ${top.caFile})
# If there's a cfssl (cert issuer) running locally, then don't rely on user to
# manually paste it in place. Just symlink.
# otherwise, create the target file, ready for users to insert the token
@ -186,15 +218,18 @@ in
fi
''
(optionalString (cfg.pkiTrustOnBootstrap) ''
if [ ! -f "${top.caFile}" ] || [ $(cat "${top.caFile}" | wc -c) -lt 1 ]; then
${pkgs.curl}/bin/curl --fail-early -f -kd '{}' ${remote}/api/v1/cfssl/info | \
${pkgs.cfssl}/bin/cfssljson -stdout >${top.caFile}
if [ ! -s "${top.caFile}" ]; then
until test -s ${top.caFile}.json; do
sleep 2
curl --fail-early -fskd '{}' ${remote}/api/v1/cfssl/info -o ${top.caFile}.json
done
cfssljson -f ${top.caFile}.json -stdout >${top.caFile}
rm ${top.caFile}.json
fi
'')
];
serviceConfig = {
RestartSec = "10s";
Restart = "on-failure";
TimeoutSec = "500";
};
};
@ -230,35 +265,28 @@ in
mapAttrs mkSpec cfg.certs;
};
#TODO: Get rid of kube-addon-manager in the future for the following reasons
# - it is basically just a shell script wrapped around kubectl
# - it assumes that it is clusterAdmin or can gain clusterAdmin rights through serviceAccount
# - it is designed to be used with k8s system components only
# - it would be better with a more Nix-oriented way of managing addons
systemd.services.kube-addon-manager = mkIf top.addonManager.enable (mkMerge [{
environment.KUBECONFIG = with cfg.certs.addonManager;
top.lib.mkKubeConfig "addon-manager" {
server = top.apiserverAddress;
certFile = cert;
keyFile = key;
};
}
systemd.services.certmgr = {
wantedBy = [ "cfssl-online.target" ];
after = [ "cfssl-online.target" "kube-certmgr-bootstrap.service" ];
preStart = ''
while ! test -s ${certmgrAPITokenPath} ; do
sleep 1
echo Waiting for ${certmgrAPITokenPath}
done
'';
unitConfig.ConditionPathExists = certmgrPaths;
};
(optionalAttrs (top.addonManager.bootstrapAddons != {}) {
serviceConfig.PermissionsStartOnly = true;
preStart = with pkgs;
let
files = mapAttrsToList (n: v: writeText "${n}.json" (builtins.toJSON v))
top.addonManager.bootstrapAddons;
in
''
export KUBECONFIG=${clusterAdminKubeconfig}
${kubectl}/bin/kubectl apply -f ${concatStringsSep " \\\n -f " files}
'';
})]);
systemd.paths.certmgr = {
wantedBy = [ "certmgr.service" ];
pathConfig = {
PathExists = certmgrPaths;
PathChanged = certmgrPaths;
};
};
environment.etc.${cfg.etcClusterAdminKubeconfig}.source = mkIf (!isNull cfg.etcClusterAdminKubeconfig)
clusterAdminKubeconfig;
(top.lib.mkKubeConfig "cluster-admin" clusterAdminKubeconfig);
environment.systemPackages = mkIf (top.kubelet.enable || top.proxy.enable) [
(pkgs.writeScriptBin "nixos-kubernetes-node-join" ''
@ -284,38 +312,22 @@ in
exit 1
fi
do_restart=$(test -s ${certmgrAPITokenPath} && echo -n y || echo -n n)
echo $token > ${certmgrAPITokenPath}
chmod 600 ${certmgrAPITokenPath}
echo "Restarting certmgr..." >&1
systemctl restart certmgr
if [ y = $do_restart ]; then
echo "Restarting certmgr..." >&1
systemctl restart certmgr
fi
echo "Waiting for certs to appear..." >&1
${optionalString top.kubelet.enable ''
while [ ! -f ${cfg.certs.kubelet.cert} ]; do sleep 1; done
echo "Restarting kubelet..." >&1
systemctl restart kubelet
''}
${optionalString top.proxy.enable ''
while [ ! -f ${cfg.certs.kubeProxyClient.cert} ]; do sleep 1; done
echo "Restarting kube-proxy..." >&1
systemctl restart kube-proxy
''}
${optionalString top.flannel.enable ''
while [ ! -f ${cfg.certs.flannelClient.cert} ]; do sleep 1; done
echo "Restarting flannel..." >&1
systemctl restart flannel
''}
echo "Node joined succesfully"
echo "Node joined succesfully" >&1
'')];
# isolate etcd on loopback at the master node
# easyCerts doesn't support multimaster clusters anyway atm.
services.etcd = with cfg.certs.etcd; {
services.etcd = mkIf top.apiserver.enable (with cfg.certs.etcd; {
listenClientUrls = ["https://127.0.0.1:2379"];
listenPeerUrls = ["https://127.0.0.1:2380"];
advertiseClientUrls = ["https://etcd.local:2379"];
@ -324,19 +336,11 @@ in
certFile = mkDefault cert;
keyFile = mkDefault key;
trustedCaFile = mkDefault caCert;
};
});
networking.extraHosts = mkIf (config.services.etcd.enable) ''
127.0.0.1 etcd.${top.addons.dns.clusterDomain} etcd.local
'';
services.flannel = with cfg.certs.flannelClient; {
kubeconfig = top.lib.mkKubeConfig "flannel" {
server = top.apiserverAddress;
certFile = cert;
keyFile = key;
};
};
services.kubernetes = {
apiserver = mkIf top.apiserver.enable (with cfg.certs.apiServer; {
@ -353,7 +357,16 @@ in
kubeletClientCaFile = mkDefault caCert;
kubeletClientCertFile = mkDefault cfg.certs.apiserverKubeletClient.cert;
kubeletClientKeyFile = mkDefault cfg.certs.apiserverKubeletClient.key;
proxyClientCertFile = mkDefault cfg.certs.apiserverProxyClient.cert;
proxyClientKeyFile = mkDefault cfg.certs.apiserverProxyClient.key;
});
addonManager = mkIf top.addonManager.enable {
kubeconfig = with cfg.certs.addonManager; {
certFile = mkDefault cert;
keyFile = mkDefault key;
};
bootstrapAddonsKubeconfig = clusterAdminKubeconfig;
};
controllerManager = mkIf top.controllerManager.enable {
serviceAccountKeyFile = mkDefault cfg.certs.serviceAccount.key;
rootCaFile = cfg.certs.controllerManagerClient.caCert;
@ -362,6 +375,12 @@ in
keyFile = mkDefault key;
};
};
flannel = mkIf top.flannel.enable {
kubeconfig = with cfg.certs.flannelClient; {
certFile = cert;
keyFile = key;
};
};
scheduler = mkIf top.scheduler.enable {
kubeconfig = with cfg.certs.schedulerClient; {
certFile = mkDefault cert;

View file

@ -45,12 +45,28 @@ in
};
###### implementation
config = mkIf cfg.enable {
systemd.services.kube-proxy = {
config = let
proxyPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
];
in mkIf cfg.enable {
systemd.services.kube-proxy = rec {
description = "Kubernetes Proxy Service";
wantedBy = [ "kubernetes.target" ];
after = [ "kube-apiserver.service" ];
path = with pkgs; [ iptables conntrack_tools ];
wantedBy = [ "kube-node-online.target" ];
after = [ "kubelet-online.service" ];
before = [ "kube-node-online.target" ];
environment.KUBECONFIG = top.lib.mkKubeConfig "kube-proxy" cfg.kubeconfig;
path = with pkgs; [ iptables conntrack_tools kubectl ];
preStart = ''
until kubectl auth can-i get nodes/${top.kubelet.hostname} -q 2>/dev/null; do
echo kubectl auth can-i get nodes/${top.kubelet.hostname}: exit status $?
sleep 2
done
'';
serviceConfig = {
Slice = "kubernetes.slice";
ExecStart = ''${top.package}/bin/kube-proxy \
@ -59,7 +75,7 @@ in
"--cluster-cidr=${top.clusterCidr}"} \
${optionalString (cfg.featureGates != [])
"--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \
--kubeconfig=${top.lib.mkKubeConfig "kube-proxy" cfg.kubeconfig} \
--kubeconfig=${environment.KUBECONFIG} \
${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \
${cfg.extraOpts}
'';
@ -67,6 +83,15 @@ in
Restart = "on-failure";
RestartSec = 5;
};
unitConfig.ConditionPathExists = proxyPaths;
};
systemd.paths.kube-proxy = {
wantedBy = [ "kube-proxy.service" ];
pathConfig = {
PathExists = proxyPaths;
PathChanged = proxyPaths;
};
};
services.kubernetes.pki.certs = {

View file

@ -56,18 +56,35 @@ in
};
###### implementation
config = mkIf cfg.enable {
systemd.services.kube-scheduler = {
config = let
schedulerPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
];
in mkIf cfg.enable {
systemd.services.kube-scheduler = rec {
description = "Kubernetes Scheduler Service";
wantedBy = [ "kubernetes.target" ];
wantedBy = [ "kube-control-plane-online.target" ];
after = [ "kube-apiserver.service" ];
before = [ "kube-control-plane-online.target" ];
environment.KUBECONFIG = top.lib.mkKubeConfig "kube-scheduler" cfg.kubeconfig;
path = [ pkgs.kubectl ];
preStart = ''
until kubectl auth can-i get /api -q 2>/dev/null; do
echo kubectl auth can-i get /api: exit status $?
sleep 2
done
'';
serviceConfig = {
Slice = "kubernetes.slice";
ExecStart = ''${top.package}/bin/kube-scheduler \
--address=${cfg.address} \
${optionalString (cfg.featureGates != [])
"--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \
--kubeconfig=${top.lib.mkKubeConfig "kube-scheduler" cfg.kubeconfig} \
--kubeconfig=${environment.KUBECONFIG} \
--leader-elect=${boolToString cfg.leaderElect} \
--port=${toString cfg.port} \
${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \
@ -79,6 +96,15 @@ in
Restart = "on-failure";
RestartSec = 5;
};
unitConfig.ConditionPathExists = schedulerPaths;
};
systemd.paths.kube-scheduler = {
wantedBy = [ "kube-scheduler.service" ];
pathConfig = {
PathExists = schedulerPaths;
PathChanged = schedulerPaths;
};
};
services.kubernetes.pki.certs = {

View file

@ -5,7 +5,7 @@ with lib;
let
inherit (config.boot) kernelPatches;
inherit (config.boot.kernel) features;
inherit (config.boot.kernel) features randstructSeed;
inherit (config.boot.kernelPackages) kernel;
kernelModulesConf = pkgs.writeText "nixos.conf"
@ -38,6 +38,7 @@ in
default = pkgs.linuxPackages;
apply = kernelPackages: kernelPackages.extend (self: super: {
kernel = super.kernel.override {
inherit randstructSeed;
kernelPatches = super.kernel.kernelPatches ++ kernelPatches;
features = lib.recursiveUpdate super.kernel.features features;
};
@ -67,6 +68,19 @@ in
description = "A list of additional patches to apply to the kernel.";
};
boot.kernel.randstructSeed = mkOption {
type = types.str;
default = "";
example = "my secret seed";
description = ''
Provides a custom seed for the <varname>RANDSTRUCT</varname> security
option of the Linux kernel. Note that <varname>RANDSTRUCT</varname> is
only enabled in NixOS hardened kernels. Using a custom seed requires
building the kernel and dependent packages locally, since this
customization happens at build time.
'';
};
boot.kernelParams = mkOption {
type = types.listOf types.str;
default = [ ];
@ -298,7 +312,7 @@ in
# !!! Should this really be needed?
(isYes "MODULES")
(isYes "BINFMT_ELF")
];
] ++ (optional (randstructSeed != "") (isYes "GCC_PLUGIN_RANDSTRUCT"));
# nixpkgs kernels are assumed to have all required features
assertions = if config.boot.kernelPackages.kernel ? features then [] else

View file

@ -30,7 +30,10 @@ let
{ config, pkgs, lib, nodes, ... }:
mkMerge [
{
boot.postBootCommands = "rm -fr /var/lib/kubernetes/secrets /tmp/shared/*";
boot = {
postBootCommands = "rm -fr /var/lib/kubernetes/secrets /tmp/shared/*";
kernel.sysctl = { "fs.inotify.max_user_instances" = 256; };
};
virtualisation.memorySize = mkDefault 1536;
virtualisation.diskSize = mkDefault 4096;
networking = {

View file

@ -77,6 +77,7 @@ let
singleNodeTest = {
test = ''
# prepare machine1 for test
$machine1->waitForUnit("kubernetes.target");
$machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready");
$machine1->waitUntilSucceeds("docker load < ${redisImage}");
$machine1->waitUntilSucceeds("kubectl create -f ${redisPod}");
@ -102,6 +103,8 @@ let
# Node token exchange
$machine1->waitUntilSucceeds("cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret");
$machine2->waitUntilSucceeds("cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join");
$machine1->waitForUnit("kubernetes.target");
$machine2->waitForUnit("kubernetes.target");
# prepare machines for test
$machine1->waitUntilSucceeds("kubectl get node machine2.${domain} | grep -w Ready");

View file

@ -94,6 +94,8 @@ let
singlenode = base // {
test = ''
$machine1->waitForUnit("kubernetes.target");
$machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready");
$machine1->waitUntilSucceeds("docker load < ${kubectlImage}");
@ -116,6 +118,8 @@ let
# Node token exchange
$machine1->waitUntilSucceeds("cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret");
$machine2->waitUntilSucceeds("cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join");
$machine1->waitForUnit("kubernetes.target");
$machine2->waitForUnit("kubernetes.target");
$machine1->waitUntilSucceeds("kubectl get node machine2.my.zyx | grep -w Ready");

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "drumkv1-${version}";
version = "0.9.5";
version = "0.9.6";
src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "1azzwqgrrr4zr509sib2jvigfvz5bkwnx82chdadxdwfarai8586";
sha256 = "0d0kskr9pzdckw7sz4djjkkkgz1fa83zrq5my6qlxn68wqdj6800";
};
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
name = "flacon-${version}";
version = "5.1.0";
version = "5.2.0";
src = fetchFromGitHub {
owner = "flacon";
repo = "flacon";
rev = "v${version}";
sha256 = "18m077z1hqjg10chy5rgajd9q1wnrcxhiidivgjcdchc9q5d4b08";
sha256 = "0vmbwpfjq66qv3zp7mss3hsxy6dxjybqfm7k2xyc0w181qclg1ya";
};
nativeBuildInputs = [ cmake pkgconfig makeWrapper ];

View file

@ -1,15 +0,0 @@
Dump temacs in an empty environment to prevent -dev paths from ending
up in the dumped image.
diff -ru -x '*~' emacs-25.3/src/Makefile.in emacs-25.3-new/src/Makefile.in
--- emacs-25.3/src/Makefile.in 2017-04-14 17:02:47.000000000 +0200
+++ emacs-25.3-new/src/Makefile.in 2017-09-25 19:03:02.173861038 +0200
@@ -532,7 +532,7 @@
ifeq ($(CANNOT_DUMP),yes)
ln -f temacs$(EXEEXT) $@
else
- LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
+ env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
ifneq ($(PAXCTL_dumped),)
$(PAXCTL_dumped) $@
endif

View file

@ -4,19 +4,19 @@
}:
stdenv.mkDerivation rec {
emacsVersion = "26.1";
emacsVersion = "26.2";
emacsName = "emacs-${emacsVersion}";
macportVersion = "7.4";
macportVersion = "7.6";
name = "emacs-mac-${emacsVersion}-${macportVersion}";
src = fetchurl {
url = "mirror://gnu/emacs/${emacsName}.tar.xz";
sha256 = "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w";
sha256 = "13n5m60i47k96mpv5pp6km2ph9rv2m5lmbpzj929v02vpsfyc70m";
};
macportSrc = fetchurl {
url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
sha256 = "1xl3rfqw1f3jil20xf6iy0f1hdk9adj8rnv7xhcjq4pymj4w8ka6";
sha256 = "00szqb74ds89m34sx5mq0gxhsrz64j691sxyvqncj10hw17d0y61";
};
hiresSrc = fetchurl {
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
sha256 = "0f2wzdw2a3ac581322b2y79rlj3c9f33ddrq9allj97r1si6v5xk";
};
patches = [ ./clean-env-macport.patch ];
patches = [ ./clean-env.patch ];
enableParallelBuilding = true;

View file

@ -108,6 +108,10 @@ in
mkdir -p $out/share/pixmaps
cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
# Override the previously determined VSCODE_PATH with the one we know to be correct
sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/code
grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/code # check if sed succeeded
'';
preFixup = lib.optionalString (system == "i686-linux" || system == "x86_64-linux") ''
@ -129,7 +133,7 @@ in
homepage = https://code.visualstudio.com/;
downloadPage = https://code.visualstudio.com/Updates;
license = licenses.unfree;
maintainers = with maintainers; [ eadwu ];
maintainers = with maintainers; [ eadwu synthetica ];
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
};
}

View file

@ -1,27 +1,27 @@
{ stdenv, pythonPackages, fetchurl }:
{ stdenv, pythonPackages, fetchurl, gettext }:
pythonPackages.buildPythonApplication rec {
name = "bleachbit-${version}";
version = "2.0";
pname = "bleachbit";
version = "2.2";
namePrefix = "";
format = "other";
src = fetchurl {
url = "mirror://sourceforge/bleachbit/${name}.tar.bz2";
sha256 = "0ps98zx4n13q92bq7ykqi6hj3i7brdqgm87i9gk6ibvljp1vxdz9";
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
sha256 = "1yj9bc3k6s1aib7znb79h5rybfv691zz4szxkwf9fm9nr0dws603";
};
buildInputs = [ pythonPackages.wrapPython ];
nativeBuildInputs = [ gettext ];
doCheck = false;
postInstall = ''
mkdir -p $out/bin
cp bleachbit.py $out/bin/bleachbit
chmod +x $out/bin/bleachbit
substituteInPlace $out/bin/bleachbit --replace "#!/usr/bin/env python" "#!${pythonPackages.python.interpreter}"
# Patch the many hardcoded uses of /usr/share/ and /usr/bin
postPatch = ''
find -type f -exec sed -i -e 's@/usr/share@${placeholder "out"}/share@g' {} \;
find -type f -exec sed -i -e 's@/usr/bin@${placeholder "out"}/bin@g' {} \;
'';
dontBuild = true;
installFlags = [ "prefix=${placeholder "out"}" ];
propagatedBuildInputs = with pythonPackages; [ pygtk ];
meta = {

View file

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "exercism-${version}";
version = "3.0.9";
version = "3.0.11";
goPackagePath = "github.com/exercism/cli";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "exercism";
repo = "cli";
rev = "v${version}";
sha256 = "0nr3dzipylicrbplh25dw0w84qklr0xcyq442i9aswzibqrb2vc6";
sha256 = "1wg23bvibsk6j4iqwyw35wl9plfwdqxiql81zci7r1x4d5cp26av";
};
goDeps = ./deps.nix;

View file

@ -1,26 +1,29 @@
{ stdenv, fetchFromGitHub, cmake, makeWrapper, qttools
, curl
, glibcLocales
, libXi
, libXtst
, libargon2
, libgcrypt
, libsodium
, zlib
, libmicrohttpd
, libXtst
, qtbase
, libgpgerror
, glibcLocales
, libmicrohttpd
, libsodium
, libyubikey
, yubikey-personalization
, libXi
, qtx11extras
, pkg-config
, qrencode
, qtbase
, qtmacextras
, qtsvg
, qrencode
, qtx11extras
, quazip
, yubikey-personalization
, zlib
, withKeePassBrowser ? true
, withKeePassKeeShare ? true
, withKeePassKeeShareSecure ? true
, withKeePassSSHAgent ? true
, withKeePassHTTP ? false
, withKeePassNetworking ? false
}:
@ -28,13 +31,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "keepassxc-${version}";
version = "2.4.0";
version = "2.4.1";
src = fetchFromGitHub {
owner = "keepassxreboot";
repo = "keepassxc";
rev = "${version}";
sha256 = "1k8s56003gym2dv6c54gxwzs20i7lf6w5g5qnr449jfmf6wvbivr";
sha256 = "1cbfsfdvb4qw6yb0zl6mymdbphnb7lxbfrc5a8cjmn9w8b09kv6m";
};
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
@ -52,17 +55,19 @@ stdenv.mkDerivation rec {
patches = [
./darwin.patch
./quazip5.patch
];
cmakeFlags = [
"-DKEEPASSXC_BUILD_TYPE=Release"
"-DWITH_GUI_TESTS=ON"
"-DWITH_XC_AUTOTYPE=ON"
"-DWITH_XC_UPDATECHECK=OFF"
"-DWITH_XC_YUBIKEY=ON"
"-DWITH_XC_KEESHARE=ON"
]
++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON")
++ (optional withKeePassHTTP "-DWITH_XC_HTTP=ON")
++ (optional withKeePassKeeShare "-DWITH_XC_KEESHARE=ON")
++ (optional withKeePassKeeShareSecure "-DWITH_XC_KEESHARE_SECURE=ON")
++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
@ -87,13 +92,16 @@ stdenv.mkDerivation rec {
libmicrohttpd
libsodium
libyubikey
pkg-config
qrencode
qtbase
qtx11extras
qtsvg
qtx11extras
yubikey-personalization
zlib
qrencode
] ++ stdenv.lib.optional stdenv.isDarwin qtmacextras;
]
++ stdenv.lib.optional withKeePassKeeShareSecure quazip
++ stdenv.lib.optional stdenv.isDarwin qtmacextras;
postInstall = optionalString stdenv.isDarwin ''
# Make it work without Qt in PATH.
@ -103,7 +111,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI and via CLI. Includes optional http-interface to allow browser-integration with plugins like PassIFox (https://github.com/pfn/passifox).";
longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser).";
homepage = https://keepassxc.org/;
license = licenses.gpl2;
maintainers = with maintainers; [ s1lvester jonafato ];

View file

@ -1,15 +0,0 @@
diff --git a/src/gui/entry/EditEntryWidget.cpp b/src/gui/entry/EditEntryWidget.cpp
index 6fd65c1a..e99275b0 100644
--- a/src/gui/entry/EditEntryWidget.cpp
+++ b/src/gui/entry/EditEntryWidget.cpp
@@ -29,6 +29,7 @@
#include <QMenu>
#include <QSortFilterProxyModel>
#include <QTemporaryFile>
+#include <QButtonGroup>
#include <QMimeData>
#include <QEvent>
#include <QColorDialog>
--
2.17.1

View file

@ -0,0 +1,27 @@
diff --git a/cmake/FindQuaZip.cmake b/cmake/FindQuaZip.cmake
index 8d309181..92aa892c 100644
--- a/cmake/FindQuaZip.cmake
+++ b/cmake/FindQuaZip.cmake
@@ -9,7 +9,6 @@ IF(QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
SET(QUAZIP_FOUND TRUE)
ELSE(QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
IF(Qt5Core_FOUND)
- set(QUAZIP_LIB_VERSION_SUFFIX 5)
ENDIF()
IF(WIN32)
FIND_PATH(QUAZIP_LIBRARY_DIR
diff --git a/src/keeshare/ShareObserver.cpp b/src/keeshare/ShareObserver.cpp
index 33f5ed1f..5fcd9202 100644
--- a/src/keeshare/ShareObserver.cpp
+++ b/src/keeshare/ShareObserver.cpp
@@ -46,8 +46,8 @@
#include <QStringBuilder>
#if defined(WITH_XC_KEESHARE_SECURE)
-#include <quazip5/quazip.h>
-#include <quazip5/quazipfile.h>
+#include <quazip/quazip.h>
+#include <quazip/quazipfile.h>
#endif
namespace

View file

@ -20,6 +20,8 @@
, which
, curl
, jq
, xorg
, libGL
}:
let
@ -50,7 +52,7 @@ let
else if stdenv.hostPlatform.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker"
else throw "Unsupported platform for PlayOnLinux: ${stdenv.hostPlatform.system}";
ld64 = "${stdenv.cc}/nix-support/dynamic-linker";
libs = pkgs: stdenv.lib.makeLibraryPath [ pkgs.xorg.libX11 ];
libs = pkgs: stdenv.lib.makeLibraryPath [ xorg.libX11 libGL ];
in stdenv.mkDerivation {
name = "playonlinux-${version}";
@ -66,6 +68,8 @@ in stdenv.mkDerivation {
[ python2Packages.python
python2Packages.wxPython
python2Packages.setuptools
xorg.libX11
libGL
];
patchPhase = ''
@ -102,6 +106,5 @@ in stdenv.mkDerivation {
license = licenses.gpl3;
maintainers = [ maintainers.a1russell ];
platforms = [ "x86_64-linux" "i686-linux" ];
broken = true;
};
}

View file

@ -0,0 +1,139 @@
{ GConf
, alsaLib
, at-spi2-atk
, atk
, cairo
, cups
, dbus
, expat
, fetchurl
, fontconfig
, gdk_pixbuf
, glib
, gtk2
, gtk3
, lib
, libX11
, libXScrnSaver
, libXcomposite
, libXcursor
, libXdamage
, libXext
, libXfixes
, libXi
, libXrandr
, libXrender
, libXtst
, libappindicator
, libdrm
, libnotify
, libpciaccess
, libpng12
, libxcb
, nspr
, nss
, pango
, pciutils
, pulseaudio
, stdenv
, udev
, wrapGAppsHook
}:
let
libs = [
GConf
alsaLib
at-spi2-atk
atk
cairo
cups
dbus
expat
fontconfig
gdk_pixbuf
glib
gtk2
gtk3
libX11
libXScrnSaver
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
libappindicator
libdrm
libnotify
libpciaccess
libpng12
libxcb
nspr
nss
pango
pciutils
pulseaudio
stdenv.cc.cc.lib
udev
];
libPath = lib.makeLibraryPath libs;
in
stdenv.mkDerivation rec {
pname = "stretchly";
version = "0.19.1";
src = fetchurl {
url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
sha256 = "1q2wxfqs8qv9b1rfh5lhmyp3rrgdl05m6ihsgkxlgp0yzi07afz8";
};
nativeBuildInputs = [
wrapGAppsHook
];
buildInputs = libs;
dontPatchELF = true;
dontBuild = true;
dontConfigure = true;
installPhase = ''
mkdir -p $out/bin $out/lib/stretchly
cp -r ./* $out/lib/stretchly/
ln -s $out/lib/stretchly/libffmpeg.so $out/lib/
ln -s $out/lib/stretchly/libnode.so $out/lib/
ln -s $out/lib/stretchly/stretchly $out/bin/
'';
preFixup = ''
patchelf --set-rpath "${libPath}" $out/lib/stretchly/libffmpeg.so
patchelf --set-rpath "${libPath}" $out/lib/stretchly/libnode.so
patchelf \
--set-rpath "$out/lib/stretchly:${libPath}" \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
$out/lib/stretchly/stretchly
'';
meta = with stdenv.lib; {
description = "A break time reminder app";
longDescription = ''
stretchly is a cross-platform electron app that reminds you to take
breaks when working on your computer. By default, it runs in your tray
and displays a reminder window containing an idea for a microbreak for 20
seconds every 10 minutes. Every 30 minutes, it displays a window
containing an idea for a longer 5 minute break.
'';
homepage = https://hovancik.net/stretchly;
downloadPage = https://hovancik.net/stretchly/downloads/;
license = licenses.bsd2;
maintainers = with maintainers; [ cdepillabout ];
platforms = platforms.linux;
};
}

View file

@ -302,10 +302,12 @@ stdenv.mkDerivation rec {
# easily generated by firefox at startup.
rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json}
# XDG
: "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
: "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}"
${optionalString pulseaudioSupport ''
# Figure out some envvars for pulseaudio
: "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
: "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}"
: "\''${PULSE_SERVER:=\$XDG_RUNTIME_DIR/pulse/native}"
: "\''${PULSE_COOKIE:=\$XDG_CONFIG_HOME/pulse/cookie}"
''}
@ -336,9 +338,9 @@ stdenv.mkDerivation rec {
\
TMPDIR="\''${TMPDIR:-/tmp}" \
HOME="\$HOME" \
XAUTHORITY="\''${XAUTHORITY:-}" \
XAUTHORITY="\''${XAUTHORITY:-\$HOME/.Xauthority}" \
DISPLAY="\$DISPLAY" \
DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
DBUS_SESSION_BUS_ADDRESS="\''${DBUS_SESSION_BUS_ADDRESS:-unix:path=\$XDG_RUNTIME_DIR/bus}" \\
\
XDG_DATA_HOME="\$HOME/.local/share" \
XDG_DATA_DIRS="$WRAPPER_XDG_DATA_DIRS" \

View file

@ -57,11 +57,11 @@ let
in stdenv.mkDerivation rec {
name = "signal-desktop-${version}";
version = "1.23.2";
version = "1.24.0";
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "0nl8rv0lgp4cwv029kl7y09ngcrik2657m4wjn0rnls8kpmdhd8j";
sha256 = "0h5f1y29glq3l59gr54vln1jqfg5w9br3kg37wzwjjgvcac81ck9";
};
phases = [ "unpackPhase" "installPhase" ];

View file

@ -49,11 +49,11 @@ in
stdenv.mkDerivation rec {
pname = "wire-desktop";
version = "3.7.2891";
version = "3.9.2895";
src = fetchurl {
url = "https://wire-app.wire.com/linux/debian/pool/main/Wire-${version}_amd64.deb";
sha256 = "0x4nx1rpr9wai0h3n14h1r0f0lj5m29a3pkx1w6mfz5la74iczqc";
sha256 = "0wrn95m64j4b7ym44h9zawq13kg4m12aixlyyzp56bfyczmjq4a5";
};
desktopItem = makeDesktopItem {

View file

@ -1,30 +0,0 @@
{ stdenv, fetchurl, unzip, firefox-unwrapped, makeWrapper }:
stdenv.mkDerivation rec {
name = "chatzilla-0.9.92";
src = fetchurl {
# Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
url = "https://chatzilla.rdmsoft.com/xulrunner/download/${name}.en-US.xulapp";
sha256 = "09asg7ixjrin46xd19ri71g4jdrgb1gg0pk0lwk0dlb1qjxyf1xy";
};
buildInputs = [ unzip makeWrapper ];
buildCommand = ''
mkdir -p $out/libexec/chatzilla
unzip $src -d $out/libexec/chatzilla
makeWrapper ${firefox-unwrapped}/bin/firefox $out/bin/chatzilla \
--add-flags "-app $out/libexec/chatzilla/application.ini"
sed -i $out/libexec/chatzilla/application.ini -e 's/.*MaxVersion.*/MaxVersion=99.*/'
'';
meta = {
homepage = http://chatzilla.hacksrus.com/;
description = "Stand-alone version of Chatzilla, an IRC client";
maintainers = [ stdenv.lib.maintainers.eelco ];
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -2,7 +2,7 @@
libsecret, libGL, libpulseaudio, glib, makeWrapper, makeDesktopItem }:
let
version = "1.1.3-1";
version = "1.1.4-1";
description = ''
An application that runs on your computer in the background and seamlessly encrypts
@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb";
sha256 = "15kyhyx1v4bb2sqzwq7bqrxxw7g733p5jnsgjqka2ygzg6dl2c5n";
sha256 = "16w3l81j10syl2pis08sl752yapbgjy531qs0n1ghmsx2d12n7kl";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -72,6 +72,12 @@ stdenv.mkDerivation rec {
url = "https://git.sagemath.org/sage.git/patch?id2=10407524b18659e14e184114b61c043fb816f3c2&id=c9b0cc9d0b8748ab85e568f8f57f316c5e8cbe54";
sha256 = "0wgp7yvn9sm1ynlhcr4l0hzmvr2n28llg4xc01p6k1zz4im64c17";
})
# https://trac.sagemath.org/ticket/27224
(fetchpatch {
name = "sig_on_in_matrix_misc.patch";
url = "https://git.sagemath.org/sage.git/patch?id=85d25bf2eb73f7d3c6de4ee6222b0c399be43b07";
sha256 = "1ciwhh57pnb9b4i8m3vb07wfsibsay5sg0jp5giq1pzc5zc79a4p";
})
];
# Patches needed because of package updates. We could just pin the versions of

View file

@ -1,12 +1,12 @@
{ stdenv, python3Packages }:
with python3Packages; buildPythonApplication rec {
pname = "pre-commit";
version = "1.14.4";
version = "1.15.1";
src = fetchPypi {
inherit version;
pname = "pre_commit";
sha256 = "1ly40348x9lkzsr7a9grkn7m8m6lhfsv0ihlnp288xbvmrirrmnk";
sha256 = "1c4a6g3x44xkr75196m2qhb7fbm0lv40yv312g4hkl00mq713abm";
};
propagatedBuildInputs = [

View file

@ -1,14 +1,14 @@
{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg }:
pythonPackages.buildPythonApplication rec {
version = "1.0.0";
version = "1.1.1";
name = "streamlink-${version}";
src = fetchFromGitHub {
owner = "streamlink";
repo = "streamlink";
rev = "${version}";
sha256 = "12x8gnp6lv3vi1z2wfb0vjim2wm6abpr938yy48kqj7qff385ihd";
sha256 = "1vyf0pifdqygg98azdkfhy5fdckb0w2ca7c46mkrj452gkvmcq33";
};
checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zafiro-icons";
version = "0.8.7";
version = "0.9";
src = fetchFromGitHub {
owner = "zayronxio";
repo = pname;
rev = "v${version}";
sha256 = "09zdaly9g11k6p36xdd7skgl78s6j78hn3gy1jnpsxh0136md89h";
sha256 = "0zmnhih4gz8bidyzf1wimy85z7zx9i29mv1zirmykpqj819g7mx9";
};
nativeBuildInputs = [ gtk3 ];

View file

@ -1,23 +1,25 @@
{ stdenv, fetchurl }:
{ stdenv, fetchurl, gnome3 }:
let
version = "20190116";
pname = "mobile-broadband-provider-info";
name = "${pname}-${version}";
in
stdenv.mkDerivation rec {
inherit name;
pname = "mobile-broadband-provider-info";
version = "20190116";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${version}/${name}.tar.xz";
url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic";
};
meta = {
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
description = "Mobile broadband service provider database";
homepage = http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProviders;
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.publicDomain;
homepage = https://wiki.gnome.org/Projects/NetworkManager/MobileBroadband/ServiceProviders;
license = licenses.publicDomain;
maintainers = [ ];
platforms = platforms.all;
};
}

View file

@ -9,7 +9,7 @@
, gtk3, glib, glib-networking, gsettings-desktop-schemas
, gnome-desktop, gnome-settings-daemon, gnome-online-accounts
, vino, gnome-bluetooth, tracker, adwaita-icon-theme
, udisks2, gsound, libhandy, cups }:
, udisks2, gsound, libhandy, cups, mutter }:
stdenv.mkDerivation rec {
pname = "gnome-control-center";
@ -60,6 +60,8 @@ stdenv.mkDerivation rec {
# Thumbnailers (for setting user profile pictures)
--prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share"
--prefix XDG_DATA_DIRS : "${librsvg}/share"
# WM keyboard shortcuts
--prefix XDG_DATA_DIRS : "${mutter}/share"
)
for i in $out/share/applications/*; do
substituteInPlace $i --replace "Exec=gnome-control-center" "Exec=$out/bin/gnome-control-center"

View file

@ -1,24 +1,67 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, sqlite, librest
, gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp-av, libgdata, libmediaart
, gmime, json-glib, avahi, tracker, dleyna-server, itstool, totem-pl-parser }:
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, gettext
, gperf
, sqlite
, librest
, libarchive
, libsoup
, gnome3
, libxml2
, lua5_3
, liboauth
, libgdata
, libmediaart
, grilo
, gnome-online-accounts
, gmime
, json-glib
, avahi
, tracker
, dleyna-server
, itstool
, totem-pl-parser
}:
let
stdenv.mkDerivation rec {
pname = "grilo-plugins";
version = "0.3.8";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0nync07gah3jkpb5ph5d3gwbygmabnih2m3hfz7lkvjl2l5pgpac";
};
nativeBuildInputs = [ meson ninja pkgconfig gettext itstool ];
nativeBuildInputs = [
meson
ninja
pkgconfig
gettext
itstool
gperf # for lua-factory
];
buildInputs = [
gnome3.grilo libxml2 gupnp gssdp libgdata
lua5 liboauth gupnp-av sqlite gnome3.gnome-online-accounts
totem-pl-parser librest gmime json-glib
avahi libmediaart tracker dleyna-server
grilo
libxml2
libgdata
lua5_3
liboauth
sqlite
gnome-online-accounts
totem-pl-parser
librest
libarchive
libsoup
gmime
json-glib
avahi
libmediaart
tracker
dleyna-server
];
passthru = {

View file

@ -1,41 +1,90 @@
{ stdenv, fetchurl, pkgconfig, vala, gettext, libxml2, gobject-introspection, gtk-doc, wrapGAppsHook, glib, gssdp, gupnp, gupnp-av, gupnp-dlna, gst_all_1, libgee, libsoup, gtk3, libmediaart, sqlite, systemd, tracker, shared-mime-info, gnome3 }:
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, vala
, gettext
, libxml2
, gobject-introspection
, gtk-doc
, wrapGAppsHook
, python3
, glib
, gssdp
, gupnp
, gupnp-av
, gupnp-dlna
, gst_all_1
, libgee
, libsoup
, gtk3
, libmediaart
, sqlite
, systemd
, tracker
, shared-mime-info
, gnome3
}:
let
stdenv.mkDerivation rec {
pname = "rygel";
version = "0.36.2";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "0.38.0";
# TODO: split out lib
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0i12z6bzfzgcjidhxa2jsvpm4hqpab0s032z13jy2vbifrncfcnk";
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "03ky18hwcz362lbhqm1zm0ax2a075r69xms5cznchn9p9w8z5axc";
};
nativeBuildInputs = [
pkgconfig vala gettext libxml2 gobject-introspection gtk-doc wrapGAppsHook
meson
ninja
pkgconfig
vala
gettext
libxml2
gobject-introspection
gtk-doc
wrapGAppsHook
python3
];
buildInputs = [
glib gssdp gupnp gupnp-av gupnp-dlna libgee libsoup gtk3 libmediaart sqlite systemd tracker shared-mime-info
glib
gssdp
gupnp
gupnp-av
gupnp-dlna
libgee
libsoup
gtk3
libmediaart
sqlite
systemd
tracker
shared-mime-info
] ++ (with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
]);
configureFlags = [
"--with-systemduserunitdir=$(out)/lib/systemd/user"
"--enable-apidocs"
mesonFlags = [
"-Dsystemd-user-units-dir=${placeholder "out"}/lib/systemd/user"
"-Dapi-docs=true"
"--sysconfdir=/etc"
];
installFlags = [
"sysconfdir=$(out)/etc"
];
doCheck = true;
enableParallelBuilding = true;
postPatch = ''
patchShebangs data/xml/process-xml.py
'';
passthru = {
updateScript = gnome3.updateScript {

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-sound-output-device-chooser";
version = "unstable-2019-03-10";
version = "unstable-2019-04-01";
src = fetchFromGitHub {
owner = "kgshank";
repo = "gse-sound-output-device-chooser";
rev = "26c66da6795104802f3240bd9f5741f64367c8e7";
sha256 = "153cdd0pip4nbpc2a9y1v3y7qivafv3wk296zqdamcjrd0p94nqz";
rev = "37098909a50bafe2f2538819f988cb2327ed7c60";
sha256 = "09sbby8zi9xn21lbdry57bp1vwgd5c73anvqpw9css3x2ryda5li";
};
dontBuild = true;

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-window-corner-preview";
version = "unstable-2019-02-27";
version = "unstable-2019-04-03";
src = fetchFromGitHub {
owner = "medenagan";
repo = "window-corner-preview";
rev = "9c1e97c7f7ecd530abac572050f6ec89c1ac7571";
sha256 = "12yx3zfnqkpy9g8mhniw02q61axgb14aqiyj6pdfcdmd6hrgsmz6";
rev = "a95bb1389d94474efab7509aac592fb58fff6006";
sha256 = "03v18j9l0fb64xrg3swf1vcgl0kpgwjlp8ddn068bpvghrsvgfah";
};
dontBuild = true;

View file

@ -1,49 +1,73 @@
{ stdenv, fetchFromGitHub, fetchpatch, autoconf-archive, appstream-glib, intltool, pkgconfig, libtool, wrapGAppsHook,
dbus-glib, libcanberra, gst_all_1, vala, gnome3, gtk3, libxml2, autoreconfHook,
glib, gobject-introspection, libpeas
{ stdenv
, fetchFromGitHub
, autoconf-archive
, appstream-glib
, pkgconfig
, wrapGAppsHook
, libcanberra
, gst_all_1
, vala
, gtk3
, gom
, sqlite
, libxml2
, autoreconfHook
, glib
, gobject-introspection
, libpeas
, gnome-shell
, gsettings-desktop-schemas
, adwaita-icon-theme
, gettext
}:
stdenv.mkDerivation rec {
version = "0.13.4";
name = "gnome-shell-pomodoro-${version}";
pname = "gnome-shell-pomodoro";
version = "0.15.1";
src = fetchFromGitHub {
owner = "codito";
repo = "gnome-pomodoro";
rev = "${version}";
sha256 = "0fiql99nhj168wbfhvzrhfcm4c4569gikd2zaf10vzszdqjahrl1";
rev = version;
sha256 = "0nmgd122gsfka0p50mila88iwrzckq2r36a3h20lswn5qkn321i1";
};
patches = [
# build with Vala ≥ 0.42
(fetchpatch {
url = https://github.com/codito/gnome-pomodoro/commit/36778823ca5bd94b2aa948e5d8718f84d99d9af0.patch;
sha256 = "0a9x0p5wny3an9xawam9nhpffw5m4kgwj5jvv0g6c2lwlfzrx2rh";
})
];
nativeBuildInputs = [
autoreconfHook vala autoconf-archive libtool intltool appstream-glib
wrapGAppsHook pkgconfig libxml2
appstream-glib
autoconf-archive
autoreconfHook
gettext
gobject-introspection
libxml2
pkgconfig
vala
wrapGAppsHook
];
buildInputs = [
glib gobject-introspection libpeas
dbus-glib libcanberra gst_all_1.gstreamer
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
gnome3.gsettings-desktop-schemas
gnome3.gnome-shell gtk3 gnome3.adwaita-icon-theme
adwaita-icon-theme
glib
gnome-shell
gom
gsettings-desktop-schemas
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
gtk3
libcanberra
libpeas
sqlite
];
meta = with stdenv.lib; {
homepage = http://gnomepomodoro.org/;
description = "A time management utility for GNOME based on the pomodoro technique";
homepage = https://gnomepomodoro.org/;
description = "Time management utility for GNOME based on the pomodoro technique";
longDescription = ''
This GNOME utility helps to manage time according to Pomodoro Technique.
It intends to improve productivity and focus by taking short breaks.
'';
maintainers = with maintainers; [ ];
license = licenses.gpl3;
maintainers = with maintainers; [ worldofpeace ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -99,7 +99,6 @@ rec {
(lib.optional (p ? cpu) "-mcpu=${p.cpu}")
(lib.optional (p ? abi) "-mabi=${p.abi}")
(lib.optional (p ? fpu) "-mfpu=${p.fpu}")
(lib.optional (p ? float) "-mfloat=${p.float}")
(lib.optional (p ? float-abi) "-mfloat-abi=${p.float-abi}")
(lib.optional (p ? mode) "-mmode=${p.mode}")
];

View file

@ -18,16 +18,16 @@ let
else "amd64";
major = "11";
update = ".0.2";
build = "9";
repover = "jdk-${major}${update}+${build}";
update = ".0.3";
build = "ga";
repover = "jdk-${major}${update}-${build}";
openjdk = stdenv.mkDerivation {
name = "openjdk-${major}${update}-b${build}";
name = "openjdk-${major}${update}-${build}";
src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/${repover}.tar.gz";
sha256 = "0xc7nksvj72cgw8zrmvlcwaasinpij1j1959398a4nqvzpvpxg30";
sha256 = "1v6pam38iidlhz46046h17hf5kki6n3kl302awjcyxzk7bmkvb8x";
};
nativeBuildInputs = [ pkgconfig ];

View file

@ -21,44 +21,44 @@ let
else
throw "openjdk requires i686-linux or x86_64 linux";
update = "202";
update = "212";
build = "ga";
baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
repover = "jdk8u${update}-${build}";
jdk8 = fetchurl {
url = "${baseurl}/archive/${repover}.tar.gz";
sha256 = "0asx7qkhmrlfmhrljck5gb3yp4v0aa8k35y4xfcph41x0m0mvrdb";
sha256 = "00rl33h4cl4b4p3hcid765h38x2jdkb14ylh8k1zhnd0ka76crgg";
};
langtools = fetchurl {
url = "${baseurl}/langtools/archive/${repover}.tar.gz";
sha256 = "07q6l3slmi5fgwjnsk6bd8miv8glmw15w5f6yyvp8nlp2d54l33n";
sha256 = "0va6g2dccf1ph6mpwxswbks5axp7zz258cl89qq9r8jn4ni04agw";
};
hotspot = fetchurl {
url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
sha256 = "01k4pwhn3nmkzdhdj1v58dgir4iwsj9mm2ml1541z31s53g037cq";
sha256 = "0sgr9df10hs49pjld6c6kr374v4zwd9s52pc3drz68zrlk71ja4s";
};
corba = fetchurl {
url = "${baseurl}/corba/archive/${repover}.tar.gz";
sha256 = "0v39kl2iiyh74p3cp6bjhshkwxpgbffza9abzjgp7cpdfhcc73p0";
sha256 = "1hq0sr4k4k4iv815kg72i9lvd7n7mn5pmw96ckk9p1rnyagn9z03";
};
jdk = fetchurl {
url = "${baseurl}/jdk/archive/${repover}.tar.gz";
sha256 = "0z1cy6aq09j25jyryj47rms15h5175p2h23fg5pv035zapf8nb1b";
sha256 = "1fc59jrbfq8l067mggzy5dnrvni7lwaqd7hahs4nqv87kyrfg545";
};
jaxws = fetchurl {
url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
sha256 = "0y0mk4sra9d29kgx842m5y4bz9gczc9ypkajv6m5igjv7sizzsv7";
sha256 = "1ka2fvyxdmpfhk814s314gx53yvdr19vpsqygx283v9nbq90l1yg";
};
jaxp = fetchurl {
url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
sha256 = "07ssrjhffkdncxxhsbid21hlg51y7js3x7sb4g474vmmi3qj6vmb";
sha256 = "15vlgs5v2ax8sqwh7bg50fnlrwlpnkp0myzrvpqs1mcza8pyasp8";
};
nashorn = fetchurl {
url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
sha256 = "0r0b8ra0ibzbdpxz6nv6i2zrzh2j5sxgprpnl6gf4d9h0i29ickj";
sha256 = "1jzn0yi0v6lda5y8ib07g1p6zymnbcx9yy6iz8niggpm7205y93h";
};
openjdk8 = stdenv.mkDerivation {
name = "openjdk-8u${update}b${build}";
name = "openjdk-8u${update}-${build}";
srcs = [ jdk8 langtools hotspot corba jdk jaxws jaxp nashorn ];
sourceRoot = ".";

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, makeWrapper, jre, ncurses }:
stdenv.mkDerivation rec {
version = "0.10.0-RC1";
version = "0.14.0-RC1";
name = "dotty-bare-${version}";
src = fetchurl {
url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
sha256 = "0s9vh0d6xx99gl0ji0dgmbq36f79c0iwfbrfqwmaclqm9yq5m54k";
sha256 = "0nrgsyhqjlpvnjqgb18pryr8q7knq3dq25jhp98s4wh76nssm1zr";
};
propagatedBuildInputs = [ jre ncurses.dev ] ;

View file

@ -0,0 +1,17 @@
--- a/Lib/py_compile.py
+++ b/Lib/py_compile.py
@@ -139,3 +139,4 @@
source_stats = loader.path_stats(file)
+ source_mtime = 1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime']
bytecode = importlib._bootstrap_external._code_to_bytecode(
- code, source_stats['mtime'], source_stats['size'])
+ code, source_mtime, source_stats['size'])
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -485,5 +485,5 @@
if source_stats is not None:
try:
- source_mtime = int(source_stats['mtime'])
+ source_mtime = 1
except KeyError:
pass

View file

@ -87,6 +87,9 @@ in with passthru; stdenv.mkDerivation {
# (since it will do a futile invocation of gcc (!) to find
# libuuid, slowing down program startup a lot).
(./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch")
] ++ optionals (isPy35 || isPy36) [
# Determinism: Write null timestamps when compiling python files.
./3.5/force_bytecode_determinism.patch
] ++ optionals isPy35 [
# Backports support for LD_LIBRARY_PATH from 3.6
./3.5/ld_library_path.patch
@ -168,8 +171,8 @@ in with passthru; stdenv.mkDerivation {
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
export MACOSX_DEPLOYMENT_TARGET=10.6
'' + optionalString (isPy3k && pythonOlder "3.7") ''
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
# This way python does not try to update them when we freeze timestamps in nix store.
# Determinism: The interpreter is patched to write null timestamps when compiling Python files
# so Python doesn't try to update the bytecode when seeing frozen timestamps in Nix's store.
export DETERMINISTIC_BUILD=1;
'' + optionalString stdenv.hostPlatform.isMusl ''
export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000"

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }:
{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr, buildPackages }:
let
version = "52.9.0";
@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
setOutputFlags = false; # Configure script only understands --includedir
buildInputs = [ readline icu zlib nspr ];
nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ];
nativeBuildInputs = [ autoconf213 pkgconfig perl which buildPackages.python2 zip ];
# Apparently this package fails to build correctly with modern compilers, which at least
# on ARMv6 causes polkit testsuite to break with an assertion failure in spidermonkey.
@ -31,10 +31,12 @@ in stdenv.mkDerivation rec {
})
];
configurePlatforms = [ "host" "target" ];
preConfigure = ''
export CXXFLAGS="-fpermissive"
export LIBXUL_DIST=$out
export PYTHON="${python2.interpreter}"
export PYTHON="${buildPackages.python2.interpreter}"
configureFlagsArray+=("--includedir=$dev/include")
cd js/src
@ -43,7 +45,7 @@ in stdenv.mkDerivation rec {
'';
configureFlags = [
"--with-system-nspr"
"--with-nspr-prefix=${nspr}"
"--with-system-zlib"
"--with-system-icu"
"--with-intl-api"
@ -51,6 +53,12 @@ in stdenv.mkDerivation rec {
"--enable-shared-js"
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-jemalloc";
makeFlags = [
"HOST_CC=${buildPackages.stdenv.cc}/bin/cc"
];
depsBuildBuild = [ buildPackages.stdenv.cc ];
enableParallelBuilding = true;
postInstall = ''

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "ace-${version}";
version = "6.5.4";
version = "6.5.5";
src = fetchurl {
url = "http://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
sha256 = "0qs54p2kwkk05nfkijdn0rksjw86bkdk4mnh2nkxgnv32s6wdkv6";
sha256 = "1r1bvy65n50l6lbxm1k1bscqcv29mpkgp0pgr5cvvv7ldisrjl39";
};
enableParallelBuilding = true;

View file

@ -1,10 +1,17 @@
{ stdenv, autoreconfHook, pkgconfig, fetchFromGitHub, gupnp }:
{ stdenv
, fetchFromGitHub
, fetchpatch
, autoreconfHook
, pkgconfig
, gupnp
}:
stdenv.mkDerivation rec {
pname = "dleyna-core";
name = "${pname}-${version}";
version = "0.6.0";
setupHook = ./setup-hook.sh;
src = fetchFromGitHub {
owner = "01org";
repo = pname;
@ -12,12 +19,25 @@ stdenv.mkDerivation rec {
sha256 = "1x5vj5zfk95avyg6g3nf6gar250cfrgla2ixj2ifn8pcick2d9vq";
};
setupHook = ./setup-hook.sh;
patches = [
./0001-Search-connectors-in-DLEYNA_CONNECTOR_PATH.patch
patches = [ ./0001-Search-connectors-in-DLEYNA_CONNECTOR_PATH.patch ];
# fix build with gupnp 1.2
# https://github.com/intel/dleyna-core/pull/52
(fetchpatch {
url = https://github.com/intel/dleyna-core/commit/41b2e56f67b6fc9c8c256b86957d281644b9b846.patch;
sha256 = "1h758cp65v7qyfpvyqdri7q0gwx85mhdpkb2y8waq735q5q9ib39";
})
];
nativeBuildInputs = [ autoreconfHook pkgconfig ];
propagatedBuildInputs = [ gupnp ];
nativeBuildInputs = [
autoreconfHook
pkgconfig
];
propagatedBuildInputs = [
gupnp
];
meta = with stdenv.lib; {
description = "Library of utility functions that are used by the higher level dLeyna";

View file

@ -1,8 +1,20 @@
{ stdenv, autoreconfHook, pkgconfig, fetchFromGitHub, dleyna-connector-dbus, dleyna-core, gssdp, gupnp, gupnp-av, gupnp-dlna, libsoup, makeWrapper }:
{ stdenv
, fetchurl
, fetchFromGitHub
, autoreconfHook
, pkgconfig
, dleyna-connector-dbus
, dleyna-core
, gssdp
, gupnp
, gupnp-av
, gupnp-dlna
, libsoup
, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "dleyna-renderer";
name = "${pname}-${version}";
version = "0.6.0";
src = fetchFromGitHub {
@ -12,8 +24,27 @@ stdenv.mkDerivation rec {
sha256 = "0jy54aq8hgrvzchrvfzqaj4pcn0cfhafl9bv8a9p6j82yjk4pvpp";
};
nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper ];
buildInputs = [ dleyna-core dleyna-connector-dbus gssdp gupnp gupnp-av gupnp-dlna libsoup ];
patches = [
# fix build with gupnp 1.2
# comes from arch linux packaging https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer
./gupnp-1.2.diff
];
nativeBuildInputs = [
autoreconfHook
pkgconfig
makeWrapper
];
buildInputs = [
dleyna-core
dleyna-connector-dbus
gssdp
gupnp
gupnp-av
gupnp-dlna
libsoup
];
preFixup = ''
wrapProgram "$out/libexec/dleyna-renderer-service" \

View file

@ -0,0 +1,130 @@
configure.ac | 4 ++--
libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++++++++++--
libdleyna/renderer/upnp.c | 4 ++--
3 files changed, 53 insertions(+), 6 deletions(-)
diff --git c/configure.ac i/configure.ac
index 271ee92..364659d 100644
--- c/configure.ac
+++ i/configure.ac
@@ -38,8 +38,8 @@ LT_LANG([C])
PKG_PROG_PKG_CONFIG(0.16)
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28])
PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28])
-PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2])
-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5])
+PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0])
+PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0])
PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5])
PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4])
PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2])
diff --git c/libdleyna/renderer/device.c i/libdleyna/renderer/device.c
index 7acef89..f6d571e 100644
--- c/libdleyna/renderer/device.c
+++ i/libdleyna/renderer/device.c
@@ -2121,33 +2121,80 @@ exit:
return;
}
+typedef struct
+{
+ GMainLoop *loop;
+ GUPnPServiceIntrospection *introspection;
+ GError **error;
+} GetIntrospectionAsyncData;
+
+static void
+get_introspection_async_cb (GUPnPServiceInfo *info,
+ GUPnPServiceIntrospection *introspection,
+ const GError *error,
+ gpointer user_data)
+{
+ GetIntrospectionAsyncData *data = user_data;
+ data->introspection = introspection;
+ if (data->error)
+ *data->error = g_error_copy (error);
+ g_main_loop_quit (data->loop);
+}
+
+static GUPnPServiceIntrospection *
+_gupnp_service_info_get_introspection (GUPnPServiceInfo *info,
+ GError **error)
+{
+ GetIntrospectionAsyncData data;
+ GMainContext *context;
+
+ context = g_main_context_new ();
+ data.loop = g_main_loop_new (context, FALSE);
+ data.error = error;
+
+ g_main_context_push_thread_default (context);
+
+ gupnp_service_info_get_introspection_async (info,
+ get_introspection_async_cb,
+ &data);
+
+ g_main_loop_run (data.loop);
+
+ g_main_context_pop_thread_default (context);
+
+ g_main_loop_unref (data.loop);
+ g_main_context_unref (context);
+
+ return data.introspection;
+}
+
static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy,
GVariant **mpris_tp_speeds,
GPtrArray **upnp_tp_speeds,
double *min_rate,
double *max_rate,
gboolean *can_get_byte_pos)
{
const GUPnPServiceStateVariableInfo *svi;
const GUPnPServiceActionInfo *sai;
GUPnPServiceIntrospection *introspection;
GError *error = NULL;
GVariant *speeds = NULL;
GList *allowed_values;
gpointer weak_ref = NULL;
gboolean device_alive = TRUE;
/* TODO: this weak_ref hack is needed as
gupnp_service_info_get_introspection iterates the main loop.
This can result in our device getting deleted before this
function returns. Ultimately, this code needs to be re-written
to use gupnp_service_info_get_introspection_async but this cannot
really be done until GUPnP provides a way to cancel this function. */
weak_ref = av_proxy;
g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref);
- introspection = gupnp_service_info_get_introspection(
+ introspection = _gupnp_service_info_get_introspection(
GUPNP_SERVICE_INFO(av_proxy),
&error);
@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy,
weak_ref = rc_proxy;
g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref);
- introspection = gupnp_service_info_get_introspection(
+ introspection = _gupnp_service_info_get_introspection(
GUPNP_SERVICE_INFO(rc_proxy),
&error);
diff --git c/libdleyna/renderer/upnp.c i/libdleyna/renderer/upnp.c
index 17cbda7..068912b 100644
--- c/libdleyna/renderer/upnp.c
+++ i/libdleyna/renderer/upnp.c
@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp,
udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy);
- ip_address = gupnp_context_get_host_ip(
- gupnp_control_point_get_context(cp));
+ ip_address = gssdp_client_get_host_ip(
+ GSSDP_CLIENT(gupnp_control_point_get_context(cp)));
if (!udn || !ip_address)
goto on_error;

View file

@ -1,8 +1,20 @@
{ stdenv, autoreconfHook, makeWrapper, pkgconfig, fetchFromGitHub, dleyna-core, dleyna-connector-dbus, gssdp, gupnp, gupnp-av, gupnp-dlna, libsoup }:
{ stdenv
, fetchFromGitHub
, fetchpatch
, autoreconfHook
, makeWrapper
, pkgconfig
, dleyna-core
, dleyna-connector-dbus
, gssdp
, gupnp
, gupnp-av
, gupnp-dlna
, libsoup
}:
stdenv.mkDerivation rec {
pname = "dleyna-server";
name = "${pname}-${version}";
version = "0.6.0";
src = fetchFromGitHub {
@ -12,8 +24,30 @@ stdenv.mkDerivation rec {
sha256 = "13a2i6ms27s46yxdvlh2zm7pim7jmr5cylnygzbliz53g3gxxl3j";
};
nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper ];
buildInputs = [ dleyna-core dleyna-connector-dbus gssdp gupnp gupnp-av gupnp-dlna libsoup ];
patches = [
# fix build with gupnp 1.2
# https://github.com/intel/dleyna-server/pull/161
(fetchpatch {
url = https://github.com/intel/dleyna-server/commit/96c01c88363d6e5e9b7519bc4e8b5d86cf783e1f.patch;
sha256 = "0p8fn331x2whvn6skxqvfzilx0m0yx2q5mm2wh2625l396m3fzmm";
})
];
nativeBuildInputs = [
autoreconfHook
pkgconfig
makeWrapper
];
buildInputs = [
dleyna-core
dleyna-connector-dbus
gssdp
gupnp
gupnp-av
gupnp-dlna
libsoup
];
preFixup = ''
wrapProgram "$out/libexec/dleyna-server-service" \

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "double-conversion-${version}";
version = "3.1.3";
version = "3.1.4";
src = fetchFromGitHub {
owner = "google";
repo = "double-conversion";
rev = "v${version}";
sha256 = "082w15xq8f4c422a71phvcahgc8vmqrig97av9g9628q5n2ybbgg";
sha256 = "13xwcqk2c0q8c1siw566clxcpvp0xrxvb72mra42wa3nvq9wlsv6";
};
nativeBuildInputs = [ cmake ];

View file

@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
# patch taken from gtk_doc
./respect-xml-catalog-files-var.patch
./use-flatpak-from-path.patch
./unset-env-vars.patch
];
nativeBuildInputs = [

View file

@ -0,0 +1,10 @@
--- a/common/flatpak-run.c
+++ b/common/flatpak-run.c
@@ -1192,6 +1192,7 @@ static const ExportData default_exports[] = {
{"PERLLIB", NULL},
{"PERL5LIB", NULL},
{"XCURSOR_PATH", NULL},
+ {"GDK_PIXBUF_MODULE_FILE", NULL},
};
static const ExportData no_ld_so_cache_exports[] = {

View file

@ -214,10 +214,6 @@ stdenv.mkDerivation ({
// lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) {
preInstall = null; # clobber the native hook
dontStrip = true;
separateDebugInfo = false; # this is currently broken for crossDrv
# To avoid a dependency on the build system 'bash'.
preFixup = ''
rm -f $bin/bin/{ldd,tzselect,catchsegv,xtrace}

View file

@ -0,0 +1,73 @@
{ stdenv
, fetchurl
, fetchpatch
, meson
, ninja
, pkgconfig
, glib
, python3
, sqlite
, gdk_pixbuf
, gnome3
, gobject-introspection
}:
stdenv.mkDerivation rec {
pname = "gom";
version = "0.3.3";
outputs = [ "out" "py" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1n1n226dyb3q98216aah87in9hhjcwsbpspsdqqfswz2bx5y6mxc";
};
patches = [
# Needed to apply the next patch
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gom/commit/e8b7c314ce61d459132cf03c9e455d2a01fdc6ea.patch";
sha256 = "0d7g3nm5lrfhfx9ly8qgf5bfp12kvr7m1xmlgin2q8vqpn0r2ggp";
})
# https://gitlab.gnome.org/GNOME/gom/merge_requests/3
(fetchpatch {
url = "https://gitlab.gnome.org/worldofpeace/gom/commit/b621c15600b1c32826c9878565eb2398a50907f2.patch";
sha256 = "1hqck9bb7sxn4akisnn26sbddlphjsavgksick5k4h3rsc0xwx1v";
})
./longer-stress-timeout.patch
];
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkgconfig
];
buildInputs = [
gdk_pixbuf
glib
sqlite
python3.pkgs.pygobject3
];
mesonFlags = [
"-Dpygobject-override-dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
];
doCheck = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
description = "A GObject to SQLite object mapper";
homepage = https://wiki.gnome.org/Projects/Gom;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = gnome3.maintainers;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/tests/meson.build b/tests/meson.build
index 1df4884..d7a6f5d 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -25,7 +25,7 @@ test('test-gom-find', test_find)
test_stress = executable('test-gom-stress', 'test-gom-stress.c',
dependencies: [libgom_dep])
-test('test-gom-stress', test_stress, timeout: 300)
+test('test-gom-stress', test_stress, timeout: 500)
test_transform = executable('test-gom-transform', 'test-gom-transform.c',
c_args: '-DIMAGE="@0@/gnome.png"'.format(meson.current_source_dir()),

View file

@ -1,26 +1,62 @@
{ stdenv, fetchurl, pkgconfig, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, libsoup, gtk3, glib }:
{ stdenv
, fetchurl
, meson
, ninja
, pkgconfig
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, libsoup
, gtk3
, glib
, gnome3
}:
stdenv.mkDerivation rec {
name = "gssdp-${version}";
version = "1.0.2";
pname = "gssdp";
version = "1.2.0";
outputs = [ "out" "bin" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gssdp/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "1p1m2m3ndzr2whipqw4vfb6s6ia0g7rnzzc4pnq8b8g1qw4prqd1";
url = "mirror://gnome/sources/gssdp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1l80znxzzpb2fmsrjf3hygi9gcxx5r405qrk5430nbsjgxafzjr2";
};
nativeBuildInputs = [ pkgconfig gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [ libsoup gtk3 ];
propagatedBuildInputs = [ glib ];
nativeBuildInputs = [
meson
ninja
pkgconfig
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook_xml_dtd_412
];
configureFlags = [
"--enable-gtk-doc"
buildInputs = [
libsoup
gtk3
];
propagatedBuildInputs = [
glib
];
mesonFlags = [
"-Dgtk_doc=true"
];
doCheck = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
description = "GObject-based API for handling resource discovery and announcement over SSDP";
homepage = http://www.gupnp.org/;

View file

@ -1,18 +1,40 @@
{ stdenv, fetchurl, pkgconfig, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, gupnp, glib, libxml2 }:
{ stdenv
, fetchurl
, pkgconfig
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, glib
, libxml2
, gnome3
}:
stdenv.mkDerivation rec {
name = "gupnp-av-${version}";
pname = "gupnp-av";
version = "0.12.11";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp-av/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8";
};
nativeBuildInputs = [ pkgconfig gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [ gupnp glib libxml2 ];
nativeBuildInputs = [
pkgconfig
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook_xml_dtd_412
];
buildInputs = [
glib
libxml2
];
configureFlags = [
"--enable-gtk-doc"
@ -20,6 +42,12 @@ stdenv.mkDerivation rec {
doCheck = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
homepage = http://gupnp.org/;
description = "A collection of helpers for building AV (audio/video) applications using GUPnP";

View file

@ -1,18 +1,40 @@
{ stdenv, fetchurl, pkgconfig, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, gupnp, gst_all_1 }:
{ stdenv
, fetchurl
, pkgconfig
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, libxml2
, gst_all_1
, gnome3
}:
stdenv.mkDerivation rec {
name = "gupnp-dlna-${version}";
pname = "gupnp-dlna";
version = "0.10.5";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp-dlna/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj";
};
nativeBuildInputs = [ pkgconfig gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [ gupnp gst_all_1.gst-plugins-base ];
nativeBuildInputs = [
pkgconfig
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook_xml_dtd_412
];
buildInputs = [
libxml2
gst_all_1.gst-plugins-base
];
configureFlags = [
"--enable-gtk-doc"
@ -25,6 +47,12 @@ stdenv.mkDerivation rec {
patchShebangs tests/test-discoverer.sh.in
'';
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/GUPnP/;
description = "Library to ease DLNA-related bits for applications using GUPnP";

View file

@ -1,18 +1,51 @@
{ stdenv, fetchurl, pkgconfig, gettext, gobject-introspection, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, gupnp }:
{ stdenv
, fetchurl
, fetchpatch
, autoreconfHook
, pkgconfig
, gettext
, gobject-introspection
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, glib
, gupnp
, gnome3
}:
stdenv.mkDerivation rec {
name = "gupnp-igd-${version}";
pname = "gupnp-igd";
version = "0.2.5";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp-igd/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "081v1vhkbz3wayv49xfiskvrmvnpx93k25am2wnarg5cifiiljlb";
};
nativeBuildInputs = [ pkgconfig gettext gobject-introspection gtk-doc docbook_xsl docbook_xml_dtd_412 ];
propagatedBuildInputs = [ glib gupnp ];
patches = [
# Add gupnp-1.2 compatibility
(fetchpatch {
url = https://gitlab.gnome.org/GNOME/gupnp-igd/commit/63531558a16ac2334a59f627b2fca5576dcfbb2e.patch;
sha256 = "0s8lkyy9fnnnnkkqwbk6gxb7795bb1kl1swk5ldjnlrzhfcy1ab2";
})
];
nativeBuildInputs = [
pkgconfig
autoreconfHook
gettext
gobject-introspection
gtk-doc
docbook_xsl
docbook_xml_dtd_412
];
propagatedBuildInputs = [
glib
gupnp
];
configureFlags = [
"--enable-gtk-doc"
@ -20,6 +53,12 @@ stdenv.mkDerivation rec {
doCheck = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
description = "Library to handle UPnP IGD port mapping";
homepage = http://www.gupnp.org/;

View file

@ -1,14 +1,32 @@
{ stdenv, fetchurl, pkgconfig, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, docbook_xml_dtd_44, glib, gssdp, libsoup, libxml2, libuuid }:
{ stdenv
, fetchurl
, fetchpatch
, meson
, ninja
, pkgconfig
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, docbook_xml_dtd_44
, glib
, gssdp
, libsoup
, libxml2
, libuuid
, gnome3
}:
stdenv.mkDerivation rec {
name = "gupnp-${version}";
version = "1.0.3";
pname = "gupnp";
version = "1.2.0";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp/${stdenv.lib.versions.majorMinor version}/gupnp-${version}.tar.xz";
sha256 = "1fyb6yn75vf2y1b8nbc1df572swzr74yiwy3v3g5xn36wlp1cjvr";
url = "mirror://gnome/sources/gupnp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0911lv1bivsyv9wwdxm0i1w4r89j0vyyqp200gsfdnzk6v1a4x7x";
};
patches = [
@ -19,17 +37,54 @@ stdenv.mkDerivation rec {
# at least until Requires.internal or something is implemented
# https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/7
./fix-requires.patch
# fix deadlock in gupnp-igd tests
(fetchpatch {
url = https://gitlab.gnome.org/GNOME/gupnp/commit/d208562657f62b34759896ca9e974bd582d1f963.patch;
sha256 = "02kzsb4glxhgb1npf6qqgafiki0ws75sly5h470431mihc6sgp4f";
})
# fix breakage in gupnp-igd tests
(fetchpatch {
url = https://gitlab.gnome.org/GNOME/gupnp/commit/0648399acb989473119fe59d0b9f65c923e69483.patch;
sha256 = "0ba0rngk3a4n3z4dmq06wzgh0n3q9la1nr25qdxqbwlszmxfxpjf";
})
];
nativeBuildInputs = [ pkgconfig gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_44 ];
propagatedBuildInputs = [ glib gssdp libsoup libxml2 libuuid ];
nativeBuildInputs = [
meson
ninja
pkgconfig
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook_xml_dtd_412
docbook_xml_dtd_44
];
configureFlags = [
"--enable-gtk-doc"
buildInputs = [
libuuid
];
propagatedBuildInputs = [
glib
gssdp
libsoup
libxml2
];
mesonFlags = [
"-Dgtk_doc=true"
];
doCheck = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
homepage = http://www.gupnp.org/;
description = "An implementation of the UPnP specification";

View file

@ -1,9 +1,26 @@
--- a/gupnp-1.0.pc.in
+++ b/gupnp-1.0.pc.in
@@ -8,4 +8,5 @@
Version: @VERSION@
Libs: -L${libdir} -lgupnp-1.0
Cflags: -I${includedir}/gupnp-1.0
-Requires.private: gssdp-1.0 libxml-2.0 libsoup-2.4 @UUID_LIBS@
+Requires: glib-2.0 gobject-2.0 gssdp-1.0 libxml-2.0 libsoup-2.4
+Requires.private: @UUID_LIBS@
--- a/libgupnp/meson.build
+++ b/libgupnp/meson.build
@@ -110,6 +110,7 @@ pkg.generate(
libraries : libgupnp,
subdirs: 'gupnp-1.2',
name : 'gupnp-1.2',
+ requires: requires,
description : 'GObject-based UPnP library',
version : meson.project_version(),
filebase : 'gupnp-1.2'
--- a/meson.build
+++ a/meson.build
@@ -18,6 +18,13 @@ add_global_arguments('-DHAVE_CONFIG_H=1', language : 'c')
guul = subproject('guul', default_options : ['default_library=static'])
+requires = [
+ dependency('glib-2.0', version : '>= 2.44'),
+ dependency('gssdp-1.2', version : '>= 1.1'),
+ dependency('libsoup-2.4', version : '>= 2.48.0'),
+ dependency('libxml-2.0')
+]
+
dependencies = [
dependency('glib-2.0', version : '>= 2.44'),
dependency('gio-2.0', version : '>= 2.44'),

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, makeWrapper
, perlPackages, libxml2 }:
, perlPackages, libxml2, libiconv }:
stdenv.mkDerivation rec {
name = "hivex-${version}";
@ -15,12 +15,17 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
autoreconfHook makeWrapper libxml2
] ++ (with perlPackages; [ perl IOStringy ]);
]
++ (with perlPackages; [ perl IOStringy ])
++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
postInstall = ''
for bin in $out/bin/*; do
wrapProgram "$bin" --prefix "PATH" : "$out/bin"
done
wrapProgram $out/bin/hivexregedit \
--set PERL5LIB "$out/${perlPackages.perl.libPrefix}" \
--prefix "PATH" : "$out/bin"
wrapProgram $out/bin/hivexml \
--prefix "PATH" : "$out/bin"
'';
meta = with stdenv.lib; {
@ -28,6 +33,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl2;
homepage = https://github.com/libguestfs/hivex;
maintainers = with maintainers; [offline];
platforms = platforms.linux;
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, gettext, pth, libgpgerror }:
{ fetchurl, stdenv, gettext, pth, libgpgerror, buildPackages }:
stdenv.mkDerivation rec {
pname = "libassuan";
@ -12,7 +12,12 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" "info" ];
outputBin = "dev"; # libassuan-config
buildInputs = [ libgpgerror pth gettext];
depsBuildBuild = [ buildPackages.stdenv.cc ];
buildInputs = [ pth gettext ];
configureFlags = [
"--with-libgpg-error-prefix=${libgpgerror.dev}"
];
doCheck = true;

View file

@ -3,15 +3,15 @@
stdenv.mkDerivation rec {
pname = "libimobiledevice";
version = "2018-07-24";
version = "2019-04-04";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "d7a2e04d2e7880c56116fd35489a7f98755501b7";
sha256 = "0cj0j10lmfr28c7nh79n2mcmy31xx50g93h0bqs0l7y76ph4dqkc";
rev = "eea4f1be9107c8ab621fd71460e47d0d38e55d71";
sha256 = "0wh6z5f5znlqs0grh7c8jj1s411azgyy45klmql5kj3p8qqybqrs";
};
outputs = [ "out" "dev" ];
@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
'';
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ infinisil ];
};
}

View file

@ -5,15 +5,15 @@ let
in
stdenv.mkDerivation rec {
pname = "libplist";
version = "2019-01-20";
version = "2019-04-04";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "libimobiledevice";
repo = pname;
rev = "bec850fe399639f3b8582a39386216970dea15ed";
sha256 = "197yw8xz8x2xld8b6975scgnl30j4ibm9llmzljyqngs0zsdwnin";
rev = "42bb64ba966082b440cb68cbdadf317f44710017";
sha256 = "19yw80yblq29i2jx9yb7bx0lfychy9dncri3fk4as35kq5bf26i8";
};
outputs = ["bin" "dev" "out" "py"];
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
description = "A library to handle Apple Property List format in binary or XML";
homepage = https://github.com/libimobiledevice/libplist;
license = licenses.lgpl21Plus;
maintainers = [ ];
maintainers = with maintainers; [ infinisil ];
platforms = platforms.linux;
};
}

View file

@ -2,15 +2,15 @@
stdenv.mkDerivation rec {
pname = "libusbmuxd";
version = "2019-01-18";
version = "2019-03-23";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "libimobiledevice";
repo = pname;
rev = "c75605d862cd1c312494f6c715246febc26b2e05";
sha256 = "0467a045k4znmaz61i7a2s7yywj67q830ja6zn7z39k5pqcl2z4p";
rev = "873252dc8b4e469c7dc692064ac616104fca5f65";
sha256 = "0qx3q0n1f2ajfm3vnairikayzln6iyb2y0i7sqfl8mj45ahl6wyj";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/libimobiledevice/libusbmuxd;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ infinisil ];
};
}

View file

@ -2,6 +2,7 @@
, intltool, spidermonkey_52 , gobject-introspection, libxslt, docbook_xsl, dbus
, docbook_xml_dtd_412, gtk-doc, coreutils
, useSystemd ? stdenv.isLinux, systemd
, withGnome ? true
, doCheck ? stdenv.isLinux
}:
@ -42,11 +43,12 @@ stdenv.mkDerivation rec {
outputs = [ "bin" "dev" "out" ]; # small man pages in $bin
nativeBuildInputs =
[ gtk-doc pkgconfig autoreconfHook intltool gobject-introspection perl ]
[ glib gtk-doc pkgconfig intltool perl ]
++ [ libxslt docbook_xsl docbook_xml_dtd_412 ]; # man pages
buildInputs =
[ glib expat pam spidermonkey_52 gobject-introspection ]
++ stdenv.lib.optional useSystemd systemd;
[ glib expat pam spidermonkey_52 ]
++ stdenv.lib.optional useSystemd systemd
++ stdenv.lib.optional withGnome gobject-introspection;
NIX_CFLAGS_COMPILE = " -Wno-deprecated-declarations "; # for polkit 0.114 and glib 2.56
@ -73,7 +75,7 @@ stdenv.mkDerivation rec {
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
"--with-polkitd-user=polkituser" #TODO? <nixos> config.ids.uids.polkituser
"--with-os-type=NixOS" # not recognized but prevents impurities on non-NixOS
"--enable-introspection"
(if withGnome then "--enable-introspection" else "--disable-introspection")
] ++ stdenv.lib.optional (!doCheck) "--disable-test";
makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0 INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";

View file

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, qmake4Hook , qt4, libX11, libXext }:
stdenv.mkDerivation rec {
name = "qtstyleplugin-kvantum-qt4-${version}";
version = "0.10.4";
pname = "qtstyleplugin-kvantum-qt4";
version = "0.11.0";
src = fetchFromGitHub {
owner = "tsujan";
repo = "Kvantum";
rev = "0527bb03f2252269fd382e11181a34ca72c96b4b";
sha256 = "0ky44s1fgqxraywagx1mv07yz76ppgiz3prq447db78wkwqg2d8p";
rev = "V${version}";
sha256 = "0aqlv7mj7r9vjm6pvb8pv3cyx35lgz8rjjas3k8wfdr3sqyyy25g";
};
nativeBuildInputs = [ qmake4Hook ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "qtstyleplugin-kvantum";
version = "0.10.9";
version = "0.11.0";
src = fetchFromGitHub {
owner = "tsujan";
repo = "Kvantum";
rev = "V${version}";
sha256 = "1zpq6wsl57kfx0jf0rkxf15ic22ihazj03i3kfiqb07vcrs2cka9";
sha256 = "0aqlv7mj7r9vjm6pvb8pv3cyx35lgz8rjjas3k8wfdr3sqyyy25g";
};
nativeBuildInputs = [ qmake qttools ];

View file

@ -1,2 +1,3 @@
source 'https://rubygems.org'
gem 'cocoapods'
source 'https://rubygems.org' do
gem 'cocoapods'
end

View file

@ -0,0 +1,5 @@
source 'https://rubygems.org' do
# We need to specify a version including prerelease to pick up prereleases.
# This should pick up all future releases / prereleases.
gem 'cocoapods', '>=1.7.0.beta.1'
end

View file

@ -0,0 +1,76 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.0)
activesupport (4.2.11.1)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
atomos (0.1.3)
claide (1.0.2)
cocoapods (1.7.0.beta.3)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.7.0.beta.3)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 1.2.2, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-stats (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.3.1, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.2.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.6.6)
nap (~> 1.0)
ruby-macho (~> 1.4)
xcodeproj (>= 1.8.2, < 2.0)
cocoapods-core (1.7.0.beta.3)
activesupport (>= 4.0.2, < 6)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.2.2)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.0)
cocoapods-stats (1.1.0)
cocoapods-trunk (1.3.1)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.1.0)
colored2 (3.1.2)
concurrent-ruby (1.1.5)
escape (0.0.4)
fourflusher (2.2.0)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
minitest (5.11.3)
molinillo (0.6.6)
nanaimo (0.2.6)
nap (1.1.0)
netrc (0.11.0)
ruby-macho (1.4.0)
thread_safe (0.3.6)
tzinfo (1.2.5)
thread_safe (~> 0.1)
xcodeproj (1.8.2)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.2.6)
PLATFORMS
ruby
DEPENDENCIES
cocoapods (>= 1.7.0.beta.1)!
BUNDLED WITH
1.17.2

View file

@ -2,7 +2,7 @@ GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.0)
activesupport (4.2.11)
activesupport (4.2.11.1)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
@ -32,7 +32,7 @@ GEM
activesupport (>= 4.0.2, < 6)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
cocoapods-deintegrate (1.0.3)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.2.2)
cocoapods-plugins (1.0.0)
nap
@ -43,7 +43,7 @@ GEM
netrc (~> 0.11)
cocoapods-try (1.1.0)
colored2 (3.1.2)
concurrent-ruby (1.1.4)
concurrent-ruby (1.1.5)
escape (0.0.4)
fourflusher (2.2.0)
fuzzy_match (2.0.4)
@ -59,7 +59,7 @@ GEM
thread_safe (0.3.6)
tzinfo (1.2.5)
thread_safe (~> 0.1)
xcodeproj (1.8.1)
xcodeproj (1.8.2)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
@ -70,7 +70,7 @@ PLATFORMS
ruby
DEPENDENCIES
cocoapods
cocoapods!
BUNDLED WITH
1.17.2

View file

@ -1,9 +1,13 @@
{ lib, bundlerEnv, ruby }:
{ lib, bundlerApp, ruby
, beta ? false }:
bundlerEnv rec {
bundlerApp rec {
inherit ruby;
pname = "cocoapods";
gemdir = ./.;
gemfile = if beta then ./Gemfile-beta else ./Gemfile;
lockfile = if beta then ./Gemfile-beta.lock else ./Gemfile.lock;
gemset = if beta then ./gemset-beta.nix else ./gemset.nix;
exes = [ "pod" ];
meta = with lib; {
description = "CocoaPods manages dependencies for your Xcode projects.";
@ -12,6 +16,7 @@ bundlerEnv rec {
platforms = platforms.darwin;
maintainers = with maintainers; [
peterromfeldhk
lilyball
];
};
}

View file

@ -0,0 +1,300 @@
{
activesupport = {
dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
type = "gem";
};
version = "4.2.11.1";
};
atomos = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
type = "gem";
};
version = "0.1.3";
};
CFPropertyList = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ykjag3k5msz3sf1j91rb55da2xh596y06m3a4yl79fiy2id0w9z";
type = "gem";
};
version = "3.0.0";
};
claide = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0az54rp691hc42yl1xyix2cxv58byhaaf4gxbpghvvq29l476rzc";
type = "gem";
};
version = "1.0.2";
};
cocoapods = {
dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03xnnj5di75wqsd1c9ca9gfnzc4lqr8k2cx5gca5979b7kxb2x1z";
type = "gem";
};
version = "1.7.0.beta.3";
};
cocoapods-core = {
dependencies = ["activesupport" "fuzzy_match" "nap"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wwnjdcwj4nc1cjl9pf0dlh83x2s6x0v491fpcmw3342vbs0v4sq";
type = "gem";
};
version = "1.7.0.beta.3";
};
cocoapods-deintegrate = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bf524f1za92i6rlr4cr6jm3c4vfjszsdc9lsr6wk5125c76ipzn";
type = "gem";
};
version = "1.0.4";
};
cocoapods-downloader = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09fd4zaqkz8vz3djplacngcs4n0j6j956wgq43s1y6bwl0zyjmd3";
type = "gem";
};
version = "1.2.2";
};
cocoapods-plugins = {
dependencies = ["nap"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16na82sfyc8801qs1n22nwq486s4j7yj6rj7fcp8cbxmj371fpbj";
type = "gem";
};
version = "1.0.0";
};
cocoapods-search = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "02wmy5rbjk29c65zn62bffxv30qs11slql23qx65snkm0vd93mn6";
type = "gem";
};
version = "1.0.0";
};
cocoapods-stats = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xhdh5v94p6l612rwrk290nd2hdfx8lbaqfbkmj34md218kilqww";
type = "gem";
};
version = "1.1.0";
};
cocoapods-trunk = {
dependencies = ["nap" "netrc"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1plssgabdv6hcaq1c3gf43kf1d2prx883q8lzdr6chi5byzzs3yl";
type = "gem";
};
version = "1.3.1";
};
cocoapods-try = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gf2zjmcjhh9psq15yfy82wz5jnlihf5bcw79f8hlv4cnqyspncj";
type = "gem";
};
version = "1.1.0";
};
colored2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
type = "gem";
};
version = "3.1.2";
};
concurrent-ruby = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
type = "gem";
};
version = "1.1.5";
};
escape = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0sa1xkfc9jvkwyw1jbz3jhkq0ms1zrvswi6mmfiwcisg5fp497z4";
type = "gem";
};
version = "0.0.4";
};
fourflusher = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1d2ksz077likjv8dcxy1rnqcjallbfa7yk2wvix3228gq7a4jkq3";
type = "gem";
};
version = "2.2.0";
};
fuzzy_match = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19gw1ifsgfrv7xdi6n61658vffgm1867f4xdqfswb2b5h6alzpmm";
type = "gem";
};
version = "2.0.4";
};
gh_inspector = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
type = "gem";
};
version = "1.1.3";
};
i18n = {
dependencies = ["concurrent-ruby"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
type = "gem";
};
version = "0.9.5";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
type = "gem";
};
version = "5.11.3";
};
molinillo = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hh40z1adl4lw16dj4hxgabx4rr28mgqycih1y1d91bwww0jjdg6";
type = "gem";
};
version = "0.6.6";
};
nanaimo = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
type = "gem";
};
version = "0.2.6";
};
nap = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
type = "gem";
};
version = "1.1.0";
};
netrc = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
type = "gem";
};
version = "0.11.0";
};
ruby-macho = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lhdjn91jkifsy2hzq2hgcm0pp8pbik87m58zmw1ifh6hkp9adjb";
type = "gem";
};
version = "1.4.0";
};
thread_safe = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
type = "gem";
};
version = "0.3.6";
};
tzinfo = {
dependencies = ["thread_safe"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
type = "gem";
};
version = "1.2.5";
};
xcodeproj = {
dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ji3wmpr6xm4172vxh9y6731vm2xrvv7ccwk4ijd5n4if1dakm03";
type = "gem";
};
version = "1.8.2";
};
}

View file

@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pqr25wmhvvlg8av7bi5p5c7r5464clhhhhv45j63bh7xw4ad6n4";
sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
type = "gem";
};
version = "4.2.11";
version = "4.2.11.1";
};
atomos = {
source = {
@ -61,10 +61,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0m3hi4va9cr7anxkjf44as14j1hsrvw00bzvz7c906hyb8qcm4fp";
sha256 = "0bf524f1za92i6rlr4cr6jm3c4vfjszsdc9lsr6wk5125c76ipzn";
type = "gem";
};
version = "1.0.3";
version = "1.0.4";
};
cocoapods-downloader = {
groups = ["default"];
@ -133,10 +133,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1";
sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
type = "gem";
};
version = "1.1.4";
version = "1.1.5";
};
escape = {
source = {
@ -254,9 +254,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "13z3109lwq632vhazndqjlccpwadljg58sflbyl0m57j9d4blv2y";
sha256 = "0ji3wmpr6xm4172vxh9y6731vm2xrvv7ccwk4ijd5n4if1dakm03";
type = "gem";
};
version = "1.8.1";
version = "1.8.2";
};
}

View file

@ -1,11 +1,10 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bash ruby bundler bundix
#! nix-shell -i bash -p bash bundix bundler
BUNDIX_CACHE="$(mktemp -d)"
set -e
rm -f Gemfile.lock
bundler package --path "$BUNDIX_CACHE"
bundix --bundle-pack-path="$BUNDIX_CACHE"
rm -rf "$BUNDIX_CACHE"
rm -rf .bundle
rm -f Gemfile.lock Gemfile-beta.lock
bundler lock
BUNDLE_GEMFILE=Gemfile-beta bundler lock --lockfile=Gemfile-beta.lock
bundix --gemfile=Gemfile --lockfile=Gemfile.lock --gemset=gemset.nix
bundix --gemfile=Gemfile-beta --lockfile=Gemfile-beta.lock --gemset=gemset-beta.nix

View file

@ -94,4 +94,18 @@ nodePackages // {
webtorrent-cli = nodePackages.webtorrent-cli.override {
buildInputs = [ nodePackages.node-gyp-build ];
};
joplin = nodePackages.joplin.override {
nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = with pkgs; [
# sharp, dep list:
# http://sharp.pixelplumbing.com/en/stable/install/
cairo expat fontconfig freetype fribidi gettext giflib
glib harfbuzz lcms libcroco libexif libffi libgsf
libjpeg_turbo libpng librsvg libtiff vips
libwebp libxml2 pango pixman zlib
nodePackages.node-pre-gyp
];
};
}

View file

@ -48,6 +48,7 @@
, "indium"
, "jake"
, "javascript-typescript-langserver"
, "joplin"
, "jsdoc"
, "jshint"
, "json"

File diff suppressed because it is too large Load diff

View file

@ -1714,13 +1714,13 @@ let
sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
};
};
"semver-5.6.0" = {
"semver-5.7.0" = {
name = "semver";
packageName = "semver";
version = "5.6.0";
version = "5.7.0";
src = fetchurl {
url = "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz";
sha512 = "RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==";
url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz";
sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==";
};
};
"set-blocking-2.0.0" = {
@ -2581,7 +2581,7 @@ in
sources."safe-buffer-5.1.2"
sources."safer-buffer-2.1.2"
sources."sax-1.2.4"
sources."semver-5.6.0"
sources."semver-5.7.0"
sources."set-blocking-2.0.0"
sources."signal-exit-3.0.2"
sources."string-width-1.0.2"
@ -2606,10 +2606,10 @@ in
pnpm = nodeEnv.buildNodePackage {
name = "pnpm";
packageName = "pnpm";
version = "3.0.1";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/pnpm/-/pnpm-3.0.1.tgz";
sha512 = "hYWjRN7U96zHDvgQxGyYaMF469Uzx0iZo2ej1VMUSaOULUFI9ue7dDku29AOf/E0+5Zd9zFs0qE0Tuq5Zsrk0A==";
url = "https://registry.npmjs.org/pnpm/-/pnpm-3.1.0.tgz";
sha512 = "+Ywkb2rg5uX6/CppRBFmefrQn8EiXK8H0ntRoWHuQAzLErrVXtbyuRKhWMUG5ewr9raQUOACou/uaThE9jzhwA==";
};
buildInputs = globalBuildInputs;
meta = {

View file

@ -4,13 +4,13 @@
let
sources = {
"@types/node-8.10.44" = {
"@types/node-8.10.45" = {
name = "_at_types_slash_node";
packageName = "@types/node";
version = "8.10.44";
version = "8.10.45";
src = fetchurl {
url = "https://registry.npmjs.org/@types/node/-/node-8.10.44.tgz";
sha512 = "HY3SK7egERHGUfY8p6ztXIEQWcIPHouYhCGcLAPQin7gE2G/fALFz+epnMwcxKUS6aKqTVoAFdi+t1llQd3xcw==";
url = "https://registry.npmjs.org/@types/node/-/node-8.10.45.tgz";
sha512 = "tGVTbA+i3qfXsLbq9rEq/hezaHY55QxQLeXQL2ejNgFAxxrgu8eMmYIOsRcl7hN1uTLVsKOOYacV/rcJM3sfgQ==";
};
};
"JSV-4.0.2" = {
@ -1075,6 +1075,15 @@ let
sha512 = "6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==";
};
};
"commander-2.20.0" = {
name = "commander";
packageName = "commander";
version = "2.20.0";
src = fetchurl {
url = "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz";
sha512 = "7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==";
};
};
"component-emitter-1.2.1" = {
name = "component-emitter";
packageName = "component-emitter";
@ -3613,6 +3622,15 @@ let
sha512 = "RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==";
};
};
"semver-5.7.0" = {
name = "semver";
packageName = "semver";
version = "5.7.0";
src = fetchurl {
url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz";
sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==";
};
};
"set-blocking-2.0.0" = {
name = "set-blocking";
packageName = "set-blocking";
@ -4518,7 +4536,7 @@ in
sources."chalk-1.1.3"
sources."chmodr-1.2.0"
sources."colors-1.3.3"
sources."commander-2.19.0"
sources."commander-2.20.0"
sources."concat-map-0.0.1"
sources."convert-source-map-1.6.0"
sources."core-js-2.6.5"
@ -4623,7 +4641,7 @@ in
sha512 = "MMiK5sFfIocNMWCc5PshUCAe6aY4P13/GCmSwudOziA/pFdQMHU8jhu+jU2SSWFug4K1ugeuCwtMXe43oL0PhQ==";
};
dependencies = [
sources."@types/node-8.10.44"
sources."@types/node-8.10.45"
sources."JSV-4.0.2"
sources."adal-node-0.1.28"
sources."ajv-6.10.0"
@ -4810,7 +4828,7 @@ in
sources."har-schema-2.0.0"
(sources."har-validator-2.0.6" // {
dependencies = [
sources."commander-2.19.0"
sources."commander-2.20.0"
];
})
sources."has-ansi-2.0.0"
@ -5521,7 +5539,7 @@ in
sources."safe-buffer-5.1.2"
sources."safer-buffer-2.1.2"
sources."sax-1.2.4"
sources."semver-5.6.0"
sources."semver-5.7.0"
sources."set-blocking-2.0.0"
sources."signal-exit-3.0.2"
sources."string-width-1.0.2"
@ -5546,10 +5564,10 @@ in
pnpm = nodeEnv.buildNodePackage {
name = "pnpm";
packageName = "pnpm";
version = "3.0.1";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/pnpm/-/pnpm-3.0.1.tgz";
sha512 = "hYWjRN7U96zHDvgQxGyYaMF469Uzx0iZo2ej1VMUSaOULUFI9ue7dDku29AOf/E0+5Zd9zFs0qE0Tuq5Zsrk0A==";
url = "https://registry.npmjs.org/pnpm/-/pnpm-3.1.0.tgz";
sha512 = "+Ywkb2rg5uX6/CppRBFmefrQn8EiXK8H0ntRoWHuQAzLErrVXtbyuRKhWMUG5ewr9raQUOACou/uaThE9jzhwA==";
};
buildInputs = globalBuildInputs;
meta = {

View file

@ -15,12 +15,6 @@ buildPythonPackage rec {
sha256 = "cef9bf5d36700966e52f7cea86e29c622bc5bbb92d0ce7a75420e29fb0e75f45";
};
preConfigure = ''
# Patch to make this package work on requests >= 2.11.x
# CAN BE REMOVED ON NEXT PACKAGE UPDATE
sed -i 's|len(request_content)|str(len(request_content))|' azure/mgmt/network/networkresourceprovider.py
'';
postInstall = ''
echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/lib/${python.libPrefix}"/site-packages/azure/__init__.py
echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/lib/${python.libPrefix}"/site-packages/azure/mgmt/__init__.py

View file

@ -21,13 +21,13 @@ in
buildPythonPackage rec {
pname = "python-language-server";
version = "0.25.0";
version = "0.26.1";
src = fetchFromGitHub {
owner = "palantir";
repo = "python-language-server";
rev = version;
sha256 = "10la48m10j4alfnpw0xw359fb833scf5kv7kjvh7djf6ij7cfsvq";
sha256 = "003fy8bbvwibnsnyxw1qwg2rxnhbfylqs67ixr6fdnw6mmrzd6fg";
};
# The tests require all the providers, disable otherwise.

View file

@ -1,12 +1,12 @@
{ buildPythonPackage, fetchPypi, h11, enum34, pytest }:
{ lib, buildPythonPackage, fetchPypi, h11, enum34, pytest }:
buildPythonPackage rec {
pname = "wsproto";
version = "0.13.0";
version = "0.14.0";
src = fetchPypi {
inherit pname version;
sha256 = "fd6020d825022247053400306448e161d8740bdd52e328e5553cd9eee089f705";
sha256 = "1p24dmym6pfsqsyxps6m2cxfl36cmkri0kdy5y5q7s300j3xmhsm";
};
propagatedBuildInputs = [ h11 enum34 ];
@ -17,4 +17,9 @@ buildPythonPackage rec {
py.test
'';
meta = with lib; {
description = "Pure Python, pure state-machine WebSocket implementation";
homepage = https://github.com/python-hyper/wsproto/;
license = licenses.mit;
};
}

View file

@ -3,11 +3,11 @@
buildPythonPackage rec {
pname = "xdot";
version = "1.0";
version = "1.1";
src = fetchPypi {
inherit pname version;
sha256 = "18a2ri8vggaxy7im1x9hki34v519y5jy4n07zpqq5br9syb7h1ky";
sha256 = "0cr4rh7dz4dfzyxrk5pzhm0d15gkrgkfp3i5lw178xy81pc56p71";
};
disabled = !isPy3k;

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "yapf";
version = "0.26.0";
version = "0.27.0";
src = fetchPypi {
inherit pname version;
sha256 = "edb47be90a56ca6f3075fe24f119a22225fbd62c66777b5d3916a7e9e793891b";
sha256 = "18a7n85xv0qrab2ck94kw92ncjq2l8vl0k34pm22rjvd8h6gixil";
};
meta = with stdenv.lib; {

View file

@ -6,13 +6,13 @@ buildRubyGem rec {
name = "${gemName}-${version}";
gemName = "bundix";
version = "2.4.1";
version = "2.4.2";
src = fetchFromGitHub {
owner = "manveru";
repo = "bundix";
rev = version;
sha256 = "175qmv7dj7v50v71b78dzn5pb4a35ml6p15asks9q1rrlkz0n4gn";
sha256 = "03jhj1dy0ljrymjnpi6mcxn36a29qxr835l1lc11879jjzvnr2ax";
};
buildInputs = [ ruby bundler ];

View file

@ -12,8 +12,9 @@
{
# use the name of the name in question; its version will be picked up from the gemset
pname
# gemdir is the location of the Gemfile{,.lock} and gemset.nix; usually ./.
, gemdir
# Gemdir is the location of the Gemfile{,.lock} and gemset.nix; usually ./.
# This is required unless gemfile, lockfile, and gemset are all provided
, gemdir ? null
# Exes is the list of executables provided by the gems in the Gemfile
, exes ? []
# Scripts are ruby programs depend on gems in the Gemfile (e.g. scripts/rails)

View file

@ -1,16 +1,16 @@
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
let
version = "11.9.0";
version = "11.9.2";
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
docker_x86_64 = fetchurl {
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
sha256 = "1la4pkf8xp5h75dlvb6w7ijczrnci3bmbl77h3y4jicz555jjir3";
sha256 = "10zmaywq1vzch4a6zdvnm9kgil9ankc9napix9s9fw45wc0lw01p";
};
docker_arm = fetchurl {
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
sha256 = "1axn34aqa17yk2c2vy73fb8ab3nc3021dzj0vk95qificlmj3par";
sha256 = "0845ylhb3i3jmi5q6aaix4hw9zdb83v5fhvif0xvvi2m7irg06lf";
};
in
buildGoPackage rec {
@ -29,7 +29,7 @@ buildGoPackage rec {
owner = "gitlab-org";
repo = "gitlab-runner";
rev = "v${version}";
sha256 = "1b4r83glx0n3l060k33s397dw5dpajlxb880yzwsb11hvc6cs39h";
sha256 = "00k4myca2djd6h3i83vjndahm5q1rnlkq0p69dhl5jbldwy614ph";
};
patches = [ ./fix-shell-path.patch ];

View file

@ -1,18 +1,17 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "go-langserver-${version}";
version = "unstable-2018-03-05";
rev = "5d7a5dd74738978d635f709669241f164c120ebd";
pname = "go-langserver";
version = "2.0.0";
goPackagePath = "github.com/sourcegraph/go-langserver";
subPackages = [ "." ];
src = fetchFromGitHub {
inherit rev;
rev = "v${version}";
owner = "sourcegraph";
repo = "go-langserver";
sha256 = "0aih0akk3wk3332znkhr2bzxcc3parijq7n089mdahnf20k69xyz";
sha256 = "1wv7xf81s3qi8xydxjkkp8vacdzrq8sbj04346fz73nsn85z0sgp";
};
meta = with stdenv.lib; {

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "wesnoth";
version = "1.14.6";
version = "1.14.7";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://sourceforge/sourceforge/${pname}/${name}.tar.bz2";
sha256 = "0aw3czw3nq8ffakhw2libhvrhnllj61xc5lxpjqv0ig1419s1lj5";
sha256 = "0j2yvkcggj5k0r2cqk8ndnj77m37a00srfd9qg7pdpqffbinqpj7";
};
nativeBuildInputs = [ cmake pkgconfig ];

View file

@ -20,13 +20,13 @@ let
};
in stdenv.mkDerivation rec {
name = "dolphin-emu-${version}";
version = "2019-02-16";
version = "5.0-9976";
src = fetchFromGitHub {
owner = "dolphin-emu";
repo = "dolphin";
rev = "286aafd4ed2949f0b93230fee969c6a32fe75f07";
sha256 = "0l0cpq8s7wnng7mhbnzf4v84zggqsqdykrzfyz5avvbv9pla7jwp";
rev = "63f30cc44da248b0226e1c8724b3e53ecf4c768f";
sha256 = "0lkf571kzmw26fybl1lqpvhc81jkbh4hcvi3766bb7mvvzapkybd";
};
enableParallelBuilding = true;
@ -47,6 +47,9 @@ in stdenv.mkDerivation rec {
cmakeFlags = [
"-DUSE_SHARED_ENET=ON"
"-DENABLE_LTO=ON"
"-DDOLPHIN_WC_REVISION=${src.rev}"
"-DDOLPHIN_WC_DESCRIBE=${version}"
"-DDOLPHIN_WC_BRANCH=master"
] ++ stdenv.lib.optionals stdenv.isDarwin [
"-DOSX_USE_DEFAULT_SEARCH_PATH=True"
];

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