push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
{
lib,
python3Packages,
fetchFromGitHub,
fetchpatch,
versionCheckHook,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "rich-cli";
version = "1.8.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Textualize";
repo = "rich-cli";
tag = "v${version}";
hash = "sha256-mV5b/J9wX9niiYtlmAUouaAm9mY2zTtDmex7FNWcezQ=";
};
patches = [
# Update dependencies, https://github.com/Textualize/rich-cli/pull/94
(fetchpatch {
name = "update-dependencies.patch";
url = "https://github.com/Textualize/rich-cli/pull/94/commits/1e9a11af7c1c78a5a44a207b1e0dce4c4b3c39f0.patch";
hash = "sha256-cU+s/LK2GDVWXLZob0n5J6sLjflCr8w10hRLgeWN5Vg=";
})
(fetchpatch {
name = "markdown.patch";
url = "https://github.com/Textualize/rich-cli/pull/94/commits/0a8e77d724ace88ce88ee9d68a46b1dc8464fe0b.patch";
hash = "sha256-KXvRG36Qj5kCj1RiAJsNkoJY7t41zUfJFgHeCtc0O4w=";
})
];
pythonRelaxDeps = [
"rich"
"textual"
];
build-system = with python3Packages; [
poetry-core
];
dependencies = with python3Packages; [
click
requests
rich
rich-rst
textual
];
pythonImportsCheck = [ "rich_cli" ];
nativeCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/rich";
versionCheckProgramArg = "--version";
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Command Line Interface to Rich";
homepage = "https://github.com/Textualize/rich-cli";
changelog = "https://github.com/Textualize/rich-cli/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = [ ];
mainProgram = "rich";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "richgo";
version = "0.3.12";
src = fetchFromGitHub {
owner = "kyoh86";
repo = "richgo";
rev = "v${version}";
sha256 = "sha256-pOB1exuwGwSxStodKhLLwh1xBvLjopUn0k+sEARdA9g=";
};
vendorHash = "sha256-jIzBN5T5+eTFCYOdS5hj3yTGOfU8NTrFmnIu+dDjVeU=";
meta = with lib; {
description = "Enrich `go test` outputs with text decorations";
mainProgram = "richgo";
homepage = "https://github.com/kyoh86/richgo";
license = licenses.mit;
maintainers = with maintainers; [ rvolosatovs ];
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
qt5,
openssl,
protobuf,
pkg-config,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ricochet-refresh";
version = "3.0.34";
src = fetchFromGitHub {
owner = "blueprint-freespeech";
repo = "ricochet-refresh";
tag = "v${finalAttrs.version}-release";
fetchSubmodules = true;
hash = "sha256-/IT3K3PL2fNl4P7xzItVnI8xJx5MmKxhw3ZEX9rN7j4=";
};
sourceRoot = "${finalAttrs.src.name}/src";
strictDeps = true;
buildInputs =
(with qt5; [
qtbase
qttools
qtmultimedia
qtquickcontrols2
qtwayland
])
++ [
openssl
protobuf
];
nativeBuildInputs = [
pkg-config
protobuf
cmake
qt5.wrapQtAppsHook
];
enableParallelBuilding = true;
cmakeBuildType = "MinSizeRel";
# https://github.com/blueprint-freespeech/ricochet-refresh/blob/main/BUILDING.md
cmakeFlags = [
(lib.cmakeBool "RICOCHET_REFRESH_INSTALL_DESKTOP" true)
(lib.cmakeBool "USE_SUBMODULE_FMT" true)
];
meta = {
description = "Secure chat without DNS or WebPKI";
mainProgram = "ricochet-refresh";
longDescription = ''
Ricochet Refresh is a peer-to-peer messenger app that uses Tor
to connect clients.
When you start Ricochet Refresh it creates a Tor hidden
service on your computer. The address of this hidden service
is your anonymous identity on the Tor network and how others
will be able to communicate with you. When you start a chat
with one of your contacts a Tor circuit is created between
your machine and the your contact's machine.
The original Ricochet uses onion "v2" hashed-RSA addresses,
which are no longer supported by the Tor network. Ricochet
Refresh upgrades the original Ricochet protocol to use the
current onion "v3" ed25519 addresses.
'';
homepage = "https://www.ricochetrefresh.net/";
downloadPage = "https://github.com/blueprint-freespeech/ricochet-refresh/releases";
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchurl,
google-fonts,
migu,
fontforge,
which,
}:
stdenv.mkDerivation rec {
pname = "ricty";
version = "4.1.1";
src = fetchurl {
url = "https://rictyfonts.github.io/files/ricty_generator-${version}.sh";
sha256 = "03fngb8f5hl7ifigdm5yljhs4z2x80cq8y8kna86d07ghknhzgw6";
};
unpackPhase = ''
install -m 0770 $src ricty_generator.sh
'';
patchPhase = ''
sed -i 's/fonts_directories=".*"/fonts_directories="$inconsolata $migu"/' ricty_generator.sh
'';
buildInputs = [
google-fonts
migu
fontforge
which
];
buildPhase = ''
inconsolata=${google-fonts} migu=${migu} ./ricty_generator.sh auto
'';
installPhase = ''
install -m644 --target $out/share/fonts/truetype/ricty -D Ricty-*.ttf
'';
meta = with lib; {
description = "High-quality Japanese font based on Inconsolata and Migu 1M";
homepage = "https://rictyfonts.github.io";
license = licenses.unfree;
maintainers = [ maintainers.mikoim ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
fontforge,
python3,
}:
stdenv.mkDerivation rec {
pname = "rictydiminished-with-firacode";
version = "1.2.2";
src = fetchFromGitHub {
owner = "hakatashi";
repo = "RictyDiminished-with-FiraCode";
tag = version;
hash = "sha256-twh3yLAM4MUjWzSDNmo8gNIRf01hieXeOS334sNdFk4=";
fetchSubmodules = true;
};
postPatch = ''
# Make builds more reproducible
substituteInPlace apply-feature.py --replace \
'ricty = ttLib.TTFont(options.in_font)' \
'ricty = ttLib.TTFont(options.in_font, recalcTimestamp=False)'
substituteInPlace build.py --replace \
'datetime.date.today()' \
'datetime.date.fromtimestamp(float(os.environ["SOURCE_DATE_EPOCH"]))'
'';
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts/rictydiminished-with-firacode *.ttf
runHook postInstall
'';
nativeBuildInputs = [
(python3.withPackages (ps: [
ps.jinja2
ps.fonttools
ps.fontforge
]))
];
meta = with lib; {
homepage = "https://github.com/hakatashi/RictyDiminished-with-FiraCode";
description = "Best Japanese programming font meets the awesome ligatures of Firacode";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ mt-caret ];
};
}

View File

@@ -0,0 +1,61 @@
diff --git a/mk b/mk
index a5baa0f..4ed2350 100644
--- a/mk
+++ b/mk
@@ -25,7 +25,7 @@ const rm = (x) => {
};
const pj = JSON.parse(rf('package.json'));
// v:version string - "x.y.z" where z is the number of commits since the beginning of the project
-const v = `${pj.version.replace(/\.0$/, '')}.${sh('git rev-list --count HEAD')}`;
+const v = "@version@";
const isDyalogBuild = /^dyalog/.test(pj.name);
const tasks = { };
@@ -36,8 +36,8 @@ const b = (f) => {
const vi = {
versionInfo: {
version: v,
- date: sh('git show -s HEAD --pretty=format:%ci'),
- rev: sh('git rev-parse HEAD'),
+ date: 'unknown',
+ rev: 'nixpkgs',
},
};
wf('_/version.js', `D=${JSON.stringify(vi)}`);
@@ -51,8 +51,7 @@ const incl = new RegExp('^$'
const pkg = (x, y, f) => {
rq('electron-packager')({
dir: '.',
- platform: x,
- arch: y,
+ asar: true,
tmpdir: '/tmp/ridebuild',
out: `_/${pj.name}`,
overwrite: true,
@@ -79,8 +78,8 @@ const pkg = (x, y, f) => {
ProductName: 'RIDE',
InternalName: 'RIDE',
},
- }).then(() => {
- const d = `_/${pj.name}/${pj.productName}-${x}-${y}`;
+ }).then(paths => {
+ const d = paths[0];
rm(`${d}/version`);
fs.existsSync(`${d}/LICENSE`) && mv(`${d}/LICENSE`, `${d}/LICENSE.electron`);
generateLicenses(`${d}/ThirdPartyNotices.txt`);
@@ -88,6 +87,7 @@ const pkg = (x, y, f) => {
}, e => f(e));
};
+const self = (f) => { b(e => (e ? f(e) : pkg(undefined, undefined, f))); };
const l = (f) => { b(e => (e ? f(e) : pkg('linux', 'x64', f))); };
const w = (f) => { b(e => (e ? f(e) : pkg('win32', 'ia32', f))); };
const o = (f) => { b(e => (e ? f(e) : pkg('darwin', 'x64', f))); };
@@ -109,6 +109,7 @@ tasks.ma=ma; tasks.masarm = ma;
tasks.a = a; tasks.arm = a;
tasks.d = d; tasks.dist = d;
tasks.c = c; tasks.clean = c;
+tasks.self = self;
async.each(
process.argv.length > 2 ? process.argv.slice(2) : ['build'],

View File

@@ -0,0 +1,154 @@
{
lib,
stdenv,
buildNpmPackage,
fetchFromGitHub,
fetchpatch,
replaceVars,
jq,
moreutils,
zip,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
electron,
}:
buildNpmPackage rec {
pname = "ride";
version = "4.5.4097";
src = fetchFromGitHub {
owner = "Dyalog";
repo = "ride";
tag = "v${version}";
hash = "sha256-xR+HVC1JVrPkgPhIJZxdTVG52+QbanmD1c/uO5l84oc=";
};
npmDepsHash = "sha256-C8puCz/w5xkaR4QVXXOdoO8n4gNZrRWMcB9/f1DcuMc=";
patches = [
# Adds support for electron versions >=28
(fetchpatch {
name = "bump-electron-version.patch";
url = "https://github.com/Dyalog/ride/commit/de42ebbd5036cfe0c7e6604296e87cc57ac9d365.patch";
hash = "sha256-5iKSNcxOOo2fKNvy3Rv+AlH3psYhLWLWUY0l8M6mAD4=";
})
# Fix info in the "about" page, enable asar, add option to build for the detected system
(replaceVars ./mk.patch {
inherit version;
})
# would not build with nodejs_22 and above without this
./update-nan.patch
];
postPatch = ''
# Remove spectron (it would download electron-chromedriver binaries)
${jq}/bin/jq 'del(.devDependencies.spectron)' package.json | ${moreutils}/bin/sponge package.json
pushd style
# Remove non-deterministic glob ordering
sed -i "/\*\*/d" layout.less light-theme.less dark-theme.less
# Individually include all files that were previously globbed
shopt -s globstar
for file in less/layout/**/*.less; do
echo "@import '$file';" >> layout.less
done
for file in less/colour/**/*.less; do
echo "@import '$file';" >> light-theme.less
echo "@import '$file';" >> dark-theme.less
done
shopt -u globstar
popd
'';
nativeBuildInputs = [
zip
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
# our patch adds the platform detecting build option
npmBuildFlags = "self";
postConfigure = ''
# electron files need to be writable on Darwin
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
pushd electron-dist
zip -0Xqr ../electron.zip *
popd
rm -r electron-dist
# force electron-packager to use our electron instead of downloading it, even if it is a different version
substituteInPlace node_modules/electron-packager/src/index.js \
--replace-fail 'await this.getElectronZipPath(downloadOpts)' '"electron.zip"'
'';
installPhase = ''
runHook preInstall
pushd _/ride*/*
install -Dm644 ThirdPartyNotices.txt -t $out/share/doc/ride
${lib.optionalString stdenv.hostPlatform.isLinux ''
install -Dm644 $src/D.png $out/share/icons/hicolor/64x64/apps/ride.png
install -Dm644 $src/D.svg $out/share/icons/hicolor/scalable/apps/ride.svg
mkdir -p $out/share/ride
cp -r locales resources{,.pak} $out/share/ride
makeShellWrapper ${lib.getExe electron} $out/bin/ride \
--add-flags $out/share/ride/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--inherit-argv0
''}
${lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
cp -r Ride-*.app $out/Applications
makeWrapper $out/Applications/Ride-*.app/Contents/MacOS/Ride-* $out/bin/ride
''}
popd
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "ride";
exec = "ride";
icon = "ride";
desktopName = "RIDE";
categories = [
"Development"
"IDE"
];
comment = meta.description;
terminal = false;
})
];
meta = {
changelog = "https://github.com/Dyalog/ride/releases/tag/v${version}";
description = "Remote IDE for Dyalog APL";
homepage = "https://github.com/Dyalog/ride";
license = lib.licenses.mit;
mainProgram = "ride";
maintainers = with lib.maintainers; [
tomasajt
markus1189
];
platforms = electron.meta.platforms;
};
}

View File

@@ -0,0 +1,31 @@
diff --git a/package-lock.json b/package-lock.json
index a0bd285..5a5ec59 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8034,9 +8034,10 @@
"dev": true
},
"node_modules/nan": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
- "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
+ "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==",
+ "license": "MIT",
"optional": true
},
"node_modules/nanomatch": {
@@ -18258,9 +18259,9 @@
"dev": true
},
"nan": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
- "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
+ "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==",
"optional": true
},
"nanomatch": {

View File

@@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem "riemann-dash", "0.2.14"

View File

@@ -0,0 +1,58 @@
GEM
remote: https://rubygems.org/
specs:
erubis (2.7.0)
ffi (1.17.1)
ffi (1.17.1-aarch64-linux-gnu)
ffi (1.17.1-aarch64-linux-musl)
ffi (1.17.1-arm-linux-gnu)
ffi (1.17.1-arm-linux-musl)
ffi (1.17.1-arm64-darwin)
ffi (1.17.1-x86-linux-gnu)
ffi (1.17.1-x86-linux-musl)
ffi (1.17.1-x86_64-darwin)
ffi (1.17.1-x86_64-linux-gnu)
ffi (1.17.1-x86_64-linux-musl)
multi_json (1.3.6)
rack (1.6.13)
rack-protection (1.5.5)
rack
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
riemann-dash (0.2.14)
erubis (>= 2.7.0)
multi_json (= 1.3.6)
sass (>= 3.1.14)
sinatra (~> 1.4.5)
webrick (~> 1.3.1)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sinatra (1.4.8)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
tilt (2.6.0)
webrick (1.3.1)
PLATFORMS
aarch64-linux-gnu
aarch64-linux-musl
arm-linux-gnu
arm-linux-musl
arm64-darwin
ruby
x86-linux-gnu
x86-linux-musl
x86_64-darwin
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES
riemann-dash (= 0.2.14)
BUNDLED WITH
2.6.2

View File

@@ -0,0 +1,151 @@
{
erubis = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
type = "gem";
};
version = "2.7.0";
};
ffi = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0fgwn1grxf4zxmyqmb9i4z2hr111585n9jnk17y6y7hhs7dv1xi6";
type = "gem";
};
version = "1.17.1";
};
multi_json = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0q2zjfvd2ibds9g9nzf2p1b47fc1wqliwfywv5pw85w15lmy91yr";
type = "gem";
};
version = "1.3.6";
};
rack = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0wr1f3g9rc9i8svfxa9cijajl1661d817s56b2w7rd572zwn0zi0";
type = "gem";
};
version = "1.6.13";
};
rack-protection = {
dependencies = [ "rack" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0my0wlw4a5l3hs79jkx2xzv7djhajgf8d28k8ai1ddlnxxb0v7ss";
type = "gem";
};
version = "1.5.5";
};
rb-fsevent = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423";
type = "gem";
};
version = "0.11.2";
};
rb-inotify = {
dependencies = [ "ffi" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0vmy8xgahixcz6hzwy4zdcyn2y6d6ri8dqv5xccgzc1r292019x0";
type = "gem";
};
version = "0.11.1";
};
riemann-dash = {
dependencies = [
"erubis"
"multi_json"
"sass"
"sinatra"
"webrick"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1h366knb1vx5l4a46ppfr2sb467bb4m448fh8q2al0ixw7wqncvr";
type = "gem";
};
version = "0.2.14";
};
sass = {
dependencies = [ "sass-listen" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0";
type = "gem";
};
version = "3.7.4";
};
sass-listen = {
dependencies = [
"rb-fsevent"
"rb-inotify"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
type = "gem";
};
version = "4.0.0";
};
sinatra = {
dependencies = [
"rack"
"rack-protection"
"tilt"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq";
type = "gem";
};
version = "1.4.8";
};
tilt = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96";
type = "gem";
};
version = "2.6.0";
};
webrick = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0s42mxihcl2bx0h9q0v2syl70qndydfkl39a06h9il17p895ya8g";
type = "gem";
};
version = "1.3.1";
};
}

View File

@@ -0,0 +1,24 @@
{
bundlerApp,
lib,
bundlerUpdateScript,
}:
bundlerApp {
pname = "riemann-dash";
gemdir = ./.;
exes = [ "riemann-dash" ];
passthru.updateScript = bundlerUpdateScript "riemann-dash";
meta = with lib; {
description = "Javascript, websockets-powered dashboard for Riemann";
homepage = "https://github.com/riemann/riemann-dash";
license = licenses.mit;
maintainers = with maintainers; [
manveru
nicknovitski
];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem "riemann-tools"

View File

@@ -0,0 +1,25 @@
GEM
remote: https://rubygems.org/
specs:
beefcake (1.0.0)
json (1.8.6)
mtrc (0.0.4)
optimist (3.0.0)
riemann-client (0.2.6)
beefcake (>= 0.3.5, <= 1.0.0)
mtrc (>= 0.0.4)
trollop (>= 1.16.2)
riemann-tools (0.2.14)
json (~> 1.8)
optimist (~> 3.0, >= 3.0.0)
riemann-client (~> 0.2, >= 0.2.6)
trollop (2.9.9)
PLATFORMS
ruby
DEPENDENCIES
riemann-tools
BUNDLED WITH
2.1.4

View File

@@ -0,0 +1,82 @@
{
beefcake = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "10gid0a7pdllh3qmjiqkqxgfqvd7m1f2dmcm4gcd19s63pv620gv";
type = "gem";
};
version = "1.0.0";
};
json = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
type = "gem";
};
version = "1.8.6";
};
mtrc = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0xj2pv4cpn0ad1xw38sinsxfzwhgqs6ff18hw0cwz5xmsf3zqmiz";
type = "gem";
};
version = "0.0.4";
};
optimist = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "05jxrp3nbn5iilc1k7ir90mfnwc5abc9h78s5rpm3qafwqxvcj4j";
type = "gem";
};
version = "3.0.0";
};
riemann-client = {
dependencies = [
"beefcake"
"mtrc"
"trollop"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "02rp8x2y8h61x8mx9c8kwgm2yyvgg63g8km93zmwmkpp5fyi3fi8";
type = "gem";
};
version = "0.2.6";
};
riemann-tools = {
dependencies = [
"json"
"optimist"
"riemann-client"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "07w9x3iw32zwpzsm9l63vn0nv1778qls1blqysr45m7l7x6n5wjx";
type = "gem";
};
version = "0.2.14";
};
trollop = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "074h7lns72kg1dl5gvz5apl3xz1i0axbnbc01pf2kbw4q0lkpnp4";
type = "gem";
};
version = "2.9.9";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
bundlerApp,
bundlerUpdateScript,
}:
bundlerApp {
pname = "riemann-tools";
gemdir = ./.;
exes = [
"riemann-apache-status"
"riemann-bench"
"riemann-cloudant"
"riemann-consul"
"riemann-dir-files-count"
"riemann-dir-space"
"riemann-diskstats"
"riemann-fd"
"riemann-freeswitch"
"riemann-haproxy"
"riemann-health"
"riemann-kvminstance"
"riemann-memcached"
"riemann-net"
"riemann-nginx-status"
"riemann-ntp"
"riemann-portcheck"
"riemann-proc"
"riemann-varnish"
"riemann-zookeeper"
];
passthru.updateScript = bundlerUpdateScript "riemann-tools";
meta = with lib; {
description = "Tools to submit data to Riemann";
homepage = "https://riemann.io";
maintainers = with maintainers; [
manveru
nicknovitski
];
license = licenses.mit;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
jre,
}:
stdenv.mkDerivation rec {
pname = "riemann";
version = "0.3.12";
src = fetchurl {
url = "https://github.com/riemann/riemann/releases/download/${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-gsJMfLo7zpaVfyVmHznGFiomK6dq7yTphuc9vyp5t6Y=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
substituteInPlace bin/riemann --replace '$top/lib/riemann.jar' "$out/share/java/riemann.jar"
mkdir -p $out/share/java $out/bin $out/etc
mv lib/riemann.jar $out/share/java/
mv bin/riemann $out/bin/
mv etc/riemann.config $out/etc/
wrapProgram "$out/bin/riemann" --prefix PATH : "${jre}/bin"
'';
meta = with lib; {
homepage = "http://riemann.io/";
description = "Network monitoring system";
mainProgram = "riemann";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.epl10;
platforms = platforms.all;
maintainers = with maintainers; [ crimeminister ];
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitea,
autoreconfHook,
check,
pkg-config,
file,
protobufc,
withWolfSSL ? false,
wolfssl,
withGnuTLS ? false,
gnutls,
withJSON ? true,
json_c,
}:
stdenv.mkDerivation rec {
pname = "riemann-c-client";
version = "2.2.2";
src = fetchFromGitea {
domain = "git.madhouse-project.org";
owner = "algernon";
repo = "riemann-c-client";
rev = "riemann-c-client-${version}";
hash = "sha256-l9iUDhagODi58FDT9vEb90tsiIcrcMmGYCmH3ML3RCM=";
};
outputs = [
"bin"
"dev"
"out"
];
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
check
pkg-config
protobufc
];
buildInputs = [
file
protobufc
]
++ lib.optional withWolfSSL wolfssl
++ lib.optional withGnuTLS gnutls
++ lib.optional withJSON json_c;
configureFlags =
[ ] ++ lib.optional withWolfSSL "--with-tls=wolfssl" ++ lib.optional withGnuTLS "--with-tls=gnutls";
doCheck = true;
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://git.madhouse-project.org/algernon/riemann-c-client";
description = "C client library for the Riemann monitoring system";
mainProgram = "riemann-client";
license = licenses.eupl12;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
stdenv,
fetchzip,
}:
stdenv.mkDerivation rec {
pname = "ries";
version = "2018.04.11-1";
# upstream does not provide a stable link
src = fetchzip {
url = "https://salsa.debian.org/debian/ries/-/archive/debian/${version}/ries-debian-${version}.zip";
sha256 = "1h2wvd4k7f0l0i1vm9niz453xdbcs3nxccmri50qyrzzzc1b0842";
};
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
homepage = "https://mrob.com/pub/ries/";
description = "Tool to produce a list of equations that approximately solve to a given number";
mainProgram = "ries";
platforms = platforms.all;
maintainers = with maintainers; [ symphorien ];
license = licenses.gpl3Plus;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
rustPlatform,
fetchFromGitHub,
makeWrapper,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage rec {
pname = "riff";
version = "1.0.3";
src = fetchFromGitHub {
owner = "DeterminateSystems";
repo = "riff";
rev = "v${version}";
hash = "sha256-ThHkEvu+lWojHmEgcrwdZDPROfxznB7vv78msyZf90A=";
};
cargoHash = "sha256-JghCYYDf2keV9UFU5m+qDIIb7+V0aPwVzR41J01pXcI=";
nativeBuildInputs = [
makeWrapper
pkg-config
];
buildInputs = [
openssl
];
postInstall = ''
wrapProgram $out/bin/riff --set-default RIFF_DISABLE_TELEMETRY true
'';
meta = {
description = "Tool that automatically provides external dependencies for software projects";
mainProgram = "riff";
homepage = "https://riff.sh";
changelog = "https://github.com/DeterminateSystems/riff/releases/tag/v${version}";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
riffdiff,
testers,
}:
rustPlatform.buildRustPackage rec {
pname = "riffdiff";
version = "3.4.1";
src = fetchFromGitHub {
owner = "walles";
repo = "riff";
tag = version;
hash = "sha256-IpEgWbmWFW4X09EeAfWadncH4ptzSom2+7kvh8h3hcM=";
};
cargoHash = "sha256-I0hBh9FFoy+RhEUAHfgQa+UiSgOS0mYJy+2W/0/9kG4=";
passthru = {
tests.version = testers.testVersion { package = riffdiff; };
updateScript = nix-update-script { };
};
meta = {
description = "Diff filter highlighting which line parts have changed";
homepage = "https://github.com/walles/riff";
changelog = "https://github.com/walles/riff/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
johnpyp
getchoo
];
mainProgram = "riff";
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchzip,
fetchurl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "rifiuti";
version = "20040505_1";
src = fetchzip {
url = "mirror://sourceforge/project/odessa/Rifiuti/${finalAttrs.version}/rifiuti_${finalAttrs.version}.zip";
hash = "sha256-bVPz0nXexGtQtXxGb3Mc79tzyZikc7KxNNWuvgu6pQ0=";
};
patches = [
(fetchurl {
name = "add-GCC-hardening.patch";
url = "https://salsa.debian.org/pkg-security-team/rifiuti/-/raw/f237358a91b12776beb9942c79ccb3aea180968a/debian/patches/add-GCC-hardening";
hash = "sha256-Z4UajJ8WydoCKjkG4q7WsBSXWwkM8B6UXBoWN1Qas60=";
})
(fetchurl {
name = "fix-bts-crash-on-malformed-file.patch";
url = "https://salsa.debian.org/pkg-security-team/rifiuti/-/raw/5b51604942b518b7752843cf7d693f202dc9c6f1/debian/patches/fix-bts-crash-on-malformed-file.patch";
hash = "sha256-1kZKC6qIGpCl1zOvKiWh6FcyYX3WozHBSPBHUsL2eMI=";
})
(fetchurl {
name = "fix-warnings";
url = "https://salsa.debian.org/pkg-security-team/rifiuti/-/raw/f237358a91b12776beb9942c79ccb3aea180968a/debian/patches/fix-warnings";
hash = "sha256-9/OckpNqZQdkmNsUeHUEi6wT12mBd7aMA5dKgQAxXq8=";
})
(fetchurl {
name = "use-CC-and-abort-on-error.patch";
url = "https://salsa.debian.org/pkg-security-team/rifiuti/-/raw/5bd48acbcb63cee324556c4ec29750ce1e41755c/debian/patches/use-CC-and-abort-on-error.patch";
hash = "sha256-RE4Vswtc887neJ3yAe0YWcs5YtZbwd1UtcTF4zBsmlo=";
})
];
postPatch = ''
substituteInPlace src/Makefile \
--replace-fail gcc cc
'';
makeFlags = [
"-C src"
];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
install -D bin/rifiuti $out/bin/rifiuti
runHook postInstall
'';
meta = with lib; {
description = "Analyze Windows Recycle Bin INFO2 file";
mainProgram = "rifiuti";
homepage = "https://sourceforge.net/projects/odessa/files/Rifiuti";
maintainers = with maintainers; [ d3vil0p3r ];
platforms = platforms.unix;
license = licenses.bsd3;
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
version = "1.11";
pname = "rig";
src = fetchurl {
url = "https://ayera.dl.sourceforge.net/project/rig/rig/${version}/rig-${version}.tar.gz";
sha256 = "1f3snysjqqlpk2kgvm5p2icrj4lsdymccmn3igkc2f60smqckgq0";
};
# Note: diff modified from Debian: Norbert Veber <nveber@debian.org>
# http://deb.debian.org/debian/pool/main/r/rig/rig_1.11-1.diff.gz
patches = [ ./rig_1.11-1.diff ];
makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
meta = {
homepage = "https://rig.sourceforge.net/";
description = "Random identity generator";
longDescription = ''
RIG (Random Identity Generator) is a free replacement for a shareware
program out there called 'fake'. It generates random, yet real-looking,
personal data. It is useful if you need to feed a name to a Web site,
BBS, or real person, and are too lazy to think of one yourself. Also,
if the Web site/BBS/person you are giving the information to tries to
cross-check the city, state, zip, or area code, it will check out.
'';
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ tomberek ];
platforms = with lib.platforms; all;
mainProgram = "rig";
};
}

View File

@@ -0,0 +1,39 @@
--- rig-1.11.orig/Makefile
+++ rig-1.11/Makefile
@@ -1,20 +1,21 @@
-PREFIX=/usr/local
+PREFIX=${out}
BINDIR=${PREFIX}/bin
MANDIR=${PREFIX}/man
DATADIR=${PREFIX}/share/rig
+CXX=g++
all: rig rig.6
rig: rig.cc
- g++ -g rig.cc -o rig -Wall -DDATADIR="\"$(DATADIR)\""
+ ${CXX} -O2 -g rig.cc -o rig -Wall -DDATADIR="\"$(DATADIR)\""
rig.6: rig.6.in
sed s@DATADIR@"$(DATADIR)"@g < rig.6.in > rig.6
install: rig rig.6
- install -g 0 -m 755 -o 0 -s rig $(BINDIR)
- install -g 0 -m 644 -o 0 rig.6 $(MANDIR)/man6/rig.6
- install -g 0 -m 755 -o 0 -d $(DATADIR)
- install -g 0 -m 644 -o 0 data/*.idx $(DATADIR)
+ install -m 755 -d $(DESTDIR)$(DATADIR)
+ install -m 755 -d $(DESTDIR)$(BINDIR)
+ install -m 755 rig $(DESTDIR)$(BINDIR)/rig
+ install -m 644 data/*.idx $(DESTDIR)$(DATADIR)
clean:
rm -rf *~ *.rej *.orig *.o rig rig.6
--- rig-1.11.orig/rig.cc
+++ rig-1.11/rig.cc
@@ -26,6 +26,7 @@
#include <time.h>
#include <errno.h>
#include <assert.h>
+#include <string.h>
using namespace std;

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
libX11,
SDL2,
SDL2_mixer,
buildOpenGLES ? false,
}:
stdenv.mkDerivation {
pname = "rigel-engine";
version = "0-unstable-2024-05-26";
src = fetchFromGitHub {
owner = "lethal-guitar";
repo = "RigelEngine";
rev = "f05996f9b3ad3b3ea5bb818e49e7977636746343";
hash = "sha256-iZ+eYZxnVqHo4vLeZdoV7TO3fWivCfbAf4F57/fU7aY=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
];
buildInputs = [
libX11
SDL2
SDL2_mixer
];
cmakeFlags = [
"-Wno-dev"
(lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.10")
]
++ lib.optional buildOpenGLES "-DUSE_GL_ES=ON";
meta = {
description = "Modern re-implementation of the classic DOS game Duke Nukem II";
homepage = "https://github.com/lethal-guitar/RigelEngine";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ keenanweaver ];
mainProgram = "RigelEngine";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,73 @@
{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
makeWrapper,
unzip,
libGL,
libICE,
libSM,
libX11,
libXrandr,
zlib,
alsa-lib,
}:
stdenv.mkDerivation {
pname = "rigsofrods-bin";
version = "2022.12";
src = fetchurl {
url = "https://update.rigsofrods.org/rigs-of-rods-linux-2022-12.zip";
hash = "sha256-jj152fd4YHlU6YCVCnN6DKRfmi5+ORpMQVDacy/TPeE=";
};
sourceRoot = ".";
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
unzip
];
buildInputs = [
libGL
libICE
libSM
libX11
libXrandr
stdenv.cc.cc
zlib
];
runtimeDependencies = [
alsa-lib
];
noDumpEnvVars = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/rigsofrods
cp -a . $out/share/rigsofrods
for f in RoR RunRoR; do
makeWrapper $out/share/rigsofrods/$f $out/bin/$f \
--chdir $out/share/rigsofrods
done
runHook postInstall
'';
meta = with lib; {
description = "Free/libre soft-body physics simulator mainly targeted at simulating vehicle physics";
homepage = "https://www.rigsofrods.org";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
raskin
wegank
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,391 @@
diff -r -u Ri-li-2.0.1.orig/src/audio.cc Ri-li-2.0.1/src/audio.cc
--- Ri-li-2.0.1.orig/src/audio.cc 2012-01-22 00:40:56.928609371 -0800
+++ Ri-li-2.0.1/src/audio.cc 2012-01-22 00:28:33.360636539 -0800
@@ -22,8 +22,8 @@
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#include <stdlib.h>
-#include <iostream.h>
-#include <string.h>
+#include <iostream>
+#include <string>
#include "audio.h"
#include "utils.h"
@@ -57,7 +57,7 @@
char PathFile[512];
if(Mix_OpenAudio(22050,AUDIO_S16,1,1024)) {
- cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<endl;
+ std::cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<std::endl;
return false;
}
diff -r -u Ri-li-2.0.1.orig/src/ecran.cc Ri-li-2.0.1/src/ecran.cc
--- Ri-li-2.0.1.orig/src/ecran.cc 2007-11-02 04:48:16.000000000 -0700
+++ Ri-li-2.0.1/src/ecran.cc 2012-01-22 00:13:54.422798653 -0800
@@ -21,7 +21,7 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
diff -r -u Ri-li-2.0.1.orig/src/editeur.cc Ri-li-2.0.1/src/editeur.cc
--- Ri-li-2.0.1.orig/src/editeur.cc 2007-11-02 04:48:17.000000000 -0700
+++ Ri-li-2.0.1/src/editeur.cc 2012-01-22 00:28:59.632635579 -0800
@@ -25,10 +25,10 @@
#include <windows.h>
#endif
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include <SDL/SDL.h>
@@ -374,7 +374,7 @@
// Sauve le niveau
if(Niveau.Save()==false) {
- cerr <<"ERREUR Saving levels!"<<endl;
+ std::cerr <<"ERREUR Saving levels!"<<std::endl;
exit(-1);
}
diff -r -u Ri-li-2.0.1.orig/src/jeux.cc Ri-li-2.0.1/src/jeux.cc
--- Ri-li-2.0.1.orig/src/jeux.cc 2007-11-02 04:48:17.000000000 -0700
+++ Ri-li-2.0.1/src/jeux.cc 2012-01-22 00:14:08.422798143 -0800
@@ -25,10 +25,10 @@
#include <windows.h>
#endif
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include <SDL/SDL.h>
diff -r -u Ri-li-2.0.1.orig/src/loco.cc Ri-li-2.0.1/src/loco.cc
--- Ri-li-2.0.1.orig/src/loco.cc 2007-11-02 04:48:18.000000000 -0700
+++ Ri-li-2.0.1/src/loco.cc 2012-01-22 00:14:17.878797797 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include "preference.h"
#include "loco.h"
diff -r -u Ri-li-2.0.1.orig/src/main.cc Ri-li-2.0.1/src/main.cc
--- Ri-li-2.0.1.orig/src/main.cc 2007-11-02 04:48:19.000000000 -0700
+++ Ri-li-2.0.1/src/main.cc 2012-01-22 00:29:40.080634136 -0800
@@ -23,8 +23,8 @@
#include <stdio.h>
#include <stdlib.h>
-#include <iostream.h>
-#include <string.h>
+#include <iostream>
+#include <string>
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
@@ -115,7 +115,7 @@
// Initilise SDL
if( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO|SDL_INIT_NOPARACHUTE) < 0 ) {
- cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<endl;
+ std::cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<std::endl;
exit(-1);
}
// Ferme le programme correctement quant quit
@@ -125,7 +125,7 @@
sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
- cerr <<"Impossible d'utiliser 8bits pour la vid<69>o !"<<endl;
+ std::cerr <<"Impossible d'utiliser 8bits pour la vid<69>o !"<<std::endl;
exit(-1);
}
@@ -145,7 +145,7 @@
sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
if(sdlVideo==NULL) {
- cerr <<"Impossible de passer dans le mode vid<69>o 800x600 !"<<endl;
+ std::cerr <<"Impossible de passer dans le mode vid<69>o 800x600 !"<<std::endl;
exit(-1);
}
// Change le nom de la fenetre
diff -r -u Ri-li-2.0.1.orig/src/menu.cc Ri-li-2.0.1/src/menu.cc
--- Ri-li-2.0.1.orig/src/menu.cc 2007-11-02 04:48:19.000000000 -0700
+++ Ri-li-2.0.1/src/menu.cc 2012-01-22 00:30:04.752633198 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include "preference.h"
#include "menu.h"
#include "sprite.h"
@@ -92,7 +92,7 @@
// Teste la resolution video
sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
- cerr <<"Impossible d'utiliser 8bits pour la vid<69>o !"<<endl;
+ std::cerr <<"Impossible d'utiliser 8bits pour la vid<69>o !"<<std::endl;
exit(-1);
}
@@ -112,7 +112,7 @@
if(Pref.FullScreen) vOption|=SDL_FULLSCREEN;
sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
if(sdlVideo==NULL) {
- cerr <<"Impossible de passer dans le mode vid<69>o 800x600 !"<<endl;
+ std::cerr <<"Impossible de passer dans le mode vid<69>o 800x600 !"<<std::endl;
exit(-1);
}
diff -r -u Ri-li-2.0.1.orig/src/mouse.cc Ri-li-2.0.1/src/mouse.cc
--- Ri-li-2.0.1.orig/src/mouse.cc 2007-11-02 04:48:20.000000000 -0700
+++ Ri-li-2.0.1/src/mouse.cc 2012-01-22 00:14:36.438797120 -0800
@@ -21,7 +21,7 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include "mouse.h"
#include "preference.h"
diff -r -u Ri-li-2.0.1.orig/src/sprite.cc Ri-li-2.0.1/src/sprite.cc
--- Ri-li-2.0.1.orig/src/sprite.cc 2007-11-02 04:48:20.000000000 -0700
+++ Ri-li-2.0.1/src/sprite.cc 2012-01-22 00:30:43.640631779 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include "sprite.h"
#include "preference.h"
@@ -84,7 +84,7 @@
strcpy(PathFile,Langue[Pref.Langue]);
GetPath(PathFile);
if(FileExiste(PathFile)==false) {
- cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<endl;
+ std::cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<std::endl;
return false;
}
L=ChargeFichier(PathFile,Buf);
@@ -128,7 +128,7 @@
// *** Charge le fichier des langues ***
// *************************************
if(FileExiste(PathFile)==false) {
- cerr <<"Impossible de trouver 'language.dat'"<<endl;
+ std::cerr <<"Impossible de trouver 'language.dat'"<<std::endl;
return false;
}
L=ChargeFichier(PathFile,Buf);
@@ -163,7 +163,7 @@
strcpy(PathFile,"sprites.dat");
GetPath(PathFile);
if(FileExiste(PathFile)==false) {
- cerr <<"Impossible de trouver 'sprites.dat'"<<endl;
+ std::cerr <<"Impossible de trouver 'sprites.dat'"<<std::endl;
return false;
}
L=ChargeFichier(PathFile,Buf);
@@ -352,7 +352,7 @@
Image[i]=SDL_CreateRGBSurface((Dim[i].bpp-3)*SDL_SRCALPHA,Dim[i].L,Dim[i].H,Dim[i].bpp*8,
0xff,0xff00,0xff0000,0xff000000*(Dim[i].bpp-3));
if(Image[i]<=NULL) {
- cerr <<"Impossible de cr<63>er une Surface SDL!"<<endl;
+ std::cerr <<"Impossible de cr<63>er une Surface SDL!"<<std::endl;
return false;
}
@@ -486,7 +486,7 @@
Image[0]=SDL_CreateRGBSurface((Dim[0].bpp-3)*SDL_SRCALPHA,Dim[0].L,Dim[0].H,Dim[0].bpp*8,
0xff,0xff00,0xff0000,0xff000000*(Dim[0].bpp-3));
if(Image[0]<=NULL) {
- cerr <<"Impossible de cr<63>er une Surface SDL!"<<endl;
+ std::cerr <<"Impossible de cr<63>er une Surface SDL!"<<std::endl;
return false;
}
return true;
diff -r -u Ri-li-2.0.1.orig/src/tableau.cc Ri-li-2.0.1/src/tableau.cc
--- Ri-li-2.0.1.orig/src/tableau.cc 2007-11-02 04:48:21.000000000 -0700
+++ Ri-li-2.0.1/src/tableau.cc 2012-01-22 00:14:50.710796598 -0800
@@ -21,7 +21,7 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "preference.h"
diff -r -u Ri-li-2.0.1.orig/src/utils.cc Ri-li-2.0.1/src/utils.cc
--- Ri-li-2.0.1.orig/src/utils.cc 2007-11-02 04:48:22.000000000 -0700
+++ Ri-li-2.0.1/src/utils.cc 2012-01-22 00:31:30.944630051 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#ifdef WINDOWS
#include <windows.h>
@@ -77,7 +77,7 @@
file=fopen(Path,"r");
if(!file) {
- cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
perror("fopen");
return -1;
}
@@ -93,7 +93,7 @@
Buf=new unsigned char [L+1];
if(Buf==NULL) {
- cerr <<"ERREUR: Memoire insuffisante!"<<endl;
+ std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
fclose(file);
return -1;
}
@@ -104,7 +104,7 @@
while(Compt>1024) {
AfficheChargeur();
if( fread(Po,1,1024,file) != 1024 ) {
- cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<std::endl;
perror("fread");
fclose(file);
delete [] Buf;
@@ -131,13 +131,13 @@
file=_lopen(Path,OF_READ);
if(file==-1) {
- cerr <<"Impossible d'ouvrir "<<Path<<endl;
+ std::cerr <<"Impossible d'ouvrir "<<Path<<std::endl;
exit(-1);
}
long L=(long)_llseek(file,0,SEEK_END);
if(L==-1) {
- cerr <<"Impossible de trouver la longueur du fichier"<<endl;
+ std::cerr <<"Impossible de trouver la longueur du fichier"<<std::endl;
perror("lseek");
_lclose(file);
return -1;
@@ -146,7 +146,7 @@
Buf=new unsigned char [L+1];
if(Buf==NULL) {
- cerr <<"ERREUR: Memoire insuffisante!"<<endl;
+ std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
_lclose(file);
return -1;
}
@@ -169,14 +169,14 @@
file=fopen(Path,"w");
if(!file) {
- cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
perror("fopen");
return false;
}
while(L>512) {
if( fwrite(Buf,1,512,file) != 512 ) {
- cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
perror("fwrite");
fclose(file);
return false;
@@ -187,7 +187,7 @@
if(L>0) {
if( fwrite(Buf,1,(size_t)L,file) != (size_t)L ) {
- cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
perror("fwrite");
fclose(file);
return false;
@@ -208,7 +208,7 @@
file=_lcreat(Path,0);
if(!file) {
- cerr <<"ERREUR: Impossible de cr<63>er le fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR: Impossible de cr<63>er le fichier '"<<Path<<"'"<<std::endl;
return false;
}
@@ -216,7 +216,7 @@
_lclose(file);
if(Lec!=L) {
- cerr <<"Probl<62>me d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<endl;
+ std::cerr <<"Probl<62>me d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<std::endl;
return false;
}
@@ -250,7 +250,7 @@
sprintf(Path,"/usr/share/games/Ri-li/%s",Provi);
if(FileExiste(Path)) return;
- cerr <<"Impossible de trouver le fichier '"<<Provi<<endl;
+ std::cerr <<"Impossible de trouver le fichier '"<<Provi<<std::endl;
exit(-1);
}
#endif
@@ -266,7 +266,7 @@
sprintf(Path,"PROGDIR:%s",Provi);
if(FileExiste(Path)) return;
- cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
+ std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
exit(-1);
}
#endif
@@ -282,7 +282,7 @@
sprintf(Path,"Ri-li.app/Contents/Resources/%s",Provi);
if(FileExiste(Path)) return;
- cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
+ std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
exit(-1);
}
#endif

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
SDL_mixer,
SDL,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "ri_li";
version = "2.0.1";
src = fetchurl {
url = "mirror://sourceforge/ri-li/Ri-li-${version}.tar.bz2";
sha256 = "f71ccc20c37c601358d963e087ac0d524de8c68e96df09c3aac1ae65edd38dbd";
};
patches = [
./moderinze_cpp.patch
# Build fix for gcc-11 pending upstream inclusion:
# https://sourceforge.net/p/ri-li/bugs/2/
(fetchpatch {
name = "gcc-11.patch";
url = "https://sourceforge.net/p/ri-li/bugs/2/attachment/0001-Fix-build-on-gcc-11.patch";
sha256 = "01il9lm3amwp3b435ka9q63p0jwlzajwnbshyazx6n9vcnrr17yw";
})
];
CPPFLAGS = "-I${lib.getDev SDL}/include -I${lib.getDev SDL}/include/SDL -I${SDL_mixer}/include";
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
SDL
SDL_mixer
];
meta = {
homepage = "https://ri-li.sourceforge.net";
license = lib.licenses.gpl2Plus;
description = "Children's train game";
longDescription = ''
Ri-li is an arcade game licensed under the GPL (General Public License).
You drive a toy wood engine in many levels and you must collect all the coaches
to win.
'';
maintainers = with lib.maintainers; [ jcumming ];
platforms = with lib.platforms; linux;
mainProgram = "Ri_li";
};
}

View File

@@ -0,0 +1,28 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "rime-cli";
version = "0.0.3";
src = fetchFromGitHub {
owner = "puddinging";
repo = "rime-cli";
rev = "v${version}";
hash = "sha256-CI0Jva7oA/zUGatv+wCdByqbTBNQRw+4clr8IDKX6HQ=";
};
vendorHash = null;
meta = {
homepage = "https://github.com/puddinging/rime-cli";
changelog = "https://github.com/puddinging/rime-cli/releases/tag/v${version}";
description = "Command line tool to add customized vocabulary for Rime IME";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ urandom ];
mainProgram = "rime-cli";
};
}

View File

@@ -0,0 +1,180 @@
# Generated using generateFetchSchema.sh
fetchFromGitHub: ''
mkdir -p package/rime
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-array";
rev = "b37aad383ff6e71e457aa6d1d47d2040af8649b9";
sha256 = "0krvxnjr35r49wwi6bcjdnld6zbk791l7vm294wmdy36qfp2924y";
}
} package/rime/array
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-bopomofo";
rev = "c7618f4f5728e1634417e9d02ea50d82b71956ab";
sha256 = "0g77nv0jrwqnbqqna0ib0kqcy6l5zl62kh49ny67d6bjwnwz9186";
}
} package/rime/bopomofo
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-cangjie";
rev = "8dfad9e537f18821b71ba28773315d9c670ae245";
sha256 = "029kw9nx6x0acg4f0m8wj1ziqffffhy9yyj51nlx17cnia0qcrby";
}
} package/rime/cangjie
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-cantonese";
rev = "e3c6b17e638ac8a9aeab4d5852e5909b049c5ab3";
sha256 = "171a64l17yb6isgiih2z0cp2vgzvdcn0vby3rk8556b0ir4j545q";
}
} package/rime/cantonese
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-combo-pinyin";
rev = "17b66079a23a00d3214639fee2b8ae97d3e620dc";
sha256 = "1izx29hawfryapfzadysjbb2zfw0yq6vwsw56khkf6gsaz1faamn";
}
} package/rime/combo-pinyin
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-double-pinyin";
rev = "69bf85d4dfe8bac139c36abbd68d530b8b6622ea";
sha256 = "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak";
}
} package/rime/double-pinyin
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-emoji";
rev = "a18b09997e7c457066e4c92adf249a4b3e235f9c";
sha256 = "0gaa9r3yx1s135jlqxp85iyygcwqgz2k4n1bpvjr2n8xkn9297b6";
}
} package/rime/emoji
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-essay";
rev = "e0519d0579722a0871efb68189272cba61a7350b";
sha256 = "1g7188vgklxindvm6p65b5jlm6z47fdmhmp0hqrrd6smg9pz4qpw";
}
} package/rime/essay
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-ipa";
rev = "22b71710e029bcb412e9197192a638ab11bc2abf";
sha256 = "0zdk4f9qkfj3q5hmjnairj1lv6f6y27mic12k886n6sxywwbwr2k";
}
} package/rime/ipa
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-jyutping";
rev = "50100769f645bf92afef5170e3bf42be5147b41b";
sha256 = "1dmw2ssbqxbs93iab0whjzncsvv66vyw3hwb30kly2v18bwkagq0";
}
} package/rime/jyutping
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-luna-pinyin";
rev = "79aeae200a7370720be98232844c0715f277e1c0";
sha256 = "06vff5hq85dkbmqch9d3w2rww2n8sk41c7say0pdlkfphyjs76ps";
}
} package/rime/luna-pinyin
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-middle-chinese";
rev = "582e144e525525ac2b6c2498097d7c7919e84174";
sha256 = "0ixj2f3syc0hv9n5r0cavcq0jrdf1www2frjl11855gwydp4lsx5";
}
} package/rime/middle-chinese
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-pinyin-simp";
rev = "52b9c75f085479799553f2499c4f4c611d618cdf";
sha256 = "1zi9yqgijb4r3q5ah89hdwbli5xhlmg19xj8sq1grnpfbw2hbdbj";
}
} package/rime/pinyin-simp
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-prelude";
rev = "dd84abecc33f0b05469f1d744e32d2b60b3529e3";
sha256 = "14wn86xqvb6r73pgksi51wgfc70pj95iqrl85m2i0fwl43zg2y5g";
}
} package/rime/prelude
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-quick";
rev = "3fe5911ba608cb2df1b6301b76ad1573bd482a76";
sha256 = "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9";
}
} package/rime/quick
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-scj";
rev = "cab5a0858765eff0553dd685a2d61d5536e9149c";
sha256 = "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk";
}
} package/rime/scj
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-soutzoe";
rev = "beeaeca72d8e17dfd1e9af58680439e9012987dc";
sha256 = "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc";
}
} package/rime/soutzoe
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-stenotype";
rev = "f3e9189d5ce33c55d3936cc58e39d0c88b3f0c88";
sha256 = "0dl6px7lrh3xa87knjzwzdcwjj1k1dg4l72q7lb48an4s9f1cy5d";
}
} package/rime/stenotype
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-stroke";
rev = "e6c7608925009636577ff7469eecc870f1de18f3";
sha256 = "1rzclksf09s9js6z9mjm4ibgybr6kg2c4xq4j6sg9b3pnjbjwv8g";
}
} package/rime/stroke
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-terra-pinyin";
rev = "9427853de91d645d9aca9ceace8fe9e9d8bc5b50";
sha256 = "0f1wiqasy41hp3kw3qc5zk6z0rgfrswdw91kc66v1w1a3skb6wpp";
}
} package/rime/terra-pinyin
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-wubi";
rev = "152a0d3f3efe40cae216d1e3b338242446848d07";
sha256 = "1p2ikcw40q84fx0ixarm1jfp8ax276pabansybchrj34cqs53sr1";
}
} package/rime/wubi
ln -sv ${
fetchFromGitHub {
owner = "rime";
repo = "rime-wugniu";
rev = "abd1ee98efbf170258fcf43875c21a4259e00b61";
sha256 = "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq";
}
} package/rime/wugniu
''

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix-prefetch-git -p jq
imlist=(
array
bopomofo
cangjie
cantonese
combo-pinyin
double-pinyin
emoji
essay
ipa
jyutping
luna-pinyin
middle-chinese
pinyin-simp
prelude
quick
scj
soutzoe
stenotype
stroke
terra-pinyin
wubi
wugniu
)
echo "# Generated using generateFetchSchema.sh"
echo "fetchFromGitHub:"
echo \'\'
echo "mkdir -p package/rime"
for im in ${imlist[@]}; do
tempFile=$(mktemp)
echo "ln -sv \${fetchFromGitHub {"
echo " owner = \"rime\";"
echo " repo = \"rime-$im\";"
nix-prefetch-git --quiet https://github.com/rime/rime-$im \
| jq '{ rev: .rev, sha256: .sha256 }' \
| jq -r 'to_entries | map(" \(.key) = \"\(.value)\";") | .[]'
echo "}} package/rime/$im"
done
echo \'\'

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
librime,
}:
stdenv.mkDerivation {
pname = "rime-data";
version = "0.38.20231116";
src = fetchFromGitHub {
owner = "rime";
repo = "plum";
rev = "6f502ff6fa87789847fa18200415318e705bffa4";
sha256 = "sha256-DNSLP0dzzgJ6XzwvxGPeRqRrRIUV/GwD2+8cz9bYAwA=";
};
buildInputs = [ librime ];
buildFlags = [ "all" ];
makeFlags = [ "PREFIX=$(out)" ];
preBuild = import ./fetchSchema.nix fetchFromGitHub;
postPatch = ''
# Disable git operations.
sed -i /fetch_or_update_package$/d scripts/install-packages.sh
'';
meta = with lib; {
description = "Schema data of Rime Input Method Engine";
longDescription = ''
Rime-data provides schema data for Rime Input Method Engine.
'';
homepage = "https://rime.im";
license = with licenses; [
# rime-array
# rime-combo-pinyin
# rime-double-pinyin
# rime-middle-chinese
# rime-scj
# rime-soutzoe
# rime-stenotype
# rime-wugniu
gpl3Only
# plum
# rime-bopomofo
# rime-cangjie
# rime-emoji
# rime-essay
# rime-ipa
# rime-jyutping
# rime-luna-pinyin
# rime-prelude
# rime-quick
# rime-stroke
# rime-terra-pinyin
# rime-wubi
lgpl3Only
# rime-pinyin-simp
asl20
# rime-cantonese
cc-by-40
];
maintainers = with maintainers; [ pmy ];
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gitUpdater,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rime-ice";
version = "2025.04.06";
src = fetchFromGitHub {
owner = "iDvel";
repo = "rime-ice";
tag = finalAttrs.version;
hash = "sha256-s3r8cdEliiPnKWs64Wgi0rC9Ngl1mkIrLnr2tIcyXWw=";
};
installPhase = ''
runHook preInstall
rm -rf others README.md .git*
mv default.yaml rime_ice_suggestion.yaml
mkdir -p $out/share
cp -r . $out/share/rime-data
runHook postInstall
'';
passthru.updateScript = gitUpdater { };
meta = {
description = "Actively maintained simplified Chinese dictionary with full and double pinyin support";
longDescription = ''
Rime-Ice () provides a comprehensive, ready-to-use configuration.
It includes full Pinyin and popular Double Pinyin layouts,
a well-maintained open-source dictionary,
and a wide range of extended features.
To enable the upstream `default.yaml`
(provided as `rime_ice_suggestion.yaml`),
add the following to your `default.custom.yaml`:
```yaml
patch:
__include: rime_ice_suggestion:/
```
'';
homepage = "https://github.com/iDvel/rime-ice";
changelog = "https://github.com/iDvel/rime-ice/blob/main/others/CHANGELOG.md";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
xddxdd
moraxyc
luochen1990
wrvsrx
];
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "rime-japanese";
version = "0-unstable-2023-08-02";
src = fetchFromGitHub {
owner = "gkovacs";
repo = "rime-japanese";
rev = "4c1e65135459175136f380e90ba52acb40fdfb2d";
hash = "sha256-/mIIyCu8V95ArKo/vIS3qAiD8InUmk8fAF/wejxRxGw=";
};
installPhase = ''
runHook preInstall
install -D japanese.*.yaml -t $out/share/rime-data/
runHook postInstall
'';
meta = {
description = "Layout for typing in Japanese with RIME";
homepage = "https://github.com/gkovacs/rime-japanese";
# Awaiting upstream response (gkovacs/rime-japanese#6)
# Packages are assumed unfree unless explicitly indicated otherwise
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ pluiedev ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
rustPlatform,
fetchFromGitHub,
librime,
rime-data,
}:
rustPlatform.buildRustPackage rec {
pname = "rime-ls";
version = "0.4.3";
src = fetchFromGitHub {
owner = "wlh320";
repo = "rime-ls";
rev = "v${version}";
hash = "sha256-jDn41hSDcQQO1d4G0XV6B/JZkryHtuoHUOYpmdE1Kxo=";
};
cargoHash = "sha256-lmvIH6ssEqbkcDETzHL+Spd04B576o8dijigUR88l9c=";
nativeBuildInputs = [ rustPlatform.bindgenHook ];
buildInputs = [ librime ];
# Set RIME_DATA_DIR to work around test_get_candidates during checkPhase
env.RIME_DATA_DIR = "${rime-data}/share/rime-data";
meta = {
description = "Language server for Rime input method engine";
homepage = "https://github.com/wlh320/rime-ls";
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ definfo ];
mainProgram = "rime_ls";
};
}

View File

@@ -0,0 +1,34 @@
{
fetchurl,
stdenvNoCC,
lib,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rime-moegirl";
version = "20250909";
src = fetchurl {
url = "https://github.com/outloudvi/mw2fcitx/releases/download/${finalAttrs.version}/moegirl.dict.yaml";
hash = "sha256-wsxtiTOg9/yzdkhTuLwdfLev0MAzXWID96bq1AyJN6k=";
};
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/rime-data
cp $src $out/share/rime-data/moegirl.dict.yaml
runHook postInstall
'';
meta = {
changelog = "https://github.com/outloudvi/mw2fcitx/releases/tag/${finalAttrs.version}";
maintainers = with lib.maintainers; [ xddxdd ];
description = "RIME dictionary file for entries from zh.moegirl.org.cn";
homepage = "https://github.com/outloudvi/mw2fcitx/releases";
license = with lib.licenses; [
unlicense # the tool packaging dictionary
cc-by-nc-sa-30 # moegirl wiki itself
];
};
})

View File

@@ -0,0 +1,66 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rime-wanxiang";
version = "13.0.6";
src = fetchFromGitHub {
owner = "amzxyz";
repo = "rime_wanxiang";
tag = "v" + finalAttrs.version;
hash = "sha256-ThO4bXxp55cOivFo9eq9XEKpEvX9O5LiE6WsMGoq3gA=";
};
installPhase = ''
runHook preInstall
rm -rf README.md .git* custom LICENSE
mv default.yaml wanxiang_suggested_default.yaml
mkdir -p $out/share
cp -r . $out/share/rime-data
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Feature-rich pinyin schema for Rime, basic edition";
longDescription = ''
is a basic quanpin and shuangpin input schema for Rime based on
[ dictionaries and grammar models](https://github.com/amzxyz/RIME-LMDG),
supporting traditional shuangpin as well as tonal schemata such as and
.
The schema requires to work the grammar model `wanxiang-lts-zh-hans.gram`.
However, this file is
[released](https://github.com/amzxyz/RIME-LMDG/releases/tag/LTS) by
carelessly overriding the old versions
(see the [discussion](https://github.com/amzxyz/RIME-LMDG/issues/22)). So
we can't pack it into Nixpkgs, which demands reproducibility. You have to
download it yourself and place it in the user directory of Rime.
The upstream `default.yaml` is included as
`wanxiang_suggested_default.yaml`. To enable it, please modify your
`default.custom.yaml` as such:
```yaml
patch:
__include: wanxiang_suggested_default:/
```
'';
homepage = "https://github.com/amzxyz/rime_wanxiang";
downloadPage = "https://github.com/amzxyz/rime_wanxiang/releases";
changelog = "https://github.com/amzxyz/rime_wanxiang/releases/tag/v${finalAttrs.version}";
license = lib.licenses.cc-by-40;
maintainers = with lib.maintainers; [ rc-zb ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,33 @@
{
fetchurl,
stdenvNoCC,
lib,
}:
stdenvNoCC.mkDerivation {
pname = "rime-zhwiki";
version = "20250823";
src = fetchurl {
url = "https://github.com/felixonmars/fcitx5-pinyin-zhwiki/releases/download/0.2.5/zhwiki-20250823.dict.yaml";
hash = "sha256-on8oYS/5K24R1wWhsz276B6hA7rHVd124uFHx2Ent70=";
};
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/rime-data
cp $src $out/share/rime-data/zhwiki.dict.yaml
runHook postInstall
'';
meta = {
maintainers = with lib.maintainers; [ xddxdd ];
description = "RIME dictionary file for entries from zh.wikipedia.org";
homepage = "https://github.com/felixonmars/fcitx5-pinyin-zhwiki";
license = [
lib.licenses.fdl13Plus
lib.licenses.cc-by-sa-40
];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
fetchFromGitea,
buildGoModule,
tailwindcss_3,
}:
buildGoModule rec {
pname = "rimgo";
version = "1.2.6";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "rimgo";
repo = "rimgo";
rev = "v${version}";
hash = "sha256-PBzbCiRIDrtKH3j6jxmylPpwafR5qgRYDHgYP1m/+Ok=";
};
vendorHash = "sha256-nk1Pl9K62RjmBUgTlbp3u6cCoiEwpUHavfT3Oy0iyGU=";
nativeBuildInputs = [ tailwindcss_3 ];
preBuild = ''
tailwindcss -i static/tailwind.css -o static/app.css -m
'';
ldflags = [
"-s"
"-w"
"-X codeberg.org/rimgo/rimgo/pages.VersionInfo=${version}"
];
meta = with lib; {
description = "Alternative frontend for Imgur";
homepage = "https://codeberg.org/rimgo/rimgo";
license = licenses.agpl3Only;
mainProgram = "rimgo";
maintainers = with maintainers; [ quantenzitrone ];
};
}

View File

@@ -0,0 +1,181 @@
{
lib,
stdenv,
python3Packages,
fetchFromGitHub,
fetchzip,
makeBinaryWrapper,
makeDesktopItem,
replaceVars,
todds,
steam,
}:
let
pname = "rimsort";
version = "1.0.30";
src = fetchFromGitHub {
owner = "RimSort";
repo = "RimSort";
rev = "v${version}";
hash = "sha256-f1wYoBC0EbkvYNJHkVuoMukJZMY7eNjCIzJra7/hpLs=";
fetchSubmodules = true;
};
steamworksSrc = fetchzip {
url = "https://web.archive.org/web/20250527013243/https://partner.steamgames.com/downloads/steamworks_sdk_162.zip"; # Steam sometimes requires auth to download.
hash = "sha256-yDA92nGj3AKTNI4vnoLaa+7mDqupQv0E4YKRRUWqyZw=";
};
steamfiles = python3Packages.buildPythonPackage {
pname = "steamfiles";
inherit version;
format = "setuptools";
src = "${src}/submodules/steamfiles";
dependencies = with python3Packages; [
protobuf
protobuf3-to-dict
];
};
steam-run =
(steam.override {
privateTmp = false;
}).run;
in
stdenv.mkDerivation {
inherit pname;
inherit version;
unpackPhase = ''
runHook preUnpack
cp -r ${src} source
chmod -R 755 source
cp ${steamworksSrc}/redistributable_bin/linux64/libsteam_api.so source/
runHook postUnpack
'';
sourceRoot = "source";
patches = [
(replaceVars ./todds-path.patch { inherit todds; })
(replaceVars ./steam-run.patch { inherit steam-run; })
];
nativeBuildInputs = [
makeBinaryWrapper
];
buildInputs = [
todds
steamfiles
]
++ builtins.attrValues {
inherit (python3Packages)
beautifulsoup4
certifi
chardet
imageio
loguru
lxml
msgspec
natsort
networkx
packaging
platformdirs
psutil
pygit2
pygithub
pyperclip
pyside6
requests
sqlalchemy
steam
toposort
watchdog
xmltodict
steamworkspy
;
};
dontBuild = true;
nativeCheckInputs = with python3Packages; [
pytestCheckHook
pytest-cov-stub
pytest-qt
pytest-xvfb
];
doCheck = true;
preCheck = ''
export QT_DEBUG_PLUGINS=1
export QT_QPA_PLATFORM=offscreen
export HOME=$(mktemp -d) # Some tests require a writable directory
'';
disabledTestPaths = [
# requires network
"tests/models/metadata/test_metadata_factory.py"
];
pytestFlags = [ "--doctest-modules" ];
desktopItems = [
(makeDesktopItem {
name = "RimSort";
desktopName = "RimSort";
exec = "rimsort";
icon = "io.github.rimsort.rimsort";
comment = "RimWorld Mod Manager";
categories = [ "Game" ];
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/lib/rimsort
cp -r ./* $out/lib/rimsort/
mkdir -p $out/bin
makeBinaryWrapper \
${python3Packages.python.interpreter} \
$out/bin/rimsort \
--add-flags "-m app" \
--chdir $out/lib/rimsort \
--prefix PYTHONPATH : "$PYTHONPATH" \
--set RIMSORT_DISABLE_UPDATER 1
install -D ./themes/default-icons/AppIcon_a.png $out/share/icons/hicolor/512x512/apps/io.github.rimsort.rimsort
runHook postInstall
'';
meta = {
description = "Open source mod manager for the video game RimWorld";
homepage = "https://github.com/RimSort/RimSort";
license = with lib.licenses; [
gpl3Only
# For libsteam_api.so
(
unfreeRedistributable
// {
url = "https://partner.steamgames.com/documentation/sdk_access_agreement";
}
)
];
maintainers = with lib.maintainers; [ weirdrock ];
mainProgram = "rimsort";
# steamworksSrc is x86_64-linux only
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,26 @@
diff --git a/app/utils/generic.py b/app/utils/generic.py
--- a/app/utils/generic.py
+++ b/app/utils/generic.py
@@ -255,7 +255,7 @@
popen_args.extend(args)
p = subprocess.Popen(popen_args)
else:
- popen_args = [executable_path]
+ popen_args = ["@steam-run@/bin/steam-run", executable_path]
popen_args.extend(args)
if sys.platform == "win32":
diff --git a/app/utils/steam/steamcmd/wrapper.py b/app/utils/steam/steamcmd/wrapper.py
--- a/app/utils/steam/steamcmd/wrapper.py
+++ b/app/utils/steam/steamcmd/wrapper.py
@@ -316,8 +316,8 @@
script_output.write("\n".join(script))
runner.message(f"Compiled & using script: {script_path}")
runner.execute(
- self.steamcmd,
- [f'+runscript "{script_path}"'],
+ "@steam-run@/bin/steam-run",
+ [self.steamcmd, f'+runscript "{script_path}"'],
len(publishedfileids),
)
else:

View File

@@ -0,0 +1,17 @@
diff --git a/app/utils/todds/wrapper.py b/app/utils/todds/wrapper.py
index a239fe0..3375b70 100644
--- a/app/utils/todds/wrapper.py
+++ b/app/utils/todds/wrapper.py
@@ -66,11 +66,7 @@ class ToddsInterface:
:param todds_arguments: list of todds args to be passed to the todds executable
"""
- if self.system == "Windows":
- todds_executable = "todds.exe"
- else:
- todds_executable = "todds"
- todds_exe_path = str(AppInfo().application_folder / "todds" / todds_executable)
+ todds_exe_path = "@todds@/bin/todds"
logger.info("Checking for todds...")
if os.path.exists(todds_exe_path):
logger.debug(f"Found todds executable at: {todds_exe_path}")

View File

@@ -0,0 +1,42 @@
{
lib,
autoreconfHook,
fetchFromGitHub,
rinetd,
stdenv,
testers,
}:
stdenv.mkDerivation rec {
pname = "rinetd";
version = "0.73";
src = fetchFromGitHub {
owner = "samhocevar";
repo = "rinetd";
rev = "v${version}";
hash = "sha256-W8PLGd3RwmBTh1kw3k8+ZfP6AzRhZORCkxZzQ9ZbPN4=";
};
nativeBuildInputs = [
autoreconfHook
];
preConfigure = ''
./bootstrap
'';
passthru.tests.version = testers.testVersion {
package = rinetd;
command = "rinetd --version";
};
meta = with lib; {
description = "TCP/UDP port redirector";
homepage = "https://github.com/samhocevar/rinetd";
changelog = "https://github.com/samhocevar/rinetd/blob/${src.rev}/CHANGES.md";
license = licenses.gpl2Plus;
maintainers = [ ];
mainProgram = "rinetd";
};
}

View File

@@ -0,0 +1,109 @@
{
stdenv,
rustPlatform,
fetchFromGitHub,
lib,
libxkbcommon,
libGL,
wayland,
xorg,
makeWrapper,
displayServer ? "x11",
nixosTests,
}:
assert lib.assertOneOf "displayServer" displayServer [
"x11"
"wayland"
];
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ringboard" + lib.optionalString (displayServer == "wayland") "-wayland";
# release version needs nightly, so we use a custom tree, see:
# https://github.com/SUPERCILEX/clipboard-history/issues/22#issuecomment-3322075172
version = "0.12.2-unstable-2025-09-23";
src = fetchFromGitHub {
owner = "SUPERCILEX";
repo = "clipboard-history";
rev = "228a39dd8a9aece0bb06f68ad44906b297270628";
hash = "sha256-qA7wwvWnnZHN9edkmubEo37F+peU0LQGo/Zl8FpywuE=";
};
cargoHash = "sha256-MFfuUu/hpb6Uaqe21bvXNKRyJazAL5m+Vw/vAeeDYEk=";
nativeBuildInputs = [
makeWrapper
];
buildInputs = [
libxkbcommon
libGL
]
++ lib.optionals (displayServer == "x11") [
xorg.libXcursor
xorg.libXrandr
xorg.libXi
xorg.libX11
]
++ lib.optionals (displayServer == "wayland") [
wayland
];
buildPhase = ''
runHook preBuild
local flagsArray=("-j $NIX_BUILD_CORES --target ${stdenv.hostPlatform.rust.rustcTarget} --offline --release");
concatTo flagsArray cargoBuildFlags;
echo "Building package: clipboard-history-server"
cargo build $flagsArray --package clipboard-history-server --no-default-features --features systemd
${lib.optionalString (displayServer == "x11") ''
echo "Building package: clipboard-history-x11"
cargo build $flagsArray --package clipboard-history-x11 --no-default-features
''}
${lib.optionalString (displayServer == "wayland") ''
echo "Building package: clipboard-history-wayland"
cargo build $flagsArray --package clipboard-history-wayland --no-default-features
''}
echo "Building package: clipboard-history"
cargo build $flagsArray --package clipboard-history
echo "Building package: clipboard-history-tui"
cargo build $flagsArray --package clipboard-history-tui
echo "Building package: clipboard-history-egui"
cargo build $flagsArray --package clipboard-history-egui --no-default-features --features ${displayServer}
runHook postBuild
'';
# check needs nightly, see:
# https://github.com/SUPERCILEX/clipboard-history/issues/22#issuecomment-3322330559
doCheck = false;
postInstall = ''
# Wrap the program in a script that sets the LD_LIBRARY_PATH environment variable
# so that it can find the shared libraries it depends on. This is currently a
# requirement for running Rust programs that depend on `egui` within a Nix environment.
# https://github.com/emilk/egui/issues/2486
wrapProgram $out/bin/ringboard-egui --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}"
install -m 444 -D egui/ringboard-egui.desktop $out/share/applications/ringboard-egui.desktop
install -Dm644 logo.jpeg $out/share/icons/hicolor/1024x1024/ringboard.jpeg
# Initializing a GUI can be quite slow, so GUI clients make their windows invisible when closed rather than completely quitting.
# To reopen the window, a special file can be deleted which wakes the GUI via inotify.
# If, instead, a new instance of the GUI is opened, this special file is used to first check for a previously running instance of the GUI and kill it if it exists.
# https://alexsaveau.dev/blog/projects/performance/clipboard/ringboard/ringboard#gui-startup-latency-and-long-lived-client-windows
sed -i "s|Exec=ringboard-egui|Exec=$(echo /bin/sh -c \"ps -p \`cat /tmp/.ringboard/\$USER.egui-sleep 2\> /dev/null\` \> /dev/null 2\>\\\&1 \\\&\\\& exec rm -f /tmp/.ringboard/\$USER.egui-sleep \\\|\\\| exec $out/bin/ringboard-egui\")|g" $out/share/applications/ringboard-egui.desktop
sed -i "s|Icon=ringboard|Icon=$out/share/icons/hicolor/1024x1024/ringboard.jpeg|g" $out/share/applications/ringboard-egui.desktop
'';
passthru.tests.nixos = nixosTests.ringboard;
meta = {
description = "Fast, efficient, and composable clipboard manager for Linux";
homepage = "https://github.com/SUPERCILEX/clipboard-history";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.magnetophon ];
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage {
pname = "ringfairy";
version = "0.1.3-unstable-2024-06-03";
src = fetchFromGitHub {
owner = "k3rs3d";
repo = "ringfairy";
rev = "bce9dce450d9fa8406f12f64045ca21f9f548942";
hash = "sha256-dyqmjjhX3aehxoziV1C8Xsh/tNR2mhMBgcziPPNqqkA=";
};
cargoHash = "sha256-Sa8vGQkE31r8hr53q46FzfEievlLJvBTvvOzqHyZEFY=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
meta = {
description = "Static webring generator in Rust";
homepage = "https://github.com/k3rs3d/ringfairy";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ uncenter ];
mainProgram = "ringfairy";
};
}

View File

@@ -0,0 +1,45 @@
{
stdenv,
fetchFromGitHub,
lib,
autoreconfHook,
pkg-config,
readline,
xercesc,
unstableGitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ringing-lib";
version = "0-unstable-2025-07-16";
src = fetchFromGitHub {
owner = "ringing-lib";
repo = "ringing-lib";
rev = "838d13edb3231d8c122d3222da1b465e2018757f";
hash = "sha256-MO5FerQMyWDV/cV2hrY/L+JyhMojtaqPQkw8efaVu1I=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
readline
xercesc
];
doCheck = true;
passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
meta = {
description = "Library of C++ classes and utilities for change ringing";
homepage = "https://ringing-lib.github.io/";
license = with lib.licenses; [
gpl2Plus
lgpl2Plus
];
maintainers = with lib.maintainers; [ jshholland ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,99 @@
{
lib,
stdenv,
fetchzip,
fetchFromGitHub,
cmake,
curl,
nasm,
game-music-emu,
libpng,
SDL2,
SDL2_mixer,
libvpx,
libyuv,
zlib,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ringracers";
version = "2.3";
src = fetchFromGitHub {
owner = "KartKrewDev";
repo = "RingRacers";
rev = "v${finalAttrs.version}";
hash = "sha256-X2rSwZOEHtnSJBpu+Xf2vkxGUAZSNSXi6GCuGlM6jhY=";
};
assets = fetchzip {
name = "${finalAttrs.pname}-${finalAttrs.version}-assets";
url = "https://github.com/KartKrewDev/RingRacers/releases/download/v${finalAttrs.version}/Dr.Robotnik.s-Ring-Racers-v${finalAttrs.version}-Assets.zip";
hash = "sha256-sHeI1E6uNF0gBNd1e1AU/JT9wyZdkCQgYLiMPZqXAVc=";
stripRoot = false;
};
nativeBuildInputs = [
cmake
nasm
makeWrapper
copyDesktopItems
];
buildInputs = [
curl
game-music-emu
libpng
SDL2
SDL2_mixer
libvpx
libyuv
zlib
];
cmakeFlags = [
"-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}"
"-DGME_INCLUDE_DIR=${game-music-emu}/include"
"-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
"-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
];
desktopItems = [
(makeDesktopItem {
name = "ringracers";
exec = "ringracers";
icon = "ringracers";
comment = "This is Racing at the Next Level";
desktopName = "Dr. Robotnik's Ring Racers";
startupWMClass = ".ringracers-wrapped";
categories = [ "Game" ];
})
];
installPhase = ''
runHook preInstall
install -Dm644 ../srb2.png $out/share/icons/hicolor/256x256/apps/ringracers.png
install -Dm755 bin/ringracers $out/bin/ringracers
wrapProgram $out/bin/ringracers \
--set RINGRACERSWADDIR "${finalAttrs.assets}"
runHook postInstall
'';
meta = with lib; {
description = "Kart racing video game based on Sonic Robo Blast 2 (SRB2), itself based on a modified version of Doom Legacy";
homepage = "https://kartkrew.org";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [
donovanglover
thehans255
];
mainProgram = "ringracers";
};
})

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
openssl,
pkg-config,
ncurses,
curl,
installShellFiles,
asciidoctor,
libiconv,
}:
rustPlatform.buildRustPackage rec {
version = "0.8.0";
pname = "rink";
src = fetchFromGitHub {
owner = "tiffany352";
repo = "rink-rs";
rev = "v${version}";
hash = "sha256-2+ZkyWhEnnO/QgCzWscbMr0u5kwdv2HqPLjtiXDfv/o=";
};
cargoHash = "sha256-XvtEXBsdxUMJJntzzKVbUIjg78JpwyuUlTm6J3huDPE=";
nativeBuildInputs = [
pkg-config
installShellFiles
asciidoctor
];
buildInputs = [
ncurses
]
++ (
if stdenv.hostPlatform.isDarwin then
[
curl
libiconv
]
else
[ openssl ]
);
# Some tests fail and/or attempt to use internet servers.
doCheck = false;
postBuild = ''
make man
'';
postInstall = ''
installManPage build/*
'';
meta = with lib; {
description = "Unit-aware calculator";
mainProgram = "rink";
homepage = "https://rinkcalc.app";
license = with licenses; [
mpl20
gpl3Plus
];
maintainers = with maintainers; [
sb0
Br1ght0ne
];
};
}

View File

@@ -0,0 +1,38 @@
{
stdenv,
lib,
fetchurl,
cmake,
perl,
}:
stdenv.mkDerivation rec {
pname = "rinutils";
version = "0.10.3";
src = fetchurl {
url = "https://github.com/shlomif/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
sha256 = "sha256-+eUn03psyMe4hwraY8qiTzKrDSn9ERbfPrtoZYMDCVU=";
};
nativeBuildInputs = [
cmake
perl
];
# https://github.com/shlomif/rinutils/issues/5
# (variable was unused at time of writing)
postPatch = ''
substituteInPlace librinutils.pc.in \
--replace '$'{exec_prefix}/@RINUTILS_INSTALL_MYLIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
'';
meta = {
description = "C11 / gnu11 utilities C library by Shlomi Fish / Rindolf";
homepage = "https://github.com/shlomif/rinutils";
changelog = "https://github.com/shlomif/rinutils/raw/${version}/NEWS.asciidoc";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,143 @@
{
lib,
stdenv,
darwin,
fetchFromGitHub,
rustPlatform,
nixosTests,
nix-update-script,
autoPatchelfHook,
cmake,
ncurses,
pkg-config,
gcc-unwrapped,
fontconfig,
libGL,
vulkan-loader,
libxkbcommon,
withX11 ? !stdenv.hostPlatform.isDarwin,
libX11,
libXcursor,
libXi,
libXrandr,
libxcb,
withWayland ? !stdenv.hostPlatform.isDarwin,
wayland,
testers,
rio,
}:
let
rlinkLibs =
lib.optionals stdenv.hostPlatform.isLinux [
(lib.getLib gcc-unwrapped)
fontconfig
libGL
libxkbcommon
vulkan-loader
]
++ lib.optionals withX11 [
libX11
libXcursor
libXi
libXrandr
libxcb
]
++ lib.optionals withWayland [
wayland
];
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rio";
version = "0.2.30";
src = fetchFromGitHub {
owner = "raphamorim";
repo = "rio";
tag = "v${finalAttrs.version}";
hash = "sha256-YkZq9mPQTeYtDuvGrEzV7PlDQZHUED/JuSLvsFWxYI0=";
};
cargoHash = "sha256-Rr6FiievKElzWhLEXOQZdcJ4KKlfvW9p8k7r7wIm0MQ=";
nativeBuildInputs = [
rustPlatform.bindgenHook
ncurses
]
++ lib.optionals stdenv.hostPlatform.isLinux [
cmake
pkg-config
autoPatchelfHook
];
runtimeDependencies = rlinkLibs;
buildInputs =
rlinkLibs
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.libutil
];
outputs = [
"out"
"terminfo"
];
buildNoDefaultFeatures = true;
buildFeatures = [ ] ++ lib.optional withX11 "x11" ++ lib.optional withWayland "wayland";
checkFlags = [
# Fail to run in sandbox environment.
"--skip=sys::unix::eventedfd::EventedFd"
];
postInstall = ''
install -D -m 644 misc/rio.desktop -t $out/share/applications
install -D -m 644 misc/logo.svg \
$out/share/icons/hicolor/scalable/apps/rio.svg
install -dm 755 "$terminfo/share/terminfo/r/"
tic -xe rio,rio-direct -o "$terminfo/share/terminfo" misc/rio.terminfo
mkdir -p $out/nix-support
echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir $out/Applications/
mv misc/osx/Rio.app/ $out/Applications/
mkdir $out/Applications/Rio.app/Contents/MacOS/
ln -s $out/bin/rio $out/Applications/Rio.app/Contents/MacOS/
'';
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"v([0-9.]+)"
];
};
tests = {
version = testers.testVersion { package = rio; };
}
// lib.optionalAttrs stdenv.buildPlatform.isLinux {
# FIXME: Restrict test execution inside nixosTests for Linux devices as ofborg
# 'passthru.tests' nixosTests are failing on Darwin architectures.
#
# Ref: https://github.com/NixOS/nixpkgs/issues/345825
test = nixosTests.terminal-emulators.rio;
};
};
meta = {
description = "Hardware-accelerated GPU terminal emulator powered by WebGPU";
homepage = "https://rioterm.com/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
tornax
otavio
oluceps
];
platforms = lib.platforms.unix;
changelog = "https://github.com/raphamorim/rio/blob/v${finalAttrs.version}/docs/docs/releases.md";
mainProgram = "rio";
};
})

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchzip,
jre_headless,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "riot-redis";
version = "2.19.0";
src = fetchzip {
url = "https://github.com/redis-developer/riot/releases/download/v${version}/riot-redis-${version}.zip";
sha256 = "sha256-q2ZqFVdjg5HSH4kiwoC1W+a8VgHNxBgNeMaw5n97isc=";
};
buildInputs = [ jre_headless ];
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp bin/riot-redis $out/bin
cp -R lib $out
chmod +x $out/bin/*
wrapProgram $out/bin/riot-redis \
--set JAVA_HOME "${jre_headless}"
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/redis-developer/riot";
description = "Get data in and out of Redis";
mainProgram = "riot-redis";
license = licenses.asl20;
sourceProvenance = with sourceTypes; [ binaryBytecode ];
maintainers = with maintainers; [ wesnel ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
installShellFiles,
stdenv,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "rip2";
version = "0.9.5";
src = fetchFromGitHub {
owner = "MilesCranmer";
repo = "rip2";
rev = "v${version}";
hash = "sha256-vYkJlmzysUcX+jULGSs4Omu2RjUs4ZO4blN/zlzDcqc=";
};
cargoHash = "sha256-+8o4PFcJ/jMoMzfEA96tJ8wuH1CTqxnDwvFuegmPcEY=";
nativeBuildInputs = [ installShellFiles ];
# TODO: Unsure why this test fails, but not a major issue so
# skipping for now.
checkFlags = [ "--skip=test_filetypes::file_type_3___fifo__" ];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/rip";
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd rip \
--bash <($out/bin/rip completions bash) \
--fish <($out/bin/rip completions fish) \
--zsh <($out/bin/rip completions zsh)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Safe and ergonomic alternative to rm";
homepage = "https://github.com/MilesCranmer/rip2";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
milescranmer
matthiasbeyer
];
mainProgram = "rip";
};
}

View File

@@ -0,0 +1,12 @@
diff --git a/src/tests/test_helpers.rs b/src/tests/test_helpers.rs
index 73e4175..d2ed70b 100644
--- a/src/tests/test_helpers.rs
+++ b/src/tests/test_helpers.rs
@@ -53,6 +53,7 @@ fn get_testres_path() -> PathBuf {
base_path.pop();
base_path.pop();
base_path.pop();
+ base_path.pop();
base_path.push("testres");
base_path

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
# nativeBuildInputs
gpgme,
installShellFiles,
pkg-config,
python3,
writableTmpDirAsHomeHook,
# buildInputs
libgpg-error,
nettle,
openssl,
xorg,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
version = "0.7.0";
pname = "ripasso-cursive";
src = fetchFromGitHub {
owner = "cortex";
repo = "ripasso";
tag = "release-${finalAttrs.version}";
hash = "sha256-j98X/+UTea4lCtFfMpClnfcKlvxm4DpOujLc0xc3VUY=";
};
cargoHash = "sha256-4/87+SOUXLoOxd3a4Kptxa98mh/BWlEhK55uu7+Jrec=";
patches = [
./fix-tests.patch
];
cargoBuildFlags = [ "-p ripasso-cursive" ];
nativeBuildInputs = [
gpgme
installShellFiles
pkg-config
python3
rustPlatform.bindgenHook
writableTmpDirAsHomeHook
];
buildInputs = [
gpgme
libgpg-error
nettle
openssl
xorg.libxcb
];
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
# Fails in the darwin sandbox with:
# Attempted to create a NULL object.
# event loop thread panicked
"--skip=pass::pass_tests::test_add_recipient_not_in_key_ring"
];
postInstall = ''
installManPage target/man-page/cursive/ripasso-cursive.1
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Simple password manager written in Rust";
mainProgram = "ripasso-cursive";
homepage = "https://github.com/cortex/ripasso";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ sgo ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
wrapGAppsHook4,
gtk4,
}:
rustPlatform.buildRustPackage rec {
pname = "ripdrag";
version = "0.4.10";
src = fetchFromGitHub {
owner = "nik012003";
repo = "ripdrag";
rev = "v${version}";
hash = "sha256-aK/1f56sHspohbYO0z2Hf1NDJsN8Dbf1NoL/QadbVSY=";
};
cargoHash = "sha256-w6gy149pbzRmN3XnRqMZuxAsKGXUglQpn/7g9L8+rZU=";
nativeBuildInputs = [
pkg-config
wrapGAppsHook4
];
buildInputs = [ gtk4 ];
meta = with lib; {
description = "Application that lets you drag and drop files from and to the terminal";
homepage = "https://github.com/nik012003/ripdrag";
changelog = "https://github.com/nik012003/ripdrag/releases/tag/${src.rev}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ figsoda ];
mainProgram = "ripdrag";
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
python3,
fetchFromGitHub,
installShellFiles,
}:
python3.pkgs.buildPythonApplication rec {
pname = "ripe-atlas-tools";
version = "3.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "RIPE-NCC";
repo = "ripe-atlas-tools";
tag = "v${version}";
hash = "sha256-aETSDXCVteTruRKV/8Aw3R/bprB6txOsXrFvoZOxIus=";
};
postPatch = ''
# This mapping triggers network access on docs generation: https://github.com/RIPE-NCC/ripe-atlas-tools/issues/235
sed -i '/^intersphinx_mapping/d' docs/conf.py
# TODO: Ensure user-agent is picked up during build, remove me when https://github.com/RIPE-NCC/ripe-atlas-tools/pull/236
echo "include ripe/atlas/tools/user-agent" >> MANIFEST.in
'';
nativeBuildInputs = [
installShellFiles
];
build-system = with python3.pkgs; [
setuptools
sphinx-rtd-theme
sphinxHook
];
dependencies = with python3.pkgs; [
ipy
pyopenssl
python-dateutil
pyyaml
requests
ripe-atlas-cousteau
ripe-atlas-sagan
typing-extensions
tzlocal
ujson
];
preBuild = ''
echo "RIPE Atlas Tools [NixOS ${version}" > ripe/atlas/tools/user-agent
'';
postInstall = ''
installShellCompletion --cmd ripe-atlas --bash ./ripe-atlas-bash-completion.sh
'';
pythonImportsCheck = [
"ripe.atlas.tools"
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
disabledTests = [
# Disable this test because on Python >= 3.12 it fails due to argparse changes https://github.com/python/cpython/pull/124578
"test_add_arguments"
# Network tests: https://github.com/RIPE-NCC/ripe-atlas-tools/issues/234
"test_arg_from_file"
"test_arg_from_stdin"
# We injected our user-agent so the tests will fail
"test_user_agent_mac"
"test_user_agent_windows"
"test_user_agent_xdg_absent"
"test_user_agent_xdg_present"
];
disabledTestPaths = [
# Relies on `ripe-atlas` being available in the PATH, installed with autocompletions
"tests/test_bash_completion.py"
# AS lookups are not mocked up: https://github.com/RIPE-NCC/ripe-atlas-tools/blob/master/tests/renderers/test_traceroute_aspath.py#L26
"tests/renderers/test_traceroute_aspath.py"
# We already build Sphinx so we do not need to test it
"tests/test_docs.py"
];
HOME = "$TMPDIR"; # for cache generation.
# Necessary because it confuse the tests when it does "from ripe.atlas.sagan import X"
# version.py is used by Sphinx tests.
preCheck = ''
rm -rf ripe
mkdir -p ripe/atlas/tools
echo "__version__ = \"${version}\"" > ripe/atlas/tools/version.py
'';
meta = {
description = "RIPE ATLAS project tools";
homepage = "https://github.com/RIPE-NCC/ripe-atlas-tools";
changelog = "https://github.com/RIPE-NCC/ripe-atlas-tools/blob/v${version}/CHANGES.rst";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ raitobezarius ];
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
qt6,
cereal,
cmake,
python3,
unstableGitUpdater,
}:
stdenv.mkDerivation rec {
pname = "ripes";
# Pulling unstable version as latest stable does not build against gcc-13.
version = "2.2.6-unstable-2024-04-04";
src = fetchFromGitHub {
owner = "mortbopet";
repo = "Ripes";
rev = "878087332afa3558dc8ca657f80a16ecdcf82818";
fetchSubmodules = true;
hash = "sha256-aNJTM/s4GNhWVXQxK1R/rIN/NmeKglibQZMh8ENjIzo=";
};
postPatch = ''
rm -r external/VSRTL/external/cereal
substituteInPlace {src/serializers.h,src/io/iobase.h} \
--replace-fail "VSRTL/external/cereal/include/cereal/cereal.hpp" "cereal/cereal.hpp"
'';
nativeBuildInputs = [
cmake
pkg-config
python3
qt6.wrapQtAppsHook
];
buildInputs = [
cereal
qt6.qtbase
qt6.qtsvg
qt6.qtcharts
];
installPhase = ''
runHook preInstall
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
cp -r Ripes.app $out/Applications/
makeBinaryWrapper $out/Applications/Ripes.app/Contents/MacOS/Ripes $out/bin/Ripes
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
install -D Ripes $out/bin/Ripes
''
+ ''
cp -r ${src}/appdir/usr/share $out/share
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "Graphical processor simulator and assembly editor for the RISC-V ISA";
homepage = "https://github.com/mortbopet/Ripes";
license = licenses.mit;
platforms = platforms.unix;
mainProgram = "Ripes";
maintainers = with maintainers; [ wineee ];
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
fetchFromGitHub,
rustPlatform,
makeWrapper,
ffmpeg,
pandoc,
poppler-utils,
ripgrep,
zip,
fzf,
}:
let
path = [
ffmpeg
pandoc
poppler-utils
ripgrep
zip
fzf
];
in
rustPlatform.buildRustPackage rec {
pname = "ripgrep-all";
version = "0.10.9";
src = fetchFromGitHub {
owner = "phiresky";
repo = "ripgrep-all";
rev = "v${version}";
hash = "sha256-r/+u76Qxat6U0Hb3Xh31K/F0dNSPzteFzoE69NNCerI=";
};
cargoHash = "sha256-nTCqqTFt87snzOXkjablaX9ZMGu/s88ZnUVr5uYrzPs=";
# override debug=true set in Cargo.toml upstream
RUSTFLAGS = "-C debuginfo=none";
nativeBuildInputs = [
makeWrapper
poppler-utils
];
nativeCheckInputs = path;
postInstall = ''
for bin in $out/bin/*; do
wrapProgram $bin \
--prefix PATH ":" "${lib.makeBinPath path}"
done
'';
meta = with lib; {
changelog = "https://github.com/phiresky/ripgrep-all/blob/${src.rev}/CHANGELOG.md";
description = "Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, and more";
longDescription = ''
Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
rga is a line-oriented search tool that allows you to look for a regex in
a multitude of file types. rga wraps the awesome ripgrep and enables it
to search in pdf, docx, sqlite, jpg, movie subtitles (mkv, mp4), etc.
'';
homepage = "https://github.com/phiresky/ripgrep-all";
license = with licenses; [ agpl3Plus ];
maintainers = with maintainers; [
zaninime
ma27
];
mainProgram = "rga";
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
buildPackages,
fetchFromGitHub,
rustPlatform,
installShellFiles,
pkg-config,
withPCRE2 ? true,
pcre2,
writableTmpDirAsHomeHook,
}:
let
canRunRg = stdenv.hostPlatform.emulatorAvailable buildPackages;
rg = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/rg${stdenv.hostPlatform.extensions.executable}";
in
rustPlatform.buildRustPackage rec {
pname = "ripgrep";
version = "14.1.1";
src = fetchFromGitHub {
owner = "BurntSushi";
repo = "ripgrep";
rev = version;
hash = "sha256-gyWnahj1A+iXUQlQ1O1H1u7K5euYQOld9qWm99Vjaeg=";
};
cargoHash = "sha256-9atn5qyBDy4P6iUoHFhg+TV6Ur71fiah4oTJbBMeEy4=";
nativeBuildInputs = [
installShellFiles
writableTmpDirAsHomeHook # required for wine when cross-compiling to Windows
]
++ lib.optional withPCRE2 pkg-config;
buildInputs = lib.optional withPCRE2 pcre2;
buildFeatures = lib.optional withPCRE2 "pcre2";
postFixup = lib.optionalString canRunRg ''
${rg} --generate man > rg.1
installManPage rg.1
installShellCompletion --cmd rg \
--bash <(${rg} --generate complete-bash) \
--fish <(${rg} --generate complete-fish) \
--zsh <(${rg} --generate complete-zsh)
'';
doInstallCheck = true;
installCheckPhase = ''
file="$(mktemp)"
echo "abc\nbcd\ncde" > "$file"
${rg} -N 'bcd' "$file"
${rg} -N 'cd' "$file"
''
+ lib.optionalString withPCRE2 ''
echo '(a(aa)aa)' | ${rg} -P '\((a*|(?R))*\)'
'';
meta = {
description = "Utility that combines the usability of The Silver Searcher with the raw speed of grep";
homepage = "https://github.com/BurntSushi/ripgrep";
changelog = "https://github.com/BurntSushi/ripgrep/releases/tag/${version}";
license = with lib.licenses; [
unlicense # or
mit
];
maintainers = with lib.maintainers; [
globin
ma27
zowoq
];
mainProgram = "rg";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "ripmime";
version = "1.4.0.10";
src = fetchurl {
url = "https://pldaniels.com/${pname}/${pname}-${version}.tar.gz";
sha256 = "0sj06ibmlzy34n8v0mnlq2gwidy7n2aqcwgjh0xssz3vi941aqc9";
};
preInstall = ''
sed -i Makefile -e "s@LOCATION=.*@LOCATION=$out@" -e "s@man/man1@share/&@"
mkdir -p "$out/bin" "$out/share/man/man1"
'';
env = {
NIX_CFLAGS_COMPILE = " -Wno-error ";
}
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = "-liconv";
};
meta = with lib; {
description = "Attachment extractor for MIME messages";
maintainers = with maintainers; [ raskin ];
homepage = "https://pldaniels.com/ripmime/";
platforms = platforms.all;
mainProgram = "ripmime";
};
passthru = {
updateInfo = {
downloadPage = "https://pldaniels.com/ripmime/";
};
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
sqlite,
}:
rustPlatform.buildRustPackage rec {
pname = "rippkgs";
version = "1.2.0";
src = fetchFromGitHub {
owner = "replit";
repo = "rippkgs";
tag = "v${version}";
hash = "sha256-nRaGbJg1zCHTL8y/Tk5dM1dSu2v06ECsZYyMPIQTlvg=";
};
cargoHash = "sha256-bSgQ/dmOffWOYpgeNn0vTdzrM/aFkD3znN9c1u/sjQ0=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
sqlite
];
meta = {
description = "CLI for indexing and searching packages in Nix expressions";
homepage = "https://github.com/replit/rippkgs";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ cdmistman ];
mainProgram = "rippkgs";
};
}

View File

@@ -0,0 +1,120 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
writableTmpDirAsHomeHook,
alsa-lib,
expat,
fontconfig,
freetype,
libX11,
libXcursor,
libXext,
libXinerama,
libXrandr,
nix-update-script,
makeDesktopItem,
copyDesktopItems,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ripplerx";
version = "1.5.18";
src = fetchFromGitHub {
owner = "tiagolr";
repo = "ripplerx";
tag = "v${finalAttrs.version}";
hash = "sha256-lHLAJ8eCmn/WFYxGl/zIq8a2xPKqzpB7tilffJcXhM4=";
fetchSubmodules = true;
};
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
writableTmpDirAsHomeHook # fontconfig cache + $HOME/.{lv2,vst3}
copyDesktopItems
];
buildInputs = [
alsa-lib
expat
fontconfig
freetype
libX11
libXcursor
libXext
libXinerama
libXrandr
];
# JUCE dlopens these at runtime, standalone executable crashes without them
NIX_LDFLAGS = [
"-lX11"
"-lXext"
"-lXcursor"
"-lXinerama"
"-lXrandr"
];
# Fontconfig error: Cannot load default config file: No such file: (null)
env.FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";
# LTO needs special setup on Linux
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'juce::juce_recommended_lto_flags' '# Not forcing LTO'
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/lib/{lv2,vst3}
pushd RipplerX_artefacts/Release
cp -r "Standalone/RipplerX" $out/bin/ripplerx
cp -r "LV2/RipplerX.lv2" $out/lib/lv2
cp -r "VST3/RipplerX.vst3" $out/lib/vst3
popd
install -Dm644 ../doc/logo.svg \
$out/share/icons/hicolor/scalable/apps/ripplerx.svg
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
desktopName = "RipplerX";
comment = "Physically modeled synth";
name = "ripplerx";
exec = "ripplerx";
icon = "ripplerx";
terminal = false;
categories = [
"Audio"
"AudioVideo"
"Midi"
"Music"
];
})
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Physically modeled synth";
longDescription = ''
RipplerX is a physically modeled synth, capable of sounds similar to AAS Chromaphone and Ableton Collision.
'';
homepage = "https://github.com/tiagolr/ripplerx";
mainProgram = "ripplerx";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ eljamm ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "ripsecrets";
version = "0.1.11";
src = fetchFromGitHub {
owner = "sirwart";
repo = "ripsecrets";
rev = "v${version}";
hash = "sha256-JCImUgicoXII64rK/Hch/0gJQE81Fw3h512w/vHUwAI=";
};
cargoHash = "sha256-2HsUNN3lyGb/eOUEN/vTOQbAy59DQSzIaOqdk9+KhfU=";
meta = with lib; {
description = "Command-line tool to prevent committing secret keys into your source code";
homepage = "https://github.com/sirwart/ripsecrets";
changelog = "https://github.com/sirwart/ripsecrets/blob/${src.rev}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "ripsecrets";
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
useCoefficients ? false,
indicateProgress ? false,
useGoogleHashmap ? false,
sparsehash ? null,
fileFormat ? "lowerTriangularCsv",
}:
assert lib.assertOneOf "fileFormat" fileFormat [
"lowerTriangularCsv"
"upperTriangularCsv"
"dipha"
];
assert useGoogleHashmap -> sparsehash != null;
let
version = "1.2.1";
in
stdenv.mkDerivation {
pname = "ripser";
inherit version;
src = fetchFromGitHub {
owner = "Ripser";
repo = "ripser";
rev = "v${version}";
sha256 = "sha256-BxmkPQ/nl5cF+xwQMTjXnLgkLgdmT/39y7Kzl2wDfpE=";
};
buildInputs = lib.optional useGoogleHashmap sparsehash;
buildFlags = [
"-std=c++11"
"-O3"
"-D NDEBUG"
]
++ lib.optional useCoefficients "-D USE_COEFFICIENTS"
++ lib.optional indicateProgress "-D INDICATE_PROGRESS"
++ lib.optional useGoogleHashmap "-D USE_GOOGLE_HASHMAP"
++ lib.optional (fileFormat == "lowerTriangularCsv") "-D FILE_FORMAT_LOWER_TRIANGULAR_CSV"
++ lib.optional (fileFormat == "upperTriangularCsv") "-D FILE_FORMAT_UPPER_TRIANGULAR_CSV"
++ lib.optional (fileFormat == "dipha") "-D FILE_FORMAT_DIPHA";
buildPhase = "c++ ripser.cpp -o ripser $buildFlags";
installPhase = ''
mkdir -p $out/bin
cp ripser $out/bin
'';
meta = {
description = "Lean C++ code for the computation of VietorisRips persistence barcodes";
mainProgram = "ripser";
homepage = "https://github.com/Ripser/ripser";
license = lib.licenses.lgpl3;
maintainers = with lib.maintainers; [ erikryb ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
fetchFromGitHub,
rustPlatform,
openssl,
pkg-config,
testers,
fetchzip,
ripunzip,
}:
rustPlatform.buildRustPackage rec {
pname = "ripunzip";
version = "2.0.3";
src = fetchFromGitHub {
owner = "google";
repo = "ripunzip";
rev = "v${version}";
hash = "sha256-giNaTALPZYOfQ+kPyQufbRTdTwwKLK7iDvg50YNfzDg=";
};
cargoHash = "sha256-uz07yZBkmBTEGB64rhBYQ2iL0KbrY4UAM96utv8HCSE=";
buildInputs = [ openssl ];
nativeBuildInputs = [ pkg-config ];
checkFlags = [
# Skip tests involving network
"--skip=unzip::http_range_reader::tests::test_with_accept_range"
"--skip=unzip::http_range_reader::tests::test_without_accept_range"
"--skip=unzip::seekable_http_reader::tests::test_big_readahead"
"--skip=unzip::seekable_http_reader::tests::test_random_access"
"--skip=unzip::seekable_http_reader::tests::test_small_readahead"
"--skip=unzip::seekable_http_reader::tests::test_unlimited_readahead"
"--skip=unzip::tests::test_extract_biggish_zip_from_ranges_server"
"--skip=unzip::tests::test_extract_from_server"
"--skip=unzip::tests::test_small_zip_from_no_content_length_server"
"--skip=unzip::tests::test_small_zip_from_no_range_server"
"--skip=unzip::tests::test_small_zip_from_ranges_server"
];
setupHook = ./setup-hook.sh;
passthru.tests = {
fetchzipWithRipunzip =
testers.invalidateFetcherByDrvHash (fetchzip.override { unzip = ripunzip; })
{
url = "https://github.com/google/ripunzip/archive/cb9caa3ba4b0e27a85e165be64c40f1f6dfcc085.zip";
hash = "sha256-BoErC5VL3Vpvkx6xJq6J+eUJrBnjVEdTuSo7zh98Jy4=";
};
version = testers.testVersion {
package = ripunzip;
};
};
meta = with lib; {
description = "Tool to unzip files in parallel";
mainProgram = "ripunzip";
homepage = "https://github.com/google/ripunzip";
license = with lib.licenses; [
mit
asl20
];
maintainers = [ maintainers.lesuisse ];
};
}

View File

@@ -0,0 +1,6 @@
unpackCmdHooks+=(_tryRipunzip)
_tryRipunzip() {
if ! [[ "$curSrc" =~ \.zip$ ]]; then return 1; fi
ripunzip unzip-file "$curSrc" 2> /dev/null
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
payload ? null,
}:
stdenv.mkDerivation {
pname = "riscv-pk";
version = "1.0.0-unstable-2024-10-09";
src = fetchFromGitHub {
owner = "riscv";
repo = "riscv-pk";
rev = "abadfdc507d5a75b6272dc360e70a80a510c758a";
sha256 = "sha256-02qcj0TAs7g4CSorWWbUzouS6mNthUOSdeocibw5g2A=";
};
nativeBuildInputs = [ autoreconfHook ];
preConfigure = ''
mkdir build
cd build
'';
configureScript = "../configure";
configureFlags = lib.optional (payload != null) "--with-payload=${payload}";
hardeningDisable = [ "all" ];
# pk by default installs things in $out/$target_prefix/{bin,include,lib},
# we want to remove the target prefix directory hierarchy
postInstall = ''
mv $out/* $out/.cleanup
mv $out/.cleanup/* $out
rmdir $out/.cleanup
'';
meta = {
description = "RISC-V Proxy Kernel and Bootloader";
homepage = "https://github.com/riscv/riscv-pk";
license = lib.licenses.bsd3;
platforms = lib.platforms.riscv;
maintainers = [ lib.maintainers.shlevy ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
risor,
}:
buildGoModule rec {
pname = "risor";
version = "1.8.1";
src = fetchFromGitHub {
owner = "risor-io";
repo = "risor";
rev = "v${version}";
hash = "sha256-Vw0fslKtBGdL6BjzNYzGRneQ+jtNDvAymlUxNa0lKZ8=";
};
proxyVendor = true;
vendorHash = "sha256-yVvryqPB35Jc3MXIJyRlFhAHU8H8PmSs60EO/JABHDs=";
subPackages = [
"cmd/risor"
];
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
];
passthru.tests = {
version = testers.testVersion {
package = risor;
command = "risor version";
};
};
meta = with lib; {
description = "Fast and flexible scripting for Go developers and DevOps";
mainProgram = "risor";
homepage = "https://github.com/risor-io/risor";
changelog = "https://github.com/risor-io/risor/releases/tag/${src.rev}";
license = licenses.asl20;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
rustPlatform,
fetchFromGitLab,
nix-update-script,
}:
rustPlatform.buildRustPackage {
pname = "ristate";
version = "0-unstable-2023-07-23";
src = fetchFromGitLab {
owner = "snakedye";
repo = "ristate";
rev = "92e989f26cadac69af1208163733e73b4cf447da";
hash = "sha256-6slH7R6kbSXQBd7q38oBEbngaCbFv0Tyq34VB1PAfhM=";
};
cargoHash = "sha256-6uvIc69x/yHkAC3GJUuYGcCbpVyX/mb/pXLf+BQC+48=";
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = with lib; {
description = "River-status client written in Rust";
homepage = "https://gitlab.com/snakedye/ristate";
license = licenses.mit;
maintainers = with maintainers; [ kranzes ];
mainProgram = "ristate";
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "rita";
version = "4.8.1";
src = fetchFromGitHub {
owner = "activecm";
repo = "rita";
tag = "v${version}";
hash = "sha256-By0JvQ4LTm+NEnRMadE1x2PiiYqnJQCsF3Fy+gHulXs=";
};
vendorHash = "sha256-KyC7VPgWlgKD6KWWRo3hFQHl2HjTub+VSMtJCpYE6Zk=";
ldflags = [
"-s"
"-w"
"-X=github.com/activecm/rita/config.Version=${version}"
"-X=github.com/activecm/rita/config.ExactVersion=${version}"
];
meta = {
description = "Framework for detecting command and control communication through network traffic analysis";
homepage = "https://github.com/activecm/rita";
changelog = "https://github.com/activecm/rita/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "rita";
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonPackage rec {
pname = "rivalcfg";
version = "4.15.0";
pyproject = true;
src = fetchFromGitHub {
owner = "flozz";
repo = "rivalcfg";
tag = "v${version}";
sha256 = "sha256-UqVogJLv+sNhAxdMjBEvhBQw6LU+QUq1IekvWpeeMqk=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
hidapi
setuptools # pkg_resources is imported during runtime
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
];
# tests are broken
doCheck = false;
postInstall = ''
mkdir -p $out/lib/udev/rules.d
tmpl_udev="$out/lib/udev/rules.d/99-rivalcfg.rules"
tmpudev="''${tmpl_udev}.in"
finaludev="$tmpl_udev"
"$out/bin/rivalcfg" --print-udev > "$tmpudev"
substitute "$tmpudev" "$out/lib/udev/rules.d/99-rivalcfg.rules" \
--replace-fail MODE=\"0666\" "MODE=\"0664\", GROUP=\"input\""
rm "$tmpudev"
'';
pythonImportsCheck = [ "rivalcfg" ];
meta = with lib; {
description = "Utility program that allows you to configure SteelSeries Rival gaming mice";
homepage = "https://github.com/flozz/rivalcfg";
license = licenses.wtfpl;
maintainers = with maintainers; [ ornxka ];
mainProgram = "rivalcfg";
};
}

View File

@@ -0,0 +1,17 @@
# generated by zon2nix (https://github.com/nix-community/zon2nix)
{
linkFarm,
fetchzip,
fetchgit,
}:
linkFarm "zig-packages" [
{
name = "wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.3.0.tar.gz";
hash = "sha256-ydEavD9z20wRwn9ZVX56ZI2T5i1tnm3LupVxfa30o84=";
};
}
]

View File

@@ -0,0 +1,58 @@
{
_experimental-update-script-combinators,
callPackage,
fetchFromSourcehut,
unstableGitUpdater,
lib,
pkg-config,
stdenv,
river-classic,
wayland,
wayland-protocols,
wayland-scanner,
zig_0_14,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "river-bedload";
version = "0.1.1-unstable-2025-03-19";
src = fetchFromSourcehut {
owner = "~novakane";
repo = "river-bedload";
rev = "4a2855ca2669372c346975dd6e1f612ca563b131";
hash = "sha256-CQH2LQi2ga4YDD2ZYb998ExDJHK4TGHq5h3z94703Dc=";
};
deps = callPackage ./build.zig.zon.nix { };
nativeBuildInputs = [
pkg-config
zig_0_14.hook
];
buildInputs = [
wayland
wayland-protocols
wayland-scanner
];
zigBuildFlags = [
"--system"
"${finalAttrs.deps}"
];
passthru.updateScript = _experimental-update-script-combinators.sequence [
(unstableGitUpdater { tagPrefix = "v"; })
./update-build-zig-zon.sh
];
meta = {
description = "Display information about river in json in the STDOUT";
homepage = "https://git.sr.ht/~novakane/river-bedload";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ adamcstephens ];
mainProgram = "river-bedload";
inherit (river-classic.meta) platforms;
};
})

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash jq zon2nix
commit=$(nix-instantiate --eval -A river-bedload.src.rev | jq --raw-output)
wget "https://git.sr.ht/~novakane/river-bedload/blob/${commit}/build.zig.zon"
zon2nix build.zig.zon >pkgs/by-name/ri/river-bedload/build.zig.zon.nix
nixfmt pkgs/by-name/ri/river-bedload/build.zig.zon.nix
rm -f build.zig.zon

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromSourcehut,
wayland,
wayland-scanner,
unstableGitUpdater,
}:
stdenv.mkDerivation {
pname = "river-bnf";
version = "0-unstable-2023-10-10";
src = fetchFromSourcehut {
owner = "~leon_plickat";
repo = "river-bnf";
rev = "bb8ded380ed5d539777533065b4fd33646ad5603";
hash = "sha256-rm9Nt3WLgq9QOXzrkYBGp45EALNYFTQGInxfYIN0XcU=";
};
nativeBuildInputs = [
wayland-scanner
];
buildInputs = [
wayland.dev
];
postPatch = ''
substituteInPlace Makefile --replace '/usr/local' $out
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Switch back'n'forth between river tags";
homepage = "https://git.sr.ht/~leon_plickat/river-bnf";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ adamcstephens ];
mainProgram = "river-bnf";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "river-bsp-layout";
version = "2.1.1";
src = fetchFromGitHub {
owner = "areif-dev";
repo = "river-bsp-layout";
rev = "v${version}";
hash = "sha256-/R9v3NGsSG4JJtdk0sJX7ahRolRmJMwMP48JRmLffXc=";
};
cargoHash = "sha256-kfeRGT/qgZRPfXl03JYRF1CVPIIiGPIdxLORiA6QWu4=";
meta = {
homepage = "https://github.com/areif-dev/river-bsp-layout";
description = "Binary space partition / grid layout manager for River WM";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ areif-dev ];
mainProgram = "river-bsp-layout";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,38 @@
# generated by zon2nix (https://github.com/nix-community/zon2nix)
{
linkFarm,
fetchzip,
fetchgit,
}:
linkFarm "zig-packages" [
{
name = "pixman-0.3.0-LClMnz2VAAAs7QSCGwLimV5VUYx0JFnX5xWU6HwtMuDX";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-pixman/archive/v0.3.0.tar.gz";
hash = "sha256-8tA4auo5FEI4IPnomV6bkpQHUe302tQtorFQZ1l14NU=";
};
}
{
name = "wayland-0.4.0-lQa1khbMAQAsLS2eBR7M5lofyEGPIbu2iFDmoz8lPC27";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.4.0.tar.gz";
hash = "sha256-ulIII5iJpM/W/VJB0HcdktEO2eb9T9J0ln2A1Z94dU4=";
};
}
{
name = "wlroots-0.19.3-jmOlcuL_AwBHhLCwpFsXbTizE3q9BugFmGX-XIxqcPMc";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.19.3.tar.gz";
hash = "sha256-rw2bafYcXTxMUtWF9ae++h0RjSfuvpCnIHGLrbLfQTQ=";
};
}
{
name = "xkbcommon-0.3.0-VDqIe3K9AQB2fG5ZeRcMC9i7kfrp5m2rWgLrmdNn9azr";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.3.0.tar.gz";
hash = "sha256-e5bPEfxl4SQf0cqccLt/py1KOW1+Q1+kWZUEXBbh9oQ=";
};
}
]

View File

@@ -0,0 +1,106 @@
{
lib,
stdenv,
callPackage,
fetchFromGitea,
libGL,
libX11,
libevdev,
libinput,
libxkbcommon,
pixman,
pkg-config,
scdoc,
udev,
versionCheckHook,
wayland,
wayland-protocols,
wayland-scanner,
wlroots_0_19,
xwayland,
zig_0_15,
withManpages ? true,
xwaylandSupport ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "river-classic";
version = "0.3.13";
outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
src = fetchFromGitea {
domain = "codeberg.org";
owner = "river";
repo = "river-classic";
hash = "sha256-XLWvxSChYN5wyhr8R8/3Pfykw61k451XmvgoM45zkEk=";
tag = "v${finalAttrs.version}";
};
deps = callPackage ./build.zig.zon.nix { };
nativeBuildInputs = [
pkg-config
wayland-scanner
xwayland
zig_0_15.hook
]
++ lib.optional withManpages scdoc;
buildInputs = [
libGL
libevdev
libinput
libxkbcommon
pixman
udev
wayland
wayland-protocols
wlroots_0_19
]
++ lib.optional xwaylandSupport libX11;
dontConfigure = true;
zigBuildFlags = [
"--system"
"${finalAttrs.deps}"
]
++ lib.optional withManpages "-Dman-pages"
++ lib.optional xwaylandSupport "-Dxwayland";
postInstall = ''
install contrib/river.desktop -Dt $out/share/wayland-sessions
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "-version";
passthru = {
providedSessions = [ "river" ];
updateScript = ./update.sh;
};
meta = {
homepage = "https://codeberg.org/river/river-classic";
description = "Dynamic tiling wayland compositor";
longDescription = ''
river-classic is a dynamic tiling Wayland compositor with flexible runtime
configuration.
It is a fork of river 0.3 intended for users that are happy with how river 0.3
works and do not wish to deal with the majorly breaking changes planned for
the river 0.4.0 release.
'';
changelog = "https://codeberg.org/river/river-classic/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
adamcstephens
moni
rodrgz
];
mainProgram = "river";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash common-updater-scripts gnused zon2nix
latest_tag=$(list-git-tags --url=https://codeberg.org/river/river-classic | sed 's/^v//' | sort --version-sort | tail --lines=1)
update-source-version river-classic "$latest_tag"
wget "https://codeberg.org/river/river-classic/raw/tag/v${latest_tag}/build.zig.zon"
zon2nix build.zig.zon >pkgs/by-name/ri/river-classic/build.zig.zon.nix
nixfmt pkgs/by-name/ri/river-classic/build.zig.zon.nix
rm -f build.zig.zon build.zig.zon.nix

View File

@@ -0,0 +1,32 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
}:
rustPlatform.buildRustPackage rec {
pname = "river-filtile";
version = "1.2.1";
src = fetchFromGitHub {
owner = "pkulak";
repo = "filtile";
rev = "v${version}";
hash = "sha256-wBU4CX6KGnTvrBsXvFAlRrvDqvHHbAlVkDqTCJx90G8=";
};
cargoHash = "sha256-dmRUcjlmnheCG5drEcJIZbo7haDiu7Qphs6T92V8v/o=";
nativeBuildInputs = [
pkg-config
];
meta = with lib; {
description = "Layout manager for the River window manager";
homepage = "https://github.com/pkulak/filtile";
license = licenses.gpl3Only;
maintainers = with lib.maintainers; [ pkulak ];
mainProgram = "filtile";
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
luajit,
}:
rustPlatform.buildRustPackage rec {
pname = "river-luatile";
version = "0.1.4";
src = fetchFromGitHub {
owner = "MaxVerevkin";
repo = "river-luatile";
rev = "v${version}";
hash = "sha256-8/qHoNFoGH1nSdTwBkaQk+yyvJtrXADTA39gUAMeSv8=";
};
cargoHash = "sha256-KQO6JN+ed+gxTTBGoJYhVUrpHJkuXf1dHrUzcF5FNaY=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
luajit
];
meta = with lib; {
description = "Write your own river layout generator in lua";
homepage = "https://github.com/MaxVerevkin/river-luatile";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ pinpox ];
mainProgram = "river-luatile";
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromSourcehut,
fetchpatch,
wayland,
pixman,
pkg-config,
wayland-scanner,
}:
stdenv.mkDerivation rec {
pname = "river-tag-overlay";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~leon_plickat";
repo = "river-tag-overlay";
rev = "v${version}";
hash = "sha256-hLyXdLi/ldvwPJ1oQQsH5wgflQJuXu6vhYw/qdKAV9E=";
};
patches = [
# Backport cross fix.
(fetchpatch {
url = "https://git.sr.ht/~leon_plickat/river-tag-overlay/commit/791eaadf46482121a4c811ffba13d03168d74d8f.patch";
sha256 = "CxSDcweHGup1EF3oD/2vhP6RFoeYorj0BwmlgA3tbPE=";
})
];
buildInputs = [
pixman
wayland
];
nativeBuildInputs = [
pkg-config
wayland-scanner
];
makeFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX="
];
meta = with lib; {
description = "Pop-up showing tag status";
homepage = "https://sr.ht/~leon_plickat/river-tag-overlay";
license = licenses.gpl3Only;
maintainers = with maintainers; [ edrex ];
platforms = platforms.linux;
mainProgram = "river-tag-overlay";
};
}

View File

@@ -0,0 +1,99 @@
# generated by zon2nix (https://github.com/Cloudef/zig2nix)
{
lib,
linkFarm,
fetchurl,
fetchgit,
runCommandLocal,
zig,
name ? "zig-packages",
}:
with builtins;
with lib;
let
unpackZigArtifact =
{ name, artifact }:
runCommandLocal name { nativeBuildInputs = [ zig ]; } ''
hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})"
mv "$TMPDIR/p/$hash" "$out"
chmod 755 "$out"
'';
fetchZig =
{
name,
url,
hash,
}:
let
artifact = fetchurl { inherit url hash; };
in
unpackZigArtifact { inherit name artifact; };
fetchGitZig =
{
name,
url,
hash,
rev ? throw "rev is required, remove and regenerate the zon2json-lock file",
}:
let
parts = splitString "#" url;
url_base = elemAt parts 0;
url_without_query = elemAt (splitString "?" url_base) 0;
in
fetchgit {
inherit name rev hash;
url = url_without_query;
deepClone = false;
};
fetchZigArtifact =
{
name,
url,
hash,
...
}@args:
let
parts = splitString "://" url;
proto = elemAt parts 0;
path = elemAt parts 1;
fetcher = {
"git+http" = fetchGitZig (
args
// {
url = "http://${path}";
}
);
"git+https" = fetchGitZig (
args
// {
url = "https://${path}";
}
);
http = fetchZig {
inherit name hash;
url = "http://${path}";
};
https = fetchZig {
inherit name hash;
url = "https://${path}";
};
};
in
fetcher.${proto};
in
linkFarm name [
{
name = "wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl";
path = fetchZigArtifact {
name = "wayland";
url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.3.0.tar.gz";
hash = "sha256-xU8IrETSFOKKQQMgwVyRKLwGaek4USaKXg49S9oHSTQ=";
};
}
]

View File

@@ -0,0 +1,69 @@
{
callPackage,
fetchFromSourcehut,
lib,
pandoc,
pkg-config,
stdenv,
wayland,
wayland-protocols,
wayland-scanner,
zig_0_14,
}:
let
zig = zig_0_14;
in
stdenv.mkDerivation (finalAttrs: {
pname = "river-ultitile";
version = "1.3.0";
src = fetchFromSourcehut {
owner = "~midgard";
repo = "river-ultitile";
rev = "v${finalAttrs.version}";
hash = "sha256-whzJZLgd51kXOVq9YVqcADTOyGmHmwJZWzbrZGZx3Ak=";
};
nativeBuildInputs = [
zig.hook
pkg-config
wayland
wayland-scanner
];
buildInputs = [
wayland-protocols
pandoc # used for building documentation
];
deps = callPackage ./build.zig.zon.nix { };
zigBuildFlags = [
"--system"
"${finalAttrs.deps}"
];
meta = {
description = "Configurable layout generator for the River compositor";
longDescription = ''
A layout generator for **river**. Features include:
- **configurable** layouts employing nested tiles (no juggling with coordinates),
- **widescreen** support by default,
- default layouts, switchable at run time with a command or key binding:
- dwm-like main/stack layout,
- main on the left on normal screens,
- **main in the center and stacks on both sides** on widescreens,
- a vertical stack,
- a horizontal stack, and
- a monocle layout,
- optional per-tag-per-output state.
'';
changelog = "https://git.sr.ht/~midgard/river-ultitile/tree/v${finalAttrs.version}/item/CHANGELOG.md";
homepage = "https://git.sr.ht/~midgard/river-ultitile";
license = lib.licenses.gpl3Plus;
mainProgram = "river-ultitile";
maintainers = with lib.maintainers; [ debling ];
platforms = lib.platforms.linux;
};
})

17
pkgs/by-name/ri/rivercarro/deps.nix generated Normal file
View File

@@ -0,0 +1,17 @@
# generated by zon2nix (https://github.com/nix-community/zon2nix)
{
linkFarm,
fetchzip,
fetchgit,
}:
linkFarm "zig-packages" [
{
name = "wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.3.0.tar.gz";
hash = "sha256-ydEavD9z20wRwn9ZVX56ZI2T5i1tnm3LupVxfa30o84=";
};
}
]

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
callPackage,
fetchFromSourcehut,
pkg-config,
river-classic,
wayland,
wayland-protocols,
wayland-scanner,
zig_0_14,
}:
let
zig = zig_0_14;
in
stdenv.mkDerivation (finalAttrs: {
pname = "rivercarro";
version = "0.6.0-unstable-2025-03-19";
src = fetchFromSourcehut {
owner = "~novakane";
repo = "rivercarro";
rev = "199800235645a1771e2551a64d5b4f5e2601888c";
fetchSubmodules = true;
hash = "sha256-im26hiRi24tLCSvLnIdcnIWml5kTs7YSCAC8o9mcR+M=";
};
nativeBuildInputs = [
pkg-config
river-classic
wayland
wayland-protocols
wayland-scanner
zig.hook
];
postPatch = ''
ln -s ${callPackage ./deps.nix { }} $ZIG_GLOBAL_CACHE_DIR/p
'';
meta = with lib; {
homepage = "https://git.sr.ht/~novakane/rivercarro";
description = "Layout generator for river Wayland compositor, fork of rivertile";
longDescription = ''
A slightly modified version of rivertile layout generator for river.
Compared to rivertile, rivercarro adds:
- Monocle layout, views will takes all the usable area on the screen.
- Gaps instead of padding around views or layout area.
- Modify gaps size at runtime.
- Smart gaps, if there is only one view, gaps will be disable.
- Limit the width of the usable area of the screen.
'';
changelog = "https://git.sr.ht/~novakane/rivercarro/refs/v${finalAttrs.version}";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ kraem ];
inherit (zig.meta) platforms;
mainProgram = "rivercarro";
};
})

View File

@@ -0,0 +1,119 @@
{
lib,
stdenv,
fetchurl,
fastjet,
fastjet-contrib,
ghostscript,
graphicsmagick-imagemagick-compat,
hdf5,
hepmc3,
highfive,
less,
pkg-config,
python3,
rsync,
texliveBasic,
yoda,
which,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "rivet";
version = "4.1.1";
src = fetchurl {
url = "https://www.hepforge.org/archive/rivet/Rivet-${version}.tar.bz2";
hash = "sha256-vR1RM1XD9y8PiKly853Z8RRM6uLLRyVC5dMGD+q08cw=";
};
latex = texliveBasic.withPackages (
ps: with ps; [
collection-pstricks
collection-fontsrecommended
l3kernel
l3packages
mathastext
pgf
relsize
sansmath
sfmath
siunitx
xcolor
xkeyval
xstring
]
);
nativeBuildInputs = [
rsync
makeWrapper
pkg-config
];
buildInputs = [
graphicsmagick-imagemagick-compat
hepmc3
highfive
python3
latex
python3.pkgs.yoda
];
propagatedBuildInputs = [
hdf5
fastjet
fastjet-contrib
];
preConfigure = ''
substituteInPlace configure \
--replace-fail 'if test $HEPMC_VERSION -le 310; then' 'if false; then'
substituteInPlace bin/rivet-build.in \
--replace-fail 'num_jobs=$(getconf _NPROCESSORS_ONLN)' 'num_jobs=''${NIX_BUILD_CORES:-$(getconf _NPROCESSORS_ONLN)}' \
--replace-fail 'which' '"${which}/bin/which"' \
--replace-fail 'mycxx=' 'mycxx=${stdenv.cc}/bin/${
if stdenv.cc.isClang or false then "clang++" else "g++"
} #' \
--replace-fail 'mycxxflags="' "mycxxflags=\"$NIX_CFLAGS_COMPILE $NIX_CXXSTDLIB_COMPILE $NIX_CFLAGS_LINK "
'';
preInstall = ''
substituteInPlace bin/make-plots \
--replace-fail '"which"' '"${which}/bin/which"' \
--replace-fail '"latex"' '"'$latex'/bin/latex"' \
--replace-fail '"dvips"' '"'$latex'/bin/dvips"' \
--replace-fail '"ps2pdf"' '"${ghostscript}/bin/ps2pdf"' \
--replace-fail '"ps2eps"' '"${ghostscript}/bin/ps2eps"' \
--replace-fail '"kpsewhich"' '"'$latex'/bin/kpsewhich"' \
--replace-fail '"convert"' '"${graphicsmagick-imagemagick-compat.out}/bin/convert"'
substituteInPlace bin/rivet \
--replace-fail '"less"' '"${less}/bin/less"'
substituteInPlace bin/rivet-mkhtml-tex \
--replace-fail '"make-plots"' \"$out/bin/make-plots\" \
--replace-fail '"rivet-cmphistos"' \"$out/bin/rivet-cmphistos\" \
--replace-fail 'ch_cmd = [sys.executable, os.path.join(os.path.dirname(__file__),' 'ch_cmd = [('
'';
configureFlags = [
"--with-fastjet=${fastjet}"
"--with-yoda=${yoda}"
"--with-hepmc3=${hepmc3}"
"--with-highfive=${highfive}"
];
enableParallelBuilding = true;
postInstall = ''
for prog in "$out"/bin/*; do
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
done
'';
meta = {
description = "Framework for comparison of experimental measurements from high-energy particle colliders to theory predictions";
license = lib.licenses.gpl3;
homepage = "https://rivet.hepforge.org";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ veprbl ];
};
}