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,37 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "mi2ly";
version = "0.12";
src = fetchurl {
url = "mirror://savannah/${pname}/${pname}.${version}.tar.bz2";
hash = "sha256-lFbqH+syFaQDMbXfb+OUcWnyKnjfVz9yl7DbTTn7JKw=";
};
sourceRoot = ".";
hardeningDisable = [ "format" ];
env.NIX_CFLAGS_COMPILE = toString [ "-fgnu89-inline" ];
buildPhase = "./cc";
installPhase = ''
mkdir -p "$out"/{bin,share/doc/mi2ly}
cp mi2ly "$out/bin"
cp README Doc.txt COPYING Manual.txt "$out/share/doc/mi2ly"
'';
meta = with lib; {
description = "MIDI to Lilypond converter";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
homepage = "https://www.nongnu.org/mi2ly/";
mainProgram = "mi2ly";
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation {
pname = "micro-httpd";
version = "20140814";
src = fetchurl {
url = "https://acme.com/software/micro_httpd/micro_httpd_14Aug2014.tar.gz";
sha256 = "0mlm24bi31s0s8w55i0sysv2nc1n2x4cfp6dm47slz49h2fz24rk";
};
preBuild = ''
makeFlagsArray=(BINDIR="$out/bin" MANDIR="$out/share/man/man8")
mkdir -p $out/bin
mkdir -p $out/share/man/man8
'';
meta = with lib; {
homepage = "http://acme.com/software/micro_httpd/";
description = "Really small HTTP server";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = [ ];
mainProgram = "micro_httpd";
};
}

View File

@@ -0,0 +1,98 @@
{
lib,
buildGoModule,
callPackage,
fetchFromGitHub,
installShellFiles,
stdenv,
# Deprecated options
# Remove them as soon as possible
withXclip ? null,
withWlClipboard ? null,
withWlclip ? null,
}:
let
self = buildGoModule {
pname = "micro";
version = "2.0.14";
src = fetchFromGitHub {
owner = "zyedidia";
repo = "micro";
rev = "v${self.version}";
hash = "sha256-avLVl6mn0xKgIy0BNnPZ8ypQhn8Ivj7gTgWbebDSjt0=";
};
vendorHash = "sha256-ePhObvm3m/nT+7IyT0W6K+y+9UNkfd2kYjle2ffAd9Y=";
nativeBuildInputs = [ installShellFiles ];
outputs = [
"out"
"man"
];
subPackages = [ "cmd/micro" ];
ldflags =
let
t = "github.com/zyedidia/micro/v2/internal";
in
[
"-s"
"-w"
"-X ${t}/util.Version=${self.version}"
"-X ${t}/util.CommitHash=${self.src.rev}"
];
strictDeps = true;
preBuild = ''
GOOS= GOARCH= go generate ./runtime
'';
postInstall = ''
installManPage assets/packaging/micro.1
install -Dm444 assets/packaging/micro.desktop $out/share/applications/micro.desktop
install -Dm644 assets/micro-logo-mark.svg $out/share/icons/hicolor/scalable/apps/micro.svg
'';
passthru = {
tests = lib.packagesFromDirectoryRecursive {
inherit callPackage;
directory = ./tests;
};
wrapper = callPackage ./wrapper.nix { micro = self; };
};
meta = {
homepage = "https://micro-editor.github.io";
changelog = "https://github.com/zyedidia/micro/releases/";
description = "Modern and intuitive terminal-based text editor";
longDescription = ''
micro is a terminal-based text editor that aims to be easy to use and
intuitive, while also taking advantage of the capabilities of modern
terminals.
As its name indicates, micro aims to be somewhat of a successor to the
nano editor by being easy to install and use. It strives to be enjoyable
as a full-time editor for people who prefer to work in a terminal, or
those who regularly edit files over SSH.
'';
license = lib.licenses.mit;
mainProgram = "micro";
maintainers = with lib.maintainers; [
pbsds
];
};
};
in
lib.warnIf (withXclip != null || withWlClipboard != null || withWlclip != null) ''
The options `withXclip`, `withWlClipboard`, `withWlclip` were removed. If
you are seeking for clipboard support, please consider the following
packages:
- `micro-with-wl-clipboard`
- `micro-with-xclip`
- `micro-full`
'' self

View File

@@ -0,0 +1,13 @@
spawn micro file.txt
expect "file.txt"
send "Hello world!"
expect "Hello world!"
# ctrl-q (exit)
send "\021"
expect "Save changes to file.txt before closing?"
send "y"
expect eof

View File

@@ -0,0 +1,26 @@
{
expect,
micro,
runCommand,
}:
let
expect-script = builtins.path {
name = "hello.tcl";
path = ./hello.tcl;
};
in
runCommand "micro-expect-hello-world"
{
nativeBuildInputs = [
expect
micro
];
}
# Micro needs a writable $HOME for throwing its configuration
''
export HOME=$(pwd)
expect -f ${expect-script}
grep "Hello world!" file.txt
cat file.txt > $out
''

View File

@@ -0,0 +1,6 @@
{ micro, testers }:
testers.testVersion {
package = micro;
command = "micro -version";
}

View File

@@ -0,0 +1,33 @@
{
lib,
micro,
makeWrapper,
symlinkJoin,
# configurable options
extraPackages ? [ ],
}:
symlinkJoin {
name = "micro-wrapped-${micro.version}";
inherit (micro) pname version outputs;
nativeBuildInputs = [ makeWrapper ];
paths = [ micro ];
postBuild = ''
${lib.concatMapStringsSep "\n" (
output: "ln --verbose --symbolic --no-target-directory ${micro.${output}} \$${output}"
) (lib.remove "out" micro.outputs)}
pushd $out/bin
for f in *; do
rm $f
makeWrapper ${micro}/bin/$f $f \
--prefix PATH ":" "${lib.makeBinPath extraPackages}"
done
popd
'';
meta = micro.meta;
}

View File

@@ -0,0 +1,87 @@
{
fetchFromGitHub,
fetchpatch,
lib,
oniguruma,
openssl,
pkg-config,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "microbin";
version = "2.0.4";
src = fetchFromGitHub {
owner = "szabodanika";
repo = "microbin";
rev = "v${version}";
hash = "sha256-fsRpqSYDsuV0M6Xar2GVoyTgCPT39dcKJ6eW4YXCkQ0=";
};
cargoHash = "sha256-cQyb9KpmdJ2DB395Ce24JX8YcMLQn3fmeYZUo72L38s=";
patches = [
# Prefix some URLs with args.public_path_as_str() by PeterUpfold
# https://github.com/szabodanika/microbin/pull/194
# MicroBin returns wrong URLs on deployments with non-root URLs.
(fetchpatch {
name = "0001-fixup-explicit-urls.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..df062134cbaf3fd0ebcb67af8453a4c66844cd13.patch";
hash = "sha256-h13FBuzu2O4AwdhRHF5EX5LaKyPeWJAcaV6SGTaYzTg=";
})
# Minor fixups by LuK1337
# https://github.com/szabodanika/microbin/pull/211
# Fixup styling, password protected and private pastas.
(fetchpatch {
name = "0002-minor-fixups.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..3b0c025e9b6dc1ca69269541940bdb53032a048a.patch";
hash = "sha256-cZB/jx5d6F+C4xOn49TQ1at/Z4ov26efo9PTtWEdCHw=";
})
# Fix MICROBIN_ETERNAL_PASTA by SouthFox-D
# https://github.com/szabodanika/microbin/pull/215
# MICROBIN_ETERNAL_PASTA config doesn't work without this.
(fetchpatch {
name = "0003-fix-microbin-eternal-pasta.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..c7c846c64344b8d51500aa9a4b2e9a92de8d09d8.patch";
hash = "sha256-gCio73Jt0F7YCFtQxtf6pPBDLNcyOAcfSsiyjLFzEzY=";
})
# Fix raw pastes returning 404 by GizmoTjaz
# https://github.com/szabodanika/microbin/pull/218
# Existing pastas return code 404 even when they exist.
(fetchpatch {
name = "0004-fix-raw-pastas-returning-404.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..e789901520824d4bf610d28923097affe85ead7d.patch";
hash = "sha256-R47ozwu/FD1kCu5nx4Gf1cOFeLVFdS67K8RNDygwoZM=";
})
];
nativeBuildInputs = [
pkg-config
];
buildInputs = [
oniguruma
openssl
];
env = {
OPENSSL_NO_VENDOR = true;
RUSTONIG_SYSTEM_LIBONIG = true;
};
meta = {
description = "Tiny, self-contained, configurable paste bin and URL shortener written in Rust";
homepage = "https://github.com/szabodanika/microbin";
changelog = "https://github.com/szabodanika/microbin/releases/tag/v${version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [
dit7ya
figsoda
];
mainProgram = "microbin";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
linux-firmware,
libarchive,
}:
stdenv.mkDerivation {
pname = "amd-ucode";
version = linux-firmware.version;
src = linux-firmware;
sourceRoot = ".";
nativeBuildInputs = [ libarchive ];
buildPhase = ''
mkdir -p kernel/x86/microcode
find ${linux-firmware}/lib/firmware/amd-ucode -name \*.bin -print0 | sort -z |\
xargs -0 -I{} sh -c 'cat {} >> kernel/x86/microcode/AuthenticAMD.bin'
'';
installPhase = ''
mkdir -p $out
touch -d @$SOURCE_DATE_EPOCH kernel/x86/microcode/AuthenticAMD.bin
echo kernel/x86/microcode/AuthenticAMD.bin | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- > $out/amd-ucode.img
'';
meta = with lib; {
description = "AMD Processor microcode patch";
homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
license = licenses.unfreeRedistributableFirmware;
platforms = [
"i686-linux"
"x86_64-linux"
];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
libarchive,
iucode-tool,
buildPackages,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "microcode-intel";
version = "20250812";
src = fetchFromGitHub {
owner = "intel";
repo = "Intel-Linux-Processor-Microcode-Data-Files";
rev = "microcode-${finalAttrs.version}";
hash = "sha256-FfHSAMu4cvJKOjufr5ZwYHHn8dYa77jR5Br65vGP5Y8=";
};
nativeBuildInputs = [ libarchive ];
installPhase = ''
runHook preInstall
mkdir -p $out kernel/x86/microcode
${stdenv.hostPlatform.emulator buildPackages} ${lib.getExe iucode-tool} -w kernel/x86/microcode/GenuineIntel.bin intel-ucode/
touch -d @$SOURCE_DATE_EPOCH kernel/x86/microcode/GenuineIntel.bin
echo kernel/x86/microcode/GenuineIntel.bin | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- > $out/intel-ucode.img
runHook postInstall
'';
meta = with lib; {
homepage = "https://www.intel.com/";
changelog = "https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/${finalAttrs.src.rev}";
description = "Microcode for Intel processors";
license = licenses.unfreeRedistributableFirmware;
platforms = [
"i686-linux"
"x86_64-linux"
];
maintainers = with maintainers; [ felixsinger ];
};
})

View File

@@ -0,0 +1,32 @@
{
stdenv,
lib,
fetchFromGitHub,
readline,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "microcom";
version = "2023.09.0";
src = fetchFromGitHub {
owner = "pengutronix";
repo = "microcom";
rev = "v${version}";
hash = "sha256-CT/myxOK4U3DzliGsa45WMIFcYLjcoxx6w5S1NL5c7Y=";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ readline ];
meta = with lib; {
description = "Minimalistic terminal program for communicating
with devices over a serial connection";
inherit (src.meta) homepage;
license = licenses.gpl2;
maintainers = with maintainers; [ emantor ];
platforms = with platforms; linux;
mainProgram = "microcom";
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
gettext,
libdnf,
pkg-config,
glib,
libpeas,
util-linux,
help2man,
zchunk,
pcre2,
}:
stdenv.mkDerivation rec {
pname = "microdnf";
version = "3.10.1";
src = fetchFromGitHub {
owner = "rpm-software-management";
repo = "microdnf";
rev = version;
hash = "sha256-xWHE05CeX8I8YO0gqf5FDiqLexirwKdyCe4grclOVYc=";
};
nativeBuildInputs = [
pkg-config
cmake
gettext
help2man
];
buildInputs = [
libdnf
glib
libpeas
util-linux
zchunk
pcre2.dev
];
meta = {
description = "Lightweight implementation of dnf in C";
homepage = "https://github.com/rpm-software-management/microdnf";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ rb2k ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "microdnf";
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "microfetch";
version = "0.4.9";
src = fetchFromGitHub {
owner = "NotAShelf";
repo = "microfetch";
tag = "v${version}";
hash = "sha256-F3yRJrOzBzSDLadVTZqOPMaqF+3NSzedi222EawqVWQ=";
};
cargoHash = "sha256-Ewtge3yaegzZM4DgUXSquyJM7xcpmSp6lLmMrfrgy4Y=";
passthru.updateScript = nix-update-script { };
meta = {
description = "Microscopic fetch script in Rust, for NixOS systems";
homepage = "https://github.com/NotAShelf/microfetch";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
nydragon
NotAShelf
];
mainProgram = "microfetch";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,80 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
bzip2,
cli11,
cmake,
curl,
ghc_filesystem,
libarchive,
libsolv,
yaml-cpp,
nlohmann_json,
python3,
reproc,
spdlog,
tl-expected,
}:
let
libsolv' = libsolv.overrideAttrs (oldAttrs: {
cmakeFlags = oldAttrs.cmakeFlags ++ [
"-DENABLE_CONDA=true"
];
patches = [
# Apply the same patch as in the "official" boa-forge build:
# https://github.com/mamba-org/boa-forge/tree/master/libsolv
(fetchpatch {
url = "https://raw.githubusercontent.com/mamba-org/boa-forge/20530f80e2e15012078d058803b6e2c75ed54224/libsolv/conda_variant_priorization.patch";
sha256 = "1iic0yx7h8s662hi2jqx68w5kpyrab4fr017vxd4wyxb6wyk35dd";
})
];
});
in
stdenv.mkDerivation rec {
pname = "micromamba";
version = "1.5.8";
src = fetchFromGitHub {
owner = "mamba-org";
repo = "mamba";
rev = "micromamba-" + version;
hash = "sha256-sxZDlMFoMLq2EAzwBVO++xvU1C30JoIoZXEX/sqkXS0=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
bzip2
cli11
nlohmann_json
curl
libarchive
yaml-cpp
libsolv'
reproc
spdlog
ghc_filesystem
python3
tl-expected
];
cmakeFlags = [
"-DBUILD_LIBMAMBA=ON"
"-DBUILD_SHARED=ON"
"-DBUILD_MICROMAMBA=ON"
# "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
];
meta = with lib; {
description = "Reimplementation of the conda package manager";
homepage = "https://github.com/mamba-org/mamba";
license = licenses.bsd3;
platforms = platforms.all;
maintainers = with maintainers; [ mausch ];
mainProgram = "micromamba";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "micromdm";
version = "1.13.0";
src = fetchFromGitHub {
owner = "micromdm";
repo = "micromdm";
rev = "v${version}";
hash = "sha256-o/HK1bjaUwsSQG7QbYe0gFnD/OKV00cHXLXpftNa3iY=";
};
vendorHash = "sha256-aKm8a/PS+1ozImh1aL2EliALyUqjPMMBh4NTbL0H/ng=";
meta = {
description = "Mobile Device Management server for Apple Devices, focused on giving you all the power through an API";
homepage = "https://github.com/micromdm/micromdm";
license = lib.licenses.mit;
mainProgram = "micromdm";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ neverbehave ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchzip,
jdk,
makeWrapper,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "micronaut";
version = "4.9.4";
src = fetchzip {
url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
sha256 = "sha256-zsC8hMXHRi8xJro/IhihGzw8Nx8loaMh4Y8xlmtTyMQ=";
};
nativeBuildInputs = [
makeWrapper
installShellFiles
];
installPhase = ''
runHook preInstall
rm bin/mn.bat
cp -r . $out
wrapProgram $out/bin/mn \
--prefix JAVA_HOME : ${jdk}
installShellCompletion --bash --name mn.bash bin/mn_completion
runHook postInstall
'';
meta = with lib; {
description = "Modern, JVM-based, full-stack framework for building microservice applications";
longDescription = ''
Micronaut is a modern, JVM-based, full stack microservices framework
designed for building modular, easily testable microservice applications.
Reflection-based IoC frameworks load and cache reflection data for
every single field, method, and constructor in your code, whereas with
Micronaut, your application startup time and memory consumption are
not bound to the size of your codebase.
'';
homepage = "https://micronaut.io/";
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [ moaxcp ];
mainProgram = "mn";
};
}

View File

@@ -0,0 +1,43 @@
{
stdenv,
libusb-compat-0_1,
fetchFromGitHub,
lib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "micronucleus";
version = "2.6";
sourceRoot = "${finalAttrs.src.name}/commandline";
src = fetchFromGitHub {
owner = "micronucleus";
repo = "micronucleus";
rev = "v${finalAttrs.version}";
sha256 = "sha256-IngVHeYgPUwSsboTZ5h55iLUxtdBSdugiLk5HbyHIvI=";
};
buildInputs = [ libusb-compat-0_1 ];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
"STATIC="
];
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/lib/udev
cp micronucleus $out/bin
cp 49-micronucleus.rules $out/lib/udev
'';
meta = {
description = "Upload tool for micronucleus";
mainProgram = "micronucleus";
homepage = "https://github.com/micronucleus/micronucleus";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [
cab404
kuflierl
];
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "microplane";
version = "0.0.35";
src = fetchFromGitHub {
owner = "Clever";
repo = "microplane";
rev = "v${version}";
sha256 = "sha256-3QPxH4ZR02bkL2uKoJpLW9e7q1LjSlWw5jo0jxegeiM=";
};
vendorHash = "sha256-DizwNph3hmSRoozvJgs3Qw/c9iMTRR1gMGC60pBCFSk=";
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
postInstall = ''
ln -s $out/bin/microplane $out/bin/mp
'';
meta = with lib; {
description = "CLI tool to make git changes across many repos";
homepage = "https://github.com/Clever/microplane";
license = licenses.asl20;
maintainers = with maintainers; [ dbirks ];
};
}

View File

@@ -0,0 +1,31 @@
--- a/ports/unix/Makefile
+++ b/ports/unix/Makefile
@@ -31,7 +31,7 @@
QSTR_GLOBAL_DEPENDENCIES += $(VARIANT_DIR)/mpconfigvariant.h
# OS name, for simple autoconfig
-UNAME_S := $(shell uname -s)
+UNAME_S := @UNAME_S@
# include py core make definitions
include $(TOP)/py/py.mk
@@ -151,7 +151,7 @@
# If the variant enables it, enable modbluetooth.
ifeq ($(MICROPY_PY_BLUETOOTH),1)
ifeq ($(MICROPY_BLUETOOTH_BTSTACK),1)
-HAVE_LIBUSB := $(shell (which pkg-config > /dev/null && pkg-config --exists libusb-1.0) 2>/dev/null && echo '1')
+HAVE_LIBUSB := $(shell (which @PKG_CONFIG@ > /dev/null && @PKG_CONFIG@ --exists libusb-1.0) 2>/dev/null && echo '1')
# Figure out which BTstack transport to use.
ifeq ($(HAVE_LIBUSB),1)
@@ -180,8 +180,8 @@
endif
else
# Use system version of libffi.
-LIBFFI_CFLAGS := $(shell pkg-config --cflags libffi)
-LIBFFI_LDFLAGS := $(shell pkg-config --libs libffi)
+LIBFFI_CFLAGS := $(shell @PKG_CONFIG@ --cflags libffi)
+LIBFFI_LDFLAGS := $(shell @PKG_CONFIG@ --libs libffi)
endif
ifeq ($(UNAME_S),Linux)

View File

@@ -0,0 +1,13 @@
--- a/mpy-cross/mpy_cross/__init__.py
+++ b/mpy-cross/mpy_cross/__init__.py
@@ -61,6 +61,10 @@
def _find_mpy_cross_binary(mpy_cross):
if mpy_cross:
return mpy_cross
+ # Check for MPY_CROSS environment variable first (for cross-compilation)
+ env_mpy_cross = os.environ.get("MPY_CROSS")
+ if env_mpy_cross:
+ return env_mpy_cross
return os.path.abspath(os.path.join(os.path.dirname(__file__), "../build/mpy-cross"))

View File

@@ -0,0 +1,149 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
pkg-config,
python3,
libffi,
readline,
buildPackages,
}:
stdenv.mkDerivation rec {
pname = "micropython";
version = "1.26.0";
src = fetchFromGitHub {
owner = "micropython";
repo = "micropython";
tag = "v${version}";
hash = "sha256-T0yaTXRQFEdx6lap+S68I2RRA2kQnjbKGz+YB6okJkY=";
fetchSubmodules = true;
# remove unused libraries from rp2 port's SDK. we leave this and the other
# ports around for users who want to override makeFlags flags to build them.
# https://github.com/micropython/micropython/blob/a61c446c0b34e82aeb54b9770250d267656f2b7f/ports/rp2/CMakeLists.txt#L17-L22
#
# shrinks uncompressed NAR by ~2.4G (though it is still large). there
# doesn't seem to be a way to avoid fetching them in the first place.
postFetch = ''
rm -rf $out/lib/pico-sdk/lib/{tinyusb,lwip,btstack}
'';
};
patches = [
# Fixes Mbed TLS submodule build with GCC 14.
#
# See:
# * <https://github.com/openwrt/openwrt/pull/15479>
# * <https://github.com/Mbed-TLS/mbedtls/issues/9003>
(fetchpatch {
url = "https://raw.githubusercontent.com/openwrt/openwrt/52b6c9247997e51a97f13bb9e94749bc34e2d52e/package/libs/mbedtls/patches/100-fix-gcc14-build.patch";
stripLen = 1;
extraPrefix = "lib/mbedtls/";
hash = "sha256-Sllp/iWWEhykMJ3HALw5KzR4ta22120Jcl51JZCkZE0=";
})
./fix-cross-compilation.patch
./fix-mpy-cross-path.patch
];
postPatch = ''
# Fix cross-compilation by replacing uname and pkg-config
substituteInPlace ports/unix/Makefile \
--subst-var-by UNAME_S "${
{
"x86_64-linux" = "Linux";
"i686-linux" = "Linux";
"aarch64-linux" = "Linux";
"armv7l-linux" = "Linux";
"armv6l-linux" = "Linux";
"riscv64-linux" = "Linux";
"powerpc64le-linux" = "Linux";
"x86_64-darwin" = "Darwin";
"aarch64-darwin" = "Darwin";
}
.${stdenv.hostPlatform.system} or stdenv.hostPlatform.parsed.kernel.name
}" \
--subst-var-by PKG_CONFIG "${stdenv.cc.targetPrefix}pkg-config"
'';
depsBuildBuild = [
buildPackages.stdenv.cc
buildPackages.python3
];
nativeBuildInputs = [
pkg-config
python3
];
buildInputs = [
libffi
readline
];
makeFlags = [
"-C"
"ports/unix"
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
]
++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [
# Workaround for false positive gcc warning in mbedtls on aarch64
"CFLAGS_EXTRA=-Wno-array-bounds"
]; # also builds mpy-cross
# Build mpy-cross for the build platform first when cross-compiling
preBuild = ''
# Build mpy-cross for the build platform
make -C mpy-cross \
CC="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" \
CROSS_COMPILE=""
''
+ lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
# Set MPY_CROSS environment variable for cross-compilation
export MPY_CROSS="$PWD/mpy-cross/build/mpy-cross"
'';
enableParallelBuilding = true;
doCheck = true;
__darwinAllowLocalNetworking = true; # needed for select_poll_eintr test
skippedTests =
" -e select_poll_fd"
+
lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
" -e ffi_callback -e float_parse -e float_parse_doubleproc -e 'thread/stress_*' -e select_poll_eintr"
+ lib.optionalString (
stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64
) " -e float_parse";
checkPhase = ''
runHook preCheck
pushd tests
${python3.interpreter} ./run-tests.py ${skippedTests}
popd
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 ports/unix/build-standard/micropython -t $out/bin
runHook postInstall
'';
meta = with lib; {
description = "Lean and efficient Python implementation for microcontrollers and constrained systems";
homepage = "https://micropython.org";
platforms = platforms.unix;
license = licenses.mit;
maintainers = with maintainers; [
prusnak
sgo
];
mainProgram = "micropython";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
unixtools,
}:
stdenv.mkDerivation rec {
pname = "microscheme";
version = "0.9.3";
src = fetchFromGitHub {
owner = "ryansuchocki";
repo = "microscheme";
rev = "v${version}";
sha256 = "5qTWsBCfj5DCZ3f9W1bdo6WAc1DZqVxg8D7pwC95duQ=";
};
postPatch = ''
substituteInPlace makefile --replace gcc ${stdenv.cc.targetPrefix}cc
'';
nativeBuildInputs = [
makeWrapper
unixtools.xxd
];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with lib; {
homepage = "https://ryansuchocki.github.io/microscheme/";
description = "Scheme subset for Atmel microcontrollers";
mainProgram = "microscheme";
longDescription = ''
Microscheme is a Scheme subset/variant designed for Atmel
microcontrollers, especially as found on Arduino boards.
'';
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ ardumont ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "microserver";
version = "0.2.1";
src = fetchFromGitHub {
owner = "robertohuertasm";
repo = "microserver";
rev = "v${version}";
sha256 = "sha256-VgzOdJ1JLe0acjRYvaysCPox5acFmc4VD2f6HZWxT8M=";
};
cargoHash = "sha256-IPJJ9kv7gf5l7Y2JLCLjkNFao42h/VmkTd3LF5BCMLU=";
meta = with lib; {
homepage = "https://github.com/robertohuertasm/microserver";
description = "Simple ad-hoc server with SPA support";
maintainers = with maintainers; [ flosse ];
license = licenses.mit;
mainProgram = "microserver";
};
}

View File

@@ -0,0 +1,37 @@
{
stdenv,
fetchFromGitHub,
lib,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "microsocks";
version = "1.0.5";
src = fetchFromGitHub {
owner = "rofl0r";
repo = "microsocks";
rev = "v${version}";
hash = "sha256-5NR2gtm+uMkjmkV/dv3DzSedfNvYpHZgFHVSrybl0Tk=";
};
installPhase = ''
runHook preInstall
install -Dm 755 microsocks -t $out/bin/
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/rofl0r/microsocks/releases/tag/v${version}";
description = "Tiny, portable SOCKS5 server with very moderate resource usage";
homepage = "https://github.com/rofl0r/microsocks";
license = lib.licenses.mit;
mainProgram = "microsocks";
maintainers = with lib.maintainers; [ ramblurr ];
};
}

View File

@@ -0,0 +1,282 @@
{
lib,
stdenvNoCC,
fetchurl,
makeWrapper,
patchelf,
bintools,
dpkg,
# Linked dynamic libraries.
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
dbus,
expat,
fontconfig,
freetype,
gcc-unwrapped,
gdk-pixbuf,
glib,
gtk3,
gtk4,
libdrm,
libglvnd,
libkrb5,
libX11,
libxcb,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libxkbcommon,
libXrandr,
libXrender,
libXScrnSaver,
libxshmfence,
libXtst,
libgbm,
nspr,
nss,
pango,
pipewire,
vulkan-loader,
wayland, # ozone/wayland
# Command line programs
coreutils,
# command line arguments which are always set e.g "--disable-gpu"
commandLineArgs ? "",
# Will crash without.
systemd,
# Loaded at runtime.
libexif,
pciutils,
# Additional dependencies according to other distros.
## Ubuntu
curl,
liberation_ttf,
util-linux,
wget,
xdg-utils,
## Arch Linux.
flac,
harfbuzz,
icu,
libopus,
libpng,
snappy,
speechd-minimal,
## Gentoo
bzip2,
libcap,
# Necessary for USB audio devices.
libpulseaudio,
pulseSupport ? true,
adwaita-icon-theme,
gsettings-desktop-schemas,
# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder)
libva,
libvaSupport ? true,
# For Vulkan support (--enable-features=Vulkan)
addDriverRunpath,
# For QT support
qt6,
# Edge AAD sync
cacert,
libsecret,
# Edge Specific
libuuid,
}:
let
opusWithCustomModes = libopus.override { withCustomModes = true; };
deps = [
alsa-lib
at-spi2-atk
at-spi2-core
atk
bzip2
cacert
cairo
coreutils
cups
curl
dbus
expat
flac
fontconfig
freetype
gcc-unwrapped.lib
gdk-pixbuf
glib
harfbuzz
icu
libcap
libdrm
liberation_ttf
libexif
libglvnd
libkrb5
libpng
libX11
libxcb
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libxkbcommon
libXrandr
libXrender
libXScrnSaver
libxshmfence
libXtst
libgbm
nspr
nss
opusWithCustomModes
pango
pciutils
pipewire
snappy
speechd-minimal
systemd
util-linux
vulkan-loader
wayland
wget
libsecret
libuuid
gtk3
gtk4
qt6.qtbase
qt6.qtwayland
]
++ lib.optionals pulseSupport [ libpulseaudio ]
++ lib.optionals libvaSupport [ libva ];
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "microsoft-edge";
version = "141.0.3537.57";
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-xqHu6OdB6BFJVi+YmQJjMjh7CbL2m9drUHgtRVHBhrk=";
};
# With strictDeps on, some shebangs were not being patched correctly
# ie, $out/share/microsoft/msedge/microsoft-edge
strictDeps = false;
nativeBuildInputs = [
makeWrapper
patchelf
dpkg
];
buildInputs = [
# needed for XDG_ICON_DIRS
adwaita-icon-theme
glib
gtk3
gtk4
# needed for GSETTINGS_SCHEMAS_PATH
gsettings-desktop-schemas
];
rpath = lib.makeLibraryPath deps + ":" + lib.makeSearchPathOutput "lib" "lib64" deps;
binpath = lib.makeBinPath deps;
installPhase = ''
runHook preInstall
appname=msedge
dist=stable
exe=$out/bin/microsoft-edge
mkdir -p $out/bin
cp -v -a usr/share $out/share
cp -v -a opt/microsoft $out/share/microsoft
# replace bundled vulkan-loader
rm -v $out/share/microsoft/$appname/libvulkan.so.1
ln -v -s -t "$out/share/microsoft/$appname" "${lib.getLib vulkan-loader}/lib/libvulkan.so.1"
substituteInPlace $out/share/microsoft/$appname/microsoft-edge \
--replace-fail 'CHROME_WRAPPER' 'WRAPPER'
substituteInPlace $out/share/applications/microsoft-edge.desktop \
--replace-fail /usr/bin/microsoft-edge-$dist $exe
substituteInPlace $out/share/applications/com.microsoft.Edge.desktop \
--replace-fail /usr/bin/microsoft-edge-$dist $exe
substituteInPlace $out/share/gnome-control-center/default-apps/microsoft-edge.xml \
--replace-fail /opt/microsoft/msedge $exe
for icon_file in $out/share/microsoft/msedge/product_logo_[0-9]*.png; do
num_and_suffix="''${icon_file##*logo_}"
if [ $dist = "stable" ]; then
icon_size="''${num_and_suffix%.*}"
else
icon_size="''${num_and_suffix%_*}"
fi
logo_output_prefix="$out/share/icons/hicolor"
logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
mkdir -p "$logo_output_path"
mv "$icon_file" "$logo_output_path/microsoft-edge.png"
done
# "--simulate-outdated-no-au" disables auto updates and browser outdated popup
makeWrapper "$out/share/microsoft/$appname/microsoft-edge" "$exe" \
--prefix QT_PLUGIN_PATH : "${qt6.qtbase}/lib/qt-6/plugins" \
--prefix QT_PLUGIN_PATH : "${qt6.qtwayland}/lib/qt-6/plugins" \
--prefix NIXPKGS_QT6_QML_IMPORT_PATH : "${qt6.qtwayland}/lib/qt-6/qml" \
--prefix LD_LIBRARY_PATH : "$rpath" \
--prefix PATH : "$binpath" \
--suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:${addDriverRunpath.driverLink}/share" \
--set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt" \
--set CHROME_WRAPPER "microsoft-edge-$dist" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \
--add-flags "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'" \
--add-flags ${lib.escapeShellArg commandLineArgs}
# Make sure that libGL and libvulkan are found by ANGLE libGLESv2.so
patchelf --set-rpath $rpath $out/share/microsoft/$appname/lib*GL*
# Edge specific set liboneauth
patchelf --set-rpath $rpath $out/share/microsoft/$appname/liboneauth.so
for elf in $out/share/microsoft/$appname/{msedge,msedge-sandbox,msedge_crashpad_handler}; do
patchelf --set-rpath $rpath $elf
patchelf --set-interpreter ${bintools.dynamicLinker} $elf
done
runHook postInstall
'';
passthru.updateScript = ./update.py;
meta = {
changelog = "https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnote-stable-channel";
description = "Web browser from Microsoft";
homepage = "https://www.microsoft.com/en-us/edge";
license = lib.licenses.unfree;
mainProgram = "microsoft-edge";
maintainers = with lib.maintainers; [
cholli
ulrikstrid
maeve-oake
leleuvilela
bricklou
jonhermansen
iedame
];
platforms = [ "x86_64-linux" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,45 @@
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3Packages.packaging python3Packages.python-debian common-updater-scripts
import os
from collections import OrderedDict
from os.path import abspath, dirname
from urllib import request
from debian.deb822 import Packages
from debian.debian_support import Version
PIN_PATH = dirname(abspath(__file__)) + "/default.nix"
def packages():
packages_url = "https://packages.microsoft.com/repos/edge/dists/stable/main/binary-amd64/Packages"
handle = request.urlopen(packages_url)
return handle
def latest_packages(packages: bytes):
latest_packages: OrderedDict[str, Packages] = {}
for package in Packages.iter_paragraphs(packages, use_apt_pkg=False):
name: str = package["Package"]
if not name.startswith("microsoft-edge-stable"):
continue
channel = name.replace("microsoft-edge-", "")
if channel not in latest_packages:
latest_packages[channel] = package
else:
old_package = latest_packages[channel]
if old_package.get_version() < package.get_version(): # type: ignore
latest_packages[channel] = package
return OrderedDict(sorted(latest_packages.items(), key=lambda x: x[0]))
def write_expression():
latest = latest_packages(packages())
version = Version.re_valid_version.match(latest["stable"]["Version"]).group(
"upstream_version"
)
os.system(f'update-source-version microsoft-edge "{version}"')
write_expression()

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
gtest,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "microsoft-gsl";
version = "4.2.0";
src = fetchFromGitHub {
owner = "Microsoft";
repo = "GSL";
rev = "v${version}";
hash = "sha256-NrnYfCCeQ50oHYFbn9vh5Z4mfyxc0kAM3qnzQdq9gyM=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [ gtest ];
# C++17 required by latest gtest
env.NIX_CFLAGS_COMPILE = "-std=c++17";
doCheck = true;
meta = with lib; {
description = "C++ Core Guideline support library";
longDescription = ''
The Guideline Support Library (GSL) contains functions and types that are suggested for
use by the C++ Core Guidelines maintained by the Standard C++ Foundation.
This package contains Microsoft's implementation of GSL.
'';
homepage = "https://github.com/Microsoft/GSL";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [
thoughtpolice
yuriaisaka
];
};
}

View File

@@ -0,0 +1,110 @@
{
stdenv,
lib,
fetchurl,
dpkg,
openjdk11,
jnr-posix,
makeWrapper,
zip,
nixosTests,
bash,
glib,
xorg,
alsa-lib,
}:
stdenv.mkDerivation rec {
pname = "microsoft-identity-broker";
version = "2.0.1";
src = fetchurl {
url = "https://packages.microsoft.com/ubuntu/24.04/prod/pool/main/m/microsoft-identity-broker/microsoft-identity-broker_${version}_amd64.deb";
hash = "sha256-JheJnsu1ZxJbcpt0367FqfHVdwWWvPem2fm0i8s7MGE=";
};
nativeBuildInputs = [
dpkg
makeWrapper
openjdk11
zip
];
buildInputs = [
glib
xorg.libXtst
alsa-lib
];
buildPhase = ''
runHook preBuild
rm opt/microsoft/identity-broker/lib/jnr-posix-3.1.4.jar
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/microsoft-identity-broker
cp -a opt/microsoft/identity-broker/lib/* $out/lib/microsoft-identity-broker
cp -a usr/* $out
for jar in $out/lib/microsoft-identity-broker/*.jar; do
classpath="$classpath:$jar"
done
classpath="$classpath:${jnr-posix}/share/java/jnr-posix-${jnr-posix.version}.jar"
mkdir -p $out/bin
makeWrapper ${openjdk11}/bin/java $out/bin/microsoft-identity-broker \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
--add-flags "-classpath $classpath" \
--add-flags "-Xmx256m -Xss256k -XX:+UseParallelGC -XX:ParallelGCThreads=1" \
--add-flags "-verbose" \
--add-flags "-Djava.net.useSystemProxies=true" \
--add-flags "com.microsoft.identity.broker.service.IdentityBrokerService"
makeWrapper ${openjdk11}/bin/java $out/bin/microsoft-identity-device-broker \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
--add-flags "-classpath $classpath" \
--add-flags "-Xmx256m -Xss256k -XX:+UseParallelGC -XX:ParallelGCThreads=1" \
--add-flags "-verbose" \
--add-flags "-Djava.net.useSystemProxies=true" \
--add-flags "com.microsoft.identity.broker.service.DeviceBrokerService"
runHook postInstall
'';
postInstall = ''
substituteInPlace \
$out/lib/systemd/user/microsoft-identity-broker.service \
$out/lib/systemd/system/microsoft-identity-device-broker.service \
$out/share/dbus-1/system-services/com.microsoft.identity.devicebroker1.service \
$out/share/dbus-1/services/com.microsoft.identity.broker1.service \
--replace \
ExecStartPre=sh \
ExecStartPre=${bash}/bin/sh \
--replace \
ExecStartPre=!sh \
ExecStartPre=!${bash}/bin/sh \
--replace \
/opt/microsoft/identity-broker/bin/microsoft-identity-broker \
$out/bin/microsoft-identity-broker \
--replace \
/opt/microsoft/identity-broker/bin/microsoft-identity-device-broker \
$out/bin/microsoft-identity-device-broker \
--replace \
/usr/lib/jvm/java-11-openjdk-amd64 \
${openjdk11}
'';
passthru = {
updateScript = ./update.sh;
tests = { inherit (nixosTests) intune; };
};
meta = {
description = "Microsoft Authentication Broker for Linux";
homepage = "https://www.microsoft.com/";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ rhysmdnz ];
};
}

View File

@@ -0,0 +1,30 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl gzip dpkg common-updater-scripts
index_file=$(curl -sL https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/main/binary-amd64/Packages.gz | gzip -dc)
latest_version="0"
echo "$index_file" | while read -r line; do
if [[ "$line" =~ ^Package:[[:space:]]*(.*) ]]; then
Package="${BASH_REMATCH[1]}"
fi
if [[ "$line" =~ ^Version:[[:space:]]*(.*) ]]; then
Version="${BASH_REMATCH[1]}"
fi
if [[ "$line" =~ ^SHA256:[[:space:]]*(.*) ]]; then
SHA256="${BASH_REMATCH[1]}"
fi
if ! [[ "$line" ]] && [[ "${Package}" == "microsoft-identity-broker" ]]; then
if ( dpkg --compare-versions ${Version} gt ${latest_version} ); then
latest_version="${Version}"
sri_hash=$(nix-hash --to-sri --type sha256 "$SHA256")
echo $latest_version $sri_hash
fi
Package=""
Version=""
fi
done | tail -n 1 | (read version hash; update-source-version microsoft-identity-broker $version $hash)

View File

@@ -0,0 +1,55 @@
{
fetchFromGitHub,
gtk3,
lib,
libgee,
libnotify,
meson,
ninja,
pkg-config,
pulseaudio,
stdenv,
vala,
wrapGAppsHook3,
}:
stdenv.mkDerivation {
pname = "mictray";
version = "0.2.5";
src = fetchFromGitHub {
owner = "Junker";
repo = "mictray";
rev = "1f879aeda03fbe87ae5a761f46c042e09912e1c0";
sha256 = "0achj6r545c1sigls79c8qdzryz3sgldcyzd3pwak1ymim9i9c74";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
gtk3
libgee
libnotify
pulseaudio
];
doCheck = true;
meta = with lib; {
homepage = "https://github.com/Junker/mictray";
description = "System tray application for microphone";
longDescription = ''
MicTray is a Lightweight system tray application which lets you control the microphone state and volume.
'';
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.anpryl ];
mainProgram = "mictray";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
alsa-lib,
libX11,
libXi,
libXtst,
xorgproto,
}:
stdenv.mkDerivation rec {
pname = "mid2key";
version = "1";
src = fetchFromGitHub {
owner = "dnschneid";
repo = "mid2key";
rev = "r${version}";
sha256 = "Zo0mqdBJ1JKD9ZCA8te3f5opyYslFncYcx9iuXq2B9g=";
};
buildInputs = [
alsa-lib
libX11
libXi
libXtst
xorgproto
];
buildPhase = "make";
installPhase = "mkdir -p $out/bin && mv mid2key $out/bin";
meta = with lib; {
homepage = "http://code.google.com/p/mid2key/";
description = "Simple tool which maps midi notes to simulated keystrokes";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.linux;
mainProgram = "mid2key";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
lv2,
}:
stdenv.mkDerivation rec {
pname = "midi-trigger";
version = "0.0.4";
src = fetchFromGitHub {
owner = "unclechu";
repo = "MIDI-Trigger";
rev = "v${version}";
sha256 = "sha256-tMnN8mTd6Bm46ZIDy0JPSVe77xCZws2XwQLQexDWPgU=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ lv2 ];
makeFlags = [
"CXX=cc"
"BUILD_DIR=."
];
installPhase = ''
mkdir -p "$out/lib/lv2"
mv midi-trigger.lv2 "$out/lib/lv2"
'';
meta = with lib; {
homepage = "https://github.com/unclechu/MIDI-Trigger";
description = "LV2 plugin which generates MIDI notes by detected audio signal peaks";
maintainers = with maintainers; [ unclechu ];
license = licenses.gpl3Only;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "midicsv";
version = "1.1";
src = fetchurl {
url = "https://www.fourmilab.ch/webtools/midicsv/midicsv-${version}.tar.gz";
sha256 = "1vvhk2nf9ilfw0wchmxy8l13hbw9cnpz079nsx5srsy4nnd78nkw";
};
postPatch = ''
substituteInPlace Makefile \
--replace /usr/local $out \
--replace gcc "${stdenv.cc.targetPrefix}cc"
'';
meta = with lib; {
description = "Losslessly translate MIDI to CSV and back";
homepage = "https://www.fourmilab.ch/webtools/midicsv/";
license = licenses.publicDomain;
maintainers = with maintainers; [ orivej ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
gnumake,
gcc,
pkg-config,
lua5_4,
openssl,
jack1,
python3,
alsa-lib,
ncurses,
libevdev,
}:
stdenv.mkDerivation {
pname = "midimonster";
version = "0.6.0";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gnumake
gcc
lua5_4
openssl
jack1
python3
alsa-lib
ncurses
libevdev
];
src = fetchFromGitHub {
repo = "midimonster";
owner = "cbdevnet";
rev = "f16f7db86662fcdbf45b6373257c90c824b0b4b0";
sha256 = "131zs4j9asq9xl72cbyi463xpkj064ca1s7i77q5jrwqysgy52sp";
};
doCheck = true;
enableParallelBuilding = true;
outputs = [
"out"
"man"
];
buildPhase = ''
PLUGINS=$out/lib/midimonster make all
'';
installPhase = ''
PREFIX=$out make install
mkdir -p "$man/share/man/man1"
cp assets/midimonster.1 "$man/share/man/man1"
mkdir -p "$out/share/icons/hicolor/scalable/apps"
cp assets/MIDIMonster.svg "$out/share/icons/hicolor/scalable/apps/"
'';
meta = with lib; {
homepage = "https://midimonster.net";
description = "Multi-protocol translation tool";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = with maintainers; [ keldu ];
mainProgram = "midimonster";
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchurl,
mono,
mkNugetDeps,
makeWrapper,
makeFontsConf,
gtk2,
cups,
timidity,
}:
let
deps = mkNugetDeps {
name = "midisheetmusic-deps";
nugetDeps =
{ fetchNuGet }:
[
(fetchNuGet {
pname = "NUnit.Console";
version = "3.0.1";
hash = "sha256-FkzpEk12msmUp5I05ZzlGiG+UInoYhBmar/vB5Gt4H8=";
})
(fetchNuGet {
pname = "NUnit";
version = "2.6.4";
hash = "sha256-Kkft3QO9T5WwsvyPRNGT2nut7RS7OWArDjIYxvwA8qU=";
})
];
};
version = "2.6";
in
stdenv.mkDerivation {
pname = "midisheetmusic";
inherit version;
src = fetchurl {
url = "mirror://sourceforge/midisheetmusic/MidiSheetMusic-${version}-linux-src.tar.gz";
sha256 = "05c6zskj50g29f51lx8fvgzsi3f31z01zj6ssjjrgr7jfs7ak70p";
};
nativeBuildInputs = [
mono
makeWrapper
];
buildPhase = ''
for i in Classes/MidiPlayer.cs Classes/MidiSheetMusic.cs
do
substituteInPlace $i --replace-fail "/usr/bin/timidity" "${timidity}/bin/timidity"
done
./build.sh
'';
doCheck = true;
checkPhase = ''
# Resolves the warning "Fontconfig error: No writable cache directories"
export XDG_CACHE_HOME="$(mktemp -d)"
# Adds one file with tests that's missing from compiliation
# Makes sure NUnit framework from NuGet can be found
substituteInPlace UnitTestDLL.csproj \
--replace-fail '</Compile>' '</Compile><Compile Include="Classes\UnitTest.cs"/>' \
--replace-fail 'nunit.framework.dll' '${deps}/share/nuget/packages/nunit/2.6.4/lib/nunit.framework.dll'
./build_unit_test.sh
# 2 tests are still failing, we exclude them for now
mono ${deps}/share/nuget/packages/nunit.console/3.0.1/tools/nunit3-console.exe bin/Debug/UnitTest.dll \
--where "test != 'MidiFileTest.TestChangeSoundTrack' && test != 'MidiFileTest.TestChangeSoundPerChannelTracks'"
'';
# This fixes tests that fail because of missing fonts
FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
installPhase = ''
mkdir -p $out/share/applications $out/share/pixmaps $out/bin
cp deb/midisheetmusic.desktop $out/share/applications
cp NotePair.png $out/share/pixmaps/midisheetmusic.png
cp bin/Debug/MidiSheetMusic.exe $out/bin/.MidiSheetMusic.exe
makeWrapper ${mono}/bin/mono $out/bin/midisheetmusic.mono.exe \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
gtk2
cups
]
} \
--prefix PATH : ${lib.makeBinPath [ timidity ]} \
--add-flags $out/bin/.MidiSheetMusic.exe
'';
meta = {
description = "Convert MIDI Files to Piano Sheet Music for two hands";
mainProgram = "midisheetmusic.mono.exe";
homepage = "http://midisheetmusic.com";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.mdarocha ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
libX11,
glfw,
makeWrapper,
libXrandr,
libXinerama,
libXcursor,
gtk3,
ffmpeg-full,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "midivisualizer";
version = "7.0";
src = fetchFromGitHub {
owner = "kosua20";
repo = "MIDIVisualizer";
rev = "v${finalAttrs.version}";
sha256 = "sha256-wfPSPH+E9cErVvfJZqHttFtjiUYJopM/u6w6NpRHifE=";
};
nativeBuildInputs = [
cmake
pkg-config
makeWrapper
];
buildInputs = [
glfw
ffmpeg-full
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
libXrandr
libXinerama
libXcursor
gtk3
];
installPhase =
if stdenv.hostPlatform.isDarwin then
''
mkdir -p $out/Applications $out/bin
cp -r MIDIVisualizer.app $out/Applications/
ln -s ../Applications/MIDIVisualizer.app/Contents/MacOS/MIDIVisualizer $out/bin/
''
else
''
mkdir -p $out/bin
cp MIDIVisualizer $out/bin
wrapProgram $out/bin/MIDIVisualizer \
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
'';
meta = with lib; {
description = "Small MIDI visualizer tool, using OpenGL";
mainProgram = "MIDIVisualizer";
homepage = "https://github.com/kosua20/MIDIVisualizer";
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.ericdallo ];
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "mieru";
version = "3.20.1";
src = fetchFromGitHub {
owner = "enfein";
repo = "mieru";
rev = "v${version}";
hash = "sha256-r4QMETKt8EMSX9BsSizlvlMdlJ+SjlLScNfOxSm84Ec=";
};
vendorHash = "sha256-pKcdvP38fZ2KFYNDx6I4TfmnnvWKzFDvz80xMkUojqM=";
proxyVendor = true;
ldflags = [
"-s"
"-w"
];
meta = {
description = "Socks5 / HTTP / HTTPS proxy to bypass censorship";
homepage = "https://github.com/enfein/mieru";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ oluceps ];
mainProgram = "mieru";
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
SDL2,
cmake,
makeWrapper,
unstableGitUpdater,
}:
stdenv.mkDerivation {
pname = "mighty-mike";
version = "3.0.2-unstable-2024-04-01";
src = fetchFromGitHub {
owner = "jorio";
repo = "MightyMike";
rev = "0a1d6c4c80a90ed6e333651cd0a438ec003cfbe5";
hash = "sha256-c7o0Q9KTbJhYOZ2c/V1EdV4ibdR3AnHTCZBManJQzrw=";
fetchSubmodules = true;
};
nativeBuildInputs = [
SDL2
cmake
makeWrapper
];
buildInputs = [ SDL2 ];
strictDeps = true;
installPhase = ''
runHook preInstall
mkdir -p "$out/share/MightyMike"
mv Data ReadMe.txt "$out/share/MightyMike/"
install -Dm755 {.,$out/bin}/MightyMike
wrapProgram $out/bin/MightyMike --chdir "$out/share/MightyMike"
install -Dm644 $src/packaging/io.jor.mightymike.desktop $out/share/applications/mightymike.desktop
install -Dm644 $src/packaging/io.jor.mightymike.png $out/share/pixmaps/mightymike-desktopicon.png
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Port of Mighty Mike, a 1995 Macintosh game by Pangea Software, for modern operating systems";
longDescription = ''
This is Pangea Software's Mighty Mike updated to run on modern systems.
Set in a toy store, this top-down action game is a staple of 90's Macintosh games.
It was initially published in 1995 under the name Power Pete.
'';
homepage = "https://jorio.itch.io/mightymike";
license = lib.licenses.cc-by-nc-sa-40;
mainProgram = "MightyMike";
maintainers = with lib.maintainers; [ nateeag ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchzip,
}:
stdenv.mkDerivation rec {
pname = "migmix";
version = "20150712";
srcs = [
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63544/migmix-1p-${version}.zip";
sha256 = "0wp44axcalaak04nj3dgpx0vk13nqa3ihx2vjv4acsgv83x8ciph";
})
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63544/migmix-2p-${version}.zip";
sha256 = "0y7s3rbxrp5bv56qgihk8b847lqgibfhn2wlkzx7z655fbzdgxw9";
})
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63544/migmix-1m-${version}.zip";
sha256 = "1sfym0chy8ilyd9sr3mjc0bf63vc33p05ynpdc11miivxn4qsshx";
})
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63544/migmix-2m-${version}.zip";
sha256 = "0hg04rvm39fh4my4akmv4rhfc14s3ipz2aw718h505k9hppkhkch";
})
];
dontUnpack = true;
installPhase = ''
find $srcs -name '*.ttf' -exec install -m644 -Dt $out/share/fonts/truetype/migmix {} \;
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "1fhh8wg6lxwrnsg9rl4ihffl0bsp1wqa5gps9fx60kr6j9wpvmbg";
meta = with lib; {
description = "High-quality Japanese font based on M+ fonts and IPA fonts";
homepage = "http://mix-mplus-ipa.osdn.jp/migmix";
license = licenses.ipa;
maintainers = [ maintainers.mikoim ];
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
python3,
fetchFromGitHub,
postgresql,
postgresqlTestHook,
}:
python3.pkgs.buildPythonApplication rec {
pname = "migra";
version = "3.0.1647431138";
format = "pyproject";
src = fetchFromGitHub {
owner = "djrobstep";
repo = "migra";
rev = version;
hash = "sha256-LSCJA5Ym1LuV3EZl6gnl9jTHGc8A1LXmR1fj0ZZc+po=";
};
nativeBuildInputs = [
python3.pkgs.poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
schemainspect
six
sqlbag
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
postgresql
postgresqlTestHook
];
preCheck = ''
export PGUSER="nixbld";
'';
disabledTests = [
# These all fail with "List argument must consist only of tuples or dictionaries":
# See this issue: https://github.com/djrobstep/migra/issues/232
"test_excludeschema"
"test_fixtures"
"test_rls"
"test_singleschema"
];
pytestFlags = [
"-x"
"-svv"
];
enabledTestPaths = [
"tests"
];
meta = with lib; {
description = "Like diff but for PostgreSQL schemas";
homepage = "https://github.com/djrobstep/migra";
license = with licenses; [ unlicense ];
maintainers = with maintainers; [ bpeetz ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
python3,
fetchFromGitHub,
cargo,
rustPlatform,
rustc,
versionCheckHook,
nix-update-script,
}:
python3.pkgs.buildPythonApplication rec {
pname = "migrate-to-uv";
version = "0.7.3";
pyproject = true;
src = fetchFromGitHub {
owner = "mkniewallner";
repo = "migrate-to-uv";
tag = version;
hash = "sha256-hLcWZKY1wauGpcAn+tC4P1zvFid7QDVXUK24QSIJ4u0=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src pname version;
hash = "sha256-nyJ2UbdBcNX8mNpq447fM2QuscTdJwnjqP7AKBKv7kY=";
};
build-system = [
cargo
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
rustc
];
nativeCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "Migrate a project from Poetry/Pipenv/pip-tools/pip to uv package manager";
homepage = "https://mkniewallner.github.io/migrate-to-uv/";
changelog = "https://github.com/mkniewallner/migrate-to-uv/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ malik ];
mainProgram = "migrate-to-uv";
};
}

View File

@@ -0,0 +1,39 @@
{
stdenv,
lib,
fetchurl,
zlib,
mpi,
}:
stdenv.mkDerivation (finalAttrs: {
version = "5.0.6";
pname = "migrate";
src = fetchurl {
url = "https://peterbeerli.com/migrate-html5/download_version4/migrate-${finalAttrs.version}.src.tar.gz";
hash = "sha256-twkoR9L6VPUye12OC0B5w0PxcxyKain6RkhCswLEdwg=";
};
sourceRoot = "migrate-${finalAttrs.version}/src";
buildInputs = [
zlib
mpi
];
buildFlags = [
"thread"
"mpis"
];
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
description = "Estimates population size, migration, population splitting parameters using genetic/genomic data";
homepage = "https://peterbeerli.com/migrate-html5/index.html";
license = licenses.mit;
maintainers = [ maintainers.bzizou ];
platforms = platforms.unix;
mainProgram = "migrate-n";
};
})

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchzip,
}:
stdenv.mkDerivation rec {
pname = "migu";
version = "20150712";
srcs = [
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63545/migu-1p-${version}.zip";
sha256 = "04wpbk5xbbcv2rzac8yzj4ww7sk2hy2rg8zs96yxc5vzj9q7svf6";
})
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63545/migu-1c-${version}.zip";
sha256 = "1k7ymix14ac5fb44bjvbaaf24784zzpyc1jj2280c0zdnpxksyk6";
})
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63545/migu-1m-${version}.zip";
sha256 = "07r8id83v92hym21vrqmfsfxb646v8258001pkjhgfnfg1yvw8lm";
})
(fetchzip {
url = "mirror://osdn/mix-mplus-ipa/63545/migu-2m-${version}.zip";
sha256 = "1pvzbrawh43589j8rfxk86y1acjbgzzdy5wllvdkpm1qnx28zwc2";
})
];
dontUnpack = true;
installPhase = ''
find $srcs -name '*.ttf' | xargs install -m644 --target $out/share/fonts/truetype/migu -D
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "0nbpn21cxdd6gsgr3fadzjsnz84f2swpf81wmscmjgvd56ngndzh";
meta = with lib; {
description = "High-quality Japanese font based on modified M+ fonts and IPA fonts";
homepage = "http://mix-mplus-ipa.osdn.jp/migu/";
license = licenses.ipa;
maintainers = [ maintainers.mikoim ];
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
fetchFromGitHub,
buildGoModule,
nixosTests,
fetchpatch,
}:
buildGoModule rec {
pname = "mihomo";
version = "1.19.11";
src = fetchFromGitHub {
owner = "MetaCubeX";
repo = "mihomo";
rev = "v${version}";
hash = "sha256-nt2bnfKzGU+6gUaSqHfnbCnWLMDoAcISmlNYFeM4Xu8=";
};
patches = [
# https://github.com/MetaCubeX/mihomo/pull/2178
(fetchpatch {
url = "https://github.com/MetaCubeX/mihomo/commit/63ad95e10f40ffc90ec93497aac562765af7a471.patch";
hash = "sha256-ZE2dlr0t//Q1CVy2ql/TWuLEALdF1ZCYTOVK87bKWQg=";
})
# https://github.com/MetaCubeX/mihomo/pull/2177
(fetchpatch {
url = "https://github.com/MetaCubeX/mihomo/commit/b06ec5bef810ec8d009f52428188440df0484ce4.patch";
hash = "sha256-XQhlST4pa//+Bg5hWc2zADulz8FeEiHwB99Rw9o24b0=";
})
];
vendorHash = "sha256-k/Zjnq07+Sg+dwwcAf+ziInaDvlXn3bEG+QuxZ5lcM8=";
excludedPackages = [ "./test" ];
ldflags = [
"-s"
"-w"
"-X github.com/metacubex/mihomo/constant.Version=${version}"
];
tags = [
"with_gvisor"
];
# network required
doCheck = false;
passthru.tests = {
mihomo = nixosTests.mihomo;
};
meta = with lib; {
description = "Rule-based tunnel in Go";
homepage = "https://github.com/MetaCubeX/mihomo/tree/Alpha";
license = licenses.gpl3Only;
maintainers = with maintainers; [ oluceps ];
mainProgram = "mihomo";
};
}

View File

@@ -0,0 +1 @@
{ python3Packages }: with python3Packages; toPythonApplication mike

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
libmikmod,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "mikmod";
version = "3.2.8";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "1k54p8pn3jinha0f2i23ad15pf1pamibzcxjrbzjbklpcz1ipc6v";
};
patches = [
# Fix player startup crash due to stack overflow check:
# https://sourceforge.net/p/mikmod/patches/17/
(fetchpatch {
name = "fortify-source-3.patch";
url = "https://sourceforge.net/p/mikmod/patches/17/attachment/0001-mikmod-fix-startup-crash-on-_FROTIFY_SOURCE-3-system.patch";
stripLen = 1;
hash = "sha256-YtbnLTsW3oYPo4r3fh3DUd3DD5ogWrCNlrDcneY03U0=";
})
];
buildInputs = [
libmikmod
ncurses
];
meta = {
description = "Tracker music player for the terminal";
homepage = "http://mikmod.shlomifish.org/";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = with lib.platforms; linux;
mainProgram = "mikmod";
};
}

View File

@@ -0,0 +1,20 @@
diff --git a/Libraries/MiKTeX/Core/Session/filetypes.cpp b/Libraries/MiKTeX/Core/Session/filetypes.cpp
index 82e55382f..84ac206e9 100644
--- a/Libraries/MiKTeX/Core/Session/filetypes.cpp
+++ b/Libraries/MiKTeX/Core/Session/filetypes.cpp
@@ -198,6 +198,15 @@ void SessionImpl::RegisterFileType(FileType fileType)
searchPath.push_back(myPrefixBinCanon.ToString());
}
#endif
+ if (Utils::GetEnvironmentString("PATH", str))
+ {
+ PathName binDir(str);
+ binDir.Canonicalize();
+ if (std::find(searchPath.begin(), searchPath.end(), binDir.ToString()) == searchPath.end())
+ {
+ searchPath.push_back(binDir.ToString());
+ }
+ }
break;
}
case FileType::OTF:

View File

@@ -0,0 +1,242 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
runCommand,
biber,
# nativeBuildInputs
bison,
cmake,
curl,
flex,
fop,
libxslt,
pkg-config,
writableTmpDirAsHomeHook,
# buildInputs
apr,
aprutil,
boost,
bzip2,
cairo,
expat,
fontconfig,
freetype,
fribidi,
gd,
gmp,
graphite2,
harfbuzzFull,
hunspell,
libjpeg,
log4cxx,
xz,
mpfr,
mpfi,
libmspack,
libressl,
pixman,
libpng,
popt,
uriparser,
zziplib,
qt6Packages,
}:
let
# This is needed for some bootstrap packages.
webArchivePrefix = "https://web.archive.org/web/20250323131915if_";
miktexRemoteRepository = "https://ctan.org/tex-archive/systems/win32/miktex/tm/packages";
miktexLocalRepository =
runCommand "miktex-local-repository"
{
src1 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/miktex-zzdb1-2.9.tar.lzma";
hash = "sha256-XYhbKlxhVSOlCcm0IOs2ddFgAt/CWXJoY6IuLSw74y4=";
};
src2 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/miktex-zzdb3-2.9.tar.lzma";
hash = "sha256-5vLuGwjddqtJ5F/DtVKuRVRqgGNbkGFxRF41cXwseIs=";
};
src3 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/miktex-config-2.9.tar.lzma";
hash = "sha256-fkh5KL+BU+gl8Sih8xBLi1DOx2vMuSflXlSTchjlGWQ=";
};
src4 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/miktex-dvips.tar.lzma";
hash = "sha256-eJQdLhYetNlXAyyiGD/JRDA3fv0BbALwXtNfRxkLM7o=";
};
src5 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/miktex-fontconfig.tar.lzma";
hash = "sha256-dxH/0iIL3SnjCSXLGAcNTb5cGJb5AQmV/JbH5CcPHdk=";
};
src6 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/miktex-misc.tar.lzma";
hash = "sha256-ysNREvnKWseqqN59cwNzlV21UmccbjSGFyno8lv2H+M=";
};
src7 = fetchurl {
url = "${webArchivePrefix}/${miktexRemoteRepository}/tetex.tar.lzma";
hash = "sha256-DE1o66r2SFxxxuYeCRuFn6L1uBn26IFnje9b/qeVl6Q=";
};
}
''
mkdir $out
cp $src1 $out/miktex-zzdb1-2.9.tar.lzma
cp $src2 $out/miktex-zzdb3-2.9.tar.lzma
cp $src3 $out/miktex-config-2.9.tar.lzma
cp $src4 $out/miktex-dvips.tar.lzma
cp $src5 $out/miktex-fontconfig.tar.lzma
cp $src6 $out/miktex-misc.tar.lzma
cp $src7 $out/tetex.tar.lzma
'';
in
stdenv.mkDerivation (finalAttrs: {
pname = "miktex";
version = "25.4";
src = fetchFromGitHub {
owner = "miktex";
repo = "miktex";
tag = finalAttrs.version;
hash = "sha256-3QGW8rsettA+Jtrsi9C5ONIG4vP+iuUEUi9dGHfWMSY=";
};
patches = [
./startup-config-support-nix-store.patch
# Miktex will search exectables in "GetMyPrefix(true)/bin".
# The path evaluate to "/usr/bin" in FHS style linux distribution,
# compared to "/nix/store/.../bin" in NixOS.
# As a result, miktex will fail to find e.g. 'pkexec','ksudo','gksu'
# under /run/wrappers/bin in NixOS.
# We fix this by adding the PATH environment variable to exectables' search path.
./find-exectables-in-path.patch
];
postPatch = ''
# dont symlink fontconfig to /etc/fonts/conf.d
substituteInPlace Programs/MiKTeX/miktex/topics/fontmaps/commands/FontMapManager.cpp \
--replace-fail 'this->ctx->session->IsAdminMode()' 'false'
substituteInPlace \
Libraries/MiKTeX/App/app.cpp \
Programs/Editors/TeXworks/miktex/miktex-texworks.cpp \
Programs/MiKTeX/Console/Qt/main.cpp \
Programs/MiKTeX/PackageManager/mpm/mpm.cpp \
Programs/MiKTeX/Yap/MFC/StdAfx.h \
Programs/MiKTeX/initexmf/initexmf.cpp \
Programs/MiKTeX/miktex/miktex.cpp \
--replace-fail "log4cxx/rollingfileappender.h" "log4cxx/rolling/rollingfileappender.h"
substitute cmake/modules/FindPOPPLER_QT5.cmake \
cmake/modules/FindPOPPLER_QT6.cmake \
--replace-fail "QT5" "QT6" \
--replace-fail "qt5" "qt6"
substituteInPlace Programs/TeXAndFriends/omega/otps/source/outocp.c \
--replace-fail 'fprintf(stderr, s);' 'fprintf(stderr, "%s", s);'
''
# This patch fixes mismatch char types (signed int and unsigned int) on aarch64-linux platform.
# Should not be applied to other platforms otherwise the build will fail.
+ lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) ''
sed -i 's/--using-namespace=MiKTeX::TeXAndFriends/& --chars-are-unsigned/g' \
Programs/TeXAndFriends/Knuth/web/CMakeLists.txt
'';
strictDeps = true;
nativeBuildInputs = [
bison
cmake
curl
flex
fop
libxslt
pkg-config
writableTmpDirAsHomeHook
qt6Packages.wrapQtAppsHook
qt6Packages.qttools
qt6Packages.qt5compat
];
buildInputs = [
apr
aprutil
boost
bzip2
cairo
expat
fontconfig
freetype
fribidi
gd
gmp
graphite2
harfbuzzFull
hunspell
libjpeg
log4cxx
xz
mpfr
mpfi
libmspack
libressl
pixman
libpng
popt
uriparser
zziplib
qt6Packages.poppler
];
cmakeFlags = [
(lib.cmakeBool "WITH_BOOTSTRAPPING" true)
(lib.cmakeBool "USE_SYSTEM_POPPLER" true)
(lib.cmakeBool "USE_SYSTEM_POPPLER_QT" true)
(lib.cmakeBool "MIKTEX_SELF_CONTAINED" false)
# Miktex infers install prefix by stripping CMAKE_INSTALL_BINDIR from the called program.
# It should not be set to absolute path in default cmakeFlags, otherwise an infinite loop will happen.
(lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
(lib.cmakeFeature "CMAKE_INSTALL_LIBEXECDIR" "libexec")
(lib.cmakeFeature "MIKTEX_SYSTEM_LINK_TARGET_DIR" "${placeholder "out"}/bin")
(lib.cmakeFeature "MIKTEX_USER_LINK_TARGET_DIR" "${placeholder "out"}/bin")
];
env = {
LANG = "C.UTF-8";
MIKTEX_REPOSITORY = "file://${miktexLocalRepository}/";
};
enableParallelBuilding = false;
enableParallelChecking = false;
doCheck = true;
# Todo: figure out the exact binary to be Qt wrapped.
dontWrapQtApps = true;
postFixup = ''
wrapQtApp $out/bin/miktex-console
wrapQtApp $out/bin/miktex-texworks
$out/bin/miktexsetup finish --verbose
''
# Biber binary is missing on ctan.org for aarch64-linux platform.
+ lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) ''
ln -sf ${biber}/bin/biber $out/bin/biber
'';
meta = {
description = "Modern TeX distribution";
homepage = "https://miktex.org";
platforms = lib.platforms.linux;
license = with lib.licenses; [
lppl13c
gpl2Plus
gpl3Plus
publicDomain
];
maintainers = with lib.maintainers; [ qbisi ];
};
})

View File

@@ -0,0 +1,40 @@
diff --git a/Libraries/MiKTeX/Core/Session/unx/unxStartupConfig.cpp b/Libraries/MiKTeX/Core/Session/unx/unxStartupConfig.cpp
index 1728e7af9..727c36d8c 100644
--- a/Libraries/MiKTeX/Core/Session/unx/unxStartupConfig.cpp
+++ b/Libraries/MiKTeX/Core/Session/unx/unxStartupConfig.cpp
@@ -90,6 +90,10 @@ InternalStartupConfig SessionImpl::DefaultConfig(MiKTeXConfiguration config, Ver
{
pos = n - 2;
}
+ else if (n > 3 && splittedPrefix[1] == "nix" && splittedPrefix[2] == "store")
+ {
+ pos = 1;
+ }
if (pos < n)
{
PathName destdir;
@@ -98,10 +102,10 @@ InternalStartupConfig SessionImpl::DefaultConfig(MiKTeXConfiguration config, Ver
destdir /= splittedPrefix[i];
}
MIKTEX_ASSERT(MIKTEX_SYSTEM_VAR_LIB_DIR[0] == '/');
- ret.commonConfigRoot = destdir / (MIKTEX_SYSTEM_VAR_LIB_DIR + 1) / MIKTEX_PREFIX "texmf";
+ ret.commonConfigRoot = destdir / (MIKTEX_SYSTEM_VAR_LIB_DIR + 1) / MIKTEX_PREFIX "texmf" / "config";
MIKTEX_ASSERT(MIKTEX_SYSTEM_VAR_CACHE_DIR[0] == '/');
ret.commonDataRoot = destdir / (MIKTEX_SYSTEM_VAR_CACHE_DIR + 1) / MIKTEX_PREFIX "texmf";
- ret.commonInstallRoot = destdir / "usr" / "local" / MIKTEX_INSTALL_DIR;
+ ret.commonInstallRoot = destdir / (MIKTEX_SYSTEM_VAR_LIB_DIR + 1) / MIKTEX_PREFIX "texmf" / "install";
}
#endif
if (ret.commonConfigRoot.Empty())
@@ -124,9 +128,9 @@ InternalStartupConfig SessionImpl::DefaultConfig(MiKTeXConfiguration config, Ver
PathName myLoc = GetMyLocation(true);
#if defined(MIKTEX_MACOS_BUNDLE)
- ret.isSharedSetup = Utils::IsParentDirectoryOf(PathName("/usr"), myLoc) || Utils::IsParentDirectoryOf(PathName("/Applications"), myLoc) ? TriState::True : TriState::False;
+ ret.isSharedSetup = Utils::IsParentDirectoryOf(PathName("/nix/store"), myLoc) || Utils::IsParentDirectoryOf(PathName("/usr"), myLoc) || Utils::IsParentDirectoryOf(PathName("/Applications"), myLoc) ? TriState::True : TriState::False;
#else
- ret.isSharedSetup = Utils::IsParentDirectoryOf(PathName("/usr"), myLoc) || Utils::IsParentDirectoryOf(PathName("/opt"), myLoc) ? TriState::True : TriState::False;
+ ret.isSharedSetup = Utils::IsParentDirectoryOf(PathName("/nix/store"), myLoc) || Utils::IsParentDirectoryOf(PathName("/usr"), myLoc) || Utils::IsParentDirectoryOf(PathName("/opt"), myLoc) ? TriState::True : TriState::False;
#endif
return ret;

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
alsa-lib,
cmake,
libjack2,
lhasa,
makeWrapper,
pkg-config,
rtmidi,
SDL2,
zlib,
zziplib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "milkytracker";
version = "1.06";
src = fetchFromGitHub {
owner = "milkytracker";
repo = "MilkyTracker";
rev = "v${finalAttrs.version}";
hash = "sha256-IMX1+gJUghBxnaSTWnfDYzQVbKFQzQIS70H+L6ogVro=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
makeWrapper
pkg-config
];
buildInputs = [
lhasa
libjack2
rtmidi
SDL2
zlib
zziplib
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
];
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
install -Dm644 $src/resources/milkytracker.desktop $out/share/applications/milkytracker.desktop
install -Dm644 $src/resources/pictures/carton.png $out/share/pixmaps/milkytracker.png
install -Dm644 resources/org.milkytracker.MilkyTracker.metainfo.xml $out/share/appdata/org.milkytracker.MilkyTracker.metainfo.xml
'';
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "Music tracker application, similar to Fasttracker II";
homepage = "https://milkytracker.org/";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
# ibtool -> real Xcode -> I can't get that, and Ofborg can't test that
broken = stdenv.hostPlatform.isDarwin;
maintainers = with lib.maintainers; [ OPNA2608 ];
mainProgram = "milkytracker";
};
})

View File

@@ -0,0 +1,74 @@
{
autoPatchelfHook,
fetchurl,
jre,
lib,
makeWrapper,
sourcesJSON ? ./sources.json,
stdenvNoCC,
zlib,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "mill";
version = "1.0.4";
src =
let
source = (lib.importJSON sourcesJSON)."${stdenvNoCC.hostPlatform.system}";
in
fetchurl {
url = "https://repo1.maven.org/maven2/com/lihaoyi/mill-dist-${source.artifact-suffix}/${finalAttrs.version}/mill-dist-${source.artifact-suffix}-${finalAttrs.version}.exe";
inherit (source) hash;
};
buildInputs = [ zlib ];
nativeBuildInputs = [
makeWrapper
]
++ lib.optional stdenvNoCC.hostPlatform.isLinux autoPatchelfHook;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
# this is mostly downloading a pre-built artifact
preferLocal = true;
installPhase = ''
runHook preInstall
install -Dm 555 $src $out/bin/.mill-wrapped
# can't use wrapProgram because it sets --argv0
makeWrapper $out/bin/.mill-wrapped $out/bin/mill \
--prefix PATH : "${jre}/bin" \
--set-default JAVA_HOME "${jre}"
runHook postInstall
'';
meta = with lib; {
homepage = "https://com-lihaoyi.github.io/mill/";
license = licenses.mit;
description = "Build tool for Scala, Java and more";
mainProgram = "mill";
longDescription = ''
Mill is a build tool borrowing ideas from modern tools like Bazel, to let you build
your projects in a way that's simple, fast, and predictable. Mill has built in
support for the Scala programming language, and can serve as a replacement for
SBT, but can also be extended to support any other language or platform via
modules (written in Java or Scala) or through an external subprocesses.
'';
maintainers = with maintainers; [
scalavision
zenithal
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,18 @@
{
"aarch64-darwin": {
"artifact-suffix": "native-mac-aarch64",
"hash": "sha256-A9dShPyfkfTuRJ1/DkLwb/5NTRTxc7OY7Rd1h0Tzjos="
},
"x86_64-darwin": {
"artifact-suffix": "native-mac-amd64",
"hash": "sha256-zctTOVxFghF9z9PUQt3OO20Ul/qY8H/j6MPpFNpw+Ow="
},
"aarch64-linux": {
"artifact-suffix": "native-linux-aarch64",
"hash": "sha256-E+IMTkRP1a1TigpRyVHPu0assgHEbzbF8lv7Rsm2FOM="
},
"x86_64-linux": {
"artifact-suffix": "native-linux-amd64",
"hash": "sha256-rgAqlTCZc8nedUU2D+Klo3KY0z9sI0KJczdaugM3//8="
}
}

View File

@@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
buildGoModule,
}:
buildGoModule rec {
pname = "miller";
version = "6.15.0";
src = fetchFromGitHub {
owner = "johnkerl";
repo = "miller";
rev = "v${version}";
sha256 = "sha256-r+eayyxI+qFypDHavv9fOAl3rjjKeQxy8tXetmh/ZAI=";
};
outputs = [
"out"
"man"
];
vendorHash = "sha256-siLrJOMvsv8MkDVVK8xPn4tpyYSqoYT2Iku7ZP0NCk0=";
postInstall = ''
mkdir -p $man/share/man/man1
mv ./man/mlr.1 $man/share/man/man1
'';
subPackages = [ "cmd/mlr" ];
meta = with lib; {
description = "Like awk, sed, cut, join, and sort for data formats such as CSV, TSV, JSON, JSON Lines, and positionally-indexed";
homepage = "https://github.com/johnkerl/miller";
license = licenses.bsd2;
maintainers = with maintainers; [ mstarzyk ];
mainProgram = "mlr";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "millet";
version = "0.14.9";
src = fetchFromGitHub {
owner = "azdavis";
repo = "millet";
rev = "v${version}";
hash = "sha256-Ffna9qsCTRHnUstgCDZxHweHteYVA/xiAtOkzCw2ltI=";
};
cargoHash = "sha256-eQobRfvVdL68FeV/P/BL824sHEibC5eQoPeo6m6XJcI=";
postPatch = ''
rm .cargo/config.toml
'';
cargoBuildFlags = [
"--package"
"millet-ls"
];
cargoTestFlags = [
"--package"
"millet-ls"
];
meta = {
description = "Language server for Standard ML";
homepage = "https://github.com/azdavis/millet";
changelog = "https://github.com/azdavis/millet/blob/v${version}/docs/CHANGELOG.md";
license = [
lib.licenses.mit # or
lib.licenses.asl20
];
maintainers = [ ];
mainProgram = "millet-ls";
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
gitUpdater,
glib,
meson,
ninja,
pkg-config,
rustc,
libbsd,
libcamera,
gtk3,
libtiff,
zbar,
libjpeg,
libexif,
libraw,
libpulseaudio,
ffmpeg-headless,
v4l-utils,
makeWrapper,
python3,
}:
stdenv.mkDerivation rec {
pname = "millipixels";
version = "0.23.0";
src = fetchFromGitLab {
owner = "Librem5";
repo = "millipixels";
rev = "v${version}";
domain = "source.puri.sm";
hash = "sha256-Sj14t6LeZWNONcgrwJxN4J1/85m1SLgmmcRnHQUULHI=";
};
patches = [
# fix for https://source.puri.sm/Librem5/millipixels/-/issues/87, can be removed with the next release (if there ever will be one)
(fetchpatch {
url = "https://source.puri.sm/Librem5/millipixels/-/commit/5a0776993051a0af54c148702f36dbbf1064b917.patch?merge_request_iid=105";
hash = "sha256-OdjTFHMx64eb94/kSCaxeM/Ju/JxOPoorw2ogwTPP3s=";
})
];
nativeBuildInputs = [
glib
meson
ninja
pkg-config
rustc
makeWrapper
];
buildInputs = [
libbsd
libcamera
gtk3
libtiff
zbar
libpulseaudio
libraw
libexif
libjpeg
python3
];
postInstall = ''
wrapProgram $out/bin/millipixels \
--prefix PATH : ${
lib.makeBinPath [
v4l-utils
ffmpeg-headless
]
}
'';
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = with lib; {
description = "Camera application for the Librem 5";
homepage = "https://source.puri.sm/Librem5/millipixels";
license = licenses.gpl3Only;
maintainers = with maintainers; [ _999eagle ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
unzip,
pkg-config,
glib,
llvm,
llvmPackages,
}:
stdenv.mkDerivation {
pname = "milu-nightly";
version = "2016-05-09";
src = fetchFromGitHub {
owner = "yuejia";
repo = "Milu";
rev = "b5f2521859c0319d321ad3c1ad793b826ab5f6e1";
hash = "sha256-0w7SOZONj2eLX/E0VIrCZutSXTY648P3pTxSRgCnj5E=";
};
hardeningDisable = [ "format" ];
preConfigure = ''
substituteInPlace Makefile \
--replace-fail /usr/bin/ "" \
--replace-fail bin/milu $out/bin/milu
'';
nativeBuildInputs = [
pkg-config
unzip
];
buildInputs = [
glib
llvm.dev
llvmPackages.libclang
];
preBuild = ''
mkdir -p $out/bin
'';
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-incompatible-pointer-types"
"-Wno-implicit-function-declaration"
"-Wno-error=int-conversion"
];
# `make all` already installs the binaries
dontInstall = true;
meta = {
description = "Higher Order Mutation Testing Tool for C and C++ programs";
homepage = "https://github.com/yuejia/Milu";
license = lib.licenses.bsd2;
platforms = lib.platforms.linux;
maintainers = [ ];
mainProgram = "milu";
};
}

View File

@@ -0,0 +1,92 @@
{
cmake,
crocoddyl,
ctestCheckHook,
fetchFromGitHub,
lib,
llvmPackages,
pkg-config,
proxsuite,
python3Packages,
pythonSupport ? false,
stdenv,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mim-solvers";
version = "0.1.1";
src = fetchFromGitHub {
owner = "machines-in-motion";
repo = "mim_solvers";
rev = "v${finalAttrs.version}";
hash = "sha256-1Mqu9Hfy65HUIOVG/gJBpSMlOwDWVcH+LrR8CaWz0BE=";
};
# eigenpy is not used without python support
postPatch = lib.optionalString (!pythonSupport) ''
substituteInPlace CMakeLists.txt --replace-fail \
"add_project_dependency(eigenpy 2.7.10 REQUIRED)" \
""
'';
nativeBuildInputs = [
cmake
pkg-config
]
++ lib.optional pythonSupport python3Packages.pythonImportsCheckHook;
buildInputs = lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp;
propagatedBuildInputs =
lib.optionals pythonSupport [
python3Packages.crocoddyl
python3Packages.osqp
python3Packages.proxsuite
python3Packages.scipy
]
++ lib.optionals (!pythonSupport) [
crocoddyl
proxsuite
];
cmakeFlags = [
(lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
(lib.cmakeBool "BUILD_WITH_PROXSUITE" true)
]
++ lib.optional (stdenv.hostPlatform.isDarwin) (
lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'py-test-clqr-osqp'"
)
++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) (
lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'test_solvers'"
);
nativeCheckInputs = [
ctestCheckHook
];
disabledTests = [
# Fails with osqp>=1.0.0
# See https://github.com/machines-in-motion/mim_solvers/pull/66
"py-test-clqr-osqp"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# Several errors such as:
# /build/source/tests/test_solvers.cpp(296):
# error: in "test_SolverCSQP__PointMass1D_X-Ineq-All_U-Eq-All/boost__bind(&test_solver_convergence_ solver_type_ problem_type_ model_type_ x_cstr_type_ u_cstr_type)":
# check solver_cast->get_norm_dual() <= solver_cast->get_norm_dual_tolerance() has failed
# Reported upstream: https://github.com/machines-in-motion/mim_solvers/issues/69
"test_solvers"
];
doCheck = true;
pythonImportsCheck = [ "mim_solvers" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Numerical solvers used in the Machines in Motion Laboratory";
homepage = "https://github.com/machines-in-motion/mim_solvers";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ nim65s ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
secureBuild ? false,
}:
let
soext = stdenv.hostPlatform.extensions.sharedLibrary;
in
stdenv.mkDerivation rec {
pname = "mimalloc";
version = "3.1.5";
src = fetchFromGitHub {
owner = "microsoft";
repo = "mimalloc";
rev = "v${version}";
sha256 = "sha256-fk6nfyBFS1G0sJwUJVgTC1+aKd0We/JjsIYTO+IOfyg=";
};
doCheck = !stdenv.hostPlatform.isStatic;
preCheck =
let
ldLibraryPathEnv = if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
in
''
export ${ldLibraryPathEnv}="$(pwd)/build:''${${ldLibraryPathEnv}}"
'';
nativeBuildInputs = [
cmake
ninja
];
cmakeFlags = [
"-DMI_INSTALL_TOPLEVEL=ON"
]
++ lib.optionals secureBuild [ "-DMI_SECURE=ON" ]
++ lib.optionals stdenv.hostPlatform.isStatic [ "-DMI_BUILD_SHARED=OFF" ]
++ lib.optionals (!doCheck) [ "-DMI_BUILD_TESTS=OFF" ];
postInstall =
let
rel = lib.versions.majorMinor version;
suffix = if stdenv.hostPlatform.isLinux then "${soext}.${rel}" else ".${rel}${soext}";
in
''
# first, move headers and cmake files, that's easy
mkdir -p $dev/lib
mv $out/lib/cmake $dev/lib/
find $dev $out -type f
''
+ (lib.optionalString secureBuild ''
# pretend we're normal mimalloc
ln -sfv $out/lib/libmimalloc-secure${suffix} $out/lib/libmimalloc${suffix}
ln -sfv $out/lib/libmimalloc-secure${suffix} $out/lib/libmimalloc${soext}
ln -sfv $out/lib/libmimalloc-secure.a $out/lib/libmimalloc.a
ln -sfv $out/lib/mimalloc-secure.o $out/lib/mimalloc.o
'');
outputs = [
"out"
"dev"
];
meta = with lib; {
description = "Compact, fast, general-purpose memory allocator";
homepage = "https://github.com/microsoft/mimalloc";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = with maintainers; [
kamadorueda
thoughtpolice
];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
fetchurl,
desktop-file-utils,
file,
python3Packages,
}:
let
version = "2023";
in
python3Packages.buildPythonApplication {
pname = "mimeo";
inherit version;
pyproject = true;
src = fetchurl {
url = "https://xyne.dev/projects/mimeo/src/mimeo-${version}.tar.xz";
hash = "sha256-CahvSypwR1aHVDHTdtty1ZfaKBWPolxc73uZ5OyeqZA=";
};
build-system = [ python3Packages.setuptools ];
dependencies = [ python3Packages.pyxdg ];
postPatch = ''
substituteInPlace Mimeo.py \
--replace-fail "EXE_UPDATE_DESKTOP_DATABASE = 'update-desktop-database'" \
"EXE_UPDATE_DESKTOP_DATABASE = '${desktop-file-utils}/bin/update-desktop-database'" \
--replace-fail "EXE_FILE = 'file'" \
"EXE_FILE = '${file}/bin/file'"
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/mimeo --help > /dev/null
'';
meta = with lib; {
description = "Open files by MIME-type or file name using regular expressions";
homepage = "https://xyne.dev/projects/mimeo/";
license = [ licenses.gpl2Only ];
maintainers = [ maintainers.rycee ];
platforms = platforms.unix;
mainProgram = "mimeo";
};
}

View File

@@ -0,0 +1,32 @@
diff -ru a/mimetic/codec/base64.cxx b/mimetic/codec/base64.cxx
--- a/mimetic/codec/base64.cxx 2014-06-17 10:12:00.000000000 +0200
+++ b/mimetic/codec/base64.cxx 2020-07-30 20:54:10.212742011 +0200
@@ -14,19 +14,19 @@
"0123456789+/=";
const char Base64::sDecTable[] = {
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,-1,-1,62,-1,-1,-1,63,52,53,
- 54,55,56,57,58,59,60,61,-1,-1,
- -1, eq_sign, -1,-1,-1, 0, 1, 2, 3, 4,
+ 255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,62,255,255,255,63,52,53,
+ 54,55,56,57,58,59,60,61,255,255,
+ 255, eq_sign, 255,255,255, 0, 1, 2, 3, 4,
5, 6, 7, 8, 9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
- 25,-1,-1,-1,-1,-1,-1,26,27,28,
+ 25,255,255,255,255,255,255,26,27,28,
29,30,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,47,48,
- 49,50,51,-1
+ 49,50,51,255
};
const int Base64::sDecTableSz = sizeof(Base64::sDecTable) / sizeof(char);

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
cutee,
}:
stdenv.mkDerivation rec {
pname = "mimetic";
version = "0.9.8";
src = fetchurl {
url = "http://www.codesink.org/download/${pname}-${version}.tar.gz";
sha256 = "003715lvj4nx23arn1s9ss6hgc2yblkwfy5h94li6pjz2a6xc1rs";
};
buildInputs = [ cutee ];
patches = [
# Fix build with gcc11
(fetchpatch {
url = "https://github.com/tat/mimetic/commit/bf84940f9021950c80846e6b1a5f8b0b55991b00.patch";
sha256 = "sha256-1JW9zPg67BgNsdIjK/jp9j7QMg50eRMz5FsDsbbzBlI=";
})
]
++ lib.optional stdenv.hostPlatform.isAarch64 ./narrowing.patch;
meta = with lib; {
description = "MIME handling library";
homepage = "https://www.codesink.org/mimetic_mime_library.html";
license = licenses.mit;
maintainers = with maintainers; [ leenaars ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,72 @@
{
config,
lib,
stdenv,
autoreconfHook,
fetchFromGitHub,
fetchpatch,
pkg-config,
makeWrapper,
alsa-lib,
alsa-plugins,
libtool,
icu,
pcre2,
pulseaudioSupport ? config.pulseaudio or false,
libpulseaudio,
}:
stdenv.mkDerivation rec {
pname = "mimic";
version = "1.3.0.1";
src = fetchFromGitHub {
owner = "MycroftAI";
repo = "mimic1";
rev = version;
sha256 = "1agwgby9ql8r3x5rd1rgx3xp9y4cdg4pi3kqlz3vanv9na8nf3id";
};
patches = [
# Pull upstream fix for -fno-common toolchains:
# https://github.com/MycroftAI/mimic1/pull/216
(fetchpatch {
name = "fno-common";
url = "https://github.com/MycroftAI/mimic1/commit/77b36eaeb2c38eba571b8db7e9bb0fd507774e6d.patch";
sha256 = "0n3hqrfpbdp44y0c8bq55ay9m4c96r09k18hjxka4x54j5c7lw1m";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
makeWrapper
];
buildInputs = [
alsa-lib
alsa-plugins
libtool
icu
pcre2
]
++ lib.optional pulseaudioSupport libpulseaudio;
env.NIX_CFLAGS_COMPILE = toString [
# Needed with GCC 12
"-Wno-error=free-nonheap-object"
];
postInstall = ''
wrapProgram $out/bin/mimic \
--run "export ALSA_PLUGIN_DIR=${alsa-plugins}/lib/alsa-lib"
'';
meta = {
description = "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)";
homepage = "https://mimic.mycroft.ai/";
license = lib.licenses.free;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.fx-chun ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
fetchzip,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "mimikatz";
version = "2.2.0-20220919";
src = fetchzip {
url = "https://github.com/gentilkiwi/mimikatz/releases/download/${finalAttrs.version}/mimikatz_trunk.zip";
hash = "sha256-wmatI/rEMziBdNiA3HE3MJ0ckdpvsD+LdbB7SKOYdI0=";
stripRoot = false;
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/windows/mimikatz
cp -a * $out/share/windows/mimikatz/
runHook postInstall
'';
meta = {
homepage = "https://github.com/gentilkiwi/mimikatz";
description = "Little tool to play with Windows security";
license = with lib.licenses; [ cc-by-40 ];
maintainers = with lib.maintainers; [ d3vil0p3r ];
platforms = lib.platforms.all;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,72 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
nix-update-script,
}:
buildGoModule rec {
pname = "mimir";
version = "2.17.1";
src = fetchFromGitHub {
rev = "mimir-${version}";
owner = "grafana";
repo = "mimir";
hash = "sha256-Ob0l+C5LnFL1yl76/cdSX83bHEcamPlb9Sau8rMO2sM=";
};
vendorHash = null;
subPackages = [
"cmd/mimir"
"cmd/mimirtool"
]
++ (map (pathName: "tools/${pathName}") [
"compaction-planner"
"copyblocks"
"copyprefix"
"delete-objects"
"list-deduplicated-blocks"
"listblocks"
"mark-blocks"
"splitblocks"
"tenant-injector"
"undelete-blocks"
]);
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"mimir-([0-9.]+)"
];
};
tests = {
inherit (nixosTests) mimir;
};
};
ldflags =
let
t = "github.com/grafana/mimir/pkg/util/version";
in
[
"-s"
"-w"
"-X ${t}.Version=${version}"
"-X ${t}.Revision=unknown"
"-X ${t}.Branch=unknown"
];
meta = with lib; {
description = "Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus. ";
homepage = "https://github.com/grafana/mimir";
license = licenses.agpl3Only;
maintainers = with maintainers; [
happysalada
bryanhonof
adamcstephens
];
};
}

257
pkgs/by-name/mi/min-ed-launcher/deps.json generated Normal file
View File

@@ -0,0 +1,257 @@
[
{
"pname": "Expecto",
"version": "10.2.1",
"hash": "sha256-DgwHFsPMySlnMag4kPTviTwrNOD7uPnnJLi9DCZif5s="
},
{
"pname": "Expecto.FsCheck",
"version": "10.2.1",
"hash": "sha256-+IDkxZKfEir5/TJrwxMFC4H6voWbSmCsvZUrjxcbc50="
},
{
"pname": "FsCheck",
"version": "2.16.5",
"hash": "sha256-+UXoE+QGCDN1LM+XgseKJ7c5Lj/Cblo3izmo7GtIE0A="
},
{
"pname": "FsConfig",
"version": "4.1.0",
"hash": "sha256-daaTrzhZjnJLDL49vOCkeXX6W5PWaLj5aqHuaYgiS1s="
},
{
"pname": "FSharp.Core",
"version": "8.0.200",
"hash": "sha256-wjYiedFiqOTKaM4mF6uT9kc/yKDJ78mqfw9qLoBFHOw="
},
{
"pname": "FSharp.Data",
"version": "6.4.0",
"hash": "sha256-8/iQA6anTybzseyvsvFV33jVVwrnYiKG1iqgwkqNeRc="
},
{
"pname": "FSharp.Data.Csv.Core",
"version": "6.4.0",
"hash": "sha256-jcw/6uDN0he/PhhopEvTydy2X13Xt3g3kKuVdt+8+oY="
},
{
"pname": "FSharp.Data.Html.Core",
"version": "6.4.0",
"hash": "sha256-HeljybTU019Z7HxFoErPM/HIAm32pJiKQM+kSyt63xw="
},
{
"pname": "FSharp.Data.Http",
"version": "6.4.0",
"hash": "sha256-Zn4dZCb46vr8LYR5donzeistFPSO8YYiXUU3Iqo+vKg="
},
{
"pname": "FSharp.Data.Json.Core",
"version": "6.4.0",
"hash": "sha256-dVhcVzUi//PFFFIML/5SWKrileeQ6IOd1VlGyEptaw0="
},
{
"pname": "FSharp.Data.Runtime.Utilities",
"version": "6.4.0",
"hash": "sha256-nD4U7mwZtFEUcD9XvPxhpot8FNl2YyhiLpjpjmFNAO0="
},
{
"pname": "FSharp.Data.WorldBank.Core",
"version": "6.4.0",
"hash": "sha256-ea2CZyHisqa1MnF70TBKfcMl6+W90MnLJ5Ctgjfk9SM="
},
{
"pname": "FSharp.Data.Xml.Core",
"version": "6.4.0",
"hash": "sha256-6eZWKdNjKMqufyOYolTximIS41gipBUNMKNn3HEiYw0="
},
{
"pname": "FSharpx.Collections",
"version": "3.1.0",
"hash": "sha256-CmDCfx19VNthqZHphYywOK0attxyJjOhu2srNKSky10="
},
{
"pname": "FsToolkit.ErrorHandling",
"version": "4.15.2",
"hash": "sha256-fzsnH7178Gr0pnFoXkJvqRc2s5c+MXuRKQHBifIhmQk="
},
{
"pname": "FsToolkit.ErrorHandling.TaskResult",
"version": "4.15.2",
"hash": "sha256-I/3BXTQQzVSlldcfaVZ849/PirOcozM5GLCmfL2qHWg="
},
{
"pname": "Microsoft.CodeCoverage",
"version": "17.9.0",
"hash": "sha256-OaGa4+jRPHs+T+p/oekm2Miluqfd2IX8Rt+BmUx8kr4="
},
{
"pname": "Microsoft.Extensions.Configuration",
"version": "8.0.0",
"hash": "sha256-9BPsASlxrV8ilmMCjdb3TiUcm5vFZxkBnAI/fNBSEyA="
},
{
"pname": "Microsoft.Extensions.Configuration.Abstractions",
"version": "8.0.0",
"hash": "sha256-4eBpDkf7MJozTZnOwQvwcfgRKQGcNXe0K/kF+h5Rl8o="
},
{
"pname": "Microsoft.Extensions.Configuration.Binder",
"version": "8.0.1",
"hash": "sha256-KYPQYYspiBGiez7JshmEjy4kFt7ASzVxQeVsygIEvHA="
},
{
"pname": "Microsoft.Extensions.Configuration.FileExtensions",
"version": "8.0.0",
"hash": "sha256-BCxcjVP+kvrDDB0nzsFCJfU74UK4VBvct2JA4r+jNcs="
},
{
"pname": "Microsoft.Extensions.Configuration.Json",
"version": "8.0.0",
"hash": "sha256-Fi/ijcG5l0BOu7i96xHu96aN5/g7zO6SWQbTsI3Qetg="
},
{
"pname": "Microsoft.Extensions.FileProviders.Abstractions",
"version": "8.0.0",
"hash": "sha256-uQSXmt47X2HGoVniavjLICbPtD2ReQOYQMgy3l0xuMU="
},
{
"pname": "Microsoft.Extensions.FileProviders.Physical",
"version": "8.0.0",
"hash": "sha256-29y5ZRQ1ZgzVOxHktYxyiH40kVgm5un2yTGdvuSWnRc="
},
{
"pname": "Microsoft.Extensions.FileSystemGlobbing",
"version": "8.0.0",
"hash": "sha256-+Oz41JR5jdcJlCJOSpQIL5OMBNi+1Hl2d0JUHfES7sU="
},
{
"pname": "Microsoft.Extensions.Primitives",
"version": "8.0.0",
"hash": "sha256-FU8qj3DR8bDdc1c+WeGZx/PCZeqqndweZM9epcpXjSo="
},
{
"pname": "Microsoft.Extensions.TimeProvider.Testing",
"version": "8.5.0",
"hash": "sha256-ZGXrOV/qJVfjwrJsv3jtC80IVQyH3OLOw70gCIn6uIM="
},
{
"pname": "Microsoft.NET.Test.Sdk",
"version": "17.9.0",
"hash": "sha256-q/1AJ7eNlk02wvN76qvjl2xBx5iJ+h5ssiE/4akLmtI="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "5.0.0",
"hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="
},
{
"pname": "Microsoft.TestPlatform.ObjectModel",
"version": "17.9.0",
"hash": "sha256-iiXUFzpvT8OWdzMj9FGJDqanwHx40s1TXVY9l3ii+s0="
},
{
"pname": "Microsoft.TestPlatform.TestHost",
"version": "17.9.0",
"hash": "sha256-1BZIY1z+C9TROgdTV/tq4zsPy7Q71GQksr/LoMKAzqU="
},
{
"pname": "Microsoft.Win32.Registry",
"version": "5.0.0",
"hash": "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="
},
{
"pname": "Mono.Cecil",
"version": "0.11.4",
"hash": "sha256-HrnRgFsOzfqAWw0fUxi/vkzZd8dMn5zueUeLQWA9qvs="
},
{
"pname": "Mono.Posix.NETStandard",
"version": "5.20.1-preview",
"hash": "sha256-gLtcH308/VVYgZcrJtvXDkBIMIQjK8w35AcmuxYYTvM="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.1",
"hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="
},
{
"pname": "Serilog",
"version": "3.1.1",
"hash": "sha256-L263y8jkn7dNFD2jAUK6mgvyRTqFe39i1tRhVZsNZTI="
},
{
"pname": "Serilog.Sinks.Console",
"version": "5.0.1",
"hash": "sha256-aveoZM25ykc2haBHCXWD09jxZ2t2tYIGmaNTaO2V0jI="
},
{
"pname": "Serilog.Sinks.File",
"version": "5.0.0",
"hash": "sha256-GKy9hwOdlu2W0Rw8LiPyEwus+sDtSOTl8a5l9uqz+SQ="
},
{
"pname": "Serilog.Sinks.File.Header",
"version": "1.0.2",
"hash": "sha256-2igOXIHtojhhNlg/C5OhPwmVUoE5MpmgApi8dFmutx4="
},
{
"pname": "System.Collections.Immutable",
"version": "6.0.0",
"hash": "sha256-DKEbpFqXCIEfqp9p3ezqadn5b/S1YTk32/EQK+tEScs="
},
{
"pname": "System.Reflection.Metadata",
"version": "1.6.0",
"hash": "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "6.0.0",
"hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I="
},
{
"pname": "System.Security.AccessControl",
"version": "5.0.0",
"hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="
},
{
"pname": "System.Security.Cryptography.ProtectedData",
"version": "8.0.0",
"hash": "sha256-fb0pa9sQxN+mr0vnXg1Igbx49CaOqS+GDkTfWNboUvs="
},
{
"pname": "System.Security.Permissions",
"version": "8.0.0",
"hash": "sha256-+YUPY+3HnTmfPLZzr+5qEk0RqalCbFZBgLXee1yCH1M="
},
{
"pname": "System.Security.Principal.Windows",
"version": "5.0.0",
"hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="
},
{
"pname": "System.Text.Encodings.Web",
"version": "8.0.0",
"hash": "sha256-IUQkQkV9po1LC0QsqrilqwNzPvnc+4eVvq+hCvq8fvE="
},
{
"pname": "System.Text.Json",
"version": "8.0.0",
"hash": "sha256-XFcCHMW1u2/WujlWNHaIWkbW1wn8W4kI0QdrwPtWmow="
},
{
"pname": "System.Windows.Extensions",
"version": "8.0.0",
"hash": "sha256-aHkz7LtmUDDRS7swQM0i6dDVUytRCMYeA2CfaeVA2Y0="
},
{
"pname": "TypeShape",
"version": "10.0.0",
"hash": "sha256-esJFuRvxuLXwBgi/7FjEVm1ATCGXU/yB2RtgN4ilZtg="
},
{
"pname": "YoloDev.Expecto.TestSdk",
"version": "0.14.3",
"hash": "sha256-3FIZM+GYsBsFGhLsasF7Ia9nXHSpqooQNe5H7ANy334="
}
]

View File

@@ -0,0 +1,36 @@
{
lib,
buildDotnetModule,
fetchFromGitHub,
git,
}:
buildDotnetModule rec {
pname = "min-ed-launcher";
version = "0.12.2";
src = fetchFromGitHub {
owner = "rfvgyhn";
repo = "min-ed-launcher";
tag = "v${version}";
hash = "sha256-jx8R/8mWuluD7ub8J3UqiP4A8k1npBgZpqRti3mhBrM=";
leaveDotGit = true; # During build the current commit is appended to the version
};
projectFile = "MinEdLauncher.sln";
nugetDeps = ./deps.json;
buildInputs = [
git # During build the current commit is appended to the version
];
executables = [ "MinEdLauncher" ];
meta = {
homepage = "https://github.com/rfvgyhn/min-ed-launcher";
description = "Minimal Elite Dangerous Launcher";
license = lib.licenses.mit;
platforms = lib.platforms.x86_64;
mainProgram = "MinEdLauncher";
maintainers = with lib.maintainers; [ jiriks74 ];
};
}

View File

@@ -0,0 +1,52 @@
{
"depends": [
{
"method": "fetchzip",
"path": "/nix/store/6aph9sfwcws7pd2725fwjnibdfrv7qmw-source",
"rev": "f8f6bd34bfa3fe12c64b919059ad856a96efcba0",
"sha256": "11m1rb6rzk70kvskppf97ddzgf5fnh9crjziqc6hib0jgsm5d615",
"url": "https://github.com/nim-lang/checksums/archive/f8f6bd34bfa3fe12c64b919059ad856a96efcba0.tar.gz",
"ref": "v0.2.1",
"packages": [
"checksums"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/9iz31kiizzg76vpcc5jq53rf0wzjvbh8-source",
"rev": "21c8e279e257b0bc2a063b34e2304ea3aade21ec",
"sha256": "05g7w61ql9kgrmnpm64y94lkiwj36i551c387gc71lz3dpllcn6q",
"url": "https://github.com/guzba/zippy/archive/21c8e279e257b0bc2a063b34e2304ea3aade21ec.tar.gz",
"ref": "0.5.14",
"packages": [
"zippy"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/mys0888vyyd12h0qhzg709jk9jb6rmxa-source",
"rev": "83e2866422788a1db1906734de056b410a49d047",
"sha256": "0g1mcpfx42wnv2sg551gbgfralp7bf9fv83l2inbv2bhb063fx0z",
"url": "https://github.com/GULPF/nimquery/archive/83e2866422788a1db1906734de056b410a49d047.tar.gz",
"ref": "v2.0.1",
"packages": [
"nimquery"
],
"srcDir": ""
},
{
"method": "fetchzip",
"path": "/nix/store/bn7iv51yqbqi0h8z1r9v2vmpqnz46yfr-source",
"rev": "c138b34bf3c5198c26ecfad5e251fa5d56e5ad48",
"sha256": "0wwfhjhwpmanjv4vv9yl0a0mami9x8qzzb5nialcfp9iasbwiqgj",
"url": "https://github.com/h3rald/minline/archive/c138b34bf3c5198c26ecfad5e251fa5d56e5ad48.tar.gz",
"ref": "v0.1.2",
"packages": [
"minline"
],
"srcDir": "."
}
]
}

View File

@@ -0,0 +1,44 @@
{
lib,
buildNimPackage,
fetchFromGitHub,
openssl,
pcre,
}:
buildNimPackage (finalAttrs: {
pname = "min";
version = "0.45.0";
src = fetchFromGitHub {
owner = "h3rald";
repo = "min";
rev = "v${finalAttrs.version}";
hash = "sha256-Uw03aSFn3EV3H2SkYoYzM5S/WLhEmLV8s3mRF3oT8ro=";
};
lockFile = ./lock.json;
buildInputs = [
openssl
pcre
];
prePatch = ''
# remove vendorabilities
find . -name '*.a' -delete
find minpkg/lib -name '*.nim' \
-exec sed 's|{\.passL:.*\.}|discard|g' -i {} \;
'';
NIX_LDFLAGS = [ "-lpcre" ];
meta = {
description = "Functional, concatenative programming language with a minimalist syntax";
homepage = "https://min-lang.org/";
changelog = "https://github.com/h3rald/min/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
mainProgram = "min";
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
makeWrapper,
perlPackages,
libminc,
octave,
coreutils,
minc_tools,
}:
stdenv.mkDerivation {
pname = "minc-widgets";
version = "unstable-2016-04-20";
src = fetchFromGitHub {
owner = "BIC-MNI";
repo = "minc-widgets";
rev = "f08b643894c81a1a2e0fbfe595a17a42ba8906db";
sha256 = "1b9g6lf37wpp211ikaji4rf74rl9xcmrlyqcw1zq3z12ji9y33bm";
};
nativeBuildInputs = [
cmake
makeWrapper
];
buildInputs = [ libminc ];
propagatedBuildInputs =
(with perlPackages; [
perl
GetoptTabular
MNI-Perllib
])
++ [
octave
coreutils
minc_tools
];
postFixup = ''
for p in $out/bin/*; do
wrapProgram $p --prefix PERL5LIB : $PERL5LIB --set PATH "${
lib.makeBinPath [
coreutils
minc_tools
]
}";
done
'';
meta = with lib; {
homepage = "https://github.com/BIC-MNI/minc-widgets";
description = "Collection of Perl and shell scripts for processing MINC files";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix;
license = licenses.free;
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchFromGitHub,
desktop-file-utils,
meson,
ninja,
pkg-config,
python3,
shared-mime-info,
vala,
wrapGAppsHook3,
cairo,
discount,
glib,
gtk3,
gtksourceview4,
hicolor-icon-theme, # for setup-hook
json-glib,
libarchive,
libgee,
libhandy,
libxml2,
pantheon,
}:
stdenv.mkDerivation rec {
pname = "minder";
version = "1.17.0";
src = fetchFromGitHub {
owner = "phase1geo";
repo = "minder";
rev = version;
sha256 = "sha256-LZm2TLUugW/lSHp+y3Sz9IacQCEFQloVnZ9MoBjqHvI=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python3
shared-mime-info
vala
wrapGAppsHook3
];
buildInputs = [
cairo
discount
glib
gtk3
gtksourceview4
hicolor-icon-theme
json-glib
libarchive
libgee
libhandy
libxml2
pantheon.granite
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
postFixup = ''
for x in $out/bin/*; do
ln -vrs $x "$out/bin/''${x##*.}"
done
'';
meta = with lib; {
description = "Mind-mapping application for elementary OS";
homepage = "https://github.com/phase1geo/Minder";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "com.github.phase1geo.minder";
};
}

View File

@@ -0,0 +1,33 @@
From 9dbfa680db6bfd1033772dda753120fe4452e0d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <milan@petabyte.dev>
Date: Fri, 8 Jan 2021 04:49:14 +0100
Subject: [PATCH] fix include path for SDL2 on linux
---
.../src/arc/backend/sdl/jni/SDL.java | 8 --------
1 file changed, 8 deletions(-)
diff --git a/backends/backend-sdl/src/arc/backend/sdl/jni/SDL.java b/backends/backend-sdl/src/arc/backend/sdl/jni/SDL.java
index 62d9286a..2853119d 100644
--- a/Arc/backends/backend-sdl/src/arc/backend/sdl/jni/SDL.java
+++ b/Arc/backends/backend-sdl/src/arc/backend/sdl/jni/SDL.java
@@ -8,16 +8,8 @@ import java.nio.*;
public class SDL{
/*JNI
- #ifdef __APPLE__
-
#include "SDL2/SDL.h"
- #else
-
- #include "SDL.h"
-
- #endif
-
*/
static{
--
2.29.2

322
pkgs/by-name/mi/mindustry/deps.json generated Normal file
View File

@@ -0,0 +1,322 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.savannah.gnu.org": {
"releases/freetype/freetype-2.10.4": {
"tar.gz": "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw="
}
},
"https://github.com": {
"nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0": {
"zip": "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ="
}
},
"https://jitpack.io/com/github": {
"Anuken#jabel/0.9.0": {
"jar": "sha256-uFYvq/P7dVZNH8xfSZPmm57JI+h47A7YqOaN3bsFLuo=",
"module": "sha256-r0Hiyh4MXzQkBudNhixHcXf1QOr4GWU841ypzRa0w/g=",
"pom": "sha256-2Zp//AsIqW7/+5ybmtConz5ykh3ZYrFBi6SzLuKTz8A="
},
"Anuken#rhino/73a812444ac388ac2d94013b5cadc8f70b7ea027": {
"jar": "sha256-g2+szbtgsHvalu5F4kygVDN89kk0zvzVSw3EOcAL11I=",
"module": "sha256-BbXoWzXoJGKhH6kA6EiluDHhfs3th9X+ojLLZuGISOg=",
"pom": "sha256-ngLvPqdMq7ayWlDHf7qr8MGYsDh+uMK6OYcDX9y5bXk="
},
"Anuken#steamworks4j/0b86023401880bb5e586bc404bedbaae9b1f1c94": {
"jar": "sha256-YbaPhCjWtlExwQ1dFNA6JrkiAfQYWxJ0VRV9rLnoYhY=",
"pom": "sha256-ktvhk8s3T1zswrYWuXz+cWHRyK3YbkikD5Sv/gjcfz4="
},
"libgdx/gdx-jnigen#gdx-jnigen-gradle/dffc32eecbf77aad264991ea44f1767a58cbee9d": {
"jar": "sha256-nuUxM4zDV48+8Z+Rsn2dhEhkH4wOcfG62lz84BUhDH0=",
"module": "sha256-OU9DEb3A9A7OtnJ6jQkS32KImMlNn9NX7eKMX4YVh5E=",
"pom": "sha256-0THLPDNZDZe9PbIEPl71pGwL7E6Oq2Y5LiVevltdbP8="
},
"libgdx/gdx-jnigen#gdx-jnigen/28dd11fa4c33a7ae9e58897912b52ba7d53d54fe": {
"jar": "sha256-fPszziBPrTDACbBuL6OxJ2oK1iA4izBk4TMHK53b+GQ=",
"module": "sha256-0RR9vgSqD1ISADHSO5OV7rxi+6HM9h0ZO4kEYw/Ao4Y=",
"pom": "sha256-vnz59i+3/wY9RizYWGMOuebfrZO4HrpOYV73ShIFH2g="
},
"libgdx/gdx-jnigen#gdx-jnigen/dffc32eecbf77aad264991ea44f1767a58cbee9d": {
"jar": "sha256-bd8xr4/YgvQbvdFkayXdJKpMvYwE9XlISof20vsfcSU=",
"module": "sha256-zQ1DewRtrsdTgxXINq7pOa+UJwnDNrGsVKnX0K/AWRQ=",
"pom": "sha256-HWFvvs+x6DyJioqkRDDVvf0GCKfxPTjhdec8JC2PZvA="
}
},
"https://plugins.gradle.org/m2/org/jetbrains/kotlin": {
"jvm#org.jetbrains.kotlin.jvm.gradle.plugin/2.1.10": {
"pom": "sha256-KoiNElh3d5C3j7zg6xTZUFBwv1uLzKS7YB4s6/pCPtA="
},
"kapt#org.jetbrains.kotlin.kapt.gradle.plugin/2.1.10": {
"pom": "sha256-HzOk8LbO3qaMYhC518PU/t7EGF2dUIqsqs0933q2Ti8="
}
},
"https://raw.githubusercontent.com": {
"nothings/stb/e140649ccf40818781b7e408f6228a486f6d254b/stb_image": {
"h": "sha256-jlsNcX38ioNMl+8gLSDnjQg9AJWG4XMcmFgX0BVdVow="
}
},
"https://repo.maven.apache.org/maven2": {
"com/github/javaparser#javaparser-core/3.14.14": {
"jar": "sha256-Z4GYXisXFCvQfhp75Zt5NIXLAms3ZnN30WYQrpgUi24=",
"pom": "sha256-70ERyN/Uh+Zp5w1Qzz2z8O3YuTLKvjXmYzuzzuuGpIo="
},
"com/github/javaparser#javaparser-parent/3.14.14": {
"pom": "sha256-RwgtW3eLzkmjEnRtUWHJ48yhfYwh2eO+MTF68Io2FDc="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/code/gson#gson-parent/2.8.9": {
"pom": "sha256-sW4CbmNCfBlyrQ/GhwPsN5sVduQRuknDL6mjGrC7z/s="
},
"com/google/code/gson#gson/2.8.9": {
"jar": "sha256-05mSkYVd5JXJTHQ3YbirUXbP6r4oGlqw2OjUUyb9cD4=",
"pom": "sha256-r97W5qaQ+/OtSuZa2jl/CpCl9jCzA9G3QbnJeSb91N4="
},
"com/google/errorprone#error_prone_annotations/2.28.0": {
"jar": "sha256-8/yKOgpAIHBqNzsA5/V8JRLdJtH4PSjH04do+GgrIx4=",
"pom": "sha256-DOkJ8TpWgUhHbl7iAPOA+Yx1ugiXGq8V2ylet3WY7zo="
},
"com/google/errorprone#error_prone_parent/2.28.0": {
"pom": "sha256-rM79u1QWzvX80t3DfbTx/LNKIZPMGlXf5ZcKExs+doM="
},
"com/google/guava#failureaccess/1.0.2": {
"jar": "sha256-io+Bz5s1nj9t+mkaHndphcBh7y8iPJssgHU+G0WOgGQ=",
"pom": "sha256-GevG9L207bs9B7bumU+Ea1TvKVWCqbVjRxn/qfMdA7I="
},
"com/google/guava#guava-parent/26.0-android": {
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
},
"com/google/guava#guava-parent/33.3.1-jre": {
"pom": "sha256-VUQdsn6Iad/v4FMFm99Hi9x+lVhWQr85HwAjNF/VYoc="
},
"com/google/guava#guava/33.3.1-jre": {
"jar": "sha256-S/Dixa+ORSXJbo/eF6T3MH+X+EePEcTI41oOMpiuTpA=",
"module": "sha256-QYWMhHU/2WprfFESL8zvOVWMkcwIJk4IUGvPIODmNzM=",
"pom": "sha256-MTtn/BPrOwY07acVoSKZcfXem4GIvCgHYoFbg6J18ZM="
},
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
},
"com/google/j2objc#j2objc-annotations/3.0.0": {
"jar": "sha256-iCQVc0Z93KRP/U10qgTCu/0Rv3wX4MNCyUyd56cKfGQ=",
"pom": "sha256-I7PQOeForYndEUaY5t1744P0osV3uId9gsc6ZRXnShc="
},
"com/squareup#javapoet/1.12.1": {
"jar": "sha256-g/D9S66+w78p7jrSwCSzBl3e+CWlqin33PXBifn6KWI=",
"pom": "sha256-pxrD2PJ8ua0yyHtdiVnyLWca60YMejVdCfV35MV+TF8="
},
"org/apiguardian#apiguardian-api/1.1.0": {
"jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=",
"pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE="
},
"org/checkerframework#checker-qual/3.43.0": {
"jar": "sha256-P7wumPBYVMPfFt+auqlVuRsVs+ysM2IyCO1kJGQO8PY=",
"module": "sha256-+BYzJyRauGJVMpSMcqkwVIzZfzTWw/6GD6auxaNNebQ=",
"pom": "sha256-kxO/U7Pv2KrKJm7qi5bjB5drZcCxZRDMbwIxn7rr7UM="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/intellij/deps#trove4j/1.0.20200330": {
"jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=",
"pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k="
},
"org/jetbrains/kotlin#kotlin-annotation-processing-gradle/2.1.10": {
"jar": "sha256-rWzLNdLrwlw0eUNMGkAhS34juqdz7nYbhAgeWlOHHcE=",
"pom": "sha256-6K//Db8Bs37UdsOwKXRpJOG4X4+F3KNreYUVTARBb1k="
},
"org/jetbrains/kotlin#kotlin-build-common/2.1.10": {
"jar": "sha256-mXapS/X6gXTrOY+3Y0u59GUuBVfJhzfLJi7qUKPg4l8=",
"pom": "sha256-zo5bvGb+sXKAsxWzo1WjgeB84qxe1/PVYBeye9RkAwM="
},
"org/jetbrains/kotlin#kotlin-build-statistics/2.1.10": {
"jar": "sha256-8XMePfcMSH0QB0tGAGQpLY99xwQj1IVkGN2Sb6DaXYM=",
"pom": "sha256-qU9wshjcayKAYaLTq+ERNpMejI9onWsCh8T85Xfb9CM="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/2.1.10": {
"jar": "sha256-JXFnlQAsewLbzOUQyZFvrn6UaFxIePT3vzxNA+yRqr4=",
"pom": "sha256-nGYMBDRvBWBfxozxgDeda3yDTnO3moOZoNy3Rthah00="
},
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.1.10": {
"jar": "sha256-ZWZ1x/B9nL28lPCY80lTVx7j7Px7w+JXqAfzgHn6SGk=",
"pom": "sha256-bBzPBAe3L8cRem+iGpzPQzX6qfd/f6YMmpcOogWaOSA="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.1.10": {
"jar": "sha256-OW8ohW8P1wQyCBk5jVlZp4G98iWy3CrALNUkhELr1bg=",
"pom": "sha256-bec+IDkYqNyV/5qm5l9QIn2eCFPuh1y0o3I8YDz285I="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.1.10": {
"jar": "sha256-xC0ODpzkT1zzRP8lJoetKvPt3lhGlQAQI5TRN1E8gq8=",
"pom": "sha256-I49shzgP13Q28GBf5yJU7cUFUty5MoLbKFahQZT4s4A="
},
"org/jetbrains/kotlin#kotlin-daemon-client/2.1.10": {
"jar": "sha256-zxinYYIDWuLUjoJZllBSTh4VHnND6KsP0G0GB8QUXNE=",
"pom": "sha256-S3sZUpiHwl0qCtdvAWO2k1qrzzRWQyCDOigoQqZJEKA="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.1.10": {
"jar": "sha256-fvo/pbcG6xvbzapHYWRRm58JwtwWgAGUNTSNOc4kvh0=",
"pom": "sha256-MAw4DKEU2HmZEG78T5kRDHrEKxm2utmiSFiwLGzIvbA="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.1.10": {
"jar": "sha256-hhPV1T4x5SeS3qFerN2V6F6SSE3AMtZaC4D8OrCiaDo=",
"pom": "sha256-gToJLb+aST/lrRx1zy00r3eQYnETzrVkLvSE2PE7kP8="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.1.10": {
"jar": "sha256-rhutPDYWMMZrRBwN6CPI1nLsPSSaw9i2ltH06TaNJno=",
"module": "sha256-qfypH2qYul//RE/ydG2QsMfGiVyekxnCyUmbU+pmNds=",
"pom": "sha256-GlNAFMLCXyWMs7i+xds8pUcB5iG7xUmp4QG2lH4mHaw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.1.10": {
"jar": "sha256-0vcj8UlcfYLj1mbhAKYRAExZKh2NO1zTLmlr6QrILn4=",
"pom": "sha256-mnIVKRX/eLdKTOvB3OFLk4UPnTEsPPSreRYQ/sdTmFY="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.1.10": {
"jar": "sha256-Gn6NQPVJhknnsZleh71zUEh1JUrZytCTuGuBNH6AFRw=",
"module": "sha256-+ZK7mjYrAOahF6ugQe7EDYP2hPYw3hMA+t8v2jClYdE=",
"pom": "sha256-IY9nplnGzjz9BR+nSbQVLjLlMTssO1Me4XGRtFN2FJk="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/2.1.10": {
"jar": "sha256-ZM7lN+LvqAjIr0rCdZHIRfCGHFH7oNBk29dLpN7dg84=",
"module": "sha256-RVHiwEMx4WWf25kNvN2ZYG2HNLWkCN8KezuFuMKYTXA=",
"pom": "sha256-ijsc4TMDkoEFIUEhBHANqfxhYd50COmp1LZFg4p+EwM="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.1.10": {
"module": "sha256-E2mm+exHB1Vh3Cc1x7sd6MmZLZFULnaYkJPb+Fv0mKY=",
"pom": "sha256-wt7LThQ0Um66OKV4EKQzWITQsAxy12kSwzKpVWak35A="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.1.10/gradle85": {
"jar": "sha256-jCaugsJNq9Mn2HfSLsNW8md9zdYnFxJ2a2PxNeTdyqI="
},
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.1.10": {
"module": "sha256-aN0fMZG0eiTJtyPop9+DbucnRZuw6G09x6H164hK1sY=",
"pom": "sha256-062RriLdACJzgzmvHvQMFC/THz4XpI9VsIZEQytA7Ck="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.1.10": {
"jar": "sha256-G+wqyVJiA0voFoeToFQU7lYozB4oxIeyXV+XSc5y2ls=",
"pom": "sha256-+k+PHiJyweeF4c2eVOiyLq00B4a8x0uKx2C2MzUDVrY="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/2.1.10": {
"jar": "sha256-0zJ6QnAZhNmS+/JavXKNlE3LLj8TL1wyU5+ccabPkNs=",
"pom": "sha256-zAYLn8Rzs74lFPsNeEu46al6zLHFXe8f4i7UPPUHArE="
},
"org/jetbrains/kotlin#kotlin-native-utils/2.1.10": {
"jar": "sha256-L8Behn3ERw9lhR0WJjSY+xfdyxglErg9FeF4gVngomo=",
"pom": "sha256-lhBo1LVVnBlUAEVoCRoJUJdsZVz391Fh9v4kIqy12rQ="
},
"org/jetbrains/kotlin#kotlin-reflect/1.6.10": {
"jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
"pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
},
"org/jetbrains/kotlin#kotlin-script-runtime/2.1.10": {
"jar": "sha256-4kTA5/ZkERdV8ubpd4Ybcabro7T0UWJwSDPkbfqIOug=",
"pom": "sha256-zSWhAsEny99KW5n1M2pYSwyNR1zPzDUCya2LpelH2zc="
},
"org/jetbrains/kotlin#kotlin-scripting-common/2.1.10": {
"jar": "sha256-R3VyCGt1QtldsIyGY3rA7bm/DWsiq5uhNA5BoEiUEHk=",
"pom": "sha256-D/eXewgtbVneBV+q/2ACZVjJxZxllzsDnRG3i0SvEko="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.1.10": {
"jar": "sha256-SeX8hK2b5s5TGUZrOKFxfUGh4jDZ4k2yb6xIse6sSo0=",
"pom": "sha256-isI7V2FoDl5lZHicZMvxEP5JWXp3JNqGQCRTLfUNrco="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.1.10": {
"jar": "sha256-16kVX3BT+b4c4TX5/8QW4RaLsj0VCeslYoVHP9Of/4A=",
"pom": "sha256-FkJ9B0RZDHhkH9RywRNEvkBbBcA8CNmnIES/7djRzMg="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.1.10": {
"jar": "sha256-lUZtpQ9CjAG9g2WE0wxVpomGHJOz2Xd4dKY2PRnPLdw=",
"pom": "sha256-/+onoApjoxX6ZoDQckI0xttuSJO4uGA6UmuNYuW+jc0="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.1.10": {
"jar": "sha256-XyrByo3Is3o/QxTnFtNpaevwInp1GB0yaZ0Kj2RbHCE=",
"module": "sha256-jSwdcXxzVG1WOC0TbIZQtZpxWZQBciY4GJNKzkTLBI0=",
"pom": "sha256-SSISHT8LxgzkB/Ny3kLQKgt+lOddDD0VCLaDVyHySe8="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.1.10": {
"jar": "sha256-QXbGEgmMuS3zikhf+LEKqiSrtAD2ENSPUIiusHyAAsg=",
"pom": "sha256-o9KW5sNBKQy36ihbNCnXjSwiEtow339G2UcV80D1JJ4="
},
"org/jetbrains/kotlin#kotlin-util-io/2.1.10": {
"jar": "sha256-RLWV7VtKEqqn3Wv4zYtWA+Eu3U0ykhkRPlJoX4xD7co=",
"pom": "sha256-yjmmo1CjkEEvKF9UWcl5rbkkkIeTBkmOTjdYwxLT+is="
},
"org/jetbrains/kotlin#kotlin-util-klib-metadata/2.1.10": {
"jar": "sha256-obxgwmV1SpF06sB7JG7jtsyz4nhWoS8OXtAaJoc6DF4=",
"pom": "sha256-r0E3VoZzMQsOlRpGSN0JqJuY5cI5Cl2O7p5Hb7tCRT8="
},
"org/jetbrains/kotlin#kotlin-util-klib/2.1.10": {
"jar": "sha256-wfBzMVzvkLaPI+vtaEfWfxny+ALR3URtNkTBryhAKHY=",
"pom": "sha256-aXGWCNsaiYCD5kOr5GR7lS471tQKxS74Gn8xZswO34A="
},
"org/jetbrains/kotlin/jvm#org.jetbrains.kotlin.jvm.gradle.plugin/2.1.10": {
"pom": "sha256-ZeQcdCx+bntc5pEXF/23xNIMpDcqFKSYFis2OljR5dA="
},
"org/jetbrains/kotlin/kapt#org.jetbrains.kotlin.kapt.gradle.plugin/2.1.10": {
"pom": "sha256-DUmjkkxWv9dmrd2/Jhhh8oLUisdzNZ1+bN5mCz6P0Fs="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-bom/1.6.4": {
"pom": "sha256-qyYUhV+6ZqqKQlFNvj1aiEMV/+HtY/WTLnEKgAYkXOE="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.6.4": {
"jar": "sha256-wkyLsnuzIMSpOHFQGn5eDGFgdjiQexl672dVE9TIIL4=",
"module": "sha256-DZTIpBSD58Jwfr1pPhsTV6hBUpmM6FVQ67xUykMho6c=",
"pom": "sha256-Cdlg+FkikDwuUuEmsX6fpQILQlxGnsYZRLPAGDVUciQ="
},
"org/json#json/20230618": {
"jar": "sha256-cAQAep/Yf+HYb2c7RywDcuW8ULrLckwCmmES18S0pkA=",
"pom": "sha256-CmVT5rRPYUi1qZu7q1MyudxDngdXpYniQZBgvfsC/Oo="
},
"org/junit#junit-bom/5.7.1": {
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
},
"org/junit/jupiter#junit-jupiter-api/5.7.1": {
"jar": "sha256-znuYW8Rp4mJXWaTrxFUzxwWBoFo0gnjB1kCOmy414xQ=",
"module": "sha256-AiFvaghBm7NdVHeGPZ0hpoxXWRqol7qYGmHFVFZWzX4=",
"pom": "sha256-1Vvisj13FDKXB3IEMgey5mpnJK4CvVGStyFuS3AbxiM="
},
"org/junit/jupiter#junit-jupiter-engine/5.7.1": {
"jar": "sha256-VmFsk1CzYk92z/72skznuyIpFb/VaI+W089M7zTwd8s=",
"module": "sha256-2A5S75X2XNxQT8Mb4KArJYnJ78JzpCVcs2NyPOVMr/8=",
"pom": "sha256-gRF+OjoCDf3W8wkcXseU0stJhAcxrPQogxxWmQEvTLs="
},
"org/junit/jupiter#junit-jupiter-params/5.7.1": {
"jar": "sha256-jv/df4pLpVWLVoGE3uCACLJEPIbGc++B3lhh+8fvBhM=",
"module": "sha256-TUOYtYCpnIVNnxF6bk44o9GOZSJ2obzmeaDDx5nGFL0=",
"pom": "sha256-UIPD5bw9OhjVY6M0fVPi3f35ONdh60TbsL9PQgX+6Sw="
},
"org/junit/platform#junit-platform-commons/1.7.1": {
"jar": "sha256-fFRr6GhkcY+6zrefqE/x06UWUA/EKPGyHQYcLg+8Wks=",
"module": "sha256-5abLDsz80tAuaGvyt2OnBCTQiB2/+uvjp/kxShhT+TE=",
"pom": "sha256-t8GENMTUsn5yO9SKr5ercK7IwMra1MFTkvvdFEykpQo="
},
"org/junit/platform#junit-platform-engine/1.7.1": {
"jar": "sha256-N99anNbbwfdUuitG+WuIdKg2YOF5a/OMc48CLc+Gwj8=",
"module": "sha256-S2knc2Ouooq1DFpnYZ++q/jAgk5JOOYmC6wEjlvrga8=",
"pom": "sha256-dmAvWZVKo9+mjjHIDKibb7ouoAG0+wbLUfoV6tfIWjA="
},
"org/lz4#lz4-java/1.8.0": {
"jar": "sha256-10ozNPs1GVAJszipUfkYID1rvKPR01kDPcM+3Rytye8=",
"pom": "sha256-DbittR4TJFSlxAbeuy8aDfgfk91Z++IMuUcQKZRokDQ="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://www.libsdl.org": {
"release/SDL2-devel-2.32.8-mingw": {
"tar.gz": "sha256-9ZCzcHaJViSD3tBb8V6vD10z65f0nQ/TuJQiX+F8xSs="
}
}
}

View File

@@ -0,0 +1,252 @@
{
lib,
stdenv,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
fetchFromGitHub,
gradle,
jdk17,
zenity,
# for arc
SDL2,
pkg-config,
ant,
curl,
wget,
alsa-lib,
alsa-plugins,
glew,
# for soloud
libpulseaudio ? null,
libjack2 ? null,
nixosTests,
# Make the build version easily overridable.
# Server and client build versions must match, and an empty build version means
# any build is allowed, so this parameter acts as a simple whitelist.
# Takes the package version and returns the build version.
makeBuildVersion ? (v: v),
enableClient ? true,
enableServer ? true,
enableWayland ? false,
}:
let
pname = "mindustry";
version = "151.1";
buildVersion = makeBuildVersion version;
jdk = jdk17;
Mindustry = fetchFromGitHub {
name = "Mindustry-source";
owner = "Anuken";
repo = "Mindustry";
tag = "v${version}";
hash = "sha256-/WBO66Ii/1IuL3VaQNCTrcK43VWS8FVLYPxxtJMYKus=";
};
Arc = fetchFromGitHub {
name = "Arc-source";
owner = "Anuken";
repo = "Arc";
tag = "v${version}";
hash = "sha256-jI9bvo8MEEe1guM8YuQmGOi/wP5eFH88dvsin7sAPY0=";
};
soloud = fetchFromGitHub {
owner = "Anuken";
repo = "soloud";
# This is pinned in Arc's arc-core/build.gradle
tag = "v0.11";
hash = "sha256-jybIILdK3cqyZ2LIuoWDfZWocVTbKszekKCLil0WXRY=";
};
desktopItem = makeDesktopItem {
name = "Mindustry";
desktopName = "Mindustry";
exec = "mindustry";
icon = "mindustry";
categories = [ "Game" ];
};
in
assert lib.assertMsg (
enableClient || enableServer
) "mindustry: at least one of 'enableClient' and 'enableServer' must be true";
stdenv.mkDerivation {
inherit pname version;
unpackPhase = ''
runHook preUnpack
cp -r ${Mindustry} Mindustry
cp -r ${Arc} Arc
chmod -R u+w -- Mindustry Arc
cp -r ${soloud} Arc/arc-core/csrc/soloud
chmod -R u+w -- Arc/arc-core/csrc/soloud
runHook postUnpack
'';
patches = [
./0001-fix-include-path-for-SDL2-on-linux.patch
];
postPatch = ''
# Ensure the prebuilt shared objects don't accidentally get shipped
rm -r Arc/natives/natives-*/libs/*
rm -r Arc/backends/backend-*/libs/*
cd Mindustry
# Remove unbuildable iOS stuff
sed -i '/^project(":ios"){/,/^}/d' build.gradle
sed -i '/robo(vm|VM)/d' build.gradle
rm ios/build.gradle
''
+ lib.optionalString (!stdenv.hostPlatform.isx86) ''
substituteInPlace ../Arc/arc-core/build.gradle \
--replace-fail "-msse" ""
substituteInPlace ../Arc/backends/backend-sdl/build.gradle \
--replace-fail "-m64" ""
'';
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
buildInputs = lib.optionals enableClient [
SDL2
alsa-lib
glew
];
nativeBuildInputs = [
pkg-config
gradle
makeWrapper
jdk
]
++ lib.optionals enableClient [
ant
copyDesktopItems
curl
wget
];
desktopItems = lib.optional enableClient desktopItem;
gradleFlags = [
"-Pbuildversion=${buildVersion}"
"-Dorg.gradle.java.home=${jdk}"
];
buildPhase = ''
runHook preBuild
''
+ lib.optionalString enableServer ''
gradle server:dist
''
+ lib.optionalString enableClient ''
pushd ../Arc
gradle jnigenBuild
gradle jnigenJarNativesDesktop
glewlib=${lib.getLib glew}/lib/libGLEW.so
sdllib=${lib.getLib SDL2}/lib/libSDL2.so
patchelf backends/backend-sdl/libs/linux64/libsdl-arc*.so \
--add-needed $glewlib \
--add-needed $sdllib
# Put the freshly-built libraries where the pre-built libraries used to be:
cp arc-core/libs/*/* natives/natives-desktop/libs/
cp extensions/freetype/libs/*/* natives/natives-freetype-desktop/libs/
popd
gradle desktop:dist
''
+ ''
runHook postBuild
'';
installPhase =
let
installClient = ''
install -Dm644 desktop/build/libs/Mindustry.jar $out/share/mindustry.jar
mkdir -p $out/bin
makeWrapper ${jdk}/bin/java $out/bin/mindustry \
--add-flags "-jar $out/share/mindustry.jar" \
${lib.optionalString stdenv.hostPlatform.isLinux "--suffix PATH : ${lib.makeBinPath [ zenity ]}"} \
--suffix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libpulseaudio
alsa-lib
libjack2
]
} \
--set ALSA_PLUGIN_DIR ${alsa-plugins}/lib/alsa-lib/ ${lib.optionalString enableWayland ''
--set SDL_VIDEODRIVER wayland \
--set SDL_VIDEO_WAYLAND_WMCLASS Mindustry
''}
# Retain runtime depends to prevent them from being cleaned up.
# Since a jar is a compressed archive, nix can't figure out that the dependency is actually in there,
# and will assume that it's not actually needed.
# This can cause issues.
# See https://github.com/NixOS/nixpkgs/issues/109798.
echo "# Retained runtime dependencies: " >> $out/bin/mindustry
for dep in ${SDL2.out} ${alsa-lib.out} ${glew.out}; do
echo "# $dep" >> $out/bin/mindustry
done
install -Dm644 core/assets/icons/icon_64.png $out/share/icons/hicolor/64x64/apps/mindustry.png
'';
installServer = ''
install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar
mkdir -p $out/bin
makeWrapper ${jdk}/bin/java $out/bin/mindustry-server \
--add-flags "-jar $out/share/mindustry-server.jar"
'';
in
''
runHook preInstall
''
+ lib.optionalString enableClient installClient
+ lib.optionalString enableServer installServer
+ ''
runHook postInstall
'';
postGradleUpdate = ''
# this fetches non-gradle dependencies
cd ../Arc
gradle preJni
'';
passthru.tests.nixosTest = nixosTests.mindustry;
meta = {
homepage = "https://mindustrygame.github.io/";
downloadPage = "https://github.com/Anuken/Mindustry/releases";
description = "Sandbox tower defense game";
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode # deps
];
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
chkno
fgaz
thekostins
];
platforms = lib.platforms.all;
# TODO alsa-lib is linux-only, figure out what dependencies are required on Darwin
broken =
enableClient
&& (stdenv.hostPlatform.isDarwin || (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64));
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "minecraft-server-hibernation";
version = "2.5.0";
src = fetchFromGitHub {
owner = "gekware";
repo = "minecraft-server-hibernation";
rev = "v${version}";
hash = "sha256-b6LeqjIraIasHBpaVgy8esl4NV8rdBrfO7ewgeIocS8=";
};
vendorHash = null;
ldflags = [
"-s"
"-w"
];
checkFlags =
let
skippedTests = [
# Disable tests requiring network access
"Test_getPing"
"Test_getReqType"
"Test_QueryBasic"
"Test_QueryFull"
];
in
[
"-skip"
"${builtins.concatStringsSep "|" skippedTests}"
];
meta = with lib; {
description = "Autostart and stop minecraft-server when players join/leave";
mainProgram = "msh";
homepage = "https://github.com/gekware/minecraft-server-hibernation";
license = licenses.gpl3Only;
maintainers = with maintainers; [ squarepear ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
fetchzip,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
pname = "minecraftia";
version = "1.0";
src = fetchzip {
url = "https://fontlibrary.org/assets/downloads/minecraftia/71962a7e3d4a70435c030466a12f1d63/minecraftia.zip";
hash = "sha256-AZFSts0GpBttbhl1LHMORiqqc9o7ZWhh5hbjhSnxAlA=";
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/truetype $src/Minecraftia.ttf
runHook postInstall
'';
meta = with lib; {
homepage = "https://fontlibrary.org/en/font/minecraftia";
description = "Cool Minecraft font";
license = licenses.cc-by-sa-30;
platforms = platforms.all;
maintainers = with lib.maintainers; [ gepbird ];
};
}

View File

@@ -0,0 +1,25 @@
{
fetchFromGitHub,
rustPlatform,
lib,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "minefair";
version = "1.5.0";
src = fetchFromGitHub {
owner = "LyricLy";
repo = "minefair";
tag = finalAttrs.version;
hash = "sha256-gABgSjS+ZhzmWJsCbbWMFstFAoTJ+Yc159CCo5nhYBc=";
};
cargoHash = "sha256-s4Wlp3IUPDuArf9N+9qWZH7JjQeczYi1phpUs7SNUd4=";
meta = {
description = "Fair and infinite implementation of Minesweeper";
homepage = "https://github.com/LyricLy/minefair";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.pyrotelekinetic ];
mainProgram = "minefair";
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
libtiff,
libwebp,
SDL2,
SDL2_image,
SDL2_ttf,
SDL2_mixer,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "minesector";
version = "1.1.5";
src = fetchFromGitHub {
owner = "grassdne";
repo = "minesector";
tag = finalAttrs.version;
hash = "sha256-VMTXZ4CIk9RpE4R9shHPl0R/T7mJUKY2b8Zi0DPW0/Q=";
};
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [
libtiff
libwebp
SDL2
SDL2_image
SDL2_ttf
SDL2_mixer
];
strictDeps = true;
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "set(STATIC_LINK" "# set(STATIC_LINK"
'';
passthru.updateScript = nix-update-script { };
meta = {
mainProgram = "minesector";
description = "Snazzy Minesweeper-based game built with SDL2";
homepage = "https://github.com/grassdne/minesector";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "minesweep-rs";
version = "6.0.54";
src = fetchFromGitHub {
owner = "cpcloud";
repo = "minesweep-rs";
rev = "v${version}";
hash = "sha256-FzMCqsPBcbblItRzfnY43glY4We9jk0eBxjG0SZnau8=";
};
cargoHash = "sha256-HO0eO6Ip508AIALS50exP2btLd3jUhM+giHQpMdsAVA=";
meta = with lib; {
description = "Sweep some mines for fun, and probably not for profit";
homepage = "https://github.com/cpcloud/minesweep-rs";
license = licenses.asl20;
mainProgram = "minesweep";
maintainers = with maintainers; [ aleksana ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "minetest-mapserver";
version = "4.9.4";
src = fetchFromGitHub {
owner = "minetest-mapserver";
repo = "mapserver";
rev = "v${version}";
hash = "sha256-YKJbqD0dtQGLXDRLOwLl6E5R36gftDD98+/XpTGwZSk=";
};
vendorHash = "sha256-sPqwY3c/ehrrP6aeUyRUMqCpHqBErwIXUlgoX0P99/w=";
meta = {
description = "Realtime mapserver for minetest";
mainProgram = "mapserver";
homepage = "https://github.com/minetest-mapserver/mapserver/blob/master/readme.md";
changelog = "https://github.com/minetest-mapserver/mapserver/releases/tag/v${version}";
license = with lib.licenses; [
mit
cc-by-sa-30
];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "mingetty";
version = "1.08";
src = fetchurl {
url = "mirror://sourceforge/mingetty/mingetty-${version}.tar.gz";
sha256 = "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g";
};
makeFlags = [
"CC:=$(CC)"
"SBINDIR=${placeholder "out"}/sbin"
"MANDIR=${placeholder "out"}/share/man/man8"
];
preInstall = ''
mkdir -p $out/sbin $out/share/man/man8
'';
meta = with lib; {
homepage = "https://sourceforge.net/projects/mingetty";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,34 @@
{
stdenv,
cmake,
fetchFromGitHub,
lib,
}:
stdenv.mkDerivation rec {
name = "mingtest";
version = "0.2.1";
src = fetchFromGitHub {
owner = "craflin";
repo = "mingtest";
tag = version;
hash = "sha256-buFr5w+3YJ2gJeQ8YTsFrUMU9hWq/iAJ6cW6ykvETfM=";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "include(CDeploy)" "" \
--replace-fail "install_deploy_export()" ""
'';
nativeBuildInputs = [ cmake ];
meta = {
description = "Minimalistic C++ unit test framework";
homepage = "https://github.com/craflin/mingtest";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lutzberger ];
platforms = lib.platforms.linux;
};
}

2063
pkgs/by-name/mi/minhtml/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "minhtml";
version = "0.16.4";
src = fetchFromGitHub {
owner = "wilsonzlin";
repo = "minify-html";
tag = "v${finalAttrs.version}";
hash = "sha256-SoCSHhgTLfztSfvzxxpZn/nQpXbKlkE4iiP0YZ0MVjY=";
};
# Upstream does not include a lock file so one has to be patched in.
cargoLock = {
lockFile = ./Cargo.lock;
};
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
# Ensures that only the correct package gets built, as upstream contains multiple.
cargoBuildFlags = [
"-p"
"minhtml"
];
cargoTestFlags = [
"-p"
"minhtml"
];
meta = {
description = "Minifier for HTML, JavaScript, and CSS";
mainProgram = "minhtml";
homepage = "https://github.com/wilsonzlin/minify-html";
changelog = "https://github.com/wilsonzlin/minify-html/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ tye-exe ];
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
rustPlatform,
fetchFromGitHub,
gnuplot,
makeWrapper,
testers,
mini-calc,
}:
rustPlatform.buildRustPackage rec {
pname = "mini-calc";
version = "4.0.0";
src = fetchFromGitHub {
owner = "vanilla-extracts";
repo = "calc";
rev = version;
hash = "sha256-601BmecY+jbiD39buN68MeJKd5wguH0hahHquHadsL4=";
};
cargoHash = "sha256-9Ug6lyDvacj47FnLzJo4fwpXeMYxgSlMB7+2fIv5oxo=";
nativeBuildInputs = [ makeWrapper ];
postFixup = ''
wrapProgram $out/bin/mini-calc \
--prefix PATH : "${lib.makeBinPath [ gnuplot ]}"
'';
passthru.tests.version = testers.testVersion {
package = mini-calc;
# `mini-calc -v` does not output in the test env, fallback to pipe
command = "echo -v | mini-calc";
version = "v${version}";
};
meta = {
description = "Fully-featured minimalistic configurable calculator written in Rust";
changelog = "https://github.com/vanilla-extracts/calc/blob/${version}/CHANGELOG.md";
homepage = "https://calc.charlotte-thomas.me/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ sigmanificient ];
mainProgram = "mini-calc";
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
rustPlatform,
fetchCrate,
pkg-config,
openssl,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "mini-redis";
version = "0.4.1";
src = fetchCrate {
inherit (finalAttrs) pname version;
sha256 = "sha256-vYphaQNMAHajod5oT/T3VJ12e6Qk5QOa5LQz6KsXvm8=";
};
cargoHash = "sha256-oGyJxNzJX7PwMkDoT9Tb3xF0vWgQwuyIjKPgEkbPKyI=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
doCheck = false;
meta = {
description = "Incomplete, idiomatic implementation of a Redis client and server built with Tokio, for learning purposes";
homepage = "https://github.com/tokio-rs/mini-redis";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ nomaterials ];
mainProgram = "mini-redis-cli";
};
})

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchurl,
boost,
}:
stdenv.mkDerivation rec {
pname = "mini-httpd";
version = "1.7";
src = fetchurl {
url = "https://download-mirror.savannah.gnu.org/releases/mini-httpd/${pname}-${version}.tar.gz";
sha256 = "0jggmlaywjfbdljzv5hyiz49plnxh0har2bnc9dq4xmj1pmjgs49";
};
buildInputs = [ boost ];
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = toString [ "-std=c++14" ];
meta = {
homepage = "http://mini-httpd.nongnu.org/";
description = "Minimalistic high-performance web server";
mainProgram = "httpd";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.peti ];
};
}

View File

@@ -0,0 +1,222 @@
diff --git a/thirdparty/gatb-core/gatb-core/CMakeLists.txt b/thirdparty/gatb-core/gatb-core/CMakeLists.txt
index f48a70b..0e11ece 100644
--- a/thirdparty/gatb-core/gatb-core/CMakeLists.txt
+++ b/thirdparty/gatb-core/gatb-core/CMakeLists.txt
@@ -257,7 +257,6 @@ ADD_SUBDIRECTORY(thirdparty)
# DEPENDENCIES
################################################################################
# we must be sure that hdf5 is built and installed before building gatb-core
-ADD_DEPENDENCIES (gatbcore-static hdf5 hdf5_postbuild)
################################################################################
# DOCUMENTATION GENERATION
@@ -288,7 +287,6 @@ IF (NOT DEFINED GATB_CORE_INSTALL_EXCLUDE)
INSTALL (FILES ${PROJECT_SOURCE_DIR}/doc/misc/README.txt DESTINATION . OPTIONAL)
INSTALL (FILES ${PROJECT_SOURCE_DIR}/LICENCE DESTINATION . OPTIONAL)
INSTALL (FILES ${PROJECT_SOURCE_DIR}/THIRDPARTIES.md DESTINATION . OPTIONAL)
- INSTALL (DIRECTORY ${PROJECT_SOURCE_DIR}/thirdparty/boost DESTINATION ./include)
ENDIF()
################################################################################
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
index dfeee1c..d5553a2 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
@@ -35,7 +35,7 @@
#include <stdint.h>
#include <algorithm>
#include <iostream>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
#include <gatb/system/api/Exception.hpp>
#include <gatb/system/api/config.hpp>
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
index 60be5d5..25ae75e 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
@@ -33,7 +33,7 @@
/********************************************************************************/
#include <iostream>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
#include <gatb/system/api/types.hpp>
#include <gatb/tools/misc/api/Abundance.hpp>
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
index 6a71bb0..b9205df 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
@@ -31,7 +31,7 @@
#include <iostream>
#include <gatb/system/api/types.hpp>
#include <gatb/tools/misc/api/Abundance.hpp>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
index c22b892..62e6586 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
@@ -31,7 +31,7 @@
#include <iostream>
#include <gatb/system/api/types.hpp>
#include <gatb/tools/misc/api/Abundance.hpp>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
index c06aaab..e0befba 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
@@ -31,7 +31,7 @@
#include <iostream>
#include <gatb/system/api/types.hpp>
#include <gatb/tools/misc/api/Abundance.hpp>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
extern const unsigned char revcomp_4NT[];
extern const unsigned char comp_NT [];
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
index 9659874..0c79ff6 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
@@ -31,7 +31,7 @@
#include <iostream>
#include <gatb/system/api/types.hpp>
#include <gatb/tools/misc/api/Abundance.hpp>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
index 3cb84f8..cd5d382 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
@@ -31,7 +31,7 @@
/********************************************************************************/
#include <sys/types.h>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
index b8f6c79..a040832 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
@@ -28,7 +28,7 @@
#include <gatb/system/api/ISmartPointer.hpp>
#include <gatb/tools/storage/impl/Storage.hpp>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
index 2645abd..fad48c0 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
@@ -40,7 +40,7 @@
#include <string>
#include <vector>
#include <stdarg.h>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
index a92b729..66d552f 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
@@ -40,7 +40,7 @@
#include <string>
#include <vector>
#include <stdarg.h>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
/********************************************************************************/
namespace gatb {
diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
index 29e0949..0565cc4 100644
--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
+++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
@@ -33,7 +33,7 @@
#include <gatb/tools/storage/impl/CollectionHDF5.hpp>
#include <gatb/tools/storage/impl/CollectionHDF5Patch.hpp>
#include <gatb/system/impl/System.hpp>
-#include <hdf5/hdf5.h>
+#include <hdf5.h>
#include <sstream>
/********************************************************************************/
diff --git a/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt b/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
index 6e0b5c4..34aef28 100644
--- a/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
+++ b/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
@@ -1,54 +1,3 @@
-################################################################################
-# HDF5 GENERATION
-################################################################################
-
-#SET (HDF5_ENABLE_THREADSAFE ON)
-#SET (H5_HAVE_THREADSAFE 1)
-
-########## MOMENTARY DEACTIVATED => CRASH ON MACOS TO BE INVESTIGATED ##########
-SET (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools")
-#SET (CMAKE_EXE_LINKER_FLAGS "-lpthread -lz")
-
-SET (HDF5_EXTERNALLY_CONFIGURED ON)
-
-#SET (HDF5_INSTALL_BIN_DIR ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
-#SET (HDF5_INSTALL_LIB_DIR ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
-SET (HDF5_INSTALL_BIN_DIR bin)
-SET (HDF5_INSTALL_LIB_DIR lib)
-
-SET (HDF5_INSTALL_INCLUDE_DIR ${PROJECT_BINARY_DIR}/include/${CMAKE_BUILD_TYPE}/hdf5)
-SET (HDF5_INSTALL_DATA_DIR ${PROJECT_BINARY_DIR}/share/${CMAKE_BUILD_TYPE})
-SET (HDF5_INSTALL_CMAKE_DIR ${PROJECT_BINARY_DIR}/share/${CMAKE_BUILD_TYPE})
-
-IF (NOT DEFINED GATB_CORE_INSTALL_EXCLUDE)
- SET (HDF5_EXPORTED_TARGETS "gatb-hdf5")
-ENDIF()
-
-IF (NOT DEFINED GATB_CORE_EXCLUDE_HDF5_ZLIB)
- OPTION (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON)
-ENDIF()
-
-# We don't want warnings from HDF5 compilation
-set (COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS} -w")
-add_definitions (${COMPILE_DEFINITIONS})
-
-# add HDF5 generation
-ADD_SUBDIRECTORY (hdf5)
-
-# We add a custom target for copying header files.
-add_custom_target (hdf5_postbuild ALL)
-
-# We build the output directory
-add_custom_command (TARGET hdf5_postbuild POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${HDF5_INSTALL_INCLUDE_DIR})
-
-# We define all the header files to be copied
-file (GLOB headerfiles ${PROJECT_SOURCE_DIR}/thirdparty/hdf5/src/*.h ${PROJECT_BINARY_DIR}/thirdparty/hdf5/H5pubconf.h)
-
-# We copy each header file
-foreach (header ${headerfiles})
- add_custom_command (TARGET hdf5_postbuild POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header} ${HDF5_INSTALL_INCLUDE_DIR} )
-endforeach()
-
# include other smaller libraries (json, Boophf)
add_custom_target (thirdparty_copy ALL)

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
hdf5,
boost,
}:
stdenv.mkDerivation rec {
pname = "minia";
version = "3.2.1";
src = fetchFromGitHub {
owner = "GATB";
repo = "minia";
tag = "v${version}";
sha256 = "0bmfrywixaaql898l0ixsfkhxjf2hb08ssnqzlzacfizxdp46siq";
fetchSubmodules = true;
};
patches = [ ./no-bundle.patch ];
env.NIX_CFLAGS_COMPILE = toString [ "-Wformat" ];
nativeBuildInputs = [ cmake ];
buildInputs = [
hdf5
boost
];
prePatch = ''
rm -rf thirdparty/gatb-core/gatb-core/thirdparty/{hdf5,boost}
'';
meta = with lib; {
description = "Short read genome assembler";
mainProgram = "minia";
homepage = "https://github.com/GATB/minia";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ jbedo ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
testers,
cmake,
ninja,
alsa-lib,
libjack2,
libpulseaudio,
libvorbis,
opusfile,
sndio,
alsaSupport ? true,
pulseSupport ? true,
jackSupport ? true,
sndioSupport ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "miniaudio";
version = "0.11.23";
src = fetchFromGitHub {
owner = "mackron";
repo = "miniaudio";
tag = finalAttrs.version;
hash = "sha256-ZrfKw5a3AtIER2btCKWhuvygasNaHNf9EURf1Kv96Vc=";
};
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [
libvorbis
opusfile
]
++ lib.optional pulseSupport libpulseaudio
++ lib.optional jackSupport libjack2
++ lib.optional alsaSupport alsa-lib
++ lib.optional sndioSupport sndio;
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "MINIAUDIO_NO_RUNTIME_LINKING" true)
(lib.cmakeBool "MINIAUDIO_BUILD_TESTS" true)
(lib.cmakeBool "MINIAUDIO_BUILD_EXAMPLES" true)
(lib.cmakeBool "MINIAUDIO_ENABLE_ONLY_SPECIFIC_BACKENDS" true)
(lib.cmakeBool "MINIAUDIO_ENABLE_PULSEAUDIO" pulseSupport)
(lib.cmakeBool "MINIAUDIO_ENABLE_JACK" jackSupport)
(lib.cmakeBool "MINIAUDIO_ENABLE_SNDIO" alsaSupport)
(lib.cmakeBool "MINIAUDIO_ENABLE_ALSA" sndioSupport)
];
doCheck = true;
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; {
description = "Single header audio playback and capture library written in C";
homepage = "https://github.com/mackron/miniaudio";
changelog = "https://github.com/mackron/miniaudio/blob/${finalAttrs.version}/CHANGES.md";
license = with licenses; [
unlicense # or
mit0
];
maintainers = [ maintainers.jansol ];
pkgConfigModules = [ "miniaudio" ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation {
pname = "miniball";
version = "3.0";
src = fetchurl {
url = "https://www.inf.ethz.ch/personal/gaertner/miniball/Miniball.hpp";
sha256 = "1piap5v8wqq0aachrq6j50qkr01gzpyndl6vf661vyykrfq0nnd2";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/include
cp $src $out/include/miniball.hpp
'';
meta = {
description = "Smallest Enclosing Balls of Points";
homepage = "https://www.inf.ethz.ch/personal/gaertner/miniball.html";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.erikryb ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "minica";
version = "1.1.0";
src = fetchFromGitHub {
owner = "jsha";
repo = "minica";
rev = "v${version}";
sha256 = "sha256-YUeP3xBoZzonJYfEAOWZYCTFwOxFWySW7ezvpMLNZ1I=";
};
vendorHash = null;
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Simple tool for generating self signed certificates";
mainProgram = "minica";
longDescription = ''
Minica is a simple CA intended for use in situations where the CA operator
also operates each host where a certificate will be used. It automatically
generates both a key and a certificate when asked to produce a
certificate.
'';
homepage = "https://github.com/jsha/minica/";
changelog = "https://github.com/jsha/minica/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ m1cr0man ];
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitLab,
autoreconfHook,
makeWrapper,
pkg-config,
lrzsz,
ncurses,
libiconv,
}:
stdenv.mkDerivation rec {
pname = "minicom";
version = "2.10";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "minicom-team";
repo = "minicom";
rev = version;
sha256 = "sha256-wC6VlMRwuhV1zQ26wNx7gijuze8E2CvnzpqOSIPzq2s=";
};
buildInputs = [
ncurses
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
nativeBuildInputs = [
autoreconfHook
makeWrapper
pkg-config
];
enableParallelBuilding = true;
configureFlags = [
"--sysconfdir=/etc"
"--enable-lock-dir=/var/lock"
];
patches = [ ./xminicom_terminal_paths.patch ];
preConfigure = ''
# Have `configure' assume that the lock directory exists.
substituteInPlace configure \
--replace 'test -d $UUCPLOCK' true
'';
postInstall = ''
for f in $out/bin/*minicom ; do
wrapProgram $f \
--prefix PATH : ${lib.makeBinPath [ lrzsz ]}:$out/bin
done
'';
meta = with lib; {
description = "Modem control and terminal emulation program";
homepage = "https://salsa.debian.org/minicom-team/minicom";
license = licenses.gpl2Plus;
longDescription = ''
Minicom is a menu driven communications program. It emulates ANSI
and VT102 terminals. It has a dialing directory and auto zmodem
download.
'';
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,79 @@
diff --git a/src/xminicom b/src/xminicom
index a59aa08..cef153b 100755
--- a/src/xminicom
+++ b/src/xminicom
@@ -7,57 +7,39 @@
#
# version $Id: xminicom,v 1.4 2008-06-09 20:48:35 al-guest Exp $
-findcmd()
-{
- IFS=:
- for i in $PATH
- do
- if [ -x $i\/$1 ]
- then
- result=$i\/$1
- IFS=
- return 0
- fi
- done
- result=
- IFS=
- return 1
+findcmd() {
+ result=$(command -v $1)
}
-if findcmd x-terminal-emulator
-then
+if findcmd x-terminal-emulator ; then
exec $result -T minicom -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
exit 1
fi
-if findcmd color_xterm
-then
+if findcmd konsole ; then
+ exec $result -T minicom -geometry 80x25 -e minicom -m -c on "$@"
+ exit 1
+fi
+
+if findcmd gnome-terminal ; then
+ exec $result -T minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
+ exit 1
+fi
+
+if findcmd color_xterm ; then
exec $result -T minicom -bg black -fg grey -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
exit 1
fi
-if findcmd rxvt
-then
+if findcmd rxvt ; then
exec $result -bg black -fg grey -n minicom -T minicom -sl 0 -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
exit 1
fi
-if findcmd kterm
-then
+if findcmd xterm ; then
exec $result -T minicom -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
exit 1
fi
-if findcmd xterm
-then
- if [ -f /etc/debian_version ]
- then
- exec $result -T minicom -n minicom -bg black -fg grey -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
- else
- exec $result -T minicom -n minicom -geometry 80x25 -e "if ! minicom -m -c on $*; then echo Press ENTER to continue...; read; fi"
- fi
- exit 1
-fi
-
-echo "xminicom: rxvt, color_xterm or xterm NOT found!" 1>&2
+echo "xminicom: konsole, gnome-terminal, rxvt, color_xterm or xterm NOT found!" 1>&2
exit 1

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchurl,
libtiff,
gettext,
}:
stdenv.mkDerivation rec {
pname = "minidjvu";
version = "0.8";
src = fetchurl {
url = "mirror://sourceforge/minidjvu/minidjvu-${version}.tar.gz";
sha256 = "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79";
};
patchPhase = ''
sed -i s,/usr/bin/gzip,gzip, Makefile.in
'';
buildInputs = [
libtiff
gettext
];
preInstall = ''
mkdir -p $out/lib
'';
meta = {
homepage = "https://djvu.sourceforge.net/djview4.html";
description = "Black-and-white djvu page encoder and decoder that use interpage information";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.unix;
mainProgram = "minidjvu";
knownVulnerabilities = [
"minidjvu is vulnerable to a number of out-of-bound read vulnerabilities, potentially causing denials of service (CVE-2017-12441, CVE-2017-12442, CVE-2017-12443, CVE-2017-12444, CVE-2017-12445)"
];
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchgit,
fetchpatch2,
autoreconfHook,
ffmpeg,
flac,
libvorbis,
libogg,
libid3tag,
libexif,
libjpeg,
sqlite,
gettext,
nixosTests,
zlib,
}:
let
pname = "minidlna";
version = "1.3.3";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchgit {
url = "https://git.code.sf.net/p/${pname}/git";
rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
hash = "sha256-InsSguoGi1Gp8R/bd4/c16xqRuk0bRsgw7wvcbokgKo=";
};
patches = [
(fetchpatch2 {
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/minidlna/-/raw/affcf0dd1e6f8e33d0ba90b2b0733736fa1aeb71/ffmpeg7.patch";
hash = "sha256-MZFPY4FywoMkZ//fKml6o5J1QG5qiScgtI+KFw5hENw=";
})
];
preConfigure = ''
export makeFlags="INSTALLPREFIX=$out"
'';
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
ffmpeg
flac
libvorbis
libogg
libid3tag
libexif
libjpeg
sqlite
gettext
zlib
];
postInstall = ''
mkdir -p $out/share/man/man{5,8}
cp minidlna.conf.5 $out/share/man/man5
cp minidlnad.8 $out/share/man/man8
'';
passthru.tests = { inherit (nixosTests) minidlna; };
meta = with lib; {
description = "Media server software";
longDescription = ''
MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully
compliant with DLNA/UPnP-AV clients.
'';
homepage = "https://sourceforge.net/projects/minidlna/";
license = licenses.gpl2Only;
platforms = platforms.linux;
mainProgram = "minidlnad";
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
rustPlatform,
stdenv,
libusb1,
pkg-config,
}:
rustPlatform.buildRustPackage rec {
pname = "minidsp";
version = "0.1.12";
src = fetchFromGitHub {
owner = "mrene";
repo = "minidsp-rs";
rev = "v${version}";
hash = "sha256-8bKP9/byVRKj1P1MP3ZVg8yw0WaNB0BcqarCti7B8CA=";
};
cargoHash = "sha256-JIm0XcgqXGPXlkQ1rhG5D38bQkQT9K44F71ZaCT2g8o=";
cargoBuildFlags = [ "-p minidsp -p minidsp-daemon" ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libusb1 ];
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ pkg-config ];
meta = with lib; {
description = "Control interface for some MiniDSP products";
homepage = "https://github.com/mrene/minidsp-rs";
license = licenses.asl20;
platforms = platforms.linux ++ platforms.darwin;
maintainers = [
maintainers.adamcstephens
maintainers.mrene
];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
nixosTests,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "miniflux";
version = "2.2.13";
src = fetchFromGitHub {
owner = "miniflux";
repo = "v2";
tag = finalAttrs.version;
hash = "sha256-u3YnABf+ik7q29JtOSlK+UlInLRq5mMlH7vIDpxOOvk=";
};
vendorHash = "sha256-JBT3BUFbPrSpkeZUoGiJJaeiSyXu8y+xcHWPNpxo3cU=";
nativeBuildInputs = [ installShellFiles ];
checkFlags = [ "-skip=TestClient" ]; # skip client tests as they require network access
ldflags = [
"-s"
"-w"
"-X miniflux.app/v2/internal/version.Version=${finalAttrs.version}"
];
postInstall = ''
mv $out/bin/miniflux.app $out/bin/miniflux
installManPage miniflux.1
'';
passthru = {
tests = nixosTests.miniflux;
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Minimalist and opinionated feed reader";
changelog = "https://miniflux.app/releases/${finalAttrs.version}.html";
homepage = "https://miniflux.app/";
license = licenses.asl20;
maintainers = with maintainers; [
rvolosatovs
benpye
emilylange
adamcstephens
];
mainProgram = "miniflux";
};
})

View File

@@ -0,0 +1,56 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
nix-update-script,
testers,
minify,
}:
buildGoModule rec {
pname = "minify";
version = "2.23.1";
src = fetchFromGitHub {
owner = "tdewolff";
repo = "minify";
rev = "v${version}";
hash = "sha256-v0KLQlf2WhI18uanVtvWfX6/7s9ZtfPM5AGyEIHZf54=";
};
vendorHash = "sha256-Btc5d/wwDmjhyDZwAIHDSbXuh8xqq/nIjTAkPsdeHU4=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X main.Version=${version}"
];
subPackages = [ "cmd/minify" ];
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
inherit version;
package = minify;
command = "minify --version";
};
};
postInstall = ''
installShellCompletion --cmd minify --bash cmd/minify/bash_completion
'';
meta = {
description = "Go minifiers for web formats";
homepage = "https://go.tacodewolff.nl/minify";
downloadPage = "https://github.com/tdewolff/minify";
changelog = "https://github.com/tdewolff/minify/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ gaelreyrol ];
mainProgram = "minify";
};
}

View File

@@ -0,0 +1,32 @@
diff --git a/minigalaxy/launcher.py b/minigalaxy/launcher.py
index aeca3e3..aeb6763 100644
--- a/minigalaxy/launcher.py
+++ b/minigalaxy/launcher.py
@@ -84,6 +84,7 @@ def get_execute_command(game) -> list:
if game.get_info("use_mangohud") is True:
exe_cmd.insert(0, "mangohud")
exe_cmd.insert(1, "--dlsym")
+ exe_cmd.insert(0, "@steamrun@")
exe_cmd = get_exe_cmd_with_var_command(game, exe_cmd)
logger.info("Launch command for %s: %s", game.name, " ".join(exe_cmd))
return exe_cmd
diff --git a/tests/test_installer.py b/tests/test_installer.py
index d459b62..dee93cb 100644
--- a/tests/test_installer.py
+++ b/tests/test_installer.py
@@ -405,13 +405,13 @@ class Test(TestCase):
mock_list_dir.return_value = ["data", "docs", "scummvm", "support", "beneath.ini", "gameinfo", "start.sh"]
result1 = installer.get_exec_line(game1)
- self.assertEqual("scummvm -c beneath.ini", result1)
+ self.assertEqual("@steamrun@ scummvm -c beneath.ini", result1)
game2 = Game("Blocks That Matter", install_dir="/home/test/GOG Games/Blocks That Matter", platform="linux")
mock_list_dir.return_value = ["data", "docs", "support", "gameinfo", "start.sh"]
result2 = installer.get_exec_line(game2)
- self.assertEqual('"/home/test/GOG Games/Blocks That Matter/start.sh"', result2)
+ self.assertEqual('@steamrun@ "/home/test/GOG Games/Blocks That Matter/start.sh"', result2)
@mock.patch('os.path.getsize')
@mock.patch('os.listdir')

View File

@@ -0,0 +1,93 @@
{
lib,
fetchFromGitHub,
glibcLocales,
glib-networking,
gobject-introspection,
gtk3,
libnotify,
nix-update-script,
python3Packages,
steam-run,
replaceVars,
unzip,
webkitgtk_4_1,
wrapGAppsHook3,
xdg-utils,
}:
python3Packages.buildPythonApplication rec {
pname = "minigalaxy";
version = "1.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "sharkwouter";
repo = "minigalaxy";
tag = version;
hash = "sha256-ZHTjppdLxKDURceonbH7dJz+krBhu3lr2P7QPVDxRZw=";
};
patches = [
(replaceVars ./inject-launcher-steam-run.diff {
steamrun = lib.getExe steam-run;
})
];
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
];
buildInputs = [
glib-networking
gtk3
libnotify
webkitgtk_4_1
];
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
pygobject3
requests
];
nativeCheckInputs = with python3Packages; [
glibcLocales
pytestCheckHook
simplejson
];
preCheck = ''
export HOME=$(mktemp -d)
'';
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
--suffix PATH : "${
lib.makeBinPath [
unzip
xdg-utils
]
}"
)
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://sharkwouter.github.io/minigalaxy/";
changelog = "https://github.com/sharkwouter/minigalaxy/blob/${version}/CHANGELOG.md";
downloadPage = "https://github.com/sharkwouter/minigalaxy/releases";
description = "Simple GOG client for Linux";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ RoGreat ];
platforms = lib.platforms.linux;
};
}

Some files were not shown because too many files have changed in this diff Show More