New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More standardized, internetless build and better build instructions #19
Comments
Hi @fpesari , I am happy to work with you to resolve these issues. I already made a first pass at fixing this here The current build system was really only meant for the end user who prefers to compile their own software, since As far as
Nothing is wrong, that's just noise required to make the same Makefile work on Windows and Linux, it invokes multiple
I'll move those files to |
Hello @stargateaudio and thanks for the fast and accurate response! Yes, I am probably going to package those Python dependencies (unless they have a deep hierarchy of dependencies themselves, but knowing what they do I doubt it). While vendoring is often frowned upon, that's mostly because of security issues AFAIK, which IMHO are a bit less serious when we are talking dependencies which do not connect to the Internet. Of course, I can see the possibility for exploits in PyMarshal, for example, so I would understand leaving vendoring as a last resort. But downloading packages from PyPi can be just as unsafe due to malware present on it. I think the best of both worlds can be achieved by doing this: if there is an installed system-wide dependency, use that, if not, try to download it via pip, else (if there is no Internet) use the vendored one. This way everyone should be happy and would use the safest option by default. I will wait for the next official release containing these fixes to make a package on OBS so I can send you a proper log. |
Files in |
I believe the latest
|
Good job! I've already started building the stargate package for openSUSE. Vendoring for Python packages, if done, should be done by you - in other words, this repo should contain the vendored Python dependencies. Right now, in my local build, it downloaded them from the Internet and created a Also, sbsms fails to build both on my local machine and in the VM. Here is the log. PS: git seems to be a (soft) build dependency, even if it is not currently listed. |
@fpesari please check out the new packaging instructions For this use-case of packaging without vendored dependencies, there is now:
It also appears that you are missing I don't see that SBSMS actually failed, it looks like pip3 install failed. |
Also, if you do not want to use vendored SBSMS, you can package the source: |
Hello, actually, I still had to manually download the Python packages from my local machine before uploading the package on OBS :( but the build failed anyway because pip3 fails. pip3 should not be called if packages are present in the I made an openSUSE package for libsbsms and sbsms, so I wanted to use that. While compiling them I found out that it's better to use a vendored copy of sbsms by default. It's very lightweight, is not updated very frequently and it is unavailable in some distro repositories so I guess it's best to always vendor it. |
Are you using the |
But above you said:
I want to use vendored dependencies, so I am using the |
OK, got it. I will need to develop a solution for this, will post back to this issue when it's done. |
@fpesari , the new Makefile should solve this:
|
Although I am concerned about the long term viability of keeping |
Here is the openSUSE package for Stargate 🎉 I have not tested it yet so I ask you to kindly wait a bit before closing this ticket. In a way, I would say "mission accomplished" because this is a standardized build: In the long run, I think the best solution would be:
Most developers who do this use CMake (but meson would also be fine, even more considering you use Python), which makes this kind of behavior easier to implement and more standardized. Sure, you can use regular make and |
So, I tested it and it works. openSUSE users will be able to install it easily now! Thanks @stargateaudio for cooperating with us from the GeekosDAW project. |
Excellent, it has been a pleasure working with you. I will test your packages myself sometime this weekend. I will also evaluate your suggestion of moving to something like Meson soon, need to work through some high priority bugs first. |
Hello:
About that error: it seems the Leap 15.3: https://download.opensuse.org/repositories/home:/geekositalia:/daw/openSUSE_Leap_15.3/ |
@fpesari I tested on Leap 15.3 and it gave me this error: Adding PYTHONPATH /usr File "/usr/share/stargate/stargate/sgui/sgqt.py", line 7, in ModuleNotFoundError: No module named 'PyQt6' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/stargate", line 170, in File "/usr/bin/stargate", line 167, in main File "/usr/bin/stargate", line 95, in start_stargate File "/usr/bin/stargate", line 73, in _setup File "/usr/share/stargate/stargate/sgui/sgqt.py", line 11, in ModuleNotFoundError: No module named 'PyQt5' I think it's not installing all the dependencies. |
Thank you for reporting the error @oldcastlehq, please try now |
@fpesari thanks. It installs now, but it crashes after startup. I'll report this to @stargateaudio. |
Hi @fpesari. From the error below, I think some dependencies are still missing. Is that right? oldcastle@hp:~/Public/butikk> stargate
|
That's because You can get around it via |
I made an openSUSE package for mido, too. Please try re-installing stargate from GeekosDAW and let me know what happens. |
I also added mido to the vendor package |
All good now. Thanks! |
Hello,
I am a packager on openSUSE and wanted to make a package for stargate. Builds on OBS (Open Build Service, the build system used by openSUSE) happen in a virtual machine unconnected to the Internet so the fact that
make
tries to download some packages from PyPi is problematic.I tried building stargate via the
make
command but it tried to runpip
and install some packages from the Internet, which as I said is not allowed on OBS.Nevertheless, I proceeded with the build on my local system. It compiled correctly and
make install
worked but thestargate
executable failed twice - first whenmido
was missing, second (after having installedmido
) whensglib
was missing. I had manually runpython3 setup.py install --user
to install the Python package in thesrc
directory but that apparently did not providesglib
.My suggestions:
make
does not connect to the Internet, especially if Python dependencies are found on the systemmake install
installs everything needed to run stargate, including the Python package containing sglib which should respect the distro's hierarchy (openSUSE also uses lib64, see Manage installation in lib / lib64 directory #14). Also,make install
tried to execute the (non-existing on my system)/mingw64/bin/jq
program (if it's thejq
program for querying JSON, I have it installed in/usr/bin/jq
)The text was updated successfully, but these errors were encountered: