Merge master into staging-next
This commit is contained in:
commit
0e6413dbff
78 changed files with 1080 additions and 686 deletions
228
maintainers/scripts/sha-to-sri.py
Executable file
228
maintainers/scripts/sha-to-sri.py
Executable file
|
@ -0,0 +1,228 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ rich structlog ])"
|
||||
|
||||
from abc import ABC, abstractclassmethod, abstractmethod
|
||||
from contextlib import contextmanager
|
||||
from pathlib import Path
|
||||
from structlog.contextvars import bound_contextvars as log_context
|
||||
from typing import ClassVar, List, Tuple
|
||||
|
||||
import hashlib, re, structlog
|
||||
|
||||
|
||||
logger = structlog.getLogger("sha-to-SRI")
|
||||
|
||||
|
||||
class Encoding(ABC):
|
||||
alphabet: ClassVar[str]
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str:
|
||||
return cls.__name__.lower()
|
||||
|
||||
def toSRI(self, s: str) -> str:
|
||||
digest = self.decode(s)
|
||||
assert len(digest) == self.n
|
||||
|
||||
from base64 import b64encode
|
||||
return f"{self.hashName}-{b64encode(digest).decode()}"
|
||||
|
||||
@classmethod
|
||||
def all(cls, h) -> 'List[Encoding]':
|
||||
return [ c(h) for c in cls.__subclasses__() ]
|
||||
|
||||
def __init__(self, h):
|
||||
self.n = h.digest_size
|
||||
self.hashName = h.name
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def length(self) -> int:
|
||||
...
|
||||
|
||||
@property
|
||||
def regex(self) -> str:
|
||||
return f"[{self.alphabet}]{{{self.length}}}"
|
||||
|
||||
@abstractmethod
|
||||
def decode(self, s: str) -> bytes:
|
||||
...
|
||||
|
||||
|
||||
class Nix32(Encoding):
|
||||
alphabet = "0123456789abcdfghijklmnpqrsvwxyz"
|
||||
inverted = { c: i for i, c in enumerate(alphabet) }
|
||||
|
||||
@property
|
||||
def length(self):
|
||||
return 1 + (8 * self.n) // 5
|
||||
def decode(self, s: str):
|
||||
assert len(s) == self.length
|
||||
out = [ 0 for _ in range(self.n) ]
|
||||
# TODO: Do better than a list of byte-sized ints
|
||||
|
||||
for n, c in enumerate(reversed(s)):
|
||||
digit = self.inverted[c]
|
||||
i, j = divmod(5 * n, 8)
|
||||
out[i] = out[i] | (digit << j) & 0xff
|
||||
rem = digit >> (8 - j)
|
||||
if rem == 0:
|
||||
continue
|
||||
elif i < self.n:
|
||||
out[i+1] = rem
|
||||
else:
|
||||
raise ValueError(f"Invalid nix32 hash: '{s}'")
|
||||
|
||||
return bytes(out)
|
||||
|
||||
class Hex(Encoding):
|
||||
alphabet = "0-9A-Fa-f"
|
||||
|
||||
@property
|
||||
def length(self):
|
||||
return 2 * self.n
|
||||
def decode(self, s: str):
|
||||
from binascii import unhexlify
|
||||
return unhexlify(s)
|
||||
|
||||
class Base64(Encoding):
|
||||
alphabet = "A-Za-z0-9+/"
|
||||
|
||||
@property
|
||||
def format(self) -> Tuple[int, int]:
|
||||
"""Number of characters in data and padding."""
|
||||
i, k = divmod(self.n, 3)
|
||||
return 4 * i + (0 if k == 0 else k + 1), (3 - k) % 3
|
||||
@property
|
||||
def length(self):
|
||||
return sum(self.format)
|
||||
@property
|
||||
def regex(self):
|
||||
data, padding = self.format
|
||||
return f"[{self.alphabet}]{{{data}}}={{{padding}}}"
|
||||
def decode(self, s):
|
||||
from base64 import b64decode
|
||||
return b64decode(s, validate = True)
|
||||
|
||||
|
||||
_HASHES = (hashlib.new(n) for n in ('SHA-256', 'SHA-512'))
|
||||
ENCODINGS = {
|
||||
h.name: Encoding.all(h)
|
||||
for h in _HASHES
|
||||
}
|
||||
|
||||
RE = {
|
||||
h: "|".join(
|
||||
(f"({h}-)?" if e.name == 'base64' else '') +
|
||||
f"(?P<{h}_{e.name}>{e.regex})"
|
||||
for e in encodings
|
||||
) for h, encodings in ENCODINGS.items()
|
||||
}
|
||||
|
||||
_DEF_RE = re.compile("|".join(
|
||||
f"(?P<{h}>{h} = (?P<{h}_quote>['\"])({re})(?P={h}_quote);)"
|
||||
for h, re in RE.items()
|
||||
))
|
||||
|
||||
|
||||
def defToSRI(s: str) -> str:
|
||||
def f(m: re.Match[str]) -> str:
|
||||
try:
|
||||
for h, encodings in ENCODINGS.items():
|
||||
if m.group(h) is None:
|
||||
continue
|
||||
|
||||
for e in encodings:
|
||||
s = m.group(f"{h}_{e.name}")
|
||||
if s is not None:
|
||||
return f'hash = "{e.toSRI(s)}";'
|
||||
|
||||
raise ValueError(f"Match with '{h}' but no subgroup")
|
||||
raise ValueError("Match with no hash")
|
||||
|
||||
except ValueError as exn:
|
||||
logger.error(
|
||||
"Skipping",
|
||||
exc_info = exn,
|
||||
)
|
||||
return m.group()
|
||||
|
||||
return _DEF_RE.sub(f, s)
|
||||
|
||||
|
||||
@contextmanager
|
||||
def atomicFileUpdate(target: Path):
|
||||
'''Atomically replace the contents of a file.
|
||||
|
||||
Guarantees that no temporary files are left behind, and `target` is either
|
||||
left untouched, or overwritten with new content if no exception was raised.
|
||||
|
||||
Yields a pair `(original, new)` of open files.
|
||||
`original` is the pre-existing file at `target`, open for reading;
|
||||
`new` is an empty, temporary file in the same filder, open for writing.
|
||||
|
||||
Upon exiting the context, the files are closed; if no exception was
|
||||
raised, `new` (atomically) replaces the `target`, otherwise it is deleted.
|
||||
'''
|
||||
# That's mostly copied from noto-emoji.py, should DRY it out
|
||||
from tempfile import mkstemp
|
||||
fd, _p = mkstemp(
|
||||
dir = target.parent,
|
||||
prefix = target.name,
|
||||
)
|
||||
tmpPath = Path(_p)
|
||||
|
||||
try:
|
||||
with target.open() as original:
|
||||
with tmpPath.open('w') as new:
|
||||
yield (original, new)
|
||||
|
||||
tmpPath.replace(target)
|
||||
|
||||
except Exception:
|
||||
tmpPath.unlink(missing_ok = True)
|
||||
raise
|
||||
|
||||
|
||||
def fileToSRI(p: Path):
|
||||
with atomicFileUpdate(p) as (og, new):
|
||||
for i, line in enumerate(og):
|
||||
with log_context(line=i):
|
||||
new.write(defToSRI(line))
|
||||
|
||||
|
||||
_SKIP_RE = re.compile(
|
||||
"(generated by)|(do not edit)",
|
||||
re.IGNORECASE
|
||||
)
|
||||
|
||||
if __name__ == "__main__":
|
||||
from sys import argv, stderr
|
||||
logger.info("Starting!")
|
||||
|
||||
for arg in argv[1:]:
|
||||
p = Path(arg)
|
||||
with log_context(path=str(p)):
|
||||
try:
|
||||
if p.name == "yarn.nix" or p.name.find("generated") != -1:
|
||||
logger.warning("File looks autogenerated, skipping!")
|
||||
continue
|
||||
|
||||
with p.open() as f:
|
||||
for line in f:
|
||||
if line.strip():
|
||||
break
|
||||
|
||||
if _SKIP_RE.search(line):
|
||||
logger.warning("File looks autogenerated, skipping!")
|
||||
continue
|
||||
|
||||
fileToSRI(p)
|
||||
except Exception as exn:
|
||||
logger.error(
|
||||
"Unhandled exception, skipping file!",
|
||||
exc_info = exn,
|
||||
)
|
||||
else:
|
||||
logger.info("Finished processing file")
|
|
@ -1,149 +0,0 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ rich structlog ])"
|
||||
|
||||
from contextlib import contextmanager
|
||||
from pathlib import Path
|
||||
from structlog.contextvars import bound_contextvars as log_context
|
||||
|
||||
import re, structlog
|
||||
|
||||
|
||||
logger = structlog.getLogger("sha256-to-SRI")
|
||||
|
||||
|
||||
nix32alphabet = "0123456789abcdfghijklmnpqrsvwxyz"
|
||||
nix32inverted = { c: i for i, c in enumerate(nix32alphabet) }
|
||||
|
||||
def nix32decode(s: str) -> bytes:
|
||||
# only support sha256 hashes for now
|
||||
assert len(s) == 52
|
||||
out = [ 0 for _ in range(32) ]
|
||||
# TODO: Do better than a list of byte-sized ints
|
||||
|
||||
for n, c in enumerate(reversed(s)):
|
||||
digit = nix32inverted[c]
|
||||
i, j = divmod(5 * n, 8)
|
||||
out[i] = out[i] | (digit << j) & 0xff
|
||||
rem = digit >> (8 - j)
|
||||
if rem == 0:
|
||||
continue
|
||||
elif i < 31:
|
||||
out[i+1] = rem
|
||||
else:
|
||||
raise ValueError(f"Invalid nix32 hash: '{s}'")
|
||||
|
||||
return bytes(out)
|
||||
|
||||
|
||||
def toSRI(digest: bytes) -> str:
|
||||
from base64 import b64encode
|
||||
assert len(digest) == 32
|
||||
return f"sha256-{b64encode(digest).decode()}"
|
||||
|
||||
|
||||
RE = {
|
||||
'nix32': f"[{nix32alphabet}]" "{52}",
|
||||
'hex': "[0-9A-Fa-f]{64}",
|
||||
'base64': "[A-Za-z0-9+/]{43}=",
|
||||
}
|
||||
RE['sha256'] = '|'.join(
|
||||
f"{'(sha256-)?' if name == 'base64' else ''}"
|
||||
f"(?P<{name}>{r})"
|
||||
for name, r in RE.items()
|
||||
)
|
||||
|
||||
def sha256toSRI(m: re.Match) -> str:
|
||||
"""Produce the equivalent SRI string for any match of RE['sha256']"""
|
||||
if m['nix32'] is not None:
|
||||
return toSRI(nix32decode(m['nix32']))
|
||||
if m['hex'] is not None:
|
||||
from binascii import unhexlify
|
||||
return toSRI(unhexlify(m['hex']))
|
||||
if m['base64'] is not None:
|
||||
from base64 import b64decode
|
||||
return toSRI(b64decode(m['base64']))
|
||||
|
||||
raise ValueError("Got a match where none of the groups captured")
|
||||
|
||||
|
||||
# Ohno I used evil, irregular backrefs instead of making 2 variants ^^'
|
||||
_def_re = re.compile(
|
||||
"sha256 = (?P<quote>[\"'])"
|
||||
f"({RE['sha256']})"
|
||||
"(?P=quote);"
|
||||
)
|
||||
|
||||
def defToSRI(s: str) -> str:
|
||||
def f(m: re.Match[str]) -> str:
|
||||
try:
|
||||
return f'hash = "{sha256toSRI(m)}";'
|
||||
|
||||
except ValueError as exn:
|
||||
begin, end = m.span()
|
||||
match = m.string[begin:end]
|
||||
|
||||
logger.error(
|
||||
"Skipping",
|
||||
exc_info = exn,
|
||||
)
|
||||
return match
|
||||
|
||||
return _def_re.sub(f, s)
|
||||
|
||||
|
||||
@contextmanager
|
||||
def atomicFileUpdate(target: Path):
|
||||
'''Atomically replace the contents of a file.
|
||||
|
||||
Guarantees that no temporary files are left behind, and `target` is either
|
||||
left untouched, or overwritten with new content if no exception was raised.
|
||||
|
||||
Yields a pair `(original, new)` of open files.
|
||||
`original` is the pre-existing file at `target`, open for reading;
|
||||
`new` is an empty, temporary file in the same filder, open for writing.
|
||||
|
||||
Upon exiting the context, the files are closed; if no exception was
|
||||
raised, `new` (atomically) replaces the `target`, otherwise it is deleted.
|
||||
'''
|
||||
# That's mostly copied from noto-emoji.py, should DRY it out
|
||||
from tempfile import mkstemp
|
||||
fd, _p = mkstemp(
|
||||
dir = target.parent,
|
||||
prefix = target.name,
|
||||
)
|
||||
tmpPath = Path(_p)
|
||||
|
||||
try:
|
||||
with target.open() as original:
|
||||
with tmpPath.open('w') as new:
|
||||
yield (original, new)
|
||||
|
||||
tmpPath.replace(target)
|
||||
|
||||
except Exception:
|
||||
tmpPath.unlink(missing_ok = True)
|
||||
raise
|
||||
|
||||
|
||||
def fileToSRI(p: Path):
|
||||
with atomicFileUpdate(p) as (og, new):
|
||||
for i, line in enumerate(og):
|
||||
with log_context(line=i):
|
||||
new.write(defToSRI(line))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from sys import argv, stderr
|
||||
|
||||
for arg in argv[1:]:
|
||||
p = Path(arg)
|
||||
with log_context(path=str(p)):
|
||||
try:
|
||||
fileToSRI(p)
|
||||
except Exception as exn:
|
||||
logger.error(
|
||||
"Unhandled exception, skipping file!",
|
||||
exc_info = exn,
|
||||
)
|
||||
else:
|
||||
logger.info("Finished processing file")
|
|
@ -103,6 +103,8 @@
|
|||
|
||||
- `pass` now does not contain `password-store.el`. Users should get `password-store.el` from Emacs lisp package set `emacs.pkgs.password-store`.
|
||||
|
||||
- `services.knot` now supports `.settings` from RFC42. The change is not 100% compatible with the previous `.extraConfig`.
|
||||
|
||||
- `mu` now does not install `mu4e` files by default. Users should get `mu4e` from Emacs lisp package set `emacs.pkgs.mu4e`.
|
||||
|
||||
- `mariadb` now defaults to `mariadb_1011` instead of `mariadb_106`, meaning the default version was upgraded from 10.6.x to 10.11.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-6-to-mariadb-10-11/) for potential issues.
|
||||
|
@ -225,6 +227,8 @@
|
|||
|
||||
- `networking.networkmanager.firewallBackend` was removed as NixOS is now using iptables-nftables-compat even when using iptables, therefore Networkmanager now uses the nftables backend unconditionally.
|
||||
|
||||
- `rome` was removed because it is no longer maintained and is succeeded by `biome`.
|
||||
|
||||
## Other Notable Changes {#sec-release-23.11-notable-changes}
|
||||
|
||||
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
|
||||
|
|
24
nixos/maintainers/scripts/oci/create-image.sh
Executable file
24
nixos/maintainers/scripts/oci/create-image.sh
Executable file
|
@ -0,0 +1,24 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
export NIX_PATH=nixpkgs=$(dirname $(readlink -f $0))/../../../..
|
||||
export NIXOS_CONFIG=$(dirname $(readlink -f $0))/../../../modules/virtualisation/oci-image.nix
|
||||
|
||||
if (( $# < 1 )); then
|
||||
(
|
||||
echo "Usage: create-image.sh <architecture>"
|
||||
echo
|
||||
echo "Where <architecture> is one of:"
|
||||
echo " x86_64-linux"
|
||||
echo " aarch64-linux"
|
||||
) >&2
|
||||
fi
|
||||
|
||||
system="$1"; shift
|
||||
|
||||
nix-build '<nixpkgs/nixos>' \
|
||||
-A config.system.build.OCIImage \
|
||||
--argstr system "$system" \
|
||||
--option system-features kvm \
|
||||
-o oci-image
|
100
nixos/maintainers/scripts/oci/upload-image.sh
Executable file
100
nixos/maintainers/scripts/oci/upload-image.sh
Executable file
|
@ -0,0 +1,100 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
script_dir="$(dirname $(readlink -f $0))"
|
||||
nixpkgs_root="$script_dir/../../../.."
|
||||
export NIX_PATH="nixpkgs=$nixpkgs_root"
|
||||
|
||||
cat - <<EOF
|
||||
This script will locally build a NixOS image and upload it as a Custom Image
|
||||
using oci-cli. Make sure that an API key for the tenancy administrator has been
|
||||
added to '~/.oci'.
|
||||
For more info about configuring oci-cli, please visit
|
||||
https://docs.cloud.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm#Required_Keys_and_OCIDs
|
||||
|
||||
EOF
|
||||
|
||||
qcow="oci-image/nixos.qcow2"
|
||||
if [ ! -f "$qcow" ]; then
|
||||
echo "OCI image $qcow does not exist"
|
||||
echo "Building image with create-image.sh for 'x86_64-linux'"
|
||||
"$script_dir/create-image.sh" x86_64-linux
|
||||
[ -f "$qcow" ] || { echo "Build failed: image not present after build"; exit 1; }
|
||||
else
|
||||
echo "Using prebuilt image $qcow"
|
||||
fi
|
||||
|
||||
cli="$(
|
||||
nix-build '<nixpkgs>' \
|
||||
--no-out-link \
|
||||
-A oci-cli
|
||||
)"
|
||||
|
||||
PATH="$cli/bin:$PATH"
|
||||
bucket="_TEMP_NIXOS_IMAGES_$RANDOM"
|
||||
|
||||
echo "Creating a temporary bucket"
|
||||
root_ocid="$(
|
||||
oci iam compartment list \
|
||||
--all \
|
||||
--compartment-id-in-subtree true \
|
||||
--access-level ACCESSIBLE \
|
||||
--include-root \
|
||||
--raw-output \
|
||||
--query "data[?contains(\"id\",'tenancy')].id | [0]"
|
||||
)"
|
||||
bucket_ocid=$(
|
||||
oci os bucket create \
|
||||
-c "$root_ocid" \
|
||||
--name "$bucket" \
|
||||
--raw-output \
|
||||
--query "data.id"
|
||||
)
|
||||
# Clean up bucket on script termination
|
||||
trap 'echo Removing temporary bucket; oci os bucket delete --force --name "$bucket"' INT TERM EXIT
|
||||
|
||||
echo "Uploading image to temporary bucket"
|
||||
oci os object put -bn "$bucket" --file "$qcow"
|
||||
|
||||
echo "Importing image as a Custom Image"
|
||||
bucket_ns="$(oci os ns get --query "data" --raw-output)"
|
||||
image_id="$(
|
||||
oci compute image import from-object \
|
||||
-c "$root_ocid" \
|
||||
--namespace "$bucket_ns" \
|
||||
--bucket-name "$bucket" \
|
||||
--name nixos.qcow2 \
|
||||
--operating-system NixOS \
|
||||
--source-image-type QCOW2 \
|
||||
--launch-mode PARAVIRTUALIZED \
|
||||
--display-name NixOS \
|
||||
--raw-output \
|
||||
--query "data.id"
|
||||
)"
|
||||
|
||||
cat - <<EOF
|
||||
Image created! Please mark all available shapes as compatible with this image by
|
||||
visiting the following link and by selecting the 'Edit Details' button on:
|
||||
https://cloud.oracle.com/compute/images/$image_id
|
||||
EOF
|
||||
|
||||
# Workaround until https://github.com/oracle/oci-cli/issues/399 is addressed
|
||||
echo "Sleeping for 15 minutes before cleaning up files in the temporary bucket"
|
||||
sleep $((15 * 60))
|
||||
|
||||
echo "Deleting image from bucket"
|
||||
par_id="$(
|
||||
oci os preauth-request list \
|
||||
--bucket-name "$bucket" \
|
||||
--raw-output \
|
||||
--query "data[0].id"
|
||||
)"
|
||||
|
||||
if [[ -n $par_id ]]; then
|
||||
oci os preauth-request delete \
|
||||
--bucket-name "$bucket" \
|
||||
--par-id "$par_id"
|
||||
fi
|
||||
|
||||
oci os object delete -bn "$bucket" --object-name nixos.qcow2 --force
|
|
@ -1485,6 +1485,7 @@
|
|||
./virtualisation/nixos-containers.nix
|
||||
./virtualisation/oci-containers.nix
|
||||
./virtualisation/openstack-options.nix
|
||||
./virtualisation/oci-options.nix
|
||||
./virtualisation/openvswitch.nix
|
||||
./virtualisation/parallels-guest.nix
|
||||
./virtualisation/podman/default.nix
|
||||
|
|
|
@ -5,10 +5,110 @@ with lib;
|
|||
let
|
||||
cfg = config.services.knot;
|
||||
|
||||
configFile = pkgs.writeTextFile {
|
||||
yamlConfig = let
|
||||
result = assert secsCheck; nix2yaml cfg.settings;
|
||||
|
||||
secAllow = n: hasPrefix "mod-" n || elem n [
|
||||
"module"
|
||||
"server" "xdp" "control"
|
||||
"log"
|
||||
"statistics" "database"
|
||||
"keystore" "key" "remote" "remotes" "acl" "submission" "policy"
|
||||
"template"
|
||||
"zone"
|
||||
"include"
|
||||
];
|
||||
secsCheck = let
|
||||
secsBad = filter (n: !secAllow n) (attrNames cfg.settings);
|
||||
in if secsBad == [] then true else throw
|
||||
("services.knot.settings contains unknown sections: " + toString secsBad);
|
||||
|
||||
nix2yaml = nix_def: concatStrings (
|
||||
# We output the config section in the upstream-mandated order.
|
||||
# Ordering is important due to forward-references not being allowed.
|
||||
# See definition of conf_export and 'const yp_item_t conf_schema'
|
||||
# upstream for reference. Last updated for 3.3.
|
||||
# When changing the set of sections, also update secAllow above.
|
||||
[ (sec_list_fa "id" nix_def "module") ]
|
||||
++ map (sec_plain nix_def)
|
||||
[ "server" "xdp" "control" ]
|
||||
++ [ (sec_list_fa "target" nix_def "log") ]
|
||||
++ map (sec_plain nix_def)
|
||||
[ "statistics" "database" ]
|
||||
++ map (sec_list_fa "id" nix_def)
|
||||
[ "keystore" "key" "remote" "remotes" "acl" "submission" "policy" ]
|
||||
|
||||
# Export module sections before the template section.
|
||||
++ map (sec_list_fa "id" nix_def) (filter (hasPrefix "mod-") (attrNames nix_def))
|
||||
|
||||
++ [ (sec_list_fa "id" nix_def "template") ]
|
||||
++ [ (sec_list_fa "domain" nix_def "zone") ]
|
||||
++ [ (sec_plain nix_def "include") ]
|
||||
);
|
||||
|
||||
# A plain section contains directly attributes (we don't really check that ATM).
|
||||
sec_plain = nix_def: sec_name: if !hasAttr sec_name nix_def then "" else
|
||||
n2y "" { ${sec_name} = nix_def.${sec_name}; };
|
||||
|
||||
# This section contains a list of attribute sets. In each of the sets
|
||||
# there's an attribute (`fa_name`, typically "id") that must exist and come first.
|
||||
# Alternatively we support using attribute sets instead of lists; example diff:
|
||||
# -template = [ { id = "default"; /* other attributes */ } { id = "foo"; } ]
|
||||
# +template = { default = { /* those attributes */ }; foo = { }; }
|
||||
sec_list_fa = fa_name: nix_def: sec_name: if !hasAttr sec_name nix_def then "" else
|
||||
let
|
||||
elem2yaml = fa_val: other_attrs:
|
||||
" - " + n2y "" { ${fa_name} = fa_val; }
|
||||
+ " " + n2y " " other_attrs
|
||||
+ "\n";
|
||||
sec = nix_def.${sec_name};
|
||||
in
|
||||
sec_name + ":\n" +
|
||||
(if isList sec
|
||||
then flip concatMapStrings sec
|
||||
(elem: elem2yaml elem.${fa_name} (removeAttrs elem [ fa_name ]))
|
||||
else concatStrings (mapAttrsToList elem2yaml sec)
|
||||
);
|
||||
|
||||
# This convertor doesn't care about ordering of attributes.
|
||||
# TODO: it could probably be simplified even more, now that it's not
|
||||
# to be used directly, but we might want some other tweaks, too.
|
||||
n2y = indent: val:
|
||||
if doRecurse val then concatStringsSep "\n${indent}"
|
||||
(mapAttrsToList
|
||||
# This is a bit wacky - set directly under a set would start on bad indent,
|
||||
# so we start those on a new line, but not other types of attribute values.
|
||||
(aname: aval: "${aname}:${if doRecurse aval then "\n${indent} " else " "}"
|
||||
+ n2y (indent + " ") aval)
|
||||
val
|
||||
)
|
||||
+ "\n"
|
||||
else
|
||||
/*
|
||||
if isList val && stringLength indent < 4 then concatMapStrings
|
||||
(elem: "\n${indent}- " + n2y (indent + " ") elem)
|
||||
val
|
||||
else
|
||||
*/
|
||||
if isList val /* and long indent */ then
|
||||
"[ " + concatMapStringsSep ", " quoteString val + " ]" else
|
||||
if isBool val then (if val then "on" else "off") else
|
||||
quoteString val;
|
||||
|
||||
# We don't want paths like ./my-zone.txt be converted to plain strings.
|
||||
quoteString = s: ''"${if builtins.typeOf s == "path" then s else toString s}"'';
|
||||
# We don't want to walk the insides of derivation attributes.
|
||||
doRecurse = val: isAttrs val && !isDerivation val;
|
||||
|
||||
in result;
|
||||
|
||||
configFile = if cfg.settingsFile != null then
|
||||
assert cfg.settings == {} && cfg.keyFiles == [];
|
||||
cfg.settingsFile
|
||||
else pkgs.writeTextFile {
|
||||
name = "knot.conf";
|
||||
text = (concatMapStringsSep "\n" (file: "include: ${file}") cfg.keyFiles) + "\n" +
|
||||
cfg.extraConfig;
|
||||
text = (concatMapStringsSep "\n" (file: "include: ${file}") cfg.keyFiles) + "\n" + yamlConfig;
|
||||
# TODO: maybe we could do some checks even when private keys complicate this?
|
||||
checkPhase = lib.optionalString (cfg.keyFiles == []) ''
|
||||
${cfg.package}/bin/knotc --config=$out conf-check
|
||||
'';
|
||||
|
@ -60,11 +160,21 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
settings = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
Extra lines to be added verbatim to knot.conf
|
||||
Extra configuration as nix values.
|
||||
'';
|
||||
};
|
||||
|
||||
settingsFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
As alternative to ``settings``, you can provide whole configuration
|
||||
directly in the almost-YAML format of Knot DNS.
|
||||
You might want to utilize ``writeTextFile`` for this.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -78,6 +188,12 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
imports = [
|
||||
# Compatibility with NixOS 23.05. At least partial, as it fails assert if used with keyFiles.
|
||||
(mkChangedOptionModule [ "services" "knot" "extraConfig" ] [ "services" "knot" "settingsFile" ]
|
||||
(config: pkgs.writeText "knot.conf" config.services.knot.extraConfig)
|
||||
)
|
||||
];
|
||||
|
||||
config = mkIf config.services.knot.enable {
|
||||
users.groups.knot = {};
|
||||
|
@ -87,6 +203,8 @@ in {
|
|||
description = "Knot daemon user";
|
||||
};
|
||||
|
||||
environment.etc."knot/knot.conf".source = configFile; # just for user's convenience
|
||||
|
||||
systemd.services.knot = {
|
||||
unitConfig.Documentation = "man:knotd(8) man:knot.conf(5) man:knotc(8) https://www.knot-dns.cz/docs/${cfg.package.version}/html/";
|
||||
description = cfg.package.meta.description;
|
||||
|
|
60
nixos/modules/virtualisation/oci-common.nix
Normal file
60
nixos/modules/virtualisation/oci-common.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.oci;
|
||||
in
|
||||
{
|
||||
imports = [ ../profiles/qemu-guest.nix ];
|
||||
|
||||
# Taken from /proc/cmdline of Ubuntu 20.04.2 LTS on OCI
|
||||
boot.kernelParams = [
|
||||
"nvme.shutdown_timeout=10"
|
||||
"nvme_core.shutdown_timeout=10"
|
||||
"libiscsi.debug_libiscsi_eh=1"
|
||||
"crash_kexec_post_notifiers"
|
||||
|
||||
# VNC console
|
||||
"console=tty1"
|
||||
|
||||
# x86_64-linux
|
||||
"console=ttyS0"
|
||||
|
||||
# aarch64-linux
|
||||
"console=ttyAMA0,115200"
|
||||
];
|
||||
|
||||
boot.growPartition = true;
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
fsType = "ext4";
|
||||
autoResize = true;
|
||||
};
|
||||
|
||||
fileSystems."/boot" = lib.mkIf cfg.efi {
|
||||
device = "/dev/disk/by-label/ESP";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
boot.loader.efi.canTouchEfiVariables = false;
|
||||
boot.loader.grub = {
|
||||
device = if cfg.efi then "nodev" else "/dev/sda";
|
||||
splashImage = null;
|
||||
extraConfig = ''
|
||||
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
|
||||
terminal_input --append serial
|
||||
terminal_output --append serial
|
||||
'';
|
||||
efiInstallAsRemovable = cfg.efi;
|
||||
efiSupport = cfg.efi;
|
||||
};
|
||||
|
||||
# https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/configuringntpservice.htm#Configuring_the_Oracle_Cloud_Infrastructure_NTP_Service_for_an_Instance
|
||||
networking.timeServers = [ "169.254.169.254" ];
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Otherwise the instance may not have a working network-online.target,
|
||||
# making the fetch-ssh-keys.service fail
|
||||
networking.useNetworkd = true;
|
||||
}
|
12
nixos/modules/virtualisation/oci-config-user.nix
Normal file
12
nixos/modules/virtualisation/oci-config-user.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ modulesPath, ... }:
|
||||
|
||||
{
|
||||
# To build the configuration or use nix-env, you need to run
|
||||
# either nixos-rebuild --upgrade or nix-channel --update
|
||||
# to fetch the nixos channel.
|
||||
|
||||
# This configures everything but bootstrap services,
|
||||
# which only need to be run once and have already finished
|
||||
# if you are able to see this comment.
|
||||
imports = [ "${modulesPath}/virtualisation/oci-common.nix" ];
|
||||
}
|
50
nixos/modules/virtualisation/oci-image.nix
Normal file
50
nixos/modules/virtualisation/oci-image.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.oci;
|
||||
in
|
||||
{
|
||||
imports = [ ./oci-common.nix ];
|
||||
|
||||
config = {
|
||||
system.build.OCIImage = import ../../lib/make-disk-image.nix {
|
||||
inherit config lib pkgs;
|
||||
name = "oci-image";
|
||||
configFile = ./oci-config-user.nix;
|
||||
format = "qcow2";
|
||||
diskSize = 8192;
|
||||
partitionTableType = if cfg.efi then "efi" else "legacy";
|
||||
};
|
||||
|
||||
systemd.services.fetch-ssh-keys = {
|
||||
description = "Fetch authorized_keys for root user";
|
||||
|
||||
wantedBy = [ "sshd.service" ];
|
||||
before = [ "sshd.service" ];
|
||||
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
path = [ pkgs.coreutils pkgs.curl ];
|
||||
script = ''
|
||||
mkdir -m 0700 -p /root/.ssh
|
||||
if [ -f /root/.ssh/authorized_keys ]; then
|
||||
echo "Authorized keys have already been downloaded"
|
||||
else
|
||||
echo "Downloading authorized keys from Instance Metadata Service v2"
|
||||
curl -s -S -L \
|
||||
-H "Authorization: Bearer Oracle" \
|
||||
-o /root/.ssh/authorized_keys \
|
||||
http://169.254.169.254/opc/v2/instance/metadata/ssh_authorized_keys
|
||||
chmod 600 /root/.ssh/authorized_keys
|
||||
fi
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
StandardError = "journal+console";
|
||||
StandardOutput = "journal+console";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
14
nixos/modules/virtualisation/oci-options.nix
Normal file
14
nixos/modules/virtualisation/oci-options.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
options = {
|
||||
oci = {
|
||||
efi = lib.mkOption {
|
||||
default = true;
|
||||
internal = true;
|
||||
description = ''
|
||||
Whether the OCI instance is using EFI.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -134,31 +134,32 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: {
|
|||
extraArgs = [
|
||||
"-v"
|
||||
];
|
||||
extraConfig = ''
|
||||
server:
|
||||
listen: 0.0.0.0@53
|
||||
settings = {
|
||||
server.listen = [
|
||||
"0.0.0.0@53"
|
||||
];
|
||||
|
||||
log:
|
||||
- target: syslog
|
||||
any: debug
|
||||
log.syslog.any = "info";
|
||||
|
||||
acl:
|
||||
- id: dhcp_ddns
|
||||
address: 10.0.0.1
|
||||
action: update
|
||||
acl.dhcp_ddns = {
|
||||
address = "10.0.0.1";
|
||||
action = "update";
|
||||
};
|
||||
|
||||
template:
|
||||
- id: default
|
||||
storage: ${zonesDir}
|
||||
zonefile-sync: -1
|
||||
zonefile-load: difference-no-serial
|
||||
journal-content: all
|
||||
template.default = {
|
||||
storage = zonesDir;
|
||||
zonefile-sync = "-1";
|
||||
zonefile-load = "difference-no-serial";
|
||||
journal-content = "all";
|
||||
};
|
||||
|
||||
zone:
|
||||
- domain: lan.nixos.test
|
||||
file: lan.nixos.test.zone
|
||||
acl: [dhcp_ddns]
|
||||
'';
|
||||
zone."lan.nixos.test" = {
|
||||
file = "lan.nixos.test.zone";
|
||||
acl = [
|
||||
"dhcp_ddns"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
@ -60,44 +60,43 @@ in {
|
|||
services.knot.enable = true;
|
||||
services.knot.extraArgs = [ "-v" ];
|
||||
services.knot.keyFiles = [ tsigFile ];
|
||||
services.knot.extraConfig = ''
|
||||
server:
|
||||
listen: 0.0.0.0@53
|
||||
listen: ::@53
|
||||
automatic-acl: true
|
||||
services.knot.settings = {
|
||||
server = {
|
||||
listen = [
|
||||
"0.0.0.0@53"
|
||||
"::@53"
|
||||
];
|
||||
automatic-acl = true;
|
||||
};
|
||||
|
||||
remote:
|
||||
- id: secondary
|
||||
address: 192.168.0.2@53
|
||||
key: xfr_key
|
||||
acl.secondary_acl = {
|
||||
address = "192.168.0.2";
|
||||
key = "xfr_key";
|
||||
action = "transfer";
|
||||
};
|
||||
|
||||
template:
|
||||
- id: default
|
||||
storage: ${knotZonesEnv}
|
||||
notify: [secondary]
|
||||
dnssec-signing: on
|
||||
# Input-only zone files
|
||||
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-3
|
||||
# prevents modification of the zonefiles, since the zonefiles are immutable
|
||||
zonefile-sync: -1
|
||||
zonefile-load: difference
|
||||
journal-content: changes
|
||||
# move databases below the state directory, because they need to be writable
|
||||
journal-db: /var/lib/knot/journal
|
||||
kasp-db: /var/lib/knot/kasp
|
||||
timer-db: /var/lib/knot/timer
|
||||
remote.secondary.address = "192.168.0.2@53";
|
||||
|
||||
zone:
|
||||
- domain: example.com
|
||||
file: example.com.zone
|
||||
template.default = {
|
||||
storage = knotZonesEnv;
|
||||
notify = [ "secondary" ];
|
||||
acl = [ "secondary_acl" ];
|
||||
dnssec-signing = true;
|
||||
# Input-only zone files
|
||||
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-3
|
||||
# prevents modification of the zonefiles, since the zonefiles are immutable
|
||||
zonefile-sync = -1;
|
||||
zonefile-load = "difference";
|
||||
journal-content = "changes";
|
||||
};
|
||||
|
||||
- domain: sub.example.com
|
||||
file: sub.example.com.zone
|
||||
zone = {
|
||||
"example.com".file = "example.com.zone";
|
||||
"sub.example.com".file = "sub.example.com.zone";
|
||||
};
|
||||
|
||||
log:
|
||||
- target: syslog
|
||||
any: info
|
||||
'';
|
||||
log.syslog.any = "info";
|
||||
};
|
||||
};
|
||||
|
||||
secondary = { lib, ... }: {
|
||||
|
@ -113,41 +112,36 @@ in {
|
|||
services.knot.enable = true;
|
||||
services.knot.keyFiles = [ tsigFile ];
|
||||
services.knot.extraArgs = [ "-v" ];
|
||||
services.knot.extraConfig = ''
|
||||
server:
|
||||
listen: 0.0.0.0@53
|
||||
listen: ::@53
|
||||
automatic-acl: true
|
||||
services.knot.settings = {
|
||||
server = {
|
||||
listen = [
|
||||
"0.0.0.0@53"
|
||||
"::@53"
|
||||
];
|
||||
automatic-acl = true;
|
||||
};
|
||||
|
||||
remote:
|
||||
- id: primary
|
||||
address: 192.168.0.1@53
|
||||
key: xfr_key
|
||||
remote.primary = {
|
||||
address = "192.168.0.1@53";
|
||||
key = "xfr_key";
|
||||
};
|
||||
|
||||
template:
|
||||
- id: default
|
||||
master: primary
|
||||
# zonefileless setup
|
||||
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-2
|
||||
zonefile-sync: -1
|
||||
zonefile-load: none
|
||||
journal-content: all
|
||||
# move databases below the state directory, because they need to be writable
|
||||
journal-db: /var/lib/knot/journal
|
||||
kasp-db: /var/lib/knot/kasp
|
||||
timer-db: /var/lib/knot/timer
|
||||
template.default = {
|
||||
master = "primary";
|
||||
# zonefileless setup
|
||||
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-2
|
||||
zonefile-sync = "-1";
|
||||
zonefile-load = "none";
|
||||
journal-content = "all";
|
||||
};
|
||||
|
||||
zone:
|
||||
- domain: example.com
|
||||
file: example.com.zone
|
||||
zone = {
|
||||
"example.com".file = "example.com.zone";
|
||||
"sub.example.com".file = "sub.example.com.zone";
|
||||
};
|
||||
|
||||
- domain: sub.example.com
|
||||
file: sub.example.com.zone
|
||||
|
||||
log:
|
||||
- target: syslog
|
||||
any: info
|
||||
'';
|
||||
log.syslog.any = "info";
|
||||
};
|
||||
};
|
||||
client = { lib, nodes, ... }: {
|
||||
imports = [ common ];
|
||||
|
|
|
@ -7,7 +7,7 @@ let
|
|||
src = fetchurl {
|
||||
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
|
||||
name="${pname}-${version}.AppImage";
|
||||
sha512 = "CrSXmRVatVSkMyB1QaNSL/tK60rQvT9JraRtYYLl0Fau3M1LJXK9yqvt77AjwIwIvi2Dm5SROG+c4rA1XtI4Yg==";
|
||||
hash = "sha512-CrSXmRVatVSkMyB1QaNSL/tK60rQvT9JraRtYYLl0Fau3M1LJXK9yqvt77AjwIwIvi2Dm5SROG+c4rA1XtI4Yg==";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
|
|
@ -84,7 +84,7 @@ stdenv.mkDerivation {
|
|||
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
|
||||
src = fetchurl {
|
||||
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
||||
sha512 = "3d5a9fda88a076a22bb6d0b6b586334865f03a4e852ca8e022468e3dd3520a81dea314721e26e54ba9309603e08f66588f005ee8970e73eccbf805ff70e89dca";
|
||||
hash = "sha512-PVqf2oigdqIrttC2tYYzSGXwOk6FLKjgIkaOPdNSCoHeoxRyHiblS6kwlgPgj2ZYjwBe6JcOc+zL+AX/cOidyg==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook makeShellWrapper squashfsTools ];
|
||||
|
|
|
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
|||
# Required for static linking, the only supported install path
|
||||
lbzmqsrc = fetchurl {
|
||||
url = "https://github.com/zeromq/libzmq/releases/download/v4.3.3/zeromq-4.3.3.tar.gz";
|
||||
sha512 = "4c18d784085179c5b1fcb753a93813095a12c8d34970f2e1bfca6499be6c9d67769c71c68b7ca54ff181b20390043170e89733c22f76ff1ea46494814f7095b1";
|
||||
hash = "sha512-TBjXhAhRecWx/LdTqTgTCVoSyNNJcPLhv8pkmb5snWd2nHHGi3ylT/GBsgOQBDFw6Jczwi92/x6kZJSBT3CVsQ==";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -18,7 +18,7 @@ let
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
|
||||
sha512 = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
|
||||
hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
|
||||
aarch64-linux = "sha512-+dcogzj0mENWSAVKqUG/xyF+TD/nKpA3UiNyI2M7iiCaW+tpwO5Y0uUmzb1rFRtDsKMflDPZNWe8qMJmrtaIrA==";
|
||||
x86_64-linux = "sha512-8UyPa3hDmALiYGao451ZBQLxv9H9OLbzzHiANp4zgvjBLGNhZnPFBIYM6KGyKkgRJJiTcgd7VHCgEhPpfm0qzg==";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
|
|
@ -355,7 +355,7 @@ rec {
|
|||
|
||||
src = fetchzip {
|
||||
url = "https://download.jboss.org/drools/release/${version}/droolsjbpm-tools-distribution-${version}.zip";
|
||||
sha512 = "2qzc1iszqfrfnw8xip78n3kp6hlwrvrr708vlmdk7nv525xhs0ssjaxriqdhcr0s6jripmmazxivv3763rnk2bfkh31hmbnckpx4r3m";
|
||||
hash = "sha512-dWTS72R2VRgGnG6JafMwZ+wd+1e13pil0SAz2HDMXUmtgYa9iLLtma3SjcDJeWdOoblzWHRu7Ihblx3+Ogb2sQ==";
|
||||
postFetch = ''
|
||||
# update site is a couple levels deep, alongside some other irrelevant stuff
|
||||
cd $out;
|
||||
|
|
|
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tar.gz";
|
||||
sha512 = "7a895e432e1d28b7d9b2bb2a5326ca32350876a2c80d39dc6c19e75347d72a4847f1aa4ff11f07e8a9adea14ea71b84d70890dcc170ff6ce0b779e1d6586b4fa";
|
||||
hash = "sha512-eoleQy4dKLfZsrsqUybKMjUIdqLIDTncbBnnU0fXKkhH8apP8R8H6Kmt6hTqcbhNcIkNzBcP9s4Ld54dZYa0+g==";
|
||||
};
|
||||
|
||||
inherit patches;
|
||||
|
|
|
@ -11,7 +11,7 @@ rec {
|
|||
binaryName = pname;
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
|
||||
sha512 = "4ae3f216833aec55421f827d55bc1b5fc2f0ad4fefecb27724a5be3318c351df24d30a4897b924e733ed2e3995be284b6d135049d46001143fb1c961fefc1830";
|
||||
hash = "sha512-SuPyFoM67FVCH4J9VbwbX8LwrU/v7LJ3JKW+MxjDUd8k0wpIl7kk5zPtLjmVvihLbRNQSdRgARQ/sclh/vwYMA==";
|
||||
};
|
||||
extraPatches = [
|
||||
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
|
||||
|
@ -49,7 +49,7 @@ rec {
|
|||
binaryName = pname;
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
|
||||
sha512 = "45843709c21eb19d69d43205da6b2f943b584811a29942ffef1933c1ce7882b48046b201c2ff198658fec2c53d479311d8a353731afe6ea53f97b31674d6074a";
|
||||
hash = "sha512-RYQ3CcIesZ1p1DIF2msvlDtYSBGimUL/7xkzwc54grSARrIBwv8Zhlj+wsU9R5MR2KNTcxr+bqU/l7MWdNYHSg==";
|
||||
};
|
||||
extraPatches = [
|
||||
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, git, gfortran, mpi, blas, liblapack, pkg-config, libGL, libGLU, opencascade, libsForQt5, tbb, vtkWithQt5 }:
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, git, gfortran, mpi, blas, liblapack, pkg-config, libGL, libGLU, opencascade-occt, libsForQt5, tbb, vtkWithQt5 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elmerfem";
|
||||
version = "unstable-2023-02-03";
|
||||
version = "unstable-2023-09-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elmercsc";
|
||||
repo = pname;
|
||||
rev = "39c8784b6e4543a6bf560b5d597e0eec1eb06343";
|
||||
hash = "sha256-yyxgFvlS+I4PouDL6eD4ZrXuONTDejCSYKq2AwQ0Iug=";
|
||||
rev = "0fcced06f91c93f44557efd6a5f10b2da5c7066c";
|
||||
hash = "sha256-UuARDYW7D3a4dB6I86s2Ed5ecQxc+Y/es3YIeF2VyTc=";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
|||
libsForQt5.qwt
|
||||
libGL
|
||||
libGLU
|
||||
opencascade
|
||||
opencascade-occt
|
||||
tbb
|
||||
vtkWithQt5
|
||||
];
|
||||
|
|
|
@ -12,7 +12,7 @@ in appimageTools.wrapAppImage rec {
|
|||
src = fetchurl {
|
||||
url = "https://github.com/lbryio/lbry-desktop/releases/download/v${version}/LBRY_${version}.AppImage";
|
||||
# Gotten from latest-linux.yml
|
||||
sha512 = "WZB2pMzSuWGPj6uad+rIECOhuWEOxi0hVUQifOrhUrKj4SnBDws+oy7V2+NpDGkzbG+Kf3IO8rcWBD4wfFoo2Q==";
|
||||
hash = "sha512-WZB2pMzSuWGPj6uad+rIECOhuWEOxi0hVUQifOrhUrKj4SnBDws+oy7V2+NpDGkzbG+Kf3IO8rcWBD4wfFoo2Q==";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
let
|
||||
yarnpkg-lockfile-tar = fetchurl {
|
||||
url = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz";
|
||||
sha512 = "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
|
||||
hash = "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
|
||||
};
|
||||
|
||||
tests = callPackage ./tests {};
|
||||
|
|
38
pkgs/by-name/kt/ktfmt/package.nix
Normal file
38
pkgs/by-name/kt/ktfmt/package.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ lib, fetchFromGitHub, jre_headless, makeWrapper, maven }:
|
||||
|
||||
maven.buildMavenPackage rec {
|
||||
pname = "ktfmt";
|
||||
version = "0.46";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "ktfmt";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-OIbJ+J5LX6SPv5tuAiY66v/edeM7nFPHj90GXV6zaxw=";
|
||||
};
|
||||
|
||||
mvnHash = "sha256-pzMjkkdkbVqVxZPW2I0YWPl5/l6+SyNkhd6gkm9Uoyc=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
install -Dm644 core/target/ktfmt-*-jar-with-dependencies.jar $out/share/ktfmt/ktfmt.jar
|
||||
|
||||
makeWrapper ${jre_headless}/bin/java $out/bin/ktfmt \
|
||||
--add-flags "-jar $out/share/ktfmt/ktfmt.jar"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions.";
|
||||
homepage = "https://github.com/facebook/ktfmt";
|
||||
license = licenses.apsl20;
|
||||
mainProgram = "ktfmt";
|
||||
maintainers = with maintainers; [ ghostbuster91 ];
|
||||
inherit (jre_headless.meta) platforms;
|
||||
};
|
||||
}
|
|
@ -2,21 +2,23 @@
|
|||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cairo
|
||||
, gettext
|
||||
, glib
|
||||
, libdrm
|
||||
, libinput
|
||||
, libpng
|
||||
, librsvg
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, libxml2
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, pango
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, wayland-scanner
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wayland-scanner
|
||||
, wlroots
|
||||
, xcbutilwm
|
||||
, xwayland
|
||||
|
@ -24,13 +26,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "labwc";
|
||||
version = "0.6.4";
|
||||
version = "0.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "labwc";
|
||||
repo = "labwc";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-8FMC0tq5Gp5qDPUmoJTCrHEergDMUbiTco17jPTJUgE=";
|
||||
hash = "sha256-nQLxE2Q4GiLUjkag/yqctzmkKKWFw1XNFjotE8MMgBA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -47,6 +49,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
glib
|
||||
libdrm
|
||||
libinput
|
||||
libpng
|
||||
librsvg
|
||||
libxcb
|
||||
libxkbcommon
|
||||
libxml2
|
||||
|
@ -58,16 +62,20 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
xwayland
|
||||
];
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
mesonFlags = [
|
||||
(lib.mesonEnable "xwayland" true)
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/labwc/labwc";
|
||||
description = "A Wayland stacking compositor, similar to Openbox";
|
||||
description = "A Wayland stacking compositor, inspired by Openbox";
|
||||
changelog = "https://raw.githubusercontent.com/labwc/labwc/${finalAttrs.version}/NEWS.md";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
inherit (wayland.meta) platforms;
|
||||
};
|
||||
})
|
|
@ -28,13 +28,13 @@ lib.checkListOfEnum "${pname}: tweaks" validTweaks tweaks
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
inherit pname;
|
||||
version = "0.6.1";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "gtk";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-b03V/c2do5FSm4Q0yN7V0RuoQX1fYsBd//Hj3R5MESI=";
|
||||
hash = "sha256-BjdPe3wQBSVMYpeCifq93Cqt/G4bzsZYgOPBTilHqD8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 sassc ];
|
||||
|
@ -53,9 +53,12 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs --build colloid/clean-old-theme.sh colloid/install.sh
|
||||
patchShebangs --build colloid/install.sh
|
||||
'';
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "janet";
|
||||
version = "1.30.0";
|
||||
version = "1.31.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "janet-lang";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-tkXEi8m7eroie/yP1kW0V6Ld5SCLA0/KmtHHI0fIsRI=";
|
||||
hash = "sha256-Dj2fj1dsdAMl/H0vNKTf9qjPB4GVRpgWPVR+PuZWZMc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "luau";
|
||||
version = "0.594";
|
||||
version = "0.596";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Roblox";
|
||||
repo = "luau";
|
||||
rev = version;
|
||||
hash = "sha256-GRdJlVCT1jRAuQHsDjV2oqk7mtBUNDpWt8JGlP31CVs=";
|
||||
hash = "sha256-25SMgBW5Uqh0dGM8A9qCTcUPPP7wzH8wCGk4w+0wp/c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
callPackage ./common.nix rec {
|
||||
version = "20210528";
|
||||
url = "https://www.prevanders.net/libdwarf-${version}.tar.gz";
|
||||
sha512 = "e0f9c88554053ee6c1b1333960891189e7820c4a4ddc302b7e63754a4cdcfc2acb1b4b6083a722d1204a75e994fff3401ecc251b8c3b24090f8cb4046d90f870";
|
||||
hash = "sha512-4PnIhVQFPubBsTM5YIkRieeCDEpN3DArfmN1Skzc/CrLG0tgg6ci0SBKdemU//NAHswlG4w7JAkPjLQEbZD4cA==";
|
||||
buildInputs = [ zlib libelf ];
|
||||
knownVulnerabilities = [ "CVE-2022-32200" "CVE-2022-39170" ];
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, stdenv, fetchurl, buildInputs, sha512, version, libelf, url, knownVulnerabilities }:
|
||||
{ lib, stdenv, fetchurl, buildInputs, hash, version, libelf, url, knownVulnerabilities }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libdwarf";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
inherit url sha512;
|
||||
inherit url hash;
|
||||
};
|
||||
|
||||
configureFlags = [ "--enable-shared" "--disable-nonshared" ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
callPackage ./common.nix rec {
|
||||
version = "0.4.2";
|
||||
url = "https://www.prevanders.net/libdwarf-${version}.tar.xz";
|
||||
sha512 = "6d2a3ebf0104362dd9cecec272935684f977db119810eea0eec88c9f56a042f260a4f6ed3bbabde8592fe16f98cbd81b4ab2878005140e05c8f475df6380d1c2";
|
||||
hash = "sha512-bSo+vwEENi3Zzs7CcpNWhPl32xGYEO6g7siMn1agQvJgpPbtO7q96Fkv4W+Yy9gbSrKHgAUUDgXI9HXfY4DRwg==";
|
||||
buildInputs = [ zlib ];
|
||||
knownVulnerabilities = [];
|
||||
}
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libgphoto2";
|
||||
version = "2.5.30";
|
||||
version = "2.5.31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gphoto";
|
||||
repo = "libgphoto2";
|
||||
rev = "libgphoto2-${builtins.replaceStrings [ "." ] [ "_" ] version}-release";
|
||||
sha256 = "sha256-4UwD283mKhZwC7setBU0BLRLsyfjD/6m/InSedrqgAU=";
|
||||
sha256 = "sha256-UmyDKEaPP9VJqi8f+y6JZcTlQomhMTN+/C//ODYx6/w=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, libGL, libGLU, libXmu, cmake, ninja,
|
||||
pkg-config, fontconfig, freetype, expat, freeimage, vtk_8, gl2ps, tbb,
|
||||
OpenCL, Cocoa
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "opencascade-oce";
|
||||
version = "0.18.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpaviot";
|
||||
repo = "oce";
|
||||
rev = "OCE-${version}";
|
||||
sha256 = "17wy8dcf44vqisishv1jjf3cmcxyygqq29y9c3wjdj983qi2hsig";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ninja pkg-config ];
|
||||
buildInputs = [
|
||||
libGL libGLU libXmu freetype fontconfig expat freeimage vtk_8
|
||||
gl2ps tbb
|
||||
]
|
||||
++ lib.optionals stdenv.isDarwin [OpenCL Cocoa]
|
||||
;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DOCE_INSTALL_PREFIX=${placeholder "out"}"
|
||||
"-DOCE_WITH_FREEIMAGE=ON"
|
||||
"-DOCE_WITH_VTK=ON"
|
||||
"-DOCE_WITH_GL2PS=ON"
|
||||
"-DOCE_MULTITHREAD_LIBRARY=TBB"
|
||||
]
|
||||
++ lib.optionals stdenv.isDarwin ["-DOCE_OSX_USE_COCOA=ON" "-DOCE_WITH_OPENCL=ON"];
|
||||
|
||||
patches = [
|
||||
# Use fontconfig instead of hardcoded directory list
|
||||
# https://github.com/tpaviot/oce/pull/714
|
||||
(fetchpatch {
|
||||
url = "https://github.com/tpaviot/oce/commit/9643432b27fec8974ca0ee15c3c372f5fe8fc069.patch";
|
||||
sha256 = "1wd940rszmh5apcpk5fv6126h8mcjcy4rjifrql5d4ac90v06v4c";
|
||||
})
|
||||
# Fix for glibc 2.26
|
||||
(fetchpatch {
|
||||
url = "https://github.com/tpaviot/oce/commit/3b44656e93270d782009b06ec4be84d2a13f8126.patch";
|
||||
sha256 = "1ccakkcwy5g0184m23x0mnh22i0lk45xm8kgiv5z3pl7nh35dh8k";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/tpaviot/oce/commit/cf50d078cd5fac03a48fd204938bd240930a08dc.patch";
|
||||
sha256 = "1xv94hcvggmb1c8vqwic1aiw9jw1sxk8mqbaak9xs9ycfqdvgdyc";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# make sure the installed cmake file uses absolute paths for fontconfig
|
||||
substituteInPlace adm/cmake/TKService/CMakeLists.txt \
|
||||
--replace FONTCONFIG_LIBRARIES FONTCONFIG_LINK_LIBRARIES
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
|
||||
homepage = "https://github.com/tpaviot/oce";
|
||||
maintainers = [ maintainers.viric ];
|
||||
platforms = platforms.unix;
|
||||
license = licenses.lgpl21;
|
||||
};
|
||||
}
|
|
@ -22,7 +22,6 @@
|
|||
, enablePython ? false, pythonPackages ? null
|
||||
, enableGtk2 ? false, gtk2
|
||||
, enableGtk3 ? false, gtk3
|
||||
, enableVtk ? false, vtk_8
|
||||
, enableFfmpeg ? false, ffmpeg
|
||||
, enableGStreamer ? false, gst_all_1
|
||||
, enableTesseract ? false, tesseract, leptonica
|
||||
|
@ -191,7 +190,6 @@ stdenv.mkDerivation {
|
|||
++ lib.optional enablePython pythonPackages.python
|
||||
++ lib.optional enableGtk2 gtk2
|
||||
++ lib.optional enableGtk3 gtk3
|
||||
++ lib.optional enableVtk vtk_8
|
||||
++ lib.optional enableJPEG libjpeg
|
||||
++ lib.optional enablePNG libpng
|
||||
++ lib.optional enableTIFF libtiff
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, doxygen,
|
||||
{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, doxygen,
|
||||
libX11, libXinerama, libXrandr, libGLU, libGL,
|
||||
glib, ilmbase, libxml2, pcre, zlib,
|
||||
AGL, Accelerate, Carbon, Cocoa, Foundation,
|
||||
|
@ -11,7 +11,7 @@
|
|||
gdalSupport ? false, gdal,
|
||||
curlSupport ? true, curl,
|
||||
colladaSupport ? false, collada-dom,
|
||||
opencascadeSupport ? false, opencascade,
|
||||
opencascadeSupport ? false, opencascade-occt,
|
||||
ffmpegSupport ? false, ffmpeg,
|
||||
nvttSupport ? false, nvidia-texture-tools,
|
||||
freetypeSupport ? true, freetype,
|
||||
|
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
|
|||
++ lib.optional gdalSupport gdal
|
||||
++ lib.optional curlSupport curl
|
||||
++ lib.optional colladaSupport collada-dom
|
||||
++ lib.optional opencascadeSupport opencascade
|
||||
++ lib.optional opencascadeSupport opencascade-occt
|
||||
++ lib.optional ffmpegSupport ffmpeg
|
||||
++ lib.optional nvttSupport nvidia-texture-tools
|
||||
++ lib.optional freetypeSupport freetype
|
||||
|
@ -66,7 +66,15 @@ stdenv.mkDerivation rec {
|
|||
++ lib.optionals (!stdenv.isDarwin) [ ]
|
||||
++ lib.optionals stdenv.isDarwin [ AGL Accelerate Carbon Cocoa Foundation ]
|
||||
++ lib.optional (restSupport || colladaSupport) boost
|
||||
;
|
||||
;
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "opencascade-api-patch";
|
||||
url = "https://github.com/openscenegraph/OpenSceneGraph/commit/bc2daf9b3239c42d7e51ecd7947d31a92a7dc82b.patch";
|
||||
hash = "sha256-VR8YKOV/YihB5eEGZOGaIfJNrig1EPS/PJmpKsK284c=";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF" ++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON";
|
||||
|
||||
|
|
|
@ -1,14 +1,27 @@
|
|||
{ lib, stdenv, gtest, fetchFromGitHub, cmake, boost, eigen, python3, vtk_8, zlib, tbb }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, python3
|
||||
, boost
|
||||
, eigen
|
||||
, libGLU
|
||||
, fltk
|
||||
, itk
|
||||
, vtk
|
||||
, zlib
|
||||
, tbb
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.0.0";
|
||||
pname = "mirtk";
|
||||
version = "unstable-2022-07-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BioMedIA";
|
||||
repo = "MIRTK";
|
||||
rev = "v${version}";
|
||||
sha256 = "0i2v97m66ir5myvi5b123r7zcagwy551b73s984gk7lksl5yiqxk";
|
||||
rev = "973ce2fe3f9508dec68892dbf97cca39067aa3d6";
|
||||
hash = "sha256-vKgkDrbyGOcbaYlxys1duC8ZNG0Y2nqh3TtSQ06Ox0Q=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -16,23 +29,36 @@ stdenv.mkDerivation rec {
|
|||
"-DWITH_VTK=ON"
|
||||
"-DBUILD_ALL_MODULES=ON"
|
||||
"-DWITH_TBB=ON"
|
||||
"-DWITH_ITK=ON"
|
||||
"-DWITH_GIFTICLIB=ON"
|
||||
"-DWITH_NIFTILIB=ON"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkPhase = ''
|
||||
ctest -E '(Polynomial|ConvolutionFunction|Downsampling|EdgeTable|InterpolateExtrapolateImage)'
|
||||
# tries to download data during configuration
|
||||
postPatch = ''
|
||||
substituteInPlace Packages/DrawEM/CMakeLists.txt --replace "include(Atlases.cmake)" ""
|
||||
'';
|
||||
# testPolynomial - segfaults for some reason
|
||||
# testConvolutionFunction, testDownsampling - main not called correctly
|
||||
# testEdgeTable, testInterpolateExtrapolateImageFunction - setup fails
|
||||
|
||||
# tests don't seem to be maintained and gtest fails to link with BUILD_TESTING=ON;
|
||||
# unclear if specific to Nixpkgs
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 -t "$out/share/bash-completion/completions/mirtk" share/completion/bash/mirtk
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake gtest ];
|
||||
buildInputs = [ boost eigen python3 vtk_8 zlib tbb ];
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [
|
||||
boost
|
||||
eigen
|
||||
fltk
|
||||
itk
|
||||
libGLU.dev
|
||||
python3
|
||||
tbb
|
||||
vtk
|
||||
zlib
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/BioMedIA/MIRTK";
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, ninja, opencascade
|
||||
, Cocoa }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "smesh";
|
||||
version = "6.7.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpaviot";
|
||||
repo = "smesh";
|
||||
rev = version;
|
||||
sha256 = "1b07j3bw3lnxk8dk3x1kkl2mbsmfwi98si84054038lflaaijzi0";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-build-with-clang.patch";
|
||||
url = "https://github.com/tpaviot/smesh/commit/e32c430f526f1637ec5973c9723acbc5be571ae3.patch";
|
||||
sha256 = "0s4j5rb70g3jvvkgfbrxv7q52wk6yjyjiaya61gy2j64khplcjlb";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake ninja ];
|
||||
buildInputs = [ opencascade ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [ "-std=c++11" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extension to OCE providing advanced meshing features";
|
||||
homepage = "https://github.com/tpaviot/smesh";
|
||||
license = licenses.lgpl21;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ gebner ];
|
||||
};
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
import ./generic.nix {
|
||||
majorVersion = "8.2";
|
||||
minorVersion = "0";
|
||||
sourceSha256 = "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl";
|
||||
patchesToFetch = [{
|
||||
url = "https://gitlab.kitware.com/vtk/vtk/-/commit/257b9d7b18d5f3db3fe099dc18f230e23f7dfbab.diff";
|
||||
sha256 = "0qdahp4f4gcaznr28j06d5fyxiis774ys0p335aazf7h51zb8rzy";
|
||||
}
|
||||
{
|
||||
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sci-libs/vtk/files/vtk-8.2.0-gcc-10.patch?id=c4256f68d3589570443075eccbbafacf661f785f";
|
||||
sha256 = "sha256:0bpwrdfmi15grsg4jy7bzj2z6511a0c160cmw5lsi65aabyh7cl5";
|
||||
}
|
||||
{
|
||||
url = "https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6943.diff";
|
||||
sha256 = "sha256:1nzdw3f6bsri04y528zj2klqkb9p8s4lnl9g5zvm119m1cmyhn04";
|
||||
}
|
||||
];
|
||||
}
|
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/zookeeper/${zookeeper.pname}-${version}/apache-${zookeeper.pname}-${version}.tar.gz";
|
||||
sha512 = "sha512-ttYbATvfe+uRYhQWfeG1WGXl5GOztcrITfl/4EQierAzSaDvTmVxSb582hYQOdBpxw2QrVbIdnTm3/Xt4ifecg==";
|
||||
hash = "sha512-ttYbATvfe+uRYhQWfeG1WGXl5GOztcrITfl/4EQierAzSaDvTmVxSb582hYQOdBpxw2QrVbIdnTm3/Xt4ifecg==";
|
||||
};
|
||||
|
||||
sourceRoot = "apache-${zookeeper.pname}-${version}/zookeeper-client/zookeeper-client-c";
|
||||
|
|
|
@ -8,7 +8,7 @@ buildDunePackage rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://ygrek.org/p/release/ocaml-${pname}/${pname}-${version}.tar.gz";
|
||||
sha512 = "2386ac69f037ea520835c0624d39ae9fbffe43a20b18e247de032232ed6f419d667b53d2314c6f56dc71d368bf0b6201a56c2f3f2a5bdfd933766c5a6cb98768";
|
||||
hash = "sha512-I4asafA36lIINcBiTTmun7/+Q6ILGOJH3gMiMu1vQZ1me1PSMUxvVtxx02i/C2IBpWwvPypb39kzdmxabLmHaA==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cppo ];
|
||||
|
|
|
@ -5,12 +5,11 @@
|
|||
, pythonAtLeast
|
||||
, fetchFromGitHub
|
||||
, pyparsing
|
||||
, opencascade
|
||||
, opencascade-occt
|
||||
, stdenv
|
||||
, python
|
||||
, cmake
|
||||
, swig
|
||||
, smesh
|
||||
, freetype
|
||||
, libGL
|
||||
, libGLU
|
||||
|
@ -42,8 +41,7 @@ let
|
|||
|
||||
buildInputs = [
|
||||
python
|
||||
opencascade
|
||||
smesh
|
||||
opencascade-occt
|
||||
freetype
|
||||
libGL
|
||||
libGLU
|
||||
|
@ -57,9 +55,6 @@ let
|
|||
cmakeFlags = [
|
||||
"-Wno-dev"
|
||||
"-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
|
||||
"-DSMESH_INCLUDE_PATH=${smesh}/include/smesh"
|
||||
"-DSMESH_LIB_PATH=${smesh}/lib"
|
||||
"-DPYTHONOCC_WRAP_SMESH=TRUE"
|
||||
];
|
||||
});
|
||||
|
||||
|
@ -76,7 +71,7 @@ in
|
|||
};
|
||||
|
||||
buildInputs = [
|
||||
opencascade
|
||||
opencascade-occt
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -99,5 +94,6 @@ in
|
|||
homepage = "https://github.com/CadQuery/cadquery";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ marcus7070 ];
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,14 +13,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "ffcv";
|
||||
version = "0.0.3";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libffcv";
|
||||
repo = pname;
|
||||
# See https://github.com/libffcv/ffcv/issues/158.
|
||||
rev = "131d56235eca3f1497bb84eeaec82c3434ef25d8";
|
||||
sha256 = "0f7q2x48lknnf98mqaa35my05qwvdgv0h8l9lpagdw6yhx0a6p2x";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-L2mwGFivq/gtAw+1D6U2jbW6VxYgetHX7OUrjwyybqE=";
|
||||
};
|
||||
|
||||
# See https://github.com/libffcv/ffcv/issues/159.
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
{ lib, stdenv, python, fetchFromGitHub
|
||||
{ lib
|
||||
, stdenv
|
||||
, python
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, Cocoa
|
||||
, fontconfig
|
||||
|
@ -11,7 +14,6 @@
|
|||
, libXmu
|
||||
, opencascade-occt
|
||||
, rapidjson
|
||||
, smesh
|
||||
, swig4
|
||||
}:
|
||||
|
||||
|
@ -34,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ cmake swig4 ];
|
||||
buildInputs = [
|
||||
python opencascade-occt smesh
|
||||
python opencascade-occt
|
||||
freetype libGL libGLU libX11 libXext libXmu libXi
|
||||
fontconfig rapidjson
|
||||
] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
|
||||
|
@ -42,10 +44,6 @@ stdenv.mkDerivation rec {
|
|||
cmakeFlags = [
|
||||
"-Wno-dev"
|
||||
"-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
|
||||
|
||||
"-DSMESH_INCLUDE_PATH=${smesh}/include/smesh"
|
||||
"-DSMESH_LIB_PATH=${smesh}/lib"
|
||||
"-DPYTHONOCC_WRAP_SMESH=TRUE"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
|
@ -57,6 +55,7 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "Python wrapper for the OpenCASCADE 3D modeling kernel";
|
||||
homepage = "https://github.com/tpaviot/pythonocc-core";
|
||||
changelog = "https://github.com/tpaviot/pythonocc-core/releases/tag/${version}";
|
||||
license = licenses.lgpl3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ gebner ];
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "wandb";
|
||||
version = "0.15.10";
|
||||
version = "0.15.11";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
@ -61,7 +61,7 @@ buildPythonPackage rec {
|
|||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-MuYaeg7+lMOOSalnLyKsCw+f44daDDayvyKvY8z697c=";
|
||||
hash = "sha256-WaVgyF+pQgFCqIsi5Tcu+btyUKU2e3/qJi4Ma8dnx8M=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -3,22 +3,22 @@ GEM
|
|||
specs:
|
||||
CFPropertyList (3.0.6)
|
||||
rexml
|
||||
activesupport (7.0.5)
|
||||
activesupport (7.0.8)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
addressable (2.8.4)
|
||||
addressable (2.8.5)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
algoliasearch (1.27.5)
|
||||
httpclient (~> 2.8, >= 2.8.3)
|
||||
json (>= 1.5.1)
|
||||
atomos (0.1.3)
|
||||
claide (1.1.0)
|
||||
cocoapods (1.12.1)
|
||||
cocoapods (1.13.0)
|
||||
addressable (~> 2.8)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
cocoapods-core (= 1.12.1)
|
||||
cocoapods-core (= 1.13.0)
|
||||
cocoapods-deintegrate (>= 1.0.3, < 2.0)
|
||||
cocoapods-downloader (>= 1.6.0, < 2.0)
|
||||
cocoapods-plugins (>= 1.0.0, < 2.0)
|
||||
|
@ -32,8 +32,8 @@ GEM
|
|||
molinillo (~> 0.8.0)
|
||||
nap (~> 1.0)
|
||||
ruby-macho (>= 2.3.0, < 3.0)
|
||||
xcodeproj (>= 1.21.0, < 2.0)
|
||||
cocoapods-core (1.12.1)
|
||||
xcodeproj (>= 1.23.0, < 2.0)
|
||||
cocoapods-core (1.13.0)
|
||||
activesupport (>= 5.0, < 8)
|
||||
addressable (~> 2.8)
|
||||
algoliasearch (~> 1.0)
|
||||
|
@ -62,22 +62,22 @@ GEM
|
|||
fuzzy_match (2.0.4)
|
||||
gh_inspector (1.1.3)
|
||||
httpclient (2.8.3)
|
||||
i18n (1.13.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
json (2.6.3)
|
||||
minitest (5.18.0)
|
||||
minitest (5.20.0)
|
||||
molinillo (0.8.0)
|
||||
nanaimo (0.3.0)
|
||||
nap (1.1.0)
|
||||
netrc (0.11.0)
|
||||
public_suffix (4.0.7)
|
||||
rexml (3.2.5)
|
||||
rexml (3.2.6)
|
||||
ruby-macho (2.5.1)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
xcodeproj (1.22.0)
|
||||
xcodeproj (1.23.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
|
|
|
@ -3,22 +3,22 @@ GEM
|
|||
specs:
|
||||
CFPropertyList (3.0.6)
|
||||
rexml
|
||||
activesupport (7.0.5)
|
||||
activesupport (7.0.8)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
addressable (2.8.4)
|
||||
addressable (2.8.5)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
algoliasearch (1.27.5)
|
||||
httpclient (~> 2.8, >= 2.8.3)
|
||||
json (>= 1.5.1)
|
||||
atomos (0.1.3)
|
||||
claide (1.1.0)
|
||||
cocoapods (1.12.1)
|
||||
cocoapods (1.13.0)
|
||||
addressable (~> 2.8)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
cocoapods-core (= 1.12.1)
|
||||
cocoapods-core (= 1.13.0)
|
||||
cocoapods-deintegrate (>= 1.0.3, < 2.0)
|
||||
cocoapods-downloader (>= 1.6.0, < 2.0)
|
||||
cocoapods-plugins (>= 1.0.0, < 2.0)
|
||||
|
@ -32,8 +32,8 @@ GEM
|
|||
molinillo (~> 0.8.0)
|
||||
nap (~> 1.0)
|
||||
ruby-macho (>= 2.3.0, < 3.0)
|
||||
xcodeproj (>= 1.21.0, < 2.0)
|
||||
cocoapods-core (1.12.1)
|
||||
xcodeproj (>= 1.23.0, < 2.0)
|
||||
cocoapods-core (1.13.0)
|
||||
activesupport (>= 5.0, < 8)
|
||||
addressable (~> 2.8)
|
||||
algoliasearch (~> 1.0)
|
||||
|
@ -62,22 +62,22 @@ GEM
|
|||
fuzzy_match (2.0.4)
|
||||
gh_inspector (1.1.3)
|
||||
httpclient (2.8.3)
|
||||
i18n (1.13.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
json (2.6.3)
|
||||
minitest (5.18.0)
|
||||
minitest (5.20.0)
|
||||
molinillo (0.8.0)
|
||||
nanaimo (0.3.0)
|
||||
nap (1.1.0)
|
||||
netrc (0.11.0)
|
||||
public_suffix (4.0.7)
|
||||
rexml (3.2.5)
|
||||
rexml (3.2.6)
|
||||
ruby-macho (2.5.1)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
xcodeproj (1.22.0)
|
||||
xcodeproj (1.23.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1c7k5i6531z5il4q1jnbrv7x7zcl3bgnxp5fzl71rzigk6zn53ym";
|
||||
sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.0.5";
|
||||
version = "7.0.8";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
|
@ -16,10 +16,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
|
||||
sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.4";
|
||||
version = "2.8.5";
|
||||
};
|
||||
algoliasearch = {
|
||||
dependencies = ["httpclient" "json"];
|
||||
|
@ -69,10 +69,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0c25gpi6vrv4fvhwfqscjq5pqqg3g3s3vjm6z8xmgbi9bl9m7ws8";
|
||||
sha256 = "1mwcdg1i4126jf2qcsp4mhd1vqzqd8ck08wpyassz1sg0a8yxw4j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.1";
|
||||
version = "1.13.0";
|
||||
};
|
||||
cocoapods-core = {
|
||||
dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
|
||||
|
@ -80,10 +80,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "03hz6i56603j3zlxy9is74bgs88isrnj9y7xc6wakr4c0m238hv9";
|
||||
sha256 = "1g944vch2mllh8lijbfgl0c2kn9gi5vsg9y9v67x0qca5b1bx4id";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.1";
|
||||
version = "1.13.0";
|
||||
};
|
||||
cocoapods-deintegrate = {
|
||||
groups = ["default"];
|
||||
|
@ -244,10 +244,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1yk33slipi3i1kydzrrchbi7cgisaxym6pgwlzx7ir8vjk6wl90x";
|
||||
sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.13.0";
|
||||
version = "1.14.1";
|
||||
};
|
||||
json = {
|
||||
groups = ["default"];
|
||||
|
@ -264,10 +264,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ic7i5z88zcaqnpzprf7saimq2f6sad57g5mkkqsrqrcd6h3mx06";
|
||||
sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.18.0";
|
||||
version = "5.20.0";
|
||||
};
|
||||
molinillo = {
|
||||
groups = ["default"];
|
||||
|
@ -324,10 +324,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
|
||||
sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.5";
|
||||
version = "3.2.6";
|
||||
};
|
||||
ruby-macho = {
|
||||
groups = ["default"];
|
||||
|
@ -367,9 +367,9 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1s7hxaqd1fi4rlmm2jbrglyvka1r95frlxan61vfcnd8n6pxynpi";
|
||||
sha256 = "176ndahc5fssyx04q176vy6wngs1av4vrsdrkdpjij700hqll8hn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.22.0";
|
||||
version = "1.23.0";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1c7k5i6531z5il4q1jnbrv7x7zcl3bgnxp5fzl71rzigk6zn53ym";
|
||||
sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.0.5";
|
||||
version = "7.0.8";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
|
@ -16,10 +16,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
|
||||
sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.4";
|
||||
version = "2.8.5";
|
||||
};
|
||||
algoliasearch = {
|
||||
dependencies = ["httpclient" "json"];
|
||||
|
@ -67,10 +67,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0c25gpi6vrv4fvhwfqscjq5pqqg3g3s3vjm6z8xmgbi9bl9m7ws8";
|
||||
sha256 = "1mwcdg1i4126jf2qcsp4mhd1vqzqd8ck08wpyassz1sg0a8yxw4j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.1";
|
||||
version = "1.13.0";
|
||||
};
|
||||
cocoapods-core = {
|
||||
dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
|
||||
|
@ -78,10 +78,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "03hz6i56603j3zlxy9is74bgs88isrnj9y7xc6wakr4c0m238hv9";
|
||||
sha256 = "1g944vch2mllh8lijbfgl0c2kn9gi5vsg9y9v67x0qca5b1bx4id";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.1";
|
||||
version = "1.13.0";
|
||||
};
|
||||
cocoapods-deintegrate = {
|
||||
groups = ["default"];
|
||||
|
@ -232,10 +232,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1yk33slipi3i1kydzrrchbi7cgisaxym6pgwlzx7ir8vjk6wl90x";
|
||||
sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.13.0";
|
||||
version = "1.14.1";
|
||||
};
|
||||
json = {
|
||||
groups = ["default"];
|
||||
|
@ -252,10 +252,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ic7i5z88zcaqnpzprf7saimq2f6sad57g5mkkqsrqrcd6h3mx06";
|
||||
sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.18.0";
|
||||
version = "5.20.0";
|
||||
};
|
||||
molinillo = {
|
||||
groups = ["default"];
|
||||
|
@ -308,10 +308,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
|
||||
sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.5";
|
||||
version = "3.2.6";
|
||||
};
|
||||
ruby-macho = {
|
||||
groups = ["default"];
|
||||
|
@ -351,9 +351,9 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1s7hxaqd1fi4rlmm2jbrglyvka1r95frlxan61vfcnd8n6pxynpi";
|
||||
sha256 = "176ndahc5fssyx04q176vy6wngs1av4vrsdrkdpjij700hqll8hn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.22.0";
|
||||
version = "1.23.0";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ let
|
|||
src = fetchurl {
|
||||
url = "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v${version}/Beekeeper-Studio-${version}.AppImage";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
sha512 = "sha512-an4Gqx2mx/rnkLe/LUAz3qRdrqWBcrWcdCiNi8Hz1OKBp1SWN3acU8RppIM0uwlrcBkjnigbbM5DZ2o+svA23A==";
|
||||
hash = "sha512-an4Gqx2mx/rnkLe/LUAz3qRdrqWBcrWcdCiNi8Hz1OKBp1SWN3acU8RppIM0uwlrcBkjnigbbM5DZ2o+svA23A==";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
|
|
@ -12,16 +12,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "prqlc";
|
||||
version = "0.9.4";
|
||||
version = "0.9.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "prql";
|
||||
repo = "prql";
|
||||
rev = version;
|
||||
hash = "sha256-9BDBuAaer92BAwQexkZOyt99VXEbJT6/87DoCqVzjcQ=";
|
||||
hash = "sha256-t/l1fMZpGCLtxjCtOMv4eaj6oNyFX9BFgfc3OwYrxs0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-LeMl9t2ZYsBFuGnxJVvfmnjKFVIVO8ChmXQhXcSYV6s=";
|
||||
cargoHash = "sha256-bdPjLOHh5qC1/LNfsUC26h4v3EuwiM9HqoQxeeNCOIw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
@ -15,12 +15,12 @@ let
|
|||
info = lib.splitString "-" stdenv.hostPlatform.system;
|
||||
arch = elemAt info 0;
|
||||
plat = elemAt info 1;
|
||||
shas =
|
||||
hashes =
|
||||
{
|
||||
x86_64-linux = "d3d5e8906e64ae3c469e4df80e1c692ce1912e36f68ddf36b99b7019faf34aebaa329061904a6d2b6a32486c6e19d1c5f2ea30c25479a7960ed93bc1c0cb1691";
|
||||
x86_64-darwin = "72a4499efbbbdf425f92beafc1b1d416e66e6ded60e76d9c9af9c3c13ce11862ba54dffbfbd5cbdef6afaad50f0d57532d3524f83acd88840aecc6891f748732";
|
||||
aarch64-linux = "ce1b584e1cf98f8fb0e602352564a71efef4f53936dde7a056caed62675a6216624f0db2bc24d8239b8d01f06306bf173dda7a08a1787ba061db01ca0d88359a";
|
||||
aarch64-darwin = "72a4499efbbbdf425f92beafc1b1d416e66e6ded60e76d9c9af9c3c13ce11862ba54dffbfbd5cbdef6afaad50f0d57532d3524f83acd88840aecc6891f748732";
|
||||
x86_64-linux = "sha512-09XokG5krjxGnk34DhxpLOGRLjb2jd82uZtwGfrzSuuqMpBhkEptK2oySGxuGdHF8uowwlR5p5YO2TvBwMsWkQ==";
|
||||
x86_64-darwin = "sha512-cqRJnvu730Jfkr6vwbHUFuZube1g522cmvnDwTzhGGK6VN/7+9XL3vavqtUPDVdTLTUk+DrNiIQK7MaJH3SHMg==";
|
||||
aarch64-linux = "sha512-zhtYThz5j4+w5gI1JWSnHv709Tk23eegVsrtYmdaYhZiTw2yvCTYI5uNAfBjBr8XPdp6CKF4e6Bh2wHKDYg1mg==";
|
||||
aarch64-darwin = "sha512-cqRJnvu730Jfkr6vwbHUFuZube1g522cmvnDwTzhGGK6VN/7+9XL3vavqtUPDVdTLTUk+DrNiIQK7MaJH3SHMg==";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
|
@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/kibana/${pname}-${version}-${plat}-${arch}.tar.gz";
|
||||
sha512 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
hash = hashes.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -5,22 +5,22 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rsonpath";
|
||||
version = "0.8.1";
|
||||
version = "0.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "v0ldek";
|
||||
repo = "rsonpath";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xLDKTvlKPhJhGPmLmKaoTnzGABEgOU/qNDODJDlqmHs=";
|
||||
hash = "sha256-3/xhYfo23aps3UjjUEcuLYg8JALfIpbCf6LO0F2IS20=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-lZ4A35WwQws39OJXePdoxItHYAE8EvqTLX7i8r7fW4o=";
|
||||
cargoHash = "sha256-2HVPqSkQU90ZAFG0tPbysCVIkd433fpTtTO1y4+ZUTU=";
|
||||
|
||||
cargoBuildFlags = [ "-p=rsonpath" ];
|
||||
cargoTestFlags = cargoBuildFlags;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Blazing fast Rust JSONPath query engine";
|
||||
description = "Experimental JSONPath engine for querying massive streamed datasets";
|
||||
homepage = "https://github.com/v0ldek/rsonpath";
|
||||
changelog = "https://github.com/v0ldek/rsonpath/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, stdenv
|
||||
, darwin
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rome";
|
||||
version = "12.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rome";
|
||||
repo = "tools";
|
||||
rev = "cli/v${version}";
|
||||
hash = "sha256-BlHpdfbyx6nU44vasEw0gRZ0ickyD2eUXPfeFZHSCbI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-jHdoRymKPjBonT4TvAiTNzGBuTcNoPsvdFKEf33dpVc=";
|
||||
|
||||
cargoBuildFlags = [ "--package" "rome_cli" ];
|
||||
|
||||
env = {
|
||||
RUSTFLAGS = "-C strip=symbols";
|
||||
ROME_VERSION = version;
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
# need to manually unset the ROME_VERSION before checkPhase otherwise some tests fail
|
||||
preCheck = ''
|
||||
unset ROME_VERSION;
|
||||
'';
|
||||
|
||||
# these test fail
|
||||
checkFlags = [
|
||||
"--skip parser::tests::uncompleted_markers_panic"
|
||||
"--skip commands::check::fs_error_infinite_symlink_exapansion"
|
||||
"--skip commands::check::fs_error_dereferenced_symlink"
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex" "cli%2Fv(.*)" ];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A formatter, linter, bundler, and more for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS";
|
||||
homepage = "https://rome.tools";
|
||||
changelog = "https://github.com/rome/tools/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ dit7ya felschr ];
|
||||
};
|
||||
}
|
|
@ -5,16 +5,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-expand";
|
||||
version = "1.0.70";
|
||||
version = "1.0.71";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dtolnay";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-Fnxe53YOoCiW9hIPU7dWpJoA/PnfnvRPkHiWM+4yMu8=";
|
||||
sha256 = "sha256-q5mWB68RB1TfrS02iIAjFR1XtMvzQG90okkuHB+06iA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-zbn3pfU8r3p3Czetjg2ueItaMtYyPhksNIe7EdxJdLU=";
|
||||
cargoHash = "sha256-4XeSjittxHdYj3N/1HT5QJbMD3lRmV77LBFIXcNQlLY=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
let
|
||||
pname = "cargo-llvm-cov";
|
||||
version = "0.5.31";
|
||||
version = "0.5.32";
|
||||
|
||||
owner = "taiki-e";
|
||||
homepage = "https://github.com/${owner}/${pname}";
|
||||
|
@ -36,7 +36,7 @@ let
|
|||
cargoLock = fetchurl {
|
||||
name = "Cargo.lock";
|
||||
url = "https://crates.io/api/v1/crates/${pname}/${version}/download";
|
||||
sha256 = "sha256-BbrdyJgZSIz6GaTdQv1GiFHufRBSbcoHcqqEmr/HvAM=";
|
||||
sha256 = "sha256-8waZZyEvdPBJo722/FOQtarJdWR3FPZv9Cw2Pf/waqs=";
|
||||
downloadToTemp = true;
|
||||
postFetch = ''
|
||||
tar xzf $downloadedFile ${pname}-${version}/Cargo.lock
|
||||
|
@ -54,7 +54,7 @@ rustPlatform.buildRustPackage {
|
|||
inherit owner;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wRo94JVn4InkhrMHFSsEvm2FFIxUsltA57sMMOcL8b0=";
|
||||
sha256 = "sha256-aG6XNIgSTdce62gQMG3pNIKtP+jQUmVx+7NdHOkvmlQ=";
|
||||
};
|
||||
|
||||
# Upstream doesn't include the lockfile so we need to add it back
|
||||
|
@ -62,7 +62,7 @@ rustPlatform.buildRustPackage {
|
|||
cp ${cargoLock} source/Cargo.lock
|
||||
'';
|
||||
|
||||
cargoSha256 = "sha256-XcsognndhHenYnlJCNMbrNh+S8FX7qxXUjuV1j2qsmY=";
|
||||
cargoSha256 = "sha256-jUrjGH1c4i+lOv5wHiNQwZifZh7uTVuu2NCSGtK0ohc=";
|
||||
|
||||
# `cargo-llvm-cov` reads these environment variables to find these binaries,
|
||||
# which are needed to run the tests
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-llvm-lines";
|
||||
version = "0.4.33";
|
||||
version = "0.4.34";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dtolnay";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-EgUnVnSELdiRU63saQ0o2IE4vs6tcQ/AfE4aMyegJBk=";
|
||||
hash = "sha256-O8f5eSoc02IpSkLbrJPCU7w4+SgabfCDwn/scqKuzU0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-zq95Dzcbz08/8lumAyTfSzCEHCWWlp8Fw7R6fnfTOrk=";
|
||||
cargoHash = "sha256-e128ndvEcf/7wUAup25zMq7ufaWKiXNbAHzVbEGZlNU=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Count the number of lines of LLVM IR across all instantiations of a generic function";
|
||||
|
|
|
@ -7,7 +7,7 @@ let
|
|||
src = fetchurl {
|
||||
url = "https://github.com/uw-labs/${pname}/releases/download/${version}/BloomRPC-${version}.AppImage";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
sha512 = "PebdYDpcplPN5y3mRu1mG6CXenYfYvBXNLgIGEr7ZgKnR5pIaOfJNORSNYSdagdGDb/B1sxuKfX4+4f2cqgb6Q==";
|
||||
hash = "sha512-PebdYDpcplPN5y3mRu1mG6CXenYfYvBXNLgIGEr7ZgKnR5pIaOfJNORSNYSdagdGDb/B1sxuKfX4+4f2cqgb6Q==";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "flyctl";
|
||||
version = "0.1.92";
|
||||
version = "0.1.101";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "superfly";
|
||||
repo = "flyctl";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-uW87hlSwHMJ6SIfranaH383EKwvewfNKbuGA4znVEeg=";
|
||||
hash = "sha256-gXG8xgRF1AG/n4o2oDaYCVEOwjJLp6VMJ5LKPXu/gak=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Y1merBgVui0Ot3gb2UbTiLmxlaI4egbsI6vQJgF4mCE=";
|
||||
vendorHash = "sha256-RGA0tjvVo0uAFNqrEEYWejj0qwYxpiUZzExZHhMqItc=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
|
|
@ -2,56 +2,56 @@
|
|||
"x86_64-linux": {
|
||||
"alpha": {
|
||||
"experimental": {
|
||||
"name": "factorio_alpha_x64-1.1.89.tar.xz",
|
||||
"name": "factorio_alpha_x64-1.1.91.tar.xz",
|
||||
"needsAuth": true,
|
||||
"sha256": "1mv3lnxw8ihja1zm0kh2ghxb551pknmzjlz58iqxpkhlqmn3qi1q",
|
||||
"sha256": "0dcanryqmikhllp8lwhdapbm9scrgfgnvgwdf18wn8asr652vz39",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.89/alpha/linux64",
|
||||
"version": "1.1.89"
|
||||
"url": "https://factorio.com/get-download/1.1.91/alpha/linux64",
|
||||
"version": "1.1.91"
|
||||
},
|
||||
"stable": {
|
||||
"name": "factorio_alpha_x64-1.1.87.tar.xz",
|
||||
"name": "factorio_alpha_x64-1.1.91.tar.xz",
|
||||
"needsAuth": true,
|
||||
"sha256": "166mfblhxa6l3nglwwl77d1k3rkfcisp9bkps6y5zb2hmsmr00s6",
|
||||
"sha256": "0dcanryqmikhllp8lwhdapbm9scrgfgnvgwdf18wn8asr652vz39",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.87/alpha/linux64",
|
||||
"version": "1.1.87"
|
||||
"url": "https://factorio.com/get-download/1.1.91/alpha/linux64",
|
||||
"version": "1.1.91"
|
||||
}
|
||||
},
|
||||
"demo": {
|
||||
"experimental": {
|
||||
"name": "factorio_demo_x64-1.1.88.tar.xz",
|
||||
"name": "factorio_demo_x64-1.1.91.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "0m1rx7khfg3p0bj8gp30cqipwqjk1sjj13mzzxh67crwcjzxps9z",
|
||||
"sha256": "1j9nzc3rs9q43vh9i0jgpyhgnjjif98sdgk4r47m0qrxjb4pnfx0",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.88/demo/linux64",
|
||||
"version": "1.1.88"
|
||||
"url": "https://factorio.com/get-download/1.1.91/demo/linux64",
|
||||
"version": "1.1.91"
|
||||
},
|
||||
"stable": {
|
||||
"name": "factorio_demo_x64-1.1.87.tar.xz",
|
||||
"name": "factorio_demo_x64-1.1.91.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "1n5q4wgp2z18vpkvim8yxg4w9wc28mw9gfnqwq6fcwafz90xy9sq",
|
||||
"sha256": "1j9nzc3rs9q43vh9i0jgpyhgnjjif98sdgk4r47m0qrxjb4pnfx0",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.87/demo/linux64",
|
||||
"version": "1.1.87"
|
||||
"url": "https://factorio.com/get-download/1.1.91/demo/linux64",
|
||||
"version": "1.1.91"
|
||||
}
|
||||
},
|
||||
"headless": {
|
||||
"experimental": {
|
||||
"name": "factorio_headless_x64-1.1.89.tar.xz",
|
||||
"name": "factorio_headless_x64-1.1.91.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "1an4g5sry47xmlqr53jans75ngrp819b07rrq4xkzdzmka0lkrcq",
|
||||
"sha256": "0v8zg3q79n15242fr79f9amg0icw3giy4aiaf43am5hxzcdb5212",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.89/headless/linux64",
|
||||
"version": "1.1.89"
|
||||
"url": "https://factorio.com/get-download/1.1.91/headless/linux64",
|
||||
"version": "1.1.91"
|
||||
},
|
||||
"stable": {
|
||||
"name": "factorio_headless_x64-1.1.87.tar.xz",
|
||||
"name": "factorio_headless_x64-1.1.91.tar.xz",
|
||||
"needsAuth": false,
|
||||
"sha256": "1k2pk0s2nf4xy168kzf798ha7x4zc5ijpvxp61xlq7xddm5qicv0",
|
||||
"sha256": "0v8zg3q79n15242fr79f9amg0icw3giy4aiaf43am5hxzcdb5212",
|
||||
"tarDirectory": "x64",
|
||||
"url": "https://factorio.com/get-download/1.1.87/headless/linux64",
|
||||
"version": "1.1.87"
|
||||
"url": "https://factorio.com/get-download/1.1.91/headless/linux64",
|
||||
"version": "1.1.91"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
|||
# http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/bozohttpd/distinfo
|
||||
src = fetchurl {
|
||||
url = "http://www.eterna.com.au/${pname}/${pname}-${version}.tar.bz2";
|
||||
sha512 = "275b8fab3cf2e6c59721682cae952db95da5bd3b1f20680240c6cf1029463693f6feca047fbef5e3a3e7528b40b7b2e87b2a56fd800b612e679a16f24890e5b6";
|
||||
hash = "sha512-J1uPqzzy5sWXIWgsrpUtuV2lvTsfIGgCQMbPEClGNpP2/soEf77146PnUotAt7LoeypW/YALYS5nmhbySJDltg==";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl libxcrypt ] ++ optional (luaSupport) lua;
|
||||
|
|
|
@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/tomcat/tomcat-connectors/native/${version}/source/${pname}-${version}-src.tar.gz";
|
||||
sha512 = "2aaa93f0acf3eb780d39faeda3ece3cf053d3b6e2918462f7183070e8ab32232e035e9062f7c07ceb621006d727d3596d9b4b948f4432b4f625327b72fdb0e49";
|
||||
hash = "sha512-KqqT8Kzz63gNOfrto+zjzwU9O24pGEYvcYMHDoqzIjLgNekGL3wHzrYhAG1yfTWW2bS5SPRDK09iUye3L9sOSQ==";
|
||||
};
|
||||
|
||||
sourceRoot = "${pname}-${version}-src/native";
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
buildDotnetModule rec {
|
||||
pname = "jackett";
|
||||
version = "0.21.798";
|
||||
version = "0.21.866";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha512-0GyfhVYs5YQXEYOxnCuOEhbwUAUYPvvXBIf4ylKkzZ7QKuiSYTDlPA+ArkaTQ4IRe7yesTsUMiSolWBOG8dtmw==";
|
||||
hash = "sha512-ySiI3+E/elYnKX/5wYMT8hFJm4YNgQqH3MkXb9xJoTqg7/4Od+I+zUHqVavF2NtfVVJFOIa8ShgJhmODbp5VfQ==";
|
||||
};
|
||||
|
||||
projectFile = "src/Jackett.Server/Jackett.Server.csproj";
|
||||
|
|
|
@ -6,16 +6,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "nats-server";
|
||||
version = "2.9.22";
|
||||
version = "2.10.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nats-io";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ednQfVG1/A8zliJ6oHXvfjIP7EtAiwdVaUSNUdKwn+g=";
|
||||
hash = "sha256-gc1CGMlH5rSbq5Fr4MzMFP5FiS8nxip5JrIZsGQ/ad0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-B5za9EcnAytmt0p6oyvXjfeRamsslh+O7n2xMHooLSk=";
|
||||
vendorHash = "sha256-ZyqIMR9rhgJXHaLFXBj3wdXGuKt0ricwti9uN62QjCE=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
@ -16,12 +16,12 @@ let
|
|||
info = splitString "-" stdenv.hostPlatform.system;
|
||||
arch = elemAt info 0;
|
||||
plat = elemAt info 1;
|
||||
shas =
|
||||
hashes =
|
||||
{
|
||||
x86_64-linux = "7a2013e43c7fc39e86a31a733cc74c587ef2bba0c013f95ce874f98b488a4f8f0e6fb254a1eedd5c0b0e210aed9a0195f7358fa9653c890e234413ff93190807";
|
||||
x86_64-darwin = "e6f49e7c0f59e260b3e3d43e57375c9352976c4f51118005e3a9127f41b59f95e51ea158cd318e99410e6d98464ea1f84432c905d12a84b8f68b2ce35905f944";
|
||||
aarch64-linux = "f2790f49b79c381246bbf87431919452af93aa4fd8aa6bc9c1f9031e7ed5d9c649f5bab867c28a7d1602e2285d3f4a5f78f809ac05744b02ad67d68610bb677d";
|
||||
aarch64-darwin = "75b66b60650bb82dc517f4a594fa40816d3becb92bf3b349f3e8324cc6b297c8bcacebc08e7661891fd4ede03a099fea56c1509291804dd03345717c36564172";
|
||||
x86_64-linux = "sha512-eiAT5Dx/w56GoxpzPMdMWH7yu6DAE/lc6HT5i0iKT48Ob7JUoe7dXAsOIQrtmgGV9zWPqWU8iQ4jRBP/kxkIBw==";
|
||||
x86_64-darwin = "sha512-5vSefA9Z4mCz49Q+Vzdck1KXbE9REYAF46kSf0G1n5XlHqFYzTGOmUEObZhGTqH4RDLJBdEqhLj2iyzjWQX5RA==";
|
||||
aarch64-linux = "sha512-8nkPSbecOBJGu/h0MZGUUq+Tqk/YqmvJwfkDHn7V2cZJ9bq4Z8KKfRYC4ihdP0pfePgJrAV0SwKtZ9aGELtnfQ==";
|
||||
aarch64-darwin = "sha512-dbZrYGULuC3FF/SllPpAgW077Lkr87NJ8+gyTMayl8i8rOvAjnZhiR/U7eA6CZ/qVsFQkpGATdAzRXF8NlZBcg==";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}-${plat}-${arch}.tar.gz";
|
||||
sha512 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
hash = hashes.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
};
|
||||
|
||||
patches = [ ./es-home-6.x.patch ];
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
, libXt
|
||||
, libdrm
|
||||
, libtirpc
|
||||
, libunwind
|
||||
, withLibunwind ? true, libunwind
|
||||
, libxcb
|
||||
, libxkbfile
|
||||
, libxshmfence
|
||||
|
@ -39,15 +39,17 @@
|
|||
, xorgproto
|
||||
, xtrans
|
||||
, zlib
|
||||
, defaultFontPath ? "" }:
|
||||
, defaultFontPath ? ""
|
||||
, gitUpdater
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xwayland";
|
||||
version = "23.2.0";
|
||||
version = "23.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-fzPsKjTebmauG35Ehyw6IUYZKHLHGbms8ZKBTtur1MU=";
|
||||
sha256 = "sha256-7rwmksOqgGF9eEKLxux7kbJUqYIU0qcOmXCYUDzW75A=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [
|
||||
|
@ -79,7 +81,6 @@ stdenv.mkDerivation rec {
|
|||
libXt
|
||||
libdrm
|
||||
libtirpc
|
||||
libunwind
|
||||
libxcb
|
||||
libxkbfile
|
||||
libxshmfence
|
||||
|
@ -93,6 +94,8 @@ stdenv.mkDerivation rec {
|
|||
xorgproto
|
||||
xtrans
|
||||
zlib
|
||||
] ++ lib.optionals withLibunwind [
|
||||
libunwind
|
||||
];
|
||||
mesonFlags = [
|
||||
(lib.mesonBool "xwayland_eglstream" true)
|
||||
|
@ -101,9 +104,15 @@ stdenv.mkDerivation rec {
|
|||
(lib.mesonOption "xkb_bin_dir" "${xkbcomp}/bin")
|
||||
(lib.mesonOption "xkb_dir" "${xkeyboard_config}/etc/X11/xkb")
|
||||
(lib.mesonOption "xkb_output_dir" "${placeholder "out"}/share/X11/xkb/compiled")
|
||||
(lib.mesonBool "libunwind" (libunwind != null))
|
||||
(lib.mesonBool "libunwind" withLibunwind)
|
||||
];
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
# No nicer place to find latest release.
|
||||
url = "https://gitlab.freedesktop.org/xorg/xserver.git";
|
||||
rev-prefix = "xwayland-";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "An X server for interfacing X11 apps with the Wayland protocol";
|
||||
homepage = "https://wayland.freedesktop.org/xserver.html";
|
||||
|
|
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/zookeeper/${pname}-${version}/apache-${pname}-${version}-bin.tar.gz";
|
||||
sha512 = "sha512-kQNiilB0X6GiibymZv2kqcCOwXxVzxPmaIfnunbpPbrmCh8f/WwQeYvjoWBpNE7LwAzrspvwPZzXCWzNCY7QEQ==";
|
||||
hash = "sha512-kQNiilB0X6GiibymZv2kqcCOwXxVzxPmaIfnunbpPbrmCh8f/WwQeYvjoWBpNE7LwAzrspvwPZzXCWzNCY7QEQ==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
56
pkgs/test/nixpkgs-check-by-name/Cargo.lock
generated
56
pkgs/test/nixpkgs-check-by-name/Cargo.lock
generated
|
@ -242,6 +242,16 @@ version = "0.4.5"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
version = "0.4.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.5.0"
|
||||
|
@ -267,9 +277,9 @@ dependencies = [
|
|||
"lazy_static",
|
||||
"regex",
|
||||
"rnix",
|
||||
"rowan",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"temp-env",
|
||||
"tempfile",
|
||||
]
|
||||
|
||||
|
@ -279,6 +289,29 @@ version = "1.18.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot"
|
||||
version = "0.12.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
|
||||
dependencies = [
|
||||
"lock_api",
|
||||
"parking_lot_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot_core"
|
||||
version = "0.9.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
"smallvec",
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.66"
|
||||
|
@ -382,6 +415,12 @@ version = "1.0.15"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
|
||||
|
||||
[[package]]
|
||||
name = "scopeguard"
|
||||
version = "1.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.186"
|
||||
|
@ -413,6 +452,12 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.10.0"
|
||||
|
@ -430,6 +475,15 @@ dependencies = [
|
|||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "temp-env"
|
||||
version = "0.3.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e010429b1f3ea1311190c658c7570100f03c1dab05c16cfab774181c648d656a"
|
||||
dependencies = [
|
||||
"parking_lot",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.8.0"
|
||||
|
|
|
@ -5,7 +5,6 @@ edition = "2021"
|
|||
|
||||
[dependencies]
|
||||
rnix = "0.11.0"
|
||||
rowan = "0.15.0"
|
||||
regex = "1.9.3"
|
||||
clap = { version = "4.3.23", features = ["derive"] }
|
||||
serde_json = "1.0.105"
|
||||
|
@ -14,3 +13,6 @@ serde = { version = "1.0.185", features = ["derive"] }
|
|||
anyhow = "1.0"
|
||||
lazy_static = "1.4.0"
|
||||
colored = "2.0.4"
|
||||
|
||||
[dev-dependencies]
|
||||
temp-env = "0.3.5"
|
||||
|
|
|
@ -30,9 +30,6 @@ let
|
|||
# We'd run into https://github.com/NixOS/nix/issues/2706 unless the store is initialised first
|
||||
nix-store --init
|
||||
'';
|
||||
# The tests use the shared environment variables,
|
||||
# so we cannot run them in parallel
|
||||
dontUseCargoParallelTests = true;
|
||||
postCheck = ''
|
||||
cargo fmt --check
|
||||
cargo clippy -- -D warnings
|
||||
|
|
|
@ -87,10 +87,9 @@ mod tests {
|
|||
use crate::check_nixpkgs;
|
||||
use crate::structure;
|
||||
use anyhow::Context;
|
||||
use std::env;
|
||||
use std::fs;
|
||||
use std::path::Path;
|
||||
use tempfile::{tempdir, tempdir_in};
|
||||
use tempfile::{tempdir_in, TempDir};
|
||||
|
||||
#[test]
|
||||
fn tests_dir() -> anyhow::Result<()> {
|
||||
|
@ -111,6 +110,13 @@ mod tests {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
// tempfile::tempdir needs to be wrapped in temp_env lock
|
||||
// because it accesses TMPDIR environment variable.
|
||||
fn tempdir() -> anyhow::Result<TempDir> {
|
||||
let empty_list: [(&str, Option<&str>); 0] = [];
|
||||
Ok(temp_env::with_vars(empty_list, tempfile::tempdir)?)
|
||||
}
|
||||
|
||||
// We cannot check case-conflicting files into Nixpkgs (the channel would fail to
|
||||
// build), so we generate the case-conflicting file instead.
|
||||
#[test]
|
||||
|
@ -157,34 +163,21 @@ mod tests {
|
|||
std::os::unix::fs::symlink("actual", temp_root.path().join("symlinked"))?;
|
||||
let tmpdir = temp_root.path().join("symlinked");
|
||||
|
||||
// Then set TMPDIR to the symlinked directory
|
||||
// Make sure to persist the old value so we can undo this later
|
||||
let old_tmpdir = env::var("TMPDIR").ok();
|
||||
env::set_var("TMPDIR", &tmpdir);
|
||||
|
||||
// Then run a simple test with this symlinked temporary directory
|
||||
// This should be successful
|
||||
test_nixpkgs("symlinked_tmpdir", Path::new("tests/success"), "")?;
|
||||
|
||||
// Undo the env variable change
|
||||
if let Some(old) = old_tmpdir {
|
||||
env::set_var("TMPDIR", old);
|
||||
} else {
|
||||
env::remove_var("TMPDIR");
|
||||
}
|
||||
|
||||
Ok(())
|
||||
temp_env::with_var("TMPDIR", Some(&tmpdir), || {
|
||||
test_nixpkgs("symlinked_tmpdir", Path::new("tests/success"), "")
|
||||
})
|
||||
}
|
||||
|
||||
fn test_nixpkgs(name: &str, path: &Path, expected_errors: &str) -> anyhow::Result<()> {
|
||||
let extra_nix_path = Path::new("tests/mock-nixpkgs.nix");
|
||||
|
||||
// We don't want coloring to mess up the tests
|
||||
env::set_var("NO_COLOR", "1");
|
||||
|
||||
let mut writer = vec![];
|
||||
check_nixpkgs(&path, vec![&extra_nix_path], &mut writer)
|
||||
.context(format!("Failed test case {name}"))?;
|
||||
let writer = temp_env::with_var("NO_COLOR", Some("1"), || -> anyhow::Result<_> {
|
||||
let mut writer = vec![];
|
||||
check_nixpkgs(&path, vec![&extra_nix_path], &mut writer)
|
||||
.context(format!("Failed test case {name}"))?;
|
||||
Ok(writer)
|
||||
})?;
|
||||
|
||||
let actual_errors = String::from_utf8_lossy(&writer);
|
||||
|
||||
|
|
|
@ -13,17 +13,17 @@ let
|
|||
info = lib.splitString "-" stdenv.hostPlatform.system;
|
||||
arch = lib.elemAt info 0;
|
||||
plat = lib.elemAt info 1;
|
||||
shas =
|
||||
hashes =
|
||||
if enableUnfree
|
||||
then {
|
||||
x86_64-linux = "5391bfef09c403a365518a3a8e8f075bb7974b137095b3c7fd2a0173cfa6dbd4a7451170a3657afef3e6a468e90a38d6e7a5b669799878f9389fa44ff8fee026";
|
||||
x86_64-darwin = "8e3516b82329a47505358fb7eab486ca39423adc44a1f061c35f6ba225ac2f37330f2afc3e37eb652b6536e5ca35d77ac2485dec743fa8d99dd4fcc60bddbc21";
|
||||
aarch64-linux = "06f91a5aabff0f86a4150de6c1fd02fb6d0a44b04ac660597cb4c8356cf1d22552aaa77899db42a49a5e35b3cad73be5d7bad8cacfb4b17e622949329cdf791a";
|
||||
x86_64-linux = "sha512-U5G/7wnEA6NlUYo6jo8HW7eXSxNwlbPH/SoBc8+m29SnRRFwo2V6/vPmpGjpCjjW56W2aXmYePk4n6RP+P7gJg==";
|
||||
x86_64-darwin = "sha512-jjUWuCMppHUFNY+36rSGyjlCOtxEofBhw19roiWsLzczDyr8PjfrZStlNuXKNdd6wkhd7HQ/qNmd1PzGC928IQ==";
|
||||
aarch64-linux = "sha512-BvkaWqv/D4akFQ3mwf0C+20KRLBKxmBZfLTINWzx0iVSqqd4mdtCpJpeNbPK1zvl17rYys+0sX5iKUkynN95Gg==";
|
||||
}
|
||||
else {
|
||||
x86_64-linux = "ba22c4c414f47515387bb28cc47612bea58aff97c407f2571863e83174a2bef273627f65dd531ed833e40668c79144a501d49c3ec691c1b1c4d8fb0cb124b052";
|
||||
x86_64-darwin = "81a97ca06c086fac33f32e90124f649d5ddce09d649021020f434b75b5bff63065f9dc8aa267b72cedd581089bc24db12122f705ef8b69acf8f59f11771cbf77";
|
||||
aarch64-linux = "64adb41a7a1b14b21d463b333f3f4470a4db9140e288d379bf79510c83091d5ca27e997961d757cee2329b85d16da6da8a1038a00aeabb1e74ab8f95b841ad0a";
|
||||
x86_64-linux = "sha512-uiLExBT0dRU4e7KMxHYSvqWK/5fEB/JXGGPoMXSivvJzYn9l3VMe2DPkBmjHkUSlAdScPsaRwbHE2PsMsSSwUg==";
|
||||
x86_64-darwin = "sha512-gal8oGwIb6wz8y6QEk9knV3c4J1kkCECD0NLdbW/9jBl+dyKome3LO3VgQibwk2xISL3Be+Laaz49Z8Rdxy/dw==";
|
||||
aarch64-linux = "sha512-ZK20GnobFLIdRjszPz9EcKTbkUDiiNN5v3lRDIMJHVyifpl5YddXzuIym4XRbabaihA4oArqux50q4+VuEGtCg==";
|
||||
};
|
||||
this = stdenv.mkDerivation rec {
|
||||
version = elk7Version;
|
||||
|
@ -32,7 +32,7 @@ let
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}-${plat}-${arch}.tar.gz";
|
||||
sha512 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
hash = hashes.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
|
|
@ -9,14 +9,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "star-history";
|
||||
version = "1.0.14";
|
||||
version = "1.0.15";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-bdu0LLH6f5rLwzNw1wz0J9zEspYmAOlJYCWOdamWjyw=";
|
||||
sha256 = "sha256-9/r01j/47rbgmXQy9qVOeY1E3LDMe9A/1SOB2l9zpJU=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-Z7zq93Orx7Mb2b9oZxAIPn6qObzYPGOx4N86naUvqtg=";
|
||||
cargoSha256 = "sha256-kUpGBtgircX8/fACed4WO7rHTCah+3BFuQQV/A5pivg=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ let
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://packages.beyondidentity.com/public/linux-authenticator/deb/ubuntu/pool/focal/main/b/be/${pname}_${version}/${pname}_${version}_amd64.deb";
|
||||
sha512 = "sha512-JrHLf7KkJVbJLxx54OTvOSaIzY3+hjX+bpkeBHKX23YriCJssUUvEP6vlbI4r6gjMMFMhW92k0iikAgD1Tr4ug==";
|
||||
hash = "sha512-JrHLf7KkJVbJLxx54OTvOSaIzY3+hjX+bpkeBHKX23YriCJssUUvEP6vlbI4r6gjMMFMhW92k0iikAgD1Tr4ug==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -9,7 +9,7 @@ buildPythonPackage rec {
|
|||
owner = "The-Compiler";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha512 = "11g2f1w9lfqw6zxxyg7qrqpb914s6w71j0gnpw7qr7cak2l5jlf2l39dlg30y55rw7jgmf0yg77wwzd0c430mq1n6q1v8w86g1rwkzb";
|
||||
hash = "sha512-60+ewzOIox2wsQFXMAgD7XN+zvPA1ScPz6V4MB5taVDhqCxUTMVOxodf+4AMhxtNQloXZ3ye7/0bjh1NPDjxQg==";
|
||||
};
|
||||
|
||||
# can be removed post 1.1.0
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "ov";
|
||||
version = "0.31.0";
|
||||
version = "0.32.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "noborus";
|
||||
repo = "ov";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-UtYFr5eFdEU/oZqwy84W/GQiFrMPWRIomqgJY3P52Ws=";
|
||||
hash = "sha256-mQ1KwElD8RizOT2trHWo4T1QiZ974xwhQCCa5snpnZM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0Gs/GFlAl+ttprAVq9NxRLYzP/U2PD4IrY+drSIWJ/c=";
|
||||
vendorHash = "sha256-XACdtJdACMKQ5gSJcjGAPNGPFL1Tbt6QOovl15mvFGI=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
|
||||
sha512 = "1cizrzmldi7lrgdkpn4b6skp1b5hz2jskkbcbv9k6lmz08clm02gyifh7fgd8j2rklqsim34n5ifyg83xhsjzd57xqjys1ccjdn3a5m";
|
||||
hash = "sha512-tahhm2QsaC9xP6V9qWEf6HkXiyWjRo3pzEKi9tyBLvonQKUMgV+pmWkvtubUUnxYVrhTm0Xsne1lemKj9ecfWQ==";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ which dieHook ]
|
||||
|
|
|
@ -1266,6 +1266,7 @@ mapAliases ({
|
|||
openbazaar = throw "openbazzar has been removed from nixpkgs as upstream has abandoned the project"; # Added 2022-01-06
|
||||
openbazaar-client = throw "openbazzar-client has been removed from nixpkgs as upstream has abandoned the project"; # Added 2022-01-06
|
||||
opencascade_oce = throw "'opencascade_oce' has been renamed to/replaced by 'opencascade'"; # Converted to throw 2022-02-22
|
||||
opencascade = throw "'opencascade' has been removed as it is unmaintained; consider opencascade-occt instead'"; # Added 2023-09-18
|
||||
opencl-icd = throw "'opencl-icd' has been renamed to/replaced by 'ocl-icd'"; # Converted to throw 2022-02-22
|
||||
openconnect_head = openconnect_unstable; # Added 2022-03-29
|
||||
openconnect_gnutls = openconnect; # Added 2022-03-29
|
||||
|
@ -1579,6 +1580,7 @@ mapAliases ({
|
|||
robomongo = throw "'robomongo' has been renamed to/replaced by 'robo3t'"; # Converted to throw 2022-02-22
|
||||
rockbox_utility = rockbox-utility; # Added 2022-03-17
|
||||
rocm-runtime-ext = throw "rocm-runtime-ext has been removed, since its functionality was added to rocm-runtime"; #added 2020-08-21
|
||||
rome = throw "rome is no longer maintained, consider using biome instead"; # Added 2023-09-12
|
||||
rpiboot-unstable = rpiboot; # Added 2021-07-30
|
||||
rr-unstable = rr; # Added 2022-09-17
|
||||
rssglx = throw "'rssglx' has been renamed to/replaced by 'rss-glx'"; # Converted to throw 2022-02-22
|
||||
|
@ -1654,6 +1656,7 @@ mapAliases ({
|
|||
slurm-llnl = slurm; # renamed July 2017
|
||||
slurm-llnl-full = slurm-full; # renamed July 2017
|
||||
smbclient = throw "'smbclient' has been renamed to/replaced by 'samba'"; # Converted to throw 2022-02-22
|
||||
smesh = throw "'smesh' has been removed as it's unmaintained and depends on opencascade-oce, which is also unmaintained"; # Added 2023-09-18
|
||||
smugline = throw "smugline has been removed from nixpkgs, as it's unmaintained and depends on deprecated libraries"; # Added 2020-11-04
|
||||
snack = throw "snack has been removed: broken for 5+ years"; # Added 2022-04-21
|
||||
soldat-unstable = opensoldat; # Added 2022-07-02
|
||||
|
|
|
@ -13260,10 +13260,6 @@ with pkgs;
|
|||
|
||||
smenu = callPackage ../tools/misc/smenu { };
|
||||
|
||||
smesh = callPackage ../development/libraries/smesh {
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
||||
};
|
||||
|
||||
boost-sml = callPackage ../development/libraries/boost-ext/boost-sml { };
|
||||
|
||||
smu = callPackage ../tools/text/smu { };
|
||||
|
@ -20164,8 +20160,6 @@ with pkgs;
|
|||
|
||||
rolespec = callPackage ../development/tools/misc/rolespec { };
|
||||
|
||||
rome = callPackage ../development/tools/rome { };
|
||||
|
||||
rr = callPackage ../development/tools/analysis/rr { };
|
||||
|
||||
rsass = callPackage ../development/tools/misc/rsass { };
|
||||
|
@ -24468,9 +24462,6 @@ with pkgs;
|
|||
python = python3;
|
||||
};
|
||||
|
||||
opencascade = callPackage ../development/libraries/opencascade {
|
||||
inherit (darwin.apple_sdk.frameworks) OpenCL Cocoa;
|
||||
};
|
||||
opencascade-occt = callPackage ../development/libraries/opencascade-occt { };
|
||||
|
||||
opencl-headers = callPackage ../development/libraries/opencl-headers { };
|
||||
|
@ -25667,17 +25658,6 @@ with pkgs;
|
|||
gtkVersion = "4";
|
||||
};
|
||||
|
||||
vtk_8 = libsForQt5.callPackage ../development/libraries/vtk/8.x.nix {
|
||||
stdenv = gcc9Stdenv;
|
||||
inherit (darwin) libobjc;
|
||||
inherit (darwin.apple_sdk.libs) xpc;
|
||||
inherit (darwin.apple_sdk.frameworks) AGL Cocoa CoreServices DiskArbitration
|
||||
IOKit CFNetwork Security ApplicationServices
|
||||
CoreText IOSurface ImageIO OpenGL GLUT;
|
||||
};
|
||||
|
||||
vtk_8_withQt5 = vtk_8.override { enableQt = true; };
|
||||
|
||||
vtk_9 = libsForQt5.callPackage ../development/libraries/vtk/9.x.nix {
|
||||
inherit (darwin) libobjc;
|
||||
inherit (darwin.apple_sdk.libs) xpc;
|
||||
|
@ -33527,7 +33507,7 @@ with pkgs;
|
|||
|
||||
lame = callPackage ../development/libraries/lame { };
|
||||
|
||||
labwc = callPackage ../applications/window-managers/labwc {
|
||||
labwc = callPackage ../by-name/la/labwc/package.nix {
|
||||
wlroots = wlroots_0_16;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue