From 227c9261ae1973d0d2913f975b3269ac7a2ad2b8 Mon Sep 17 00:00:00 2001 From: Eric Rodrigues Pires Date: Sat, 24 Jan 2026 10:31:15 -0300 Subject: [PATCH 1/2] maintainers: add matrix handle for EpicEric --- maintainers/maintainer-list.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 006ca49d55c8..8270212943a6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7883,6 +7883,7 @@ email = "eric@eric.dev.br"; github = "EpicEric"; githubId = 3129194; + matrix = "@epiceric:nixos.dev"; name = "Eric Rodrigues Pires"; }; epireyn = { From 9d6f8f204dc1d937e711150571a7cfdf0beef290 Mon Sep 17 00:00:00 2001 From: Eric Rodrigues Pires Date: Sat, 24 Jan 2026 10:28:59 -0300 Subject: [PATCH 2/2] convertx: init at 0.17.0 --- pkgs/by-name/co/convertx/package.nix | 154 +++++++++++++++++++++++++++ pkgs/by-name/co/convertx/pin.json | 6 ++ 2 files changed, 160 insertions(+) create mode 100644 pkgs/by-name/co/convertx/package.nix create mode 100644 pkgs/by-name/co/convertx/pin.json diff --git a/pkgs/by-name/co/convertx/package.nix b/pkgs/by-name/co/convertx/package.nix new file mode 100644 index 000000000000..153ab012903a --- /dev/null +++ b/pkgs/by-name/co/convertx/package.nix @@ -0,0 +1,154 @@ +{ + stdenv, + lib, + fetchFromGitHub, + + # Build deps + bun, + tailwindcss_4, + typescript, + makeBinaryWrapper, + + # Runtime deps + assimp, + calibre, + dasel, + ffmpeg-headless, + graphicsmagick, + imagemagick, + inkscape, + libheif, + libjxl, + libreoffice, + libva, + pandoc, + perl5Packages, + potrace, + python3, + resvg, + texliveBasic, + vips, + vtracer, +}: +let + pin = lib.importJSON ./pin.json; + inherit (pin) version; + + pname = "convertx"; + + src = fetchFromGitHub { + owner = "C4illin"; + repo = "ConvertX"; + tag = "v${version}"; + hash = pin.srcHash; + }; + + node_modules = stdenv.mkDerivation (finalAttrs: { + pname = "${pname}-node_modules"; + inherit version src; + + dontConfigure = true; + + nativeBuildInputs = [ + bun + ]; + + buildPhase = '' + runHook preBuild + + bun install --frozen-lockfile --no-progress + + runHook postBuild + ''; + + installPhase = '' + mkdir -p $out/lib/node_modules + + rm -rf ./node_modules/.cache + rm -rf node_modules/.bin + cp -R ./node_modules $out/lib + cp package.json $out/lib + ''; + + outputHash = pin."${stdenv.system}"; + outputHashMode = "recursive"; + }); +in +stdenv.mkDerivation { + inherit pname version src; + + nativeBuildInputs = [ + makeBinaryWrapper + tailwindcss_4 + typescript + ]; + + dontConfigure = true; + + buildPhase = '' + runHook preBuild + + ln -s ${node_modules}/lib/node_modules ./node_modules + tailwindcss -i ./src/main.css -o ./public/generated.css + tsc + + substituteInPlace ./dist/src/index.js \ + --replace-fail "assets: \"public\"" "assets: \"$out/share/convertx/dist/public\"" + + runHook postBuild + ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/convertx + cp -R ./dist $out/share/convertx + cp -R ./public $out/share/convertx/dist + ln -s ${node_modules}/lib/node_modules $out + + makeBinaryWrapper ${bun}/bin/bun $out/bin/convertx \ + --add-flags "run --prefer-offline --no-install $out/share/convertx/dist/src/index.js" \ + --set NODE_ENV production \ + --suffix PATH : ${ + lib.makeBinPath [ + assimp + calibre + dasel + ffmpeg-headless + graphicsmagick + imagemagick + inkscape + libheif + libjxl + libreoffice + libva + pandoc + perl5Packages.EmailOutlookMessage + potrace + (python3.withPackages (ps: [ ps.markitdown ])) + resvg + (texliveBasic.withPackages (ps: [ + ps.dvisvgm + ps.latex + ps.latexmk + ps.unicode-math + ps.xcolor + ps.xetex + ])) + vips + vtracer + ] + } + ''; + + meta = { + description = "Self-hosted online file converter"; + homepage = "https://github.com/C4illin/ConvertX/tree/main"; + license = lib.licenses.agpl3Only; + platforms = lib.platforms.linux; + changelog = "https://github.com/C4illin/ConvertX/blob/main/CHANGELOG.md"; + mainProgram = "convertx"; + maintainers = with lib.maintainers; [ + EpicEric + ]; + }; +} diff --git a/pkgs/by-name/co/convertx/pin.json b/pkgs/by-name/co/convertx/pin.json new file mode 100644 index 000000000000..1fc9e21d094a --- /dev/null +++ b/pkgs/by-name/co/convertx/pin.json @@ -0,0 +1,6 @@ +{ + "version": "0.17.0", + "srcHash": "sha256-1W7M9BfAh89ntmJW7tNwydwPCkVy5CoddWb2aPPUFds=", + "x86_64-linux": "sha256-7B4ZGGew6isFnz7EoaLyJgO6a66V9ZTKsKxXwVSsnfs=", + "aarch64-linux": "sha256-IoQP9UBd64qecOwmI8oQREgiYCL2pXGjfVx1Ylvd/WA=" +}