Merge staging-next into staging
This commit is contained in:
@@ -68,27 +68,107 @@ Erlang.mk functions similarly to Rebar3, except we use `buildErlangMk` instead o
|
||||
|
||||
`mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `fetchMixDeps` and passed to it.
|
||||
|
||||
#### mixRelease - Elixir Phoenix example {#mixrelease---elixir-phoenix-example}
|
||||
#### mixRelease - Elixir Phoenix example {#mix-release-elixir-phoenix-example}
|
||||
|
||||
Here is how your `default.nix` file would look.
|
||||
there are 3 steps, frontend dependencies (javascript), backend dependencies (elixir) and the final derivation that puts both of those together
|
||||
|
||||
##### mixRelease - Frontend dependencies (javascript) {#mix-release-javascript-deps}
|
||||
|
||||
for phoenix projects, inside of nixpkgs you can either use yarn2nix (mkYarnModule) or node2nix. An example with yarn2nix can be found [here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/web-apps/plausible/default.nix#L39). An example with node2nix will follow. To package something outside of nixpkgs, you have alternatives like [npmlock2nix](https://github.com/nix-community/npmlock2nix) or [nix-npm-buildpackage](https://github.com/serokell/nix-npm-buildpackage)
|
||||
|
||||
##### mixRelease - backend dependencies (mix) {#mix-release-mix-deps}
|
||||
|
||||
There are 2 ways to package backend dependencies. With mix2nix and with a fixed-output-derivation (FOD).
|
||||
|
||||
###### mix2nix {#mix2nix}
|
||||
|
||||
mix2nix is a cli tool available in nixpkgs. it will generate a nix expression from a mix.lock file. It is quite standard in the 2nix tool series.
|
||||
|
||||
Note that currently mix2nix can't handle git dependencies inside the mix.lock file. If you have git dependencies, you can either add them manually (see [example](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/pleroma/default.nix#L20)) or use the FOD method.
|
||||
|
||||
The advantage of using mix2nix is that nix will know your whole dependency graph. On a dependency update, this won't trigger a full rebuild and download of all the dependencies, where FOD will do so.
|
||||
|
||||
practical steps:
|
||||
|
||||
- run `mix2nix > mix_deps.nix` in the upstream repo.
|
||||
- pass `mixNixDeps = with pkgs; import ./mix_deps.nix { inherit lib beamPackages; };` as an argument to mixRelease.
|
||||
|
||||
If there are git depencencies.
|
||||
|
||||
- You'll need to fix the version artificially in mix.exs and regenerate the mix.lock with fixed version (on upstream). This will enable you to run `mix2nix > mix_deps.nix`.
|
||||
- From the mix_deps.nix file, remove the dependencies that had git versions and pass them as an override to the import function.
|
||||
|
||||
```nix
|
||||
mixNixDeps = import ./mix.nix {
|
||||
inherit beamPackages lib;
|
||||
overrides = (final: prev: {
|
||||
# mix2nix does not support git dependencies yet,
|
||||
# so we need to add them manually
|
||||
prometheus_ex = beamPackages.buildMix rec {
|
||||
name = "prometheus_ex";
|
||||
version = "3.0.5";
|
||||
|
||||
# Change the argument src with the git src that you actually need
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pleroma.social";
|
||||
group = "pleroma";
|
||||
owner = "elixir-libraries";
|
||||
repo = "prometheus.ex";
|
||||
rev = "a4e9beb3c1c479d14b352fd9d6dd7b1f6d7deee5";
|
||||
sha256 = "1v0q4bi7sb253i8q016l7gwlv5562wk5zy3l2sa446csvsacnpjk";
|
||||
};
|
||||
# you can re-use the same beamDeps argument as generated
|
||||
beamDeps = with final; [ prometheus ];
|
||||
};
|
||||
});
|
||||
};
|
||||
```
|
||||
|
||||
You will need to run the build process once to fix the sha256 to correspond to your new git src.
|
||||
|
||||
###### FOD {#fixed-output-derivation}
|
||||
|
||||
A fixed output derivation will download mix dependencies from the internet. To ensure reproducibility, a hash will be supplied. Note that mix is relatively reproducible. An FOD generating a different hash on each run hasn't been observed (as opposed to npm where the chances are relatively high). See [elixir_ls](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/beam-modules/elixir_ls.nix) for a usage example of FOD.
|
||||
|
||||
Practical steps
|
||||
|
||||
- start with the following argument to mixRelease
|
||||
|
||||
```nix
|
||||
mixFodDeps = fetchMixDeps {
|
||||
pname = "mix-deps-${pname}";
|
||||
inherit src version;
|
||||
sha256 = lib.fakeSha256;
|
||||
};
|
||||
```
|
||||
|
||||
The first build will complain about the sha256 value, you can replace with the suggested value after that.
|
||||
|
||||
Note that if after you've replaced the value, nix suggests another sha256, then mix is not fetching the dependencies reproducibly. An FOD will not work in that case and you will have to use mix2nix.
|
||||
|
||||
##### mixRelease - example {#mix-release-example}
|
||||
|
||||
Here is how your `default.nix` file would look for a phoenix project.
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> { };
|
||||
|
||||
let
|
||||
# beam.interpreters.erlangR23 is available if you need a particular version
|
||||
packages = beam.packagesWith beam.interpreters.erlang;
|
||||
|
||||
pname = "your_project";
|
||||
version = "0.0.1";
|
||||
|
||||
src = builtins.fetchgit {
|
||||
url = "ssh://git@github.com/your_id/your_repo";
|
||||
rev = "replace_with_your_commit";
|
||||
};
|
||||
|
||||
pname = "your_project";
|
||||
version = "0.0.1";
|
||||
mixEnv = "prod";
|
||||
|
||||
# if using mix2nix you can use the mixNixDeps attribute
|
||||
mixFodDeps = packages.fetchMixDeps {
|
||||
pname = "mix-deps-${pname}";
|
||||
inherit src mixEnv version;
|
||||
inherit src version;
|
||||
# nix will complain and tell you the right value to replace this with
|
||||
sha256 = lib.fakeSha256;
|
||||
# if you have build time environment variables add them here
|
||||
@@ -97,45 +177,19 @@ let
|
||||
|
||||
nodeDependencies = (pkgs.callPackage ./assets/default.nix { }).shell.nodeDependencies;
|
||||
|
||||
frontEndFiles = stdenvNoCC.mkDerivation {
|
||||
pname = "frontend-${pname}";
|
||||
|
||||
nativeBuildInputs = [ nodejs ];
|
||||
|
||||
inherit version src;
|
||||
|
||||
buildPhase = ''
|
||||
cp -r ./assets $TEMPDIR
|
||||
|
||||
mkdir -p $TEMPDIR/assets/node_modules/.cache
|
||||
cp -r ${nodeDependencies}/lib/node_modules $TEMPDIR/assets
|
||||
export PATH="${nodeDependencies}/bin:$PATH"
|
||||
|
||||
cd $TEMPDIR/assets
|
||||
webpack --config ./webpack.config.js
|
||||
cd ..
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -r ./priv/static $out/
|
||||
'';
|
||||
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
# nix will complain and tell you the right value to replace this with
|
||||
outputHash = lib.fakeSha256;
|
||||
|
||||
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
|
||||
};
|
||||
|
||||
|
||||
in packages.mixRelease {
|
||||
inherit src pname version mixEnv mixFodDeps;
|
||||
inherit src pname version mixFodDeps;
|
||||
# if you have build time environment variables add them here
|
||||
MY_ENV_VAR="my_value";
|
||||
preInstall = ''
|
||||
mkdir -p ./priv/static
|
||||
cp -r ${frontEndFiles} ./priv/static
|
||||
|
||||
postBuild = ''
|
||||
ln -sf ${nodeDependencies}/lib/node_modules assets/node_modules
|
||||
npm run deploy --prefix ./assets
|
||||
|
||||
# for external task you need a workaround for the no deps check flag
|
||||
# https://github.com/phoenixframework/phoenix/issues/2690
|
||||
mix do deps.loadpaths --no-deps-check, phx.digest
|
||||
mix phx.digest --no-deps-check
|
||||
'';
|
||||
}
|
||||
```
|
||||
@@ -165,6 +219,8 @@ in
|
||||
systemd.services.${release_name} = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "postgresql.service" ];
|
||||
# note that if you are connecting to a postgres instance on a different host
|
||||
# postgresql.service should not be included in the requires.
|
||||
requires = [ "network-online.target" "postgresql.service" ];
|
||||
description = "my app";
|
||||
environment = {
|
||||
@@ -201,6 +257,7 @@ in
|
||||
path = [ pkgs.bash ];
|
||||
};
|
||||
|
||||
# in case you have migration scripts or you want to use a remote shell
|
||||
environment.systemPackages = [ release ];
|
||||
}
|
||||
```
|
||||
@@ -215,16 +272,11 @@ Usually, we need to create a `shell.nix` file and do our development inside of t
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
|
||||
with pkgs;
|
||||
|
||||
let
|
||||
|
||||
elixir = beam.packages.erlangR22.elixir_1_9;
|
||||
|
||||
elixir = beam.packages.erlangR24.elixir_1_12;
|
||||
in
|
||||
mkShell {
|
||||
buildInputs = [ elixir ];
|
||||
|
||||
ERL_INCLUDE_PATH="${erlang}/lib/erlang/usr/include";
|
||||
}
|
||||
```
|
||||
|
||||
@@ -264,6 +316,7 @@ let
|
||||
# TODO: not sure how to make hex available without installing it afterwards.
|
||||
mix local.hex --if-missing
|
||||
export LANG=en_US.UTF-8
|
||||
# keep your shell history in iex
|
||||
export ERL_AFLAGS="-kernel shell_history enabled"
|
||||
|
||||
# postges related
|
||||
|
||||
@@ -7445,6 +7445,16 @@
|
||||
name = "Maxim Schuwalow";
|
||||
email = "maxim.schuwalow@gmail.com";
|
||||
};
|
||||
msfjarvis = {
|
||||
github = "msfjarvis";
|
||||
githubId = 3348378;
|
||||
name = "Harsh Shandilya";
|
||||
email = "nixos@msfjarvis.dev";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0xB7843F823355E9B9";
|
||||
fingerprint = "8F87 050B 0F9C B841 1515 7399 B784 3F82 3355 E9B9";
|
||||
}];
|
||||
};
|
||||
msiedlarek = {
|
||||
email = "mikolaj@siedlarek.pl";
|
||||
github = "msiedlarek";
|
||||
|
||||
@@ -1,89 +1,86 @@
|
||||
name,server,version,luaversion,maintainers
|
||||
alt-getopt,,,,arobyn
|
||||
ansicolors,,,,
|
||||
bit32,,5.3.0-1,lua5_1,lblasc
|
||||
argparse,,,,
|
||||
basexx,,,,
|
||||
binaryheap,,,,vcunat
|
||||
busted,,,,
|
||||
cassowary,,,,marsam alerque
|
||||
compat53,,0.7-1,,vcunat
|
||||
cosmo,,,,marsam
|
||||
coxpcall,,1.17.0-1,,
|
||||
cqueues,,,,vcunat
|
||||
cyrussasl,,,,
|
||||
digestif,,0.2-1,lua5_3,
|
||||
dkjson,,,,
|
||||
fifo,,,,
|
||||
gitsigns.nvim,,,lua5_1,
|
||||
http,,0.3-0,,vcunat
|
||||
inspect,,,,
|
||||
ldbus,http://luarocks.org/dev,,,
|
||||
ldoc,,,,
|
||||
lgi,,,,
|
||||
linenoise,,,,
|
||||
ljsyscall,,,lua5_1,lblasc
|
||||
lpeg,,,,vyp
|
||||
lpeg_patterns,,,,
|
||||
lpeglabel,,,,
|
||||
lpty,,,,
|
||||
lrexlib-gnu,,,,
|
||||
lrexlib-pcre,,,,vyp
|
||||
lrexlib-posix,,,,
|
||||
ltermbox,,,,
|
||||
lua-cjson,,,,
|
||||
lua-cmsgpack,,,,
|
||||
lua-iconv,,,,
|
||||
lua-lsp,http://luarocks.org/dev,,,
|
||||
lua-messagepack,,,,
|
||||
lua-resty-http,,,,
|
||||
lua-resty-jwt,,,,
|
||||
lua-resty-openidc,,,,
|
||||
lua-resty-openssl,,,,
|
||||
lua-resty-session,,,,
|
||||
lua-term,,,,
|
||||
lua-toml,,,,
|
||||
lua-zlib,,,,koral
|
||||
lua_cliargs,,,,
|
||||
luabitop,,,,
|
||||
luacheck,,,,
|
||||
luacov,,,,
|
||||
luadbi,,,,
|
||||
luadbi-mysql,,,,
|
||||
luadbi-postgresql,,,,
|
||||
luadbi-sqlite3,,,,
|
||||
luadoc,,,,
|
||||
luaepnf,,,,
|
||||
luaevent,,,,
|
||||
luaexpat,,1.3.0-1,,arobyn flosse
|
||||
luaffi,http://luarocks.org/dev,,,
|
||||
luafilesystem,,1.7.0-2,,flosse
|
||||
lualogging,,,,
|
||||
luaossl,,,lua5_1,
|
||||
luaposix,,34.1.1-1,,vyp lblasc
|
||||
luarepl,,,,
|
||||
luasec,,,,flosse
|
||||
luasocket,,,,
|
||||
luasql-sqlite3,,,,vyp
|
||||
luassert,,,,
|
||||
luasystem,,,,
|
||||
luautf8,,,,pstn
|
||||
luazip,,,,
|
||||
lua-yajl,,,,pstn
|
||||
luuid,,,,
|
||||
luv,,1.30.0-0,,
|
||||
lyaml,,,,lblasc
|
||||
markdown,,,,
|
||||
mediator_lua,,,,
|
||||
mpack,,,,
|
||||
moonscript,,,,arobyn
|
||||
nvim-client,,,,
|
||||
penlight,,,,
|
||||
plenary.nvim,,,lua5_1,
|
||||
rapidjson,,,,
|
||||
readline,,,,
|
||||
say,,,,
|
||||
std._debug,,,,
|
||||
std.normalize,,,,
|
||||
stdlib,,,,vyp
|
||||
vstruct,,,,
|
||||
name,src,ref,server,version,luaversion,maintainers
|
||||
alt-getopt,,,,,,arobyn
|
||||
bit32,,,,5.3.0-1,lua5_1,lblasc
|
||||
argparse,https://github.com/luarocks/argparse.git,,,,,
|
||||
basexx,https://github.com/teto/basexx.git,,,,,
|
||||
binaryheap,https://github.com/Tieske/binaryheap.lua,,,,,vcunat
|
||||
busted,,,,,,
|
||||
cassowary,,,,,,marsam alerque
|
||||
compat53,,,,0.7-1,,vcunat
|
||||
cosmo,,,,,,marsam
|
||||
coxpcall,,,,1.17.0-1,,
|
||||
cqueues,,,,,,vcunat
|
||||
cyrussasl,https://github.com/JorjBauer/lua-cyrussasl.git,,,,,
|
||||
digestif,https://github.com/astoff/digestif.git,,,0.2-1,lua5_3,
|
||||
dkjson,,,,,,
|
||||
fifo,,,,,,
|
||||
gitsigns.nvim,https://github.com/lewis6991/gitsigns.nvim.git,,,,lua5_1,
|
||||
http,,,,0.3-0,,vcunat
|
||||
inspect,,,,,,
|
||||
ldbus,,,http://luarocks.org/dev,,,
|
||||
ldoc,https://github.com/stevedonovan/LDoc.git,,,,,
|
||||
lgi,,,,,,
|
||||
linenoise,https://github.com/hoelzro/lua-linenoise.git,,,,,
|
||||
ljsyscall,,,,,lua5_1,lblasc
|
||||
lpeg,,,,,,vyp
|
||||
lpeg_patterns,,,,,,
|
||||
lpeglabel,,,,,,
|
||||
lpty,,,,,,
|
||||
lrexlib-gnu,,,,,,
|
||||
lrexlib-pcre,,,,,,vyp
|
||||
lrexlib-posix,,,,,,
|
||||
lua-cjson,,,,,,
|
||||
lua-cmsgpack,,,,,,
|
||||
lua-iconv,,,,,,
|
||||
lua-lsp,,,,,,
|
||||
lua-messagepack,,,,,,
|
||||
lua-resty-http,,,,,,
|
||||
lua-resty-jwt,,,,,,
|
||||
lua-resty-openidc,,,,,,
|
||||
lua-resty-openssl,,,,,,
|
||||
lua-resty-session,,,,,,
|
||||
lua-term,,,,,,
|
||||
lua-toml,,,,,,
|
||||
lua-zlib,,,,,,koral
|
||||
lua_cliargs,https://github.com/amireh/lua_cliargs.git,,,,,
|
||||
luabitop,https://github.com/teto/luabitop.git,,,,,
|
||||
luacheck,,,,,,
|
||||
luacov,,,,,,
|
||||
luadbi,,,,,,
|
||||
luadbi-mysql,,,,,,
|
||||
luadbi-postgresql,,,,,,
|
||||
luadbi-sqlite3,,,,,,
|
||||
luaepnf,,,,,,
|
||||
luaevent,,,,,,
|
||||
luaexpat,,,,1.3.0-1,,arobyn flosse
|
||||
luaffi,,,http://luarocks.org/dev,,,
|
||||
luafilesystem,,,,1.7.0-2,,flosse
|
||||
lualogging,,,,,,
|
||||
luaossl,,,,,lua5_1,
|
||||
luaposix,,,,34.1.1-1,,vyp lblasc
|
||||
luarepl,,,,,,
|
||||
luasec,,,,,,flosse
|
||||
luasocket,,,,,,
|
||||
luasql-sqlite3,,,,,,vyp
|
||||
luassert,,,,,,
|
||||
luasystem,,,,,,
|
||||
luautf8,,,,,,pstn
|
||||
luazip,,,,,,
|
||||
lua-yajl,,,,,,pstn
|
||||
luuid,,,,,,
|
||||
luv,,,,1.30.0-0,,
|
||||
lyaml,,,,,,lblasc
|
||||
markdown,,,,,,
|
||||
mediator_lua,,,,,,
|
||||
mpack,,,,,,
|
||||
moonscript,,,,,,arobyn
|
||||
nvim-client,https://github.com/neovim/lua-client.git,,,,,
|
||||
penlight,https://github.com/Tieske/Penlight.git,,,,,
|
||||
plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,lua5_1,
|
||||
rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,
|
||||
readline,,,,,,
|
||||
say,https://github.com/Olivine-Labs/say.git,,,,,
|
||||
std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
|
||||
std.normalize,git://github.com/lua-stdlib/normalize.git,,,,,
|
||||
stdlib,,,,41.2.2,,vyp
|
||||
vstruct,https://github.com/ToxicFrog/vstruct.git,,,,,
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -p nix-prefetch-git luarocks-nix python3 python3Packages.GitPython nix -i python3
|
||||
#!nix-shell update-luarocks-shell.nix -i python3
|
||||
|
||||
# format:
|
||||
# $ nix run nixpkgs.python3Packages.black -c black update.py
|
||||
@@ -19,7 +19,7 @@ import logging
|
||||
import textwrap
|
||||
from multiprocessing.dummy import Pool
|
||||
|
||||
from typing import List, Tuple
|
||||
from typing import List, Tuple, Optional
|
||||
from pathlib import Path
|
||||
|
||||
log = logging.getLogger()
|
||||
@@ -50,10 +50,21 @@ FOOTER="""
|
||||
@dataclass
|
||||
class LuaPlugin:
|
||||
name: str
|
||||
version: str
|
||||
server: str
|
||||
luaversion: str
|
||||
maintainers: str
|
||||
'''Name of the plugin, as seen on luarocks.org'''
|
||||
src: str
|
||||
'''address to the git repository'''
|
||||
ref: Optional[str]
|
||||
'''git reference (branch name/tag)'''
|
||||
version: Optional[str]
|
||||
'''Set it to pin a package '''
|
||||
server: Optional[str]
|
||||
'''luarocks.org registers packages under different manifests.
|
||||
Its value can be 'http://luarocks.org/dev'
|
||||
'''
|
||||
luaversion: Optional[str]
|
||||
'''Attribue of the lua interpreter if a package is available only for a specific lua version'''
|
||||
maintainers: Optional[str]
|
||||
''' Optional string listing maintainers separated by spaces'''
|
||||
|
||||
@property
|
||||
def normalized_name(self) -> str:
|
||||
@@ -149,16 +160,33 @@ def generate_pkg_nix(plug: LuaPlugin):
|
||||
Our cache key associates "p.name-p.version" to its rockspec
|
||||
'''
|
||||
log.debug("Generating nix expression for %s", plug.name)
|
||||
cmd = [ "luarocks", "nix", plug.name]
|
||||
cmd = [ "luarocks", "nix"]
|
||||
|
||||
if plug.server:
|
||||
cmd.append(f"--only-server={plug.server}")
|
||||
|
||||
if plug.maintainers:
|
||||
cmd.append(f"--maintainers={plug.maintainers}")
|
||||
|
||||
if plug.version:
|
||||
cmd.append(plug.version)
|
||||
# updates plugin directly from its repository
|
||||
print("server: [%s]" % plug.server)
|
||||
# if plug.server == "src":
|
||||
if plug.src != "":
|
||||
if plug.src is None:
|
||||
msg = "src must be set when 'version' is set to \"src\" for package %s" % plug.name
|
||||
log.error(msg)
|
||||
raise RuntimeError(msg)
|
||||
log.debug("Updating from source %s", plug.src)
|
||||
cmd.append(plug.src)
|
||||
# update the plugin from luarocks
|
||||
else:
|
||||
cmd.append(plug.name)
|
||||
if plug.version and plug.version != "src":
|
||||
|
||||
cmd.append(plug.version)
|
||||
|
||||
#
|
||||
if plug.server != "src" and plug.server:
|
||||
cmd.append(f"--only-server={plug.server}")
|
||||
|
||||
|
||||
if plug.luaversion:
|
||||
with CleanEnvironment():
|
||||
@@ -169,7 +197,7 @@ def generate_pkg_nix(plug: LuaPlugin):
|
||||
lua_drv_path=subprocess.check_output(cmd2, text=True).strip()
|
||||
cmd.append(f"--lua-dir={lua_drv_path}/bin")
|
||||
|
||||
log.debug("running %s", cmd)
|
||||
log.debug("running %s", ' '.join(cmd))
|
||||
output = subprocess.check_output(cmd, text=True)
|
||||
return (plug, output)
|
||||
|
||||
@@ -191,3 +219,4 @@ if __name__ == "__main__":
|
||||
|
||||
main()
|
||||
|
||||
# vim: set ft=python noet fdm=manual fenc=utf-8 ff=unix sts=0 sw=4 ts=4 :
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{ nixpkgs ? import ../.. { }
|
||||
}:
|
||||
with nixpkgs;
|
||||
let
|
||||
pyEnv = python3.withPackages(ps: [ ps.GitPython ]);
|
||||
in
|
||||
mkShell {
|
||||
packages = [
|
||||
bash
|
||||
pyEnv
|
||||
luarocks-nix
|
||||
nix-prefetch-scripts
|
||||
parallel
|
||||
];
|
||||
LUAROCKS_NIXPKGS_PATH = toString nixpkgs.path;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
kOps now defaults to 1.21.0, which uses containerd as the
|
||||
kOps now defaults to 1.21.1, which uses containerd as the
|
||||
default runtime.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@@ -7,7 +7,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
## Highlights {#sec-release-21.11-highlights}
|
||||
|
||||
- PHP now defaults to PHP 8.0, updated from 7.4.
|
||||
- kOps now defaults to 1.21.0, which uses containerd as the default runtime.
|
||||
|
||||
- kOps now defaults to 1.21.1, which uses containerd as the default runtime.
|
||||
|
||||
- `python3` now defaults to Python 3.9, updated from Python 3.8.
|
||||
|
||||
|
||||
@@ -143,6 +143,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
hardware.nvidia.nvidiaSettings = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Whether to add nvidia-settings, NVIDIA's GUI configuration tool, to
|
||||
systemPackages.
|
||||
'';
|
||||
};
|
||||
|
||||
hardware.nvidia.nvidiaPersistenced = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
@@ -279,7 +288,8 @@ in
|
||||
hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;
|
||||
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32;
|
||||
|
||||
environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ]
|
||||
environment.systemPackages = [ nvidia_x11.bin ]
|
||||
++ optionals nvidiaSettings [ nvidia_x11.settings ]
|
||||
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
|
||||
|
||||
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;
|
||||
|
||||
@@ -14,9 +14,6 @@ in {
|
||||
default = false;
|
||||
description = ''
|
||||
Open ports in the firewall for the bridge.
|
||||
|
||||
UDP: 9003
|
||||
TCP: 9100 - 9200
|
||||
'';
|
||||
};
|
||||
user = mkOption {
|
||||
@@ -54,10 +51,15 @@ in {
|
||||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPortRanges = [
|
||||
{ from = 9100; to = 9200; }
|
||||
];
|
||||
allowedTCPPortRanges = [{ from = 9100; to = 9200; }];
|
||||
allowedUDPPorts = [ 9003 ];
|
||||
extraCommands = ''
|
||||
iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
|
||||
iptables -A INPUT -d 224.0.0.0/4 -j ACCEPT
|
||||
iptables -A INPUT -s 240.0.0.0/5 -j ACCEPT
|
||||
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
|
||||
iptables -A INPUT -m pkttype --pkt-type broadcast -j ACCEPT
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -14,9 +14,6 @@ in {
|
||||
default = false;
|
||||
description = ''
|
||||
Open ports in the firewall for the server.
|
||||
|
||||
UDP: 9003
|
||||
TCP: 9100 - 9200
|
||||
'';
|
||||
};
|
||||
user = mkOption {
|
||||
@@ -54,10 +51,15 @@ in {
|
||||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPortRanges = [
|
||||
{ from = 9100; to = 9200; }
|
||||
];
|
||||
allowedTCPPortRanges = [{ from = 9100; to = 9200; }];
|
||||
allowedUDPPorts = [ 9003 ];
|
||||
extraCommands = ''
|
||||
iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
|
||||
iptables -A INPUT -d 224.0.0.0/4 -j ACCEPT
|
||||
iptables -A INPUT -s 240.0.0.0/5 -j ACCEPT
|
||||
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
|
||||
iptables -A INPUT -m pkttype --pkt-type broadcast -j ACCEPT
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -5,36 +5,41 @@ let
|
||||
opt = options.services.ipfs;
|
||||
|
||||
ipfsFlags = toString ([
|
||||
(optionalString cfg.autoMount "--mount")
|
||||
(optionalString cfg.enableGC "--enable-gc")
|
||||
(optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=false")
|
||||
(optionalString (cfg.defaultMode == "offline") "--offline")
|
||||
(optionalString cfg.autoMount "--mount")
|
||||
(optionalString cfg.enableGC "--enable-gc")
|
||||
(optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=false")
|
||||
(optionalString (cfg.defaultMode == "offline") "--offline")
|
||||
(optionalString (cfg.defaultMode == "norouting") "--routing=none")
|
||||
] ++ cfg.extraFlags);
|
||||
|
||||
splitMulitaddr = addrRaw: lib.tail (lib.splitString "/" addrRaw);
|
||||
|
||||
multiaddrToListenStream = addrRaw: let
|
||||
multiaddrToListenStream = addrRaw:
|
||||
let
|
||||
addr = splitMulitaddr addrRaw;
|
||||
s = builtins.elemAt addr;
|
||||
in if s 0 == "ip4" && s 2 == "tcp"
|
||||
then "${s 1}:${s 3}"
|
||||
in
|
||||
if s 0 == "ip4" && s 2 == "tcp"
|
||||
then "${s 1}:${s 3}"
|
||||
else if s 0 == "ip6" && s 2 == "tcp"
|
||||
then "[${s 1}]:${s 3}"
|
||||
then "[${s 1}]:${s 3}"
|
||||
else if s 0 == "unix"
|
||||
then "/${lib.concatStringsSep "/" (lib.tail addr)}"
|
||||
then "/${lib.concatStringsSep "/" (lib.tail addr)}"
|
||||
else null; # not valid for listen stream, skip
|
||||
|
||||
multiaddrToListenDatagram = addrRaw: let
|
||||
multiaddrToListenDatagram = addrRaw:
|
||||
let
|
||||
addr = splitMulitaddr addrRaw;
|
||||
s = builtins.elemAt addr;
|
||||
in if s 0 == "ip4" && s 2 == "udp"
|
||||
then "${s 1}:${s 3}"
|
||||
in
|
||||
if s 0 == "ip4" && s 2 == "udp"
|
||||
then "${s 1}:${s 3}"
|
||||
else if s 0 == "ip6" && s 2 == "udp"
|
||||
then "[${s 1}]:${s 3}"
|
||||
then "[${s 1}]:${s 3}"
|
||||
else null; # not valid for listen datagram, skip
|
||||
|
||||
in {
|
||||
in
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
@@ -65,9 +70,10 @@ in {
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.str;
|
||||
default = if versionAtLeast config.system.stateVersion "17.09"
|
||||
then "/var/lib/ipfs"
|
||||
else "/var/lib/ipfs/.ipfs";
|
||||
default =
|
||||
if versionAtLeast config.system.stateVersion "17.09"
|
||||
then "/var/lib/ipfs"
|
||||
else "/var/lib/ipfs/.ipfs";
|
||||
description = "The data dir for IPFS";
|
||||
};
|
||||
|
||||
@@ -83,6 +89,12 @@ in {
|
||||
description = "Whether IPFS should try to mount /ipfs and /ipns at startup.";
|
||||
};
|
||||
|
||||
autoMigrate = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Whether IPFS should try to run the fs-repo-migration at startup.";
|
||||
};
|
||||
|
||||
ipfsMountDir = mkOption {
|
||||
type = types.str;
|
||||
default = "/ipfs";
|
||||
@@ -137,7 +149,7 @@ in {
|
||||
These are applied last, so may override configuration set by other options in this module.
|
||||
Keep in mind that this configuration is stateful; i.e., unsetting anything in here does not reset the value to the default!
|
||||
'';
|
||||
default = {};
|
||||
default = { };
|
||||
example = {
|
||||
Datastore.StorageMax = "100GB";
|
||||
Discovery.MDNS.Enabled = false;
|
||||
@@ -153,7 +165,7 @@ in {
|
||||
extraFlags = mkOption {
|
||||
type = types.listOf types.str;
|
||||
description = "Extra flags passed to the IPFS daemon";
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
localDiscovery = mkOption {
|
||||
@@ -168,7 +180,7 @@ in {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
description = "The fdlimit for the IPFS systemd unit or <literal>null</literal> to have the daemon attempt to manage it";
|
||||
example = 64*1024;
|
||||
example = 64 * 1024;
|
||||
};
|
||||
|
||||
startWhenNeeded = mkOption {
|
||||
@@ -186,6 +198,9 @@ in {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
environment.variables.IPFS_PATH = cfg.dataDir;
|
||||
|
||||
# https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size
|
||||
boot.kernel.sysctl."net.core.rmem_max" = mkDefault 2500000;
|
||||
|
||||
programs.fuse = mkIf cfg.autoMount {
|
||||
userAllowOther = true;
|
||||
};
|
||||
@@ -234,25 +249,28 @@ in {
|
||||
ipfs --offline config Mounts.FuseAllowOther --json true
|
||||
ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
|
||||
ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
|
||||
'' + optionalString cfg.autoMigrate ''
|
||||
${pkgs.ipfs-migrator}/bin/fs-repo-migrations -y
|
||||
'' + concatStringsSep "\n" (collect
|
||||
isString
|
||||
(mapAttrsRecursive
|
||||
(path: value:
|
||||
# Using heredoc below so that the value is never improperly quoted
|
||||
''
|
||||
read value <<EOF
|
||||
${builtins.toJSON value}
|
||||
EOF
|
||||
ipfs --offline config --json "${concatStringsSep "." path}" "$value"
|
||||
'')
|
||||
({ Addresses.API = cfg.apiAddress;
|
||||
Addresses.Gateway = cfg.gatewayAddress;
|
||||
Addresses.Swarm = cfg.swarmAddress;
|
||||
} //
|
||||
cfg.extraConfig))
|
||||
);
|
||||
isString
|
||||
(mapAttrsRecursive
|
||||
(path: value:
|
||||
# Using heredoc below so that the value is never improperly quoted
|
||||
''
|
||||
read value <<EOF
|
||||
${builtins.toJSON value}
|
||||
EOF
|
||||
ipfs --offline config --json "${concatStringsSep "." path}" "$value"
|
||||
'')
|
||||
({
|
||||
Addresses.API = cfg.apiAddress;
|
||||
Addresses.Gateway = cfg.gatewayAddress;
|
||||
Addresses.Swarm = cfg.swarmAddress;
|
||||
} //
|
||||
cfg.extraConfig))
|
||||
);
|
||||
serviceConfig = {
|
||||
ExecStart = ["" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}"];
|
||||
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}" ];
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
} // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
|
||||
@@ -263,12 +281,16 @@ in {
|
||||
systemd.sockets.ipfs-gateway = {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
socketConfig = {
|
||||
ListenStream = let
|
||||
ListenStream =
|
||||
let
|
||||
fromCfg = multiaddrToListenStream cfg.gatewayAddress;
|
||||
in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||
ListenDatagram = let
|
||||
in
|
||||
[ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||
ListenDatagram =
|
||||
let
|
||||
fromCfg = multiaddrToListenDatagram cfg.gatewayAddress;
|
||||
in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||
in
|
||||
[ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -276,9 +298,11 @@ in {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
# We also include "%t/ipfs.sock" because there is no way to put the "%t"
|
||||
# in the multiaddr.
|
||||
socketConfig.ListenStream = let
|
||||
socketConfig.ListenStream =
|
||||
let
|
||||
fromCfg = multiaddrToListenStream cfg.apiAddress;
|
||||
in [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||
in
|
||||
[ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -37,7 +37,7 @@ let
|
||||
do sleep 1; done
|
||||
|
||||
curl() {
|
||||
${pkgs.curl}/bin/curl -sS -H "X-API-Key: $api_key" \
|
||||
${pkgs.curl}/bin/curl -sSLk -H "X-API-Key: $api_key" \
|
||||
--retry 1000 --retry-delay 1 --retry-all-errors \
|
||||
"$@"
|
||||
}
|
||||
|
||||
@@ -84,47 +84,93 @@
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-nextcloud-pitfalls-during-upgrade">
|
||||
<title>Pitfalls</title>
|
||||
<title>Common problems</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<formalpara>
|
||||
<title>General notes</title>
|
||||
<para>
|
||||
Unfortunately Nextcloud appears to be very stateful when it comes to
|
||||
managing its own configuration. The config file lives in the home directory
|
||||
of the <literal>nextcloud</literal> user (by default
|
||||
<literal>/var/lib/nextcloud/config/config.php</literal>) and is also used to
|
||||
track several states of the application (e.g., whether installed or not).
|
||||
</para>
|
||||
</formalpara>
|
||||
<para>
|
||||
All configuration parameters are also stored in
|
||||
<filename>/var/lib/nextcloud/config/override.config.php</filename> which is generated by
|
||||
the module and linked from the store to ensure that all values from
|
||||
<filename>config.php</filename> can be modified by the module.
|
||||
However <filename>config.php</filename> manages the application's state and shouldn't be
|
||||
touched manually because of that.
|
||||
</para>
|
||||
<warning>
|
||||
<para>Don't delete <filename>config.php</filename>! This file
|
||||
tracks the application's state and a deletion can cause unwanted
|
||||
side-effects!</para>
|
||||
</warning>
|
||||
|
||||
<para>
|
||||
Unfortunately Nextcloud appears to be very stateful when it comes to
|
||||
managing its own configuration. The config file lives in the home directory
|
||||
of the <literal>nextcloud</literal> user (by default
|
||||
<literal>/var/lib/nextcloud/config/config.php</literal>) and is also used to
|
||||
track several states of the application (e.g. whether installed or not).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
All configuration parameters are also stored in
|
||||
<literal>/var/lib/nextcloud/config/override.config.php</literal> which is generated by
|
||||
the module and linked from the store to ensure that all values from <literal>config.php</literal>
|
||||
can be modified by the module.
|
||||
However <literal>config.php</literal> manages the application's state and shouldn't be touched
|
||||
manually because of that.
|
||||
</para>
|
||||
|
||||
<warning>
|
||||
<para>Don't delete <literal>config.php</literal>! This file
|
||||
tracks the application's state and a deletion can cause unwanted
|
||||
side-effects!</para>
|
||||
</warning>
|
||||
|
||||
<warning>
|
||||
<para>Don't rerun <literal>nextcloud-occ
|
||||
maintenance:install</literal>! This command tries to install the application
|
||||
and can cause unwanted side-effects!</para>
|
||||
</warning>
|
||||
|
||||
<para>
|
||||
Nextcloud doesn't allow to move more than one major-version forward. If you're e.g. on
|
||||
<literal>v16</literal>, you cannot upgrade to <literal>v18</literal>, you need to upgrade to
|
||||
<literal>v17</literal> first. This is ensured automatically as long as the
|
||||
<link linkend="opt-system.stateVersion">stateVersion</link> is declared properly. In that case
|
||||
the oldest version available (one major behind the one from the previous NixOS
|
||||
release) will be selected by default and the module will generate a warning that reminds
|
||||
the user to upgrade to latest Nextcloud <emphasis>after</emphasis> that deploy.
|
||||
</para>
|
||||
<warning>
|
||||
<para>Don't rerun <literal>nextcloud-occ
|
||||
maintenance:install</literal>! This command tries to install the application
|
||||
and can cause unwanted side-effects!</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<formalpara>
|
||||
<title>Multiple version upgrades</title>
|
||||
<para>
|
||||
Nextcloud doesn't allow to move more than one major-version forward. E.g., if you're on
|
||||
<literal>v16</literal>, you cannot upgrade to <literal>v18</literal>, you need to upgrade to
|
||||
<literal>v17</literal> first. This is ensured automatically as long as the
|
||||
<link linkend="opt-system.stateVersion">stateVersion</link> is declared properly. In that case
|
||||
the oldest version available (one major behind the one from the previous NixOS
|
||||
release) will be selected by default and the module will generate a warning that reminds
|
||||
the user to upgrade to latest Nextcloud <emphasis>after</emphasis> that deploy.
|
||||
</para>
|
||||
</formalpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<formalpara>
|
||||
<title><literal>Error: Command "upgrade" is not defined.</literal></title>
|
||||
<para>
|
||||
This error usually occurs if the initial installation
|
||||
(<command>nextcloud-occ maintenance:install</command>) has failed. After that, the application
|
||||
is not installed, but the upgrade is attempted to be executed. Further context can
|
||||
be found in <link xlink:href="https://github.com/NixOS/nixpkgs/issues/111175">NixOS/nixpkgs#111175</link>.
|
||||
</para>
|
||||
</formalpara>
|
||||
<para>
|
||||
First of all, it makes sense to find out what went wrong by looking at the logs
|
||||
of the installation via <command>journalctl -u nextcloud-setup</command> and try to fix
|
||||
the underlying issue.
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
If this occurs on an <emphasis>existing</emphasis> setup, this is most likely because
|
||||
the maintenance mode is active. It can be deactivated by running
|
||||
<command>nextcloud-occ maintenance:mode --off</command>. It's advisable though to
|
||||
check the logs first on why the maintenance mode was activated.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<warning><para>Only perform the following measures on
|
||||
<emphasis>freshly installed instances!</emphasis></para></warning>
|
||||
<para>
|
||||
A re-run of the installer can be forced by <emphasis>deleting</emphasis>
|
||||
<filename>/var/lib/nextcloud/config/config.php</filename>. This is the only time
|
||||
advisable because the fresh install doesn't have any state that can be lost.
|
||||
In case that doesn't help, an entire re-creation can be forced via
|
||||
<command>rm -rf ~nextcloud/</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-nextcloud-httpd">
|
||||
|
||||
+48
-47
@@ -50,57 +50,58 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }:
|
||||
let
|
||||
etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag";
|
||||
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload";
|
||||
multipleConfigs = "${nodes.webserver.config.system.build.toplevel}/specialisation/multiple-configs";
|
||||
in
|
||||
''
|
||||
url = "http://localhost/example.html"
|
||||
webserver.wait_for_unit("caddy")
|
||||
webserver.wait_for_open_port("80")
|
||||
testScript = { nodes, ... }:
|
||||
let
|
||||
etagSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/etag";
|
||||
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/specialisation/config-reload";
|
||||
multipleConfigs = "${nodes.webserver.config.system.build.toplevel}/specialisation/multiple-configs";
|
||||
in
|
||||
''
|
||||
url = "http://localhost/example.html"
|
||||
webserver.wait_for_unit("caddy")
|
||||
webserver.wait_for_open_port("80")
|
||||
|
||||
|
||||
def check_etag(url):
|
||||
etag = webserver.succeed(
|
||||
"curl --fail -v '{}' 2>&1 | sed -n -e \"s/^< [Ee][Tt][Aa][Gg]: *//p\"".format(
|
||||
url
|
||||
)
|
||||
)
|
||||
etag = etag.replace("\r\n", " ")
|
||||
http_code = webserver.succeed(
|
||||
"curl --fail --silent --show-error -o /dev/null -w \"%{{http_code}}\" --head -H 'If-None-Match: {}' {}".format(
|
||||
etag, url
|
||||
)
|
||||
)
|
||||
assert int(http_code) == 304, "HTTP code is {}, expected 304".format(http_code)
|
||||
return etag
|
||||
def check_etag(url):
|
||||
etag = webserver.succeed(
|
||||
"curl --fail -v '{}' 2>&1 | sed -n -e \"s/^< [Ee][Tt][Aa][Gg]: *//p\"".format(
|
||||
url
|
||||
)
|
||||
)
|
||||
etag = etag.replace("\r\n", " ")
|
||||
http_code = webserver.succeed(
|
||||
"curl --fail --silent --show-error -o /dev/null -w \"%{{http_code}}\" --head -H 'If-None-Match: {}' {}".format(
|
||||
etag, url
|
||||
)
|
||||
)
|
||||
assert int(http_code) == 304, "HTTP code is {}, expected 304".format(http_code)
|
||||
return etag
|
||||
|
||||
|
||||
with subtest("check ETag if serving Nix store paths"):
|
||||
old_etag = check_etag(url)
|
||||
webserver.succeed(
|
||||
"${etagSystem}/bin/switch-to-configuration test >&2"
|
||||
)
|
||||
webserver.sleep(1)
|
||||
new_etag = check_etag(url)
|
||||
assert old_etag != new_etag, "Old ETag {} is the same as {}".format(
|
||||
old_etag, new_etag
|
||||
)
|
||||
with subtest("check ETag if serving Nix store paths"):
|
||||
old_etag = check_etag(url)
|
||||
webserver.succeed(
|
||||
"${etagSystem}/bin/switch-to-configuration test >&2"
|
||||
)
|
||||
webserver.sleep(1)
|
||||
new_etag = check_etag(url)
|
||||
assert old_etag != new_etag, "Old ETag {} is the same as {}".format(
|
||||
old_etag, new_etag
|
||||
)
|
||||
|
||||
with subtest("config is reloaded on nixos-rebuild switch"):
|
||||
webserver.succeed(
|
||||
"${justReloadSystem}/bin/switch-to-configuration test >&2"
|
||||
)
|
||||
webserver.wait_for_open_port("8080")
|
||||
with subtest("config is reloaded on nixos-rebuild switch"):
|
||||
webserver.succeed(
|
||||
"${justReloadSystem}/bin/switch-to-configuration test >&2"
|
||||
)
|
||||
webserver.wait_for_open_port("8080")
|
||||
|
||||
with subtest("multiple configs are correctly merged"):
|
||||
webserver.succeed(
|
||||
"${multipleConfigs}/bin/switch-to-configuration test >&2"
|
||||
)
|
||||
webserver.wait_for_open_port("8080")
|
||||
webserver.wait_for_open_port("8081")
|
||||
'';
|
||||
})
|
||||
with subtest("multiple configs are correctly merged"):
|
||||
webserver.succeed(
|
||||
"${multipleConfigs}/bin/switch-to-configuration test >&2"
|
||||
)
|
||||
webserver.wait_for_open_port("8080")
|
||||
webserver.wait_for_open_port("8081")
|
||||
'';
|
||||
})
|
||||
|
||||
@@ -1,25 +1,17 @@
|
||||
{ lib, stdenv, fetchFromGitHub, ncurses, asciidoc, docbook_xsl, libxslt, pkg-config }:
|
||||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kakoune-unwrapped";
|
||||
version = "2020.09.01";
|
||||
version = "2021.08.28";
|
||||
src = fetchFromGitHub {
|
||||
repo = "kakoune";
|
||||
owner = "mawww";
|
||||
rev = "v${version}";
|
||||
sha256 = "091qzk0qs7hql0q51hix99srgma35mhdnjfd5ncfba1bmc1h8x5i";
|
||||
sha256 = "13kc68vkrzg89khir6ayyxgbnmz16dhippcnw09hhzxivf5ayzpy";
|
||||
};
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
|
||||
makeFlags = [ "debug=no" ];
|
||||
|
||||
postPatch = ''
|
||||
export PREFIX=$out
|
||||
cd src
|
||||
sed -ie 's#--no-xmllint#--no-xmllint --xsltproc-opts="--nonet"#g' Makefile
|
||||
'';
|
||||
makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
preConfigure = ''
|
||||
export version="v${version}"
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xfig";
|
||||
version = "3.2.8a";
|
||||
version = "3.2.8b";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/mcj/xfig-${version}.tar.xz";
|
||||
sha256 = "0y45i1gqg3r0aq55jk047l1hnv90kqis6ld9lppx6c5jhpmc0hxs";
|
||||
sha256 = "0fndgbm1mkqb1sn2v2kj3nx9mxj70jbp31y2bjvzcmmkry0q3k5j";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -1,18 +1,37 @@
|
||||
{ callPackage, buildFHSUserEnv, undaemonize, unwrapped ? callPackage ./runtime.nix {} }:
|
||||
{ lib, stdenv, writeScript, callPackage, buildFHSUserEnv, undaemonize, unwrapped ? callPackage ./runtime.nix {} }:
|
||||
|
||||
let
|
||||
houdini-runtime = callPackage ./runtime.nix { };
|
||||
in buildFHSUserEnv {
|
||||
name = "houdini-${houdini-runtime.version}";
|
||||
buildFHSUserEnv rec {
|
||||
name = "houdini-${unwrapped.version}";
|
||||
|
||||
extraBuildCommands = ''
|
||||
mkdir -p $out/usr/lib/sesi
|
||||
'';
|
||||
targetPkgs = pkgs: with pkgs; [
|
||||
libGLU libGL alsa-lib fontconfig zlib libpng dbus nss nspr expat pciutils
|
||||
libxkbcommon libudev0-shim tbb
|
||||
] ++ (with xorg; [
|
||||
libICE libSM libXmu libXi libXext libX11 libXrender libXcursor libXfixes
|
||||
libXrender libXcomposite libXdamage libXtst libxcb libXScrnSaver
|
||||
]);
|
||||
|
||||
passthru = {
|
||||
unwrapped = houdini-runtime;
|
||||
inherit unwrapped;
|
||||
};
|
||||
|
||||
runScript = "${undaemonize}/bin/undaemonize ${houdini-runtime}/bin/houdini";
|
||||
}
|
||||
extraInstallCommands = let
|
||||
executables = [ "bin/houdini" "bin/hkey" "houdini/sbin/sesinetd" ];
|
||||
in ''
|
||||
WRAPPER=$out/bin/${name}
|
||||
EXECUTABLES="${lib.concatStringsSep " " executables}"
|
||||
for executable in $EXECUTABLES; do
|
||||
mkdir -p $out/$(dirname $executable)
|
||||
|
||||
echo "#!${stdenv.shell}" >> $out/$executable
|
||||
echo "$WRAPPER ${unwrapped}/$executable \$@" >> $out/$executable
|
||||
done
|
||||
|
||||
cd $out
|
||||
chmod +x $EXECUTABLES
|
||||
'';
|
||||
|
||||
runScript = writeScript "${name}-wrapper" ''
|
||||
exec $@
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,50 +1,14 @@
|
||||
{ lib, stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsa-lib
|
||||
, dbus, xkeyboardconfig, nss, nspr, expat, pciutils, libxkbcommon, bc, addOpenGLRunpath
|
||||
}:
|
||||
{ lib, stdenv, requireFile, bc }:
|
||||
|
||||
let
|
||||
# NOTE: Some dependencies only show in errors when run with QT_DEBUG_PLUGINS=1
|
||||
ld_library_path = builtins.concatStringsSep ":" [
|
||||
"${stdenv.cc.cc.lib}/lib64"
|
||||
(lib.makeLibraryPath [
|
||||
libGLU
|
||||
libGL
|
||||
xorg.libXmu
|
||||
xorg.libXi
|
||||
xorg.libXext
|
||||
xorg.libX11
|
||||
xorg.libXrender
|
||||
xorg.libXcursor
|
||||
xorg.libXfixes
|
||||
xorg.libXrender
|
||||
xorg.libXcomposite
|
||||
xorg.libXdamage
|
||||
xorg.libXtst
|
||||
xorg.libxcb
|
||||
xorg.libXScrnSaver
|
||||
alsa-lib
|
||||
fontconfig
|
||||
libSM
|
||||
libICE
|
||||
zlib
|
||||
libpng
|
||||
dbus
|
||||
addOpenGLRunpath.driverLink
|
||||
nss
|
||||
nspr
|
||||
expat
|
||||
pciutils
|
||||
libxkbcommon
|
||||
])
|
||||
];
|
||||
license_dir = "~/.config/houdini";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "18.0.460";
|
||||
version = "18.5.596";
|
||||
pname = "houdini-runtime";
|
||||
src = requireFile rec {
|
||||
name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz";
|
||||
sha256 = "18rbwszcks2zfn9zbax62rxmq50z9mc3h39b13jpd39qjqdd3jsd";
|
||||
name = "houdini-py3-${version}-linux_x86_64_gcc6.3.tar.gz";
|
||||
sha256 = "1b1k7rkn7svmciijqdwvi9p00srsf81vkb55grjg6xa7fgyidjx1";
|
||||
url = meta.homepage;
|
||||
};
|
||||
|
||||
@@ -52,37 +16,25 @@ stdenv.mkDerivation rec {
|
||||
installPhase = ''
|
||||
patchShebangs houdini.install
|
||||
mkdir -p $out
|
||||
sed -i "s|/usr/lib/sesi|${license_dir}|g" houdini.install
|
||||
./houdini.install --install-houdini \
|
||||
--install-license \
|
||||
--no-install-menus \
|
||||
--no-install-bin-symlink \
|
||||
--auto-install \
|
||||
--no-root-check \
|
||||
--accept-EULA \
|
||||
--accept-EULA 2020-05-05 \
|
||||
$out
|
||||
echo -e "localValidatorDir = ${license_dir}\nlicensingMode = localValidator" > $out/houdini/Licensing.opt
|
||||
sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd_safe
|
||||
sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd.startup
|
||||
echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/bin/app_init.sh
|
||||
echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/bin/app_init.sh
|
||||
echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/houdini/sbin/app_init.sh
|
||||
echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/houdini/sbin/app_init.sh
|
||||
echo "licensingMode = localValidator" >> $out/houdini/Licensing.opt
|
||||
'';
|
||||
postFixup = ''
|
||||
INTERPRETER="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
|
||||
for BIN in $(find $out/bin -type f -executable); do
|
||||
if patchelf $BIN 2>/dev/null ; then
|
||||
echo "Patching ELF $BIN"
|
||||
patchelf --set-interpreter "$INTERPRETER" "$BIN"
|
||||
fi
|
||||
done
|
||||
'';
|
||||
meta = {
|
||||
|
||||
dontFixup = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "3D animation application software";
|
||||
homepage = "https://www.sidefx.com";
|
||||
license = lib.licenses.unfree;
|
||||
platforms = lib.platforms.linux;
|
||||
license = licenses.unfree;
|
||||
platforms = platforms.linux;
|
||||
hydraPlatforms = [ ]; # requireFile src's should be excluded
|
||||
maintainers = with lib.maintainers; [ canndrew kwohlfahrt ];
|
||||
maintainers = with maintainers; [ canndrew kwohlfahrt ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ mkDerivation rec {
|
||||
owner = "openstreetmap";
|
||||
repo = "merkaartor";
|
||||
rev = version;
|
||||
sha256 = "sha256-Gx+gnVbSY8JnG03kO5vVQNlSZRl/hrKTdDbh7lyIMbA=";
|
||||
sha256 = "sha256-I3QNCXzwhEFa8aOdwl3UJV8MLZ9caN9wuaaVrGFRvbQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake qttools ];
|
||||
|
||||
@@ -39,8 +39,9 @@ in stdenv.mkDerivation rec {
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "source.puri.sm";
|
||||
owner = "Librem5";
|
||||
domain = "gitlab.gnome.org";
|
||||
group = "World";
|
||||
owner = "Phosh";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-QAnJlpFjWJvwxGyenmN4IaI9VFn2jwdXpa8VqAmH7Xw=";
|
||||
@@ -76,7 +77,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
meta = with lib; {
|
||||
description = "Wayland compositor for mobile phones like the Librem 5";
|
||||
homepage = "https://source.puri.sm/Librem5/phoc";
|
||||
homepage = "https://gitlab.gnome.org/World/Phosh/phoc";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ archseer masipcat zhaofengli ];
|
||||
platforms = platforms.linux;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,10 +7,10 @@ in
|
||||
rec {
|
||||
firefox = common rec {
|
||||
pname = "firefox";
|
||||
version = "91.0.1";
|
||||
version = "91.0.2";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "9388789bfe3dca596542b082d0eca7b1a6d1bbbf69eb97cc445f563d1a5ff0c9b530f3be02ee290805e311b0fcb392a4f5341e9f256d9764a787b43b232bdf67";
|
||||
sha512 = "82084799524db6661d97d9942a01ca9edec2fae6b503c9dd2d79fca78bfef4ee0a888e5f5cf4cfa2b91d9c9392658bb8218bae2b9bec0fbcacfe73a174a4dbe7";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -65,8 +65,8 @@ rec {
|
||||
};
|
||||
|
||||
kops_1_21 = mkKops rec {
|
||||
version = "1.21.0";
|
||||
sha256 = "sha256-T2i3qpg3GC7yaYCGrN1V5XXrUyT+Ce9Q4aV00gQJ7gM=";
|
||||
version = "1.21.1";
|
||||
sha256 = "sha256-/C/fllgfAovHuyGRY+LM09bsUpYdA8zDw1w0b9HnlBc=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
|
||||
callPackage ./generic.nix {
|
||||
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
|
||||
version = "1.0.9";
|
||||
sha256 = "0ml6l5xq1310ib5zqfdwlxmsmhpc5ybd05z7pc6zgxbma1brxdv4";
|
||||
version = "1.0.10";
|
||||
sha256 = "1yd4j35dmxzg9qapqyq3g3hnhxi5c4f57q43xbim8255bjyn94f0";
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
callPackage ./genericModule.nix {
|
||||
inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
|
||||
version = "1.1.3";
|
||||
sha256 = "0jpc8ff56k9q2kv9l86y3p8h3gqbvx6amvs0cw8sp4i7dqd2ihz2";
|
||||
vendorSha256 = "0az4gr7292lfr5wrwbkdknrigqm15lkbnf5mh517hl3yzv4pb8yr";
|
||||
version = "1.1.4";
|
||||
sha256 = "182f3sxw751s8qg16vbssplhl92i9gshgzvflwwvnxraz2795y7l";
|
||||
vendorSha256 = "1nddknnsvb05sapbj1c52cv2fmibvdg48f88malxqblzw33wfziq";
|
||||
}
|
||||
|
||||
+3
-3
@@ -2,7 +2,7 @@
|
||||
"name": "element-desktop",
|
||||
"productName": "Element",
|
||||
"main": "lib/electron-main.js",
|
||||
"version": "1.8.1",
|
||||
"version": "1.8.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Element",
|
||||
"repository": {
|
||||
@@ -57,7 +57,7 @@
|
||||
"allchange": "^1.0.0",
|
||||
"asar": "^2.0.1",
|
||||
"chokidar": "^3.5.2",
|
||||
"electron": "^13.1.7",
|
||||
"electron": "^13.1.9",
|
||||
"electron-builder": "22.11.4",
|
||||
"electron-builder-squirrel-windows": "22.11.4",
|
||||
"electron-devtools-installer": "^3.1.1",
|
||||
@@ -83,7 +83,7 @@
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"electronVersion": "13.1.6",
|
||||
"electronVersion": "13.1.9",
|
||||
"files": [
|
||||
"package.json",
|
||||
{
|
||||
|
||||
+4
-4
@@ -2002,11 +2002,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "electron___electron_13.1.7.tgz";
|
||||
name = "electron___electron_13.1.9.tgz";
|
||||
path = fetchurl {
|
||||
name = "electron___electron_13.1.7.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron/-/electron-13.1.7.tgz";
|
||||
sha1 = "7e17f5c93a8d182a2a486884fed3dc34ab101be9";
|
||||
name = "electron___electron_13.1.9.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron/-/electron-13.1.9.tgz";
|
||||
sha1 = "668e2632b81e9fa21edfd32876282d3e2ff7fd76";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
|
||||
let
|
||||
executableName = "element-desktop";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vector-im";
|
||||
repo = "element-desktop";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FIKbyfnRuHBbmtjwxNC//n5UiGTCQNr+PeiZEi3+RGI=";
|
||||
sha256 = "sha256-6DPMfx3LF45YWn2do02zDMLYZGBgBrOMJx3XBAO0ZyM=";
|
||||
};
|
||||
electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
|
||||
in
|
||||
|
||||
@@ -12,11 +12,11 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "element-web";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
|
||||
sha256 = "sha256-C2oWYpPxMeSgGKyjUe6Ih13ggZliN4bmAX5cakzW1u8=";
|
||||
sha256 = "sha256-SgVxYPmdgFn6Nll1a6b1Sn2H5I0Vkjorn3gA9d5FamQ=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{ lib, stdenv, fetchurl, dpkg
|
||||
, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome
|
||||
, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
|
||||
, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon }:
|
||||
, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon, libxshmfence }:
|
||||
|
||||
let
|
||||
|
||||
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
|
||||
# source of the latter disappears much faster.
|
||||
version = "8.69.0.77";
|
||||
version = "8.75.0.140";
|
||||
|
||||
rpath = lib.makeLibraryPath [
|
||||
alsa-lib
|
||||
@@ -45,6 +45,7 @@ let
|
||||
libdrm
|
||||
mesa
|
||||
libxkbcommon
|
||||
libxshmfence
|
||||
xorg.libxkbfile
|
||||
xorg.libX11
|
||||
xorg.libXcomposite
|
||||
@@ -68,7 +69,7 @@ let
|
||||
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||
];
|
||||
sha256 = "PaqlPp+BRS0cH7XI4x1/5HqYti63rQThmTtPaghIQH0=";
|
||||
sha256 = "sha256-z3xsl53CSJthSd/BMbMD7RdYQ4z9oI/Rb9jUvd82H4E=";
|
||||
}
|
||||
else
|
||||
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
||||
@@ -121,7 +122,7 @@ in stdenv.mkDerivation {
|
||||
description = "Linux client for skype";
|
||||
homepage = "https://www.skype.com";
|
||||
license = licenses.unfree;
|
||||
maintainers = with lib.maintainers; [ panaeon jraygauthier ];
|
||||
maintainers = with maintainers; [ panaeon jraygauthier ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
# Alphabetic ordering below
|
||||
# Alphabetic ordering below
|
||||
, alsa-lib
|
||||
, at-spi2-atk
|
||||
, atk
|
||||
@@ -59,7 +59,7 @@ let
|
||||
let
|
||||
version = "v20201206-cjk";
|
||||
in
|
||||
"https://github.com/googlefonts/noto-cjk/raw/${version}/NotoSansCJKsc-Regular.otf";
|
||||
"https://github.com/googlefonts/noto-cjk/raw/${version}/NotoSansCJKsc-Regular.otf";
|
||||
sha256 = "sha256-aJXSVNJ+p6wMAislXUn4JQilLhimNSedbc9nAuPVxo4=";
|
||||
};
|
||||
|
||||
@@ -70,13 +70,14 @@ let
|
||||
pulseaudio
|
||||
];
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "onlyoffice-desktopeditors";
|
||||
version = "6.2.0";
|
||||
version = "6.3.1";
|
||||
minor = null;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_amd64.deb";
|
||||
sha256 = "sha256-nKmWxaVVul/rGDIh3u9zCpKu7U0nmrntFFf96xQyzdg=";
|
||||
sha256 = "sha256-WCjCljA7yB7Zm/I4rDZnfgaUQpDUKwbUvL7hkIG8cVM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -160,6 +161,8 @@ in stdenv.mkDerivation rec {
|
||||
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
|
||||
homepage = "https://www.onlyoffice.com/";
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq common-updater-scripts
|
||||
|
||||
version="$(curl -sL "https://api.github.com/repos/ONLYOFFICE/DesktopEditors/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
|
||||
update-source-version onlyoffice-bin "$version"
|
||||
@@ -4,6 +4,7 @@
|
||||
, curl, Cocoa, Foundation, libobjc, libcxx, tzdata
|
||||
, withRecommendedPackages ? true
|
||||
, enableStrictBarrier ? false
|
||||
, enableMemoryProfiling ? false
|
||||
# R as of writing does not support outputting both .so and .a files; it outputs:
|
||||
# --enable-R-static-lib conflicts with --enable-R-shlib and will be ignored
|
||||
, static ? false
|
||||
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
|
||||
--with-libtiff
|
||||
--with-ICU
|
||||
${lib.optionalString enableStrictBarrier "--enable-strict-barrier"}
|
||||
${lib.optionalString enableMemoryProfiling "--enable-memory-profiling"}
|
||||
${if static then "--enable-R-static-lib" else "--enable-R-shlib"}
|
||||
AR=$(type -p ar)
|
||||
AWK=$(type -p gawk)
|
||||
|
||||
@@ -13,19 +13,41 @@ let
|
||||
# Fetch a diff between `base` and `rev` on sage's git server.
|
||||
# Used to fetch trac tickets by setting the `base` to the last release and the
|
||||
# `rev` to the last commit of the ticket.
|
||||
fetchSageDiff = { base, name, rev, sha256, ...}@args: (
|
||||
fetchSageDiff = { base, name, rev, sha256, squashed ? false, ...}@args: (
|
||||
fetchpatch ({
|
||||
inherit name sha256;
|
||||
|
||||
# We used to use
|
||||
# "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}"
|
||||
# but the former way does not squash multiple patches together.
|
||||
url = "https://github.com/sagemath/sage/compare/${base}...${rev}.diff";
|
||||
# There are three places to get changes from:
|
||||
#
|
||||
# 1) From Sage's Trac. Contains all release tags (like "9.4") and all developer
|
||||
# branches (wip patches from tickets), but exports each commit as a separate
|
||||
# patch, so merge commits can lead to conflicts. Used if squashed == false.
|
||||
#
|
||||
# 2) From GitHub's sagemath/sage repo. This lets us use a GH feature that allows
|
||||
# us to choose between a .patch file, with one patch per commit, or a .diff file,
|
||||
# which squashes all commits into a single diff. This is used if squashed ==
|
||||
# true. This repo has all release tags. However, it has no developer branches, so
|
||||
# this option can't be used if a change wasn't yet shipped in a (possibly beta)
|
||||
# release.
|
||||
#
|
||||
# 3) From GitHub's sagemath/sagetrac-mirror repo. Mirrors all developer branches,
|
||||
# but has no release tags. The only use case not covered by 1 or 2 is when we need
|
||||
# to apply a patch from an open ticket that contains merge commits.
|
||||
#
|
||||
# Item 3 could cover all use cases if the sagemath/sagetrack-mirror repo had
|
||||
# release tags, but it requires a sha instead of a release number in "base", which
|
||||
# is inconvenient.
|
||||
urls = if squashed
|
||||
then [
|
||||
"https://github.com/sagemath/sage/compare/${base}...${rev}.diff"
|
||||
"https://github.com/sagemath/sagetrac-mirror/compare/${base}...${rev}.diff"
|
||||
]
|
||||
else [ "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}" ];
|
||||
|
||||
# We don't care about sage's own build system (which builds all its dependencies).
|
||||
# Exclude build system changes to avoid conflicts.
|
||||
excludes = [ "build/*" ];
|
||||
} // builtins.removeAttrs args [ "rev" "base" "sha256" ])
|
||||
} // builtins.removeAttrs args [ "rev" "base" "sha256" "squashed" ])
|
||||
);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -80,6 +102,14 @@ stdenv.mkDerivation rec {
|
||||
# now set the cache dir to be within the .sage directory. This is not
|
||||
# strictly necessary, but keeps us from littering in the user's HOME.
|
||||
./patches/sympow-cache.patch
|
||||
|
||||
# https://trac.sagemath.org/ticket/32305
|
||||
(fetchSageDiff {
|
||||
base = "9.4";
|
||||
name = "networkx-2.6-upgrade.patch";
|
||||
rev = "9808325853ba9eb035115e5b056305a1c9d362a0";
|
||||
sha256 = "sha256-gJSqycCtbAVr5qnVEbHFUvIuTOvaxFIeffpzd6nH4DE=";
|
||||
})
|
||||
];
|
||||
|
||||
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
source 'https://rubygems.org'
|
||||
gem 'danger-gitlab'
|
||||
@@ -0,0 +1,92 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
claide (1.0.3)
|
||||
claide-plugins (0.9.2)
|
||||
cork
|
||||
nap
|
||||
open4 (~> 1.3)
|
||||
colored2 (3.1.2)
|
||||
cork (0.3.0)
|
||||
colored2 (~> 3.1)
|
||||
danger (8.3.1)
|
||||
claide (~> 1.0)
|
||||
claide-plugins (>= 0.9.2)
|
||||
colored2 (~> 3.1)
|
||||
cork (~> 0.1)
|
||||
faraday (>= 0.9.0, < 2.0)
|
||||
faraday-http-cache (~> 2.0)
|
||||
git (~> 1.7)
|
||||
kramdown (~> 2.3)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
no_proxy_fix
|
||||
octokit (~> 4.7)
|
||||
terminal-table (>= 1, < 4)
|
||||
danger-gitlab (8.0.0)
|
||||
danger
|
||||
gitlab (~> 4.2, >= 4.2.0)
|
||||
faraday (1.7.0)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0.1)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.1)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-http-cache (2.2.0)
|
||||
faraday (>= 0.8)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
git (1.9.1)
|
||||
rchardet (~> 1.8)
|
||||
gitlab (4.17.0)
|
||||
httparty (~> 0.18)
|
||||
terminal-table (~> 1.5, >= 1.5.1)
|
||||
httparty (0.18.1)
|
||||
mime-types (~> 3.0)
|
||||
multi_xml (>= 0.5.2)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
mime-types (3.3.1)
|
||||
mime-types-data (~> 3.2015)
|
||||
mime-types-data (3.2021.0704)
|
||||
multi_xml (0.6.0)
|
||||
multipart-post (2.1.1)
|
||||
nap (1.1.0)
|
||||
no_proxy_fix (0.1.2)
|
||||
octokit (4.21.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
open4 (1.3.4)
|
||||
public_suffix (4.0.6)
|
||||
rchardet (1.8.0)
|
||||
rexml (3.2.5)
|
||||
ruby2_keywords (0.0.5)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
unicode-display_width (1.7.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
danger-gitlab
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
||||
@@ -0,0 +1,14 @@
|
||||
{ lib, bundlerApp }:
|
||||
|
||||
bundlerApp {
|
||||
pname = "danger-gitlab";
|
||||
gemdir = ./.;
|
||||
exes = [ "danger" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A gem that exists to ensure all dependencies are set up for Danger with GitLab";
|
||||
homepage = "https://github.com/danger/danger-gitlab-gem";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.serokell.members;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,388 @@
|
||||
{
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.0";
|
||||
};
|
||||
claide = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.3";
|
||||
};
|
||||
claide-plugins = {
|
||||
dependencies = ["cork" "nap" "open4"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0bhw5j985qs48v217gnzva31rw5qvkf7qj8mhp73pcks0sy7isn7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.9.2";
|
||||
};
|
||||
colored2 = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.2";
|
||||
};
|
||||
cork = {
|
||||
dependencies = ["colored2"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1g6l780z1nj4s3jr11ipwcj8pjbibvli82my396m3y32w98ar850";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.0";
|
||||
};
|
||||
danger = {
|
||||
dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12nmycrlwr8ca2s0fx76k81gjw12iz15k1n0qanszv5d4l1ykj2l";
|
||||
type = "gem";
|
||||
};
|
||||
version = "8.3.1";
|
||||
};
|
||||
danger-gitlab = {
|
||||
dependencies = ["danger" "gitlab"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1a530kx5s5rbx5yx3jqay56lkksqh0yj468hcpg16faiyv8dfza9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "8.0.0";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0r6ik2yvsbx6jj30vck32da2bbvj4m0gf4jhp09vr75i1d6jzfvb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
};
|
||||
faraday-em_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-em_synchrony = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-excon = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
faraday-http-cache = {
|
||||
dependencies = ["faraday"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0lhfwlk4mhmw9pdlgdsl2bq4x45w7s51jkxjryf18wym8iiw36g7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.0";
|
||||
};
|
||||
faraday-httpclient = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-net_http_persistent = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
};
|
||||
faraday-patron = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-rack = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
git = {
|
||||
dependencies = ["rchardet"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0s6426k24ph44kbx1qb16ciar170iczs8ivyl29ckin2ygmrrlvm";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.9.1";
|
||||
};
|
||||
gitlab = {
|
||||
dependencies = ["httparty" "terminal-table"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "00p8z8sxk78zik2dwdhflkvaynp5ximy2xc8cw6bz93gkr1xy8n3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.17.0";
|
||||
};
|
||||
httparty = {
|
||||
dependencies = ["mime-types" "multi_xml"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "17gpnbf2a7xkvsy20jig3ljvx8hl5520rqm9pffj2jrliq1yi3w7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.18.1";
|
||||
};
|
||||
kramdown = {
|
||||
dependencies = ["rexml"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.1";
|
||||
};
|
||||
kramdown-parser-gfm = {
|
||||
dependencies = ["kramdown"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
mime-types = {
|
||||
dependencies = ["mime-types-data"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.3.1";
|
||||
};
|
||||
mime-types-data = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0dlxwc75iy0dj23x824cxpvpa7c8aqcpskksrmb32j6m66h5mkcy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2021.0704";
|
||||
};
|
||||
multi_xml = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.0";
|
||||
};
|
||||
multipart-post = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.1";
|
||||
};
|
||||
nap = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
no_proxy_fix = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "006dmdb640v1kq0sll3dnlwj1b0kpf3i1p27ygyffv8lpcqlr6sf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.2";
|
||||
};
|
||||
octokit = {
|
||||
dependencies = ["faraday" "sawyer"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.21.0";
|
||||
};
|
||||
open4 = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.4";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.6";
|
||||
};
|
||||
rchardet = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
};
|
||||
rexml = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.5";
|
||||
};
|
||||
ruby2_keywords = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.5";
|
||||
};
|
||||
sawyer = {
|
||||
dependencies = ["addressable" "faraday"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.2";
|
||||
};
|
||||
terminal-table = {
|
||||
dependencies = ["unicode-display_width"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
};
|
||||
unicode-display_width = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
};
|
||||
}
|
||||
@@ -2,9 +2,13 @@
|
||||
|
||||
, coreutils
|
||||
, git
|
||||
, libiconv
|
||||
, ncurses
|
||||
, rustPlatform
|
||||
, sqlite
|
||||
, stdenv
|
||||
, Security
|
||||
, SystemConfiguration
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
@@ -33,6 +37,10 @@ rustPlatform.buildRustPackage rec {
|
||||
buildInputs = [
|
||||
ncurses
|
||||
sqlite
|
||||
] ++ lib.optionals (stdenv.isDarwin) [
|
||||
Security
|
||||
SystemConfiguration
|
||||
libiconv
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
@@ -44,6 +52,6 @@ rustPlatform.buildRustPackage rec {
|
||||
description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
|
||||
homepage = "https://github.com/arxanas/git-branchless";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ nh2 ];
|
||||
maintainers = with maintainers; [ msfjarvis nh2 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "lima";
|
||||
version = "0.6.0";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lima-vm";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-UwsAeU7Me2UN9pUWvqGgQ7XSNcrClXYOA+9F6yO2aqA=";
|
||||
sha256 = "sha256-x4IRHxmVeP87M7rSrQWDd9pj2Rb9uGu133mExepxX6Q=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-vdqLdSXQ2ywZoG7ROQP9PLWUqhoOO7N5li+xjc2HtzM=";
|
||||
vendorSha256 = "sha256-PeIEIUX/PwwnbZfXnK3IsENO+zRYLhljBRe910aZgKs=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "podman";
|
||||
version = "3.3.0";
|
||||
version = "3.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "podman";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-EDNpGDjsXULwtUYFLh4u6gntK//rsLLpYgpxRt4R1kc=";
|
||||
sha256 = "sha256-DVRLdJFYD5Ovc0n5SoMv71GPTuBO3wfqREcGRJEuND0=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
, wrapGAppsHook
|
||||
, libhandy
|
||||
, libxkbcommon
|
||||
, libgudev
|
||||
, callaudiod
|
||||
, pulseaudio
|
||||
, glib
|
||||
, gtk3
|
||||
@@ -24,27 +26,20 @@
|
||||
, networkmanager
|
||||
, polkit
|
||||
, libsecret
|
||||
, writeText
|
||||
}:
|
||||
|
||||
let
|
||||
gvc = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "libgnome-volume-control";
|
||||
rev = "ae1a34aafce7026b8c0f65a43c9192d756fe1057";
|
||||
sha256 = "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "phosh";
|
||||
version = "0.12.1";
|
||||
version = "0.13.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "source.puri.sm";
|
||||
owner = "Librem5";
|
||||
domain = "gitlab.gnome.org";
|
||||
group = "World";
|
||||
owner = "Phosh";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "048g5sp9jgfiwq6n8my4msm7wy3pdhbg0wxqxvps4m8qf8wa7ffq";
|
||||
fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
|
||||
sha256 = "sha256-dKQK4mGe/dvNlca/XMDeq1Q4dH/WBF/rtiUh8RssF5c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -60,6 +55,8 @@ in stdenv.mkDerivation rec {
|
||||
libhandy
|
||||
libsecret
|
||||
libxkbcommon
|
||||
libgudev
|
||||
callaudiod
|
||||
pulseaudio
|
||||
glib
|
||||
gcr
|
||||
@@ -86,11 +83,6 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
mesonFlags = [ "-Dsystemd=true" "-Dcompositor=${phoc}/bin/phoc" ];
|
||||
|
||||
postUnpack = ''
|
||||
rmdir $sourceRoot/subprojects/gvc
|
||||
ln -s ${gvc} $sourceRoot/subprojects/gvc
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/post_install.py
|
||||
patchShebangs build-aux/post_install.py
|
||||
@@ -128,9 +120,9 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
meta = with lib; {
|
||||
description = "A pure Wayland shell prototype for GNOME on mobile devices";
|
||||
homepage = "https://source.puri.sm/Librem5/phosh";
|
||||
homepage = "https://gitlab.gnome.org/World/Phosh/phosh";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ archseer jtojnar masipcat zhaofengli ];
|
||||
maintainers = with maintainers; [ jtojnar masipcat zhaofengli ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,29 +1,51 @@
|
||||
{ lib, stdenv, fetchurl, libX11, xorgproto }:
|
||||
{ autoreconfHook
|
||||
, docbook_xml_dtd_44
|
||||
, docbook-xsl-ns
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, libX11
|
||||
, libXpm
|
||||
, libxslt
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stalonetray";
|
||||
version = "0.8.3";
|
||||
version = "0.8.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/stalonetray/${pname}-${version}.tar.bz2";
|
||||
sha256 = "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n";
|
||||
src = fetchFromGitHub {
|
||||
owner = "kolbusa";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-grxPqSYPLUstLIOKqzMActaSQ2ftYrjbalfR4HcPDRY=";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 xorgproto ];
|
||||
preConfigure =
|
||||
let
|
||||
db_root = "${docbook-xsl-ns}/share/xml/docbook-xsl-ns";
|
||||
ac_str = "AC_SUBST(DOCBOOK_ROOT)";
|
||||
ac_str_sub = "DOCBOOK_ROOT=${db_root}; ${ac_str}";
|
||||
in
|
||||
''
|
||||
substituteInPlace configure.ac --replace '${ac_str}' '${ac_str_sub}'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
docbook-xsl-ns
|
||||
docbook_xml_dtd_44
|
||||
libX11
|
||||
libXpm
|
||||
libxslt
|
||||
];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Stand alone tray";
|
||||
homepage = "http://stalonetray.sourceforge.net";
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://github.com/kolbusa/stalonetray";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateInfo = {
|
||||
downloadPage = "https://sourceforge.net/projects/stalonetray/files/";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,67 +1,46 @@
|
||||
{ lib, stdenv
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, autoconf
|
||||
, automake
|
||||
, fontconfig
|
||||
, gmp-static
|
||||
, gperf
|
||||
, libX11
|
||||
, libpoly
|
||||
, perl
|
||||
, flex
|
||||
, bison
|
||||
, pkg-config
|
||||
, itktcl
|
||||
, incrtcl
|
||||
, tcl
|
||||
, tk
|
||||
, verilog
|
||||
, xorg
|
||||
, yices
|
||||
, zlib
|
||||
, ghc
|
||||
}:
|
||||
, gmp-static
|
||||
, verilog
|
||||
, asciidoctor
|
||||
, tex }:
|
||||
|
||||
let
|
||||
ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
|
||||
ghcWithPackages = ghc.withPackages (g: (with g; [ old-time regex-compat syb split ]));
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "bluespec";
|
||||
version = "unstable-2021.03.29";
|
||||
version = "2021.07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "B-Lang-org";
|
||||
repo = "bsc";
|
||||
rev = "00185f7960bd1bd5554a1167be9f37e1f18ac454";
|
||||
sha256 = "1bcdhql4cla137d8xr8m2h21dyxv0jpjpalpr5mgj2jxqfsmkbrn";
|
||||
};
|
||||
owner = "B-Lang-org";
|
||||
repo = "bsc";
|
||||
rev = version;
|
||||
sha256 = "0gw8wyp65lpkyfhv3laazz9qypdl8qkp1j7cqp0gv11592a9p5qw";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
# https://github.com/B-Lang-org/bsc/pull/278
|
||||
patches = [ ./libstp_stub_makefile.patch ];
|
||||
|
||||
buildInputs = yices.buildInputs ++ [
|
||||
zlib
|
||||
tcl tk
|
||||
libX11 # tcltk
|
||||
xorg.libXft
|
||||
fontconfig
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
automake autoconf
|
||||
perl
|
||||
flex
|
||||
bison
|
||||
pkg-config
|
||||
ghcWithPackages
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
verilog
|
||||
];
|
||||
|
||||
|
||||
postUnpack = ''
|
||||
mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2
|
||||
# XXX: only works because yices.src isn't a tarball.
|
||||
@@ -79,25 +58,65 @@ in stdenv.mkDerivation rec {
|
||||
substituteInPlace src/comp/Makefile \
|
||||
--replace 'BINDDIR' 'BINDIR' \
|
||||
--replace 'install-bsc install-bluetcl' 'install-bsc install-bluetcl $(UTILEXES) install-utils'
|
||||
|
||||
# allow running bsc to bootstrap
|
||||
export LD_LIBRARY_PATH=/build/source/inst/lib/SAT
|
||||
export LD_LIBRARY_PATH=$PWD/inst/lib/SAT
|
||||
'';
|
||||
|
||||
buildInputs = yices.buildInputs ++ [
|
||||
fontconfig
|
||||
libX11 # tcltk
|
||||
tcl
|
||||
tk
|
||||
xorg.libXft
|
||||
zlib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
automake
|
||||
autoconf
|
||||
asciidoctor
|
||||
bison
|
||||
flex
|
||||
ghcWithPackages
|
||||
perl
|
||||
pkg-config
|
||||
tex
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"release"
|
||||
"NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices.src instead of the subrepo)
|
||||
"NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12
|
||||
"LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43
|
||||
"STP_STUB=1"
|
||||
];
|
||||
|
||||
installPhase = "mv inst $out";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkInputs = [
|
||||
gmp-static
|
||||
verilog
|
||||
];
|
||||
|
||||
checkTarget = "check-smoke";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
mv inst/bin $out
|
||||
mv inst/lib $out
|
||||
|
||||
# fragile, I know..
|
||||
mkdir -p $doc/share/doc/bsc
|
||||
mv inst/README $doc/share/doc/bsc
|
||||
mv inst/ReleaseNotes.* $doc/share/doc/bsc
|
||||
mv inst/doc/*.pdf $doc/share/doc/bsc
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Toolchain for the Bluespec Hardware Definition Language";
|
||||
homepage = "https://github.com/B-Lang-org/bsc";
|
||||
license = lib.licenses.bsd3;
|
||||
homepage = "https://github.com/B-Lang-org/bsc";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
# darwin fails at https://github.com/B-Lang-org/bsc/pull/35#issuecomment-583731562
|
||||
# aarch64 fails, as GHC fails with "ghc: could not execute: opt"
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
}:
|
||||
|
||||
{
|
||||
name ? "${attrs.pname}-${attrs.version}"
|
||||
|
||||
pname
|
||||
, version
|
||||
|
||||
# by default prefix `name` e.g. "lua5.2-${name}"
|
||||
@@ -60,7 +59,9 @@ name ? "${attrs.pname}-${attrs.version}"
|
||||
# The two above arguments have access to builder variables -- e.g. to $out
|
||||
|
||||
# relative to srcRoot, path to the rockspec to use when using rocks
|
||||
, rockspecFilename ? "../*.rockspec"
|
||||
, rockspecFilename ? null
|
||||
# relative to srcRoot, path to folder that contains the expected rockspec
|
||||
, rockspecDir ? "."
|
||||
|
||||
# must be set for packages that don't have a rock
|
||||
, knownRockspec ? null
|
||||
@@ -71,6 +72,9 @@ name ? "${attrs.pname}-${attrs.version}"
|
||||
# Keep extra attributes from `attrs`, e.g., `patchPhase', etc.
|
||||
|
||||
let
|
||||
generatedRockspecFilename = "${rockspecDir}/${pname}-${version}.rockspec";
|
||||
|
||||
|
||||
# TODO fix warnings "Couldn't load rockspec for ..." during manifest
|
||||
# construction -- from initial investigation, appears it will require
|
||||
# upstream luarocks changes to fix cleanly (during manifest construction,
|
||||
@@ -144,7 +148,7 @@ in
|
||||
toLuaModule ( lua.stdenv.mkDerivation (
|
||||
builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariables"] // {
|
||||
|
||||
name = namePrefix + name;
|
||||
name = namePrefix + pname + "-" + version;
|
||||
|
||||
buildInputs = [ wrapLua lua.pkgs.luarocks ]
|
||||
++ buildInputs
|
||||
@@ -159,20 +163,8 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
|
||||
# @-patterns do not capture formal argument default values, so we need to
|
||||
# explicitly inherit this for it to be available as a shell variable in the
|
||||
# builder
|
||||
inherit rockspecFilename;
|
||||
inherit rocksSubdir;
|
||||
|
||||
# enabled only for src.rock
|
||||
setSourceRoot= let
|
||||
name_only= lib.getName name;
|
||||
in
|
||||
lib.optionalString (knownRockspec == null) ''
|
||||
# format is rockspec_basename/source_basename
|
||||
# rockspec can set it via spec.source.dir
|
||||
folder=$(find . -mindepth 2 -maxdepth 2 -type d -path '*${name_only}*/*'|head -n1)
|
||||
sourceRoot="$folder"
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
@@ -181,6 +173,9 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
|
||||
EOF
|
||||
export LUAROCKS_CONFIG="$PWD/${luarocks_config}";
|
||||
''
|
||||
+ lib.optionalString (rockspecFilename == null) ''
|
||||
rockspecFilename="${generatedRockspecFilename}"
|
||||
''
|
||||
+ lib.optionalString (knownRockspec != null) ''
|
||||
|
||||
# prevents the following type of error:
|
||||
@@ -192,6 +187,7 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
# TODO could be moved to configurePhase
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "rubygems";
|
||||
version = "3.2.24";
|
||||
version = "3.2.26";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
|
||||
sha256 = "09ff830a043y6s7390hsg3k55ffpifb1zsvs0dhz8z8pypwgiscl";
|
||||
sha256 = "sha256-9wa6lOWnua8zBblQKRgjjiTVPYp2TW0n7XOvgW7u1e8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, vala, glib, liboauth, gtk3
|
||||
{ lib, stdenv, fetchurl, fetchpatch, meson, ninja, pkg-config, gettext, vala, glib, liboauth, gtk3
|
||||
, gtk-doc, docbook_xsl, docbook_xml_dtd_43
|
||||
, libxml2, gnome, gobject-introspection, libsoup, totem-pl-parser }:
|
||||
|
||||
@@ -16,6 +16,14 @@ in stdenv.mkDerivation rec {
|
||||
sha256 = "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2021-39365.patch";
|
||||
url = "https://gitlab.gnome.org/GNOME/grilo/-/commit/cd2472e506dafb1bb8ae510e34ad4797f63e263e.patch";
|
||||
sha256 = "1i1p21vlms43iawg4dl1dibnpsbnkx27kcfvllnx76q07bfrpwzm";
|
||||
})
|
||||
];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
mesonFlags = [
|
||||
|
||||
@@ -5,20 +5,17 @@
|
||||
boost,
|
||||
xercesc,
|
||||
icu,
|
||||
|
||||
dos2unix,
|
||||
fetchpatch,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libe57format";
|
||||
version = "2.1";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "asmaloney";
|
||||
repo = "libE57Format";
|
||||
rev = "v${version}";
|
||||
sha256 = "05z955q68wjbd9gc5fw32nqg69xc82n2x75j5vchxzkgnn3adcpi";
|
||||
sha256 = "15l23spjvak5h3n7aj3ggy0c3cwcg8mvnc9jlbd9yc2ra43bx7bp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -36,31 +33,6 @@ stdenv.mkDerivation rec {
|
||||
xercesc
|
||||
];
|
||||
|
||||
# TODO: Remove CMake patching when https://github.com/asmaloney/libE57Format/pull/60 is available.
|
||||
|
||||
# GNU patch cannot patch `CMakeLists.txt` that has CRLF endings,
|
||||
# see https://unix.stackexchange.com/questions/239364/how-to-fix-hunk-1-failed-at-1-different-line-endings-message/243748#243748
|
||||
# so convert it first.
|
||||
prePatch = ''
|
||||
${dos2unix}/bin/dos2unix CMakeLists.txt
|
||||
'';
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "libE57Format-cmake-Fix-config-filename.patch";
|
||||
url = "https://github.com/asmaloney/libE57Format/commit/279d8d6b60ee65fb276cdbeed74ac58770a286f9.patch";
|
||||
sha256 = "0fbf92hs1c7yl169i7zlbaj9yhrd1yg3pjf0wsqjlh8mr5m6rp14";
|
||||
})
|
||||
];
|
||||
# It appears that while the patch has
|
||||
# diff --git a/cmake/E57Format-config.cmake b/cmake/e57format-config.cmake
|
||||
# similarity index 100%
|
||||
# rename from cmake/E57Format-config.cmake
|
||||
# rename to cmake/e57format-config.cmake
|
||||
# GNU patch doesn't interpret that.
|
||||
postPatch = ''
|
||||
mv cmake/E57Format-config.cmake cmake/e57format-config.cmake
|
||||
'';
|
||||
|
||||
# The build system by default builds ONLY static libraries, and with
|
||||
# `-DE57_BUILD_SHARED=ON` builds ONLY shared libraries, see:
|
||||
# https://github.com/asmaloney/libE57Format/issues/48
|
||||
@@ -79,7 +51,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library for reading & writing the E57 file format (fork of E57RefImpl)";
|
||||
description = "Library for reading & writing the E57 file format";
|
||||
homepage = "https://github.com/asmaloney/libE57Format";
|
||||
license = licenses.boost;
|
||||
maintainers = with maintainers; [ chpatrick nh2 ];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ lib, stdenv, fetchurl, perl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.12.2";
|
||||
version = "0.13.0";
|
||||
pname = "liburcu";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://lttng.org/files/urcu/userspace-rcu-${version}.tar.bz2";
|
||||
sha256 = "sha256-Tu/BHk9sIS/H2E2HHhzBOdoGaaRv8/2lV6b91NdMpns=";
|
||||
sha256 = "sha256-y7INvhqJLCpNiJi6xDFhduWFOSaT1Jh2bMu8aM8guiA=";
|
||||
};
|
||||
|
||||
checkInputs = [ perl ];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ callPackage, fetchFromGitHub, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "3.2.0";
|
||||
version = "3.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "msgpack";
|
||||
repo = "msgpack-c";
|
||||
rev = "cpp-${version}";
|
||||
sha256 = "07n0kdmdjn3amwfg7fqz3xac1yrrxh7d2l6p4pgc6as087pbm8pl";
|
||||
sha256 = "02dxgzxlwn8g9ca2j4m0rjvdq1k2iciy6ickj615daz5w8pcjajd";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -127,6 +127,8 @@ let
|
||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||
in {
|
||||
|
||||
inherit callPackage qtCompatVersion qtModule srcs;
|
||||
|
||||
mkDerivationWith =
|
||||
import ../mkDerivation.nix
|
||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||
@@ -144,6 +146,7 @@ let
|
||||
inherit (darwin) libobjc;
|
||||
};
|
||||
|
||||
qt3d = callPackage ../modules/qt3d.nix {};
|
||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||
qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
|
||||
qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
|
||||
@@ -192,7 +195,7 @@ let
|
||||
|
||||
env = callPackage ../qt-env.nix {};
|
||||
full = env "qt-full-${qtbase.version}" ([
|
||||
qtcharts qtconnectivity qtdeclarative qtdoc qtgamepad qtgraphicaleffects
|
||||
qt3d qtcharts qtconnectivity qtdeclarative qtdoc qtgamepad qtgraphicaleffects
|
||||
qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
|
||||
qtscript qtsensors qtserialport qtsvg qttools qttranslations
|
||||
qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
|
||||
|
||||
@@ -139,6 +139,8 @@ let
|
||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||
in {
|
||||
|
||||
inherit callPackage qtCompatVersion qtModule srcs;
|
||||
|
||||
mkDerivationWith =
|
||||
import ../mkDerivation.nix
|
||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||
@@ -156,6 +158,7 @@ let
|
||||
inherit (darwin) libobjc;
|
||||
};
|
||||
|
||||
qt3d = callPackage ../modules/qt3d.nix {};
|
||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||
qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
|
||||
qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
|
||||
@@ -202,7 +205,7 @@ let
|
||||
|
||||
env = callPackage ../qt-env.nix {};
|
||||
full = env "qt-full-${qtbase.version}" ([
|
||||
qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
|
||||
qt3d qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
|
||||
qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
|
||||
qtscript qtsensors qtserialport qtsvg qttools qttranslations
|
||||
qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
|
||||
|
||||
@@ -165,6 +165,8 @@ let
|
||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||
in {
|
||||
|
||||
inherit callPackage qtCompatVersion qtModule srcs;
|
||||
|
||||
mkDerivationWith =
|
||||
import ../mkDerivation.nix
|
||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||
@@ -182,6 +184,7 @@ let
|
||||
inherit (darwin) libobjc;
|
||||
};
|
||||
|
||||
qt3d = callPackage ../modules/qt3d.nix {};
|
||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||
qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
|
||||
qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
|
||||
@@ -231,7 +234,7 @@ let
|
||||
|
||||
env = callPackage ../qt-env.nix {};
|
||||
full = env "qt-full-${qtbase.version}" ([
|
||||
qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
|
||||
qt3d qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
|
||||
qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
|
||||
qtscript qtsensors qtserialport qtsvg qttools qttranslations
|
||||
qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{ qtModule, qtbase, qtdeclarative }:
|
||||
|
||||
qtModule {
|
||||
pname = "qt3d";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tclap";
|
||||
version = "1.2.3";
|
||||
version = "1.2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/tclap/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-GefbUoFUDxVDSHcLw6dIRXX09Umu+OAKq8yUs5X3c8k=";
|
||||
sha256 = "sha256-Y0xbWduxzLydal9t5JSiV+KaP1nctvwwRF/zm0UYhXQ=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -22,12 +22,15 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
glib
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
libusb1
|
||||
];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@ else
|
||||
attrs
|
||||
//
|
||||
{
|
||||
name = "lua${lua.luaversion}-" + attrs.name;
|
||||
name = "lua${lua.luaversion}-" + attrs.pname + "-" + attrs.version;
|
||||
propagatedBuildInputs = propagatedBuildInputs ++ [
|
||||
lua # propagate it for its setup-hook
|
||||
];
|
||||
|
||||
@@ -121,6 +121,11 @@ with super;
|
||||
sha256 = "0gfvvbri9kyzhvq3bvdbj2l6mwvlz040dk4mrd5m9gz79f7w109c";
|
||||
})
|
||||
];
|
||||
|
||||
# there is only a rockspec.in in the repo, the actual rockspec must be generated
|
||||
preConfigure = ''
|
||||
make rock
|
||||
'';
|
||||
});
|
||||
|
||||
lrexlib-gnu = super.lrexlib-gnu.override({
|
||||
@@ -141,10 +146,6 @@ with super;
|
||||
];
|
||||
});
|
||||
|
||||
ltermbox = super.ltermbox.override( {
|
||||
disabled = !isLua51 || isLuaJIT;
|
||||
});
|
||||
|
||||
lua-iconv = super.lua-iconv.override({
|
||||
buildInputs = [
|
||||
pkgs.libiconv
|
||||
@@ -348,6 +349,19 @@ with super;
|
||||
'';
|
||||
});
|
||||
|
||||
std-_debug = super.std-_debug.overrideAttrs(oa: {
|
||||
# run make to generate lib/std/_debug/version.lua
|
||||
preConfigure = ''
|
||||
make all
|
||||
'';
|
||||
});
|
||||
|
||||
std-normalize = super.std-normalize.overrideAttrs(oa: {
|
||||
# run make to generate lib/std/_debug/version.lua
|
||||
preConfigure = ''
|
||||
make all
|
||||
'';
|
||||
});
|
||||
|
||||
# aliases
|
||||
cjson = super.lua-cjson;
|
||||
|
||||
@@ -56,5 +56,8 @@ stdenv.mkDerivation {
|
||||
platforms = ocaml.meta.platforms or [];
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.vbgl ];
|
||||
# See https://github.com/dbuenzli/uunf/issues/15#issuecomment-903151264
|
||||
broken = lib.versions.majorMinor ocaml.version == "4.08"
|
||||
&& stdenv.hostPlatform.isAarch64;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "coqpit";
|
||||
version = "0.0.10";
|
||||
version = "0.0.13";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coqui-ai";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1gcj5sffcmlvhhk6wbvmxppjpckb90q1avc07jbnb1vvrb2h9lr0";
|
||||
sha256 = "sha256-YzCO/i0SMyXRAgiZ8Y97bHHuGFeSF8GqUjvNoHLwXZQ=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "karton-dashboard";
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CERT-Polska";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0qygv9lkd1jad5b4l0zz6hsi7m8q0fmpwaa6hpp7p9x6ql7gnyl8";
|
||||
sha256 = "sha256-C1wtpHyuTlNS6Se1rR0RGUl3xht4aphAtddKlIsOAkI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ntc-templates";
|
||||
version = "2.3.0";
|
||||
version = "2.3.1";
|
||||
format = "pyproject";
|
||||
disabled = isPy27;
|
||||
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "networktocode";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1a9v2j9s7niyacglhgp58zg1wcynakacz9zg4zcv2q85hb87m2m9";
|
||||
sha256 = "0s4my422cdmjfz787a7697938qfnllxwx004jfp3a8alzw2h30g1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pg8000";
|
||||
version = "1.21.0";
|
||||
version = "1.21.1";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1msj0vk14fbsis8yfk0my1ygpcli9jz3ivwdi9k6ii5i6330i4f9";
|
||||
sha256 = "sha256-HMvuyTtw4uhTLfOr3caQXHghkJyW3Oqu91G1fFKRhpo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyupgrade";
|
||||
version = "2.24.0";
|
||||
version = "2.25.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "asottile";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-vWju0D5O3RtDiv9uYQqd9kEwTIcV9QTHYXM/icB/rM0=";
|
||||
sha256 = "0mbx5gv6ns896mxzml8q9r9dn5wvnrb7gc5iw49fdwbb0yw9yhyx";
|
||||
};
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
@@ -2,23 +2,32 @@
|
||||
, asn1crypto
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytest-mock
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "scramp";
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tlocke";
|
||||
repo = "scramp";
|
||||
rev = version;
|
||||
sha256 = "sha256-aXuRIW/3qBzan8z3EzSSxqaZfa3WnPhlviNa2ugIjik=";
|
||||
sha256 = "sha256-HEt2QxNHX9Oqx+o0++ZtS61SVHra3nLAqv7NbQWVV+E=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ asn1crypto ];
|
||||
propagatedBuildInputs = [
|
||||
asn1crypto
|
||||
];
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
checkInputs = [
|
||||
pytest-mock
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "scramp" ];
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zeroconf";
|
||||
version = "0.36.0";
|
||||
version = "0.36.2";
|
||||
format = "setuptools";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "jstasiak";
|
||||
repo = "python-zeroconf";
|
||||
rev = version;
|
||||
sha256 = "sha256-HeqsyAmqCUZ1htTv0tHywqYl3ZZBklTU37qaPV++vhU=";
|
||||
sha256 = "sha256-3QRrGfyMXiSas70IL19/DQAPf7I6vdg/itiZlD4/pvg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
+1
-1
@@ -10268,7 +10268,7 @@ in with self; {
|
||||
implicitMeasures = derive2 { name="implicitMeasures"; version="0.2.0"; sha256="0w0dwnzfhw5v5j7q3zpfsca4ydmq7b9fzspvyf9sibyh587isb9c"; depends=[ggplot2 stringr tidyr xtable]; };
|
||||
implied = derive2 { name="implied"; version="0.3.1"; sha256="11mrvpsh9qc5a5s5mpbsksri6vx36ij1gvpli6lyz6dkg48a9kdn"; depends=[]; };
|
||||
implyr = derive2 { name="implyr"; version="0.4.0"; sha256="0rblsmx1z2n4g3fims5wa3wyf5znr0gkwd2yfz3130bcm6346da0"; depends=[assertthat DBI dbplyr dplyr rlang tidyselect]; };
|
||||
r_import = derive2 { name="r_import"; version="1.2.0"; sha256="018s0x224gqnv4cjfh0fwliyfg6ma9vslmwybrlizfsmqcc5wp37"; depends=[]; };
|
||||
r_import = derive2 { name="import"; version="1.2.0"; sha256="018s0x224gqnv4cjfh0fwliyfg6ma9vslmwybrlizfsmqcc5wp37"; depends=[]; };
|
||||
importar = derive2 { name="importar"; version="0.1.1"; sha256="0xv445fmjhsbdlsq03k2rlycnggn3rcyq5a49zrg4jvjamzr0rgr"; depends=[]; };
|
||||
importinegi = derive2 { name="importinegi"; version="1.1.3"; sha256="1r0p01mc9wb24ifldn3dmi0fqxwkp0290h0qrgr72grd34v2xszc"; depends=[data_table dplyr foreign haven rgdal]; };
|
||||
impressionist_colors = derive2 { name="impressionist.colors"; version="1.0"; sha256="03z5w7y7vbvlnn30r9y3ip93h364f87nhwdb9hcki26csiq2bnlv"; depends=[]; };
|
||||
|
||||
@@ -237,54 +237,56 @@ let
|
||||
audio = [ pkgs.portaudio ];
|
||||
BayesSAE = [ pkgs.gsl_1 ];
|
||||
BayesVarSel = [ pkgs.gsl_1 ];
|
||||
BayesXsrc = [ pkgs.readline.dev pkgs.ncurses ];
|
||||
BayesXsrc = with pkgs; [ readline.dev ncurses ];
|
||||
bigGP = [ pkgs.mpi ];
|
||||
bio3d = [ pkgs.zlib ];
|
||||
BiocCheck = [ pkgs.which ];
|
||||
Biostrings = [ pkgs.zlib ];
|
||||
bnpmr = [ pkgs.gsl_1 ];
|
||||
cairoDevice = [ pkgs.gtk2.dev ];
|
||||
Cairo = [ pkgs.libtiff pkgs.libjpeg pkgs.cairo.dev pkgs.x11 pkgs.fontconfig.lib ];
|
||||
Cairo = with pkgs; [ libtiff libjpeg cairo.dev x11 fontconfig.lib ];
|
||||
Cardinal = [ pkgs.which ];
|
||||
chebpol = [ pkgs.fftw ];
|
||||
ChemmineOB = [ pkgs.openbabel pkgs.pkg-config ];
|
||||
ChemmineOB = with pkgs; [ openbabel pkg-config ];
|
||||
curl = [ pkgs.curl.dev ];
|
||||
data_table = [pkgs.zlib.dev] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
|
||||
devEMF = [ pkgs.xorg.libXft.dev pkgs.x11 ];
|
||||
diversitree = [ pkgs.gsl_1 pkgs.fftw ];
|
||||
data_table = [ pkgs.zlib.dev ] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
|
||||
devEMF = with pkgs; [ xorg.libXft.dev x11 ];
|
||||
diversitree = with pkgs; [ gsl_1 fftw ];
|
||||
exactextractr = [ pkgs.geos ];
|
||||
EMCluster = [ pkgs.lapack ];
|
||||
fftw = [ pkgs.fftw.dev ];
|
||||
fftwtools = [ pkgs.fftw.dev ];
|
||||
fftwtools = with pkgs; [ fftw.dev pkg-config ];
|
||||
Formula = [ pkgs.gmp ];
|
||||
gdtools = [ pkgs.cairo.dev pkgs.fontconfig.lib pkgs.freetype.dev ];
|
||||
git2r = [ pkgs.zlib.dev pkgs.openssl.dev pkgs.libssh2.dev pkgs.libgit2 pkgs.pkg-config ];
|
||||
gdtools = with pkgs; [ cairo.dev fontconfig.lib freetype.dev ];
|
||||
git2r = with pkgs; [ zlib.dev openssl.dev libssh2.dev libgit2 pkg-config ];
|
||||
GLAD = [ pkgs.gsl_1 ];
|
||||
glpkAPI = [ pkgs.gmp pkgs.glpk ];
|
||||
glpkAPI = with pkgs; [ gmp glpk ];
|
||||
gmp = [ pkgs.gmp.dev ];
|
||||
graphscan = [ pkgs.gsl_1 ];
|
||||
gsl = [ pkgs.gsl_1 ];
|
||||
gert = [ pkgs.libgit2 ];
|
||||
haven = [ pkgs.libiconv pkgs.zlib.dev ];
|
||||
haven = with pkgs; [ libiconv zlib.dev ];
|
||||
h5vc = [ pkgs.zlib.dev ];
|
||||
HiCseg = [ pkgs.gsl_1 ];
|
||||
imager = [ pkgs.x11 ];
|
||||
iBMQ = [ pkgs.gsl_1 ];
|
||||
igraph = [ pkgs.gmp pkgs.libxml2.dev ];
|
||||
igraph = with pkgs; [ gmp libxml2.dev ];
|
||||
JavaGD = [ pkgs.jdk ];
|
||||
jpeg = [ pkgs.libjpeg.dev ];
|
||||
jqr = [ pkgs.jq.dev ];
|
||||
KFKSDS = [ pkgs.gsl_1 ];
|
||||
kza = [ pkgs.fftw.dev ];
|
||||
lwgeom = [ pkgs.gdal pkgs.geos pkgs.proj ];
|
||||
lpsymphony = with pkgs; [ pkg-config gfortran gettext ];
|
||||
lwgeom = with pkgs; [ proj geos gdal ];
|
||||
magick = [ pkgs.imagemagick.dev ];
|
||||
ModelMetrics = lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
|
||||
mvabund = [ pkgs.gsl_1 ];
|
||||
mwaved = [ pkgs.fftw.dev ];
|
||||
ncdf4 = [ pkgs.netcdf ];
|
||||
nloptr = [ pkgs.nlopt pkgs.pkg-config ];
|
||||
nloptr = with pkgs; [ nlopt pkg-config ];
|
||||
n1qn1 = [ pkgs.gfortran ];
|
||||
odbc = [ pkgs.unixODBC ];
|
||||
pander = [ pkgs.pandoc pkgs.which ];
|
||||
pander = with pkgs; [ pandoc which ];
|
||||
pbdMPI = [ pkgs.mpi ];
|
||||
pbdPROF = [ pkgs.mpi ];
|
||||
pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.which ];
|
||||
@@ -294,7 +296,7 @@ let
|
||||
png = [ pkgs.libpng.dev ];
|
||||
proj4 = [ pkgs.proj ];
|
||||
protolite = [ pkgs.protobuf ];
|
||||
R2SWF = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
|
||||
R2SWF = with pkgs; [ zlib libpng freetype.dev ];
|
||||
RAppArmor = [ pkgs.libapparmor ];
|
||||
rapportools = [ pkgs.which ];
|
||||
rapport = [ pkgs.which ];
|
||||
@@ -304,42 +306,43 @@ let
|
||||
RcppGSL = [ pkgs.gsl_1 ];
|
||||
RcppZiggurat = [ pkgs.gsl_1 ];
|
||||
reprex = [ pkgs.which ];
|
||||
rgdal = [ pkgs.proj.dev pkgs.gdal ];
|
||||
rgdal = with pkgs; [ proj.dev gdal ];
|
||||
rgeos = [ pkgs.geos ];
|
||||
Rglpk = [ pkgs.glpk ];
|
||||
RGtk2 = [ pkgs.gtk2.dev ];
|
||||
rhdf5 = [ pkgs.zlib ];
|
||||
Rhdf5lib = [ pkgs.zlib.dev ];
|
||||
Rhpc = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.xz.dev pkgs.mpi pkgs.pcre.dev ];
|
||||
Rhtslib = [ pkgs.zlib.dev pkgs.automake pkgs.autoconf pkgs.bzip2.dev pkgs.xz.dev pkgs.curl.dev ];
|
||||
Rhpc = with pkgs; [ zlib bzip2.dev icu xz.dev mpi pcre.dev ];
|
||||
Rhtslib = with pkgs; [ zlib.dev automake autoconf bzip2.dev xz.dev curl.dev ];
|
||||
rjags = [ pkgs.jags ];
|
||||
rJava = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.xz.dev pkgs.pcre.dev pkgs.jdk pkgs.libzip ];
|
||||
rJava = with pkgs; [ zlib bzip2.dev icu xz.dev pcre.dev jdk libzip ];
|
||||
Rlibeemd = [ pkgs.gsl_1 ];
|
||||
rmatio = [ pkgs.zlib.dev ];
|
||||
Rmpfr = [ pkgs.gmp pkgs.mpfr.dev ];
|
||||
Rmpfr = with pkgs; [ gmp mpfr.dev ];
|
||||
Rmpi = [ pkgs.mpi ];
|
||||
RMySQL = [ pkgs.zlib pkgs.libmysqlclient pkgs.openssl.dev ];
|
||||
RNetCDF = [ pkgs.netcdf pkgs.udunits ];
|
||||
RMySQL = with pkgs; [ zlib libmysqlclient openssl.dev ];
|
||||
RNetCDF = with pkgs; [ netcdf udunits ];
|
||||
RODBC = [ pkgs.libiodbc ];
|
||||
rpanel = [ pkgs.bwidget ];
|
||||
Rpoppler = [ pkgs.poppler ];
|
||||
RPostgreSQL = [ pkgs.postgresql pkgs.postgresql ];
|
||||
RPostgreSQL = with pkgs; [ postgresql postgresql ];
|
||||
RProtoBuf = [ pkgs.protobuf ];
|
||||
RSclient = [ pkgs.openssl.dev ];
|
||||
Rserve = [ pkgs.openssl ];
|
||||
Rssa = [ pkgs.fftw.dev ];
|
||||
rsvg = [ pkgs.pkg-config ];
|
||||
runjags = [ pkgs.jags ];
|
||||
RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
|
||||
rzmq = [ pkgs.zeromq pkgs.pkg-config ];
|
||||
RVowpalWabbit = with pkgs; [ zlib.dev boost ];
|
||||
rzmq = with pkgs; [ zeromq pkg-config ];
|
||||
clustermq = [ pkgs.zeromq ];
|
||||
SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.xz pkgs.pcre ];
|
||||
sdcTable = [ pkgs.gmp pkgs.glpk ];
|
||||
seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
|
||||
SAVE = with pkgs; [ zlib bzip2 icu xz pcre ];
|
||||
sdcTable = with pkgs; [ gmp glpk ];
|
||||
seewave = with pkgs; [ fftw.dev libsndfile.dev ];
|
||||
seqinr = [ pkgs.zlib.dev ];
|
||||
seqminer = [ pkgs.zlib.dev pkgs.bzip2 ];
|
||||
sf = [ pkgs.gdal pkgs.proj pkgs.geos ];
|
||||
showtext = [ pkgs.zlib pkgs.libpng pkgs.icu pkgs.freetype.dev ];
|
||||
seqminer = with pkgs; [ zlib.dev bzip2 ];
|
||||
sf = with pkgs; [ gdal proj geos ];
|
||||
terra = with pkgs; [ gdal proj geos ];
|
||||
showtext = with pkgs; [ zlib libpng icu freetype.dev ];
|
||||
simplexreg = [ pkgs.gsl_1 ];
|
||||
spate = [ pkgs.fftw.dev ];
|
||||
ssanv = [ pkgs.proj ];
|
||||
@@ -347,19 +350,19 @@ let
|
||||
stringi = [ pkgs.icu.dev ];
|
||||
survSNP = [ pkgs.gsl_1 ];
|
||||
svglite = [ pkgs.libpng.dev ];
|
||||
sysfonts = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
|
||||
systemfonts = [ pkgs.fontconfig.dev pkgs.freetype.dev ];
|
||||
sysfonts = with pkgs; [ zlib libpng freetype.dev ];
|
||||
systemfonts = with pkgs; [ fontconfig.dev freetype.dev ];
|
||||
TAQMNGR = [ pkgs.zlib.dev ];
|
||||
tesseract = [ pkgs.tesseract pkgs.leptonica ];
|
||||
tesseract = with pkgs; [ tesseract leptonica ];
|
||||
tiff = [ pkgs.libtiff.dev ];
|
||||
tkrplot = [ pkgs.xorg.libX11 pkgs.tk.dev ];
|
||||
tkrplot = with pkgs; [ xorg.libX11 tk.dev ];
|
||||
topicmodels = [ pkgs.gsl_1 ];
|
||||
udunits2 = [ pkgs.udunits pkgs.expat ];
|
||||
udunits2 = with pkgs; [ udunits expat ];
|
||||
units = [ pkgs.udunits ];
|
||||
V8 = [ pkgs.v8 ];
|
||||
XBRL = [ pkgs.zlib pkgs.libxml2.dev ];
|
||||
XBRL = with pkgs; [ zlib libxml2.dev ];
|
||||
xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.isDarwin [ pkgs.perl ];
|
||||
XML = [ pkgs.libtool pkgs.libxml2.dev pkgs.xmlsec pkgs.libxslt ];
|
||||
XML = with pkgs; [ libtool libxml2.dev xmlsec libxslt ];
|
||||
affyPLM = [ pkgs.zlib.dev ];
|
||||
bamsignals = [ pkgs.zlib.dev ];
|
||||
BitSeq = [ pkgs.zlib.dev ];
|
||||
@@ -369,10 +372,10 @@ let
|
||||
gmapR = [ pkgs.zlib.dev ];
|
||||
Rsubread = [ pkgs.zlib.dev ];
|
||||
XVector = [ pkgs.zlib.dev ];
|
||||
Rsamtools = [ pkgs.zlib.dev pkgs.curl.dev ];
|
||||
Rsamtools = with pkgs; [ zlib.dev curl.dev ];
|
||||
rtracklayer = [ pkgs.zlib.dev ];
|
||||
affyio = [ pkgs.zlib.dev ];
|
||||
VariantAnnotation = [ pkgs.zlib.dev pkgs.curl.dev ];
|
||||
VariantAnnotation = with pkgs; [ zlib.dev curl.dev ];
|
||||
snpStats = [ pkgs.zlib.dev ];
|
||||
hdf5r = [ pkgs.hdf5.dev ];
|
||||
};
|
||||
@@ -396,7 +399,7 @@ let
|
||||
RcppEigen = [ pkgs.libiconv ];
|
||||
RCurl = [ pkgs.curl.dev ];
|
||||
R2SWF = [ pkgs.pkg-config ];
|
||||
rgl = [ pkgs.libGLU pkgs.libGLU.dev pkgs.libGL pkgs.xlibsWrapper ];
|
||||
rgl = with pkgs; [ libGLU libGLU.dev libGL xlibsWrapper ];
|
||||
RGtk2 = [ pkgs.pkg-config ];
|
||||
RProtoBuf = [ pkgs.pkg-config ];
|
||||
Rpoppler = [ pkgs.pkg-config ];
|
||||
@@ -407,13 +410,14 @@ let
|
||||
gdtools = [ pkgs.pkg-config ];
|
||||
jqr = [ pkgs.jq.lib ];
|
||||
kza = [ pkgs.pkg-config ];
|
||||
lwgeom = [ pkgs.pkg-config pkgs.proj.dev pkgs.sqlite.dev ];
|
||||
lwgeom = with pkgs; [ pkg-config proj.dev sqlite.dev ];
|
||||
magick = [ pkgs.pkg-config ];
|
||||
mwaved = [ pkgs.pkg-config ];
|
||||
odbc = [ pkgs.pkg-config ];
|
||||
openssl = [ pkgs.pkg-config ];
|
||||
pdftools = [ pkgs.pkg-config ];
|
||||
sf = [ pkgs.pkg-config pkgs.sqlite.dev pkgs.proj.dev ];
|
||||
sf = with pkgs; [ pkg-config sqlite.dev proj.dev ];
|
||||
terra = with pkgs; [ pkg-config sqlite.dev proj.dev ];
|
||||
showtext = [ pkgs.pkg-config ];
|
||||
spate = [ pkgs.pkg-config ];
|
||||
stringi = [ pkgs.pkg-config ];
|
||||
@@ -426,11 +430,11 @@ let
|
||||
mashr = [ pkgs.gsl ];
|
||||
hadron = [ pkgs.gsl ];
|
||||
AMOUNTAIN = [ pkgs.gsl ];
|
||||
Rsymphony = [ pkgs.pkg-config pkgs.doxygen pkgs.graphviz pkgs.subversion ];
|
||||
tcltk2 = [ pkgs.tcl pkgs.tk ];
|
||||
tikzDevice = [ pkgs.which pkgs.texlive.combined.scheme-medium ];
|
||||
Rsymphony = with pkgs; [ pkg-config doxygen graphviz subversion ];
|
||||
tcltk2 = with pkgs; [ tcl tk ];
|
||||
tikzDevice = with pkgs; [ which texlive.combined.scheme-medium ];
|
||||
gridGraphics = [ pkgs.which ];
|
||||
adimpro = [ pkgs.which pkgs.xorg.xdpyinfo ];
|
||||
adimpro = with pkgs; [ which xorg.xdpyinfo ];
|
||||
mzR = [ pkgs.netcdf ];
|
||||
cluster = [ pkgs.libiconv ];
|
||||
KernSmooth = [ pkgs.libiconv ];
|
||||
@@ -951,6 +955,18 @@ let
|
||||
'';
|
||||
});
|
||||
|
||||
R_cache = old.R_cache.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
export R_CACHE_ROOTPATH=$TMP
|
||||
'';
|
||||
});
|
||||
|
||||
lpsymphony = old.lpsymphony.overrideDerivation (attrs: {
|
||||
preConfigure = ''
|
||||
patchShebangs configure
|
||||
'';
|
||||
});
|
||||
|
||||
};
|
||||
in
|
||||
self
|
||||
|
||||
@@ -48,8 +48,7 @@ escapeName <- function(name) {
|
||||
}
|
||||
|
||||
formatPackage <- function(name, version, sha256, depends, imports, linkingTo) {
|
||||
name <- escapeName(name)
|
||||
attr <- gsub(".", "_", name, fixed=TRUE)
|
||||
attr <- gsub(".", "_", escapeName(name), fixed=TRUE)
|
||||
options(warn=5)
|
||||
depends <- paste( if (is.na(depends)) "" else gsub("[ \t\n]+", "", depends)
|
||||
, if (is.na(imports)) "" else gsub("[ \t\n]+", "", imports)
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "tfsec";
|
||||
version = "0.58.5";
|
||||
version = "0.58.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aquasecurity";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-awTRECHHNGebzV08Qy2I6rX4eS2z07NZLsQFPoA0UXA=";
|
||||
sha256 = "sha256-FTrzEVTmMxXshDOvlSmQEwekde621KIclpFm1oEduEo=";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/aquasecurity/tfsec";
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jenkins";
|
||||
version = "2.289.3";
|
||||
version = "2.303.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
|
||||
sha256 = "11wb4kqy1hja2fgnqsr6p0khdyvinclprxz9z5m58czrsllzsvcr";
|
||||
sha256 = "0rf06axz1hxssg942w2g66avak30jy6rfdwxynhriqv3vrf17bja";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
{ lib
|
||||
, fetchurl
|
||||
, installShellFiles
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "flawfinder";
|
||||
version = "2.0.18";
|
||||
version = "2.0.19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dwheeler.com/flawfinder/flawfinder-${version}.tar.gz";
|
||||
sha256 = "1hk2y13fd2a5gf42a1hk45hw6pbls715wi9k1yh3c3wyhvbyylba";
|
||||
sha256 = "sha256-/lUJgdNwq/oKKWcTRswLA4Ipqb2QsjnqsPAfEiEt9hg=";
|
||||
};
|
||||
|
||||
# Project is using a combination of bash/Python for the tests
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{ lib, stdenv, fetchurl, elfutils }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dwz";
|
||||
version = "0.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.sourceware.org/ftp/${pname}/releases/${pname}-${version}.tar.gz";
|
||||
sha256 = "07qdvzfk4mvbqj5z3aff7vc195dxqn1mi27w2dzs1w2zhymnw01k";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ elfutils ];
|
||||
|
||||
makeFlags = [ "prefix=${placeholder "out"}" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://sourceware.org/dwz/";
|
||||
description = "DWARF optimization and duplicate removal tool";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ jbcrail ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -1,16 +1,17 @@
|
||||
{ elk7Version
|
||||
, enableUnfree ? true
|
||||
, lib, stdenv
|
||||
, lib
|
||||
, stdenv
|
||||
, makeWrapper
|
||||
, fetchurl
|
||||
, nodejs-10_x
|
||||
, nodejs-14_x
|
||||
, coreutils
|
||||
, which
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
nodejs = nodejs-10_x;
|
||||
nodejs = nodejs-14_x;
|
||||
inherit (builtins) elemAt;
|
||||
info = splitString "-" stdenv.hostPlatform.system;
|
||||
arch = elemAt info 0;
|
||||
@@ -18,20 +19,21 @@ let
|
||||
shas =
|
||||
if enableUnfree
|
||||
then {
|
||||
x86_64-linux = "1wq4fc2fifkg1qz7nxdfb4yi2biay8cgdz7kl5k0p37sxn0sbkja";
|
||||
x86_64-darwin = "06346kj7bv49py49pmmnmh8m24322m88v1af19909pj9cxgd0p6v";
|
||||
x86_64-linux = "sha256-lTPBppKm51zgKSQtSdO0PgZ/aomvaStwqwYYGNPY4Bo=";
|
||||
x86_64-darwin = "sha256-d7xHmoASiywDlZCJX/CfUX1VIi4iOcDrqvK0su54MJc=";
|
||||
}
|
||||
else {
|
||||
x86_64-linux = "0ygpmcm6wdcnvw8azwqc5257lyic7yw31rqvm2pw3afhpha62lpj";
|
||||
x86_64-darwin = "0xy81g0bhxp47p29kkkh5llfzqkzqzr5dk50ap2hy0hjw33ld6g1";
|
||||
x86_64-linux = "sha256-+pkKpiXBpLHs72KKNtMJbqipw6eu5XC1xu/iLFCHGRQ=";
|
||||
x86_64-darwin = "sha256-CyJ5iRXaPgXO2lyy+E24OcGtb9V3e1gMZRIu25bVyzk=";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "kibana-${optionalString (!enableUnfree) "oss-"}${version}";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kibana${optionalString (!enableUnfree) "-oss"}";
|
||||
version = elk7Version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/kibana/${name}-${plat}-${arch}.tar.gz";
|
||||
url = "https://artifacts.elastic.co/downloads/kibana/${pname}-${version}-${plat}-${arch}.tar.gz";
|
||||
sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
};
|
||||
|
||||
|
||||
@@ -5,7 +5,10 @@ luarocks.overrideAttrs(old: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "nix-community";
|
||||
repo = "luarocks-nix";
|
||||
rev = "nix_v3.5.0-1";
|
||||
sha256 = "sha256-jcgshxAuuc8QizpYL/2K3PKYWiKsnF/8BJAUaryvEvQ=";
|
||||
rev = "test-speedup";
|
||||
sha256 = "sha256-WfzLSpIp0V7Ib4sjYvoJHF+/vHaieccvfVAr5W47QsQ=";
|
||||
};
|
||||
patches = [];
|
||||
|
||||
meta.mainProgram = "luarocks";
|
||||
})
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-expand";
|
||||
version = "1.0.8";
|
||||
version = "1.0.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dtolnay";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-UkNO2uNiyN6xB74dNMiWZUCH6qq6P6u95wTq8xRvxsQ=";
|
||||
sha256 = "sha256-wDuCmiQzyY/Ydr67fYb0yZaSWvuYwW91j0CoqbUFFpg=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-JTjPdTG8KGYVkiCkTqRiJyTpm7OpZkbW10EKSp9lLJ4=";
|
||||
cargoSha256 = "sha256-5KCGXJzk5VStby/JzjXJvDSrhFlB8YJHMcQNL8GxkLI=";
|
||||
|
||||
buildInputs = lib.optional stdenv.isDarwin libiconv;
|
||||
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "wrangler";
|
||||
version = "1.19.0";
|
||||
version = "1.19.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudflare";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-z6fL2uvv8E6NDBbbQKZ2Xhc6PI+e0Zl6mUvxIRhduH0=";
|
||||
sha256 = "sha256-Dr1qVdB/UliZM8gUVibi5vyO3Ni4icUqQXTo3UYmFqQ=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-xGoOVp0Pt6cpCBK8IkyFCIcBNucDo98o3f7T3TQQhZY=";
|
||||
cargoSha256 = "sha256-XDMxNqWxHDof5L1zX99DH1nSpqqi4NlnjtljQxNWagw=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
+18
-11
@@ -3,15 +3,23 @@
|
||||
let
|
||||
pname = "anki-bin";
|
||||
# Update hashes for both Linux and Darwin!
|
||||
version = "2.1.46";
|
||||
version = "2.1.47";
|
||||
|
||||
sources = {
|
||||
linux = fetchurl {
|
||||
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
|
||||
sha256 = "sha256-cObvjXeDUDslfAhMOrlqyjidri6N7xLR2+LRz3hTdfg=";
|
||||
};
|
||||
darwin = fetchurl {
|
||||
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
|
||||
sha256 = "sha256-TwYrI9gSabJ5icOsygtEJRymkrSgCD8jDXMtpaJXgWg=";
|
||||
};
|
||||
};
|
||||
|
||||
unpacked = stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
|
||||
sha256 = "1jzpf42fqhfbjr95k7bpsnf34sfinamp6v828y0sapa4gzfvwkkz";
|
||||
};
|
||||
src = sources.linux;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
@@ -32,6 +40,8 @@ let
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||
maintainers = with maintainers; [ atemu ];
|
||||
};
|
||||
|
||||
passthru = { inherit sources; };
|
||||
in
|
||||
|
||||
if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
|
||||
@@ -51,14 +61,11 @@ if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
|
||||
$out/share/
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
inherit meta passthru;
|
||||
}) else stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
inherit pname version passthru;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
|
||||
sha256 = "003cmh5qdj5mkrpm51n0is872faj99dqfkaaxyyrn6x03s36l17y";
|
||||
};
|
||||
src = sources.darwin;
|
||||
|
||||
nativeBuildInputs = [ undmg ];
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromSourcehut
|
||||
, SDL2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "uxn";
|
||||
version = "0.0.0+unstable=2021-08-30";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~rabbits";
|
||||
repo = pname;
|
||||
rev = "a2e40d9d10c11ef48f4f93d0dc86f5085b4263ce";
|
||||
hash = "sha256-/hxDYi814nQydm2iQk4NID4vpJ3BcBcM6NdL0iuZk5M=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
# It is easier to emulate build.sh script
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
cc -std=c89 -Wall -Wno-unknown-pragmas src/uxnasm.c -o uxnasm
|
||||
cc -std=c89 -Wall -Wno-unknown-pragmas src/uxn.c src/uxncli.c -o uxncli
|
||||
cc -std=c89 -Wall -Wno-unknown-pragmas src/uxn.c src/devices/ppu.c \
|
||||
src/devices/apu.c src/uxnemu.c $(sdl2-config --cflags --libs) -o uxnemu
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -d $out/bin/ $out/share/${pname}/
|
||||
|
||||
cp uxnasm uxncli uxnemu $out/bin/
|
||||
cp -r projects $out/share/${pname}/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.xxiivv.com/site/uxn.html";
|
||||
description = "An assembler and emulator for the Uxn stack machine";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
@@ -1,30 +1,31 @@
|
||||
{ lib, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, nixosTests, systemd }:
|
||||
{ lib, fetchFromGitHub, elk7Version, buildGoModule, libpcap, nixosTests, systemd }:
|
||||
|
||||
let beat = package : extraArgs : buildGoPackage (rec {
|
||||
name = "${package}-${version}";
|
||||
version = elk7Version;
|
||||
let beat = package: extraArgs: buildGoModule (rec {
|
||||
pname = package;
|
||||
version = elk7Version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elastic";
|
||||
repo = "beats";
|
||||
rev = "v${version}";
|
||||
sha256 = "192ygz3ppfah8d2b811x67jfqhcr5ivz7qh4vwrd729rjfr0bbgb";
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "elastic";
|
||||
repo = "beats";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-zr0a0LBR4G9okS2pUixDYtYZ0yCp4G6j08jx/zlIKOA=";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/elastic/beats";
|
||||
vendorSha256 = "sha256-xmw432vY1T2EixkDcXdGrnMdc8fYOI4R2lEjbkav3JQ=";
|
||||
|
||||
subPackages = [ package ];
|
||||
subPackages = [ package ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.elastic.co/products/beats";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ fadenb basvandijk ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
} // extraArgs);
|
||||
in rec {
|
||||
filebeat7 = beat "filebeat" {meta.description = "Lightweight shipper for logfiles";};
|
||||
heartbeat7 = beat "heartbeat" {meta.description = "Lightweight shipper for uptime monitoring";};
|
||||
meta = with lib; {
|
||||
homepage = "https://www.elastic.co/products/beats";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ fadenb basvandijk ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
} // extraArgs);
|
||||
in
|
||||
rec {
|
||||
filebeat7 = beat "filebeat" { meta.description = "Lightweight shipper for logfiles"; };
|
||||
heartbeat7 = beat "heartbeat" { meta.description = "Lightweight shipper for uptime monitoring"; };
|
||||
metricbeat7 = beat "metricbeat" {
|
||||
meta.description = "Lightweight shipper for metrics";
|
||||
passthru.tests =
|
||||
@@ -46,14 +47,15 @@ in rec {
|
||||
PostgreSQL, Redis or Thrift and correlate the messages into transactions.
|
||||
'';
|
||||
};
|
||||
journalbeat7 = beat "journalbeat" {
|
||||
journalbeat7 = beat "journalbeat" {
|
||||
meta.description = ''
|
||||
Journalbeat is an open source data collector to read and forward
|
||||
journal entries from Linuxes with systemd.
|
||||
'';
|
||||
buildInputs = [ systemd.dev ];
|
||||
postFixup = let libPath = lib.makeLibraryPath [ (lib.getLib systemd) ]; in ''
|
||||
patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
|
||||
'';
|
||||
postFixup = let libPath = lib.makeLibraryPath [ (lib.getLib systemd) ]; in
|
||||
''
|
||||
patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3442,6 +3442,18 @@ final: prev:
|
||||
meta.homepage = "https://github.com/Shougo/neomru.vim/";
|
||||
};
|
||||
|
||||
neon = buildVimPluginFrom2Nix {
|
||||
pname = "neon";
|
||||
version = "2021-07-30";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rafamadriz";
|
||||
repo = "neon";
|
||||
rev = "5c6d24504e2177a709ad16ae9e89ab5732327ad8";
|
||||
sha256 = "1p7g3204hjj52qnm5vdvh425r4xh0y8bsyfivpnp4zgz44rqd6v3";
|
||||
};
|
||||
meta.homepage = "https://github.com/rafamadriz/neon/";
|
||||
};
|
||||
|
||||
neorg = buildVimPluginFrom2Nix {
|
||||
pname = "neorg";
|
||||
version = "2021-08-26";
|
||||
|
||||
@@ -573,6 +573,7 @@ Quramy/tsuquyomi
|
||||
racer-rust/vim-racer
|
||||
radenling/vim-dispatch-neovim
|
||||
rafamadriz/friendly-snippets@main
|
||||
rafamadriz/neon@main
|
||||
rafaqz/ranger.vim
|
||||
rafi/awesome-vim-colorschemes
|
||||
raghur/fruzzy
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
{ lib, stdenv, fetchFromGitHub, kernel, qmake }:
|
||||
{ lib, stdenv, fetchFromGitHub, kernel }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "akvcam";
|
||||
version = "1.2.0";
|
||||
version = "1.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "webcamoid";
|
||||
repo = "akvcam";
|
||||
rev = version;
|
||||
sha256 = "0r5xg7pz0wl6pq5029rpzm9fn978vq0md31xjkp2amny7rrgxw72";
|
||||
sha256 = "1f0vjia2d7zj3y5c63lx1r537bdjx6821yxy29ilbrvsbjq2szj8";
|
||||
};
|
||||
sourceRoot = "source/src";
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
dontWrapQtApps = true;
|
||||
|
||||
qmakeFlags = [
|
||||
makeFlags = [
|
||||
"KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -m644 -b -D src/akvcam.ko $out/lib/modules/${kernel.modDirVersion}/akvcam.ko
|
||||
install -m644 -b -D akvcam.ko $out/lib/modules/${kernel.modDirVersion}/akvcam.ko
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Virtual camera driver for Linux";
|
||||
homepage = "https://github.com/webcamoid/akvcam";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
license = licenses.gpl2Only;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
--replace depmod \#
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
makeFlags = kernel.makeFlags ++ [
|
||||
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
"KVER=${kernel.modDirVersion}"
|
||||
"KERNEL_MODLIB=$(out)/lib/modules/${kernel.modDirVersion}"
|
||||
|
||||
@@ -1,29 +1,16 @@
|
||||
{ stdenv, lib, fetchFromGitHub, fetchpatch, kernel, kernelAtLeast }:
|
||||
{ stdenv, lib, fetchFromGitHub, kernel, kernelAtLeast }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "isgx-${version}-${kernel.version}";
|
||||
version = "2.11";
|
||||
version = "2.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "linux-sgx-driver";
|
||||
rev = "sgx_driver_${version}";
|
||||
hash = "sha256-zZ0FgCx63LCNmvQ909O27v/o4+93gefhgEE/oDr/bHw=";
|
||||
rev = "sgx_diver_${version}"; # Typo is upstream's.
|
||||
sha256 = "0kbbf2inaywp44lm8ig26mkb36jq3smsln0yp6kmrirdwc3c53mi";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes build with kernel >= 5.8
|
||||
(fetchpatch {
|
||||
url = "https://github.com/intel/linux-sgx-driver/commit/276c5c6a064d22358542f5e0aa96b1c0ace5d695.patch";
|
||||
sha256 = "sha256-PmchqYENIbnJ51G/tkdap/g20LUrJEoQ4rDtqy6hj24=";
|
||||
})
|
||||
# Fixes detection with kernel >= 5.11
|
||||
(fetchpatch {
|
||||
url = "https://github.com/intel/linux-sgx-driver/commit/ed2c256929962db1a8805db53bed09bb8f2f4de3.patch";
|
||||
sha256 = "sha256-MRbgS4U8FTCP1J1n+rhsvbXxKDytfl6B7YlT9Izq05U=";
|
||||
})
|
||||
];
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
|
||||
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||
@@ -38,6 +25,8 @@ stdenv.mkDerivation rec {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Intel SGX Linux Driver";
|
||||
longDescription = ''
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
|
||||
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "5.14";
|
||||
|
||||
# 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;
|
||||
|
||||
# branchVersion needs to be x.y
|
||||
extraMeta.branch = versions.majorMinor version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1cki6af9r30k8820j73qdyycp23mwpf2a2rjwl82p9i61mg8n1ky";
|
||||
};
|
||||
} // (args.argsOverride or { }))
|
||||
@@ -1,8 +1,8 @@
|
||||
{ stdenv, lib, fetchsvn, linux
|
||||
, scripts ? fetchsvn {
|
||||
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
|
||||
rev = "18260";
|
||||
sha256 = "11mmdix0vq9yrivx300ay6np3xx1gdqdr4cqdxr1wa84dbl7c2dm";
|
||||
rev = "18268";
|
||||
sha256 = "050rk485csj41yfydr1cvn60vhb3lzbb3486sm832vp55d34i8fd";
|
||||
}
|
||||
, ...
|
||||
}:
|
||||
|
||||
@@ -17,10 +17,8 @@ buildPhase() {
|
||||
# Create the module.
|
||||
echo "Building linux driver against kernel: $kernel";
|
||||
cd kernel
|
||||
sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source)
|
||||
sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
|
||||
unset src # used by the nv makefile
|
||||
make IGNORE_PREEMPT_RT_PRESENCE=1 NV_BUILD_SUPPORTS_HMM=1 SYSSRC=$sysSrc SYSOUT=$sysOut module -j$NIX_BUILD_CORES
|
||||
make $makeFlags -j $NIX_BUILD_CORES module
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
@@ -19,10 +19,10 @@ rec {
|
||||
# Policy: use the highest stable version as the default (on our master).
|
||||
stable = if stdenv.hostPlatform.system == "x86_64-linux"
|
||||
then generic {
|
||||
version = "470.57.02";
|
||||
sha256_64bit = "sha256-VdeuEEgn+qeel1Mh/itg+d1C+/9lZCBTRDwOVv20xH0=";
|
||||
settingsSha256 = "sha256-DJg5QbyuKJmPpLQVYgTLvucI1e9YgQOO16690VXIWvk=";
|
||||
persistencedSha256 = "sha256-Cqv6oUFnsSi3S1sjplJKeq9bI2pqgBXPPb11HOJSlDo=";
|
||||
version = "470.63.01";
|
||||
sha256_64bit = "sha256:057dsc0j3136r5gc08id3rwz9c0x7i01xkcwfk77vqic9b6486kg";
|
||||
settingsSha256 = "sha256:0lizp4hn49yvca2yd76yh3awld98pkaa35a067lpcld35vb5brgv";
|
||||
persistencedSha256 = "sha256:1f3gdpa23ipjy2xwf7qnxmw7w8xxhqy25rmcz34xkngjf4fn4pbs";
|
||||
}
|
||||
else legacy_390;
|
||||
|
||||
|
||||
@@ -75,6 +75,13 @@ let
|
||||
kernel = if libsOnly then null else kernel.dev;
|
||||
kernelVersion = if libsOnly then null else kernel.modDirVersion;
|
||||
|
||||
makeFlags = optionals (!libsOnly) (kernel.makeFlags ++ [
|
||||
"IGNORE_PREEMPT_RT_PRESENCE=1"
|
||||
"NV_BUILD_SUPPORTS_HMM=1"
|
||||
"SYSSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
|
||||
"SYSOUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
]);
|
||||
|
||||
hardeningDisable = [ "pic" "format" ];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ m4 ];
|
||||
buildInputs = [ libtirpc ];
|
||||
|
||||
inherit (nvidia_x11) makeFlags;
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
postFixup = ''
|
||||
|
||||
@@ -24,7 +24,7 @@ let
|
||||
cd src/libXNVCtrl
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
makeFlags = nvidia_x11.makeFlags ++ [
|
||||
"OUTPUTDIR=." # src/libXNVCtrl
|
||||
];
|
||||
|
||||
@@ -51,7 +51,7 @@ stdenv.mkDerivation {
|
||||
++ lib.optionals withGtk3 [ gtk3 librsvg wrapGAppsHook ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
makeFlags = [ "NV_USE_BUNDLED_LIBJANSSON=0" ];
|
||||
makeFlags = nvidia_x11.makeFlags ++ [ "NV_USE_BUNDLED_LIBJANSSON=0" ];
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
postPatch = lib.optionalString nvidia_x11.useProfiles ''
|
||||
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
|
||||
preBuild = ''
|
||||
if [ -e src/libXNVCtrl/libXNVCtrl.a ]; then
|
||||
( cd src/libXNVCtrl
|
||||
make
|
||||
make $makeFlags
|
||||
)
|
||||
fi
|
||||
'';
|
||||
|
||||
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
|
||||
license = with licenses; [ bsd3 gpl2Only ];
|
||||
maintainers = with maintainers; [ tvorog ];
|
||||
platforms = platforms.linux;
|
||||
broken = kernel.kernelOlder "4.14";
|
||||
broken = kernel.kernelOlder "4.14" || kernel.kernelAtLeast "5.14";
|
||||
priority = -1;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ flokli hexa ];
|
||||
platforms = platforms.linux;
|
||||
broken = kernel.kernelAtLeast "5.14";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -210,13 +210,14 @@ in {
|
||||
|
||||
zfsUnstable = common {
|
||||
# check the release notes for compatible kernels
|
||||
kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.14";
|
||||
kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
|
||||
latestCompatibleLinuxPackages = linuxPackages_5_13;
|
||||
|
||||
# this package should point to a version / git revision compatible with the latest kernel release
|
||||
version = "2.1.0";
|
||||
version = "unstable-2021-08-30";
|
||||
rev = "3b89d9518df2c7fd747e349873a3d4d498beb20e";
|
||||
|
||||
sha256 = "sha256-YdY4SStXZGBBdAHdM3R/unco7ztxI3s0/buPSNSeh5o=";
|
||||
sha256 = "sha256-wVbjpVrPQmhJmMqdGUf0IwlCIoOsT7Zfj5lxSKcOsgg=";
|
||||
|
||||
isUnstable = true;
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "caddy";
|
||||
version = "2.4.3";
|
||||
version = "2.4.4";
|
||||
|
||||
subPackages = [ "cmd/caddy" ];
|
||||
|
||||
@@ -10,10 +10,10 @@ buildGoModule rec {
|
||||
owner = "caddyserver";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Z3BVx7gCkls5Hy+H6lA3DOBequRutwa2F34FDt9n+8I=";
|
||||
sha256 = "sha256-POdDORICDE49BQ5LLTs4GTb1VoSXZD4K4MpRkVoj+AY=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-Zwpakw/vyDVngc1Bn+RdRPECNweruwGxsT4dfvMELkQ=";
|
||||
vendorSha256 = "sha256-JAQaxEmdX0fpDahe55pEKnUW64k8JjrytkBrXpQJz3I=";
|
||||
|
||||
passthru.tests = { inherit (nixosTests) caddy; };
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "consul";
|
||||
version = "1.10.1";
|
||||
version = "1.10.2";
|
||||
rev = "v${version}";
|
||||
|
||||
# Note: Currently only release tags are supported, because they have the Consul UI
|
||||
@@ -17,7 +17,7 @@ buildGoModule rec {
|
||||
owner = "hashicorp";
|
||||
repo = pname;
|
||||
inherit rev;
|
||||
sha256 = "sha256-oap0pXqtIbT9wMfD/RuJ2tTRynSvfzsgL8TyY4nj3sM=";
|
||||
sha256 = "sha256-mA/s3J0ylE3C3IGaYfadeZV6PQ5Ooth6iQ4JEgPl44Q=";
|
||||
};
|
||||
|
||||
passthru.tests.consul = nixosTests.consul;
|
||||
@@ -26,7 +26,7 @@ buildGoModule rec {
|
||||
# has a split module structure in one repo
|
||||
subPackages = ["." "connect/certgen"];
|
||||
|
||||
vendorSha256 = "sha256-DloQGxeooVhYWA5/ICkL2UEQvNPilb2F5pst78UzWPI=";
|
||||
vendorSha256 = "sha256-MWQ1m2nvKdP8ZCDs0sjZCiW4DSGe3NnVl4sQ448cu5M=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
||||
@@ -12,11 +12,11 @@ let
|
||||
in
|
||||
buildPythonApplication rec {
|
||||
pname = "matrix-synapse";
|
||||
version = "1.41.0";
|
||||
version = "1.41.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-KLsTr8dKp8k7TcrC598ApDib7P0m9evmfdl8jbsZLdc=";
|
||||
sha256 = "1vaym6mxnwg2xdqjcigi2sb0kkdi0ly5d5ghakfsysxcfn08d1z8";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -54,8 +54,8 @@ in {
|
||||
};
|
||||
|
||||
nextcloud22 = generic {
|
||||
version = "22.1.0";
|
||||
sha256 = "sha256-SCCAj3mRRoU2BOH6J9fykkSQGKRNxzv5KKl7AgKDGLo=";
|
||||
version = "22.1.1";
|
||||
sha256 = "sha256-5VtuuXf7U5CB4zp9jxluOEMOszfMdr8DeaZjpJf73ls=";
|
||||
};
|
||||
# tip: get she sha with:
|
||||
# curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user