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,32 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "beancount-language-server";
version = "1.4.1";
src = fetchFromGitHub {
owner = "polarmutex";
repo = "beancount-language-server";
rev = "v${version}";
hash = "sha256-cx/Y0jBpnNN+QVEovpbhCG70VwOqwDE+8lBcRAJtlF4=";
};
cargoHash = "sha256-P3Oug9YNsTmsOz68rGUcYJwq9NsKErHt/fOCvqXixNU=";
doInstallCheck = true;
postInstallCheck = ''
$out/bin/beancount-language-server --help > /dev/null
'';
meta = with lib; {
description = "Language Server Protocol (LSP) for beancount files";
mainProgram = "beancount-language-server";
homepage = "https://github.com/polarmutex/beancount-language-server";
license = with licenses; [ mit ];
maintainers = with maintainers; [ polarmutex ];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "beanprice";
version = "2.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "beancount";
repo = "beanprice";
tag = "v${version}";
hash = "sha256-Lhr8CRysZbI6dpPwRSN6DgvnKrxsIzH5YyZXRLU1l3Q=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
beancount
curl-cffi
diskcache
python-dateutil
regex
requests
];
nativeCheckInputs = with python3Packages; [
click
pytestCheckHook
regex
];
# Disable tests that require internet access
disabledTestPaths = [
"beanprice/price_test.py"
"beanprice/sources/yahoo_test.py"
];
pythonImportsCheck = [ "beanprice" ];
meta = {
broken = lib.versionOlder python3Packages.beancount.version "3";
homepage = "https://github.com/beancount/beanprice";
description = "Price quotes fetcher for Beancount";
longDescription = ''
A script to fetch market data prices from various sources on the internet
and render them for plain text accounting price syntax (and Beancount).
'';
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ alapshin ];
mainProgram = "bean-price";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
nixosTests,
}:
stdenv.mkDerivation rec {
version = "1.13";
pname = "beanstalkd";
src = fetchFromGitHub {
owner = "kr";
repo = "beanstalkd";
rev = "v${version}";
hash = "sha256-xoudhPad4diGGE8iZaY1/4LiENlKT2dYcIR6wlQdlTU=";
};
hardeningDisable = [ "fortify" ];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage doc/beanstalkd.1
'';
passthru.tests = {
smoke-test = nixosTests.beanstalkd;
};
meta = with lib; {
homepage = "http://kr.github.io/beanstalkd/";
description = "Simple, fast work queue";
license = licenses.mit;
maintainers = [ maintainers.zimbatm ];
platforms = platforms.all;
mainProgram = "beanstalkd";
};
}

View File

@@ -0,0 +1,23 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,8 +85,9 @@
${CMAKE_CACHE_ARGS_EXTRA}
BUILD_ALWAYS
1
- TEST_BEFORE_INSTALL
+ TEST_EXCLUDE_FROM_MAIN
1
+ STEP_TARGETS test
TEST_COMMAND
ctest # or `ctest -T memcheck`
)
@@ -102,7 +103,8 @@
-DCMAKE_INSTALL_LIBDIR:PATH=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_BINDIR:PATH=${CMAKE_INSTALL_BINDIR}
-DSTAGED_INSTALL_PREFIX:PATH=${STAGED_INSTALL_PREFIX}
- TEST_BEFORE_INSTALL
+ TEST_EXCLUDE_FROM_MAIN
+ STEP_TARGETS test
1
INSTALL_COMMAND
""

View File

