Package Details: coolercontrol 1.2.2-2

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: GPL3
Conflicts: coolercontrol, coolero
Provides: coolercontrol
Submitter: codifryed
Maintainer: codifryed
Last Packager: codifryed
Votes: 16
Popularity: 0.92
First Submitted: 2023-02-07 21:45 (UTC)
Last Updated: 2024-04-29 21:17 (UTC)

Pinned Comments

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 Next › Last »

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).

codifryed commented on 2023-11-12 19:34 (UTC) (edited on 2023-11-12 19:36 (UTC) by codifryed)

@hardfalcon thanks for the clarification.

Re: CPU Arch, there is no target architecture set in the rust build phase for the binary which means it will automatically build and link for whatever the host machine's architecture is. Even the major dependencies offer more than x86_64 arch, so I don't see why it should be limited to x86_64.

Can you explain what you mean by "the built package would clearly break if the python package was to be upgraded"? I just tried it out on 3.12 in a venv with up-to-date dependencies and every worked. I know that with python updates in the past the package needs to be rebuild anyway to install into the new 3.xx/site-packages folder, but that's not much of a surprise. Is there something I can improve there? ...Perhaps your script is reading the requirements in pyproject.toml, which are not adhered to for the Arch install. (Poetry Env)

hardfalcon commented on 2023-11-12 07:50 (UTC)

One additional issue though: This PKGBUILD should not use the any CPU architecture, but rather the x86_64 architecture, because /usr/bin/coolercontrold is an actual ELF binary and not just a python script.

Also, it might make sense to depend not simply on python, but rather on python>=3.11 and python<3.12, because the built package would clearly break if the python package was to be upgraded to a non-3.11.x version.

hardfalcon commented on 2023-11-12 07:45 (UTC)

codifryed: Oh sorry, you're absolutely right about python-pyqt6 not being used/necessary because pyside6 is used instead. I had misinterpreted the output of the tooling that I was using (basically https://wiki.archlinux.org/title/DeveloperWiki:Building_in_a_clean_chroot#Convenience_way, but modified such that than an additional custom repo of mine is used to allow for building AUR packages that depend upon other AUR packages).

codifryed commented on 2023-11-11 14:09 (UTC)

Thanks, I'll update those @hardfalcon.

One I question though is python-pyqt6. pyside6 and pyqt6 are completely separate implementations and there should be no dependency there. There's definitely no direct dependency from this package at least.

hardfalcon commented on 2023-11-11 11:20 (UTC) (edited on 2023-11-11 11:21 (UTC) by hardfalcon)

As of coolercontrol 0.17.1-1, this PKGBUILD lacks the following packages in its depends array:

gcc-libs
glibc
python-colorlog
python-dateutil
python-pillow
python-pydantic
python-pyqt6
python-urllib3

Also, the polkit dependency can probably be removed because the coolercontrol package doesn't contain any files within the /usr/share/polkit-1 directory tree.

codifryed commented on 2023-09-10 13:05 (UTC)

@That1Calculator

Try doing a clean and then reinstalling python-dataclass-wizard. Then install CoolerControl again. That worked for others who faced the ModuleNotFoundError: No module named 'dataclass_wizard' issue in the past.

That1Calculator commented on 2023-09-07 04:42 (UTC)

Check when installing fails:

    # ...
    Finished release [optimized] target(s) in 3m 28s
==> Starting check()...
packaging/metadata/org.coolercontrol.CoolerControl.metainfo.xml: OK
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/kainoa/.cache/yay/coolercontrol/src/coolercontrol-0.17.0/coolercontrol-gui/coolercontrol/__main__.py", line 18, in <module>
    from coolercontrol.coolercontrol import main
  File "/home/kainoa/.cache/yay/coolercontrol/src/coolercontrol-0.17.0/coolercontrol-gui/coolercontrol/coolercontrol.py", line 40, in <module>
    from coolercontrol.services.dynamic_buttons import DynamicButtons
  File "/home/kainoa/.cache/yay/coolercontrol/src/coolercontrol-0.17.0/coolercontrol-gui/coolercontrol/services/dynamic_buttons.py", line 27, in <module>
    from coolercontrol.models.device import Device, DeviceType
  File "/home/kainoa/.cache/yay/coolercontrol/src/coolercontrol-0.17.0/coolercontrol-gui/coolercontrol/models/device.py", line 23, in <module>
    from coolercontrol.models.status import Status
  File "/home/kainoa/.cache/yay/coolercontrol/src/coolercontrol-0.17.0/coolercontrol-gui/coolercontrol/models/status.py", line 22, in <module>
    from dataclass_wizard import LoadMixin, JSONWizard
ModuleNotFoundError: No module named 'dataclass_wizard'
==> ERROR: A failure occurred in check().
    Aborting...
 -> error making: coolercontrol-exit status 4