#1141346 RFS: noctalia/5.0.0~beta1-1 [ITP] -- A sleek and minimal desktop shell thoughtfully crafted for Wayland

#1141346#5
Date:
2026-07-03 07:19:59 UTC
From:
To:
Package: sponsorship-requests
Severity: wishlist

Dear mentors,

I am looking for a sponsor for my package "noctalia":

 * Package name     : noctalia
   Version          : 5.0.0~beta1-1
   Upstream contact : Lemmy <sebastien.atoch@gmail.com>
 * URL              : https://noctalia.dev
 * License          : BSD-3-clause, Apache-2.0 or Expat, LGPL-2.1-or-later, Apache-2.0, Public-Domain or MIT-0, Expat, GPL-3, HPND-sell-variant, Expat or Public-Domain
 * Vcs              : https://salsa.debian.org/nickh/noctalia
   Section          : x11

The source builds the following binary packages:

  noctalia - A sleek and minimal desktop shell thoughtfully crafted for Wayland

To access further information about this package, please visit the following URL:

https://mentors.debian.net/package/noctalia/

Alternatively, you can download the package with 'dget' using this command:

  dget -x https://mentors.debian.net/debian/pool/main/n/noctalia/noctalia_5.0.0~beta1-1.dsc

Changes for the initial release:

 noctalia (5.0.0~beta1-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1141345)

Regards,

#1141346#24
Date:
2026-07-14 20:09:56 UTC
From:
To:
Hello,

Thanks for your work here. Please address the following Lintian output, especially the error and the warnings:

E: noctalia: python3-script-but-no-python3-dep python3 (does not satisfy python3:any | python3-minimal:any) [usr/share/noctalia/assets/templates/kde/apply.py]
N:
N:   Packages with Python3 scripts should depend on the package python3. Those
N:   with scripts that specify a specific version of Python3 must depend,
N:   recommend or suggest on that version of Python3 (exactly).
N:
N:   For example, if a script in the package uses #!/usr/bin/python3, the
N:   package needs a dependency on python3. If a script uses
N:   #!/usr/bin/python3.8, the package needs a dependency on python3.8. A
N:   dependency on python (>= 3.8) is not correct, since later versions of
N:   Python may not provide the /usr/bin/python3.8 binary.
N:
N:   If you are using debhelper, adding ${python3:Depends} to the Depends field
N:   and ensuring dh_python3 is run during the build should take care of adding
N:   the correct dependency.
N:
N:   In some cases a weaker relationship, such as Suggests or Recommends, will
N:   be more appropriate.
N:
N:   Visibility: error
N:   Show-Always: no
N:   Check: scripts
N:
N:
W: noctalia: description-synopsis-starts-with-article
N:
N:   The first line of the "Description:" should omit any initial indefinite or
N:   definite article: "a", "an", or "the". A good heuristic is that it should
N:   be possible to substitute the package name and synopsis into this formula:
N:
N:   The package name provides {a,an,the,some} synopsis.
N:
N:   Please refer to The package synopsis, or short description (Section 6.2.2)
N:   in the Debian Developer's Reference for details.
N:
N:   Visibility: warning
N:   Show-Always: no
N:   Check: fields/description
N:
N:
W: noctalia: no-manual-page [usr/bin/noctalia]
N:
N:   Each binary in /usr/bin, /usr/sbin, /bin, /sbin or /usr/games should have
N:   a manual page
N:
N:   Note that though the man program has the capability to check for several
N:   program names in the NAMES section, each of these programs should have its
N:   own manual page (a symbolic link to the appropriate manual page is
N:   sufficient) because other manual page viewers such as xman or tkman don't
N:   support this.
N:
N:   If the name of the manual page differs from the binary by case, man may be
N:   able to find it anyway; however, it is still best practice to match the
N:   exact capitalization of the executable in the manual page.
N:
N:   If the manual pages are provided by another package on which this package
N:   depends, Lintian may not be able to determine that manual pages are
N:   available. In this case, after confirming that all binaries do have manual
N:   pages after this package and its dependencies are installed, please add a
N:   Lintian override.
N:
N:   Please refer to Manual pages (Section 12.1) in the Debian Policy Manual
N:   for details.
N:
N:   Visibility: warning
N:   Show-Always: no
N:   Check: documentation/manual
N:   Renamed from: binary-without-manpage
N:
N:
W: noctalia: old-fsf-address-in-copyright-file
N:
N:   The /usr/share/doc/*pkg*/copyright file refers to the old postal address
N:   of the Free Software Foundation (FSF). You should refer to
N:   https://www.gnu.org/licenses/ instead of a physical address, for example:
N:
N:     You should have received a copy of the GNU General Public License
N:     along with this program.  If not, see https://www.gnu.org/licenses/.
N:
N:   Visibility: warning
N:   Show-Always: no
N:   Check: debian/copyright
N:
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/cava/apply.sh]
N:
N:   This file starts with the #! sequence that marks interpreted scripts, but
N:   it is not executable.
N:
N:   There has been some discussion to allow such files in paths other than
N:   /usr/bin but there was ultimately no broad support for it.
N:
N:   Please refer to Bug#368792 for details.
N:
N:   Visibility: warning
N:   Show-Always: no
N:   Check: scripts
N:
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/emacs/output-path.sh]
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/labwc/apply.sh]
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/mango/apply.sh]
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/niri/apply.sh]
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/scroll/apply.sh]
N:
W: noctalia: script-not-executable [usr/share/noctalia/assets/templates/sway/apply.sh]
N:
I: noctalia: desktop-entry-lacks-keywords-entry [usr/share/applications/dev.noctalia.Noctalia.desktop]
N:
N:   This .desktop file is either missing a Keywords entry, or it does not
N:   contain keywords above and beyond those already present in the Name or
N:   GenericName entries.
N:
N:   The Keywords field is intended to show keywords relevant for a .desktop
N:   file.
N:
N:   Desktop files are organized in key-value pairs and are similar to INI
N:   files.
N:
N:   The desktop-file-validate tool in the desktop-file-utils package may be
N:   useful when checking the syntax of desktop entries.
N:
N:   Please refer to
N:   https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html,
N:   Bug#693918, and
N:   https://wiki.gnome.org/Initiatives/GnomeGoals/DesktopFileKeywords for
N:   details.
N:
N:   Visibility: info
N:   Show-Always: no
N:   Check: menu-format
N:
N:
I: noctalia: file-references-package-build-path [usr/bin/noctalia]
N:
N:   The listed file or maintainer script appears to reference the build path
N:   used to build the package as specified in the Build-Path field of the
N:   .buildinfo file.
N:
N:   This is likely to cause the package to be unreproducible, but it may also
N:   indicate that the package will not work correctly outside of the
N:   maintainer's own system.
N:
N:   Please note that this tag will not appear unless the .buildinfo file
N:   contains a Build-Path field. That field is optional. You may have to set
N:   DEB_BUILD_OPTIONS=buildinfo=+path or use
N:   --buildinfo-option=--always-include-path with dpkg-buildpackage when
N:   building.
N:
N:   Please refer to https://reproducible-builds.org/,
N:   https://wiki.debian.org/ReproducibleBuilds/BuildinfoFiles, and the
N:   dpkg-genbuildinfo(1) manual page for details.
N:
N:   Visibility: info
N:   Show-Always: no
N:   Check: files/contents
N:
N:
I: noctalia: font-in-non-font-package [usr/share/noctalia/assets/fonts/tabler.ttf]
N:
N:   This package contains a *.ttf, *.otf, or *.pfb file, file extensions used
N:   by TrueType, OpenType, or Type 1 fonts, but the package does not appear to
N:   be a dedicated font package. Dedicated font package names should begin
N:   with fonts-. (Type 1 fonts are also allowed in packages starting with
N:   xfonts-.) If the font is already packaged, you should depend on that
N:   package instead. Otherwise, normally the font should be packaged
N:   separately, since fonts are usually useful outside of the package that
N:   embeds them.
N:
N:   Visibility: info
N:   Show-Always: no
N:   Check: fonts
N:
N:
I: noctalia: font-outside-font-dir [usr/share/noctalia/assets/fonts/tabler.ttf]
N:
N:   This package contains a TrueType, OpenType, or Type 1 fonts, but the
N:   package does not install this file under /usr/share/fonts/.
N:
N:   Please refer to https://wiki.debian.org/Fonts/PackagingPolicy for details.
N:
N:   Visibility: info
N:   Show-Always: no
N:   Check: fonts
N:
N:
I: noctalia source: older-debian-watch-file-standard 4 [debian/watch]
N:
N:   The version= line in the debian/watch file in this package declares an
N:   older version. Please upgrade when you have a chance.
N:
N:   Please refer to the uscan(1) manual page for details.
N:
N:   Visibility: info
N:   Show-Always: no
N:   Check: debian/watch/standard
N:
N:
I: noctalia: package-contains-documentation-outside-usr-share-doc [usr/share/noctalia/assets/fonts/tabler-icons-license.txt]
N:
N:   This package ships a documentation file outside /usr/share/doc
N:   Documentation files are normally installed inside /usr/share/doc.
N:
N:   If this file doesn't describe the contents or purpose of the directory it
N:   is in, please consider moving this file to /usr/share/doc/ or maybe even
N:   removing it. If this file does describe the contents or purpose of the
N:   directory it is in, please add a lintian override.
N:
N:   Visibility: info
N:   Show-Always: no
N:   Check: documentation
N:
N:   Screen: python/egg/metadata
N:     Advocates: "Scott Kitterman" <debian@kitterman.com>
N:     Reason: The folders XXX.dist-info/ and XXX.egg-info/ hold metadata for
N:             Python modules. Those files are not documentation even though
N:             some of their names carry the .txt file extension.
N:
N:             Python modules can be both public and private.
N:
N:             Read more in
N:             https://www.python.org/dev/peps/pep-0427/#the-dist-info-directory,
N:             https://www.python.org/dev/peps/pep-0376/#id16,
N:             https://www.python.org/dev/peps/pep-0610/,
N:             https://www.python.org/dev/peps/pep-0639/,
N:             https://setuptools.pypa.io/en/latest/deprecated/python_eggs.html,
N:             and Bug#1003913.
N:
N:
P: noctalia source: package-uses-old-debhelper-compat-version 13
N:
N:   This package uses a debhelper compatibility level that is no longer
N:   recommended. Please consider using the recommended level.
N:
N:   For most packages, the best way to set the compatibility level is to
N:   specify debhelper-compat (= X) as a Build-Depends in debian/control. You
N:   can also use the debian/compat file or export DH_COMPAT in debian/rules.
N:
N:   If no level is selected debhelper defaults to level 1, which is
N:   deprecated.
N:
N:   Please refer to the debhelper(7) manual page for details.
N:
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: debhelper
N:
N:
P: noctalia source: redundant-priority-optional-field [debian/control:3]
N:
N:   This package currently sets the Priority field in the debian/control file
N:   to "optional".
N:
N:   As of dpkg version 1.22.13, this field is set to "optional" by default. As
N:   such, in this case the Priority field is redundant and should be removed.
N:
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: debian/control/field/priority
N:
N:
P: noctalia source: redundant-rules-requires-root-no-field [debian/control:5]
N:
N:   This package currently sets the Rules-Requires-Root field in the
N:   debian/control file to "no".
N:
N:   As of dpkg version 1.22.13, this field is set to "no" by default. As such,
N:   in this case the Rules-Requires-Root field is redundant and should be
N:   removed.
N:
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: debian/control/field/rules-requires-root
N:
N:
X: noctalia source: debian-watch-does-not-check-openpgp-signature [debian/watch]
N:
N:   This watch file does not specify a means to verify the upstream tarball
N:   using a cryptographic signature.
N:
N:   If upstream distributions provides such signatures, please use the
N:   pgpsigurlmangle options in this watch file's opts= to generate the URL of
N:   an upstream OpenPGP signature. This signature is automatically downloaded
N:   and verified against a keyring stored in debian/upstream/signing-key.asc
N:
N:   Of course, not all upstreams provide such signatures but you could request
N:   them as a way of verifying that no third party has modified the code after
N:   its release (projects such as phpmyadmin, unrealircd, and proftpd have
N:   suffered from this kind of attack).
N:
N:   Please refer to the uscan(1) manual page for details.
N:
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: debian/watch
N:   Renamed from: debian-watch-does-not-check-gpg-signature
N:   debian-watch-may-check-gpg-signature
N:   This tag is experimental.
N:
N:
X: noctalia: spelling-error-in-binary ment meant [usr/bin/noctalia]
N:
N:   Lintian found a spelling error in the given binary. Lintian has a list of
N:   common misspellings that it looks for. It does not have a dictionary like
N:   a spelling checker does.
N:
N:   If the string containing the spelling error is translated with the help of
N:   gettext or a similar tool, please fix the error in the translations as
N:   well as the English text to avoid making the translations fuzzy. With
N:   gettext, for example, this means you should also fix the spelling mistake
N:   in the corresponding msgids in the *.po files.
N:
N:   You can often find the word in the source code by running:
N:
N:    grep -rw <word> <source-tree>
N:
N:   This tag may produce false positives for words that contain non-ASCII
N:   characters due to limitations in strings.
N:
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: binaries/spelling
N:   This tag is experimental.
N:
N:
X: noctalia source: very-long-line-length-in-source-file 619 > 512 [third_party/luau/README.md:6]
N:
N:   The source file includes a line length that is well beyond the normally
N:   human made code line length.
N:
N:   This very long line length does not allow Lintian to do correctly some
N:   source file checks.
N:
N:   This line could also be the result of some text injected by a computer
N:   program, and thus could lead to FTBFS bugs.
N:
N:   Last but not least, long line in source code could be used to obfuscate
N:   the source code and to hide stuff like backdoors or security problems.
N:
N:   It could be due to jslint source comments or other build tool comments.
N:
N:   You may report this issue upstream.
N:
N:   Visibility: pedantic
N:   Show-Always: no
N:   Check: files/contents/line-length
N:   Renamed from: insane-line-length-in-source-file
N:   This tag is experimental.
N:
N:   Screen: autotools/long-lines
N:     Advocates: "Russ Allbery" <rra@debian.org>
N:     Reason:
N:             Upstream sources using autoconf have traditionally been
N:             distributed with generated ./configure scripts as well as
N:             other third-party m4 macro files such as libtool.
N:
N:             When paired with automake, there may also be some intermediate
N:             Makefile.in files.
N:
N:             A lot of sources potentially contain such files, but they are
N:             not actionable by either the Debian distributor or by the
N:             upstream maintainer.
N:
N:             As a side note, modern Debian build protocols will re-create
N:             many of those files via dh_autoreconf. They are present merely
N:             to aid in bootstrapping systems where the GNU suite may not yet
N:             be available.
N:
N:             Read more in Bug#996740.
N:
N:
X: noctalia source: very-long-line-length-in-source-file 671 > 512 [assets/templates/qt/qtct.conf:7]
N:
X: noctalia source: very-long-line-length-in-source-file 694 > 512 [tools/notifications-test.sh:52]
N:
X: noctalia source: very-long-line-length-in-source-file 740 > 512 [third_party/wuffs/wuffs-v0.4.c:49876]

