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

Automatic build of official Debian packages #795

Closed
ann0see opened this issue Dec 23, 2020 · 37 comments
Closed

Automatic build of official Debian packages #795

ann0see opened this issue Dec 23, 2020 · 37 comments
Labels
feature request Feature request

Comments

@ann0see
Copy link
Member

ann0see commented Dec 23, 2020

As far as I know, Jamulus is not included in the official Debian repository.

Compiling Jamulus needs a bunch of dependencies (which in my case resulted in a GNOME desktop install on my server) which I rather want to avoid on my server.

It would be great if there were official Debian packages which are released via GitHub releases. These packages could be built automatically by GitHub Actions on every release.

We already have the necessary scripts in this repository, so it should be easy to implement.

@ann0see ann0see changed the title Automatic build of Debian packages Automatic build of official Debian packages Dec 23, 2020
@chrisrimple
Copy link

I'm running Jamulus Server on Debian at Vultr.com. I followed Andrew Ferguson's install instructions, then update to new Jamulus versions with the steps shown in my Remote Band Rehearsals doc. Anything that makes it easier is a good thing, in my mind. :)

@corrados corrados added the feature request Feature request label Dec 24, 2020
@ann0see
Copy link
Member Author

ann0see commented Dec 24, 2020

@ann0see
Copy link
Member Author

ann0see commented Dec 24, 2020

My work:

Edit: https://github.com/ann0see/jamulus/tree/autobuild_linux

Is now the branch with my changes. This automatically builds .deb files on every commit.

@38github
Copy link

38github commented Dec 25, 2020

ann0see: Thank you for your effort. I greatly appreciate it. I managed to install it on Debian 10 and it runs but apt complained about libgcc10-s1 not being available and having to use fix-broken when trying to install anything else which result in Jamulus being removed:

Unpacking jamulus (3.6.2git-0) over (3.6.2-0~~xenial1) ...
dpkg: dependency problems prevent configuration of jamulus:
 jamulus depends on libgcc-s1 (>= 3.0); however:
  Package libgcc-s1 is not installed.

I tried your deb because when I was using the Xenial build from PPA I could not see any pan pots but after installing your build they appeared. Yes, I did have stereo and everything configured correctly with xenial build but still no pan pots.

Questions:

  • Can you build it for latest stable (Debain 10)?
  • If so, also the latest stable releases (right now 3.6.2)?

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

@38github I must admit, that I didn't do much (all the debian packaging tools etc. were already there. I just did the GH-Actions stuff) and I haven't had the time to install and check the packages yet on a real machine. I just looked at the content and it looked fine.

Initially I ran and compiled Jamulus (latest code from master) with my script on Debian 10 which produced .deb files.

