Reflections and Projections

OpenLP Now Licensed Under GPL Version 3

As of today, the 1st of May 2019, OpenLP is officially licensed under version 3 (or higher) of the GNU General Public License.

Simply put, we're updating to a newer version of the license we already use.

Does this affect me?

People reading this blog post will no doubt be asking themselves, "does this affect me?" and the answer depends on what your role within OpenLP is.

End user

If you're an end user, someone who downloaded and installed OpenLP and is using it in your church, youth group, Bible study, or somewhere else, this change does not affect you. Your freedoms remain the same, you can still use it whenever, wherever and however you want. You can still give OpenLP away to as many people as you want, without needing to obtain permission (the license expressly gives you permission to do this). This newer version of the license ensures your freedoms the same way the old version did, but adapted to a newer age of technology.

Developer

In many ways, this change does not affect people contributing to OpenLP either. From today onward, however, your contributions to OpenLP will be covered by version 3 (or higher) of the GNU GPL.

Do I need to do anything?

No, this is just a change to how we the developers are licensing OpenLP. You don't need to do anything.

Why the change?

Version 2 of the GPL was sufficient for many years, but many of the libraries and projects that OpenLP uses have moved forward, not only in code but also in licenses. With this in mind, OpenLP had to change our license to be compliant with the licenses of the libaries and project we use.

Getting closer to OpenLP 3.0

It has been almost 2 years since the release of 2.4.6 and understandably we are getting a lot of questions as to when the next release will be ready. The answer is always the same: "When it is ready". So what does "ready" mean? Currently there are 2 major features that we need to finish before we feel we can begin the release process:

  • The new renderer engine.
  • The new VLC based mediaplayer framework.

Once these are in place we will release the first Alpha (2.9.1) and then work from there towards the final release of 3.0.

So how far are these features from being complete?

The new rendering engine is fairly close to being complete, but we need to make sure we have all standard use cases (songs, image, etc.) working correctly.

The new mediaplayer framework still needs some work. All the hard ground work has been done (i.e. playing videos works), so it is now more a question of connecting the different parts of the code to make everything work correctly and ironing out the bugs that have crept in.

But why is it taking so long?

The thing is that it requires time to do development, and as volunteers, time is a scarce resource when you have full-time jobs and families. In fact, within the last year, 3 of the 4 core developers have been blessed with babies, which means even less time for OpenLP development.

Another reason for the long wait is that we might have been a bit too ambitious with this release. The thing is that when you start adding code to introduce new major features you often see that the "old way" of doing things is not optimal for the new features and therefore you want to change the old code to better support the new code. Sometimes this can lead to using time rewriting code that strictly speaking does not need rewriting, thereby "stealing" time from new features. So while the end result is a lot better, it also means longer development time.

License change

A few months ago we were made aware that OpenLP's current license is not compatible with the licenses of some of the libraries that OpenLP uses. For instance, PyQt5 is under the GPLv3 license, which is incompatiable with OpenLPs GPLv2. To resolve this we are planning to relicense OpenLP under the GPLv3 license. To do this we have contacted all of the known contributors to OpenLP to get their permission to relicense. So far it has been a success, even though it is a slow process. Not everybody has replied yet, so if you have contributed in the past but have not been contacted about this, please contact us.

Other news

Around the time of the upcoming release we will also migrate the OpenLP bug tracker and source code from Launchpad.net to GitLab. This also means migrating from bzr to git.

Shutting Down the Support System

Due to a lack of resources within the OpenLP team we have decided to close down the e-mail support system (not to be mistaken for the forums which will not be affected).

For some time now a single person has answered almost all the support requests the support system has received. And since that person is also one of the most active developers of OpenLP, it has drawn a lot of time away from actual development. In order to free up more time for development the only solution was to close down the support system.

We are really sad to do this, as we feel our support is one of the defining parts of OpenLP, but since we need to move OpenLP forward we do not believe we have any other choice - though it was not an easy decision.

