Search Criteria
Package Details: thelounge 4.5.0-0
Package Actions
| Git Clone URL: | https://aur.archlinux.org/thelounge.git (read-only, click to copy) |
|---|---|
| Package Base: | thelounge |
| Description: | Modern self-hosted web IRC client |
| Upstream URL: | https://thelounge.chat/ |
| Licenses: | MIT |
| Submitter: | Max-P |
| Maintainer: | Max-P (S13ntist) |
| Last Packager: | S13ntist |
| Votes: | 22 |
| Popularity: | 0.23 |
| First Submitted: | 2016-02-12 23:03 (UTC) |
| Last Updated: | 2026-05-23 05:21 (UTC) |
Dependencies (2)
- nodejs (nodejs-gitAUR, nodejs-lts-hydrogenAUR, python-nodejs-wheelAUR, nodejs-lts-iron, nodejs-lts-jod, nodejs-lts-krypton)
- yarn (yarn-berryAUR, yarn-corepackAUR) (make)
Latest Comments
1 2 3 4 Next › Last »
ChrisTX commented on 2026-06-24 21:36 (UTC) (edited on 2026-06-25 00:28 (UTC) by ChrisTX)
I've made a new version of the corrections that does now use the updated build, and they did fix their
yarn.lockfinally.As of such, I've just aligned my corrections with what thelounge-deb does and use the same exact build commands. This is the patch I use on top of the AUR Git repo: https://gist.github.com/ChrisTX/b44f73f415b65ea02c41da096d90f761
I should also mention that this fixes other issues like
/etc/thelounge/usershaving incorrect permissions and bypasses this issue that otherwise prevents 4.5.1 from running (at least until they fixed their tarballs).marmis commented on 2026-05-29 22:55 (UTC) (edited on 2026-05-29 23:03 (UTC) by marmis)
Also,
pkgrel=0is a bit unconventional. The Arch package guidelines recommends that "when a new package version is first released, the release count starts at 1".ChrisTX commented on 2026-05-24 13:42 (UTC) (edited on 2026-05-24 16:45 (UTC) by ChrisTX)
In addition to my previous comment,
namcapidentifies some issues with the package:MITis not a valid license specifier without a license file. Any specifier not inlicensesneeds a license, see the wiki.pkgsuffixis not a valid variable name. Custom variables have to start with an underscore, see here..yarn-integritycontains source directory references. File should not be packaged.Debug is not disabled, c.f. here.
Adding all of this up, I've arrived at this final patch: https://bpa.st/MMEA It will work on all NodeJS versions >= 22, build cleanly in a chroot withdevtools, and passnamcapcleanly.Edit: There's some more issues:
CRITICAL Your package has the WRONG LICENSE. All AUR packages should be licensed as 0BSD, see the AUR submission guidelines. The
LICENSEfile included in a package is the license of the PKGBUILD etc. and NOT the upstream license. Alas, this is wrong. See also this. Any AUR package should passpkgctl license check.There should be an
REUSE.toml(see the previous point's link) and it's recommended to have an nvchecker integration.namcapstill complains about some extra files innode_modulesnot having correct dependencies, namelyyarnand extra stuff inldapjsin theexamplesfolder. Neither is needed or indeed used by thelounge and can be removed from thenode_moduleswithout issue.stripis left enabled, despite the package not containing any binaries. This slows down the build massively.ALL this added together, with the build fixes, and etc. yields this as the final final patch: https://bpa.st/3BGQ
This addresses all the issues mentioned:
Build
*Side note:* The warning about `checkpkg` is due to the package not being in an official repo, nothing else.nvchecker output
REUSE lint
As you can see - the package builds cleanly with that, avoids the NodeJS >= 25 compatibility issue, is clean in REUSE, is properly licensed and has a nvchecker config as well.
ChrisTX commented on 2026-05-24 13:20 (UTC) (edited on 2026-05-24 16:45 (UTC) by ChrisTX)
@aminvakil That issue is the one I have opened. It does work, try building the package with the patch I posted. The problem stems from using the
yarn.lockfile, which the official build instructions do not specify for NPM and is only used by upstream for a specific purpose.Edit Preferably use https://bpa.st/3BGQ as that's the patch with the other issues I listed fixed, too.
aminvakil commented on 2026-05-24 13:18 (UTC)
@ChrisTX I agree with you on the first part, but thelounge does not work on latest nodejs (https://github.com/thelounge/thelounge/issues/4997).
I couldn't make it work on nodejs as well (without patching).
ChrisTX commented on 2026-05-24 13:12 (UTC) (edited on 2026-05-24 13:33 (UTC) by ChrisTX)
@S13ntist I was NOT using an AUR helper. As you can see from the output in my last post, I ran
extra-x86_64-build. This is not an AUR helper, but a tool in the official ArchLinux devtools to build in a clean chroot. That's the recommended way to do this, compare the respective article in the Wiki.Any package should be buildable in a clean chroot, and part of building in a clean chroot is that builds are reproducible and that's why the devtools utility doesn't support interactive input there. The other reason is that for a package to work correctly after building, all choices for dependency should also work. Now, this package has the weird effect that installing it offers the same dialogue with the same choice.
In other words, the package after having been built cannot be installed with default options either. Building the package on a system and then attempting to use the resulting package faces the same issue. So even if you were to use a manual chroot or inject the "right" NodeJS LTS version into one, the resulting package cannot be used normally. By extension, this also effects pre-built AUR repositories like Chaos AUR.
This looks as follows btw:
Pacman install output
As a user, I wouldn't know what the hell this error is supposed to tell me, because it's a fault with the package. I should be able to install a package with default options. Pacman does not support this syntax
depends=('nodejs>=22' 'nodejs<25')because it will see these as separate statements. Note thatdepends=('nodejs>=22') conflicts('nodejs>=25')will not work either asconflicts()is only used for dependency resolution on installation, not during building a package.I refer you to this previous post of mine explaining the situation. TheLounge supports NodeJS 26.2 perfectly fine, and in fact, I have been running on latest NodeJS for months now. And this comment of another user confirms this to be working as well. That's also what they document: "The Lounge requires latest Node.js LTS version or more recent.".
The incompatibility stems from
jwaand not theLounge itself. Andjwadid address this exact issue with this PR and released the corrected version v2.0.1 that does not use the dropped SlowBuffer API anymore.Using
yarn upgrade(not even--latest) is thus sufficient to upgrade - or in fact, so does not using theyarn.lockat all. Upstream only uses it for their Debian package, but not for their Docker build. That one is just built off NPM using the same exact instructions the official theLounge documentation gives for such a build.For packages using the upstream
yarn.lockis very ill-advised actually, asyarn.lockis NodeJS version specific and only makes sense when being used in a consistent build environment. Hence, NPM packages do not containyarn.lockfiles - and official ArchLinux packages do not use them nor do the Node.js package guidelines require or suggest at any point to use lockfiles.Just dropping the
yarn.lockdownload shenanigans and following the official instructions yields a working build on any Node version >= 22 and thendepends('nodejs>=22')is sufficient.The following makes the build work on any NodeJS >= 22 and work with the regular
devtoolsutilities for chroot builds: https://bpa.st/A6EQaminvakil commented on 2026-05-24 06:39 (UTC)
Packages is broken, whatever aur helpers do is not relevant, package must gets built and installed correctly using makepkg -sri --noconfirm, this package does not.
S13ntist commented on 2026-05-23 22:23 (UTC)
You can always pick a provider, pacman is supposed to be run interactively. If your aur helper doesn't support that, that's the fault of your helper. For aur, you can prep the container such that it's already fulfilled.
I've done what I could with the deps, given the upstream source doesn't support latest node but must have minimally 22 to get the sqlite dep.
yarn upgrade won't help, you need to actually have them support the new version and adapt to the new APIs (where needed, say convert to modules and such) Some deps are simply unmaintained but that's something upstream will need to (and is about to) fix.
ChrisTX commented on 2026-05-23 13:46 (UTC) (edited on 2026-05-23 13:48 (UTC) by ChrisTX)
No, it doesn't and you can't necessarily pick a provider: Chroot-builds do not support that, and this package won't built under chroot:
package breaking in detail
This is because pacman does not support putting multiple constraints on a package. As you can see from my output it says "There are 3 providers available for nodejs<25". It will ask the user to install any NodeJS < 25 and ignore the NodeJS >= 22 constraint for that list of targets. However, the default (when not entering anything, which is what happens under chroot builds) is to pick the first lexicographical option. And since NodeJS names their LTS releases after elements starting with consecutive first letters, that target is
nodejs-lts-ironaka NodeJS 20, which then conflicts later on.You cannot fix this, as pacman doesn't support this by design -
conflicts()and friends cannot fix this either. And fixing the NodeJS version to Jod or Krypton will be an issue for people that need a specific version for other packages on their system.What you want to do here is what I've been saying for a while, namely to insert a
yarn upgrade. That way you can drop the NodeJS < 25 requirement, and just leave it to NodeJS >= 22, which would resolve correctly by default.P.S.: The
pkgrelis0atm, should be1at least.S13ntist commented on 2026-05-23 12:39 (UTC)
This works just fine, pick the provider that satisfies the constraints.
1 2 3 4 Next › Last »