Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-02-09 00:36:17 +00:00 committed by GitHub
commit 5704fd1095
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 509 additions and 295 deletions

View file

@ -9,7 +9,15 @@ Platform-specific code is in the respective default.nix files.
{ config, lib, options, pkgs, ... }: { config, lib, options, pkgs, ... }:
let let
inherit (lib) mkOption mkIf types filterAttrs literalExample mkRenamedOptionModule; inherit (lib)
filterAttrs
literalExample
mkIf
mkOption
mkRemovedOptionModule
mkRenamedOptionModule
types
;
cfg = cfg =
config.services.hercules-ci-agent; config.services.hercules-ci-agent;
@ -77,10 +85,11 @@ let
}; };
}; };
# TODO (2022) remove
checkNix = checkNix =
if !cfg.checkNix if !cfg.checkNix
then "" then ""
else if lib.versionAtLeast config.nix.package.version "2.4.0" else if lib.versionAtLeast config.nix.package.version "2.3.10"
then "" then ""
else pkgs.stdenv.mkDerivation { else pkgs.stdenv.mkDerivation {
name = "hercules-ci-check-system-nix-src"; name = "hercules-ci-check-system-nix-src";
@ -88,23 +97,12 @@ let
configurePhase = ":"; configurePhase = ":";
buildPhase = '' buildPhase = ''
echo "Checking in-memory pathInfoCache expiry" echo "Checking in-memory pathInfoCache expiry"
if ! grep 'struct PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then if ! grep 'PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then
cat 1>&2 <<EOF cat 1>&2 <<EOF
You are deploying Hercules CI Agent on a system with an incompatible You are deploying Hercules CI Agent on a system with an incompatible
nix-daemon. Please nix-daemon. Please make sure nix.package is set to a Nix version of at
- either upgrade Nix to version 2.4.0 (when released), least 2.3.10 or a master version more recent than Mar 12, 2020.
- or set option services.hercules-ci-agent.patchNix = true;
- or set option nix.package to a build of Nix 2.3 with this patch applied:
https://github.com/NixOS/nix/pull/3405
The patch is required for Nix-daemon clients that expect a change in binary
cache contents while running, like the agent's evaluator. Without it, import
from derivation will fail if your cluster has more than one machine.
We are conservative with changes to the overall system, which is why we
keep changes to a minimum and why we ask for confirmation in the form of
services.hercules-ci-agent.patchNix = true before applying.
EOF EOF
exit 1 exit 1
fi fi
@ -112,26 +110,13 @@ let
installPhase = "touch $out"; installPhase = "touch $out";
}; };
patchedNix = lib.mkIf (!lib.versionAtLeast pkgs.nix.version "2.4.0") (
if lib.versionAtLeast pkgs.nix.version "2.4pre"
then lib.warn "Hercules CI Agent module will not patch 2.4 pre-release. Make sure it includes (equivalently) PR #3043, commit d048577909 or is no older than 2020-03-13." pkgs.nix
else pkgs.nix.overrideAttrs (
o: {
patches = (o.patches or []) ++ [ backportNix3398 ];
}
)
);
backportNix3398 = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/hercules-ci/hercules-ci-agent/hercules-ci-agent-0.7.3/for-upstream/issue-3398-path-info-cache-ttls-backport-2.3.patch";
sha256 = "0jfckqjir9il2il7904yc1qyadw366y7xqzg81sp9sl3f1pw70ib";
};
in in
{ {
imports = [ imports = [
(mkRenamedOptionModule ["services" "hercules-ci-agent" "extraOptions"] ["services" "hercules-ci-agent" "settings"]) (mkRenamedOptionModule ["services" "hercules-ci-agent" "extraOptions"] ["services" "hercules-ci-agent" "settings"])
(mkRenamedOptionModule ["services" "hercules-ci-agent" "baseDirectory"] ["services" "hercules-ci-agent" "settings" "baseDirectory"]) (mkRenamedOptionModule ["services" "hercules-ci-agent" "baseDirectory"] ["services" "hercules-ci-agent" "settings" "baseDirectory"])
(mkRenamedOptionModule ["services" "hercules-ci-agent" "concurrentTasks"] ["services" "hercules-ci-agent" "settings" "concurrentTasks"]) (mkRenamedOptionModule ["services" "hercules-ci-agent" "concurrentTasks"] ["services" "hercules-ci-agent" "settings" "concurrentTasks"])
(mkRemovedOptionModule ["services" "hercules-ci-agent" "patchNix"] "Nix versions packaged in this version of Nixpkgs don't need a patched nix-daemon to work correctly in Hercules CI Agent clusters.")
]; ];
options.services.hercules-ci-agent = { options.services.hercules-ci-agent = {
@ -147,15 +132,6 @@ in
Support is available at <link xlink:href="mailto:help@hercules-ci.com">help@hercules-ci.com</link>. Support is available at <link xlink:href="mailto:help@hercules-ci.com">help@hercules-ci.com</link>.
''; '';
}; };
patchNix = mkOption {
type = types.bool;
default = false;
description = ''
Fix Nix 2.3 cache path metadata caching behavior. Has the effect of <literal>nix.package = patch pkgs.nix;</literal>
This option will be removed when Hercules CI Agent moves to Nix 2.4 (upcoming Nix release).
'';
};
checkNix = mkOption { checkNix = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -206,7 +182,6 @@ in
# even shortly after the previous lookup. This *also* applies to the daemon. # even shortly after the previous lookup. This *also* applies to the daemon.
narinfo-cache-negative-ttl = 0 narinfo-cache-negative-ttl = 0
''; '';
nix.package = mkIf cfg.patchNix patchedNix;
services.hercules-ci-agent.tomlFile = services.hercules-ci-agent.tomlFile =
format.generate "hercules-ci-agent.toml" cfg.settings; format.generate "hercules-ci-agent.toml" cfg.settings;
}; };

View file

@ -87,6 +87,7 @@ in
NoNewPrivileges = true; NoNewPrivileges = true;
NonBlocking = true; NonBlocking = true;
PrivateDevices = true; PrivateDevices = true;
ProtectClock = true;
ProtectControlGroups = true; ProtectControlGroups = true;
ProtectHome = true; ProtectHome = true;
ProtectHostname = true; ProtectHostname = true;
@ -107,8 +108,13 @@ in
SystemCallFilter = [ SystemCallFilter = [
"@system-service" "@system-service"
"@chown" "@chown"
"~@aio"
"~@keyring"
"~@memlock"
"~@resources" "~@resources"
"@privileged" "~@setuid"
"~@sync"
"~@timer"
]; ];
}; };
}; };

View file

