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,55 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pandoc,
pkg-config,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "jo";
version = "1.9";
src = fetchFromGitHub {
owner = "jpmens";
repo = "jo";
tag = finalAttrs.version;
sha256 = "sha256-1q4/RpxfoAdtY3m8bBuj7bhD17V+4dYo3Vb8zMbI1YU=";
};
enableParallelBuilding = true;
nativeBuildInputs = [
autoreconfHook
pandoc
pkg-config
];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "-v";
postInstallCheck = ''
$out/bin/jo -V > /dev/null
seq 1 10 | $out/bin/jo -a | grep '^\[1,2,3,4,5,6,7,8,9,10\]$' > /dev/null
'';
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Small utility to create JSON objects";
homepage = "https://github.com/jpmens/jo";
changelog = "https://github.com/jpmens/jo/blob/${finalAttrs.version}/ChangeLog";
mainProgram = "jo";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
xiaoxiangmoe
markus1189
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage {
pname = "job-security";
version = "0-unstable-2024-04-07";
src = fetchFromGitHub {
owner = "yshui";
repo = "job-security";
rev = "9b621cb0be437c709e398d31934b864a09d2a1d5";
hash = "sha256-KPnLVKz10SuVcG0CCFWxWnjhf9gHHPCRZw6AW9/gAmk=";
};
cargoHash = "sha256-g+n0C8tkEuixbRo48cMOYPXcYt+Ur1TP6fFTYlI4fVg=";
meta = {
description = "Job control from anywhere";
homepage = "https://github.com/yshui/job-security";
license = with lib.licenses; [
asl20
mit
mpl20
];
maintainers = with lib.maintainers; [ fgaz ];
mainProgram = "jobs";
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
buildGoModule,
fetchFromGitHub,
gotools,
}:
buildGoModule rec {
pname = "jobber";
version = "1.4.4";
src = fetchFromGitHub {
owner = "dshearer";
repo = "jobber";
rev = "v${version}";
hash = "sha256-mLYyrscvT/VK9ehwkPUq4RbwHb+6Wjvt7ZXk/fI0HT4=";
};
vendorHash = null;
nativeBuildInputs = [ gotools ];
postConfigure = "go generate ./...";
ldflags = [
"-s"
"-w"
"-X github.com/dshearer/jobber/common.jobberVersion=${version}"
"-X github.com/dshearer/jobber/common.etcDirPath=${placeholder "out"}/etc"
];
postInstall = ''
mkdir -p $out/etc $out/libexec
$out/bin/jobbermaster defprefs --libexec $out/libexec > $out/etc/jobber.conf
mv $out/bin/jobber{master,runner} $out/libexec/
'';
meta = {
homepage = "https://dshearer.github.io/jobber";
changelog = "https://github.com/dshearer/jobber/releases/tag/v${version}";
description = "Alternative to cron, with sophisticated status-reporting and error-handling";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ urandom ];
mainProgram = "jobber";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitea,
rustPlatform,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "jocalsend";
version = "1.61803398";
src = fetchFromGitea {
domain = "git.kittencollective.com";
owner = "nebkor";
repo = "joecalsend";
tag = finalAttrs.version;
hash = "sha256-7Gl+G4BN3CgF0c/AEhI1OvRhveqGeFNmGRI3XRf6rAo=";
};
cargoHash = "sha256-prT1wO3ctnTfMHfICFcihB739lN/QXPH3AamIR6dM9A=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
meta = {
homepage = "https://git.kittencollective.com/nebkor/joecalsend";
description = "Rust terminal client for Localsend";
changelog = "https://git.kittencollective.com/nebkor/joecalsend/releases/tag/${finalAttrs.src.tag}";
license = with lib.licenses; [ unfreeRedistributable ];
maintainers = with lib.maintainers; [ Cameo007 ];
mainProgram = "jocalsend";
};
})

View File

