forked from mirrors/nixpkgs
Merge branch 'master' into staging
This commit is contained in:
commit
be39781058
|
@ -406,6 +406,11 @@
|
|||
github = "AveryLychee";
|
||||
name = "Avery Lychee";
|
||||
};
|
||||
averelld = {
|
||||
email = "averell+nixos@rxd4.com";
|
||||
github = "averelld";
|
||||
name = "averelld";
|
||||
};
|
||||
avnik = {
|
||||
email = "avn@avnik.info";
|
||||
github = "avnik";
|
||||
|
|
|
@ -192,6 +192,13 @@
|
|||
options can occour more than once in the configuration.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>solr</literal> package has been upgraded from 4.10.3 to 7.5.0 and has undergone
|
||||
some major changes. The <literal>services.solr</literal> module has been updated to reflect
|
||||
these changes. Please review http://lucene.apache.org/solr/ carefully before upgrading.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -333,6 +333,7 @@
|
|||
lidarr = 306;
|
||||
slurm = 307;
|
||||
kapacitor = 308;
|
||||
solr = 309;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
|
@ -626,6 +627,7 @@
|
|||
lidarr = 306;
|
||||
slurm = 307;
|
||||
kapacitor = 308;
|
||||
solr = 309;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
|
|
@ -16,7 +16,7 @@ let
|
|||
# programmable completion. If we do, enable all modules installed in
|
||||
# the system and user profile in obsolete /etc/bash_completion.d/
|
||||
# directories. Bash loads completions in all
|
||||
# $XDG_DATA_DIRS/share/bash-completion/completions/
|
||||
# $XDG_DATA_DIRS/bash-completion/completions/
|
||||
# on demand, so they do not need to be sourced here.
|
||||
if shopt -q progcomp &>/dev/null; then
|
||||
. "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh"
|
||||
|
|
|
@ -5,6 +5,15 @@ with lib;
|
|||
let
|
||||
cfg = config.programs.sway-beta;
|
||||
swayPackage = cfg.package;
|
||||
|
||||
swayWrapped = pkgs.writeShellScriptBin "sway" ''
|
||||
${cfg.extraSessionCommands}
|
||||
exec ${pkgs.dbus.dbus-launch} --exit-with-session ${swayPackage}/bin/sway
|
||||
'';
|
||||
swayJoined = pkgs.symlinkJoin {
|
||||
name = "sway-joined";
|
||||
paths = [ swayWrapped swayPackage ];
|
||||
};
|
||||
in {
|
||||
options.programs.sway-beta = {
|
||||
enable = mkEnableOption ''
|
||||
|
@ -20,13 +29,30 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
extraSessionCommands = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
# needs qt5.qtwayland in systemPackages
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
||||
# Fix for some Java AWT applications (e.g. Android Studio),
|
||||
# use this if they aren't displayed properly:
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
'';
|
||||
description = ''
|
||||
Shell commands executed just before Sway is started.
|
||||
'';
|
||||
};
|
||||
|
||||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
default = with pkgs; [
|
||||
xwayland dmenu
|
||||
xwayland rxvt_unicode dmenu
|
||||
];
|
||||
defaultText = literalExample ''
|
||||
with pkgs; [ xwayland dmenu ];
|
||||
with pkgs; [ xwayland rxvt_unicode dmenu ];
|
||||
'';
|
||||
example = literalExample ''
|
||||
with pkgs; [
|
||||
|
@ -42,7 +68,7 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ swayPackage ] ++ cfg.extraPackages;
|
||||
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
|
||||
security.pam.services.swaylock = {};
|
||||
hardware.opengl.enable = mkDefault true;
|
||||
fonts.enableDefaultFonts = mkDefault true;
|
||||
|
@ -51,4 +77,3 @@ in {
|
|||
|
||||
meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,13 @@ let
|
|||
# Get a submodule without any embedded metadata:
|
||||
_filter = x: filterAttrs (k: v: k != "_module") x;
|
||||
|
||||
# a wrapper that verifies that the configuration is valid
|
||||
promtoolCheck = what: name: file: pkgs.runCommand "${name}-${what}-checked"
|
||||
{ buildInputs = [ cfg.package ]; } ''
|
||||
ln -s ${file} $out
|
||||
promtool ${what} $out
|
||||
'';
|
||||
|
||||
# Pretty-print JSON to a file
|
||||
writePrettyJSON = name: x:
|
||||
pkgs.runCommand name { } ''
|
||||
|
@ -19,18 +26,19 @@ let
|
|||
# This becomes the main config file
|
||||
promConfig = {
|
||||
global = cfg.globalConfig;
|
||||
rule_files = cfg.ruleFiles ++ [
|
||||
rule_files = map (promtoolCheck "check-rules" "rules") (cfg.ruleFiles ++ [
|
||||
(pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg.rules))
|
||||
];
|
||||
]);
|
||||
scrape_configs = cfg.scrapeConfigs;
|
||||
};
|
||||
|
||||
generatedPrometheusYml = writePrettyJSON "prometheus.yml" promConfig;
|
||||
|
||||
prometheusYml =
|
||||
if cfg.configText != null then
|
||||
prometheusYml = let
|
||||
yml = if cfg.configText != null then
|
||||
pkgs.writeText "prometheus.yml" cfg.configText
|
||||
else generatedPrometheusYml;
|
||||
else generatedPrometheusYml;
|
||||
in promtoolCheck "check-config" "prometheus.yml" yml;
|
||||
|
||||
cmdlineArgs = cfg.extraFlags ++ [
|
||||
"-storage.local.path=${cfg.dataDir}/metrics"
|
||||
|
@ -376,6 +384,15 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.prometheus;
|
||||
defaultText = "pkgs.prometheus";
|
||||
description = ''
|
||||
The prometheus package that should be used.
|
||||
'';
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
type = types.str;
|
||||
default = "0.0.0.0:9090";
|
||||
|
@ -495,7 +512,7 @@ in {
|
|||
after = [ "network.target" ];
|
||||
script = ''
|
||||
#!/bin/sh
|
||||
exec ${pkgs.prometheus}/bin/prometheus \
|
||||
exec ${cfg.package}/bin/prometheus \
|
||||
${concatStringsSep " \\\n " cmdlineArgs}
|
||||
'';
|
||||
serviceConfig = {
|
||||
|
|
|
@ -6,142 +6,105 @@ let
|
|||
|
||||
cfg = config.services.solr;
|
||||
|
||||
# Assemble all jars needed for solr
|
||||
solrJars = pkgs.stdenv.mkDerivation {
|
||||
name = "solr-jars";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.36/bin/apache-tomcat-5.5.36.tar.gz;
|
||||
sha256 = "01mzvh53wrs1p2ym765jwd00gl6kn8f9k3nhdrnhdqr8dhimfb2p";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp common/lib/*.jar $out/lib/
|
||||
ln -s ${pkgs.ant}/lib/ant/lib/ant.jar $out/lib/
|
||||
ln -s ${cfg.solrPackage}/lib/ext/* $out/lib/
|
||||
ln -s ${pkgs.jdk.home}/lib/tools.jar $out/lib/
|
||||
'' + optionalString (cfg.extraJars != []) ''
|
||||
for f in ${concatStringsSep " " cfg.extraJars}; do
|
||||
cp $f $out/lib
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
in {
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.solr = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enables the solr service.
|
||||
'';
|
||||
};
|
||||
enable = mkEnableOption "Enables the solr service.";
|
||||
|
||||
javaPackage = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.jre;
|
||||
defaultText = "pkgs.jre";
|
||||
description = ''
|
||||
Which Java derivation to use for running solr.
|
||||
'';
|
||||
};
|
||||
|
||||
solrPackage = mkOption {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.solr;
|
||||
defaultText = "pkgs.solr";
|
||||
description = ''
|
||||
Which solr derivation to use for running solr.
|
||||
'';
|
||||
description = "Which Solr package to use.";
|
||||
};
|
||||
|
||||
extraJars = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [];
|
||||
description = ''
|
||||
List of paths pointing to jars. Jars are copied to commonLibFolder to be available to java/solr.
|
||||
'';
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 8983;
|
||||
description = "Port on which Solr is ran.";
|
||||
};
|
||||
|
||||
log4jConfiguration = mkOption {
|
||||
type = types.lines;
|
||||
default = ''
|
||||
log4j.rootLogger=INFO, stdout
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.Target=System.out
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
|
||||
'';
|
||||
description = ''
|
||||
Contents of the <literal>log4j.properties</literal> used. By default,
|
||||
everything is logged to stdout (picked up by systemd) with level INFO.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
The user that should run the solr process and.
|
||||
the working directories.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
The group that will own the working directory.
|
||||
'';
|
||||
};
|
||||
|
||||
solrHome = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
The solr home directory. It is your own responsibility to
|
||||
make sure this directory contains a working solr configuration,
|
||||
and is writeable by the the user running the solr service.
|
||||
Failing to do so, the solr will not start properly.
|
||||
'';
|
||||
stateDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/solr";
|
||||
description = "The solr home directory containing config, data, and logging files.";
|
||||
};
|
||||
|
||||
extraJavaOptions = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
Extra command line options given to the java process running
|
||||
solr.
|
||||
'';
|
||||
description = "Extra command line options given to the java process running Solr.";
|
||||
};
|
||||
|
||||
extraWinstoneOptions = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
Extra command line options given to the Winstone, which is
|
||||
the servlet container hosting solr.
|
||||
'';
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "solr";
|
||||
description = "User under which Solr is ran.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "solr";
|
||||
description = "Group under which Solr is ran.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
services.winstone.solr = {
|
||||
serviceName = "solr";
|
||||
inherit (cfg) user group javaPackage;
|
||||
warFile = "${cfg.solrPackage}/lib/solr.war";
|
||||
extraOptions = [
|
||||
"--commonLibFolder=${solrJars}/lib"
|
||||
"--useJasper"
|
||||
] ++ cfg.extraWinstoneOptions;
|
||||
extraJavaOptions = [
|
||||
"-Dsolr.solr.home=${cfg.solrHome}"
|
||||
"-Dlog4j.configuration=file://${pkgs.writeText "log4j.properties" cfg.log4jConfiguration}"
|
||||
] ++ cfg.extraJavaOptions;
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.services.solr = {
|
||||
after = [ "network.target" "remote-fs.target" "nss-lookup.target" "systemd-journald-dev-log.socket" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment = {
|
||||
SOLR_HOME = "${cfg.stateDir}/data";
|
||||
LOG4J_PROPS = "${cfg.stateDir}/log4j2.xml";
|
||||
SOLR_LOGS_DIR = "${cfg.stateDir}/logs";
|
||||
SOLR_PORT = "${toString cfg.port}";
|
||||
};
|
||||
path = with pkgs; [
|
||||
gawk
|
||||
procps
|
||||
];
|
||||
preStart = ''
|
||||
mkdir -p "${cfg.stateDir}/data";
|
||||
mkdir -p "${cfg.stateDir}/logs";
|
||||
|
||||
if ! test -e "${cfg.stateDir}/data/solr.xml"; then
|
||||
install -D -m0640 ${cfg.package}/server/solr/solr.xml "${cfg.stateDir}/data/solr.xml"
|
||||
install -D -m0640 ${cfg.package}/server/solr/zoo.cfg "${cfg.stateDir}/data/zoo.cfg"
|
||||
fi
|
||||
|
||||
if ! test -e "${cfg.stateDir}/log4j2.xml"; then
|
||||
install -D -m0640 ${cfg.package}/server/resources/log4j2.xml "${cfg.stateDir}/log4j2.xml"
|
||||
fi
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart="${cfg.package}/bin/solr start -f -a \"${concatStringsSep " " cfg.extraJavaOptions}\"";
|
||||
ExecStop="${cfg.package}/bin/solr stop";
|
||||
};
|
||||
};
|
||||
|
||||
users.users = optionalAttrs (cfg.user == "solr") (singleton
|
||||
{ name = "solr";
|
||||
group = cfg.group;
|
||||
home = cfg.stateDir;
|
||||
createHome = true;
|
||||
uid = config.ids.uids.solr;
|
||||
});
|
||||
|
||||
users.groups = optionalAttrs (cfg.group == "solr") (singleton
|
||||
{ name = "solr";
|
||||
gid = config.ids.gids.solr;
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -410,6 +410,7 @@ in rec {
|
|||
tests.slurm = callTest tests/slurm.nix {};
|
||||
tests.smokeping = callTest tests/smokeping.nix {};
|
||||
tests.snapper = callTest tests/snapper.nix {};
|
||||
tests.solr = callTest tests/solr.nix {};
|
||||
#tests.statsd = callTest tests/statsd.nix {}; # statsd is broken: #45946
|
||||
tests.strongswan-swanctl = callTest tests/strongswan-swanctl.nix {};
|
||||
tests.sudo = callTest tests/sudo.nix {};
|
||||
|
|
47
nixos/tests/solr.nix
Normal file
47
nixos/tests/solr.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
import ./make-test.nix ({ pkgs, lib, ... }:
|
||||
{
|
||||
name = "solr";
|
||||
meta.maintainers = [ lib.maintainers.aanderse ];
|
||||
|
||||
machine =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Ensure the virtual machine has enough memory for Solr to avoid the following error:
|
||||
#
|
||||
# OpenJDK 64-Bit Server VM warning:
|
||||
# INFO: os::commit_memory(0x00000000e8000000, 402653184, 0)
|
||||
# failed; error='Cannot allocate memory' (errno=12)
|
||||
#
|
||||
# There is insufficient memory for the Java Runtime Environment to continue.
|
||||
# Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory.
|
||||
virtualisation.memorySize = 2000;
|
||||
|
||||
services.solr.enable = true;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
startAll;
|
||||
|
||||
$machine->waitForUnit('solr.service');
|
||||
$machine->waitForOpenPort('8983');
|
||||
$machine->succeed('curl --fail http://localhost:8983/solr/');
|
||||
|
||||
# adapted from pkgs.solr/examples/films/README.txt
|
||||
$machine->succeed('sudo -u solr solr create -c films');
|
||||
$machine->succeed(q(curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{
|
||||
"add-field" : {
|
||||
"name":"name",
|
||||
"type":"text_general",
|
||||
"multiValued":false,
|
||||
"stored":true
|
||||
},
|
||||
"add-field" : {
|
||||
"name":"initial_release_date",
|
||||
"type":"pdate",
|
||||
"stored":true
|
||||
}
|
||||
}')) =~ /"status":0/ or die;
|
||||
$machine->succeed('sudo -u solr post -c films ${pkgs.solr}/example/films/films.json');
|
||||
$machine->succeed('curl http://localhost:8983/solr/films/query?q=name:batman') =~ /"name":"Batman Begins"/ or die;
|
||||
'';
|
||||
})
|
|
@ -5,6 +5,7 @@
|
|||
, pkgconfig
|
||||
, ffmpeg_4
|
||||
, patchelf
|
||||
, fdk_aac
|
||||
, libtool
|
||||
, cmake
|
||||
, bluez
|
||||
|
@ -22,13 +23,13 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "pulseaudio-modules-bt-${version}";
|
||||
version = "unstable-2018-10-16";
|
||||
version = "unstable-2018-11-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EHfive";
|
||||
repo = "pulseaudio-modules-bt";
|
||||
rev = "552c2b48c0cc7dd44d0746b261f7c7d5559e8e30";
|
||||
sha256 = "052jb1hjx1in7bafx4zpn78s7r6f2y7djriwi36dzqy9wmalmyjy";
|
||||
rev = "a2f62fcaa702bb883c07d074ebca8d7135520ab8";
|
||||
sha256 = "1fhg7q9064zikhy0xxldn4fvh49pc47mgikcbd9yhsk66gcn6zj3";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -45,6 +46,7 @@ in stdenv.mkDerivation rec {
|
|||
buildInputs = [
|
||||
pulseaudio
|
||||
ffmpeg_4
|
||||
fdk_aac
|
||||
libtool
|
||||
bluez
|
||||
dbus
|
||||
|
@ -72,7 +74,7 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/EHfive/pulseaudio-modules-bt;
|
||||
description = "SBC, Sony LDAC codec (A2DP Audio) support for Pulseaudio";
|
||||
description = "LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support for Linux PulseAudio";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ adisbladis ];
|
||||
|
|
|
@ -1,11 +1,20 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 0f5baa0..1f35cce 100644
|
||||
index d869979..185144d 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -122,5 +121,4 @@ INSTALL(TARGETS
|
||||
@@ -143,13 +143,13 @@ INSTALL(TARGETS
|
||||
module-bluez5-device
|
||||
module-bluetooth-discover
|
||||
module-bluetooth-policy
|
||||
- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
|
||||
-
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/)
|
||||
|
||||
if(NOT ${HAVE_SYSTEM_LDAC})
|
||||
|
||||
INSTALL(TARGETS
|
||||
ldacBT_enc
|
||||
ldacBT_abr
|
||||
- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/)
|
||||
|
||||
endif()
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
let
|
||||
# TO UPDATE: just execute the ./update.sh script (won't do anything if there is no update)
|
||||
# "rev" decides what is actually being downloaded
|
||||
version = "1.0.83.316.ge96b6e67-5";
|
||||
version = "1.0.93.242.gc2341a27-15";
|
||||
# To get the latest stable revision:
|
||||
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
|
||||
# To get general information:
|
||||
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
|
||||
# More examples of api usage:
|
||||
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
|
||||
rev = "17";
|
||||
rev = "24";
|
||||
|
||||
|
||||
deps = [
|
||||
|
@ -65,7 +65,7 @@ stdenv.mkDerivation {
|
|||
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
|
||||
src = fetchurl {
|
||||
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
||||
sha512 = "19bbr4142shsl4qrikf48vq7kyrd4k4jbsada13qxicxps46a9bx51vjm2hkijqv739c1gdkgzwx7llyk95z26lhrz53shm2n5ij8xi";
|
||||
sha512 = "920d55b3dcad4ac6acd9bc73c8ad8eb1668327a175da465ce3d8bba2430da47aaefa5218659315fab43b5182611eb03047d4e2679c1345c57380b7def7a1212d";
|
||||
};
|
||||
|
||||
buildInputs = [ squashfsTools makeWrapper ];
|
||||
|
|
25
pkgs/applications/editors/rstudio/clang-location.patch
Normal file
25
pkgs/applications/editors/rstudio/clang-location.patch
Normal file
|
@ -0,0 +1,25 @@
|
|||
diff --git i/src/cpp/core/libclang/LibClang.cpp w/src/cpp/core/libclang/LibClang.cpp
|
||||
index ec12a3a1ff..8c81b633ae 100644
|
||||
--- i/src/cpp/core/libclang/LibClang.cpp
|
||||
+++ w/src/cpp/core/libclang/LibClang.cpp
|
||||
@@ -54,7 +54,7 @@ std::vector<std::string> defaultCompileArgs(LibraryVersion version)
|
||||
|
||||
// we need to add in the associated libclang headers as
|
||||
// they are not discovered / used by default during compilation
|
||||
- FilePath llvmPath = s_libraryPath.parent().parent();
|
||||
+ FilePath llvmPath("@clang@");
|
||||
boost::format fmt("%1%/lib/clang/%2%/include");
|
||||
fmt % llvmPath.absolutePath() % version.asString();
|
||||
std::string includePath = fmt.str();
|
||||
@@ -77,10 +77,7 @@ std::vector<std::string> systemClangVersions()
|
||||
#elif defined(__unix__)
|
||||
// default set of versions
|
||||
clangVersions = {
|
||||
- "/usr/lib/libclang.so",
|
||||
- "/usr/lib/llvm/libclang.so",
|
||||
- "/usr/lib64/libclang.so",
|
||||
- "/usr/lib64/llvm/libclang.so",
|
||||
+ "@libclang.so@"
|
||||
};
|
||||
|
||||
// iterate through the set of available 'llvm' directories
|
15
pkgs/applications/editors/rstudio/fix-cmake.patch
Normal file
15
pkgs/applications/editors/rstudio/fix-cmake.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
diff --git a/src/cpp/desktop/CMakeLists.txt b/src/cpp/desktop/CMakeLists.txt
|
||||
index f5701bf735..27af4148ff 100644
|
||||
--- a/src/cpp/desktop/CMakeLists.txt
|
||||
+++ b/src/cpp/desktop/CMakeLists.txt
|
||||
@@ -112,6 +112,7 @@ find_package(Qt5WebEngine REQUIRED)
|
||||
find_package(Qt5WebEngineWidgets REQUIRED)
|
||||
find_package(Qt5PrintSupport REQUIRED)
|
||||
find_package(Qt5Quick REQUIRED)
|
||||
+find_package(Qt5QuickWidgets REQUIRED)
|
||||
find_package(Qt5Positioning REQUIRED)
|
||||
find_package(Qt5Sensors REQUIRED)
|
||||
find_package(Qt5Svg REQUIRED)
|
||||
--
|
||||
2.17.1
|
||||
|
119
pkgs/applications/editors/rstudio/preview.nix
Normal file
119
pkgs/applications/editors/rstudio/preview.nix
Normal file
|
@ -0,0 +1,119 @@
|
|||
{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib
|
||||
, openssl, R, qtbase, qtdeclarative, qtsensors, qtwebengine, qtwebchannel
|
||||
, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
|
||||
, llvmPackages
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "f33fb2b2f1";
|
||||
ginVer = "2.1.2";
|
||||
gwtVer = "2.8.1";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "RStudio-preview-${rev}";
|
||||
|
||||
nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
|
||||
|
||||
buildInputs = [ boost zlib openssl R qtbase qtdeclarative qtsensors
|
||||
qtwebengine qtwebchannel libuuid ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rstudio";
|
||||
repo = "rstudio";
|
||||
inherit rev;
|
||||
sha256 = "0v3vzqjp74c3m4h9l6w2lrdnjqaimdjzbf7vhnlxj2qa0lwsnykb";
|
||||
};
|
||||
|
||||
# Hack RStudio to only use the input R and provided libclang.
|
||||
patches = [ ./r-location.patch ./clang-location.patch ];
|
||||
postPatch = ''
|
||||
substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
|
||||
substituteInPlace src/cpp/core/libclang/LibClang.cpp \
|
||||
--replace '@clang@' ${llvmPackages.clang.cc} \
|
||||
--replace '@libclang.so@' ${llvmPackages.clang.cc.lib}/lib/libclang.so
|
||||
'';
|
||||
|
||||
ginSrc = fetchurl {
|
||||
url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
|
||||
sha256 = "16jzmljravpz6p2rxa87k5f7ir8vs7ya75lnfybfajzmci0p13mr";
|
||||
};
|
||||
|
||||
gwtSrc = fetchurl {
|
||||
url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
|
||||
sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
|
||||
};
|
||||
|
||||
hunspellDictionaries = with stdenv.lib; filter isDerivation (attrValues hunspellDicts);
|
||||
|
||||
mathJaxSrc = fetchurl {
|
||||
url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
|
||||
sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
|
||||
};
|
||||
|
||||
rsconnectSrc = fetchFromGitHub {
|
||||
owner = "rstudio";
|
||||
repo = "rsconnect";
|
||||
rev = "984745d8";
|
||||
sha256 = "037z0y32k1gdda192y5qn5hi7wp8wyap44mkjlklrgcqkmlcylb9";
|
||||
};
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
GWT_LIB_DIR=src/gwt/lib
|
||||
|
||||
mkdir -p $GWT_LIB_DIR/gin/${ginVer}
|
||||
unzip ${ginSrc} -d $GWT_LIB_DIR/gin/${ginVer}
|
||||
|
||||
unzip ${gwtSrc}
|
||||
mkdir -p $GWT_LIB_DIR/gwt
|
||||
mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
|
||||
|
||||
mkdir dependencies/common/dictionaries
|
||||
for dict in ${builtins.concatStringsSep " " hunspellDictionaries}; do
|
||||
for i in "$dict/share/hunspell/"*; do
|
||||
ln -sv $i dependencies/common/dictionaries/
|
||||
done
|
||||
done
|
||||
|
||||
unzip ${mathJaxSrc} -d dependencies/common/mathjax-26
|
||||
|
||||
mkdir -p dependencies/common/pandoc
|
||||
cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
|
||||
|
||||
cp -r ${rsconnectSrc} dependencies/common/rsconnect
|
||||
pushd dependencies/common
|
||||
${R}/bin/R CMD build -d --no-build-vignettes rsconnect
|
||||
popd
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ];
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = name;
|
||||
exec = "rstudio %F";
|
||||
icon = "rstudio";
|
||||
desktopName = "RStudio Preview";
|
||||
genericName = "IDE";
|
||||
comment = meta.description;
|
||||
categories = "Development;";
|
||||
mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin
|
||||
mkdir $out/share
|
||||
cp -r ${desktopItem}/share/applications $out/share
|
||||
mkdir $out/share/icons
|
||||
ln $out/rstudio.png $out/share/icons
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib;
|
||||
{ description = "Set of integrated tools for the R language";
|
||||
homepage = https://www.rstudio.com/;
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ averelld ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
|
||||
, pango, cogl, clutter, libstartup_notification, zenity, libcanberra-gtk3
|
||||
, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput
|
||||
, pipewire, libgudev, libwacom, xwayland, autoreconfHook }:
|
||||
, pipewire, libgudev, libwacom, xwayland, autoreconfHook, fetchpatch }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mutter-${version}";
|
||||
|
@ -16,6 +16,14 @@ stdenv.mkDerivation rec {
|
|||
updateScript = gnome3.updateScript { packageName = "mutter"; attrPath = "gnome3.mutter"; };
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://gitlab.gnome.org/GNOME/mutter/merge_requests/172
|
||||
(fetchpatch {
|
||||
url = https://gitlab.gnome.org/GNOME/mutter/commit/62660bbd.patch;
|
||||
sha256 = "1qq8vxlqnyrqh94dc0dh1aj1dsbyw6bwv3x46q5vsscbbxbiv9wk";
|
||||
})
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-x"
|
||||
"--disable-static"
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ stdenv, fetchurl, pkgconfig, libusb1, libiconv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "libmtp-1.1.15";
|
||||
name = "libmtp-1.1.16";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/libmtp/${name}.tar.gz";
|
||||
sha256 = "089h79nkz7wcr3lbqi7025l8p75hbp0aigxk3wdk2zkm8q5r0h6h";
|
||||
sha256 = "185vh9bds6dcy00ycggg69g4v7m3api40zv8vrcfb3fk3vfzjs2v";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
|
|
187
pkgs/development/libraries/v8/plv8_6_x.nix
Normal file
187
pkgs/development/libraries/v8/plv8_6_x.nix
Normal file
|
@ -0,0 +1,187 @@
|
|||
# NOTE: this expression is NOT exported from the top-level of all-packages.nix,
|
||||
# it is exclusively used by the 'plv8' PostgreSQL extension, which requires a
|
||||
# very exact version.
|
||||
|
||||
{ stdenv, lib, fetchgit, fetchFromGitHub, gn, ninja, python, glib, pkgconfig
|
||||
, doCheck ? false
|
||||
, snapshot ? true
|
||||
}:
|
||||
|
||||
let
|
||||
arch = if stdenv.isAarch32
|
||||
then if stdenv.is64bit
|
||||
then"arm64"
|
||||
else "arm"
|
||||
else if stdenv.is64bit
|
||||
then"x64"
|
||||
else "ia32";
|
||||
git_url = "https://chromium.googlesource.com";
|
||||
|
||||
# This data is from the DEPS file in the root of a V8 checkout
|
||||
deps = {
|
||||
"base/trace_event/common" = fetchgit {
|
||||
url = "${git_url}/chromium/src/base/trace_event/common.git";
|
||||
rev = "0e9a47d74970bee1bbfc063c47215406f8918699";
|
||||
sha256 = "07rbzrlscp8adh4z86yl5jxdnvgkc3xs950xldpk318wf9i3bh6c";
|
||||
};
|
||||
"build" = fetchgit {
|
||||
url = "${git_url}/chromium/src/build.git";
|
||||
rev = "9338ce52d0b9bcef34c38285fbd5023b62739fac";
|
||||
sha256 = "1s2sa8dy3waidsirjylc82ggb18l1108bczjc8z0v4ywyj4k0cvh";
|
||||
};
|
||||
"buildtools" = fetchgit {
|
||||
url = "${git_url}/chromium/buildtools.git";
|
||||
rev = "505de88083136eefd056e5ee4ca0f01fe9b33de8";
|
||||
sha256 = "0vj216nhb803bggsl0hnyagj8njrm96pn8sim6xcnqb7nhz1vabw";
|
||||
};
|
||||
"test/benchmarks/data" = fetchgit {
|
||||
url = "${git_url}/v8/deps/third_party/benchmarks.git";
|
||||
rev = "05d7188267b4560491ff9155c5ee13e207ecd65f";
|
||||
sha256 = "0ad2ay14bn67d61ks4dmzadfnhkj9bw28r4yjdjjyzck7qbnzchl";
|
||||
};
|
||||
"test/mozilla/data" = fetchgit {
|
||||
url = "${git_url}/v8/deps/third_party/mozilla-tests.git";
|
||||
rev = "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be";
|
||||
sha256 = "0rfdan76yfawqxbwwb35aa57b723j3z9fx5a2w16nls02yk2kqyn";
|
||||
};
|
||||
"test/test262/data" = fetchgit {
|
||||
url = "${git_url}/external/github.com/tc39/test262.git";
|
||||
rev = "5d4c667b271a9b39d0de73aef5ffe6879c6f8811";
|
||||
sha256 = "0q9iwb2nkybf9np95wgf5m372aw2lhx9wlsw41a2a80kbkvb2kqg";
|
||||
};
|
||||
"test/test262/harness" = fetchgit {
|
||||
url = "${git_url}/external/github.com/test262-utils/test262-harness-py.git";
|
||||
rev = "0f2acdd882c84cff43b9d60df7574a1901e2cdcd";
|
||||
sha256 = "00brj5avp43yamc92kinba2mg3a2x1rcd7wnm7z093l73idprvkp";
|
||||
};
|
||||
"test/wasm-js" = fetchgit {
|
||||
url = "${git_url}/external/github.com/WebAssembly/spec.git";
|
||||
rev = "a7e226a92e660a3d5413cfea4269824f513259d2";
|
||||
sha256 = "0z3aybj3ykajwh2bv5fwd6pwqjjsq8dnwrqc2wncb6r9xcjwbgxp";
|
||||
};
|
||||
"testing/gtest" = fetchgit {
|
||||
url = "${git_url}/external/github.com/google/googletest.git";
|
||||
rev = "6f8a66431cb592dad629028a50b3dd418a408c87";
|
||||
sha256 = "0bdba2lr6pg15bla9600zg0r0vm4lnrx0wqz84p376wfdxra24vw";
|
||||
};
|
||||
"third_party/icu" = fetchgit {
|
||||
url = "${git_url}/chromium/deps/icu.git";
|
||||
rev = "741688ebf328da9adc52505248bf4e2ef868722c";
|
||||
sha256 = "02ifm18qjlrkn5nm2rxkf9yz9bdlyq7c65jfjndv63vi1drqh1r9";
|
||||
};
|
||||
"third_party/instrumented_libraries" = fetchgit {
|
||||
url = "${git_url}/chromium/src/third_party/instrumented_libraries.git";
|
||||
rev = "28417458ac4dc79f68915079d0f283f682504cc0";
|
||||
sha256 = "1qf5c2946n37p843yriv7xawi6ss6samabghq43s49cgd4wq8dc3";
|
||||
};
|
||||
"third_party/jinja2" = fetchgit {
|
||||
url = "${git_url}/chromium/src/third_party/jinja2.git";
|
||||
rev = "d34383206fa42d52faa10bb9931d6d538f3a57e0";
|
||||
sha256 = "0d9hyw0bvp3p0dbwy833cm9vdqxcam0qbm9jc561ynphddxlkmgd";
|
||||
};
|
||||
"third_party/markupsafe" = fetchgit {
|
||||
url = "${git_url}/chromium/src/third_party/markupsafe.git";
|
||||
rev = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
|
||||
sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
|
||||
};
|
||||
"tools/clang" = fetchgit {
|
||||
url = "${git_url}/chromium/src/tools/clang.git";
|
||||
rev = "8688d267571de76a56746324dcc249bf4232b85a";
|
||||
sha256 = "0krq4zz1vnwp064bm517gwr2napy18wyccdh8w5s4qgkjwwxd63s";
|
||||
};
|
||||
"tools/gyp" = fetchgit {
|
||||
url = "${git_url}/external/gyp.git";
|
||||
rev = "d61a9397e668fa9843c4aa7da9e79460fe590bfb";
|
||||
sha256 = "1z081h72mjy285jb1kj5xd0pb4p12n9blvsimsavyn3ldmswv0r0";
|
||||
};
|
||||
"tools/luci-go" = fetchgit {
|
||||
url = "${git_url}/chromium/src/tools/luci-go.git";
|
||||
rev = "45a8a51fda92e123619a69e7644d9c64a320b0c1";
|
||||
sha256 = "0r7736gqk7r0i7ig0b5ib10d9q8a8xzsmc0f0fbkm9k78v847vpj";
|
||||
};
|
||||
"tools/swarming_client" = fetchgit {
|
||||
url = "${git_url}/infra/luci/client-py.git";
|
||||
rev = "4bd9152f8a975d57c972c071dfb4ddf668e02200";
|
||||
sha256 = "03zk91gzvqv01g1vbl8d7h8al7vs4ymrrdc8ipg9wpq52yh65smh";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "v8-${version}";
|
||||
version = "6.4.388.40";
|
||||
|
||||
inherit doCheck;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "v8";
|
||||
repo = "v8";
|
||||
rev = version;
|
||||
sha256 = "1lq239cgqyidrynz8g3wbdv70ymzv6s0ppad8s219gb3jnizm16a";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (n: v: ''
|
||||
mkdir -p $sourceRoot/${n}
|
||||
cp -r ${v}/* $sourceRoot/${n}
|
||||
'') deps)}
|
||||
'';
|
||||
|
||||
prePatch = ''
|
||||
# use our gn, not the bundled one
|
||||
sed -i -e 's#gn_path = .*#gn_path = "${gn}/bin/gn"#' tools/mb/mb.py
|
||||
|
||||
# disable tests
|
||||
if [ "$doCheck" = "" ]; then sed -i -e '/"test:gn_all",/d' BUILD.gn; fi
|
||||
|
||||
# disable sysroot usage
|
||||
chmod u+w build/config build/config/sysroot.gni
|
||||
sed -i build/config/sysroot.gni \
|
||||
-e '/use_sysroot =/ { s#\(use_sysroot =\).*#\1 false#; :a n; /current_cpu/ { s/^/#/; ba }; }'
|
||||
|
||||
# patch shebangs (/usr/bin/env)
|
||||
patchShebangs tools/dev/v8gen.py
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
tools/dev/v8gen.py -vv ${arch}.release -- \
|
||||
is_component_build=true \
|
||||
${if snapshot then "v8_use_external_startup_data=false" else "v8_use_snapshot=false"} \
|
||||
is_clang=false \
|
||||
linux_use_bundled_binutils=false \
|
||||
treat_warnings_as_errors=false \
|
||||
use_custom_libcxx=false \
|
||||
use_custom_libcxx_for_host=false
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ gn ninja pkgconfig ];
|
||||
buildInputs = [ python glib ];
|
||||
|
||||
buildPhase = ''
|
||||
ninja -C out.gn/${arch}.release/
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
install -vD out.gn/${arch}.release/d8 "$out/bin/d8"
|
||||
install -vD out.gn/${arch}.release/mksnapshot "$out/bin/mksnapshot"
|
||||
mkdir -p "$out/lib"
|
||||
for f in libicui18n.so libicuuc.so libv8_libbase.so libv8_libplatform.so libv8.so; do
|
||||
install -vD out.gn/${arch}.release/$f "$out/lib/$f"
|
||||
done
|
||||
install -vD out.gn/${arch}.release/icudtl.dat "$out/lib/icudtl.dat"
|
||||
mkdir -p "$out/include"
|
||||
cp -vr include/*.h "$out/include"
|
||||
cp -vr include/libplatform "$out/include"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Google's open source JavaScript engine";
|
||||
maintainers = with maintainers; [ cstrahan proglodyte ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
|
@ -36,5 +36,5 @@ let
|
|||
in {
|
||||
# xapian-ruby needs 1.2.22 as of 2017-05-06
|
||||
xapian_1_2_22 = generic "1.2.22" "0zsji22n0s7cdnbgj0kpil05a6bgm5cfv0mvx12d8ydg7z58g6r6";
|
||||
xapian_1_4 = generic "1.4.8" "0528841hn5lddaa317ax3i3d01zf1izpzh4njiz6s84mxpn06q6s";
|
||||
xapian_1_4 = generic "1.4.9" "1k7m7m9jld96k16ansfw2w3c354pvd8ibhnrb6dw012g06fw7sfd";
|
||||
}
|
||||
|
|
22
pkgs/development/python-modules/sslib/default.nix
Normal file
22
pkgs/development/python-modules/sslib/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ stdenv, fetchPypi, buildPythonPackage, isPy3k }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sslib";
|
||||
version = "0.2.0";
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0b5zrjkvx4klmv57pzhcmvbkdlyn745mn02k7hp811hvjrhbz417";
|
||||
};
|
||||
|
||||
# No tests available
|
||||
doCheck = false;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/jqueiroz/python-sslib;
|
||||
description = "A Python3 library for sharing secrets";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jqueiroz ];
|
||||
};
|
||||
}
|
|
@ -53,12 +53,12 @@
|
|||
};
|
||||
|
||||
ale = buildVimPluginFrom2Nix {
|
||||
name = "ale-2018-10-29";
|
||||
name = "ale-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "w0rp";
|
||||
repo = "ale";
|
||||
rev = "cae40e1c347064bd3ab5eb4c04e9e357d3d82105";
|
||||
sha256 = "0f7qsp0gpafk7fimcbivx2cm53hpjz6hr6lzdg8wnxcm0gdw7827";
|
||||
rev = "4b841b55869e3ec5b02806f9b2fe962ffdca2750";
|
||||
sha256 = "0wa8phv4b6n1akaii8qy9c0lr17vm4bqgz5chjx28zs73jfxsf2i";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -93,12 +93,12 @@
|
|||
};
|
||||
|
||||
awesome-vim-colorschemes = buildVimPluginFrom2Nix {
|
||||
name = "awesome-vim-colorschemes-2018-01-20";
|
||||
name = "awesome-vim-colorschemes-2018-10-30";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rafi";
|
||||
repo = "awesome-vim-colorschemes";
|
||||
rev = "8d2b6657bdbe4f7253e320c741bc4c1fc2f2f41d";
|
||||
sha256 = "1wfm6rsmyqldxwcz0ic4rq7kf00fgsx00rg42cl9yya35nqiri2z";
|
||||
rev = "21d1c93da95d58bead99f3226f9447f5b035afe1";
|
||||
sha256 = "1niwwyxgq7k7mbi05lnpz12lbmn9mam9x4qvzxcbvxsqqp2zzsj8";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -718,6 +718,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
jedi-vim = buildVimPluginFrom2Nix {
|
||||
name = "jedi-vim-2018-10-14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "davidhalter";
|
||||
repo = "jedi-vim";
|
||||
rev = "b6dfc5fd49c26d4dbe9f54c814956567a7a9b3a8";
|
||||
sha256 = "11wvynjl1m23vdp4wvirhmm7vnpji5affbyhwz67yjkvh6c42xqa";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
};
|
||||
|
||||
Jenkinsfile-vim-syntax = buildVimPluginFrom2Nix {
|
||||
name = "Jenkinsfile-vim-syntax-2018-09-25";
|
||||
src = fetchFromGitHub {
|
||||
|
@ -899,12 +910,12 @@
|
|||
};
|
||||
|
||||
neco-vim = buildVimPluginFrom2Nix {
|
||||
name = "neco-vim-2017-10-01";
|
||||
name = "neco-vim-2018-10-30";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Shougo";
|
||||
repo = "neco-vim";
|
||||
rev = "f5397c5e800d65a58c56d8f1b1b92686b05f4ca9";
|
||||
sha256 = "0yb7ja6qgrazszk4i01cwjj00j9vd43zs2r11b08iy8n10jnzr73";
|
||||
rev = "4c0203b44f8daa7e2f72e2514488d637e8a766a4";
|
||||
sha256 = "03v3h2ks6y9pl960lnvzxlfhnn6l2pcn6d6012znw2wqpralrjq2";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -949,12 +960,12 @@
|
|||
};
|
||||
|
||||
neomake = buildVimPluginFrom2Nix {
|
||||
name = "neomake-2018-10-28";
|
||||
name = "neomake-2018-10-29";
|
||||
src = fetchFromGitHub {
|
||||
owner = "benekastah";
|
||||
repo = "neomake";
|
||||
rev = "35f4c002d55d5f722a08eb9acf126f7717072812";
|
||||
sha256 = "0ad5dqyjpwn78nadg90jd03n0mkllm0r4jxq72h77dwxsd1prgl9";
|
||||
rev = "c15d51ea9f622b8bce469a18833a6ac64f6a1193";
|
||||
sha256 = "1l15y0di6k4v0vrwpd86lp2n5ljfjnzncgpxwmbhqb2xznr7caq7";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1009,12 +1020,12 @@
|
|||
};
|
||||
|
||||
nerdtree = buildVimPluginFrom2Nix {
|
||||
name = "nerdtree-2018-10-25";
|
||||
name = "nerdtree-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "scrooloose";
|
||||
repo = "nerdtree";
|
||||
rev = "91e0f2253fbecefa7e14f095950341584877ef19";
|
||||
sha256 = "1lkmxplrv211drzmwi93v1fmicdjm146vl471s3h21y77k0hd2f5";
|
||||
rev = "8d005db94f8d1a214d172aeb1008d016c3d201e2";
|
||||
sha256 = "0f8dljl45ph668kwjf0py0891i3aqfdijplarxnblbkp2zn5ij7g";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1479,12 +1490,12 @@
|
|||
};
|
||||
|
||||
tsuquyomi = buildVimPluginFrom2Nix {
|
||||
name = "tsuquyomi-2018-08-03";
|
||||
name = "tsuquyomi-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Quramy";
|
||||
repo = "tsuquyomi";
|
||||
rev = "05e6515f6d21545959ac4eb570c917e1d225b1f1";
|
||||
sha256 = "0hbd2d8zb86c8ncrrm4zyj92j523xay2lwk2k9arwacn8fj42hir";
|
||||
rev = "bdd034d06ed47176ec1ee0bd3dae5bc0aeb053e3";
|
||||
sha256 = "119dxmkarbh0b0k4l59mxr19shks4mv96j3mbz02q0kdq18bgrdq";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1539,12 +1550,12 @@
|
|||
};
|
||||
|
||||
vim = buildVimPluginFrom2Nix {
|
||||
name = "vim-2018-10-27";
|
||||
name = "vim-2018-10-30";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dracula";
|
||||
repo = "vim";
|
||||
rev = "854886980635eb70e119d2bd3bb94a0ce46fc71d";
|
||||
sha256 = "1ff88clly227cj83ng6bwc8jn3zp20614agg94izqhsxr5bpdp5z";
|
||||
rev = "66755a9cb9bdea62720812a1165132de6ff62468";
|
||||
sha256 = "0zca3spgnf00rxa0h5x79ydycz41b0xli7bgwpnbxannzxqswhiy";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1749,12 +1760,12 @@
|
|||
};
|
||||
|
||||
vim-airline = buildVimPluginFrom2Nix {
|
||||
name = "vim-airline-2018-10-22";
|
||||
name = "vim-airline-2018-11-01";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim-airline";
|
||||
repo = "vim-airline";
|
||||
rev = "08e9aa5386eecfd6a6cbde1eff240619cd81beed";
|
||||
sha256 = "0g9rlr6067sqyp0l4yacnr14phx1wn2jvjcq2x2zwkc0b28hxyrs";
|
||||
rev = "6516b1b4dccef543d489177431050fe8a5c5c99c";
|
||||
sha256 = "0x4vdxz31vqyd3qy8vr4gcdc649nz72axris5fxj8ln5zphlr6ll";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1969,12 +1980,12 @@
|
|||
};
|
||||
|
||||
vim-dispatch = buildVimPluginFrom2Nix {
|
||||
name = "vim-dispatch-2018-10-02";
|
||||
name = "vim-dispatch-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpope";
|
||||
repo = "vim-dispatch";
|
||||
rev = "ab7470d4b03bae9880bf2b5cef60fc0fb51b1101";
|
||||
sha256 = "01slb3lcbdba0a4xky6i5xflh1cjm0aq6g8yyfzrgn4w8pq50h9p";
|
||||
rev = "d4b8940fd1cd77fc6d300f003b18745a584295b2";
|
||||
sha256 = "06g0xc55z9jpa5rl8c5af5apb8b2agahsxxzayl2vn763v9p1n6b";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2199,12 +2210,12 @@
|
|||
};
|
||||
|
||||
vim-grepper = buildVimPluginFrom2Nix {
|
||||
name = "vim-grepper-2018-10-29";
|
||||
name = "vim-grepper-2018-10-30";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mhinz";
|
||||
repo = "vim-grepper";
|
||||
rev = "54cb4c55bd8d80fc046f62b8f6486db2de424399";
|
||||
sha256 = "1bzzyh2yav9f54gn17ny8gpi5h70yvjqdyg9lg0b1rglvirjpb1r";
|
||||
rev = "a55a14b97dc8ac848eeb95e71d095b75197ba665";
|
||||
sha256 = "08p5dp43z9bxllr5fvl3hgnyqyxlvpbfczw1ydncmzvrqqccrx08";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2630,12 +2641,12 @@
|
|||
};
|
||||
|
||||
vim-operator-surround = buildVimPluginFrom2Nix {
|
||||
name = "vim-operator-surround-2017-12-22";
|
||||
name = "vim-operator-surround-2018-11-01";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rhysd";
|
||||
repo = "vim-operator-surround";
|
||||
rev = "001c0da077b5b38a723151b19760d220e02363db";
|
||||
sha256 = "0c6w6id57faw6sjf5wvw9qp2a4i7xj65q0c4hjs0spgzycv2wpkh";
|
||||
rev = "80337a40a829cfc77b065a71d8a609e2ad7d2c8b";
|
||||
sha256 = "0f9shg81bl39hz67ahbi6k6gbhky7gzp8by16fhiz75hbjgp9lq2";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2830,12 +2841,12 @@
|
|||
};
|
||||
|
||||
vim-rhubarb = buildVimPluginFrom2Nix {
|
||||
name = "vim-rhubarb-2018-09-20";
|
||||
name = "vim-rhubarb-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpope";
|
||||
repo = "vim-rhubarb";
|
||||
rev = "3a9ddb8ffa46b9fa49f3d9372bbb5d64bdc5fd23";
|
||||
sha256 = "1swybc30vyf309w1a34jf94xja1kikvrr3xpixfban50s6aiyips";
|
||||
rev = "42072cc349c46db79c0a4411d399a2fe31cfda7e";
|
||||
sha256 = "020fshfrwbycs4saci58k625330i2ndfh6lqnxz5h0pp2m5y6jp8";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2910,12 +2921,12 @@
|
|||
};
|
||||
|
||||
vim-signify = buildVimPluginFrom2Nix {
|
||||
name = "vim-signify-2018-10-01";
|
||||
name = "vim-signify-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mhinz";
|
||||
repo = "vim-signify";
|
||||
rev = "ce2dd937bf3a394ef2fbeda8ab56d2b4437be3c3";
|
||||
sha256 = "08ah81bn0cmqphi2lw2y7pjdg8sw2wjwc3p3j6pj0gyqx2bsf408";
|
||||
rev = "4e7faba8d32d56d80090dedc5328849a7128b73a";
|
||||
sha256 = "0wm1kgklvd4b52lrqb9l7n511p8kaw8y9707962l4nrp8cbrbs31";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2980,22 +2991,22 @@
|
|||
};
|
||||
|
||||
vim-speeddating = buildVimPluginFrom2Nix {
|
||||
name = "vim-speeddating-2017-05-24";
|
||||
name = "vim-speeddating-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpope";
|
||||
repo = "vim-speeddating";
|
||||
rev = "a418667791f03694065948342f2d6c5cca8d0f32";
|
||||
sha256 = "1wm33izawazh0dy70zjk6rkg30yrlldba5r1gypnr4barps702gw";
|
||||
rev = "799cd3473bc64adcb6b556bf349f549570666b62";
|
||||
sha256 = "0vyla4lslf1hycx1mvgydhlar2f6bwnwbcp39s1f0m65fqs25rhz";
|
||||
};
|
||||
};
|
||||
|
||||
vim-startify = buildVimPluginFrom2Nix {
|
||||
name = "vim-startify-2018-10-02";
|
||||
name = "vim-startify-2018-10-31";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mhinz";
|
||||
repo = "vim-startify";
|
||||
rev = "556bf1d507dfaddfba4b5795716ea20f8ba902ac";
|
||||
sha256 = "1jjj7iij08455rlc705m3pnbjg87r2l29jclzkiy7nsvjjh3dfwx";
|
||||
rev = "356562270684d8d1647daf0faaf76ac90740990c";
|
||||
sha256 = "0qc9ifq4blixda0kyc0zhmqi6cqz44xnk9x17p0p9qqidf1s1l1r";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -3290,12 +3301,12 @@
|
|||
};
|
||||
|
||||
vimtex = buildVimPluginFrom2Nix {
|
||||
name = "vimtex-2018-10-29";
|
||||
name = "vimtex-2018-11-01";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lervag";
|
||||
repo = "vimtex";
|
||||
rev = "8a32372e4fc3c628d36b8215c6d30bd05eeade28";
|
||||
sha256 = "1h1fp0jnv4wj96mam9dgnr5y1i4a4bdi4law3y1qh937bx7nk2vd";
|
||||
rev = "2aae07e67034f4806d45500a967bf5775ab22baf";
|
||||
sha256 = "1ng1ps5f2vh7xs5lfkid7zwvcjglynw53xvd301zpjbgln2gv3fz";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -334,4 +334,13 @@ with generated;
|
|||
};
|
||||
});
|
||||
|
||||
jedi-vim = jedi-vim.overrideAttrs(old: {
|
||||
# checking for python3 support in vim would be neat, too, but nobody else seems to care
|
||||
buildInputs = [ python3Packages.jedi ];
|
||||
meta = {
|
||||
description = "code-completion for python using python-jedi";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
};
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
@ -37,14 +37,15 @@ ctjhoa/spacevim
|
|||
ctrlpvim/ctrlp.vim
|
||||
dag/vim2hs
|
||||
dannyob/quickfixstatus
|
||||
davidhalter/jedi-vim
|
||||
derekelkins/agda-vim
|
||||
derekwyatt/vim-scala
|
||||
dhruvasagar/vim-table-mode
|
||||
digitaltoad/vim-jade
|
||||
dleonard0/pony-vim-syntax
|
||||
dracula/vim
|
||||
dylanaraps/wal.vim
|
||||
drmingdrmer/xptemplate
|
||||
dylanaraps/wal.vim
|
||||
eagletmt/ghcmod-vim
|
||||
eagletmt/neco-ghc
|
||||
easymotion/vim-easymotion
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
{ stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, ncurses, ... } @ args:
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.12.2";
|
||||
extraMeta.branch = "4.12-2";
|
||||
|
||||
src =
|
||||
let upstream = fetchFromGitHub {
|
||||
owner = "raphael";
|
||||
repo = "linux-samus";
|
||||
rev = "v${extraMeta.branch}";
|
||||
sha256 = "1dr74i79p8r13522w2ppi8gnjd9bhngc9d2hsn91ji6f5a8fbxx9";
|
||||
}; in "${upstream}/build/linux";
|
||||
|
||||
extraMeta.platforms = [ "x86_64-linux" ];
|
||||
} // (args.argsOverride or {}))
|
|
@ -1,20 +1,27 @@
|
|||
{ stdenv, fetchurl }:
|
||||
{ stdenv, fetchurl, jre, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "solr-${version}";
|
||||
version = "4.10.3";
|
||||
version = "7.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/lucene/solr/${version}/solr-${version}.tgz";
|
||||
sha256 = "1dp269jka4q62qhv47j91wsrsnbxfn23lsx6qcycbijrlyh28w5c";
|
||||
sha256 = "1g6f58j2pzb73phj4hfri9mj7vmql72by7w3xrbq1pbnqgzxmhpa";
|
||||
};
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp dist/${name}.war $out/lib/solr.war
|
||||
cp -r example/lib/ext $out/lib/ext
|
||||
mkdir -p $out $out/bin
|
||||
|
||||
cp -r bin/solr bin/post $out/bin/
|
||||
cp -r contrib $out/
|
||||
cp -r dist $out/
|
||||
cp -r example $out/
|
||||
cp -r server $out/
|
||||
|
||||
wrapProgram $out/bin/solr --set JAVA_HOME "${jre}"
|
||||
wrapProgram $out/bin/post --set JAVA_HOME "${jre}"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -22,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Open source enterprise search platform from the Apache Lucene project";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.rickynils maintainers.domenkozar ];
|
||||
maintainers = [ maintainers.rickynils maintainers.domenkozar maintainers.aanderse ];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "plv8-${version}";
|
||||
version = "2.1.0";
|
||||
version = "2.3.8";
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
buildInputs = [ v8 postgresql ];
|
||||
|
@ -11,16 +11,20 @@ stdenv.mkDerivation rec {
|
|||
owner = "plv8";
|
||||
repo = "plv8";
|
||||
rev = "v${version}";
|
||||
sha256 = "1sfpxz0zcbinn6822j12lkwgrw9kfacrs83ic968rm489rl9w241";
|
||||
sha256 = "0hrmn1zzzdf52zwldg6axv57p0f3b279l9s8lbpijcv60fqrzx16";
|
||||
};
|
||||
|
||||
makeFlags = [ "--makefile=Makefile.shared" ];
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace Makefile --replace '-lv8_libplatform' '-lv8_libplatform -lv8_libbase'
|
||||
patchShebangs ./generate_upgrade.sh
|
||||
'';
|
||||
|
||||
buildPhase = "make -f Makefile.shared all";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
install -D plv8.so -t $out/lib
|
||||
install -D plv8*.so -t $out/lib
|
||||
install -D {plls,plcoffee,plv8}{--${version}.sql,.control} -t $out/share/extension
|
||||
'';
|
||||
|
||||
|
|
|
@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = https://www.timescale.com/;
|
||||
maintainers = with maintainers; [ volth ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.postgresql;
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jdupes-${version}";
|
||||
version = "1.10.4";
|
||||
version = "1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jbruchon";
|
||||
repo = "jdupes";
|
||||
rev = "v${version}";
|
||||
sha256 = "03a2jxv634xy5qwjrk784k3y3pd8f94pndf5m84yg2y7i8dvppnk";
|
||||
sha256 = "124n9vgnqqhnwgnms7dqmndp25xrcjaykxrzbi4v4as98kxxi3j1";
|
||||
# Unicode file names lead to different checksums on HFS+ vs. other
|
||||
# filesystems because of unicode normalisation. The testdir
|
||||
# directories have such files and will be removed.
|
||||
|
|
|
@ -11694,7 +11694,9 @@ with pkgs;
|
|||
pgroonga = callPackage ../servers/sql/postgresql/pgroonga {};
|
||||
|
||||
plv8 = callPackage ../servers/sql/postgresql/plv8 {
|
||||
v8 = v8_6_x;
|
||||
v8 = callPackage ../development/libraries/v8/plv8_6_x.nix {
|
||||
inherit (python2Packages) python;
|
||||
};
|
||||
};
|
||||
|
||||
phonon = callPackage ../development/libraries/phonon {};
|
||||
|
@ -14318,17 +14320,6 @@ with pkgs;
|
|||
];
|
||||
};
|
||||
|
||||
linux_samus_4_12 = callPackage ../os-specific/linux/kernel/linux-samus-4.12.nix {
|
||||
kernelPatches =
|
||||
[ kernelPatches.bridge_stp_helper
|
||||
kernelPatches.p9_fixes
|
||||
# See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md
|
||||
# when adding a new linux version
|
||||
kernelPatches.cpu-cgroup-v2."4.11"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
];
|
||||
};
|
||||
|
||||
linux_hardkernel_4_14 = callPackage ../os-specific/linux/kernel/linux-hardkernel-4.14.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
|
@ -14556,11 +14547,6 @@ with pkgs;
|
|||
|
||||
linuxPackages_latest_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux_latest.override { features.xen_dom0=true; }));
|
||||
|
||||
# Samus kernels
|
||||
linuxPackages_samus_4_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_samus_4_12);
|
||||
linuxPackages_samus_latest = linuxPackages_samus_4_12;
|
||||
linux_samus_latest = linuxPackages_samus_latest.kernel;
|
||||
|
||||
# Hardkernel (Odroid) kernels.
|
||||
linuxPackages_hardkernel_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_hardkernel_4_14);
|
||||
linuxPackages_hardkernel_latest = linuxPackages_hardkernel_4_14;
|
||||
|
@ -18753,6 +18739,10 @@ with pkgs;
|
|||
rstudio = libsForQt5.callPackage ../applications/editors/rstudio {
|
||||
boost = boost166;
|
||||
};
|
||||
rstudio-preview = libsForQt5.callPackage ../applications/editors/rstudio/preview.nix {
|
||||
boost = boost166;
|
||||
llvmPackages = llvmPackages_7;
|
||||
};
|
||||
|
||||
rsync = callPackage ../applications/networking/sync/rsync {
|
||||
enableACLs = !(stdenv.isDarwin || stdenv.isSunOS || stdenv.isFreeBSD);
|
||||
|
|
|
@ -662,6 +662,8 @@ in {
|
|||
|
||||
spglib = callPackage ../development/python-modules/spglib { };
|
||||
|
||||
sslib = callPackage ../development/python-modules/sslib { };
|
||||
|
||||
statistics = callPackage ../development/python-modules/statistics { };
|
||||
|
||||
sumo = callPackage ../development/python-modules/sumo { };
|
||||
|
|
Loading…
Reference in a new issue