Merge master into haskell-updates

This commit is contained in:
github-actions[bot]
2022-06-08 00:12:31 +00:00
committed by GitHub
77 changed files with 2579 additions and 2492 deletions
@@ -48,6 +48,13 @@
<link xlink:href="options.html#opt-virtualisation.appvm.enable">virtualisation.appvm</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://dragonflydb.io/">dragonflydb</link>,
a modern replacement for Redis and Memcached. Available as
<link linkend="opt-services.dragonflydb.enable">services.dragonflydb</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/leetronics/infnoise">infnoise</link>,
@@ -55,6 +62,15 @@
<link xlink:href="options.html#opt-services.infnoise.enable">services.infnoise</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/aiberia/persistent-evdev">persistent-evdev</link>,
a daemon to add virtual proxy devices that mirror a physical
input device but persist even if the underlying hardware is
hot-plugged. Available as
<link linkend="opt-services.persistent-evdev.enable">services.persistent-evdev</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.11-incompatibilities">
@@ -25,8 +25,11 @@ In addition to numerous new and upgraded packages, this release has the followin
- [appvm](https://github.com/jollheef/appvm), Nix based app VMs. Available as [virtualisation.appvm](options.html#opt-virtualisation.appvm.enable).
- [dragonflydb](https://dragonflydb.io/), a modern replacement for Redis and Memcached. Available as [services.dragonflydb](#opt-services.dragonflydb.enable).
- [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
Available as [services.infnoise](options.html#opt-services.infnoise.enable).
- [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+2
View File
@@ -348,6 +348,7 @@
./services/databases/clickhouse.nix
./services/databases/cockroachdb.nix
./services/databases/couchdb.nix
./services/databases/dragonflydb.nix
./services/databases/firebird.nix
./services/databases/foundationdb.nix
./services/databases/hbase.nix
@@ -605,6 +606,7 @@
./services/misc/packagekit.nix
./services/misc/paperless.nix
./services/misc/parsoid.nix
./services/misc/persistent-evdev.nix
./services/misc/plex.nix
./services/misc/plikd.nix
./services/misc/podgrab.nix
@@ -0,0 +1,152 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.dragonflydb;
dragonflydb = pkgs.dragonflydb;
settings =
{
port = cfg.port;
dir = "/var/lib/dragonflydb";
keys_output_limit = cfg.keysOutputLimit;
} //
(lib.optionalAttrs (cfg.bind != null) { bind = cfg.bind; }) //
(lib.optionalAttrs (cfg.requirePass != null) { requirepass = cfg.requirePass; }) //
(lib.optionalAttrs (cfg.maxMemory != null) { maxmemory = cfg.maxMemory; }) //
(lib.optionalAttrs (cfg.memcachePort != null) { memcache_port = cfg.memcachePort; }) //
(lib.optionalAttrs (cfg.dbNum != null) { dbnum = cfg.dbNum; }) //
(lib.optionalAttrs (cfg.cacheMode != null) { cache_mode = cfg.cacheMode; });
in
{
###### interface
options = {
services.dragonflydb = {
enable = mkEnableOption "DragonflyDB";
user = mkOption {
type = types.str;
default = "dragonfly";
description = "The user to run DragonflyDB as";
};
port = mkOption {
type = types.port;
default = 6379;
description = "The TCP port to accept connections.";
};
bind = mkOption {
type = with types; nullOr str;
default = "127.0.0.1";
description = ''
The IP interface to bind to.
<literal>null</literal> means "all interfaces".
'';
};
requirePass = mkOption {
type = with types; nullOr str;
default = null;
description = "Password for database";
example = "letmein!";
};
maxMemory = mkOption {
type = with types; nullOr ints.unsigned;
default = null;
description = ''
The maximum amount of memory to use for storage (in bytes).
<literal>null</literal> means this will be automatically set.
'';
};
memcachePort = mkOption {
type = with types; nullOr port;
default = null;
description = ''
To enable memcached compatible API on this port.
<literal>null</literal> means disabled.
'';
};
keysOutputLimit = mkOption {
type = types.ints.unsigned;
default = 8192;
description = ''
Maximum number of returned keys in keys command.
<literal>keys</literal> is a dangerous command.
We truncate its result to avoid blowup in memory when fetching too many keys.
'';
};
dbNum = mkOption {
type = with types; nullOr ints.unsigned;
default = null;
description = "Maximum number of supported databases for <literal>select</literal>";
};
cacheMode = mkOption {
type = with types; nullOr bool;
default = null;
description = ''
Once this mode is on, Dragonfly will evict items least likely to be stumbled
upon in the future but only when it is near maxmemory limit.
'';
};
};
};
###### implementation
config = mkIf config.services.dragonflydb.enable {
users.users = optionalAttrs (cfg.user == "dragonfly") {
dragonfly.description = "DragonflyDB server user";
dragonfly.isSystemUser = true;
dragonfly.group = "dragonfly";
};
users.groups = optionalAttrs (cfg.user == "dragonfly") { dragonfly = { }; };
environment.systemPackages = [ dragonflydb ];
systemd.services.dragonflydb = {
description = "DragonflyDB server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = "${dragonflydb}/bin/dragonfly --alsologtostderr ${builtins.concatStringsSep " " (attrsets.mapAttrsToList (n: v: "--${n} ${strings.escapeShellArg v}") settings)}";
User = cfg.user;
# Filesystem access
ReadWritePaths = [ settings.dir ];
StateDirectory = "dragonflydb";
StateDirectoryMode = "0700";
# Process Properties
LimitMEMLOCK = "infinity";
# Caps
CapabilityBoundingSet = "";
NoNewPrivileges = true;
# Sandboxing
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
ProtectKernelTunables = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
LockPersonality = true;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictRealtime = true;
PrivateMounts = true;
MemoryDenyWriteExecute = true;
};
};
};
}
@@ -0,0 +1,60 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.persistent-evdev;
settingsFormat = pkgs.formats.json {};
configFile = settingsFormat.generate "persistent-evdev-config" {
cache = "/var/cache/persistent-evdev";
devices = lib.mapAttrs (virt: phys: "/dev/input/by-id/${phys}") cfg.devices;
};
in
{
options.services.persistent-evdev = {
enable = lib.mkEnableOption "virtual input devices that persist even if the backing device is hotplugged";
devices = lib.mkOption {
default = {};
type = with lib.types; attrsOf str;
description = ''
A set of virtual proxy device labels with backing physical device ids.
Physical devices should already exist in <filename class="devicefile">/dev/input/by-id/</filename>.
Proxy devices will be automatically given a <literal>uinput-</literal> prefix.
See the <link xlink:href="https://github.com/aiberia/persistent-evdev#example-usage-with-libvirt">
project page</link> for example configuration of virtual devices with libvirt
and remember to add <literal>uinput-*</literal> devices to the qemu
<literal>cgroup_device_acl</literal> list (see <xref linkend="opt-virtualisation.libvirtd.qemu.verbatimConfig"/>).
'';
example = lib.literalExpression ''
{
persist-mouse0 = "usb-Logitech_G403_Prodigy_Gaming_Mouse_078738533531-event-if01";
persist-mouse1 = "usb-Logitech_G403_Prodigy_Gaming_Mouse_078738533531-event-mouse";
persist-mouse2 = "usb-Logitech_G403_Prodigy_Gaming_Mouse_078738533531-if01-event-kbd";
persist-keyboard0 = "usb-Microsoft_Natural®_Ergonomic_Keyboard_4000-event-kbd";
persist-keyboard1 = "usb-Microsoft_Natural®_Ergonomic_Keyboard_4000-if01-event-kbd";
}
'';
};
};
config = lib.mkIf cfg.enable {
systemd.services.persistent-evdev = {
documentation = [ "https://github.com/aiberia/persistent-evdev/blob/master/README.md" ];
description = "Persistent evdev proxy";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Restart = "on-failure";
ExecStart = "${pkgs.persistent-evdev}/bin/persistent-evdev.py ${configFile}";
CacheDirectory = "persistent-evdev";
};
};
services.udev.packages = [ pkgs.persistent-evdev ];
};
meta.maintainers = with lib.maintainers; [ lodi ];
}
+4 -4
View File
@@ -1,13 +1,13 @@
{ stdenv, lib, zlib, glib, alsa-lib, dbus, gtk3, atk, pango, freetype, fontconfig
, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpg-error, nspr
, gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
, gdk-pixbuf, cairo, cups, expat, libgpg-error, nspr
, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
, at-spi2-core, libdbusmenu, libdrm, mesa
}:
let
packages = [
stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype libgnome-keyring3
fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr gconf nss
stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype
fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr nss
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "drawio";
version = "19.0.1";
version = "19.0.2";
src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
sha256 = "da9fb38970987b7d5b84fd0d91824f206ba7a3681a7354adc6d6e795c7613828";
sha256 = "46b4e7269628100ea3c083dee75308d9746780e46eac15d2c5495fdeece7e323";
};
nativeBuildInputs = [
+12 -79
View File
@@ -1,79 +1,21 @@
{ alsa-lib
, at-spi2-atk
, at-spi2-core
, atk
, autoPatchelfHook
, cairo
, cups
, dbus
, electron_9
, expat
{ autoPatchelfHook
, electron
, fetchurl
, gdk-pixbuf
, glib
, gtk3
, lib
, libappindicator-gtk3
, libdbusmenu-gtk3
, libuuid
, makeWrapper
, nspr
, nss
, pango
, squashfsTools
, stdenv
, systemd
, xorg
}:
let
# Currently only works with electron 9
electron = electron_9;
in
stdenv.mkDerivation rec {
pname = "authy";
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/authy?channel=stable' | jq '.download_url,.version'
version = "2.1.0";
rev = "9";
buildInputs = [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
dbus
expat
gdk-pixbuf
glib
gtk3
libappindicator-gtk3
libdbusmenu-gtk3
libuuid
nspr
nss
pango
stdenv.cc.cc
systemd
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
];
version = "2.2.0";
rev = "10";
src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
sha256 = "sha256-RxjxOYrbneVctyTJTMvoN/UdREohaZWb1kTdEeI6mUU=";
sha256 = "sha256-sB9/fVV/qp+DfjxpvzIUHsLkeEu35i2rEv1/JYMytG8=";
};
nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
@@ -95,25 +37,16 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
mkdir -p $out/lib/
mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
cp -r ./* $out/
rm -R ./*
# The snap package has the `ffmpeg.so` file which is copied over with other .so files
mv $out/*.so $out/lib/
# Copy only what is needed
cp -r resources* $out/
cp -r locales* $out/
cp meta/gui/authy.desktop $out/share/applications/
cp meta/gui/icon.png $out/share/pixmaps/authy.png
# Replace icon name in Desktop file
sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/meta/gui/authy.desktop"
# Move the desktop file, icon, binary to their appropriate locations
mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
cp $out/meta/gui/authy.desktop $out/share/applications/
cp $out/meta/gui/icon.png $out/share/pixmaps/authy.png
cp $out/${pname} $out/bin/${pname}
# Cleanup
rm -r $out/{data-dir,gnome-platform,meta,scripts,usr,*.sh,*.so}
sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/share/applications/authy.desktop"
runHook postInstall
'';
-72
View File
@@ -1,72 +0,0 @@
{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "cura";
version = "15.06.03";
src = fetchFromGitHub {
owner = "daid";
repo = "Cura";
rev = version;
sha256 = "sha256-o1cAi4Wi19WOijlRB9iYwNEpSNnmywUj5Bth8rRhqFA=";
};
desktopItem = makeDesktopItem {
name = "Cura";
exec = "cura";
icon = "cura";
comment = "Cura";
desktopName = "Cura";
genericName = "3D printing host software";
categories = [ "GNOME" "GTK" "Utility" ];
};
python_deps = with python27Packages; [ pyopengl pyserial numpy wxPython30 power setuptools ];
pythonPath = python_deps;
propagatedBuildInputs = python_deps;
buildInputs = [ curaengine python27Packages.wrapPython ];
configurePhase = "";
buildPhase = "";
patches = [ ./numpy-cast.patch ];
installPhase = ''
# Install Python code.
site_packages=$out/lib/python2.7/site-packages
mkdir -p $site_packages
cp -r Cura $site_packages/
# Install resources.
resources=$out/share/cura
mkdir -p $resources
cp -r resources/* $resources/
sed -i 's|os.path.join(os.path.dirname(__file__), "../../resources")|"'$resources'"|g' $site_packages/Cura/util/resources.py
# Install executable.
mkdir -p $out/bin
cp Cura/cura.py $out/bin/cura
chmod +x $out/bin/cura
sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' $out/bin/cura
wrapPythonPrograms
# Make it find CuraEngine.
echo "def getEngineFilename(): return '${curaengine}/bin/CuraEngine'" >> $site_packages/Cura/util/sliceEngine.py
# Install desktop item.
mkdir -p "$out"/share/applications
cp "$desktopItem"/share/applications/* "$out"/share/applications/
mkdir -p "$out"/share/icons
ln -s "$resources/images/c.png" "$out"/share/icons/cura.png
'';
meta = with lib; {
description = "3D printing host software";
homepage = "https://github.com/daid/Cura";
license = licenses.agpl3;
platforms = platforms.linux;
};
}
@@ -16,7 +16,13 @@ let
};
});
# Use click 7
click = self.callPackage ../../../development/python2-modules/click/default.nix { };
click = super.click.overridePythonAttrs (old: rec {
version = "7.1.2";
src = old.src.override {
inherit version;
sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
};
});
};
};
in
+1 -24
View File
@@ -2,30 +2,7 @@
qtbase, mkDerivationWith }:
{
stable = with python27Packages; buildPythonPackage rec {
pname = "plover";
version = "3.1.1";
meta = with lib; {
broken = stdenv.isDarwin;
description = "OpenSteno Plover stenography software";
maintainers = with maintainers; [ twey kovirobi ];
license = licenses.gpl2;
};
src = fetchFromGitHub {
owner = "openstenoproject";
repo = "plover";
rev = "v${version}";
sha256 = "sha256-LIhTwHMphg+xTR9NKvjAZ6p0mmqPNcZd9C4cgnenmYQ=";
};
nativeBuildInputs = [ setuptools-scm ];
buildInputs = [ pytest mock ];
propagatedBuildInputs = [
six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python
];
};
stable = throw "plover.stable was removed because it used Python 2. Use plover.dev instead."; # added 2022-06-05
dev = with python3Packages; mkDerivationWith buildPythonPackage rec {
pname = "plover";
+16 -4
View File
@@ -65,18 +65,30 @@ let
sha256 = "sha256-WUxngH+xYjizDES99082wCzfItHIzake+KDtjav1Ygo=";
};
});
# Required by flask-babel
itsdangerous = super.itsdangerous.overridePythonAttrs (old: rec {
version = "2.0.1";
version = "1.1.0";
src = old.src.override {
inherit version;
sha256 = "sha256-nnJNaPwikCoUNTUfhMP7hiPzA//8xWaky5Ut+MVyz/A=";
sha256 = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19";
};
});
flask = super.flask.overridePythonAttrs (old: rec {
version = "1.1.4";
src = old.src.override {
inherit version;
sha256 = "0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196";
};
});
flask = self.callPackage ../../../development/python2-modules/flask { };
sqlsoup = super.sqlsoup.overrideAttrs ({ meta ? {}, ... }: {
meta = meta // { broken = false; };
});
click = super.click.overridePythonAttrs (old: rec {
version = "7.1.2";
src = old.src.override {
inherit version;
sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
};
});
};
};
in
@@ -518,6 +518,15 @@
"vendorSha256": "sha256-HrsjhaMlzs+uel5tBlxJD69Kkjl+4qVisWWREANBx40=",
"version": "5.0.2"
},
"hetznerdns": {
"owner": "timohirt",
"provider-source-address": "registry.terraform.io/timohirt/hetznerdns",
"repo": "terraform-provider-hetznerdns",
"rev": "v2.1.0",
"sha256": "sha256-QmD9UlQpyvEz4in1I960J0eC6xNtgk5z8tZUxaApOwE=",
"vendorSha256": "sha256-Bat/S4e5vzT0/XOhJ9zCWLa4IE4owLC6ec1yvEh+c0Y=",
"version": "2.1.0"
},
"htpasswd": {
"owner": "loafoe",
"provider-source-address": "registry.terraform.io/loafoe/htpasswd",
@@ -18,17 +18,17 @@
let
libdeltachat' = libdeltachat.overrideAttrs (old: rec {
version = "1.84.0";
version = "1.86.0";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
rev = version;
hash = "sha256-ZG3siulXVHTbdSd9tmenljFODZ3LWX+BXn6OJfrbEYA=";
hash = "sha256-VLS93Ffeit2rVmXxYkXcnf8eDA3DC2/wKYZTh56QCk0=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${old.pname}-${version}";
hash = "sha256-vQ+A4dEWh5+BgWOdxd7GTPuHk6M6bHgGnZcWNwR/Urs=";
hash = "sha256-4rpoDQ3o0WdWg/TmazTI+J0hL/MxwHcNMXWMq7GE7Tk=";
};
});
electronExec = if stdenv.isDarwin then
@@ -46,13 +46,13 @@ let
});
in nodePackages.deltachat-desktop.override rec {
pname = "deltachat-desktop";
version = "1.30.0";
version = "1.30.1";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-desktop";
rev = "v${version}";
hash = "sha256-vp6vqoQvkAe7QPy4210r/5c1GNaGWgYvG0LyLqtCAxw=";
hash = "sha256-gZjZbXiqhFVfThZOsvL/nKkf6MX+E3KB5ldEAIuzBYA=";
};
nativeBuildInputs = [
@@ -122,6 +122,7 @@ in nodePackages.deltachat-desktop.override rec {
homepage = "https://github.com/deltachat/deltachat-desktop";
changelog = "https://github.com/deltachat/deltachat-desktop/blob/${src.rev}/CHANGELOG.md";
license = licenses.gpl3Plus;
mainProgram = "deltachat";
maintainers = with maintainers; [ dotlambda ];
};
}
@@ -1,6 +1,6 @@
{
"name": "deltachat-desktop",
"version": "1.30.0",
"version": "1.30.1",
"dependencies": {
"@blueprintjs/core": "^4.1.2",
"@deltachat/message_parser_wasm": "^0.4.0",
@@ -9,7 +9,7 @@
"application-config": "^1.0.1",
"classnames": "^2.3.1",
"debounce": "^1.2.0",
"deltachat-node": "1.84.0",
"deltachat-node": "1.86.0",
"emoji-js-clean": "^4.0.0",
"emoji-mart": "^3.0.1",
"emoji-regex": "^9.2.2",
@@ -1,60 +0,0 @@
{ lib, stdenv, fetchurl, python27Packages, file }:
let
inherit (python27Packages) python;
requirements = (import ./requirements.nix {
inherit lib fetchurl;
pythonPackages = python27Packages;
});
in
stdenv.mkDerivation rec {
pname = "salut-a-toi";
version = "0.6.1";
src = fetchurl {
url = "ftp://ftp.goffi.org/sat/sat-${version}.tar.bz2";
sha256 = "0kn9403n8fpzl0hsb9kkzicsmzq2fjl627l31yykbqzc4nsr780d";
};
buildInputs = with python27Packages;
[
python twisted urwid wxPython pygobject2
dbus-python wrapPython setuptools file
pycrypto pyxdg
] ++ (with requirements; [
pyfeed
wokkel
]);
configurePhase = ''
sed -i "/use_setuptools/d" setup.py
sed -e "s@sys.prefix@'$out'@g" -i setup.py
sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${python27Packages.twisted}/bin\"" -i src/sat.sh
sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/${python.sitePackages}"" -i src/sat.sh
echo 'import wokkel.muc' | python
'';
buildPhase = ''
${python.interpreter} setup.py build
'';
installPhase = ''
${python.interpreter} setup.py install --prefix="$out"
for i in "$out/bin"/*; do
head -n 1 "$i" | grep -E '[/ ]python( |$)' && {
wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/${python.sitePackages}"
} || true
done
'';
meta = with lib; {
homepage = "http://sat.goffi.org/";
description = "A multi-frontend XMPP client";
platforms = platforms.linux;
maintainers = [ maintainers.raskin ];
license = licenses.gpl3Plus;
};
}
@@ -1,67 +0,0 @@
{ fetchurl
, lib
, pythonPackages
}:
let
buildPythonPackage = pythonPackages.buildPythonPackage;
xe = buildPythonPackage rec {
url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
name = lib.nameFromURL url ".tar";
src = fetchurl {
inherit url;
sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
};
# error: invalid command 'test'
doCheck = false;
meta = {
homepage = "http://home.blarg.net/~steveha/xe.html";
description = "XML elements";
};
};
in {
pyfeed = (buildPythonPackage rec {
url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
name = lib.nameFromURL url ".tar";
src = fetchurl {
inherit url;
sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
};
propagatedBuildInputs = [ xe ];
# error: invalid command 'test'
doCheck = false;
meta = with lib; {
homepage = "http://home.blarg.net/~steveha/pyfeed.html";
description = "Tools for syndication feeds";
};
});
wokkel = buildPythonPackage (rec {
url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
name = lib.nameFromURL url ".tar";
src = fetchurl {
inherit url;
sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
};
propagatedBuildInputs = with pythonPackages; [twisted python-dateutil];
meta = with lib; {
description = "Some (mainly XMPP-related) additions to twisted";
homepage = "http://wokkel.ik.nu/";
license = licenses.mit;
};
});
}
@@ -1,40 +0,0 @@
{ lib, stdenv, fetchFromGitHub, python2, unzip, tor }:
stdenv.mkDerivation rec {
pname = "torchat";
version = "0.9.9.553";
src = fetchFromGitHub {
owner = "prof7bit";
repo = "TorChat";
rev = version;
sha256 = "2LHG9qxZDo5rV6wsputdRo2Y1aHs+irMwt1ucFnXQE0=";
};
nativeBuildInputs = [ unzip ];
buildInputs = with python2.pkgs; [ python wxPython wrapPython ];
pythonPath = with python2.pkgs; [ wxPython ];
preConfigure = "cd torchat/src; rm portable.txt";
installPhase = ''
substituteInPlace "Tor/tor.sh" --replace "tor -f" "${tor}/bin/tor -f"
wrapPythonPrograms
mkdir -p $out/lib/torchat
cp -rf * $out/lib/torchat
makeWrapper ${python2}/bin/python $out/bin/torchat \
--set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \
--chdir "$out/lib/torchat" \
--add-flags "-O $out/lib/torchat/torchat.py"
'';
meta = with lib; {
homepage = "https://github.com/prof7bit/TorChat";
description = "Instant messaging application on top of the Tor network and it's location hidden services";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.unix;
};
}
@@ -10,13 +10,13 @@
buildGoModule rec {
pname = "containerd";
version = "1.6.5";
version = "1.6.6";
src = fetchFromGitHub {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
sha256 = "sha256-WEHhx9xSxzBoViujGc4yNt9K2gSMfU6GFmsYk3WDfu8=";
sha256 = "sha256-cmarbad6VzcGTCHT/NtApkYsK/oo6WZQ//q8Fvh+ez8=";
};
vendorSha256 = null;
+5
View File
@@ -49,6 +49,11 @@ in stdenv.mkDerivation rec {
# build fails otherwise
enableParallelBuilding = false;
# Workaround build failure on -fno-common toolchains:
# ld: raima/startup.o:/build/cde-2.3.2/lib/DtSearch/raima/dbtype.h:408: multiple definition of
# `__SK__'; raima/alloc.o:/build/cde-2.3.2/lib/DtSearch/raima/dbtype.h:408: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
makeFlags = [
"World"
"BOOTSTRAPCFLAGS=-I${xorgproto}/include/X11"
+4 -4
View File
@@ -14,12 +14,12 @@
assert withGmp -> gmp != null;
stdenv.mkDerivation rec {
version = "4.65";
version = "5.0";
pname = "glpk";
src = fetchurl {
url = "mirror://gnu/glpk/${pname}-${version}.tar.gz";
sha256 = "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2";
sha256 = "sha256-ShAT7rtQ9yj8YBvdgzsLKHAzPDs+WoFu66kh2VvsbxU=";
};
buildInputs =
@@ -45,8 +45,8 @@ stdenv.mkDerivation rec {
# https://trac.sagemath.org/ticket/20710#comment:18
(fetchpatch {
name = "error_recovery.patch";
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/glpk/patches/error_recovery.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
sha256 = "0z99z9gd31apb6x5n5n26411qzx0ma3s6dnznc4x61x86bhq31qf";
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/glpk/patches/error_recovery.patch?id=d3c1f607e32f964bf0cab877a63767c86fd00266";
sha256 = "sha256-2hNtUEoGTFt3JgUvLH3tPWnz+DZcXNhjXzS+/V89toA=";
})
];
@@ -7,6 +7,12 @@ stdenv.mkDerivation {
sourceRoot = "agar-1.5.0/tests";
# Workaround build failure on -fno-common toolchains:
# ld: textdlg.o:(.bss+0x0): multiple definition of `someString';
# configsettings.o:(.bss+0x0): first defined here
# TODO: the workaround can be removed once nixpkgs updates to 1.6.0.
NIX_CFLAGS_COMPILE = "-fcommon";
preConfigure = ''
substituteInPlace configure.in \
--replace '_BSD_SOURCE' '_DEFAULT_SOURCE'
@@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "1.85.0";
version = "1.86.0";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
rev = version;
hash = "sha256-bgx1j2ESAv9cRe3Iv6nYOS7bUAQcXj3Ta4rAC800Nf8=";
hash = "sha256-VLS93Ffeit2rVmXxYkXcnf8eDA3DC2/wKYZTh56QCk0=";
};
patches = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-7ZdN/7CKFuFOIReM7BkMsO/E2lPyDnl4ssPhK5BPLh8=";
hash = "sha256-4rpoDQ3o0WdWg/TmazTI+J0hL/MxwHcNMXWMq7GE7Tk=";
};
nativeBuildInputs = [
@@ -53,6 +53,11 @@ stdenv.mkDerivation rec {
NIX_CFLAGS = [ "-Wno-return-type" ];
# Workaround build failure on -fno-common toolchains:
# ld: libpacklib.a(kedit.o):kuip/klink1.h:11: multiple definition of `klnkaddr';
# libzftplib.a(zftpcdf.o):zftp/zftpcdf.c:155: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
makeFlags = [
"FORTRANOPTIONS=$(FFLAGS)"
"CCOPTIONS=$(NIX_CFLAGS)"
File diff suppressed because it is too large Load Diff
@@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "adb-shell";
version = "0.4.2";
version = "0.4.3";
format = "setuptools";
disabled = !isPy3k;
@@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "JeffLIrion";
repo = "adb_shell";
rev = "v${version}";
hash = "sha256-8tclSjmLlTAIeq6t7YPGtJwvSwtlzQ7sRAQatcQRzeY=";
hash = "sha256-+RU3nyJpHq0r/9erEbjUILpwIPWq14HdOX7LkSxySs4=";
};
propagatedBuildInputs = [
@@ -17,7 +17,7 @@ buildPythonPackage rec {
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-y8W0qwm4rTHlDO8L+/fhIJlfW5PonUhAYBU5wLIZJ94=";
@@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "google-cloud-org-policy";
version = "1.3.2";
version = "1.3.3";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-i60DIRtWtB1MEB2/MuNycy7T9MFPnlRtJ7lnFhDVJbE=";
sha256 = "sha256-hZzujuHtj5g/dBJUhZBV4h8zJjtI1xitfjkcVzURfKU=";
};
propagatedBuildInputs = [ google-api-core proto-plus ];
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "google-cloud-pubsub";
version = "2.12.1";
version = "2.13.0";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-mTphUjL61NwaE7vKDgeCv+0WeA15FNQzvnY/6fHZ/QU=";
hash = "sha256-pcLgXIPWC7F6FS5Znn9DJMn/tsjNpE/7YlCxYoDDg+Y=";
};
propagatedBuildInputs = [
@@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "google-cloud-redis";
version = "2.8.0";
version = "2.8.1";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-7L3SjViQmzTp//5LWWG9VG+TQuPay70KZdUuzhy7HS0=";
hash = "sha256-qI7bGk+BkLIfhrJHAfk2DVBp8vRc5dPLKjdKH0FPj8s=";
};
propagatedBuildInputs = [
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "google-cloud-secret-manager";
version = "2.11.0";
version = "2.11.1";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-naE1e7T1E0P3MxJCMYc3YZ79v/3VTW19D/LhzRie7jk=";
hash = "sha256-tSy0d8kdyDSE+/gcg4B+fplnLJ4ipoa+TZvUoExaYVU=";
};
propagatedBuildInputs = [
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "google-cloud-securitycenter";
version = "1.11.0";
version = "1.11.1";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-+etRN3Q7Y1oYtQy0Fkoj6ujhx4gD5y+fUriu/eitIQM=";
hash = "sha256-XvjxdrGgdXaJqbArwdEWT31one+I43cpZ97PciM8yIA=";
};
propagatedBuildInputs = [
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "google-cloud-speech";
version = "2.14.0";
version = "2.14.1";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-D8t8+rscImUvpHCEFGTzLU5FpAMZ62iHhRfLzUXqGV8=";
hash = "sha256-ImE08djcrhhC0VQJmL69hbfUDBALPUyW9IaSh1CIJqs=";
};
propagatedBuildInputs = [
@@ -12,11 +12,11 @@
buildPythonPackage rec {
pname = "google-cloud-trace";
version = "1.6.1";
version = "1.6.2";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-JkKW9vJAAkw3sHYDapRvu5jjunV8oWSg/ykDmd1wpyA=";
sha256 = "sha256-nxyd8zE8PEQupVutLWhLD4I1jNhhJ0ARpTi52f21iBE=";
};
propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
@@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "google-cloud-translate";
version = "3.7.3";
version = "3.7.4";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-c++DP97IhMKHKZqXWpVO/9Rw1q8eYs1ybNZDhviwB/A=";
hash = "sha256-B5MBpdcS6NN7rwvjLwbY55rV0dLDwWtnAadWsH2AwXE=";
};
propagatedBuildInputs = [
@@ -44,7 +44,6 @@ buildPythonPackage rec {
];
meta = with lib; {
broken = stdenv.isDarwin;
description = "Python library to build command line user prompts";
homepage = "https://github.com/tmbo/questionary";
license = with licenses; [ mit ];
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "sagemaker";
version = "2.93.0";
version = "2.93.1";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-rVEYiX0e7dP2CQK4ceEPZu395vas69aZkQzJCana53c=";
hash = "sha256-EzIJ9+eo5eaXu4TdsvktHtA/wuqr8HUMqsl2pGyvs40=";
};
propagatedBuildInputs = [
@@ -1,7 +1,12 @@
{ lib
, buildPythonPackage
, lhapdf
, nnpdf
, prompt-toolkit
, reportengine
, requests
, seaborn
, validobj
}:
buildPythonPackage rec {
@@ -21,8 +26,13 @@ buildPythonPackage rec {
'';
propagatedBuildInputs = [
lhapdf
nnpdf
prompt-toolkit
reportengine
requests
seaborn
validobj
];
doCheck = false; # no tests
@@ -1,28 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, locale, pytestCheckHook }:
buildPythonPackage rec {
pname = "click";
version = "7.1.2";
src = fetchPypi {
inherit pname version;
sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
};
postPatch = ''
substituteInPlace src/click/_unicodefun.py \
--replace "'locale'" "'${locale}/bin/locale'"
'';
checkInputs = [ pytestCheckHook ];
meta = with lib; {
homepage = "https://click.palletsprojects.com/";
description = "Create beautiful command line interfaces in Python";
longDescription = ''
A Python package for creating beautiful command line interfaces in a
composable way, with as little code as necessary.
'';
license = licenses.bsd3;
};
}
@@ -1,86 +0,0 @@
{ lib
, stdenv
, callPackage
, buildPythonPackage
, fetchPypi
, isPy27
, ipaddress
, openssl
, darwin
, packaging
, six
, isPyPy
, cffi
, pytest
, pretend
, iso8601
, pytz
, hypothesis
, enum34
}:
let
cryptography-vectors = callPackage ./vectors.nix { };
in
buildPythonPackage rec {
pname = "cryptography";
version = "3.3.2"; # Also update the hash in vectors-3.3.nix
src = fetchPypi {
inherit pname version;
sha256 = "1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s";
};
patches = [ ./cryptography-py27-warning.patch ];
outputs = [ "out" "dev" ];
nativeBuildInputs = lib.optionals (!isPyPy) [
cffi
];
buildInputs = [ openssl ]
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
propagatedBuildInputs = [
packaging
six
] ++ lib.optionals (!isPyPy) [
cffi
] ++ lib.optionals isPy27 [
ipaddress
enum34
];
checkInputs = [
cryptography-vectors
hypothesis
iso8601
pretend
pytest
pytz
];
checkPhase = ''
py.test --disable-pytest-warnings tests
'';
# IOKit's dependencies are inconsistent between OSX versions, so this is the best we
# can do until nix 1.11's release
__impureHostDeps = [ "/usr/lib" ];
meta = with lib; {
description = "A package which provides cryptographic recipes and primitives";
longDescription = ''
Cryptography includes both high level recipes and low level interfaces to
common cryptographic algorithms such as symmetric ciphers, message
digests, and key derivation functions.
Our goal is for it to be your "cryptographic standard library". It
supports Python 2.7, Python 3.5+, and PyPy 5.4+.
'';
homepage = "https://github.com/pyca/cryptography";
changelog = "https://cryptography.io/en/latest/changelog/#v"
+ replaceStrings [ "." ] [ "-" ] version;
license = with licenses; [ asl20 bsd3 psfl ];
maintainers = with maintainers; [ primeos ];
};
}
@@ -1,24 +0,0 @@
{ buildPythonPackage, fetchPypi, lib, cryptography }:
buildPythonPackage rec {
pname = "cryptography-vectors";
# The test vectors must have the same version as the cryptography package:
version = cryptography.version;
src = fetchPypi {
pname = "cryptography_vectors";
inherit version;
sha256 = "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc";
};
# No tests included
doCheck = false;
meta = with lib; {
description = "Test vectors for the cryptography package";
homepage = "https://cryptography.io/en/latest/development/test-vectors/";
# Source: https://github.com/pyca/cryptography/tree/master/vectors;
license = with licenses; [ asl20 bsd3 ];
maintainers = with maintainers; [ primeos ];
};
}
@@ -1,21 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec {
pname = "decorator";
version = "4.4.2";
src = fetchPypi {
inherit pname version;
sha256 = "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3";
};
meta = with lib; {
homepage = "https://pypi.python.org/pypi/decorator";
description = "Better living through Python with decorators";
license = lib.licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}
@@ -1,28 +0,0 @@
{ lib, buildPythonPackage, fetchPypi
, itsdangerous, click, werkzeug, jinja2, pytest }:
buildPythonPackage rec {
version = "1.1.2";
pname = "Flask";
src = fetchPypi {
inherit pname version;
sha256 = "4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060";
};
checkInputs = [ pytest ];
propagatedBuildInputs = [ itsdangerous click werkzeug jinja2 ];
checkPhase = ''
py.test
'';
# Tests require extra dependencies
doCheck = false;
meta = with lib; {
homepage = "http://flask.pocoo.org/";
description = "A microframework based on Werkzeug, Jinja 2, and good intentions";
license = licenses.bsd3;
};
}
@@ -1,29 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
, python-dateutil
, six
, mock
, nose
, pytest
}:
buildPythonPackage rec {
pname = "freezegun";
version = "0.3.15";
src = fetchPypi {
inherit pname version;
sha256 = "e2062f2c7f95cc276a834c22f1a17179467176b624cc6f936e8bc3be5535ad1b";
};
propagatedBuildInputs = [ python-dateutil six ];
checkInputs = [ mock nose pytest ];
meta = with lib; {
description = "FreezeGun: Let your Python tests travel through time";
homepage = "https://github.com/spulec/freezegun";
license = licenses.asl20;
};
}
@@ -1,23 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
, isPy3k
}:
buildPythonPackage rec {
pname = "ipaddr";
version = "2.2.0";
disabled = isPy3k;
src = fetchPypi {
inherit pname version;
sha256 = "1ml8r8z3f0mnn381qs1snbffa920i9ycp6mm2am1d3aqczkdz4j0";
};
meta = with lib; {
description = "Google's IP address manipulation library";
homepage = "https://github.com/google/ipaddr-py";
license = licenses.asl20;
};
}
@@ -1,21 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec {
pname = "itsdangerous";
version = "1.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19";
};
meta = with lib; {
description = "Helpers to pass trusted data to untrusted environments and back";
homepage = "https://pypi.python.org/pypi/itsdangerous/";
license = licenses.bsd0;
};
}
@@ -1,39 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
, isPy27
, mock
, pycrypto
, requests
, pytest-runner
, pytest
, requests-mock
, typing
, backports_ssl_match_hostname
}:
buildPythonPackage rec {
pname = "apache-libcloud";
version = "2.8.3";
src = fetchPypi {
inherit pname version;
sha256 = "70096690b24a7832cc5abdfda1954b49fddc1c09a348a1e6caa781ac867ed4c6";
};
checkInputs = [ mock pytest pytest-runner requests-mock ];
propagatedBuildInputs = [ pycrypto requests ]
++ lib.optionals isPy27 [ typing backports_ssl_match_hostname ];
preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
# requires a certificates file
doCheck = false;
meta = with lib; {
description = "A unified interface to many cloud providers";
homepage = "https://libcloud.apache.org/";
license = licenses.asl20;
};
}
@@ -1,31 +0,0 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, lxml
, docutils
, pillow
, isPy3k
}:
buildPythonPackage {
version = "1.1.7";
pname = "python-lpod";
# lpod library currently does not support Python 3.x
disabled = isPy3k;
propagatedBuildInputs = [ lxml docutils pillow ];
src = fetchFromGitHub {
owner = "lpod";
repo = "lpod-python";
rev = "dee32120ee582ff337b0c52a95a9a87cca71fd67";
sha256 = "1mikvzp27wxkzpr2lii4wg1hhx8h610agckqynvsrdc8v3nw9ciw";
};
meta = with lib; {
homepage = "https://github.com/lpod/lpod-python/";
description = "Library implementing the ISO/IEC 26300 OpenDocument Format standard (ODF) ";
license = licenses.gpl3;
};
}
@@ -1,47 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
, cryptography
, ecdsa
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "pyjwt";
version = "1.7.1";
src = fetchPypi {
pname = "PyJWT";
inherit version;
sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
};
postPatch = ''
sed -i '/^addopts/d' setup.cfg
'';
propagatedBuildInputs = [
cryptography
ecdsa
];
checkInputs = [
pytestCheckHook
];
disabledTests = [
"test_ec_verify_should_return_false_if_signature_invalid"
];
pythonImportsCheck = [ "jwt" ];
meta = with lib; {
description = "JSON Web Token implementation in Python";
homepage = "https://github.com/jpadilla/pyjwt";
license = licenses.mit;
knownVulnerabilities = [
"CVE-2022-29217"
];
};
}
@@ -1,84 +0,0 @@
{ lib
, brotli
, buildPythonPackage
, certifi
, cryptography
, python-dateutil
, fetchpatch
, fetchPypi
, idna
, mock
, pyopenssl
, pysocks
, pytest-freezegun
, pytest-timeout
, pytestCheckHook
, tornado
, trustme
}:
buildPythonPackage rec {
pname = "urllib3";
version = "1.26.2";
src = fetchPypi {
inherit pname version;
sha256 = "19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08";
};
patches = [
(fetchpatch {
name = "CVE-2021-28363.patch";
url = "https://github.com/urllib3/urllib3/commit/8d65ea1ecf6e2cdc27d42124e587c1b83a3118b0.patch";
sha256 = "1lqhrd11p03iv14bp89rh67ynf000swmwsfvr3jpfdycdqr3ka9q";
})
];
propagatedBuildInputs = [
brotli
certifi
cryptography
idna
pyopenssl
pysocks
];
checkInputs = [
python-dateutil
mock
pytest-freezegun
pytest-timeout
pytestCheckHook
tornado
trustme
];
# Tests in urllib3 are mostly timeout-based instead of event-based and
# are therefore inherently flaky. On your own machine, the tests will
# typically build fine, but on a loaded cluster such as Hydra random
# timeouts will occur.
#
# The urllib3 test suite has two different timeouts in their test suite
# (see `test/__init__.py`):
# - SHORT_TIMEOUT
# - LONG_TIMEOUT
# When CI is in the env, LONG_TIMEOUT will be significantly increased.
# Still, failures can occur and for that reason tests are disabled.
doCheck = false;
preCheck = ''
export CI # Increases LONG_TIMEOUT
'';
pythonImportsCheck = [ "urllib3" ];
meta = with lib; {
description = "Powerful, sanity-friendly HTTP client for Python";
homepage = "https://github.com/shazow/urllib3";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
knownVulnerabilities = [
"CVE-2021-33503"
];
};
}
@@ -1,48 +0,0 @@
{ buildPythonPackage
, lib
, six
, fetchPypi
, pyyaml
, mock
, contextlib2
, wrapt
, pytest
, pytest-httpbin
, yarl
, pythonOlder
, pythonAtLeast
}:
buildPythonPackage rec {
pname = "vcrpy";
version = "3.0.0";
src = fetchPypi {
inherit pname version;
sha256 = "21168d5ae14263a833d4b71acfd8278d8841114f24be1b4ab4a5719d0c7f07bc";
};
checkInputs = [
pytest
pytest-httpbin
];
propagatedBuildInputs = [
pyyaml
wrapt
six
]
++ lib.optionals (pythonOlder "3.3") [ contextlib2 mock ]
++ lib.optionals (pythonAtLeast "3.4") [ yarl ];
checkPhase = ''
py.test --ignore=tests/integration -k "not TestVCRConnection"
'';
meta = with lib; {
description = "Automatically mock your HTTP interactions to simplify and speed up testing";
homepage = "https://github.com/kevin1024/vcrpy";
license = licenses.mit;
};
}
@@ -1,60 +0,0 @@
{ lib, stdenv, buildPythonPackage, fetchPypi
, itsdangerous, hypothesis
, pytestCheckHook, requests
, pytest-timeout
}:
buildPythonPackage rec {
pname = "Werkzeug";
version = "1.0.1";
src = fetchPypi {
inherit pname version;
sha256 = "6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c";
};
propagatedBuildInputs = [ itsdangerous ];
checkInputs = [ pytestCheckHook requests hypothesis pytest-timeout ];
postPatch = ''
# ResourceWarning causes tests to fail
rm tests/test_routing.py
'';
disabledTests = [
"test_save_to_pathlib_dst"
"test_cookie_maxsize"
"test_cookie_samesite_attribute"
"test_cookie_samesite_invalid"
"test_range_parsing"
"test_content_range_parsing"
"test_http_date_lt_1000"
"test_best_match_works"
"test_date_to_unix"
"test_easteregg"
# Seems to be a problematic test-case:
#
# > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
# E pytest.PytestUnraisableExceptionWarning: Exception ignored in: <_io.FileIO [closed]>
# E
# E Traceback (most recent call last):
# E File "/nix/store/cwv8aj4vsqvimzljw5dxsxy663vjgibj-python3.9-Werkzeug-1.0.1/lib/python3.9/site-packages/werkzeug/formparser.py", line 318, in parse_multipart_headers
# E return Headers(result)
# E ResourceWarning: unclosed file <_io.FileIO name=11 mode='rb+' closefd=True>
"test_basic_routing"
"test_merge_slashes_match"
"test_merge_slashes_build"
"TestMultiPart"
"TestHTTPUtility"
] ++ lib.optionals stdenv.isDarwin [
"test_get_machine_id"
];
meta = with lib; {
homepage = "https://palletsprojects.com/p/werkzeug/";
description = "A WSGI utility library for Python";
license = licenses.bsd3;
maintainers = [ ];
};
}
@@ -1,25 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, h11, enum34, pytest }:
buildPythonPackage rec {
pname = "wsproto";
version = "0.14.1";
src = fetchPypi {
inherit pname version;
sha256 = "051s127qb5dladxa14n9nqajwq7xki1dz1was5r5v9df5a0jq8pd";
};
propagatedBuildInputs = [ h11 enum34 ];
checkInputs = [ pytest ];
checkPhase = ''
py.test
'';
meta = with lib; {
description = "Pure Python, pure state-machine WebSocket implementation";
homepage = "https://github.com/python-hyper/wsproto/";
license = licenses.mit;
};
}
@@ -1,91 +0,0 @@
{ fetchurl
, lib
, stdenv
, darwin
, openglSupport ? true
, libX11
, wxGTK
, wxmac
, pkg-config
, buildPythonPackage
, pyopengl
, isPy3k
, isPyPy
, python
, cairo
, pango
}:
assert wxGTK.unicode;
buildPythonPackage rec {
pname = "wxPython";
version = "3.0.2.0";
disabled = isPy3k || isPyPy;
doCheck = false;
src = fetchurl {
url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
sha256 = "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm";
};
dontUseSetuptoolsBuild = true;
dontUsePipInstall = true;
hardeningDisable = [ "format" ];
nativeBuildInputs = [ pkg-config ]
++ (lib.optionals (!stdenv.isDarwin) [ wxGTK libX11 ])
++ (lib.optionals stdenv.isDarwin [ wxmac ]);
buildInputs = [ ]
++ (lib.optionals (!stdenv.isDarwin) [ (wxGTK.gtk) ])
++ (lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
ApplicationServices
AudioToolbox
CFNetwork
Carbon
Cocoa
CoreGraphics
CoreServices
CoreText
DiskArbitration
IOKit
ImageIO
OpenGL
Security
]))
++ (lib.optional openglSupport pyopengl);
preConfigure = ''
cd wxPython
# remove wxPython's darwin hack that interference with python-2.7-distutils-C++.patch
substituteInPlace config.py \
--replace "distutils.unixccompiler.UnixCCompiler = MyUnixCCompiler" ""
# set the WXPREFIX to $out instead of the storepath of wxwidgets
substituteInPlace config.py \
--replace "WXPREFIX = getWxConfigValue('--prefix')" "WXPREFIX = '$out'"
# this check is supposed to only return false on older systems running non-framework python
substituteInPlace src/osx_cocoa/_core_wrap.cpp \
--replace "return wxPyTestDisplayAvailable();" "return true;"
'' + lib.optionalString (!stdenv.isDarwin) ''
substituteInPlace wx/lib/wxcairo.py \
--replace 'cairoLib = None' 'cairoLib = ctypes.CDLL("${cairo}/lib/libcairo.so")'
substituteInPlace wx/lib/wxcairo.py \
--replace '_dlls = dict()' '_dlls = {k: ctypes.CDLL(v) for k, v in [
("gdk", "${wxGTK.gtk}/lib/libgtk-x11-2.0.so"),
("pangocairo", "${pango.out}/lib/libpangocairo-1.0.so"),
("appsvc", None)
]}'
'';
buildPhase = "";
installPhase = ''
${python.interpreter} setup.py install WXPORT=${if stdenv.isDarwin then "osx_cocoa" else "gtk2"} NO_HEADERS=0 BUILD_GLCANVAS=${if openglSupport then "1" else "0"} UNICODE=1 --prefix=$out
wrapPythonPrograms
'';
passthru = { inherit wxGTK openglSupport; };
}
@@ -16,6 +16,13 @@ stdenv.mkDerivation rec {
url = "https://github.com/thorkill/eresi/commit/a79406344cc21d594d27fa5ec5922abe9f7475e7.patch";
sha256 = "1mjjc6hj7r06iarvai7prcdvjk9g0k5vwrmkwcm7b8ivd5xzxp2z";
})
# Pull patch pending upstream inclusion for -fno-common toolchains:
# https://github.com/thorkill/eresi/pull/166
(fetchpatch {
url = "https://github.com/thorkill/eresi/commit/bc5b9a75c326f277e5f89e01a3b8f7f0519a99f6.patch";
sha256 = "0lqwrnkkhhd3vi1r8ngvziyqkk09h98h93rrs3ndqi048a898ys1";
})
];
postPatch = ''
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "controller-tools";
version = "0.6.2";
version = "0.8.0";
src = fetchFromGitHub {
owner = "kubernetes-sigs";
repo = pname;
rev = "v${version}";
sha256 = "0hbai8pi59yhgsmmmxk3nghhy9hj3ma98jq2d1k46n46gr64a0q5";
sha256 = "sha256-+nn/lj/MEtmC5NcvPOp1VZE13qJsGG+6eQaG+Yi8FTM=";
};
vendorSha256 = "061qvq8z98d39vyk1gr46fw5ynxra154s90n3pb7k1q7q45rg76j";
vendorSha256 = "sha256-QCF3sfBUAjiIGb2EFrLKj5wHJ6HxJVqLEjxUTpMiX6E=";
doCheck = false;
+6
View File
@@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
buildInputs = [ SDL SDL_mixer SDL_sound gtk2 ]
++ lib.optionals stdenv.isDarwin [ smpeg libvorbis ];
# Workaround build failure on -fno-common toolchains:
# ld: build/linux.release/alan3/Location.o:(.bss+0x0): multiple definition of
# `logFile'; build/linux.release/alan3/act.o:(.bss+0x0): first defined here
# TODO: drop once updated to 2022.1 or later.
NIX_CFLAGS_COMPILE = "-fcommon";
buildPhase = jamenv + "jam -j$NIX_BUILD_CORES";
installPhase =
+5
View File
@@ -19,6 +19,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
# Workaround build failure on -fno-common toolchains:
# ld: dnd.o:src/main.h:136: multiple definition of
# `MENU_EXT'; main.o:src/main.h:136: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
NIX_LDFLAGS = "-lX11";
meta = {
@@ -4,7 +4,9 @@
appleDerivation {
nativeBuildInputs = [ xcbuildHook flex bison fixDarwinDylibNames ];
buildInputs = [ CoreSymbolication darling xnu ];
NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration";
# -fcommon: workaround build failure on -fno-common toolchains:
# duplicate symbol '_kCSRegionMachHeaderName' in: libproc.o dt_module_apple.o
NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration -fcommon";
NIX_LDFLAGS = "-L./Products/Release";
xcbuildFlags = [ "-target" "dtrace_frameworks" "-target" "dtrace" ];
@@ -1,4 +1,4 @@
{ buildPackages, fetchFromGitHub, perl, buildLinux, libelf, util-linux, ... } @ args:
{ buildPackages, fetchFromGitHub, fetchurl, perl, buildLinux, libelf, util-linux, kernelPatches ? [], ... } @ args:
buildLinux (args // rec {
version = "4.14.180-176";
@@ -16,6 +16,14 @@ buildLinux (args // rec {
sha256 = "0n7i7a2bkrm9p1wfr20h54cqm32fbjvwyn703r6zm1f6ivqhk43v";
};
kernelPatches = args.kernelPatches ++ [{
name = "usbip-tools-fno-common";
patch = fetchurl {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=d5efc2e6b98fe661dbd8dd0d5d5bfb961728e57a";
hash = "sha256-1CXYCV5zMLA4YdbCr8cO2N4CHEDzQChS9qbKYHPm3U4=";
};
}];
defconfig = "odroidxu4_defconfig";
# This extraConfig is (only) required because the gator module fails to build as-is.
+2 -2
View File
@@ -1,4 +1,4 @@
{ lib, stdenv, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
{ lib, stdenv, fetchpatch, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
stdenv.mkDerivation {
name = "usbip-${kernel.name}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
./fix-snprintf-truncation.patch
# fixes build with gcc9
./fix-strncpy-truncation.patch
];
] ++ kernel.patches;
nativeBuildInputs = [ autoconf automake libtool ];
buildInputs = [ udev ];
+14 -7
View File
@@ -1,12 +1,12 @@
{ lib, buildGoPackage, fetchFromGitHub }:
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoPackage rec {
buildGoModule rec {
pname = "webhook";
version = "2.8.0";
goPackagePath = "github.com/adnanh/webhook";
excludedPackages = [ "test" ];
src = fetchFromGitHub {
owner = "adnanh";
repo = "webhook";
@@ -14,9 +14,16 @@ buildGoPackage rec {
sha256 = "0n03xkgwpzans0cymmzb0iiks8mi2c76xxdak780dk0jbv6qgp5i";
};
vendorSha256 = null;
subPackages = [ "." ];
doCheck = false;
meta = with lib; {
description = "Incoming webhook server that executes shell commands";
homepage = "https://github.com/adnanh/webhook";
license = [ licenses.mit ];
description = "incoming webhook server that executes shell commands";
license = licenses.mit;
maintainers = with maintainers; [ azahi ];
};
}
+109
View File
@@ -0,0 +1,109 @@
{ fetchFromGitHub
, fetchurl
, lib
, stdenv
, double-conversion
, gperftools
, mimalloc
, rapidjson
, liburing
, xxHash
, abseil-cpp_202111
, gbenchmark
, glog
, gtest
, jemalloc
, gcc-unwrapped
, autoconf
, autoconf-archive
, automake
, cmake
, ninja
, boost
, libunwind
, libtool
, openssl
}:
let
pname = "dragonflydb";
version = "0.1.0";
src = fetchFromGitHub {
owner = pname;
repo = "dragonfly";
rev = "v${version}";
hash = "sha256-P6WMW/n+VezWDXGagT4B+ZYyCp8oufDV6MTrpKpLZcs=";
fetchSubmodules = true;
};
# Needed exactly 5.4.4 for patch to work
lua = fetchurl {
url = "https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz";
hash = "sha256-L/ibvqIqfIuRDWsAb1ukVZ7c9GiiVTfO35mI7ZD2tFA=";
};
in
stdenv.mkDerivation {
inherit pname version src;
postPatch = ''
mkdir -p ./build/{third_party,_deps}
ln -s ${double-conversion.src} ./build/third_party/dconv
ln -s ${mimalloc.src} ./build/third_party/mimalloc
ln -s ${rapidjson.src} ./build/third_party/rapidjson
ln -s ${gbenchmark.src} ./build/_deps/benchmark-src
ln -s ${gtest.src} ./build/_deps/gtest-src
cp -R --no-preserve=mode,ownership ${gperftools.src} ./build/third_party/gperf
cp -R --no-preserve=mode,ownership ${liburing.src} ./build/third_party/uring
cp -R --no-preserve=mode,ownership ${xxHash.src} ./build/third_party/xxhash
cp -R --no-preserve=mode,ownership ${abseil-cpp_202111.src} ./build/_deps/abseil_cpp-src
cp -R --no-preserve=mode,ownership ${glog.src} ./build/_deps/glog-src
chmod u+x ./build/third_party/uring/configure
cp ./build/third_party/xxhash/cli/xxhsum.{1,c} ./build/third_party/xxhash
patch -p1 -d ./build/_deps/glog-src < ${./glog.patch}
sed '
s@REPLACEJEMALLOCURL@file://${jemalloc.src}@
s@REPLACELUAURL@file://${lua}@
' ${./fixes.patch} | patch -p1
'';
nativeBuildInputs = [
autoconf
autoconf-archive
automake
cmake
ninja
];
buildInputs = [
boost
libunwind
libtool
openssl
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
];
ninjaFlags = "dragonfly";
doCheck = false;
dontUseNinjaInstall = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ./dragonfly $out/bin
runHook postInstall
'';
meta = with lib; {
description = "A modern replacement for Redis and Memcached";
homepage = "https://dragonflydb.io/";
license = licenses.bsl11;
platforms = platforms.linux;
maintainers = with maintainers; [ yureien ];
};
}
+132
View File
@@ -0,0 +1,132 @@
diff --git a/helio/cmake/third_party.cmake b/helio/cmake/third_party.cmake
index aeb78d9..e9d4e6b 100644
--- a/helio/cmake/third_party.cmake
+++ b/helio/cmake/third_party.cmake
@@ -143,7 +143,7 @@ endfunction()
FetchContent_Declare(
gtest
- URL https://github.com/google/googletest/archive/release-1.11.0.zip
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(gtest)
@@ -154,7 +154,7 @@ endif ()
FetchContent_Declare(
benchmark
- URL https://github.com/google/benchmark/archive/v1.6.1.tar.gz
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(benchmark)
@@ -169,7 +169,7 @@ endif ()
FetchContent_Declare(
abseil_cpp
- URL https://github.com/abseil/abseil-cpp/archive/20211102.0.tar.gz
+ DOWNLOAD_COMMAND true
PATCH_COMMAND patch -p1 < "${CMAKE_CURRENT_LIST_DIR}/../patches/abseil-20211102.patch"
)
@@ -183,11 +183,7 @@ endif()
FetchContent_Declare(
glog
- GIT_REPOSITORY https://github.com/romange/glog
- GIT_TAG Absl
-
- GIT_PROGRESS TRUE
- GIT_SHALLOW TRUE
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(glog)
@@ -233,10 +229,7 @@ endif()
add_third_party(
gperf
- URL https://github.com/gperftools/gperftools/archive/gperftools-2.9.1.tar.gz
- #GIT_REPOSITORY https://github.com/gperftools/gperftools
- #GIT_TAG gperftools-2.9.1
- GIT_SHALLOW TRUE
+ DOWNLOAD_COMMAND true
PATCH_COMMAND autoreconf -i # update runs every time for some reason
# CMAKE_PASS_FLAGS "-DGPERFTOOLS_BUILD_HEAP_PROFILER=OFF -DGPERFTOOLS_BUILD_HEAP_CHECKER=OFF \
# -DGPERFTOOLS_BUILD_DEBUGALLOC=OFF -DBUILD_TESTING=OFF \
@@ -260,11 +253,12 @@ else()
endif()
add_third_party(mimalloc
- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.0.5.tar.gz
+ DOWNLOAD_COMMAND true
# Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug
CMAKE_PASS_FLAGS "-DCMAKE_BUILD_TYPE=Release -DMI_BUILD_SHARED=OFF -DMI_BUILD_TESTS=OFF \
- -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g"
+ -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g \
+ -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/mimalloc/lib"
BUILD_COMMAND make -j4 mimalloc-static
INSTALL_COMMAND make install
@@ -274,7 +268,7 @@ add_third_party(mimalloc
)
add_third_party(jemalloc
- URL https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
+ URL REPLACEJEMALLOCURL
PATCH_COMMAND ./autogen.sh
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/jemalloc --with-jemalloc-prefix=je_ --disable-libdl
)
@@ -282,24 +276,23 @@ add_third_party(jemalloc
add_third_party(
xxhash
- URL https://github.com/Cyan4973/xxHash/archive/v0.8.0.tar.gz
+ DOWNLOAD_COMMAND true
SOURCE_SUBDIR cmake_unofficial
- CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF"
+ CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/xxhash/lib"
)
add_third_party(
uring
- GIT_REPOSITORY https://github.com/axboe/liburing.git
- GIT_TAG liburing-2.1
+ DOWNLOAD_COMMAND true
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/uring
BUILD_IN_SOURCE 1
)
add_third_party(
rapidjson
- GIT_REPOSITORY https://github.com/Tencent/rapidjson.git
- GIT_TAG 1a803826f1197b5e30703afe4b9c0e7dd48074f5
+ DOWNLOAD_COMMAND true
CMAKE_PASS_FLAGS "-DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF \
-DRAPIDJSON_BUILD_DOC=OFF"
LIB "none"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0dc0824..d5b38b3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,6 @@
add_third_party(
lua
- URL https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz
+ URL REPLACELUAURL
PATCH_COMMAND patch -p1 -i "${CMAKE_SOURCE_DIR}/patches/lua-v5.4.4.patch"
CONFIGURE_COMMAND echo
BUILD_IN_SOURCE 1
@@ -11,7 +11,8 @@ add_third_party(
add_third_party(
dconv
- URL https://github.com/google/double-conversion/archive/refs/tags/v3.2.0.tar.gz
+ DOWNLOAD_COMMAND true
+ CMAKE_PASS_FLAGS "-DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/dconv/lib"
LIB libdouble-conversion.a
)
+553
View File
@@ -0,0 +1,553 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 846b4448..b4900ead 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,7 @@ option (PRINT_UNSYMBOLIZED_STACK_TRACES
"Print file offsets in traces instead of symbolizing" OFF)
option (WITH_CUSTOM_PREFIX "Enable support for user-generated message prefixes" ON)
option (WITH_GFLAGS "Use gflags" ON)
+option (WITH_ABSL "Use absl flags" OFF)
option (WITH_GTEST "Use Google Test" ON)
option (WITH_PKGCONFIG "Enable pkg-config support" ON)
option (WITH_SYMBOLIZE "Enable symbolize module" ON)
@@ -87,6 +88,13 @@ if (WITH_GFLAGS)
endif (gflags_FOUND)
endif (WITH_GFLAGS)
+if (WITH_ABSL)
+ set (HAVE_ABSL_FLAGS 1)
+ set (ac_cv_have_abslflags 1)
+else (WITH_ABSL)
+set (ac_cv_have_abslflags 0)
+endif (WITH_ABSL)
+
find_package (Threads)
find_package (Unwind)
@@ -1025,7 +1033,7 @@ write_basic_package_version_file (
${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
COMPATIBILITY SameMajorVersion)
-export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
+# export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
export (PACKAGE glog)
get_filename_component (_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
diff --git a/src/base/commandlineflags.h b/src/base/commandlineflags.h
index bcb12dea..1c9d9294 100644
--- a/src/base/commandlineflags.h
+++ b/src/base/commandlineflags.h
@@ -57,6 +57,25 @@
#include <gflags/gflags.h>
+#else
+#ifdef HAVE_ABSL_FLAGS
+#include <absl/flags/flag.h>
+
+#define FLAG(name) absl::GetFlag(FLAGS_##name)
+
+#define DEFINE_bool(name, value, meaning) \
+ ABSL_FLAG(bool, name, value, meaning)
+
+#define DEFINE_int32(name, value, meaning) \
+ ABSL_FLAG(GOOGLE_NAMESPACE::int32, name, value, meaning)
+
+#define DEFINE_uint32(name, value, meaning) \
+ ABSL_FLAG(GOOGLE_NAMESPACE::uint32, name, value, meaning)
+
+#define DEFINE_string(name, value, meaning) \
+ ABSL_FLAG(std::string, name, value, meaning)
+
+
#else
#include <glog/logging.h>
@@ -108,6 +127,7 @@
} \
using fLS::FLAGS_##name
+#endif
#endif // HAVE_LIB_GFLAGS
// Define GLOG_DEFINE_* using DEFINE_* . By using these macros, we
diff --git a/src/base/mutex.h b/src/base/mutex.h
index e82c597f..a58c1412 100644
--- a/src/base/mutex.h
+++ b/src/base/mutex.h
@@ -319,11 +319,6 @@ class WriterMutexLock {
void operator=(const WriterMutexLock&);
};
-// Catch bug where variable name is omitted, e.g. MutexLock (&mu);
-#define MutexLock(x) COMPILE_ASSERT(0, mutex_lock_decl_missing_var_name)
-#define ReaderMutexLock(x) COMPILE_ASSERT(0, rmutex_lock_decl_missing_var_name)
-#define WriterMutexLock(x) COMPILE_ASSERT(0, wmutex_lock_decl_missing_var_name)
-
} // namespace MUTEX_NAMESPACE
using namespace MUTEX_NAMESPACE;
diff --git a/src/config.h.cmake.in b/src/config.h.cmake.in
index b225b7ec..a4c58c96 100644
--- a/src/config.h.cmake.in
+++ b/src/config.h.cmake.in
@@ -34,6 +34,8 @@
/* define if you have google gflags library */
#cmakedefine HAVE_LIB_GFLAGS
+#cmakedefine HAVE_ABSL_FLAGS
+
/* define if you have google gmock library */
#cmakedefine HAVE_LIB_GMOCK
diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in
index 95a573b1..54cd838f 100644
--- a/src/glog/logging.h.in
+++ b/src/glog/logging.h.in
@@ -89,6 +89,10 @@
#include <gflags/gflags.h>
#endif
+#if @ac_cv_have_abslflags@
+#include <absl/flags/declare.h>
+#endif
+
#if @ac_cv_cxx11_atomic@ && __cplusplus >= 201103L
#include <atomic>
#elif defined(GLOG_OS_WINDOWS)
@@ -395,6 +399,14 @@ typedef void(*CustomPrefixCallback)(std::ostream& s, const LogMessageInfo& l, vo
#undef DECLARE_uint32
#endif
+#if @ac_cv_have_abslflags@
+#define DECLARE_VARIABLE 1
+#define DECLARE_bool(name) ABSL_DECLARE_FLAG(bool, name)
+#define DECLARE_int32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::int32, name)
+#define DECLARE_uint32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::uint32, name)
+#define DECLARE_string(name) ABSL_DECLARE_FLAG(std::string, name)
+#endif
+
#ifndef DECLARE_VARIABLE
#define DECLARE_VARIABLE(type, shorttype, name, tn) \
namespace fL##shorttype { \
diff --git a/src/glog/vlog_is_on.h.in b/src/glog/vlog_is_on.h.in
index 7526fc34..16e60f46 100644
--- a/src/glog/vlog_is_on.h.in
+++ b/src/glog/vlog_is_on.h.in
@@ -64,6 +64,14 @@
#include <glog/log_severity.h>
#if defined(__GNUC__)
+
+#if @ac_cv_have_abslflags@
+ extern int32_t absl_proxy_v;
+ #define VLEVEL (@ac_google_namespace@::absl_proxy_v)
+#else
+ #define VLEVEL (FLAGS_v)
+#endif
+
// We emit an anonymous static int* variable at every VLOG_IS_ON(n) site.
// (Normally) the first time every VLOG_IS_ON(n) site is hit,
// we determine what variable will dynamically control logging at this site:
@@ -74,7 +82,7 @@
__extension__ \
({ static @ac_google_namespace@::SiteFlag vlocal__ = {NULL, NULL, 0, NULL}; \
@ac_google_namespace@::int32 verbose_level__ = (verboselevel); \
- (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
+ (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &VLEVEL, \
__FILE__, verbose_level__) : *vlocal__.level >= verbose_level__); \
})
#else
diff --git a/src/logging.cc b/src/logging.cc
index 4028ccc0..fc618d3a 100644
--- a/src/logging.cc
+++ b/src/logging.cc
@@ -103,7 +103,9 @@ using std::fdopen;
#endif
// There is no thread annotation support.
+#ifndef EXCLUSIVE_LOCKS_REQUIRED
#define EXCLUSIVE_LOCKS_REQUIRED(mu)
+#endif
static bool BoolFromEnv(const char *varname, bool defval) {
const char* const valstr = getenv(varname);
@@ -351,8 +353,9 @@ static const char* GetAnsiColorCode(GLogColor color) {
// Safely get max_log_size, overriding to 1 if it somehow gets defined as 0
static uint32 MaxLogSize() {
- return (FLAGS_max_log_size > 0 && FLAGS_max_log_size < 4096
- ? FLAGS_max_log_size
+ uint32 maxlogsize = FLAG(max_log_size);
+ return (maxlogsize > 0 && maxlogsize < 4096
+ ? maxlogsize
: 1);
}
@@ -721,7 +724,7 @@ inline void LogDestination::SetStderrLogging(LogSeverity min_severity) {
// Prevent any subtle race conditions by wrapping a mutex lock around
// all this stuff.
MutexLock l(&log_mutex);
- FLAGS_stderrthreshold = min_severity;
+ absl::SetFlag(&FLAGS_stderrthreshold, min_severity);
}
inline void LogDestination::LogToStderr() {
@@ -747,8 +750,8 @@ static void ColoredWriteToStderrOrStdout(FILE* output, LogSeverity severity,
const char* message, size_t len) {
bool is_stdout = (output == stdout);
const GLogColor color = (LogDestination::terminal_supports_color() &&
- ((!is_stdout && FLAGS_colorlogtostderr) ||
- (is_stdout && FLAGS_colorlogtostdout)))
+ ((!is_stdout && FLAG(colorlogtostderr)) ||
+ (is_stdout && FLAG(colorlogtostdout))))
? SeverityToColor(severity)
: COLOR_DEFAULT;
@@ -789,7 +792,7 @@ static void ColoredWriteToStdout(LogSeverity severity, const char* message,
FILE* output = stdout;
// We also need to send logs to the stderr when the severity is
// higher or equal to the stderr threshold.
- if (severity >= FLAGS_stderrthreshold) {
+ if (severity >= FLAG(stderrthreshold)) {
output = stderr;
}
ColoredWriteToStderrOrStdout(output, severity, message, len);
@@ -808,7 +811,7 @@ static void WriteToStderr(const char* message, size_t len) {
inline void LogDestination::MaybeLogToStderr(LogSeverity severity,
const char* message, size_t message_len, size_t prefix_len) {
- if ((severity >= FLAGS_stderrthreshold) || FLAGS_alsologtostderr) {
+ if ((severity >= FLAG(stderrthreshold)) || FLAG(alsologtostderr)) {
ColoredWriteToStderr(severity, message, message_len);
#ifdef GLOG_OS_WINDOWS
(void) prefix_len;
@@ -835,8 +838,8 @@ inline void LogDestination::MaybeLogToStderr(LogSeverity severity,
inline void LogDestination::MaybeLogToEmail(LogSeverity severity,
const char* message, size_t len) {
if (severity >= email_logging_severity_ ||
- severity >= FLAGS_logemaillevel) {
- string to(FLAGS_alsologtoemail);
+ severity >= FLAG(logemaillevel)) {
+ string to(FLAG(alsologtoemail));
if (!addresses_.empty()) {
if (!to.empty()) {
to += ",";
@@ -862,7 +865,7 @@ inline void LogDestination::MaybeLogToLogfile(LogSeverity severity,
time_t timestamp,
const char* message,
size_t len) {
- const bool should_flush = severity > FLAGS_logbuflevel;
+ const bool should_flush = severity > FLAG(logbuflevel);
LogDestination* destination = log_destination(severity);
destination->logger_->Write(should_flush, timestamp, message, len);
}
@@ -871,9 +874,9 @@ inline void LogDestination::LogToAllLogfiles(LogSeverity severity,
time_t timestamp,
const char* message,
size_t len) {
- if (FLAGS_logtostdout) { // global flag: never log to file
+ if (FLAG(logtostdout)) { // global flag: never log to file
ColoredWriteToStdout(severity, message, len);
- } else if (FLAGS_logtostderr) { // global flag: never log to file
+ } else if (FLAG(logtostderr)) { // global flag: never log to file
ColoredWriteToStderr(severity, message, len);
} else {
for (int i = severity; i >= 0; --i) {
@@ -1032,25 +1035,25 @@ void LogFileObject::FlushUnlocked(){
bytes_since_flush_ = 0;
}
// Figure out when we are due for another flush.
- const int64 next = (FLAGS_logbufsecs
+ const int64 next = (FLAG(logbufsecs)
* static_cast<int64>(1000000)); // in usec
next_flush_time_ = CycleClock_Now() + UsecToCycles(next);
}
bool LogFileObject::CreateLogfile(const string& time_pid_string) {
string string_filename = base_filename_;
- if (FLAGS_timestamp_in_logfile_name) {
+ if (FLAG(timestamp_in_logfile_name)) {
string_filename += time_pid_string;
}
string_filename += filename_extension_;
const char* filename = string_filename.c_str();
//only write to files, create if non-existant.
int flags = O_WRONLY | O_CREAT;
- if (FLAGS_timestamp_in_logfile_name) {
+ if (FLAG(timestamp_in_logfile_name)) {
//demand that the file is unique for our timestamp (fail if it exists).
flags = flags | O_EXCL;
}
- int fd = open(filename, flags, FLAGS_logfile_mode);
+ int fd = open(filename, flags, FLAG(logfile_mode));
if (fd == -1) return false;
#ifdef HAVE_FCNTL
// Mark the file close-on-exec. We don't really care if this fails
@@ -1083,7 +1086,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
file_ = fdopen(fd, "a"); // Make a FILE*.
if (file_ == NULL) { // Man, we're screwed!
close(fd);
- if (FLAGS_timestamp_in_logfile_name) {
+ if (FLAG(timestamp_in_logfile_name)) {
unlink(filename); // Erase the half-baked evidence: an unusable log file, only if we just created it.
}
return false;
@@ -1125,8 +1128,8 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
// Make an additional link to the log file in a place specified by
// FLAGS_log_link, if indicated
- if (!FLAGS_log_link.empty()) {
- linkpath = FLAGS_log_link + "/" + linkname;
+ if (!FLAG(log_link).empty()) {
+ linkpath = FLAG(log_link) + "/" + linkname;
unlink(linkpath.c_str()); // delete old one if it exists
if (symlink(filename, linkpath.c_str()) != 0) {
// silently ignore failures
@@ -1165,7 +1168,7 @@ void LogFileObject::Write(bool force_flush,
rollover_attempt_ = 0;
struct ::tm tm_time;
- if (FLAGS_log_utc_time) {
+ if (FLAG(log_utc_time)) {
gmtime_r(&timestamp, &tm_time);
} else {
localtime_r(&timestamp, &tm_time);
@@ -1253,14 +1256,14 @@ void LogFileObject::Write(bool force_flush,
<< ' '
<< setw(2) << tm_time.tm_hour << ':'
<< setw(2) << tm_time.tm_min << ':'
- << setw(2) << tm_time.tm_sec << (FLAGS_log_utc_time ? " UTC\n" : "\n")
+ << setw(2) << tm_time.tm_sec << (FLAG(log_utc_time) ? " UTC\n" : "\n")
<< "Running on machine: "
<< LogDestination::hostname() << '\n';
if(!g_application_fingerprint.empty()) {
file_header_stream << "Application fingerprint: " << g_application_fingerprint << '\n';
}
- const char* const date_time_format = FLAGS_log_year_in_prefix
+ const char* const date_time_format = FLAG(log_year_in_prefix)
? "yyyymmdd hh:mm:ss.uuuuuu"
: "mmdd hh:mm:ss.uuuuuu";
file_header_stream << "Running duration (h:mm:ss): "
@@ -1284,7 +1287,7 @@ void LogFileObject::Write(bool force_flush,
// greater than 4096, thereby indicating an error.
errno = 0;
fwrite(message, 1, message_len, file_);
- if ( FLAGS_stop_logging_if_full_disk &&
+ if ( FLAG(stop_logging_if_full_disk) &&
errno == ENOSPC ) { // disk full, stop writing to disk
stop_writing = true; // until the disk is
return;
@@ -1307,7 +1310,7 @@ void LogFileObject::Write(bool force_flush,
FlushUnlocked();
#ifdef GLOG_OS_LINUX
// Only consider files >= 3MiB
- if (FLAGS_drop_log_memory && file_length_ >= (3U << 20U)) {
+ if (FLAG(drop_log_memory) && file_length_ >= (3U << 20U)) {
// Don't evict the most recent 1-2MiB so as not to impact a tailer
// of the log file and to avoid page rounding issue on linux < 4.7
uint32 total_drop_length =
@@ -1348,7 +1351,7 @@ void LogCleaner::Disable() {
}
void LogCleaner::UpdateCleanUpTime() {
- const int64 next = (FLAGS_logcleansecs
+ const int64 next = (FLAG(logcleansecs)
* 1000000); // in usec
next_cleanup_time_ = CycleClock_Now() + UsecToCycles(next);
}
@@ -1664,7 +1667,7 @@ void LogMessage::Init(const char* file,
// I20201018 160715 f5d4fbb0 logging.cc:1153]
// (log level, GMT year, month, date, time, thread_id, file basename, line)
// We exclude the thread_id for the default thread.
- if (FLAGS_log_prefix && (line != kNoLogPrefix)) {
+ if (FLAG(log_prefix) && (line != kNoLogPrefix)) {
std::ios saved_fmt(NULL);
saved_fmt.copyfmt(stream());
stream().fill('0');
@@ -1672,7 +1675,7 @@ void LogMessage::Init(const char* file,
if (custom_prefix_callback == NULL) {
#endif
stream() << LogSeverityNames[severity][0];
- if (FLAGS_log_year_in_prefix) {
+ if (FLAG(log_year_in_prefix)) {
stream() << setw(4) << 1900 + logmsgtime_.year();
}
stream() << setw(2) << 1 + logmsgtime_.month()
@@ -1703,11 +1706,11 @@ void LogMessage::Init(const char* file,
}
data_->num_prefix_chars_ = data_->stream_.pcount();
- if (!FLAGS_log_backtrace_at.empty()) {
+ if (!FLAG(log_backtrace_at).empty()) {
char fileline[128];
snprintf(fileline, sizeof(fileline), "%s:%d", data_->basename_, line);
#ifdef HAVE_STACKTRACE
- if (FLAGS_log_backtrace_at == fileline) {
+ if (FLAG(log_backtrace_at) == fileline) {
string stacktrace;
DumpStackTraceToString(&stacktrace);
stream() << " (stacktrace:\n" << stacktrace << ") ";
@@ -1746,7 +1749,7 @@ ostream& LogMessage::stream() {
// Flush buffered message, called by the destructor, or any other function
// that needs to synchronize the log.
void LogMessage::Flush() {
- if (data_->has_been_flushed_ || data_->severity_ < FLAGS_minloglevel) {
+ if (data_->has_been_flushed_ || data_->severity_ < FLAG(minloglevel)) {
return;
}
@@ -1808,7 +1811,7 @@ static char fatal_message[256];
void ReprintFatalMessage() {
if (fatal_message[0]) {
const size_t n = strlen(fatal_message);
- if (!FLAGS_logtostderr) {
+ if (!FLAG(logtostderr)) {
// Also write to stderr (don't color to avoid terminal checks)
WriteToStderr(fatal_message, n);
}
@@ -1837,8 +1840,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) {
// global flag: never log to file if set. Also -- don't log to a
// file if we haven't parsed the command line flags to get the
// program name.
- if (FLAGS_logtostderr || FLAGS_logtostdout || !IsGoogleLoggingInitialized()) {
- if (FLAGS_logtostdout) {
+ if (FLAG(logtostderr) || FLAG(logtostdout) || !IsGoogleLoggingInitialized()) {
+ if (FLAG(logtostdout)) {
ColoredWriteToStdout(data_->severity_, data_->message_text_,
data_->num_chars_to_log_);
} else {
@@ -1891,7 +1894,7 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) {
fatal_time = logmsgtime_.timestamp();
}
- if (!FLAGS_logtostderr && !FLAGS_logtostdout) {
+ if (!FLAG(logtostderr) && !FLAG(logtostdout)) {
for (int i = 0; i < NUM_SEVERITIES; ++i) {
if (LogDestination::log_destinations_[i]) {
LogDestination::log_destinations_[i]->logger_->Write(true, 0, "", 0);
@@ -2238,7 +2241,7 @@ static bool SendEmailInternal(const char*dest, const char *subject,
subject, body, dest);
}
- string logmailer = FLAGS_logmailer;
+ string logmailer = FLAG(logmailer);
if (logmailer.empty()) {
logmailer = "/bin/mail";
}
@@ -2338,9 +2341,9 @@ const vector<string>& GetLoggingDirectories() {
if (logging_directories_list == NULL) {
logging_directories_list = new vector<string>;
- if ( !FLAGS_log_dir.empty() ) {
+ if ( !FLAG(log_dir).empty() ) {
// A dir was specified, we should use it
- logging_directories_list->push_back(FLAGS_log_dir);
+ logging_directories_list->push_back(FLAG(log_dir));
} else {
GetTempDirectories(logging_directories_list);
#ifdef GLOG_OS_WINDOWS
@@ -2654,7 +2657,7 @@ LogMessageTime::LogMessageTime(std::tm t) {
LogMessageTime::LogMessageTime(std::time_t timestamp, WallTime now) {
std::tm t;
- if (FLAGS_log_utc_time)
+ if (FLAG(log_utc_time))
gmtime_r(&timestamp, &t);
else
localtime_r(&timestamp, &t);
@@ -2673,7 +2676,7 @@ void LogMessageTime::init(const std::tm& t, std::time_t timestamp,
void LogMessageTime::CalcGmtOffset() {
std::tm gmt_struct;
int isDst = 0;
- if ( FLAGS_log_utc_time ) {
+ if ( FLAG(log_utc_time )) {
localtime_r(&timestamp_, &gmt_struct);
isDst = gmt_struct.tm_isdst;
gmt_struct = time_struct_;
diff --git a/src/raw_logging.cc b/src/raw_logging.cc
index 43159832..8532362b 100644
--- a/src/raw_logging.cc
+++ b/src/raw_logging.cc
@@ -123,8 +123,8 @@ static char crash_buf[kLogBufSize + 1] = { 0 }; // Will end in '\0'
GLOG_ATTRIBUTE_FORMAT(printf, 4, 5)
void RawLog__(LogSeverity severity, const char* file, int line,
const char* format, ...) {
- if (!(FLAGS_logtostdout || FLAGS_logtostderr ||
- severity >= FLAGS_stderrthreshold || FLAGS_alsologtostderr ||
+ if (!(FLAG(logtostdout) || FLAG(logtostderr) ||
+ severity >= FLAG(stderrthreshold) || FLAG(alsologtostderr) ||
!IsGoogleLoggingInitialized())) {
return; // this stderr log message is suppressed
}
diff --git a/src/utilities.cc b/src/utilities.cc
index a332f1a1..a9d5102a 100644
--- a/src/utilities.cc
+++ b/src/utilities.cc
@@ -141,7 +141,7 @@ static void DumpStackTrace(int skip_count, DebugWriter *writerfn, void *arg) {
int depth = GetStackTrace(stack, ARRAYSIZE(stack), skip_count+1);
for (int i = 0; i < depth; i++) {
#if defined(HAVE_SYMBOLIZE)
- if (FLAGS_symbolize_stacktrace) {
+ if (FLAG(symbolize_stacktrace)) {
DumpPCAndSymbol(writerfn, arg, stack[i], " ");
} else {
DumpPC(writerfn, arg, stack[i], " ");
diff --git a/src/vlog_is_on.cc b/src/vlog_is_on.cc
index e478a366..4b7a5cae 100644
--- a/src/vlog_is_on.cc
+++ b/src/vlog_is_on.cc
@@ -43,14 +43,24 @@
#include <glog/logging.h>
#include <glog/raw_logging.h>
#include "base/googleinit.h"
+#include "config.h"
// glog doesn't have annotation
#define ANNOTATE_BENIGN_RACE(address, description)
using std::string;
+#ifdef HAVE_ABSL_FLAGS
+
+ABSL_FLAG(int32_t, v, 0, "Show all VLOG(m) messages for m <= this."
+" Overridable by --vmodule.").OnUpdate([] {
+ GOOGLE_NAMESPACE::absl_proxy_v = absl::GetFlag(FLAGS_v);
+ });
+
+#else
GLOG_DEFINE_int32(v, 0, "Show all VLOG(m) messages for m <= this."
" Overridable by --vmodule.");
+#endif
GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
" Argument is a comma-separated list of <module name>=<log level>."
@@ -60,6 +70,8 @@ GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
_START_GOOGLE_NAMESPACE_
+int32_t absl_proxy_v = 0;
+
namespace glog_internal_namespace_ {
// Used by logging_unittests.cc so can't make it static here.
@@ -132,7 +144,8 @@ static void VLOG2Initializer() {
// Can now parse --vmodule flag and initialize mapping of module-specific
// logging levels.
inited_vmodule = false;
- const char* vmodule = FLAGS_vmodule.c_str();
+ string vmodule_str = FLAG(vmodule);
+ const char* vmodule = vmodule_str.c_str();
const char* sep;
VModuleInfo* head = NULL;
VModuleInfo* tail = NULL;
@@ -164,7 +177,7 @@ static void VLOG2Initializer() {
// This can be called very early, so we use SpinLock and RAW_VLOG here.
int SetVLOGLevel(const char* module_pattern, int log_level) {
- int result = FLAGS_v;
+ int result = FLAG(v);
size_t const pattern_len = strlen(module_pattern);
bool found = false;
{
+42
View File
@@ -0,0 +1,42 @@
{ lib, buildPythonPackage, fetchFromGitHub, python3Packages }:
buildPythonPackage rec {
pname = "persistent-evdev";
version = "unstable-2022-05-07";
src = fetchFromGitHub {
owner = "aiberia";
repo = pname;
rev = "52bf246464e09ef4e6f2e1877feccc7b9feba164";
sha256 = "d0i6DL/qgDELet4ew2lyVqzd9TApivRxL3zA3dcsQXY=";
};
propagatedBuildInputs = with python3Packages; [
evdev pyudev
];
postPatch = ''
patchShebangs bin/persistent-evdev.py
'';
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
cp bin/persistent-evdev.py $out/bin
mkdir -p $out/etc/udev/rules.d
cp udev/60-persistent-input-uinput.rules $out/etc/udev/rules.d
'';
# has no tests
doCheck = false;
meta = with lib; {
homepage = "https://github.com/aiberia/persistent-evdev";
description = "Persistent virtual input devices for qemu/libvirt/evdev hotplug support";
license = licenses.mit;
maintainers = [ maintainers.lodi ];
platforms = platforms.linux;
};
}
+15 -6
View File
@@ -1,4 +1,4 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub }:
{ lib, stdenv, buildGoModule, fetchFromGitHub, fetchpatch }:
buildGoModule rec {
pname = "certigo";
@@ -11,12 +11,21 @@ buildGoModule rec {
sha256 = "sha256-XGR6xIXdFLnJTFd+mJneRb/WkLmi0Jscta9Bj3paM1M=";
};
vendorSha256 = "sha256-qS/tIi6umSuQcl43SI4LyL0k5eWfRWs7kVybRPGKcbs=";
patches = [
(fetchpatch {
name = "backport_TestConnect-Apple-Fixes.patch";
url = "https://github.com/square/certigo/commit/5332ac7ca20bdea63657cc8319e8b8fda4326938.patch";
sha256 = "sha256-mSNuiui2dxkXnCrXJ/asIzC8F1mtPecOVOIu6mE5jq4=";
})
# Go running under Hydra Darwin x86_64 picks CHAPOLY instead of AES-GCM as
# the default TLS ciphersuite, and breaks the arguably flakey `TestConnect`
# test.
doCheck = !(stdenv.isDarwin && stdenv.isx86_64);
(fetchpatch {
name = "backport_TestConnect-Expected-CipherSuite-Fixes.patch";
url = "https://github.com/square/certigo/commit/7ef0417bde4aafc69cbb72f0dd6d3577a56054a1.patch";
sha256 = "sha256-TUQ8B23HKheaPUjj4NkvjmZBAAhDNTyo2c8jf4qukds=";
})
];
vendorSha256 = "sha256-qS/tIi6umSuQcl43SI4LyL0k5eWfRWs7kVybRPGKcbs=";
meta = with lib; {
description = "A utility to examine and validate certificates in a variety of formats";
+2 -3
View File
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--disable-arch-native"
];
] ++ lib.optionals stdenv.isDarwin [ "--disable-link-time-optimization" ];
meta = {
description = "A better and stronger spiritual successor to BZip2";
@@ -36,7 +36,6 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/kspalaiologos/bzip3/blob/${src.rev}/NEWS";
license = lib.licenses.lgpl3Plus;
maintainers = with lib.maintainers; [ dotlambda ];
# upstream supports Darwin but I couldn't get it to work
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
}
@@ -0,0 +1,39 @@
{ lib
, stdenv
, fetchFromGitHub
, boost
, cmake
, nasm
, libpng
}:
stdenv.mkDerivation rec {
pname = "efficient-compression-tool";
version = "0.9.1";
src = fetchFromGitHub {
owner = "fhanau";
repo = "Efficient-Compression-Tool";
rev = "v${version}";
sha256 = "sha256-TSV5QXf6GuHAwQrde3Zo9MA1rtpAhtRg0UTzMkBnHB8=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake nasm ];
patches = [ ./use-nixpkgs-libpng.patch ];
buildInputs = [ boost libpng ];
cmakeDir = "../src";
cmakeFlags = [ "-DECT_FOLDER_SUPPORT=ON" ];
meta = with lib; {
description = "Fast and effective C++ file optimizer";
homepage = "https://github.com/fhanau/Efficient-Compression-Tool";
license = licenses.asl20;
maintainers = [ maintainers.lunik1 ];
platforms = platforms.linux;
};
}
@@ -0,0 +1,108 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d18843c..a9df1fb 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -8,11 +8,6 @@ if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
-# Check that submodules are present only if source was downloaded with git
-if(EXISTS "${CMAKE_SOURCE_DIR}/../.git" AND NOT EXISTS "${CMAKE_SOURCE_DIR}/../src/libpng/README")
- message (FATAL_ERROR "Submodules are not initialized. Run \n\tgit submodule update --init --recursive\n within the repository")
-endif()
-
add_executable(ect
main.cpp
gztools.cpp
@@ -56,7 +51,6 @@ add_subdirectory(lodepng EXCLUDE_FROM_ALL)
add_subdirectory(miniz EXCLUDE_FROM_ALL)
add_subdirectory(zlib EXCLUDE_FROM_ALL)
add_subdirectory(zopfli EXCLUDE_FROM_ALL)
-file(COPY ${CMAKE_SOURCE_DIR}/pngusr.h DESTINATION ${CMAKE_SOURCE_DIR}/libpng/)
add_subdirectory(optipng EXCLUDE_FROM_ALL)
# Mozjpeg changes the install prefix if it thinks the current is defaulted
set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT FALSE)
diff --git a/src/Makefile b/src/Makefile
index cc24367..7aa9f0a 100755
--- a/src/Makefile
+++ b/src/Makefile
@@ -18,7 +18,7 @@ CXXSRC = support.cpp zopflipng.cpp zopfli/deflate.cpp zopfli/zopfli_gzip.cpp zop
lodepng/lodepng.cpp lodepng/lodepng_util.cpp optipng/codec.cpp optipng/optipng.cpp jpegtran.cpp gztools.cpp \
leanify/zip.cpp leanify/leanify.cpp
-.PHONY: libpng mozjpeg deps bin all install
+.PHONY: mozjpeg deps bin all install
all: deps bin
bin: deps
@@ -33,9 +33,6 @@ libz.a:
cd zlib/; \
$(CC) $(UCFLAGS) -c adler32.c crc32.c deflate.c inffast.c inflate.c inftrees.c trees.c zutil.c gzlib.c gzread.c; \
ar rcs ../libz.a adler32.o crc32.o deflate.o inffast.o inflate.o inftrees.o trees.o zutil.o gzlib.o gzread.o
-libpng:
- cp pngusr.h libpng/pngusr.h
- make -C libpng/ -f scripts/makefile.linux-opt CC="$(CC)" CFLAGS="$(UCFLAGS) -DPNG_USER_CONFIG -Wno-macro-redefined" libpng.a
mozjpeg:
cd mozjpeg/; \
export CC="$(CC)"; \
diff --git a/src/optipng/CMakeLists.txt b/src/optipng/CMakeLists.txt
index 1037a20..3c751e9 100644
--- a/src/optipng/CMakeLists.txt
+++ b/src/optipng/CMakeLists.txt
@@ -16,16 +16,14 @@ add_library(optipng
add_library(optipng::optipng ALIAS optipng)
#make sure that we are using custom zlib and custom libpng options
-set(PNG_BUILD_ZLIB ON CACHE BOOL "use custom zlib within libpng" FORCE)
set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../zlib/ CACHE FILEPATH "custom zlib directory" FORCE)
if(NOT WIN32)
add_compile_options(-Wno-macro-redefined)
endif()
add_compile_definitions(PNG_USER_CONFIG)
-add_subdirectory(../libpng libpng EXCLUDE_FROM_ALL)
target_link_libraries(optipng
- png_static)
+ png)
# libpng generates some header files that we need to be able to include
target_include_directories(optipng
diff --git a/src/optipng/image.h b/src/optipng/image.h
index c439f84..8255fa0 100755
--- a/src/optipng/image.h
+++ b/src/optipng/image.h
@@ -13,7 +13,7 @@
#ifndef OPNGCORE_IMAGE_H
#define OPNGCORE_IMAGE_H
-#include "../libpng/png.h"
+#include <png.h>
#ifdef __cplusplus
extern "C" {
diff --git a/src/optipng/opngreduc/opngreduc.h b/src/optipng/opngreduc/opngreduc.h
index a7e6553..06ef956 100755
--- a/src/optipng/opngreduc/opngreduc.h
+++ b/src/optipng/opngreduc/opngreduc.h
@@ -13,7 +13,7 @@
#include <stdbool.h>
-#include "../../libpng/png.h"
+#include <png.h>
#ifdef __cplusplus
diff --git a/src/optipng/trans.h b/src/optipng/trans.h
index a2f7f3e..c0e8dc4 100755
--- a/src/optipng/trans.h
+++ b/src/optipng/trans.h
@@ -13,7 +13,7 @@
#ifndef OPNGTRANS_TRANS_H
#define OPNGTRANS_TRANS_H
-#include "../libpng/png.h"
+#include <png.h>
#ifdef __cplusplus
extern "C" {
+105 -103
View File
@@ -104,7 +104,7 @@ python-versions = ">=3.5"
[[package]]
name = "lxml"
version = "4.8.0"
version = "4.9.0"
description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
category = "main"
optional = false
@@ -137,7 +137,7 @@ python-versions = "*"
[[package]]
name = "pillow"
version = "9.1.0"
version = "9.1.1"
description = "Python Imaging Library (Fork)"
category = "main"
optional = false
@@ -251,7 +251,7 @@ python-versions = "*"
[[package]]
name = "svglib"
version = "1.2.1"
version = "1.3.0"
description = "A pure-Python library for reading and converting SVG"
category = "main"
optional = false
@@ -401,67 +401,69 @@ idna = [
{file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
]
lxml = [
{file = "lxml-4.8.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b"},
{file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430"},
{file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a"},
{file = "lxml-4.8.0-cp27-cp27m-win32.whl", hash = "sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5"},
{file = "lxml-4.8.0-cp27-cp27m-win_amd64.whl", hash = "sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9"},
{file = "lxml-4.8.0-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc"},
{file = "lxml-4.8.0-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170"},
{file = "lxml-4.8.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9"},
{file = "lxml-4.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03"},
{file = "lxml-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe"},
{file = "lxml-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa"},
{file = "lxml-4.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1"},
{file = "lxml-4.8.0-cp310-cp310-win32.whl", hash = "sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b"},
{file = "lxml-4.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76"},
{file = "lxml-4.8.0-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6"},
{file = "lxml-4.8.0-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2"},
{file = "lxml-4.8.0-cp35-cp35m-win32.whl", hash = "sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150"},
{file = "lxml-4.8.0-cp35-cp35m-win_amd64.whl", hash = "sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654"},
{file = "lxml-4.8.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169"},
{file = "lxml-4.8.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb"},
{file = "lxml-4.8.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3"},
{file = "lxml-4.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4"},
{file = "lxml-4.8.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e"},
{file = "lxml-4.8.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613"},
{file = "lxml-4.8.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33"},
{file = "lxml-4.8.0-cp36-cp36m-win32.whl", hash = "sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429"},
{file = "lxml-4.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63"},
{file = "lxml-4.8.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a"},
{file = "lxml-4.8.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4"},
{file = "lxml-4.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15"},
{file = "lxml-4.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f"},
{file = "lxml-4.8.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c"},
{file = "lxml-4.8.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85"},
{file = "lxml-4.8.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141"},
{file = "lxml-4.8.0-cp37-cp37m-win32.whl", hash = "sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63"},
{file = "lxml-4.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8"},
{file = "lxml-4.8.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7"},
{file = "lxml-4.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428"},
{file = "lxml-4.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5"},
{file = "lxml-4.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f"},
{file = "lxml-4.8.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870"},
{file = "lxml-4.8.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9"},
{file = "lxml-4.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68"},
{file = "lxml-4.8.0-cp38-cp38-win32.whl", hash = "sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696"},
{file = "lxml-4.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939"},
{file = "lxml-4.8.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807"},
{file = "lxml-4.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1"},
{file = "lxml-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939"},
{file = "lxml-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca"},
{file = "lxml-4.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c"},
{file = "lxml-4.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87"},
{file = "lxml-4.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9"},
{file = "lxml-4.8.0-cp39-cp39-win32.whl", hash = "sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea"},
{file = "lxml-4.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c"},
{file = "lxml-4.8.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl", hash = "sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507"},
{file = "lxml-4.8.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9"},
{file = "lxml-4.8.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e"},
{file = "lxml-4.8.0-pp38-pypy38_pp73-macosx_10_14_x86_64.whl", hash = "sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0"},
{file = "lxml-4.8.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79"},
{file = "lxml-4.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93"},
{file = "lxml-4.8.0.tar.gz", hash = "sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23"},
{file = "lxml-4.9.0-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:b5031d151d6147eac53366d6ec87da84cd4d8c5e80b1d9948a667a7164116e39"},
{file = "lxml-4.9.0-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5d52e1173f52020392f593f87a6af2d4055dd800574a5cb0af4ea3878801d307"},
{file = "lxml-4.9.0-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3af00ee88376022589ceeb8170eb67dacf5f7cd625ea59fa0977d719777d4ae8"},
{file = "lxml-4.9.0-cp27-cp27m-win32.whl", hash = "sha256:1057356b808d149bc14eb8f37bb89129f237df488661c1e0fc0376ca90e1d2c3"},
{file = "lxml-4.9.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f6d23a01921b741774f35e924d418a43cf03eca1444f3fdfd7978d35a5aaab8b"},
{file = "lxml-4.9.0-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56e19fb6e4b8bd07fb20028d03d3bc67bcc0621347fbde64f248e44839771756"},
{file = "lxml-4.9.0-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4cd69bca464e892ea4ed544ba6a7850aaff6f8d792f8055a10638db60acbac18"},
{file = "lxml-4.9.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:94b181dd2777890139e49a5336bf3a9a3378ce66132c665fe8db4e8b7683cde2"},
{file = "lxml-4.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:607224ffae9a0cf0a2f6e14f5f6bce43e83a6fbdaa647891729c103bdd6a5593"},
{file = "lxml-4.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:11d62c97ceff9bab94b6b29c010ea5fb6831743459bb759c917f49ba75601cd0"},
{file = "lxml-4.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:70a198030d26f5e569367f0f04509b63256faa76a22886280eea69a4f535dd40"},
{file = "lxml-4.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3cf816aed8125cfc9e6e5c6c31ff94278320d591bd7970c4a0233bee0d1c8790"},
{file = "lxml-4.9.0-cp310-cp310-win32.whl", hash = "sha256:65b3b5f12c6fb5611e79157214f3cd533083f9b058bf2fc8a1c5cc5ee40fdc5a"},
{file = "lxml-4.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:0aa4cce579512c33373ca4c5e23c21e40c1aa1a33533a75e51b654834fd0e4f2"},
{file = "lxml-4.9.0-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63419db39df8dc5564f6f103102c4665f7e4d9cb64030e98cf7a74eae5d5760d"},
{file = "lxml-4.9.0-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d8e5021e770b0a3084c30dda5901d5fce6d4474feaf0ced8f8e5a82702502fbb"},
{file = "lxml-4.9.0-cp35-cp35m-win32.whl", hash = "sha256:f17b9df97c5ecdfb56c5e85b3c9df9831246df698f8581c6e111ac664c7c656e"},
{file = "lxml-4.9.0-cp35-cp35m-win_amd64.whl", hash = "sha256:75da29a0752c8f2395df0115ac1681cefbdd4418676015be8178b733704cbff2"},
{file = "lxml-4.9.0-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:e4d020ecf3740b7312bacab2cb966bb720fd4d3490562d373b4ad91dd1857c0d"},
{file = "lxml-4.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:b71c52d69b91af7d18c13aef1b0cc3baee36b78607c711eb14a52bf3aa7c815e"},
{file = "lxml-4.9.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28cf04a1a38e961d4a764d2940af9b941b66263ed5584392ef875ee9c1e360a3"},
{file = "lxml-4.9.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:915ecf7d486df17cc65aeefdb680d5ad4390cc8c857cf8db3fe241ed234f856a"},
{file = "lxml-4.9.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e564d5a771b4015f34166a05ea2165b7e283635c41b1347696117f780084b46d"},
{file = "lxml-4.9.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c2a57755e366e0ac7ebdb3e9207f159c3bf1afed02392ab18453ce81f5ee92ee"},
{file = "lxml-4.9.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:00f3a6f88fd5f4357844dd91a1abac5f466c6799f1b7f1da2df6665253845b11"},
{file = "lxml-4.9.0-cp36-cp36m-win32.whl", hash = "sha256:9093a359a86650a3dbd6532c3e4d21a6f58ba2cb60d0e72db0848115d24c10ba"},
{file = "lxml-4.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d1690c4d37674a5f0cdafbc5ed7e360800afcf06928c2a024c779c046891bf09"},
{file = "lxml-4.9.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:6af7f51a6010748fc1bb71917318d953c9673e4ae3f6d285aaf93ef5b2eb11c1"},
{file = "lxml-4.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:eabdbe04ee0a7e760fa6cd9e799d2b020d098c580ba99107d52e1e5e538b1ecb"},
{file = "lxml-4.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:b1e22f3ee4d75ca261b6bffbf64f6f178cb194b1be3191065a09f8d98828daa9"},
{file = "lxml-4.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:53b0410b220766321759f7f9066da67b1d0d4a7f6636a477984cbb1d98483955"},
{file = "lxml-4.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d76da27f5e3e9bc40eba6ed7a9e985f57547e98cf20521d91215707f2fb57e0f"},
{file = "lxml-4.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:686565ac77ff94a8965c11829af253d9e2ce3bf0d9225b1d2eb5c4d4666d0dca"},
{file = "lxml-4.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b62d1431b4c40cda43cc986f19b8c86b1d2ae8918cfc00f4776fdf070b65c0c4"},
{file = "lxml-4.9.0-cp37-cp37m-win32.whl", hash = "sha256:4becd16750ca5c2a1b1588269322b2cebd10c07738f336c922b658dbab96a61c"},
{file = "lxml-4.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e35a298691b9e10e5a5631f8f0ba605b30ebe19208dc8f58b670462f53753641"},
{file = "lxml-4.9.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:aa7447bf7c1a15ef24e2b86a277b585dd3f055e8890ac7f97374d170187daa97"},
{file = "lxml-4.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:612ef8f2795a89ba3a1d4c8c1af84d8453fd53ee611aa5ad460fdd2cab426fc2"},
{file = "lxml-4.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:1bfb791a8fcdbf55d1d41b8be940393687bec0e9b12733f0796668086d1a23ff"},
{file = "lxml-4.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:024684e0c5cfa121c22140d3a0898a3a9b2ea0f0fd2c229b6658af4bdf1155e5"},
{file = "lxml-4.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:81c29c8741fa07ecec8ec7417c3d8d1e2f18cf5a10a280f4e1c3f8c3590228b2"},
{file = "lxml-4.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6467626fa74f96f4d80fc6ec2555799e97fff8f36e0bfc7f67769f83e59cff40"},
{file = "lxml-4.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9cae837b988f44925d14d048fa6a8c54f197c8b1223fd9ee9c27084f84606143"},
{file = "lxml-4.9.0-cp38-cp38-win32.whl", hash = "sha256:5a49ad78543925e1a4196e20c9c54492afa4f1502c2a563f73097e2044c75190"},
{file = "lxml-4.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:bb7c1b029e54e26e01b1d1d912fc21abb65650d16ea9a191d026def4ed0859ed"},
{file = "lxml-4.9.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d0d03b9636f1326772e6854459728676354d4c7731dae9902b180e2065ba3da6"},
{file = "lxml-4.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:9af19eb789d674b59a9bee5005779757aab857c40bf9cc313cb01eafac55ce55"},
{file = "lxml-4.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:dd00d28d1ab5fa7627f5abc957f29a6338a7395b724571a8cbff8fbed83aaa82"},
{file = "lxml-4.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:754a1dd04bff8a509a31146bd8f3a5dc8191a8694d582dd5fb71ff09f0722c22"},
{file = "lxml-4.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7679344f2270840dc5babc9ccbedbc04f7473c1f66d4676bb01680c0db85bcc"},
{file = "lxml-4.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d882c2f3345261e898b9f604be76b61c901fbfa4ac32e3f51d5dc1edc89da3cb"},
{file = "lxml-4.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4e97c8fc761ad63909198acc892f34c20f37f3baa2c50a62d5ec5d7f1efc68a1"},
{file = "lxml-4.9.0-cp39-cp39-win32.whl", hash = "sha256:cf9ec915857d260511399ab87e1e70fa13d6b2972258f8e620a3959468edfc32"},
{file = "lxml-4.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:1254a79f8a67a3908de725caf59eae62d86738f6387b0a34b32e02abd6ae73db"},
{file = "lxml-4.9.0-pp37-pypy37_pp73-macosx_10_15_x86_64.whl", hash = "sha256:03370ec37fe562238d385e2c53089076dee53aabf8325cab964fdb04a9130fa0"},
{file = "lxml-4.9.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f386def57742aacc3d864169dfce644a8c396f95aa35b41b69df53f558d56dd0"},
{file = "lxml-4.9.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ea3f2e9eb41f973f73619e88bf7bd950b16b4c2ce73d15f24a11800ce1eaf276"},
{file = "lxml-4.9.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d10659e6e5c53298e6d718fd126e793285bff904bb71d7239a17218f6a197b7"},
{file = "lxml-4.9.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:fcdf70191f0d1761d190a436db06a46f05af60e1410e1507935f0332280c9268"},
{file = "lxml-4.9.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:2b9c2341d96926b0d0e132e5c49ef85eb53fa92ae1c3a70f9072f3db0d32bc07"},
{file = "lxml-4.9.0-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:615886ee84b6f42f1bdf1852a9669b5fe3b96b6ff27f1a7a330b67ad9911200a"},
{file = "lxml-4.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:94f2e45b054dd759bed137b6e14ae8625495f7d90ddd23cf62c7a68f72b62656"},
{file = "lxml-4.9.0.tar.gz", hash = "sha256:520461c36727268a989790aef08884347cd41f2d8ae855489ccf40b50321d8d7"},
]
outcome = [
{file = "outcome-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958"},
@@ -472,44 +474,44 @@ pdfrw = [
{file = "pdfrw-0.4.tar.gz", hash = "sha256:0dc0494a0e6561b268542b28ede2280387c2728114f117d3bb5d8e4787b93ef4"},
]
pillow = [
{file = "Pillow-9.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:af79d3fde1fc2e33561166d62e3b63f0cc3e47b5a3a2e5fea40d4917754734ea"},
{file = "Pillow-9.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:55dd1cf09a1fd7c7b78425967aacae9b0d70125f7d3ab973fadc7b5abc3de652"},
{file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66822d01e82506a19407d1afc104c3fcea3b81d5eb11485e593ad6b8492f995a"},
{file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5eaf3b42df2bcda61c53a742ee2c6e63f777d0e085bbc6b2ab7ed57deb13db7"},
{file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01ce45deec9df310cbbee11104bae1a2a43308dd9c317f99235b6d3080ddd66e"},
{file = "Pillow-9.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aea7ce61328e15943d7b9eaca87e81f7c62ff90f669116f857262e9da4057ba3"},
{file = "Pillow-9.1.0-cp310-cp310-win32.whl", hash = "sha256:7a053bd4d65a3294b153bdd7724dce864a1d548416a5ef61f6d03bf149205160"},
{file = "Pillow-9.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:97bda660702a856c2c9e12ec26fc6d187631ddfd896ff685814ab21ef0597033"},
{file = "Pillow-9.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:21dee8466b42912335151d24c1665fcf44dc2ee47e021d233a40c3ca5adae59c"},
{file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b6d4050b208c8ff886fd3db6690bf04f9a48749d78b41b7a5bf24c236ab0165"},
{file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5cfca31ab4c13552a0f354c87fbd7f162a4fafd25e6b521bba93a57fe6a3700a"},
{file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed742214068efa95e9844c2d9129e209ed63f61baa4d54dbf4cf8b5e2d30ccf2"},
{file = "Pillow-9.1.0-cp37-cp37m-win32.whl", hash = "sha256:c9efef876c21788366ea1f50ecb39d5d6f65febe25ad1d4c0b8dff98843ac244"},
{file = "Pillow-9.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:de344bcf6e2463bb25179d74d6e7989e375f906bcec8cb86edb8b12acbc7dfef"},
{file = "Pillow-9.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:17869489de2fce6c36690a0c721bd3db176194af5f39249c1ac56d0bb0fcc512"},
{file = "Pillow-9.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:25023a6209a4d7c42154073144608c9a71d3512b648a2f5d4465182cb93d3477"},
{file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8782189c796eff29dbb37dd87afa4ad4d40fc90b2742704f94812851b725964b"},
{file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:463acf531f5d0925ca55904fa668bb3461c3ef6bc779e1d6d8a488092bdee378"},
{file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f42364485bfdab19c1373b5cd62f7c5ab7cc052e19644862ec8f15bb8af289e"},
{file = "Pillow-9.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3fddcdb619ba04491e8f771636583a7cc5a5051cd193ff1aa1ee8616d2a692c5"},
{file = "Pillow-9.1.0-cp38-cp38-win32.whl", hash = "sha256:4fe29a070de394e449fd88ebe1624d1e2d7ddeed4c12e0b31624561b58948d9a"},
{file = "Pillow-9.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:c24f718f9dd73bb2b31a6201e6db5ea4a61fdd1d1c200f43ee585fc6dcd21b34"},
{file = "Pillow-9.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fb89397013cf302f282f0fc998bb7abf11d49dcff72c8ecb320f76ea6e2c5717"},
{file = "Pillow-9.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c870193cce4b76713a2b29be5d8327c8ccbe0d4a49bc22968aa1e680930f5581"},
{file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69e5ddc609230d4408277af135c5b5c8fe7a54b2bdb8ad7c5100b86b3aab04c6"},
{file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35be4a9f65441d9982240e6966c1eaa1c654c4e5e931eaf580130409e31804d4"},
{file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82283af99c1c3a5ba1da44c67296d5aad19f11c535b551a5ae55328a317ce331"},
{file = "Pillow-9.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a325ac71914c5c043fa50441b36606e64a10cd262de12f7a179620f579752ff8"},
{file = "Pillow-9.1.0-cp39-cp39-win32.whl", hash = "sha256:a598d8830f6ef5501002ae85c7dbfcd9c27cc4efc02a1989369303ba85573e58"},
{file = "Pillow-9.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0c51cb9edac8a5abd069fd0758ac0a8bfe52c261ee0e330f363548aca6893595"},
{file = "Pillow-9.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a336a4f74baf67e26f3acc4d61c913e378e931817cd1e2ef4dfb79d3e051b481"},
{file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb1b89b11256b5b6cad5e7593f9061ac4624f7651f7a8eb4dfa37caa1dfaa4d0"},
{file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:255c9d69754a4c90b0ee484967fc8818c7ff8311c6dddcc43a4340e10cd1636a"},
{file = "Pillow-9.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5a3ecc026ea0e14d0ad7cd990ea7f48bfcb3eb4271034657dc9d06933c6629a7"},
{file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5b0ff59785d93b3437c3703e3c64c178aabada51dea2a7f2c5eccf1bcf565a3"},
{file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7110ec1701b0bf8df569a7592a196c9d07c764a0a74f65471ea56816f10e2c8"},
{file = "Pillow-9.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8d79c6f468215d1a8415aa53d9868a6b40c4682165b8cb62a221b1baa47db458"},
{file = "Pillow-9.1.0.tar.gz", hash = "sha256:f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97"},
{file = "Pillow-9.1.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:42dfefbef90eb67c10c45a73a9bc1599d4dac920f7dfcbf4ec6b80cb620757fe"},
{file = "Pillow-9.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffde4c6fabb52891d81606411cbfaf77756e3b561b566efd270b3ed3791fde4e"},
{file = "Pillow-9.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c857532c719fb30fafabd2371ce9b7031812ff3889d75273827633bca0c4602"},
{file = "Pillow-9.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59789a7d06c742e9d13b883d5e3569188c16acb02eeed2510fd3bfdbc1bd1530"},
{file = "Pillow-9.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d45dbe4b21a9679c3e8b3f7f4f42a45a7d3ddff8a4a16109dff0e1da30a35b2"},
{file = "Pillow-9.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e9ed59d1b6ee837f4515b9584f3d26cf0388b742a11ecdae0d9237a94505d03a"},
{file = "Pillow-9.1.1-cp310-cp310-win32.whl", hash = "sha256:b3fe2ff1e1715d4475d7e2c3e8dabd7c025f4410f79513b4ff2de3d51ce0fa9c"},
{file = "Pillow-9.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:5b650dbbc0969a4e226d98a0b440c2f07a850896aed9266b6fedc0f7e7834108"},
{file = "Pillow-9.1.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:0b4d5ad2cd3a1f0d1df882d926b37dbb2ab6c823ae21d041b46910c8f8cd844b"},
{file = "Pillow-9.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9370d6744d379f2de5d7fa95cdbd3a4d92f0b0ef29609b4b1687f16bc197063d"},
{file = "Pillow-9.1.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b761727ed7d593e49671d1827044b942dd2f4caae6e51bab144d4accf8244a84"},
{file = "Pillow-9.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a66fe50386162df2da701b3722781cbe90ce043e7d53c1fd6bd801bca6b48d4"},
{file = "Pillow-9.1.1-cp37-cp37m-win32.whl", hash = "sha256:2b291cab8a888658d72b575a03e340509b6b050b62db1f5539dd5cd18fd50578"},
{file = "Pillow-9.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:1d4331aeb12f6b3791911a6da82de72257a99ad99726ed6b63f481c0184b6fb9"},
{file = "Pillow-9.1.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8844217cdf66eabe39567118f229e275f0727e9195635a15e0e4b9227458daaf"},
{file = "Pillow-9.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b6617221ff08fbd3b7a811950b5c3f9367f6e941b86259843eab77c8e3d2b56b"},
{file = "Pillow-9.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20d514c989fa28e73a5adbddd7a171afa5824710d0ab06d4e1234195d2a2e546"},
{file = "Pillow-9.1.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:088df396b047477dd1bbc7de6e22f58400dae2f21310d9e2ec2933b2ef7dfa4f"},
{file = "Pillow-9.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53c27bd452e0f1bc4bfed07ceb235663a1df7c74df08e37fd6b03eb89454946a"},
{file = "Pillow-9.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3f6c1716c473ebd1649663bf3b42702d0d53e27af8b64642be0dd3598c761fb1"},
{file = "Pillow-9.1.1-cp38-cp38-win32.whl", hash = "sha256:c67db410508b9de9c4694c57ed754b65a460e4812126e87f5052ecf23a011a54"},
{file = "Pillow-9.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:f054b020c4d7e9786ae0404278ea318768eb123403b18453e28e47cdb7a0a4bf"},
{file = "Pillow-9.1.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:c17770a62a71718a74b7548098a74cd6880be16bcfff5f937f900ead90ca8e92"},
{file = "Pillow-9.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3f6a6034140e9e17e9abc175fc7a266a6e63652028e157750bd98e804a8ed9a"},
{file = "Pillow-9.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f372d0f08eff1475ef426344efe42493f71f377ec52237bf153c5713de987251"},
{file = "Pillow-9.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09e67ef6e430f90caa093528bd758b0616f8165e57ed8d8ce014ae32df6a831d"},
{file = "Pillow-9.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66daa16952d5bf0c9d5389c5e9df562922a59bd16d77e2a276e575d32e38afd1"},
{file = "Pillow-9.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d78ca526a559fb84faaaf84da2dd4addef5edb109db8b81677c0bb1aad342601"},
{file = "Pillow-9.1.1-cp39-cp39-win32.whl", hash = "sha256:55e74faf8359ddda43fee01bffbc5bd99d96ea508d8a08c527099e84eb708f45"},
{file = "Pillow-9.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c150dbbb4a94ea4825d1e5f2c5501af7141ea95825fadd7829f9b11c97aaf6c"},
{file = "Pillow-9.1.1-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:769a7f131a2f43752455cc72f9f7a093c3ff3856bf976c5fb53a59d0ccc704f6"},
{file = "Pillow-9.1.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:488f3383cf5159907d48d32957ac6f9ea85ccdcc296c14eca1a4e396ecc32098"},
{file = "Pillow-9.1.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b525a356680022b0af53385944026d3486fc8c013638cf9900eb87c866afb4c"},
{file = "Pillow-9.1.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6e760cf01259a1c0a50f3c845f9cad1af30577fd8b670339b1659c6d0e7a41dd"},
{file = "Pillow-9.1.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4165205a13b16a29e1ac57efeee6be2dfd5b5408122d59ef2145bc3239fa340"},
{file = "Pillow-9.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937a54e5694684f74dcbf6e24cc453bfc5b33940216ddd8f4cd8f0f79167f765"},
{file = "Pillow-9.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:baf3be0b9446a4083cc0c5bb9f9c964034be5374b5bc09757be89f5d2fa247b8"},
{file = "Pillow-9.1.1.tar.gz", hash = "sha256:7502539939b53d7565f3d11d87c78e7ec900d3c72945d4ee0e2f250d598309a0"},
]
pycparser = [
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
@@ -574,7 +576,7 @@ sortedcontainers = [
{file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"},
]
svglib = [
{file = "svglib-1.2.1.tar.gz", hash = "sha256:c77a0702fafd367c0fdca08ca1b7e1ee10058bde3bae252f49a3836e51e54519"},
{file = "svglib-1.3.0.tar.gz", hash = "sha256:a38998b95d1bb99564dc9dffaf15e4e9453761f2790d2dd4147a4ad5fbac1078"},
]
tinycss2 = [
{file = "tinycss2-1.1.1-py3-none-any.whl", hash = "sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"},
+5
View File
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
buildInputs = [ perl tk ]; # perl and wish are not run but written as shebangs.
# Workaround build failure on -fno-common toolchains:
# ld: libvars.a(vars-freeze-lex.o):src/libvars/vars-freeze-lex.l:23:
# multiple definition of `line_number'; ifm-main.o:src/ifm-main.c:46: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
enableParallelBuilding = false; # ifm-scan.l:16:10: fatal error: ifm-parse.h: No such file or directory
meta = with lib; {
+7 -1
View File
@@ -8,7 +8,13 @@ let
python = python3.override {
packageOverrides = self: super: {
# Use click 7
click = self.callPackage ../../../development/python2-modules/click/default.nix { };
click = super.click.overridePythonAttrs (old: rec {
version = "7.1.2";
src = old.src.override {
inherit version;
sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
};
});
};
};
in with python.pkgs; buildPythonApplication rec {
+34
View File
@@ -0,0 +1,34 @@
{ lib, stdenv, fetchurl, makeBinaryWrapper, jre_headless }:
stdenv.mkDerivation rec {
pname = "ltex-ls";
version = "15.2.0";
src = fetchurl {
url = "https://github.com/valentjn/ltex-ls/releases/download/${version}/ltex-ls-${version}.tar.gz";
sha256 = "sha256-ygjCFjYaP9Lc5BLuOHe5+lyaKpfDhicR783skkBgo7I=";
};
nativeBuildInputs = [ makeBinaryWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out
cp -rfv bin/ lib/ $out
rm -fv $out/bin/*.bat
for file in $out/bin/{ltex-ls,ltex-cli}; do
wrapProgram $file --set JAVA_HOME "${jre_headless}"
done
runHook postInstall
'';
meta = with lib; {
homepage = "https://valentjn.github.io/ltex/";
description = "LSP language server for LanguageTool";
license = licenses.mpl20;
maintainers = [ maintainers.marsam ];
platforms = jre_headless.meta.platforms;
};
}
+4
View File
@@ -267,6 +267,7 @@ mapAliases ({
cudnn_cudatoolkit_9_0 = throw "cudnn_cudatoolkit_9_0 has been removed in favor of newer versions"; # Added 2021-04-18
cudnn_cudatoolkit_9_1 = throw "cudnn_cudatoolkit_9_1 has been removed in favor of newer versions"; # Added 2021-04-18
cudnn_cudatoolkit_9_2 = throw "cudnn_cudatoolkit_9_2 has been removed in favor of newer versions"; # Added 2021-04-18
cura_stable = throw "cura_stable was removed because it was broken and used Python 2"; # added 2022-06-05
curl_unix_socket = throw "curl_unix_socket has been dropped due to the lack of maintanence from upstream since 2015"; # Added 2022-06-02
cutensor = throw "cutensor is now part of cudaPackages*"; # Added 2022-04-04
cutensor_cudatoolkit_10 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
@@ -1226,6 +1227,7 @@ mapAliases ({
s6Networking = throw "'s6Networking' has been renamed to/replaced by 's6-networking'"; # Converted to throw 2022-02-22
s6PortableUtils = throw "'s6PortableUtils' has been renamed to/replaced by 's6-portable-utils'"; # Converted to throw 2022-02-22
sagemath = throw "'sagemath' has been renamed to/replaced by 'sage'"; # Converted to throw 2022-02-22
salut_a_toi = throw "salut_a_toi was removed because it was broken and used Python 2"; # added 2022-06-05
sam = throw "'sam' has been renamed to/replaced by 'deadpixi-sam'"; # Converted to throw 2022-02-22
samsungUnifiedLinuxDriver = throw "'samsungUnifiedLinuxDriver' has been renamed to/replaced by 'samsung-unified-linux-driver'"; # Converted to throw 2022-02-22
sane-backends-git = sane-backends; # Added 2021-02-19
@@ -1354,6 +1356,7 @@ mapAliases ({
tex-gyre-pagella-math = throw "'tex-gyre-pagella-math' has been renamed to/replaced by 'tex-gyre-math.pagella'"; # Converted to throw 2022-02-22
tex-gyre-schola-math = throw "'tex-gyre-schola-math' has been renamed to/replaced by 'tex-gyre-math.schola'"; # Converted to throw 2022-02-22
tex-gyre-termes-math = throw "'tex-gyre-termes-math' has been renamed to/replaced by 'tex-gyre-math.termes'"; # Converted to throw 2022-02-22
textadept11 = textadept; # Added 2022-06-07
tftp_hpa = throw "'tftp_hpa' has been renamed to/replaced by 'tftp-hpa'"; # Converted to throw 2022-02-22
thunderbird-68 = throw "Thunderbird 68 reached end of life with its final release 68.12.0 on 2020-08-25";
thunderbird-bin-68 = thunderbird-68;
@@ -1587,6 +1590,7 @@ mapAliases ({
todolist = throw "todolist is now ultralist"; # Added 2020-12-27
tor-browser-bundle = throw "tor-browser-bundle was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead"; # Added 2020-01-10
tor-browser-unwrapped = throw "tor-browser-unwrapped was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead"; # Added 2020-01-10
torchat = throw "torchat was removed because it was broken and requires Python 2"; # added 2022-06-05
ttyrec = ovh-ttyrec; # Added 2021-01-02
zplugin = zinit; # Added 2021-01-30
+9 -10
View File
@@ -386,6 +386,8 @@ with pkgs;
eclipse-mat = callPackage ../development/tools/eclipse-mat { };
efficient-compression-tool = callPackage ../tools/compression/efficient-compression-tool { };
evans = callPackage ../development/tools/evans { };
firefly-desktop = callPackage ../applications/misc/firefly-desktop { };
@@ -4757,6 +4759,8 @@ with pkgs;
evdevremapkeys = callPackage ../tools/inputmethods/evdevremapkeys { };
persistent-evdev = python3Packages.callPackage ../servers/persistent-evdev { };
evscript = callPackage ../tools/inputmethods/evscript { };
gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { stdenv = gcc10StdenvCompat; };
@@ -10104,8 +10108,6 @@ with pkgs;
salt = callPackage ../tools/admin/salt {};
salut_a_toi = callPackage ../applications/networking/instant-messengers/salut-a-toi {};
samim-fonts = callPackage ../data/fonts/samim-fonts {};
saml2aws = callPackage ../tools/security/saml2aws {
@@ -25241,9 +25243,7 @@ with pkgs;
atlassian-cli = callPackage ../applications/office/atlassian-cli { };
atomEnv = callPackage ../applications/editors/atom/env.nix {
gconf = gnome2.GConf;
};
atomEnv = callPackage ../applications/editors/atom/env.nix { };
atomPackages = dontRecurseIntoAttrs (callPackage ../applications/editors/atom { });
@@ -25869,6 +25869,8 @@ with pkgs;
dr14_tmeter = callPackage ../applications/audio/dr14_tmeter { };
dragonflydb = callPackage ../servers/nosql/dragonflydb { };
dragonfly-reverb = callPackage ../applications/audio/dragonfly-reverb { };
drawing = callPackage ../applications/graphics/drawing { };
@@ -27893,6 +27895,8 @@ with pkgs;
lsp-plugins = callPackage ../applications/audio/lsp-plugins { php = php74; };
ltex-ls = callPackage ../tools/text/ltex-ls { };
luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
lxdvdrip = callPackage ../applications/video/lxdvdrip { };
@@ -29653,9 +29657,6 @@ with pkgs;
};
curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
cura_stable = callPackage ../applications/misc/cura/stable.nix {
curaengine = curaengine_stable;
};
curaengine = callPackage ../applications/misc/curaengine { inherit (python3.pkgs) libarcus; };
@@ -30073,8 +30074,6 @@ with pkgs;
topydo = callPackage ../applications/misc/topydo {};
torchat = callPackage ../applications/networking/instant-messengers/torchat { };
torrential = callPackage ../applications/networking/p2p/torrential { };
tortoisehg = callPackage ../applications/version-management/tortoisehg { };
-34
View File
@@ -18,8 +18,6 @@ with self; with super; {
cheetah = callPackage ../development/python2-modules/cheetah { };
click = callPackage ../development/python2-modules/click { };
configparser = callPackage ../development/python2-modules/configparser { };
construct = callPackage ../development/python2-modules/construct { };
@@ -28,18 +26,10 @@ with self; with super; {
coverage = callPackage ../development/python2-modules/coverage { };
cryptography = callPackage ../development/python2-modules/cryptography { };
decorator = callPackage ../development/python2-modules/decorator { };
enum = callPackage ../development/python2-modules/enum { };
filelock = callPackage ../development/python2-modules/filelock { };
flask = callPackage ../development/python2-modules/flask { };
freezegun = callPackage ../development/python2-modules/freezegun { };
futures = callPackage ../development/python2-modules/futures { };
google-apputils = callPackage ../development/python2-modules/google-apputils { };
@@ -54,16 +44,8 @@ with self; with super; {
importlib-metadata = callPackage ../development/python2-modules/importlib-metadata { };
ipaddr = callPackage ../development/python2-modules/ipaddr { };
itsdangerous = callPackage ../development/python2-modules/itsdangerous { };
jinja2 = callPackage ../development/python2-modules/jinja2 { };
libcloud = callPackage ../development/python2-modules/libcloud { };
lpod = callPackage ../development/python2-modules/lpod { };
marisa = callPackage ../development/python2-modules/marisa {
inherit (pkgs) marisa;
};
@@ -110,8 +92,6 @@ with self; with super; {
pygtk = callPackage ../development/python2-modules/pygtk { };
pyjwt = callPackage ../development/python2-modules/pyjwt { };
pyparsing = callPackage ../development/python2-modules/pyparsing { };
pyroma = callPackage ../development/python2-modules/pyroma { };
@@ -160,20 +140,6 @@ with self; with super; {
typing = callPackage ../development/python2-modules/typing { };
urllib3 = callPackage ../development/python2-modules/urllib3 { };
werkzeug = callPackage ../development/python2-modules/werkzeug { };
wsproto = callPackage ../development/python2-modules/wsproto { };
wxPython30 = callPackage ../development/python2-modules/wxPython {
wxGTK = pkgs.wxGTK30;
};
wxPython = self.wxPython30;
vcrpy = callPackage ../development/python2-modules/vcrpy { };
zeek = disabled super.zeek;
zipp = callPackage ../development/python2-modules/zipp { };