@@ -0,0 +1,13 @@
diff -Naru i/joe/tty.c w/joe/tty.c
--- ./joe/tty.c 2018-01-10 17:28:34
+++ ../joe-i-4.6/joe/tty.c 2024-10-02 14:08:22
@@ -6,6 +6,9 @@
* This file is part of JOE (Joe's Own Editor)
*/
#include "types.h"
+#if defined(__APPLE__) && defined(__MACH__)
+#include <util.h>
+#endif
/* Needed for TIOCGWINSZ detection below */
#ifdef GWINSZ_IN_SYS_IOCTL

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "joe";
version = "4.6";
src = fetchurl {
url = "mirror://sourceforge/joe-editor/${pname}-${version}.tar.gz";
sha256 = "1pmr598xxxm9j9dl93kq4dv36zyw0q2dh6d7x07hf134y9hhlnj9";
};
patches = [ ./macos-fix.patch ];
meta = with lib; {
description = "Full featured terminal-based screen editor";
longDescription = ''
JOE (Joe's Own Editor) is a full featured terminal-based screen editor
which is distributed under the GNU General Public License (GPL). JOE has
been around since 1988 and comes standard with many Linux distributions.
JOE is being maintained by its original author Joseph Allen, plus all of
the people who send bug reports, feature suggestions and patches to the
project web site. JOE is hosted by SourceForge.net and its source code is
controlled under Mercurial.
JOE is a blending of MicroPro's venerable microcomputer word processor
WordStar and Richard Stallman's famous LISP based text editor GNU-EMACS
(but it does not use code from either program): most of the basic editing
keys are the same as in WordStar as is the overall feel of the editor. JOE
also has some of the key bindings and many of the powerful features of
EMACS.
JOE is written in C and its only dependency is libc. This makes JOE very
easy to build (just "configure" and "make install"), making it feasible to
include on small systems and recovery disks. The compiled binary is about
300K in x86. Note that JOE can use either the termcap or terminfo terminal
capabilities databases (or a built-in termcap entry for ANSI
terminals). The choice is controlled by a "configure" option. If terminfo
is used, a library is required to access the database (on some systems
this library is ncurses, but JOE does not use curses to control the
terminal - it has its own code for this).
'';
homepage = "https://joe-editor.sourceforge.io";
license = licenses.gpl2Plus;
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitea,
rustPlatform,
meson,
ninja,
pkg-config,
cargo,
rustc,
blueprint-compiler,
wrapGAppsHook4,
desktop-file-utils,
libadwaita,
libshumate,
alsa-lib,
espeak,
sqlite,
glib-networking,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "jogger";
version = "1.2.5";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "baarkerlounger";
repo = "jogger";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-bju9XXMT6HRHG9QViO+FQCYQ+llrC+GP/AlIha0mxkM=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-k4nUtFdwCWa8flSkOEQe7UqorpYPCGrcXHTvVOqoAQI=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustPlatform.bindgenHook
cargo
rustc
blueprint-compiler
wrapGAppsHook4
desktop-file-utils
];
buildInputs = [
libadwaita
libshumate
alsa-lib
espeak
sqlite
glib-networking
];
meta = {
description = "App for Gnome Mobile to Track running and other workouts";
homepage = "https://codeberg.org/baarkerlounger/jogger";
license = with lib.licenses; [
gpl3Plus
cc0
];
mainProgram = "jogger";
maintainers = with lib.maintainers; [ aleksana ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,128 @@
{
lib,
stdenv,
fetchgit,
ant,
jdk11,
git,
xmlstarlet,
stripJavaArchivesHook,
xcbuild,
udev,
xorg,
libgbm,
coreutils,
}:
let
version = "2.4.0";
gluegen-src = fetchgit {
url = "git://jogamp.org/srv/scm/gluegen.git";
rev = "v${version}";
hash = "sha256-qQzq7v2vMFeia6gXaNHS3AbOp9HhDRgISp7P++CKErA=";
fetchSubmodules = true;
};
jogl-src = fetchgit {
url = "git://jogamp.org/srv/scm/jogl.git";
rev = "v${version}";
hash = "sha256-PHDq7uFEQfJ2P0eXPUi0DGFR1ob/n5a68otgzpFnfzQ=";
fetchSubmodules = true;
};
in
stdenv.mkDerivation {
pname = "jogl";
inherit version;
srcs = [
gluegen-src
jogl-src
];
sourceRoot = ".";
unpackCmd = "cp -r $curSrc \${curSrc##*-}";
postPatch = ''
substituteInPlace gluegen/src/java/com/jogamp/common/util/IOUtil.java \
--replace-fail '#!/bin/true' '#!${coreutils}/bin/true'
''
# prevent looking for native libraries in /usr/lib
+ ''
substituteInPlace jogl/make/build-*.xml \
--replace-warn 'dir="''${TARGET_PLATFORM_USRLIBS}"' ""
''
# force way to do dysfunctional "ant -Dsetup.addNativeBroadcom=false" and disable dependency on raspberrypi drivers
# if arm/aarch64 support will be added, this block might be commented out on those platforms
# on x86 compiling with default "setup.addNativeBroadcom=true" leads to unsatisfied import "vc_dispmanx_resource_delete" in libnewt.so
+ ''
xmlstarlet ed --inplace \
--delete '//*[@if="setup.addNativeBroadcom"]' \
jogl/make/build-newt.xml
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
sed -i '/if="use.macos/d' gluegen/make/gluegen-cpptasks-base.xml
rm -r jogl/oculusvr-sdk
'';
nativeBuildInputs = [
ant
jdk11
git
xmlstarlet
stripJavaArchivesHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcbuild
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
udev
xorg.libX11
xorg.libXrandr
xorg.libXcursor
xorg.libXi
xorg.libXt
xorg.libXxf86vm
xorg.libXrender
libgbm
];
env = {
SOURCE_LEVEL = "1.8";
TARGET_LEVEL = "1.8";
TARGET_RT_JAR = "null.jar";
# error: incompatible pointer to integer conversion returning 'GLhandleARB' (aka 'void *') from a function with result type 'jlong' (aka 'long long')
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-int-conversion";
};
buildPhase = ''
runHook preBuild
for f in gluegen jogl; do
pushd $f/make
ant
popd
done
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/java
cp -v $NIX_BUILD_TOP/gluegen/build/gluegen-rt{,-natives-linux-*}.jar $out/share/java/
cp -v $NIX_BUILD_TOP/jogl/build/jar/jogl-all{,-natives-linux-*}.jar $out/share/java/
cp -v $NIX_BUILD_TOP/jogl/build/nativewindow/nativewindow{,-awt,-natives-linux-*,-os-drm,-os-x11}.jar $out/share/java/
runHook postInstall
'';
meta = with lib; {
description = "Java libraries for 3D Graphics, Multimedia and Processing";
homepage = "https://jogamp.org/";
changelog = "https://jogamp.org/deployment/jogamp-current/archive/ChangeLogs/";
license = licenses.bsd3;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,18 @@
diff --git a/src/opencl_generate_dynamic_loader.py b/src/opencl_generate_dynamic_loader.py
index 790705330..2acedbc56 100755
--- a/src/opencl_generate_dynamic_loader.py
+++ b/src/opencl_generate_dynamic_loader.py
@@ -134,12 +134,7 @@ static void load_opencl_dll(void)
/* Names to try to load */
const char * const opencl_names[] = {
- "libOpenCL.so", /* Linux/others, hack via "development" sub-package's symlink */
- "OpenCL", /* _WIN */
- "/System/Library/Frameworks/OpenCL.framework/OpenCL", /* __APPLE__ */
- "opencl.dll", /* __CYGWIN__ */
- "cygOpenCL-1.dll", /* __CYGWIN__ */
- "libOpenCL.so.1" /* Linux/others, no "development" sub-package installed */
+ "@ocl_icd@/lib/libOpenCL.so" /* NixOS */
};
for (i = 0; i < sizeof(opencl_names)/sizeof(opencl_names[0]); i++) {

View File

@@ -0,0 +1,147 @@
{
lib,
stdenv,
fetchFromGitHub,
openssl,
nss,
nspr,
libkrb5,
gmp,
zlib,
libpcap,
re2,
gcc,
python3Packages,
perl,
perlPackages,
withOpenCL ? true,
opencl-headers,
ocl-icd,
# include non-free ClamAV unrar code
enableUnfree ? false,
replaceVars,
makeWrapper,
}:
stdenv.mkDerivation {
pname = "john";
version = "rolling-2404";
src = fetchFromGitHub {
owner = "openwall";
repo = "john";
rev = "f9fedd238b0b1d69181c1fef033b85c787e96e57";
hash = "sha256-XMT5Sbp2XrAnfTHxXyJdw0kA/ZtfOiYrX/flCFLHJ6s=";
};
patches = lib.optionals withOpenCL [
(replaceVars ./opencl.patch {
ocl_icd = ocl-icd;
})
];
postPatch = ''
sed -ri -e '
s!^(#define\s+CFG_[A-Z]+_NAME\s+).*/!\1"'"$out"'/etc/john/!
/^#define\s+JOHN_SYSTEMWIDE/s!/usr!'"$out"'!
' src/params.h
sed -ri -e '/^\.include/ {
s!\$JOHN!'"$out"'/etc/john!
s!^(\.include\s*)<([^./]+\.conf)>!\1"'"$out"'/etc/john/\2"!
}' run/*.conf
'';
preConfigure = ''
cd src
# Makefile.in depends on AS and LD being set to CC, which is set by default in configure.ac.
# This ensures we override the environment variables set in cc-wrapper/setup-hook.sh
export AS=$CC
export LD=$CC
''
+ lib.optionalString withOpenCL ''
python ./opencl_generate_dynamic_loader.py # Update opencl_dynamic_loader.c
'';
configureFlags = [
"--disable-native-tests"
"--with-systemwide"
]
++ lib.optionals (!enableUnfree) [ "--without-unrar" ];
buildInputs = [
openssl
nss
nspr
libkrb5
gmp
zlib
libpcap
re2
]
++ lib.optionals withOpenCL [
opencl-headers
ocl-icd
];
nativeBuildInputs = [
gcc
python3Packages.wrapPython
perl
makeWrapper
];
propagatedBuildInputs =
# For pcap2john.py
(with python3Packages; [
dpkt
scapy
lxml
])
++ (with perlPackages; [
# For pass_gen.pl
DigestMD4
DigestSHA1
GetoptLong
# For 7z2john.pl
CompressRawLzma
# For sha-dump.pl
perlldap
]);
# TODO: Get dependencies for radius2john.pl and lion2john-alt.pl
# gcc -DAC_BUILT -Wall vncpcap2john.o memdbg.o -g -lpcap -fopenmp -o ../run/vncpcap2john
# gcc: error: memdbg.o: No such file or directory
enableParallelBuilding = false;
postInstall = ''
mkdir -p "$out/bin" "$out/etc/john" "$out/share/john" "$out/share/doc/john" "$out/share/john/rules" "$out/share/john/opencl" "$out/${perlPackages.perl.libPrefix}"
find -L ../run -mindepth 1 -maxdepth 1 -type f -executable \
-exec cp -d {} "$out/bin" \;
cp -vt "$out/etc/john" ../run/*.conf
cp -vt "$out/share/john" ../run/*.chr ../run/password.lst
cp -vt "$out/share/john/rules" ../run/rules/*.rule
cp -vt "$out/share/john/opencl" ../run/opencl/*.cl ../run/opencl/*.h
cp -vLrt "$out/share/doc/john" ../doc/*
cp -vt "$out/${perlPackages.perl.libPrefix}" ../run/lib/*
'';
postFixup = ''
wrapPythonPrograms
for i in $out/bin/*.pl; do
wrapProgram "$i" --prefix PERL5LIB : "$PERL5LIB:$out/${perlPackages.perl.libPrefix}"
done
'';
meta = {
description = "John the Ripper password cracker";
license = [
lib.licenses.gpl2Plus
]
++ lib.optionals enableUnfree [ lib.licenses.unfreeRedistributable ];
homepage = "https://github.com/openwall/john/";
maintainers = with lib.maintainers; [
offline
matthewbauer
cherrykitten
];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
qt5,
john,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
}:
stdenv.mkDerivation rec {
pname = "johnny";
version = "2.2";
src = fetchFromGitHub {
owner = "openwall";
repo = "johnny";
rev = "v${version}";
hash = "sha256-fwRvyQbRO63iVt9AHlfl+Cv4NRFQmyVsZUQLxmzGjAY=";
};
buildInputs = [
john
qt5.qtbase
];
nativeBuildInputs = [
makeWrapper
copyDesktopItems
qt5.wrapQtAppsHook
qt5.qmake
];
installPhase = ''
install -D ${pname} $out/bin/${pname}
wrapProgram $out/bin/${pname} \
--prefix PATH : ${lib.makeBinPath [ john ]}
install -D README $out/share/doc/${pname}/README
install -D LICENSE $out/share/licenses/${pname}/LICENSE
install -D resources/icons/${pname}_128.png $out/share/pixmaps/${pname}.png
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "Johnny";
desktopName = "Johnny";
comment = "A GUI for John the Ripper";
icon = pname;
exec = pname;
terminal = false;
categories = [
"Application"
"System"
];
startupNotify = true;
})
];
meta = with lib; {
homepage = "https://openwall.info/wiki/john/johnny";
description = "Open Source GUI frontend for John the Ripper";
mainProgram = "johnny";
license = licenses.bsd2;
maintainers = with maintainers; [ Misaka13514 ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
libpcap,
}:
buildGoModule rec {
pname = "joincap";
version = "0.11.0";
src = fetchFromGitHub {
owner = "assafmo";
repo = "joincap";
tag = "v${version}";
hash = "sha256-HvqtAno26ZSggiXbQpkw5ghxCrmmLb5uDdeSQ2QVeq0=";
};
vendorHash = "sha256-pIu/f7hpSUJG5az7sV9tlXJfIjVT37bTV49kTkR80ek=";
buildInputs = [ libpcap ];
ldflags = [
"-s"
"-w"
];
meta = {
description = "Merge multiple pcap files together, gracefully";
homepage = "https://github.com/assafmo/joincap";
changelog = "https://github.com/assafmo/joincap/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "joincap";
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "joker";
version = "1.5.6";
src = fetchFromGitHub {
rev = "v${version}";
owner = "candid82";
repo = "joker";
sha256 = "sha256-h0JUBGWnL0fWryY6+BUwcl8Liv7Xyw+ZiESjJpyQpCI=";
};
vendorHash = "sha256-yH8QVzliAFZlOvprfdh/ClCWK2/7F96f0yLWvuAhGY8=";
doCheck = false;
preBuild = ''
go generate ./...
'';
subPackages = [ "." ];
meta = with lib; {
homepage = "https://github.com/candid82/joker";
description = "Small Clojure interpreter and linter written in Go";
mainProgram = "joker";
license = licenses.epl10;
maintainers = with maintainers; [ andrestylianos ];
};
}

View File

@@ -0,0 +1,65 @@
{
maven,
lib,
fetchFromGitHub,
jre_minimal,
makeWrapper,
nix-update-script,
}:
maven.buildMavenPackage rec {
pname = "jol";
version = "0.17";
src = fetchFromGitHub {
owner = "OpenJDK";
repo = "jol";
tag = version;
hash = "sha256-ZJFuY2QYB8eUS3y3VRMGGwklCS93HHVkNe/dhyIx0SY=";
};
mvnHash = "sha256-yQfiHlAZZgINGAYVlK5JflWX3d8Axtv1Ke89S7x86G4=";
nativeBuildInputs = [ makeWrapper ];
postPatch = ''
substituteInPlace jol-cli/src/main/java/org/openjdk/jol/Main.java \
--replace-fail 'Usage: jol-cli.jar' 'Usage: jol-cli'
'';
installPhase = ''
runHook preInstall
install -Dm644 jol-cli/target/jol-cli.jar $out/share/jol-cli/jol-cli.jar
makeWrapper ${lib.getExe' jre_minimal "java"} $out/bin/jol-cli \
--add-flags "-jar $out/share/jol-cli/jol-cli.jar"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Java Object Layout (JOL)";
longDescription = ''
JOL (Java Object Layout) is the tiny toolbox to analyze object layout in JVMs.
These tools are using Unsafe, JVMTI, and Serviceability Agent (SA) heavily to decode the actual object layout, footprint, and references.
This makes JOL much more accurate than other tools relying on heap dumps, specification assumptions, etc.
'';
homepage = "https://openjdk.org/projects/code-tools/jol/";
changelog = "https://github.com/openjdk/jol/releases/tag/${version}";
license = with lib.licenses; [
gpl2Plus
classpathException20
];
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode
];
mainProgram = "jol-cli";
maintainers = with lib.maintainers; [
debling
progrm_jarvis
];
inherit (jre_minimal.meta) platforms;
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/config/template.pc b/config/template.pc
index b2d3c73..00eb732 100644
--- a/config/template.pc
+++ b/config/template.pc
@@ -1,6 +1,6 @@
prefix=@CMAKE_INSTALL_PREFIX@
-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=/@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
Name: @PROJECT_NAME@
Description: @PROJECT_DESCRIPTION@

View File

@@ -0,0 +1,71 @@
{
stdenv,
lib,
fetchFromGitHub,
gfortran,
buildType ? "meson",
meson,
ninja,
cmake,
pkg-config,
test-drive,
toml-f,
}:
assert (
builtins.elem buildType [
"meson"
"cmake"
]
);
stdenv.mkDerivation rec {
pname = "jonquil";
version = "0.3.0";
src = fetchFromGitHub {
owner = "toml-f";
repo = "jonquil";
rev = "v${version}";
hash = "sha256-2JCTHA0nyA7xE0IA+LNrEAulHU2eIbNRvFGQ7YSQMRE=";
};
patches = [
# Fix wrong generation of package config include paths
./cmake.patch
];
nativeBuildInputs = [
gfortran
pkg-config
]
++ lib.optionals (buildType == "meson") [
meson
ninja
]
++ lib.optional (buildType == "cmake") cmake;
buildInputs = [
test-drive
];
propagatedBuildInputs = [
toml-f
];
outputs = [
"out"
"dev"
];
meta = with lib; {
description = "JSON parser on top of TOML implementation";
license = with licenses; [
asl20
mit
];
homepage = "https://github.com/toml-f/jonquil";
platforms = platforms.linux;
maintainers = [ maintainers.sheepforce ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
makeWrapper,
}:
let
p = perl.withPackages (
ps: with ps; [
LWP
LWPProtocolHttps
]
);
in
stdenv.mkDerivation {
pname = "joomscan";
version = "unstable-2021-06-08";
src = fetchFromGitHub {
owner = "owasp";
repo = "joomscan";
rev = "79315393509caa39895e553c489667636ac31b85";
sha256 = "Yg91iUhqbKZyPghiX0UZ7S1ql0DZLtPHOk9VEY1ZZOg=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp -r . $out/share/joomscan
makeWrapper ${p}/bin/perl $out/bin/joomscan.pl \
--add-flags $out/share/joomscan/joomscan.pl
runHook postInstall
'';
meta = with lib; {
description = "Joomla Vulnerability Scanner";
homepage = "https://wiki.owasp.org/index.php/Category:OWASP_Joomla_Vulnerability_Scanner_Project";
mainProgram = "joomscan.pl";
maintainers = with maintainers; [ emilytrau ];
license = licenses.gpl3Only;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchzip,
npm-lockfile-fix,
buildNpmPackage,
name,
url,
hash,
npmDepsHash,
patches ? [ ],
}:
buildNpmPackage {
inherit name npmDepsHash patches;
src = fetchzip {
inherit url hash;
postFetch = ''
# Add missing integrity and resolved fields
${lib.getExe npm-lockfile-fix} $out/package-lock.json
'';
};
postPatch = ''
sed -i '/preinstall/d' package.json
'';
npmBuildScript = "dist";
installPhase = ''
runHook preInstall
install -Dm444 -t $out publish/*.jpl
runHook postInstall
'';
}

View File

@@ -0,0 +1,112 @@
{
"@esbuild/aix-ppc64@npm:0.25.4": "c3d5aaf00899940960a27f93a63d9169efc4ff317f10bc3608291678ce71255d657129061dbfa016a0d16fd7b6bfbeb9d37558e9113432f8ff5d04b8b8e54b2f",
"@esbuild/aix-ppc64@npm:0.25.8": "451dc5fd41cf67ccc24b8d1da6f95b1082552b6908f0cb0c78fba3da39a4b6c3669ce37dc3c2c383cc18266ea35c0fcec6696fb24f8a0aaf097b94def035c129",
"@esbuild/android-arm64@npm:0.25.4": "aa5285109d86607c973ee8d20b582cb444bae31457982dbd3b004feaa4776d145d48a6692537defd8477f2bd0bdf06ff8c7e688dd07fe30b5d031c6dd434c580",
"@esbuild/android-arm64@npm:0.25.8": "ef542eda68837bd16cdae4ed99c312405673da95ec3fba1d2f0f102cbd983fdd7357acd1504b5a5ef517b952c9978a0c4baa65211626db6cf862e2bf9ebebe49",
"@esbuild/android-arm@npm:0.25.4": "8c5c306e03044527fb2f4eaaeda255d7f40d6a3d02aa9abd1334d67a9ea1a5ab2ab654df77eb7e17e64947c5893e1ba53fc9d3bbefa15f0692e6b56823c47abc",
"@esbuild/android-arm@npm:0.25.8": "a0a5995ed8ff2c9775e8395d3da0b7d7b9246040db680aedeb8df9ca980891fe322a6b833cf0bc554852de351aa1351b37aff0213113d4d4afd28c638edc74f1",
"@esbuild/android-x64@npm:0.25.4": "aa8665b302b65ca62e15a34e72e43d1ce7a253a354d8684cbe5ea1a04a79d1323416b46c727d6ab73a76a4ec047fb2859b054f8f80fe9ac1d286a4d00ed754e6",
"@esbuild/android-x64@npm:0.25.8": "afb24505bf544e53c71707456a85dc21bcc26106c1863aad85733eb5d5bd2e334cb58a2fe31973b4311cc08802493c8d920f41c91f88884baf4c6700a04182ec",
"@esbuild/darwin-arm64@npm:0.25.4": "81b4d0482813ccff8c783035317d78220a4ec3eee3798e50b804a781a071f5790c7903c2f9216a25f5c167becd4c3d78fcf0a13e454b3973eb7d82b7ce1d4688",
"@esbuild/darwin-arm64@npm:0.25.8": "c5bcf68dce1ba9fa111c2da068c50ade5fd74f724bab93058542619a67554b598ef0c47593f4d5cc382f0ac53507e2bc0ac3111824df9d5776c7cd8fe2c28001",
"@esbuild/darwin-x64@npm:0.25.4": "633d97f18c299c8da3730ae04831895779b5f1271020cc924e06c6a5f0c5aac9f0653d60cca7d6ac23926797368301cd6ce2059b25f432aa2f1f378fcb34530d",
"@esbuild/darwin-x64@npm:0.25.8": "db948746f087aace173b52d08b7085514755cbc5bab7f1e64ff7e075489fb8596c7490038bea9e54337586ba02ca3c9f56365029660e711a380bb30f1dccb41a",
"@esbuild/freebsd-arm64@npm:0.25.4": "4d52cf4e18e1f4ab2fd80c4c4a9ab9c20658c77d832d33603b5d19b3ed4565ad7186b86e30a92b78aa11694d884201d0914dba649d6277737574896a897a2af7",
"@esbuild/freebsd-arm64@npm:0.25.8": "faa5a23e4f2e8d1fae84ea0ae424b3b89e8c425e15427e749d0ca9f5a8ca77c6b237886914ce61495ce1f01cb5430b0e55ea61d21a2dc4930be09dffec56059f",
"@esbuild/freebsd-x64@npm:0.25.4": "af75d6724969c4d831bb09209f4ddb46532516932db98a3e4c5c5dcc7f3cd0fe0930f2875fa901b8bb9c0ecfe0a65313da6127ea9387c63859e5d58cff975e68",
"@esbuild/freebsd-x64@npm:0.25.8": "e5a93cef5e2c6b191f178aa73137d2c44cee60a7a6be8806d630ec82ff1dfc72ccd30297c6b607d2ad715ef20b88068e93abb0fa8e187c8fe2547920eef9b4e7",
"@esbuild/linux-arm64@npm:0.25.4": "72b7e3b8fe3bd27206577f8eceea1e0c289dc01fa2f5b03fe22f4ea27931ca664a9b93b35f9ae424e78552caec76330383fe7dc5afeeaffa0e00645ec143a49b",
"@esbuild/linux-arm64@npm:0.25.8": "deb61aafe7a2cb32d9f43b5030fb070856f45210d2ac8ac9ce527fec4016bb4a58ffea93536834cd386786cd6ec40327e057853b0348b45d7a06e6eeec71a63c",
"@esbuild/linux-arm@npm:0.25.4": "407dcf9e8fc4ebc75689b6257be576047c03285067b5b22db74dd07ae067f8dd9126936dedfeb27934e09d0d700ecb3f8d70876fe61b90d92355f35c2a5d6540",
"@esbuild/linux-arm@npm:0.25.8": "3382c6f8e7b3bb479c5b4a01b0baa78054efdf002241eea1d606c8727b9d2168f0ee1798b5627de6b92285b85904e358c9531a1c0f07ef585845fd7d88696db4",
"@esbuild/linux-ia32@npm:0.25.4": "47b13c9952c893e749380551dfa3580eb562a0394911a9ced68b23c0cafe116614b30ffd6744dc71ec312fab8bc7115f856f078fe29f1253a1dd99d3215a1424",
"@esbuild/linux-ia32@npm:0.25.8": "e32f2fa63c74d6723c876cec9b42c04e6aa5e6d0cd9a7447d0b4b00d7615a484da55ef95b4fcf871492019a007c40defb497ef6075ad94da46b6121828fcf83a",
"@esbuild/linux-loong64@npm:0.25.4": "75222fb808060b3f2507aee40c6ee877a1ed768c593dd8f192e1ea640bddf3b414080407ddaccac6d0cde35750a7f92c434e04af2c142075dc810c5b7a7ce5eb",
"@esbuild/linux-loong64@npm:0.25.8": "a55894549cd7e64c2062863eaf697175a1d6f86def565555614ad335b462afbfebf403ec0f1d83bf8dff145d57c4046815b26c70e98f068a9f99317fc37d71e8",
"@esbuild/linux-mips64el@npm:0.25.4": "3f129931a6973a4fa470ddc46e3e3fa150aca64029951fe7a8d9616f41ddf8422d3744a30b0c5f36a35bff19b32b25c85bf1e5760537b329f18558e289213eea",
"@esbuild/linux-mips64el@npm:0.25.8": "5c1ef406e07fbb766417be11b859baa3e905587c8bf3465f0f6ffd6cfd54b658ceffc616bfbea0340473deaebd430db6aea33468876796bcad83f05bf1910d9d",
"@esbuild/linux-ppc64@npm:0.25.4": "6f84018eda99c3f06d519abbdbdf15700707236b8643ba24150d5168062ba310ee3c972645554b05d4b768438697a9a04014bc884a1beb15bf05bbe1b29e34ca",
"@esbuild/linux-ppc64@npm:0.25.8": "a5f386bd5b18eb3eb7f240b112595182f450382ca93a7d6cad4c57b82e13830aff22250ff02728dd5b8d65f3b9908ef291f223a6e83d78d64f497d3117a567a1",
"@esbuild/linux-riscv64@npm:0.25.4": "c5b674c2f48c5292f594141a4739f9f266ce8a1a2514eaefacc6fac761f1fa6c208981ca4c9e774c383ca33a46cad539b1fa46af6827cf89db721f33c36093c8",
"@esbuild/linux-riscv64@npm:0.25.8": "6b624062871ac3bb93af3b560a97fb489eef06cb12f4716c0c7d54fb31d4047fec570bbc9cc2bc9f98e8a4fbd07db6fa542115c02ec3bb66922e8b1988304cc1",
"@esbuild/linux-s390x@npm:0.25.4": "a54c0972230a2264714371f6545ff0d9b20d349b08e4837e7063378886f88c08ade0ed5b2c7ba744c4679deb2f60e8485ef475f92cdbadca9d34f462a2724cc1",
"@esbuild/linux-s390x@npm:0.25.8": "c13f82778a07b14fa50d52322f4b347bea6540a207e0468b060588922fae2278ae1b18a88bbd1cf3656b5d7eb8a84dcf8a237c91e7e0629fa6e56be41db46055",
"@esbuild/linux-x64@npm:0.25.4": "1ba32d40895c826e6990157a141e23d68fdf00b46d60ef3572a89781f177df75e023d38b130087b167a6e38410c3af0a6bec7b2d3b1af2a37a21c1ed70dcba45",
"@esbuild/linux-x64@npm:0.25.8": "e6483e5c367e7c35899c98bc378e8a37f5617a741297d9b91c59c1d29b9b00f26f9c315a736b41af33f21d9d74a8c648715ce13ac520b3fa7604978a05dedd99",
"@esbuild/netbsd-arm64@npm:0.25.4": "37bc10864f14c60f995e2ef13bb53102d0ce0eab1d32dfe5f48254aafe6d791d7129cbb00c6acf9e32b561db5420c5558b84800cf6958d40d3d55a7e3f456ebb",
"@esbuild/netbsd-arm64@npm:0.25.8": "02afba2e5fbf8e8cc4c375edfce673b38015213744f1df05a74ab9de99f5860e50dc26af97b4f0b4f804c461ab45cfa773603ce0e1b0528bd93e7a979eca7682",
"@esbuild/netbsd-x64@npm:0.25.4": "6875cc83961e613dd28f1c1d5c3b7404dc7cd4b54071596712c56574b1a24517424483c7c363c0aefa8259cf2d621e080b8270c0c242010ad04ce367aa87e897",
"@esbuild/netbsd-x64@npm:0.25.8": "76c43cc94f9b287a6a0d277d51f17e650d168e26008741e86035f2e054b8216d61855feddc2c0b48f989b46c58913168148a30b30fff5b87a1bc08fd78cbd0e7",
"@esbuild/openbsd-arm64@npm:0.25.4": "a7981586bbfea74746aa87113089020c73677209b71fadab43e6693c141b9415c342df01694e70aa607a1e80e9e37ccf4682dc2f095cae1ffb60c740e63e7d32",
"@esbuild/openbsd-arm64@npm:0.25.8": "9c0fbf35b6cefcc46c1c545520c50c65e89d620c65c97a55d47f1440e908cbbe6535073cb78ae69c1e2ba76621f09f3ab0f4bf9d5567660b8726c198a0ebdb0f",
"@esbuild/openbsd-x64@npm:0.25.4": "7b1bf4a5032e32ed3ce33bf9373964bdf29e49b0e16179e179d7c7dd0a36dbc6ee98ba67e0ef637ed7823b3ac094e21ccde848a066deb091bacc6ea4726a2ede",
"@esbuild/openbsd-x64@npm:0.25.8": "cd45098a84bcc86d4b1a809cf6e5f9548aa69cdff3a0f63a9bb039d05fdfd0daa2e166e1e30b8fbb71ede895dfc9c371e8368e3d51e7bf0484083f9bb112945a",
"@esbuild/openharmony-arm64@npm:0.25.8": "769c3e589d62648c67cd36306aaee683429e42e7d02608a52929f245c3a42d8036156fe90d59aff7695c2e75712be89ae4d4f06f4249f15a06bdc091ff42908d",
"@esbuild/sunos-x64@npm:0.25.4": "e1807f6dbd3bdf2f1ff9dc404fe0b667dea3bb03825344728de264c4f15323e99e3f1d8125b5c39e2aae94d2c1cad344e3b8a77b5e8c8e0004f09aa12daa82d9",
"@esbuild/sunos-x64@npm:0.25.8": "8b3c79794775dce54d8d2c2c87cf876e8708ba2d7ca0ccda41d96c9bf3193237909f148195a20b7fa876c8e07def6db22510948a795156beeace160e9830ab62",
"@esbuild/win32-arm64@npm:0.25.4": "0422de25c136f407bc223e1a9a65a6f528e64201a1b06b7ddcf3190045914c6d68f550a8190d18e58c4e22231acc4c7982d45bd5ceab6a739e2c539d135376fe",
"@esbuild/win32-arm64@npm:0.25.8": "80f13cf66b45a32892f9b433689897362b69042173bc1e47ff333d8dd9df746be27bee031197653ee4e034a1563f61ae34efc44c61160a104dfda6500f6b4936",
"@esbuild/win32-ia32@npm:0.25.4": "5a8738ba94c72bc07bd17952cb5ba7f7f13593687cfe57792d36fcd9809082ac95ceb54b7739da68044de01f6d5d6826a2587ea2bce48b0de1c70f8de9b5257e",
"@esbuild/win32-ia32@npm:0.25.8": "e4f0595306b2acbf19b62305c7acf97aa18954acf04f194c3cfd7a5782fab145ec6a551eaf657c3f0d2774cf19bc1fcb7ba76fb10cac32a4c2f48825c955690e",
"@esbuild/win32-x64@npm:0.25.4": "0bc72a7dc50b20d2cb7cd38a0d85ab3ff0c6467ba7d817a74da8c671703f97c7c7f7a7375d0069c3f0a76571dc04a1072852e711131cf4d1a62a70e7a38449db",
"@esbuild/win32-x64@npm:0.25.8": "4bf57733c5c4c1409cfceaf19bf5b8ce3c9b9a29705bc8a24fc72652846afd0bd478b14a17db326ae27896574ee346ffb96b2fa043f0716d1a7f30b89f8b3855",
"@img/sharp-darwin-arm64@npm:0.34.2": "891e401a14429d293c1cdd1a9dd47b81f3fafd1b14a57f884307727662af1541dcd802a31488c394113a4ab25ebcbab1246c5ab3c90beba42f7e8afaf56f073e",
"@img/sharp-darwin-x64@npm:0.34.2": "8d5e11f3430fa61966cb600cd23e2217f1666d481bbf754bdd731e60d4a6c34c78ff0169f7ec3463252d6542b0a3bafc0686473650b0e6b8a45fddbc49a8b52a",
"@img/sharp-libvips-darwin-arm64@npm:1.1.0": "f6bcbe44fa9bc0c4c87af8c655c7ecdc704b684da1169841921ff7c61692167ee3ab6a4a3a8131f206f0aa7245987be1c07a483111eadd3a684b1547ca2acf02",
"@img/sharp-libvips-darwin-x64@npm:1.1.0": "af6cd4ca1ccc96dcd5cb20ac45941180117baad387331a699a05e588fa843b85d327651356940d9e3e2c1fe17f0ce183043bebf882086d3cb0785bb4bc8bca05",
"@img/sharp-libvips-linux-arm64@npm:1.1.0": "1d62f454f599580d64ecf72da24a08cb9347f1319e31678594f432e71762053c60c7bca5d70be720285b0754d8ed842efb160bef02abe36f5f57d735db0c012b",
"@img/sharp-libvips-linux-arm@npm:1.1.0": "5028a1ad8e247dc1624baaa084e981f2f152c7ee5f567ee253720b4553d06a969bd6285f1795b374532f99e63b44b4d39494cc3d5dd8f438dab67d4c018f3520",
"@img/sharp-libvips-linux-ppc64@npm:1.1.0": "d7c39d636083be25c71966e992803d652f5260c8fa0ece49348705c739042851c83057ec1f2d1cad8419afd3132311a6a0fcade343e69c9fbe8cbd8a12a54056",
"@img/sharp-libvips-linux-s390x@npm:1.1.0": "612a7a967192a2bb31d757305a0abac4bdd17f4e41fed4fccee673961fd3743d1f435e9869efe324fa726d39286bcb4bfc9d5b7ceaebb2700483a3d6e2be0eb5",
"@img/sharp-libvips-linux-x64@npm:1.1.0": "73cea31f06110740998a44cb27387d59ab5878fdb4080213a46bf312fee1e8a3b69b8d97a78611fe951fc113d7aa732d0a7d8acadf6bc77322e73b6d5228f5f2",
"@img/sharp-libvips-linuxmusl-arm64@npm:1.1.0": "21d8124bccdc98817fc69022826a18a2630fbc1a3b16bfaf1d7f7c3df95d834cd75ef79e54c2edd0be44481d26e0f98ebcadc7b5e30bd73bf9afa66224cc4f8c",
"@img/sharp-libvips-linuxmusl-x64@npm:1.1.0": "6671bcdb165a7958b0478c64a5acd7eb279ebea446b91e938888a1d6e2e7c58699c55bf4a856047847e6cc56a6cdc60c9a13e2a002f081c923331585a0db2c73",
"@img/sharp-linux-arm64@npm:0.34.2": "4e314f4ea4182c6b67d03eaa8600afd78fa298f17e6f71e7d78fc3e2b91d65c3eca0474979cc9ab48eea7573d1150609326955a2b4ed168cbcfb881ca8632bb3",
"@img/sharp-linux-arm@npm:0.34.2": "3ec11f1c8312d4313623f20a09f60e53c07770c64dac50264f9da2e60688d992abb8a55ba4c665c88204db611cecf6e16d6397e57aac92390bddc2d7ee6a9ac2",
"@img/sharp-linux-s390x@npm:0.34.2": "1fc3ae6eeb2af800567d26582ae97465ce5bf3aee4b4125f3b11899c8aec9b6b9e538bfc1176c257788c20e67d6f57cb1e67e9fe6c96c900d2b43127ef6a3f45",
"@img/sharp-linux-x64@npm:0.34.2": "8bad1ee5e9a23520da830090e29e2c8fc62c6dcf9255e490cfb664483423126b6a5417b1beb0e5433f678bd91996ebbc925c6a5f2cf477966ca4a5ebeee3fdf5",
"@img/sharp-linuxmusl-arm64@npm:0.34.2": "f4189234d072002934a77ea9131514fa4922c3d6acdec9768e9ca88cb088d67f1001a07fe19a920abcdbd7888b0a408128ec5561849829f8c99c4814dc04315a",
"@img/sharp-linuxmusl-x64@npm:0.34.2": "884532e80b772891d9452a1e6ad070e4668cd4aceb91935b7352d96f0813f1a6a3fafa3550e63f6f93dbcfdaafe8e8dcee7d6df6e12ebe3b66ca69d947ef0572",
"@img/sharp-wasm32@npm:0.34.2": "ca383f6c9a8d7afc00c446b175cbc8b7827d5e02c602aeb6e889f641e3eac4b3969bbed62be8c5e595f4774b378f39d67b8f3558b1ce4ff361298e8fe3efd5ec",
"@img/sharp-win32-arm64@npm:0.34.2": "b7ce72e2861be11dd9ba8a0f00da57d97d4c93e88abf5f276dee516bde07527931908913cc576acc77c1f3cc61567e557cb927afcc88c5abee5d255f70f124a3",
"@img/sharp-win32-ia32@npm:0.34.2": "edf6719745e473a4cd13745cd3543c885dc076bee38b8f8b7ee42967670e6403d54d060c22288c3118c3872acdbfa27042df6b941e62d61e81294ed309828c77",
"@img/sharp-win32-x64@npm:0.34.2": "bb153458a2b1b4d794e1267b53626d7ec9080fddf38df2321b8e9d71da0eeea4669df7d88365e22c51f445595e5f281d7986dd5678cf8c331ad724f0dc29d06c",
"@parcel/watcher-android-arm64@npm:2.5.1": "e9c94ede3bd5c5d999d117d22ac8032a17f8ebc72db3eff04ccb2b4e6718db19f24bf29a66a610e03f4ee95e2cd7b2d30c15b1845eb897b971fec75dbdd76141",
"@parcel/watcher-darwin-arm64@npm:2.5.1": "0cab55a55c128ac5742388fc8dbfeb9877018509943801ce8a52b57bb6dca24189d025d38684b1e482cb7816368a52c6434dfe45d3997e2fd2509276f48774ea",
"@parcel/watcher-darwin-x64@npm:2.5.1": "bf07b8ca9a435fb885fb0ca6565204d2f2098d7f632faf26a6478bb39f538c73b50afca17c193dc189a80a864d85e40f924ec7f21a0e7ad7d0de6f97f7154134",
"@parcel/watcher-freebsd-x64@npm:2.5.1": "9f62b9da08e98bffb7cf91b557af209586e1d7dd654c56c5a58fc4b0bb61a9bb318116ed0048416d3341d3434b1fb3089bf6cfbfcd08e61333917bc59e691c1d",
"@parcel/watcher-linux-arm-glibc@npm:2.5.1": "07a55a0050e913c9781d009a05b3a0a49c77c2679ae9f98b2374a7e17c5401e2076a776c7bec88de58c71fef040c89aa97176dfa28a03abf8754e18e8d1109b4",
"@parcel/watcher-linux-arm-musl@npm:2.5.1": "f9cab0efa652276fb4bcb58845c9606f7aead1ec81f7c4ce2d237eec754bbd3101682c735b6a371dccf93f16fcfe0ea1beef5d43eb39e4505df7f29b73ea0004",
"@parcel/watcher-linux-arm64-glibc@npm:2.5.1": "ce22f303187aa03fa9d1f9609d2cd56cce6b62f0a60f14a65449adc25b7072d06118d956eb7ebb548210cf2d120cf5e987abe34e6515a5bfbd35b15643f40142",
"@parcel/watcher-linux-arm64-musl@npm:2.5.1": "7a0b32b7b784fe3e594452b6642adc3bb4ad78eae526f5e4c7cf061f428eef2e05e827334806cd230bc873903abb1f70886716a0353e653b3b784f09d2237956",
"@parcel/watcher-linux-x64-glibc@npm:2.5.1": "a6241bb57c409ab56ef944e8d64e057817f41a9335047d1e252aab4e4b10f64d8bc2620ae5c761b71551f3c4b494edd687a08c274a46ca2eb84ad34f6f4de9c0",
"@parcel/watcher-linux-x64-musl@npm:2.5.1": "a68cfcd10a50906ab228d7b906eced68faf6a42a29da5506d24d0dd91b9593a61605b91749d9b1e3ed9f257b845f48ba3df62572e40b4ff1f724d879865b225a",
"@parcel/watcher-win32-arm64@npm:2.5.1": "0f467a731cf9403b8bc7d35418d991596cf5e7898029796b4c769bcbb38cd07ae6ec05ef0f19298e5f11e73ec5198bc474d79b056bdfbaea513525725103d7dd",
"@parcel/watcher-win32-ia32@npm:2.5.1": "9ab5f3e9849a6077c8c2aba7bdf9030dea38f0ab9180792ecd30094520cddf16f3b68006f666845b86c5ef0e05c648364475c9ba151e0269561891ca3e276667",
"@parcel/watcher-win32-x64@npm:2.5.1": "e588d87d5b892484d252ac8e1ec3f4bf7a664d91f0d03dd93764be8db2c35f81879275908dcbec42b0e43bc99c7afdfd29fe687ec022bb2c8c4bc7edd29eaa15",
"@rollup/rollup-android-arm-eabi@npm:4.2.0": "3d7a9f1608daa7f3c092512b7b8ecf3b86788b66f5e60f5190c8e08b2cecd684f884dfda54dfaf94fd3d6e59bab548675ae3b1732fbd62ab5875aeb4c4ce9147",
"@rollup/rollup-android-arm64@npm:4.2.0": "d918632813eea005fc502c39dba795eb318544821e69a0fe4e0b37cb7a8ae71d55b1dcf3a6a342a0d8fedc309c2b3d2ca5868db0af211ae4bc7e15620aac89e2",
"@rollup/rollup-darwin-arm64@npm:4.2.0": "8e8c94c0b852f4fcbf7aaa673d3a5822619654080629137baedad02423b882b11b4b1aa96b22c1a3eb9cff45dc0db0c316378dcaf79104a2ed7273174617cd2e",
"@rollup/rollup-darwin-x64@npm:4.2.0": "dac71cc39b9629814466ce81c346a0ba2b9f05d0944be625acde9c22e23bc4634f80cdb95030641d39e8ebf2e9194d50070d077c4a7b3cd5b5726f1a7f5e78e5",
"@rollup/rollup-linux-arm-gnueabihf@npm:4.2.0": "05be8070bc2f45865e8471206d922150116aae10b0aa24d226d09af3cb571722194df83cb1380576d2583a0f5334edbe05bb0f8f5dbc6c07172982b7c83ad465",
"@rollup/rollup-linux-arm64-gnu@npm:4.2.0": "d16bc317c7adb1b9faebc700dafc6d5d11a1e969dcd149053529635946a9c39b88f910cf62bcbcfcaedce216b2938d23b6983257527d1b1595a7e9a78336e37c",
"@rollup/rollup-linux-arm64-musl@npm:4.2.0": "81f30ba83d9568e8f19c52121702f90423d5cabbfd4267a977a86c67fc38381bcb284f05ccc1d4e27769322b0575ce3263385b32d262cb918930087c35dcdb44",
"@rollup/rollup-linux-x64-gnu@npm:4.2.0": "e3be010ac1fa035591e49657681b265be5c4bd0ee588cbc6d894a4e0d283e1f9914d42817d7bf573b61bd8bd35030eed409cd8337f5e9e2be5d7573bf9d47396",
"@rollup/rollup-linux-x64-musl@npm:4.2.0": "d9b156b8beecb52fce7afb8185cfaabbac4d8ae3fe33acd123606dfe4d209cfc504a9885b49325609fcdcb844bf2427f6a934900b440c93e5b3e31636a1d99f4",
"@rollup/rollup-win32-arm64-msvc@npm:4.2.0": "ff71a301051b237a32e14cb2b18117c72c5ab4524120184500e098fea028385806567fa55e4879c19f80d747774e3b8d913e0b4560abc8fe4881b392fda6ed79",
"@rollup/rollup-win32-ia32-msvc@npm:4.2.0": "dd65d454384b6020b87f5f943121dd9d02e5bfbae2ec124a23f0a2034df02549c0ae4fb27558efda6668bab94b121c5463c4845431f2c1c9416a719176e1dd82",
"@rollup/rollup-win32-x64-msvc@npm:4.2.0": "13cba2a14f7864986f3331c327a137ad95cf366411c0b6d3f66593bb6ea04d0058e12bd0a09fde72bbfb8660a554f0b66d90754e21add3c99d899e2bd7dfe1d1",
"dmg-license@npm:1.0.11": "36c0a7b030801b91216affa9b2bb00caa345b2327f298accb2263a80a0320ca305f90b99da68007d187c830c543410d58a0a2bbc229e8d169b0e1d1652ff42aa",
"iconv-corefoundation@npm:1.1.7": "0189733ef51a9f481379202cb1919f2677efc44aa014ba662a6fd99e47993e350eab0ff724ed18cda8011c9b78c4702b2d374f732955f1def3fd2a14a29d25c0",
"lightningcss-darwin-arm64@npm:1.27.0": "c27ba2fc3014cf2a5133ff6dd822ec80545223fd8878fc61a8b20b523c5b608fb2efab7ee2c2af4503a0c597691a0f162355e3fc017417779f7d7a878161f679",
"lightningcss-darwin-x64@npm:1.27.0": "8bbf7233a9cb347dde7a68d4322dfebafaa9d410f749cd55d2306988a095b915d6e272cc5a0bc5bb97c9680d6b7e31e6c8fa188449e34fce85889e0a245a4bfa",
"lightningcss-freebsd-x64@npm:1.27.0": "eec3c171d92838720707ccd894af1f503f3be7fae679b735f4a54070f8c8b5bc4cea4c119b578994a9c9a70ce138445a807d0af8ad37e54959bb4998753dbd17",
"lightningcss-linux-arm-gnueabihf@npm:1.27.0": "ade725375521f2689f8b372c1d9cae71581eb66f35df6edcf39ed0869f6662c77fe2a91b5392c0a516f00fd60725ce03ad0f9d47574db8d74a841f0906b8090f",
"lightningcss-linux-arm64-gnu@npm:1.27.0": "96eadcb0863534f5951e37916b64364fda21592a32d93252503ac8839f0d00eeea7d7bdd8bd4b686b8108550c23e32a8a1bb3738e63c1a7b01406c349da0676c",
"lightningcss-linux-arm64-musl@npm:1.27.0": "f0426dffc5c1943781673177f3340e85a7de2a193244cb877d33e7ec262c019bb7b862b33ffeb14b10494306f7c48885ee93068e88b9260fff2668e98a97a4ab",
"lightningcss-linux-x64-gnu@npm:1.27.0": "bb1b5713ddc9d8d711b527bcce47ce3e7fd91f2058c317ad5df09cded4142a85362ee71c353dd3b332497fc32a431a22f7762ce01464ff008b2a7cf2607d3dd3",
"lightningcss-linux-x64-musl@npm:1.27.0": "ec9b11bb0d70b929335f735486f8dd8fa6fc22eb95b71545b735b480b9e2b5287a24976735c2c5f4c9c50af07fb5cfdc02b65eceb6ec10256e7c9c637dedee9a",
"lightningcss-win32-arm64-msvc@npm:1.27.0": "1814c0d0464c21e808a2909ebbee7e12c42fd81ecd480e7c4e31769c555f238c720087af4383fff14862764f52bf4250cd566c6c45c3d6633bee126ef3355bc3",
"lightningcss-win32-x64-msvc@npm:1.27.0": "be733309737e4c4ed3dff33ec9e80bbc2d269d07bfa3742dd30d9055adfdc2e22be4d484475a7ea7cb7940c17f001cdf64856e157ef9b7c1d2c9342041e9eae4",
"systeminformation@npm:5.21.15": "349877eb556ef2de51d4986f30ff3a2fad89eba356cf4d14ccad290599b2e565959952c95e64488932214572dd206c54792ceb8e24bd967409a8fee40b9882f3"
}

View File

@@ -0,0 +1,242 @@
{
lib,
stdenv,
nodejs,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
fetchFromGitHub,
yarn-berry_4,
python3,
pkg-config,
pango,
cairo,
pixman,
libsecret,
electron_36,
xcbuild,
buildPackages,
callPackage,
runCommand,
libGL,
}:
let
electron = electron_36;
yarn-berry = yarn-berry_4;
releaseData = lib.importJSON ./release-data.json;
buildPlugin = import ./buildPlugin.nix;
getPluginPatch =
src: id:
runCommand "${id}.diff" { } ''
patch="${src}/packages/default-plugins/plugin-patches/${id}.diff"
if [ -f "$patch" ]; then
cp "$patch" "$out"
else
# create an empty patch file if it doesn't exist can't check this from Nix code without IFD
touch "$out"
fi
'';
getDefaultPlugins = map (callPackage buildPlugin);
in
stdenv.mkDerivation (finalAttrs: {
pname = "joplin-desktop";
inherit (releaseData) version;
passthru.updateScript = ./update.py;
src = fetchFromGitHub {
owner = "laurent22";
repo = "joplin";
tag = "v${finalAttrs.version}";
postFetch = ''
# there's a file with a weird name that causes a hash mismatch on darwin
rm $out/packages/app-cli/tests/support/photo*
'';
inherit (releaseData) hash;
};
missingHashes = ./missing-hashes.json;
offlineCache = yarn-berry.fetchYarnBerryDeps {
inherit (finalAttrs) src missingHashes postPatch;
hash = releaseData.deps_hash;
};
# allows overriding to disable building the plugins
defaultPlugins = getDefaultPlugins (
lib.mapAttrsToList (
id: plugin:
plugin
// {
patches = [ (getPluginPatch finalAttrs.src id) ];
}
) releaseData.plugins
);
buildInputs = [
libGL
];
nativeBuildInputs = [
nodejs
yarn-berry.yarn-berry-offline
yarn-berry.yarnBerryConfigHook
(python3.withPackages (ps: with ps; [ distutils ]))
pkg-config
pango
cairo
pixman
libsecret
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcbuild
buildPackages.cctools
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
];
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
# Disable scripts for now, so that yarnBerryConfigHook does not try to build anything
# before we can patchShebangs additional paths (see buildPhase).
# https://github.com/NixOS/nixpkgs/blob/3cd051861c41df675cee20153bfd7befee120a98/pkgs/by-name/ya/yarn-berry/fetcher/yarn-berry-config-hook.sh#L83
YARN_ENABLE_SCRIPTS = 0;
};
postPatch = ''
# Don't automatically build everything
sed -i '/postinstall/d' package.json
# Don't install onenote-converter subpackage deps
sed -i '/onenote-converter/d' packages/{lib,app-desktop}/package.json
# Don't build the default plugins, would require networking. We build them separately.
sed -i "/'buildDefaultPlugins',/d" packages/app-desktop/gulpfile.ts
'';
buildPhase = ''
runHook preBuild
unset YARN_ENABLE_SCRIPTS
for node_modules in packages/*/node_modules; do
patchShebangs $node_modules
done
yarn config set enableInlineBuilds true
echo "installing yarn dependencies..."
yarn workspaces focus \
root \
@joplin/app-desktop
echo "building workspaces..."
yarn workspaces foreach -vi \
--topological-dev \
--recursive \
--from @joplin/app-desktop \
run build
yarn workspaces foreach -vi \
--parallel \
--recursive \
--from @joplin/app-desktop \
run tsc
# electronDist needs to be modifiable on Darwin
cp -r ${electron.dist} electronDist
chmod -R u+w electronDist
electronDist="$PWD/electronDist"
echo "bundling desktop application..."
cd packages/app-desktop
# copy over defaultPlugins
${lib.concatMapStringsSep "\n" (
plugin: "install -Dt ./build/defaultPlugins ${plugin}/*.jpl"
) finalAttrs.defaultPlugins}
# file is expected to be present for Linux build
mkdir dist && touch dist/AppImage
yarn gulp before-dist
yarn run electronRebuild
yarn run electron-builder \
--dir \
-c.electronDist="$electronDist" \
-c.electronVersion=${electron.version} \
-c.mac.identity=null
runHook postBuild
'';
installPhase = ''
runHook preInstall
${lib.optionalString stdenv.hostPlatform.isLinux ''
outdir="$out/share/joplin-desktop"
mkdir -p "$outdir"
cp -r dist/*unpacked/* "$outdir"
for file in "$src/Assets/LinuxIcons"/*.png; do
resolution=$(basename "$file" .png)
install -Dm644 "$file" "$out/share/icons/hicolor/$resolution/apps/joplin.png"
done
makeWrapper "$outdir"/joplin $out/bin/joplin-desktop \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
--add-flags "--no-sandbox" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-wayland-ime --ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \
--inherit-argv0
''}
${lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
cp -r dist/mac*/Joplin.app $out/Applications
makeWrapper $out/Applications/Joplin.app/Contents/MacOS/Joplin $out/bin/joplin-desktop
''}
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "joplin";
desktopName = "Joplin";
exec = "joplin-desktop %U";
icon = "joplin";
comment = "Joplin for Desktop";
categories = [ "Office" ];
startupWMClass = "@joplin/app-desktop";
mimeTypes = [ "x-scheme-handler/joplin" ];
})
];
meta = with lib; {
description = "Open source note taking and to-do application with synchronisation capabilities";
mainProgram = "joplin-desktop";
longDescription = ''
Joplin is a free, open source note taking and to-do application, which can
handle a large number of notes organised into notebooks. The notes are
searchable, can be copied, tagged and modified either from the
applications directly or from your own text editor. The notes are in
Markdown format.
'';
homepage = "https://joplinapp.org";
license = licenses.agpl3Plus;
maintainers = with maintainers; [
fugi
];
platforms = electron.meta.platforms ++ lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,19 @@
{
"version": "3.4.12",
"hash": "sha256-p9MY7E0qa7LcXBpGs/DmX2A2jXQoOPYiRo/nEzkkQd0=",
"plugins": {
"io.github.jackgruber.backup": {
"name": "joplin-plugin-backup",
"url": "https://github.com/JackGruber/joplin-plugin-backup/archive/abb58175e2d2bf34899f1b32cb74137e5c788bf9.tar.gz",
"hash": "sha256-3J7TP3UClLDH402UqppQMsc1WmFjYIpIQ4uwGlTsyBs=",
"npmDepsHash": "sha256-Grn4KQck6o+k8fj6qPxmx7S+4PTWvY5N4pE7Bj+47ps="
},
"io.github.personalizedrefrigerator.js-draw": {
"name": "joplin-plugin-freehand-drawing",
"url": "https://github.com/personalizedrefrigerator/joplin-plugin-freehand-drawing/archive/63b6d3f185b5b3664632e498df7c7ad7824038d0.tar.gz",
"hash": "sha256-4sl+ktdMQ8PSELAeWMv9Ezgwrx5YDcC/7ou2ZSF2OyQ=",
"npmDepsHash": "sha256-qwhVFSDafTnKihcwZtLK5fS/Nc15e+ezAso47T1LGec="
}
},
"deps_hash": "sha256-7sZX39OtNNPq5RE7+Oj58QqHhcrTY8FOdncKp3b40jQ="
}

View File

@@ -0,0 +1,134 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p 'python3.withPackages(ps: [ps.requests ps.plumbum])' nix-prefetch nix-prefetch-git yarn-berry_4 yarn-berry_4.yarn-berry-fetcher prefetch-npm-deps
import json
import requests
import tempfile
import shutil
from pathlib import Path
from plumbum.cmd import nix_prefetch, nix_build, yarn, chmod, yarn_berry_fetcher, prefetch_npm_deps, diff
HERE = Path(__file__).parent
def write_release(release):
with HERE.joinpath("release-data.json").open("w") as fd:
json.dump(release, fd, indent=2)
fd.write("\n")
def dict_to_argstr(d):
args = "{ "
for key, value in d.items():
args += f'"{key}" = "{value}"; '
args += "}"
return args
package = HERE.joinpath("package.nix")
print("fetching latest release...")
latest = requests.get(
"https://api.github.com/repos/laurent22/joplin/releases/latest"
).json()
tag = latest["tag_name"]
version = tag[1:]
release = {
"version": version,
}
print(version)
print("prefetching source...")
release["hash"] = nix_prefetch[
"--option",
"extra-experimental-features",
"flakes",
"--tag",
f"v{version}",
"--rev",
"--expr",
"null",
package
]().strip()
print(release["hash"])
# use new version and hash
write_release(release)
src_dir = nix_build[
"--no-out-link",
"-E",
f"((import <nixpkgs> {{}}).callPackage {package} {{}}).src"
]().strip()
print(src_dir)
print("prefetching default plugins...")
default_plugins_dir = Path(src_dir).joinpath("packages/default-plugins")
with default_plugins_dir.joinpath("pluginRepositories.json").open() as fd:
plugin_repositories = json.load(fd)
release["plugins"] = dict()
for key, value in plugin_repositories.items():
print(key)
plugin = {
"name": "",
"url": "",
"hash": "",
"npmDepsHash": "",
}
plugin["name"] = value["cloneUrl"].split("/")[-1].removesuffix(".git")
plugin["url"] = f"{value["cloneUrl"].removesuffix('.git')}/archive/{value["commit"]}.tar.gz"
plugin["hash"] = nix_prefetch.with_cwd(HERE)[
"--option",
"extra-experimental-features",
"flakes",
f"((import <nixpkgs> {{}}).callPackage ./buildPlugin.nix {dict_to_argstr(plugin)}).src"
]().strip()
plugin_src = nix_build.with_cwd(HERE)[
"--no-out-link",
"-E",
f"((import <nixpkgs> {{}}).callPackage ./buildPlugin.nix {dict_to_argstr(plugin)}).src"
]().strip()
plugin["npmDepsHash"] = prefetch_npm_deps(Path(plugin_src).joinpath("package-lock.json")).strip()
release["plugins"][key] = plugin
print("fetching missing-hashes...")
yarn_lock = Path(src_dir).joinpath("yarn.lock")
missing_hashes = HERE.joinpath("missing-hashes.json")
with missing_hashes.open("w") as fd:
new_missing_hashes = yarn_berry_fetcher[
"missing-hashes",
yarn_lock
]()
fd.write(new_missing_hashes)
print("prefetching offline cache...")
release["deps_hash"] = yarn_berry_fetcher[
"prefetch",
yarn_lock,
missing_hashes
]().strip()
write_release(release)

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
pkg-config,
ninja,
asciidoc,
zlib,
jansson,
openssl,
}:
stdenv.mkDerivation rec {
pname = "jose";
version = "14";
src = fetchFromGitHub {
owner = "latchset";
repo = "jose";
rev = "v${version}";
hash = "sha256-rMNPJaCtVpbwIkMQzBNpmRct6S/NelTwjmsuB0RP6R8=";
};
nativeBuildInputs = [
meson
pkg-config
ninja
asciidoc
];
buildInputs = [
zlib
jansson
openssl
];
outputs = [
"out"
"dev"
"man"
];
enableParallelBuilding = true;
meta = {
description = "C-language implementation of Javascript Object Signing and Encryption";
mainProgram = "jose";
homepage = "https://github.com/latchset/jose";
maintainers = [ ];
license = lib.licenses.asl20;
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
fetchFromGitHub,
rustPlatform,
libgit2,
openssl,
pkg-config,
makeWrapper,
git,
}:
let
# josh-ui requires javascript dependencies, haven't tried to figure it out yet
cargoFlags = [
"--workspace"
"--exclude"
"josh-ui"
];
version = "24.10.04";
in
rustPlatform.buildRustPackage {
pname = "josh";
inherit version;
src = fetchFromGitHub {
owner = "josh-project";
repo = "josh";
rev = "r${version}";
hash = "sha256-6rfNEWNeC0T/OXhCReaV5npcJjQoH6XhsZzHXGnnxOo=";
};
cargoHash = "sha256-Kb0EKWae1sldDg+F3ccoztI3zbQ/BJjy+4ojnqiqKA4=";
nativeBuildInputs = [
pkg-config
makeWrapper
];
buildInputs = [
libgit2
openssl
];
cargoBuildFlags = cargoFlags;
cargoTestFlags = cargoFlags;
# used to teach josh itself about its version number
env.JOSH_VERSION = "r${version}";
postInstall = ''
wrapProgram "$out/bin/josh-proxy" --prefix PATH : "${git}/bin"
'';
meta = {
description = "Just One Single History";
homepage = "https://josh-project.github.io/josh/";
downloadPage = "https://github.com/josh-project/josh";
changelog = "https://github.com/josh-project/josh/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = [
lib.maintainers.sternenseemann
lib.maintainers.tazjin
];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "joshuto";
version = "0.9.9";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = "joshuto";
rev = "v${version}";
hash = "sha256-hfu3Verbrq0to3I5/gX6ZhVr7ewjHNamzvaUcmcUIRU=";
};
cargoHash = "sha256-K/++/NdOLSvhxQ8LBS+jnthCRJxScoOjWSp7pmfHVaQ=";
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd joshuto \
--bash <($out/bin/joshuto completions bash) \
--zsh <($out/bin/joshuto completions zsh) \
--fish <($out/bin/joshuto completions fish)
'';
meta = with lib; {
description = "Ranger-like terminal file manager written in Rust";
homepage = "https://github.com/kamiyaa/joshuto";
changelog = "https://github.com/kamiyaa/joshuto/releases/tag/${src.rev}";
license = licenses.lgpl3Only;
maintainers = with maintainers; [
figsoda
totoroot
xrelkd
];
mainProgram = "joshuto";
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchurl,
fetchsvn,
makeWrapper,
unzip,
jre,
libXxf86vm,
extraJavaOpts ? "-Djosm.restart=true -Djava.net.useSystemProxies=true",
}:
let
pname = "josm";
version = "19439";
srcs = {
jar = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
hash = "sha256-EuboKKNpApYlh9b78oB5AbtOM38oMe3NEa4fovA78Uk=";
};
macosx = fetchurl {
url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java21.zip";
hash = "sha256-b38Xd0qx0ceNtJ5UIWDJkGOvaHSB/46onPbd6LJ6siY=";
};
pkg = fetchsvn {
url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
rev = version;
hash = "sha256-9YTSX4chUxijtJ7a1pLE2kYo9hdOB/8vnnfFqMeXKbE=";
};
};
# Needed as of version 19017.
baseJavaOpts = toString [
"--add-exports=java.base/sun.security.action=ALL-UNNAMED"
"--add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED"
"--add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED"
];
in
stdenv.mkDerivation {
inherit pname version;
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ jre ];
installPhase =
if stdenv.hostPlatform.isDarwin then
''
mkdir -p $out/Applications
${unzip}/bin/unzip ${srcs.macosx} 'JOSM.app/*' -d $out/Applications
''
else
''
install -Dm644 ${srcs.jar} $out/share/josm/josm.jar
cp -R ${srcs.pkg}/usr/share $out
# Add libXxf86vm to path because it is needed by at least Kendzi3D plugin
makeWrapper ${jre}/bin/java $out/bin/josm \
--add-flags "${baseJavaOpts} ${extraJavaOpts} -jar $out/share/josm/josm.jar" \
--prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib' \
--prefix _JAVA_AWT_WM_NONREPARENTING : 1 \
--prefix _JAVA_OPTIONS " " "-Dawt.useSystemAAFontSettings=gasp"
'';
passthru = {
inherit srcs;
updateScript = ./update.sh;
};
meta = {
description = "Extensible editor for OpenStreetMap";
homepage = "https://josm.openstreetmap.de/";
changelog = "https://josm.openstreetmap.de/wiki/Changelog";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
rycee
sikmir
starsep
];
platforms = lib.platforms.all;
mainProgram = "josm";
};
}

18
pkgs/by-name/jo/josm/update.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl nurl pup common-updater-scripts
# partially taken from jitsi-meet/update.sh, as they both scrape an apt repo.
set -euo pipefail
version="$(curl https://josm.openstreetmap.de/apt/pool/universe/j/josm/ |
pup 'a[href] text{}' |
sed -nr 's/josm_[0-9]+.[0-9]+.svn([0-9]+)_all.deb/\1/p' |
sort -n |
tail -n1)"
pkgHash="$(nurl -f fetchsvn -H https://josm.openstreetmap.de/svn/trunk/native/linux/tested "$version")"
update-source-version josm "$version" --source-key=srcs.jar
update-source-version josm "$version" --ignore-same-version --source-key=srcs.macosx
update-source-version josm "$version" "$pkgHash" --ignore-same-version --source-key=srcs.pkg

View File

@@ -0,0 +1,30 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "jost";
version = "3.5";
src = fetchzip {
url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
hash = "sha256-ne81bMhmTzNZ/GGIzb7nCYh19vNLK+hJ3cP/zDxtiGM=";
};
installPhase = ''
runHook preInstall
install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/indestructible-type/Jost";
description = "Sans serif font by Indestructible Type";
license = licenses.ofl;
maintainers = [ maintainers.ar1a ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "jot";
version = "0.1.2";
src = fetchFromGitHub {
owner = "shashwatah";
repo = "jot";
rev = "v${version}";
sha256 = "sha256-Z8szd6ArwbGiHw7SeAah0LrrzUbcQYygX7IcPUYNxvM=";
};
cargoHash = "sha256-B3CkXoSShZTnT3OlVaqRBbGIaOKiqri6AuYVrUHB6NQ=";
meta = with lib; {
description = "Rapid note management for the terminal";
homepage = "https://github.com/shashwatah/jot";
license = licenses.mit;
maintainers = with maintainers; [ dit7ya ];
mainProgram = "jt";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "jotdown";
version = "0.8.1";
src = fetchFromGitHub {
owner = "hellux";
repo = "jotdown";
rev = version;
hash = "sha256-9gvTMcoKGdc6xYhGz1SQzTELUWeIK2VFbEwIVn/IjGs=";
};
cargoHash = "sha256-x61oImdXsLD/lU4hNcrQ2rjH5hAvTMEDJn4H3cVG6X4=";
meta = with lib; {
description = "Minimal Djot CLI";
mainProgram = "jotdown";
homepage = "https://github.com/hellux/jotdown";
changelog = "https://github.com/hellux/jotdown/blob/${src.rev}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchzip,
nixosTests,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "jotta-cli";
version = "0.17.132497";
src = fetchzip {
url = "https://repo.jotta.us/archives/linux/amd64/jotta-cli-${version}_linux_amd64.tar.gz";
hash = "sha256-prhFFjywvffsZKcTIMJfsccA/TYrvpsn/+TpDtIdc98=";
stripRoot = false;
};
nativeBuildInputs = [ installShellFiles ];
installPhase = ''
runHook preInstall
install -Dm0755 usr/bin/jotta-cli usr/bin/jottad -t $out/bin/
runHook postInstall
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd jotta-cli \
--bash <($out/bin/jotta-cli completion bash) \
--fish <($out/bin/jotta-cli completion fish) \
--zsh <($out/bin/jotta-cli completion zsh)
'';
passthru.tests = { inherit (nixosTests) jotta-cli; };
meta = {
description = "Jottacloud CLI";
homepage = "https://www.jottacloud.com/";
downloadPage = "https://repo.jotta.us/archives/linux/";
maintainers = with lib.maintainers; [ evenbrenden ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,42 @@
{
fetchFromGitHub,
maven,
makeWrapper,
jre,
lib,
}:
maven.buildMavenPackage rec {
pname = "joularjx";
version = "2.9.0";
src = fetchFromGitHub {
owner = "joular";
repo = "joularjx";
rev = version;
hash = "sha256-/Drv6PVMmz3QNEu8zMokTKBZeYWMjuKczu18qKqNAx4=";
};
mvnHash = "sha256-TKHo0hZBjgBeUWYvbjF3MZ6Egp3qB2LGwWfrGrcVkOk=";
mvnParameters = "-DskipTests";
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp target/joularjx-${version}.jar $out/share/joularjx.jar
makeWrapper ${jre}/bin/java $out/bin/joularjx \
--add-flags "-javaagent:$out/share/joularjx.jar"
runHook postInstall
'';
meta = with lib; {
description = "Java-based agent for software power monitoring at the source code level";
homepage = "https://github.com/joular/joularjx";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ julienmalka ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchgit,
rustPlatform,
pkg-config,
openssl,
systemd,
}:
rustPlatform.buildRustPackage {
pname = "journaldriver";
version = "5656.0.0";
cargoHash = "sha256-ycnmLHKWRwKbdY1LZJ+BSwGfXfYJCWbbbFcqfBj3y/Y=";
src = fetchgit {
url = "https://code.tvl.fyi/depot.git:/ops/journaldriver.git";
sha256 = "0bnf67k6pkw4rngn58b5zm19danr4sh2g6rfd4k5w2sa1lzqai04";
# TVL revision r/5656; as of 2023-01-13 the revision tag is
# unavailable through git, hence the pinned hash.
rev = "4e191353228197ce548d63cb9955e53661244f9c";
};
buildInputs = [
openssl
systemd
];
nativeBuildInputs = [ pkg-config ];
meta = with lib; {
description = "Log forwarder from journald to Stackdriver Logging";
homepage = "https://code.tvl.fyi/about/ops/journaldriver";
license = licenses.gpl3;
maintainers = [ maintainers.tazjin ];
platforms = platforms.linux;
mainProgram = "journaldriver";
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "journalist";
version = "1.0.1";
src = fetchFromGitHub {
owner = "mrusme";
repo = "journalist";
tag = "v${version}";
hash = "sha256-3MnkndG2c4P3oprIRbzj26oAutEmAgsUx8mjlaDLrkI=";
};
vendorHash = "sha256-2EJ96dhhU7FZxMkHOmQo79WCHu8U1AGgFf47FIuQdek=s";
ldflags = [
"-s"
"-w"
"-X github.com/mrusme/journalist/journalistd.VERSION=${version}"
];
meta = {
description = "RSS aggregator";
homepage = "https://github.com/mrusme/journalist";
changelog = "https://github.com/mrusme/journalist/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ moraxyc ];
mainProgram = "journalist";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "journalwatch";
version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "The-Compiler";
repo = "journalwatch";
tag = "v${version}";
hash = "sha512-60+ewzOIox2wsQFXMAgD7XN+zvPA1ScPz6V4MB5taVDhqCxUTMVOxodf+4AMhxtNQloXZ3ye7/0bjh1NPDjxQg==";
};
# can be removed post 1.1.0
postPatch = ''
substituteInPlace test_journalwatch.py \
--replace-fail "U Thu Jan 1 00:00:00 1970 prio foo [1337]" "U Thu Jan 1 00:00:00 1970 pprio foo [1337]"
'';
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [ systemd ];
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
pythonImportsCheck = [ "journalwatch" ];
meta = with lib; {
description = "Tool to find error messages in the systemd journal";
homepage = "https://github.com/The-Compiler/journalwatch";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ florianjacob ];
mainProgram = "journalwatch";
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
groff,
makeWrapper,
ncurses,
runtimeShell,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "jove";
version = "4.17.5.5";
src = fetchFromGitHub {
owner = "jonmacs";
repo = "jove";
rev = finalAttrs.version;
hash = "sha256-y0zNrUXHXqBa6xNxRiZSUOSrFT2cDmdpMsCRHJXpUac=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
groff
ncurses
];
postPatch = ''
patchShebangs testbuild.sh testmailer.sh teachjove jmake.sh
'';
dontConfigure = true;
preBuild = ''
makeFlagsArray+=(SYSDEFS="-DSYSVR4 -D_XOPEN_SOURCE=500" \
JTMPDIR=$TMPDIR
TERMCAPLIB=-lncurses \
SHELL=${runtimeShell} \
DFLTSHELL=${runtimeShell} \
JOVEHOME=${placeholder "out"})
'';
postInstall = ''
wrapProgram $out/bin/teachjove \
--prefix PATH ":" "$out/bin"
'';
meta = {
homepage = "https://github.com/jonmacs/jove";
description = "Jonathan's Own Version of Emacs";
changelog = "https://github.com/jonmacs/jove/releases/tag/${finalAttrs.version}";
license = lib.licenses.bsd2;
maintainers = [ ];
platforms = lib.platforms.unix;
# never built on Hydra: https://hydra.nixos.org/job/nixpkgs/trunk/jove.x86_64-darwin
broken = stdenv.hostPlatform.isDarwin;
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication {
pname = "joycond-cemuhook";
version = "0-unstable-2023-08-09";
pyproject = true;
src = fetchFromGitHub {
owner = "joaorb64";
repo = "joycond-cemuhook";
rev = "3c0e07374ff431a0f8ae70dbb0b5a62fb3de06ee";
hash = "sha256-K24CEmYWhgkvVX4geg2bylH8TSvHIpsWjsPwY5BpquI=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'setuptools-git-versioning<2' 'setuptools-git-versioning'
'';
build-system = with python3Packages; [
setuptools
setuptools-git-versioning
];
dependencies = with python3Packages; [
dbus-python
evdev
pyudev
termcolor
];
meta = with lib; {
homepage = "https://github.com/joaorb64/joycond-cemuhook";
description = "Support for cemuhook's UDP protocol for joycond devices";
license = licenses.mit;
maintainers = [ maintainers.noodlez1232 ];
mainProgram = "joycond-cemuhook";
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
libevdev,
udev,
udevCheckHook,
acl,
}:
stdenv.mkDerivation {
pname = "joycond";
version = "unstable-2021-07-30";
src = fetchFromGitHub {
owner = "DanielOgorchock";
repo = "joycond";
rev = "f9a66914622514c13997c2bf7ec20fa98e9dfc1d";
sha256 = "sha256-quw7yBHDDZk1+6uHthsfMCej7g5uP0nIAqzvI6436B8=";
};
nativeBuildInputs = [
cmake
pkg-config
udevCheckHook
];
buildInputs = [
libevdev
udev
];
doInstallCheck = true;
# CMake has hardcoded install paths
installPhase = ''
mkdir -p $out/{bin,etc/{systemd/system,udev/rules.d},lib/modules-load.d}
cp ./joycond $out/bin
cp $src/udev/{89,72}-joycond.rules $out/etc/udev/rules.d
cp $src/systemd/joycond.service $out/etc/systemd/system
cp $src/systemd/joycond.conf $out/lib/modules-load.d
substituteInPlace $out/etc/systemd/system/joycond.service --replace \
"ExecStart=/usr/bin/joycond" "ExecStart=$out/bin/joycond"
substituteInPlace $out/etc/udev/rules.d/89-joycond.rules --replace \
"/bin/setfacl" "${acl}/bin/setfacl"
'';
meta = with lib; {
homepage = "https://github.com/DanielOgorchock/joycond";
description = "Userspace daemon to combine joy-cons from the hid-nintendo kernel driver";
mainProgram = "joycond";
license = licenses.gpl3Only;
maintainers = [ ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,127 @@
{
lib,
stdenv,
fetchurl,
config,
acceptLicense ? config.joypixels.acceptLicense or false,
}:
let
inherit (stdenv.hostPlatform.parsed) kernel;
systemSpecific =
{
darwin = rec {
systemTag = "nix-darwin";
capitalized = systemTag;
fontFile = "JoyPixels-SBIX.ttf";
};
}
.${kernel.name} or {
systemTag = "nixos";
capitalized = "NixOS";
fontFile = "joypixels-android.ttf";
};
joypixels-free-license = {
spdxId = "LicenseRef-JoyPixels-Free";
fullName = "JoyPixels Free License Agreement";
url = "https://cdn.joypixels.com/free-license.pdf";
free = false;
};
joypixels-license-appendix = with systemSpecific; {
spdxId = "LicenseRef-JoyPixels-NixOS-Appendix";
fullName = "JoyPixels ${capitalized} License Appendix";
url = "https://cdn.joypixels.com/distributions/${systemTag}/appendix/joypixels-license-appendix.pdf";
free = false;
};
throwLicense = throw ''
Use of the JoyPixels font requires acceptance of the license.
- ${joypixels-free-license.fullName} [1]
- ${joypixels-license-appendix.fullName} [2]
You can express acceptance by setting acceptLicense to true in your
configuration. Note that this is not a free license so it requires allowing
unfree licenses.
configuration.nix:
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"joypixels"
];
nixpkgs.config.joypixels.acceptLicense = true;
config.nix:
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"joypixels"
];
joypixels.acceptLicense = true;
[1]: ${joypixels-free-license.url}
[2]: ${joypixels-license-appendix.url}
'';
in
stdenv.mkDerivation rec {
pname = "joypixels";
version = "9.0.0";
src =
assert !acceptLicense -> throwLicense;
with systemSpecific;
fetchurl {
name = fontFile;
url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
sha256 =
{
darwin = "sha256-muUxXzz8BePyPsiZocYvM0ebM1H+u84ysN5YUvsMLiU=";
}
.${kernel.name} or "sha256-pmGsVgYSK/c5OlhOXhNlRBs/XppMXmsHcZeSmIkuED4=";
};
dontUnpack = true;
installPhase = with systemSpecific; ''
runHook preInstall
install -Dm644 $src $out/share/fonts/truetype/${fontFile}
runHook postInstall
'';
meta = with lib; {
description = "Finest emoji you can use legally (formerly EmojiOne)";
longDescription = ''
Updated for 2024! JoyPixels 9.0 includes 3,820 originally crafted icon
designs and is 100% Unicode 15.1 compatible. We offer the largest
selection of files ranging from png, svg, iconjar, and fonts (sprites
available upon request).
'';
homepage = "https://www.joypixels.com/fonts";
hydraPlatforms = [ ]; # Just a binary file download, nothing to cache.
license =
let
free-license = joypixels-free-license;
appendix = joypixels-license-appendix;
in
with systemSpecific;
{
spdxId = "LicenseRef-JoyPixels-Free-with-${capitalized}-Appendix";
fullName = "${free-license.fullName} with ${appendix.fullName}";
url = free-license.url;
appendixUrl = appendix.url;
free = false;
redistributable = true;
};
maintainers = with maintainers; [
toonn
jtojnar
];
# Not quite accurate since it's a font, not a program, but clearly
# indicates we're not actually building it from source.
sourceProvenance = [ sourceTypes.binaryNativeCode ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "joystickwake";
version = "0.4.2";
format = "pyproject";
src = fetchFromGitHub {
owner = "foresto";
repo = "joystickwake";
tag = "v${version}";
sha256 = "sha256-vSvIpbcDIbRyitVjx3wNSxt5vTIZ9/NPWokOJt0p6oQ=";
};
build-system = with python3.pkgs; [
setuptools
];
dependencies = with python3.pkgs; [
dbus-next
pyudev
xlib
];
postInstall = ''
# autostart file
ln -s $out/${python3.sitePackages}/etc $out/etc
'';
meta = with lib; {
description = "Joystick-aware screen waker";
mainProgram = "joystickwake";
longDescription = ''
Linux gamers often find themselves unexpectedly staring at a blank screen, because their display server fails to recognize game controllers as input devices, allowing the screen blanker to activate during gameplay.
This program works around the problem by temporarily disabling screen blankers when joystick activity is detected.
'';
homepage = "https://github.com/foresto/joystickwake";
maintainers = with maintainers; [ bertof ];
license = licenses.mit;
platforms = platforms.linux;
};
}