New Ubuntu nightly PPA - beta testers wanted

• Jul 30, 2015 - 12:29

NOTICE: This post is only relevant for the next few days. I will comment below when it no longer applies.

In an effort to speed up the process of packaging MuseScore for Linux, I've created a new PPA for Ubuntu 15.04 that does automated builds of the Github code. I would appreciate it if a few people could try it.

Please check:
1) It works. (I have tested it myself, obviously).
2) It doesn't interfere with an existing MuseScore installation, either from the ordinary MuseScore PPA or elsewhere. (I have also tested this!)

I have already checked these myself, but I would appreciate input from other people. Obviously the usual warnings about running development code apply.

Note: it is currently available only for Ubuntu 15.04 (Vivid Vervet) and potentially never for earlier versions of Ubuntu, depending on the difficulty of adding support for them.

The PPA currently runs from my own Launchpad account, and pulls the MuseScore code from my own Github repo (which contains the MuseScore:master plus a few of my own patches needed for the automation to work). However, tsmithe, the package maintainer for MuseScore on Ubuntu, has given me permission to add it to the MuseScore PPA. I will do this in a few days time, once I get feedback.

# Steps to add the test PPA (active only for the next few days)
sudo add-apt-repository ppa:shoogle/test-ppa

# To install the nightly build
sudo apt-get update
sudo apt-get install musescore-unstable

# To run the nightly build (notice the command has changed!)
mscore-unstable # (or click on Unity/GNOME desktop launcher)

# To manually upgrade the nightly build (it should happen automatically anyway)
sudo apt-get update
sudo apt-get upgrade
# One update will automatically be available every day the GitHub code changes
# Updates will be available more often if I manually request an update

# To remove the nightly build (command has changed back again!)
sudo apt-get remove --purge musescore-unstable

# To remove the PPA
sudo add-apt-repository --remove ppa:shoogle/test-ppa

Thanks to bodhi.zazen for his help getting me started with packaging.

NOTICE: This post is only relevant for the next few days. I will comment below when it no longer applies.


Comments

In reply to by robert leleu

Thanks!

I'm very glad to have your input, Robert, as you maintain the existing Linux nightlies.
I assume you have other builds installed? You haven't had any conflicts with any of them?

Please try these:

man mscore
mscore

(should be existing build)

Then try:

man musescore-unstable
musescore-unstable

(should be new nightly build)

Does the desktop launcher icon work?

In reply to by shoogle

man mscore opens
mscore launches 2.0.2 f51dc11 however wifh errors
leleu@serveur:~$ mscore
/usr/share/themes/Lubuntu-default/gtk-2.0/apps/thunar.rc:55: error: invalid string constant "thunar-statusbar", expected valid string constant
initScoreFonts 0xa0ddc98
init Help from:
cannot setup data for help engine: Cannot open collection file: /usr/local/share/mscore-2.0/manual/doc_fr_FR.qhc
QSslSocket: cannot resolve SSLv2_client_method
QSslSocket: cannot resolve SSLv2_server_method

man musescore-unstable doesn't open
leleu@serveur:~$ man musescore-unstable
Aucune entrée de manuel pour musescore-unstable

same
leleu@serveur:~$ musescore-unstable
musescore-unstable : commande introuvable

I don,t use desktop launcher, but menus. An entry labelled MuseScore 2 (2.1.0 unstable) with command mscore-unstable %F has been created which launches 2.1.0 f58931b

both binaries are in /usr/bin/

and....
leleu@serveur:~$ echo $PATH
/home/leleu/Qt/5.4/gcc/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

In reply to by robert leleu

Thanks for this. I will look into the man page issue.

I could be wrong, but I think the problem with mscore not loading is not caused by my musescore-unstable nightly build. If you are sure the problem didn't exit before you installed the nightly then you could try uninstalling the nightly, but as I said I don't expect that the nightly was the problem.

By desktop launcher I meant menu item. With Unity the distinction between the two is blurred, but if you are using Gnome or KDE then you are correct; I meant a menu item. The behaviour you described is what I wanted.

In reply to by shoogle

Indeed 2.0.2 f51dc11 is my last compilation.

I don't think I ever installed 2.0 on this old machine which I used only for

