Merge branch 'staging' into python-unstable

This commit is contained in:
Frederik Rietdijk 2021-04-04 12:59:12 +02:00 committed by GitHub
commit 1e7ed8b2f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
113 changed files with 2724 additions and 3555 deletions

View file

@ -43,6 +43,7 @@ let
"nginx"
"nginxlog"
"node"
"openldap"
"openvpn"
"postfix"
"postgres"

View file

@ -0,0 +1,67 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.prometheus.exporters.openldap;
in {
port = 9330;
extraOpts = {
ldapCredentialFile = mkOption {
type = types.path;
example = "/run/keys/ldap_pass";
description = ''
Environment file to contain the credentials to authenticate against
<package>openldap</package>.
The file should look like this:
<programlisting>
---
ldapUser: "cn=monitoring,cn=Monitor"
ldapPass: "secret"
</programlisting>
'';
};
protocol = mkOption {
default = "tcp";
example = "udp";
type = types.str;
description = ''
Which protocol to use to connect against <package>openldap</package>.
'';
};
ldapAddr = mkOption {
default = "localhost:389";
type = types.str;
description = ''
Address of the <package>openldap</package>-instance.
'';
};
metricsPath = mkOption {
default = "/metrics";
type = types.str;
description = ''
URL path where metrics should be exposed.
'';
};
interval = mkOption {
default = "30s";
type = types.str;
example = "1m";
description = ''
Scrape interval of the exporter.
'';
};
};
serviceOpts.serviceConfig = {
ExecStart = ''
${pkgs.prometheus-openldap-exporter}/bin/openldap_exporter \
--promAddr ${cfg.listenAddress}:${toString cfg.port} \
--metrPath ${cfg.metricsPath} \
--ldapNet ${cfg.protocol} \
--interval ${cfg.interval} \
--config ${cfg.ldapCredentialFile} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
};
}

View file

