Package Details: coolercontrol 1.4.5-1

Git Clone URL: https://aur.archlinux.org/coolercontrol.git (read-only, click to copy)
Package Base: coolercontrol
Description: A program to monitor and control your cooling devices
Upstream URL: https://gitlab.com/coolercontrol/coolercontrol
Licenses: GPL-3.0-or-later
Conflicts: coolercontrol
Provides: coolercontrol
Submitter: codifryed
Maintainer: codifryed (caferen)
Last Packager: caferen
Votes: 36
Popularity: 2.89
First Submitted: 2023-02-07 21:45 (UTC)
Last Updated: 2024-12-15 19:28 (UTC)

Pinned Comments

codifryed commented on 2024-09-22 19:02 (UTC)

With the release of 1.4.1 CoolerControl has now been spit up into several packages. This requires users to uninstall and then reinstall the application.

See: https://gitlab.com/coolercontrol/coolercontrol/-/issues/347

There's an upside, there's now a binary AUR package coolercontrol-bin for less compile time!

codifryed commented on 2023-02-07 22:54 (UTC) (edited on 2024-01-06 23:57 (UTC) by codifryed)

Post-installation steps:

sudo systemctl enable --now coolercontrold

Then open the desktop application.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 .. 12 Next › Last »

hardfalcon commented on 2024-01-08 19:16 (UTC) (edited on 2024-01-08 19:22 (UTC) by hardfalcon)

I've reworked the PKGBUILD:

  1. added python-setuptools to the makedepends array to make the PKGBUILD work in a clean chroot,
  2. replaced the makedepends on the nvm AUR package with the nodejs-lts-hydrogen package from the official Archlinux repos,
  3. sorted all dependencies alphabetically,
  4. The PKGBUILD shouldn't have the executable bit set, so it should get a chmod 644. Also, the files Makefile and TEST-PKGBUILD are not needed and can be removed.

Here's the diff/patch:

diff --git a/PKGBUILD b/PKGBUILD
old mode 100755
new mode 100644
index 0aae3fb14065..8fa23a5f593a
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,44 +3,45 @@
 pkgname=coolercontrol
 _app_id="org.$pkgname.CoolerControl"
 pkgver=1.0.0
