DFSG NEW Queue

DFSG, Licensing & New Packages Team

formiko 2.0.0-2

Package Information

DescriptionreStructuredText and MarkDown editor and live previewer

Formiko is a reStructuredText and MarkDown editor and live previewer.

Common features: * vertical or horizontal window splitting * preview mode * periodic save file * json and html preview

This package provides the formiko binary, which uses a GtkSourceView based editor with syntax highlighting. For an embedded Neovim editor, also install formiko-vim.

MaintainerOndřej Tůma <mcbig@zeropage.cz>
Changed ByOndřej Tůma <mcbig@zeropage.cz>
Sponsortsimonq2@debian.org
Distributionunstable
Architectureall
VCSgit: https://github.com/ondratu/formiko-debian.git (browse)
Closes#1145686
Popcon Installs159
Binary NEWYes (new binary packages of a source already in sid)
Trackerhttps://tracker.debian.org/pkg/formiko
Uploaded2 hours ago

New Package Report

.changes◂
DateFri, 11 Sep 2026 08:13:04 +0200
Sourceformiko
Version2.0.0-2
Changed-ByOndřej Tůma <mcbig@zeropage.cz>
Architecturesource all
Distributionunstable
Changelog◂
formiko (2.0.0-2) unstable; urgency=medium
 .
   * debian/patches: add pynvim-optional-import.patch, fixing a startup
     crash of formiko (without formiko-vim) when python3-pynvim is not
     installed but gir1.2-vte-3.91 is (Recommends installs it by
     default); backported from upstream commit
     7ac2d9dc203ad60f796cb9c97efec6da51bee37b
   * debian/control: split formiko-vim into its own binary package
     (Closes: #1145686)
     - New formiko-vim package ships the formiko-vim binary, its
       .desktop file and man page, with an explicit Depends on
       formiko (= ${binary:Version}) and python3-pynvim: pynvim was
       previously only a Suggests on formiko, so the Vim mode silently
       failed to work without it
     - formiko no longer ships the formiko-vim binary, .desktop file
       or man page
     - Move python3-m2r2 and python3-pygments from Suggests to
       Recommends for formiko: they are small and worth having
       installed by default
     - Drop Suggests entirely (python3-pynvim is now a hard Depends
       of formiko-vim instead)
     - Add Breaks/Replaces (<< 2.0.0-2~) on formiko-vim for the files
       moved out of formiko
     - Drop dh-sequence-single-binary from Build-Depends, required
       now that the source builds two binary packages
   * debian/rules: add formiko.install/formiko-vim.install to split
     the pybuild install tree between the two packages; override
     dh_installdocs so formiko-vim's doc directory is a symlink to
     formiko's
   * debian/rules: run the test suite only with the default Python
     version: python3-gi has no _gi extension for Python 3.15 yet, which
     made the build fail
.dsc◂
Package-Listformiko deb editors optional arch=all
formiko-vim deb editors optional arch=all
Sectioneditors
Priorityoptional
Componentmain
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: formiko
Upstream-Contact: Ondřej Tůma <mcbig@zeropage.cz>
Source: https://github.com/ondratu/formiko

Files: *
Copyright: 2016-2026 Formiko Team.
           2016-2026 Ondřej Tůma <mcbig@zeropage.cz>
           2016-2018 Petr Šimčík <petrsimi.org@gmail.com>
License: BSD-3-Clause

Files: debian/*
Copyright: 2018-2026 Ondřej Tůma <mcbig@zeropage.cz>
License: BSD-3-Clause

Files: formiko.metainfo.xml
Copyright: 2019-2026 Ondřej Tůma <mcbig@zeropage.cz>
License: MIT

License: BSD-3-Clause
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 3. Neither the name of the University nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.
 .
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE HOLDERS OR
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: MIT
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
 "Software"), to deal in the Software without restriction, including
 without limitation the rights to use, copy, modify, merge, publish,
 distribute, sublicense, and/or sell copies of the Software, and to
 permit persons to whom the Software is furnished to do so, subject to
 the following conditions:
 .
 The above copyright notice and this permission notice shall be included
 in all copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

DFSG Assistant LLM REVIEW 1 blocker, 0 important, 3 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 0 hours ago.

Proposes a replacement debian/watch: debian/watch in version 5 format

Report◂

DFSG NEW review for formiko version 2.0.0-2

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: No
  • Packaging is of good quality: Yes
  • Issues: 1 blocker, 0 important, 3 minor
  • debian/watch: old format (version 4)
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

Every file in the tree carries a free licence, so the licensing itself is DFSG-compliant: the application is BSD-3-Clause (COPYING, matching pyproject.toml's License-Expression and the About dialog's Gtk.License.BSD_3), and the only file under another licence, the AppStream metainfo XML, is MIT. debian/copyright is not, however, fully accurate: its MIT stanza names formiko.metainfo.xml, a path that no longer exists because debian/patches/appstream-id-consistency.patch renamed the file to cz.zeropage.Formiko.metainfo.xml, so that MIT file now falls under the Files: * BSD-3-Clause catch-all; and the BSD-3-Clause text reproduced in the file differs from upstream's clause 3 wording. All holders the scan found are named; the remaining files (icons, JSON-preview assets, generated metainfo artefacts) are covered by Files: *.

Packaging

Clean, modern debhelper compat 14 packaging: dh sequencer with the pybuild buildsystem, Rules-Requires-Root: no, Vcs-* and upstream metadata, a sensible binary split (formiko / formiko-vim) with the moved files guarded by Breaks/Replaces and a symlinked doc directory, and a two-command autopkgtest. Every dependency named in control exists in the archive. Two patches with proper DEP-3 headers, one of them a backport and one forwarded upstream. The only faults are minor: the shipped man pages are upstream text written for the pre-GTK4 formiko.

Issues

1. [blocker] [licensing] debian/copyright's MIT stanza names formiko.metainfo.xml, a path that no longer exists, so cz.zeropage.Formiko.metainfo.xml is described as BSD-3-Clause

  • Files: debian/copyright:15-18 (Files: formiko.metainfo.xml), debian/patches/appstream-id-consistency.patch, cz.zeropage.Formiko.metainfo.xml:40
  • Basis: checked, in the package or with a reference tool
  • Evidence: debian/copyright has Files: formiko.metainfo.xml / Copyright: 2019-2026 Ondřej Tůma <mcbig@zeropage.cz> / License: MIT. appstream-id-consistency.patch renames it: --- a/formiko.metainfo.xml / +++ b/cz.zeropage.Formiko.metainfo.xml, and no top-level formiko.metainfo.xml exists in the unpacked tree. Per the copyright-format 1.0 spec section 6.9 (read with the policy tool), a pattern without a wildcard is anchored at the root and names one path, so the pattern matches nothing and the last stanza matching the file is Files: * (License: BSD-3-Clause). The file itself declares <metadata_license>MIT</metadata_license> at line 40.
  • Problem: The metainfo file's licence is misstated: Debian's own copyright file tells users it is BSD-3-Clause (the catch-all) when it is MIT. The MIT stanza is dead text, matching no file at all.
  • Fix: Change the stanza's pattern to Files: cz.zeropage.Formiko.metainfo.xml (the path the file actually has after the packaging patch) and keep License: MIT.

2. [minor] [licensing] debian/copyright's BSD-3-Clause clause 3 reads "Neither the name of the University nor the names of its contributors", upstream's COPYING says "the author"

  • Files: debian/copyright:29-30, COPYING:14-15
  • Basis: checked, in the package or with a reference tool
  • Evidence: debian/copyright: 3. Neither the name of the University nor the names of its contributors; COPYING: * Neither the name of the author nor the names of its / contributors may be used to endorse or promote products derived.
  • Problem: The licence text Debian distributes names a party (a university) that appears in no upstream notice, so the reproduced BSD-3-Clause variant does not match the licence actually granted; the restriction differs in who may not be used for endorsement.
  • Fix: Reproduce upstream's wording in the stand-alone License: BSD-3-Clause paragraph: Neither the name of the author nor the names of its contributors.

3. [minor] [packaging] The shipped man pages still describe formiko as a Gtk3/WebKit2/GtkSpell3/recommonmark program

  • Files: formiko.rst (DESCRIPTION), formiko-vim.rst (DESCRIPTION)
  • Basis: checked, in the package or with a reference tool
  • Evidence: formiko.rst: It is written in Python with Gtk3 and Webkit2. It use Docutils and recommonmark Common Mark parser. / This version use SourceView as editor and GtkSpell3 as spell checker. formiko-vim.rst: At this moment, **this works only on X11 graphics backend**, because GtkSockets not work on Wayland yet. while 2.0.0 requires Gtk 4.0, Adw 1, GtkSource 5, WebKit 6.0 and Spelling 1 (formiko/main.py) and its changelog entry says recommonmark was dropped.
  • Problem: Both man pages are built into formiko.1/formiko-vim.1 and installed, and give users factually wrong information about the toolkit, the parser and the spell checker of the version they have installed.
  • Fix: Update the DESCRIPTION sections of formiko.rst and formiko-vim.rst for the GTK4/libadwaita/WebKit 6.0 port (and drop the Wayland caveat if it no longer applies), ideally upstream.

4. [minor] [packaging] debian/watch is in the old version 4 format

  • Files: debian/watch
  • Basis: found by the review tooling's own checks
  • Evidence: version=4
  • Problem: Version 5 is the current format of debian/watch.
  • Fix: Convert it to version 5; a mechanical conversion is under Proposed changes.

Verified

  • Prescan's author check: the scan found every copyright holder it looked for already named in debian/copyright; the holders in Files: * (Formiko Team, Ondřej Tůma, Petr Šimčík) match COPYING and AUTHORS, and the other names in AUTHORS (Ben Burrill, Fr_Dae, Jason Dong, Jeremy Bicha, Sabri Ünal, Vincent Bermel) are past contributors, not separate holders.
  • icons/formiko.svg is the source for the PNGs under icons/16x16 .. 512x512, generated by the shipped icons/svg2png.py; the preferred form is present, so the PNGs are not unbuildable binaries.
  • formiko/data/jsonfold.js and formiko/data/jsonfold.css are 12-line and 25-line hand-written assets for the JSON preview (imported by formiko/json_preview.py and packaged via [tool.setuptools.package-data]); no vendored library and no third-party notice, covered by Files: *.
  • formiko/data/AUTHORS and top-level AUTHORS are contributor lists, not licence statements.
  • PKG-INFO, formiko.egg-info/ and ChangeLog are setuptools/sdist artefacts shipped in the upstream tarball (debian/source/options ignores egg-info in the diff); they carry License-Expression: BSD-3-Clause, consistent with Files: *.
  • debian/upstream/signing-key.asc is a PGP public key (no copyrightable content that needs a stanza); it is matched by Files: debian/*.
  • No non-free terms anywhere: the only licence texts in the tree are COPYING (BSD-3-Clause) and the MIT metadata_license of the metainfo file.
  • All names in Depends/Build-Depends/Recommends were checked with apt-cache and exist in the archive: gir1.2-adw-1, gir1.2-gtksource-5, gir1.2-webkit-6.0, gir1.2-spelling-1, gir1.2-vte-3.91, gir1.2-gtk-4.0, python3-jsonpath-ng, python3-m2r2, python3-pynvim.
  • The higher-level licensing and packaging points were read in the reference tools: copyright-format section 6.9 (Files patterns) for the dead Files: formiko.metainfo.xml pattern, and the debhelper tool for dh_installdocs/dh_missing at compat 14.
  • debian/rules was checked against the debhelper tool at compat 14: the execute_after_dh_install hook and the missing substvars concern do not apply, and the dh_installdocs --link-doc from formiko-vim (Architecture: all) to formiko (Architecture: all) is an allowed combination with a declared dependency (formiko (= ${binary:Version})).
  • .pc/ and debian/cargo-checksum.json were excluded throughout; there is no cargo-checksum file.
  • uscan found the packaged version as the newest upstream release (upstream 2.0.0, packaged 2.0.0).

Not confirmed

  • Whether the first autopkgtest (formiko --help, no display in autopkgtest) exits before GTK needs an X/Wayland connection; only running it in the archive's autopkgtest shows this, and a failure there would not be a packaging fault of the kind this review reports.
  • Nothing was built or run in the package (read-only review), so build-time behaviour of the pybuild/pytest steps in debian/rules was not exercised.

Proposed: debian/watch in version 5 format

debian/watch is in an old format. This is the conversion made by uscan --update-watchfile, which has not been run against the upstream site: some defaults differ in version 5, so test it with uscan --report before use.

Version: 5

# Compulsory line, this is a version 4 file
Source: https://pypi.debian.net/formiko/
Matching-Pattern: formiko-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
Uversionmangle: s/(rc|a|b|c)/~$1/

Back to Dashboard | View all reviews for this package