E: Lintian run failed - policy violation (worst tag: error)

Otherwise, this package does compile cleanly, and the copyright looks okay on a first glance.

Please remove the moreinfo tag from this bug once you have another iteration done. Feel free to CC me, and if I'm available, I'll take another look.

Best regards,
Simon Quigley
tsimonq2@debian.org

#1141346#39
Date:
2026-08-12 04:15:58 UTC
From:
To:
Hi,

* Simon Quigley <simon@tsimonq2.net> [2026-07-14 20:10]:

thanks for your interest in this package.

After discussion with upstream the python script has been removed.
functionality was reimplemented in c++.

<snip>

The description:

At the time of this RFS the package had the description:

"A sleek and minimal desktop shell thoughtfully crafted for Wayland"

since then, at the request of  upstream, I changed it to:

"A sleek, customizable desktop shell crafted for Wayland"

Perhaps it could be changed to:

"Sleek, customizable desktop shell crafted for Wayland"

But I don't know if it is better to respect the request of upstream here
or correct the lintian warning. I would appreciate guidance on this.

Upstream does not provide a man page. There is however extensive
documentation at https://docs.noctalia.dev/noctalia/

I fear that any attempt to provide a man page would result in excessive
maintenance burden as the project evolves and would ultimately result in
the man page being out of date, incomplete, and simply wrong. I think
this is especially true since noctalai is still in beta.

