Package Details: hydrus 530-1

Git Clone URL: (read-only, click to copy)
Package Base: hydrus
Description: Danbooru-like image tagging and searching system for the desktop
Upstream URL:
Licenses: custom
Submitter: Score_Under
Maintainer: Score_Under
Last Packager: Score_Under
Votes: 35
Popularity: 0.75
First Submitted: 2015-02-28 18:11 (UTC)
Last Updated: 2023-06-01 05:28 (UTC)

Latest Comments

1 2 3 4 5 6 .. 12 Next › Last »

Score_Under commented on 2023-05-11 15:26 (UTC)

Thanks for the tip, I've confirmed the same on my own machine & added that to the list of required dependencies

guyven commented on 2023-05-11 14:57 (UTC)

After upgrading from version 526-1 to 527-1 I was unable to launch the application until I manually installed the qt6-multimedia package. This may need to be added to the dependency list, I have not done any in-depth investigation.

This was the error before adding this package:

v527, 2023/05/11 10:56:05: hydrus client started
v527, 2023/05/11 10:56:05: hydrus client failed
v527, 2023/05/11 10:56:05: Traceback (most recent call last):
File "/opt/hydrus/hydrus/", line 244, in boot
from hydrus.client import ClientController
File "/opt/hydrus/hydrus/client/", line 43, in <module>
from hydrus.client.gui import ClientGUI
File "/opt/hydrus/hydrus/client/gui/", line 92, in <module>
from hydrus.client.gui.pages import ClientGUIManagement
File "/opt/hydrus/hydrus/client/gui/pages/", line 39, in <module>
from hydrus.client.gui.canvas import ClientGUICanvas
File "/opt/hydrus/hydrus/client/gui/canvas/", line 42, in <module>
from hydrus.client.gui.canvas import ClientGUICanvasMedia
File "/opt/hydrus/hydrus/client/gui/canvas/", line 7, in <module>
from qtpy import QtMultimediaWidgets as QMW
File "/usr/lib/python3.11/site-packages/qtpy/", line 19, in <module>
from PySide6.QtMultimediaWidgets import *
ImportError: cannot open shared object file: No such file or directory

v527, 2023/05/11 10:56:05: hydrus client shut down

misagh commented on 2023-04-25 18:59 (UTC)

Thanks for finally making it happen. It's really appreciated. I will report if there are any issues.

joehillen commented on 2023-04-25 18:41 (UTC)


Thank you

Score_Under commented on 2023-04-23 16:04 (UTC) (edited on 2023-04-23 18:06 (UTC) by Score_Under)

The python2 issue was reported and fixed some time ago. I want to know what issue people are having now, after that migration. If the deps take a long time to install, that is surely only an issue when they are being removed between each build, but you should not be removing them if you intend to rebuild the software regularly.

As for mkdocs and its dependencies constantly breaking, I have never seen their compilation fail in recent memory, and barring quirks of my build system (i.e. no automatic dependency gathering and strict package name validation), neither has my build server:

I mentioned this last time and it bears repeating, this PKGBUILD already has a mechanism for excluding the docs makedeps: simply turn off docs in makepkg.conf. I have been asking people to tell me why this isn't an acceptable solution for them but all I've got are crickets, so what do I do with that?

Since this is clearly an issue that's still important to some regulars on here, maybe I'll try another tack: stub out docs in a readily available aur package that "provides" docs, and then split the package. Watch this space.

Upd: It's been split, and the dummy is in hydrus-docs-dummy. I've tried with yay and paru, and paru looks like it does a much better job (with yay showing a surprising failure to resolve dependencies), though neither seem to offer the alternative package by default.

misagh commented on 2023-04-23 05:36 (UTC)

I don't understand what more we can tell you: mkdocs and its dependencies are a mess that constantly break. They frequently won't compile / install, and even if they do, they significantly increase the installation time of this package as mkdocs wants to not only compile, but run a million tests.

Worst part is, this is not entirely your responsibility because it's the hydrus developer who has created this dependency. However, since they "officially" ship hydrus in such a way that all deps are included, they don't care that this dependency causes issues in this aur package, which makes it our problem, and we already told you what solution we want: remove mkdocs and all its dependencies.

Also, I don't believe its reasonable to expect people here to identify and debug the actual issue beyond what has already been reported, due to python2 being EOL, and many of those dependencies being unmaintained.

Again, just separate the docs and the application. For the past couple of years, many of us have had to do this manually with this package anyways.

Kirtai commented on 2023-04-13 03:23 (UTC)

Ok, it's working fine now. I had the version just before the one where you added the QT_API=pyqt6 setting. It worked with "QT_API=pyqt6" too but then I updated.

Thanks :)

Score_Under commented on 2023-04-13 01:33 (UTC)