@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "clipcat"; pname = "clipcat";
version = "0.4.19"; version = "0.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xrelkd"; owner = "xrelkd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1lhnm521qqy3aw2iyk1dv4yc5ms0c5x5iipx96bz6v6y0cnmf4kw"; sha256 = "0rxl3ksjinw07q3p2vjqg80k3c6wx2q7pzpf2344zyfb4gkqzx1c";
}; };
cargoSha256 = "04iflyvz8g53z658rkxafiyi2m9kzxwl3p1xgkjq7vacmz5jk15c"; cargoSha256 = "1ffgvhkdj8wkhlgi0cj0njdm9ycxq2qda4b5qn8bmaygzr2zkwpd";
LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
@ -38,26 +38,15 @@ rustPlatform.buildRustPackage rec {
cargoBuildFlags = [ "--features=all" ]; cargoBuildFlags = [ "--features=all" ];
postInstall = '' postInstall = ''
installShellCompletion --bash --name clipcatd completions/bash-completion/completions/clipcatd installShellCompletion --bash completions/bash-completion/completions/*
installShellCompletion --fish --name clipcatd.fish completions/fish/completions/clipcatd.fish installShellCompletion --fish completions/fish/completions/*
installShellCompletion --zsh --name _clipcatd completions/zsh/site-functions/_clipcatd installShellCompletion --zsh completions/zsh/site-functions/*
installShellCompletion --bash --name clipcatctl completions/bash-completion/completions/clipcatctl
installShellCompletion --fish --name clipcatctl.fish completions/fish/completions/clipcatctl.fish
installShellCompletion --zsh --name _clipcatctl completions/zsh/site-functions/_clipcatctl
installShellCompletion --bash --name clipcat-menu completions/bash-completion/completions/clipcat-menu
installShellCompletion --fish --name clipcat-menu.fish completions/fish/completions/clipcat-menu.fish
installShellCompletion --zsh --name _clipcat-menu completions/zsh/site-functions/_clipcat-menu
installShellCompletion --bash --name clipcat-notify completions/bash-completion/completions/clipcat-notify
installShellCompletion --fish --name clipcat-notify.fish completions/fish/completions/clipcat-notify.fish
installShellCompletion --zsh --name _clipcat-notify completions/zsh/site-functions/_clipcat-notify
''; '';
meta = with lib; { meta = with lib; {
description = "Clipboard Manager written in Rust Programming Language"; description = "Clipboard Manager written in Rust Programming Language";
license = licenses.gpl3; homepage = "https://github.com/xrelkd/clipcat";
license = licenses.gpl3Only;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ xrelkd ]; maintainers = with maintainers; [ xrelkd ];
}; };

View file

@ -19,16 +19,16 @@ let
maintainers = with maintainers; [ emmanuelrosa dtzWill ]; maintainers = with maintainers; [ emmanuelrosa dtzWill ];
}; };
version = "0.43.3"; version = "0.43.4";
desktopSource = { desktopSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
sha256 = "1k9vcs7pwa89bzivqp0gfs45jzqw216fpypg3ja4n2dzn4qkv2as"; sha256 = "0kjysam5alsmnj93fcqq1ivawnra42gn7dch99rrfmvbkxp7hhr8";
}; };
serverSource = { serverSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz"; url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
sha256 = "1n3v7wdav6mvgcy72mmfhncsa74i0ax1ij5rjczgfjjyiyc5y0rk"; sha256 = "128mvmp15mjpb5ipkmr0yn7ahby26shbix3f8q094f4zpxjp83zx";
}; };
in { in {

View file

@ -1,6 +1,6 @@
source $stdenv/setup source $stdenv/setup
(echo '#!/usr/bin/env sh'; \ (echo "#!$SHELL"; \
echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"') > ssh echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"') > ssh
chmod +x ssh chmod +x ssh
export CVS_RSH=$PWD/ssh export CVS_RSH=$PWD/ssh

View file

@ -1,26 +1,16 @@
{ stdenv, lib, fetchurl, fetchpatch }: { stdenv, lib, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libhugetlbfs"; pname = "libhugetlbfs";
version = "2.22"; version = "2.23";
src = fetchurl { src = fetchurl {
url = "https://github.com/libhugetlbfs/libhugetlbfs/releases/download/${version}/libhugetlbfs-${version}.tar.gz"; url = "https://github.com/libhugetlbfs/libhugetlbfs/releases/download/${version}/libhugetlbfs-${version}.tar.gz";
sha256 = "11b7k8xvgx68rjzidm12a6l6b23hwi7hj149y9xxfz2j5kmakp4l"; sha256 = "0ya4q001g111d3pqlzrf3yaifadl0ccirx5dndz1pih7x3qp41mp";
}; };
outputs = [ "bin" "dev" "man" "doc" "lib" "out" ]; outputs = [ "bin" "dev" "man" "doc" "lib" "out" ];
patches = [
# Don't check that 32-bit and 64-bit libraries don't get installed
# to the same place if only one platform is being built for.
# Can be removed if build succeeds without it.
(fetchpatch {
url = "https://groups.google.com/forum/message/raw?msg=libhugetlbfs/IswjDAygfwA/PKy7MZbVAAAJ";
sha256 = "00fyrhn380d6swil8pcf4x0krl1113ghswrvjn3m9czc3h4p385a";
})
];
postConfigure = '' postConfigure = ''
patchShebangs ld.hugetlbfs patchShebangs ld.hugetlbfs
''; '';
@ -34,8 +24,8 @@ stdenv.mkDerivation rec {
"LIBDIR64=$(lib)/$(LIB64)" "LIBDIR64=$(lib)/$(LIB64)"
"EXEDIR=$(bin)/bin" "EXEDIR=$(bin)/bin"
"DOCDIR=$(doc)/share/doc/libhugetlbfs" "DOCDIR=$(doc)/share/doc/libhugetlbfs"
] ++ map (n: "MANDIR${n}=$(man)/share/man/man${n}") "MANDIR=$(man)/share/man"
(lib.genList (n: toString (n + 1)) 8); ];
# Default target builds tests as well, and the tests want a static # Default target builds tests as well, and the tests want a static
# libc. # libc.

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "openxr-loader"; pname = "openxr-loader";
version = "1.0.13"; version = "1.0.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "KhronosGroup"; owner = "KhronosGroup";
repo = "OpenXR-SDK-Source"; repo = "OpenXR-SDK-Source";
rev = "release-${version}"; rev = "release-${version}";
sha256 = "0znhv7x81bvqijk5xhc5w760d5yy6vr5c2y271wpk9lkmxbbcpl1"; sha256 = "sha256-ZmaxHm4MPd2q83PLduoavoynqRPEI79IpMfW32gkV14=";
}; };
nativeBuildInputs = [ cmake python3 ]; nativeBuildInputs = [ cmake python3 ];

View file

@ -0,0 +1,32 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, pyvex
}:
buildPythonPackage rec {
pname = "ailment";
version = "9.0.5739";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "angr";
repo = pname;
rev = "v${version}";
sha256 = "1fjwksia6h7w7m5zhys65yr4zxvyfgp9hr1k5dn802p9kvz34bpc";
};
propagatedBuildInputs = [ pyvex ];
# Tests depend on angr (possibly a circular dependency)
doCheck = false;
#pythonImportsCheck = [ "ailment" ];
meta = with lib; {
description = "The angr Intermediate Language";
homepage = "https://github.com/angr/ailment";
license = with licenses; [ bsd2 ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -7,13 +7,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "archinfo"; pname = "archinfo";
version = "9.0.5610"; version = "9.0.5739";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "angr"; owner = "angr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-YlqCRLx8mqHXMKPCWqcGvHxRBGOxbwMZWPEDX/jEDdI="; sha256 = "sha256-6qjX0r2vLYgJdrKBVKedplfa1yhWv9tBvTu5BsViXBc=";
}; };
checkInputs = [ checkInputs = [

View file

@ -1,35 +1,69 @@
{ lib, stdenv { autoPatchelfHook
, buildPythonPackage , buildPythonPackage
, cmake , cmake
, fetchPypi , cython
, fetchFromGitHub
, h3 , h3
, python , lib
, numpy
, pytestCheckHook
, scikit-build
, stdenv
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "h3"; pname = "h3";
version = "3.7.0"; version = "3.7.1";
src = fetchPypi { # pypi version does not include tests
inherit pname version; src = fetchFromGitHub {
sha256 = "cd27fc8ecd9183f93934079b7c986401f499030ff2e2171eace9de462fab561d"; owner = "uber";
repo = "h3-py";
rev = "v${version}";
sha256 = "sha256-MIVV3kZGsIsaJ/ccJOK3+j1VwkUsZGHS5d1sGOBa1Ec=";
}; };
patches = [ dontConfigure = true;
./disable-custom-install.patch
./hardcode-h3-path.patch checkInputs = [ pytestCheckHook ];
nativeBuildInputs = [
scikit-build cmake cython
] ++ lib.optionals stdenv.hostPlatform.isLinux [
# On Linux the .so files ends up referring to libh3.so instead of the full
# Nix store path. I'm not sure why this is happening! On Darwin it works
# fine.
autoPatchelfHook
]; ];
preBuild = '' # This is not needed per-se, it's only added for autoPatchelfHook to work
substituteInPlace h3/h3.py \ # correctly. See the note above ^^
--subst-var-by libh3_path ${h3}/lib/libh3${stdenv.hostPlatform.extensions.sharedLibrary} buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ h3 ];
'';
propagatedBuildInputs = [ numpy ];
# The following prePatch replaces the h3lib compilation with using the h3 packaged in nixpkgs.
#
# - Remove the h3lib submodule.
# - Patch CMakeLists to avoid building h3lib, and use h3 instead.
prePatch =
let
cmakeCommands = ''
include_directories(${h3}/include/h3)
link_directories(${h3}/lib)
'';
in ''
rm -r src/h3lib
substituteInPlace CMakeLists.txt --replace "add_subdirectory(src/h3lib)" "${cmakeCommands}"
'';
# Extra check to make sure we can import it from Python
pythonImportsCheck = [ "h3" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/uber/h3-py"; homepage = "https://github.com/uber/h3-py";
description = "This library provides Python bindings for the H3 Core Library."; description = "Hierarchical hexagonal geospatial indexing system";
license = licenses.asl20; license = licenses.asl20;
platforms = platforms.unix ++ platforms.darwin;
maintainers = [ maintainers.kalbasit ]; maintainers = [ maintainers.kalbasit ];
}; };
} }

View file

@ -1,41 +0,0 @@
diff --git a/setup.py b/setup.py
index 8e1c220..45297b6 100644
--- a/setup.py
+++ b/setup.py
@@ -25,20 +25,6 @@ class CustomBuildExtCommand(build_ext):
install_h3(h3_version)
-# Tested with wheel v0.29.0
-class BinaryDistribution(Distribution):
- def __init__(self, attrs=None):
- Distribution.__init__(self, attrs)
- # The values used for the name and sources in the Extension below are
- # not important, because we override the build_ext command above.
- # The normal C extension building logic is never invoked, and is
- # replaced with our own custom logic. However, ext_modules cannot be
- # empty, because this signals to other parts of distutils that our
- # package contains C extensions and thus needs to be built for
- # different platforms separately.
- self.ext_modules = [Extension('h3c', [])]
-
-
long_description = open('README.rst').read()
setup(
@@ -52,14 +38,10 @@ setup(
url='https://github.com/uber/h3-py.git',
packages=find_packages(exclude=['tests', 'tests.*']),
install_requires=[],
- cmdclass={
- 'build_ext': CustomBuildExtCommand,
- },
package_data={
'h-py':
['out/*.dylib' if platform.system() == 'Darwin' else (
'out/*.dll' if platform.system() == 'Windows' else
'out/*.so.*')]
},
- license='Apache License 2.0',
- distclass=BinaryDistribution)
+ license='Apache License 2.0')

View file

@ -1,19 +0,0 @@
diff --git a/h3/h3.py b/h3/h3.py
index 18cf168..2cc7812 100644
--- a/h3/h3.py
+++ b/h3/h3.py
@@ -34,13 +34,7 @@ from ctypes import (
POINTER,
)
-_dirname = os.path.dirname(__file__)
-libh3_path = ('{}/{}'.format(_dirname, 'out/libh3.1.dylib')
- if platform.system() == 'Darwin' else (
- '{}/{}'.format(_dirname, 'out/h3.dll') if platform.system() == 'Windows' else
- '{}/{}'.format(_dirname, 'out/libh3.so.1')))
-
-libh3 = cdll.LoadLibrary(libh3_path)
+libh3 = cdll.LoadLibrary('@libh3_path@')
# Type of an H3 index
H3Index = c_ulonglong

View file

@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchPypi
, netifaces
, paho-mqtt
, pycryptodome
, requests
, six
, zeroconf
}:
buildPythonPackage rec {
pname = "libpurecool";
version = "0.6.4";
src = fetchPypi {
inherit pname version;
sha256 = "1kwbinbg0i4fca1bpx6jwa1fiw71vg0xa89jhq4pmnl5cn9c8kqx";
};
# Remove vendorized zeroconf, https://github.com/etheralm/libpurecool/issues/33
postPatch = ''
rm libpurecool/zeroconf.py
substituteInPlace libpurecool/dyson_pure_cool_link.py \
--replace "from .zeroconf import ServiceBrowser, Zeroconf" "from zeroconf import ServiceBrowser, Zeroconf"
'';
propagatedBuildInputs = [
netifaces
paho-mqtt
pycryptodome
requests
six
zeroconf
];
# Tests are only present in repo, https://github.com/etheralm/libpurecool/issues/36
doCheck = false;
pythonImportsCheck = [ "libpurecool" ];
meta = with lib; {
description = "Python library for Dyson devices";
homepage = "http://libpurecool.readthedocs.io";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -49,6 +49,5 @@ buildPythonPackage rec {
homepage = "https://github.com/multiformats/py-multihash"; homepage = "https://github.com/multiformats/py-multihash";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ rakesh4g ]; maintainers = with maintainers; [ rakesh4g ];
broken = true; # no longer compatible with base58, no updates in 5 years. Added 2020-11-05
}; };
} }

View file

@ -0,0 +1,39 @@
{ lib
, archinfo
, bitstring
, fetchPypi
, cffi
, buildPythonPackage
, future
, pycparser
}:
buildPythonPackage rec {
pname = "pyvex";
version = "9.0.5739";
src = fetchPypi {
inherit pname version;
sha256 = "1jwxxw2kw7wkz7kh8m8vbavzw6m5k6xph7mazfn3k2qbsshh3lk3";
};
propagatedBuildInputs = [
archinfo
bitstring
cffi
future
pycparser
];
# No tests are available on PyPI, GitHub release has tests
# Switch to GitHub release after all angr parts are present
doCheck = false;
pythonImportsCheck = [ "pyvex" ];
meta = with lib; {
description = "Python interface to libVEX and VEX IR";
homepage = "https://github.com/angr/pyvex";
license = with licenses; [ bsd2 gpl3Plus lgpl3Plus ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -15,12 +15,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sqlite-utils"; pname = "sqlite-utils";
version = "3.3"; version = "3.4.1";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1linla3za1gb3w0n0k6h3q8in62qhipizff259p14gzmyr95rjjv"; sha256 = "sha256-LJuvUTbsL2anQENEuW1oaSUsMEiXnSgLEAhZ6EP5bNs=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -0,0 +1,50 @@
{ stdenv, lib, fetchzip, substituteAll, bash, jre }:
stdenv.mkDerivation rec {
pname = "bonnmotion";
version = "3.0.1";
src = fetchzip {
url = "https://sys.cs.uos.de/bonnmotion/src/bonnmotion-${version}.zip";
sha256 = "16bjgr0hy6an892m5r3x9yq6rqrl11n91f9rambq5ik1cxjqarxw";
};
patches = [
# The software has a non-standard install bash script which kind of works.
# However, to make it fully functional, the automatically detection of the
# program paths must be substituted with full paths.
(substituteAll {
src = ./install.patch;
inherit bash jre;
})
];
installPhase = ''
runHook preInstall
./install
mkdir -p $out/bin $out/share/bonnmotion
cp -r ./classes ./lib $out/share/bonnmotion/
cp ./bin/bm $out/bin/
substituteInPlace $out/bin/bm \
--replace /build/source $out/share/bonnmotion
runHook postInstall
'';
meta = with lib; {
description = "A mobility scenario generation and analysis tool";
longDescription = ''
BonnMotion is a Java software which creates and analyzes mobility
scenarios and is most commonly used as a tool for the investigation of
mobile ad hoc network characteristics. The scenarios can also be exported
for several network simulators, such as ns-2, ns-3, GloMoSim/QualNet,
COOJA, MiXiM, and ONE.
'';
homepage = "https://sys.cs.uos.de/bonnmotion/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ oxzi ];
};
}

View file

@ -0,0 +1,75 @@
diff --git a/install b/install
index 95afa2c..70c5fca 100755
--- a/install
+++ b/install
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!@bash@/bin/bash
echo "BonnMotion - a mobility scenario generation and analysis tool"
echo "Copyright (C) 2002-2012 University of Bonn"
@@ -19,28 +19,11 @@ echo "along with this program; if not, write to the Free Software"
echo "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
echo
-OS=`uname -s | tr A-Z a-z | sed -e s/_.\*//`
-
PACKAGE=edu.bonn.cs.iv.bonnmotion
-JAVAPATH=`which java 2> /dev/null`
-if [ ! "$JAVAPATH" = "" ]
-then
- JAVAPATH=`dirname ${JAVAPATH}`
-fi
-echo -n Please enter your Java binary path \[$JAVAPATH\]:\
-read KBDENTRY
-if [ ! "$KBDENTRY" = "" ]
-then
- JAVAPATH=$KBDENTRY
-fi
+JAVAPATH="@jre@/bin"
if [ -x "${JAVAPATH}/java" ]
then
- cd `dirname $0`
- BONNMOTION=`pwd`
-
- cd "${JAVAPATH}"
- JAVAPATH=`pwd`
- cd "${BONNMOTION}"
+ BONNMOTION="$(realpath .)"
CLASSPATH="${BONNMOTION}/classes"
DOCPATH="${BONNMOTION}/javadoc"
@@ -52,14 +35,7 @@ then
then
mkdir "${DOCPATH}"
fi
- if [ $OS = "cygwin" ]
- then
- cd "${CLASSPATH}"
- CLASSPATH=`cmd.exe /c cd`
- cd "${DOCPATH}"
- DOCPATH=`cmd.exe /c cd`
- fi
-
+
for l in $BONNMOTION/lib/*.jar
do
LIBRARYPATH=$LIBRARYPATH:$l
@@ -69,7 +45,7 @@ then
APPS=`ls`
cd "${BONNMOTION}/bin"
- echo \#\!/bin/bash > .head
+ echo \#\!@bash@/bin/bash > .head
echo >> .head
echo BONNMOTION=\"$BONNMOTION\" >> .head
echo PACKAGE=\"$PACKAGE\" >> .head
@@ -103,8 +79,6 @@ then
fi
echo "done."
echo
- echo "$ ./bin/bm -h"
- ./bm
else
echo No executable \"$JAVAPATH/java\", aborting.
fi

View file

@ -16,14 +16,14 @@
mkDerivation rec { mkDerivation rec {
pname = "ppsspp"; pname = "ppsspp";
version = "1.10.3"; version = "1.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hrydgard"; owner = "hrydgard";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "sha256-W41Poq5S+opkasIGYo13SQZWQF1HjfFnH7u9DW5HNA0="; sha256 = "19948jzqpclf8zfzp3k7s580xfjgqcyfwlcp7x7xj8h8lyypzymx";
}; };
postPatch = '' postPatch = ''

View file

@ -2,12 +2,12 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "firmware-linux-nonfree"; pname = "firmware-linux-nonfree";
version = "2020-12-18"; version = "2021-02-08";
src = fetchgit { src = fetchgit {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"; url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
rev = lib.replaceStrings ["-"] [""] version; rev = lib.replaceStrings ["-"] [""] version;
sha256 = "1rb5b3fzxk5bi6kfqp76q1qszivi0v1kdz1cwj2llp5sd9ns03b5"; sha256 = "0c85cd659312isfz1r87qswsgfhy0rljagcwspnvjljqrh9bsgzq";
}; };
installFlags = [ "DESTDIR=$(out)" ]; installFlags = [ "DESTDIR=$(out)" ];
@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
outputHashMode = "recursive"; outputHashMode = "recursive";
outputHashAlgo = "sha256"; outputHashAlgo = "sha256";
outputHash = "1p7vn2hfwca6w69jhw5zq70w44ji8mdnibm1z959aalax6ndy146"; outputHash = "0l4xsgxdvjffad7a98n42nyqy3ihs6m6hy3qsfkqin9z10413x5n";
meta = with lib; { meta = with lib; {
description = "Binary firmware collection packaged by kernel.org"; description = "Binary firmware collection packaged by kernel.org";

View file

@ -1,26 +1,26 @@
{ {
"4.14": { "4.14": {
"extra": "-hardened1", "extra": "-hardened1",
"name": "linux-hardened-4.14.219-hardened1.patch", "name": "linux-hardened-4.14.220-hardened1.patch",
"sha256": "0pgpb7phjgil01xbpwqdwyk8k3pv5qlikw4721cmy10aj97plpqw", "sha256": "083jc9lwr8lwxyfk4r39jcncf2g89srd50crj17jw9ysrp1jpyks",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.219-hardened1/linux-hardened-4.14.219-hardened1.patch" "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.220-hardened1/linux-hardened-4.14.220-hardened1.patch"
}, },
"4.19": { "4.19": {
"extra": "-hardened1", "extra": "-hardened1",
"name": "linux-hardened-4.19.173-hardened1.patch", "name": "linux-hardened-4.19.174-hardened1.patch",
"sha256": "19ikdwvp3mjh6cl2anhlpzmk1ha4lw1lf9rmvls7pzc7d1bmlwi0", "sha256": "1ggh7rjqm68gih41a9z2pzm1wm483165lvmigdp604p152157974",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.173-hardened1/linux-hardened-4.19.173-hardened1.patch" "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.174-hardened1/linux-hardened-4.19.174-hardened1.patch"
}, },
"5.10": { "5.10": {
"extra": "-hardened1", "extra": "-hardened1",
"name": "linux-hardened-5.10.13-hardened1.patch", "name": "linux-hardened-5.10.14-hardened1.patch",
"sha256": "1pn6ddkpairsij8p5130h8iwqq65v6ngn0c3pf6rlavy4az1sw82", "sha256": "1l84hmwdkyd1nkby0w7vy9j0jhg866bpiw6hriav208dw2r0binx",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.13-hardened1/linux-hardened-5.10.13-hardened1.patch" "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.14-hardened1/linux-hardened-5.10.14-hardened1.patch"
}, },
"5.4": { "5.4": {
"extra": "-hardened1", "extra": "-hardened1",
"name": "linux-hardened-5.4.95-hardened1.patch", "name": "linux-hardened-5.4.96-hardened1.patch",
"sha256": "04c54xk75gb4p4yfrmjam25jafqz47cqapr38jw2v1plwc98ng4m", "sha256": "05cb303llr2m5ik5f4v5ykr8ycldkrdb8gvjdr02zm8g0as7agil",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.95-hardened1/linux-hardened-5.4.95-hardened1.patch" "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.96-hardened1/linux-hardened-5.4.96-hardened1.patch"
} }
} }

View file

@ -3,7 +3,7 @@
with lib; with lib;
buildLinux (args // rec { buildLinux (args // rec {
version = "4.14.219"; version = "4.14.220";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed # modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "1p81p2g1dax225mbc704g1yl96i93nq19j9fpkrzr4f066kwmvkm"; sha256 = "1qip0c8nvfximgg4fj9xai741cgvi9f141bsps3zmrryjd796i6h";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -3,7 +3,7 @@
with lib; with lib;
buildLinux (args // rec { buildLinux (args // rec {
version = "4.19.173"; version = "4.19.174";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed # modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "0pqr8k0kfnaklb31y29xvqdmgn0pak4qd9pl77lsh6pkwqvd5zfj"; sha256 = "1rcy0hfbc3ny52mfrfysknm1q2scqz0g8l28j0qlyw8cx41wgxhg";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -1,11 +1,11 @@
{ buildPackages, fetchurl, perl, buildLinux, ... } @ args: { buildPackages, fetchurl, perl, buildLinux, ... } @ args:
buildLinux (args // rec { buildLinux (args // rec {
version = "4.4.255"; version = "4.4.256";
extraMeta.branch = "4.4"; extraMeta.branch = "4.4";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "0l45csywd30qrs8gwzjjijr5hwpd5s05rbyrxb37vck78znk0f1g"; sha256 = "1z7vfy4h0mjvv0rcvvpb55x5fl16c6cgpcafz5gpjp0pw1p2lva8";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -1,11 +1,11 @@
{ buildPackages, fetchurl, perl, buildLinux, ... } @ args: { buildPackages, fetchurl, perl, buildLinux, ... } @ args:
buildLinux (args // rec { buildLinux (args // rec {
version = "4.9.255"; version = "4.9.256";
extraMeta.branch = "4.9"; extraMeta.branch = "4.9";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "066101fzq5lr1pznw1hwlvsdgqpv8n7b2yi09qpv3xi0r41jvpxg"; sha256 = "15qlv4m56dzv195xjy4yp8qsrkbmv51vwfg0qcm664hkrb4i32y4";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -3,7 +3,7 @@
with lib; with lib;
buildLinux (args // rec { buildLinux (args // rec {
version = "5.10.13"; version = "5.10.14";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed # modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
sha256 = "1wp1vy9y50ncwlx5yqgya5gy0vdqgzn0icffg6dzmvjwwc68qs86"; sha256 = "0ahxga1jdgn8kxln0pn8j42qxx0dhrhm9vcpwilyjnwb36gvf9zs";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -3,7 +3,7 @@
with lib; with lib;
buildLinux (args // rec { buildLinux (args // rec {
version = "5.4.95"; version = "5.4.96";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed # modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@ -13,6 +13,6 @@ buildLinux (args // rec {
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
sha256 = "0jfl2jwq9z6iymn6sfrdcf9w63nijdzf3ncxc77a5gs6yd2fa2h3"; sha256 = "1q7mz69wzk1ps5770l9bj556qyndiz2frjjsl7pigsy5brlxwa7p";
}; };
} // (args.argsOverride or {})) } // (args.argsOverride or {}))

View file

@ -1,8 +1,8 @@
{ stdenv, lib, fetchsvn, linux { stdenv, lib, fetchsvn, linux
, scripts ? fetchsvn { , scripts ? fetchsvn {
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/"; url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
rev = "17812"; rev = "17873";
sha256 = "150rh6qakyfzr6afzchf7c05z0dvc39gj0rpfb4ggr7xqpzhxrcc"; sha256 = "1r1c8wagbq3cgxys7ylvsg6bnxiky66xgx9l0282zsmnn3gh83l7";
} }
, ... , ...
}: }:

View file

@ -195,7 +195,7 @@
"dwd_weather_warnings" = ps: with ps; [ ]; # missing inputs: dwdwfsapi "dwd_weather_warnings" = ps: with ps; [ ]; # missing inputs: dwdwfsapi
"dweet" = ps: with ps; [ ]; # missing inputs: dweepy "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
"dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
"dyson" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: libpurecool "dyson" = ps: with ps; [ aiohttp-cors libpurecool zeroconf ];
"eafm" = ps: with ps; [ aioeafm ]; "eafm" = ps: with ps; [ aioeafm ];
"ebox" = ps: with ps; [ ]; # missing inputs: pyebox "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
"ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy

View file

@ -22,6 +22,17 @@ in
fastcgi-cache-purge = throw "fastcgi-cache-purge was renamed to cache-purge"; fastcgi-cache-purge = throw "fastcgi-cache-purge was renamed to cache-purge";
ngx_aws_auth = throw "ngx_aws_auth was renamed to aws-auth"; ngx_aws_auth = throw "ngx_aws_auth was renamed to aws-auth";
akamai-token-validate = {
src = fetchFromGitHub {
name = "akamai-token-validate";
owner = "kaltura";
repo = "nginx-akamai-token-validate-module";
rev = "34fd0c94d2c43c642f323491c4f4a226cd83b962";
sha256 = "0yf34s11vgkcl03wbl6gjngm3p9hs8vvm7hkjkwhjh39vkk2a7cy";
};
inputs = [ pkgs.openssl ];
};
aws-auth = { aws-auth = {
src = fetchFromGitHub { src = fetchFromGitHub {
name = "aws-auth"; name = "aws-auth";
@ -320,6 +331,17 @@ in
}; };
}; };
secure-token = {
src = fetchFromGitHub {
name = "secure-token";
owner = "kaltura";
repo = "nginx-secure-token-module";
rev = "95bdc0d1aca06ea7fe42555f71e65910bd74914d";
sha256 = "19wzck1xzq4kz7nyabcwzlank1k7wi7w2wn2c1mwz374c79g8ggp";
};
inputs = [ pkgs.openssl ];
};
set-misc = { set-misc = {
src = fetchFromGitHub { src = fetchFromGitHub {
name = "set-misc"; name = "set-misc";
@ -472,6 +494,17 @@ in
inputs = [ pkgs.ffmpeg_3 ]; inputs = [ pkgs.ffmpeg_3 ];
}; };
vod = {
src = fetchFromGitHub {
name = "vod";
owner = "kaltura";
repo = "nginx-vod-module";
rev = "e46079f51282d5a378e6911714b5f3a533bb7700";
sha256 = "0pzzq4xcq7jg8mxwnz7srj1nczg9ajd1b8q58qlm03lny8nd2hr5";
};
inputs = [ pkgs.ffmpeg_3 pkgs.fdk_aac pkgs.openssl pkgs.libxml2 pkgs.libiconv ];
};
vts = { vts = {
src = fetchFromGitHub { src = fetchFromGitHub {
name = "vts"; name = "vts";

View file

@ -5,20 +5,29 @@
buildGoModule rec { buildGoModule rec {
pname = "promscale"; pname = "promscale";
version = "0.1.4"; version = "0.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "timescale"; owner = "timescale";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0179sw5zx552y14lr56adxcgas642xvxpqly6y4m9pi33r1gs8lj"; sha256 = "sha256-rXOAAd08NTWFRGnJoAY9xllw6dAA7Xu3qcImIVq9ewE=";
}; };
vendorSha256 = "sha256:04gzf0siz96ar4qdkcw6daswy14i1zvl7ir200adhw1c5phppab6"; vendorSha256 = "sha256-/woSbtrOI3BVBhh+A2kO1CB1BLzBciwOqvSbGkFeMEU=";
buildFlagsArray = [ "-ldflags=-s -w -X github.com/timescale/promscale/pkg/version.Version=${version} -X github.com/timescale/promscale/pkg/version.CommitHash=${src.rev}" ]; buildFlagsArray = [ "-ldflags=-s -w -X github.com/timescale/promscale/pkg/version.Version=${version} -X github.com/timescale/promscale/pkg/version.CommitHash=${src.rev}" ];
doCheck = false; # Requires access to a docker daemon doCheck = false; # Requires access to a docker daemon
doInstallCheck = true;
installCheckPhase = ''
if [[ "$("$out/bin/${pname}" -version)" == "${version}" ]]; then
echo '${pname} smoke check passed'
else
echo '${pname} smoke check failed'
exit 1
fi
'';
meta = with lib; { meta = with lib; {
description = "An open-source analytical platform for Prometheus metrics"; description = "An open-source analytical platform for Prometheus metrics";

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "roundcube"; pname = "roundcube";
version = "1.4.10"; version = "1.4.11";
src = fetchurl { src = fetchurl {
url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz"; url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
sha256 = "03sjvmnrspkiq0w73xvp1w61pcxhv0djrdm3mvs8h0dp9pfc1n53"; sha256 = "sha256-rHMZBwwwX8LIjHcjYFVi2GBwMHMr7ukxzbQJHPBeabc=";
}; };
patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ]; patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "scrot"; pname = "scrot";
version = "1.4"; version = "1.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "resurrecting-open-source-projects"; owner = "resurrecting-open-source-projects";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "12xq6glg70icwsvbnfw9gm4dahlbnrc7b6adpd0mpf89h4sj2gds"; sha256 = "sha256-4vguodLnCj0sOBLM4oJXTfX1p8hIo3WTwIuViPtZxHQ=";
}; };
nativeBuildInputs = [ autoreconfHook autoconf-archive ]; nativeBuildInputs = [ autoreconfHook autoconf-archive ];

View file

@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "haproxy"; pname = "haproxy";
version = "2.3.4"; version = "2.3.5";
src = fetchurl { src = fetchurl {
url = "https://www.haproxy.org/download/${lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz"; url = "https://www.haproxy.org/download/${lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
sha256 = "sha256-YBSM3+3WsZxAHbzXXM12pTwgvHbEkDK6Mq+YoKXEle0="; sha256 = "sha256-eSRTlTC79VWCnH9Yhr4Lf8+NnI/+CGe3AQvrZwq/vks=";
}; };
buildInputs = [ openssl zlib ] buildInputs = [ openssl zlib ]

View file

@ -1,30 +1,23 @@
{ lib, fetchFromGitHub, python3Packages, docutils, fetchpatch }: { lib, fetchFromGitHub, python3Packages, docutils }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "httpie"; pname = "httpie";
version = "2.2.0"; version = "2.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jakubroztocil"; owner = "httpie";
repo = "httpie"; repo = "httpie";
rev = version; rev = version;
sha256 = "0caazv24jr0844c4mdx77vzwwi5m869n10wa42cydb08ppx1xxj6"; sha256 = "00lafjqg9nfnak0nhcr2l2hzzkwn2y6qv0wdkm6r6f69snizy3hf";
}; };
patches = [
./strip-venv.patch
];
outputs = [ "out" "doc" "man" ]; outputs = [ "out" "doc" "man" ];
propagatedBuildInputs = with python3Packages; [ pygments requests setuptools ]; propagatedBuildInputs = with python3Packages; [ pygments requests requests-toolbelt setuptools ];
dontUseSetuptoolsCheck = true;
patches = [
./strip-venv.patch
# Fix `test_ciphers_none_can_be_selected`
# TODO: remove on next release
(fetchpatch {
url = "https://github.com/jakubroztocil/httpie/commit/49e71d252f54871a6bc49cb1cba103d385a543b8.patch";
sha256 = "13b2faf50gimj7f17dlx4gmd8ph8ipgihpzfqbvmfjlbf1v95fsj";
})
];
checkInputs = with python3Packages; [ checkInputs = with python3Packages; [
mock mock
@ -70,15 +63,6 @@ python3Packages.buildPythonApplication rec {
toHtml CHANGELOG.rst $docdir/html/CHANGELOG.html toHtml CHANGELOG.rst $docdir/html/CHANGELOG.html
toHtml CONTRIBUTING.rst $docdir/html/CONTRIBUTING.html toHtml CONTRIBUTING.rst $docdir/html/CONTRIBUTING.html
# change a few links to the local files
substituteInPlace $docdir/html/index.html \
--replace \
'https://github.com/jakubroztocil/httpie/blob/master/CHANGELOG.rst' \
"CHANGELOG.html" \
--replace \
'https://github.com/jakubroztocil/httpie/blob/master/CONTRIBUTING.rst' \
"CONTRIBUTING.html"
${docutils}/bin/rst2man \ ${docutils}/bin/rst2man \
--strip-elements-with-class=no-web \ --strip-elements-with-class=no-web \
--title=http \ --title=http \
@ -94,10 +78,14 @@ python3Packages.buildPythonApplication rec {
export PATH=${docutils}/bin:$PATH export PATH=${docutils}/bin:$PATH
''; '';
meta = { checkPhase = ''
py.test ./httpie ./tests --doctest-modules --verbose ./httpie ./tests -k 'not test_chunked and not test_verbose_chunked and not test_multipart_chunked and not test_request_body_from_file_by_path_chunked'
'';
meta = with lib; {
description = "A command line HTTP client whose goal is to make CLI human-friendly"; description = "A command line HTTP client whose goal is to make CLI human-friendly";
homepage = "https://httpie.org/"; homepage = "https://httpie.org/";
license = lib.licenses.bsd3; license = licenses.bsd3;
maintainers = with lib.maintainers; [ antono relrod schneefux ]; maintainers = with maintainers; [ antono relrod schneefux SuperSandro2000 ];
}; };
} }

View file

@ -1,11 +1,11 @@
diff --git a/tests/test_docs.py b/tests/test_docs.py diff --git a/tests/test_docs.py b/tests/test_docs.py
index 7a41822..720ecf6 100644 index 340e64d..a6b4dc9 100644
--- a/tests/test_docs.py --- a/tests/test_docs.py
+++ b/tests/test_docs.py +++ b/tests/test_docs.py
@@ -41,12 +41,10 @@ assert filenames @@ -42,15 +42,10 @@ assert filenames
# HACK: hardcoded paths, venv should be irrelevant, etc. # HACK: hardcoded paths, venv should be irrelevant, etc.
# TODO: replaces the process with Python code # TODO: simplify by using the Python API instead of a subprocess
# then we wontt need the paths.
-VENV_BIN = Path(__file__).parent.parent / 'venv/bin' -VENV_BIN = Path(__file__).parent.parent / 'venv/bin'
-VENV_PYTHON = VENV_BIN / 'python' -VENV_PYTHON = VENV_BIN / 'python'
-VENV_RST2PSEUDOXML = VENV_BIN / 'rst2pseudoxml.py' -VENV_RST2PSEUDOXML = VENV_BIN / 'rst2pseudoxml.py'
@ -13,7 +13,10 @@ index 7a41822..720ecf6 100644
+VENV_RST2PSEUDOXML = 'rst2pseudoxml.py' +VENV_RST2PSEUDOXML = 'rst2pseudoxml.py'
-@pytest.mark.skipif(not os.path.exists(VENV_RST2PSEUDOXML), reason='docutils not installed') -@pytest.mark.skipif(
- not VENV_RST2PSEUDOXML.exists(),
- reason='docutils not installed',
-)
@pytest.mark.parametrize('filename', filenames) @pytest.mark.parametrize('filename', filenames)
def test_rst_file_syntax(filename): def test_rst_file_syntax(filename):
p = subprocess.Popen( p = subprocess.Popen(

View file

@ -1,52 +0,0 @@
From 4315b58e0bffedd145cec61f96062292cd98278e Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Thu, 23 Jul 2020 21:37:33 +0200
Subject: [PATCH] Make compatible with pdfminer.six version 20200720
---
setup.py | 2 +-
src/ocrmypdf/pdfinfo/layout.py | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/setup.py b/setup.py
index bd95ed9..d1f4ab1 100644
--- a/setup.py
+++ b/setup.py
@@ -83,7 +83,7 @@ setup(
'cffi >= 1.9.1', # must be a setup and install requirement
'coloredlogs >= 14.0', # strictly optional
'img2pdf >= 0.3.0, < 0.4', # pure Python, so track HEAD closely
- 'pdfminer.six >= 20191110, <= 20200517',
+ 'pdfminer.six >= 20191110, <= 20200720',
'pikepdf >= 1.14.0, < 2',
'Pillow >= 7.0.0',
'pluggy >= 0.13.0',
diff --git a/src/ocrmypdf/pdfinfo/layout.py b/src/ocrmypdf/pdfinfo/layout.py
index 98bd82e..8b41e14 100644
--- a/src/ocrmypdf/pdfinfo/layout.py
+++ b/src/ocrmypdf/pdfinfo/layout.py
@@ -26,7 +26,11 @@ import pdfminer.pdfdevice
import pdfminer.pdfinterp
from pdfminer.converter import PDFLayoutAnalyzer
from pdfminer.layout import LAParams, LTChar, LTPage, LTTextBox
-from pdfminer.pdfdocument import PDFTextExtractionNotAllowed
+try:
+ from pdfminer.pdfdocument import PDFTextExtractionNotAllowedError
+except ImportError:
+ # Fallback for pdfminer < 20200720
+ from pdfminer.pdfdocument import PDFTextExtractionNotAllowed as PDFTextExtractionNotAllowedError
from pdfminer.pdffont import PDFSimpleFont, PDFUnicodeNotDefined
from pdfminer.pdfpage import PDFPage
from pdfminer.utils import bbox2str, matrix2str
@@ -239,7 +243,7 @@ def get_page_analysis(infile, pageno, pscript5_mode):
with Path(infile).open('rb') as f:
page = PDFPage.get_pages(f, pagenos=[pageno], maxpages=0)
interp.process_page(next(page))
- except PDFTextExtractionNotAllowed:
+ except PDFTextExtractionNotAllowedError:
raise EncryptedPdfError()
finally:
if pscript5_mode:
--
2.27.0

View file

@ -7,7 +7,8 @@
, python3 , python3
, python3Packages , python3Packages
, qpdf , qpdf
, lib, stdenv , lib
, stdenv
, tesseract4 , tesseract4
, unpaper , unpaper
, substituteAll , substituteAll
@ -29,18 +30,17 @@ let
in in
buildPythonApplication rec { buildPythonApplication rec {
pname = "ocrmypdf"; pname = "ocrmypdf";
version = "11.3.3"; version = "11.6.0";
disabled = ! python3Packages.isPy3k; disabled = ! python3Packages.isPy3k;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jbarlow83"; owner = "jbarlow83";
repo = "OCRmyPDF"; repo = "OCRmyPDF";
rev = "v${version}"; rev = "v${version}";
sha256 = "0qv34clid65p11dgqalyk7b7myn5ibiz8i9xxhxkmjblw297p6ak"; sha256 = "0inmmpam0vcm5n4sm6lh9p5swk44clknvm1cdwk9cax01mdqljza";
}; };
nativeBuildInputs = with python3Packages; [ nativeBuildInputs = with python3Packages; [
pytestrunner
setuptools setuptools
setuptools-scm-git-archive setuptools-scm-git-archive
setuptools_scm setuptools_scm
@ -65,8 +65,7 @@ buildPythonApplication rec {
pytest pytest
pytest-helpers-namespace pytest-helpers-namespace
pytest_xdist pytest_xdist
pytestcov pytest-cov
pytestrunner
python-xmp-toolkit python-xmp-toolkit
pytestCheckHook pytestCheckHook
] ++ runtimeDeps; ] ++ runtimeDeps;
@ -83,7 +82,7 @@ buildPythonApplication rec {
meta = with lib; { meta = with lib; {
homepage = "https://github.com/jbarlow83/OCRmyPDF"; homepage = "https://github.com/jbarlow83/OCRmyPDF";
description = "Adds an OCR text layer to scanned PDF files, allowing them to be searched"; description = "Adds an OCR text layer to scanned PDF files, allowing them to be searched";
license = licenses.gpl3; license = with licenses; [ mpl20 mit ];
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.kiwi ]; maintainers = [ maintainers.kiwi ];
}; };

View file

@ -0,0 +1,48 @@
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
}:
stdenv.mkDerivation rec {
pname = "robodoc";
version = "4.99.44";
src = fetchFromGitHub {
owner = "gumpu";
repo = "ROBODoc";
rev = "v${version}";
sha256 = "l3prSdaGhOvXmZfCPbsZJNocO7y20zJjLQpajRTJOqE=";
};
nativeBuildInputs = [ autoreconfHook ];
hardeningDisable = [ "format" ];
meta = with lib; {
homepage = "https://github.com/gumpu/ROBODoc";
description = "Documentation Extraction Tool";
longDescription = ''
ROBODoc is program documentation tool. The idea is to include for every
function or procedure a standard header containing all sorts of
information about the procedure or function. ROBODoc extracts these
headers from the source file and puts them in a separate
autodocs-file. ROBODoc thus allows you to include the program
documentation in the source code and avoid having to maintain two separate
documents. Or as Petteri puts it: "robodoc is very useful - especially for
programmers who don't like writing documents with Word or some other
strange tool."
ROBODoc can format the headers in a number of different formats: HTML,
RTF, LaTeX, or XML DocBook. In HTML mode it can generate cross links
between headers. You can even include parts of your source code.
ROBODoc works with many programming languages: For instance C, Pascal,
Shell Scripts, Assembler, COBOL, Occam, Postscript, Forth, Tcl/Tk, C++,
Java -- basically any program in which you can use remarks/comments.
'';
license = with licenses; gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ];
platforms = with platforms; all;
};
}

View file

@ -1114,6 +1114,8 @@ in
bmap-tools = callPackage ../tools/misc/bmap-tools { }; bmap-tools = callPackage ../tools/misc/bmap-tools { };
bonnmotion = callPackage ../development/tools/misc/bonnmotion { };
bonnie = callPackage ../tools/filesystems/bonnie { }; bonnie = callPackage ../tools/filesystems/bonnie { };
bonfire = callPackage ../tools/misc/bonfire { }; bonfire = callPackage ../tools/misc/bonfire { };
@ -4830,6 +4832,8 @@ in
inherit (darwin.apple_sdk.frameworks) Security; inherit (darwin.apple_sdk.frameworks) Security;
}; };
robodoc = callPackage ../tools/text/robodoc { };
ucg = callPackage ../tools/text/ucg { }; ucg = callPackage ../tools/text/ucg { };
grive2 = callPackage ../tools/filesystems/grive2 { }; grive2 = callPackage ../tools/filesystems/grive2 { };

View file

@ -204,6 +204,8 @@ in {
aioamqp = callPackage ../development/python-modules/aioamqp { }; aioamqp = callPackage ../development/python-modules/aioamqp { };
ailment = callPackage ../development/python-modules/ailment { };
aiocoap = callPackage ../development/python-modules/aiocoap { }; aiocoap = callPackage ../development/python-modules/aiocoap { };
aioconsole = callPackage ../development/python-modules/aioconsole { }; aioconsole = callPackage ../development/python-modules/aioconsole { };
@ -3660,6 +3662,8 @@ in {
inherit python; inherit python;
})).py; })).py;
libpurecool = callPackage ../development/python-modules/libpurecool { };
libredwg = toPythonModule (pkgs.libredwg.override { libredwg = toPythonModule (pkgs.libredwg.override {
enablePython = true; enablePython = true;
inherit (self) python libxml2; inherit (self) python libxml2;
@ -6523,6 +6527,8 @@ in {
pyvera = callPackage ../development/python-modules/pyvera { }; pyvera = callPackage ../development/python-modules/pyvera { };
pyvex = callPackage ../development/python-modules/pyvex { };
pyviz-comms = callPackage ../development/python-modules/pyviz-comms { }; pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
pyvips = callPackage ../development/python-modules/pyvips { pyvips = callPackage ../development/python-modules/pyvips {