Micron Document
md2txt package

It seems the md2txt will call figlet if pyfiglet is available.

I didn't know how to make a package for it without pyfiglet.

Here's what I came up with:

T282828
Tb4b4b4{
libTb4b4b4,
stdenvTb4b4b4,
python3PackagesTb4b4b4,
Tb4b4b4}Tb4b4b4:
Tff7b72with python3PackagesTb4b4b4;
buildPythonApplication Tff7b72rec Tb4b4b4{
Ta5d6ffpname Tff7b72= Ta5d6ff"Ta5d6ffmd2txtTa5d6ff"Tb4b4b4;
Ta5d6ffversion Tff7b72= Ta5d6ff"Ta5d6ff0.0.0Ta5d6ff"Tb4b4b4;
Ta5d6ffformat Tff7b72= Ta5d6ff"Ta5d6ffpyprojectTa5d6ff"Tb4b4b4;

Ta5d6ffdependencies Tff7b72= Tb4b4b4[
python3PackagesTff7b72.pyfiglet
python3PackagesTff7b72.pyphen
python3PackagesTff7b72.setuptools
Tb4b4b4]Tb4b4b4;

Ta5d6ffsrc Tff7b72= Tffa657builtinsTff7b72.fetchGit Tb4b4b4{
Ta5d6ffurl Tff7b72= Ta5d6ff"Ta5d6ffhttps://codeberg.org/randogoth/md2txt.gitTa5d6ff"Tb4b4b4;
Ta5d6ffref Tff7b72= Ta5d6ff"Ta5d6ffmasterTa5d6ff"Tb4b4b4;
Ta5d6ffrev Tff7b72= Ta5d6ff"Ta5d6ffb539d037c68d4ab9543626fea6a214f22bd43195Ta5d6ff"Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4}


And using the following default.nix to reference it:

T282828
Tff7b72let
Ta5d6ffnixpkgs Tff7b72= Ta5d6ff<nixpkgs>Tb4b4b4;
Ta5d6ffpkgs Tff7b72= Tffa657import nixpkgs Tb4b4b4{
Ta5d6ffconfig Tff7b72= Tb4b4b4{ Tb4b4b4}Tb4b4b4;
Ta5d6ffoverlays Tff7b72= Tb4b4b4[ Tb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72in
Tb4b4b4{
Ta5d6ffmd2txt Tff7b72= pkgsTff7b72.callPackage Ta5d6ff./md2txt.nix Tb4b4b4{ Tb4b4b4}Tb4b4b4;
Tb4b4b4}


Now I can T383838nix-build -A md2txt to build the package.

If I use the following T383838shell.nix then I can even T383838nix-shell to have an environment with it so I can T383838python -m md2txt …:

T282828
Tff7b72with Tffa657import Ta5d6ff<nixpkgs> Tb4b4b4{ Tb4b4b4}Tb4b4b4;

Tff7b72let
Ta5d6ffmd2txt Tff7b72= pkgsTff7b72.callPackage Ta5d6ff./md2txt.nix Tb4b4b4{ Tb4b4b4}Tb4b4b4;
Tff7b72in
mkShell Tb4b4b4{
Ta5d6ffpackages Tff7b72= Tb4b4b4[
md2txt
Tb4b4b4]Tb4b4b4;
Tb4b4b4}


If I remove the T383838python3Packages.pyfiglet then it will fail to build because it's called out in the T383838pyproject.toml file.

How the hell do I change this when the fetched source is in the store and immutable?

I checked out md2txt, edited the T383838pyproject.toml file to remove the dependency and then I committed the change.

Then I did a T383838git format-patch HEAD~1 to make a patch that would apply cleanly against the version of md2txt that I was packaging.

I edited that file slightly, this is what it looks like:

T282828
Te6edf3pyprojectTff7b72.Td2a8fftoml Tff7b72| T79c0ff1 Tff7b72-
T79c0ff1 Te6edf3file Te6edf3changedTb4b4b4, T79c0ff1 Te6edf3deletionTb4b4b4(Tff7b72-Tb4b4b4)

Te6edf3diff Tff7b72-Tff7b72-Te6edf3git Te6edf3aTff7b72/Te6edf3pyprojectTff7b72.Td2a8fftoml Te6edf3bTff7b72/Te6edf3pyprojectTff7b72.Td2a8fftoml
Te6edf3index Te6edf3a6fde53Tff7b72.Tff7b72.T79c0ff5Te6edf3b62a54 T79c0ff100644
Tff7b72-Tff7b72-Tff7b72- Te6edf3aTff7b72/Te6edf3pyprojectTff7b72.Td2a8fftoml
Tff7b72+Tff7b72+Tff7b72+ Te6edf3bTff7b72/Te6edf3pyprojectTff7b72.Td2a8fftoml
@@ Tff7b72-T79c0ff5Tb4b4b4,T79c0ff7 Tff7b72+T79c0ff5Tb4b4b4,T79c0ff6 @@ Te6edf3description Tff7b72= Ta5d6ff"Ta5d6ffMarkdown to plain-text conversion toolkitTa5d6ff"
Te6edf3readme Tff7b72= Ta5d6ff"Ta5d6ffREADME.muTa5d6ff"
Te6edf3requiresTff7b72-Te6edf3python Tff7b72= Ta5d6ff"Ta5d6ff>=3.13Ta5d6ff"
Te6edf3dependencies Tff7b72= Tb4b4b4[
Tff7b72- Ta5d6ff"Ta5d6ffpyfiglet>=0.8.0Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpyphen>=0.17.2Ta5d6ff"Tb4b4b4,
Tb4b4b4]


I then put that into T383838patches/md2txt.patch and amended the package file:

T282828
Tb4b4b4{
libTb4b4b4,
stdenvTb4b4b4,
python3PackagesTb4b4b4,
Tb4b4b4}Tb4b4b4:
Tff7b72with python3PackagesTb4b4b4;
buildPythonApplication Tff7b72rec Tb4b4b4{
Ta5d6ffpname Tff7b72= Ta5d6ff"Ta5d6ffmd2txtTa5d6ff"Tb4b4b4;
Ta5d6ffversion Tff7b72= Ta5d6ff"Ta5d6ff0.0.0Ta5d6ff"Tb4b4b4;
Ta5d6ffformat Tff7b72= Ta5d6ff"Ta5d6ffpyprojectTa5d6ff"Tb4b4b4;

Ta5d6ffdependencies Tff7b72= Tb4b4b4[
python3PackagesTff7b72.pyphen
python3PackagesTff7b72.setuptools
Tb4b4b4]Tb4b4b4;

Ta5d6ffsrc Tff7b72= Tffa657builtinsTff7b72.fetchGit Tb4b4b4{
Ta5d6ffurl Tff7b72= Ta5d6ff"Ta5d6ffhttps://codeberg.org/randogoth/md2txt.gitTa5d6ff"Tb4b4b4;
Ta5d6ffref Tff7b72= Ta5d6ff"Ta5d6ffmasterTa5d6ff"Tb4b4b4;
Ta5d6ffrev Tff7b72= Ta5d6ff"Ta5d6ffb539d037c68d4ab9543626fea6a214f22bd43195Ta5d6ff"Tb4b4b4;
Tb4b4b4}Tb4b4b4;

Ta5d6ffpatches Tff7b72= Tb4b4b4[ Ta5d6ff./patches/md2txt.patch Tb4b4b4]Tb4b4b4;
Tb4b4b4}


I then entered a nix shell again (which triggered a rebuild) and confirmed via T383838pydoc -k pyfiglet that the module was no longer present.

So now I can roll this up into my capsule build to generate micron pages for sharing over reticulum.

Tags: nix

Tags
Navigation



created: 2026-05-07

(re)generated: 2026-07-17