Done.

<snip>

These scripts are not run directly, instead they are executed as
"bash /usr/share/noctalia/assetes/templates/foo/apply.sh"

See usr/share/noctalia/assets/templates/builtin.toml

So although it looks a little strange it is functional. I can open an
upstream issue and/or pr to make them all executable if that is
desired.

For now I added an override_dh_install to ensure all the template *.sh
scripts are executable. Is this acceptable?

I will raise this with upstream.

I see no 'usr/bin/noctali' in any .buildinfo files that I currently have
on disk for this package. Perhaps this is fixed in the current version,
or perhaps I'm not understanding what this lintian warning is stating.

This font is not currently packaged for Debian. Since this is listed as
an "info" not "warning" or "error", is it correct assume that this
should not be considered a show stopper?

As above, again this is an "info" so I hope it can remain.

I could potentially override the install location but I'm concerned that
may then require patching the upstream source to ensure the font is
found.

It has since been updated to version 5 (but this causes problems on
mentors.debian.net)

This file is not documentation it is a license file so I think it
should remain. I added an override.

<snip>

Updated to 14.

<snip>

Removed.

<snip>

Removed.

Upstream does not provide a signature

<snip>

Running "grep -rw ment *" in the source tree returned nothing.

This is a markdown file, not source code. It seems to be hand written to
me. I've added a lintian override.

<snip>

This is a config file. Override added.

This is a test script, and this long line is a long string used to test
the notifications system. Override added.

This is indeed code, and is indeed generated. This is how wuffs is
supposed to be used. I can provide more information about wuffs if
requested.

The only error was related to the python usage, which has now been eliminated.

Thanks, that's great to hear.

Thanks. I *think* this email will remove that tag.

You've already provided very useful feedback. Any more would be a bonus.

Thanks,

Nick.

#1141346#44
Date:
2026-08-12 05:55:33 UTC
From:
To:
The purpose of the check is to give a consistent reading in Debian
package viewers, thus its best to follow the check advice and remove
the "A " leader.

[..]

Given you said above it's wrong for them to be executable, it's
better to override the warning instead of making them executable.

% strings ./usr/bin/noctalia | grep repro
/build/reproducible-path/noctalia-5.0.0~beta.8/assets

This seems like a likely issue.

The more important question might be where the sources for the ttf
are, and if the package build rebuilds the ttf.

I've tried building noctalia_5.0.0~beta.8-1.dsc, and that seems to
produce new lintian errors:

E: noctalia: depends-on-essential-package-without-using-version Depends: bash
E: noctalia: malformed-override Expected a colon [usr/share/lintian/overrides/noctalia:2]
W: noctalia: mismatched-override package-contains-documentation-outside-usr-share-doc usr/share/noctalia/assets/fonts/tabler-icons-license.txt [usr/share/lintian/overrides/noctalia:1]


Best,
Chris

#1141346#49
Date:
2026-08-12 08:24:53 UTC
From:
To:
Hi,

quick update on the man page.

* Nick Hastings <nicholaschastings@gmail.com> [2026-08-12 04:16]:
<snip>
<snip>

I made a basic man page with help2man that also references the online
documentation. This should be almost no work to maintain and I think
provides sufficient information.

Cheers,

Nick.

#1141346#54
Date:
2026-08-12 08:32:37 UTC
From:
To:
Hi,

thanks for taking an interest in this package.

* Chris Hofstaedtler <zeha@debian.org> [2026-08-12 05:55]:

Done.

Done (I think, more on overrides and lintian below).

Sorry I don't understand why this causes a problem for reproducible
builds. It uses a standard meson build as far as I can tell and I don't
know what needs to be fixed here.

Upstream ships the ttf file as it is. Currently I don't know how it was
created.

From
https://www.debian.org/doc/debian-policy/ch-source.html#embedded-code-copies

"Debian packages should not make use of these convenience copies unless
the included package is explicitly intended to be used in this way."

This is exactly how wuffs is intended to be used.

At https://github.com/google/wuffs
in https://github.com/google/wuffs/blob/main/BUILD.md

 "For your own projects, just copy release/c/wuffs-$VERSION.c to
 your directory and add that file to your pre-existing build
 system"

Now specified a minimum bash version.

Still trying to understand overrides syntax.

As above.

I'm struggling to reproduce any of the lintian errors reported in this thread.
I have

DEBUILD_DPKG_BUILDPACKAGE_OPTS="-i -I"
DEBUILD_LINTIAN_OPTS="-i -I --show-overrides"

in my ~/.devscripts and running the builds with "DIST=unstable pdebuild"
which I think should report these lintian errors.

I've updated the package on mentors and salsa.

Thanks for your help,

Nick.

#1141346#59
Date:
2026-08-13 04:18:32 UTC
From:
To:
Hi,

font update.

* Nick Hastings <nicholaschastings@gmail.com> [2026-08-12 17:32]:

Been talking with noctalia developer Lemmy. They forked upstream
https://github.com/tabler/tabler-icons/ to
https://github.com/noctalia-dev/tabler-icons
They modified some icons and added some more.
The internal id of the font within the ttf was changed to
"noctalia-tabler" in order to prevent clashes on systems that also had
the upstream tabler font installed. The ttf file
was built using pnpm.

Sorry if this is vague or incomplete but I'm completely new to the world
of fonts and it is difficult to convey information that I do not have a
solid grasp of.

Cheers,

Nick.

#1141346#64
Date:
2026-08-17 02:43:22 UTC
From:
To:
Hi,

* Nick Hastings <nicholaschastings@gmail.com> [2026-08-12 17:32]:
q> >

I worked out what this error meant, why it was happening, and raised it
with upstream. It turned out it was added to the build as a convenience
for running the tests prior to installation. A better solution has now
been implemented upstream and will be in the next release (probably this
week).

Thanks,

Nick.