GitHub Actions compiles it on Ubuntu (so it might produce slightly different files, although I don't really know why that should be the case).

Concerning your dependency issue: I wasn't aware of it, but maybe I can figure out why this is added.

Edit: yes, the resulting control file is different on Debian 10 and probably also on Ubuntu 16.04 which I now changed the OS of the GH action to. Let's wait and see what these .deb files look like...

@38github
Copy link

Thank you very much ann0see. I will try a new build as soon as one is generated.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

Yes. It's done now (and the Gui Version works on debian 10). Unfortunately the desktop file doesn't seem to work on debian 10.

Changed the OS to Ubuntu 20.04. Let's have a look at what that does.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

I'm not sure about the systemd Debian headless script (it automatically configures a public server and has multiple differences to the one included in the wiki: https://jamulus.io/wiki/Server-Linux#create-a-start-script). @corrados should we change this file?

@38github
Copy link

The deb works without errors BUT now the pan pots are gone just like in the xenial PPA build. Weird! They were not gone with the build you had before that gave the libgcc10-s1 package error.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

I can reproduce this error.
So it depends on the OS we build Jamulus on, I think?

@38github
Copy link

I wish I could answer that but it seems so. Sometimes I wish appimages were more popular than they are but they probably have their shortcomings too that I don't know about,

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

appimages are quite big, I think? .deb files are kind of the standard, I think

@38github
Copy link

What I like about them is that they work on (almost) all distros but I don't know how it works exactly. This is not popular to say but on other operating systems you can at least run a program downloaded on the developers website and not look for distros and packages that work. This will hopefully someday be a thing of the past and just work.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

The new files are up (but that isn't the solution...)

reverted it back to 16.04 build and will try to add the dependencies manually to the control file (although that's not a sustainable solution)

@38github
Copy link

38github commented Dec 25, 2020

The new one built on Ubuntu 20.04 gave me the following in Debian 10:

Preparing to unpack jamulus_3.6.2git-0_amd64.deb ...
Unpacking jamulus (3.6.2git-0) over (3.6.2git-0) ...
dpkg: dependency problems prevent configuration of jamulus:
 jamulus depends on libc6 (>= 2.29); however:
  Version of libc6:amd64 on system is 2.28-10.
 jamulus depends on libgcc-s1 (>= 3.0); however:
  Package libgcc-s1 is not installed.
 jamulus depends on libqt5core5a (>= 5.12.2); however:
  Version of libqt5core5a:amd64 on system is 5.11.3+dfsg1-1+deb10u4.
 jamulus depends on libqt5widgets5 (>= 5.12.2); however:
  Version of libqt5widgets5:amd64 on system is 5.11.3+dfsg1-1+deb10u4.

Edit: Saw now that you reverted back to 16.04. Is it possible to build for 18.04?

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

Is it possible to build for 18.04?

Yes. That's what the first deb was built on

@38github
Copy link

Ah, ok.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

I think the issue lies deeper. Probably it has something to do with an outdated version of QT

@38github
Copy link

But the first build (18.04) worked and the pan pots were visible except the libgcc-s1 dependency issue that messed up installing any further things with apt.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

Yes. I now added the dependencies from 16.04 to the control file and set the build to 20.04. Let's wait and see if this works.

@38github
Copy link

Installed fine but won't start because of:

$ jamulus 
jamulus: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by jamulus)
jamulus: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12' not found (required by jamulus)

:(

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

Ok. Thanks for this information. I will try to build it on 18.04 with my dependencies copied from 16.04

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

The new version should work now @38github but I just copied the dependencies from the 16.04 to the control file so there might be problems with them.

@38github
Copy link

38github commented Dec 25, 2020

$ jamulus
qt.qpa.screen: QXcbConnection: Could not connect to display 
Could not connect to any X display.

Computers... :)

Edit: I had to log-out which seemed to restart X11 or the windows manager and then it worked,

@38github
Copy link

Hold on...................

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

For me it worked...

user@debian:/tmp$ sudo dpkg -i jamulus_3.6.2git-0_amd64.deb 
(Lese Datenbank ... 251073 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von jamulus_3.6.2git-0_amd64.deb ...
Entpacken von jamulus (3.6.2git-0) über (3.6.2git-0) ...
jamulus (3.6.2git-0) wird eingerichtet ...
Trigger für desktop-file-utils (0.23-4) werden verarbeitet ...
Trigger für mime-support (3.62) werden verarbeitet ...
Trigger für hicolor-icon-theme (0.17-2) werden verarbeitet ...

Are you running with gui?
We should find out why this happens:

Unpacking jamulus (3.6.2git-0) over (3.6.2-0~~xenial1) ...
dpkg: dependency problems prevent configuration of jamulus:
 jamulus depends on libgcc-s1 (>= 3.0); however:
  Package libgcc-s1 is not installed.

@38github
Copy link

It worked! The pan pots are there! :D Thank you for all your patience, ann0see! Hopefully there is no other issue.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

Hopefully there is no other issue.

No guarantee for that...

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

But what I did was really just a hack.

@38github
Copy link

38github commented Dec 25, 2020

But that hack made me very happy ;) Hopefully someone can answer the question why libgcc-s1 is an issue and why the pan pots work for some builds and not others.

@ann0see
Copy link
Member Author

ann0see commented Dec 25, 2020

Yes. @tormodvolden might have an idea since he wrote the Debian scripts (I think). Also tagging @trebmuh here.

@38github
Copy link

This is not an issue but just want to add it if @tormodvolden reads it - the pan pots work now BUT the mute icon above users are now just an orange rectangle's border.

@corrados
Copy link
Contributor

corrados commented Jan 2, 2021

the mute icon above users are now just an orange rectangle's border

The UTF8 font is missing which has the symbols.

BTW: What is the status if this issue?

@ann0see
Copy link
Member Author

ann0see commented Jan 2, 2021

What is the status if this issue?

The issue with the missing font you mentioned is still open and the question how you will handle a slightly different release process (you might no longer have to set the latest tag) to the latest version of Jamulus and the latest release might look a bit different.

@corrados
Copy link
Contributor

corrados commented Jan 2, 2021

a slightly different release process (you might no longer have to set the latest tag) to the latest version of Jamulus and the latest release might look a bit differen

The release process already takes more than 30 minutes and I have to remember a lot of things to do. Making it even more complicated is not a good idea.

What do you mean by "look a bit different"?

And also: "you might no longer have to set the latest tag" -> This will not be possible since a lot of people are using this tag. So this must exist.

@ann0see
Copy link
Member Author

ann0see commented Jan 2, 2021

The latest tag would be set automatically so it will make your process faster.

Also the content of a github release would be automatically filled with the latest commits. Since the last commit with the latest tag.

See: https://github.com/marketplace/actions/automatic-releases

To allow this I still have to modify it a little bit

@ann0see
Copy link
Member Author

ann0see commented Jan 3, 2021

Since the PR was merged, I will close this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Feature request
Projects
None yet
Development

No branches or pull requests

4 participants