Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2025-11-09 18:07:17 +00:00
committed by GitHub
60 changed files with 863 additions and 1145 deletions
+6 -2
View File
@@ -210,7 +210,7 @@ module.exports = async ({ github, context, core, dry }) => {
}
}
// Check for any human reviews other than GitHub actions and other GitHub apps.
// Check for any human reviews other than the PR author, GitHub actions and other GitHub apps.
// Accounts could be deleted as well, so don't count them.
const reviews = (
await github.paginate(github.rest.pulls.listReviews, {
@@ -218,7 +218,11 @@ module.exports = async ({ github, context, core, dry }) => {
pull_number,
})
).filter(
(r) => r.user && !r.user.login.endsWith('[bot]') && r.user.type !== 'Bot',
(r) =>
r.user &&
!r.user.login.endsWith('[bot]') &&
r.user.type !== 'Bot' &&
r.user.id !== pull_request.user?.id,
)
const approvals = new Set(
+2
View File
@@ -353,6 +353,8 @@
- `plasma6`: Fixed the `ksycoca` cache not being re-built when `$XDG_CACHE_HOME` is set to something that isn't `$HOME/.cache`.
- `dragonflydb` has been updated from version 0.1.0 to version 1.34.2.
## Nixpkgs Library {#sec-nixpkgs-release-25.11-lib}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+6 -6
View File
@@ -5417,12 +5417,6 @@
githubId = 202474;
name = "Jens Reimann";
};
ctucx = {
email = "katja@ctu.cx";
github = "katjakwast";
githubId = 176372446;
name = "Katja Kwast";
};
cupcakearmy = {
name = "Niccolo Borgioli";
email = "nix@nicco.io";
@@ -29007,6 +29001,12 @@
githubId = 450885;
name = "Francesco Zanini";
};
zaphyra = {
email = "katja@zaphyra.eu";
github = "katjakwast";
githubId = 176372446;
name = "Katja Kwast";
};
zareix = {
email = "contact@raphael-catarino.fr";
github = "zareix";
@@ -281,6 +281,8 @@
- `services.quorum` has been removed as the `quorum` package was broken and abandoned upstream.
- `orjail` package has been removed as it is broken by the latest firejail release and seems unmaintained.
- `teleport` has been upgraded from major version 17 to major version 18.
Refer to [upstream upgrade instructions](https://goteleport.com/docs/upgrading/overview/)
and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
+1 -1
View File
@@ -71,7 +71,7 @@ in
defaultChannel = mkOption {
internal = true;
type = types.str;
default = "https://nixos.org/channels/nixos-unstable";
default = "https://channels.nixos.org/nixos-unstable";
description = "Default NixOS channel to which the root user is subscribed.";
};
};
+1 -2
View File
@@ -2312,8 +2312,7 @@ in
environment.etc = lib.mapAttrs' makePAMService enabledServices;
systemd =
lib.optionalAttrs
(lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services))
lib.mkIf (lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services))
{
tmpfiles.packages = [ pkgs.util-linux.lastlog ]; # /lib/tmpfiles.d/lastlog2-tmpfiles.conf
services.lastlog2-import = {
@@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "wgsl-analyzer";
publisher = "wgsl-analyzer";
version = "0.11.94";
hash = "sha256-FfQnNFAEh1PwT2M25km+7nEO70mDDQ75p0KHjBlAcLE=";
version = "0.11.130";
hash = "sha256-bwtyLkMo9+3XQwUzKqSHOlCrSPqJMqKAPF17aeyr4QI=";
};
nativeBuildInputs = [
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "puae";
version = "0-unstable-2025-08-19";
version = "0-unstable-2025-11-02";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-uae";
rev = "9e2aa770a9b6b0a4e1f4fc05eb0db6c8e7aba8ee";
hash = "sha256-YTS0OgYJCGawpsDHvU79dDA+iePna5Fcab2Le3vdVSk=";
rev = "0043cf9c061bd9b81dbc1869c2761017139cfc63";
hash = "sha256-xi/7zT+4LNfSMwfA+rvxdvsgpQRHceK6Heqrcy84RVk=";
};
makefile = "Makefile";
@@ -0,0 +1,11 @@
1755c55e08aec3872db177464e0bc3f48c89aa40c1ec32605b472d88f6e92963eb08a10aa37bc47e837ae693db18652f40dfbcd6bf26f07278f0566a19c72cd5 poster.jpg
3ec33eae8153b6e2bdfff8157b332e6f0cfbc14d0c30e6a34042deecf0cff01ee19ca54314678b5ad970ae669da8cb91425e96253caf91d95ae01a62917827b7 Sintel.de.srt
ceac1ea59a9224b26946c6683acfaae27e1551c696fb2c632b55151c17f3faa8f930bbd93904cd7a13a896ad3d670b01e2f2bc1a8851060e05fedd85f804ba17 Sintel.en.srt
6efbc68f872c212f6579c5a5d42d6c2a60d775d32be8a7badcd147dbfc07b24cb2cc97e04a796af4002fcd4c8860a7061aed5d59a1280e4352d1bbd701d612a8 Sintel.es.srt
5619ad5bc7ca82e7f1f3b5e9197ab6ef6f5edd7293d396a3c036fef95d5ef592cf9e8d403e8532f4ba71a93fc9556614bfba3473eceae392d2e3175116c06f95 Sintel.fr.srt
fa93c051491b4e11f8e7a643c2138198f795315c942134b94ceace1adda4a5b28dc58b01b507e0da4c26784fc968f47bca1409f985eec2bf80c3e694662ed7c5 Sintel.it.srt
63426110ed7aa60ed3525078fa324cef4276393b4ada55e0a8cf8292500fdd59c2984e299a4e4f65e4f273b8ae2624da22700de4a55054b00e9d987f606c3c7f Sintel.mp4
5fb04c25fda9dada8c808a9f289cec2cca001d60966b69d61ad663240a869c76dd0aff605122823ccbe199e266331f6a4b11a414bba92999a7041c4b534ef432 Sintel.nl.srt
510f052cbbda0b9fc31679b9a26cc16766df9054fc15b66cff475975725a1e8452e69a28a6f90bb965330a49e49bbf42a90efb13de07eaece7d273ef1ca7978a Sintel.pl.srt
510dc0eca608bd0fdd9633ea80365c916f8c4f0fd8e2fdf77534f455f03814401d210df47d940be4fd2fb7ab4c3ff5038a548846c5fa9badbe77b1731b3cae29 Sintel.pt.srt
57c014bd3d781a94850f85fd6c9364421e17cb2c4e25e22c0a8578f50c874e3f2eaf5a0b3da615db7dc95efbe2e6be7c7238e2e1ba27671c818b9e34b05ee1d0 Sintel.ru.srt
Binary file not shown.
+65 -25
View File
@@ -2,15 +2,29 @@
lib,
testers,
fetchtorrent,
emptyDirectory,
...
}:
let
# This meta attribute isn't used anywhere, as the actual derivation
# realizations are only empty directories. It's maintained here as a record
# of the details of the intermediate product that exists briefly while
# building the test derivations.
#
# Ideally we'd use a smaller download, but neither of the Bittorrent backends
# supported by fetchtorrent appear to support torrents that are only reliably
# seeded by HTTP sources rather than other people using Bittorrent clients.
# Sintel was the smallest torrent I could find that had a free license and
# was reliably seeded by other Bittorrent clients.
#
# For more information, see the discussion at
# https://github.com/NixOS/nixpkgs/pull/432091/files/bd13421b2b70f3f125061018c800439ef2d43e8d#r2264073113
sintel.meta = {
description = "An open source short film to show off open source technologies.";
longDescription = ''
An independently produced short film, initiated by the Blender Foundation
as a means to further improve andvalidate the free/open source 3D
as a means to further improve and validate the free/open source 3D
creation suite Blender.
'';
license = lib.licenses.cc-by-30;
@@ -18,74 +32,100 @@ let
};
# Via https://webtorrent.io/free-torrents
http.url = "https://webtorrent.io/torrents/sintel.torrent";
http.url = "${./test-sintel.torrent}";
magnet.url = "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent";
flattened.hash = "sha256-EzbmBiTEWOlFUNaV5R4eDeD9EBbp6d93rfby88ACg0s=";
unflattened.hash = "sha256-lVrlo1AwmFcxwsIsY976VYqb3hAprFH1xWYdmlTuw0U=";
# Sintel isn't a massive download, but it's not small. There's also no real
# value in storing copies of it in Nix caches, which is what happens by
# default when this test succeeds. Avoid that by verifying the downloaded
# files using `sha512sum` in the post-fetch hook, then deleting the files so
# the actual derivation result is an empty directory.
#
# Chain `&&` in the postFetch phase because the transmission backend does not
# run that phase with `errexit` enabled.
flattened.postFetch = ''
pushd "$out" &&
sha512sum --check --strict ${./test-hashes.sha512sum} &&
sed 's/.* //' ${./test-hashes.sha512sum} | xargs rm --verbose &&
popd
'';
unflattened.postFetch = ''
pushd "$out" &&
pushd Sintel &&
sha512sum --check --strict ${./test-hashes.sha512sum} &&
sed 's/.* //' ${./test-hashes.sha512sum} | xargs rm --verbose &&
popd &&
rm --dir --verbose Sintel &&
popd
'';
# Fixed output derivation hash is identical for all derivations: the empty
# directory.
fetchtorrentWithHash =
args:
fetchtorrent (
{
hash = builtins.convertHash {
hash = emptyDirectory.outputHash;
toHashFormat = "sri";
hashAlgo = emptyDirectory.outputHashAlgo;
};
}
// args
);
in
# Seems almost but not quite worth using lib.mapCartesianProduct...
builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrent v) {
builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrentWithHash v) {
http-link = {
inherit (http) url;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-transmission = {
inherit (http) url;
backend = "transmission";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link = {
inherit (magnet) url;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link-transmission = {
inherit (magnet) url;
backend = "transmission";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-rqbit = {
inherit (http) url;
backend = "rqbit";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link-rqbit = {
inherit (magnet) url;
backend = "rqbit";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-rqbit-flattened = {
inherit (http) url;
backend = "rqbit";
flatten = true;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link-rqbit-flattened = {
inherit (magnet) url;
backend = "rqbit";
flatten = true;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-rqbit-unflattened = {
inherit (http) url;
backend = "rqbit";
flatten = false;
inherit (unflattened) hash;
inherit (sintel) meta;
inherit (unflattened) postFetch;
};
magnet-link-rqbit-unflattened = {
inherit (magnet) url;
backend = "rqbit";
flatten = false;
inherit (unflattened) hash;
inherit (sintel) meta;
inherit (unflattened) postFetch;
};
}
+5 -4
View File
@@ -5,7 +5,7 @@
"packages": {
"": {
"dependencies": {
"@sourcegraph/amp": "^0.0.1762056193-g37ad2e"
"@sourcegraph/amp": "^0.0.1762646500-gac8d42"
}
},
"node_modules/@napi-rs/keyring": {
@@ -228,9 +228,10 @@
}
},
"node_modules/@sourcegraph/amp": {
"version": "0.0.1762056193-g37ad2e",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1762056193-g37ad2e.tgz",
"integrity": "sha512-dWhc7ajnw1QGCYwrOGwCbpyzedf5n2RoTCM97ibpzgpphDLCdyGTXh2XTC6mrxM2CNQLp5jJaWxvcDk9nM80Vg==",
"version": "0.0.1762646500-gac8d42",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1762646500-gac8d42.tgz",
"integrity": "sha512-+1w32tuDcCTUSULBwWeVrOLYGIvS1z/hNWSG4p9v5TC40asudJ6DVHSgIEO4alY4v8lJ3NnDQ1t8FrdwClZi6g==",
"license": "Sourcegraph Commercial License",
"dependencies": {
"@napi-rs/keyring": "1.1.9"
},
+3 -3
View File
@@ -9,11 +9,11 @@
buildNpmPackage (finalAttrs: {
pname = "amp-cli";
version = "0.0.1762056193-g37ad2e";
version = "0.0.1762646500-gac8d42";
src = fetchzip {
url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz";
hash = "sha256-so/nlX4N9qhNLsK0OllmpfiqzyEBtPrt7KD/MoAChGc=";
hash = "sha256-jChd6cb2IBmEBu/gbCywaHJpN2Mj3EUp8YSKQ9HQd0A=";
};
postPatch = ''
@@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: {
chmod +x bin/amp-wrapper.js
'';
npmDepsHash = "sha256-xhN5XJs8E7yCRQWRPlH9iZyh5FocUjFMto5QweaV8aI=";
npmDepsHash = "sha256-uuGqTutlApLDDFHlK+ACrox5B2KpJGYJP6M4CeCj2v0=";
propagatedBuildInputs = [
ripgrep
-58
View File
@@ -1,58 +0,0 @@
{
lib,
rustPlatform,
fetchFromGitHub,
llvmPackages,
_experimental-update-script-combinators,
unstableGitUpdater,
nix-update-script,
}:
rustPlatform.buildRustPackage {
pname = "artichoke";
version = "0-unstable-2025-09-07";
src = fetchFromGitHub {
owner = "artichoke";
repo = "artichoke";
rev = "8227e6dbb298631c67b4ca2cc4c911d0ef87f38a";
hash = "sha256-Pyffs4QB/SkayRwlMmIVagNiamznJp4Dt3nqRDJYfqU=";
};
cargoHash = "sha256-JD+qt0pu5wxIuLa3Bd9eadQFE7dyKzqxsAKPebG7+Zg=";
nativeBuildInputs = [
rustPlatform.bindgenHook
];
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
stdout="$("$out/bin/artichoke" -e 'puts "Hello World!"')"
[[ "$stdout" == 'Hello World!' ]]
runHook postInstallCheck
'';
passthru = {
updateScript = _experimental-update-script-combinators.sequence [
(unstableGitUpdater { })
(nix-update-script {
# Updating `cargoHash`
extraArgs = [ "--version=skip" ];
})
];
};
meta = {
description = "Ruby implementation written in Rust and Ruby";
homepage = "https://www.artichokeruby.org/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
kachick
];
mainProgram = "artichoke";
platforms = with lib.platforms; unix ++ windows;
};
}
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "jwestman";
owner = "GNOME";
repo = "blueprint-compiler";
rev = "v${finalAttrs.version}";
hash = "sha256-3vAFkP/psM/IsFtzVOIVSU77Z+RV4d3N70U7ggrDqfo=";
@@ -83,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "Markup language for GTK user interface files";
mainProgram = "blueprint-compiler";
homepage = "https://gitlab.gnome.org/jwestman/blueprint-compiler";
homepage = "https://gitlab.gnome.org/GNOME/blueprint-compiler";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [
benediktbroich
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "cloud-hypervisor";
version = "48.0";
version = "49.0";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = "cloud-hypervisor";
rev = "v${version}";
hash = "sha256-cfS3sO1GQIxF9UlzKP9iE/UuJwGVIkNBN7GDF/ltn4Q=";
hash = "sha256-bPPs/4XMcvOH4BGfQrjQdvgjGWae4UEZjzPKjalDN3w=";
};
cargoHash = "sha256-QvW1loljt9KzY0h2pG7n9NCkJJOYr/VxftsyqATm9DA=";
cargoHash = "sha256-5EK9V9yiF/UjmlYSKBIJgQOA1YU33ezicLikWYnKFAo=";
separateDebugInfo = true;
+2 -2
View File
@@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "courier-unicode";
version = "2.3.2";
version = "2.4.0";
src = fetchurl {
url = "mirror://sourceforge/courier/courier-unicode/${version}/courier-unicode-${version}.tar.bz2";
sha256 = "sha256-tkXS8AqrvGgjIO3mlspQIBJm9xChvOxKxQQmlcmef2k=";
hash = "sha256-6Ay88OOmzC56Z+waGDDWxOiqD/aXcy7B0R5UTg5kVw8=";
};
nativeBuildInputs = [
+28
View File
@@ -0,0 +1,28 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "croncpp";
version = "2023.03.30";
src = fetchFromGitHub {
owner = "mariusbancila";
repo = "croncpp";
tag = "v${finalAttrs.version}";
hash = "sha256-SBjNzy54OGEMemBp+c1gaH90Dc7ySL915z4E64cBWTI=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "C++11/14/17 header-only cross-platform library for handling CRON expressions";
homepage = "https://github.com/mariusbancila/croncpp";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ typedrat ];
};
})
+9 -9
View File
@@ -9,26 +9,26 @@ let
inherit (stdenv) hostPlatform;
sources = {
x86_64-linux = fetchurl {
url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/linux/x64/agent-cli-package.tar.gz";
hash = "sha256-mZ0T7rrKzwvaNUbrHBy3XO04vZSO6RQ4RmJmrdfaoJA=";
url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/linux/x64/agent-cli-package.tar.gz";
hash = "sha256-otTYUTmGqqXT4Jx+r1RlFjJD7FYU62QRl+y69eo/khs=";
};
aarch64-linux = fetchurl {
url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/linux/arm64/agent-cli-package.tar.gz";
hash = "sha256-bchHYPQ0O/0YWiPdj3wnq43p/fKFoP4KXpeSVWpLYpE=";
url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/linux/arm64/agent-cli-package.tar.gz";
hash = "sha256-jPqgGdtjLg4qZWktz1/X1LI0+e6RYcCtuLw91k1Xofg=";
};
x86_64-darwin = fetchurl {
url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/darwin/x64/agent-cli-package.tar.gz";
hash = "sha256-PWx5QAs84gWNOHYZL20uFnW+m4rApRT6g4LtabjL+lw=";
url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/darwin/x64/agent-cli-package.tar.gz";
hash = "sha256-UVR+iomdZzmPfj4o4N4FfUSCa9ttJre7Ipso5weIn1k=";
};
aarch64-darwin = fetchurl {
url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/darwin/arm64/agent-cli-package.tar.gz";
hash = "sha256-VW76Lx2VKspiGkphp74ib4+F5FCdu8793f+xvD67OpM=";
url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/darwin/arm64/agent-cli-package.tar.gz";
hash = "sha256-t5s9TfLLA/VLCYNF+fsf9wgfk2W96eQSIbW/cdUKMuY=";
};
};
in
stdenv.mkDerivation {
pname = "cursor-cli";
version = "0-unstable-2025-10-28";
version = "0-unstable-2025-11-06";
src = sources.${hostPlatform.system};
@@ -1,7 +1,7 @@
{ mkDprintPlugin }:
mkDprintPlugin {
description = "Biome (JS/TS) wrapper plugin";
hash = "sha256-kelyuSZpbah1l+qVZMIK9VhWLr7DWjZIm9HwD64bCTw=";
hash = "sha256-WEabcffl/sARrVc00Qr6QdEjFG4BZgHRrk3eeEfFV4g=";
initConfig = {
configExcludes = [ "**/node_modules" ];
configKey = "biome";
@@ -16,6 +16,6 @@ mkDprintPlugin {
};
pname = "dprint-plugin-biome";
updateUrl = "https://plugins.dprint.dev/dprint/biome/latest.json";
url = "https://plugins.dprint.dev/biome-0.11.1.wasm";
version = "0.11.1";
url = "https://plugins.dprint.dev/biome-0.11.3.wasm";
version = "0.11.3";
}
@@ -0,0 +1,115 @@
diff --git a/src/external_libs.cmake b/src/external_libs.cmake
index 62e6e879..8934777f 100644
--- a/src/external_libs.cmake
+++ b/src/external_libs.cmake
@@ -1,7 +1,6 @@
add_third_party(
lua
- GIT_REPOSITORY https://github.com/dragonflydb/lua
- GIT_TAG Dragonfly-5.4.6a
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/lua/. <SOURCE_DIR>
CONFIGURE_COMMAND echo
BUILD_IN_SOURCE 1
BUILD_COMMAND ${DFLY_TOOLS_MAKE} all
@@ -19,18 +18,16 @@ endif()
add_third_party(
dconv
- URL https://github.com/google/double-conversion/archive/refs/tags/v3.3.0.tar.gz
- PATCH_COMMAND ${SED_REPL} "/static const std::ctype/d"
- <SOURCE_DIR>/double-conversion/string-to-double.cc
- COMMAND ${SED_REPL} "/std::use_facet</d" <SOURCE_DIR>/double-conversion/string-to-double.cc
- COMMAND ${SED_REPL} "s/cType.tolower/std::tolower/g" <SOURCE_DIR>/double-conversion/string-to-double.cc
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/dconv/. <SOURCE_DIR>
+ PATCH_COMMAND echo
+ CMAKE_PASS_FLAGS "-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
LIB libdouble-conversion.a
)
add_third_party(
reflex
- URL https://github.com/Genivia/RE-flex/archive/refs/tags/v5.2.2.tar.gz
- PATCH_COMMAND autoreconf -fi
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/reflex/. <SOURCE_DIR>
+ PATCH_COMMAND echo
CONFIGURE_COMMAND <SOURCE_DIR>/configure --disable-avx2 --prefix=${THIRD_PARTY_LIB_DIR}/reflex
CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER}
)
@@ -41,16 +38,14 @@ set(REFLEX "${THIRD_PARTY_LIB_DIR}/reflex/bin/reflex")
add_third_party(
jsoncons
- GIT_REPOSITORY https://github.com/dragonflydb/jsoncons
- GIT_TAG Dragonfly.178
- GIT_SHALLOW 1
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/jsoncons/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DJSONCONS_BUILD_TESTS=OFF -DJSONCONS_HAS_POLYMORPHIC_ALLOCATOR=ON"
LIB "none"
)
add_third_party(
lz4
- URL https://github.com/lz4/lz4/archive/refs/tags/v1.10.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/lz4/. <SOURCE_DIR>
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND echo skip
@@ -65,7 +60,7 @@ set(MIMALLOC_C_FLAGS "-O3 -g -DMI_STAT=1 -DNDEBUG")
file(MAKE_DIRECTORY ${MIMALLOC_INCLUDE_DIR})
ExternalProject_Add(mimalloc2_project
- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.2.4.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/mimalloc224/. <SOURCE_DIR>
DOWNLOAD_DIR ${THIRD_PARTY_DIR}/mimalloc2
SOURCE_DIR ${THIRD_PARTY_DIR}/mimalloc2
# INSTALL_DIR ${MIMALLOC_ROOT_DIR}
@@ -118,21 +113,21 @@ set_target_properties(TRDP::mimalloc2 PROPERTIES IMPORTED_LOCATION ${MIMALLOC_RO
add_third_party(
croncpp
- URL https://github.com/mariusbancila/croncpp/archive/refs/tags/v2023.03.30.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/croncpp/. <SOURCE_DIR>
LIB "none"
)
if (WITH_SEARCH)
add_third_party(
uni-algo
- URL https://github.com/uni-algo/uni-algo/archive/refs/tags/v1.0.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/uni-algo/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DCMAKE_CXX_STANDARD:STRING=17"
)
add_third_party(
hnswlib
- URL https://github.com/nmslib/hnswlib/archive/refs/tags/v0.7.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/hnswlib/. <SOURCE_DIR>
BUILD_COMMAND echo SKIP
INSTALL_COMMAND cp -R <SOURCE_DIR>/hnswlib ${THIRD_PARTY_LIB_DIR}/hnswlib/include/
@@ -142,21 +137,20 @@ endif()
add_third_party(
fast_float
- URL https://github.com/fastfloat/fast_float/archive/refs/tags/v5.2.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/fast_float/. <SOURCE_DIR>
LIB "none"
)
add_third_party(
flatbuffers
- URL https://github.com/google/flatbuffers/archive/refs/tags/v23.5.26.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/flatbuffers/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF
-DFLATBUFFERS_BUILD_FLATC=OFF"
)
add_third_party(
hdr_histogram
- GIT_REPOSITORY https://github.com/HdrHistogram/HdrHistogram_c/
- GIT_TAG 652d51bcc36744fd1a6debfeb1a8a5f58b14022c
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/hdr_histogram/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DHDR_LOG_REQUIRED=OFF -DHDR_HISTOGRAM_BUILD_PROGRAMS=OFF
-DHDR_HISTOGRAM_INSTALL_SHARED=OFF"
LIB libhdr_histogram_static.a
-132
View File
@@ -1,132 +0,0 @@
diff --git a/helio/cmake/third_party.cmake b/helio/cmake/third_party.cmake
index aeb78d9..e9d4e6b 100644
--- a/helio/cmake/third_party.cmake
+++ b/helio/cmake/third_party.cmake
@@ -143,7 +143,7 @@ endfunction()
FetchContent_Declare(
gtest
- URL https://github.com/google/googletest/archive/release-1.11.0.zip
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(gtest)
@@ -154,7 +154,7 @@ endif ()
FetchContent_Declare(
benchmark
- URL https://github.com/google/benchmark/archive/v1.6.1.tar.gz
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(benchmark)
@@ -169,7 +169,7 @@ endif ()
FetchContent_Declare(
abseil_cpp
- URL https://github.com/abseil/abseil-cpp/archive/20211102.0.tar.gz
+ DOWNLOAD_COMMAND true
PATCH_COMMAND patch -p1 < "${CMAKE_CURRENT_LIST_DIR}/../patches/abseil-20211102.patch"
)
@@ -183,11 +183,7 @@ endif()
FetchContent_Declare(
glog
- GIT_REPOSITORY https://github.com/romange/glog
- GIT_TAG Absl
-
- GIT_PROGRESS TRUE
- GIT_SHALLOW TRUE
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(glog)
@@ -233,10 +229,7 @@ endif()
add_third_party(
gperf
- URL https://github.com/gperftools/gperftools/archive/gperftools-2.9.1.tar.gz
- #GIT_REPOSITORY https://github.com/gperftools/gperftools
- #GIT_TAG gperftools-2.9.1
- GIT_SHALLOW TRUE
+ DOWNLOAD_COMMAND true
PATCH_COMMAND autoreconf -i # update runs every time for some reason
# CMAKE_PASS_FLAGS "-DGPERFTOOLS_BUILD_HEAP_PROFILER=OFF -DGPERFTOOLS_BUILD_HEAP_CHECKER=OFF \
# -DGPERFTOOLS_BUILD_DEBUGALLOC=OFF -DBUILD_TESTING=OFF \
@@ -260,11 +253,12 @@ else()
endif()
add_third_party(mimalloc
- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.0.5.tar.gz
+ DOWNLOAD_COMMAND true
# Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug
CMAKE_PASS_FLAGS "-DCMAKE_BUILD_TYPE=Release -DMI_BUILD_SHARED=OFF -DMI_BUILD_TESTS=OFF \
- -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g"
+ -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g \
+ -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/mimalloc/lib"
BUILD_COMMAND make -j4 mimalloc-static
INSTALL_COMMAND make install
@@ -274,7 +268,7 @@ add_third_party(mimalloc
)
add_third_party(jemalloc
- URL https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
+ URL REPLACEJEMALLOCURL
PATCH_COMMAND ./autogen.sh
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/jemalloc --with-jemalloc-prefix=je_ --disable-libdl
)
@@ -282,24 +276,23 @@ add_third_party(jemalloc
add_third_party(
xxhash
- URL https://github.com/Cyan4973/xxHash/archive/v0.8.0.tar.gz
+ DOWNLOAD_COMMAND true
SOURCE_SUBDIR cmake_unofficial
- CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF"
+ CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/xxhash/lib"
)
add_third_party(
uring
- GIT_REPOSITORY https://github.com/axboe/liburing.git
- GIT_TAG liburing-2.1
+ DOWNLOAD_COMMAND true
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/uring
BUILD_IN_SOURCE 1
)
add_third_party(
rapidjson
- GIT_REPOSITORY https://github.com/Tencent/rapidjson.git
- GIT_TAG 1a803826f1197b5e30703afe4b9c0e7dd48074f5
+ DOWNLOAD_COMMAND true
CMAKE_PASS_FLAGS "-DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF \
-DRAPIDJSON_BUILD_DOC=OFF"
LIB "none"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0dc0824..d5b38b3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,6 @@
add_third_party(
lua
- URL https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz
+ URL REPLACELUAURL
PATCH_COMMAND patch -p1 -i "${CMAKE_SOURCE_DIR}/patches/lua-v5.4.4.patch"
CONFIGURE_COMMAND echo
BUILD_IN_SOURCE 1
@@ -11,7 +11,8 @@ add_third_party(
add_third_party(
dconv
- URL https://github.com/google/double-conversion/archive/refs/tags/v3.2.0.tar.gz
+ DOWNLOAD_COMMAND true
+ CMAKE_PASS_FLAGS "-DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/dconv/lib"
LIB libdouble-conversion.a
)
-553
View File
@@ -1,553 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 846b4448..b4900ead 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,7 @@ option (PRINT_UNSYMBOLIZED_STACK_TRACES
"Print file offsets in traces instead of symbolizing" OFF)
option (WITH_CUSTOM_PREFIX "Enable support for user-generated message prefixes" ON)
option (WITH_GFLAGS "Use gflags" ON)
+option (WITH_ABSL "Use absl flags" OFF)
option (WITH_GTEST "Use Google Test" ON)
option (WITH_PKGCONFIG "Enable pkg-config support" ON)
option (WITH_SYMBOLIZE "Enable symbolize module" ON)
@@ -87,6 +88,13 @@ if (WITH_GFLAGS)
endif (gflags_FOUND)
endif (WITH_GFLAGS)
+if (WITH_ABSL)
+ set (HAVE_ABSL_FLAGS 1)
+ set (ac_cv_have_abslflags 1)
+else (WITH_ABSL)
+set (ac_cv_have_abslflags 0)
+endif (WITH_ABSL)
+
find_package (Threads)
find_package (Unwind)
@@ -1025,7 +1033,7 @@ write_basic_package_version_file (
${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
COMPATIBILITY SameMajorVersion)
-export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
+# export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
export (PACKAGE glog)
get_filename_component (_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
diff --git a/src/base/commandlineflags.h b/src/base/commandlineflags.h
index bcb12dea..1c9d9294 100644
--- a/src/base/commandlineflags.h
+++ b/src/base/commandlineflags.h
@@ -57,6 +57,25 @@
#include <gflags/gflags.h>
+#else
+#ifdef HAVE_ABSL_FLAGS
+#include <absl/flags/flag.h>
+
+#define FLAG(name) absl::GetFlag(FLAGS_##name)
+
+#define DEFINE_bool(name, value, meaning) \
+ ABSL_FLAG(bool, name, value, meaning)
+
+#define DEFINE_int32(name, value, meaning) \
+ ABSL_FLAG(GOOGLE_NAMESPACE::int32, name, value, meaning)
+
+#define DEFINE_uint32(name, value, meaning) \
+ ABSL_FLAG(GOOGLE_NAMESPACE::uint32, name, value, meaning)
+
+#define DEFINE_string(name, value, meaning) \
+ ABSL_FLAG(std::string, name, value, meaning)
+
+
#else
#include <glog/logging.h>
@@ -108,6 +127,7 @@
} \
using fLS::FLAGS_##name
+#endif
#endif // HAVE_LIB_GFLAGS
// Define GLOG_DEFINE_* using DEFINE_* . By using these macros, we
diff --git a/src/base/mutex.h b/src/base/mutex.h
index e82c597f..a58c1412 100644
--- a/src/base/mutex.h
+++ b/src/base/mutex.h
@@ -319,11 +319,6 @@ class WriterMutexLock {
void operator=(const WriterMutexLock&);
};
-// Catch bug where variable name is omitted, e.g. MutexLock (&mu);
-#define MutexLock(x) COMPILE_ASSERT(0, mutex_lock_decl_missing_var_name)
-#define ReaderMutexLock(x) COMPILE_ASSERT(0, rmutex_lock_decl_missing_var_name)
-#define WriterMutexLock(x) COMPILE_ASSERT(0, wmutex_lock_decl_missing_var_name)
-
} // namespace MUTEX_NAMESPACE
using namespace MUTEX_NAMESPACE;
diff --git a/src/config.h.cmake.in b/src/config.h.cmake.in
index b225b7ec..a4c58c96 100644
--- a/src/config.h.cmake.in
+++ b/src/config.h.cmake.in
@@ -34,6 +34,8 @@
/* define if you have google gflags library */
#cmakedefine HAVE_LIB_GFLAGS
+#cmakedefine HAVE_ABSL_FLAGS
+
/* define if you have google gmock library */
#cmakedefine HAVE_LIB_GMOCK
diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in
index 95a573b1..54cd838f 100644
--- a/src/glog/logging.h.in
+++ b/src/glog/logging.h.in
@@ -89,6 +89,10 @@
#include <gflags/gflags.h>
#endif
+#if @ac_cv_have_abslflags@
+#include <absl/flags/declare.h>
+#endif
+
#if @ac_cv_cxx11_atomic@ && __cplusplus >= 201103L
#include <atomic>
#elif defined(GLOG_OS_WINDOWS)
@@ -395,6 +399,14 @@ typedef void(*CustomPrefixCallback)(std::ostream& s, const LogMessageInfo& l, vo
#undef DECLARE_uint32
#endif
+#if @ac_cv_have_abslflags@
+#define DECLARE_VARIABLE 1
+#define DECLARE_bool(name) ABSL_DECLARE_FLAG(bool, name)
+#define DECLARE_int32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::int32, name)
+#define DECLARE_uint32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::uint32, name)
+#define DECLARE_string(name) ABSL_DECLARE_FLAG(std::string, name)
+#endif
+
#ifndef DECLARE_VARIABLE
#define DECLARE_VARIABLE(type, shorttype, name, tn) \
namespace fL##shorttype { \
diff --git a/src/glog/vlog_is_on.h.in b/src/glog/vlog_is_on.h.in
index 7526fc34..16e60f46 100644
--- a/src/glog/vlog_is_on.h.in
+++ b/src/glog/vlog_is_on.h.in
@@ -64,6 +64,14 @@
#include <glog/log_severity.h>
#if defined(__GNUC__)
+
+#if @ac_cv_have_abslflags@
+ extern int32_t absl_proxy_v;
+ #define VLEVEL (@ac_google_namespace@::absl_proxy_v)
+#else
+ #define VLEVEL (FLAGS_v)
+#endif
+
// We emit an anonymous static int* variable at every VLOG_IS_ON(n) site.
// (Normally) the first time every VLOG_IS_ON(n) site is hit,
// we determine what variable will dynamically control logging at this site:
@@ -74,7 +82,7 @@
__extension__ \
({ static @ac_google_namespace@::SiteFlag vlocal__ = {NULL, NULL, 0, NULL}; \
@ac_google_namespace@::int32 verbose_level__ = (verboselevel); \
- (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
+ (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &VLEVEL, \
__FILE__, verbose_level__) : *vlocal__.level >= verbose_level__); \
})
#else
diff --git a/src/logging.cc b/src/logging.cc
index 4028ccc0..fc618d3a 100644
--- a/src/logging.cc
+++ b/src/logging.cc
@@ -103,7 +103,9 @@ using std::fdopen;
#endif
// There is no thread annotation support.
+#ifndef EXCLUSIVE_LOCKS_REQUIRED
#define EXCLUSIVE_LOCKS_REQUIRED(mu)
+#endif
static bool BoolFromEnv(const char *varname, bool defval) {
const char* const valstr = getenv(varname);
@@ -351,8 +353,9 @@ static const char* GetAnsiColorCode(GLogColor color) {
// Safely get max_log_size, overriding to 1 if it somehow gets defined as 0
static uint32 MaxLogSize() {
- return (FLAGS_max_log_size > 0 && FLAGS_max_log_size < 4096
- ? FLAGS_max_log_size
+ uint32 maxlogsize = FLAG(max_log_size);
+ return (maxlogsize > 0 && maxlogsize < 4096
+ ? maxlogsize
: 1);
}
@@ -721,7 +724,7 @@ inline void LogDestination::SetStderrLogging(LogSeverity min_severity) {
// Prevent any subtle race conditions by wrapping a mutex lock around
// all this stuff.
MutexLock l(&log_mutex);
- FLAGS_stderrthreshold = min_severity;
+ absl::SetFlag(&FLAGS_stderrthreshold, min_severity);
}
inline void LogDestination::LogToStderr() {
@@ -747,8 +750,8 @@ static void ColoredWriteToStderrOrStdout(FILE* output, LogSeverity severity,
const char* message, size_t len) {
bool is_stdout = (output == stdout);
const GLogColor color = (LogDestination::terminal_supports_color() &&
- ((!is_stdout && FLAGS_colorlogtostderr) ||
- (is_stdout && FLAGS_colorlogtostdout)))
+ ((!is_stdout && FLAG(colorlogtostderr)) ||
+ (is_stdout && FLAG(colorlogtostdout))))
? SeverityToColor(severity)
: COLOR_DEFAULT;
@@ -789,7 +792,7 @@ static void ColoredWriteToStdout(LogSeverity severity, const char* message,
FILE* output = stdout;
// We also need to send logs to the stderr when the severity is
// higher or equal to the stderr threshold.
- if (severity >= FLAGS_stderrthreshold) {
+ if (severity >= FLAG(stderrthreshold)) {
output = stderr;
}
ColoredWriteToStderrOrStdout(output, severity, message, len);
@@ -808,7 +811,7 @@ static void WriteToStderr(const char* message, size_t len) {
inline void LogDestination::MaybeLogToStderr(LogSeverity severity,
const char* message, size_t message_len, size_t prefix_len) {
- if ((severity >= FLAGS_stderrthreshold) || FLAGS_alsologtostderr) {
+ if ((severity >= FLAG(stderrthreshold)) || FLAG(alsologtostderr)) {
ColoredWriteToStderr(severity, message, message_len);
#ifdef GLOG_OS_WINDOWS
(void) prefix_len;
@@ -835,8 +838,8 @@ inline void LogDestination::MaybeLogToStderr(LogSeverity severity,
inline void LogDestination::MaybeLogToEmail(LogSeverity severity,
const char* message, size_t len) {
if (severity >= email_logging_severity_ ||
- severity >= FLAGS_logemaillevel) {
- string to(FLAGS_alsologtoemail);
+ severity >= FLAG(logemaillevel)) {
+ string to(FLAG(alsologtoemail));
if (!addresses_.empty()) {
if (!to.empty()) {
to += ",";
@@ -862,7 +865,7 @@ inline void LogDestination::MaybeLogToLogfile(LogSeverity severity,
time_t timestamp,
const char* message,
size_t len) {
- const bool should_flush = severity > FLAGS_logbuflevel;
+ const bool should_flush = severity > FLAG(logbuflevel);
LogDestination* destination = log_destination(severity);
destination->logger_->Write(should_flush, timestamp, message, len);
}
@@ -871,9 +874,9 @@ inline void LogDestination::LogToAllLogfiles(LogSeverity severity,
time_t timestamp,
const char* message,
size_t len) {
- if (FLAGS_logtostdout) { // global flag: never log to file
+ if (FLAG(logtostdout)) { // global flag: never log to file
ColoredWriteToStdout(severity, message, len);
- } else if (FLAGS_logtostderr) { // global flag: never log to file
+ } else if (FLAG(logtostderr)) { // global flag: never log to file
ColoredWriteToStderr(severity, message, len);
} else {
for (int i = severity; i >= 0; --i) {
@@ -1032,25 +1035,25 @@ void LogFileObject::FlushUnlocked(){
bytes_since_flush_ = 0;
}
// Figure out when we are due for another flush.
- const int64 next = (FLAGS_logbufsecs
+ const int64 next = (FLAG(logbufsecs)
* static_cast<int64>(1000000)); // in usec
next_flush_time_ = CycleClock_Now() + UsecToCycles(next);
}
bool LogFileObject::CreateLogfile(const string& time_pid_string) {
string string_filename = base_filename_;
- if (FLAGS_timestamp_in_logfile_name) {
+ if (FLAG(timestamp_in_logfile_name)) {
string_filename += time_pid_string;
}
string_filename += filename_extension_;
const char* filename = string_filename.c_str();
//only write to files, create if non-existant.
int flags = O_WRONLY | O_CREAT;
- if (FLAGS_timestamp_in_logfile_name) {
+ if (FLAG(timestamp_in_logfile_name)) {
//demand that the file is unique for our timestamp (fail if it exists).
flags = flags | O_EXCL;
}
- int fd = open(filename, flags, FLAGS_logfile_mode);
+ int fd = open(filename, flags, FLAG(logfile_mode));
if (fd == -1) return false;
#ifdef HAVE_FCNTL
// Mark the file close-on-exec. We don't really care if this fails
@@ -1083,7 +1086,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
file_ = fdopen(fd, "a"); // Make a FILE*.
if (file_ == NULL) { // Man, we're screwed!
close(fd);
- if (FLAGS_timestamp_in_logfile_name) {
+ if (FLAG(timestamp_in_logfile_name)) {
unlink(filename); // Erase the half-baked evidence: an unusable log file, only if we just created it.
}
return false;
@@ -1125,8 +1128,8 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
// Make an additional link to the log file in a place specified by
// FLAGS_log_link, if indicated
- if (!FLAGS_log_link.empty()) {
- linkpath = FLAGS_log_link + "/" + linkname;
+ if (!FLAG(log_link).empty()) {
+ linkpath = FLAG(log_link) + "/" + linkname;
unlink(linkpath.c_str()); // delete old one if it exists
if (symlink(filename, linkpath.c_str()) != 0) {
// silently ignore failures
@@ -1165,7 +1168,7 @@ void LogFileObject::Write(bool force_flush,
rollover_attempt_ = 0;
struct ::tm tm_time;
- if (FLAGS_log_utc_time) {
+ if (FLAG(log_utc_time)) {
gmtime_r(&timestamp, &tm_time);
} else {
localtime_r(&timestamp, &tm_time);
@@ -1253,14 +1256,14 @@ void LogFileObject::Write(bool force_flush,
<< ' '
<< setw(2) << tm_time.tm_hour << ':'
<< setw(2) << tm_time.tm_min << ':'
- << setw(2) << tm_time.tm_sec << (FLAGS_log_utc_time ? " UTC\n" : "\n")
+ << setw(2) << tm_time.tm_sec << (FLAG(log_utc_time) ? " UTC\n" : "\n")
<< "Running on machine: "
<< LogDestination::hostname() << '\n';
if(!g_application_fingerprint.empty()) {
file_header_stream << "Application fingerprint: " << g_application_fingerprint << '\n';
}
- const char* const date_time_format = FLAGS_log_year_in_prefix
+ const char* const date_time_format = FLAG(log_year_in_prefix)
? "yyyymmdd hh:mm:ss.uuuuuu"
: "mmdd hh:mm:ss.uuuuuu";
file_header_stream << "Running duration (h:mm:ss): "
@@ -1284,7 +1287,7 @@ void LogFileObject::Write(bool force_flush,
// greater than 4096, thereby indicating an error.
errno = 0;
fwrite(message, 1, message_len, file_);
- if ( FLAGS_stop_logging_if_full_disk &&
+ if ( FLAG(stop_logging_if_full_disk) &&
errno == ENOSPC ) { // disk full, stop writing to disk
stop_writing = true; // until the disk is
return;
@@ -1307,7 +1310,7 @@ void LogFileObject::Write(bool force_flush,
FlushUnlocked();
#ifdef GLOG_OS_LINUX
// Only consider files >= 3MiB
- if (FLAGS_drop_log_memory && file_length_ >= (3U << 20U)) {
+ if (FLAG(drop_log_memory) && file_length_ >= (3U << 20U)) {
// Don't evict the most recent 1-2MiB so as not to impact a tailer
// of the log file and to avoid page rounding issue on linux < 4.7
uint32 total_drop_length =
@@ -1348,7 +1351,7 @@ void LogCleaner::Disable() {
}
void LogCleaner::UpdateCleanUpTime() {
- const int64 next = (FLAGS_logcleansecs
+ const int64 next = (FLAG(logcleansecs)
* 1000000); // in usec
next_cleanup_time_ = CycleClock_Now() + UsecToCycles(next);
}
@@ -1664,7 +1667,7 @@ void LogMessage::Init(const char* file,
// I20201018 160715 f5d4fbb0 logging.cc:1153]
// (log level, GMT year, month, date, time, thread_id, file basename, line)
// We exclude the thread_id for the default thread.
- if (FLAGS_log_prefix && (line != kNoLogPrefix)) {
+ if (FLAG(log_prefix) && (line != kNoLogPrefix)) {
std::ios saved_fmt(NULL);
saved_fmt.copyfmt(stream());
stream().fill('0');
@@ -1672,7 +1675,7 @@ void LogMessage::Init(const char* file,
if (custom_prefix_callback == NULL) {
#endif
stream() << LogSeverityNames[severity][0];
- if (FLAGS_log_year_in_prefix) {
+ if (FLAG(log_year_in_prefix)) {
stream() << setw(4) << 1900 + logmsgtime_.year();
}
stream() << setw(2) << 1 + logmsgtime_.month()
@@ -1703,11 +1706,11 @@ void LogMessage::Init(const char* file,
}
data_->num_prefix_chars_ = data_->stream_.pcount();
- if (!FLAGS_log_backtrace_at.empty()) {
+ if (!FLAG(log_backtrace_at).empty()) {
char fileline[128];
snprintf(fileline, sizeof(fileline), "%s:%d", data_->basename_, line);
#ifdef HAVE_STACKTRACE
- if (FLAGS_log_backtrace_at == fileline) {
+ if (FLAG(log_backtrace_at) == fileline) {
string stacktrace;
DumpStackTraceToString(&stacktrace);
stream() << " (stacktrace:\n" << stacktrace << ") ";
@@ -1746,7 +1749,7 @@ ostream& LogMessage::stream() {
// Flush buffered message, called by the destructor, or any other function
// that needs to synchronize the log.
void LogMessage::Flush() {
- if (data_->has_been_flushed_ || data_->severity_ < FLAGS_minloglevel) {
+ if (data_->has_been_flushed_ || data_->severity_ < FLAG(minloglevel)) {
return;
}
@@ -1808,7 +1811,7 @@ static char fatal_message[256];
void ReprintFatalMessage() {
if (fatal_message[0]) {
const size_t n = strlen(fatal_message);
- if (!FLAGS_logtostderr) {
+ if (!FLAG(logtostderr)) {
// Also write to stderr (don't color to avoid terminal checks)
WriteToStderr(fatal_message, n);
}
@@ -1837,8 +1840,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) {
// global flag: never log to file if set. Also -- don't log to a
// file if we haven't parsed the command line flags to get the
// program name.
- if (FLAGS_logtostderr || FLAGS_logtostdout || !IsGoogleLoggingInitialized()) {
- if (FLAGS_logtostdout) {
+ if (FLAG(logtostderr) || FLAG(logtostdout) || !IsGoogleLoggingInitialized()) {
+ if (FLAG(logtostdout)) {
ColoredWriteToStdout(data_->severity_, data_->message_text_,
data_->num_chars_to_log_);
} else {
@@ -1891,7 +1894,7 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) {
fatal_time = logmsgtime_.timestamp();
}
- if (!FLAGS_logtostderr && !FLAGS_logtostdout) {
+ if (!FLAG(logtostderr) && !FLAG(logtostdout)) {
for (int i = 0; i < NUM_SEVERITIES; ++i) {
if (LogDestination::log_destinations_[i]) {
LogDestination::log_destinations_[i]->logger_->Write(true, 0, "", 0);
@@ -2238,7 +2241,7 @@ static bool SendEmailInternal(const char*dest, const char *subject,
subject, body, dest);
}
- string logmailer = FLAGS_logmailer;
+ string logmailer = FLAG(logmailer);
if (logmailer.empty()) {
logmailer = "/bin/mail";
}
@@ -2338,9 +2341,9 @@ const vector<string>& GetLoggingDirectories() {
if (logging_directories_list == NULL) {
logging_directories_list = new vector<string>;
- if ( !FLAGS_log_dir.empty() ) {
+ if ( !FLAG(log_dir).empty() ) {
// A dir was specified, we should use it
- logging_directories_list->push_back(FLAGS_log_dir);
+ logging_directories_list->push_back(FLAG(log_dir));
} else {
GetTempDirectories(logging_directories_list);
#ifdef GLOG_OS_WINDOWS
@@ -2654,7 +2657,7 @@ LogMessageTime::LogMessageTime(std::tm t) {
LogMessageTime::LogMessageTime(std::time_t timestamp, WallTime now) {
std::tm t;
- if (FLAGS_log_utc_time)
+ if (FLAG(log_utc_time))
gmtime_r(&timestamp, &t);
else
localtime_r(&timestamp, &t);
@@ -2673,7 +2676,7 @@ void LogMessageTime::init(const std::tm& t, std::time_t timestamp,
void LogMessageTime::CalcGmtOffset() {
std::tm gmt_struct;
int isDst = 0;
- if ( FLAGS_log_utc_time ) {
+ if ( FLAG(log_utc_time )) {
localtime_r(&timestamp_, &gmt_struct);
isDst = gmt_struct.tm_isdst;
gmt_struct = time_struct_;
diff --git a/src/raw_logging.cc b/src/raw_logging.cc
index 43159832..8532362b 100644
--- a/src/raw_logging.cc
+++ b/src/raw_logging.cc
@@ -123,8 +123,8 @@ static char crash_buf[kLogBufSize + 1] = { 0 }; // Will end in '\0'
GLOG_ATTRIBUTE_FORMAT(printf, 4, 5)
void RawLog__(LogSeverity severity, const char* file, int line,
const char* format, ...) {
- if (!(FLAGS_logtostdout || FLAGS_logtostderr ||
- severity >= FLAGS_stderrthreshold || FLAGS_alsologtostderr ||
+ if (!(FLAG(logtostdout) || FLAG(logtostderr) ||
+ severity >= FLAG(stderrthreshold) || FLAG(alsologtostderr) ||
!IsGoogleLoggingInitialized())) {
return; // this stderr log message is suppressed
}
diff --git a/src/utilities.cc b/src/utilities.cc
index a332f1a1..a9d5102a 100644
--- a/src/utilities.cc
+++ b/src/utilities.cc
@@ -141,7 +141,7 @@ static void DumpStackTrace(int skip_count, DebugWriter *writerfn, void *arg) {
int depth = GetStackTrace(stack, ARRAYSIZE(stack), skip_count+1);
for (int i = 0; i < depth; i++) {
#if defined(HAVE_SYMBOLIZE)
- if (FLAGS_symbolize_stacktrace) {
+ if (FLAG(symbolize_stacktrace)) {
DumpPCAndSymbol(writerfn, arg, stack[i], " ");
} else {
DumpPC(writerfn, arg, stack[i], " ");
diff --git a/src/vlog_is_on.cc b/src/vlog_is_on.cc
index e478a366..4b7a5cae 100644
--- a/src/vlog_is_on.cc
+++ b/src/vlog_is_on.cc
@@ -43,14 +43,24 @@
#include <glog/logging.h>
#include <glog/raw_logging.h>
#include "base/googleinit.h"
+#include "config.h"
// glog doesn't have annotation
#define ANNOTATE_BENIGN_RACE(address, description)
using std::string;
+#ifdef HAVE_ABSL_FLAGS
+
+ABSL_FLAG(int32_t, v, 0, "Show all VLOG(m) messages for m <= this."
+" Overridable by --vmodule.").OnUpdate([] {
+ GOOGLE_NAMESPACE::absl_proxy_v = absl::GetFlag(FLAGS_v);
+ });
+
+#else
GLOG_DEFINE_int32(v, 0, "Show all VLOG(m) messages for m <= this."
" Overridable by --vmodule.");
+#endif
GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
" Argument is a comma-separated list of <module name>=<log level>."
@@ -60,6 +70,8 @@ GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
_START_GOOGLE_NAMESPACE_
+int32_t absl_proxy_v = 0;
+
namespace glog_internal_namespace_ {
// Used by logging_unittests.cc so can't make it static here.
@@ -132,7 +144,8 @@ static void VLOG2Initializer() {
// Can now parse --vmodule flag and initialize mapping of module-specific
// logging levels.
inited_vmodule = false;
- const char* vmodule = FLAGS_vmodule.c_str();
+ string vmodule_str = FLAG(vmodule);
+ const char* vmodule = vmodule_str.c_str();
const char* sep;
VModuleInfo* head = NULL;
VModuleInfo* tail = NULL;
@@ -164,7 +177,7 @@ static void VLOG2Initializer() {
// This can be called very early, so we use SpinLock and RAW_VLOG here.
int SetVLOGLevel(const char* module_pattern, int log_level) {
- int result = FLAGS_v;
+ int result = FLAG(v);
size_t const pattern_len = strlen(module_pattern);
bool found = false;
{
@@ -0,0 +1,150 @@
diff --git a/helio/cmake/third_party.cmake b/helio/cmake/third_party.cmake
index 810a8fa..8b11922 100644
--- a/helio/cmake/third_party.cmake
+++ b/helio/cmake/third_party.cmake
@@ -151,7 +151,7 @@ endfunction()
FetchContent_Declare(
gtest
- URL https://github.com/google/googletest/archive/v1.15.2.tar.gz
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(gtest)
@@ -162,7 +162,7 @@ endif ()
FetchContent_Declare(
benchmark
- URL https://github.com/google/benchmark/archive/v1.9.1.tar.gz
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(benchmark)
@@ -181,7 +181,7 @@ endif ()
FetchContent_Declare(
abseil_cpp
- URL https://github.com/abseil/abseil-cpp/releases/download/20250512.1/abseil-cpp-20250512.1.tar.gz
+ DOWNLOAD_COMMAND true
PATCH_COMMAND patch -p1 < "${CMAKE_CURRENT_LIST_DIR}/../patches/abseil-20250512.1.patch"
)
@@ -204,11 +204,7 @@ if (LEGACY_GLOG)
FetchContent_Declare(
glog
- GIT_REPOSITORY https://github.com/romange/glog
- GIT_TAG Absl
-
- GIT_PROGRESS TRUE
- GIT_SHALLOW TRUE
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(glog)
@@ -278,7 +274,7 @@ if (WITH_GPERF)
add_third_party(
gperf
- URL https://github.com/gperftools/gperftools/archive/gperftools-2.16.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/gperf/. <SOURCE_DIR>
# GIT_SHALLOW TRUE
# Remove building the unneeded programs (they fail on macos)
@@ -312,9 +308,7 @@ set(MIMALLOC_INCLUDE_DIR ${THIRD_PARTY_LIB_DIR}/mimalloc/include)
set (MIMALLOC_PATCH_COMMAND patch -p1 -d ${THIRD_PARTY_DIR}/mimalloc/ -i ${CMAKE_CURRENT_LIST_DIR}/../patches/mimalloc-v2.1.6.patch)
add_third_party(mimalloc
- #GIT_REPOSITORY https://github.com/microsoft/mimalloc.git
- #GIT_TAG 0f6d8293c74796fa913e4b5eb4361f1e4734f7c6
- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.1.6.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/mimalloc216/. <SOURCE_DIR>
PATCH_COMMAND "${MIMALLOC_PATCH_COMMAND}"
# -DCMAKE_BUILD_TYPE=Release
# Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug
@@ -328,7 +322,7 @@ add_third_party(mimalloc
)
add_third_party(jemalloc
- URL https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/jemalloc/. <SOURCE_DIR>
PATCH_COMMAND ./autogen.sh
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/jemalloc --with-jemalloc-prefix=je_ --disable-libdl
)
@@ -336,7 +330,7 @@ add_third_party(jemalloc
add_third_party(
xxhash
- URL https://github.com/Cyan4973/xxHash/archive/v0.8.3.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/xxhash/. <SOURCE_DIR>
# A bug in xxhash 0.8.1 that searches for a file that doesn't exist
PATCH_COMMAND touch <SOURCE_DIR>/xxhsum.1
@@ -347,7 +341,7 @@ add_third_party(
add_third_party(
uring
- URL https://github.com/axboe/liburing/archive/refs/tags/liburing-2.8.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/uring/. <SOURCE_DIR>
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/uring
BUILD_COMMAND make -C src
@@ -356,7 +350,7 @@ add_third_party(
add_third_party(
pugixml
- URL https://github.com/zeux/pugixml/archive/refs/tags/v1.15.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/pugixml/. <SOURCE_DIR>
)
if (WITH_AWS)
@@ -364,9 +358,7 @@ if (WITH_AWS)
add_third_party(
aws
- GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git
- GIT_TAG 3e51fa016655eeb6b6610bdf8fe7cf33ebbf3e00
- GIT_SHALLOW TRUE
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/aws-sdk-cpp/. <SOURCE_DIR>
PATCH_COMMAND "${AWS_PATCH_COMMAND}"
CMAKE_PASS_FLAGS "-DBUILD_ONLY=s3 -DNO_HTTP_CLIENT=ON -DENABLE_TESTING=OFF -DAUTORUN_UNIT_TESTS=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_POLICY_VERSION_MINIMUM=3.5"
LIB libaws-cpp-sdk-s3.a libaws-cpp-sdk-core.a libaws-crt-cpp.a libaws-c-mqtt.a libaws-c-event-stream.a libaws-c-s3.a libaws-c-auth.a libaws-c-http.a libaws-c-io.a libs2n.a libaws-c-compression.a libaws-c-cal.a libaws-c-sdkutils.a libaws-checksums.a libaws-c-common.a
@@ -376,8 +368,7 @@ endif()
if (WITH_GCP)
add_third_party(
rapidjson
- GIT_REPOSITORY https://github.com/Tencent/rapidjson.git
- GIT_TAG ab1842a
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/rapidjson/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF \
-DRAPIDJSON_BUILD_DOC=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5"
LIB "none"
@@ -386,24 +377,23 @@ endif()
add_third_party(
cares
- URL https://codeload.github.com/c-ares/c-ares/tar.gz/refs/tags/v1.34.5
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/cares/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DCARES_SHARED:BOOL=OFF -DCARES_STATIC:BOOL=ON -DCARES_STATIC_PIC:BOOL=ON \
-DCMAKE_INSTALL_LIBDIR=lib"
)
add_third_party(
zstd
- URL https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.zst
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/zstd/. <SOURCE_DIR>
SOURCE_SUBDIR "build/cmake"
-
+
# for debug pass : "CFLAGS=-fPIC -O0 -ggdb"
CMAKE_PASS_FLAGS "-DZSTD_BUILD_SHARED=OFF -DZSTD_BUILD_PROGRAMS=OFF -DZSTD_BUILD_TESTS=OFF"
)
add_third_party(
expected
- GIT_REPOSITORY https://github.com/martinmoene/expected-lite.git
- GIT_TAG f17940fabae07063cabb67abf2c8d164d3146044 # Important fixes for monadic functions
+ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/expected/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DEXPECTED_LITE_OPT_BUILD_TESTS=0"
LIB "none"
)
+195 -49
View File
@@ -1,109 +1,252 @@
{
fetchFromGitHub,
fetchurl,
lib,
stdenv,
# Dependencies
abseil-cpp,
c-ares,
croncpp,
double-conversion,
gperftools,
mimalloc,
rapidjson,
liburing,
xxHash,
expected-lite,
fast-float,
flatbuffers_23,
gbenchmark,
glog,
gperftools,
gtest,
hdrhistogram_c,
hnswlib,
jemalloc,
gcc-unwrapped,
liburing,
lz4,
pcre2,
pugixml,
rapidjson,
re2,
re-flex,
uni-algo,
xxHash,
zstd,
# Build tools
autoconf,
autoconf-archive,
automake,
automake116x,
bison,
cmake,
gcc-unwrapped,
ninja,
# Runtime dependencies
boost,
libunwind,
libtool,
libunwind,
openssl,
zlib,
# Options
withAws ? true,
withGcp ? true,
withGperf ? true,
withPcre ? true,
withRe2 ? true,
withSearch ? true,
withAsan ? false,
withUsan ? false,
}:
let
pname = "dragonflydb";
version = "0.1.0";
version = "1.34.2";
src = fetchFromGitHub {
owner = pname;
owner = "dragonflydb";
repo = "dragonfly";
tag = "v${version}";
hash = "sha256-P6WMW/n+VezWDXGagT4B+ZYyCp8oufDV6MTrpKpLZcs=";
hash = "sha256-n70IB32tZDe665hVLrKC0BSSJutmYhtPJvfNa48xaqA=";
fetchSubmodules = true;
};
# Needed exactly 5.4.4 for patch to work
lua = fetchurl {
url = "https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz";
hash = "sha256-L/ibvqIqfIuRDWsAb1ukVZ7c9GiiVTfO35mI7ZD2tFA=";
aws-sdk-cpp-1-11-162 = fetchFromGitHub {
owner = "aws";
repo = "aws-sdk-cpp";
tag = "1.11.162";
hash = "sha256-NxVE7H8BOetpbBkB2PTVBoHSXYm6cTp41F1LJmhtBbs=";
fetchSubmodules = true;
};
# Needed exactly 20211102.0 for patch to work
abseil-cpp_202111 = fetchFromGitHub {
owner = "abseil";
repo = "abseil-cpp";
rev = "20211102.0";
sha256 = "sha256-sSXT6D4JSrk3dA7kVaxfKkzOMBpqXQb0WbMYWG+nGwk=";
glog-absl = fetchFromGitHub {
owner = "romange";
repo = "glog";
rev = "Absl";
hash = "sha256-68Hx3kIPgyMSdHCUpYr68Cw8V4Umtyd+4VLZc3zUb1s=";
};
jsoncons-dragonfly = fetchFromGitHub {
owner = "dragonflydb";
repo = "jsoncons";
rev = "Dragonfly.178";
hash = "sha256-cxM95DFFo5z+eImgZzJw+ykaeSDtBF+hw5qo6gnL53s=";
};
lua-dragonfly = fetchFromGitHub {
owner = "dragonflydb";
repo = "lua";
rev = "Dragonfly-5.4.6a";
hash = "sha256-uLNe+hLihu4wMW/wstGnYdPa2bGPC5UiNE+VyNIYY2c=";
};
mimalloc216 = fetchFromGitHub {
owner = "microsoft";
repo = "mimalloc";
tag = "v2.1.6";
hash = "sha256-Ff3+RP+lAXCOeHJ87oG3c02rPP4WQIbg5L/CVe6gA3M=";
};
mimalloc224 = fetchFromGitHub {
owner = "microsoft";
repo = "mimalloc";
tag = "v2.2.4";
hash = "sha256-+8xZT+mVEqlqabQc+1buVH/X6FZxvCd0rWMyjPu9i4o=";
};
withUnwind = !stdenv.targetPlatform.isAarch64;
in
stdenv.mkDerivation {
inherit pname version src;
patches = [
./external-libs.patch
./helio-third-party.patch
];
postPatch = ''
mkdir -p ./build/{third_party,_deps}
ln -s ${double-conversion.src} ./build/third_party/dconv
ln -s ${mimalloc.src} ./build/third_party/mimalloc
ln -s ${rapidjson.src} ./build/third_party/rapidjson
ln -s ${gbenchmark.src} ./build/_deps/benchmark-src
ln -s ${gtest.src} ./build/_deps/gtest-src
cp -R --no-preserve=mode,ownership ${gperftools.src} ./build/third_party/gperf
cp -R --no-preserve=mode,ownership ${liburing.src} ./build/third_party/uring
cp -R --no-preserve=mode,ownership ${xxHash.src} ./build/third_party/xxhash
cp -R --no-preserve=mode,ownership ${abseil-cpp_202111} ./build/_deps/abseil_cpp-src
cp -R --no-preserve=mode,ownership ${glog.src} ./build/_deps/glog-src
chmod u+x ./build/third_party/uring/configure
cp ./build/third_party/xxhash/cli/xxhsum.{1,c} ./build/third_party/xxhash
patch -p1 -d ./build/_deps/glog-src < ${./glog.patch}
sed '
s@REPLACEJEMALLOCURL@file://${jemalloc.src}@
s@REPLACELUAURL@file://${lua}@
' ${./fixes.patch} | patch -p1
chmod +x helio/blaze.sh
'';
preConfigure = ''
# Create directory for nixpkgs dependencies
mkdir -p build/_deps build/deps-nixpkgs
# Copy FetchContent dependencies (in helio/cmake/third_party.cmake)
# These go to build/_deps/ where FetchContent expects them
cp -r --no-preserve=mode,ownership ${abseil-cpp.src} build/_deps/abseil_cpp-src
cp -r --no-preserve=mode,ownership ${gbenchmark.src} build/_deps/benchmark-src
cp -r --no-preserve=mode,ownership ${glog-absl} build/_deps/glog-src
cp -r --no-preserve=mode,ownership ${gtest.src} build/_deps/gtest-src
# Copy add_third_party dependencies to deps-nixpkgs
cp -r --no-preserve=mode,ownership ${croncpp.src} build/deps-nixpkgs/croncpp
cp -r --no-preserve=mode,ownership ${double-conversion.src} build/deps-nixpkgs/dconv
cp -r --no-preserve=mode,ownership ${expected-lite.src} build/deps-nixpkgs/expected
cp -r --no-preserve=mode,ownership ${fast-float.src} build/deps-nixpkgs/fast_float
cp -r --no-preserve=mode,ownership ${flatbuffers_23.src} build/deps-nixpkgs/flatbuffers
cp -r --no-preserve=mode,ownership ${hdrhistogram_c.src} build/deps-nixpkgs/hdr_histogram
cp -r --no-preserve=mode,ownership ${jemalloc.src} build/deps-nixpkgs/jemalloc
cp -r --no-preserve=mode,ownership ${jsoncons-dragonfly} build/deps-nixpkgs/jsoncons
cp -r --no-preserve=mode,ownership ${liburing.src} build/deps-nixpkgs/uring
cp -r --no-preserve=mode,ownership ${lua-dragonfly} build/deps-nixpkgs/lua
cp -r --no-preserve=mode,ownership ${lz4.src} build/deps-nixpkgs/lz4
cp -r --no-preserve=mode,ownership ${mimalloc216} build/deps-nixpkgs/mimalloc216
cp -r --no-preserve=mode,ownership ${mimalloc224} build/deps-nixpkgs/mimalloc224
cp -r --no-preserve=mode,ownership ${pugixml.src} build/deps-nixpkgs/pugixml
cp -r --no-preserve=mode,ownership ${re-flex.src} build/deps-nixpkgs/reflex
cp -r --no-preserve=mode,ownership ${xxHash.src} build/deps-nixpkgs/xxhash
cp -r --no-preserve=mode,ownership ${zstd.src} build/deps-nixpkgs/zstd
# c-ares is provided as a tarball, extract it
mkdir -p build/deps-nixpkgs/cares
tar -xzf ${c-ares.src} -C build/deps-nixpkgs/cares --strip-components=1
${
if withAws then
''
cp -r --no-preserve=mode,ownership ${aws-sdk-cpp-1-11-162} build/deps-nixpkgs/aws-sdk-cpp
''
else
""
}
${
if withGcp then
''
cp -r --no-preserve=mode,ownership ${rapidjson.src} build/deps-nixpkgs/rapidjson
''
else
""
}
${
if withGperf then
''
cp -r --no-preserve=mode,ownership ${gperftools.src} build/deps-nixpkgs/gperf
''
else
""
}
${
if withSearch then
''
cp -r --no-preserve=mode,ownership ${hnswlib.src} build/deps-nixpkgs/hnswlib
cp -r --no-preserve=mode,ownership ${uni-algo.src} build/deps-nixpkgs/uni-algo
''
else
""
}
# Fix permissions
chmod -R u+w build/deps-nixpkgs build/_deps
chmod u+x build/deps-nixpkgs/reflex/configure
chmod u+x build/deps-nixpkgs/uring/configure
touch build/deps-nixpkgs/xxhash/xxhsum.1
'';
nativeBuildInputs = [
autoconf
autoconf-archive
automake
automake116x
bison
cmake
ninja
];
buildInputs = [
boost
libunwind
libtool
openssl
];
zlib
]
++ lib.optional withPcre pcre2
++ lib.optional withRe2 re2
++ lib.optional withUnwind libunwind;
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
(lib.cmakeFeature "CMAKE_AR" "${gcc-unwrapped}/bin/gcc-ar")
(lib.cmakeFeature "CMAKE_RANLIB" "${gcc-unwrapped}/bin/gcc-ranlib")
(lib.cmakeBool "ENABLE_GIT_VERSION" false)
(lib.cmakeBool "WITH_ASAN" withAsan)
(lib.cmakeBool "WITH_AWS" withAws)
(lib.cmakeBool "WITH_GCP" withGcp)
(lib.cmakeBool "WITH_GPERF" withGperf)
(lib.cmakeBool "WITH_SEARCH" withSearch)
(lib.cmakeBool "WITH_USAN" withUsan)
];
ninjaFlags = [ "dragonfly" ];
# dragonflydb's tests rely heavily on outdated Python packages we don't
# have in nixpkgs, and it would be a highly non-trivial endeavor to
# recreate all of them locally to get them to run properly.
doCheck = false;
dontUseNinjaInstall = true;
dontUseNinjaInstall = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ./dragonfly $out/bin
install -Dm755 ./dragonfly $out/bin/dragonfly
runHook postInstall
'';
@@ -112,6 +255,9 @@ stdenv.mkDerivation {
homepage = "https://dragonflydb.io/";
license = licenses.bsl11;
platforms = platforms.linux;
maintainers = with maintainers; [ yureien ];
maintainers = with maintainers; [
typedrat
yureien
];
};
}
+2 -2
View File
@@ -18,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: {
# the Equicord repository. Dates as tags (and automatic releases) were the compromise
# we came to with upstream. Please do not change the version schema (e.g., to semver)
# unless upstream changes the tag schema from dates.
version = "2025-11-02";
version = "2025-11-09";
src = fetchFromGitHub {
owner = "Equicord";
repo = "Equicord";
tag = "${finalAttrs.version}";
hash = "sha256-SThWYUi4h3OpsP28ouHW1f8+m1dr+wMAYhA/90LBYPg=";
hash = "sha256-tddAMGNcaFj1hygrkQZfutWtgI+JHdYN5BHeW37562w=";
};
pnpmDeps = pnpm_10.fetchDeps {
+2 -3
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
callPackage,
python312Packages,
python313Packages,
fetchFromGitHub,
fetchurl,
ffmpeg-headless,
@@ -27,7 +27,7 @@ let
inherit version src;
};
python = python312Packages.python.override {
python = python313Packages.python.override {
packageOverrides = self: super: {
joserfc = super.joserfc.overridePythonAttrs (oldAttrs: {
version = "1.1.0";
@@ -141,7 +141,6 @@ python3Packages.buildPythonApplication rec {
distlib
fastapi
filelock
future
importlib-metadata
importlib-resources
google-generativeai
+83 -62
View File
@@ -1,74 +1,95 @@
{
lib,
fetchFromGitHub,
fetchNpmDeps,
buildGoModule,
buildNpmPackage,
stdenv,
olm,
nodejs,
npmHooks,
unstableGitUpdater,
withGoolm ? false,
}:
let
cppStdLib = if stdenv.hostPlatform.isDarwin then "-lc++" else "-lstdc++";
buildGoModule (
finalAttrs:
let
ver = "0.2025.11";
revDate = "2025-11-01";
rev = "be0d4487871c196d0c47bb1b6ac7ce9252d424de";
srcHash = "sha256-x7M7d8obnt8mpH1ZRev8c39PE5ZlgssgusGvrLaF/vg=";
vendorHash = "sha256-TDvTZ0n324pNPAPMZMhWq0LdDUqFrzBXNVNdfMlxqeQ=";
npmDepsHash = "sha256-4Ir4uq9Hg6Hwj21P/H7xWdVPzYrDrXiouEtjnLJj4Ko=";
in
buildGoModule (finalAttrs: {
pname = "gomuks-web";
version = "0.4.0-unstable-2025-04-22";
in
{
pname = "gomuks-web";
version = "${ver}-unstable-${revDate}";
src = fetchFromGitHub {
owner = "tulir";
repo = "gomuks";
rev = "fd257ed74c9df42e5b6d14d3c6a283f557f61666";
hash = "sha256-jMDLfiwkUme2bxE+ZEtUoNMwZ7GuGGzCV2dH1V87YtQ=";
};
inherit vendorHash;
frontend = buildNpmPackage {
name = "${finalAttrs.pname}_${finalAttrs.version}-frontend";
src = "${finalAttrs.src}/web";
inherit (finalAttrs) version;
npmDepsHash = "sha256-Mt2gJ1lLT3oQ3RKr3XTVFXkS/Xmjy0gahbdaxxrO+6g=";
installPhase = ''
cp -r dist $out
'';
};
vendorHash = "sha256-qeSxxd9ml2ENAYSPkdd1OWqy2DULnwLUVkKje47uT/I=";
buildInputs = [
(if withGoolm then stdenv.cc.cc.lib else olm)
];
CGO_LDFLAGS = lib.optional withGoolm cppStdLib;
tags = lib.optional withGoolm "goolm";
subPackages = [ "cmd/gomuks" ];
preBuild = ''
cp -r ${finalAttrs.frontend} ./web/dist
'';
postInstall = ''
mv $out/bin/gomuks $out/bin/gomuks-web
'';
passthru.updateScript = {
inherit (finalAttrs) frontend;
updateScript = unstableGitUpdater {
branch = "main";
src = fetchFromGitHub {
owner = "gomuks";
repo = "gomuks";
hash = srcHash;
inherit rev;
};
};
meta = {
mainProgram = "gomuks-web";
description = "Matrix client written in Go";
homepage = "https://github.com/tulir/gomuks";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ ctucx ];
platforms = lib.platforms.unix;
};
})
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
];
env = {
npmRoot = "web";
npmDeps = fetchNpmDeps {
src = "${finalAttrs.src}/web";
hash = npmDepsHash;
};
};
postPatch = ''
substituteInPlace ./web/build-wasm.sh \
--replace-fail 'go.mau.fi/gomuks/version.Tag=$(git describe --exact-match --tags 2>/dev/null)' "go.mau.fi/gomuks/version.Tag=v${ver}" \
--replace-fail 'go.mau.fi/gomuks/version.Commit=$(git rev-parse HEAD)' "go.mau.fi/gomuks/version.Commit=${rev}"
'';
doCheck = false;
tags = [ "goolm" ];
ldflags = [
"-X 'go.mau.fi/gomuks/version.Tag=v${ver}'"
"-X 'go.mau.fi/gomuks/version.Commit=${rev}'"
"-X \"go.mau.fi/gomuks/version.BuildTime=$(date -Iseconds)\""
"-X \"maunium.net/go/mautrix.GoModVersion=$(cat go.mod | grep 'maunium.net/go/mautrix ' | head -n1 | awk '{ print $2 })\""
];
subPackages = [
"cmd/gomuks"
"cmd/gomuks-terminal"
"cmd/archivemuks"
];
preBuild = ''
CGO_ENABLED=0 go generate ./web
'';
postInstall = ''
mv $out/bin/gomuks $out/bin/gomuks-web
'';
passthru.updateScript = {
inherit (finalAttrs) frontend;
updateScript = unstableGitUpdater {
branch = "main";
};
};
meta = {
mainProgram = "gomuks-web";
description = "Matrix client written in Go";
homepage = "https://github.com/tulir/gomuks";
license = lib.licenses.agpl3Only;
maintainers = [ lib.maintainers.zaphyra ];
platforms = lib.platforms.unix;
};
}
)
+2 -2
View File
@@ -1,7 +1,7 @@
{
lib,
stdenv,
rust,
buildPackages,
rustPlatform,
hdr10plus_tool,
cargo-c,
@@ -10,7 +10,7 @@
let
inherit (lib) optionals concatStringsSep;
inherit (rust.envVars) setEnv;
inherit (buildPackages.rust.envVars) setEnv;
in
rustPlatform.buildRustPackage (finalAttrs: {
__structuredAttrs = true;
+2 -2
View File
@@ -13,7 +13,7 @@
cairo,
pixman,
libsecret,
electron_36,
electron_37,
xcbuild,
buildPackages,
callPackage,
@@ -23,7 +23,7 @@
}:
let
electron = electron_36;
electron = electron_37;
yarn-berry = yarn-berry_4;
releaseData = lib.importJSON ./release-data.json;
+2 -2
View File
@@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "keychain";
version = "2.9.7";
version = "2.9.8";
src = fetchFromGitHub {
owner = "funtoo";
repo = "keychain";
rev = version;
sha256 = "sha256-/8OY/URIhVl8bTlJPRGidExHzkwzckm/v3QUq7Fxe04=";
sha256 = "sha256-xk3ooFhBkgv93Po5oC4TZRmMhJJXDv7yekoE102FQd8=";
};
nativeBuildInputs = [
+4 -4
View File
@@ -3,7 +3,7 @@
rustPlatform,
fetchCrate,
cargo-c,
rust,
buildPackages,
stdenv,
}:
@@ -27,19 +27,19 @@ rustPlatform.buildRustPackage rec {
buildPhase = ''
runHook preBuild
${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postBuild
'';
installPhase = ''
runHook preInstall
${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postCheck
'';
+3 -3
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
rust,
buildPackages,
rustPlatform,
cargo-c,
python3,
@@ -37,13 +37,13 @@ rustPlatform.buildRustPackage rec {
postBuild = ''
pushd imagequant-sys
${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
popd
'';
postInstall = ''
pushd imagequant-sys
${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
popd
'';
+9
View File
@@ -7,6 +7,7 @@
autoreconfHook,
aclSupport ? stdenv.hostPlatform.isLinux,
acl,
coreutils,
nixosTests,
}:
@@ -30,6 +31,14 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ popt ] ++ lib.optionals aclSupport [ acl ];
preCheck = ''
sed -i 's#/bin/date#${lib.getExe' coreutils "date"}#' test/*.sh
# Skip this test because it depends on a working root user, which we don't have in the sandbox
# Exiting with 77 signals that the test is skipped, and we only place it on line 2 because the shebang is on line 1
sed -i '2iexit 77' test/test-0110.sh
'';
doCheck = true;
passthru.tests = {
nixos-logrotate = nixosTests.logrotate;
};
+2 -2
View File
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "maildrop";
version = "3.1.8";
version = "3.2.1";
src = fetchurl {
url = "mirror://sourceforge/courier/maildrop/${version}/maildrop-${version}.tar.bz2";
sha256 = "sha256-foJsAxkXRE8berccH82QODWVZEhG4rOyYONSsc4D6VA=";
hash = "sha256-PFiQ9NQzItTmPz6Aw6YJzeYF9ylm1iNPyIZBjZSdJLk=";
};
nativeBuildInputs = [ pkg-config ];
+4 -4
View File
@@ -1,6 +1,6 @@
{
version = "1.27.10";
hash = "sha256-O/gU5EKeEoyQDsO1aJh3twbZzSnKb1pLt9t4GfYlHEE=";
npmDepsHash = "sha256-r4hategU6aE05fvpXkgMNtFyWTv6eumLzlevjOT0/dM=";
vendorHash = "sha256-TM8b16Y+629gBz5XlXXimDWBAfOq9w8es4v984zVUbk=";
version = "1.27.11";
hash = "sha256-0moTf5DEI+tw6Kx6/6cWzGdgem7rAfsj4iJg9I7Pjbk=";
npmDepsHash = "sha256-P9uTFeJ8ikK3Hp9bFt33mIzqp9duvMs1fYw1ErwXg1A=";
vendorHash = "sha256-MgxpoNj8Rv98AnqvWWewoFgvHWSD16MXLlkkVoQRGTE=";
}
+2 -2
View File
@@ -162,11 +162,11 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "microsoft-edge";
version = "142.0.3595.53";
version = "142.0.3595.65";
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-cSSKWxIkQe8jrv7gL5lX2Cs9roU8eD2MIHuLGQMnycM=";
hash = "sha256-aqQH4ttBWTjpzAEeWpheEJiu1FUMKMJu9j8Gu2pldbA=";
};
# With strictDeps on, some shebangs were not being patched correctly
+3 -3
View File
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "miro";
version = "0.7.0";
version = "0.7.2";
src = fetchFromGitHub {
owner = "vincent-uden";
repo = "miro";
tag = "v${finalAttrs.version}";
hash = "sha256-tkZSyxdcHeumBMlinwA3DT2Y/FgLzbeuVbsFbTfvINg=";
hash = "sha256-2RyBjWeb94bxiZ7hy//654YP1bc6bl13slNxRwrhtyk=";
};
cargoHash = "sha256-4NE9nMmOTQpWvMsGexW6GpBGao4yQoofrzGaaM4+rWE=";
cargoHash = "sha256-wRlze8VZ9I4O/eycWvlNPUsa/ucBeZ8SWtD9eJ+Uxvs=";
nativeBuildInputs = [
rustPlatform.bindgenHook
-1
View File
@@ -77,7 +77,6 @@ buildGoModule (finalAttrs: {
maintainers = with lib.maintainers; [
dit7ya
caarlos0
delafthi
];
mainProgram = "mods";
};
@@ -45,7 +45,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
pkosel
kachick
];
};
})
-57
View File
@@ -1,57 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
tor,
firejail,
iptables,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "orjail";
version = "1.1";
src = fetchFromGitHub {
owner = "orjail";
repo = "orjail";
rev = "v${version}";
sha256 = "06bwqb3l7syy4c1d8xynxwakmdxvm3qfm8r834nidsknvpdckd9z";
};
nativeBuildInputs = [ makeWrapper ];
postPatch = ''
patchShebangs make-helper.bsh
mkdir bin
mv usr/sbin/orjail bin/orjail
rm -r usr
'';
makeFlags = [
"DESTDIR=${placeholder "out"}"
];
postInstall = ''
# Specify binary paths: tor, firejail, iptables
# mktemp fails with /tmp path prefix, will work without it anyway
# https://github.com/orjail/orjail/issues/78
# firejail will fail reading /etc/hosts, therefore remove --hostname arg
# https://github.com/netblue30/firejail/issues/2758
substituteInPlace $out/bin/orjail \
--replace ''$'TORBIN=\n' ''$'TORBIN=${tor}/bin/tor\n' \
--replace ''$'FIREJAILBIN=\n' ''$'FIREJAILBIN=${firejail}/bin/firejail\n' \
--replace 'iptables -' '${iptables}/bin/iptables -' \
--replace 'mktemp /tmp/' 'mktemp ' \
--replace '--hostname=host ' ""
'';
meta = with lib; {
description = "Force programs to exclusively use tor network";
mainProgram = "orjail";
homepage = "https://github.com/orjail/orjail";
license = licenses.wtfpl;
maintainers = with maintainers; [ onny ];
platforms = platforms.linux;
};
}
-1
View File
@@ -37,7 +37,6 @@ rustPlatform.buildRustPackage rec {
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [
moni
kachick
];
mainProgram = "ox";
};
@@ -5,5 +5,6 @@
python3.pkgs.toPythonApplication (
python3.pkgs.pyglossary.override {
enableGui = true;
enableCmd = true;
}
)
+5 -1
View File
@@ -2,4 +2,8 @@
python3,
}:
python3.pkgs.toPythonApplication python3.pkgs.pyglossary
python3.pkgs.toPythonApplication (
python3.pkgs.pyglossary.override {
enableCmd = true;
}
)
+3 -3
View File
@@ -1,6 +1,6 @@
{
lib,
rust,
buildPackages,
stdenv,
rustPlatform,
fetchCrate,
@@ -43,11 +43,11 @@ rustPlatform.buildRustPackage rec {
checkType = "debug";
postBuild = ''
${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
'';
postInstall = ''
${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
'';
passthru = {
+2 -2
View File
@@ -6,10 +6,10 @@
}:
let
pname = "remnote";
version = "1.21.24";
version = "1.22.0";
src = fetchurl {
url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
hash = "sha256-jJ7I5Xgq6RHZ4pT8VTMikX1f38C9FqLtJaSSgc2rWHA=";
hash = "sha256-4zIUPAQV814fmvIrHP+Dvn9eNeSY/Zmn0G2nr7llto8=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
+4 -4
View File
@@ -6,7 +6,7 @@
rustPlatform,
cargo-c,
validatePkgConfig,
rust,
buildPackages,
libiconv,
curl,
apacheHttpd,
@@ -42,19 +42,19 @@ stdenv.mkDerivation (finalAttrs: {
buildPhase = ''
runHook preBuild
${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postBuild
'';
installPhase = ''
runHook preInstall
${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postCheck
'';
+2 -2
View File
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "sarasa-gothic";
version = "1.0.33";
version = "1.0.34";
src = fetchurl {
# Use the 'ttc' files here for a smaller closure size.
# (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
hash = "sha256-aIZWTrG1NimE6cPzs1drrTfvbHAuObUOjlPgZv3PaSg=";
hash = "sha256-wCUKEGq6qL+rsRXEuLOqfRLWsWkMd8khfQ+rFKfEkRQ=";
};
sourceRoot = ".";
+54
View File
@@ -0,0 +1,54 @@
{
asciinema,
fetchFromGitHub,
fetchYarnDeps,
lib,
makeWrapper,
nodejs,
stdenv,
versionCheckHook,
yarnBuildHook,
yarnConfigHook,
yarnInstallHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "svg-term";
version = "2.1.1";
src = fetchFromGitHub {
owner = "marionebl";
repo = "svg-term-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-sB4/SM48UmqaYKj6kzfjzITroL0l/QL4Gg5GSrQ+pdk=";
};
yarnOfflineCache = fetchYarnDeps {
inherit (finalAttrs) src;
hash = "sha256-4Q1NP3VhnACcrZ1XUFPtgSlk1Eh8Kp02rOgijoRJFcI=";
};
nativeBuildInputs = [
makeWrapper
nodejs
yarnBuildHook
yarnConfigHook
yarnInstallHook
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
# Some things work without asciinema on the PATH, but --command does not.
postInstall = ''
wrapProgram $out/bin/svg-term --prefix PATH : ${lib.makeBinPath [ asciinema ]}
'';
meta = {
description = "Share terminal sessions as razor-sharp animated SVG everywhere";
homepage = "https://github.com/marionebl/svg-term-cli";
license = lib.licenses.mit;
mainProgram = "svg-term";
maintainers = with lib.maintainers; [ samestep ];
};
})
+28
View File
@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "uni-algo";
version = "1.2.0";
src = fetchFromGitHub {
owner = "uni-algo";
repo = "uni-algo";
tag = "v${finalAttrs.version}";
hash = "sha256-IyQrL/DWDj87GplSGJC4iQJAzNURLh9TRko5l+EIfuU=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "Unicode Algorithms Implementation for C/C++";
homepage = "https://github.com/uni-algo/uni-algo";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ typedrat ];
};
})
+3 -3
View File
@@ -1,6 +1,6 @@
{
lib,
rust,
buildPackages,
stdenv,
fetchFromGitHub,
rustPlatform,
@@ -29,11 +29,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
];
postBuild = ''
${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
'';
postInstall = ''
${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd yr \
+3 -14
View File
@@ -14,21 +14,10 @@ version_aarch64_darwin=$(jq -r .zoomArm64.version <<<"$mac_data")
version_x86_64_darwin=$(jq -r .zoom.version <<<"$mac_data")
version_x86_64_linux=$(jq -r .zoom.version <<<"$linux_data")
echo >&2 "=== Downloading packages and computing hashes..."
# We precalculate the hashes before calling update-source-version
# because it attempts to calculate each architecture's package's hash
# by running `nix-build --system <architecture> -A zoom-us.src` which
# causes cross compiling headaches; using nix-prefetch-url with
# hard-coded URLs is simpler. Keep these URLs in sync with the ones
# in package.nix where `srcs` is defined.
hash_aarch64_darwin=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_aarch64_darwin}/zoomusInstallerFull.pkg?archType=arm64"))
hash_x86_64_darwin=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_darwin}/zoomusInstallerFull.pkg"))
hash_x86_64_linux=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_linux}/zoom_x86_64.pkg.tar.xz"))
echo >&2 "=== Updating package.nix ..."
# update-source-version expects to be at the root of nixpkgs
(cd "$nixpkgs" && update-source-version zoom-us "$version_aarch64_darwin" $hash_aarch64_darwin --system=aarch64-darwin --version-key=versions.aarch64-darwin)
(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_darwin" $hash_x86_64_darwin --system=x86_64-darwin --version-key=versions.x86_64-darwin)
(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_linux" $hash_x86_64_linux --system=x86_64-linux --version-key=versions.x86_64-linux --source-key=unpacked.src)
(cd "$nixpkgs" && update-source-version --ignore-same-version --print-changes --version-key=versions.aarch64-darwin pkgsCross.aarch64-darwin.zoom-us "$version_aarch64_darwin")
(cd "$nixpkgs" && update-source-version --ignore-same-version --print-changes --version-key=versions.x86_64-darwin pkgsCross.x86_64-darwin.zoom-us "$version_x86_64_darwin")
(cd "$nixpkgs" && update-source-version --ignore-same-version --print-changes --version-key=versions.x86_64-linux pkgsCross.gnu64.zoom-us "$version_x86_64_linux" --source-key=unpacked.src)
echo >&2 "=== Done!"
@@ -29,14 +29,14 @@
buildPythonPackage rec {
pname = "ax-platform";
version = "1.1.2";
version = "1.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "facebook";
repo = "ax";
tag = version;
hash = "sha256-DHB/BcD913gano5N7dlAbB+Tfg1dMTRP3AR1HwJjkLg=";
hash = "sha256-HZRo7jo5f3nnAha3evLTmI3caLhz7kIbP9CA6zaH4Zg=";
};
env.ALLOW_BOTORCH_LATEST = "1";
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pueblo";
version = "0.0.11";
version = "0.0.12";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
# should work for us as well.
src = fetchPypi {
inherit pname version;
hash = "sha256-IQ5NFn1EMh5oLgRlth7VWQmSyMx2/7cmC/U1VW1B4OE=";
hash = "sha256-oo2RNJQUVDqxhfBI6h1KCAgsMjDe7ns3F9qD4eKLVic=";
};
build-system = [
@@ -1,8 +1,9 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
# build-system
poetry-core,
@@ -38,8 +39,6 @@ buildPythonPackage rec {
version = "2.4.3";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "Argmaster";
repo = "pygerber";
@@ -92,6 +91,11 @@ buildPythonPackage rec {
"test/gerberx3/test_language_server/tests.py"
];
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
# FileNotFoundError: [Errno 2] No such file or directory: 'open'
"test_project_render_with_file_type_tags"
];
pytestFlags = [ "--override-ini=required_plugins=" ];
pythonImportsCheck = [ "pygerber" ];
@@ -21,6 +21,9 @@
# for GUI only
pygobject3,
gtk3,
enableCmd ? false,
prompt-toolkit,
tqdm,
}:
buildPythonPackage rec {
@@ -58,6 +61,10 @@ buildPythonPackage rec {
]
++ lib.optionals enableGui [
pygobject3
]
++ lib.optionals enableCmd [
prompt-toolkit
tqdm
];
buildInputs = lib.optionals enableGui [
@@ -1,93 +0,0 @@
diff --git c/pyproject.toml w/pyproject.toml
index abfb59ac..8f9c2121 100644
--- c/pyproject.toml
+++ w/pyproject.toml
@@ -416,11 +416,10 @@ version = "5.1.1"
description = "A tool for converting dictionary files aka glossaries."
readme = "README.md"
authors = [{ name = "Saeed Rasooli", email = "saeed.gnu@gmail.com" }]
-license = { text = "GPLv3+" }
+license = "GPL-3.0-or-later"
keywords = ["dictionary", "glossary"]
classifiers = [
"Development Status :: 5 - Production/Stable",
- "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Operating System :: OS Independent",
"Typing :: Typed",
"Programming Language :: Python :: 3.11",
@@ -430,6 +429,9 @@ classifiers = [
requires-python = ">= 3.11"
dependencies = []
+[project.scripts]
+pyglossary = "pyglossary.ui.main:main"
+
[project.optional-dependencies]
all = ["PyICU", "lxml", "beautifulsoup4"]
diff --git c/setup.py w/setup.py
index fd38a060..19df9ee3 100755
--- c/setup.py
+++ w/setup.py
@@ -8,8 +8,7 @@ import sys
from glob import glob
from os.path import dirname, exists, isdir, join
-from setuptools import setup
-from setuptools.command.install import install
+from setuptools import setup, find_packages
VERSION = "5.1.1"
log = logging.getLogger("root")
@@ -46,29 +45,6 @@ def getPipSafeVersion() -> str:
return VERSION
-class my_install(install):
- def run(self) -> None:
- install.run(self)
- if os.sep == "/":
- binPath = join(self.install_scripts, "pyglossary")
- log.info(f"creating script file {binPath!r}")
- if not exists(self.install_scripts):
- os.makedirs(self.install_scripts)
- # let it fail on wrong permissions.
- elif not isdir(self.install_scripts):
- raise OSError(
- "installation path already exists "
- f"but is not a directory: {self.install_scripts}",
- )
- open(binPath, "w", encoding="ascii").write("""#!/usr/bin/env -S python3 -O
-import sys
-from os.path import dirname
-sys.path.insert(0, dirname(__file__))
-from pyglossary.ui.main import main
-main()""")
- os.chmod(binPath, 0o755)
-
-
root_data_file_names = [
"about",
"LICENSE",
@@ -146,19 +122,14 @@ setup(
name="pyglossary",
version=getPipSafeVersion(),
python_requires=">=3.10.0",
- cmdclass={
- "install": my_install,
- },
description="A tool for converting dictionary files aka glossaries.",
long_description_content_type="text/markdown",
long_description=long_description,
author="Saeed Rasooli",
author_email="saeed.gnu@gmail.com",
- license="GPLv3+",
+ license="GPL-3.0-or-later",
url="https://github.com/ilius/pyglossary",
- packages=[
- "pyglossary",
- ],
+ packages=find_packages(),
entry_points={
"console_scripts": [
"pyglossary = pyglossary.ui.main:main",
@@ -47,14 +47,14 @@
buildPythonPackage rec {
pname = "pymobiledevice3";
version = "5.0.3";
version = "5.1.2";
pyproject = true;
src = fetchFromGitHub {
owner = "doronz88";
repo = "pymobiledevice3";
tag = "v${version}";
hash = "sha256-fw7KGijIgIXXFbtNpq1QBrxUP4F6ivLQXQn94YZnQL4=";
hash = "sha256-HKkLkkPCu9d7iBy7FEPWR6cnNuYFgxSGN6beMCCiuyo=";
};
build-system = [
@@ -39,18 +39,17 @@
buildPythonPackage rec {
pname = "scipp";
version = "25.08.0";
version = "25.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "scipp";
repo = "Scipp";
# https://github.com/scipp/scipp/pull/3722
tag = version;
hash = "sha256-nLccJlFnnVTpamph2oIaMxRD5ljrw6GlCnnTx7LfrO0=";
hash = "sha256-/gCLWRpBnOjNMBEpJe0JSda496iXDFnCE+R+zIaRkWo=";
};
env = {
SKIP_CONAN = "true";
SKIP_REMOTE_SOURCES = "true";
};
build-system = [
+1
View File
@@ -303,6 +303,7 @@ mapAliases {
argo = throw "'argo' has been renamed to/replaced by 'argo-workflows'"; # Converted to throw 2025-10-27
aria = throw "'aria' has been renamed to/replaced by 'aria2'"; # Converted to throw 2025-10-27
arrayfire = throw "arrayfire was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
artichoke = throw "artichoke has been removed due to being archived upstream."; # Added 2025-11-04
artim-dark = aritim-dark; # Added 2025-07-27
aseprite-unfree = throw "'aseprite-unfree' has been renamed to/replaced by 'aseprite'"; # Converted to throw 2025-10-27
asitop = throw "'asitop' has been renamed to/replaced by 'macpm'"; # Converted to throw 2025-10-27