Package Details: walc 0.2.4-2

Git Clone URL: (read-only, click to copy)
Package Base: walc
Description: An unofficial WhatsApp Desktop client for linux systems.
Upstream URL:
Keywords: internet messaging whatsapp whatsapp-web
Licenses: GPL3
Conflicts: walc
Provides: walc
Submitter: YoungFellow
Maintainer: YoungFellow
Last Packager: YoungFellow
Votes: 0
Popularity: 0.000000
First Submitted: 2022-05-28 15:52 (UTC)
Last Updated: 2022-11-21 08:53 (UTC)

Latest Comments

YoungFellow commented on 2022-06-25 06:13 (UTC) (edited on 2022-06-25 06:14 (UTC) by YoungFellow)

Thanks a lot for the support @opensorcerer!
Regarding namcap, this is what I get:

❯ namcap -i PKGBUILD           
PKGBUILD (walc) I: Missing Contributor tag

So I adjusted the PKGBUILD according to your suggestions:
1. arch=('x86_64') This is correct I arch officially supports only 64 bit?
2. license=('GPL3')
3. depends=('nodejs-lts-gallium' 'npm' 'gtk3' 'alsa-lib' 'nss')

Do you think I should push walc-0.2.2-3 though?
Or shall I wait until the next version is out?

Thanks again!

PS: I'll see what I can do regarding the npm logs, I might ask the project maintainer, but for the time being, I'm trying to get my pentesting certification over with, so I'll be a bit short on "research" time.

opensorcerer commented on 2022-06-24 21:08 (UTC)

Excellent work on your first PKGBUILD!

One more thing: When you create your package, make sure you test both the PKGBUILD and the resulting package with namcap. namcap notifies you of common mistakes in packaging. There are error, warning and info levels of mistakes of which the errors are most important to fix.

Current walc-0.2.2-2 has a number of these errors you should turn your attention to:

  1. You specify arch='any', but include executable files built for a specific arch. Note that this 'any' does not mean "it can be built on any arch" but "when built, it can run on any arch". Naturally, it's best suited for things you don't really build, like shell scripts. See wiki entry.
  2. There is no "GPL-3" license. The proper name is GPL3. See the contents of /usr/share/licenses/common for other acceptable contents.
  3. You use npm start to launch walc, which in turn launches electron, but electron is missing dependencies: gtk3, alsa-lib and nss. There is a chance walc won't even launch on a fresh Arch Linux install.

There is rather long output on the bundled node-modules and shared libraries. I wonder if it's possible to reduce their existence there so far as to try and use the system-provided ones. A long list of warnings suggest they're not used, anyway. But that's for another time and if you've got the time. :)

Thank you for the package, and packaging.

YoungFellow commented on 2022-06-24 05:27 (UTC) (edited on 2022-06-24 05:28 (UTC) by YoungFellow)

Hey @opensorcerer, thank you for pointing that out to me, as this is my first PKGBUILD I just wrote everything into the package() function as if it were a bash script.
As per your advice, I split the process into the correct functions, and used gendesk for creating the desktop entry.
Thanks a lot.

opensorcerer commented on 2022-06-23 18:11 (UTC) (edited on 2022-06-23 18:14 (UTC) by opensorcerer)

The build process (npm install, npm run) should be in build(), everything before that in prepare(). package() should only be used for putting what needs to be in the .zst into $pkg, see the manual.

Also, small typo in L29:


You could consider using gendesk for Desktop entry generation, see the wiki.

See also the Node.js packaging guidelines for more ideas for optimization.