view web/lilypond.html @ 5477:ed376a2b448d

imagemagick: replace perl-extutils-makemaker dependency by plain perl. Apparently, this extension is now part of perl. Weird.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Wed, 19 Aug 2009 10:26:58 +0200
parents 7b4a00b06c3a
children a51e05c3cc17
line wrap: on
line source

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
    <!-- link rel="stylesheet" type="text/css" href="blog.css" !-->
    <title>GUB -- LilyPond</title>
  </head>
  <body>
<h1>GUB -- LilyPond</h1>

<h2>INSTALLING</h2>

Get GUB
<pre>
    git clone git://github.com/janneke/gub.git
or
    wget http://github.com/janneke/gub/tarball/master
</pre>

In addition to the requirements for GUB, you need

<ul>
    <li>A TeX installation</li>
    <li>A subversion client</li>
</ul>

<h3>Optional: Prepare build environment</h3>

<pre>
  make -f lilypond.make bootstrap
</pre>

<h3>Build everything</h3>

<pre>
  make lilypond
</pre>

this leaves installers and documentation in

<pre>
  uploads/lilypond-VERSION-RELEASE.darwin-ppc.tar.bz2
  uploads/lilypond-VERSION-RELEASE.darwin-x86.tar.bz2
  uploads/lilypond-VERSION-RELEASE.freebsd-64.shar.sh
  uploads/lilypond-VERSION-RELEASE.freebsd-x86.shar.sh
  uploads/lilypond-VERSION-RELEASE.linux-64.shar.sh
  uploads/lilypond-VERSION-RELEASE.linux-ppc.shar.sh
  uploads/lilypond-VERSION-RELEASE.linux-x86.shar.sh
  uploads/lilypond-VERSION-RELEASE.mingw.exe

  uploads/lilypond-VERSION-RELEASE.documentation.tar.bz2
  uploads/lilypond-VERSION-RELEASE.webdoc.tar.bz2
  uploads/webdoc/VERSION

  uploads/lilypond-VERSION-RELEASE.test-output.tar.bz2
  uploads/wbtest/VERSION
</pre>

<h3>More examples</h3>

<pre>
  * Make a LilyPond installer for your platform

      bin/gub lilypond-installer

    OR (old style)

      bin/gub lilypond  # package with dependencies
      bin/gib --branch=lilypond=git.sv.gnu.org--lilypond.git-master lilypond #installer

  * Build all LilyPond installers

      make lilypond
 
    this leaves installers for GNU/Linux (x86, x86_64, powerpc),
    Windows, MacOSX (x86 and powerpc), FreeBSD (x86, x86_64) and
    documentation in uploads/
</pre>

<h2>TESTING</h2>

The test-lily directory contains scripts for running various
tests. Run without arguments for instructions

<pre>
  cron-builder.py - entry point from continuous crontab testing
  test-binary.py  - test binary builds
  with-lock.py    - run a command with a lockfile
  rsync-lily-doc.py
                  - prepare documentation for upload
  dist-check.py   - check tarball for anomalies
  cygwin-packager.py
                  - repackage GUB packages into Cygwin tarballs.
</pre>

<h2>CRON USAGE</h2>

I have the following in my crontab

<ul>

<li>
  Hourly build of LilyPond subpackage for all platforms except native
  (native is darwin-pcc?)
</li>
<pre>
test-lily/cron-builder.py --package\
  --test-options "--to lilypond-cvs@gnu.org --quiet --from hanwen@lilypond.org
                  --smtp smtp.xs4all.nl --repository downloads/lilypond.git"\
  darwin-x86 freebsd-x86 freebsd-64 mingw linux-x86 linux-64
</pre>

</li>
<li>
  Hourly build of native installer, to run documentation and dist check.
  
<pre>
test-lily/cron-builder.py\
  --package --installer --tarball --docs\
  --test-options "--to lilypond-cvs@gnu.org --dependent --quiet\
                  --from hanwen@lilypond.org --smtp smtp.xs4all.nl --repository downloads/lilypond.git"\
  --unversioned\
  darwin-ppc
</pre>

</li>
<li>
  Nightly build of all installers, to be ready for shipping binaries
  in the morning.
  
<pre>
test-lily/cron-builder.py\
  --installer\
  --test-options "--to lilypond-cvs@gnu.org --quiet --from hanwen@lilypond.org\
                  --smtp smtp.xs4all.nl --repository downloads/lilypond.git"\
  darwin-x86 freebsd-x86 freebsd-64 mingw linux-x86 linux-64 darwin-ppc
</pre>
</li>
</ul>

</div>
</body>
</html>