@ -603,6 +603,66 @@ let
'';
};
openldap = {
exporterConfig = {
enable = true;
ldapCredentialFile = "${pkgs.writeText "exporter.yml" ''
ldapUser: "cn=root,dc=example"
ldapPass: "notapassword"
''}";
};
metricProvider = {
services.openldap = {
enable = true;
settings.children = {
"cn=schema".includes = [
"${pkgs.openldap}/etc/schema/core.ldif"
"${pkgs.openldap}/etc/schema/cosine.ldif"
"${pkgs.openldap}/etc/schema/inetorgperson.ldif"
"${pkgs.openldap}/etc/schema/nis.ldif"
];
"olcDatabase={1}mdb" = {
attrs = {
objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
olcDatabase = "{1}mdb";
olcDbDirectory = "/var/db/openldap";
olcSuffix = "dc=example";
olcRootDN = {
# cn=root,dc=example
base64 = "Y249cm9vdCxkYz1leGFtcGxl";
};
olcRootPW = {
path = "${pkgs.writeText "rootpw" "notapassword"}";
};
};
};
"olcDatabase={2}monitor".attrs = {
objectClass = [ "olcDatabaseConfig" ];
olcDatabase = "{2}monitor";
olcAccess = [ "to dn.subtree=cn=monitor by users read" ];
};
};
declarativeContents."dc=example" = ''
dn: dc=example
objectClass: domain
dc: example
dn: ou=users,dc=example
objectClass: organizationalUnit
ou: users
'';
};
};
exporterTest = ''
wait_for_unit("prometheus-openldap-exporter.service")
wait_for_open_port(389)
wait_for_open_port(9330)
wait_until_succeeds(
"curl -sSf http://localhost:9330/metrics | grep -q 'openldap_scrape{result=\"ok\"} 1'"
)
'';
};
openvpn = {
exporterConfig = {
enable = true;

View file

@ -1,6 +1,6 @@
{ lib, fetchurl, pythonPackages, gettext, klick}:
{ lib, fetchurl, python2Packages, gettext, klick}:
pythonPackages.buildPythonApplication rec {
python2Packages.buildPythonApplication rec {
pname = "gtklick";
version = "0.6.4";
@ -9,7 +9,7 @@ pythonPackages.buildPythonApplication rec {
sha256 = "7799d884126ccc818678aed79d58057f8cf3528e9f1be771c3fa5b694d9d0137";
};
pythonPath = with pythonPackages; [
pythonPath = with python2Packages; [
pyliblo
pyGtkGlade
];

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
, lv2, makeWrapper, pkg-config, python, raul, rdflib, serd, sord, sratom
, lv2, makeWrapper, pkg-config, python3, raul, serd, sord, sratom
, wafHook
, suil
}:
@ -16,24 +16,21 @@ stdenv.mkDerivation rec {
deepClone = true;
};
nativeBuildInputs = [ pkg-config wafHook ];
nativeBuildInputs = [ pkg-config wafHook python3 python3.pkgs.wrapPython ];
buildInputs = [
boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper
python raul serd sord sratom suil
boost ganv glibmm gtkmm2 libjack2 lilv lv2
python3 raul serd sord sratom suil
];
preConfigure = ''
sed -e "s@{PYTHONDIR}/'@out/'@" -i wscript
'';
strictDeps = true;
propagatedBuildInputs = [ rdflib ];
pythonPath = [
python3
python3.pkgs.rdflib
];
postInstall = ''
for program in ingenams ingenish
do
wrapProgram $out/bin/$program \
--prefix PYTHONPATH : $out/${python.sitePackages}:$PYTHONPATH
done
wrapPythonProgramsIn "$out/bin" "$out $pythonPath"
'';
meta = with lib; {

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python
{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3
, serd, sord , sratom, suil, wafHook }:
stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [
gtk2 libjack2 lilv lv2 python serd sord sratom suil
gtk2 libjack2 lilv lv2 python3 serd sord sratom suil
];
meta = with lib; {

View file

@ -1,6 +1,6 @@
{ lib, fetchurl, pythonPackages }:
{ lib, fetchurl, python2Packages }:
pythonPackages.buildPythonApplication rec {
python2Packages.buildPythonApplication rec {
pname = "lastfmsubmitd";
version = "1.0.6";

View file

@ -1,5 +1,4 @@
{ lib, stdenv, callPackage, fetchurl
, python
, jdk, cmake, libxml2, zlib, python3, ncurses5
, dotnet-sdk_3
, vmopts ? null
@ -199,7 +198,7 @@ let
platforms = platforms.linux;
};
}).override {
propagatedUserEnvPkgs = [ python ];
propagatedUserEnvPkgs = [ python3 ];
};
buildRider = { name, version, src, license, description, wmClass, ... }:

View file

@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "0fpa3b807hy3wrb98h5s0p6ljya279bikv2qwq30nvr0f4zn48bk";
x86_64-darwin = "0bw7pdzn0a0zr7x8fpwck7v73dq5vh71ja00z11mhjrkjnvmmd9k";
aarch64-linux = "04wrqcmyamhwiwcyay1z0q0dvf6g7k3pcs93x7hahy16l65w7s2c";
armv7l-linux = "1hkc9i4z021jwjn275w790bppfvi63g0cnwvkssqdh1c94939rhv";
x86_64-linux = "0z1diiiykv4ilsiljffz9sl2mlvrxq0xwm8ga2ralfvjwbhzr6dn";
x86_64-darwin = "02gzw46w3kzw1ya9nx8fkhvzi0mbpz2fyp47n58jki2zkdsfiwzh";
aarch64-linux = "0bkvgdxch95dqcb41ncsjkaaswmwv6zad4hzdsr3famjm2vym1ky";
armv7l-linux = "0wdp97ihdnx9bcyn2dh6wzhb7qvdj6x730r7ng1q3i9jhd19wfi3";
}.${system};
in
callPackage ./generic.nix rec {
@ -25,7 +25,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.54.3";
version = "1.55.0";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";

View file

@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "1577wxmm8623aj513hxqcfim4d9p1r9wbla9my0c0c1x6pik0h8h";
x86_64-darwin = "1n8q626nlqw78wlpfppzj365gmlz2swll6csg3ic7p4ik3nak95b";
aarch64-linux = "1a7rkmhz456rsqw95lrknp1wqsdp63pkzh76vhzy5bazb1h081v0";
armv7l-linux = "1qjik1r41c8n9fs7p09p0zdj8c5xgqjniwv23hcy6mp28i4whclr";
x86_64-linux = "0zzdbknmljf1hizmxnrby17i8v3kp98rklinywnr632jwgjms81j";
x86_64-darwin = "0mccq1b0l6r1ipxp5gvyam43c2hh8hxdvwqikkz6g7y93p29wz9g";
aarch64-linux = "12gpday6gzl1adcykqhgz3xrdm9568a26gsndmplkn2n6l6agnp0";
armv7l-linux = "0l886vdw7az0nvvhh14pjawz0yyib59ymychy7gbk8ay5g9vfv03";
}.${system};
sourceRoot = {
@ -33,7 +33,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.54.3";
version = "1.55.0";
pname = "vscodium";
executableName = "codium";

View file

@ -1,7 +1,7 @@
{
mkDerivation, lib,
extra-cmake-modules, kdoctools,
karchive, ki18n, kio, perl, python, php, qttools
karchive, ki18n, kio, perl, python3, php, qttools
, kdbusaddons
}:
@ -12,5 +12,5 @@ mkDerivation {
maintainers = with lib.maintainers; [ orivej ];
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ karchive ki18n kio perl python php qttools kdbusaddons ];
buildInputs = [ karchive ki18n kio perl python3 php qttools kdbusaddons ];
}

View file

@ -3,7 +3,7 @@
extra-cmake-modules, kdoctools,
gettext,
kcoreaddons, kconfig, kdbusaddons, kwidgetsaddons, kitemviews, kcompletion,
qtbase, python
qtbase, python3
}:
mkDerivation {
@ -15,7 +15,7 @@ mkDerivation {
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python
gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python3
];
propagatedUserEnvPkgs = [ ];
}

View file

@ -1,5 +1,5 @@
{ mkDerivation, qtbase
, lib, extra-cmake-modules, gettext, python
, lib, extra-cmake-modules, gettext, python3
, drumstick, fluidsynth
, kcoreaddons, kcrash, kdoctools
, qtquickcontrols2, qtsvg, qttools, qtdeclarative
@ -13,7 +13,7 @@ mkDerivation {
broken = lib.versionOlder qtbase.version "5.14";
};
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python qtdeclarative ];
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 qtdeclarative ];
propagatedBuildInputs = [
drumstick fluidsynth

View file

@ -1,15 +1,16 @@
diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index 31da529..90308aa 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -80,7 +80,6 @@ else()
@@ -77,7 +77,6 @@ else()
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif()
if(NOT EXISTS "${LIBDIR}/")
- message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
endif()
# -------------------------------------------------------------------------
@@ -112,10 +111,6 @@ if(WITH_CODEC_SNDFILE)
# Prefer lib directory paths
@@ -113,10 +112,6 @@ if(WITH_CODEC_SNDFILE)
find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib)
find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib)
list(APPEND LIBSNDFILE_LIBRARIES
@ -20,7 +21,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
)
print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}")
@@ -132,7 +127,7 @@ if(WITH_PYTHON)
@@ -133,7 +128,7 @@ if(WITH_PYTHON)
# normally cached but not since we include them with blender
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
@ -29,7 +30,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
else()
@@ -173,9 +168,7 @@ endif()
@@ -174,9 +169,7 @@ endif()
if(WITH_CODEC_FFMPEG)
set(FFMPEG_FIND_COMPONENTS
avcodec avdevice avformat avutil
@ -40,20 +41,20 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
find_package(FFmpeg)
endif()
@@ -266,7 +259,6 @@ if(WITH_BOOST)
@@ -267,7 +260,6 @@ if(WITH_BOOST)
endif()
if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
- string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it !
endif()
if(WITH_OPENIMAGEIO)
@@ -439,7 +431,7 @@ else()
if(WITH_PUGIXML)
@@ -451,7 +443,7 @@ else()
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic")
endif()
-if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
+if(FALSE)
# Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=1024")
endif()

View file

@ -1,5 +1,5 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch
, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
, python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
, which, perl, makeWrapper
}:
@ -21,11 +21,11 @@ mkDerivation rec {
nativeBuildInputs = [
which
python3
ruby
];
buildInputs = [
python
ruby
qtbase
qtmultimedia
qttools

View file

@ -2,11 +2,11 @@
, desktop-file-utils, libSM, imagemagick }:
stdenv.mkDerivation rec {
version = "20.09";
version = "21.03";
pname = "mediainfo-gui";
src = fetchurl {
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "fluxctl";
version = "1.22.0";
version = "1.22.1";
src = fetchFromGitHub {
owner = "weaveworks";
repo = "flux";
rev = version;
sha256 = "sha256-7uS8704YZ7lQTSSnbVvc6T5iadl02TeVpwVPf2uS9L4=";
sha256 = "sha256-SaDO3a50CLhgLafCdgKEfHpuHdIweSy5L/TUgEUv5CM=";
};
vendorSha256 = "sha256-oqfJaQA8ybh0UNWYJ2ukoWkwdgORwvXzRCquGstwA4M=";
vendorSha256 = "sha256-4uSw/9lI/rdDqy78jNC9eHYW/v/sMFb+sQvwYG6GZks=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kubeval";
version = "0.15.0";
version = "0.16.0";
src = fetchFromGitHub {
owner = "instrumenta";
repo = "kubeval";
rev = version;
sha256 = "05li0qv4q7fy2lr50r6c1r8dhx00jb1g01qmgc72a9zqp378yiq0";
sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0=";
};
vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4=";
doCheck = false;

View file

@ -44,14 +44,14 @@
, pname ? "gnuradio"
, versionAttr ? {
major = "3.9";
minor = "0";
minor = "1";
patch = "0";
}
, fetchSubmodules ? false
}:
let
sourceSha256 = "ZjQzioAuWrd8jsYOnLNH1mK4n9EbrjgvPX3mTzVFdLk=";
sourceSha256 = "0zydmrr3gkaqiv4jv8f42awrfzs177bqb349q34rnr6j3d32z2vp";
featuresInfo = {
# Needed always
basic = {
@ -190,11 +190,10 @@ let
runtime = [ SDL ];
cmakeEnableFlag = "GR_VIDEO_SDL";
};
# codec2 and gsm support is broken with gr3.9: https://github.com/gnuradio/gnuradio/issues/4278
# gr-vocoder = {
# runtime = [ codec2 gsm ];
# cmakeEnableFlag = "GR_VOCODER";
# };
gr-vocoder = {
runtime = [ codec2 gsm ];
cmakeEnableFlag = "GR_VOCODER";
};
gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET";
runtime = [ gsl libsodium ];
@ -234,7 +233,6 @@ stdenv.mkDerivation rec {
src
nativeBuildInputs
buildInputs
cmakeFlags
disallowedReferences
stripDebugList
doCheck
@ -250,6 +248,19 @@ stdenv.mkDerivation rec {
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
inherit (libsForQt5) qwt;
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are not
# detected properly.
++ lib.optionals (hasFeature "gr-vocoder" features) [
"-DLIBCODEC2_FOUND=TRUE"
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
"-DLIBCODEC2_HAS_FREEDV_API=ON"
"-DLIBGSM_FOUND=TRUE"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
]
;
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed.

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, gmp, mpfr, python
{ lib, stdenv, fetchFromGitHub, cmake, gmp, mpfr, python2
, gperftools, ninja, makeWrapper }:
stdenv.mkDerivation {
@ -13,7 +13,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ cmake makeWrapper ninja ];
buildInputs = [ gmp mpfr python gperftools ];
buildInputs = [ gmp mpfr python2 gperftools ];
preConfigure = ''
patchShebangs bin/leantags

View file

@ -1,4 +1,4 @@
{lib, stdenv, fetchFromGitHub, gmp, cmake, python}:
{lib, stdenv, fetchFromGitHub, gmp, cmake, python3}:
stdenv.mkDerivation rec {
pname = "libpoly";
@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = [ gmp python ];
buildInputs = [ gmp python3 ];
strictDeps = true;
meta = with lib; {
homepage = "https://github.com/SRI-CSL/libpoly";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, cln, pkg-config, readline, gmp, python }:
{ lib, stdenv, fetchurl, cln, pkg-config, readline, gmp, python3 }:
stdenv.mkDerivation rec {
name = "ginac-1.8.0";
@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
buildInputs = [ readline ] ++ lib.optional stdenv.isDarwin gmp;
nativeBuildInputs = [ pkg-config python ];
nativeBuildInputs = [ pkg-config python3 ];
strictDeps = true;
preConfigure = "patchShebangs ginsh";

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, autoPatchelfHook, python }:
{ stdenv, lib, fetchurl, autoPatchelfHook, python2 }:
let
majorVersion = "8.1";
@ -14,7 +14,9 @@ in stdenv.mkDerivation rec {
sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ (python.withPackages (ps: [ ps.gurobipy ])) ];
buildInputs = [ (python2.withPackages (ps: [ ps.gurobipy ])) ];
strictDeps = true;
buildPhase = ''
cd src/build

View file

@ -18,10 +18,14 @@
, pkg-config
, allowPgo ? true
, python3 # for PGO
# for clang stdenv check
, foot
, llvmPackages
, llvmPackages_latest
}:
let
version = "1.7.0";
version = "1.7.1";
# build stimuli file for PGO build and the script to generate it
# independently of the foot's build, so we can cache the result
@ -67,8 +71,8 @@ let
# https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#performance-optimized-pgo
pgoCflags = {
"clang" = "-O3 -Wno-ignored-optimization-argument -Wno-profile-instr-out-of-date -Wno-profile-instr-unprofiled";
"gcc" = "-O3 -Wno-missing-profile";
"clang" = "-O3 -Wno-ignored-optimization-argument";
"gcc" = "-O3";
}."${compilerName}";
# ar with lto support
@ -89,7 +93,7 @@ stdenv.mkDerivation rec {
src = fetchzip {
url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz";
sha256 = "0w07fw7y31g891335ji3fm783r4dsk5py82qp0zx6z3rfr07paby";
sha256 = "1x6nyhlp0zynnbdjx87c4ybfx6fyr0r53vypkfima56dwbfh98ka";
};
nativeBuildInputs = [
@ -130,12 +134,26 @@ stdenv.mkDerivation rec {
preBuild = lib.optionalString doPgo ''
meson configure -Db_pgo=generate
ninja
# make sure there is _some_ profiling data on all binaries
./footclient --version
./foot --version
# generate pgo data of wayland independent code
./pgo ${stimuliFile} ${stimuliFile} ${stimuliFile}
meson configure -Db_pgo=use
'' + lib.optionalString (doPgo && stdenv.cc.cc.pname == "clang") ''
'' + lib.optionalString (doPgo && compilerName == "clang") ''
llvm-profdata merge default_*profraw --output=default.profdata
'';
passthru.tests = {
clang-default-compilation = foot.override {
inherit (llvmPackages) stdenv;
};
clang-latest-compilation = foot.override {
inherit (llvmPackages_latest) stdenv;
};
};
meta = with lib; {
homepage = "https://codeberg.org/dnkl/foot/";
changelog = "https://codeberg.org/dnkl/foot/releases/tag/${version}";

View file

@ -1,6 +1,6 @@
{ lib, stdenv, fetchgit
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, makeWrapper, xmlto
, pythonPackages }:
, python2Packages }:
stdenv.mkDerivation {
pname = "git-bz";
@ -16,7 +16,7 @@ stdenv.mkDerivation {
asciidoc docbook_xml_dtd_45 docbook_xsl libxslt makeWrapper xmlto
];
buildInputs = []
++ (with pythonPackages; [ python pysqlite ]);
++ (with python2Packages; [ python pysqlite ]);
postPatch = ''
patchShebangs configure
@ -27,8 +27,8 @@ stdenv.mkDerivation {
postInstall = ''
wrapProgram $out/bin/git-bz \
--prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pycrypto}")" \
--prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pysqlite}")"
--prefix PYTHONPATH : "$(toPythonPath "${python2Packages.pycrypto}")" \
--prefix PYTHONPATH : "$(toPythonPath "${python2Packages.pysqlite}")"
'';
meta = with lib; {

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, pythonPackages }:
{ lib, fetchFromGitHub, python2Packages }:
pythonPackages.buildPythonApplication rec {
python2Packages.buildPythonApplication rec {
pname = "git-crecord";
version = "20161216.0";
@ -11,7 +11,7 @@ pythonPackages.buildPythonApplication rec {
sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i";
};
propagatedBuildInputs = with pythonPackages; [ docutils ];
propagatedBuildInputs = with python2Packages; [ docutils ];
meta = {
homepage = "https://github.com/andrewshadura/git-crecord";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchzip, perl, python, gnuplot, coreutils, gnugrep }:
{ lib, stdenv, fetchzip, perl, python2, gnuplot, coreutils, gnugrep }:
stdenv.mkDerivation rec {
pname = "gitstats";
@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
name = "${pname}-${version}" + "-src";
};
buildInputs = [ perl python ];
nativeBuildInputs = [ perl ];
buildInputs = [ python2 ];
strictDeps = true;
postPatch = ''
sed -e "s|gnuplot_cmd = .*|gnuplot_cmd = '${gnuplot}/bin/gnuplot'|" \

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "papirus-icon-theme";
version = "20210302";
version = "20210401";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = pname;
rev = version;
sha256 = "0h1cja8qqlnddm92hkyhkyj5rqfj494v0pss2mg95qqkjijpcgd0";
sha256 = "sha256-t0zoeIpj+0QVH1wmbEIJdqzEDOGzpclePv+bcZgtnwo=";
};
nativeBuildInputs = [
@ -25,12 +25,14 @@ stdenv.mkDerivation rec {
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
mv {,e}Papirus* $out/share/icons
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
runHook postInstall
'';
meta = with lib; {
@ -39,6 +41,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Only;
# darwin gives hash mismatch in source, probably because of file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ romildo ];
maintainers = with maintainers; [ romildo fortuneteller2k ];
};
}

View file

@ -3,7 +3,7 @@
, extra-cmake-modules
, gettext
, kdoctools
, python
, python3
, appstream-qt
, discount
, flatpak
@ -34,7 +34,7 @@
mkDerivation {
name = "discover";
meta.broken = lib.versionOlder qtbase.version "5.15.0";
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 ];
buildInputs = [
# discount is needed for libmarkdown
appstream-qt

View file

@ -27,13 +27,13 @@ let
ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
in stdenv.mkDerivation rec {
pname = "bluespec";
version = "unstable-2021.02.14";
version = "unstable-2021.03.29";
src = fetchFromGitHub {
owner = "B-Lang-org";
repo = "bsc";
rev = "c085ecd807d85f31d102d8bec71f5c28dc96b31d";
sha256 = "0c86gwhrarw78cr9c9slb9vij6kcwx3x281kbqji96qqzs0dfb32";
rev = "00185f7960bd1bd5554a1167be9f37e1f18ac454";
sha256 = "1bcdhql4cla137d8xr8m2h21dyxv0jpjpalpr5mgj2jxqfsmkbrn";
};
enableParallelBuilding = true;

View file

@ -7,7 +7,7 @@
, flex
, llvmPackages_8
, opencl-clang
, python
, python3
, spirv-llvm-translator
, buildWithPatches ? true
@ -33,9 +33,11 @@ stdenv.mkDerivation rec {
sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
};
nativeBuildInputs = [ clang cmake bison flex llvm python ];
nativeBuildInputs = [ clang cmake bison flex python3 ];
buildInputs = [ clang opencl-clang spirv-llvm-translator ];
buildInputs = [ clang opencl-clang spirv-llvm-translator llvm ];
strictDeps = true;
# checkInputs = [ lit pythonPackages.nose ];

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python, wafHook }:
{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec {
pname = "raul";
@ -12,8 +12,10 @@ stdenv.mkDerivation rec {
sha256 = "1z37jb6ghc13b8nv8a8hcg669gl8vh4ni9djvfgga9vcz8rmcg8l";
};
nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ boost gtk2 python ];
nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ boost gtk2 ];
strictDeps = true;
meta = with lib; {
description = "A C++ utility library primarily aimed at audio/musical applications";

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python, serd, sord, sratom
{ stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python3, serd, sord, sratom
, wafHook
, withQt4 ? true, qt4 ? null
, withQt5 ? false, qt5 ? null }:
@ -17,13 +17,15 @@ stdenv.mkDerivation rec {
sha256 = "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06";
};
nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ gtk2 lv2 python serd sord sratom ]
nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ gtk2 lv2 serd sord sratom ]
++ (lib.optionals withQt4 [ qt4 ])
++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));
dontWrapQtApps = true;
strictDeps = true;
meta = with lib; {
homepage = "http://drobilla.net/software/suil";
description = "A lightweight C library for loading and wrapping LV2 plugin UIs";

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, unzip, libjpeg, libtiff, zlib
, postgresql, libmysqlclient, libgeotiff, pythonPackages, proj, geos, openssl
, postgresql, libmysqlclient, libgeotiff, python2Packages, proj, geos, openssl
, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
, libiconv, libxml2
, netcdfSupport ? true, netcdf, hdf5, curl
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ unzip ];
buildInputs = [ libjpeg libtiff libgeotiff libpng proj openssl sqlite
libspatialite poppler hdf4 qhull giflib expat libxml2 proj ]
++ (with pythonPackages; [ python numpy wrapPython ])
++ (with python2Packages; [ python numpy wrapPython ])
++ lib.optional stdenv.isDarwin libiconv
++ lib.optionals netcdfSupport [ netcdf hdf5 curl ];

View file

@ -1,67 +0,0 @@
{ lib, stdenv, fetchurl, unzip, libjpeg, libtiff, zlib
, postgresql, mysql57, libgeotiff, python, pythonPackages, proj, geos, openssl
, libpng }:
stdenv.mkDerivation rec {
pname = "gdal";
version = "1.11.5";
src = fetchurl {
url = "https://download.osgeo.org/gdal/${version}/${pname}-${version}.tar.xz";
sha256 = "0hphxzvy23v3vqxx1y22hhhg4cypihrb8555y12nb4mrhzlw7zfl";
};
nativeBuildInputs = [ unzip ];
buildInputs = [ libjpeg libtiff libgeotiff libpng python pythonPackages.numpy proj openssl ];
patches = [
# This ensures that the python package is installed into gdal's prefix,
# rather than trying to install into python's prefix.
./python.patch
];
hardeningDisable = [ "format" "fortify" ];
# Don't use optimization for gcc >= 4.3. That's said to be causing segfaults.
# Unset CC and CXX as they confuse libtool.
preConfigure = "export CFLAGS=-O0 CXXFLAGS=-O0; unset CC CXX";
configureFlags = [
"--with-jpeg=${libjpeg.dev}"
"--with-libtiff=${libtiff.dev}" # optional (without largetiff support)
"--with-libpng=${libpng.dev}" # optional
"--with-libz=${zlib.dev}" # optional
"--with-pg=${postgresql}/bin/pg_config"
"--with-mysql=${mysql57.connector-c}/bin/mysql_config"
"--with-geotiff=${libgeotiff.dev}"
"--with-python" # optional
"--with-static-proj4=${proj}" # optional
"--with-geos=${geos}/bin/geos-config"# optional
];
# Allow use of old proj_api.h
NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1";
# Prevent this:
#
# Checking .pth file support in /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/
# /nix/store/pbi1lgank10fy0xpjckbdpgacqw34dsz-python-2.7.9/bin/python -E -c pass
# TEST FAILED: /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/ does NOT support .pth files
# error: bad install directory or PYTHONPATH
preBuild = ''
pythonInstallDir=$out/lib/${python.libPrefix}/site-packages
mkdir -p $pythonInstallDir
export PYTHONPATH=''${PYTHONPATH:+''${PYTHONPATH}:}$pythonInstallDir
'';
enableParallelBuilding = true;
meta = {
description = "Translator library for raster geospatial data formats";
homepage = "https://www.gdal.org/";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.marcweber ];
platforms = with lib.platforms; linux ++ darwin;
};
}

View file

@ -1,17 +0,0 @@
diff --git a/swig/python/GNUmakefile.old b/swig/python/GNUmakefile
index b4d5e90..2160b83 100644
--- a/swig/python/GNUmakefile
+++ b/swig/python/GNUmakefile
@@ -67,11 +67,7 @@ egg:
install:
-ifeq ($(PY_HAVE_SETUPTOOLS),1)
- $(PYTHON) setup.py install
-else
$(PYTHON) setup.py install --prefix=$(DESTDIR)$(prefix)
-endif
for f in $(SCRIPTS) ; do $(INSTALL) ./scripts/$$f $(DESTDIR)$(INST_BIN) ; done

View file

@ -1,6 +1,6 @@
{ fetchurl, fetchpatch, lib, stdenv,
cmake, netcdf, gfortran, libpng, openjpeg,
enablePython ? false, pythonPackages }:
enablePython ? false, pythonPackages ? null }:
stdenv.mkDerivation rec {
pname = "grib-api";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, boost, cmake, hwloc, gperftools, pkg-config, python }:
{ lib, stdenv, fetchFromGitHub, boost, cmake, hwloc, gperftools, pkg-config, python3 }:
stdenv.mkDerivation rec {
pname = "hpx";
@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
};
buildInputs = [ boost hwloc gperftools ];
nativeBuildInputs = [ cmake pkg-config python ];
nativeBuildInputs = [ cmake pkg-config python3 ];
strictDeps = true;
meta = {
description = "C++ standard library for concurrency and parallelism";

View file

@ -1,9 +1,9 @@
{ mkDerivation, lib, extra-cmake-modules, python }:
{ mkDerivation, lib, extra-cmake-modules, python3 }:
mkDerivation {
name = "kapidox";
meta = { maintainers = [ lib.maintainers.ttuegel ]; };
nativeBuildInputs = [ extra-cmake-modules python ];
nativeBuildInputs = [ extra-cmake-modules python3 python3.pkgs.setuptools ];
postFixup = ''
moveToOutput bin $bin
'';

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libdrm
, withPython ? false, python }:
, withPython ? false, python ? null }:
stdenv.mkDerivation {
pname = "kmsxx";
@ -16,7 +16,7 @@ stdenv.mkDerivation {
cmakeFlags = lib.optional (!withPython) "-DKMSXX_ENABLE_PYTHON=OFF";
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ libdrm python ];
buildInputs = [ libdrm ] ++ lib.optionals withPython [ python ];
meta = with lib; {
description = "C++11 library, utilities and python bindings for Linux kernel mode setting";
@ -24,5 +24,6 @@ stdenv.mkDerivation {
license = licenses.mpl20;
maintainers = with maintainers; [ gnidorah ];
platforms = platforms.linux;
broken = true; # marked broken 2021-03-26
};
}

View file

@ -4,7 +4,7 @@
, cmake
, blas
# Check Inputs
, python
, python3
}:
stdenv.mkDerivation rec {
@ -26,8 +26,10 @@ stdenv.mkDerivation rec {
"-DCMAKE_INSTALL_PREFIX=" # ends up double-adding /nix/store/... prefix, this avoids issue
];
strictDeps = true;
doCheck = true;
checkInputs = [ python.pkgs.numpy ];
checkInputs = [ python3.pkgs.numpy ];
meta = with lib; {
description = "General GTO integrals for quantum chemistry";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, python, llvmPackages }:
{ lib, stdenv, fetchFromGitHub, python3, llvmPackages }:
let
llvm = llvmPackages.llvm;
@ -16,8 +16,9 @@ stdenv.mkDerivation {
sha256 = "03l9frx3iw3qdsb9rrscgzdwm6872gv6mkssvn027ndf9y321xk7";
};
nativeBuildInputs = [ python ];
buildInputs = [ llvm clang clang-unwrapped ];
nativeBuildInputs = [ python3 llvm ];
strictDeps = true;
postPatch = ''
sed -i 's,llvm_clang =.*,llvm_clang = "${clang-unwrapped}/bin/clang",' configure.py
@ -25,7 +26,7 @@ stdenv.mkDerivation {
'';
configurePhase = ''
${python.interpreter} ./configure.py --prefix=$out
${python3.interpreter} ./configure.py --prefix=$out
'';
enableParallelBuilding = true;

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub
, python
, python2
}:
stdenv.mkDerivation rec {
@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
sha256 = "0chsgam5dqr9vjfhdcp8cgk7la6nf3lq44zs6z6si98cq743550g";
};
nativeBuildInputs = [ python ];
nativeBuildInputs = [ python2 ];
strictDeps = true;
patchPhase = ''
patchShebangs src

View file

@ -111,6 +111,8 @@ stdenv.mkDerivation rec {
pkg-config
];
strictDeps = true;
# Some grammar files needed to be copied too from some dependencies. I suppose
# if one define a dependency in such a way that its share directory is found,
# then this copying would be unnecessary. Instead of actually copying these

View file

@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, zlib }:
stdenv.mkDerivation rec {
version = "20.09";
version = "21.03";
pname = "libmediainfo";
src = fetchurl {
url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
sha256 = "15ni9pnch6688m72swwax109a7mg4a08yx75qknrx7qa6dbyhz6h";
sha256 = "1jm4mk539wf3crgpcddgwdixshwdzm37mkb5441lifhcz2mykdsn";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];

View file

@ -1,4 +1,4 @@
{ lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config, enablePython ? false, python, glib }:
{ lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config, enablePython ? false, python ? null, glib }:
stdenv.mkDerivation rec {
pname = "libplist";

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, texinfo, pcre2
, enablePython ? false, python, swig, libxml2, ncurses
, enablePython ? false, python ? null, swig, libxml2, ncurses
}:
let
isPython3 = enablePython && python.pythonAtLeast "3";

View file

@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, autoreconfHook }:
stdenv.mkDerivation rec {
version = "0.4.38";
version = "0.4.39";
pname = "libzen";
src = fetchurl {
url = "https://mediaarea.net/download/source/libzen/${version}/libzen_${version}.tar.bz2";
sha256 = "1nkygc17sndznpcf71fdrhwpm8z9a3hc9csqlafwswh49axhfkjr";
sha256 = "1rwaxmid9iv65n0y6xlcyxxydsvihjni9ldxpg6pbqz43amp49xx";
};
nativeBuildInputs = [ autoreconfHook ];

View file

@ -4,7 +4,7 @@
, cmake
, ninja
, perl # Project uses Perl for scripting and testing
, python
, python3
, enableThreading ? true # Threading can be disabled to increase security https://tls.mbed.org/kb/development/thread-safety-and-multi-threading
}:
@ -20,7 +20,9 @@ stdenv.mkDerivation rec {
sha256 = "0mz7n373b8d287crwi6kq2hb8ryyi228j38h25744lqai23qj5cf";
};
nativeBuildInputs = [ cmake ninja perl python ];
nativeBuildInputs = [ cmake ninja perl python3 ];
strictDeps = true;
postConfigure = lib.optionals enableThreading ''
perl scripts/config.pl set MBEDTLS_THREADING_C # Threading abstraction layer

View file

@ -87,6 +87,8 @@ stdenv.mkDerivation rec {
srtp
];
strictDeps = true;
# Do not build static libraries
cmakeFlags = [ "-DENABLE_STATIC=NO" ];

View file

@ -1,6 +1,6 @@
{ callPackage, ... }:
callPackage ./generic-v3.nix {
version = "3.15.5";
sha256 = "1znxzy4illsr4a08642h6s83jawzrq40m6pzkp05q0cpm8hcpvda";
version = "3.15.7";
sha256 = "03fx96rwxfbmr47f1nrflvaq5kk5p3a9wms4688nbnmymyghyml0";
}

View file

@ -35,5 +35,12 @@ stdenv.mkDerivation rec {
license = licenses.asl20;
platforms = platforms.linux ++ platforms.darwin;
maintainers = [ maintainers.bjornfor ];
knownVulnerabilities = [
"CVE-2018-1320"
"CVE-2018-11798"
"CVE-2019-0205"
"CVE-2019-0210"
"CVE-2020-13949"
];
};
}

View file

@ -1,26 +1,17 @@
{ lib, stdenv, fetchurl, fetchpatch, boost, zlib, libevent, openssl, python, cmake, pkg-config
{ lib, stdenv, fetchurl, boost, zlib, libevent, openssl, python, cmake, pkg-config
, bison, flex, twisted
, static ? stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "thrift";
version = "0.13.0";
version = "0.14.1";
src = fetchurl {
url = "https://archive.apache.org/dist/thrift/${version}/${pname}-${version}.tar.gz";
sha256 = "0yai9c3bdsrkkjshgim7zk0i7malwfprg00l9774dbrkh2w4ilvs";
sha256 = "198c855mjy5byqfb941hiyq2j37baz63f0wcfy4vp8y8v4f5xnhk";
};
patches = [
# Fix a failing test on darwin
# https://issues.apache.org/jira/browse/THRIFT-4976
(fetchpatch {
url = "https://github.com/apache/thrift/commit/6701dbb8e89f6550c7843e9b75b118998df471c3.diff";
sha256 = "14rqma2b2zv3zxkkl5iv9kvyp3zihvad6fdc2gcdqv37nqnswx9d";
})
];
# Workaround to make the python wrapper not drop this package:
# pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
pythonPath = [];
@ -32,6 +23,9 @@ stdenv.mkDerivation rec {
preConfigure = "export PY_PREFIX=$out";
cmakeFlags = [
"-DBUILD_JAVASCRIPT:BOOL=OFF"
"-DBUILD_NODEJS:BOOL=OFF"
# FIXME: Fails to link in static mode with undefined reference to
# `boost::unit_test::unit_test_main(bool (*)(), int, char**)'
"-DBUILD_TESTING:BOOL=${if static then "OFF" else "ON"}"
@ -40,11 +34,32 @@ stdenv.mkDerivation rec {
"-DOPENSSL_USE_STATIC_LIBS=ON"
];
disabledTests = [
"PythonTestSSLSocket"
] ++ lib.optionals stdenv.isDarwin [
# tests that hang up in the darwin sandbox
"SecurityTest"
"SecurityFromBufferTest"
"python_test"
# tests that fail in the darwin sandbox when trying to use network
"UnitTests"
"TInterruptTest"
"TServerIntegrationTest"
"processor"
"TNonblockingServerTest"
"TNonblockingSSLServerTest"
"StressTest"
"StressTestConcurrent"
"StressTestNonBlocking"
"PythonThriftTNonblockingServer"
];
doCheck = !static;
checkPhase = ''
runHook preCheck
${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/lib ctest -E PythonTestSSLSocket
${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/lib ctest -E "($(echo "$disabledTests" | tr " " "|"))"
runHook postCheck
'';

View file

@ -7,13 +7,13 @@
buildPythonPackage rec {
pname = "aioshelly";
version = "0.6.1";
version = "0.6.2";
src = fetchFromGitHub {
owner = "home-assistant-libs";
repo = pname;
rev = version;
sha256 = "sha256-2igN5mmkXyYpQeAoPAYzhirictuionVMbqifNigEYdw=";
sha256 = "sha256-vlIon+VAHeJiaSIVMEKEpwQC4gXA52vxfEkiQMC9yiw=";
};
propagatedBuildInputs = [

View file

@ -1,21 +1,30 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, pyserial
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "aqualogic";
version = "2.5";
version = "2.6";
src = fetchFromGitHub {
owner = "swilson";
repo = pname;
rev = version;
sha256 = "sha256-yxd+A5dsB9gBwVlPNjz+IgDHKTktNky84bWZMhA/xa4=";
sha256 = "sha256-dAC/0OjvrC8J/5pu5vcOKV/WqgkAlz0LuFl0up6FQRM=";
};
patches = [
(fetchpatch {
name = "allow-iobase-objects.patch";
url = "https://github.com/swilson/aqualogic/commit/185fe25a86c82c497a55c78914b55ed39f5ca339.patch";
sha256 = "072jrrsqv86bn3skibjc57111jlpm8pq2503997fl3h4v6ziwdxg";
})
];
propagatedBuildInputs = [ pyserial ];
checkInputs = [ pytestCheckHook ];

View file

@ -9,13 +9,13 @@
buildPythonPackage rec {
pname = "axis";
version = "43";
version = "44";
src = fetchFromGitHub {
owner = "Kane610";
repo = pname;
rev = "v${version}";
sha256 = "1p9yfixsrkw7rxbvgybcb653rbqv0x18wzqkh620g193snm9sgm2";
sha256 = "sha256-GC8GiDP/QHU+8swe60VFPRx8kSMMHuXjIPEKCja8HPE=";
};
propagatedBuildInputs = [

View file

@ -1,9 +1,10 @@
{ lib
, buildPythonPackage
, fetchPypi
, setuptools_scm
, setuptools-scm
, pycryptodome
, requests
, six
}:
buildPythonPackage rec {
@ -15,13 +16,17 @@ buildPythonPackage rec {
sha256 = "1rkc3zwsq53rjsmc47335m4viljiwdbmw3y2zry4z70j8q1dbmki";
};
buildInputs = [ setuptools_scm ];
propagatedBuildInputs = [ pycryptodome requests ];
buildInputs = [
setuptools-scm
];
# Jailbreak pycryptodome
preBuild = ''
substituteInPlace setup.py --replace "==3.4.7" ""
'';
propagatedBuildInputs = [
pycryptodome
requests
six
];
pythonImportsCheck = [ "httpsig" ];
meta = with lib; {
description = "Sign HTTP requests with secure signatures";

View file

@ -32,14 +32,22 @@ buildPythonPackage rec {
disabledTests = [
# Some tests needs network capabilities
"test_str_types_empty"
"test_associate_reject"
"TestEchoSCP"
"TestEchoSCPCLI"
"TestFindSCP"
"TestFindSCPCLI"
"TestGetSCP"
"TestGetSCPCLI"
"TestMoveSCP"
"TestMoveSCPCLI"
"TestQRGetServiceClass"
"TestQRMoveServiceClass"
"TestStoreSCP"
"TestStoreSCPCLI"
"TestStoreSCU"
"TestStoreSCUCLI"
"TestQRGetServiceClass"
"TestQRMoveServiceClass"
"TestState"
];
pythonImportsCheck = [ "pynetdicom" ];
@ -49,7 +57,7 @@ buildPythonPackage rec {
homepage = "https://github.com/pydicom/pynetdicom";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
# Tests are not passing on Darwin, thus it's assumed that it doesn't work
broken = stdenv.isDarwin;
# Tests are not passing on Darwin/Aarch64, thus it's assumed that it doesn't work
broken = stdenv.isDarwin || stdenv.isAarch64;
};
}

View file

@ -36,7 +36,8 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'croniter = "^0"' 'croniter = "*"' \
--replace 'defusedxml = "^0.6"' 'defusedxml = "*"'
--replace 'defusedxml = "^0.6"' 'defusedxml = "*"' \
--replace 'zeroconf = "^0.28"' 'zeroconf = "*"'
'';
nativeBuildInputs = [

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, python
, buildPythonPackage
, fetchPypi
, substituteAll
, libjpeg_turbo
, numpy
}:
buildPythonPackage rec {
pname = "pyturbojpeg";
version = "1.4.1";
src = fetchPypi {
pname = "PyTurboJPEG";
inherit version;
sha256 = "09688a93331281e566569b4d313e1d1a058ca32ccae1a2473847a10e4ca2f2a7";
};
patches = [
(substituteAll {
src = ./lib-path.patch;
libturbojpeg = "${libjpeg_turbo.out}/lib/libturbojpeg${stdenv.hostPlatform.extensions.sharedLibrary}";
})
];
propagatedBuildInputs = [
numpy
];
# upstream has no tests, but we want to test whether the library is found
checkPhase = ''
${python.interpreter} -c 'from turbojpeg import TurboJPEG; TurboJPEG()'
'';
pythonImportsCheck = [ "turbojpeg" ];
meta = with lib; {
description = "A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
homepage = "https://github.com/lilohuang/PyTurboJPEG";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -0,0 +1,28 @@
diff --git a/turbojpeg.py b/turbojpeg.py
index 73edb38..bfa8c67 100644
--- a/turbojpeg.py
+++ b/turbojpeg.py
@@ -408,22 +408,7 @@ class TurboJPEG(object):
def __find_turbojpeg(self):
"""returns default turbojpeg library path if possible"""
- lib_path = find_library('turbojpeg')
- if lib_path is not None:
- return lib_path
- for lib_path in DEFAULT_LIB_PATHS[platform.system()]:
- if os.path.exists(lib_path):
- return lib_path
- if platform.system() == 'Linux' and 'LD_LIBRARY_PATH' in os.environ:
- ld_library_path = os.environ['LD_LIBRARY_PATH']
- for path in ld_library_path.split(':'):
- lib_path = os.path.join(path, 'libturbojpeg.so.0')
- if os.path.exists(lib_path):
- return lib_path
- raise RuntimeError(
- 'Unable to locate turbojpeg library automatically. '
- 'You may specify the turbojpeg library path manually.\n'
- 'e.g. jpeg = TurboJPEG(lib_path)')
+ return '@libturbojpeg@'
def __getaddr(self, nda):
"""returns the memory address for a given ndarray"""

View file

@ -3,27 +3,26 @@
, buildPythonPackage
, fetchPypi
, ifaddr
, typing
, isPy27
, pythonOlder
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "zeroconf";
version = "0.28.8";
disabled = isPy27;
version = "0.29.0";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb";
sha256 = "sha256-eu+7ZYtFKx/X5REkNk+TjG9eQtbqiT+iVXvqjAbFQK8=";
};
propagatedBuildInputs = [ ifaddr ]
++ lib.optionals (pythonOlder "3.5") [ typing ];
propagatedBuildInputs = [ ifaddr ];
checkInputs = [ pytestCheckHook ];
pytestFlagsArray = [ "zeroconf/test.py" ];
disabledTests = [
# disable tests that expect some sort of networking in the build container
"test_launch_and_close"
@ -33,6 +32,7 @@ buildPythonPackage rec {
] ++ lib.optionals stdenv.isDarwin [
"test_lots_of_names"
];
__darwinAllowLocalNetworking = true;
pythonImportsCheck = [ "zeroconf" ];
@ -40,7 +40,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python implementation of multicast DNS service discovery";
homepage = "https://github.com/jstasiak/python-zeroconf";
license = licenses.lgpl21;
license = licenses.lgpl21Only;
maintainers = with maintainers; [ abbradar ];
};
}

View file

@ -1,4 +1,4 @@
{lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, curl, elfutils, python, libiberty, libopcodes}:
{lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, curl, elfutils, python3, libiberty, libopcodes}:
stdenv.mkDerivation rec {
pname = "kcov";
@ -12,9 +12,11 @@ stdenv.mkDerivation rec {
};
preConfigure = "patchShebangs src/bin-to-c-source.py";
nativeBuildInputs = [ cmake pkg-config ];
nativeBuildInputs = [ cmake pkg-config python3 ];
buildInputs = [ zlib curl elfutils python libiberty libopcodes ];
buildInputs = [ curl zlib elfutils libiberty libopcodes ];
strictDeps = true;
meta = with lib; {
description = "Code coverage tester for compiled programs, Python scripts and shell scripts";

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, nix-update-source, lib, python
{ stdenv, fetchFromGitHub, nix-update-source, lib, python3
, which, runtimeShell, pychecker ? null }:
stdenv.mkDerivation rec {
version = "0.7.0";
@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
sha256 = "1pwnmlq2pgkkln9sgz4wlb9dqlqw83bkf105qljnlvggc21zm3pv";
};
pname = "gup";
buildInputs = lib.remove null [ python which pychecker ];
nativeBuildInputs = [ python3 which pychecker ];
buildInputs = [ python3 ];
strictDeps = true;
SKIP_PYCHECKER = pychecker == null;
buildPhase = "make python";
installPhase = ''

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "cloud-nuke";
version = "0.1.25";
version = "0.1.27";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
sha256 = "sha256-tbwmHsiR/RJl3CJrzJtI6GA3v9mNAirbEHXX+wDMd2k=";
sha256 = "1708g8msv5cw0b4gljyjqns328wbci3p3avwysms4aknm4vky0g0";
};
vendorSha256 = "sha256-vOaklBsMuKTQ3cJgXDClM1RWh+ovemO1uDWXeK1ygU4=";
vendorSha256 = "0m7k6k790i06i8a5r8y7787mmikfibbvl7s8xqxygq1f5cpdspd6";
buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];

View file

@ -6,6 +6,7 @@
, jinja2
, pylint
, pyyaml
, six
}:
buildPythonApplication rec {
@ -21,7 +22,7 @@ buildPythonApplication rec {
sha256 = "0kmggnfbv6bba75l3zfzqwk0swi90brjka307m2kcz2w35kr8jvn";
};
propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml ];
propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml six ];
doCheck = false;

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, pythonPackages }:
{ lib, fetchFromGitHub, python3Packages }:
pythonPackages.buildPythonApplication rec {
python3Packages.buildPythonApplication rec {
pname = "grabserial";
version = "2.0.2";
@ -11,7 +11,10 @@ pythonPackages.buildPythonApplication rec {
sha256 = "0ryk4w8q6zfmia71nwnk5b7xaxw0sf45dw9q50xp7k76i3k5f9f3";
};
propagatedBuildInputs = [ pythonPackages.pyserial ];
propagatedBuildInputs = [ python3Packages.pyserial ];
# no usable tests
doCheck = false;
meta = with lib; {
description = "Python based serial dump and timing program";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, python, pcsclite, pth }:
{ lib, stdenv, fetchFromGitHub, pcsclite, pth, python2 }:
stdenv.mkDerivation rec {
pname = "hexio";
@ -11,8 +11,9 @@ stdenv.mkDerivation rec {
repo = "hexio";
};
propagatedBuildInputs = [ python ];
buildInputs = [ pcsclite pth ];
strictDeps = true;
buildInputs = [ pcsclite pth python2 ];
patchPhase = ''
substituteInPlace Makefile \

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchurl, makeWrapper, python, qmake, ctags, gdb }:
{ mkDerivation, lib, fetchurl, makeWrapper, python3, qmake, ctags, gdb }:
mkDerivation rec {
pname = "gede";
@ -9,10 +9,12 @@ mkDerivation rec {
sha256 = "0hbsy2ymzgl8xd9mnh43gxdfncy7g6czxfvfyh7zp3ij8yiwf8x3";
};
nativeBuildInputs = [ qmake makeWrapper python ];
nativeBuildInputs = [ qmake makeWrapper python3 ];
buildInputs = [ ctags ];
strictDeps = true;
dontUseQmakeConfigure = true;
buildPhase = ":";

View file

@ -1,8 +1,10 @@
{ fetchurl, lib, stdenv, libtool, makeWrapper
, coreutils, ctags, ncurses, pythonPackages, sqlite, universal-ctags
, coreutils, ctags, ncurses, python3Packages, sqlite, universal-ctags
}:
stdenv.mkDerivation rec {
let
pygments = python3Packages.pygments;
in stdenv.mkDerivation rec {
pname = "global";
version = "6.6.5";
@ -15,7 +17,7 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses ];
propagatedBuildInputs = [ pythonPackages.pygments ];
propagatedBuildInputs = [ pygments ];
configureFlags = [
"--with-ltdl-include=${libtool}/include"
@ -34,9 +36,9 @@ stdenv.mkDerivation rec {
cp -v *.el "$out/share/emacs/site-lisp"
wrapProgram $out/bin/gtags \
--prefix PYTHONPATH : "$(toPythonPath ${pythonPackages.pygments})"
--prefix PYTHONPATH : "$(toPythonPath ${pygments})"
wrapProgram $out/bin/global \
--prefix PYTHONPATH : "$(toPythonPath ${pythonPackages.pygments})"
--prefix PYTHONPATH : "$(toPythonPath ${pygments})"
'';
meta = with lib; {

View file

@ -1,4 +1,4 @@
{ autoconf, fetchurl, makedepend, perl, python, lib, stdenv, unzip, zip }:
{ autoconf, fetchurl, makedepend, perl, python3, lib, stdenv, unzip, zip }:
stdenv.mkDerivation rec {
name = "jscoverage-0.5.1";
@ -12,8 +12,9 @@ stdenv.mkDerivation rec {
./jsfalse_to_null.patch
];
nativeBuildInputs = [ unzip ];
buildInputs = [ autoconf makedepend perl python zip ];
nativeBuildInputs = [ unzip perl python3 zip ];
strictDeps = true;
# It works without MOZ_FIX_LINK_PATHS, circumventing an impurity
# issue. Maybe we could kick js/ (spidermonkey) completely and

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, pkg-config, bison, flex, gperf, ncurses, pythonPackages }:
{ lib, stdenv, fetchurl, pkg-config, bison, flex, gperf, ncurses, python3, bash }:
stdenv.mkDerivation rec {
basename = "kconfig-frontends";
@ -10,17 +10,15 @@ stdenv.mkDerivation rec {
url = "http://ymorin.is-a-geek.org/download/${basename}/${name}.tar.xz";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ bison flex gperf ncurses pythonPackages.python pythonPackages.wrapPython ];
nativeBuildInputs = [ bison flex gperf pkg-config ];
buildInputs = [ bash ncurses python3 ];
strictDeps = true;
configureFlags = [
"--enable-frontends=conf,mconf,nconf"
];
postInstall = ''
wrapPythonPrograms
'';
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=format-security";
meta = with lib; {

View file

@ -135,7 +135,5 @@ rustPlatform.buildRustPackage {
'';
license = licenses.mit;
maintainers = with maintainers; [ Profpatsch ];
# Aarch has test failures with how tree-sitter compiles the generated C files
broken = stdenv.isAarch64;
};
}

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake
, freetype, SDL2, SDL2_mixer, openal, zlib, libpng, python, libvorbis
, freetype, SDL2, SDL2_mixer, openal, zlib, libpng, python2, libvorbis
, libiconv }:
stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
# TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl
# reqs) optional
buildInputs = [ freetype python openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ];
buildInputs = [ freetype python2 openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ];
nativeBuildInputs = [ cmake ];

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, pkg-config, glib, python, gtk2, readline }:
{ lib, stdenv, fetchurl, pkg-config, glib, python3, gtk2, readline }:
let version = "1.06.002"; in
stdenv.mkDerivation {
@ -9,8 +9,10 @@ stdenv.mkDerivation {
sha256 = "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ python glib gtk2 readline ];
nativeBuildInputs = [ pkg-config python3 glib ];
buildInputs = [ gtk2 readline ];
strictDeps = true;
configureFlags = [ "--with-gtk" "--with--board3d" ];

View file

@ -1,5 +1,5 @@
{ lib, stdenv, gcc-arm-embedded, binutils-arm-embedded, makeWrapper
, python, pythonPackages
, python2Packages
# Extra options
, device ? "fsij", vid ? "234b", pid ? "0000"
@ -15,7 +15,7 @@ stdenv.mkDerivation {
inherit src;
nativeBuildInputs = [ gcc-arm-embedded binutils-arm-embedded makeWrapper ];
buildInputs = [ python ] ++ (with pythonPackages; [ pyusb colorama ]);
buildInputs = with python2Packages; [ python pyusb colorama ];
configurePhase = ''
cd src

View file

@ -1,5 +1,5 @@
{ stdenv, file, lib, fetchFromGitHub, autoreconfHook, bison, flex, pkg-config
, pythonSupport ? false, swig ? null, python}:
, pythonSupport ? false, swig ? null, python ? null}:
stdenv.mkDerivation rec {
pname = "libnl";
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
postBuild = lib.optionalString (pythonSupport) ''
cd python
${python}/bin/python setup.py install --prefix=../pythonlib
${python.interpreter} setup.py install --prefix=../pythonlib
cd -
'';

View file

@ -277,7 +277,7 @@
"foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
"foursquare" = ps: with ps; [ aiohttp-cors ];
"free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
"freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: freebox-api
"freebox" = ps: with ps; [ aiohttp-cors freebox-api netdisco zeroconf ];
"freedns" = ps: with ps; [ ];
"fritz" = ps: with ps; [ fritzconnection ];
"fritzbox" = ps: with ps; [ pyfritzhome ];
@ -353,7 +353,7 @@
"hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
"home_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect
"homeassistant" = ps: with ps; [ ];
"homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ]; # missing inputs: PyTurboJPEG
"homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ];
"homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors zeroconf ];
"homematic" = ps: with ps; [ pyhomematic ];
"homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip

View file

@ -190,6 +190,7 @@ in with py.pkgs; buildPythonApplication rec {
"api"
"auth"
"automation"
"axis"
"bayesian"
"binary_sensor"
"caldav"
@ -224,6 +225,7 @@ in with py.pkgs; buildPythonApplication rec {
"flux"
"folder"
"folder_watcher"
"freebox"
"fritzbox"
"fritzbox_callmonitor"
"frontend"
@ -235,6 +237,7 @@ in with py.pkgs; buildPythonApplication rec {
"hddtemp"
"history"
"history_stats"
"homekit"
"homekit_controller"
"homeassistant"
"homematic"
@ -400,5 +403,6 @@ in with py.pkgs; buildPythonApplication rec {
description = "Open source home automation that puts local control and privacy first";
license = licenses.asl20;
maintainers = with maintainers; [ dotlambda globin mic92 hexa ];
platforms = platforms.linux;
};
}

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitLab, python, pkg-config
{ lib, stdenv, fetchFromGitLab, python3, pkg-config
, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_412 }:
stdenv.mkDerivation {
@ -15,12 +15,14 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config xmlto docbook2x docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [
python
python3
# Needed for proxy support I believe, which I haven't tested.
# Probably needs to be propagated and some wrapPython magic
# python.pkgs.pysocks
];
strictDeps = true;
postPatch = ''
substituteInPlace Makefile \
--replace '-o 0 -g 0' ""

View file

@ -1,100 +0,0 @@
# This is the installation portion of kippo.
# This is somewhat jumbled together. There is no "easy_install" for kippo,
# and there isn't a way to regenerate the twistd plugin cache.
#
# Use the services.kippo options to properly configure if on NixOS.
# On other platforms there is a problem with hardcoded paths.
# Your best bet is to change kippo source to customise
# or manually copy the proper filesystems.
# At a minimum the following are required in /var/lib/kippo:
# honeyfs/
# fs.pickle
# data/
# txtcmds/
#
# There is also benefit in preparing /var/log/kippo
# tty/
# dl/
#
# Most of these files need read/write permissions.
#
# Read only files: kippo.tac and kippo.cfg
#
# Execution may look like this:
# twistd -y kippo.tac --syslog --pidfile=kippo.pid
#
# Use this package at your own risk.
{lib, stdenv, fetchurl, pythonPackages }:
let
twisted_13 = pythonPackages.buildPythonPackage rec {
# NOTE: When updating please check if new versions still cause issues
# to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem)
disabled = pythonPackages.isPy3k;
name = "Twisted-13.2.0";
src = fetchurl {
url = "mirror://pypi/T/Twisted/${name}.tar.bz2";
sha256 = "1wrcqv5lvgwk2aq83qb2s2ng2vx14hbjjk2gc30cg6h1iiipal89";
};
propagatedBuildInputs = with pythonPackages; [ zope_interface ];
# Generate Twisted's plug-in cache. Twited users must do it as well. See
# http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
# and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
# details.
postInstall = "$out/bin/twistd --help > /dev/null";
meta = with lib; {
homepage = "https://twistedmatrix.com/";
description = "Twisted, an event-driven networking engine written in Python";
longDescription = ''
Twisted is an event-driven networking engine written in Python
and licensed under the MIT license.
'';
license = licenses.mit;
};
};
in stdenv.mkDerivation rec {
pname = "kippo";
version = "0.8";
src = fetchurl {
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/kippo/${pname}-${version}.tar.gz";
sha256 = "0rd2mk36d02qd24z8s4xyy64fy54rzpar4379iq4dcjwg7l7f63d";
};
buildInputs = with pythonPackages; [ pycrypto pyasn1 twisted_13 ];
installPhase = ''
substituteInPlace ./kippo.tac --replace "kippo.cfg" "$out/src/kippo.cfg"
substituteInPlace ./kippo.cfg --replace "log_path = log" "log_path = /var/log/kippo" \
--replace "download_path = dl" "download_path = /var/log/kippo/dl" \
--replace "contents_path = honeyfs" "filesystem_file = /var/lib/kippo/honeyfs" \
--replace "filesystem_file = fs.pickle" "filesystem_file = /var/lib/kippo/fs.pickle" \
--replace "data_path = data" "data_path = /var/lib/kippo/data" \
--replace "txtcmds_path = txtcmds" "txtcmds_path = /var/lib/kippo/txtcmds" \
--replace "public_key = public.key" "public_key = /var/lib/kippo/keys/public.key" \
--replace "private_key = private.key" "private_key = /var/lib/kippo/keys/private.key"
mkdir -p $out/bin
mkdir -p $out/src
mv ./* $out/src
mv $out/src/utils/* $out/bin
'';
passthru.twisted = twisted_13;
meta = with lib; {
homepage = "https://github.com/desaster/kippo";
description = "SSH Honeypot";
longDescription = ''
Default port is 2222. Recommend using something like this for port redirection to default SSH port:
networking.firewall.extraCommands = '''
iptables -t nat -A PREROUTING -i IN_IFACE -p tcp --dport 22 -j REDIRECT --to-port 2222''' '';
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ tomberek ];
broken = true; # 2018-09-12, failed on hydra since 2017-12-11
};
}

View file

@ -0,0 +1,29 @@
{ buildGoPackage, lib, fetchFromGitHub }:
buildGoPackage rec {
pname = "openldap_exporter";
version = "2.1";
src = fetchFromGitHub {
owner = "tomcz";
repo = pname;
rev = "v${version}";
sha256 = "sha256-Di1GiyVp/hGCFhqxhlqJSucGZK7f/FDDUFtJRaiAZu4=";
};
buildFlagsArray = ''
-ldflags=
-s -w
-X github.com/tomcz/openldap_exporter.tag=v${version}
-X github.com/tomcz/openldap_exporter.commit=unknown
'';
goPackagePath = "github.com/tomcz/openldap_exporter";
meta = with lib; {
homepage = "https://github.com/tomcz/openldap_exporter";
description = " Simple service that scrapes metrics from OpenLDAP and exports them via HTTP for Prometheus consumption";
license = licenses.mit;
maintainers = with maintainers; [ ma27 ];
};
}

View file

@ -3,14 +3,14 @@ let
package = (import ./node.nix { inherit pkgs system; }).package;
in
package.override rec {
version = "1.18.2";
version = "1.16.2";
reconstructLock = true;
src = pkgs.fetchFromGitHub {
owner = "Koenkk";
repo = "zigbee2mqtt";
rev = version;
sha256 = "sha256-95RhoJ0aqprzMNOUw9UbLosBwBtQvudKOQaBvBJohn8=";
sha256 = "0rpmm4pwm8s4i9fl26ql0czg5kijv42k9wwik7jb3ppi5jzxrakd";
};
passthru.tests.zigbee2mqtt = nixosTests.zigbee2mqtt;

File diff suppressed because it is too large Load diff

View file

@ -1,17 +1,17 @@
# This file has been generated by node2nix 1.9.0. Do not edit!
# This file has been generated by node2nix 1.8.0. Do not edit!
{pkgs ? import <nixpkgs> {
inherit system;
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
let
nodeEnv = import ../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
inherit pkgs nodejs;
nodeEnv = import ./node-env.nix {
inherit (pkgs) lib stdenv python2 util-linux runCommand writeTextFile;
inherit nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
in
import ./node-packages.nix {
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
inherit (pkgs) fetchurl fetchgit;
inherit nodeEnv;
}

View file

@ -1,4 +1,4 @@
{ lib, stdenv, meson, ninja, fetchFromGitHub, which, python, fetchpatch
{ lib, stdenv, meson, ninja, fetchFromGitHub, which, python3, fetchpatch
, libiconv }:
stdenv.mkDerivation rec {
@ -19,10 +19,12 @@ stdenv.mkDerivation rec {
})
];
nativeBuildInputs = [ meson ninja which python ];
nativeBuildInputs = [ meson ninja which python3 ];
buildInputs = [ libiconv ];
strictDeps = true;
meta = with lib; {
description = "KornShell Command And Programming Language";
longDescription = ''

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "stripe-cli";
version = "1.5.11";
version = "1.5.12";
src = fetchFromGitHub {
owner = "stripe";
repo = pname;
rev = "v${version}";
sha256 = "sha256-aoflV4C7eH0RNdq8j7kPeAfnOEZECmfZ91/QBQy7oxY=";
sha256 = "sha256-eMxukwaJqsXL0+Euvk5mM+pcAsT3GsF9filuyRL4tXg=";
};
vendorSha256 = "sha256-e7EZ5o30vDpS904/R1y7/Mds7HxQNmsIftrnc1Bj2bc=";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, cmake, makeWrapper, python
{ lib, stdenv, fetchurl, cmake, makeWrapper
, boost, lzma
, withGog ? false, unar ? null }:
@ -10,10 +10,15 @@ stdenv.mkDerivation rec {
sha256 = "09l1z1nbl6ijqqwszdwch9mqr54qb7df0wp2sd77v17dq6gsci33";
};
buildInputs = [ python lzma boost ];
buildInputs = [ lzma boost ];
# Python is reported as missing during the build, however
# including Python does not change the output.
nativeBuildInputs = [ cmake makeWrapper ];
strictDeps = true;
# we need unar to for multi-archive extraction
postFixup = lib.optionalString withGog ''
wrapProgram $out/bin/innoextract \

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, which, ninja, python, pkg-config, protobuf
{ lib, stdenv, fetchFromGitHub, which, ninja, pkg-config, protobuf
, ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese, python3Packages }:
let

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "chezmoi";
version = "2.0.5";
version = "2.0.7";
src = fetchFromGitHub {
owner = "twpayne";
repo = "chezmoi";
rev = "v${version}";
sha256 = "sha256-mq9kwkEeh+kVhiVy/h44oP3Rj819gGQDiMifSb7ryeY=";
sha256 = "sha256-mJJtkJ57rYEe1BWK3TWAMOar/IUUC9ybiccx81puHsE=";
};
vendorSha256 = "sha256-YU+t8GVsLYWONezUIB4NUrVxtYOmf/2b5v4v3VSYtBU=";

View file

@ -0,0 +1,33 @@
{ lib
, stdenv
, fetchFromSourcehut
, SDL2
}:
stdenv.mkDerivation rec {
pname = "clickclack";
version = "0.1.1";
src = fetchFromSourcehut {
owner = "~proycon";
repo = "clickclack";
rev = version;
sha256 = "1q8r0ng1bld5n82gh7my7ck90f4plf8vf019hm2wz475dl38izd5";
};
buildInputs = [
SDL2
];
makeFlags = [
"PREFIX=${placeholder "out"}"
];
meta = with lib; {
description = "A vibration/audio feedback tool to be used with virtual keyboards";
homepage = "https://git.sr.ht/~proycon/clickclack";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -4,15 +4,15 @@
rustPlatform.buildRustPackage rec {
pname = "exa";
version = "unstable-2021-01-14";
version = "0.10.0";
cargoSha256 = "1lmjh0grpnx20y6raxnxgjkr92h395r6jk8mm2ypc4cxpxczdqvl";
cargoSha256 = "sha256-hslQZkmZ023gKxBbfgwqazBPUk0qWyy51uRJtr3QvWE=";
src = fetchFromGitHub {
owner = "ogham";
repo = pname;
rev = "13b91cced4cab012413b25c9d3e30c63548639d0";
sha256 = "18y4v1s102lh3gvgjwdd66qlsr75wpwpcj8zsk5y5r95a405dkfm";
rev = "v${version}";
sha256 = "sha256-xolanu4zhAwsbSPdGKgY2/uHtP30DSpr/7Vv1z4jEnQ=";
};
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
@ -46,6 +46,6 @@ rustPlatform.buildRustPackage rec {
'';
homepage = "https://the.exa.website";
license = licenses.mit;
maintainers = with maintainers; [ ehegnes lilyball globin ];
maintainers = with maintainers; [ ehegnes lilyball globin fortuneteller2k ];
};
}

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, pythonPackages, glibcLocales }:
{ lib, fetchFromGitHub, python3Packages, glibcLocales }:
pythonPackages.buildPythonApplication rec {
python3Packages.buildPythonApplication rec {
pname = "i3minator";
version = "0.0.4";
@ -13,7 +13,7 @@ pythonPackages.buildPythonApplication rec {
LC_ALL = "en_US.UTF-8";
buildInputs = [ glibcLocales ];
propagatedBuildInputs = [ pythonPackages.pyyaml pythonPackages.i3-py ];
propagatedBuildInputs = [ python3Packages.pyyaml python3Packages.i3-py ];
# No tests
doCheck = false;

View file

@ -0,0 +1,139 @@
Based on upstream 7214288898f5625a6cc196e22a74232eada7861c, adapted by ris to
compensate for lack of 95cbcec8f986492766c4be3922af1e7644e1e7c5
---
lib/transfer.c | 25 ++++++++++++++--
tests/data/Makefile.inc | 2 +-
tests/data/test2081 | 66 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 90 insertions(+), 3 deletions(-)
create mode 100644 tests/data/test2081
diff --git a/lib/transfer.c b/lib/transfer.c
index 1976bc0338bc..a68c021c84d6 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1581,6 +1581,9 @@ CURLcode Curl_follow(struct Curl_easy *data,
data->set.followlocation++; /* count location-followers */
if(data->set.http_auto_referer) {
+ CURLU *u;
+ char *referer;
+
/* We are asked to automatically set the previous URL as the referer
when we get the next URL. We pick the ->url field, which may or may
not be 100% correct */
@@ -1590,9 +1593,27 @@ CURLcode Curl_follow(struct Curl_easy *data,
data->change.referer_alloc = FALSE;
}
- data->change.referer = strdup(data->change.url);
- if(!data->change.referer)
+ /* Make a copy of the URL without crenditals and fragment */
+ u = curl_url();
+ if(!u)
+ return CURLE_OUT_OF_MEMORY;
+
+ uc = curl_url_set(u, CURLUPART_URL, data->change.url, 0);
+ if(!uc)
+ uc = curl_url_set(u, CURLUPART_FRAGMENT, NULL, 0);
+ if(!uc)
+ uc = curl_url_set(u, CURLUPART_USER, NULL, 0);
+ if(!uc)
+ uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);
+ if(!uc)
+ uc = curl_url_get(u, CURLUPART_URL, &referer, 0);
+
+ curl_url_cleanup(u);
+
+ if(uc || referer == NULL)
return CURLE_OUT_OF_MEMORY;
+
+ data->change.referer = referer;
data->change.referer_alloc = TRUE; /* yes, free this later */
}
}
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
index 2c7a0ca89fd8..ea52683d2254 100644
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@ -225,7 +225,7 @@ test2064 test2065 test2066 test2067 test2068 test2069 \
test2064 test2065 test2066 test2067 test2068 test2069 test2070 \
test2071 test2072 test2073 test2074 test2075 test2076 test2077 \
test2078 \
-test2080 \
+test2080 test2081 \
test2100 \
\
test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 \
diff --git a/tests/data/test2081 b/tests/data/test2081
new file mode 100644
index 000000000000..a6733e737beb
--- /dev/null
+++ b/tests/data/test2081
@@ -0,0 +1,66 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+referer
+followlocation
+--write-out
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 301 This is a weirdo text message swsclose
+Location: data/%TESTNUMBER0002.txt?coolsite=yes
+Content-Length: 62
+Connection: close
+
+This server reply is for testing a simple Location: following
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+Automatic referrer credential and anchor stripping check
+ </name>
+ <command>
+http://user:pass@%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER#anchor --location --referer ';auto' --write-out '%{referer}\n'
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<errorcode>
+52
+</errorcode>
+<protocol>
+GET /we/want/our/%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Authorization: Basic dXNlcjpwYXNz
+User-Agent: curl/%VERSION
+Accept: */*
+
+GET /we/want/our/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Authorization: Basic dXNlcjpwYXNz
+User-Agent: curl/%VERSION
+Accept: */*
+Referer: http://%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER
+
+</protocol>
+<stdout>
+HTTP/1.1 301 This is a weirdo text message swsclose
+Location: data/%TESTNUMBER0002.txt?coolsite=yes
+Content-Length: 62
+Connection: close
+
+http://%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER
+</stdout>
+</verify>
+</testcase>

View file

@ -0,0 +1,473 @@
Based on upstream b09c8ee15771c614c4bf3ddac893cdb12187c844, adapted by ris mostly to
compensate for lack of bbe3aa9f881fa27fe828e3c9a36d6831f254a3ee
diff --git a/lib/vtls/bearssl.c b/lib/vtls/bearssl.c
index 36c32d8d55be..39fc1a29209c 100644
--- a/lib/vtls/bearssl.c
+++ b/lib/vtls/bearssl.c
@@ -375,7 +375,8 @@ static CURLcode bearssl_connect_step1(struct Curl_easy *data,
void *session;
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &session, NULL, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn, SSL_IS_PROXY() ? TRUE : FALSE,
+ &session, NULL, sockindex)) {
br_ssl_engine_set_session_parameters(&backend->ctx.eng, session);
infof(data, "BearSSL: re-using session ID\n");
}
@@ -571,9 +572,13 @@ static CURLcode bearssl_connect_step3(struct Curl_easy *data,
br_ssl_engine_get_session_parameters(&backend->ctx.eng, session);
Curl_ssl_sessionid_lock(conn);
- incache = !(Curl_ssl_getsessionid(conn, &oldsession, NULL, sockindex));
+ incache = !(Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ &oldsession, NULL, sockindex));
if(incache)
Curl_ssl_delsessionid(conn, oldsession);
- ret = Curl_ssl_addsessionid(conn, session, 0, sockindex);
+ ret = Curl_ssl_addsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ session, 0, sockindex);
Curl_ssl_sessionid_unlock(conn);
if(ret) {
free(session);
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index a75937b4646c..3b0d940a60e1 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -727,5 +727,7 @@ gtls_connect_step1(struct Curl_easy *data,
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, &ssl_idsize, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ &ssl_sessionid, &ssl_idsize, sockindex)) {
/* we got a session id, use it! */
gnutls_session_set_data(session, ssl_sessionid, ssl_idsize);
@@ -1286,8 +1287,9 @@ gtls_connect_step3(struct Curl_easy *data,
gnutls_session_get_data(session, connect_sessionid, &connect_idsize);
Curl_ssl_sessionid_lock(conn);
- incache = !(Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL,
- sockindex));
+ incache = !(Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ &ssl_sessionid, NULL, sockindex));
if(incache) {
/* there was one before in the cache, so instead of risking that the
previous one was rejected, we just kill that and store the new */
@@ -1295,8 +1297,10 @@ gtls_connect_step3(struct Curl_easy *data,
}
/* store this session id */
- result = Curl_ssl_addsessionid(conn, connect_sessionid, connect_idsize,
- sockindex);
+ result = Curl_ssl_addsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ connect_sessionid, connect_idsize,
+ sockindex);
Curl_ssl_sessionid_unlock(conn);
if(result) {
free(connect_sessionid);
diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
index 95cd4d99b665..93a7ac1fd87d 100644
--- a/lib/vtls/mbedtls.c
+++ b/lib/vtls/mbedtls.c
@@ -463,7 +463,9 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
void *old_session = NULL;
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &old_session, NULL, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ &old_session, NULL, sockindex)) {
ret = mbedtls_ssl_set_session(&backend->ssl, old_session);
if(ret) {
Curl_ssl_sessionid_unlock(conn);
@@ -724,6 +726,7 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
int ret;
mbedtls_ssl_session *our_ssl_sessionid;
void *old_ssl_sessionid = NULL;
+ bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
our_ssl_sessionid = malloc(sizeof(mbedtls_ssl_session));
if(!our_ssl_sessionid)
@@ -742,10 +745,12 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
/* If there's already a matching session in the cache, delete it */
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex))
+ if(!Curl_ssl_getsessionid(conn, isproxy, &old_ssl_sessionid, NULL,
+ sockindex))
Curl_ssl_delsessionid(conn, old_ssl_sessionid);
- retcode = Curl_ssl_addsessionid(conn, our_ssl_sessionid, 0, sockindex);
+ retcode = Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid,
+ 0, sockindex);
Curl_ssl_sessionid_unlock(conn);
if(retcode) {
mbedtls_ssl_session_free(our_ssl_sessionid);
diff --git a/lib/vtls/mesalink.c b/lib/vtls/mesalink.c
index 4f1ab8627f49..5d6a1495d790 100644
--- a/lib/vtls/mesalink.c
+++ b/lib/vtls/mesalink.c
@@ -261,7 +261,9 @@ mesalink_connect_step1(struct Curl_easy *data,
void *ssl_sessionid = NULL;
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ &ssl_sessionid, NULL, sockindex)) {
/* we got a session id, use it! */
if(!SSL_set_session(BACKEND->handle, ssl_sessionid)) {
Curl_ssl_sessionid_unlock(conn);
@@ -345,12 +347,14 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
bool incache;
SSL_SESSION *our_ssl_sessionid;
void *old_ssl_sessionid = NULL;
+ bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
our_ssl_sessionid = SSL_get_session(BACKEND->handle);
Curl_ssl_sessionid_lock(conn);
incache =
- !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex));
+ !(Curl_ssl_getsessionid(conn, isproxy, &old_ssl_sessionid, NULL,
+ sockindex));
if(incache) {
if(old_ssl_sessionid != our_ssl_sessionid) {
infof(data, "old SSL session ID is stale, removing\n");
@@ -361,8 +364,9 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
}
if(!incache) {
- result = Curl_ssl_addsessionid(
- conn, our_ssl_sessionid, 0 /* unknown size */, sockindex);
+ result =
+ Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid, 0,
+ sockindex);
if(result) {
Curl_ssl_sessionid_unlock(conn);
failf(data, "failed to store ssl session");
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 498f8b9d1d08..68b98984b460 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -393,12 +393,23 @@ static int ossl_get_ssl_conn_index(void)
*/
static int ossl_get_ssl_sockindex_index(void)
{
- static int ssl_ex_data_sockindex_index = -1;
- if(ssl_ex_data_sockindex_index < 0) {
- ssl_ex_data_sockindex_index = SSL_get_ex_new_index(0, NULL, NULL, NULL,
- NULL);
+ static int sockindex_index = -1;
+ if(sockindex_index < 0) {
+ sockindex_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
}
- return ssl_ex_data_sockindex_index;
+ return sockindex_index;
+}
+
+/* Return an extra data index for proxy boolean.
+ * This index can be used with SSL_get_ex_data() and SSL_set_ex_data().
+ */
+static int ossl_get_proxy_index(void)
+{
+ static int proxy_index = -1;
+ if(proxy_index < 0) {
+ proxy_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
+ }
+ return proxy_index;
}
static int passwd_callback(char *buf, int num, int encrypting,
@@ -1174,6 +1185,7 @@ static int ossl_init(void)
/* Initialize the extra data indexes */
- if(ossl_get_ssl_conn_index() < 0 || ossl_get_ssl_sockindex_index() < 0)
+ if(ossl_get_ssl_conn_index() < 0 ||
+ ossl_get_ssl_sockindex_index() < 0 || ossl_get_proxy_index() < 0)
return 0;
return 1;
@@ -2432,8 +2443,10 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
curl_socket_t *sockindex_ptr;
int connectdata_idx = ossl_get_ssl_conn_index();
int sockindex_idx = ossl_get_ssl_sockindex_index();
+ int proxy_idx = ossl_get_proxy_index();
+ bool isproxy;
- if(connectdata_idx < 0 || sockindex_idx < 0)
+ if(connectdata_idx < 0 || sockindex_idx < 0 || proxy_idx < 0)
return 0;
conn = (struct connectdata*) SSL_get_ex_data(ssl, connectdata_idx);
@@ -2446,13 +2459,18 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
sockindex_ptr = (curl_socket_t*) SSL_get_ex_data(ssl, sockindex_idx);
sockindex = (int)(sockindex_ptr - conn->sock);
+ isproxy = SSL_get_ex_data(ssl, proxy_idx) ? TRUE : FALSE;
+
if(SSL_SET_OPTION(primary.sessionid)) {
bool incache;
void *old_ssl_sessionid = NULL;
Curl_ssl_sessionid_lock(conn);
- incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL,
- sockindex));
+ if(isproxy)
+ incache = FALSE;
+ else
+ incache = !(Curl_ssl_getsessionid(conn, isproxy,
+ &old_ssl_sessionid, NULL, sockindex));
if(incache) {
if(old_ssl_sessionid != ssl_sessionid) {
infof(data, "old SSL session ID is stale, removing\n");
@@ -2462,8 +2480,8 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
}
if(!incache) {
- if(!Curl_ssl_addsessionid(conn, ssl_sessionid,
- 0 /* unknown size */, sockindex)) {
+ if(!Curl_ssl_addsessionid(conn, isproxy, ssl_sessionid,
+ 0 /* unknown size */, sockindex)) {
/* the session has been put into the session cache */
res = 1;
}
@@ -3193,16 +3211,26 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
void *ssl_sessionid = NULL;
int connectdata_idx = ossl_get_ssl_conn_index();
int sockindex_idx = ossl_get_ssl_sockindex_index();
+ int proxy_idx = ossl_get_proxy_index();
- if(connectdata_idx >= 0 && sockindex_idx >= 0) {
+ if(connectdata_idx >= 0 && sockindex_idx >= 0 &&
+ proxy_idx >= 0) {
/* Store the data needed for the "new session" callback.
* The sockindex is stored as a pointer to an array element. */
SSL_set_ex_data(backend->handle, connectdata_idx, conn);
SSL_set_ex_data(backend->handle, sockindex_idx, conn->sock + sockindex);
+#ifndef CURL_DISABLE_PROXY
+ SSL_set_ex_data(backend->handle, proxy_idx, SSL_IS_PROXY() ? (void *) 1:
+ NULL);
+#else
+ SSL_set_ex_data(backend->handle, proxy_idx, NULL);
+#endif
+
}
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn, SSL_IS_PROXY() ? TRUE : FALSE,
+ &ssl_sessionid, NULL, sockindex)) {
/* we got a session id, use it! */
if(!SSL_set_session(backend->handle, ssl_sessionid)) {
Curl_ssl_sessionid_unlock(conn);
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
index d7b89d43f892..931bd853eb8e 100644
--- a/lib/vtls/schannel.c
+++ b/lib/vtls/schannel.c
@@ -496,5 +496,7 @@ schannel_connect_step1(struct Curl_easy *data, struct connectdata *conn,
if(SSL_SET_OPTION(primary.sessionid)) {
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, (void **)&old_cred, NULL, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ (void **)&old_cred, NULL, sockindex)) {
BACKEND->cred = old_cred;
DEBUGF(infof(data, "schannel: re-using existing credential handle\n"));
@@ -1337,8 +1338,9 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
SECURITY_STATUS sspi_status = SEC_E_OK;
CERT_CONTEXT *ccert_context = NULL;
+ bool isproxy = SSL_IS_PROXY();
#ifdef DEBUGBUILD
- const char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
+ const char * const hostname = isproxy ? conn->http_proxy.host.name :
conn->host.name;
#endif
#ifdef HAS_ALPN
@@ -1414,8 +1416,8 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
struct Curl_schannel_cred *old_cred = NULL;
Curl_ssl_sessionid_lock(conn);
- incache = !(Curl_ssl_getsessionid(conn, (void **)&old_cred, NULL,
- sockindex));
+ incache = !(Curl_ssl_getsessionid(conn, isproxy, (void **)&old_cred,
+ NULL, sockindex));
if(incache) {
if(old_cred != BACKEND->cred) {
DEBUGF(infof(data,
@@ -1426,7 +1428,7 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
}
}
if(!incache) {
- result = Curl_ssl_addsessionid(conn, (void *)BACKEND->cred,
+ result = Curl_ssl_addsessionid(conn, isproxy, BACKEND->cred,
sizeof(struct Curl_schannel_cred),
sockindex);
if(result) {
diff --git a/lib/vtls/sectransp.c b/lib/vtls/sectransp.c
index 05b57dfaad91..e69b99b72cd6 100644
--- a/lib/vtls/sectransp.c
+++ b/lib/vtls/sectransp.c
@@ -1400,10 +1400,12 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
char * const ssl_cert = SSL_SET_OPTION(primary.clientcert);
const struct curl_blob *ssl_cert_blob = SSL_SET_OPTION(primary.cert_blob);
#ifndef CURL_DISABLE_PROXY
- const char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
+ bool isproxy = SSL_IS_PROXY();
+ const char * const hostname = isproxy ? conn->http_proxy.host.name :
conn->host.name;
const long int port = SSL_IS_PROXY() ? conn->port : conn->remote_port;
#else
+ const isproxy = FALSE;
const char * const hostname = conn->host.name;
const long int port = conn->remote_port;
#endif
@@ -1613,7 +1615,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
#ifdef USE_NGHTTP2
if(data->state.httpversion >= CURL_HTTP_VERSION_2
#ifndef CURL_DISABLE_PROXY
- && (!SSL_IS_PROXY() || !conn->bits.tunnel_proxy)
+ && (!isproxy || !conn->bits.tunnel_proxy)
#endif
) {
CFArrayAppendValue(alpnArr, CFSTR(NGHTTP2_PROTO_VERSION_ID));
@@ -1953,7 +1955,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
size_t ssl_sessionid_len;
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, (void **)&ssl_sessionid,
+ if(!Curl_ssl_getsessionid(conn, isproxy, (void **)&ssl_sessionid,
&ssl_sessionid_len, sockindex)) {
/* we got a session id, use it! */
err = SSLSetPeerID(backend->ssl_ctx, ssl_sessionid, ssl_sessionid_len);
@@ -1981,7 +1983,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
return CURLE_SSL_CONNECT_ERROR;
}
- result = Curl_ssl_addsessionid(conn, ssl_sessionid, ssl_sessionid_len,
+ result = Curl_ssl_addsessionid(conn, isproxy, ssl_sessionid, ssl_sessionid_len,
sockindex);
Curl_ssl_sessionid_unlock(conn);
if(result) {
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
index 6a0069237fdb..95fd6356285f 100644
--- a/lib/vtls/vtls.c
+++ b/lib/vtls/vtls.c
@@ -367,5 +367,6 @@ void Curl_ssl_sessionid_unlock(struct Curl_easy *data)
*/
bool Curl_ssl_getsessionid(struct connectdata *conn,
+ const bool isProxy,
void **ssl_sessionid,
size_t *idsize, /* set 0 if unknown */
int sockindex)
@@ -377,7 +378,6 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
bool no_match = TRUE;
#ifndef CURL_DISABLE_PROXY
- const bool isProxy = CONNECT_PROXY_SSL();
struct ssl_primary_config * const ssl_config = isProxy ?
&conn->proxy_ssl_config :
&conn->ssl_config;
@@ -389,10 +389,15 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
struct ssl_primary_config * const ssl_config = &conn->ssl_config;
const char * const name = conn->host.name;
int port = conn->remote_port;
- (void)sockindex;
#endif
+ (void)sockindex;
*ssl_sessionid = NULL;
+#ifdef CURL_DISABLE_PROXY
+ if(isProxy)
+ return TRUE;
+#endif
+
DEBUGASSERT(SSL_SET_OPTION(primary.sessionid));
if(!SSL_SET_OPTION(primary.sessionid))
@@ -480,5 +485,6 @@ void Curl_ssl_delsessionid(struct Curl_easy *data, void *ssl_sessionid)
*/
CURLcode Curl_ssl_addsessionid(struct connectdata *conn,
+ bool isProxy,
void *ssl_sessionid,
size_t idsize,
int sockindex)
@@ -492,7 +498,6 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
int conn_to_port;
long *general_age;
#ifndef CURL_DISABLE_PROXY
- const bool isProxy = CONNECT_PROXY_SSL();
struct ssl_primary_config * const ssl_config = isProxy ?
&conn->proxy_ssl_config :
&conn->ssl_config;
@@ -505,6 +510,7 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
const char *hostname = conn->host.name;
(void)sockindex;
#endif
+ (void)sockindex;
DEBUGASSERT(SSL_SET_OPTION(primary.sessionid));
clone_host = strdup(hostname);
diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
index 273184f1894a..2b43e7744b19 100644
--- a/lib/vtls/vtls.h
+++ b/lib/vtls/vtls.h
@@ -235,5 +235,6 @@ void Curl_ssl_sessionid_unlock(struct Curl_easy *data);
*/
bool Curl_ssl_getsessionid(struct connectdata *conn,
+ const bool isproxy,
void **ssl_sessionid,
size_t *idsize, /* set 0 if unknown */
int sockindex);
@@ -245,5 +246,6 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
*/
CURLcode Curl_ssl_addsessionid(struct connectdata *conn,
+ const bool isProxy,
void *ssl_sessionid,
size_t idsize,
int sockindex);
diff --git a/lib/vtls/wolfssl.c b/lib/vtls/wolfssl.c
index 7159ac9d5e64..8fb2ea7acf31 100644
--- a/lib/vtls/wolfssl.c
+++ b/lib/vtls/wolfssl.c
@@ -516,7 +516,9 @@ wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
void *ssl_sessionid = NULL;
Curl_ssl_sessionid_lock(conn);
- if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
+ if(!Curl_ssl_getsessionid(conn,
+ SSL_IS_PROXY() ? TRUE : FALSE,
+ &ssl_sessionid, NULL, sockindex)) {
/* we got a session id, use it! */
if(!SSL_set_session(backend->handle, ssl_sessionid)) {
char error_buffer[WOLFSSL_MAX_ERROR_SZ];
@@ -772,10 +774,11 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
void *old_ssl_sessionid = NULL;
our_ssl_sessionid = SSL_get_session(backend->handle);
+ bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
Curl_ssl_sessionid_lock(conn);
- incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL,
- sockindex));
+ incache = !(Curl_ssl_getsessionid(conn, isproxy,
+ &old_ssl_sessionid, NULL, sockindex));
if(incache) {
if(old_ssl_sessionid != our_ssl_sessionid) {
infof(data, "old SSL session ID is stale, removing\n");
@@ -786,8 +789,8 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
}
if(!incache) {
- result = Curl_ssl_addsessionid(conn, our_ssl_sessionid,
- 0 /* unknown size */, sockindex);
+ result = Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid,
+ 0, sockindex);
if(result) {
Curl_ssl_sessionid_unlock(conn);
failf(data, "failed to store ssl session");

View file

@ -45,6 +45,11 @@ stdenv.mkDerivation rec {
sha256 = "19bp3d91xq9vqwlbzq261j23mk9lz4lyka4gr2fm6dhnd3k66k8g";
};
patches = [
./7.74.0-CVE-2021-22876.patch
./7.74.0-CVE-2021-22890.patch
];
outputs = [ "bin" "dev" "out" "man" "devdoc" ];
separateDebugInfo = stdenv.isLinux;

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, curl, pythonPackages, glibcLocales }:
{ lib, fetchFromGitHub, curl, python3Packages, glibcLocales }:
pythonPackages.buildPythonApplication rec {
python3Packages.buildPythonApplication rec {
pname = "httpstat";
version = "1.3.1";
src = fetchFromGitHub {

View file

@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, makeWrapper,
pkg-config, systemd, gmp, unbound, bison, flex, pam, libevent, libcap_ng, curl, nspr,
bash, iproute, iptables, procps, coreutils, gnused, gawk, nss, which, python,
bash, iproute, iptables, procps, coreutils, gnused, gawk, nss, which, python3,
docs ? false, xmlto, libselinux, ldns
}:
let
binPath = lib.makeBinPath [
bash iproute iptables procps coreutils gnused gawk nss.tools which python
bash iproute iptables procps coreutils gnused gawk nss.tools which python3
];
in
@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
sha256 = "0bj3g6qwd3ir3gk6hdl9npy3k44shf56vcgjahn30qpmx3z5fsr3";
};
strictDeps = true;
# These flags were added to compile v3.18. Try to lift them when updating.
NIX_CFLAGS_COMPILE = toString [ "-Wno-error=redundant-decls" "-Wno-error=format-nonliteral"
# these flags were added to build with gcc7
@ -35,9 +37,15 @@ stdenv.mkDerivation rec {
"-DNSS_PKCS11_2_0_COMPAT=1"
];
nativeBuildInputs = [ makeWrapper pkg-config ];
buildInputs = [ bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
libcap_ng curl nspr nss python ldns ]
nativeBuildInputs = [
bison
flex
makeWrapper
pkg-config
];
buildInputs = [ bash iproute iptables systemd coreutils gnused gawk gmp unbound pam libevent
libcap_ng curl nspr nss python3 ldns ]
++ lib.optional docs xmlto
++ lib.optional stdenv.isLinux libselinux;

View file

@ -3,22 +3,22 @@
}:
let
version = "4.36.2";
version = "4.37.0";
src = fetchFromGitHub {
owner = "v2fly";
repo = "v2ray-core";
rev = "v${version}";
sha256 = "1gvzr4kq4klld8m0jv6mizgrx3xj6s2i69kl9vmh5n355bakb7kk";
sha256 = "00bw91n7210gsnc7bw2spl6k1yl2i7d1j55w98qf4rvn80z9d59r";
};
vendorSha256 = "sha256-8O0xUNIdu3W//LtwiMZlSs1wkpa6Jt+vFkTavz6TBKU=";
vendorSha256 = "sha256-sc001qWdmhhaUh0nmvaqwwVE2Ee8IFWYi4K8aAURWBE=";
assets = {
# MIT licensed
"geoip.dat" = let
geoipRev = "202103170314";
geoipSha256 = "147kajdhby92yxsvcpa6bpk11ilzvc4nj7rc0h84wp2f0y692kq2";
geoipRev = "202104010913";
geoipSha256 = "1kq6d68ii9hr2w0caxacqh5q8jran154b99aik4g7ripgx7lckpr";
in fetchurl {
url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
sha256 = geoipSha256;
@ -26,8 +26,8 @@ let
# MIT licensed
"geosite.dat" = let
geositeRev = "20210317031429";
geositeSha256 = "0nzd0ll0x7hv75cbh1i3kgmffasi002a8n3mjw22zywj71v2jwmz";
geositeRev = "20210403111045";
geositeSha256 = "1b64yci0dmvw9divfv3njpzczz2ag3cnvyr29c2mk8y85vp05ysc";
in fetchurl {
url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
sha256 = geositeSha256;

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "doppler";
version = "3.23.1";
version = "3.23.2";
src = fetchFromGitHub {
owner = "dopplerhq";
repo = "cli";
rev = version;
sha256 = "sha256-6sTsASfHIFH1V3Q20R2y8AiOVZ4NR4GGRCKRVr25kkc=";
sha256 = "sha256-qdBq1vjvvb55gyL4XuPDrPK58YLSSH5kLp1oP84vJsU=";
};
vendorSha256 = "sha256-UaR/xYGMI+C9aID85aPSfVzmTWXj4KcjfOJ6TTJ8KoY=";

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