In future anyone who e-mails support@openlp.org will get a message that redirects them to the manual and the forums.

[ Image Credit: Closed by Rob Brewer ]

Looking for an Icon Designer

Many years ago, when OpenLP was first released, computer screens with millions of colours were very new, and most people had what are tiny screens by today's standards. I remember getting my first 17" monitor, and it was positively HUGE - it could even show 1024 by 768 pixels (a pixel is a single dot on your screen). Wow!

In those days, most icons were 16 by 16 pixels because if they were any bigger, they'd get in the way of the rest of the user interface. And so we created static icons that were stuck at 16 by 16 pixels. Time moves on, but sadly without a designer, OpenLP was unable to move on too, and now we're stuck with tiny icons and 4K screens.

If you're a designer and you'd like to contribute to OpenLP, now's your chance! We really need a refreshed icon set, one that can scale with the monitor sizes of today. You'll need to have working knowledge of Inkscape (or be willing to learn how to use it), and the time available to design about 150 icons (or less, if we have a number of designers who work together).

You can get into contact with us via IRC, the forums or info [at] openlp.org.

[ Image Credit: Drawing opals by Mauro Cateb ]

Making the Web Site Translation Friendly

Over the years, we have tried to have a multi-lingual website. Unfortunately each time has ended up with the same scenario:

  1. User gets excited
  2. User joins the translation team
  3. User translates 50% to 80% of the website
  4. User forgets about translation
  5. Translation is no longer maintained, and we get requests to fix a language we don't speak

If you've ever wondered why our manual is only in English, this is why.

Earlier this year, however, after some more requests by users to be able to translate the website, we looked at a new feature from online translation site Transifex.com called Live Translation. Essentially this allows you to translate your website without the need for much maintenance. So we decided to silently roll out a beta phase of a translatable website.

We're quite pleased with the result so far. We've had a number of people translate the website, and most of those translations have stuck to 100% completion. We also don't publish a translation until it is 100% complete. This helps us to keep a website that looks great no matter which language it is being displayed in.

Along the way, however, there have been a couple of hitches. One of them is that there was a lot of HTML in the strings that needed to be translated. We have gone through the website and tried to address this as much as possible. There are still some HTML tags here and there, but more complicated stuff like links and icons have been removed, which should make translating the site much easier.

Unfortunately this does have the side effect that a lot of the strings that were already translated will now have to be translated again, but we trust you will bear with us while those folks who have volunteered to translate the site bring it back up to 100% translated.

Would you like to be involved in this project? Just sign up on Transifex.com, and join the website project.

As a side note, the blog has been puposefully kept untranslated.

[ Image Credit: Whisky Zulu by Dennis van Zuijlekom ]

Progress on OpenLP 2.5

This blog post is written by Phill Ridout, one of our developers.

Like many other open source projects, OpenLP uses even version numbers to denote a stable release, and odd version numbers to denote an unstable (or development) release.

Currently we're in the process of working on OpenLP 2.5, which is the current unreleased and unstable version. We're still not in a position to make a new release, but I thought I'd write this blog post to assure you that lots of work is being done behind the scenes.

So what have we been working on?

New features:

  • Support for chords in songs
  • Support for bibles from the SWORD Project
  • Support for ProPresenter 5 song import
  • Support for EasyWorship 6 song import
  • Upgrade the network projector controller to support the PJLink 2 protocol (in addition to PJLink 1)
  • Video backgrounds to songs, Bible verses and custom slides (depending on your platform)
  • Video timing display so you can see the time left for a media item
  • The splitting of the Web Inferface from the core code allowing faster updates and user defined variations
  • A new dark theme for Windows and macOS (see Advanced Settings)

Behind the scenes:

  • A new renderer and display based on Reveal.js, which should allow us and you to do a lot more in the long term
  • A new RESTful API for better remote control and potential integration from other apps
  • The migration to a new web interface framework allowing easier integration for new funtions
  • The change to save themes in JSON instead of XML
  • Change to the way file paths are represented internally in OpenLP to make interoperability between different operating systems better. This will help with things like transferring service files between different computers.
  • A whole lot of bugs fixed