-visitors who don't want to use my BÉPO keyboard
-my old SCSI scanner
-32 bit compilation of musescore

thanks for the clarification about dashboard. Lubuntu uses LXDE environment, the lightest one !

Installed with no apparent problems (xubuntu 15.04)
Repository appears in Synaptic
man pages present for both
no desktop launch icon was created automatically; I located executable, created launch icon etc.
Need to be careful as I now have three versions MuseScore running

In reply to by shoogle

Yes to both. The x just indicates ubuntu with XFCE as, for instance, lubuntu uses LXDE. Multimedia makes sense as the default location. I usually launch things from a sidebar and have a button that launches my latest build of MS with a submenu to launch 1.3 and - for testing - from the ppa you just included. You can't, of course, cater to all users' whims so putting it under Mulitmedia is fine and most people using toolbars and sidebars know how to add items to them.

Good job!

A couple of remarks.

1/ currently nightlies are really risky. The file format is changing and is already different than in MuseScore 2.0.2. So a score created in a nightly will not open without warning in 2.0.X and might crash (and we will not fix it)

2/ On windows and mac, nightlies uses a very specific splash screen. Could be worse using the same one on Linux.

splash.png

In reply to by Nicolas

Thanks very much!

I have a question about the existing nightlies. Am I right in thinking these are sometimes build off a development branch (e.g. 2.0.2) rather than the master branch? If so, would you like to be able to do the same with mine?

1/ I'll put a warning on the PPA's webpage. I'd already put a similar warning inside the package itself, but the user only sees if they try to install via a package manager, not the terminal, so I should have one on the webpage too.

2/ I will use this image, thanks. Since nightlies and the Github code are essentially the same you might consider putting an "Unstable Build" or "Development Build" splash image in the Github code, to be used if the version is marked "Unstable" in CMakeLists.txt.

In reply to by shoogle

I'm not a developer, so I just do what I've been requested, and linux nightlies are fed by

git checkout 2.0.2
git reset --hard HEAD
git pull

I see that the last linux nightly is dated july 17, but Windows one is later.
If a developer teach me something to change, I do.

But we have now an unstable PPA from Ubuntu 15.10 on. So I think that perhaps we could discontinue to issue Linux nightlies. Actually I never heard of any linux user other than "ubunteros" using my nightlies.

The only request I'd have is to have this PPA for 15.04, since Mint sticks to this version of Ubuntu.

In reply to by robert leleu

My nightly is for Ubuntu 15.04 (and the as-yet unreleased 15.10).

You've done a good job with the Linux nightlies so far, but whether or not you continue is up to you. Personally, I would only continue if they are automated. If you have to manually do each one then it's probably not worth it; building from source, and keeping it updated via git, is easy enough for most people who want to test things, and my PPA should cater for the rest (providing they use Ubuntu or similar).

For those that don't use Ubuntu I may, at some point, get around to creating an automated build for them too:
1) An automated RPM build for non-Debian derived Linux distros, perhaps using CPack as part of the TravisCI routine, or by using an equivalent automated build service to Lauchpad (e.g. OpenSUSE Build Service).
2) A system-independent static build (all external libraries packaged with MuseScore). This avoids the difficulties with finding and installing dependencies which often have different names on different Linux distros (but are otherwise more or less identical).

You (or anybody else for that matter) would be more than welcome to do either of these if you wish. The main benefit of the nightlies is not so much for testing, in my opinion, but for checking that the code actually builds on that system. For this to happen it must be automated, and in the process of getting it to be automated I had to make a number of changes that will aid maintainers when they package it in the future. Thanks to these changes, packaging for Ubuntu is pretty much as easy as overriding a few variables when running "make VAR='value' install" (for recent versions of Ubuntu that is).

In reply to by shoogle

I was wrong about Mint reference : it's 14.04

My linux nightlies are automated, so I can go on. However I fear that my script connects to a wrong version of Musescore, since Windows nightlies are much more recent than my linux ones.

So my question is : Does compiling 2.0.2 is the right thing to do ? Shouldn't I change that ?

Obviously the system-independent static build you consider would be the right solution to allow linux users to be fully integrated in Musescore world. Unfortunately I'm not able to write the required script, but when available my computer could run it daily.

