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,39 @@
{
lib,
python3,
fetchPypi,
}:
python3.pkgs.buildPythonApplication rec {
pname = "mlarchive2maildir";
version = "0.0.9";
pyproject = true;
src = fetchPypi {
inherit pname version;
sha256 = "02zjwa7zbcbqj76l0qmg7bbf3fqli60pl2apby3j4zwzcrrryczs";
};
build-system = with python3.pkgs; [
setuptools
setuptools-scm
];
dependencies = with python3.pkgs; [
beautifulsoup4
click
click-log
requests
six
];
pythonImportsCheck = [ "mlarchive2maildir" ];
meta = with lib; {
homepage = "https://github.com/flokli/mlarchive2maildir";
description = "Imports mail from (pipermail) archives into a maildir";
mainProgram = "mlarchive2maildir";
license = licenses.mit;
maintainers = with maintainers; [ flokli ];
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchurl,
patchelf,
}:
stdenv.mkDerivation rec {
pname = "mlc";
version = "3.9a";
src = fetchurl {
url = "https://downloadmirror.intel.com/736634/mlc_v${version}.tgz";
sha256 = "EDa5V56qCPQxgCu4eddYiWDrk7vkYS0jisnG004L+jQ=";
};
sourceRoot = "Linux";
installPhase = ''
install -Dm755 mlc $out/bin/mlc
'';
nativeBuildInputs = [ patchelf ];
fixupPhase = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/mlc
'';
meta = with lib; {
homepage = "https://software.intel.com/content/www/us/en/develop/articles/intelr-memory-latency-checker.html";
description = "Intel Memory Latency Checker";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ basvandijk ];
platforms = with platforms; linux;
mainProgram = "mlc";
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitHub,
pcre2,
uthash,
lua5_4,
makeWrapper,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "mle";
version = "1.7.2";
src = fetchFromGitHub {
owner = "adsr";
repo = "mle";
rev = "v${version}";
sha256 = "0rkk7mh6w5y1lrbdv7wmxdgl5cqzpzw0p26adazkqlfdyb6wbj9k";
};
# Fix location of Lua 5.4 header and library
postPatch = ''
substituteInPlace Makefile --replace "-llua5.4" "-llua";
substituteInPlace mle.h --replace "<lua5.4/" "<";
patchShebangs tests/*
'';
nativeBuildInputs = [
makeWrapper
installShellFiles
];
buildInputs = [
pcre2
uthash
lua5_4
];
doCheck = true;
installFlags = [ "prefix=${placeholder "out"}" ];
postInstall = ''
installManPage mle.1
'';
meta = with lib; {
description = "Small, flexible, terminal-based text editor";
homepage = "https://github.com/adsr/mle";
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ adsr ];
mainProgram = "mle";
};
}

View File

@@ -0,0 +1,37 @@
{ python3Packages, writers }:
let
py = python3Packages;
gunicornScript = writers.writePython3 "gunicornMlflow" { } ''
import re
import sys
from gunicorn.app.wsgiapp import run
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', ''', sys.argv[0])
sys.exit(run())
'';
in
py.toPythonApplication (
py.mlflow.overridePythonAttrs (old: {
propagatedBuildInputs = old.dependencies ++ [
py.boto3
py.mysqlclient
];
postPatch = (old.postPatch or "") + ''
cat mlflow/utils/process.py
substituteInPlace mlflow/utils/process.py --replace-fail \
"process = subprocess.Popen(" \
"cmd[0]='${gunicornScript}'; process = subprocess.Popen("
'';
postInstall = ''
gpath=$out/bin/gunicornMlflow
cp ${gunicornScript} $gpath
chmod 555 $gpath
'';
})
)

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "mlib";
version = "0.8.0";
src = fetchFromGitHub {
owner = "P-p-H-d";
repo = "mlib";
rev = "V${version}";
hash = "sha256-l91UGIxCd6868F21jHTEQd6CgKtuUigxgZJTTnuVPwo=";
};
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
"PREFIX=$(out)"
];
doCheck = true;
meta = with lib; {
description = "Library of generic and type safe containers in pure C language";
longDescription = ''
M*LIB (M star lib) is a C library enabling to define and use generic and
type safe container, aka handling generic containers in in pure C
language. The objects within the containers can be trivial or very
complex: they can have their own constructor, destructor, operators or can
be basic C type like the C type 'int'. This makes it possible to construct
fully recursive objects (container-of[...]-container-of-type-T), without
erasing type information (typically using void pointers or resorting to C
macro to access the container).
'';
homepage = "https://github.com/P-p-H-d/mlib";
changelog = "https://github.com/P-p-H-d/mlib/releases/tag/${src.rev}";
license = licenses.bsd2;
maintainers = with maintainers; [ azahi ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
mlton,
}:
stdenv.mkDerivation rec {
pname = "mlkit";
version = "4.7.14";
src = fetchFromGitHub {
owner = "melsman";
repo = "mlkit";
rev = "v${version}";
sha256 = "sha256-0nAQHBcQgGdcWd4SFhDon7I0zi5U+YRTdGvG78tri6A=";
};
nativeBuildInputs = [
autoreconfHook
mlton
];
buildFlags = [
"mlkit"
"mlkit_libs"
];
doCheck = true;
# MLKit intentionally has some of these in its test suite.
# Since the test suite is available in `$out/share/mlkit/test`, we must disable this check.
dontCheckForBrokenSymlinks = true;
checkPhase = ''
runHook preCheck
echo ==== Running MLKit test suite: test ====
make -C test_dev test
echo ==== Running MLKit test suite: test_prof ====
make -C test_dev test_prof
runHook postCheck
'';
meta = {
description = "Standard ML Compiler and Toolkit";
homepage = "https://elsman.com/mlkit/";
changelog = "https://github.com/melsman/mlkit/blob/v${version}/NEWS.md";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ athas ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitea,
autoreconfHook,
atf,
pkg-config,
kyua,
}:
stdenv.mkDerivation rec {
pname = "mlmmj";
version = "1.5.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "mlmmj";
repo = "mlmmj";
rev = "refs/tags/RELEASE_" + lib.replaceStrings [ "." ] [ "_" ] version;
hash = "sha256-kAo04onxVve3kCaM4h1APsjs3C4iePabkBFJeqvnPxo=";
};
nativeBuildInputs = [
autoreconfHook
atf
pkg-config
kyua
];
configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# AC_FUNC_MALLOC is broken on cross builds.
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
postInstall = ''
# grab all documentation files
docfiles=$(find -maxdepth 1 -name "[[:upper:]][[:upper:]]*")
install -vDm 644 -t $out/share/doc/mlmmj/ $docfiles
'';
meta = with lib; {
homepage = "http://mlmmj.org";
description = "Mailing List Management Made Joyful";
maintainers = [ maintainers.edwtjo ];
platforms = platforms.linux;
license = licenses.mit;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "mloader";
version = "1.1.12";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-0o4FvhuFudNSEL6fwBVqxldaNePbbidY9utDqXiLRNc=";
};
build-system = with python3Packages; [ setuptools ];
pythonRelaxDeps = [ "protobuf" ];
dependencies = with python3Packages; [
click
protobuf
requests
];
# No tests in repository
doCheck = false;
pythonImportsCheck = [ "mloader" ];
meta = with lib; {
description = "Command-line tool to download manga from mangaplus";
homepage = "https://github.com/hurlenko/mloader";
license = licenses.gpl3Only;
maintainers = [ ];
mainProgram = "mloader";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mlocate";
version = "0.26";
src = fetchurl {
url = "https://releases.pagure.org/mlocate/mlocate-${finalAttrs.version}.tar.xz";
hash = "sha256-MGPfef4Zj7lhjhgMVLrzEFsz2I/mAv8thXCq+UTxJj4=";
};
makeFlags = [
"dbfile=/var/cache/locatedb"
];
meta = {
description = "Utility to index and quickly search for files";
homepage = "https://pagure.io/mlocate";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,157 @@
{
config,
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
which,
ffmpeg,
fftw,
frei0r,
libdv,
libjack2,
libsamplerate,
libvorbis,
libxml2,
libX11,
makeWrapper,
movit,
opencv4,
rtaudio,
rubberband,
sox,
vid-stab,
cudaSupport ? config.cudaSupport,
cudaPackages ? { },
enableJackrack ? stdenv.hostPlatform.isLinux,
glib,
ladspa-sdk,
ladspaPlugins,
enablePython ? false,
python3,
swig,
qt ? null,
enableSDL2 ? true,
SDL2,
gitUpdater,
libarchive,
}:
stdenv.mkDerivation rec {
pname = "mlt";
version = "7.32.0";
src = fetchFromGitHub {
owner = "mltframework";
repo = "mlt";
tag = "v${version}";
hash = "sha256-8T5FXXGs7SxL6nD+R1Q/0Forsdp5Xux4S3VLvgqXzw8=";
# The submodule contains glaxnimate code, since MLT uses internally some functions defined in glaxnimate.
# Since glaxnimate is not available as a library upstream, we cannot remove for now this dependency on
# submodules until upstream exports glaxnimate as a library: https://gitlab.com/mattbas/glaxnimate/-/issues/545
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
pkg-config
which
makeWrapper
]
++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
]
++ lib.optionals enablePython [
python3
swig
]
++ lib.optionals (qt != null) [
qt.wrapQtAppsHook
];
buildInputs = [
(opencv4.override { inherit ffmpeg; })
ffmpeg
fftw
frei0r
libdv
libjack2
libsamplerate
libvorbis
libxml2
movit
rtaudio
rubberband
sox
vid-stab
]
++ lib.optionals cudaSupport [
cudaPackages.cuda_cudart
]
++ lib.optionals enableJackrack [
glib
ladspa-sdk
ladspaPlugins
]
++ lib.optionals (qt != null) [
qt.qtbase
qt.qtsvg
(qt.qt5compat or null)
libarchive
]
++ lib.optionals enableSDL2 [
SDL2
libX11
];
outputs = [
"out"
"dev"
];
cmakeFlags = [
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
"-DCMAKE_SKIP_BUILD_RPATH=ON"
"-DMOD_OPENCV=ON"
]
++ lib.optionals enablePython [
"-DSWIG_PYTHON=ON"
]
++ lib.optionals (qt != null) [
"-DMOD_QT${lib.versions.major qt.qtbase.version}=ON"
"-DMOD_GLAXNIMATE${if lib.versions.major qt.qtbase.version == "5" then "" else "_QT6"}=ON"
];
preFixup = ''
wrapProgram $out/bin/melt \
--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 \
${lib.optionalString enableJackrack "--prefix LADSPA_PATH : ${ladspaPlugins}/lib/ladspa"} \
${lib.optionalString (qt != null) "\${qtWrapperArgs[@]}"}
'';
postFixup = ''
substituteInPlace "$dev"/lib/pkgconfig/mlt-framework-7.pc \
--replace '=''${prefix}//' '=/'
'';
passthru = {
inherit ffmpeg;
};
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = with lib; {
description = "Open source multimedia framework, designed for television broadcasting";
homepage = "https://www.mltframework.org/";
license = with licenses; [
lgpl21Plus
gpl2Plus
];
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,251 @@
{
stdenv,
lib,
fetchFromGitHub,
pkg-config,
autoconf,
makeDesktopItem,
nixosTests,
vte,
harfbuzz, # can be replaced with libotf
fribidi,
m17n_lib,
libssh2, # build-in ssh
fcitx5,
fcitx5-gtk,
ibus,
uim, # IME
wrapGAppsHook3, # color picker in mlconfig
gdk-pixbuf,
gtk3,
gtk ? gtk3,
# List of gui libraries to use. According to `./configure --help` ran on
# release 3.9.3, options are: (xlib|win32|fb|quartz|console|wayland|sdl2|beos)
enableGuis ? {
xlib = enableX11;
# From some reason, upstream's ./configure script disables compilation of the
# external tool `mlconfig` if `enableGuis.fb == true`. This behavior is not
# documentd in `./configure --help`, and it is reported here:
# https://github.com/arakiken/mlterm/issues/73
fb = false;
quartz = stdenv.hostPlatform.isDarwin;
wayland = stdenv.hostPlatform.isLinux;
sdl2 = true;
},
libxkbcommon,
wayland, # for the "wayland" --with-gui option
SDL2, # for the "sdl" --with-gui option
# List of typing engines, the default list enables compiling all of the
# available ones, as recorded on release 3.9.3
enableTypeEngines ? {
xcore = false; # Considered legacy
xft = enableX11;
cairo = true;
},
libX11,
libXft,
cairo,
# List of external tools to create, this default list includes all default
# tools, as recorded on release 3.9.3.
enableTools ? {
mlclient = true;
mlconfig = true;
mlcc = true;
mlterm-menu = true;
# Note that according to upstream's ./configure script, to disable
# mlimgloader you have to disable _all_ tools. See:
# https://github.com/arakiken/mlterm/issues/69
mlimgloader = true;
registobmp = true;
mlfc = true;
},
# Whether to enable the X window system
enableX11 ? stdenv.hostPlatform.isLinux,
# Most of the input methods and other build features are enabled by default,
# the following attribute set can be used to disable some of them. It's parsed
# when we set `configureFlags`. If you find other configure Flags that require
# dependencies, it'd be nice to make that contribution here.
enableFeatures ? {
uim = !stdenv.hostPlatform.isDarwin;
ibus = !stdenv.hostPlatform.isDarwin;
fcitx = !stdenv.hostPlatform.isDarwin;
m17n = !stdenv.hostPlatform.isDarwin;
ssh2 = true;
bidi = true;
# Open Type layout support, (substituting glyphs with opentype fonts)
otl = true;
},
# Configure the Exec directive in the generated .desktop file
desktopBinary ? (
if enableGuis.xlib then
"mlterm"
else if enableGuis.wayland then
"mlterm-wl"
else if enableGuis.sdl2 then
"mlterm-sdl2"
else
throw "mlterm: couldn't figure out what desktopBinary to use."
),
}:
let
# Returns a --with-feature=<comma separated string list of all `true`
# attributes>, or `--without-feature` if all attributes are false or don't
# exist. Used later in configureFlags
withFeaturesList =
featureName: attrset:
let
commaSepList = lib.concatStringsSep "," (builtins.attrNames (lib.filterAttrs (n: v: v) attrset));
in
lib.withFeatureAs (commaSepList != "") featureName commaSepList;
in
stdenv.mkDerivation (finalAttrs: {
pname = "mlterm";
version = "3.9.4";
src = fetchFromGitHub {
owner = "arakiken";
repo = "mlterm";
tag = finalAttrs.version;
sha256 = "sha256-YogapVTmW4HAyVgvhR4ZvW4Q6v0kGiW11CCxN6SpPCY=";
};
nativeBuildInputs = [
pkg-config
autoconf
]
++ lib.optionals enableTools.mlconfig [
wrapGAppsHook3
];
buildInputs = [
gtk
vte
gdk-pixbuf
]
++ lib.optionals enableTypeEngines.xcore [
libX11
]
++ lib.optionals enableTypeEngines.xft [
libXft
]
++ lib.optionals enableTypeEngines.cairo [
cairo
]
++ lib.optionals enableGuis.wayland [
libxkbcommon
wayland
]
++ lib.optionals enableGuis.sdl2 [
SDL2
]
++ lib.optionals enableFeatures.otl [
harfbuzz
]
++ lib.optionals enableFeatures.bidi [
fribidi
]
++ lib.optionals enableFeatures.ssh2 [
libssh2
]
++ lib.optionals enableFeatures.m17n [
m17n_lib
]
++ lib.optionals enableFeatures.fcitx [
fcitx5
fcitx5-gtk
]
++ lib.optionals enableFeatures.ibus [
ibus
]
++ lib.optionals enableFeatures.uim [
uim
];
#bad configure.ac and Makefile.in everywhere
preConfigure = ''
sed -i -e 's;-L/usr/local/lib -R/usr/local/lib;;g' \
main/Makefile.in \
tool/mlfc/Makefile.in \
tool/mlimgloader/Makefile.in \
tool/mlconfig/Makefile.in \
uitoolkit/libtype/Makefile.in \
uitoolkit/libotl/Makefile.in
sed -i -e 's;cd ..srcdir. && rm -f ...lang..gmo.*;;g' \
tool/mlconfig/po/Makefile.in.in
#utmp and mlterm-fb
substituteInPlace configure.in \
--replace "-m 2755 -g utmp" " " \
--replace "-m 4755 -o root" " "
substituteInPlace configure \
--replace "-m 2755 -g utmp" " " \
--replace "-m 4755 -o root" " "
'';
env = lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion -Wno-error=incompatible-function-pointer-types";
};
configureFlags = [
(withFeaturesList "type-engines" enableTypeEngines)
(withFeaturesList "tools" enableTools)
(withFeaturesList "gui" enableGuis)
(lib.withFeature enableX11 "x")
]
++ lib.optionals (gtk != null) [
"--with-gtk=${lib.versions.major gtk.version}.0"
]
++ (lib.mapAttrsToList (n: v: lib.enableFeature v n) enableFeatures)
++ [
];
enableParallelBuilding = true;
postInstall = ''
install -D contrib/icon/mlterm-icon.svg "$out/share/icons/hicolor/scalable/apps/mlterm.svg"
install -D contrib/icon/mlterm-icon-gnome2.png "$out/share/icons/hicolor/48x48/apps/mlterm.png"
install -D -t $out/share/applications $desktopItem/share/applications/*
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications/
cp -a cocoa/mlterm.app $out/Applications/
install $out/bin/mlterm -Dt $out/Applications/mlterm.app/Contents/MacOS/
'';
desktopItem = makeDesktopItem {
name = "mlterm";
exec = "${desktopBinary} %U";
icon = "mlterm";
type = "Application";
comment = "Multi Lingual TERMinal emulator";
desktopName = "mlterm";
genericName = "Terminal emulator";
categories = [
"System"
"TerminalEmulator"
];
startupNotify = false;
};
passthru = {
tests.test = nixosTests.terminal-emulators.mlterm;
inherit
enableTypeEngines
enableTools
enableGuis
enableFeatures
;
};
meta = {
description = "Multi Lingual TERMinal emulator";
homepage = "https://mlterm.sourceforge.net/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [
ramkromberg
atemu
doronbehar
];
platforms = lib.platforms.all;
mainProgram = desktopBinary;
};
})

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
libsForQt5,
writableTmpDirAsHomeHook,
ffmpeg-headless,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mlv-app";
version = "1.15";
src = fetchFromGitHub {
owner = "ilia3101";
repo = "MLV-App";
rev = "QTv${finalAttrs.version}";
hash = "sha256-boYnIGDowV4yRxdE98U5ngeAwqi5HTRDFh5gVwW/kN8=";
};
patches = [
(fetchpatch {
url = "https://github.com/ilia3101/MLV-App/commit/b7643b1031955f085ade30e27974ddd889a4641f.patch";
hash = "sha256-DQkoB+fjshWDLzKouhEQXzpqn78WL+eqo5oTfE9ltEk=";
})
];
postPatch = ''
substituteInPlace platform/qt/MainWindow.cpp \
--replace-fail '"ffmpeg"' '"${lib.getExe ffmpeg-headless}"'
'';
qmakeFlags = [ "MLVApp.pro" ];
preConfigure = ''
cd platform/qt/
'';
nativeBuildInputs = [
libsForQt5.wrapQtAppsHook
libsForQt5.qmake
writableTmpDirAsHomeHook
];
buildInputs = [
libsForQt5.qtmultimedia
libsForQt5.qtbase
];
dontWrapQtApps = true;
preFixup = ''
wrapQtApp "$out/bin/mlvapp"
'';
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin mlvapp
install -Dm444 -t $out/share/applications mlvapp.desktop
install -Dm444 -t $out/share/icons/hicolor/512x512/apps RetinaIMG/MLVAPP.png
runHook postInstall
'';
updateScript = nix-update-script { };
meta = {
description = "All in one MLV processing app that is pretty great";
homepage = "https://mlv.app";
downloadPage = "https://github.com/ilia3101/MLV-App";
changelog = "https://github.com/ilia3101/MLV-App/releases/tag/QTv${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
mainProgram = "mlvapp";
};
})

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
gccmakedep,
libX11,
libXext,
libXpm,
imake,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "mlvwm";
version = "0.9.4";
src = fetchFromGitHub {
owner = "morgant";
repo = "mlvwm";
rev = version;
sha256 = "sha256-ElKmi+ANuB3LPwZTMcr5HEMESjDwENbYnNIGdRP24d0=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = [
gccmakedep
libX11
libXext
libXpm
imake
];
buildPhase = ''
(cd man && xmkmf)
(cd sample_rc && xmkmf)
(cd mlvwm && xmkmf)
xmkmf
make
'';
installPhase = ''
mkdir -p $out/{bin,etc}
cp mlvwm/mlvwm $out/bin
cp sample_rc/Mlvwmrc* $out/etc
runHook postInstall
'';
postInstall = ''
mv man/mlvwm.man man/mlvwm.1
installManPage man/mlvwm.1
'';
meta = with lib; {
homepage = "https://github.com/morgant/mlvwm";
description = "Macintosh-like Virtual Window Manager";
license = licenses.mit;
longDescription = ''
MLVWM or Macintosh-Like Virtual Window Manager,
is an FVWM descendant created by Takashi Hasegawa
in 1997 while studying at Nagoya University and
was written entirely in the C programming language.
As its name implies, it attempts to emulate the
pre-Mac OS X Macintosh look and feel in its layout and window design.
'';
platforms = platforms.linux;
maintainers = [ maintainers.j0hax ];
mainProgram = "mlvwm";
};
}

View File

@@ -0,0 +1,10 @@
prefix=@out@
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
Name: mlx42
Description: A simple cross-platform graphics library that uses GLFW and OpenGL
Version: @version@
Libs: -L${libdir} -lmlx42
Cflags: -I${includedir}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
glfw,
enableShared ? !stdenv.hostPlatform.isStatic,
enableDebug ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mlx42";
version = "2.4.1";
src = fetchFromGitHub {
owner = "codam-coding-college";
repo = "MLX42";
tag = "v${finalAttrs.version}";
hash = "sha256-/HCP6F7N+J97n4orlLxg/4agEoq4+rJdpeW/3q+DI1I=";
};
patches = [
# clang no longer allows using -Ofast
# see: https://github.com/codam-coding-college/MLX42/issues/147
(fetchpatch {
name = "replace-ofast-with-o3.patch";
url = "https://github.com/codam-coding-college/MLX42/commit/ce254c3a19af8176787601a2ac3490100a5c4c61.patch";
hash = "sha256-urL/WVOXinf7hWR5kH+bAVTcAzldkkWfY0+diSf7jHE=";
})
];
postPatch = ''
patchShebangs --build ./tools
''
+ lib.optionalString enableShared ''
substituteInPlace CMakeLists.txt \
--replace-fail "mlx42 STATIC" "mlx42 SHARED"
'';
strictDeps = true;
nativeBuildInputs = [ cmake ];
buildInputs = [ glfw ];
cmakeFlags = [ (lib.cmakeBool "DEBUG" enableDebug) ];
postInstall = ''
mkdir -p $out/lib/pkgconfig
substituteAll ${./mlx42.pc} $out/lib/pkgconfig/mlx42.pc
'';
meta = {
changelog = "https://github.com/codam-coding-college/MLX42/releases/tag/v${finalAttrs.version}";
description = "Simple cross-platform graphics library that uses GLFW and OpenGL";
homepage = "https://github.com/codam-coding-college/MLX42";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ tomasajt ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,35 @@
{
stdenv,
fetchFromGitHub,
lib,
}:
stdenv.mkDerivation rec {
pname = "mlxbf-bootctl";
version = "unstable-2025-01-16";
src = fetchFromGitHub {
owner = "Mellanox";
repo = "mlxbf-bootctl";
rev = "278160ca8e08251cff5e7989e5a1010bd247a6ae";
hash = "sha256-qS35wCb8zvuF2Zs/5hPZkoZAapr7fwKQ/0ZOBPtrkRQ=";
};
installPhase = ''
install -D mlxbf-bootctl $out/bin/mlxbf-bootctl
'';
meta = {
description = "Control BlueField boot partitions";
homepage = "https://github.com/Mellanox/mlxbf-bootctl";
license = lib.licenses.bsd2;
changelog = "https://github.com/Mellanox/mlxbf-bootctl/releases/tag/${pname}-${version}";
# This package is supposed to only run on a BlueField. Thus aarch64-linux
# is the only relevant platform.
platforms = [ "aarch64-linux" ];
maintainers = with lib.maintainers; [
nikstur
thillux
];
};
}

View File

@@ -0,0 +1,43 @@
{
stdenv,
lib,
fetchurl,
dpkg,
}:
stdenv.mkDerivation rec {
pname = "mlxbf-bootimages";
version = "4.11.0-13611";
src = fetchurl {
url = "https://linux.mellanox.com/public/repo/bluefield/${version}/bootimages/prod/${pname}-signed_${version}_arm64.deb";
hash = "sha256-bZpZ6qnC3Q/BuOngS4ZoU6vjeekPjVom0KdDoJF5iko=";
};
nativeBuildInputs = [
dpkg
];
unpackCmd = "dpkg -x $curSrc src";
# Only install /lib. /usr only contains the licenses which are also available
# in /lib.
installPhase = ''
find lib -type f -exec install -D {} $out/{} \;
'';
meta = with lib; {
description = "BlueField boot images";
homepage = "https://github.com/Mellanox/bootimages";
# It is unclear if the bootimages themselves are Open Source software. They
# never explicitly say they are. They contain Open Source software licensed
# under bsd2, bsd2Patent, bsd3. However, it is probably safer to assume
# they are unfree. See https://github.com/Mellanox/bootimages/issues/3
license = licenses.unfree;
platforms = [ "aarch64-linux" ];
maintainers = with maintainers; [
nikstur
thillux
];
};
}