So while we might seem to be quiet, the real reason is because we're trying to get everything ready for another feature-packed release.

Last, but not least, we've decided to make the next release version 3.0 due to the large number of new features and changes.

[ Image Credit: Waiting by Solmaz Zohdi ]

More Ways to Donate & Debian Updated

Over the last few years since we started accepting donations we're received a couple of enquiries from people looking to be able to donate via credit card or Bitcoin, and without needing a PayPal account. We're pleased to announce that you can now donate to OpenLP in Bitcoin or with a debit or credit card.

Just head on over to the donate page which now has options for Bitcoin and debit/credit card too. Debit/credit card payments are powered by Stripe. As always, if you run into any issues please let us know.

In other news, we've recently updated OpenLP in Debian Linux. For a while we were unable to update the package because of preparation for the Debian 9 release. Now that Debian 9 has been released, we're able to update the OpenLP package again. OpenLP should come through with your regular updates.

[ Image Credit: Credit Cards and Cash by Sean MacEntree ]

Fix All The Bugs! OpenLP 2.4.6

Due to some differences between the various platforms we support, and some bug fixes for some of those platforms, OpenLP 2.4.5 unfortunately introduced some bugs. Thankfully they were easy enough to pick up, and easy enough to fix.

In this bugfix release we also fixed a problem where the OpenLP database importer was dropping the author type, and a problem with some of the core translations not being loaded.

Here is the complete list of bugs we fixed:

  • Fixed a bug where the author type upgrade was being ignored because it was looking at the wrong table
  • Fixed a bug where the songs_songbooks table was not being created because the if expression was the wrong way round
  • Changed the songs_songbooks migration SQL slightly to take into account a bug that has (hopefully) been fixed
  • Sometimes the timer goes off as OpenLP is shutting down, and the application has already been deleted
  • Fixed opening the data folder (KDE thought the old way was an SMB share)
  • Fixed a problem with the new QMediaPlayer not controlling the playlist anymore
  • Added importing of author types to the OpenLP 2 song importer
  • Fixed a problem with loading Qt's translation files
  • Disabled the controls in the shortcut dialog unless a shortcut is actually selected

Go to the downloads section on our home page to download the latest version of OpenLP.

"The Lord is my portion," says my soul, "therefore I will hope in him."

Lamentations 3:24 (ESV)

[ Image Credit: Overdrive repair 3 by Chris Ainsworth ]

Windows and SSL

Recently we've had a lot of posts on the forums, messages on our Facebook page and e-mails in our support system from users with the same problem: they are on Windows and they can't complete the First Time Wizard. A few folks have also mentioned being unable to log into the CCLI SongSelect importer. The error message usually looks something like this:

Traceback (most recent call last):
  File "urllib\request.py", line 1183, in do_open
  File "http\client.py", line 1137, in request
  File "http\client.py", line 1182, in _send_request
  File "http\client.py", line 1133, in endheaders
  File "http\client.py", line 963, in _send_output
  File "http\client.py", line 898, in send
  File "http\client.py", line 1287, in connect
  File "ssl.py", line 362, in wrap_socket
  File "ssl.py", line 580, in __init__
  File "ssl.py", line 807, in do_handshake
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "openlp\plugins\songs\lib\songselect.py", line 87, in login
  File "urllib\request.py", line 464, in open
  File "urllib\request.py", line 482, in _open
  File "urllib\request.py", line 442, in _call_chain
  File "urllib\request.py", line 1226, in https_open
  File "urllib\request.py", line 1185, in do_open
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)>

Thanks to help from some folks on the forums, we've been able to narrow down exactly what the problem is, and unfortunately it is something that we don't have control over. Having said that, there is a way you can get around it.

