mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-18 02:44:30 +00:00
Merge master into staging-next
This commit is contained in:
commit
9d87ccabce
@ -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
|
||||
|
@ -258,7 +258,6 @@ rec {
|
||||
name = "armeabi-v7a";
|
||||
gcc = {
|
||||
arch = "armv7-a";
|
||||
float = "hard";
|
||||
float-abi = "softfp";
|
||||
fpu = "vfpv3-d16";
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
})
|
||||
));
|
||||
))];
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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; {
|
||||
|
@ -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;
|
||||
})
|
||||
];
|
||||
}
|
||||
|
@ -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";
|
||||
}];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
@ -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 = {
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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
|
@ -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;
|
||||
|
||||
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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
|
||||
|
27
pkgs/applications/misc/keepassx/quazip5.patch
Normal file
27
pkgs/applications/misc/keepassx/quazip5.patch
Normal 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
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
139
pkgs/applications/misc/stretchly/default.nix
Normal file
139
pkgs/applications/misc/stretchly/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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" \
|
||||
|
@ -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" ];
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
|
@ -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
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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 = {
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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}")
|
||||
];
|
||||
|
@ -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 ];
|
||||
|
@ -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 = ".";
|
||||
|
@ -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 ] ;
|
||||
|
@ -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
|
@ -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"
|
||||
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
|
@ -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" \
|
||||
|
130
pkgs/development/libraries/dleyna-renderer/gupnp-1.2.diff
Normal file
130
pkgs/development/libraries/dleyna-renderer/gupnp-1.2.diff
Normal 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;
|
@ -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" \
|
||||
|
@ -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 ];
|
||||
|
@ -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 = [
|
||||
|
10
pkgs/development/libraries/flatpak/unset-env-vars.patch
Normal file
10
pkgs/development/libraries/flatpak/unset-env-vars.patch
Normal 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[] = {
|
@ -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}
|
||||
|
73
pkgs/development/libraries/gom/default.nix
Normal file
73
pkgs/development/libraries/gom/default.nix
Normal 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;
|
||||
};
|
||||
}
|
13
pkgs/development/libraries/gom/longer-stress-timeout.patch
Normal file
13
pkgs/development/libraries/gom/longer-stress-timeout.patch
Normal 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()),
|
@ -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/;
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
@ -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/;
|
||||
|
@ -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";
|
||||
|
@ -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'),
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -1,2 +1,3 @@
|
||||
source 'https://rubygems.org'
|
||||
gem 'cocoapods'
|
||||
source 'https://rubygems.org' do
|
||||
gem 'cocoapods'
|
||||
end
|
||||
|
5
pkgs/development/mobile/cocoapods/Gemfile-beta
Normal file
5
pkgs/development/mobile/cocoapods/Gemfile-beta
Normal 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
|
76
pkgs/development/mobile/cocoapods/Gemfile-beta.lock
Normal file
76
pkgs/development/mobile/cocoapods/Gemfile-beta.lock
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
300
pkgs/development/mobile/cocoapods/gemset-beta.nix
Normal file
300
pkgs/development/mobile/cocoapods/gemset-beta.nix
Normal 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";
|
||||
};
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -48,6 +48,7 @@
|
||||
, "indium"
|
||||
, "jake"
|
||||
, "javascript-typescript-langserver"
|
||||
, "joplin"
|
||||
, "jsdoc"
|
||||
, "jshint"
|
||||
, "json"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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; {
|
||||
|
@ -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 ];
|
||||
|
@ -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)
|
||||
|
@ -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 ];
|
||||
|
@ -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; {
|
||||
|
@ -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 ];
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user