Standalone Linux builds

• Jun 18, 2015 - 11:22

Windows users of MuseScore has a nice download option, which is a standalone build. It lets one download and run the program immediately, without additional installation step.

Linux users, however, do not have this option. While most of them prefer to install software from repositories, it still can be a problem since MuseScore packages in the repo are often either completely outdated or not the latest available. For example, official OpenSuse repo ships 2.0.0 instead of 2.0.1, as the latest Fedora does. Fedora 21 (which I happen to be using right now) offers only 1.x branch of MuseScore, so the easiest way to use the 2.0 version is to download standalone Windows build and run it with Wine. Just sad, eh?

That being said, my request is to provide standalone, distro-agnostic build for Linux systems. Is there some technical difficulties with that?


Comments

I totally support this. I think musescore is free software. I can not figure out how a proprietary operational system receive the updates at first.

In reply to by mtuliosax

The proprietary operating system is pretty standard. Linux is not an operating system but a family of related operating systems many with different packaging and installation needs. Try building your own - once you have done it for the first time then subsequent builds are easy.

What about release a "Click" build? Can Ubuntu Click Address Linus Torvalds’ Binary Problems

According to what are click pacakges? , supposedly Click can have all dependencies in the package. But apparently Click packages run under confinement (I don't know if they are allowed to run unconfined, which I think musescore would need). I haven't looked into this click thing though, I just remember it being a recent development that may or may not be relevant to musescore's linux distribution issues.

A very worthwhile goal. I don't know whether it's technically feasible. Will the same binary work on all Linux boxes? (It's not a rhetorical question. I don't know the answer.)

As long as the required libraries are linked statically and thus bundled with MuseScore itself, it should work. Worth noticing is the fact that it's not the same as building an rpm\deb package (which requires much more work and is usually done by distro's maintainers).

Then go for it. Disk space is cheap, and I'm tired of using half-done software that's years out of date. We need official releases of software that will run on anything.

Even Ubuntu PPAs are outdated. Until recently I was using version 1.2. I updated from one Ubuntu LTS version to another just to get version 1.3. I haven't gotten around to compiling version 2. But do, please make a 32-bit version. :-)

In reply to by RexC

isn't commit f51dc11 the commit of 2.0.2 release? I see those two commits are in the nightly builds:

http://prereleases.musescore.org/linux/nightly/mscore.64bits-2015-08-17…
http://prereleases.musescore.org/linux/nightly/mscore.32bits-2015-07-17…

(I don't know why that 64bit one is labeled for august...maybe that's when it was built?)

Can we treat those *f51dc11.tar.bz2 files as the officially sanction "Linux Builds". Just provide them via a HTTPS url with instructions for the list of dependencies and versions of libraries. Those are dynamically linked according to command "file mscore", and is 247M...how much bigger would it be if statically linked?

In reply to by ericfontainejazz

according to https://musescore.org/en/node/33061#comment-141411

>> "The Linux build are not exactly static build, since Qt for Linux from qt-project was not built as static."

So if building musescore statically, would have to first build static libraries for Qt before statically linking to musescore. (Just fyi, I once compiled the entire Qt libraries on a dual core linux macbook, and it took basically a day, so it's not a trivial compile.)

Here are directions on how to compile qt statically: http://doc.qt.io/qt-5/linux-deployment.html#static-linking

Any guestimates about the size of musescore binary with qt statically linked? It wouldn't be as large as the entire qt library, because only components used would be included.

EDIT: of course need to also compile every other library statically. Anyway, has anyone else tried this?

In reply to by [DELETED] 5

Along more than the last year I compiled 64bits and 32bits, last months under Mint17.2 (based on ubuntu 14.02)

There was not many informations from users.
Since I am not a developer I don't know if these compilation were "dynamic" or "static", but from the discussion I understand that the choice is to be made upstream.

Now, since 2.0.2 appeared, due to some change by developers the git command in my scripts no longer find the present developments.

However I think that we should try to produce linux compilations running on all distributions, in order for Musescore to take advantage of the native curiosity of linuxers.

Hoping to contribute I just moved to Kubuntu 15.04

In reply to by [DELETED] 5

Well I first tried going the route of compiling QT 5.4 statically, but then mscore building failed because couldn't find QWebView. It seems that when compiling QT, the webkit components are not compiled by default since webkit is such a huge project in itself. So I thought about trying to either build the webkit statically (which would have taken a long time and would have also made a statically linked mscore very large, I suspect) or thought to simply disable the mscore start center component that uses QWebView objects (it seems the only need for the webview is displaying the "online community" panel). It would make little sense to statically build the entire webkit library inside of a statically linked mscore file...would make much more sense to dynamically link webkit or to remove the webkit components.

>> I believe the people at KxStudio provides a static build of MuseScore 2 for their distrib. Not sure how big it is but they might have some information. You can find them at #kxstudio on freenode.

Thanks for that information...I haven't contacted them, but was able to figure out what I needed from their website. Looking at http://kxstudio.linuxaudio.org/Repositories do have a .deb file that can be added to all Debian and Ubuntu derived oses...here are instructions to add:

wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_9.1.0~kxstudio1_all.deb
sudo dpkg -i kxstudio-repos_9.1.0~kxstudio1_all.deb

I tried that out on my x86-64 Trisquel 7.0 machine (which is a based on Ubuntu 14.04 LTS) and then did sudo apt-get update and sudo apt-get install musescore, and am able to run their compiled binary for version 2.0.2. I noticed that they do NOT include the QWebView object for "online community" in the start center...so sounds like they didn't bother including statically compiled QTwebkit components, just like I was thinking of doing! Looking at the output of command file /usr/bin/mscore, I can see that the binary is technically "dynamically linked":

/usr/bin/mscore: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=1fac6577421ff85bf393eb17a05ade411f3765a4, stripped

But, it must include a statically linked QT 5.4.1, because when I go to musescore->Help->About Qt, it says "This program uses Qt version 5.4.1" even though if I look through the list of all installed packages, I don't have any Qt 5.* libraries installed. I'm attaching the output of ldd /usr/bin/mscore as text file for anyone curious to see what libraries are dynamically linked with their build (and you will notice the conspicuous lack of any Qt included in this list, so I think it is safe to conclude they statically linked the Qt components). The size of their binary is 53M, so not terribly large, but that is about twice the size of the binary on my arch linux machine (which dynamically links Qt), so is a significant difference in size, but not absurdly large. I did want to find kxstudio's modified compile script or or modified 2.0.2 source branch that removed the webview component, but a quick google search or search of https://github.com/KXStudio did not reveal it.

Anyway, tl;dr summary is: if you are using an ubuntu or outdated debian that doesn't have mscore 2.0.2, then try installing kxstudio's .deb file.

Attachment Size
mscore-kxstudio-ldd.txt 4.42 KB

In reply to by ericfontainejazz

I am not an expert on licences and legalities and details may change over time, but at least some time ago and at least under some conditions, the "Community" version of Qt could be only linked dyamically, and linking it statically was against the license.

The "Commercial" version did not have this limitation, but it would cost money to license (no idea how much).

So, there might be legal considerations, in addition to purely technical ones, to take into account in a free, open source project as MuseScore is. Presumably somebody, more familiar with these details than I am, could tell more!

Do you still have an unanswered question? Please log in first to post your question.