In reply to by robert leleu

The 2.0.2 branch will not be updated anymore. The current development happens in master.
There will probably be a release branch in the coming months (being 2.0.3 or 2.1.0) so yes, it would be great if we could switch from master to release branch (which is what I do for windows and mac nightlies) or add a branch to track and have builds for each of them.

I will take a look to add the unstable splash screen in the code. I created an issue.
#72061: Add nightly "cymbal" splash screen to source code

In reply to by tvaz

The unstable PPA is for testing purposes only and is not suitable for regular use as a score editor. In case you don't know, there are 4 places to get MuseScore for Ubuntu:

1) The "official" packages included in the default Ubuntu repos. (SAFE. Almost always out-of-date)
2) The "official" packages released from the dedicated MuseScore PPA. (SAFE. Often out-of-date)
3) My Unstable or "nightly" PPA (UNSAFE. Up-to-date but developmental)
4) The source code on Github. (UNSAFE. Fully up-to-date, developmental and requires compiling manually. For advanced users only).

(1) The packages in the Ubuntu repos are only updated each time a new version of *Ubuntu* is released (i.e. not each time a new version of MuseScore is released). The same is true for all packages in the Ubuntu repos; i.e. no updates except for critical security updates. This is intentional (albeit annoying) to prevent a system being unintentionally corrupted by an update.

The packages in the MuseScore PPA are (supposed to be) updated with each new version of MuseScore, but the task of doing so is not trivial and so the last couple of releases have been missed. Hopefully this will change once the nightlies are up-and-running.

It is unusual for the program to be available in the Ubuntu repo before the MuseScore PPA, but this appears to be the case at the moment.

In reply to by shoogle

Thanks shoogle for the detailed explanation. Indeed, that makes sense to provide nightly packages for testing purposes. However, your comments on (1) needs some update :) I'm the current maintainer of MuseScore packages for Debian and Ubuntu, and have been doing so since 2.0.0. MuseScore package is maintained in Debian, and then synced to Ubuntu. The lastest versions (2.0.1 and 2.0.2) took some time to be synced due to dependencies issues which needed to be solved, but now everything's fine. In summary, it's very likely that we'll keep having "official" MuseScore packages updated in Ubuntu as soon as a new released is announced. And probably it's easier and safer for users to grab this packages from the newer (currently wily) official repository than from a PPA, and most important, this will avoid effort duplication on packaging. Anyway, I as said, I like the idea of having a PPA for testing purposes, thanks for doing that!

In reply to by tvaz

It's great to have the latest version in Ubuntu 15.10 and (with a little hack) in 15.04.

Unfortunately a lot of users are still on the LTS 14.04 and 12.04 (yes...) or even on intermediary releases. The stable PPA was a way to provide the latest update to these people too.

In reply to by tvaz

You're welcome!

So you're the package maintainer for Debian/Ubuntu! That's brilliant; I've been hoping to get in touch. You will find my PPA especially helpful because "end-user testing" is only part of the value of the PPA. The code is built everyday on an Ubuntu VM and I am sent an email if it fails due to a missing dependency. This way I can keep the Debian build-depends list fully up-to-date, and I will endeavour to keep the debian/copyright file up-to-date too. When a new version of MuseScore is released you should be able to grab the latest debian files from my Bazaar repo on Launchpad and have the next package ready in no time!

P.S. I wasn't blaming the packagers for the lack of updates in the official repos; it's Ubuntu policy to freeze the repo with each Ubuntu release. This is why your 2.0.2 package is only available in the upcoming Ubuntu 15.10, even though it would work on 15.04. Only critical security updates are allowed to programs in the official repos after an Ubuntu release.

Thanks for your help guys!

NOTICE: The beta testing period is now over and the test PPA is no longer active. Please remove it from your system using the instructions in the original post at the top of this page. The nightlies are now live from a different PPA. Please continue to discuss the Ubuntu nightlies in this forum post. Thank you.

MuseScore 2.0.2 - more Beta testers needed!

Tiagovaz has kindly packaged 2.0.2 for the upcoming Ubuntu 15.10, but the Launchpad PPA is still stuck at 2.0.0. I have now repackaged Tiagovaz's 2.0.2 in my own PPA and verified that it works on my own Ubuntu 15.04 system. If somebody would be kind enough to confirm that it also works on Ubuntu 14.04 then I will release it in the stable PPA.