@@ -0,0 +1,126 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
pkg-config,
grpc,
protobuf,
openssl,
nlohmann_json,
gtest,
spdlog,
c-ares,
zlib,
sqlite,
re2,
lit,
python3,
coreutils,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bear";
version = "3.1.6";
src = fetchFromGitHub {
owner = "rizsotto";
repo = "bear";
rev = finalAttrs.version;
hash = "sha256-fWNMjqF5PCjGfFGReKIUiJ5lv8z6j7HeBn5hvbnV2V4=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
ninja
pkg-config
grpc
protobuf
];
buildInputs = [
grpc
protobuf
openssl
nlohmann_json
spdlog
c-ares
zlib
sqlite
re2
];
patches = [
# This patch is necessary to run tests in a separate phase. By default
# test targets are run with ALL, which is not what we want. This patch creates
# separate 'test' step targets for each cmake ExternalProject:
# - BearTest-test (functional lit tests)
# - BearSource-test (unit tests via gtest)
./0001-exclude-tests-from-all.patch
];
nativeCheckInputs = [
lit
python3
];
checkInputs = [
gtest
];
cmakeFlags = [
# Build system and generated files concatenate install prefix and
# CMAKE_INSTALL_{BIN,LIB}DIR, which breaks if these are absolute paths.
(lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
(lib.cmakeBool "ENABLE_UNIT_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ENABLE_FUNC_TESTS" finalAttrs.finalPackage.doCheck)
];
checkTarget = lib.concatStringsSep " " [
"BearTest-test"
"BearSource-test"
];
doCheck = true;
env = {
# Disable failing tests. The cause is not immediately clear.
LIT_FILTER_OUT = lib.concatStringsSep "|" [
"cases/compilation/output/config/filter_compilers.sh"
"cases/intercept/preload/posix/execvpe/success_to_resolve.c"
"cases/intercept/preload/posix/popen/success.c"
"cases/intercept/preload/posix/posix_spawnp/success_to_resolve.c"
"cases/intercept/preload/posix/system/success.c"
"cases/intercept/preload/shell_commands_intercepted_without_shebang.sh"
];
};
postPatch = ''
patchShebangs test/bin
# /usr/bin/env is used in test commands and embedded scripts.
find test -name '*.sh' \
-exec sed -i -e 's|/usr/bin/env|${coreutils}/bin/env|g' {} +
'';
# Functional tests use loopback networking.
__darwinAllowLocalNetworking = true;
meta = {
description = "Tool that generates a compilation database for clang tooling";
mainProgram = "bear";
longDescription = ''
Note: the bear command is very useful to generate compilation commands
e.g. for YouCompleteMe. You just enter your development nix-shell
and run `bear make`. It's not perfect, but it gets a long way.
'';
homepage = "https://github.com/rizsotto/Bear";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ DieracDelta ];
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
bearer,
}:
buildGoModule rec {
pname = "bearer";
version = "1.51.0";
src = fetchFromGitHub {
owner = "bearer";
repo = "bearer";
tag = "v${version}";
hash = "sha256-aqyINnOVzWVnQ0F2aRxlMIM+CwYwnfnclavlgBV/UCo=";
};
vendorHash = "sha256-MBcJlMIYSqzJaxuS0YEoeXiVsD2AQj4aAXhN/P/E2MU=";
subPackages = [ "cmd/bearer" ];
ldflags = [
"-s"
"-w"
"-X=github.com/bearer/bearer/cmd/bearer/build.Version=${version}"
];
passthru.tests = {
version = testers.testVersion {
package = bearer;
command = "bearer version";
};
};
meta = {
description = "Code security scanning tool (SAST) to discover, filter and prioritize security and privacy risks";
homepage = "https://github.com/bearer/bearer";
changelog = "https://github.com/Bearer/bearer/releases/tag/v${version}";
license = with lib.licenses; [ elastic20 ];
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "bearssl";
version = "0.6";
src = fetchurl {
url = "https://www.bearssl.org/bearssl-${version}.tar.gz";
sha256 = "057zhgy9w4y8z2996r0pq5k2k39lpvmmvz4df8db8qa9f6hvn1b7";
};
outputs = [
"bin"
"lib"
"dev"
"out"
];
enableParallelBuilding = true;
makeFlags = [
"AR=${stdenv.cc.targetPrefix}ar"
"CC=${stdenv.cc.targetPrefix}cc"
"LD=${stdenv.cc.targetPrefix}cc"
"LDDLL=${stdenv.cc.targetPrefix}cc"
]
++ lib.optional stdenv.hostPlatform.isStatic "DLL=no";
installPhase = ''
runHook preInstall
install -D build/brssl $bin/brssl
install -D build/testcrypto $bin/testcrypto
install -Dm644 -t $lib/lib build/libbearssl.*
install -Dm644 -t $dev/include inc/*.h
touch $out
runHook postInstall
'';
meta = {
homepage = "https://www.bearssl.org/";
description = "Implementation of the SSL/TLS protocol written in C";
longDescription = ''
BearSSL is an implementation of the SSL/TLS protocol (RFC 5246)
written in C. It aims at offering the following features:
* Be correct and secure. In particular, insecure protocol versions and
choices of algorithms are not supported, by design; cryptographic
algorithm implementations are constant-time by default.
* Be small, both in RAM and code footprint. For instance, a minimal
server implementation may fit in about 20 kilobytes of compiled code
and 25 kilobytes of RAM.
* Be highly portable. BearSSL targets not only big operating systems
like Linux and Windows, but also small embedded systems and even
special contexts like bootstrap code.
* Be feature-rich and extensible. SSL/TLS has many defined cipher
suites and extensions; BearSSL should implement most of them, and
allow extra algorithm implementations to be added afterwards,
possibly from third parties.
'';
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "BeatPrints";
version = "1.1.5";
pyproject = true;
src = fetchFromGitHub {
owner = "TrueMyst";
repo = "BeatPrints";
rev = "v${version}";
hash = "sha256-7h2MbU6wPqcRhWijdMyd7sTf3UVNCX+5JUNytKr5/EM=";
};
build-system = with python3Packages; [
poetry-core
];
pythonRelaxDeps = [
"Pillow"
"rich"
];
dependencies = with python3Packages; [
requests
pylette
lrclibapi
fonttools
questionary
rich
toml
pillow
spotipy
];
meta = {
description = "Create eye-catching, Pinterest-style music posters effortlessly";
longDescription = ''
Create eye-catching, Pinterest-style music posters effortlessly. BeatPrints integrates with Spotify and LRClib API to help you design custom posters for your favorite tracks or albums. 🍀
'';
homepage = "https://beatprints.readthedocs.io";
changelog = "https://github.com/TrueMyst/BeatPrints/releases/tag/v${version}";
mainProgram = "beatprints";
license = lib.licenses.cc-by-nc-sa-40;
maintainers = with lib.maintainers; [ DataHearth ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "beats";
version = "1.1";
src = fetchFromGitHub {
owner = "j0hax";
repo = "beats";
rev = "v${version}";
sha256 = "1rdvsqrjpily74y8vwch711401585xckb4p41cfwrmj6vf44jhif";
};
makeFlags = [
"PREFIX=$(out)"
"CC=cc"
];
meta = with lib; {
homepage = "https://github.com/j0hax/beats";
license = licenses.gpl3Only;
description = "Swatch Internet Time implemented as a C program";
platforms = platforms.all;
maintainers = [ maintainers.j0hax ];
mainProgram = "beats";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchFromGitHub,
which,
versionCheckHook,
nix-update-script,
}:
buildGoModule rec {
pname = "bed";
version = "0.2.8";
src = fetchFromGitHub {
owner = "itchyny";
repo = "bed";
tag = "v${version}";
hash = "sha256-NXTQMyCI4PKaQPxZqklH03BEDMUrTCNtFUj2FNwIsNM=";
};
vendorHash = "sha256-tp83T6V4HM7SgpZASMWnIoqgw/s/DhdJMsCu2C6OuTo=";
nativeBuildInputs = [ which ];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "-version";
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Binary editor written in Go";
homepage = "https://github.com/itchyny/bed";
changelog = "https://github.com/itchyny/bed/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
mainProgram = "bed";
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
zlib,
bzip2,
jansson,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "bedops";
version = "2.4.42";
src = fetchFromGitHub {
owner = "bedops";
repo = "bedops";
rev = "v${version}";
sha256 = "sha256-IF2MWGpdnP8PKwLRboe5bxu8N+gV4qZ82BemJE/JCU0=";
};
buildInputs = [
zlib
bzip2
jansson
];
nativeBuildInputs = [ makeWrapper ];
preConfigure = ''
# We use nixpkgs versions of these libraries
rm -r third-party
sed -i '/^LIBS/d' system.mk/*
sed -i 's|^LIBRARIES.*$|LIBRARIES = -lbz2 -lz -ljansson|' */*/*/*/Makefile*
# `make support` installs above libraries
substituteInPlace system.mk/* \
--replace ": support" ":"
# Variable name is different in this makefile
substituteInPlace applications/bed/sort-bed/src/Makefile.darwin \
--replace "DIST_DIR" "BINDIR"
# `mkdir -p $BINDIR` is missing
substituteInPlace applications/bed/sort-bed/src/Makefile.darwin \
--replace 'mkdir -p ''${OBJ_DIR}' 'mkdir -p ''${OBJ_DIR} ''${BINDIR}'
substituteInPlace applications/bed/starch/src/Makefile --replace '$(LIBRARIES)' ""
# Function name is different in nixpkgs provided libraries
for f in interfaces/src/data/starch/starchFileHelpers.c applications/bed/starch/src/starchcat.c ; do
substituteInPlace $f --replace deflateInit2cpp deflateInit2
done
# Don't force static
for f in */*/*/*/Makefile* ; do
substituteInPlace $f --replace '-static' ""
done
'';
makeFlags = [ "BINDIR=$(out)/bin" ];
postFixup = ''
for f in $out/bin/* ; do
wrapProgram $f --prefix PATH : "$out/bin"
done
'';
meta = with lib; {
description = "Suite of tools for addressing questions arising in genomics studies";
homepage = "https://github.com/bedops/bedops";
license = licenses.gpl2Only;
maintainers = with maintainers; [ jbedo ];
platforms = platforms.x86_64;
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
zlib,
python3,
bzip2,
xz,
}:
stdenv.mkDerivation rec {
pname = "bedtools";
version = "2.31.1";
src = fetchFromGitHub {
owner = "arq5x";
repo = "bedtools2";
rev = "v${version}";
sha256 = "sha256-rrk+FSv1bGL0D1lrIOsQu2AT7cw2T4lkDiCnzil5fpg=";
};
strictDeps = true;
nativeBuildInputs = [
python3
];
buildInputs = [
zlib
bzip2
xz
];
cxx = if stdenv.cc.isClang then "clang++" else "g++";
cc = if stdenv.cc.isClang then "clang" else "gcc";
buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} -j $NIX_BUILD_CORES";
installPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} install";
meta = with lib; {
description = "Powerful toolset for genome arithmetic";
license = licenses.gpl2;
homepage = "https://bedtools.readthedocs.io/en/latest/";
maintainers = with maintainers; [ jbedo ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
fetchFromGitHub,
buildGoModule,
}:
buildGoModule rec {
pname = "bee";
version = "2.6.0";
src = fetchFromGitHub {
owner = "ethersphere";
repo = "bee";
rev = "v${version}";
hash = "sha256-Yz23iVYGZ4PS1jbV5zFaCEsQOoAbHBpePml0zp5GSkQ=";
};
vendorHash = "sha256-0czsloD2EhSWKQbj7NJ4IqGgKM9+Vp8gSIhOKWg/onA=";
subPackages = [ "cmd/bee" ];
ldflags = [
"-s"
"-w"
"-X github.com/ethersphere/bee/v2.version=${version}"
"-X github.com/ethersphere/bee/v2/pkg/api.Version=5.2.0"
"-X github.com/ethersphere/bee/v2/pkg/api.DebugVersion=4.1.1"
"-X github.com/ethersphere/bee/v2/pkg/p2p/libp2p.reachabilityOverridePublic=false"
"-X github.com/ethersphere/bee/v2/pkg/postage/listener.batchFactorOverridePublic=5"
];
env.CGO_ENABLED = 0;
postInstall = ''
mkdir -p $out/lib/systemd/system
cp packaging/bee.service $out/lib/systemd/system/
cp packaging/bee-get-addr $out/bin/
chmod +x $out/bin/bee-get-addr
patchShebangs $out/bin/
'';
meta = with lib; {
homepage = "https://github.com/ethersphere/bee";
description = "Ethereum Swarm Bee";
longDescription = ''
A decentralised storage and communication system for a sovereign digital society.
Swarm is a system of peer-to-peer networked nodes that create a decentralised storage
and communication service. The system is economically self-sustaining due to a built-in
incentive system enforced through smart contracts on the Ethereum blockchain.
Bee is a Swarm node implementation, written in Go.
'';
license = with licenses; [ bsd3 ];
maintainers = [ ];
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
fetchzip,
autoPatchelfHook,
stdenv,
qt5,
}:
stdenv.mkDerivation rec {
pname = "beebeep";
version = "5.8.6";
src = fetchzip {
url = "https://netix.dl.sourceforge.net/project/beebeep/Linux/beebeep-${version}-qt5-amd64.tar.gz";
hash = "sha256-YDgFRXFBM1tjLP99mHYJadgccHJYYPAZ1kqR+FngLKU=";
};
nativeBuildInputs = [
qt5.wrapQtAppsHook
autoPatchelfHook
];
buildInputs = with qt5; [
qtbase
qtmultimedia
qtx11extras
];
installPhase = ''
mkdir -p $out/bin
cp * $out/bin
'';
meta = {
homepage = "https://www.beebeep.net/";
description = "Free office messenger that is indispensable in all those places where privacy and security are an essential requirement";
mainProgram = "beebeep";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Only;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchurl,
m4,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "beecrypt";
version = "4.2.1";
src = fetchurl {
url = "mirror://sourceforge/beecrypt/beecrypt-${finalAttrs.version}.tar.gz";
hash = "sha256-KG8fVggNGmsdAkADpfohWPT/gsrgxoKdPEdqS1iYxV0=";
};
postPatch = ''
sed -i '33i #include "beecrypt/endianness.h"' blockmode.c
'';
buildInputs = [ m4 ];
configureFlags = [
"--disable-optimized"
"--enable-static"
];
meta = {
description = "Strong and fast cryptography toolkit library";
platforms = lib.platforms.linux;
license = lib.licenses.lgpl2;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
stdenvNoCC,
fetchzip,
gitUpdater,
}:
stdenvNoCC.mkDerivation rec {
pname = "beedii";
version = "1.0.0";
src = fetchzip {
url = "https://github.com/webkul/beedii/releases/download/v${version}/beedii.zip";
hash = "sha256-MefkmWl7LdhQiePpixKcatoIeOTlrRaO3QA9xWAxJ4Q=";
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm444 Fonts/*.ttf -t $out/share/fonts/truetype/${pname}
runHook postInstall
'';
passthru.updateScript = gitUpdater {
url = "https://github.com/webkul/beedii";
rev-prefix = "v";
# This version does not include font files in the released assets.
# https://github.com/webkul/beedii/issues/1
ignoredVersions = "^1\.2\.0$";
};
meta = {
description = "Free Hand Drawn Emoji Font";
homepage = "https://github.com/webkul/beedii";
license = lib.licenses.cc0;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
kachick
];
};
}

View File

@@ -0,0 +1,47 @@
{
stdenv,
lib,
fetchFromGitHub,
installShellFiles,
binutils-unwrapped,
systemd,
}:
stdenv.mkDerivation rec {
pname = "beefi";
version = "0.1.1";
src = fetchFromGitHub {
owner = "jfeick";
repo = "beefi";
tag = version;
sha256 = "1180avalbw414q1gnfqdgc9zg3k9y0401kw9qvcn51qph81d04v5";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = [
binutils-unwrapped
systemd
];
patchPhase = ''
substituteInPlace beefi \
--replace objcopy ${binutils-unwrapped}/bin/objcopy \
--replace /usr/lib/systemd ${systemd}/lib/systemd
'';
installPhase = ''
install -Dm755 beefi $out/bin/beefi
installManPage beefi.1
'';
meta = with lib; {
description = "Small script to create bootable EFISTUB kernel images";
mainProgram = "beefi";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ tu-maurice ];
homepage = "https://github.com/jfeick/beefi";
};
}

View File

@@ -0,0 +1,134 @@
{
lib,
stdenv,
fetchurl,
dpkg,
autoPatchelfHook,
makeWrapper,
glibc,
gcc,
glib,
gtk3,
pango,
cairo,
dbus,
at-spi2-atk,
cups,
libdrm,
gdk-pixbuf,
nss,
nspr,
xorg,
alsa-lib,
expat,
libxkbcommon,
libgbm,
vulkan-loader,
systemd,
libGL,
krb5,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "beekeeper-studio";
version = "5.3.4";
src =
let
selectSystem = attrs: attrs.${stdenv.hostPlatform.system};
arch = selectSystem {
x86_64-linux = "amd64";
aarch64-linux = "arm64";
};
in
fetchurl {
url = "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v${finalAttrs.version}/beekeeper-studio_${finalAttrs.version}_${arch}.deb";
hash = selectSystem {
x86_64-linux = "sha256-JSgZ/rDR3d2aKWuclE9tB5538fcMSShjx9gkzkp/7GA=";
aarch64-linux = "sha256-RsBw4jXcTA2WS1eMleAdljdw8ur0kf2WoQW3dNol2FA=";
};
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
makeWrapper
];
buildInputs = [
(lib.getLib stdenv.cc.cc)
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
libxkbcommon
glibc
gcc
libGL
glib
gtk3
pango
cairo
dbus
at-spi2-atk
cups
libdrm
gdk-pixbuf
nss
nspr
alsa-lib
expat
libgbm
vulkan-loader
krb5
];
runtimeDependencies = map lib.getLib [ systemd ];
installPhase = ''
runHook preInstall
cp -r usr $out
substituteInPlace $out/share/applications/beekeeper-studio.desktop \
--replace-fail '"/opt/Beekeeper Studio/beekeeper-studio"' "beekeeper-studio"
mkdir -p $out/opt $out/bin
cp -r opt/"Beekeeper Studio" $out/opt/beekeeper-studio
makeWrapper $out/opt/beekeeper-studio/beekeeper-studio-bin $out/bin/beekeeper-studio \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
runHook postInstall
'';
preFixup = ''
patchelf --add-needed libGL.so.1 \
--add-needed libEGL.so.1 \
--add-rpath ${
lib.makeLibraryPath [
libGL
]
} $out/opt/beekeeper-studio/beekeeper-studio-bin
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more";
homepage = "https://www.beekeeperstudio.io";
changelog = "https://github.com/beekeeper-studio/beekeeper-studio/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
mainProgram = "beekeeper-studio";
maintainers = with lib.maintainers; [
milogert
alexnortung
];
platforms = [
"aarch64-linux"
"x86_64-linux"
];
knownVulnerabilities = [ "Electron version 31 is EOL" ];
};
})

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused jq nix bash coreutils nix-update common-updater-scripts
set -eou pipefail
PACKAGE_DIR=$(realpath $(dirname $0))
latestVersion=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/beekeeper-studio/beekeeper-studio/releases/latest | jq --raw-output .tag_name | sed 's/^v//')
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; beekeeper-studio.version or (lib.getVersion beekeeper-studio)" | tr -d '"')
if [[ "$currentVersion" == "$latestVersion" ]]; then
echo "package is up-to-date: $currentVersion"
exit 0
fi
nix-update beekeeper-studio --version "$latestVersion" || true
hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url "$(nix eval -f . --raw beekeeper-studio.src.url --system aarch64-linux)"))
update-source-version beekeeper-studio $latestVersion $hash --system=aarch64-linux --ignore-same-version

View File

@@ -0,0 +1,33 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
# this package is working only as root
# in order to work as a non privileged user you would need to suid the bin
stdenv.mkDerivation rec {
pname = "beep";
version = "1.4.12";
src = fetchFromGitHub {
owner = "spkr-beep";
repo = "beep";
rev = "v${version}";
sha256 = "sha256-gDgGI9F+wW2cN89IwP93PkMv6vixJA2JckF78nxZ+TU=";
};
makeFlags = [ "prefix=${placeholder "out"}" ];
# causes redefinition of _FORTIFY_SOURCE
hardeningDisable = [ "fortify3" ];
meta = with lib; {
description = "Advanced PC speaker beeper";
homepage = "https://github.com/spkr-beep/beep";
license = licenses.gpl2Only;
platforms = platforms.linux;
mainProgram = "beep";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
python3,
}:
buildGoModule rec {
pname = "bbctl";
version = "0.13.0";
src = fetchFromGitHub {
owner = "beeper";
repo = "bridge-manager";
tag = "v${version}";
hash = "sha256-bNnansZNshWp70LQQsa6+bS+LJxpCzdTkL2pX+ksrP0=";
};
nativeBuildInputs = [
makeWrapper
];
vendorHash = "sha256-yTNUxwnulQ+WbHdQbeNDghH4RPXurQMIgKDyXfrMxG8=";
postInstall = ''
wrapProgram $out/bin/bbctl \
--prefix PATH : ${python3}/bin
'';
meta = {
description = "Tool for running self-hosted bridges with the Beeper Matrix server";
homepage = "https://github.com/beeper/bridge-manager";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.heywoodlh ];
mainProgram = "bbctl";
changelog = "https://github.com/beeper/bridge-manager/releases/tag/v${version}";
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
fetchurl,
appimageTools,
makeWrapper,
writeShellApplication,
curl,
common-updater-scripts,
}:
let
pname = "beeper";
version = "4.1.253";
src = fetchurl {
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}.AppImage";
hash = "sha256-/vjJmDP183M8B/g0IIcWytB5NUoteWMZlef0j8nZdOQ=";
};
appimageContents = appimageTools.extract {
inherit pname version src;
postExtract = ''
# disable creating a desktop file and icon in the home folder during runtime
linuxConfigFilename=$out/resources/app/build/main/linux-*.mjs
echo "export function registerLinuxConfig() {}" > $linuxConfigFilename
# disable auto update
sed -i 's/[^=]*\.auto_update_disabled/true/' $out/resources/app/build/main/main-entry-*.mjs
# prevent updates
sed -i -E 's/executeDownload\([^)]+\)\{/executeDownload(){return;/g' $out/resources/app/build/main/main-entry-*.mjs
# hide version status element on about page otherwise a error message is shown
sed -i '$ a\.subview-prefs-about > div:nth-child(2) {display: none;}' $out/resources/app/build/renderer/PrefsPanes-*.css
'';
};
in
appimageTools.wrapAppImage {
inherit pname version;
src = appimageContents;
extraPkgs = pkgs: [ pkgs.libsecret ];
extraInstallCommands = ''
install -Dm 644 ${appimageContents}/beepertexts.png $out/share/icons/hicolor/512x512/apps/beepertexts.png
install -Dm 644 ${appimageContents}/beepertexts.desktop -t $out/share/applications/
substituteInPlace $out/share/applications/beepertexts.desktop --replace-fail "AppRun" "beeper"
. ${makeWrapper}/nix-support/setup-hook
wrapProgram $out/bin/beeper \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}} --no-update" \
--set APPIMAGE beeper
'';
passthru = {
updateScript = lib.getExe (writeShellApplication {
name = "update-beeper";
runtimeInputs = [
curl
common-updater-scripts
];
text = ''
set -o errexit
latestLinux="$(curl --silent --output /dev/null --write-out "%{redirect_url}\n" https://api.beeper.com/desktop/download/linux/x64/stable/com.automattic.beeper.desktop)"
version="$(echo "$latestLinux" | grep --only-matching --extended-regexp '[0-9]+\.[0-9]+\.[0-9]+')"
update-source-version beeper "$version"
'';
});
# needed for nix-update
inherit src;
};
meta = with lib; {
description = "Universal chat app";
longDescription = ''
Beeper is a universal chat app. With Beeper, you can send
and receive messages to friends, family and colleagues on
many different chat networks.
'';
homepage = "https://beeper.com";
license = licenses.unfree;
maintainers = with maintainers; [
jshcmpbll
edmundmiller
zh4ngx
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "beeref";
version = "0.3.3";
pyproject = true;
src = fetchFromGitHub {
owner = "rbreu";
repo = "beeref";
tag = "v${version}";
hash = "sha256-GtxiJKj3tlzI1kVXzJg0LNAUcodXSna17ZvAtsAEH4M=";
};
build-system = [ python3Packages.setuptools ];
dependencies = with python3Packages; [
exif
lxml
pyqt6
rectangle-packer
];
pythonRelaxDeps = [
"lxml"
"pyqt6"
"rectangle-packer"
];
pythonRemoveDeps = [ "pyqt6-qt6" ];
pythonImportsCheck = [ "beeref" ];
# Tests fail with "Fatal Python error: Aborted" due to PyQt6 GUI initialization issues in sandbox
# Only versionCheckHook and pythonImportsCheck are used for basic validation
nativeCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/rbreu/beeref/blob/v${version}/CHANGELOG.rst";
description = "Reference image viewer";
homepage = "https://beeref.org";
license = with lib.licenses; [
cc0
gpl3Only
];
mainProgram = "beeref";
maintainers = with lib.maintainers; [ HeitorAugustoLN ];
platforms = lib.platforms.all;
sourceProvenance = [ lib.sourceTypes.fromSource ];
};
}

View File

@@ -0,0 +1,223 @@
#!/usr/bin/env bash
shopt -s extglob
# Upstream wrapper requires UUID to be used for configuration.
# However, when declaratively describing a host, we may not know its UUID, and
# shouldn't need to persist something that will differ between hosts built from
# the same configuration template.
# Thus, for using bees from NixOS, we have our own wrapper, which supports not
# just UUID but any specification permitted by findmnt
[[ $bees_debug ]] && { PS4=':${BASH_SOURCE##*/}:$LINENO+'; set -x; }
usage() {
cat >&2 <<EOF
Usage: ${BASH_SOURCE##*/} run|cleanup config-name|fsSpec [idxSizeMB=...] [verbosity=...] [workDir=...] [-- daemon-options...]
fsSpec should be in a format recognized by findmnt. Alternately,
"config-name" may refer to a file that exists in ${bees_config_dir:-/etc/bees}
with a .conf extension; if that file does not specify UUID, findmnt will be
used in addition.
Note that while config files may presently use shell arithmetic, use of this
functionality is not encouraged going forward: Setting ''idxSizeMB=4096'' is
preferred over ''DB_SIZE=$((1024*1024*1024*4))'' or ''DB_SIZE=$(( AL16M * 256 ))'',
although both of these are presently supported.
If fsSpec contains a /, it assumed to be a mount point to be looked up by
findmnt, not a config file name.
daemon-options are passed directly through to the daemon on startup, as
documented at https://github.com/Zygo/bees/blob/master/docs/options.md.
EOF
exit 1
}
die() { echo "$*" >&2; exit 1; }
allConfigNames=( blockdev fsSpec home idxSize idxSizeMB mntDir runDir status verbosity workDir )
# Alternate names for configuration values; "bees_" will always be prepended
declare -A altConfigNames=(
# from original bees wrapper
[BEESHOME]=home
[BEESSTATUS]=status
[MNT_DIR]=mntDir
[UUID]=uuid
[WORK_DIR]=runDir
[DB_SIZE]=idxSize
)
# legacy bees config files can be arbitrary shell scripts, so we need to actually evaluate them
sandboxedConfigFileEval() {
bash_exe=$(type -P bash) || exit
PATH=/var/empty ENV='' BASH_ENV='' AL128K="$((128*1024))" AL16M="$((16*1024*1024))" "$bash_exe" -r ${bees_debug+-x} \
-c 'eval "$(</dev/stdin)" >&2; for var; do [[ ${!var} ]] && printf "%q=%s\\0" "$var" "${!var}"; done' \
"${!altConfigNames[@]}" "${allConfigNames[@]}" \
<"$1"
}
readConfigFileIfExists() {
local line
[[ -s $1 ]] || return 1
while IFS= read -r -d '' line; do
line=${line%%+([[:space:]])"#"*}
[[ $line ]] || continue
[[ $line = *=* ]] || {
printf 'WARNING: Config file line not recognized: %q\n' "$line" >&2
continue
}
set_option "$line"
done < <(sandboxedConfigFileEval "$1")
}
set_option() {
local k v
k="${1%%=*}" v="${1#*=}"
[[ ${altConfigNames[$k]} ]] && k=${altConfigNames[$k]}
printf -v "bees_$k" %s "$v"
}
uuid_re='^[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}$'
# Shared code for setting configuration used by other operations.
#
# Reads from global associative array "opts" containing options passed in as
# key=value pairs on the command line, looks for config-file overrides, and
# sets individual global variables.
_setup() {
declare fstype
bees_fsSpec=$1; shift
# Look for file-based configuration, additional to honoring configuration on the command line
bees_config_dir="${bees_config_dir:-/etc/bees}"
if [[ $bees_fsSpec =~ $uuid_re ]]; then
bees_uuid=$bees_fsSpec
# If our spec looks like a bare UUID, and no config file exists in the new
# format, fall back to legacy config file search mechanism (grep; ewww).
if ! readConfigFileIfExists "$bees_config_dir/UUID=$bees_fsSpec.conf"; then
# Legacy approach to finding a config file: Grep for a *.conf file
# containing the UUID within its text. Permitting spaces around the "="
# appears to be a bug, but is retained for compatibility with the
# original upstream script.
allConfFiles=( "$bees_config_dir"/*.conf )
if (( ${#allConfFiles[@]} )); then
# in read or readarray with -d '', the NUL terminating the empty string is used as delimiter character.
readarray -d '' -t matchingConfFiles < <(grep -E -l -Z "^[^#]*UUID[[:space:]]*=[[:space:]]*" "${allConfFiles[@]}")
else
matchingConfFiles=( )
fi
if (( ${#matchingConfFiles[@]} == 1 )); then
# Exactly one configuration file exists in our target directory with a reference to the UUID given.
bees_config_file=${matchingConfFiles[0]}
readConfigFileIfExists "$bees_config_file"
echo "NOTE: Please consider renaming $bees_config_file to $bees_config_dir/UUID=$bees_fsSpec" >&2
echo " ...and passing UUID=$bees_fsSpec on startup." >&2
elif (( ${#matchingConfFiles[@]} > 1 )); then
# The legacy wrapper would silently use the first file and ignore
# others, but... no.
echo "ERROR: Passed a bare UUID, but multiple configuration files match it:" >&2
printf ' - %q\n' "${matchingConfFiles[@]}" >&2
die "Unable to continue."
fi
fi
else
# For a non-UUID fsSpec that is not a path, look only for a config file
# exactly matching its text.
#
# (Passing a mount point as a fsSpec is only supported with the new
# wrapper; all key=value pairs can be passed on the command line in this
# mode, so config file support is not needed).
[[ $bees_fsSpec = */* ]] || readConfigFileIfExists "$bees_config_dir/$bees_fsSpec.conf"
fi
[[ $bees_uuid ]] || {
# if bees_uuid is not in our .conf file, look it up with findmnt
for findmnt_mode in --kernel --mtab --fstab; do
read -r bees_uuid fstype < <(findmnt "$findmnt_mode" -n -o uuid,fstype "$bees_fsSpec") ||:
[[ $bees_uuid && $fstype ]] && break
done
[[ $bees_uuid ]] || die "Unable to identify a device matching $bees_fsSpec with findmnt"
[[ $fstype = btrfs ]] || die "Device type is $fstype, not btrfs"
}
[[ $bees_uuid = */* ]] || readConfigFileIfExists "$bees_config_dir/UUID=$bees_uuid.conf"
# Honor any values read from config files above; otherwise, set defaults.
bees_workDir="${bees_workDir:-.beeshome}"
bees_runDir="${bees_runDir:-/run/bees}"
bees_mntDir="${bees_mntDir:-$bees_runDir/mnt/$bees_uuid}"
bees_home="${bees_home:-$bees_mntDir/$bees_workDir}"
bees_status="${bees_status:-${bees_runDir}/$bees_uuid.status}"
bees_verbosity="${bees_verbosity:-6}"
bees_idxSizeMB="${bees_idxSizeMB:-1024}"
bees_idxSize=${bees_idxSize:-"$(( bees_idxSizeMB * 1024 * 1024 ))"}
bees_blockdev=${bees_blockdev:-"/dev/disk/by-uuid/$bees_uuid"}
[[ -b $bees_blockdev ]] || die "Block device $bees_blockdev missing"
(( bees_idxSize % (16 * 1024 * 1024) == 0 )) || die "DB size must be divisible by 16MB"
}
do_run() {
local db old_db_size
_setup "$1"; shift
mkdir -p -- "$bees_mntDir" || exit
# subvol id 5 is reserved for the root subvolume of a btrfs filesystem.
mountpoint -q "$bees_mntDir" || mount -osubvolid=5 -- "$bees_blockdev" "$bees_mntDir" || exit
if [[ -d $bees_home ]]; then
btrfs subvolume show "$bees_home" >/dev/null 2>&1 || die "$bees_home exists but is not a subvolume"
else
btrfs subvolume create "$bees_home" || exit
sync # workaround for Zygo/bees#93
fi
db=$bees_home/beeshash.dat
touch -- "$db"
old_db_size=$(stat -c %s -- "$db")
new_db_size=$bees_idxSize
if (( old_db_size != new_db_size )); then
rm -f -- "$bees_home"/beescrawl."$bees_uuid".dat
truncate -s "$new_db_size" -- "$db" || exit
fi
chmod 700 -- "$bees_home"
# BEESSTATUS and BEESHOME are the only variables handled by the legacy
# wrapper for which getenv() is called in C code.
BEESSTATUS=$bees_status BEESHOME=$bees_home exec "${beesd_bin:-/lib/bees/bees}" \
--verbose "$bees_verbosity" \
"$@" "$bees_mntDir" || exit
}
do_cleanup() {
_setup "$1"; shift
mountpoint -q "$bees_mntDir" && umount -l -- "$bees_mntDir" || exit
}
(( $# >= 2 )) || usage
declare -f "do_$1" >/dev/null 2>&1 || usage
mode=$1; shift # must be a do_* function; currently "run" or "cleanup"
declare -a args=( "$1" ); shift # pass first argument (config-name|fsSpec) through literally
# parse other arguments as key=value pairs, or pass them through literally if they do not match that form.
# similarly, any option after "--" will be passed through literally.
while (( $# )); do
if [[ $1 = *=* ]]; then
set_option "$1"
elif [[ $1 = -- ]]; then
shift
args+=( "$@" )
break
else
args+=( "$1" )
fi
shift
done
"do_$mode" "${args[@]}"

View File

@@ -0,0 +1,84 @@
{
lib,
fetchFromGitHub,
makeWrapper,
nixosTests,
stdenv,
# Build inputs
btrfs-progs,
util-linux,
python3Packages,
# bees-service-wrapper
bash,
coreutils,
}:
stdenv.mkDerivation rec {
pname = "bees";
version = "0.11";
src = fetchFromGitHub {
owner = "Zygo";
repo = "bees";
rev = "v${version}";
hash = "sha256-qaiRWRd9+ElJ40QGOS3AxT2NvF3phQCyPnVz6RfTt8c=";
};
buildInputs = [
btrfs-progs # for btrfs/ioctl.h
util-linux # for uuid.h
];
nativeBuildInputs = [
makeWrapper
python3Packages.markdown # documentation build
];
preBuild = ''
git() { if [[ $1 = describe ]]; then echo ${version}; else command git "$@"; fi; }
export -f git
'';
postBuild = ''
unset -f git
'';
postInstall = ''
makeWrapper ${./bees-service-wrapper} "$out"/bin/bees-service-wrapper \
--prefix PATH : ${
lib.makeBinPath [
bash
coreutils
util-linux
btrfs-progs
]
} \
--set beesd_bin "$out"/lib/bees/bees
'';
buildFlags = [
"ETC_PREFIX=/var/run/bees/configs"
];
makeFlags = [
"SHELL=bash"
"PREFIX=$(out)"
"ETC_PREFIX=$(out)/etc"
"BEES_VERSION=${version}"
"SYSTEMD_SYSTEM_UNIT_DIR=$(out)/etc/systemd/system"
];
passthru.tests = {
smoke-test = nixosTests.bees;
};
meta = with lib; {
homepage = "https://github.com/Zygo/bees";
description = "Block-oriented BTRFS deduplication service";
longDescription = "Best-Effort Extent-Same: bees finds not just identical files, but also identical extents within files that differ";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ chaduffy ];
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "behdad-fonts";
version = "0.0.3";
src = fetchFromGitHub {
owner = "font-store";
repo = "BehdadFont";
rev = "v${version}";
hash = "sha256-gKfzxo3/bCMKXl2d6SP07ahIiNrUyrk/SN5XLND2lWY=";
};
installPhase = ''
runHook preInstall
find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/behrad-fonts {} \;
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/font-store/BehdadFont";
description = "Persian/Arabic Open Source Font";
license = licenses.ofl;
platforms = platforms.all;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchFromGitHub,
pcsclite,
boost,
pkg-config,
testers,
beidconnect,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "beidconnect";
version = "2.11";
src = fetchFromGitHub {
owner = "Fedict";
repo = "fts-beidconnect";
rev = finalAttrs.version;
hash = "sha256-4eKO2yw2Ipfu1PvebgOR+BihsLlnWIJejGWqjztPA2I=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
pcsclite.dev
boost
];
strictDeps = true;
postPatch = ''
substituteInPlace Makefile \
--replace-fail '$(DESTDIR)/usr/bin' '$(DESTDIR)/bin'
'';
makeFlags = [ "DESTDIR=$(out)" ];
sourceRoot = "${finalAttrs.src.name}/linux";
postInstall = ''
install -d \
$out/etc/chromium/native-messaging-hosts \
$out/etc/opt/chrome/native-messaging-hosts/ \
$out/etc/opt/edge/native-messaging-hosts/ \
$out/etc/opt/vivaldi/native-messaging-hosts/ \
$out/etc/opt/brave/native-messaging-hosts/ \
$out/lib/mozilla/native-messaging-hosts \
$out/bin/beidconnect -setup $out/bin \
$out/etc/chromium/native-messaging-hosts \
$out/lib/mozilla/native-messaging-hosts
# Chrome
install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/chrome/native-messaging-hosts/
# Edge
install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/edge/native-messaging-hosts/
# Vivaldi
install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/vivaldi/native-messaging-hosts/
# Brave
install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/brave/native-messaging-hosts/
'';
passthru.tests.version = testers.testVersion {
package = beidconnect;
command = "${beidconnect}/bin/beidconnect -version";
};
meta = {
description = "BeIDConnect native messaging component";
longDescription = ''
The beidconnect is a program to help implementing digital signing services
and/or an identity service using the Belgian eID card. It provides
services to webbrowsers to read data from cards, and is intended to work
together with a WebExtension in the browser.
This package contains the native code. For the WebExtension, see your
webbrowser's extension store.
'';
homepage = "https://github.com/Fedict/fts-beidconnect/";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jovandeginste ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,69 @@
{
lib,
fetchFromGitHub,
fetchpatch,
rustPlatform,
clang,
pkg-config,
elfutils,
rustfmt,
zlib,
}:
rustPlatform.buildRustPackage rec {
pname = "below";
version = "0.9.0";
src = fetchFromGitHub {
owner = "facebookincubator";
repo = "below";
tag = "v${version}";
hash = "sha256-tPweJFqhZMOL+M08bDjW6HPmtuhr9IXJNP0c938O7Cg=";
};
cargoPatches = [
(fetchpatch {
name = "update-Cargo.lock.patch";
url = "https://github.com/facebookincubator/below/commit/f46f9936ac29fa23f5cb02cafe93ae724649bafc.patch";
hash = "sha256-J+M8FIuo8ToT3+9eZi5qfwfAW98XcNRqTIJd6O8z1Ig=";
})
];
cargoHash = "sha256-JrSSIwREHSg5YJivSdBIPjOkOtdw8qGCsa4yE7rJz/E=";
prePatch = ''
sed -i "s,ExecStart=.*/bin,ExecStart=$out/bin," etc/below.service
'';
postInstall = ''
install -d $out/lib/systemd/system
install -t $out/lib/systemd/system etc/below.service
'';
# bpf code compilation
hardeningDisable = [
"stackprotector"
"zerocallusedregs"
];
nativeBuildInputs = [
clang
pkg-config
rustfmt
];
buildInputs = [
elfutils
zlib
];
# needs /sys/fs/cgroup
doCheck = false;
meta = {
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ globin ];
description = "Time traveling resource monitor for modern Linux systems";
license = lib.licenses.asl20;
homepage = "https://github.com/facebookincubator/below";
mainProgram = "below";
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
fetchFromGitHub,
ocamlPackages,
}:
ocamlPackages.buildDunePackage rec {
pname = "beluga";
version = "1.1.3";
src = fetchFromGitHub {
owner = "Beluga-lang";
repo = "Beluga";
tag = "v${version}";
hash = "sha256-bMaLjHq/3ZrST5E9lBSIX0T2cAhDin+lv1XwgUF4/7w=";
};
duneVersion = "3";
buildInputs = with ocamlPackages; [
gen
sedlex
extlib
dune-build-info
linenoise
omd
uri
ounit2
yojson
];
doCheck = true;
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/beluga/
cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga
'';
meta = {
description = "Functional language for reasoning about formal systems";
homepage = "https://complogic.cs.mcgill.ca/beluga";
changelog = "https://github.com/Beluga-lang/Beluga/releases/tag/v${version}";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.bcdarwin ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,92 @@
{
stdenv,
lib,
fetchFromGitHub,
cairo,
libxkbcommon,
pango,
fribidi,
harfbuzz,
pkg-config,
scdoc,
makeWrapper,
ncursesSupport ? true,
ncurses,
waylandSupport ? stdenv.hostPlatform.isLinux,
wayland,
wayland-protocols,
wayland-scanner,
x11Support ? stdenv.hostPlatform.isLinux,
xorg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bemenu";
version = "0.6.23";
src = fetchFromGitHub {
owner = "Cloudef";
repo = "bemenu";
rev = finalAttrs.version;
hash = "sha256-0vpqJ2jydTt6aVni0ma0g+80PFz+C4xJ5M77sMODkSg=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace GNUmakefile --replace '-soname' '-install_name'
'';
strictDeps = true;
nativeBuildInputs = [
pkg-config
scdoc
]
++ lib.optional stdenv.hostPlatform.isDarwin makeWrapper
++ lib.optional waylandSupport wayland-scanner;
buildInputs = [
cairo
fribidi
harfbuzz
libxkbcommon
pango
]
++ lib.optional ncursesSupport ncurses
++ lib.optionals waylandSupport [
wayland
wayland-protocols
]
++ lib.optionals x11Support [
xorg.libX11
xorg.libXinerama
xorg.libXft
xorg.libXdmcp
xorg.libpthreadstubs
xorg.libxcb
];
makeFlags = [ "PREFIX=$(out)" ];
buildFlags = [
"clients"
]
++ lib.optional ncursesSupport "curses"
++ lib.optional waylandSupport "wayland"
++ lib.optional x11Support "x11";
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
so="$(find "$out/lib" -name "libbemenu.so.[0-9]" -print -quit)"
for f in "$out/bin/"*; do
install_name_tool -change "$(basename $so)" "$so" $f
wrapProgram $f --set BEMENU_BACKEND curses
done
'';
meta = with lib; {
homepage = "https://github.com/Cloudef/bemenu";
description = "Dynamic menu library and client program inspired by dmenu";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ crertel ];
mainProgram = "bemenu";
platforms = with platforms; linux ++ darwin;
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "bemoji";
version = "0.4.0-unstable-2024-04-28";
src = fetchFromGitHub {
owner = "marty-oehme";
repo = "bemoji";
rev = "1b5e9c1284ede59d771bfd43780cc8f6f7446f38";
hash = "sha256-WD4oFq0NRZ0Dt/YamutM7iWz3fMRxCqwgRn/rcUsTIw=";
};
strictDeps = true;
dontBuild = true;
postInstall = ''
install -Dm555 bemoji -t $out/bin
'';
meta = with lib; {
homepage = "https://github.com/marty-oehme/bemoji/";
description = "Emoji picker with support for bemenu/wofi/rofi/dmenu and wayland/X11";
license = licenses.mit;
mainProgram = "bemoji";
platforms = platforms.all;
maintainers = with maintainers; [
laurent-f1z1
MrSom3body
];
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
fetchFromGitHub,
python3,
libseccomp,
nixosTests,
testers,
benchexec,
}:
python3.pkgs.buildPythonApplication rec {
pname = "benchexec";
version = "3.27";
src = fetchFromGitHub {
owner = "sosy-lab";
repo = "benchexec";
tag = version;
hash = "sha256-lokz7klAQAascij0T/T43/PrbMh6ZUAvFnIqg13pVUk=";
};
pyproject = true;
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'setuptools ==' 'setuptools >='
'';
nativeBuildInputs = with python3.pkgs; [ setuptools ];
# NOTE: CPU Energy Meter is not added,
# because BenchExec should call the wrapper configured
# via `security.wrappers.cpu-energy-meter`
# in `programs.cpu-energy-meter`, which will have the required
# capabilities to access MSR.
# If we add `cpu-energy-meter` here, BenchExec will instead call an executable
# without `CAP_SYS_RAWIO` and fail.
propagatedBuildInputs = with python3.pkgs; [
coloredlogs
lxml
pystemd
pyyaml
];
makeWrapperArgs = [ "--set-default LIBSECCOMP ${lib.getLib libseccomp}/lib/libseccomp.so" ];
passthru.tests =
let
testVersion =
result:
testers.testVersion {
command = "${result} --version";
package = benchexec;
};
in
{
nixos = nixosTests.benchexec;
benchexec-version = testVersion "benchexec";
runexec-version = testVersion "runexec";
table-generator-version = testVersion "table-generator";
containerexec-version = testVersion "containerexec";
};
meta = with lib; {
description = "Framework for Reliable Benchmarking and Resource Measurement";
homepage = "https://github.com/sosy-lab/benchexec";
maintainers = with maintainers; [ lorenzleutgeb ];
license = licenses.asl20;
mainProgram = "benchexec";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
catch2,
cmake,
expected-lite,
fmt,
gsl-lite,
ninja,
}:
stdenv.mkDerivation rec {
pname = "bencode";
version = "1.0.1";
src = fetchFromGitHub {
owner = "fbdtemme";
repo = "bencode";
rev = version;
hash = "sha256-zpxvADZfYTUdlNLMZJSCanPL40EGl9BBCxR7oDhvOTw=";
};
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [
catch2
expected-lite
fmt
gsl-lite
];
postPatch = ''
# Disable a test that requires an internet connection.
substituteInPlace tests/CMakeLists.txt \
--replace "add_subdirectory(cmake_fetch_content)" ""
'';
doCheck = true;
postInstall = ''
rm -rf $out/lib64
'';
meta = with lib; {
description = "Header-only C++20 bencode serialization/deserialization library";
homepage = "https://github.com/fbdtemme/bencode";
changelog = "https://github.com/fbdtemme/bencode/blob/${src.rev}/CHANGELOG.md";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.unix;
# Broken because the default stdenv on these targets doesn't support C++20.
broken = with stdenv; isDarwin || (isLinux && isAarch64);
};
}

View File

@@ -0,0 +1,52 @@
{
stdenv,
lib,
fetchFromGitLab,
gitUpdater,
python3Packages,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bencodetools";
version = "1.0.1";
src = fetchFromGitLab {
owner = "heikkiorsila";
repo = "bencodetools";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-5Y1r6+aVtK22lYr2N+YUPPdUts9PIF9I/Pq/mI+WqQs=";
};
postPatch = ''
patchShebangs configure
'';
enableParallelBuilding = true;
configureFlags = [ (lib.strings.withFeature false "python") ];
# installCheck instead of check due to -install_name'd library on Darwin
doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
installCheckPhase = ''
runHook preInstallCheck
./bencodetest
runHook postInstallCheck
'';
passthru = {
tests.python-module = python3Packages.bencodetools;
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = {
description = "Collection of tools for manipulating bencoded data";
homepage = "https://gitlab.com/heikkiorsila/bencodetools";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ OPNA2608 ];
mainProgram = "bencat";
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,40 @@
{
rustPlatform,
fetchFromGitHub,
lib,
makeWrapper,
hvm,
}:
rustPlatform.buildRustPackage rec {
pname = "Bend";
version = "0.2.37";
src = fetchFromGitHub {
owner = "HigherOrderCO";
repo = "Bend";
tag = version;
hash = "sha256-8uBEI9GKUETk8t6Oanb0OECe3MlJ486QnccOuhIxPuY=";
};
cargoHash = "sha256-xac5Gb0hcamT3vymq6SKaMiuEn8NU9Bfhu+t/dcjhTE=";
nativeBuildInputs = [
hvm
makeWrapper
];
postInstall = ''
wrapProgram $out/bin/bend \
--prefix PATH : ${lib.makeBinPath [ hvm ]}
'';
meta = {
description = "Massively parallel, high-level programming language";
homepage = "https://higherorderco.com/";
license = lib.licenses.asl20;
mainProgram = "bend";
maintainers = with lib.maintainers; [ k3yss ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
gitMinimal,
}:
let
target = stdenv.hostPlatform.rust.cargoShortTarget;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bender";
version = "0.28.2";
src = fetchFromGitHub {
owner = "pulp-platform";
repo = "bender";
tag = "v${finalAttrs.version}";
hash = "sha256-OJWYhs5QmfUC1I5OkEJAeLTpklEQyQ6024wmhv1sSnA=";
};
cargoHash = "sha256-nZ2gchifWSmDlVJIsPcvrnUxzhyXYoA1kE9f2pZDJzs=";
nativeCheckInputs = [ gitMinimal ];
postCheck = ''
patchShebangs --build tests
BENDER="target/${target}/$cargoBuildType/bender" tests/run_all.sh
'';
meta = {
description = "Dependency management tool for hardware projects";
homepage = "https://github.com/pulp-platform/bender";
changelog = "https://github.com/pulp-platform/bender/releases/tag/${finalAttrs.src.rev}";
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [ Liamolucko ];
mainProgram = "bender";
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "benhsm-minesweeper";
version = "0.3.1";
src = fetchFromGitHub {
owner = "benhsm";
repo = "minesweeper";
tag = "v${finalAttrs.version}";
hash = "sha256-4ahevo/dogjcJ6GRqVZKYapy1x16F+U6vEsgpt2RdiE=";
};
vendorHash = "sha256-UvvoL7Us201B13M4vwOZEhSB0slAzXCs+9wzJIDictQ=";
passthru.updateScript = nix-update-script { };
meta = {
description = "Simple terminal-based implementation of Minesweeper";
homepage = "https://github.com/benhsm/minesweeper";
changelog = "https://github.com/benhsm/minesweeper/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
mainProgram = "minesweeper";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ Zaczero ];
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule rec {
pname = "benthos";
version = "4.56.0";
src = fetchFromGitHub {
owner = "redpanda-data";
repo = "benthos";
tag = "v${version}";
hash = "sha256-TayHN6Vsp1mkDNqa6mc5HWGPIfyeJQdzOGBnE6SioZ0=";
};
proxyVendor = true;
subPackages = [
"cmd/benthos"
];
vendorHash = "sha256-g1jqVJfpH2EsTYoXMGp0HiUEqKlprgMYqmzecGWKmoo=";
# doCheck = false;
ldflags = [
"-s"
"-w"
"-X github.com/redpanda-data/benthos/v4/internal/cli.Version=${version}"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Fancy stream processing made operationally mundane";
mainProgram = "benthos";
homepage = "https://www.benthos.dev";
changelog = "https://github.com/benthosdev/benthos/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sagikazarmark ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
fetchFromGitHub,
buildGoModule,
versionCheckHook,
nix-update-script,
}:
buildGoModule rec {
pname = "bento";
version = "1.11.0";
src = fetchFromGitHub {
owner = "warpstreamlabs";
repo = "bento";
tag = "v${version}";
hash = "sha256-F5RUOcD6nKH5NS0nK78d94FtXduI/6AVJJ0qArP8Ziw=";
};
proxyVendor = true;
vendorHash = "sha256-hBjj3voqWvwURGsgIgySLyxfm0JKu4qHe/HLcUO0Fa0=";
subPackages = [
"cmd/bento"
"cmd/serverless/bento-lambda"
];
ldflags = [
"-s"
"-w"
"-X github.com/warpstreamlabs/bento/internal/cli.Version=${version}"
"-X main.Version=${version}"
];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "High performance and resilient stream processor";
homepage = "https://warpstreamlabs.github.io/bento/";
changelog = "https://github.com/warpstreamlabs/bento/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "bento";
};
}

View File

@@ -0,0 +1,5 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36 +36 @@ endif()
-add_library(ap4 STATIC ${AP4_SOURCES})
+add_library(ap4 ${AP4_SOURCES})

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "bento4";
version = "1.6.0-641";
src = fetchFromGitHub {
owner = "axiomatic-systems";
repo = "Bento4";
rev = "v${version}";
hash = "sha256-Qy8D3cbCVHmLAaXtiF64rL2oRurXNCtd5Dsgt0W7WdY=";
};
patches = [
./libap4.patch # include all libraries as shared, not static
];
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_ARCHITECTURES="
];
installPhase = ''
runHook preInstall
mkdir -p $out/{lib,bin}
find -iname '*${stdenv.hostPlatform.extensions.sharedLibrary}' -exec mv --target-directory="$out/lib" {} \;
find -maxdepth 1 -executable -type f -exec mv --target-directory="$out/bin" {} \;
runHook postInstall
'';
# Patch binaries to use our dylib
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
find $out/bin -maxdepth 1 -executable -type f -exec install_name_tool -change @rpath/libap4.dylib $out/lib/libap4.dylib {} \;
'';
meta = with lib; {
description = "Full-featured MP4 format and MPEG DASH library and tools";
homepage = "http://bento4.com";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ makefu ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,54 @@
{
stdenv,
lib,
fetchFromGitHub,
boost,
cmake,
db,
}:
stdenv.mkDerivation {
pname = "benzene";
version = "0-unstable-2022-12-18";
src = fetchFromGitHub {
owner = "cgao3";
repo = "benzene-vanilla-cmake";
rev = "95614769bafc9850a3cc54974660bb1795db6086";
hash = "sha256-3DX/OVjKXyeOmO6P6iz1FTkNQ0n7vUFkKQ5Ac+7t3l4=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
db
];
postPatch = ''
# Fixes for boost v1.85.0+
# https://github.com/cgao3/benzene-vanilla-cmake/issues/18
substituteInPlace src/util/Misc.cpp \
--replace-fail '.branch_path()' '.parent_path()' \
--replace-fail '.normalize()' '.lexically_normal()'
substituteInPlace CMakeLists.txt \
--replace-fail '-DABS_TOP_SRCDIR="''${top_srcdir}"' '-DABS_TOP_SRCDIR="$ENV{out}"' \
--replace-fail '-DDATADIR="''${pkgdatadir}"' '-DDATADIR="$ENV{out}/share"'
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp src/mohex/mohex $out/bin/mohex
cp src/wolve/wolve $out/bin/wolve
cp -r ../share $out/share/
runHook postInstall
'';
meta = {
description = "Software for playing and solving the game of Hex";
homepage = "https://github.com/cgao3/benzene-vanilla-cmake";
license = lib.licenses.lgpl3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ eilvelia ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
mkfontdir,
mkfontscale,
}:
stdenvNoCC.mkDerivation {
pname = "beon";
version = "2024-02-26";
src = fetchFromGitHub {
owner = "noirblancrouge";
repo = "Beon";
rev = "c0379c80a3b7d01532413f43f49904b2567341ac";
hash = "sha256-jBLVVykHFJamOVF6GSRnQqYixqOrw5K1oV1B3sl4Zoc=";
};
nativeBuildInputs = [
mkfontscale
mkfontdir
];
installPhase = ''
runHook preInstall
install -D -v fonts/ttf/Beon-Regular.ttf $out/share/fonts/truetype/Beon-Regular.ttf
cd $out/share/fonts
mkfontdir
mkfontscale
runHook postInstall
'';
meta = {
description = "Neon stencil typeface";
homepage = "https://noirblancrouge.com/fonts/beon-display";
changelog = "https://github.com/noirblancrouge/Beon#changelog";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ raboof ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
buildGoModule,
fetchFromGitHub,
enableGUI ? false, # upstream working in progress
pkg-config,
glfw,
xorg,
libXcursor,
libXrandr,
libXinerama,
xinput,
libXi,
libXxf86vm,
}:
buildGoModule rec {
pname = "bepass";
version = "1.6.2";
src = fetchFromGitHub {
owner = "bepass-org";
repo = "bepass";
rev = "v${version}";
hash = "sha256-ruOhPWNs1WWM3r6X+6ch0HoDCu/a+IkBQiCr0Wh6yS8=";
};
vendorHash = "sha256-Juie/Hq3i6rvAK19x6ah3SCQJL0uCrmV9gvzHih3crY=";
subPackages = [
"cmd/cli"
];
proxyVendor = true;
nativeBuildInputs = lib.optionals enableGUI [ pkg-config ];
buildInputs = lib.optionals enableGUI [
glfw
xorg.libXft
libXcursor
libXrandr
libXinerama
libXi
xinput
libXxf86vm
];
ldflags = [
"-s"
"-w"
];
postInstall = ''
mv $out/bin/cli $out/bin/bepass
'';
meta = with lib; {
homepage = "https://github.com/bepass-org/bepass";
description = "Simple DPI bypass tool written in go";
license = licenses.mit;
mainProgram = "bepass";
maintainers = with maintainers; [ oluceps ];
broken = enableGUI;
};
}

View File

@@ -0,0 +1,85 @@
{
lib,
python3,
fetchPypi,
}:
let
# bepasty 1.2 needs xstatic-font-awesome < 5, see
# https://github.com/bepasty/bepasty-server/issues/305
bepastyPython = python3.override {
self = bepastyPython;
packageOverrides = self: super: {
xstatic-font-awesome = super.xstatic-font-awesome.overridePythonAttrs (oldAttrs: rec {
version = "4.7.0.0";
src = oldAttrs.src.override {
inherit version;
hash = "sha256-4B+0gMqqfHlj3LMyikcA5jG+9gcNsOi2hYFtIg5oX2w=";
};
});
};
};
in
# We need to use buildPythonPackage here to get the PYTHONPATH build correctly.
# This is needed for services.bepasty
# https://github.com/NixOS/nixpkgs/pull/38300
bepastyPython.pkgs.buildPythonPackage rec {
pname = "bepasty";
version = "1.2.2";
format = "pyproject";
propagatedBuildInputs = with bepastyPython.pkgs; [
flask
markupsafe
pygments
setuptools
xstatic
xstatic-asciinema-player
xstatic-bootbox
xstatic-bootstrap
xstatic-font-awesome
xstatic-jquery
xstatic-jquery-file-upload
xstatic-jquery-ui
xstatic-pygments
];
buildInputs = with bepastyPython.pkgs; [ setuptools-scm ];
src = fetchPypi {
inherit pname version;
hash = "sha256-teazPj+IrgbVeUkWqgWhpIldgfCTbZYJAqn5Q5blcm8=";
};
nativeCheckInputs = with bepastyPython.pkgs; [
build
flake8
pytestCheckHook
pytest-cov-stub
selenium
tox
twine
];
disabledTestPaths = [
# Can be enabled when werkzeug is updated to >2.2, see #245145
# and https://github.com/bepasty/bepasty-server/pull/303
"src/bepasty/tests/test_rest_server.py"
# These require a web browser
"src/bepasty/tests/screenshots.py"
"src/bepasty/tests/test_website.py"
];
meta = with lib; {
homepage = "https://github.com/bepasty/bepasty-server";
description = "Binary pastebin server";
license = licenses.bsd2;
maintainers = with maintainers; [
aither64
makefu
];
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
berglas,
}:
let
skipTests = {
access = "Access";
create = "Create";
delete = "Delete";
list = "List";
read = "Read";
replace = "Replace";
resolver = "Resolve";
revoke = "Revoke";
update = "Update";
};
skipTestsCommand = builtins.foldl' (
acc: goFileName:
let
testName = builtins.getAttr goFileName skipTests;
in
''
${acc}
substituteInPlace pkg/berglas/${goFileName}_test.go \
--replace "TestClient_${testName}_storage" "SkipClient_${testName}_storage" \
--replace "TestClient_${testName}_secretManager" "SkipClient_${testName}_secretManager"
''
) "" (builtins.attrNames skipTests);
in
buildGoModule rec {
pname = "berglas";
version = "2.0.8";
src = fetchFromGitHub {
owner = "GoogleCloudPlatform";
repo = "berglas";
rev = "v${version}";
sha256 = "sha256-gBZY/xj/T7UYQ5mnN6udpBKViE/RYz9tmbmYN+JqsBk=";
};
vendorHash = "sha256-NR4YoaJ5ztc7eokRexNzDBtAH7JM4vZH13K550KWFNM=";
ldflags = [
"-s"
"-w"
"-X github.com/GoogleCloudPlatform/berglas/v2/internal/version.version=${version}"
];
postPatch = skipTestsCommand;
passthru.tests = {
version = testers.testVersion {
package = berglas;
};
};
meta = with lib; {
description = "Tool for managing secrets on Google Cloud";
homepage = "https://github.com/GoogleCloudPlatform/berglas";
license = licenses.asl20;
mainProgram = "berglas";
};
}

View File

@@ -0,0 +1,92 @@
{
lib,
stdenv,
fetchFromGitHub,
copyDesktopItems,
fontconfig,
freetype,
libX11,
libXext,
libXft,
libXinerama,
makeDesktopItem,
pkg-config,
which,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "berry";
version = "0.1.13";
src = fetchFromGitHub {
owner = "JLErvin";
repo = "berry";
rev = finalAttrs.version;
hash = "sha256-BMK5kZVoYTUA7AFZc/IVv4rpbn893b/QYXySuPAz2Z8=";
};
nativeBuildInputs = [
copyDesktopItems
pkg-config
which
];
buildInputs = [
libX11
libXext
libXft
libXinerama
fontconfig
freetype
];
outputs = [
"out"
"man"
];
strictDeps = true;
postPatch = ''
sed -i --regexp-extended 's/(pkg_verstr=").*(")/\1${finalAttrs.version}\2/' configure
'';
preConfigure = ''
patchShebangs configure
'';
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-D_C99_SOURCE";
desktopItems = [
(makeDesktopItem {
name = "berry";
exec = "berry";
comment = "A healthy, bite-sized window manager";
desktopName = "Berry Window Manager";
genericName = "Berry Window Manager";
categories = [ "Utility" ];
})
];
meta = {
homepage = "https://berrywm.org/";
description = "Healthy, bite-sized window manager";
longDescription = ''
berry is a healthy, bite-sized window manager written in C for unix
systems. Its main features include:
- Controlled via a powerful command-line client, allowing users to control
windows via a hotkey daemon such as sxhkd or expand functionality via
shell scripts.
- Small, hackable source code.
- Extensible themeing options with double borders, title bars, and window
text.
- Intuitively place new windows in unoccupied spaces.
- Virtual desktops.
'';
license = lib.licenses.mit;
mainProgram = "berry";
maintainers = [ ];
inherit (libX11.meta) platforms;
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "besley";
version = "4.0-unstable-2023-01-09";
src = fetchFromGitHub {
owner = "indestructible-type";
repo = "Besley";
rev = "99d5b97fcb863c4a667571ac8f86f745c345d3ab";
hash = "sha256-N6QU3Pd6EnIrdbRtDT3mW5ny683DBWo0odADJBSdA2E=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
cp fonts/*/*.otf $out/share/fonts/truetype
runHook postInstall
'';
meta = {
homepage = "https://indestructibletype.com/Besley.html";
description = "Besley an antique slab serif font by indestructible type*";
license = lib.licenses.ofl;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ gavink97 ];
};
}

View File

@@ -0,0 +1,30 @@
diff --git a/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp b/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
index 4cce7016f..25554a7cd 100644
--- a/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
+++ b/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
@@ -291,7 +291,6 @@ public:
juce::jack_on_info_shutdown (client, infoShutdownCallback, this);
juce::jack_set_xrun_callback (client, xrunCallback, this);
juce::jack_activate (client);
- deviceIsOpen = true;
if (! inputChannels.isZero())
{
@@ -336,6 +335,7 @@ public:
}
updateActivePorts();
+ deviceIsOpen = true;
return lastError;
}
@@ -525,7 +525,8 @@ private:
static void portConnectCallback (jack_port_id_t, jack_port_id_t, int, void* arg)
{
if (JackAudioIODevice* device = static_cast<JackAudioIODevice*> (arg))
- device->mainThreadDispatcher.updateActivePorts();
+ if (device->isOpen())
+ device->mainThreadDispatcher.updateActivePorts();
}
static void threadInitCallback (void* /* callbackArgument */)

View File

@@ -0,0 +1,182 @@
{
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
apple-sdk_11,
cmake,
pkg-config,
ninja,
makeWrapper,
libjack2,
alsa-lib,
alsa-tools,
freetype,
jsoncpp,
libusb1,
libX11,
libXrandr,
libXinerama,
libXext,
libXcursor,
libXScrnSaver,
libGL,
libxcb,
vst2-sdk,
xcbutil,
libxkbcommon,
xcbutilkeysyms,
xcb-util-cursor,
gtk3,
webkitgtk_4_1,
python3,
curl,
pcre,
mount,
zenity,
# It is not allowed to distribute binaries with the VST2 SDK plugin without a license
# (the author of Bespoke has such a licence but not Nix). VST3 should work out of the box.
# Read more in https://github.com/NixOS/nixpkgs/issues/145607
enableVST2 ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bespokesynth";
version = "1.3.0";
src = fetchFromGitHub {
owner = "BespokeSynth";
repo = "bespokesynth";
tag = "v${finalAttrs.version}";
hash = "sha256-ad8wdLos3jM0gRMpcfRKeaiUxJsPGqWd/7XeDz87ToQ=";
fetchSubmodules = true;
};
patches = [
# Fix compatibility with pipewire's JACK emulation
# https://github.com/BespokeSynth/BespokeSynth/issues/1405#issuecomment-1721437868
./2001-bespokesynth-fix-pipewire-jack.patch
];
# Linux builds are sandboxed properly, this always returns "localhost" there.
# Darwin builds doesn't have the same amount of sandboxing by default, and the builder's hostname is returned.
# In case this ever gets embedded into VersionInfoBld.cpp, hardcode it to the Linux value
postPatch = ''
substituteInPlace Source/cmake/versiontools.cmake \
--replace-fail 'cmake_host_system_information(RESULT BESPOKE_BUILD_FQDN QUERY FQDN)' 'set(BESPOKE_BUILD_FQDN "localhost")'
'';
cmakeBuildType = "Release";
cmakeFlags = [
(lib.cmakeBool "BESPOKE_SYSTEM_PYBIND11" true)
(lib.cmakeBool "BESPOKE_SYSTEM_JSONCPP" true)
]
++ lib.optionals enableVST2 [
(lib.cmakeFeature "BESPOKE_VST2_SDK_LOCATION" "${vst2-sdk}")
];
strictDeps = true;
nativeBuildInputs = [
python3 # interpreter
makeWrapper
cmake
pkg-config
ninja
];
buildInputs = [
jsoncpp
# library & headers
(python3.withPackages (
ps: with ps; [
pybind11
]
))
]
++ lib.optionals stdenv.hostPlatform.isLinux [
# List obtained from https://github.com/BespokeSynth/BespokeSynth/blob/main/azure-pipelines.yml
libX11
libXrandr
libXinerama
libXext
libXcursor
libXScrnSaver
curl
gtk3
webkitgtk_4_1
freetype
libGL
libusb1
alsa-lib
libjack2
zenity
alsa-tools
libxcb
xcbutil
libxkbcommon
xcbutilkeysyms
xcb-util-cursor
pcre
mount
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
];
postInstall =
if stdenv.hostPlatform.isDarwin then
''
mkdir -p $out/{Applications,bin}
mv Source/BespokeSynth_artefacts/${finalAttrs.cmakeBuildType}/BespokeSynth.app $out/Applications/
# Symlinking confuses the resource finding about the actual location of the binary
# Resources are looked up relative to the executed file's location
makeWrapper $out/{Applications/BespokeSynth.app/Contents/MacOS,bin}/BespokeSynth
''
else
''
# Ensure zenity is available, or it won't be able to open new files.
# Ensure the python used for compilation is the same as the python used at run-time.
# jedi is also required for auto-completion.
# These X11 libs get dlopen'd, they cause visual bugs when unavailable.
wrapProgram $out/bin/BespokeSynth \
--prefix PATH : '${
lib.makeBinPath [
zenity
(python3.withPackages (ps: with ps; [ jedi ]))
]
}'
'';
env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isLinux "-rpath ${
lib.makeLibraryPath [
libX11
libXrandr
libXinerama
libXext
libXcursor
libXScrnSaver
]
}";
dontPatchELF = true; # needed or nix will try to optimize the binary by removing "useless" rpath
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "Software modular synth with controllers support, scripting and VST";
homepage = "https://www.bespokesynth.com/";
license = [ lib.licenses.gpl3Plus ];
maintainers = with lib.maintainers; [
astro
tobiasBora
OPNA2608
PowerUser64
];
mainProgram = "BespokeSynth";
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
jemalloc,
jre,
runCommand,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "besu";
version = "24.1.2";
src = fetchurl {
url = "https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/${finalAttrs.version}/besu-${finalAttrs.version}.tar.gz";
sha256 = "sha256-CC24z0+2dSeqDddX5dJUs7SX9QJ8Iyh/nAp0pqdDvwg=";
};
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ jemalloc ];
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin
cp -r bin $out/
mkdir -p $out/lib
cp -r lib $out/
wrapProgram $out/bin/besu \
--set JAVA_HOME "${jre}" \
--suffix ${
if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"
} : ${lib.makeLibraryPath finalAttrs.buildInputs}
'';
passthru.tests = {
version = testers.testVersion {
package = finalAttrs.finalPackage;
version = "v${finalAttrs.version}";
};
jemalloc =
runCommand "besu-test-jemalloc"
{
nativeBuildInputs = [ finalAttrs.finalPackage ];
meta.platforms = with lib.platforms; linux;
}
''
# Expect to find this string in the output, ignore other failures.
(besu 2>&1 || true) | grep -q "# jemalloc: ${jemalloc.version}"
mkdir $out
'';
};
meta = with lib; {
description = "Enterprise-grade Java-based, Apache 2.0 licensed Ethereum client";
homepage = "https://www.hyperledger.org/projects/besu";
changelog = "https://github.com/hyperledger/besu/blob/${finalAttrs.version}/CHANGELOG.md";
license = licenses.asl20;
sourceProvenance = with sourceTypes; [ binaryBytecode ];
platforms = platforms.all;
maintainers = with maintainers; [ mmahut ];
};
})

View File

@@ -0,0 +1,76 @@
{
buildGoModule,
lib,
fetchFromGitHub,
nix-update-script,
buildNpmPackage,
}:
buildGoModule rec {
pname = "beszel";
version = "0.12.3";
src = fetchFromGitHub {
owner = "henrygd";
repo = "beszel";
tag = "v${version}";
hash = "sha256-rthaufUL0JX3sE2hdrcJ8J73DLK4/2wMR+uOs8GoX2A=";
};
webui = buildNpmPackage {
inherit
pname
version
src
meta
;
npmFlags = [ "--legacy-peer-deps" ];
buildPhase = ''
runHook preBuild
npx lingui extract --overwrite
npx lingui compile
node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r dist/* $out
runHook postInstall
'';
sourceRoot = "${src.name}/beszel/site";
npmDepsHash = "sha256-6J1LwRzwbQyXVBHNgG7k8CQ67JZIDqYreDbgfm6B4w4=";
};
sourceRoot = "${src.name}/beszel";
vendorHash = "sha256-Nd2jDlq+tdGrgxU6ZNgj9awAb+G/yDqY1J15dpMcjtw=";
preBuild = ''
mkdir -p site/dist
cp -r ${webui}/* site/dist
'';
postInstall = ''
mv $out/bin/agent $out/bin/beszel-agent
mv $out/bin/hub $out/bin/beszel-hub
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/henrygd/beszel";
changelog = "https://github.com/henrygd/beszel/releases/tag/v${version}";
description = "Lightweight server monitoring hub with historical data, docker stats, and alerts";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
license = lib.licenses.mit;
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
fetchurl,
unzip,
makeDesktopItem,
nwjs,
wrapGAppsHook3,
gsettings-desktop-schemas,
gtk3,
}:
let
pname = "betaflight-configurator";
desktopItem = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "Betaflight configuration tool";
desktopName = "Betaflight Configurator";
genericName = "Flight controller configuration tool";
};
in
stdenv.mkDerivation rec {
inherit pname;
version = "10.10.0";
src = fetchurl {
url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64-portable.zip";
sha256 = "sha256-UB5Vr5wyCUZbOaQNckJQ1tAXwh8VSLNI1IgTiJzxV08=";
};
# remove large unneeded files
postUnpack = ''
find -name "lib*.so" -delete
'';
nativeBuildInputs = [
wrapGAppsHook3
unzip
];
buildInputs = [
gsettings-desktop-schemas
gtk3
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin \
$out/opt/${pname}
cp -r . $out/opt/${pname}/
install -m 444 -D icon/bf_icon_128.png $out/share/icons/hicolor/128x128/apps/${pname}.png
cp -r ${desktopItem}/share/applications $out/share/
makeWrapper ${nwjs}/bin/nw $out/bin/${pname} --add-flags $out/opt/${pname}
runHook postInstall
'';
meta = with lib; {
description = "Betaflight flight control system configuration tool";
mainProgram = "betaflight-configurator";
longDescription = ''
A crossplatform configuration tool for the Betaflight flight control system.
Various types of aircraft are supported by the tool and by Betaflight, e.g.
quadcopters, hexacopters, octocopters and fixed-wing aircraft.
'';
homepage = "https://github.com/betaflight/betaflight/wiki";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.gpl3;
maintainers = with maintainers; [ wucke13 ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
nodejs,
nix-update-script,
}:
buildNpmPackage rec {
pname = "better-commits";
version = "1.18.0";
src = fetchFromGitHub {
owner = "Everduin94";
repo = "better-commits";
tag = "v${version}";
hash = "sha256-eAxtec1T1kwIMhzKYpy4rkYScjXVaclu3bOUbANz6b8=";
};
npmDepsHash = "sha256-lPJ50DYnANJZ3IowE3kOCyAx9peq7Donh72jk1eQnBs=";
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "CLI for creating better commits following the conventional commits specification";
homepage = "https://github.com/Everduin94/better-commits";
license = licenses.mit;
maintainers = [ maintainers.ilarvne ];
platforms = platforms.unix;
mainProgram = "better-commits";
};
}

View File

@@ -0,0 +1,104 @@
{
lib,
python3Packages,
fetchFromGitHub,
gtk3,
bash,
networkmanager,
bluez,
brightnessctl,
power-profiles-daemon,
gammastep,
pulseaudio,
desktop-file-utils,
wrapGAppsHook3,
gobject-introspection,
upower,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "better-control";
version = "6.12.1";
pyproject = false;
src = fetchFromGitHub {
owner = "better-ecosystem";
repo = "better-control";
tag = "v${version}";
hash = "sha256-Dt+se8eOmF8Nzm+/bnYBSIyX0XHSXV9iCPF82qXhzug=";
};
build-system = with python3Packages; [
setuptools
];
nativeBuildInputs = [
desktop-file-utils
wrapGAppsHook3
gobject-introspection
];
buildInputs = [
bash
gtk3
];
# Check src/utils/dependencies.py
runtimeDeps = [
pulseaudio
networkmanager
bluez
brightnessctl
power-profiles-daemon
gammastep
upower
];
dependencies = with python3Packages; [
pygobject3
dbus-python
psutil
qrcode
requests
setproctitle
pillow
pycairo
];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
dontWrapGApps = true;
makeWrapperArgs = [
"\${gappsWrapperArgs[@]}"
"--prefix PATH : ${lib.makeBinPath runtimeDeps}"
];
postInstall = ''
rm $out/bin/betterctl
chmod +x $out/share/better-control/better_control.py
substituteInPlace $out/bin/* \
--replace-fail "python3 " ""
substituteInPlace $out/share/applications/better-control.desktop \
--replace-fail "/usr/bin/" ""
'';
# Project has no tests
doCheck = false;
postFixup = ''
wrapPythonProgramsIn "$out/share/better-control" "$out $pythonPath"
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Simple control panel for linux based on GTK";
homepage = "https://github.com/better-ecosystem/better-control";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ Rishabh5321 ];
platforms = lib.platforms.linux;
mainProgram = "control"; # Users use both "control" and "better-control" to launch
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
pkg-config,
libpcap,
libnfnetlink,
libnetfilter_queue,
libusb1,
}:
buildGoModule rec {
pname = "bettercap";
version = "2.41.4";
src = fetchFromGitHub {
owner = "bettercap";
repo = "bettercap";
rev = "v${version}";
sha256 = "sha256-y23gNqS5f/MP+wyRMxe40I+9RuZGyZEok17LIc9Z8O4=";
};
vendorHash = "sha256-1kgjMPsj8z2Cl0YWe/1zY0Zuiza0X+ZAIgsMqPhCrMw=";
doCheck = false;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpcap
libusb1
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libnfnetlink
libnetfilter_queue
];
meta = with lib; {
description = "Man in the middle tool";
longDescription = ''
BetterCAP is a powerful, flexible and portable tool created to perform various
types of MITM attacks against a network, manipulate HTTP, HTTPS and TCP traffic
in realtime, sniff for credentials and much more.
'';
homepage = "https://www.bettercap.org/";
license = with licenses; [ gpl3Only ];
mainProgram = "bettercap";
# Broken on darwin for Go toolchain > 1.22, with error:
# 'link: golang.org/x/net/internal/socket: invalid reference to syscall.recvmsg'
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,35 @@
{
appimageTools,
lib,
fetchurl,
}:
let
pname = "betterdiscord-installer";
version = "1.0.0-beta";
src = fetchurl {
url = "https://github.com/BetterDiscord/Installer/releases/download/v${version}/Betterdiscord-Linux.AppImage";
sha256 = "103acb11qmvjmf6g9lgsfm5jyahfwfdqw0x9w6lmv1hzwbs26dsr";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/betterdiscord.desktop -t $out/share/applications
substituteInPlace $out/share/applications/betterdiscord.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "Installer for BetterDiscord";
homepage = "https://betterdiscord.app";
license = licenses.mit;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
mainProgram = "betterdiscord-installer";
};
}

View File

@@ -0,0 +1,50 @@
{
fetchFromGitHub,
lib,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "betterdiscordctl";
version = "2.0.1";
src = fetchFromGitHub {
owner = "bb010g";
repo = "betterdiscordctl";
rev = "v${finalAttrs.version}";
hash = "sha256-bAHO+2urgbL2LXiP0UZpvszX73PYtKbTOeLDyFwOYlw=";
};
postPatch = ''
substituteInPlace betterdiscordctl \
--replace-fail "DISABLE_SELF_UPGRADE=" "DISABLE_SELF_UPGRADE=yes"
'';
installPhase = ''
runHook preInstall
install -Dm 755 -t "$out/bin" -- betterdiscordctl
install -Dm 644 -t "$out/share/doc/betterdiscordctl" -- README.md
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
"$out/bin/betterdiscordctl" --version
runHook postInstallCheck
'';
meta = {
homepage = "https://github.com/bb010g/betterdiscordctl";
description = "Utility for managing BetterDiscord on Linux";
license = lib.licenses.mit;
mainProgram = "betterdiscordctl";
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenvNoCC,
fetchurl,
undmg,
nix-update-script,
versionCheckHook,
writeShellScript,
xcbuild,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "betterdisplay";
version = "4.0.4";
src = fetchurl {
url = "https://github.com/waydabber/BetterDisplay/releases/download/v${finalAttrs.version}/BetterDisplay-v${finalAttrs.version}.dmg";
hash = "sha256-njk1epuekOiBN8Exkxs9J2OHVP4xu4on42F+TPlW75M=";
};
dontPatch = true;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
buildInputs = [ undmg ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
mv BetterDisplay.app $out/Applications
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = writeShellScript "version-check" ''
${xcbuild}/bin/PlistBuddy -c "Print :CFBundleShortVersionString" "$1"
'';
versionCheckProgramArg = [
"${placeholder "out"}/Applications/BetterDisplay.app/Contents/Info.plist"
];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Unlock your displays on your Mac! Flexible HiDPI scaling, XDR/HDR extra brightness, virtual screens, DDC control, extra dimming, PIP/streaming, EDID override and lots more";
homepage = "https://betterdisplay.pro/";
changelog = "https://github.com/waydabber/BetterDisplay/releases/tag/v${finalAttrs.version}";
license = [ lib.licenses.unfree ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [ DimitarNestorov ];
platforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,75 @@
{
fetchFromGitHub,
lib,
makeWrapper,
stdenv,
# Dependencies (@see https://github.com/pavanjadhaw/betterlockscreen/blob/master/shell.nix)
bc,
coreutils,
dbus,
withDunst ? true,
dunst,
i3lock-color,
gawk,
gnugrep,
gnused,
imagemagick,
procps,
xorg,
}:
let
runtimeDeps = [
bc
coreutils
dbus
i3lock-color
gawk
gnugrep
gnused
imagemagick
procps
xorg.xdpyinfo
xorg.xrandr
xorg.xset
]
++ lib.optionals withDunst [ dunst ];
in
stdenv.mkDerivation rec {
pname = "betterlockscreen";
version = "4.4.0";
src = fetchFromGitHub {
owner = "betterlockscreen";
repo = "betterlockscreen";
rev = "v${version}";
sha256 = "sha256-59Ct7XIfZqU3yaW9FO7UV8SSMLdcZMPRc7WJangxFPo=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp betterlockscreen $out/bin/betterlockscreen
wrapProgram "$out/bin/betterlockscreen" \
--prefix PATH : "$out/bin:${lib.makeBinPath runtimeDeps}"
runHook postInstall
'';
meta = with lib; {
description = "Fast and sweet looking lockscreen for linux systems with effects";
homepage = "https://github.com/betterlockscreen/betterlockscreen";
mainProgram = "betterlockscreen";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [
eyjhb
sebtm
];
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
fetchFromSourcehut,
buildGoModule,
}:
buildGoModule rec {
pname = "betula";
version = "1.4.0";
src = fetchFromSourcehut {
owner = "~bouncepaw";
repo = "betula";
rev = "v${version}";
hash = "sha256-f2F0YRhDnKdMqcUvpcRFNAI62gbusfzIUKQSZ65onMU=";
};
vendorHash = "sha256-3PS4fIyHbGGjnbMOy2VIQBXsnIyYDKR/ecl/i5jwSVM=";
env.CGO_ENABLED = 1;
# These tests use internet, so are failing in Nix build.
# See also: https://todo.sr.ht/~bouncepaw/betula/91
checkFlags = "-skip=TestTitles|TestHEntries";
meta = with lib; {
description = "Single-user self-hosted bookmarking software";
mainProgram = "betula";
homepage = "https://betula.mycorrhiza.wiki/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ GoldsteinE ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libX11,
libXft,
libXrandr,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bevelbar";
version = "24.07";
src = fetchurl {
url = "https://www.uninformativ.de/git/bevelbar/archives/bevelbar-v${finalAttrs.version}.tar.gz";
hash = "sha256-PUYgbJCII0JecetoY3dMBUgrtaVhlLKeaJY27JJ78RQ=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libX11
libXft
libXrandr
];
makeFlags = [ "prefix=$(out)" ];
passthru.updateScript = gitUpdater {
url = "https://www.uninformativ.de/git/bevelbar.git/";
rev-prefix = "v";
};
meta = {
homepage = "https://www.uninformativ.de/git/bevelbar/file/README.html";
description = "X11 status bar with beveled borders";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
neeasade
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
fetchurl,
appimageTools,
openal,
}:
let
version = "1.2988.0";
pname = "beyond-all-reason";
src = fetchurl {
url = "https://github.com/beyond-all-reason/BYAR-Chobby/releases/download/v${version}/Beyond-All-Reason-${version}.AppImage";
hash = "sha256-ZJW5BdxxqyrM2TJTO0SBp4BXt3ILyi77EZx73X8hqJE=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraPkgs = pkgs: [ openal ];
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/beyond-all-reason.desktop $out/share/applications/beyond-all-reason.desktop
install -m 444 -D ${appimageContents}/beyond-all-reason.png \
$out/share/icons/hicolor/256x256/apps/beyond-all-reason.png
substituteInPlace $out/share/applications/beyond-all-reason.desktop \
--replace-fail 'Exec=AppRun' 'Exec=beyond-all-reason'
'';
meta = {
homepage = "https://www.beyondallreason.info/";
downloadPage = "https://www.beyondallreason.info/download";
changelog = "https://github.com/beyond-all-reason/BYAR-Chobby/releases/tag/v${version}";
description = "Free Real Time Strategy Game with a grand scale and full physical simulation in a sci-fi setting";
license = lib.licenses.gpl2Plus;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [
kiyotoko
];
};
}

View File

@@ -0,0 +1,114 @@
{
lib,
stdenv,
fetchurl,
dpkg,
buildFHSEnv,
glibc,
glib,
openssl,
tpm2-tss,
gtk3,
gnome-keyring,
polkit,
polkit_gnome,
}:
let
pname = "beyond-identity";
version = "2.97.0-0";
libPath = lib.makeLibraryPath [
glib
glibc
openssl
tpm2-tss
gtk3
gnome-keyring
polkit
polkit_gnome
];
meta = with lib; {
description = "Passwordless MFA identities for workforces, customers, and developers";
homepage = "https://www.beyondidentity.com";
downloadPage = "https://app.byndid.com/downloads";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [
klden
hornwall
];
platforms = [ "x86_64-linux" ];
};
beyond-identity = stdenv.mkDerivation {
inherit pname version meta;
src = fetchurl {
url = "https://packages.beyondidentity.com/public/linux-authenticator/deb/ubuntu/pool/focal/main/b/be/${pname}_${version}/${pname}_${version}_amd64.deb";
hash = "sha512-aOQi0hG7AZ3lIAPCDgGAjqVmNCuqFC62CjI9XPLBpvbxBgr2yi7alP952i31MufzzruzVweoQb8SWgNIHq/zIw==";
};
nativeBuildInputs = [
dpkg
];
unpackPhase = ''
dpkg -x $src .
'';
installPhase = ''
mkdir -p $out/opt/beyond-identity
rm -rf usr/share/doc
cp -ar usr/{bin,share} $out
cp -ar opt/beyond-identity/bin $out/opt/beyond-identity
ln -s $out/opt/beyond-identity/bin/* $out/bin/
'';
postFixup = ''
substituteInPlace \
$out/share/applications/com.beyondidentity.endpoint.BeyondIdentity.desktop \
--replace /usr/bin/ $out/bin/
substituteInPlace \
$out/share/applications/com.beyondidentity.endpoint.webserver.BeyondIdentity.desktop \
--replace /opt/ $out/opt/
substituteInPlace \
$out/opt/beyond-identity/bin/byndid-web \
--replace /opt/ $out/opt/
substituteInPlace \
$out/bin/beyond-identity \
--replace /opt/ $out/opt/ \
--replace /usr/bin/gtk-launch ${gtk3}/bin/gtk-launch
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}" \
--force-rpath \
$out/bin/byndid
'';
};
in
# /usr/bin/pkcheck is hardcoded in binary - we need FHS
buildFHSEnv {
inherit pname version meta;
targetPkgs = pkgs: [
beyond-identity
glib
glibc
openssl
tpm2-tss
gtk3
gnome-keyring
polkit
polkit_gnome
];
extraInstallCommands = ''
ln -s ${beyond-identity}/share $out
'';
runScript = "beyond-identity";
}