Make sure you are running the latest version of OpenLP.
At the time of writing this is version 2.4.5. If you ask for help and you're not running the latest version, we'll tell you to upgrade before helping you.

If you're running into this problem while running the First Time Wizard, you need to open up Internet Explorer (yes, it must be Internet Explorer) and visit https://get.openlp.org/. This forces Windows to download a file that OpenLP needs. Once you've opened up the web page, you can close it and go back to OpenLP and retry the First Time Wizard.

If you're running into the problem where you can't seem to log in to the SongSelect importer, you need to open up Internet Explorer and visit SongSelect. Again, this forces Windows to download a file that OpenLP needs, and you can go back to the SongSelect importer.

The OpenLP team is currently discussing what we can do about this situation. It's clearly not our fault, but we will have to figure out a way to fix it anyway because most people will not be aware of this and think that OpenLP is broken.

If you're not interested in an explanation of the root cause of the problem, you can stop reading now and follow the instructions above. If you're interested in all the gory technical details, continue reading...

Technical Explanation

OpenLP, like many other websites, uses a technology called SSL to make sure all communications between your browser and the website you're visiting is secure and can't be spyed on. This is really useful for things like login screens where you need to type in your password. These days more and more websites are using SSL for everything, not just logging in, because they care about your privacy. OpenLP itself uses SSL for connecting to our download servers and to CCLI's SongSelect service.

In order to use SSL, all computers have a set of "master" or "root" certificates, which helps your computer to verify that the websites you are visiting are actually secure and who they say they are. Since Windows Vista, however, Microsoft has not shipped all the root certificates with Windows. Windows only includes Microsoft's certificates, and Windows has to call the Microsoft servers to download the root certificates it needs.

OpenLP is written in Python, and the methods used in Python on Windows currently don't hook into Windows' certificate download system. This means that whenever OpenLP tries to contact a website that Windows has never contacted before, OpenLP and Python are unable to verify the websites OpenLP is trying to contact. By using Internet Explorer to visit these websites, you force Windows to download the root certificates.

You might be wondering why you have to use Internet Explorer, and why you can't use another browser like Chrome or Firefox. Both Chrome and Firefox actually come with their own full bundles of root certificates, and so they ignore Windows completely. Because they ignore Windows, they never trigger the download process and OpenLP can't verify the websites you've already visited in those browsers.

For more information, take a look at the bug report in Python's bug tracker.

[ Image Credit: Plios windows 09 by Michael Clarke ]

A Few More Bugs Fixed: OpenLP 2.4.5

We're happy to announce another bugfix release of OpenLP 2.4, version 2.4.5.

Bugs we've fixed in OpenLP 2.4.5

  • #1645867: Spinners in Theme Wizard segfault on OS X
  • #1655988: Formatting tags gets included in searchable lyric text
  • #1652851: VideoPsalm import fails due to unexpected format
  • #1660473: OSZL is ignored on save (inconsistent gui)
  • #1661416: Initial "extract song usage data" produces a traceback
  • #1487788: Importing photos does not give focus to OpenLP
  • #1512040: Loop tooltip gets stuck to "Stop playing..."
  • #1530597: Importing Songbeamer songs using latin1 encoding doesn't get decoded correctly
  • #1532193: Typos in songusageplugin.py
  • #1605009: Web remote does not work with newer versions of jQuery
  • #1624661: Missing DB in unmounted disk results in Traceback
  • #1655985: EasySlide importer gets the verse order wrong

Known Issues

Users on platforms that use Python 3.6, might experience tracebacks on exit. This will only affect developers and Linux users on bleeding edge distributions like ArchLinux. These tracebacks can safely be ignored, they should not negatively affect your use of OpenLP. If you do experience problems, please visit the forums or e-mail the support team.

But I will sing of your strength;

I will sing aloud of your steadfast love in the morning.

For you have been to me a fortress

and a refuge in the day of my distress.

Psalm 59:16 ESV

[ Image Credit: Sabino Canyon by Ken Bosma ]