lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

a new way to build LilyPond binary releases


From: Jonas Hahnfeld
Subject: a new way to build LilyPond binary releases
Date: Wed, 11 Mar 2020 16:56:05 +0100
User-agent: Evolution 3.34.4

We got to this topic a few times now, so here's a proper thread about
it. As the title suggests, I've been working on a new way to build
redistributable LilyPond binaries. Right now we are using GUB for this
task (see CG and https://github.com/gperciva/gub).
This is _not_ (yet) a proposal to switch over, but rather my ideas
about a possible replacement. So take this as a request for feedback
and testing as well as general discussion.

I'm hosting a repository at 
https://github.com/hahnjo/lilypond-binaries/, here's the first part of
the README:
---
This repository contains a number of scripts to build and package
binary distributions of LilyPond. The basic idea is to build static
libraries and only depend on very basic dynamic libraries (such as
`libc`). As a result, the binaries are forward-compatible and can be
run on newer releases of the OS.

To make things concrete: A binary from CentOS 7 can be executed on
newer GNU/Linux distributions. This includes CentOS 8 and currently
supported releases of Debian, Ubuntu, and likely others. The same holds
for binaries compiled on FreeBSD 11: They run fine on the current
FreeBSD 12.

All of the above is implemented via portable (POSIX) shell scripts. The
advantage is that there is no need for a more complex language like
Python. Still, the approach currently works for GNU/Linux and FreeBSD
and can likely be adapted for macOS.
---
(read the full contents for more details and usage instructions)

For the scripts, I'm intentionally using tarballs as a source for
LilyPond. In comparison with git, this has two advantages IMO:
1) It's a self-contained file, not a tuple of git url and branch that
the script needs to figure out how to update.
2) 'make dist' automatically puts configure into the archive, so the
build scripts are agnostic of how it is actually generated.

I've built current master for you to get an impression: 
https://github.com/hahnjo/lilypond-binaries/releases/tag/2020-03-11
It is using Guile 2.2 because I couldn't get Guile 1.8 to work on 64bit
mingw. This implies a few known problems such as increased starting
time when parsing the .scm files (around 3 seconds). Also there's no
way yet to associate the .ly extension with LilyPond on Windows. I hope
this could be implemented via a PowerShell script added to the zip
archive, without a "real" installer.

Please let me know if something doesn't work at all, but keep above
limitations in mind. In particular, this is from master and not a
tagged release, so it may contain new issues and I'd consider it
"unstable" in general.

Jonas

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]