Skip to content
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

[BUG] Deb package has unnecessary -dev dependencies. #193

Closed
KottV opened this issue May 7, 2021 · 17 comments
Closed

[BUG] Deb package has unnecessary -dev dependencies. #193

KottV opened this issue May 7, 2021 · 17 comments
Assignees
Labels
bug Something isn't working

Comments

@KottV
Copy link

KottV commented May 7, 2021

Hi!

Describe the bug
Deb package has -dev dependencies.

If you look into package:
Depends: libasound2-dev, libcurl4-openssl-dev, libx11-dev, libxinerama-dev, libxext-dev, libfreetype6-dev, libwebkit2gtk-4.0-dev, libglu1-mesa-dev
these packages may needed for build but not for binaries.

I haven't find build script for that. Perhaps these packages are listed in debian.control.

@KottV KottV added the bug Something isn't working label May 7, 2021
@jatinchowdhury18
Copy link
Owner

Thanks for mentioning this, I was actually just thinking about it the other day. Do you know if there's some kind of "sandboxed" environment, or something like that, that can be used to figure out what dependencies like this are needed at run-time?

By the way the "packaging" script for this plugin is located here.

@KottV
Copy link
Author

KottV commented May 7, 2021

By the way the "packaging" script for this plugin is located here.

got it, I'll take a look

I use Open Build Server for my builds. It can build Debian packages also, I'll try to build your plugins in there. So it will have the proper dependencies.

@KottV
Copy link
Author

KottV commented May 11, 2021

here it is https://build.opensuse.org/package/show/home:kill_it:debian/chowtapemodel

builder can do dependencies automatically (jack was added by me):
Depends: libjack0 | libjack-jackd2-0, libasound2 (>= 1.0.16), libc6 (>= 2.29), libfreetype6 (>= 2.2.1), libgcc-s1 (>= 4.0), libstdc++6 (>= 7)

@jatinchowdhury18
Copy link
Owner

Ah thanks for reminding me about Jack, I had accidentally disabled Jack when I switched to the CMake build system. I've re-enabled that now. I've also made a new build of the .deb that uses the dependencies that you had listed above, which can be downloaded here. If this works out, then I can go ahead and adjust the Debian dependencies for all my other plugins in the build pipeline as well. Thanks for your help with this @KottV!

@KottV
Copy link
Author

KottV commented May 12, 2021

It works fine on Ubuntu 20.04, but I'm not sure that GH and OBS use exactly same Ubuntu. Is it possible to see /etc/os-release in your pipeline?

Also, I think that users may want Ubuntu 18 support too. I'll check how it builds there.

PS. Could you merge Jack support in master branch please? :)

@jatinchowdhury18
Copy link
Owner

It works fine on Ubuntu 20.04, but I'm not sure that GH and OBS use exactly same Ubuntu. Is it possible to see /etc/os-release in your pipeline?

According to the GitHub Actions Documentation, the build script is running on Ubuntu 20.04. I can see about adding a step to the pipeline as well to display the system info.

Also, I think that users may want Ubuntu 18 support too. I'll check how it builds there.

Is there a reason that the .deb package built on 20.04 wouldn't work on Ubuntu 18? I had assumed backwards compatibility, but maybe that was a poor assumption on my part.

PS. Could you merge Jack support in master branch please? :)

Done! :)

@KottV
Copy link
Author

KottV commented May 13, 2021

According to the GitHub Actions Documentation, the build script is running on Ubuntu 20.04. I can see about adding a step to the pipeline as well to display the system info.

Good :)

Is there a reason that the .deb package built on 20.04 wouldn't work on Ubuntu 18?

Yeah, it won't, main reason is the new glibc. But Ubuntu 18 builds should work on the newest versions.

Done! :)

thnx!

@KottV
Copy link
Author

KottV commented May 15, 2021

JUCE wants cmake >3.12 while Ubuntu 18 has 3.10.2
I think it will be tricky to build here.

@jatinchowdhury18
Copy link
Owner

Oh yeah, that's a good point... is it difficult to update to update CMake on Ubuntu? I remember doing it with apt, but that was quite a while ago.

@KottV
Copy link
Author

KottV commented May 16, 2021

I read a bit, It's possible by:

  1. Adding 3rd party repository: https://apt.kitware.com/
  2. Building CMake manually.

First one won't work in OBS afaik may work in GitHub actions. Second should work everywhere, but means building/installing CMake prior in your scripts.

@jatinchowdhury18
Copy link
Owner

Yeah, now that you mention it I think I did end up building from source on my Ubuntu 18 system. For my CI and release pipelines, I use this action, which seems to go pretty fast, so I doubt it is building from source. I wonder if it would be possible to reverse-engineer what they're doing, and do that in the scripts instead.

@KottV
Copy link
Author

KottV commented May 17, 2021

I wonder if it would be possible to reverse-engineer what they're doing, and do that in the scripts instead.

https://github.com/lukka/get-cmake/blob/main/src/get-cmake.ts
Looks like it grabs binaries from https://github.com/Kitware/CMake/releases/download/v${ToolsGetter.CMakeVersion}/cmake-${ToolsGetter.CMakeVersion}-linux-x86_64.tar.gz`

for example ${ToolsGetter.CMakeVersion} = 3.20.1
https://github.com/Kitware/CMake/releases/download/v3.20.1/cmake-3.20.1-linux-x86_64.tar.gz

@jatinchowdhury18
Copy link
Owner

Ah okay, that seems pretty do-able... would I need to do that in my release scripts, or would that step be needed for building with OBS?

@KottV
Copy link
Author

KottV commented May 20, 2021

It need for GitHub release script.
Though it's kind of possible to put 3rd party binaries in OBS it is the really bad practice. I'm still thinking on workaround for OBS.

@jatinchowdhury18
Copy link
Owner

Gotcha that makes sense. I've now set my releases pipeline to use Ubuntu 18.04 instead of 20, so hopefully that should do the trick :).

@jatinchowdhury18
Copy link
Owner

Since I've had some confirmation that the Ubuntu-18.04 builds are working, and since the original purpose of this issue (-dev dependencies in the .deb package) is now resolved, I'm going to go ahead and close this issue.

@KottV
Copy link
Author

KottV commented May 31, 2021

Glad it worked!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants