#1120852 ITP: chatterino-libcommuni -- libcommuni with Cmake

Package:
wnpp
Source:
wnpp
Submitter:
solomoncyj
Date:
2025-11-29 17:00:07 UTC
Severity:
normal
Tags:
#1120852#5
Date:
2025-11-17 13:53:44 UTC
From:
To:
* Package name    : chatterino-libcommuni
  Version         : 3.6.0
  Upstream Contact:  Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* URL             : https://github.com/Chatterino/libcommuni
* License         : BSD-3-Clause
  Programming Lang: C++
  Description     : libcommuni with Cmake


 - Dependency for Chatterino

#1120852#14
Date:
2025-11-17 16:51:12 UTC
From:
To:
Hi solomoncyj,

there is already libcommuni in Debian:
https://tracker.debian.org/pkg/libcommuni

#1120852#21
Date:
2025-11-17 21:41:34 UTC
From:
To:
Le Mon, Nov 17, 2025 at 09:53:44PM +0800, solomoncyj a écrit :

I think you inadvertently filled this ITP twice.
This is a duplicate of #1120851

So what does it do ?

Cheers,

#1120852#30
Date:
2025-11-17 23:26:55 UTC
From:
To:
Its like the normal libcommuni  library, however, it uses cmake and
has changes to its source code specifically for my application that
makes it incompatible with the one in the repos already

#1120852#35
Date:
2025-11-20 19:27:56 UTC
From:
To:
Whether it's using cmake or not isn't relevant, for sure you can make
chatterino link against a libary independent of a libraries build
system.

For the code change, I only see minimal changes [1], mostly code
removals (most noeworthy removing encoding/decoding functionality and
hardcoding UTF-8 handling instead.)

Can expand on *why* you need the fork before we look at the available
options?

[1] https://github.com/communi/libcommuni/compare/v3.7.0...Chatterino:libcommuni:chatterino-cmake

#1120852#40
Date:
2025-11-21 16:44:37 UTC
From:
To:
On Thu, 20 Nov 2025 20:27:56 +0100 Tobias Frost <tobi@debian.org> wrote:
 > For the code change, I only see minimal changes [1], mostly code
 > removals (most noeworthy removing encoding/decoding functionality and
 > hardcoding UTF-8 handling instead.)
 >
 > Can expand on *why* you need the fork before we look at the available
 > options?


Our fork of libcommuni wasn't meant to be distributed - we've made lazy
decisions to make it work for us in particular.

The worthwhile changes we've made are related to building on later
versions of Qt6. Since Qt 6.4, QTextCodec is no longer a valid header so
it fails to compile without adding the Qt 5 Core Compatability APIs [1]
to the build settings. Since we don't use that API, we ripped that out
instead. I believe this PR [2] contains the minimally required patch for
us to be able to use the system version of libcommuni when building with
Qt6.


[1] https://doc.qt.io/qt-6/qtcore5-index.html

[2] https://github.com/communi/libcommuni/pull/116/files

#1120852#43
Date:
2025-11-22 08:26:56 UTC
From:
To:
On Fri, 21 Nov 2025 17:44:37 +0100 Rasmus Karlsson <rasmus.karlsson@pajlada.com> wrote:
wrote:

(ACK, I had the feeling too that this shouldn't be packaged.)

I see, and thanks for the PR upstream.

(Even if upstream libcommuni looks quiet these days, I'd still suggest to
try upstreaming as much as possible - would be not the first upstream
suddently becoming active again, or some fork is emerging and becomes
active upstream...)

Qt6 compatiblity will at some point also be required for libcommuni in
Debian, so I defintly will consider to have your patch in Debian, so I'd
suggest to file bugs against src:libcommmuni for patches you need for
chatterino and I guess I'll be able to accommondate this (I just need to
make sure that other packages using libcommuni don't get broken, but
that's at the moment, IIRC, only swift-im (needed for spectrum2)

At the moment Qt5 is available in Debian, so if chatterino works with
Qt5, this could be an (interim) option.

I'm liking cmake a lot and having a cmake based build system might
be beneficial, especially if it comes with .cmake files to be consumed
by dependencies. (With my Debian maintainer hat on, however, this is
something I don't want to have that as a patch in the Debian package,
that sould come from "upstream".