I managed to build an OSX version of Kstars/Ekos in early February, but when I tried again in march it failed (see
www.indilib.org/forum/development/14443-...server-py-error.html). I have managed to figure out what's happening, but haven't been able to stop it.
In the repo for kstars-on-osx-craft there is a file indiserver.py in craftRecipes > kde/applications > libs/_mac > indiserver.
The file which is throwing the error when I try to build is also called indiserver.py and is in a similar place in the tree (AstroRoot/craft-root/etc/blueprints/locations/craft-blueprints-kde/libs/_mac/indiserver) and I assumed they were the same file. But they are not ! The one in AstroRoot, which is the one used has a number of changes to reflect the current build (e.g. the master branch and the version) but it also changes some of the code.
In particular it changes 2 lines (not adjacent in the code but I'll put them together here to save space)
from Package.CMakePackageBase import *
ret = CMakePackageBase.install(self)
with
from Package.CMakePackageBase import CMakePackageBase
ret = super.install()
I don't know enough about Python to recognise if the first is important, but one or both must be because if I change the code back it doesn't fail at this point (it does later on, which we'll come to).
So it seems that during the execution of this long process to build everything the indiserver.py file is being edited to reflect the desired build choices
but is also getting some breaking changes introduced too
So, with this change I can get to the install part and it starts OK, then a couple of error of the type "... option "-add_rpath /Users/rfrancis/AstroRoot/craft-root/lib" would duplicate path, file already has LC_RPATH for: /Users/rfrancis/AstroRoot/craft-root/lib" occur. Then it transitions, once it starts to install the device drivers, to a state where every install line has this error.
Once we get through that, we hit another, terminal error:
startswith first arg must be str or a tuple of str, not PosixPath
Traceback (most recent call last):
File "/Users/rfrancis/AstroRoot/craft-root/craft/bin/craft.py", line 416, in <module>
success = main(timer)
^^^^^^^^^^^
File "/Users/rfrancis/AstroRoot/craft-root/craft/bin/craft.py", line 406, in main
if not CraftCommands.run(package, action, tempArgs):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/rfrancis/AstroRoot/craft-root/craft/bin/CraftCommands.py", line 465, in run
if not handlePackage(info, action, directTargets=directTargets):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/rfrancis/AstroRoot/craft-root/craft/bin/CraftCommands.py", line 111, in handlePackage
if not doExec(package, action):
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/rfrancis/AstroRoot/craft-root/craft/bin/CraftCommands.py", line 60, in doExec
ret = package.instance.runAction(action)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/rfrancis/AstroRoot/craft-root/craft/bin/Package/PackageBase.py", line 275, in runAction
if not getattr(self, step)():
^^^^^^^^^^^^^^^^^^^^^
File "/Users/rfrancis/AstroRoot/craft-root/etc/blueprints/locations/craft-blueprints-kde/libs/_mac/indiserver/indiserver.py", line 60, in install
self.fixLibraryFolder(self.imageDir() / "lib")
File "/Users/rfrancis/AstroRoot/craft-root/etc/blueprints/locations/craft-blueprints-kde/libs/_mac/indiserver/indiserver.py", line 43, in fixLibraryFolder
if path.startswith(craftLibDir):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: startswith first arg must be str or a tuple of str, not PosixPath
Craft stopped with out completing ['libs/indiserver']
And, of course, if I delete AstroRoot and start all over, I get the same indiserver.py error.
This is all getting rather frustrating.
Thanks for any guidance !
Richard