mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-02 21:10:08 +00:00
Merge staging-next into staging
This commit is contained in:
@@ -27291,6 +27291,12 @@
|
||||
githubId = 285829;
|
||||
keys = [ { fingerprint = "09BE 3BAE 8D55 D4CD 8579 285A 9675 EAC3 4897 E6E2"; } ];
|
||||
};
|
||||
stzx = {
|
||||
name = "Stzx";
|
||||
github = "Stzx";
|
||||
githubId = 19950702;
|
||||
email = "silence.m@hotmail.com";
|
||||
};
|
||||
SubhrajyotiSen = {
|
||||
email = "subhrajyoti12@gmail.com";
|
||||
github = "SubhrajyotiSen";
|
||||
|
||||
@@ -87,12 +87,6 @@ let
|
||||
"network.target"
|
||||
];
|
||||
|
||||
# We wait for the udev events queue to empty in the *hope* that the
|
||||
# devices needed here become available. This is terribly broken and
|
||||
# essentially no better than a random sleep().
|
||||
# FIXME: use .device units dependecies instead.
|
||||
serviceConfig.ExecStartPre = "-${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180";
|
||||
|
||||
unitConfig = {
|
||||
# Avoid default dependencies like "basic.target", which prevents ifstate from starting before luks is unlocked.
|
||||
DefaultDependencies = "no";
|
||||
@@ -193,6 +187,13 @@ in
|
||||
ExecStart = "${lib.getExe cfg.package} --config ${
|
||||
config.environment.etc."ifstate/ifstate.yaml".source
|
||||
} apply";
|
||||
|
||||
# We wait for the udev events queue to empty in the *hope* that the
|
||||
# devices needed here become available. This is terribly broken and
|
||||
# essentially no better than a random sleep(). Same below for initrd.
|
||||
# FIXME: use .device units dependecies instead.
|
||||
ExecStartPre = "-${lib.getExe' config.systemd.package "udevadm"} settle --timeout=180";
|
||||
|
||||
# because oneshot services do not have a timeout by default
|
||||
TimeoutStartSec = "2min";
|
||||
};
|
||||
@@ -294,6 +295,8 @@ in
|
||||
} apply";
|
||||
# because oneshot services do not have a timeout by default
|
||||
TimeoutStartSec = "2min";
|
||||
# See comment on non-initrd service above
|
||||
ExecStartPre = "-${lib.getExe' config.boot.initrd.systemd.package "udevadm"} settle --timeout=180";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -218,7 +218,7 @@ in
|
||||
}
|
||||
];
|
||||
|
||||
networking.firewall.allowedTCPPorts = lib.optional cfg.openFirewall cfg.port;
|
||||
networking.firewall.allowedTCPPorts = lib.optional cfg.openFirewall (lib.toInt cfg.env.PORT);
|
||||
|
||||
systemd.tmpfiles.settings."10-librechat"."${cfg.dataDir}".d = {
|
||||
mode = "0755";
|
||||
|
||||
@@ -43,10 +43,15 @@ pkgs.lib.listToAttrs (
|
||||
meta = { };
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
script = ''
|
||||
${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180
|
||||
${lib.getExe' config.boot.initrd.systemd.package "udevadm"} settle --timeout=180
|
||||
ip link
|
||||
if ${lib.optionalString predictable "!"} ip link show eth0; then
|
||||
echo Success
|
||||
|
||||
@@ -10,13 +10,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
zig = zig_0_16;
|
||||
|
||||
mkModule =
|
||||
{
|
||||
pname,
|
||||
version,
|
||||
src,
|
||||
zig,
|
||||
zigDeps,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -24,10 +23,11 @@ let
|
||||
pname
|
||||
version
|
||||
src
|
||||
zig
|
||||
zigDeps
|
||||
;
|
||||
|
||||
nativeBuildInputs = [ zig ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
||||
nativeBuildInputs = [ finalAttrs.zig ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
||||
|
||||
env.EMACS_INCLUDE_DIR = "${emacs}/include";
|
||||
|
||||
@@ -67,8 +67,9 @@ melpaBuild (finalAttrs: {
|
||||
hash = "sha256-upIcL4wf2zAc3/3QeERF619nSDml2wEZCOl6/XOaT3E=";
|
||||
};
|
||||
|
||||
# this can be put into mkModule, but we put it here to ease user overrideAttrs
|
||||
zigDeps = zig.fetchDeps {
|
||||
# these can be put into mkModule, but we put them here to ease user overrideAttrs
|
||||
zig = zig_0_16;
|
||||
zigDeps = finalAttrs.zig.fetchDeps {
|
||||
inherit (finalAttrs) src pname version;
|
||||
fetchAll = true;
|
||||
hash = "sha256-NcNp0FnMy6FfZ63+pwiTRCmJ8FIovJEOhNvxVr1+uSQ=";
|
||||
@@ -91,6 +92,7 @@ melpaBuild (finalAttrs: {
|
||||
inherit (finalAttrs)
|
||||
version
|
||||
src
|
||||
zig
|
||||
zigDeps
|
||||
;
|
||||
};
|
||||
|
||||
@@ -12,22 +12,22 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-YB+PtOdmsNfDuWl1U5g2HxnaXTmWBOnInVwoAcc2rwk=";
|
||||
hash = "sha256-aEcYKsmZstFbSNybBLwtsrQu2P3cXeUSx+bb/fX52p4=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-K6KjMMJHqwTlwHZuINHSSXG5R99b8w4SRkXcCBtf0d4=";
|
||||
hash = "sha256-2B9jbLjYp2Dj+cqECeX7gCfB34Yoy8o3jTdzLd7ZLbc=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-D7bHjKOvaJj98vuPW53kHieGYIXOLft4OkpuG0AX9Rc=";
|
||||
hash = "sha256-TGX0gaKZcvEWYz+Z/1tVTaE+6xbcTRR+Tb7JHVSAXkc=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "ruff";
|
||||
publisher = "charliermarsh";
|
||||
version = "2026.62.0";
|
||||
version = "2026.68.0";
|
||||
}
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
|
||||
@@ -1508,12 +1508,12 @@
|
||||
"vendorHash": "sha256-8p6dJwGyTK+qtgplSLtIRKxnNAQAgHfs4z/EsBcg/iY="
|
||||
},
|
||||
"yandex-cloud_yandex": {
|
||||
"hash": "sha256-0155GXJMfoCnyqaJiF5SJIA1Qz1q2AYe/BB0AYODG/0=",
|
||||
"hash": "sha256-0jUqljsSnNctu+5XPQGF6OE+BBZLbRoKxZLbe4/toRs=",
|
||||
"homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
|
||||
"owner": "yandex-cloud",
|
||||
"repo": "terraform-provider-yandex",
|
||||
"rev": "v0.218.0",
|
||||
"rev": "v0.220.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-FfZvuC/XXhKS03E+l4/9KCLSwx+uTP1LzywckZqX6pA="
|
||||
"vendorHash": "sha256-ZRElns36b4n5LaIIA6Snfxj15LXSVnf6o/H7lyJw3h0="
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,18 +12,18 @@
|
||||
}:
|
||||
let
|
||||
pname = "beeper";
|
||||
version = "4.2.985";
|
||||
version = "4.3.0";
|
||||
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
|
||||
sources = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}-x86_64.AppImage";
|
||||
hash = "sha256-oWJdpZL+Q8/jaI/WJfgXUisPASuvHkxU6rOeJkedHSM=";
|
||||
hash = "sha256-/DJmQMQGzZFnONjQZ9fr9NDtGv9Kg8jF8aBzAOUyCUg=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}-arm64.AppImage";
|
||||
hash = "sha256-rY302fiRG2c6dwZ+a8e43DjDUklfR0j78XTixhPkvwY=";
|
||||
hash = "sha256-zZIbcE78XcXremyWjs3jsiBRTwP24y45CfZHJym8MhQ=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "civicrm-core";
|
||||
version = "6.16.1";
|
||||
version = "6.16.2";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
dontUnpack = false;
|
||||
@@ -14,10 +14,10 @@ php.buildComposerProject2 (finalAttrs: {
|
||||
owner = "civicrm";
|
||||
repo = "civicrm-core";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-T56hljO656dwXccSlJjGzdHlYfqMUe3Mqzr/xSF/fHE=";
|
||||
hash = "sha256-aIjQ0d/JseuHQKrph5dD8juUnZa/Krh9L6vN4GUqncE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-PTDBSTm7C4ygF/YqV1pnHrjzfJ/Kqud1ICq1ObaledQ=";
|
||||
vendorHash = "sha256-cuePs/kZx+cpCvG8r9eDmccyEFfL7G9zfD5tpzD5CJE=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
buildGraalvmNativeImage (finalAttrs: {
|
||||
pname = "clj-kondo";
|
||||
version = "2026.05.25";
|
||||
version = "2026.07.24";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/clj-kondo/clj-kondo/releases/download/v${finalAttrs.version}/clj-kondo-${finalAttrs.version}-standalone.jar";
|
||||
sha256 = "sha256-SzrfsIHUW+KzZITesZ9aS00Gx7S4hekLsXXdjQJJxLM=";
|
||||
sha256 = "sha256-QUZkiURBeuv0qxELNRhFw8MudP0m026IpZ8axG922Qg=";
|
||||
};
|
||||
|
||||
extraNativeImageBuildArgs = [
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clojure";
|
||||
version = "1.12.5.1654";
|
||||
version = "1.12.5.1664";
|
||||
|
||||
src = fetchurl {
|
||||
# https://github.com/clojure/brew-install/releases
|
||||
url = "https://github.com/clojure/brew-install/releases/download/${finalAttrs.version}/clojure-tools-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-3IbMVrw3L87we9h/RGk+60thz19ENHiDh4Nk0Dtfs0I=";
|
||||
hash = "sha256-d91oaJSAdK3Mk+g6eW+OjxWhqSvLG5AC1xX9IhDkdvM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"version": "3.13.10",
|
||||
"version": "3.14.7",
|
||||
"vscodeVersion": "1.128.0",
|
||||
"sources": {
|
||||
"x86_64-linux": {
|
||||
"url": "https://downloads.cursor.com/production/4f02290ccd9304f0e6bf8ee85f6e9106f02ac1f7/linux/x64/Cursor-3.13.10-x86_64.AppImage",
|
||||
"hash": "sha256-pZq2rQnIbFLejOkK2y0GZEVRmuNKZvI+oxaviK/vpXQ="
|
||||
"url": "https://downloads.cursor.com/production/a758f2241ca99fecf380180b6cbdbbce0f1f42cf/linux/x64/Cursor-3.14.7-x86_64.AppImage",
|
||||
"hash": "sha256-+nvthb0R7tvAH9t1cd4BqIrcjq16Sy2VycLWovjB2wg="
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://downloads.cursor.com/production/4f02290ccd9304f0e6bf8ee85f6e9106f02ac1f7/linux/arm64/Cursor-3.13.10-aarch64.AppImage",
|
||||
"hash": "sha256-fqQbQZqOAXxumAErlKK+1Z19mY3GitfVAwy6vNePcZA="
|
||||
"url": "https://downloads.cursor.com/production/a758f2241ca99fecf380180b6cbdbbce0f1f42cf/linux/arm64/Cursor-3.14.7-aarch64.AppImage",
|
||||
"hash": "sha256-jkZyayWZ/gpHuyCjzI+RePOr4GWt2rJwkCGf4dXC1Yk="
|
||||
},
|
||||
"aarch64-darwin": {
|
||||
"url": "https://downloads.cursor.com/production/4f02290ccd9304f0e6bf8ee85f6e9106f02ac1f7/darwin/arm64/Cursor-darwin-arm64.dmg",
|
||||
"hash": "sha256-d/bdi67FN3BBjIG5GI+O2GtYUeHLKW0iZRjOGxwuS0o="
|
||||
"url": "https://downloads.cursor.com/production/a758f2241ca99fecf380180b6cbdbbce0f1f42cf/darwin/arm64/Cursor-darwin-arm64.dmg",
|
||||
"hash": "sha256-mn8km5Jxswh2cKUh78tcv3+qpvgPFFffRfe0YjgiWgo="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
libGL,
|
||||
libGLU,
|
||||
libx11,
|
||||
expat,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -26,9 +27,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
boost
|
||||
libGL
|
||||
libGLU
|
||||
expat
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isLinux libx11;
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "USE_EXTERNAL_EXPAT" true)
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/coin3d/coin";
|
||||
description = "High-level, retained-mode toolkit for effective 3D graphics development";
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
fetchFromGitHub,
|
||||
just,
|
||||
libcosmicAppHook,
|
||||
autoAddDriverRunpath,
|
||||
nixosTests,
|
||||
nix-update-script,
|
||||
}:
|
||||
@@ -30,6 +31,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
just
|
||||
libcosmicAppHook
|
||||
rustPlatform.bindgenHook
|
||||
autoAddDriverRunpath # for GPU monitoring
|
||||
];
|
||||
|
||||
dontUseJustBuild = true;
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "dgraph";
|
||||
version = "25.3.8";
|
||||
version = "25.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dgraph-io";
|
||||
repo = "dgraph";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RrOlJVkekZ3xWGtjc013YyCycJmlPowVzqrttnZD8BI=";
|
||||
hash = "sha256-77uhpDyQhAbeQVGbAB2ZX1YATA5qAk8l5Y7PWhoJm9E=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-gD91KGWLqd6a7YkqQSeW1eS2MQI+1/RbI5X1/Xwrz90=";
|
||||
vendorHash = "sha256-Kr4qeoLsqK7qV7OMAvaY7fbzsxaP6bm9bdUZlmQYAug=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
||||
@@ -17,15 +17,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "dioxus-cli";
|
||||
version = "0.7.9";
|
||||
version = "0.7.10";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "dioxus-cli";
|
||||
version = finalAttrs.version;
|
||||
hash = "sha256-tLMtUlohSJt3okdJh+ARweQNGmzj/vYiNl8iZhDbSAc=";
|
||||
hash = "sha256-kPzo5zRSVs46SjiDRKpKxca8kPcWUgqc/LMKQsk0sC8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-h5wkxHP8ehZLHqcUsro08/dpqSPnPuBbZuUGG8i4nBc=";
|
||||
cargoHash = "sha256-cvBVIkIqBjXFifYNpL2DqZpQcBaX/59Xw0ZJKUvUcIs=";
|
||||
buildFeatures = [
|
||||
"no-downloads"
|
||||
]
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
let
|
||||
pname = "expresslrs-configurator";
|
||||
version = "1.8.2";
|
||||
version = "1.8.3";
|
||||
installPath = "share/${pname}";
|
||||
resourcesPath = "${installPath}/resources";
|
||||
in
|
||||
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
|
||||
src = fetchzip {
|
||||
url = "https://github.com/ExpressLRS/ExpressLRS-Configurator/releases/download/v${version}/${pname}-${version}.zip";
|
||||
stripRoot = false;
|
||||
hash = "sha256-fVERT1JkXYwEqP0UJZZxT8AgkEMRzlvSqWPM4Zo9KXU=";
|
||||
hash = "sha256-KoT9YoeAkYrr9FIS7+Lm1CafTNwvV+jLTYYHziCVvrs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
111
pkgs/by-name/fl/fluent-gtk-theme/package.nix
Normal file
111
pkgs/by-name/fl/fluent-gtk-theme/package.nix
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
jdupes,
|
||||
sassc,
|
||||
themeVariants ? [ ], # default: blue
|
||||
colorVariants ? [ ], # default: all
|
||||
sizeVariants ? [ ], # default: standard
|
||||
tweaks ? [ ],
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "fluent-gtk-theme";
|
||||
in
|
||||
lib.checkListOfEnum "${pname}: theme variants"
|
||||
[
|
||||
"default"
|
||||
"purple"
|
||||
"pink"
|
||||
"red"
|
||||
"orange"
|
||||
"yellow"
|
||||
"green"
|
||||
"teal"
|
||||
"grey"
|
||||
"all"
|
||||
]
|
||||
themeVariants
|
||||
lib.checkListOfEnum
|
||||
"${pname}: color variants"
|
||||
[
|
||||
"standard"
|
||||
"light"
|
||||
"dark"
|
||||
]
|
||||
colorVariants
|
||||
lib.checkListOfEnum
|
||||
"${pname}: size variants"
|
||||
[
|
||||
"standard"
|
||||
"compact"
|
||||
]
|
||||
sizeVariants
|
||||
lib.checkListOfEnum
|
||||
"${pname}: tweaks"
|
||||
[
|
||||
"solid"
|
||||
"float"
|
||||
"round"
|
||||
"blur"
|
||||
"noborder"
|
||||
"square"
|
||||
]
|
||||
tweaks
|
||||
|
||||
stdenvNoCC.mkDerivation
|
||||
(finalAttrs: {
|
||||
inherit pname;
|
||||
version = "2025-04-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vinceliuice";
|
||||
repo = "fluent-gtk-theme";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-AaFj9lG9lWg0a0ksJ0ufoUpsunR3uDhcdb7oSrvAmPI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
jdupes
|
||||
sassc
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs install.sh
|
||||
|
||||
sed -i '/"$THEME_DIR\/gtk-2.0/d' install.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
name= HOME="$TMPDIR" ./install.sh \
|
||||
${lib.optionalString (themeVariants != [ ]) "--theme " + toString themeVariants} \
|
||||
${lib.optionalString (colorVariants != [ ]) "--color " + toString colorVariants} \
|
||||
${lib.optionalString (sizeVariants != [ ]) "--size " + toString sizeVariants} \
|
||||
${lib.optionalString (tweaks != [ ]) "--tweaks " + toString tweaks} \
|
||||
--icon nixos \
|
||||
--dest $out/share/themes
|
||||
|
||||
jdupes --quiet --link-soft --recurse $out/share
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = gitUpdater { };
|
||||
|
||||
meta = {
|
||||
description = "Fluent design gtk theme";
|
||||
changelog = "https://github.com/vinceliuice/Fluent-gtk-theme/releases/tag/${finalAttrs.version}";
|
||||
homepage = "https://github.com/vinceliuice/Fluent-gtk-theme";
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
luftmensch-luftmensch
|
||||
romildo
|
||||
stzx
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -19,16 +19,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "flying-carpet";
|
||||
version = "9.0.10";
|
||||
version = "10.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "spieglt";
|
||||
repo = "FlyingCarpet";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-7yGU4HCuP8/6UC1J6fNA5CpppJGGhS/ywThXRToDTqo=";
|
||||
hash = "sha256-38gPXTP+WAZ43oVhgYEFy0lD41uV4JxlNktiD+tJOu0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-/Z+0hdQ1H9R7FMLunGT5WgQKFY0b0b6gzrR2CNMe2II=";
|
||||
cargoHash = "sha256-WZ93Gk2n8GJox7I4o/McC0AgrBh6CZAJFcXWvALk9TM=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-tauri.hook
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
json_c,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -17,11 +19,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-OC6wXBCIW4XznWG0zzxRK3BzWMVK2Jq/gTL36sJV1PE=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"tools"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
json_c
|
||||
];
|
||||
|
||||
# sscregistrygen is only compiled when json-c is available and meson doesn't install it
|
||||
postInstall = ''
|
||||
mkdir -p $tools/bin
|
||||
install -Dm755 tools/sscregistrygen $tools/bin/sscregistrygen
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Daemon to communicate with Qualcomm DSPs";
|
||||
homepage = "https://github.com/linux-msm/hexagonrpc";
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "hk";
|
||||
version = "1.51.0";
|
||||
version = "1.53.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -23,10 +23,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "jdx";
|
||||
repo = "hk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-kCmujjvh2CACLrzqFal1CFc7RMzECBYsQ4W3ZnJGRV0=";
|
||||
hash = "sha256-O9D5gpkLEiA7yotDehsCu6qdYKBaUCmGZjVPETiZXzA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-hICexfvE0swz+g/9r/vR/sG2DUAK5Fj0lDTrkuWujok=";
|
||||
cargoHash = "sha256-4y4wg24yN9lTZvg4SgTZcYSVwIaPowTJ4jj3P09FHjE=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -69,6 +69,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
installShellCompletion --cmd jj \
|
||||
--bash <(COMPLETE=bash ${jj}) \
|
||||
--fish <(COMPLETE=fish ${jj}) \
|
||||
--nushell <(${jj} util completion nushell) \
|
||||
--zsh <(COMPLETE=zsh ${jj})
|
||||
'';
|
||||
|
||||
|
||||
@@ -42,16 +42,16 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "liana";
|
||||
version = "14.0"; # keep in sync with lianad
|
||||
version = "15.0"; # keep in sync with lianad
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wizardsardine";
|
||||
repo = "liana";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1d+icjk1NamlvEx4Xb1Ao4d1hb/t5aBwho+yCtHF9y4=";
|
||||
hash = "sha256-mRBhpf4Risuq4TQ1y/5lWTOxN2RMHcZ2SC2BpbsOdhA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-9CWJIRby6QWJmkYSHj2lFfEj0plX5iWxsdQs5sYww7Q=";
|
||||
cargoHash = "sha256-Mr6YOK7d6pfFliaiw2Mjj5wJvPk+6yH892uS7ksd4YU=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "lianad";
|
||||
version = "14.0"; # keep in sync with liana
|
||||
version = "15.0"; # keep in sync with liana
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wizardsardine";
|
||||
repo = "liana";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-1d+icjk1NamlvEx4Xb1Ao4d1hb/t5aBwho+yCtHF9y4=";
|
||||
hash = "sha256-mRBhpf4Risuq4TQ1y/5lWTOxN2RMHcZ2SC2BpbsOdhA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-9CWJIRby6QWJmkYSHj2lFfEj0plX5iWxsdQs5sYww7Q=";
|
||||
cargoHash = "sha256-Mr6YOK7d6pfFliaiw2Mjj5wJvPk+6yH892uS7ksd4YU=";
|
||||
|
||||
buildInputs = [ udev ];
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nextvi";
|
||||
version = "7.0";
|
||||
version = "7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyx0r";
|
||||
repo = "nextvi";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-corF/cPmkCkpqg2UVLrMHL33pgp3ffBohbQzq95b+Ws=";
|
||||
hash = "sha256-2GvSnTV+NUACDvJq0WtpvoQpDBlPmrYBWjKsMHpVB+s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nvc";
|
||||
version = "1.22.0";
|
||||
version = "1.22.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickg";
|
||||
repo = "nvc";
|
||||
tag = "r${finalAttrs.version}";
|
||||
hash = "sha256-Z8N4TskOak7tU3Kp5BfUahoXsP/LnCLx5mhAuXwG7qI=";
|
||||
hash = "sha256-FA9GzfwsQRI3OOJQ54H8+JbgVtIz2F4xncVDUHRzgRA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
let
|
||||
pname = "plezy";
|
||||
version = "2.10.0";
|
||||
version = "2.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "edde746";
|
||||
repo = "plezy";
|
||||
tag = version;
|
||||
hash = "sha256-82OPOad3ti+5Eec8U3vEJaAE12+ViQb+P7ZhMhEplL8=";
|
||||
hash = "sha256-nv2hYuPZEUkmcM7sVzmcKZm17CHjxmEWlXLdCPKFXU0=";
|
||||
};
|
||||
|
||||
simdutf = fetchurl {
|
||||
@@ -146,7 +146,7 @@ let
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/edde746/plezy/releases/download/${version}/plezy-macos.dmg";
|
||||
hash = "sha256-lwO34G2w4hAju06z3/HwI3Tq7dHhgWZD4HxShby8OYg=";
|
||||
hash = "sha256-cqanTS+PSsdtg9AF/yiVezq8ydgNfVdXEN8DHRLByM8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -14,18 +14,18 @@
|
||||
}:
|
||||
buildGo127Module (finalAttrs: {
|
||||
pname = "pocket-id";
|
||||
version = "2.11.0";
|
||||
version = "2.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pocket-id";
|
||||
repo = "pocket-id";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-keib2ebju6hKlH1XJQRBmXwxBsUnVZOIs+djvYkXYqU=";
|
||||
hash = "sha256-n9yqZs8RlgJk+NByRJ7a+HRY4YkQNNH7xY02BSy/RhE=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/backend";
|
||||
|
||||
vendorHash = "sha256-/5lXAnb2FHeGBgrpU4Jpt2KX+sgGyYH61odppTaulbs=";
|
||||
vendorHash = "sha256-BGIF9ZhPAJrUvX1cahe3EyWM3QLIfkkZaChaBign7io=";
|
||||
|
||||
env.CGO_ENABLED = 0;
|
||||
ldflags = [
|
||||
@@ -67,7 +67,7 @@ buildGo127Module (finalAttrs: {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-aJq5yLeeHY7zlOgSr1bOJCL8e1HBwCmoL7nTD2a06tg=";
|
||||
hash = "sha256-iXWR3idBiafZXCrt1M7UCJQJsA+IL2AU6pRJI7MdY1E=";
|
||||
};
|
||||
|
||||
env.BUILD_OUTPUT_PATH = "dist";
|
||||
@@ -107,6 +107,7 @@ buildGo127Module (finalAttrs: {
|
||||
marcusramberg
|
||||
tmarkus
|
||||
ymstnt
|
||||
esch
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
||||
34
pkgs/by-name/po/ponyc/cmake-presets.patch
Normal file
34
pkgs/by-name/po/ponyc/cmake-presets.patch
Normal file
@@ -0,0 +1,34 @@
|
||||
diff --git a/CMakePresets.json b/CMakePresets.json
|
||||
index d12d71eb5..d337e7339 100644
|
||||
--- a/CMakePresets.json
|
||||
+++ b/CMakePresets.json
|
||||
@@ -9,11 +9,7 @@
|
||||
{
|
||||
"name": "base",
|
||||
"hidden": true,
|
||||
- "binaryDir": "${sourceDir}/build/build_${presetName}",
|
||||
- "cacheVariables": {
|
||||
- "CMAKE_C_COMPILER": "clang",
|
||||
- "CMAKE_CXX_COMPILER": "clang++"
|
||||
- }
|
||||
+ "binaryDir": "${sourceDir}/build/build_${presetName}"
|
||||
},
|
||||
{
|
||||
"name": "native",
|
||||
diff --git a/lib/CMakePresets.json b/lib/CMakePresets.json
|
||||
index 12d797b87..92196d931 100644
|
||||
--- a/lib/CMakePresets.json
|
||||
+++ b/lib/CMakePresets.json
|
||||
@@ -19,11 +19,7 @@
|
||||
{
|
||||
"name": "libs",
|
||||
"displayName": "Vendored LLVM + support libraries (clang)",
|
||||
- "inherits": "libs-base",
|
||||
- "cacheVariables": {
|
||||
- "CMAKE_C_COMPILER": "clang",
|
||||
- "CMAKE_CXX_COMPILER": "clang++"
|
||||
- }
|
||||
+ "inherits": "libs-base"
|
||||
},
|
||||
{
|
||||
"name": "libs-windows-x86-64",
|
||||
@@ -1,41 +1,80 @@
|
||||
From c1283b82daff94ebac21fc20cb8df0b05aa080f8 Mon Sep 17 00:00:00 2001
|
||||
From: Morgan Jones <me@numin.it>
|
||||
Date: Fri, 22 May 2026 23:06:52 -0700
|
||||
Subject: [PATCH] net: disable networking tests
|
||||
|
||||
---
|
||||
packages/net/_test.pony | 18 ------------------
|
||||
1 file changed, 18 deletions(-)
|
||||
|
||||
diff --git a/packages/net/_test.pony b/packages/net/_test.pony
|
||||
index 1d7b2d6f..69cbeea6 100644
|
||||
index 081ce67a0..99942c05e 100644
|
||||
--- a/packages/net/_test.pony
|
||||
+++ b/packages/net/_test.pony
|
||||
@@ -20,24 +20,6 @@ actor \nodoc\ Main is TestList
|
||||
@@ -26,14 +26,14 @@ actor \nodoc\ Main is TestList
|
||||
|
||||
fun tag tests(test: PonyTest) =>
|
||||
// Tests below function across all systems and are listed alphabetically
|
||||
- test(_TestDNSBroadcastIP4)
|
||||
- test(_TestDNSBroadcastIP6)
|
||||
- test(_TestDNSUnresolvableEmpty)
|
||||
- test(_TestMulticastIP4)
|
||||
- test(_TestMulticastIP6)
|
||||
- test(_TestNetAddressIP6Scope)
|
||||
- test(_TestNetAddressNameRoundTripIP4)
|
||||
- test(_TestNetAddressNameRoundTripIP6)
|
||||
+// test(_TestDNSBroadcastIP4)
|
||||
+// test(_TestDNSBroadcastIP6)
|
||||
+// test(_TestDNSUnresolvableEmpty)
|
||||
+// test(_TestMulticastIP4)
|
||||
+// test(_TestMulticastIP6)
|
||||
+// test(_TestNetAddressIP6Scope)
|
||||
+// test(_TestNetAddressNameRoundTripIP4)
|
||||
+// test(_TestNetAddressNameRoundTripIP6)
|
||||
test(_TestOsIpString)
|
||||
test(_TestSocketResultDecoder)
|
||||
test(_TestTCPConnectionFailed)
|
||||
- test(_TestTCPExpect)
|
||||
- test(_TestTCPExpectOverBufferSize)
|
||||
- test(_TestTCPExpectSetToZero)
|
||||
- test(_TestTCPMute)
|
||||
- test(_TestTCPProxy)
|
||||
- test(_TestTCPUnmute)
|
||||
- test(_TestTCPWritev)
|
||||
-
|
||||
- // Tests below exclude windows and are listed alphabetically
|
||||
- ifdef not windows then
|
||||
- test(_TestTCPConnectionToClosedServerFailed)
|
||||
- test(_TestTCPThrottle)
|
||||
@@ -48,36 +48,36 @@ actor \nodoc\ Main is TestList
|
||||
test(_TestTCPThrottle)
|
||||
test(_TestTCPUnmute)
|
||||
test(_TestTCPWritev)
|
||||
- test(_TestUDPEmptyDatagramDelivered)
|
||||
+// test(_TestUDPEmptyDatagramDelivered)
|
||||
test(_TestUDPListenFailure)
|
||||
- test(_TestUDPOversizedDatagramTruncated)
|
||||
- test(_TestUDPUndersizedDatagramDelivered)
|
||||
- test(_TestUDPZeroSizeReadBufferDelivers)
|
||||
+// test(_TestUDPOversizedDatagramTruncated)
|
||||
+// test(_TestUDPUndersizedDatagramDelivered)
|
||||
+// test(_TestUDPZeroSizeReadBufferDelivers)
|
||||
test(_TestUnicastIP6Loopback)
|
||||
|
||||
// The deterministic send-failure trigger (send to broadcast without
|
||||
// SO_BROADCAST -> EACCES/WSAEACCES) is verified on linux and windows.
|
||||
- ifdef linux or windows then
|
||||
- test(_TestUDPCloseOnSendFailure)
|
||||
- end
|
||||
-
|
||||
- // Tests below exclude osx and are listed alphabetically
|
||||
+// ifdef linux or windows then
|
||||
+// test(_TestUDPCloseOnSendFailure)
|
||||
+// end
|
||||
|
||||
// Tests below run only on linux and are listed alphabetically
|
||||
- ifdef linux then
|
||||
- test(_TestBroadcastReceive)
|
||||
- end
|
||||
+// ifdef linux then
|
||||
+// test(_TestBroadcastReceive)
|
||||
+// end
|
||||
|
||||
// Tests below exclude osx and are listed alphabetically
|
||||
- ifdef not osx then
|
||||
- test(_TestBroadcast)
|
||||
- end
|
||||
+// ifdef not osx then
|
||||
+// test(_TestBroadcast)
|
||||
+// end
|
||||
|
||||
// Tests below exclude osx and bsd and are listed alphabetically.
|
||||
// They read IPv4 multicast options back with getsockopt_u32, which
|
||||
// expects a 4-byte value; osx and bsd return these options as a 1-byte
|
||||
// u_char, so the read-back fails there regardless of correctness.
|
||||
- ifdef (not osx) and (not bsd) then
|
||||
- test(_TestMulticastSockopt)
|
||||
- end
|
||||
+// ifdef (not osx) and (not bsd) then
|
||||
+// test(_TestMulticastSockopt)
|
||||
+// end
|
||||
|
||||
class \nodoc\ _TestPing is UDPNotify
|
||||
let _h: TestHelper
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From 77d703b11d298f6be88b04f7e8ca85de139e82be Mon Sep 17 00:00:00 2001
|
||||
From: Morgan Jones <me@numin.it>
|
||||
Date: Mon, 5 May 2025 20:34:02 -0700
|
||||
Subject: [PATCH] process: disable KillLongRunningChild test
|
||||
|
||||
---
|
||||
packages/process/_test.pony | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/packages/process/_test.pony b/packages/process/_test.pony
|
||||
index fe9fdb04..756588f9 100644
|
||||
--- a/packages/process/_test.pony
|
||||
+++ b/packages/process/_test.pony
|
||||
@@ -18,7 +18,8 @@ actor \nodoc\ Main is TestList
|
||||
test(_TestChdir)
|
||||
test(_TestExpect)
|
||||
test(_TestFileExecCapabilityIsRequired)
|
||||
- test(_TestKillLongRunningChild)
|
||||
+ // (@booxter/@numinit) Appears to be flaky.
|
||||
+ // test(_TestKillLongRunningChild)
|
||||
test(_TestLongRunningChild)
|
||||
test(_TestNonExecutablePathResultsInExecveError)
|
||||
test(_TestPrintvOrdering)
|
||||
--
|
||||
2.47.0
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/libponyc/codegen/genexe.cc b/src/libponyc/codegen/genexe.cc
|
||||
index 3f0348eaa1..76b03030bf 100644
|
||||
--- a/src/libponyc/codegen/genexe.cc
|
||||
+++ b/src/libponyc/codegen/genexe.cc
|
||||
@@ -308,7 +308,7 @@
|
||||
snprintf(ld_cmd, ld_len,
|
||||
"%s -execute -arch %.*s "
|
||||
"-o %s %s %s %s "
|
||||
- "-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -lSystem %s -platform_version macos '" STR(PONY_OSX_PLATFORM) "' '0.0.0'",
|
||||
+ "-L\"${SDKROOT:-${DEVELOPER_DIR:-@apple-sdk@}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk}/usr/lib\" -lSystem %s -platform_version macos '" STR(PONY_OSX_PLATFORM) "' '0.0.0'",
|
||||
linker, (int)arch_len, c->opt->triple, file_exe, file_o,
|
||||
lib_args, ponyrt, sanitizer_arg
|
||||
);
|
||||
61
pkgs/by-name/po/ponyc/gencshim-pony-cc.patch
Normal file
61
pkgs/by-name/po/ponyc/gencshim-pony-cc.patch
Normal file
@@ -0,0 +1,61 @@
|
||||
diff --git a/src/libponyc/codegen/gencshim.cc b/src/libponyc/codegen/gencshim.cc
|
||||
index a1722ad01a22..db742c6adaa5 100644
|
||||
--- a/src/libponyc/codegen/gencshim.cc
|
||||
+++ b/src/libponyc/codegen/gencshim.cc
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "../ast/stringtab.h"
|
||||
#include "paths.h"
|
||||
#include "ponyassert.h"
|
||||
+#include "nix.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
@@ -307,8 +308,11 @@ static const char* find_macos_sdk_include(pass_opt_t* opt)
|
||||
pclose(f);
|
||||
}
|
||||
|
||||
+ // Fall back to the Nix apple-sdk when xcrun is unavailable, mirroring the
|
||||
+ // link side in genexe.cc. The unversioned MacOSX.sdk symlink keeps this
|
||||
+ // independent of the SDK version.
|
||||
const char* fallback =
|
||||
- "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include";
|
||||
+ "@apple-sdk@/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include";
|
||||
|
||||
if(dir_exists(fallback))
|
||||
{
|
||||
@@ -349,6 +353,25 @@ static bool push_isystem(pass_opt_t* opt, std::vector<const char*>& args,
|
||||
}
|
||||
|
||||
|
||||
+/*
|
||||
+ Add the Nix header search directories (see nix.h) as -internal-isystem
|
||||
+ entries. push_isystem skips any directory that doesn't exist, so a partial
|
||||
+ toolchain degrades gracefully.
|
||||
+*/
|
||||
+static bool add_nix_include_dirs(pass_opt_t* opt,
|
||||
+ std::vector<const char*>& args, errors_t* errors)
|
||||
+{
|
||||
+ std::vector<const char*> dirs;
|
||||
+ nix_collect_include_dirs(opt->strtab, dirs);
|
||||
+
|
||||
+ bool any = false;
|
||||
+ for(size_t i = 0; i < dirs.size(); i++)
|
||||
+ any |= push_isystem(opt, args, errors, "-internal-isystem", dirs[i], "");
|
||||
+
|
||||
+ return any;
|
||||
+}
|
||||
+
|
||||
+
|
||||
// System include directories for the target, derived from the same sysroot
|
||||
// the embedded linker uses — hand-rolled like LLD rather than driven through
|
||||
// clang's Driver, so the headers the shim compiles against stay consistent
|
||||
@@ -488,6 +511,9 @@ static bool add_system_include_args(pass_opt_t* opt, const char* sysroot,
|
||||
any |= push_isystem(opt, args, errors, "-internal-externc-isystem",
|
||||
sysroot, "/usr/include");
|
||||
|
||||
+ if(sysroot[0] == '\0')
|
||||
+ any |= add_nix_include_dirs(opt, args, errors);
|
||||
+
|
||||
// Per-directory skipping is right (multiarch and /usr/local are
|
||||
// legitimately absent on many systems), but an explicit --sysroot that
|
||||
// yields nothing at all deserves a direct answer, like the macOS branch
|
||||
@@ -1,26 +1,158 @@
|
||||
From ac4b2a65f997f7f779b9c63dbe683ba10a26fc7f Mon Sep 17 00:00:00 2001
|
||||
From: Morgan Jones <me@numin.it>
|
||||
Date: Fri, 22 May 2026 23:58:29 -0700
|
||||
Subject: [PATCH] genexe: take PONY_LINKER into account
|
||||
|
||||
---
|
||||
src/libponyc/codegen/genexe.cc | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/libponyc/codegen/genexe.cc b/src/libponyc/codegen/genexe.cc
|
||||
index 48f97578..5b9f36f1 100644
|
||||
index 826d69f0bcba..897afba953bb 100644
|
||||
--- a/src/libponyc/codegen/genexe.cc
|
||||
+++ b/src/libponyc/codegen/genexe.cc
|
||||
@@ -1448,6 +1448,9 @@ static bool link_exe(compile_t* c, ast_t* program,
|
||||
{
|
||||
errors_t* errors = c->opt->check.errors;
|
||||
@@ -22,6 +22,7 @@ LLD_HAS_DRIVER(wasm)
|
||||
#include "../type/lookup.h"
|
||||
#include "../../libponyrt/mem/pool.h"
|
||||
#include "ponyassert.h"
|
||||
+#include "nix.h"
|
||||
#include <string.h>
|
||||
|
||||
+ if(c->opt->linker == NULL)
|
||||
+ c->opt->linker = getenv("PONY_LINKER");
|
||||
#include <llvm/Support/raw_ostream.h>
|
||||
@@ -38,6 +39,8 @@ LLD_HAS_DRIVER(wasm)
|
||||
# include <llvm/TargetParser/Triple.h>
|
||||
#endif
|
||||
|
||||
+static bool dir_has_arch_libc_crt(const char* dir, uint16_t target_machine);
|
||||
+
|
||||
// Use embedded LLD for Linux, macOS, and Windows targets unless --linker
|
||||
// escape hatch is specified. Sanitizer builds fall back to the system
|
||||
// compiler driver for native compilation since sanitizer runtime libraries
|
||||
--
|
||||
2.53.0
|
||||
|
||||
#if defined(PONY_SANITIZER)
|
||||
// Generated at configure time (top-level CMakeLists.txt, PONY_SANITIZERS_ENABLED
|
||||
// block): the sanitizer runtime link fragment captured from the compiler driver.
|
||||
@@ -965,6 +968,9 @@ static bool link_exe_lld_elf(compile_t* c, ast_t* program,
|
||||
|
||||
program_lib_build_args_embedded(program, c->opt);
|
||||
|
||||
+ std::vector<const char*> env_libdirs;
|
||||
+ nix_collect_link_libdirs(c->opt->strtab, env_libdirs);
|
||||
+
|
||||
const char* sys_triple = system_triple(c->opt);
|
||||
bool is_freebsd = target_is_freebsd(c->opt->triple);
|
||||
bool is_dragonfly = target_is_dragonfly(c->opt->triple);
|
||||
@@ -996,7 +1002,11 @@ static bool link_exe_lld_elf(compile_t* c, ast_t* program,
|
||||
return false;
|
||||
}
|
||||
|
||||
- const char* dynlinker = dynamic_linker_path(c);
|
||||
+ // Prefer a Nix-provided ELF interpreter (baked default or environment);
|
||||
+ // fall back to the built-in FHS search when none is configured.
|
||||
+ const char* dynlinker = nix_dynamic_linker(c->opt->strtab);
|
||||
+ if(dynlinker[0] == '\0')
|
||||
+ dynlinker = dynamic_linker_path(c);
|
||||
if(!c->opt->staticbin && dynlinker == NULL)
|
||||
{
|
||||
errorf(errors, NULL,
|
||||
@@ -1009,10 +1019,23 @@ static bool link_exe_lld_elf(compile_t* c, ast_t* program,
|
||||
const char* libc_crt_dir = find_libc_crt_dir(sysroot, sys_triple,
|
||||
target_machine, c->opt->strtab);
|
||||
if(libc_crt_dir == NULL)
|
||||
+ {
|
||||
+ for(size_t i = 0; i < env_libdirs.size(); i++)
|
||||
+ {
|
||||
+ if(dir_has_arch_libc_crt(env_libdirs[i], target_machine))
|
||||
+ {
|
||||
+ libc_crt_dir = env_libdirs[i];
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if(libc_crt_dir == NULL)
|
||||
{
|
||||
errorf(errors, NULL,
|
||||
"could not find a libc crt startup object (crt1.o or crt0.o) "
|
||||
- "matching target architecture '%s' in sysroot '%s'",
|
||||
+ "matching target architecture '%s' in sysroot '%s'\n"
|
||||
+ " On NixOS systems, set PONY_LINK_LIBDIRS to the directory holding "
|
||||
+ "the arch-matching libc startup object (crt1.o or crt0.o).",
|
||||
c->opt->triple, sysroot);
|
||||
return false;
|
||||
}
|
||||
@@ -1305,6 +1328,21 @@ static bool link_exe_lld_elf(compile_t* c, ast_t* program,
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ Add /nix/store lib directories to the embedded linker args
|
||||
+*/
|
||||
+ for(size_t i = 0; i < env_libdirs.size(); i++)
|
||||
+ {
|
||||
+ snprintf(buf, sizeof(buf), "-L%s", env_libdirs[i]);
|
||||
+ args.push_back(stringtab(c->opt->strtab, buf));
|
||||
+
|
||||
+ if(!c->opt->staticbin)
|
||||
+ {
|
||||
+ args.push_back("-rpath");
|
||||
+ args.push_back(env_libdirs[i]);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// Standard system library fallback paths. The paths above cover
|
||||
// distro-specific locations (libc_crt_dir, gcc_lib_dir, etc.) but miss
|
||||
// common install locations like /usr/local/lib (where libraries built
|
||||
@@ -1732,9 +1770,10 @@ static const char* find_macos_sdk_path(strtable_t* strtab)
|
||||
pclose(f);
|
||||
}
|
||||
|
||||
- // Hardcoded fallback.
|
||||
+ // Fall back to the Nix apple-sdk when xcrun is unavailable. The unversioned
|
||||
+ // MacOSX.sdk symlink keeps this independent of the SDK version.
|
||||
const char* fallback =
|
||||
- "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib";
|
||||
+ "@apple-sdk@/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib";
|
||||
|
||||
struct stat st;
|
||||
if(stat(fallback, &st) == 0 && S_ISDIR(st.st_mode))
|
||||
@@ -1947,6 +1986,31 @@ static bool link_exe_lld_macho(compile_t* c, ast_t* program,
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ Add /nix/store lib directories to the embedded Mach-O linker args, mirroring
|
||||
+ the ELF path. On NixOS the C++ standard library, buildInputs and user FFI
|
||||
+ libraries live under /nix/store, not in the SDK's usr/lib or the Homebrew and
|
||||
+ /usr/local fallbacks above. nix_collect_link_libdirs() (see nix.h) gathers
|
||||
+ them from the baked PONY_NIX_LINK_LIBDIRS default, the PONY_LINK_LIBDIRS /
|
||||
+ NIX_LDFLAGS env vars, and the cc-wrapper's $NIX_CC/nix-support/cc-ldflags
|
||||
+ (which carries the -L<libc++> path on Darwin). Without this,
|
||||
+ `use "lib:c++" if osx` (as used by pony-compiler) fails to link with
|
||||
+ "library not found for -lc++".
|
||||
+*/
|
||||
+ std::vector<const char*> env_libdirs;
|
||||
+ nix_collect_link_libdirs(c->opt->strtab, env_libdirs);
|
||||
+ for(size_t i = 0; i < env_libdirs.size(); i++)
|
||||
+ {
|
||||
+ snprintf(buf, sizeof(buf), "-L%s", env_libdirs[i]);
|
||||
+ args.push_back(stringtab(c->opt->strtab, buf));
|
||||
+
|
||||
+ if(!c->opt->staticbin)
|
||||
+ {
|
||||
+ args.push_back("-rpath");
|
||||
+ args.push_back(env_libdirs[i]);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// Object file.
|
||||
args.push_back(file_o);
|
||||
|
||||
@@ -2417,3 +2481,21 @@ bool genexe(compile_t* c, ast_t* program)
|
||||
|
||||
return true;
|
||||
}
|
||||
+
|
||||
+// Does `dir` hold a libc startup object (crt1.o / crt0.o) whose ELF machine
|
||||
+// matches the target? Used to pick the crt directory out of the Nix libdirs
|
||||
+// gathered by nix_collect_link_libdirs().
|
||||
+static bool dir_has_arch_libc_crt(const char* dir, uint16_t target_machine)
|
||||
+{
|
||||
+ static const char* sentinels[] = { "crt1.o", "crt0.o" };
|
||||
+ char buf[PATH_MAX];
|
||||
+
|
||||
+ for(size_t j = 0; j < sizeof(sentinels) / sizeof(sentinels[0]); j++)
|
||||
+ {
|
||||
+ snprintf(buf, sizeof(buf), "%s/%s", dir, sentinels[j]);
|
||||
+ if(file_exists(buf) && elf_matches_target(buf, target_machine))
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
|
||||
291
pkgs/by-name/po/ponyc/nix-codegen.patch
Normal file
291
pkgs/by-name/po/ponyc/nix-codegen.patch
Normal file
@@ -0,0 +1,291 @@
|
||||
diff --git a/src/libponyc/codegen/nix.h b/src/libponyc/codegen/nix.h
|
||||
new file mode 100644
|
||||
index 000000000000..b1368f222b91
|
||||
--- /dev/null
|
||||
+++ b/src/libponyc/codegen/nix.h
|
||||
@@ -0,0 +1,47 @@
|
||||
+#ifndef CODEGEN_NIX_H
|
||||
+#define CODEGEN_NIX_H
|
||||
+
|
||||
+#include "../ast/stringtab.h"
|
||||
+
|
||||
+#include <vector>
|
||||
+
|
||||
+/*
|
||||
+ Nix/NixOS toolchain path discovery for the embedded LLD linker (genexe.cc)
|
||||
+ and the embedded clang C-shim compiler (gencshim.cc).
|
||||
+
|
||||
+ On Nix there is no FHS layout: no /usr/lib, no /lib64/ld-linux-*.so, no
|
||||
+ /usr/include. The libc, libgcc, C++ runtime, buildInputs and user FFI
|
||||
+ libraries all live under /nix/store, and their locations reach the compiler
|
||||
+ through baked-in defaults (the -DPONY_NIX_* macros set at configure time) and
|
||||
+ the cc-wrapper environment (NIX_LDFLAGS, NIX_CFLAGS_COMPILE,
|
||||
+ $NIX_CC/nix-support/*). These helpers gather those paths so the embedded
|
||||
+ tools link and compile without a wrapper script.
|
||||
+
|
||||
+ On a plain non-Nix build every source is empty, so the collectors append
|
||||
+ nothing and behaviour is unchanged.
|
||||
+*/
|
||||
+
|
||||
+// Library search directories for the linker, in priority order:
|
||||
+// PONY_NIX_LINK_LIBDIRS (baked default), PONY_LINK_LIBDIRS, NIX_LDFLAGS,
|
||||
+// NIX_LDFLAGS_BEFORE, $NIX_CC/nix-support {orig-libc, cc-ldflags}.
|
||||
+// Directories are interned into `strtab` and appended to `dirs`; existing
|
||||
+// entries are left in place.
|
||||
+void nix_collect_link_libdirs(strtable_t* strtab,
|
||||
+ std::vector<const char*>& dirs);
|
||||
+
|
||||
+// Header search directories for the C-shim compiler, in priority order:
|
||||
+// PONY_NIX_INCLUDE_DIRS (baked default), PONY_INCLUDE_DIRS,
|
||||
+// NIX_CFLAGS_COMPILE, $NIX_CC/nix-support/libc-cflags.
|
||||
+// Directories are interned into `strtab` and appended to `dirs`; existing
|
||||
+// entries are left in place.
|
||||
+void nix_collect_include_dirs(strtable_t* strtab,
|
||||
+ std::vector<const char*>& dirs);
|
||||
+
|
||||
+// The ELF dynamic linker (interpreter) path, in priority order:
|
||||
+// PONY_DYNAMIC_LINKER, PONY_NIX_DYNAMIC_LINKER (baked default),
|
||||
+// $NIX_CC/nix-support/dynamic-linker.
|
||||
+// Returns "" (never NULL) when none is configured, so the caller can test the
|
||||
+// first byte and fall back to the built-in FHS search.
|
||||
+const char* nix_dynamic_linker(strtable_t* strtab);
|
||||
+
|
||||
+#endif
|
||||
diff --git a/src/libponyc/codegen/nix.cc b/src/libponyc/codegen/nix.cc
|
||||
new file mode 100644
|
||||
index 000000000000..eddfd7833103
|
||||
--- /dev/null
|
||||
+++ b/src/libponyc/codegen/nix.cc
|
||||
@@ -0,0 +1,220 @@
|
||||
+#include "nix.h"
|
||||
+
|
||||
+#include "../ast/stringtab.h"
|
||||
+
|
||||
+#include <limits.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
+#ifndef PATH_MAX
|
||||
+# define PATH_MAX 4096
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ The baked-in Nix defaults. package.nix passes each of these through
|
||||
+ -DPONY_NIX_*="..." in NIX_CFLAGS_COMPILE at configure time, capturing the
|
||||
+ cc-wrapper's libc/libgcc/pcre2/openssl lib dirs, the ELF interpreter and the
|
||||
+ libc/gcc include dirs. They are empty strings on a plain source build, which
|
||||
+ disables every Nix-specific path below.
|
||||
+*/
|
||||
+#ifndef PONY_NIX_LINK_LIBDIRS
|
||||
+# define PONY_NIX_LINK_LIBDIRS ""
|
||||
+#endif
|
||||
+#ifndef PONY_NIX_DYNAMIC_LINKER
|
||||
+# define PONY_NIX_DYNAMIC_LINKER ""
|
||||
+#endif
|
||||
+#ifndef PONY_NIX_INCLUDE_DIRS
|
||||
+# define PONY_NIX_INCLUDE_DIRS ""
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ Split `s` into tokens on any delimiter character in `delims`, interning each
|
||||
+ token into `strtab` and appending it to `toks`. A token that would overflow
|
||||
+ the buffer is dropped whole rather than truncated to a wrong path.
|
||||
+*/
|
||||
+static void tokenize(const char* s, const char* delims, strtable_t* strtab,
|
||||
+ std::vector<const char*>& toks)
|
||||
+{
|
||||
+ if(s == NULL || s[0] == '\0')
|
||||
+ return;
|
||||
+
|
||||
+ char buf[PATH_MAX];
|
||||
+ size_t len = 0;
|
||||
+ bool overflow = false;
|
||||
+ for(const char* p = s; ; p++)
|
||||
+ {
|
||||
+ // The '\0' test is first so strchr is never asked to match the terminator.
|
||||
+ if(*p == '\0' || strchr(delims, *p) != NULL)
|
||||
+ {
|
||||
+ if(len > 0 && !overflow)
|
||||
+ {
|
||||
+ buf[len] = '\0';
|
||||
+ toks.push_back(stringtab(strtab, buf));
|
||||
+ }
|
||||
+ len = 0;
|
||||
+ overflow = false;
|
||||
+ if(*p == '\0')
|
||||
+ break;
|
||||
+ }
|
||||
+ else if(len < sizeof(buf) - 1)
|
||||
+ {
|
||||
+ buf[len++] = *p;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ overflow = true;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ Interpret a whitespace-separated linker-flag string (NIX_LDFLAGS,
|
||||
+ $NIX_CC/nix-support/cc-ldflags) for library directories, handling the joined
|
||||
+ -L<dir>, the separated -L <dir>, and -rpath / -rpath-link <dir> forms.
|
||||
+
|
||||
+ This is how /nix/store libraries (and directories injected by pkg-config) are
|
||||
+ found where other distros would look in /usr/lib and the like.
|
||||
+*/
|
||||
+static void append_ldflags_dirs(const char* flags, strtable_t* strtab,
|
||||
+ std::vector<const char*>& dirs)
|
||||
+{
|
||||
+ std::vector<const char*> toks;
|
||||
+ tokenize(flags, " \t\n\r", strtab, toks);
|
||||
+
|
||||
+ for(size_t i = 0; i < toks.size(); i++)
|
||||
+ {
|
||||
+ const char* t = toks[i];
|
||||
+ if(strncmp(t, "-L", 2) == 0)
|
||||
+ {
|
||||
+ if(t[2] != '\0')
|
||||
+ dirs.push_back(stringtab(strtab, t + 2));
|
||||
+ else if(i + 1 < toks.size())
|
||||
+ dirs.push_back(toks[++i]);
|
||||
+ }
|
||||
+ else if(strcmp(t, "-rpath") == 0 || strcmp(t, "-rpath-link") == 0)
|
||||
+ {
|
||||
+ if(i + 1 < toks.size())
|
||||
+ dirs.push_back(toks[++i]);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ Interpret a whitespace-separated compiler-flag string (NIX_CFLAGS_COMPILE,
|
||||
+ $NIX_CC/nix-support/libc-cflags) for header search directories, handling the
|
||||
+ joined -I<dir>, the separated -I <dir>, and -isystem / -idirafter / -iquote
|
||||
+ <dir> forms. This covers directories injected by pkg-config too.
|
||||
+*/
|
||||
+static void append_cflags_include_dirs(const char* flags, strtable_t* strtab,
|
||||
+ std::vector<const char*>& dirs)
|
||||
+{
|
||||
+ std::vector<const char*> toks;
|
||||
+ tokenize(flags, " \t\n\r", strtab, toks);
|
||||
+
|
||||
+ for(size_t i = 0; i < toks.size(); i++)
|
||||
+ {
|
||||
+ const char* t = toks[i];
|
||||
+ if(strcmp(t, "-isystem") == 0 || strcmp(t, "-idirafter") == 0 ||
|
||||
+ strcmp(t, "-iquote") == 0 || strcmp(t, "-I") == 0)
|
||||
+ {
|
||||
+ if(i + 1 < toks.size())
|
||||
+ dirs.push_back(toks[++i]);
|
||||
+ }
|
||||
+ else if(strncmp(t, "-I", 2) == 0 && t[2] != '\0')
|
||||
+ {
|
||||
+ dirs.push_back(stringtab(strtab, t + 2));
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ Read $NIX_CC/nix-support/<name> into `out`, trimming trailing whitespace.
|
||||
+ Returns false if the file is missing, empty, or so long it would be
|
||||
+ truncated -- acting on a partial flag string would be worse than ignoring it.
|
||||
+*/
|
||||
+static bool read_nix_support_file(const char* nix_cc, const char* name,
|
||||
+ char* out, size_t outsz)
|
||||
+{
|
||||
+ char path[PATH_MAX];
|
||||
+ snprintf(path, sizeof(path), "%s/nix-support/%s", nix_cc, name);
|
||||
+
|
||||
+ FILE* f = fopen(path, "rb");
|
||||
+ if(f == NULL)
|
||||
+ return false;
|
||||
+
|
||||
+ size_t n = fread(out, 1, outsz - 1, f);
|
||||
+ // If the buffer filled and the file still has bytes, the content was
|
||||
+ // truncated; reject it rather than acting on a partial flag string.
|
||||
+ bool truncated = (n == outsz - 1) && (fgetc(f) != EOF);
|
||||
+ fclose(f);
|
||||
+ if(truncated)
|
||||
+ return false;
|
||||
+ out[n] = '\0';
|
||||
+
|
||||
+ while(n > 0 && (out[n - 1] == '\n' || out[n - 1] == '\r' ||
|
||||
+ out[n - 1] == ' ' || out[n - 1] == '\t'))
|
||||
+ out[--n] = '\0';
|
||||
+
|
||||
+ return n > 0;
|
||||
+}
|
||||
+
|
||||
+void nix_collect_link_libdirs(strtable_t* strtab,
|
||||
+ std::vector<const char*>& dirs)
|
||||
+{
|
||||
+ tokenize(PONY_NIX_LINK_LIBDIRS, ":", strtab, dirs);
|
||||
+ tokenize(getenv("PONY_LINK_LIBDIRS"), ":", strtab, dirs);
|
||||
+ append_ldflags_dirs(getenv("NIX_LDFLAGS"), strtab, dirs);
|
||||
+ append_ldflags_dirs(getenv("NIX_LDFLAGS_BEFORE"), strtab, dirs);
|
||||
+
|
||||
+ const char* nix_cc = getenv("NIX_CC");
|
||||
+ if(nix_cc == NULL || nix_cc[0] == '\0')
|
||||
+ return;
|
||||
+
|
||||
+ char buf[PATH_MAX];
|
||||
+ if(read_nix_support_file(nix_cc, "orig-libc", buf, sizeof(buf)))
|
||||
+ {
|
||||
+ char libdir[PATH_MAX];
|
||||
+ snprintf(libdir, sizeof(libdir), "%s/lib", buf);
|
||||
+ dirs.push_back(stringtab(strtab, libdir));
|
||||
+ }
|
||||
+
|
||||
+ if(read_nix_support_file(nix_cc, "cc-ldflags", buf, sizeof(buf)))
|
||||
+ append_ldflags_dirs(buf, strtab, dirs);
|
||||
+}
|
||||
+
|
||||
+void nix_collect_include_dirs(strtable_t* strtab,
|
||||
+ std::vector<const char*>& dirs)
|
||||
+{
|
||||
+ tokenize(PONY_NIX_INCLUDE_DIRS, ":", strtab, dirs);
|
||||
+ tokenize(getenv("PONY_INCLUDE_DIRS"), ":", strtab, dirs);
|
||||
+ append_cflags_include_dirs(getenv("NIX_CFLAGS_COMPILE"), strtab, dirs);
|
||||
+
|
||||
+ const char* nix_cc = getenv("NIX_CC");
|
||||
+ if(nix_cc != NULL && nix_cc[0] != '\0')
|
||||
+ {
|
||||
+ char cflags[PATH_MAX * 4];
|
||||
+ if(read_nix_support_file(nix_cc, "libc-cflags", cflags, sizeof(cflags)))
|
||||
+ append_cflags_include_dirs(cflags, strtab, dirs);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+const char* nix_dynamic_linker(strtable_t* strtab)
|
||||
+{
|
||||
+ const char* dl = getenv("PONY_DYNAMIC_LINKER");
|
||||
+ if(dl != NULL && dl[0] != '\0')
|
||||
+ return stringtab(strtab, dl);
|
||||
+
|
||||
+ if(PONY_NIX_DYNAMIC_LINKER[0] != '\0')
|
||||
+ return stringtab(strtab, PONY_NIX_DYNAMIC_LINKER);
|
||||
+
|
||||
+ const char* nix_cc = getenv("NIX_CC");
|
||||
+ if(nix_cc != NULL && nix_cc[0] != '\0')
|
||||
+ {
|
||||
+ char buf[PATH_MAX];
|
||||
+ if(read_nix_support_file(nix_cc, "dynamic-linker", buf, sizeof(buf)))
|
||||
+ return stringtab(strtab, buf);
|
||||
+ }
|
||||
+
|
||||
+ return "";
|
||||
+}
|
||||
diff --git a/src/libponyc/CMakeLists.txt b/src/libponyc/CMakeLists.txt
|
||||
index f4e3e42ef48f..4a477e306ac1 100644
|
||||
--- a/src/libponyc/CMakeLists.txt
|
||||
+++ b/src/libponyc/CMakeLists.txt
|
||||
@@ -27,6 +27,7 @@ add_library(libponyc STATIC
|
||||
codegen/gendesc.c
|
||||
codegen/gencshim.cc
|
||||
codegen/genexe.cc
|
||||
+ codegen/nix.cc
|
||||
codegen/genexpr.c
|
||||
codegen/genfun.c
|
||||
codegen/genheader.c
|
||||
@@ -7,14 +7,11 @@
|
||||
cmake,
|
||||
coreutils,
|
||||
libxml2,
|
||||
lto ? true,
|
||||
makeWrapper,
|
||||
openssl,
|
||||
pcre2,
|
||||
pony-corral,
|
||||
python3,
|
||||
zlib,
|
||||
# Not really used for anything real, just at build time.
|
||||
git,
|
||||
replaceVars,
|
||||
which,
|
||||
@@ -25,13 +22,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ponyc";
|
||||
version = "0.64.0";
|
||||
version = "0.67.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ponylang";
|
||||
repo = "ponyc";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-CdsfJO+7y7nvlDdCXdWRB4vmP9pB1Jz5CVwJuha+yds=";
|
||||
hash = "sha256-9X2xaQ5nCV/sTL3WjXNDswIfNhlwgfV4/X70p1zTd2U=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -53,7 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeWrapper
|
||||
which
|
||||
python3
|
||||
git
|
||||
@@ -64,23 +60,36 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [
|
||||
libxml2
|
||||
openssl
|
||||
pcre2
|
||||
z3
|
||||
zlib
|
||||
];
|
||||
|
||||
patches = [
|
||||
./cmake-presets.patch
|
||||
# Sandbox disallows network access, so disabling problematic networking tests
|
||||
./disable-networking-tests.patch
|
||||
./disable-process-tests.patch
|
||||
|
||||
# Take PONY_LINKER into account
|
||||
./genexe-pony-linker.patch
|
||||
# Adds codegen/nix.cc + nix.h (the Nix toolchain-path helpers shared by the
|
||||
# embedded linker and C-shim compiler) and wires them into libponyc's
|
||||
# CMakeLists. Platform-independent, so applied verbatim everywhere.
|
||||
./nix-codegen.patch
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
(replaceVars ./fix-darwin-build.patch {
|
||||
inherit apple-sdk;
|
||||
})
|
||||
];
|
||||
++ (
|
||||
let
|
||||
# These patch the embedded LLD/clang codegen and reference the macOS SDK
|
||||
# via @apple-sdk@; substitute it on Darwin, apply verbatim elsewhere (the
|
||||
# placeholder sits in macOS-only code that other platforms never compile).
|
||||
sdkPatches = [
|
||||
./gencshim-pony-cc.patch
|
||||
./genexe-pony-linker.patch
|
||||
];
|
||||
in
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
map (p: replaceVars p { inherit apple-sdk; }) sdkPatches
|
||||
else
|
||||
sdkPatches
|
||||
);
|
||||
|
||||
postUnpack = ''
|
||||
mkdir -p $NIX_BUILD_TOP/deps
|
||||
@@ -88,8 +97,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
tar -C "$googletest" -cf $NIX_BUILD_TOP/deps/googletest-$googletestRev.tar .
|
||||
'';
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace packages/process/_test.pony \
|
||||
--replace-fail '"/bin/' '"${coreutils}/bin/' \
|
||||
@@ -105,8 +112,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
# We do not concern ourselves with darwin as the ponyc compiler
|
||||
# has logic which overrides this environmental variable in this
|
||||
# case.
|
||||
# has logic which overrides this environment variable.
|
||||
env.arch =
|
||||
if stdenv.hostPlatform.isx86_64 then
|
||||
"x86-64"
|
||||
@@ -118,32 +124,41 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
this may result in crashes on incompatible CPUs!
|
||||
'' "native";
|
||||
|
||||
preBuild = ''
|
||||
extraFlags=(build_flags=-j$NIX_BUILD_CORES)
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
export PONY_LINKER="$CC"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
export PONY_LINKER=ld
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isAarch64 ''
|
||||
# See this relnote about building on Raspbian:
|
||||
# https://github.com/ponylang/ponyc/blob/0.46.0/.release-notes/0.45.2.md
|
||||
extraFlags+=(pic_flag=-fPIC)
|
||||
''
|
||||
+ ''
|
||||
make libs "''${extraFlags[@]}"
|
||||
make configure "''${extraFlags[@]}"
|
||||
# Bake the Nix link/include paths into the compiler before it is built.
|
||||
preConfigure =
|
||||
lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
libcDir=$(dirname "$($CC -print-file-name=crt1.o)")
|
||||
gccDir=$(dirname "$($CC -print-libgcc-file-name)")
|
||||
gccSharedDir=$(dirname "$($CC -print-file-name=libgcc_s.so)")
|
||||
dynamicLinker=$(cat "$NIX_CC/nix-support/dynamic-linker")
|
||||
libcIncDir="$(cat "$NIX_CC/nix-support/orig-libc-dev")/include"
|
||||
# pcre2 and openssl are baked into the compiler's link path so an installed
|
||||
# ponyc can link `use "regex"` (pcre2) and `use "net/ssl"` (openssl)
|
||||
# programs without a wrapper — this replaces the old wrapProgram PONYPATH.
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DPONY_NIX_LINK_LIBDIRS=\"$libcDir:$gccDir:$gccSharedDir:${lib.getLib pcre2}/lib:${lib.getLib openssl}/lib\" -DPONY_NIX_DYNAMIC_LINKER=\"$dynamicLinker\" -DPONY_NIX_INCLUDE_DIRS=\"$libcIncDir:$gccDir/include:$gccDir/include-fixed\""
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
# Bake pcre2/openssl into the compiler's link path so an installed ponyc can
|
||||
# link `use "regex"` / `use "net/ssl"` without a wrapper; libc and the C++
|
||||
# standard library come from the SDK (via xcrun / apple-sdk) at link time.
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DPONY_NIX_LINK_LIBDIRS=\"${lib.getLib pcre2}/lib:${lib.getLib openssl}/lib\""
|
||||
'';
|
||||
|
||||
# Upstream drives the build through CMakePresets (which fix the binaryDir and
|
||||
# compiler), so we bypass the cmake setup hook's configurePhase and invoke the
|
||||
# presets directly rather than fight its flags.
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
cmake -DJOBS=$NIX_BUILD_CORES -P lib/build-libs.cmake
|
||||
cmake --preset release
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
makeFlags = [
|
||||
"PONYC_VERSION=${finalAttrs.version}"
|
||||
"prefix=${placeholder "out"}"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin ([ "bits=64" ] ++ lib.optional (!lto) "lto=no");
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
cmake --build --preset release --parallel $NIX_BUILD_CORES
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [
|
||||
"-Wno-error=redundant-move"
|
||||
@@ -152,35 +167,21 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
enableParallelChecking = true;
|
||||
|
||||
nativeCheckInputs = [ procps ];
|
||||
|
||||
installPhase = ''
|
||||
makeArgs=(config=release prefix=$out)
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
makeArgs+=(bits=64)
|
||||
''
|
||||
+ lib.optionalString (stdenv.hostPlatform.isDarwin && !lto) ''
|
||||
makeArgs+=(lto=no)
|
||||
''
|
||||
+ ''
|
||||
make "''${makeArgs[@]}" install
|
||||
wrapProgram $out/bin/ponyc \
|
||||
--prefix PATH ":" "${stdenv.cc}/bin" \
|
||||
--set-default CC "$CC" \
|
||||
--set-default PONY_LINKER "$PONY_LINKER" \
|
||||
--prefix PONYPATH : "${
|
||||
lib.makeLibraryPath [
|
||||
pcre2
|
||||
openssl
|
||||
(placeholder "out")
|
||||
]
|
||||
}"
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
ctest --preset release -L ci-core -j$NIX_BUILD_CORES
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
# Stripping breaks linking for ponyc
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cmake --install build/build_release --prefix=$out
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Stripping breaks linking for ponyc.
|
||||
dontStrip = true;
|
||||
|
||||
passthru = {
|
||||
@@ -189,14 +190,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Pony is an Object-oriented, actor-model, capabilities-secure, high performance programming language";
|
||||
description = "Object-oriented, actor-model, capabilities-secure, high performance programming language";
|
||||
homepage = "https://www.ponylang.io";
|
||||
license = lib.licenses.bsd2;
|
||||
mainProgram = "ponyc";
|
||||
maintainers = with lib.maintainers; [
|
||||
kamilchm
|
||||
redvers
|
||||
numinit
|
||||
];
|
||||
# Intel macOS (x86_64-darwin) is intentionally unsupported; only Apple
|
||||
# Silicon is supported on Darwin.
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
|
||||
@@ -48,11 +48,11 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "PortfolioPerformance";
|
||||
version = "0.86.0";
|
||||
version = "0.86.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/buchen/portfolio/releases/download/${finalAttrs.version}/PortfolioPerformance-${finalAttrs.version}-linux.gtk.x86_64.tar.gz";
|
||||
hash = "sha256-7qSWHlHKIzqHO5iCbi+y0+u7OoIC9tUYL1e0mpAHAWM=";
|
||||
hash = "sha256-iTHtIuSVapNc5ZckIIfDXYpMP2PiYLV8JojuqQ9nl9E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
libzip,
|
||||
cmocka,
|
||||
ninja,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
@@ -17,6 +18,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qdl";
|
||||
version = "2.7.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linux-msm";
|
||||
repo = "qdl";
|
||||
@@ -56,6 +60,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -3,21 +3,21 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
cmake,
|
||||
pkg-config,
|
||||
systemd,
|
||||
ninja,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qrtr";
|
||||
version = "0-unstable-2025-03-01";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linux-msm";
|
||||
repo = "qrtr";
|
||||
rev = "5923eea97377f4a3ed9121b358fd919e3659db7b";
|
||||
hash = "sha256-iHjF/2SQsvB/qC/UykNITH/apcYSVD+n4xA0S/rIfnM=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-plVPR3BKtMLSVgTK8TPFbt5vuo9ZovEGz6qJzUZ33G4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -30,11 +30,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
installFlags = [ "prefix=$(out)" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ matthewcroughan ];
|
||||
description = "QMI IDL compiler";
|
||||
homepage = "https://github.com/linux-msm/qrtr";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.aarch64;
|
||||
platforms = [ "aarch64-linux" ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
}:
|
||||
buildGo126Module (finalAttrs: {
|
||||
pname = "qui";
|
||||
version = "1.23.0";
|
||||
version = "1.24.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "autobrr";
|
||||
repo = "qui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RprALTd610Krh1q5yr0HIbNwb8TDbUvgbFfMMrsJT+E=";
|
||||
hash = "sha256-xtYHIM1xYg92EwHndpuSRSdg8aAjNc3xaBo+Uu6Zsf4=";
|
||||
};
|
||||
|
||||
qui-web = stdenvNoCC.mkDerivation (finalAttrs': {
|
||||
@@ -44,7 +44,7 @@ buildGo126Module (finalAttrs: {
|
||||
;
|
||||
pnpm = pnpm_11;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-aty/BRc3WqdnN3yynH4EbyledU3NtKu9E+3vP4KAdsk=";
|
||||
hash = "sha256-ajnOwiMBpNesn+4F+lNpdWO7VgK7O99xITVz4NjVWTE=";
|
||||
};
|
||||
|
||||
postBuild = ''
|
||||
@@ -56,7 +56,7 @@ buildGo126Module (finalAttrs: {
|
||||
'';
|
||||
});
|
||||
|
||||
vendorHash = "sha256-6DX2s/y5nHYI5Jz2zs+ROGM+xk4K5yTwEwGkNiYhlcc=";
|
||||
vendorHash = "sha256-GxpYkRsPUVbVK8oKwwGM+AGNvfzT2pdUadX+pAmr7Bk=";
|
||||
|
||||
preBuild = ''
|
||||
cp -r ${finalAttrs.qui-web}/* web/dist
|
||||
|
||||
@@ -24,16 +24,16 @@ let
|
||||
in
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "shogihome";
|
||||
version = "1.28.0";
|
||||
version = "1.28.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sunfish-shogi";
|
||||
repo = "shogihome";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-icFWpyfdnm0wIkTVa2ijcnBcDmxrutV38vN3/8AY4cg=";
|
||||
hash = "sha256-En2tH9AFBdhZsHoy/uiHf4RO3+gFkfwHnZAyDJ7FcoE=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-SSpw8bBbf6saWwR3ZpqMrbrdjDJTCeARBAlHO65O+Zc=";
|
||||
npmDepsHash = "sha256-9O/PQAGv0xg6dKgFHjErYTnaM2PxyUIZk8auiReSo2Q=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace package.json \
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "snip";
|
||||
version = "0.22.0";
|
||||
version = "0.24.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "edouard-claude";
|
||||
repo = "snip";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-y88ZHg29Z/QBZk8YWXp287Rel7DpPESYAlbqt5hj1nc=";
|
||||
hash = "sha256-17vAgwuOrDN81+XKa2vn60T9RyZktOoF2xfF/RE+BNw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-2MxFZqjNuLzcuu+bsLyOyHIakCxh7j0FUx8LsjZRhrY=";
|
||||
|
||||
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
installShellCompletion --cmd starship \
|
||||
--bash <(${emulator} $out/bin/starship completions bash) \
|
||||
--fish <(${emulator} $out/bin/starship completions fish) \
|
||||
--nushell <(${emulator} $out/bin/starship completions nushell) \
|
||||
--zsh <(${emulator} $out/bin/starship completions zsh)
|
||||
''
|
||||
);
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "stevenblack-blocklist";
|
||||
version = "3.16.99";
|
||||
version = "3.16.102";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StevenBlack";
|
||||
repo = "hosts";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-IZaEcG/u1zgJBxXc2Dyx0gxzpnmWQQ5NUyOrDBLiOXk=";
|
||||
hash = "sha256-TzFQ0aOcIgdNHD7pmrMkdcv+V9ZNzqXnSOm4wBaLtwI=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "talhelper";
|
||||
version = "3.1.14";
|
||||
version = "3.1.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "budimanjojo";
|
||||
repo = "talhelper";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vFI7xKnxEoqNcBKW+FSNXHNz6g1pb2zq0eiAc5AbcQA=";
|
||||
hash = "sha256-1jvUf/YsCdj/zJ+BoIv+52CobScWMlc+hIHUN9VPN04=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-mXM7c6T5qcAHez5QrmxFmGE0DLyL2RADIFTdrQaH2GQ=";
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "temporal-cli";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "temporalio";
|
||||
repo = "cli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RswHPnaWN3bLerhttVb/3G//cyz9Fr+x/B4h+/SSSqA=";
|
||||
hash = "sha256-OBdWQLPFvXAsbjNv/Tq+75IUl31XVtpgJVCQdHQqdBw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9lO9uhy1n85QYyoh27cKhdlcuL4GT98aCNWwe8tOwoQ=";
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "terramate";
|
||||
version = "0.17.1";
|
||||
version = "0.17.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "terramate-io";
|
||||
repo = "terramate";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-jdhOuaSFcq3bw9cX+IJN233x4o76shMfZQDmyUiTWO4=";
|
||||
hash = "sha256-NoQLxvby0sUA/tcyfJUMuNQukfQINS+v1oJDS0+ehJ0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tjAsA8rxFE4zINc0Dpm2/5PpJ6BGYJiz059dBKCKsck=";
|
||||
vendorHash = "sha256-vmweLyq9lr2V4ou2mzVnIaI8p63D9c0IVLKo8vYLm54=";
|
||||
|
||||
# required for version info
|
||||
nativeBuildInputs = [ git ];
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "ulid";
|
||||
version = "2.1.1";
|
||||
version = "2.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oklog";
|
||||
repo = "ulid";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-kPNLaZMGwGc7ngPCivf/n4Bis219yOkGAaa6mt7+yTY=";
|
||||
hash = "sha256-J4+O+1pQPAr+ieHBocT/AQ9kjmcU40RqRKMrS4qQxfc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-s1YkEwFxE1zpUUCgwOAl8i6/9HB2rcGG+4kqnixTit0=";
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "wastebin";
|
||||
version = "3.7.0";
|
||||
version = "3.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matze";
|
||||
repo = "wastebin";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-uWr2xJjWcm0WmOB6eD2pdzUch7HSk9KdHV31FoYHr0E=";
|
||||
hash = "sha256-HwJlulSvhqBIrV3Dk/kpDj4+yEsX6gOA4kzWzpRPfbE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-m5cO3J4LryO+pS991DkS+4J6dw8ltP9sJR88FVGdsdw=";
|
||||
cargoHash = "sha256-+p+EM5ggCpuEo/cEwjcdjJd8HahCwpn8QGdmRjJIijA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "zennotes-desktop";
|
||||
version = "2.19.0";
|
||||
npmDepsHash = "sha256-z1njt74VvEpxO75bprGD3/eUsv1gH2GPIz6Svye+WYg=";
|
||||
version = "2.20.2";
|
||||
npmDepsHash = "sha256-xm9VdnjAxeCi/wyD/otqlv0ioqb53eORcELoyPY7PK8=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ZenNotes";
|
||||
repo = "zennotes";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-pf90wkUMIJ9wGM8JzkTWv/CipJc0cBzeSozhKdGPCGw=";
|
||||
hash = "sha256-t2VCOSpdpfRIEuck3kiJ9SWcnQzYEHbPDDRhnX2l0+k=";
|
||||
};
|
||||
|
||||
npmWorkspace = "apps/desktop";
|
||||
|
||||
@@ -62,6 +62,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
installShellCompletion --cmd zoxide \
|
||||
--bash contrib/completions/zoxide.bash \
|
||||
--fish contrib/completions/zoxide.fish \
|
||||
--nushell contrib/completions/zoxide.nu \
|
||||
--zsh contrib/completions/_zoxide
|
||||
'';
|
||||
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "environ-config";
|
||||
version = "24.1.0";
|
||||
version = "26.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "environ-config";
|
||||
owner = "hynek";
|
||||
tag = version;
|
||||
hash = "sha256-XiJNLQgKhf9hXQfIMsfiEaHx7IHaExhphpYfOBgIT+s=";
|
||||
hash = "sha256-baj61mS4rSLMngrAdmSwupN/2ewo/GDwbZqFTr8fVuE=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -8,13 +8,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "pure-magic-rs";
|
||||
version = "0.3.3";
|
||||
version = "0.4.3";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qjerome";
|
||||
repo = "magic-rs";
|
||||
tag = "pure-magic-v${finalAttrs.version}";
|
||||
tag = "pure-magic-rs-v${finalAttrs.version}";
|
||||
hash = "sha256-cvCAiZSyB+9tNydfco9YGU5NA6Ja/SCsVeYJvuKitGo=";
|
||||
};
|
||||
|
||||
@@ -30,7 +31,9 @@ buildPythonPackage (finalAttrs: {
|
||||
maturinBuildHook
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pure_magic_rs" ];
|
||||
|
||||
@@ -39,6 +42,5 @@ buildPythonPackage (finalAttrs: {
|
||||
homepage = "https://github.com/qjerome/magic-rs";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "pure-magic-rs";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -16,12 +16,14 @@
|
||||
urllib3,
|
||||
|
||||
# tests
|
||||
addBinToPathHook,
|
||||
pytestCheckHook,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "trafilatura";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -29,23 +31,11 @@ buildPythonPackage (finalAttrs: {
|
||||
owner = "adbar";
|
||||
repo = "trafilatura";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hSeJH+8JX8QC3zHMZ3+M2H0C3xI+BCvLnSo/Ih1wUQw=";
|
||||
hash = "sha256-U6sqUuPQZiv7VMCJ5lLJ3qqdEBq60J82nHHlGdCOyX4=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
# nixify path to the trafilatura binary in the test suite
|
||||
''
|
||||
substituteInPlace tests/cli_tests.py \
|
||||
--replace-fail \
|
||||
'trafilatura_bin = "trafilatura"' \
|
||||
'trafilatura_bin = "${placeholder "out"}/bin/trafilatura"'
|
||||
'';
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"lxml"
|
||||
];
|
||||
dependencies = [
|
||||
certifi
|
||||
charset-normalizer
|
||||
@@ -56,7 +46,11 @@ buildPythonPackage (finalAttrs: {
|
||||
urllib3
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
addBinToPathHook # tests need to execute the trafilatura binary
|
||||
pytestCheckHook
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Disable tests that require an internet connection
|
||||
|
||||
@@ -190,9 +190,9 @@
|
||||
]
|
||||
},
|
||||
"integration_deepl": {
|
||||
"hash": "sha256-RHYxxZw/2/uDdZdf8kGYgGBlBi1rfgXUtTtr9lgr/20=",
|
||||
"url": "https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.2.0/integration_deepl-v2.2.0.tar.gz",
|
||||
"version": "2.2.0",
|
||||
"hash": "sha256-PMK1Z3oFVkN8WtgySidCLnp+SZ3xHkPfzI2xVBfBm/k=",
|
||||
"url": "https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.3.0/integration_deepl-v2.3.0.tar.gz",
|
||||
"version": "2.3.0",
|
||||
"description": "Deepl integration providing an translations through deepl.com with Nextcloud\n\nThis app integrates with [Nextcloud Assistant](https://apps.nextcloud.com/apps/assistant) to offer translation services We recommend to install Assistant additionally and activate Deepl as translation provider in the Artifical Intelligence admin settings.\n\nThis app also integrates with the translation API of Nextcloud server to offer translation services without Assistant. Currently this is available in Text and Talk.\n\nTo run translations and any other Task Processing tasks synchronously, run the following command in a background process (10 is the interval in seconds when the process should relaunch to use the latest php changes):\n\n```sh\nset -e; while true; do occ background-job:worker -v -t 10 \"OC\\TaskProcessing\\SynchronousBackgroundJob\"; done\n```\n\n## Ethical AI Rating\n### Rating: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
|
||||
"homepage": "https://github.com/nextcloud/integration_deepl",
|
||||
"licenses": [
|
||||
@@ -309,10 +309,20 @@
|
||||
"agpl"
|
||||
]
|
||||
},
|
||||
"pantry": {
|
||||
"hash": "sha256-kPldsAVbpoJ+6kMWmh70j3HBTlzZibtbyr5tvT0ZcaA=",
|
||||
"url": "https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.24.0/pantry-v0.24.0.tar.gz",
|
||||
"version": "0.24.0",
|
||||
"description": "Pantry helps households stay organized in Nextcloud.\n\n- **Houses** group members and their shared data. A person can belong to multiple houses and switch between them freely.\n- **Checklists** support recurring items (e.g. milk every week) that automatically reappear when due. Share lists with the whole household so everyone knows what to pick up.\n- **Photo boards** let you keep shared reference photos organized in folders — the right brand of dog food, a favorite recipe card, a product label, and so on.\n- **Notes wall** gives the household a lightweight shared space for reminders, pinned messages, and quick notes with customizable colors.\n- **Notifications** keep everyone in the loop when photos are uploaded or notes are added or edited.\n\nAll data is scoped to a house; members only see the houses they belong to.\n\nPantry also has companion apps for mobile and desktop that let you manage your lists, photos and notes on the go and keep everything in sync with your Nextcloud instance.\n\n**Companion apps:** Android ([Google Play](https://play.google.com/store/apps/details?id=dev.casraf.pantry), [F-Droid](https://f-droid.org/en/packages/dev.casraf.pantry/)) | iOS/macOS ([App Store](https://apps.apple.com/us/app/pantry-for-nextcloud/id6762161619))",
|
||||
"homepage": "https://github.com/chenasraf/nextcloud-pantry",
|
||||
"licenses": [
|
||||
"agpl"
|
||||
]
|
||||
},
|
||||
"phonetrack": {
|
||||
"hash": "sha256-bt/R1kZiTa9pWruKsAU01ni1d0AIy7vAOvIF8zwRhhw=",
|
||||
"url": "https://github.com/julien-nc/phonetrack/releases/download/v1.3.1/phonetrack-1.3.1.tar.gz",
|
||||
"version": "1.3.1",
|
||||
"hash": "sha256-cinP3WFja6QjJYlQZcTKayHTheLjvnKY9s+CIJWKlcQ=",
|
||||
"url": "https://github.com/julien-nc/phonetrack/releases/download/v1.3.2/phonetrack-1.3.2.tar.gz",
|
||||
"version": "1.3.2",
|
||||
"description": "# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile device's locations.\n\n🗺 It receives information from mobile phone's logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change colour/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ](https://liberapay.com/eneiluj/donate)",
|
||||
"homepage": "https://github.com/julien-nc/phonetrack",
|
||||
"licenses": [
|
||||
|
||||
@@ -190,9 +190,9 @@
|
||||
]
|
||||
},
|
||||
"integration_deepl": {
|
||||
"hash": "sha256-RHYxxZw/2/uDdZdf8kGYgGBlBi1rfgXUtTtr9lgr/20=",
|
||||
"url": "https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.2.0/integration_deepl-v2.2.0.tar.gz",
|
||||
"version": "2.2.0",
|
||||
"hash": "sha256-PMK1Z3oFVkN8WtgySidCLnp+SZ3xHkPfzI2xVBfBm/k=",
|
||||
"url": "https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.3.0/integration_deepl-v2.3.0.tar.gz",
|
||||
"version": "2.3.0",
|
||||
"description": "Deepl integration providing an translations through deepl.com with Nextcloud\n\nThis app integrates with [Nextcloud Assistant](https://apps.nextcloud.com/apps/assistant) to offer translation services We recommend to install Assistant additionally and activate Deepl as translation provider in the Artifical Intelligence admin settings.\n\nThis app also integrates with the translation API of Nextcloud server to offer translation services without Assistant. Currently this is available in Text and Talk.\n\nTo run translations and any other Task Processing tasks synchronously, run the following command in a background process (10 is the interval in seconds when the process should relaunch to use the latest php changes):\n\n```sh\nset -e; while true; do occ background-job:worker -v -t 10 \"OC\\TaskProcessing\\SynchronousBackgroundJob\"; done\n```\n\n## Ethical AI Rating\n### Rating: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
|
||||
"homepage": "https://github.com/nextcloud/integration_deepl",
|
||||
"licenses": [
|
||||
@@ -309,10 +309,20 @@
|
||||
"agpl"
|
||||
]
|
||||
},
|
||||
"pantry": {
|
||||
"hash": "sha256-kPldsAVbpoJ+6kMWmh70j3HBTlzZibtbyr5tvT0ZcaA=",
|
||||
"url": "https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.24.0/pantry-v0.24.0.tar.gz",
|
||||
"version": "0.24.0",
|
||||
"description": "Pantry helps households stay organized in Nextcloud.\n\n- **Houses** group members and their shared data. A person can belong to multiple houses and switch between them freely.\n- **Checklists** support recurring items (e.g. milk every week) that automatically reappear when due. Share lists with the whole household so everyone knows what to pick up.\n- **Photo boards** let you keep shared reference photos organized in folders — the right brand of dog food, a favorite recipe card, a product label, and so on.\n- **Notes wall** gives the household a lightweight shared space for reminders, pinned messages, and quick notes with customizable colors.\n- **Notifications** keep everyone in the loop when photos are uploaded or notes are added or edited.\n\nAll data is scoped to a house; members only see the houses they belong to.\n\nPantry also has companion apps for mobile and desktop that let you manage your lists, photos and notes on the go and keep everything in sync with your Nextcloud instance.\n\n**Companion apps:** Android ([Google Play](https://play.google.com/store/apps/details?id=dev.casraf.pantry), [F-Droid](https://f-droid.org/en/packages/dev.casraf.pantry/)) | iOS/macOS ([App Store](https://apps.apple.com/us/app/pantry-for-nextcloud/id6762161619))",
|
||||
"homepage": "https://github.com/chenasraf/nextcloud-pantry",
|
||||
"licenses": [
|
||||
"agpl"
|
||||
]
|
||||
},
|
||||
"phonetrack": {
|
||||
"hash": "sha256-bt/R1kZiTa9pWruKsAU01ni1d0AIy7vAOvIF8zwRhhw=",
|
||||
"url": "https://github.com/julien-nc/phonetrack/releases/download/v1.3.1/phonetrack-1.3.1.tar.gz",
|
||||
"version": "1.3.1",
|
||||
"hash": "sha256-cinP3WFja6QjJYlQZcTKayHTheLjvnKY9s+CIJWKlcQ=",
|
||||
"url": "https://github.com/julien-nc/phonetrack/releases/download/v1.3.2/phonetrack-1.3.2.tar.gz",
|
||||
"version": "1.3.2",
|
||||
"description": "# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile device's locations.\n\n🗺 It receives information from mobile phone's logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change colour/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ](https://liberapay.com/eneiluj/donate)",
|
||||
"homepage": "https://github.com/julien-nc/phonetrack",
|
||||
"licenses": [
|
||||
|
||||
@@ -190,9 +190,9 @@
|
||||
]
|
||||
},
|
||||
"integration_deepl": {
|
||||
"hash": "sha256-RHYxxZw/2/uDdZdf8kGYgGBlBi1rfgXUtTtr9lgr/20=",
|
||||
"url": "https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.2.0/integration_deepl-v2.2.0.tar.gz",
|
||||
"version": "2.2.0",
|
||||
"hash": "sha256-PMK1Z3oFVkN8WtgySidCLnp+SZ3xHkPfzI2xVBfBm/k=",
|
||||
"url": "https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.3.0/integration_deepl-v2.3.0.tar.gz",
|
||||
"version": "2.3.0",
|
||||
"description": "Deepl integration providing an translations through deepl.com with Nextcloud\n\nThis app integrates with [Nextcloud Assistant](https://apps.nextcloud.com/apps/assistant) to offer translation services We recommend to install Assistant additionally and activate Deepl as translation provider in the Artifical Intelligence admin settings.\n\nThis app also integrates with the translation API of Nextcloud server to offer translation services without Assistant. Currently this is available in Text and Talk.\n\nTo run translations and any other Task Processing tasks synchronously, run the following command in a background process (10 is the interval in seconds when the process should relaunch to use the latest php changes):\n\n```sh\nset -e; while true; do occ background-job:worker -v -t 10 \"OC\\TaskProcessing\\SynchronousBackgroundJob\"; done\n```\n\n## Ethical AI Rating\n### Rating: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
|
||||
"homepage": "https://github.com/nextcloud/integration_deepl",
|
||||
"licenses": [
|
||||
@@ -309,10 +309,20 @@
|
||||
"agpl"
|
||||
]
|
||||
},
|
||||
"pantry": {
|
||||
"hash": "sha256-kPldsAVbpoJ+6kMWmh70j3HBTlzZibtbyr5tvT0ZcaA=",
|
||||
"url": "https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.24.0/pantry-v0.24.0.tar.gz",
|
||||
"version": "0.24.0",
|
||||
"description": "Pantry helps households stay organized in Nextcloud.\n\n- **Houses** group members and their shared data. A person can belong to multiple houses and switch between them freely.\n- **Checklists** support recurring items (e.g. milk every week) that automatically reappear when due. Share lists with the whole household so everyone knows what to pick up.\n- **Photo boards** let you keep shared reference photos organized in folders — the right brand of dog food, a favorite recipe card, a product label, and so on.\n- **Notes wall** gives the household a lightweight shared space for reminders, pinned messages, and quick notes with customizable colors.\n- **Notifications** keep everyone in the loop when photos are uploaded or notes are added or edited.\n\nAll data is scoped to a house; members only see the houses they belong to.\n\nPantry also has companion apps for mobile and desktop that let you manage your lists, photos and notes on the go and keep everything in sync with your Nextcloud instance.\n\n**Companion apps:** Android ([Google Play](https://play.google.com/store/apps/details?id=dev.casraf.pantry), [F-Droid](https://f-droid.org/en/packages/dev.casraf.pantry/)) | iOS/macOS ([App Store](https://apps.apple.com/us/app/pantry-for-nextcloud/id6762161619))",
|
||||
"homepage": "https://github.com/chenasraf/nextcloud-pantry",
|
||||
"licenses": [
|
||||
"agpl"
|
||||
]
|
||||
},
|
||||
"phonetrack": {
|
||||
"hash": "sha256-bt/R1kZiTa9pWruKsAU01ni1d0AIy7vAOvIF8zwRhhw=",
|
||||
"url": "https://github.com/julien-nc/phonetrack/releases/download/v1.3.1/phonetrack-1.3.1.tar.gz",
|
||||
"version": "1.3.1",
|
||||
"hash": "sha256-cinP3WFja6QjJYlQZcTKayHTheLjvnKY9s+CIJWKlcQ=",
|
||||
"url": "https://github.com/julien-nc/phonetrack/releases/download/v1.3.2/phonetrack-1.3.2.tar.gz",
|
||||
"version": "1.3.2",
|
||||
"description": "# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile device's locations.\n\n🗺 It receives information from mobile phone's logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change colour/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ](https://liberapay.com/eneiluj/donate)",
|
||||
"homepage": "https://github.com/julien-nc/phonetrack",
|
||||
"licenses": [
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
, "oidc_login": "agpl3Only"
|
||||
, "onlyoffice": "asl20"
|
||||
, "phonetrack": "agpl3Plus"
|
||||
, "pantry": "agpl3Plus"
|
||||
, "polls": "agpl3Plus"
|
||||
, "previewgenerator": "agpl3Plus"
|
||||
, "qownnotesapi": "agpl3Plus"
|
||||
|
||||
@@ -835,7 +835,6 @@ mapAliases {
|
||||
fltk13-minimal = warnAlias "'fltk13-minimal' has been renamed to 'fltk_1_3-minimal'" fltk_1_3-minimal; # Added 2026-01-14
|
||||
fltk14 = warnAlias "'fltk14' has been renamed to 'fltk_1_4'" fltk_1_4; # Added 2026-01-14
|
||||
fltk14-minimal = warnAlias "'fltk14-minimal' has been renamed to 'fltk_1_4-minimal'" fltk_1_4-minimal; # Added 2026-01-14
|
||||
fluent-gtk-theme = throw "'fluent-gtk-theme' has been removed because it depended on 'gtk-engine-murrine', which was removed because it was unmaintained upstream and depended on GTK 2."; # Added 2026-07-22
|
||||
flut-renamer = throw "flut-renamer is unmaintained and has been removed"; # Added 2025-08-26
|
||||
flutter324 = throw "flutter324 has been removed because it isn't updated anymore, and no packages in nixpkgs use it. If you still need it, use flutter.mkFlutter to get a custom version"; # Added 2025-10-28
|
||||
flutter326 = throw "flutter326 has been removed because it isn't updated anymore, and no packages in nixpkgs use it. If you still need it, use flutter.mkFlutter to get a custom version"; # Added 2025-06-08
|
||||
|
||||
Reference in New Issue
Block a user