-pkgrel=2
+pkgrel=2.1
 pkgdesc="A program to monitor and control your cooling devices"
 arch=('x86_64')
 url="https://gitlab.com/coolercontrol/coolercontrol"
 license=('GPL3')
 depends=(
+  'gcc-libs'
+  'glibc'
+  'gtk3'
   'hicolor-icon-theme'
-  'python'
+  'libappindicator-gtk3'
   'liquidctl'
+  'python'
   'python-setproctitle'
   'python-fastapi'
-  'uvicorn'
-  'gcc-libs'
-  'glibc'
   'python-pydantic'
   'python-urllib3'
+  'uvicorn'
   'webkit2gtk'
-  'gtk3'
-  'libappindicator-gtk3'
 )
 makedepends=(
-  'python-build'
-  'python-wheel'
-  'python-installer'
-  'cargo'
-  'npm'
-  'nvm'
-  'webkit2gtk'
+  'appmenu-gtk-module'
   'base-devel'
+  'cargo'
   'curl'
-  'wget'
   'file'
-  'openssl'
-  'appmenu-gtk-module'
   'gtk3'
   'libappindicator-gtk3'
   'librsvg'
   'libvips'
+  'nodejs-lts-hydrogen'
+  'npm'
+  'openssl'
+  'python-build'
+  'python-installer'
+  'python-setuptools'
+  'python-wheel'
+  'webkit2gtk'
+  'wget'
 )
 checkdepends=(
   'appstream-glib'
@@ -66,29 +67,11 @@ sha256sums=(
   '3377dbd54f7d506a95e53d6d0aa323af94191067479d2eca5b45d34065a1c265'
 )

-_ensure_local_nvm() {
-  # let's be sure we are starting clean
-  which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
-
-  export NVM_DIR="${srcdir}/$pkgname-$pkgver/coolercontrol-ui/.nvm"
-  # The init script returns 3 if version specified
-  # in ./.nvrc is not (yet) installed in $NVM_DIR
-  # but nvm itself still gets loaded ok
-  source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
-}
-
-prepare() {
-  _ensure_local_nvm
-  cd "${srcdir}/$pkgname-$pkgver/coolercontrol-ui"
-  nvm install 18.18.2
-}
-
 build() {
   cd "${srcdir}/$pkgname-$pkgver/coolercontrol-liqctld"
   python -m build --wheel --no-isolation
   # This is the new UI in preview. The above Python coolercontrol-gui package will be removed with the next release
   cd "${srcdir}/$pkgname-$pkgver/coolercontrol-ui"
-  _ensure_local_nvm
   npm ci
   npm run build
   cp -r dist/* "${srcdir}/$pkgname-$pkgver/coolercontrold/resources/app/"

Millio commented on 2024-01-08 08:40 (UTC) (edited on 2024-01-08 08:41 (UTC) by Millio)

Failed on build with error

/usr/bin/python: No module named build

which I solved with 'pip install build'

thes1lv3r commented on 2024-01-02 11:03 (UTC)

Upgrading from 0.17.1-3 to 0.17.3-1:

error: failed to determine package fingerprint for build script for coolercontrold v0.17.3 (/home/xxxxxx/.cache/paru/clone/coolercontrol/src/coolercontrol-0.17.3/coolercontrold)

Caused by: failed to determine the most recently modified file in /home/xxxxxx/.cache/paru/clone/coolercontrol/src/coolercontrol-0.17.3/coolercontrold

Caused by: failed to determine list of files in /home/xxxxxx/.cache/paru/clone/coolercontrol/src/coolercontrol-0.17.3/coolercontrold

Caused by: failed to open git index at /home/xxxxxx/.cache/paru/clone/coolercontrol/.git/

Caused by: invalid data in index - calculated checksum does not match expected; class=Index (10)

blackhole commented on 2023-11-29 22:25 (UTC)

OK, removed the content of .npmrc and now installation is fine

codifryed commented on 2023-11-29 22:00 (UTC)

Hi @blackhole,
There is some info in this issue: https://github.com/nvm-sh/nvm/issues/2340
What I understand from that thread is that nvm and global prefixes are not compatible and really shouldn't be used.

If you don't need the prefix setting in your .npmrc, then just remove it.

I assume you get command not found because nvm is not installed. It is only a make dependency for coolercontrol so you probably have to install it before running that command, but I think you can get around it by just editing/removing the file yourself. The pkgbuild is using nvm in accordance with the Arch Wiki and seems to install fine otherwise.

blackhole commented on 2023-11-29 18:27 (UTC)

Cannot update it

Your user’s .npmrc file (${HOME}/.npmrc) has a globalconfig and/or a prefix setting, which are incompatible with nvm. Run nvm use --delete-prefix v18.18.2 to unset it. ==> ERROR: A failure occurred in prepare(). Aborting...

Using nvm use --delete-prefix v18.18.2 the result is command not found

hardfalcon commented on 2023-11-13 17:05 (UTC)

You're welcome :)

codifryed commented on 2023-11-13 17:02 (UTC)

ah, my bad, I misunderstood what any meant. I'll go ahead and adjust that.

Re: python upgrade. That's a good tip on bumping the pkgrel version and that's what I meant with upgrades in the past. It broke but users usually just rebuild the package which installed it in the new /usr/lib/3.xx folder. Not a great UX, but wasn't sure how that should best be handled.

Tested working with 3.12, for whenever it lands. :)

Thanks again for the info, much appreciated.

hardfalcon commented on 2023-11-12 21:07 (UTC) (edited on 2023-11-13 17:04 (UTC) by hardfalcon)

@codifryed: If you set the arch array in the PKGBUILD to any, the resulting package is wrongfully marked as being independent of a specific CPU architecture, although it does contain an ELF binary that can only be executed on the same CPU architecture as the machine on which you built the package. any should only be used for PKGBUILDs where also the resulting packages are completely independent of a specific CPU architecture (things like shell scripts, Python scripts, image/texture/map files for computer games, etc). If you want to make life easier for people using other CPU archirectures than x86_64, you could put multiple CPU architectures into the arch array, for example arch=('x86_64' 'i686' 'i486' 'pentium4' 'aarch64' 'armv7h' 'arm' 'armv6h'). Check here for more information: https://wiki.archlinux.org/title/PKGBUILD#arch

The coolercontrol package will break when the python package moves from Python 3.11.x to Python 3.12.x, because it contains Python libraries in the /usr/lib/python3.11 directory (when built on a system where the python package contains Python 3.11.x), whilst Python 3.12.x would expect them in /usr/lib/python3.12. Simply bumping the pkgrel and rebuilding the package would then (when Archlinux' python package contains Python 3.12.x instead of Python 3.11.x) probably be enough make the package compatible with Python 3.12.x (unless the coolercontrol contains specific code that is incompatible with Python 3.12.x, of course).