Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2024-12-16 18:05:39 +00:00
committed by GitHub
144 changed files with 4786 additions and 3135 deletions
+6
View File
@@ -24515,6 +24515,12 @@
github = "peterablehmann";
githubId = 36541313;
};
xiaoxiangmoe = {
name = "ZHAO JinXiang";
email = "xiaoxiangmoe@gmail.com";
github = "xiaoxiangmoe";
githubId = 8111351;
};
xinyangli = {
email = "lixinyang411@gmail.com";
matrix = "@me:xinyang.life";
@@ -0,0 +1,16 @@
# Building Images with `nixos-rebuild build-image` {#sec-image-nixos-rebuild-build-image}
Nixpkgs contains a variety of modules to build custom images for different virtualization platforms and cloud providers, such as e.g. `amazon-image.nix` and `proxmox-lxc.nix`.
While those can be imported individually, `system.build.images` provides an attribute set mapping variant names to image derivations. Available variants are defined - end extendable - in `image.modules`, an attribute set mapping variant names to a list of NixOS modules.
All of those images can be built via both, their `system.build.image` attribute, and the CLI `nixos-rebuild build-image`. To build i.e. an Amazon image from your existing NixOS configuration:
```ShellSession
$ nixos-rebuild build-image --image-variant amazon
$ ls result
nixos-image-amazon-25.05pre-git-x86_64-linux.vhd nix-support
```
To get a list of all variants available, run `nixos-rebuild build-image` without arguments.
@@ -1,7 +1,7 @@
# Building a NixOS (Live) ISO {#sec-building-image}
Default live installer configurations are available inside `nixos/modules/installer/cd-dvd`.
For building other system images, [nixos-generators] is a good place to start looking at.
For building other system images, see [Building Images with `nixos-rebuild build-image`](#sec-image-nixos-rebuild-build-image).
You have two options:
@@ -14,8 +14,6 @@ on which they immediately depend in order to work correctly.
However, if you are confident, you can opt to override those
enforced values with `mkForce`.
[nixos-generators]: https://github.com/nix-community/nixos-generators
## Practical Instructions {#sec-building-image-instructions}
To build an ISO image for the channel `nixos-unstable`:
@@ -30,7 +28,7 @@ $ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd
To check the content of an ISO image, mount it like so:
```ShellSession
# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
# mount -o loop -t iso9660 ./result/iso/nixos-image-25.05pre-git-x86_64-linux.iso /mnt/iso
```
## Additional drivers or firmware {#sec-building-image-drivers}
@@ -8,5 +8,6 @@ installing.chapter.md
changing-config.chapter.md
upgrading.chapter.md
building-nixos.chapter.md
building-images-via-nixos-rebuild-build-image.chapter.md
building-images-via-systemd-repart.chapter.md
```
+3
View File
@@ -167,6 +167,9 @@
"sec-building-image-tech-notes": [
"index.html#sec-building-image-tech-notes"
],
"sec-image-nixos-rebuild-build-image": [
"index.html#sec-image-nixos-rebuild-build-image"
],
"sec-image-repart": [
"index.html#sec-image-repart"
],
@@ -19,6 +19,10 @@
- The default PHP version has been updated to 8.3.
- `nixos-rebuild-ng`, a full rewrite of `nixos-rebuild` in Python, is available for testing. You can enable it by setting [system.rebuild.enableNg](options.html#opt-system.rebuild.enableNg) in your configuration (this will replace the old `nixos-rebuild`), or by adding `nixos-rebuild-ng` to your `environment.systemPackages` (in this case, it will live side-by-side with `nixos-rebuild` as `nixos-rebuild-ng`). It is expected that the next major version of NixOS (25.11) will enable `system.rebuild.enableNg` by default.
- A `nixos-rebuild build-image` sub-command has been added.
It allows users to build platform-specific (disk) images from their NixOS configurations. `nixos-rebuild build-image` works similar to the popular [nix-community/nixos-generators](https://github.com/nix-community/nixos-generators) project. See new [section on image building in the nixpkgs manual](https://nixos.org/manual/nixpkgs/unstable/#sec-image-nixos-rebuild-build-image).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## New Modules {#sec-release-25.05-new-modules}
@@ -143,6 +147,32 @@
- `python3Packages.opentracing` has been removed due to being unmaintained upstream. [OpenTelemetry](https://opentelemetry.io/) is the recommended replacement.
- Default file names of images generated by several builders in `system.build` have been changed as outlined in the table below.
Names are now known at evaluation time and customizable via the new options `image.baseName`, `image.extension`, `image.fileName` and `image.filePath` with the latter returning a path relative to the derivations out path (e.g. `iso/${image.fileName` for iso images).
| `system.build` Option | Old Filename | New Filename |
|--------------------------+------------------------------------------------------------+-----------------------------------------------------------------|
| amazonImage | nixos-amazon-image-25.05pre-git-x86_64-linux.vhd | nixos-image-amazon-25.05pre-git-x86_64-linux.vhd |
| azureImage | disk.vhd | nixos-image-azure-25.05pre-git-x86_64-linux.vhd |
| digitalOceanImage | nixos.qcow2.gz | nixos-image-digital-ocean-25.05pre-git-x86_64-linux.qcow2.gz |
| googleComputeImage | nixos-image-25.05pre-git-x86_64-linux.raw.tar.gz | nixos-image-google-compute-25.05pre-git-x86_64-linux.raw.tar.gz |
| hypervImage | nixos-25.05pre-git-x86_64-linux.vhdx | nixos-image-hyperv-25.05pre-git-x86_64-linux.vhdx |
| isoImage (installer) | nixos-25.05pre-git-x86_64-linux.iso | nixos-image-25.05pre-git-x86_64-linux.iso |
| isoImage | nixos.iso | nixos-image-25.05pre-git-x86_64-linux.iso |
| kubevirtImage | nixos.qcow2 | nixos-image-kubevirt-25.05pre-git-x86_64-linux.qcow2 |
| linodeImage | nixos-image-25.05pre-git-x86_64-linux.img.gz | nixos-image-linode-25.05pre-git-x86_64-linux.img.gz |
| metadata (lxc-container) | nixos-system-x86_64-linux.tar.xz | nixos-image-lxc-metadata-25.05pre-git-x86_64-linux.tar.xz |
| OCIImage | nixos.qcow2 | nixos-image-oci-25.05pre-git-x86_64-linux.qcow2 |
| openstackImage (zfs) | nixos-openstack-image-25.05pre-git-x86_64-linux.root.qcow2 | nixos-image-openstack-zfs-25.05pre-git-x86_64-linux.root.qcow2 |
| openstackImage | nixos.qcow2 | nixos-image-openstack-25.05pre-git-x86_64-linux.qcow2 |
| sdImage | nixos-sd-image-25.05pre-git-x86_64-linux.img.zst | nixos-image-sd-card-25.05pre-git-x86_64-linux.img.zst |
| tarball (lxc-container) | nixos-system-x86_64-linux.tar.xz | nixos-image-lxc-25.05pre-git-x86_64-linux.tar.xz |
| tarball (proxmox-lxc) | nixos-system-x86_64-linux.tar.xz | nixos-image-lxc-proxmox-25.05pre-git-x86_64-linux.tar.xz |
| vagrantVirtualbox | nixos-25.05pre-git-x86_64-linux.ova | nixos-image-virtualbox-25.05pre-git-x86_64-linux.ova |
| virtualBoxOVA | virtualbox-vagrant.box | nixos-image-vagrant-virtualbox-25.05pre-git-x86_64-linux.ova |
| vmwareImage | nixos-25.05pre-git-x86_64-linux.vmdk | nixos-image-vmware-25.05pre-git-x86_64-linux.vmdk |
- the notmuch vim plugin now lives in a separate output of the `notmuch`
package. Installing `notmuch` will not bring the notmuch vim package anymore,
add `vimPlugins.notmuch-vim` to your (Neo)vim configuration if you want the
+2 -2
View File
@@ -18,10 +18,10 @@ nix run nixpkgs#upload-ami -- --image-info ./result/nix-support/image-info.json
## How to build your own NixOS config into an AMI
I suggest looking at https://github.com/nix-community/nixos-generators for a user-friendly interface.
Use `nixos-rebuild build-image` as follows:
```bash
nixos-generate -c ./my-config.nix -f amazon
NIXOS_CONFIG="$(pwd)/my-config.nix" nixos-rebuild build-image --image-variant amazon
export AWS_REGION=us-west-2
export AWS_PROFILE=my-profile
+1 -1
View File
@@ -162,7 +162,7 @@ let
'';
compressFirmware = firmware:
if config.hardware.firmwareCompression == "none" || (firmware.compressFirmware or false) == false then firmware
if config.hardware.firmwareCompression == "none" || (firmware.compressFirmware or true) == false then firmware
else if config.hardware.firmwareCompression == "zstd" then pkgs.compressFirmwareZstd firmware
else pkgs.compressFirmwareXz firmware;
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "tageditor";
version = "3.9.3";
version = "3.9.4";
src = fetchFromGitHub {
owner = "martchus";
repo = pname;
rev = "v${version}";
hash = "sha256-KAtOnTf3foOILDfTjVpkCOG6jsyS5fv0/Wv9Zcut2oE=";
hash = "sha256-VRQV4bTPG4VFhRHFJamUnYd04ZCaNpaxU27Jcl6Chc4=";
};
nativeBuildInputs = [
@@ -3246,8 +3246,8 @@ let
mktplcRef = {
name = "compare-folders";
publisher = "moshfeu";
version = "0.24.3";
hash = "sha256-eaumF2BIqEYoyL7LQ0Wx3+gkkFGpWKQoN3AisI8wTQY=";
version = "0.25.1";
hash = "sha256-axNTdnSkMkFs7LSZCc7VinjbrDncsRHlRtDG9+eh2qQ=";
};
meta = {
@@ -5333,8 +5333,8 @@ let
mktplcRef = {
name = "vscode-icons";
publisher = "vscode-icons-team";
version = "12.9.0";
hash = "sha256-ULjZlbGcVbPiokfnx7d4z7cmVVEfy2d+SUch80rZRA4=";
version = "12.10.0";
hash = "sha256-GNDLuszuJN3P0V25F4gm7yUJsFEQgFMMPMTFLWLIvSo=";
};
meta = {
description = "Bring real icons to your Visual Studio Code";
@@ -36,7 +36,7 @@ let
stripRoot = false;
};
version = "3.3.1";
version = "3.4.0";
in
python3.pkgs.buildPythonApplication {
@@ -46,7 +46,7 @@ python3.pkgs.buildPythonApplication {
src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz";
hash = "sha256-qttkrMxzC8mhXONByaBYCx82OD7Uh09U0xzh2r6U4Xo=";
hash = "sha256-gUEkwO0zdDDmE6HaNm1eOJBMsgSa+xUFlxRWylymIj4=";
};
# Needs tox
@@ -5,16 +5,16 @@
}:
buildGoModule rec {
pname = "helm-dt";
version = "0.4.1";
version = "0.4.3";
src = fetchFromGitHub {
owner = "vmware-labs";
repo = "distribution-tooling-for-helm";
rev = "refs/tags/v${version}";
hash = "sha256-KrQAlB0ORNzKIG2vxych3gVBytTh3Hhnjsyn1ia1ZQM=";
hash = "sha256-m+XTR+LYTXeDTqo/deFAIQjbUqGn6yD/n5cQvJ+jKPc=";
};
vendorHash = "sha256-T8Kk+9NAhYOvSq94HOEE53BT7Xh9tU1gJ420o/tiVEo=";
vendorHash = "sha256-rovAY4G4ew6JhehyXMz7cDKSEsHu0IQwaNYvClDog2s=";
ldflags = [
"-s"
@@ -1,10 +0,0 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-27.0.201+up27.0.2.tgz";
sha256 = "0vwprcb60y15sc4lmi58gl1zr3yhsq43jlbsfm7gs20ci90frv16";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-27.0.201+up27.0.2.tgz";
sha256 = "12dp1r82qfzqfzs4sfxc54rnw8kv42a3w4gpk5v3qkhqm6fkrnn1";
};
}
@@ -1,18 +0,0 @@
{
"airgap-images-amd64": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.28.15%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "0p14llji8m1pfi289w29smx6sbad6qhgxk9drwlyrfdywrhd04ly"
},
"airgap-images-arm": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.28.15%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "054apgl2al8822f399ir81jbid9mfs27d4by7xkkpdbqr3fywbr6"
},
"airgap-images-arm64": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.28.15%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "19hzamg68zc1k90a9m6p2jnpy2p7v437kvgqsw198bhy796f6asb"
},
"images-list": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.28.15%2Bk3s1/k3s-images.txt",
"sha256": "05229bfg174pvy525dcy7rvmgv9i9v1nnz5ngq80n7zkxj9cp8m8"
}
}
@@ -1,15 +0,0 @@
{
k3sVersion = "1.28.15+k3s1";
k3sCommit = "869dd4d62626f5ba4afe3a923d77b2047c565a43";
k3sRepoSha256 = "1nijdii01004v2cgpaw0xnzyrljd4iw00wca1lg6szhqmj28gcfv";
k3sVendorHash = "sha256-zWBMZrpRJzzc4yAIWAnWnmVE7qr7bscJjHrHdDD0Ilg=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.14.0";
k3sRootSha256 = "15cs9faw3jishsb5nhgmb5ldjc47hkwf7hz2126fp8ahf80m0fcl";
k3sCNIVersion = "1.5.1-k3s1";
k3sCNISha256 = "1bkz78p77aiw64hdvmlgc5zir9x8zha8qprfaab48jxbcsj3dfi7";
containerdVersion = "1.7.22-k3s1.28";
containerdSha256 = "0jpq03n5q8aydw4y14w9fl4fqixpdcw42gwvmsp3z3qplbvwkfkl";
criCtlVersion = "1.26.0-rc.0-k3s1";
}
@@ -12,17 +12,6 @@ let
extraArgs = builtins.removeAttrs args [ "callPackage" ];
in
{
# 1_28 can be built with the same builder as 1_30
k3s_1_28 = common (
(import ./1_28/versions.nix)
// {
updateScript = [
./update-script.sh
"28"
];
}
) extraArgs;
# 1_29 can be built with the same builder as 1_30
k3s_1_29 = common (
(import ./1_29/versions.nix)
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage {
inherit version src;
sourceRoot = "${src.name}/coolercontrol-ui/src-tauri";
cargoHash = "sha256-nS67ABuI2/C08X+TWWoOx7bptIPF1fsvBC1Ucoky1/4=";
cargoHash = "sha256-gjR54dZjVonyznfBGb3iNNdmPalE+a53MmkOEZj3+sY=";
buildFeatures = [ "custom-protocol" ];
@@ -11,7 +11,7 @@ buildNpmPackage {
inherit version src;
sourceRoot = "${src.name}/coolercontrol-ui";
npmDepsHash = "sha256-j+bGOGIG9H/1z0dN8BfvWSi6gPvYmCV7l0ZNH8h3yeU=";
npmDepsHash = "sha256-t+QShKaXpQuEzeeu/ljBBEzeYsxqvMpx5waDZ2gyPAI=";
preBuild = ''
autoPatchelf node_modules/sass-embedded-linux-x64/dart-sass/src/dart
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage {
sourceRoot = "${src.name}/coolercontrold";
useFetchCargoVendor = true;
cargoHash = "sha256-ZAjaegUgNkKygXqskyeUkWpcqi1Jt7pE8GtqWlaP6/I=";
cargoHash = "sha256-5gqtSZs/unFobEl1MHec2uhGDrWnO6ITlYbB78VasZg=";
buildInputs = [ libdrm ];
@@ -5,13 +5,13 @@
}:
let
version = "1.4.4";
version = "1.4.5";
src = fetchFromGitLab {
owner = "coolercontrol";
repo = "coolercontrol";
rev = version;
hash = "sha256-9l10X4uDv3KJz582QQMhqh38bwDtQVHm9HdAVNC6Kfg=";
hash = "sha256-lRw5IcSrLM6aUajt2Ny1IUuGYcAjY1oUDZENyz0wVJI=";
};
meta = {
@@ -1,4 +1,3 @@
use anyhow::bail;
use backoff::{retry, ExponentialBackoff};
use data_encoding::BASE64;
use digest::Digest;
@@ -6,7 +5,6 @@ use isahc::{
config::{CaCertificate, Configurable, RedirectPolicy, SslOption},
Body, Request, RequestExt,
};
use log::info;
use nix_nar::{Encoder, NarError};
use serde_json::{Map, Value};
use sha2::Sha256;
@@ -17,7 +15,7 @@ use std::{
};
use url::Url;
pub fn get_url(url: &Url) -> Result<Body, anyhow::Error> {
pub fn get_url(url: &Url) -> Result<Body, isahc::Error> {
let mut request = Request::get(url.as_str()).redirect_policy(RedirectPolicy::Limit(10));
// Respect SSL_CERT_FILE if environment variable exists
@@ -39,27 +37,16 @@ pub fn get_url(url: &Url) -> Result<Body, anyhow::Error> {
if let Ok(npm_tokens) = env::var("NIX_NPM_TOKENS") {
if let Ok(tokens) = serde_json::from_str::<Map<String, Value>>(&npm_tokens) {
if let Some(token) = tokens.get(host).and_then(serde_json::Value::as_str) {
info!("Found NPM token for {}. Adding authorization header to request.", host);
request = request.header("Authorization", format!("Bearer {token}"));
}
}
}
}
let res = request.body(())?.send()?;
if !res.status().is_success() {
if res.status().is_client_error() {
bail!("Client error: {}", res.status());
}
if res.status().is_server_error() {
bail!("Server error: {}", res.status());
}
bail!("{}", res.status());
}
Ok(res.into_body())
Ok(request.body(())?.send()?.into_body())
}
pub fn get_url_body_with_retry(url: &Url) -> Result<Vec<u8>, anyhow::Error> {
pub fn get_url_body_with_retry(url: &Url) -> Result<Vec<u8>, isahc::Error> {
retry(ExponentialBackoff::default(), || {
get_url(url)
.and_then(|mut body| {
@@ -69,15 +56,12 @@ pub fn get_url_body_with_retry(url: &Url) -> Result<Vec<u8>, anyhow::Error> {
Ok(buf)
})
.map_err(|err| match err.downcast_ref::<isahc::Error>() {
Some(isahc_err) => {
if isahc_err.is_network() || isahc_err.is_timeout() {
backoff::Error::transient(err)
} else {
backoff::Error::permanent(err)
}
.map_err(|err| {
if err.is_network() || err.is_timeout() {
backoff::Error::transient(err)
} else {
backoff::Error::permanent(err)
}
None => backoff::Error::permanent(err),
})
})
.map_err(|backoff_err| match backoff_err {
+144
View File
@@ -0,0 +1,144 @@
{
copyDesktopItems,
electron,
fetchFromGitHub,
fetchurl,
lib,
makeDesktopItem,
makeWrapper,
stdenvNoCC,
unzip,
buildType ? "stable",
commandLineArgs ? "",
}:
let
hostPlatform = stdenvNoCC.hostPlatform;
nodePlatform = hostPlatform.parsed.kernel.name; # nodejs's `process.platform`
nodeArch = # nodejs's `process.arch`
{
"x86_64" = "x64";
"aarch64" = "arm64";
}
.${hostPlatform.parsed.cpu.name}
or (throw "affine-bin(${buildType}): unsupported CPU family ${hostPlatform.parsed.cpu.name}");
in
stdenvNoCC.mkDerivation (
finalAttrs:
(
{
# https://github.com/toeverything/AFFiNE/releases/tag/v0.18.1
version = "0.18.1";
githubSourceCode = fetchFromGitHub {
owner = "toeverything";
repo = "AFFiNE";
rev = "8b066a4b398aace25a20508a8e3c1a381721971f";
hash = "sha256-TWwojG3lqQlQFX3BKoFjJ27a3T/SawXgNDO6fP6gW4k=";
};
productName = if buildType == "stable" then "AFFiNE" else "AFFiNE-" + buildType;
binName = lib.toLower finalAttrs.productName;
pname = "${finalAttrs.binName}-bin";
meta =
{
description = "Workspace with fully merged docs, whiteboards and databases";
longDescription = ''
AFFiNE is an open-source, all-in-one workspace and an operating
system for all the building blocks that assemble your knowledge
base and much more -- wiki, knowledge management, presentation
and digital assets
'';
homepage = "https://affine.pro/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
richar
redyf
xiaoxiangmoe
];
platforms = [
"aarch64-darwin"
"x86_64-darwin"
"x86_64-linux"
];
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
}
// lib.optionalAttrs hostPlatform.isLinux {
mainProgram = finalAttrs.binName;
};
src = (
let
inherit (finalAttrs) version;
affinePrebuiltBinariesHashes = {
darwin-arm64 = "I8lOO97MNLkha0utWPAP4EKv9HiPMWpLi2ibvXjzjhdl7abgSPmMKbv1dGHxMzgMzGbDzhzKqzhYtJI+0Asfzw==";
darwin-x64 = "LZdd7yHJx9Hx0Po8NQgeDp0BhIyXGr0QsbF6bWP5pS08c4fdtE9UzNPfJGfzz/snTkWfKMQZop0Ea4fYGosr1Q==";
linux-x64 = "+impaFLuvcfpj4QjHwjZ06+fUpsxxRlk4eWO6+E4xkBMrV43gwZGeSeAw2pMgXogRGb/Oy6XUoA7o8tTQt9J6A==";
};
platform = if hostPlatform.isLinux then "linux" else "macos";
in
fetchurl {
# example: https://github.com/toeverything/AFFiNE/releases/download/v0.18.1/affine-0.18.1-stable-darwin-arm64.zip
url = "https://github.com/toeverything/AFFiNE/releases/download/v${version}/affine-${version}-${buildType}-${platform}-${nodeArch}.zip";
sha512 = affinePrebuiltBinariesHashes."${nodePlatform}-${nodeArch}";
}
);
nativeBuildInputs =
[
unzip
]
++ lib.optionals hostPlatform.isLinux [
copyDesktopItems
makeWrapper
];
installPhase =
let
inherit (finalAttrs) binName productName;
in
if hostPlatform.isDarwin then
''
runHook preInstall
mkdir -p $out/Applications
cd ..
mv ${productName}.app $out/Applications
runHook postInstall
''
else
''
runHook preInstall
mkdir --parents $out/lib/${binName}/
mv ./{resources,LICENSE*} $out/lib/${binName}/
install -Dm644 "${finalAttrs.githubSourceCode}/packages/frontend/apps/electron/resources/icons/icon_${buildType}_64x64.png" $out/share/icons/hicolor/64x64/apps/${binName}.png
makeWrapper "${electron}/bin/electron" $out/bin/${binName} \
--inherit-argv0 \
--add-flags $out/lib/${binName}/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
runHook postInstall
'';
}
// lib.optionalAttrs hostPlatform.isLinux {
desktopItems =
let
inherit (finalAttrs) binName productName;
in
[
(makeDesktopItem {
name = binName;
desktopName = productName;
comment = "AFFiNE Desktop App";
exec = "${binName} %U";
terminal = false;
icon = binName;
startupWMClass = binName;
categories = [ "Utility" ];
mimeTypes = [ "x-scheme-handler/${binName}" ];
})
];
}
)
)
+235 -66
View File
@@ -1,75 +1,244 @@
{
lib,
fetchurl,
stdenvNoCC,
cacert,
cargo,
copyDesktopItems,
electron_33,
fetchFromGitHub,
fetchurl,
findutils,
jq,
lib,
makeDesktopItem,
makeWrapper,
unzip,
electron,
nodejs_20,
rsync,
rustPlatform,
rustc,
stdenv,
stdenvNoCC,
yarn,
zip,
buildType ? "stable",
commandLineArgs ? "",
}:
stdenvNoCC.mkDerivation (
let
hostPlatform = stdenvNoCC.hostPlatform;
nodePlatform = hostPlatform.parsed.kernel.name; # nodejs's `process.platform`
nodeArch = # nodejs's `process.arch`
{
"x86_64" = "x64";
"aarch64" = "arm64";
}
.${hostPlatform.parsed.cpu.name}
or (throw "affine(${buildType}): unsupported CPU family ${hostPlatform.parsed.cpu.name}");
electron = electron_33;
in
stdenv.mkDerivation (
finalAttrs:
let
icon = fetchurl {
url = "https://raw.githubusercontent.com/toeverything/AFFiNE/v${finalAttrs.version}/packages/frontend/core/public/favicon-192.png";
hash = "sha256-smZ5W7fy3TK3bvjwV4i71j2lVmKSZcyhMhcWfPxNnN4=";
};
in
{
pname = "affine";
version = "0.17.5";
src = fetchurl {
url = "https://github.com/toeverything/AFFiNE/releases/download/v${finalAttrs.version}/affine-${finalAttrs.version}-stable-linux-x64.zip";
hash = "sha256-lK5DDI9CKRneY4AwMI4r1qlGyYtQG4Xi8Ys4I3jawTk=";
};
nativeBuildInputs = [
copyDesktopItems
makeWrapper
unzip
];
postInstall = ''
mkdir -p $out/lib
cp -r ./resources/* -t $out/lib/
mkdir -p $out/share/doc/affine/
cp LICENSE* $out/share/doc/affine/
install -Dm644 ${icon} $out/share/pixmaps/affine.png
makeWrapper "${electron}/bin/electron" $out/bin/affine \
--inherit-argv0 \
--add-flags $out/lib/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
'';
desktopItems = [
(makeDesktopItem {
name = "affine";
desktopName = "AFFiNE";
exec = "affine %U";
terminal = false;
icon = "affine";
startupWMClass = "affine";
categories = [ "Utility" ];
})
];
meta = {
description = "Workspace with fully merged docs, whiteboards and databases";
longDescription = ''
AFFiNE is an open-source, all-in-one workspace and an operating
system for all the building blocks that assemble your knowledge
base and much more -- wiki, knowledge management, presentation
and digital assets
(
{
productName = if buildType == "stable" then "AFFiNE" else "AFFiNE-" + buildType;
binName = lib.toLower finalAttrs.productName;
pname = finalAttrs.binName;
# https://github.com/toeverything/AFFiNE/releases/tag/v0.18.1
version = "0.18.1";
GITHUB_SHA = "8b066a4b398aace25a20508a8e3c1a381721971f";
src = fetchFromGitHub {
owner = "toeverything";
repo = "AFFiNE";
rev = finalAttrs.GITHUB_SHA;
hash = "sha256-TWwojG3lqQlQFX3BKoFjJ27a3T/SawXgNDO6fP6gW4k=";
};
meta =
{
description = "Workspace with fully merged docs, whiteboards and databases";
longDescription = ''
AFFiNE is an open-source, all-in-one workspace and an operating
system for all the building blocks that assemble your knowledge
base and much more -- wiki, knowledge management, presentation
and digital assets
'';
homepage = "https://affine.pro/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
platforms = [
"aarch64-darwin"
"aarch64-linux"
"x86_64-darwin"
"x86_64-linux"
];
sourceProvenance = [ lib.sourceTypes.fromSource ];
}
// lib.optionalAttrs hostPlatform.isLinux {
mainProgram = finalAttrs.binName;
};
env = {
BUILD_TYPE = buildType;
};
cargoDeps = rustPlatform.fetchCargoVendor {
src = finalAttrs.src;
hash = "sha256-5s/X9CD/H9rSn7SqMHioLg1KRP7y9fsozdFRY3hNiP8=";
};
yarnOfflineCache = stdenvNoCC.mkDerivation {
name = "yarn-offline-cache";
src = finalAttrs.src;
nativeBuildInputs = [
yarn
cacert
];
supportedArchitectures = builtins.toJSON {
os = [
"darwin"
"linux"
];
cpu = [
"arm64"
"x64"
];
libc = [
"glibc"
"musl"
];
};
buildPhase = ''
export HOME="$NIX_BUILD_TOP"
export CI=1
mkdir -p $out
yarn config set enableTelemetry false
yarn config set cacheFolder $out
yarn config set enableGlobalCache false
yarn config set supportedArchitectures --json "$supportedArchitectures"
yarn install --immutable --mode=skip-build
'';
dontInstall = true;
outputHashMode = "recursive";
outputHash = "sha256-HueTia+1ApfvbBK/b+iE84TB1DCWIDLoQ9XhjYlGCUs=";
};
nativeBuildInputs =
[
nodejs_20
yarn
cargo
rustc
findutils
zip
jq
rsync
]
++ lib.optionals hostPlatform.isLinux [
copyDesktopItems
makeWrapper
];
patchPhase = ''
runHook prePatchPhase
sed -i '/packagerConfig/a \ electronZipDir: process.env.ELECTRON_FORGE_ELECTRON_ZIP_DIR,' packages/frontend/apps/electron/forge.config.mjs
runHook postPatchPhase
'';
homepage = "https://affine.pro/";
downloadPage = "https://affine.pro/download";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
richar
redyf
];
mainProgram = "affine";
platforms = [ "x86_64-linux" ];
};
}
configurePhase =
let
electronContentPath =
electron + (if hostPlatform.isLinux then "/libexec/electron/" else "/Applications/");
in
''
runHook preConfigurePhase
export HOME="$NIX_BUILD_TOP"
export CI=1
# cargo config
mkdir -p .cargo
cat $cargoDeps/.cargo/config.toml >> .cargo/config.toml
ln -s $cargoDeps @vendor@
# yarn config
yarn config set enableTelemetry false
yarn config set enableGlobalCache false
yarn config set cacheFolder $yarnOfflineCache
# electron config
ELECTRON_VERSION_IN_LOCKFILE=$(yarn why electron --json | tail --lines 1 | jq --raw-output '.children | to_entries | first | .key ' | cut -d : -f 2)
rsync --archive --chmod=u+w ${electronContentPath} $HOME/.electron-prebuilt-zip-tmp
export ELECTRON_FORGE_ELECTRON_ZIP_DIR=$PWD/.electron_zip_dir
mkdir -p $ELECTRON_FORGE_ELECTRON_ZIP_DIR
(cd $HOME/.electron-prebuilt-zip-tmp && zip --recurse-paths - .) > $ELECTRON_FORGE_ELECTRON_ZIP_DIR/electron-v$ELECTRON_VERSION_IN_LOCKFILE-${nodePlatform}-${nodeArch}.zip
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
runHook postConfigurePhase
'';
buildPhase = ''
runHook preBuild
# first build
yarn workspaces focus @affine/electron @affine/monorepo
CARGO_NET_OFFLINE=true yarn workspace @affine/native build
BUILD_TYPE=${buildType} SKIP_NX_CACHE=1 yarn workspace @affine/electron generate-assets
# second build
yarn config set nmMode classic
yarn config set nmHoistingLimits workspaces
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
yarn workspaces focus @affine/electron @affine/monorepo
BUILD_TYPE=${buildType} SKIP_WEB_BUILD=1 SKIP_BUNDLE=1 HOIST_NODE_MODULES=1 yarn workspace @affine/electron make
runHook postBuild
'';
installPhase =
let
inherit (finalAttrs) binName productName;
in
if hostPlatform.isDarwin then
''
runHook preInstall
mkdir -p $out/Applications
mv packages/frontend/apps/electron/out/${buildType}/${productName}-darwin-${nodeArch}/${productName}.app $out/Applications
runHook postInstall
''
else
''
runHook preInstall
mkdir --parents $out/lib/${binName}/
mv packages/frontend/apps/electron/out/${buildType}/${productName}-linux-${nodeArch}/{resources,LICENSE*} $out/lib/${binName}/
install -Dm644 packages/frontend/apps/electron/resources/icons/icon_${buildType}_64x64.png $out/share/icons/hicolor/64x64/apps/${binName}.png
makeWrapper "${electron}/bin/electron" $out/bin/${binName} \
--inherit-argv0 \
--add-flags $out/lib/${binName}/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
runHook postInstall
'';
}
// (lib.optionalAttrs hostPlatform.isLinux {
desktopItems =
let
inherit (finalAttrs) binName productName;
in
[
(makeDesktopItem {
name = binName;
desktopName = productName;
comment = "AFFiNE Desktop App";
exec = "${binName} %U";
terminal = false;
icon = binName;
startupWMClass = binName;
categories = [ "Utility" ];
mimeTypes = [ "x-scheme-handler/${binName}" ];
})
];
})
)
)
+2 -2
View File
@@ -6,10 +6,10 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "arcticons-sans";
version = "0.590";
version = "0.591";
src = fetchzip {
hash = "sha256-0iSkTfUMgrKi6LF+9KAihPus0biGuOFsYN51ydYAF5E=";
hash = "sha256-fMsAvrH4NVdXoywW66fJhNWDDY5JxDxPJgvaUD9lEpw=";
url = "https://github.com/arcticons-team/arcticons-font/archive/refs/tags/${finalAttrs.version}.zip";
};
+72
View File
@@ -0,0 +1,72 @@
diff --git a/Src/Autosubst/GenAutomation.hs b/Src/Autosubst/GenAutomation.hs
index f1c205c..6f48895 100755
--- a/Src/Autosubst/GenAutomation.hs
+++ b/Src/Autosubst/GenAutomation.hs
@@ -7,6 +7,7 @@ import Autosubst.Names
import Autosubst.Syntax
import Autosubst.Tactics
import Autosubst.Types
+import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader
import Control.Monad.State.Lazy
diff --git a/Src/Autosubst/GenCode.hs b/Src/Autosubst/GenCode.hs
index 9145915..d4b7569 100755
--- a/Src/Autosubst/GenCode.hs
+++ b/Src/Autosubst/GenCode.hs
@@ -5,6 +5,7 @@ module Autosubst.GenCode (generateCode) where
import Autosubst.Generator
import Autosubst.ModularGenerator
import Autosubst.Types
+import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader
import Control.Monad.RWS hiding ((<>))
diff --git a/Src/Autosubst/GenM.hs b/Src/Autosubst/GenM.hs
index 59483c1..3a4a447 100755
--- a/Src/Autosubst/GenM.hs
+++ b/Src/Autosubst/GenM.hs
@@ -2,6 +2,7 @@
{-# LANGUAGE MultiParamTypeClasses #-}
module Autosubst.GenM where
+import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader
import Control.Monad.RWS
diff --git a/Src/Autosubst/Generator.hs b/Src/Autosubst/Generator.hs
index 576db42..264b836 100755
--- a/Src/Autosubst/Generator.hs
+++ b/Src/Autosubst/Generator.hs
@@ -8,6 +8,7 @@ import Autosubst.Names
import Autosubst.Syntax
import Autosubst.Tactics
import Autosubst.Types
+import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader
import Control.Monad.RWS hiding ((<>))
diff --git a/Src/Autosubst/ModularGenerator.hs b/Src/Autosubst/ModularGenerator.hs
index 323c1b1..dae8346 100755
--- a/Src/Autosubst/ModularGenerator.hs
+++ b/Src/Autosubst/ModularGenerator.hs
@@ -7,6 +7,7 @@ import Autosubst.Names
import Autosubst.Syntax
import Autosubst.Tactics
import Autosubst.Types
+import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader
import Control.Monad.State.Lazy
diff --git a/Src/Autosubst/Tactics.hs b/Src/Autosubst/Tactics.hs
index ef3545c..cdd38fb 100755
--- a/Src/Autosubst/Tactics.hs
+++ b/Src/Autosubst/Tactics.hs
@@ -2,6 +2,7 @@
{-# LANGUAGE MultiParamTypeClasses #-}
module Autosubst.Tactics where
+import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader
import Control.Monad.RWS hiding ((<>))
+49
View File
@@ -0,0 +1,49 @@
{
lib,
haskellPackages,
fetchFromGitHub,
}:
haskellPackages.mkDerivation {
pname = "autosubst2";
version = "0-unstable-2022-07-04";
src = fetchFromGitHub {
owner = "uds-psl";
repo = "autosubst2";
rev = "8a71e1dc4dea81f13a9572ea302064eb374566c6";
hash = "sha256-3n87NBi3NbuDb44/oEnzjNk/TAHUwATJYuaw70k/tpk=";
};
patches = [ ./imports.patch ];
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = with haskellPackages; [
base
parsec
containers
mtl
array
wl-pprint
graphviz
text
];
executableHaskellDepends = with haskellPackages; [
base
optparse-applicative
wl-pprint
directory
];
testHaskellDepends = with haskellPackages; [
base
QuickCheck
containers
];
doCheck = false;
homepage = "https://github.com/uds-psl/autosubst2";
description = "Tool for generating de Bruijn boilerplate Coq code to handle substitutions in languages with binders";
maintainers = with lib.maintainers; [ chen ];
license = lib.licenses.bsd3;
mainProgram = "as2-exe";
}
@@ -0,0 +1,59 @@
{
"name": "awk-language-server",
"description": "AWK Language Server",
"version": "0.10.6",
"author": "Stanislav Chernov <ch-e-st@yandex.ru>",
"publisher": "beaglefoot",
"license": "MIT",
"keywords": [
"language-server",
"language-server-protocol",
"lsp",
"awk",
"gawk"
],
"engines": {
"node": ">=16.0.0"
},
"bin": "./server/out/cli.js",
"main": "./server/out/server.js",
"typings": "./server/out/server.d.ts",
"repository": {
"type": "git",
"url": "https://github.com/Beaglefoot/awk-language-server"
},
"dependencies": {
"minimist": "1.2.6",
"tree-sitter-awk": "0.7.2",
"vscode-languageserver": "^7.0.0",
"vscode-languageserver-textdocument": "^1.0.1",
"web-tree-sitter": "0.22.1"
},
"devDependencies": {
"@types/minimist": "1.2.2",
"@types/jest": "27.0.1",
"@types/node": "^12.12.0",
"jest": "27.1.1",
"prettier": "2.3.2",
"ts-jest": "27.0.5",
"typescript": "^4.3.2"
},
"scripts": {
"build:completion": "man gawk | gawk -f scripts/build_completion_list.awk > docs.json",
"prepublishOnly": "cd .. && yarn build:server:force",
"clean:client": "rm -rfv client/out/*",
"clean:server": "rm -rfv server/out/*",
"build": "yarn build:server && yarn build:client",
"build:client": "tsc -b client/tsconfig.json",
"build:client:force": "yarn clean:client && yarn build:client --verbose --force",
"build:server": "tsc -b server/tsconfig.json",
"build:server:force": "yarn clean:server && yarn build:server --verbose --force",
"postinstall": "cd client && yarn && cd ../server && yarn && cd ..",
"test": "jest",
"test:server": "jest server/tests",
"test:ci": "jest --runInBand",
"check:types": "tsc --noEmit -p server/tsconfig.json",
"check:style": "prettier --check **/*.ts"
},
"private": true
}
@@ -0,0 +1,67 @@
{
lib,
mkYarnPackage,
fetchYarnDeps,
fetchFromGitHub,
jq,
}:
mkYarnPackage rec {
name = "awk-language-server";
version = "0.10.6";
src = fetchFromGitHub {
owner = "Beaglefoot";
repo = "awk-language-server";
rev = "server-${version}";
hash = "sha256-YtduDfMAUAoQY9tgyhgERFwx9TEgD52KdeHnX2MrjjI=";
sparseCheckout = [ "server" ];
postFetch = ''
# combine both yarn lock files
tail -n+4 $out/server/yarn.lock >> $out/yarn.lock
# recontextualize server/package.json to be one folder up
sed -i 's|\./|./server/|' $out/server/package.json
# combine both package.json files
${lib.getExe jq} -s '.[0] * .[1]' \
$out/server/package.json \
$out/package.json \
> package.json
mv -f package.json $out/
'';
};
packageJSON = ./package.json;
yarnLock = ./yarn.lock;
offlineCache = fetchYarnDeps {
yarnLock = ./yarn.lock;
hash = "sha256-PaebqpXQGBxqcaxun8zi6TPeIgHmY+2fjsE/3LaWPN8=";
};
distPhase = "true";
buildPhase = ''
runHook preBuild
export HOME=$(mktemp -d)
yarn --offline build:server
runHook postBuild
'';
postInstall = ''
chmod +x $out/bin/awk-language-server
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Language Server for AWK and associated VSCode client extension";
homepage = "https://github.com/Beaglefoot/awk-language-server";
license = licenses.mit;
maintainers = with maintainers; [ mathiassven ];
mainProgram = "awk-language-server";
};
}
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts coreutils gnused prefetch-yarn-deps
set -e
# update src version and hash
version="$(list-git-tags | sort -V | tail -1 | sed 's|server-||')"
update-source-version awk-language-server "$version"
# update vendored yarn.lock & package.json
newSrc="$(nix-build --no-out-link -A awk-language-server.src)"
nixFile="$(nix-instantiate --eval --strict -A 'awk-language-server.meta.position' \
| sed -re 's/^"(.*):[0-9]+"$/\1/')"
nixFileDir="$(dirname "$nixFile")"
cp --force --no-preserve=mode "$newSrc"/{yarn.lock,package.json} "$nixFileDir/"
# update offlineCache hash
oldCacheSriHash="$(nix-instantiate --eval --strict \
-A 'awk-language-server.offlineCache.drvAttrs.outputHash')"
newCacheHash="$(prefetch-yarn-deps "$nixFileDir/yarn.lock")"
newCacheSriHash="$(nix-hash --to-sri --type sha256 "$newCacheHash")"
sed -i "s|$oldCacheSriHash|\"$newCacheSriHash\"|" "$nixFile"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -19,13 +19,13 @@ let
in
buildBazelPackage rec {
pname = "bant";
version = "0.1.8";
version = "0.1.9";
src = fetchFromGitHub {
owner = "hzeller";
repo = "bant";
rev = "v${version}";
hash = "sha256-CMqh2v6Y/jvrDC2M4Q+pC0FkNJ95gbGTR1UC6zviwV4=";
hash = "sha256-TIVbf5qZNohZAFugi/E7m1Sgekn82/qqtx8jSHo75Js=";
};
bazelFlags = [
@@ -40,8 +40,8 @@ buildBazelPackage rec {
fetchAttrs = {
hash =
{
aarch64-linux = "sha256-2QMg/Ko3HgqKhI2g4PZ+UWOujDACLZHxyec1zAm58yg=";
x86_64-linux = "sha256-SfQ6dlC+JVYXIpuvMNyQJkY6+zq8Md2+LsiRstJWMdY=";
aarch64-linux = "sha256-8pLgn67kwVNdqhUXYsdi7OsArCZZmW55UPzUBlIyBbk=";
x86_64-linux = "sha256-dUNdvSJA3SlIIRWmhaq3Hu0+84mBBhxbU/eBDXIv/iI=";
}
.${system} or (throw "No hash for system: ${system}");
};
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "bbctl";
version = "0.12.2";
version = "0.13.0";
src = fetchFromGitHub {
owner = "beeper";
repo = "bridge-manager";
rev = "refs/tags/v${version}";
hash = "sha256-Q8RgfkPw8KPkfORaPCwM18rNhzNm4UcH4hSdfYe4FZo=";
hash = "sha256-bNnansZNshWp70LQQsa6+bS+LJxpCzdTkL2pX+ksrP0=";
};
vendorHash = "sha256-uz4pao8Y/Sb3fffi9d0lbWQEUMohbthA6t6k6PfQz2M=";
vendorHash = "sha256-yTNUxwnulQ+WbHdQbeNDghH4RPXurQMIgKDyXfrMxG8=";
meta = {
description = "Tool for running self-hosted bridges with the Beeper Matrix server.";
+59
View File
@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
autoconf,
pkg-config,
libz,
bzip2,
xz,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bio-gappa";
version = "0.8.4";
src = fetchFromGitHub {
owner = "lczech";
repo = "gappa";
rev = "v${finalAttrs.version}";
hash = "sha256-VAp9e5Cu3tTeWSOTZ8kPG1eOyocYZiJsy/s+MWbCMLI=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
pkg-config
autoconf
];
buildInputs = [
libz
bzip2
xz
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 ../bin/gappa $out/bin/gappa
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/lczech/gappa";
description = "Toolkit for analyzing and visualizing phylogenetic (placement) data";
longDescription = ''
gappa is a collection of commands for working with phylogenetic data. Its
main focus are evolutionary placements of short environmental sequences
on a reference phylogenetic tree. Such data are typically produced by
tools such as EPA-ng, RAxML-EPA or pplacer, and usually stored in jplace
files.
'';
platforms = platforms.all;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ bzizou ];
mainProgram = "gappa";
};
})
+3 -3
View File
@@ -1,6 +1,6 @@
{
lib,
gccStdenv,
stdenv,
fetchFromGitHub,
bison,
flex,
@@ -9,7 +9,7 @@
ncurses,
}:
gccStdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "boxes";
version = "2.3.1";
@@ -43,7 +43,7 @@ gccStdenv.mkDerivation rec {
"GLOBALCONF=${placeholder "out"}/share/boxes/boxes-config"
'';
makeFlags = [ "CC=${gccStdenv.cc.targetPrefix}cc" ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installPhase = ''
install -Dm755 -t $out/bin out/boxes
@@ -36,6 +36,8 @@ rustPlatform.buildRustPackage rec {
"--bins"
"--lib" # Integration tests require root.
"--exclude"
"hypervisor" # /dev/kvm
"--exclude"
"net_util" # /dev/net/tun
"--exclude"
"vmm" # /dev/kvm
@@ -8,7 +8,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cosmic-wallpapers";
version = "1.0.0-alpha.3";
version = "1.0.0-alpha.4";
src = fetchFromGitHub {
owner = "pop-os";
+16 -3
View File
@@ -1,6 +1,8 @@
{
bash,
buildNpmPackage,
fetchFromGitHub,
fetchpatch,
fetchurl,
lib,
makeBinaryWrapper,
@@ -56,8 +58,8 @@ let
}
{
subdir = "v7";
rev = "9d8b914a";
hash = "sha256-M+rPJ/Xo2olhqB5ViynGRaesMLLfG/1ltUoLnepMPnM=";
rev = "e1267803";
hash = "sha256-iIds0GnCHAyeIEdSD4aCCgDtnnwARh3NE470CywseS0=";
}
];
@@ -90,12 +92,19 @@ buildNpmPackage {
makeBinaryWrapper
rdfind
unzip
bash
];
patches = [
# fix httpSafePort setting
# https://github.com/cryptpad/cryptpad/pull/1571
./0001-env.js-fix-httpSafePort-handling.patch
# https://github.com/cryptpad/cryptpad/pull/1740
(fetchpatch {
name = "Add `--check`, `--rdfind`, `--no-rdfind` options to `install-onlyoffice.sh`";
url = "https://github.com/cryptpad/cryptpad/commit/f38668735e777895db2eadd3413cff386fb12c0c.patch";
hash = "sha256-J4AK1XIa3q+/lD74p2c9O7jt0VEtofTmfAaQNU71sp8=";
})
];
# cryptpad build tries to write in cache dir
@@ -121,7 +130,11 @@ buildNpmPackage {
mkdir -p "$out_cryptpad/www/common/onlyoffice/dist"
${lib.concatMapStringsSep "\n" onlyoffice_install onlyoffice_versions}
${x2t_install}
rdfind -makehardlinks true -makeresultsfile false "$out_cryptpad/www/common/onlyoffice/dist"
# Run upstream's `install-onlyoffice.sh` script in `--check` mode to
# verify that we've installed the correct versions of the various
# OnlyOffice components.
patchShebangs --build $out_cryptpad/install-onlyoffice.sh
$out_cryptpad/install-onlyoffice.sh --accept-license --check --rdfind
# cryptpad assumes it runs in the source directory and also outputs
# its state files there, which is not exactly great for us.
@@ -0,0 +1,152 @@
{
SDL2,
cmake,
fetchFromGitHub,
glm,
lib,
runCommand,
stdenv,
unstableGitUpdater,
writeShellScript,
zlib,
}:
stdenv.mkDerivation rec {
pname = "descent3-unwrapped";
# Im using an unstable version here because we need to use -additionaldir in
# the wrapped version of Descent 3. Once theres a stable version of Descent
# 3 that supports the -additionaldir command-line option, we can stop using
# an unstable version of Descent 3.
version = "1.5.0-beta-unstable-2024-10-29";
src = fetchFromGitHub {
owner = "DescentDevelopers";
repo = "Descent3";
rev = "d51ce964c7a925333ea64f00cf8d9ae15ee63a6b";
fetchSubmodules = true;
leaveDotGit = true;
# Descent 3 is supposed to display its Git commit hash in the bottom right
# corner of the main menu. That feature only works if either the .git
# directory or a git-hash.txt file exists at build time. We dont want .git
# to exist at build time (see #8567), so we create a git-hash.txt file and
# then delete the .git directory.
#
# Technically, we could simplify the code by reading the value of src.rev.
# src.rev contains a Git commit hash at the moment, but it wont contain a
# Git commit hash in the future when we switch to a stable version of
# Descent 3.
#
# Upstream expects git-hash.txt to contain a short commit hash, but Ive
# decided to use a full commit hash. Full commit hashes are more
# reproducible. The short hash “1234” might correspond to one commit today,
# but correspond to two commits tomorrow. Full commit hashes dont have
# that problem.
#
# Also, upstream expects git-hash.txt to contain no newlines. If
# git-hash.txt contains a newline, then Descent 3 will fail to build.
postFetch = ''
cd "$out"
git rev-parse --verify HEAD | tr --delete '\n' > git-hash.txt
rm -r .git
'';
hash = "sha256-C6r06cntQ14jPFO9EUzLisZjsl22cIaJb8I7xFzXrNc=";
};
hardeningDisable = [ "format" ];
nativeBuildInputs = [ cmake ];
buildInputs = [
SDL2
glm
zlib
];
cmakeFlags = [ "-DFORCE_PORTABLE_INSTALL=OFF" ];
# This is a workaround for a problem that will eventually get fixed upstream.
postInstall = ''
cd "$out"
mv lib/* share/
rmdir lib
'';
passthru = {
# The idea here is to make sure that we dont forget to update meta.license
# when reviewing a pull request from @r-ryantm.
tests.licenseInfoIsUpToDate = runCommand "${pname}-license-info-is-up-to-date" { } ''
function on_success {
echo Test succeeded. > "$out"
}
function on_failure {
echo \
It looks like at least one of Descent 3s licensing-related files \
changed. Before you continue to update this package, you should \
check to see if meta.license needs to be updated. Once youve done \
that, you can update the hashes in the \
passthru.tests.licenseInfoIsUpToDate script and then try running the \
package tests again. >&2
return 1
}
cd ${lib.strings.escapeShellArg src}
sha256sum --check << EOF && on_success || on_failure
8b1ba204bb69a0ade2bfcf65ef294a920f6bb361b317dba43c7ef29d96332b9b LICENSE
55d65dbf5d785111cf7029941cb7f72dbef084509e6126bcc58b6bb20203f8c6 THIRD_PARTY.md
EOF
'';
updateScript = unstableGitUpdater {
shallowClone = false;
# unstableGitUpdater assumes that the version number should be 0 if there
# isnt any tags in the repos default branch. For most packages, that is
# the correct decision, but for Descent 3 its not. Descent 3s source
# code lived in private repos until 2024. In 2024, a new public repo was
# created [1], but the old commit history wasnt imported into the new
# repo. Version 1.5.0-beta from 2005 [2] was the last release that was
# created from one of the private repos.*
#
# *Technically, there was one release that came after the 2005 one. There
# was a Linux version and a macOS version of Descent 3 that were released
# on Steam in 2020 [3][4][5]. Those versions dont count because they
# havent been fully merged into the public repo yet [6].
#
# [1]: <https://github.com/DescentDevelopers/Descent3/commit/637df31ca1e47371fb8ca822f928734c13afd8cf>
# [2]: <http://descent3.com/downloads.php>
# [3]: <https://www.patreon.com/posts/project-descent-33611585>
# [4]: <https://steamdb.info/depot/273592>
# [5]: <https://steamdb.info/depot/273593>
# [6]: <https://github.com/DescentDevelopers/Descent3/issues/240>
tagConverter = writeShellScript "${pname}-tag-converter.sh" ''
read -r input_tag
if [ "$input_tag" = 0 ]
then
printf '%s' 1.5.0-beta
else
printf '%s' "$input_tag"
fi
'';
};
};
meta = {
description = "Game engine for a 6DOF first-person shooter";
homepage = "https://github.com/DescentDevelopers/Descent3";
license = with lib.licenses; [
# See LICENSE and header thats at the top of many source files.
gpl3Plus
# See THIRD_PARTY.md.
isc
mit
];
mainProgram = "Descent3";
maintainers = [ lib.maintainers.jayman2000 ];
platforms = lib.platforms.all;
badPlatforms = [
# Descent 3 stores modules in HOG2 archives. It extracts those modules
# and then tries to dlopen() them at runtime.
lib.systems.inspect.platformPatterns.isStatic
# When you build Descent 3 on Darwin, it produces a different directory
# structure (no bin/ directory) [1]. Im sure that this derivation could be
# updated to account for that different directory structure, but I dont
# have any Darwin systems to test things on at the moment.
#
# [1]: <https://logs.ofborg.org/?key=nixos/nixpkgs.355710&attempt_id=747dd630-5068-4ba9-9c50-6f150634ef1a>
] ++ lib.platforms.darwin;
};
}
+60
View File
@@ -0,0 +1,60 @@
{
descent3-unwrapped,
lib,
makeBinaryWrapper,
runCommand,
}:
runCommand "descent3-${descent3-unwrapped.version}"
{
pname = "descent3";
inherit (descent3-unwrapped) version;
nativeBuildInputs = [ makeBinaryWrapper ];
passthru.unwrapped = descent3-unwrapped;
meta = descent3-unwrapped.meta // {
# The code that produces the wrapper is in the Nixpkgs repo, and the
# Nixpkgs repo is MIT Licensed.
license = [ lib.licenses.mit ];
longDescription = ''
Playing Descent 3 using the Nix package manager is a little bit awkward
at the moment. This wrapper makes it slightly less awkward. Heres how
you use this wrapper:
1. Install the `descent3` package, or start an ephemeral shell with the
`descent3` package.
2. Find the documentation folder for `descent3-unwrapped` by running this
command:
```bash
nix-instantiate --eval --expr '(import <nixpkgs> { }).descent3-unwrapped + "/share/doc/Descent3"'
```
3. Open `<descent3-unwrapped-doc-folder>/USAGE.md`.
4. Follow steps 16 of Descent 3s usage instructions.
5. Change directory into the `D3-open-source` folder:
```bash
cd <path-to-D3-open-source>
```
6. Start Descent 3 by running this command:
```bash
Descent3
```
'';
};
}
''
mkdir --parents "$out/bin"
descent3_unwrapped=${lib.strings.escapeShellArg descent3-unwrapped}
makeBinaryWrapper \
"$descent3_unwrapped/bin/Descent3" \
"$out/bin/Descent3" \
--append-flags -additionaldir \
--append-flags "$descent3_unwrapped/share"
''
+2 -2
View File
@@ -9,14 +9,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dita-ot";
version = "4.2.3";
version = "4.2.4";
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ openjdk17 ];
src = fetchzip {
url = "https://github.com/dita-ot/dita-ot/releases/download/${finalAttrs.version}/dita-ot-${finalAttrs.version}.zip";
hash = "sha256-siHz81OuKVF77NsDpldAhq7YxzBFvo9RwGPe/mqkquQ=";
hash = "sha256-XAuqW4crJldkVJaW/tF7m/nnpV86z78d456/1hwLdU0=";
};
installPhase = ''
+3 -3
View File
@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "eask-cli";
version = "0.10.1";
version = "0.10.2";
src = fetchFromGitHub {
owner = "emacs-eask";
repo = "cli";
rev = version;
hash = "sha256-FgmeAsqbnlw7yOMslAJnZWuG3nDDjcXlS2pI3X9x1PA=";
hash = "sha256-G6bJoNKEz0Lpp3vfJJ86r942dWdMhQLJn10YXjUKJtI=";
};
npmDepsHash = "sha256-IgL58W4j3xbtVpGz316DpnYPyZD5dmDvg7Z1Irr3jig=";
npmDepsHash = "sha256-xZBnjhLHceLvYD9uPz5G9EupBBUAkBghxo5au0GxdWg=";
dontBuild = true;
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "frp";
version = "0.61.0";
version = "0.61.1";
src = fetchFromGitHub {
owner = "fatedier";
repo = pname;
rev = "v${version}";
hash = "sha256-ZanHYU7UEPsI/KAygxcTszUB4emnrrqxiuuLsCVk+cM=";
hash = "sha256-HPhT+crjQELQMDpBywWy+POplKxfLrHCAWkTRRhogqA=";
};
vendorHash = "sha256-ySONxi45Ckq0y4BNyTcm8s6KcnXW+k6thqL7qh6mbBc=";
vendorHash = "sha256-Pwa5idGOn1kTxhouxYwNlKafYU541/rQolm+2CJnLo4=";
doCheck = false;
@@ -5,11 +5,11 @@
}:
let
pname = "handheld-daemon-ui";
version = "3.3.0";
version = "3.3.5";
src = fetchurl {
url = "https://github.com/hhd-dev/hhd-ui/releases/download/v${version}/hhd-ui.Appimage";
hash = "sha256-Fc2MwZoy1CKiWvh/Z1P0OnfkyWy4aT6I1aIY8gEf69U=";
hash = "sha256-g8LB24WxpbsGDFHRI0c80m9XXZghKYiRyuRRoYvb34g=";
};
extractedFiles = appimageTools.extractType2 { inherit pname version src; };
in
+2
View File
@@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'hexapdf'
+19
View File
@@ -0,0 +1,19 @@
GEM
remote: https://rubygems.org/
specs:
cmdparse (3.0.7)
geom2d (0.4.1)
hexapdf (1.0.2)
cmdparse (~> 3.0, >= 3.0.3)
geom2d (~> 0.4, >= 0.4.1)
openssl (>= 2.2.1)
openssl (3.2.0)
PLATFORMS
ruby
DEPENDENCIES
hexapdf
BUNDLED WITH
2.5.9
+47
View File
@@ -0,0 +1,47 @@
{
cmdparse = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0f87jny4zk21iyrkyyw4kpnq8ymrwjay02ipagwapimy237cmigp";
type = "gem";
};
version = "3.0.7";
};
geom2d = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1nafcfznjqycxd062cais64ydgl99xddh4zy4hp7bwn4j3m9h2ga";
type = "gem";
};
version = "0.4.1";
};
hexapdf = {
dependencies = [
"cmdparse"
"geom2d"
"openssl"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "13dbscnf7c3jlghlkgl01b7hzgx2ps26m57qmhyv5g626n342i4c";
type = "gem";
};
version = "1.0.2";
};
openssl = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
type = "gem";
};
version = "3.2.0";
};
}
+26
View File
@@ -0,0 +1,26 @@
{
lib,
bundlerApp,
bundlerUpdateScript,
ruby,
}:
bundlerApp {
pname = "hexapdf";
exes = [ "hexapdf" ];
inherit ruby;
gemdir = ./.;
passthru.updateScript = bundlerUpdateScript "hexapdf";
meta = with lib; {
description = "Versatile PDF creation and manipulation library";
homepage = "https://hexapdf.gettalong.org/";
changelog = "https://github.com/gettalong/hexapdf/blob/master/CHANGELOG.md";
license = licenses.agpl3Only;
maintainers = with maintainers; [ bbenno ];
platforms = platforms.unix;
mainProgram = "hexapdf";
};
}
+2 -2
View File
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "htslib";
version = "1.19.1";
version = "1.21";
src = fetchurl {
url = "https://github.com/samtools/htslib/releases/download/${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-Ii1001dPtnsVjGmIyYDuqrqKBlb15P+3a1+lfwNZM+w=";
sha256 = "sha256-hLUQ5zX0ljZB8m/YjIq97oH/TLYhaDEK5xZjaqwPGCM=";
};
# perl is only used during the check phase.
+14 -5
View File
@@ -50,9 +50,15 @@ let
# The geodata website is not versioned, so we use the internet archive
geodata =
let
inherit (sources.components.geonames) timestamp;
date =
"${lib.substring 0 4 timestamp}-${lib.substring 4 2 timestamp}-${lib.substring 6 2 timestamp}T"
+ "${lib.substring 8 2 timestamp}:${lib.substring 10 2 timestamp}:${lib.substring 12 2 timestamp}Z";
in
runCommand "immich-geodata"
{
outputHash = "sha256-imqSfzXaEMNo9T9tZr80sr/89n19kiFc8qwidFzRUaY=";
outputHash = sources.components.geonames.hash;
outputHashMode = "recursive";
nativeBuildInputs = [
cacert
@@ -64,15 +70,15 @@ let
}
''
mkdir $out
url="https://web.archive.org/web/20240724153050/http://download.geonames.org/export/dump"
url="https://web.archive.org/web/${timestamp}/http://download.geonames.org/export/dump"
curl -Lo ./cities500.zip "$url/cities500.zip"
curl -Lo $out/admin1CodesASCII.txt "$url/admin1CodesASCII.txt"
curl -Lo $out/admin2Codes.txt "$url/admin2Codes.txt"
curl -Lo $out/ne_10m_admin_0_countries.geojson \
https://raw.githubusercontent.com/nvkelso/natural-earth-vector/ca96624a56bd078437bca8184e78163e5039ad19/geojson/ne_10m_admin_0_countries.geojson
https://github.com/nvkelso/natural-earth-vector/raw/ca96624a56bd078437bca8184e78163e5039ad19/geojson/ne_10m_admin_0_countries.geojson
unzip ./cities500.zip -d $out/
echo "2024-07-24T15:30:50Z" > $out/geodata-date.txt
echo "${date}" > $out/geodata-date.txt
'';
src = fetchFromGitHub {
@@ -241,7 +247,10 @@ buildNpmPackage' {
meta = {
description = "Self-hosted photo and video backup solution";
homepage = "https://immich.app/";
license = lib.licenses.agpl3Only;
license = with lib.licenses; [
agpl3Only
cc-by-40 # geonames
];
maintainers = with lib.maintainers; [
dotlambda
jvanbruegge
+4
View File
@@ -17,6 +17,10 @@
"open-api/typescript-sdk": {
"npmDepsHash": "sha256-GtqS59I+By1u6WcR+lDj2HKXVwh7jw5/N6MRdUctlaM=",
"version": "1.122.3"
},
"geonames": {
"timestamp": "20241215052013",
"hash": "sha256-Gv85Y5KAkeqNU8iMMKwepI5o14Z0s5aQbLJVxhtjY14="
}
}
}
+20 -2
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq prefetch-npm-deps nix-prefetch-github coreutils
#!nix-shell -i bash -p curl jq prefetch-npm-deps nix-prefetch-github coreutils ripgrep
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
@@ -39,6 +39,24 @@ for npm_component in cli server web "open-api/typescript-sdk"; do
'.components += {($npm_component): {npmDepsHash: $hash, version: $version}}' \
"$sources_tmp")" > "$sources_tmp"
done
rm "$lock"
url="http://download.geonames.org/export/dump"
curl -s "http://web.archive.org/save/$url/cities500.zip"
curl -s "http://web.archive.org/save/$url/admin1CodesASCII.txt"
curl -s "http://web.archive.org/save/$url/admin1Codes.txt"
timestamp=$(curl -s \
"http://archive.org/wayback/available?url=$url/cities500.zip" \
| jq -r ".archived_snapshots.closest.timestamp")
echo "$(jq --arg timestamp "$timestamp" --arg hash "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" \
'.components += {geonames: {timestamp: $timestamp, hash: $hash}}' \
"$sources_tmp")" > "$sources_tmp"
cp "$sources_tmp" sources.json
set +o pipefail
output="$(nix-build ../../../.. -A immich.geodata 2>&1 || true)"
set -o pipefail
hash=$(echo "$output" | rg 'got:\s+(sha256-.*)$' -or '$1')
echo "$(jq --arg hash "$hash" '.components.geonames.hash = $hash' "$sources_tmp")" > "$sources_tmp"
mv "$sources_tmp" sources.json
@@ -6,13 +6,13 @@
}:
buildGoModule rec {
pname = "infrastructure-agent";
version = "1.58.0";
version = "1.58.1";
src = fetchFromGitHub {
owner = "newrelic";
repo = "infrastructure-agent";
rev = version;
hash = "sha256-L2er3DJ9zZb8AosHwOdNEsvQc7XPwQfGaa8d72iJOik=";
hash = "sha256-ckGouBmpjsS3qcTw3Br3N/uJf7KgowUyawr2bPsMJ5I=";
};
vendorHash = "sha256-0WLL15CXRi/flp4EV3Qt0wO1VaUmAokzsChpiqjs+YQ=";
+2 -2
View File
@@ -5,7 +5,7 @@
}:
let
version = "7.0.2-7";
version = "7.0.2-8";
in
(ffmpeg_7-full.override {
@@ -14,7 +14,7 @@ in
owner = "jellyfin";
repo = "jellyfin-ffmpeg";
rev = "v${version}";
hash = "sha256-l1oCilqWE3NpSzrNHAepglL3BHXZ2yxcQfupFJ3zwvg=";
hash = "sha256-gpbMVVMV1ywbSb6A3IGFS/vnBk9EXTNzaW1r8Ygo1RY=";
};
}).overrideAttrs (old: {
pname = "jellyfin-ffmpeg";
+37
View File
@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchurl,
unzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "lilex";
version = "2.530";
src = fetchurl {
url = "https://github.com/mishamyrt/Lilex/releases/download/${version}/Lilex.zip";
hash = "sha256-sBn8DaXj7OXHNaoEAhjTuMmUVUbS0zNZi1h7EjembEo=";
};
nativeBuildInputs = [ unzip ];
unpackPhase = ''
runHook preUnpack
unzip $src
runHook postUnpack
'';
installPhase = ''
runHook preInstall
find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} +
runHook postInstall
'';
meta = with lib; {
description = "Open source programming font";
homepage = "https://github.com/mishamyrt/Lilex";
license = licenses.ofl;
maintainers = with maintainers; [ redyf ];
platforms = platforms.all;
};
}
+5
View File
@@ -46,6 +46,11 @@ stdenv.mkDerivation rec {
# Add a workaround for linux-headers-5.18 until upstream adapts:
# https://sourceforge.net/p/lirc/git/merge-requests/45/
./linux-headers-5.18.patch
# remove check for `Ubuntu` in /proc/version which will override
# --with-systemdsystemunitdir
# https://sourceforge.net/p/lirc/tickets/385/
./ubuntu.diff
];
postPatch = ''
+22
View File
@@ -0,0 +1,22 @@
diff --git a/configure.ac b/configure.ac
index d28c673..1cd0548 100644
--- a/configure.ac
+++ b/configure.ac
@@ -434,16 +434,7 @@ AC_CHECK_LIB([udev], [udev_device_new_from_device_id], [
LIBS="$LIBS $LIBUDEV_LIBS"
])
-dnl Ubuntu's systemd pkg-config seems broken beyond repair. So:
-kernelversion=`cat /proc/version || echo "non-linux"`
-AS_CASE([$kernelversion],
- [*Ubuntu*],[
- AC_MSG_NOTICE([Hardwiring Ubuntu systemd setup])
- AC_SUBST([systemdsystemunitdir], [/lib/systemd/system])
- AM_CONDITIONAL([WITH_SYSTEMDSYSTEMUNITDIR], [true])
- ],[*],[
- SYSTEMD_SYSTEMUNITDIR
-])
+SYSTEMD_SYSTEMUNITDIR
AC_ARG_WITH(lockdir,
[ --with-lockdir=DIR Old-school device lock files in DIR (/var/lock{/lockdev})],
+2 -2
View File
@@ -8,7 +8,7 @@
buildGoModule rec {
pname = "litmusctl";
version = "1.12.0";
version = "1.13.0";
nativeBuildInputs = [
installShellFiles
@@ -22,7 +22,7 @@ buildGoModule rec {
owner = "litmuschaos";
repo = "litmusctl";
rev = "${version}";
hash = "sha256-pqkUaR/r9GKvTt8hEjqgSuEcNuSeRE+rtlj47uS5/dY=";
hash = "sha256-lPdejdnBefhYgv52I7BOm1VTgqHSp8u1lgJJxK5GWSA=";
};
vendorHash = "sha256-7FYOQ89aUFPX+5NCPYKg+YGCXstQ6j9DK4V2mCgklu0=";
@@ -17,11 +17,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "logisim-evolution";
version = "3.8.0";
version = "3.9.0";
src = fetchurl {
url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${finalAttrs.version}/logisim-evolution-${finalAttrs.version}-all.jar";
hash = "sha256-TFm+fa3CMp0OMhnKBc6cLIWGQbIG/OpOOCG7ea7wbCw=";
hash = "sha256-QxU1h6LKzWy25wtXgEufPT0KsIsLhrKnq9CRcS4Mlzc=";
};
dontUnpack = true;
+16 -9
View File
@@ -1,18 +1,25 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
{
fetchurl,
lib,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "matio";
version = "1.5.27";
version = "1.5.28";
src = fetchurl {
url = "mirror://sourceforge/matio/${pname}-${version}.tar.gz";
sha256 = "sha256-CmqgCxjEUStjqNJ5BrB5yMbtQdSyhE96SuWY4Y0i07M=";
url = "mirror://sourceforge/matio/matio-${finalAttrs.version}.tar.gz";
hash = "sha256-naaYk0ohVprwWOY0hWRmb0UCnmwrCHjKDY+WCb93uNg=";
};
meta = with lib; {
meta = {
changelog = "https://sourceforge.net/p/matio/news/";
description = "C library for reading and writing Matlab MAT files";
homepage = "http://matio.sourceforge.net/";
license = licenses.bsd2;
license = lib.licenses.bsd2;
maintainers = [ ];
mainProgram = "matdump";
platforms = platforms.all;
platforms = lib.platforms.all;
};
}
})
+2 -2
View File
@@ -20,7 +20,7 @@
stdenv.mkDerivation rec {
pname = "nfs-ganesha";
version = "6.3";
version = "6.4";
outputs = [
"out"
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
owner = "nfs-ganesha";
repo = "nfs-ganesha";
rev = "V${version}";
hash = "sha256-4gPhmBC42uCcaEhdJj9ZWw4ECB9UYwP+c2ndBFbBK0k=";
hash = "sha256-iT/6p4T4xrGsK2zBs5TDfEIhcCwNfUalQFLlCOODp24=";
};
preConfigure = "cd src";
+2 -2
View File
@@ -5,13 +5,13 @@
}:
buildGoModule rec {
pname = "nom";
version = "2.6.1";
version = "2.6.2";
src = fetchFromGitHub {
owner = "guyfedwards";
repo = "nom";
rev = "v${version}";
hash = "sha256-V4ppqHQjPkkRKHkDHzEr05vOyv3BhiLnYxEftIn08XU=";
hash = "sha256-oaManxhksEBwbe1jmkRmOJMhYFiulGTVCuto4RMznvg=";
};
vendorHash = "sha256-xolhwdWRjYZMgwI4jq0fGzvxnNjx6EplvZC7XMvBw+M=";
@@ -5,23 +5,24 @@
stdenvNoCC.mkDerivation rec {
pname = "nordzy-cursor-theme";
version = "0.6.0";
version = "2.3.0";
src = fetchFromGitHub {
owner = "alvatip";
owner = "guillaumeboehm";
repo = "Nordzy-cursors";
rev = "v${version}";
sha256 = "sha256-q9PEEyxejRQ8UCwbqsfOCL7M70pLCOLyCx8gEFmZkWA=";
sha256 = "sha256-3HUSl0CQcay4V9pO35cmOEZvrgNOJ3WNZahs+hJjUJU=";
};
installPhase = ''
mkdir -p $out/share/icons
cp -r Nordzy-cursors{,-white,-lefthand} $out/share/icons
cp -r xcursors/* $out/share/icons
cp -r hyprcursors/themes/* $out/share/icons
'';
meta = with lib; {
description = "Cursor theme using the Nord color palette and based on Vimix and cz-Viator";
homepage = "https://github.com/alvatip/Nordzy-cursors";
homepage = "https://github.com/guillaumeboehm/Nordzy-cursors";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "nova-password";
version = "0.5.7";
version = "0.5.8";
src = fetchFromGitHub {
owner = "sapcc";
repo = "nova-password";
rev = "refs/tags/v${version}";
hash = "sha256-tjjP+LmYaqpzmTk3tgFqZlG1KEeAkfI7RxzSm97jWVU=";
hash = "sha256-+qFbBjjbp1Nazpo21oOytvEPzn6Nmc4Cr8du045Ab/E=";
};
vendorHash = "sha256-MwemuOaXGl0eF+lVtMCgbBeJGILmaeEHcbu+xp8Lm70=";
vendorHash = "sha256-tRBWniPM/IPR/JKi7R46tnx9rgyCb5hOkOR1oy7iVcc=";
meta = {
description = "Decrypt the admin password generated for the VM in OpenStack";
-2422
View File
File diff suppressed because it is too large Load Diff
+2 -8
View File
@@ -20,14 +20,8 @@ rustPlatform.buildRustPackage rec {
hash = "sha256-05dNBzf1f92bVNLbRaUB6KUae+wY3V8mUxDgAb+g1T4=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"alvr_common-20.11.1" = "sha256-d4KldPii8W1HcfnMSD8Fn+IGO/a3r8747APPjRCnbe8=";
"openxr-0.19.0" = "sha256-kbEYoN4UvUEaZA9LJWEKx1X1r+l91GjTWs1hNXhr7cw=";
"settings-schema-0.2.0" = "sha256-luEdAKDTq76dMeo5kA+QDTHpRMFUg3n0qvyQ7DkId0k=";
};
};
useFetchCargoVendor = true;
cargoHash = "sha256-fw26EbdCnz7KtDmCDpvfy4fjYORL2KcnhzQBJDdNEuI=";
nativeBuildInputs = [
pkg-config
+48
View File
@@ -0,0 +1,48 @@
{
blas,
boost,
cmake,
fetchFromGitHub,
gfortran12,
lib,
stdenv,
tbb,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "papilo";
version = "2.3.0";
src = fetchFromGitHub {
owner = "scipopt";
repo = "papilo";
rev = "v${finalAttrs.version}";
hash = "sha256-rB8kRyBxd+zn3XFueTQoN16jbFpXMvneqatQm8Hh2Hg=";
};
buildInputs = [
blas
boost
cmake
gfortran12
zlib
];
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = [ tbb ];
strictDeps = true;
doCheck = true;
meta = {
homepage = "https://scipopt.org/";
description = "Parallel Presolve for Integer and Linear Optimization";
license = with lib.licenses; [ lgpl3Plus ];
mainProgram = "papilo";
maintainers = with lib.maintainers; [ david-r-cox ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
qt5,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "penguin-subtitle-player";
version = "1.6.0";
src = fetchFromGitHub {
owner = "carsonip";
repo = "Penguin-Subtitle-Player";
rev = "v${finalAttrs.version}";
hash = "sha256-AhdShg/eWqF44W1r+KmcHzbGKF2TNSD/wPKj+x4oQkM=";
fetchSubmodules = true;
};
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
buildInputs = [ qt5.qmake ];
meta = {
description = "Open-source, cross-platform and standalone subtitle player";
homepage = "https://github.com/carsonip/Penguin-Subtitle-Player";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ eljamm ];
platforms = lib.platforms.all;
mainProgram = "PenguinSubtitlePlayer";
};
})
+2 -2
View File
@@ -21,13 +21,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "pmix";
version = "5.0.4";
version = "5.0.5";
src = fetchFromGitHub {
repo = "openpmix";
owner = "openpmix";
rev = "v${finalAttrs.version}";
hash = "sha256-QsJm+4GnV5qrXVG3AwQxWas51AHcqycKjTpSG2/oOGU=";
hash = "sha256-iyvD6uR+kHAs5uLD3NPBVSQUslAsH40dwtszhAsJvqw=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "prrte";
version = "3.0.7";
version = "3.0.8";
src = fetchFromGitHub {
owner = "openpmix";
repo = "prrte";
rev = "v${version}";
hash = "sha256-Jw9/M2rpGTA19qssDaZV+9FYlIvz8wgL5oUDdWwidHI=";
hash = "sha256-4Xc6We0mXpKCwfHlmqi+WbFjdQegWHGzWrEnMVqkqtU=";
fetchSubmodules = true;
};
+4 -4
View File
@@ -14,17 +14,17 @@
rustPlatform.buildRustPackage rec {
pname = "pylyzer";
version = "0.0.73";
version = "0.0.74";
src = fetchFromGitHub {
owner = "mtshiba";
repo = "pylyzer";
tag = "v${version}";
hash = "sha256-rpF0xrk1PvgfJ0EOHWnCuSWfzLVzXErnKizbvFBP+pg=";
hash = "sha256-NVCFwISPRTNgs4hn9ezp2Xb4r7xytziIByVSKyqt/lo=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-pU230ghfHsJEcADoZH8/yP+fYDv21FPlwA0//SvHJWY=";
cargoHash = "sha256-mNFRP6mT4mKKKg05nJcdd8qy6YFxWVADHIU9uGrEcng=";
nativeBuildInputs = [
git
@@ -76,7 +76,7 @@ rustPlatform.buildRustPackage rec {
meta = {
description = "Fast static code analyzer & language server for Python";
homepage = "https://github.com/mtshiba/pylyzer";
changelog = "https://github.com/mtshiba/pylyzer/releases/tag/v${version}";
changelog = "https://github.com/mtshiba/pylyzer/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
mainProgram = "pylyzer";
+1 -1
View File
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
];
passthru = {
updateScript = unstableGitUpdater { rev-prefix = "v"; };
updateScript = unstableGitUpdater { tagPrefix = "v"; };
tests = {
inherit (nixosTests) rtorrent;
};
+3 -3
View File
@@ -5,14 +5,14 @@
}:
rustPlatform.buildRustPackage rec {
pname = "stylance-cli";
version = "0.5.2";
version = "0.5.3";
src = fetchCrate {
inherit pname version;
hash = "sha256-2RLdO2TxIa/ngji5tzKzSfpq2qErI7gaQqObDTMrd/g=";
hash = "sha256-YN7Y8dxwpZel1SeEgyckh4ZPuRqcAsNvc/fGRgvzeDw=";
};
cargoHash = "sha256-26EKLvqc9x7JT6EDkH9KbQJ+xX/CUslLmEF4XxnPbFY=";
cargoHash = "sha256-VKfQzsTTKIbh+X0suXyUXDsd8sDSRsc5SnO8qxcxGPQ=";
meta = with lib; {
description = "Library and cli tool for working with scoped CSS in rust";
+16
View File
@@ -0,0 +1,16 @@
Index: tcptrace-6.6.1/Makefile.in
===================================================================
--- tcptrace-6.6.1.orig/Makefile.in
--- tcptrace-6.6.1/Makefile.in
@@ -286,9 +286,9 @@
# just a quick installation rule
INSTALL = ./install-sh -c
install: tcptrace install-man
- $(INSTALL) -m 755 -o bin -g bin tcptrace ${BINDIR}/tcptrace
+ $(INSTALL) -m 755 tcptrace ${BINDIR}/tcptrace
install-man:
- $(INSTALL) -m 444 -o bin -g bin tcptrace.man $(MANDIR)/man1/tcptrace.1
+ $(INSTALL) -m 444 tcptrace.man $(MANDIR)/man1/tcptrace.1
+54
View File
@@ -0,0 +1,54 @@
{
stdenv,
fetchurl,
lib,
libpcap,
}:
stdenv.mkDerivation (final: {
name = "tcptrace";
version = "6.6.7";
srcs = [
(fetchurl {
# Home page was down on 2024-02-01, so use Debian mirror as fallback.
urls = [
"http://www.tcptrace.org/download/tcptrace-${final.version}.tar.gz"
"mirror://debian/pool/main/t/tcptrace/tcptrace_${final.version}.orig.tar.gz"
];
hash = "sha256-YzgKQFGTPKCJeUdqnfxvlZMIvJ9g1FJVIC44jrVpEL0=";
})
(fetchurl {
url = "mirror://debian/pool/main/t/tcptrace/tcptrace_6.6.7-6.debian.tar.xz";
hash = "sha256-8rkwzdXcDOc3kACvrlyTQsnSw6AJgy6xA0YrECu63gY=";
})
];
sourceRoot = "tcptrace-${final.version}";
outputs = [
"out"
"man"
];
setOutputFlags = false;
patches = [ ./fix-owners.patch ];
prePatch = ''
patches_deb=(../debian/patches/bug*)
patches+=" ''${patches_deb[*]}"
'';
buildInputs = [ libpcap ];
makeFlags = [
"BINDIR=${placeholder "out"}/bin"
"MANDIR=${placeholder "man"}/share/man"
];
meta = {
description = "Tool for analysis of TCP dump files";
homepage = "http://www.tcptrace.org/";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.gmacon ];
mainProgram = "tcptrace";
platforms = lib.platforms.unix;
};
})
+4 -4
View File
@@ -8,17 +8,17 @@
rustPlatform.buildRustPackage rec {
pname = "typstyle";
version = "0.12.10";
version = "0.12.12";
src = fetchFromGitHub {
owner = "Enter-tainer";
repo = "typstyle";
tag = "v${version}";
hash = "sha256-nrsfp0T4QYLZw5F5R4iTewUjlZOErc/15c0O6O9BFBE=";
hash = "sha256-oQnZm+BkccHN3xXSe1yBus3m4JKyCBKM9kkJz+QryR0=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-gPsZRdksX+7sZWK7V/q17oZmN2kgQkApC66/3KowDCI=";
cargoHash = "sha256-pbsB9mQafgI6PudjeCzOSpk3+iZkkdp/V1zgH8pP7us=";
# Disabling tests requiring network access
checkFlags = [
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
};
meta = {
changelog = "https://github.com/Enter-tainer/typstyle/blob/v${version}/CHANGELOG.md";
changelog = "https://github.com/Enter-tainer/typstyle/blob/${src.tag}/CHANGELOG.md";
description = "Format your typst source code";
homepage = "https://github.com/Enter-tainer/typstyle";
license = lib.licenses.asl20;
+9 -9
View File
@@ -17,13 +17,13 @@
}:
let
pname = "v2raya";
version = "2.2.5.8";
version = "2.2.6.3";
src = fetchFromGitHub {
owner = "v2rayA";
repo = "v2rayA";
rev = "refs/tags/v${version}";
hash = "sha256-yFN7mG5qS7BAuCSvSSZFFiyytd7XZ4kJvctc8cU72Oc=";
tag = "v${version}";
hash = "sha256-Du7DqOkneOFBiPK5BeQtnKRsX0Tcuhq8iiugDMGTk7o=";
postFetch = "sed -i -e 's/npmmirror/yarnpkg/g' $out/gui/yarn.lock";
};
@@ -34,7 +34,7 @@ let
offlineCache = fetchYarnDeps {
yarnLock = "${src}/gui/yarn.lock";
hash = "sha256-AZIYkW2u1l9IaDpR9xiKNpc0sGAarLKwHf5kGnzdpKw=";
hash = "sha256-AexW4FFGkQBQlci/FAm9rpfbPn76v+O3nMX3xHymhPw=";
};
env.OUTPUT_DIR = placeholder "out";
@@ -60,7 +60,7 @@ buildGoModule {
sourceRoot = "${src.name}/service";
vendorHash = "sha256-Oa7YmxcZr5scbhNeqGxJOkryL2uHQQ3RkLGWJaIXq3s=";
vendorHash = "sha256-kK99Y0CgesvlaM2WsFIPgdtWo2975m9TqyJXoNv43yU=";
ldflags = [
"-s"
@@ -87,12 +87,12 @@ buildGoModule {
--prefix XDG_DATA_DIRS ":" ${assetsDir}/share
'';
meta = with lib; {
meta = {
description = "Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel";
homepage = "https://github.com/v2rayA/v2rayA";
mainProgram = "v2rayA";
license = licenses.agpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ ChaosAttractor ];
license = lib.licenses.agpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ChaosAttractor ];
};
}
+4 -4
View File
@@ -8,13 +8,13 @@
python3Packages.buildPythonApplication rec {
pname = "vulnix";
version = "1.10.1-unstable-2024-04-02";
version = "1.10.2";
src = fetchFromGitHub {
owner = "nix-community";
repo = "vulnix";
rev = "ebd8ea84553c0fd95bc3042584b495560821500f";
hash = "sha256-huC520cLPjcmnbh+qOamyVfiIJNrCUpwK+orEp+X2LQ=";
rev = "9abfc80da0b4135e982332e448a3969f3b28785b";
hash = "sha256-gSgAGN7LlciW4uY3VS49CbZ9WuRUcduJ5V7JesA8OVo=";
};
postPatch = ''
@@ -67,6 +67,6 @@ python3Packages.buildPythonApplication rec {
mainProgram = "vulnix";
homepage = "https://github.com/nix-community/vulnix";
license = licenses.bsd3;
maintainers = with maintainers; [ ckauhaus ];
maintainers = with maintainers; [ henrirosten ];
};
}
+2 -2
View File
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "xed-editor";
version = "3.6.9";
version = "3.8.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "xed";
rev = version;
hash = "sha256-QPP7LWAiyKt7YBX88qlLS7PucQODH/c/j5WAbO9SF6k=";
hash = "sha256-q6lhgax3W51rtgmmROcrzxgaxz5J9r7CcPwhYDt/A5Y=";
};
patches = [
@@ -240,6 +240,14 @@ self: super: {
];
}) super.statistics;
# Work around -Werror failures until a more permanent solution is released
# https://github.com/haskell-cryptography/HsOpenSSL/issues/88
# https://github.com/haskell-cryptography/HsOpenSSL/issues/93
# https://github.com/haskell-cryptography/HsOpenSSL/issues/95
HsOpenSSL = appendConfigureFlags [
"--ghc-option=-optc=-Wno-incompatible-pointer-types"
] super.HsOpenSSL;
# There are numerical tests on random data, that may fail occasionally
lapack = dontCheck super.lapack;
+11 -8
View File
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchgit
, fetchpatch
, cmake
, pkg-config
, libusb1
@@ -29,6 +30,16 @@ stdenv.mkDerivation rec {
hash = "sha256-U37M5P7itTF1262oW+txbKxcw2lhYHAwy1ML51SDVMs=";
};
patches = [
(fetchpatch {
# http://developer.intra2net.com/mailarchive/html/libftdi/2024/msg00024.html
# https://bugzilla.redhat.com/show_bug.cgi?id=2319133
name = "swig-4.3.0-fix.patch";
url = "https://src.fedoraproject.org/rpms/libftdi/raw/9051ea9ea767eced58b69d855a5d700a5d4602cc/f/libftdi-1.5-swig-4.3.patch";
hash = "sha256-X5tqiPewnyAyvLzR6s0VbNpZKLd0idtPGU4ro36CZHI=";
})
];
strictDeps = true;
nativeBuildInputs = [ cmake pkg-config ]
@@ -59,14 +70,6 @@ stdenv.mkDerivation rec {
cp -r doc/html "$out/share/doc/libftdi1/"
'';
postFixup = optionalString cppSupport ''
# This gets misassigned to the C++ version's path for some reason
for fileToFix in $out/{bin/libftdi1-config,lib/pkgconfig/libftdi1.pc}; do
substituteInPlace $fileToFix \
--replace "$out/include/libftdipp1" "$out/include/libftdi1"
done
'';
meta = with lib; {
description = "Library to talk to FTDI chips using libusb";
homepage = "https://www.intra2net.com/en/developer/libftdi/";
@@ -23,6 +23,10 @@ buildDunePackage rec {
doCheck = true;
preCheck = ''
export DUNE_CACHE=disabled
'';
meta = with lib; {
description = "Hexdump in OCaml";
homepage = "https://github.com/dinosaure/hxd";
@@ -1,4 +1,4 @@
{ lib, fetchFromGitHub, buildDunePackage, logs, zarith }:
{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, logs, zarith }:
buildDunePackage rec {
pname = "ocplib-simplex";
@@ -11,6 +11,13 @@ buildDunePackage rec {
hash = "sha256-fLTht+TlyJIsIAsRLmmkFKsnbSeW3BgyAyURFdnGfko=";
};
# Fix tests with dune 3.17.0
# See https://github.com/OCamlPro/ocplib-simplex/issues/35
patches = (fetchpatch {
url = "https://github.com/OCamlPro/ocplib-simplex/commit/456a744bddd397daade7959d4a49cfadafdadd33.patch";
hash = "sha256-tQUXOoRGe1AIzHcm6j2MopROxn75OE9YUP+CwcKUbVg=";
});
propagatedBuildInputs = [ logs zarith ];
doCheck = true;
@@ -17,6 +17,11 @@ buildDunePackage {
melange
];
doCheck = true;
# Fix tests with dune 3.17.0
# See https://github.com/reasonml/reason-react/issues/870
preCheck = ''
export DUNE_CACHE=disabled
'';
meta = reason-react-ppx.meta // {
description = "Reason bindings for React.js";
};
@@ -7,6 +7,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
}:
@@ -25,11 +26,6 @@ buildPythonPackage rec {
hash = "sha256-m2jsXLrj2yS2Wi2dSwyxBv/nXmU738gd5iJ1JVfakUg=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "-v -Wdefault --cov=airthings_ble --cov-report=term-missing:skip-covered" ""
'';
build-system = [ poetry-core ];
dependencies = [
@@ -38,7 +34,10 @@ buildPythonPackage rec {
bleak-retry-connector
] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "airthings_ble" ];
@@ -5,6 +5,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
sensor-state-data,
@@ -13,31 +14,29 @@
buildPythonPackage rec {
pname = "bluemaestro-ble";
version = "0.2.3";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = pname;
repo = "bluemaestro-ble";
rev = "refs/tags/v${version}";
hash = "sha256-mJ5JNGN4F9U3WMJQDwiZwuxE0zOirwo1sWF3/bVwXhY=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
bluetooth-data-tools
bluetooth-sensor-state-data
sensor-state-data
];
nativeCheckInputs = [ pytestCheckHook ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=bluemaestro_ble --cov-report=term-missing:skip-covered" ""
'';
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "bluemaestro_ble" ];
@@ -45,7 +44,7 @@ buildPythonPackage rec {
description = "Library for bluemaestro BLE devices";
homepage = "https://github.com/Bluetooth-Devices/bluemaestro-ble";
changelog = "https://github.com/Bluetooth-Devices/bluemaestro-ble/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}
@@ -6,6 +6,7 @@
cryptography,
fetchFromGitHub,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
pytz,
@@ -26,11 +27,6 @@ buildPythonPackage rec {
hash = "sha256-TlZyNGfHNKN+6tCKepLS+fbgfq3a1uzeCXl25khl6d8=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail " --cov=bthome_ble --cov-report=term-missing:skip-covered" ""
'';
build-system = [ poetry-core ];
dependencies = [
@@ -41,7 +37,10 @@ buildPythonPackage rec {
pytz
];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "bthome_ble" ];
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "craft-cli";
version = "2.10.1";
version = "2.12.0";
pyproject = true;
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "canonical";
repo = "craft-cli";
rev = "refs/tags/${version}";
hash = "sha256-XKRV5VJLC3B5gcNr/icOxWB6pDXDT7MV5wM/vEQHVm4=";
hash = "sha256-edN0eEXBaYDUqSc7Xv22MpG9wkHqI6x1HtRkQ468yH8=";
};
postPatch = ''
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "cytoolz";
version = "1.0.0";
version = "1.0.1";
pyproject = true;
disabled = isPy27 || isPyPy;
src = fetchPypi {
inherit pname version;
hash = "sha256-60U7MBghUvmRelGJt9mQRrbOkM34rrD+/0smg+YA3v0=";
hash = "sha256-icwxYbieG7Ptdjb3TtLlWYT9NVFpBPyHjK4hbkKyx9Y=";
};
nativeBuildInputs = [
@@ -1,93 +0,0 @@
{
lib,
stdenv,
arrow,
blessed,
buildPythonPackage,
croniter,
django,
django-picklefield,
django-redis,
fetchFromGitHub,
future,
pkgs,
poetry-core,
pytest-django,
pytest-mock,
pytestCheckHook,
pythonOlder,
redis,
setuptools,
}:
buildPythonPackage rec {
pname = "django-q";
version = "1.3.9";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "Koed00";
repo = "django-q";
rev = "refs/tags/v${version}";
hash = "sha256-gFSrAl3QGoJEJfvTTvLQgViPPjeJ6BfvgEwgLLo+uAA=";
};
patches = [ ./pep-621.patch ];
build-system = [
poetry-core
];
pythonRelaxDeps = [
"redis"
];
dependencies = [
django-picklefield
arrow
blessed
django
future
setuptools # for pkg_resources
];
nativeCheckInputs = [
croniter
django-redis
pytest-django
pytest-mock
pytestCheckHook
] ++ django-redis.optional-dependencies.hiredis;
pythonImportsCheck = [ "django_q" ];
preCheck = ''
${pkgs.redis}/bin/redis-server &
REDIS_PID=$!
'';
postCheck = ''
kill $REDIS_PID
'';
# don't bother with two more servers to test
disabledTests = [
"test_disque"
"test_mongo"
];
doCheck = !stdenv.hostPlatform.isDarwin;
meta = with lib; {
description = "Multiprocessing distributed task queue for Django";
homepage = "https://django-q.readthedocs.org";
changelog = "https://github.com/Koed00/django-q/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
# django-q is unmaintained at the moment
# https://github.com/Koed00/django-q/issues/733
broken = lib.versionAtLeast redis.version "5";
};
}
@@ -1,24 +0,0 @@
diff --git a/pyproject.toml b/pyproject.toml
index 9a83e90..07068ac 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -67,13 +67,15 @@ pytest-cov = "^2.12.0"
black = { version = "^21.5b1", allow-prereleases = true }
isort = {extras = ["requirements_deprecated_finder"], version = "^5.8.0"}
-[tool.poetry.extras]
+[build-system]
requires = ["poetry_core>=1.0.0"]
-build-backend = ["poetry.core.masonry.api"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry.extras]
testing = ["django-redis", "croniter", "hiredis", "psutil", "iron-mq", "boto3", "pymongo"]
rollbar = ["django-q-rollbar"]
sentry = ["django-q-sentry"]
[tool.isort]
profile = "black"
-multi_line_output = 3
\ No newline at end of file
+multi_line_output = 3
@@ -0,0 +1,99 @@
{
lib,
arrow,
blessed,
bson,
buildPythonPackage,
croniter,
django,
django-picklefield,
django-redis,
fetchFromGitHub,
hiredis,
pkgs,
poetry-core,
pytest-django,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "django-q2";
version = "1.7.4";
pyproject = true;
src = fetchFromGitHub {
owner = "django-q2";
repo = "django-q2";
rev = "refs/tags/v${version}";
hash = "sha256-mp/IZkfT64xW42B1TEO6lSHxvLQbeH4td8vqZH7wUxM=";
};
postPatch = ''
substituteInPlace django_q/tests/settings.py \
--replace-fail "HiredisParser" "_HiredisParser"
'';
build-system = [
poetry-core
];
dependencies = [
arrow
bson # required for mongodb but undocumented
django
django-picklefield
];
nativeCheckInputs = [
blessed
croniter
django-redis
# pyredis refuses to load with hiredis<3.0.0
(hiredis.overrideAttrs (
new: old: {
version = "3.1.0";
src = old.src.override {
rev = "refs/tags/v${new.version}";
hash = "sha256-ID5OJdARd2N2GYEpcYOpxenpZlhWnWr5fAClAgqEgGg=";
};
}
))
pytest-django
pytestCheckHook
];
pythonImportsCheck = [ "django_q" ];
preCheck = ''
${pkgs.redis}/bin/redis-server &
REDIS_PID=$!
'';
postCheck = ''
kill $REDIS_PID
'';
env = {
MONGO_HOST = "127.0.0.1";
REDIS_HOST = "127.0.0.1";
};
disabledTests = [
# requires a running mongodb
"test_mongo"
];
disabledTestPaths = [
"django_q/tests/test_commands.py"
];
pytestFlagsArray = [ "-vv" ];
meta = with lib; {
description = "Multiprocessing distributed task queue for Django based on Django-Q";
homepage = "https://github.com/django-q2/django-q2";
changelog = "https://github.com/django-q2/django-q2/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "galois";
version = "0.4.2";
version = "0.4.3";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "mhostetter";
repo = "galois";
rev = "refs/tags/v${version}";
hash = "sha256-DbmrrNw7XwTL4i6pJIfkBOUs+KGEmdV2FmQa1xfOHYU=";
tag = "v${version}";
hash = "sha256-1gKL97oS06vgq4gpQSXeMfKzAtjAGQnB48W5BOiMBHA=";
};
pythonRelaxDeps = [
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "google-cloud-datastore";
version = "2.20.1";
version = "2.20.2";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "google_cloud_datastore";
inherit version;
hash = "sha256-B5ULnIhlCHxWX0X6P916BdTD2ZrfeeEMP1lv8Ip9m7o=";
hash = "sha256-lmXQCXKdlVEynZR29NW9qcEdNGkkPqiiwNlJC2WqiZ8=";
};
build-system = [ setuptools ];
@@ -6,6 +6,7 @@
fetchFromGitHub,
home-assistant-bluetooth,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
sensor-state-data,
@@ -25,11 +26,6 @@ buildPythonPackage rec {
hash = "sha256-w21paR1VTV/ZFnl9SKkJmFFDZMPgA3d7P6blceVvnVk=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail " --cov=govee_ble --cov-report=term-missing:skip-covered" ""
'';
build-system = [ poetry-core ];
dependencies = [
@@ -39,7 +35,10 @@ buildPythonPackage rec {
sensor-state-data
];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "govee_ble" ];
@@ -7,6 +7,8 @@
home-assistant-bluetooth,
mac-vendor-lookup,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
}:
@@ -25,21 +27,20 @@ buildPythonPackage rec {
hash = "sha256-1liSWxduYpjIMu7226EH4bsc7gca5g/fyL79W4ZMdU4=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail " --cov=ibeacon_ble --cov-report=term-missing:skip-covered" ""
'';
build-system = [ poetry-core ];
nativeBuildInputs = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
aiohttp
aiooui
home-assistant-bluetooth
mac-vendor-lookup
];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "ibeacon_ble" ];
@@ -47,7 +48,7 @@ buildPythonPackage rec {
description = "Library for iBeacon BLE devices";
homepage = "https://github.com/Bluetooth-Devices/ibeacon-ble";
changelog = "https://github.com/Bluetooth-Devices/ibeacon-ble/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "imgw-pib";
version = "1.0.6";
version = "1.0.7";
pyproject = true;
src = fetchFromGitHub {
owner = "bieniu";
repo = "imgw-pib";
rev = "refs/tags/${version}";
hash = "sha256-0ttGUsu00y/uuTXzPYkgh1QLMYOwPI/m8Qwk5Ty0Y3A=";
tag = version;
hash = "sha256-vhLBnUjCq9OUQViVWJT6jgcEeRYsjz307x1o28ZUv0g=";
};
build-system = [ setuptools ];
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "incomfort-client";
version = "0.6.3-1";
version = "0.6.4";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "zxdavb";
repo = "incomfort-client";
rev = "refs/tags/v${version}";
hash = "sha256-I6MAFvODkw2QadzXJacFl/TwA6exfBB1PSDslmT7Ysw=";
tag = "v${version}";
hash = "sha256-fyQKkwHQEvRNTh1IBqE0/YSskBfrFEequ+VxoHSeShA=";
};
build-system = [ setuptools ];
@@ -6,6 +6,7 @@
fetchFromGitHub,
home-assistant-bluetooth,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
sensor-state-data,
@@ -14,32 +15,30 @@
buildPythonPackage rec {
pname = "inkbird-ble";
version = "0.5.8";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = pname;
repo = "inkbird-ble";
rev = "refs/tags/v${version}";
hash = "sha256-cUqU4XaY7CORhzy0AGjXI5c5ka+PnF4cHdyopyEBcLo=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
bluetooth-data-tools
bluetooth-sensor-state-data
home-assistant-bluetooth
sensor-state-data
];
nativeCheckInputs = [ pytestCheckHook ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=inkbird_ble --cov-report=term-missing:skip-covered" ""
'';
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "inkbird_ble" ];
@@ -47,7 +46,7 @@ buildPythonPackage rec {
description = "Library for Inkbird BLE devices";
homepage = "https://github.com/Bluetooth-Devices/inkbird-ble";
changelog = "https://github.com/Bluetooth-Devices/inkbird-ble/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}
@@ -5,6 +5,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
sensor-state-data,
@@ -13,31 +14,29 @@
buildPythonPackage rec {
pname = "kegtron-ble";
version = "0.4.0";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = pname;
repo = "kegtron-ble";
rev = "refs/tags/v${version}";
hash = "sha256-O5I5shW8nL2RAQptS2Bp/GI/4L6o0xXXmwYvRq0MM8o=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
bluetooth-data-tools
bluetooth-sensor-state-data
sensor-state-data
];
nativeCheckInputs = [ pytestCheckHook ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=kegtron_ble --cov-report=term-missing:skip-covered" ""
'';
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "kegtron_ble" ];
@@ -45,7 +44,7 @@ buildPythonPackage rec {
description = "Library for Kegtron BLE devices";
homepage = "https://github.com/Bluetooth-Devices/kegtron-ble";
changelog = "https://github.com/Bluetooth-Devices/kegtron-ble/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}
@@ -1,11 +1,12 @@
{
lib,
async-timeout,
bleak,
bleak-retry-connector,
bleak,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
}:
@@ -13,31 +14,29 @@
buildPythonPackage rec {
pname = "ld2410-ble";
version = "0.2.0";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "930913";
repo = pname;
repo = "ld2410-ble";
rev = "refs/tags/v${version}";
hash = "sha256-wQnE2hNT0UOnPJbHq1eayIO8g0XRZvEH6V19DL6RqoA=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=ld2410_ble --cov-report=term-missing:skip-covered" ""
'';
build-system = [ poetry-core ];
nativeBuildInputs = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
async-timeout
bleak
bleak-retry-connector
];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "ld2410_ble" ];
@@ -45,7 +44,7 @@ buildPythonPackage rec {
description = "Library for the LD2410B modules from HiLinks";
homepage = "https://github.com/930913/ld2410-ble";
changelog = "https://github.com/930913/ld2410-ble/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

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