Here's the package in my Test PPA: https://launchpad.net/~shoogle/+archive/ubuntu/test-ppa

Steps to install:

#To add this Test PPA:
sudo add-apt-repository ppa:shoogle/test-ppa

#To install package:
sudo apt-get update
sudo apt-get install musescore
sudo apt-get upgrade

#To perform a factory reset of MuseScore (do this if you have problems running the package)
mscore -F

#To remove package:
sudo apt-get remove --purge musescore

#To remove the PPA: (PLEASE DON'T FORGET TO DO THIS ONCE DONE TESTING!!)
sudo add-apt-repository --remove ppa:shoogle/test-ppa

If someone can test this on Ubuntu 14.04 (or equivalent Debian/Mint) and report back it would be extremely helpful. Thanks!

In reply to by shoogle

Ciao shoogle,
I tried the test ppa in a 32bit Ubuntu 14.04 inside Virtualbox. I also had the mscore-stable ppa active.
It worked fine, it installed MuseScore 2.0.2, it launched properly, StartCenter was working, the sound was ok, most of the plugin worked.
The ABC_import plugin was not working. Here is the terminal output:
line 21: module "QtQuick.Dialogs" is not installed

Ciao,
ABL

In reply to by ABL

Thanks for this detailed information ABL and for the heads-up Jojo.

TLDR: I think I've fixed it. Please try again. Don't forget to "apt-get update".

Runtime dependencies are normally handled automatically, but it seems that dependencies of plugins are not handle automatically because the mscore executable itself does not depend on them. To fix this, I manually added "qml-module-qtquick-dialogs" to the list of dependencies. I am loth to add all of the QtQuick modules to the list of dependencies because providing Qt 5.3 on Ubuntu 14.04 is already a hack and I don't want to break anything. I imagine the regular maintainer (Toby Smithe) didn't include unnecessary modules for this reason.

However, all of the QtQuick modules are actually right there in the PPA, they just don't get installed by default. You can get them all with:

# I don't recommend doing this!
sudo apt-get install qml-module-qtquick-*

In future, if a particular plugin doesn't work and gives the error:
line XX: module "QtQuick.Package" is not installed

You could try to install only that package with:

# Note that Package is now lower case!
sudo apt-get install qml-module-qtquick-package

It's probably best, for the time being at least, if I restrict the default packages to the ones necessary for plugins that ship by default (like ABC_import).

In reply to by shoogle

Now the qtquick dependencies are automatically installed when installing MuseScore from scratch from the test-ppa (with also the mscore-stable ppa as an active repository).
I didn't perform deep tests, but everything seems to work properly (even the ABC import plugin) for this version in my Ubuntu 14.04 32bit virtual machine.
Thank you for your work.

Ciao,
ABL

In reply to by ABL

@ABL. Thanks for that. Using a VM is a good idea. I'll have to set one up for myself at some point. As I said, I'm not really the maintainer but Toby Smithe is busy at the moment.

@JoJo. Those are build dependencies, the missing package was a runtime dependency. I couldn't have missed a build dependency or the binary package wouldn't have built.

@tiagovaz, I maintain the Launchpad PPA for Ubuntu packages and I have some patches that it would be good to include in the Debian packages. What's the best way for me to send them to you?

Don't try to extract them from the Lauchpad packages because I need to make a few changes to them first!

It would be great to get them included in time for the upcoming release of 2.0.3. One of the patches affects the "get-orig-source" target in Debian/rules so it will actually make packaging 2.0.3 a bit easier for you.

In reply to by tvaz

Thanks, will do!

I can't do it right away because I have a very busy week coming up, but I'll do it over next weekend or early the following week at the latest. MuseScore 2.0.3 is due to be released soon (I don't know when - it could happen in a few days or maybe not for a month or more) and it is important that the changes to get-orig-source are included in the very first package for 2.0.3 because they affect orig.tar, and changes to the upstream tarball are only permitted when the upstream version is incremented. Basically, even if 2.0.3 is released this week, please hold off on making the package until next week when you can include my changes.

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