@Kirtai, I experienced the same issue when testing, and it seems to be some bad interaction with the Pyside6 API. I tried to work around this by setting QT_API=pyqt6 in the hydrus-client script, but of course if you override QT_API yourself or if you run it via any other script, it may not work correctly. Can you tell me if you have an existing QT_API environment variable, and if you're running it through that script?

Kirtai commented on 2023-04-13 00:14 (UTC) (edited on 2023-04-13 00:14 (UTC) by Kirtai)

Seems to be a failure to run with latest updates. 2023-04-13.

Traceback (most recent call last):
  File "/opt/hydrus/hydrus/client/", line 2140, in THREADBootEverything
  File "/opt/hydrus/hydrus/client/", line 1296, in InitView
    self.CallBlockingToQt( self._splash, qt_code_gui )
  File "/opt/hydrus/hydrus/client/", line 478, in CallBlockingToQt
    raise e
  File "/opt/hydrus/hydrus/client/", line 417, in qt_code
    result = func( *args, **kwargs )
  File "/opt/hydrus/hydrus/client/", line 1291, in qt_code_gui
    self.gui = ClientGUI.FrameGUI( self )
  File "/opt/hydrus/hydrus/client/gui/", line 474, in __init__
    ClientGUITopLevelWindows.MainFrameThatResizes.__init__( self, None, 'main', 'main_gui' )
  File "/opt/hydrus/hydrus/client/gui/", line 670, in __init__
    MainFrame.__init__( self, parent, title )
  File "/opt/hydrus/hydrus/client/gui/", line 610, in __init__
    QW.QMainWindow.__init__( self, parent )
TypeError: object.__init__() takes exactly one argument (the instance to initialize)

Score_Under commented on 2023-04-06 17:16 (UTC)

It would be nice if I knew what headache people are having from this. I'm certainly getting headaches from discussing this for 7 years with very little elaboration as to exactly what is going wrong! I have received some feedback about some dependencies being poorly maintained, but no elaboration past that as to exactly what maintenance troubles are impacting the end user (especially now that I have taken matters into my own hands when it comes to breaking the python2 dependency in the chain, going as far as to break AUR rules to do so while TUs were backlogged and eventually take over ownership of the packages in question), and I have put an exception in the PKGBUILD to remove the help pages and all dependencies downstream of that if the user chooses not to build docs (which is not a standard practice by any means, and as demonstrated, breaks all context-sensitive help features within hydrus and some of the help menu too, but crucially it solves the exact problem people have been discussing for so long in this thread). Many years ago, this package used to be split into three, building sources, docs and optimised bytecode into separate packages, but there were complaints about that setup too, because people's AUR helpers hit on bugs when they handled it - despite it being widespread and a documented standard - and they don't want to use anything else.

Please, instead of one-sided complaints that propose only a solution without detailing the problem and do not consider the impact of that solution on the majority of the userbase, tell me:

  • Concretely, what problems are you currently experiencing through having the make-dependencies of Hydrus documentation installed?
    • Are these problems significantly more impactful than the other cursed problems surrounding this package, such as Qt python bindings not being as transparently interchangeable as QtPy likes to pretend (and thus the occasional switching of default qt bindings, or forcing of specific backends to be installed despite how that might change the behaviour for other software and override the sysadmin's wishes), or QtPy's version not being updated fast enough by the Arch packagers to keep up with Hydrus' growing requirements, or the whole python2-to-python3 move in general? If they are not, it doesn't seem reasonable to point a finger there and say that this is what's making the package difficult to use.
  • The current iteration of the package contains a workaround which will avoid pulling in documentation dependencies if you choose not to build documentation. This does exactly what was asked, and I have received precisely zero feedback on it. Why is this not an acceptable solution?
  • The official package provided by upstream contains many of the dependencies already pre-packaged and the documentation already pre-baked. If you are looking to minimise pacman dependencies, why are you using the AUR version rather than the upstream build?

I want to avoid making this a half-assed semi-broken out-of-the-box experience for the average user, and breaking all context-sensitive help and half the help menu itself is at best going to give people a bad experience (especially newer users, as many of the more advanced tools have a steep learning curve), or at worst going to end up with a bunch of spurious bug reports against the Hydrus project itself about these features being broken.

If I were to split this package into two completely separate pkgbases, which I assume is what is being asked, then nobody would install the separate docs package even if they needed it. It wouldn't have the same presence when someone's just looking to "install Hydrus from the AUR". To the outside observer who hasn't been part of this discourse, it is just yet another feature that the AUR version botches for no good reason. Additionally, keeping them both up-to-date at the same time, in lockstep with each other's version, would both be more effort in terms of package maintenance (as I now have twice the packages to maintain per Hydrus update), and more effort in terms of system administration for the end user (as they will need to manage version conflicts and install them in the correct order).

At the risk of repeating myself, I don't want to break features just to satisfy a vaguely articulated gripe people have and which people have flatly refused to elaborate on when questioned. If I'm going to break the software for all users, I want a good reason to do it. I don't want to throw the baby out with the bathwater. I don't think that's asking too much.