Package creation fails in the cross-compile docker container

Hello!

I trying to set up CI for my own project, and I trying to use this container: Package cross-compiler · GitHub

The project itself builds fine, however, the package create always fails with next error:

# /usr/bin/package create -C ./package/ package-1.1.1~dev-1-x86_64.hpkg
unable to find system data path: Operation not supported!

The same package builds just fine on Haiku itself, but not via cross tool in the Docker container.

1 Like

I guess there aren’t many experts in that Docker image… or they just didn’t see the thread. I guess there remains nothing but to debug it yourself… or move onto another project :wink: .

With the image itself I am fine, then I’ll try to rephrase the question: which conditions cause the package tool to produce such error messages? Can you link me the code of the tool itself to let me inspect it?

Looks like some problem with the license handling haiku/src/kits/package/hpkg/PackageWriterImpl.cpp at master · haiku/haiku · GitHub

2 Likes

First time I’ve heard of the package tool. You’d think I should have known about it by now! :sweat_smile:

Thanks @Lrrr !

By the looks of it, haiku/3rdparty/docker/cross-compiler might be it. I found the link from the older docker hub package. It definitely would be nice if that were easier to find directly from the cross-compiler package from GitHub.

I may guess the pile of standard licenses is missing at the docker image then, my package uses GPLv3 license. I am right now out of home, so I’ll try to check this later.

How did you declare the license in your packageinfo file exactly? It has to match the filename of the file providing the license, stored I think in /boot/system/data/licenses/

Okay, just now I checked the container, and it has all these license files presented.


Then I may suspect, the bug in the tool itself when it works as a cross tool.

At me is specified GNU GPL v3, and on the true Haiku it works just fine. But the package tool built as a cross tool fails to even add the path according to the code, it didn’t reached the code piece when it should check the presense of the license file.