Hi,

On Thu, 09 Jul 2026 00:29:04 +0200 Johannes Schauer Marin Rodrigues 
<[email protected]> wrote:
> > Because the future of Kotlin in Debian is uncertain. We are stuck with the
> > version 1.3.31 and we don't know how long we'll able to maintain it.
> 
> So while we could also wait for kotlin in Debian to get fixed, I offer an
> alternative solution to this bug: rewrite scripts/GenerateNLVersion.kt in
> something that is not kotlin. At the end of this mail, please find a Python
> script which does the same as the kotlin script in a third of the lines of
> code. It also means you can drop the Build-Depends on kotlin.

this issue is blocking my package reform-tools to transition to testing. I have
sent a patch fixing this issue to this bug nine days ago and CC-ed the uploader
as well as the maintainer without any reaction since then.

I am thus following the developer-reference recommendation to perform an NMU
fixing this issue with zero-delay.

Please find the diff of my NMU attached at the bottom of this mail.

Thanks!

cheers, josch

diff -Nru fonts-jetbrains-mono-2.304+ds/debian/changelog 
fonts-jetbrains-mono-2.304+ds/debian/changelog
--- fonts-jetbrains-mono-2.304+ds/debian/changelog      2025-08-10 
15:52:22.000000000 +0200
+++ fonts-jetbrains-mono-2.304+ds/debian/changelog      2026-07-18 
21:59:47.000000000 +0200
@@ -1,3 +1,11 @@
+fonts-jetbrains-mono (2.304+ds-6.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace scripts/GenerateNLVersion.kt with a Python script. This allows
+    dropping kotlin from Build-Depends (Closes: #1131648)
+
+ -- Johannes Schauer Marin Rodrigues <[email protected]>  Sat, 18 Jul 2026 
21:59:47 +0200
+
 fonts-jetbrains-mono (2.304+ds-6) unstable; urgency=medium
 
   * Drop ttfautohint patch
diff -Nru fonts-jetbrains-mono-2.304+ds/debian/control 
fonts-jetbrains-mono-2.304+ds/debian/control
--- fonts-jetbrains-mono-2.304+ds/debian/control        2025-08-10 
15:45:37.000000000 +0200
+++ fonts-jetbrains-mono-2.304+ds/debian/control        2026-07-18 
21:59:47.000000000 +0200
@@ -11,7 +11,6 @@
  gftools,
  python-is-python3,
  python3-ttfautohint-py,
- kotlin,
 Standards-Version: 4.7.2
 Homepage: https://www.jetbrains.com/lp/mono/
 Vcs-Git: https://salsa.debian.org/fonts-team/fonts-jetbrains-mono.git
diff -Nru fonts-jetbrains-mono-2.304+ds/debian/copyright 
fonts-jetbrains-mono-2.304+ds/debian/copyright
--- fonts-jetbrains-mono-2.304+ds/debian/copyright      2025-08-10 
15:45:37.000000000 +0200
+++ fonts-jetbrains-mono-2.304+ds/debian/copyright      2026-07-18 
21:59:47.000000000 +0200
@@ -27,6 +27,12 @@
 Files: debian/*
 Copyright: 2020-2025 Agathe Porte
 License: GPL-3+
+
+Files: debian/GenerateNLVersion.py
+Copyright: 2026 Johannes Schauer Marin Rodrigues <[email protected]>
+License: GPL-3+
+
+License: GPL-3+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
diff -Nru fonts-jetbrains-mono-2.304+ds/debian/GenerateNLVersion.py 
fonts-jetbrains-mono-2.304+ds/debian/GenerateNLVersion.py
--- fonts-jetbrains-mono-2.304+ds/debian/GenerateNLVersion.py   1970-01-01 
01:00:00.000000000 +0100
+++ fonts-jetbrains-mono-2.304+ds/debian/GenerateNLVersion.py   2026-07-18 
21:59:47.000000000 +0200
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+# Copyright 2026 Johannes Schauer Marin Rodrigues <[email protected]>
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from pathlib import Path
+import subprocess
+
+# we don't use xml.etree.ElementTree because it does not preserve comments
+import lxml.etree as ET
+import os, sys
+
+
+def main():
+    for p in sorted(Path("./fonts/ttf/").glob("JetBrainsMono-*.ttf")):
+        print(p, file=sys.stderr)
+        ttxp = p.with_suffix(".ttx")
+        if ttxp.exists():
+            ttxp.unlink()
+        subprocess.check_call(["ttx", p])
+        document = ET.parse(ttxp)
+        root = document.getroot()
+        root.remove(root.find("GPOS"))
+        root.remove(root.find("GSUB"))
+        for ppath, ename in [
+            ("GlyphOrder", "GlyphID"),
+            ("glyf", "TTGlyph"),
+            ("hmtx", "mtx"),
+            ("post/extraNames", "psName"),
+        ]:
+            parent = root.find(ppath)
+            for child in parent.findall(ename):
+                if child.attrib["name"].endswith(".liga"):
+                    parent.remove(child)
+        for el in root.findall("name/namerecord"):
+            if "trademark" in el.text:
+                continue
+            el.text = el.text.replace("JetBrains Mono", "JetBrains Mono NL")
+            el.text = el.text.replace("JetBrainsMono", "JetBrainsMonoNL")
+        NLttfp = p.with_stem(p.stem.replace("JetBrainsMono", 
"JetBrainsMonoNL"))
+        if NLttfp.exists():
+            NLttfp.unlink()
+        NLttxp = NLttfp.with_suffix(".ttx")
+        document.write(NLttxp, xml_declaration=True, encoding="UTF-8", 
standalone=False)
+        sde = os.environ.get("SOURCE_DATE_EPOCH")
+        if sde is not None:
+            os.utime(NLttxp, (int(sde), int(sde)))
+        subprocess.check_call(["ttx", NLttxp])
+        NLttxp.unlink()
+        ttxp.unlink()
+
+
+if __name__ == "__main__":
+    main()
diff -Nru fonts-jetbrains-mono-2.304+ds/debian/rules 
fonts-jetbrains-mono-2.304+ds/debian/rules
--- fonts-jetbrains-mono-2.304+ds/debian/rules  2025-08-10 15:45:37.000000000 
+0200
+++ fonts-jetbrains-mono-2.304+ds/debian/rules  2026-07-18 21:59:47.000000000 
+0200
@@ -7,5 +7,5 @@
 override_dh_auto_build:
        ./sources/old-build-scripts/build-statics.sh
        ./sources/old-build-scripts/build-webfonts.sh
-       kotlinc scripts/GenerateNLVersion.kt -d scripts/GenerateNLVersion.jar
-       kotlin -classpath scripts/GenerateNLVersion.jar GenerateNLVersionKt
+       ./debian/GenerateNLVersion.py
+

Attachment: signature.asc
Description: signature

Reply via email to