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

Re: lilypond and python



On Tue, Jul 18, 2006, Thomas Bushnell BSG wrote:
> So, let me make plain: I am entirely happy to accept a workaround
> patch for lilypond's current upstream stable release that will make it
> build and use python 2.4 even when that is not installed as "python".
> If such a functional patch appears and is mailed to the appropriate
> lilypond bug, it would immediately become a high priority matter for
> me to upload it.  I have wanted to do so for months.

 Here's a patch (which I couldn't test, see below).

 Please note that while writing this patch, I saw that:
 - "make install" is called with prefix=debian/tmp/..., this is usually
   wrong, DESTDIR= should be used instead because prefix is a runtime
   path;  this can cause important bugs such as #337616
 - you don't call dh_python; dh_python will typically create
   ${python:Depends} which will have "python2.4" if your scripts start
   with /usr/bin/python2.4
 - your package is not bin NMU safe due to = source-version dependencies
   on an arch: all package
 - your package fails to build in my pbuilder:
rm -f ./out/accidental-placement.dep; DEPENDENCIES_OUTPUT="./out/accidental-placement.dep ./out/accidental-placement.o" g++ -c   -DHAVE_CONFIG_H  -DNDEBUG -DSTRING_UTILS_INLINED -Iinclude -I./out -I../flower/include -I../flower/./out -I../flower/include -DNDEBUG -I/usr/include/python2.3  -O2 -finline-functions -g -pipe  -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -I/usr/include/freetype2       -DNDEBUG -I/usr/include/python2.3  -O2 -finline-functions -g -pipe  -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -I/usr/include/freetype2   -W -Wall -Wconversion  -o out/accidental-placement.o accidental-placement.cc
include/accidental-interface.hh:24: error: extra qualification 'Accidental_interface::' on member 'accurate_boxes'
make[2]: *** [out/accidental-placement.o] Error 1
make[2]: Leaving directory `/tmp/buildd/lilypond-2.6.3/lily'

 This is all *very* broken.

 Beside, the configure script uses:
    STEPMAKE_PYTHON(REQUIRED, 2.1)
 which either means that you don't really need python 2.4, or that the
 configure test is broken.

-- 
Loïc Minier <lool@dooz.org>
--- lilypond-2.6.3/debian/changelog
+++ lilypond-2.6.3/debian/changelog
@@ -1,3 +1,14 @@
+lilypond (2.6.3-11) UNRELEASED; urgency=low
+
+  * Call configure and $(MAKE) with PYTHON=/usr/bin/python2.4 by exporting
+    PYTHON from debian/rules.
+  * Update build-deps and deps to use python2.4 instead of the default python
+    version.
+  * Fix the shebang of scripts in /usr/bin to use /usr/bin/python2.4 instead
+    of /usr/bin/python.
+
+ -- Loic Minier <lool@dooz.org>  Fri, 21 Jul 2006 16:07:50 +0200
+
 lilypond (2.6.3-10) unstable; urgency=low
 
   * debian/control (Build-Depends): Drop explicit dependency on
--- lilypond-2.6.3/debian/control
+++ lilypond-2.6.3/debian/control
@@ -1,5 +1,5 @@
 Source: lilypond
-Build-Depends: debhelper (>= 4.0.0), python-dev, guile-1.6-dev (>= 1.6.7), flex (>= 2.5.4a-14) | flex-old, bison (<< 1:1.50) | bison (>> 1:1.75-1), texinfo (>= 4.6-1), groff, m4, gettext (>= 0.10.36-1), mftrace (>= 1.1.17-1), fontforge (>= 0.0.20050911-1), pkg-config (>= 0.9.0), libfreetype6-dev, libpango1.0-dev, libfontconfig-dev
+Build-Depends: debhelper (>= 4.0.0), python2.4-dev, guile-1.6-dev (>= 1.6.7), flex (>= 2.5.4a-14) | flex-old, bison (<< 1:1.50) | bison (>> 1:1.75-1), texinfo (>= 4.6-1), groff, m4, gettext (>= 0.10.36-1), mftrace (>= 1.1.17-1), fontforge (>= 0.0.20050911-1), pkg-config (>= 0.9.0), libfreetype6-dev, libpango1.0-dev, libfontconfig-dev
 Build-Depends-Indep: gs-gpl (>= 8.01-5) | gs-esp | gs (<= 7.07-1), netpbm (>= 2:9.10-1), imagemagick, emacs-intl-fonts, xfonts-intl-arabic, xfonts-intl-asian, xfonts-intl-chinese, xfonts-intl-chinese-big, xfonts-intl-european, xfonts-intl-japanese, xfonts-intl-japanese-big, xfonts-intl-phonetic, ttf-kochi-gothic, ttf-kochi-mincho
 Build-Conflicts-Indep: gs-afpl | gs-gpl (= 8.01-1), gs-gpl (= 8.01-2), gs-gpl (= 8.01-3), gs-gpl (= 8.01-4) 
 Section: tex
@@ -11,7 +11,7 @@
 Architecture: any
 Replaces: lilypond1.3
 Provides: lilypond1.3
-Depends: ${shlibs:Depends}, python, guile-1.6 (>= 1.6.7), ${misc:Depends}, lilypond-data (= ${Source-Version})
+Depends: ${shlibs:Depends}, python2.4, guile-1.6 (>= 1.6.7), ${misc:Depends}, lilypond-data (= ${Source-Version})
 Recommends: lilypond-doc
 Description: A program for typesetting sheet music
  LilyPond is a music typesetter, an automated engraving system.  It
--- lilypond-2.6.3/debian/rules
+++ lilypond-2.6.3/debian/rules
@@ -37,6 +37,8 @@
 # This has to be exported to make some magic below work.
 export DH_OPTIONS
 
+export PYTHON=/usr/bin/python2.4
+
 build: build-stamp
 build-stamp:
 	dh_testdir
@@ -90,6 +92,15 @@
 	# Add here commands to install the package into debian/tmp.
 	$(MAKE) install prefix=$(CURDIR)/debian/tmp/usr
 
+	# force Python runtime in shebang
+	sed -i '1s,#!.*python[^ ]*.*,#!/usr/bin/python2.4,' \
+		debian/tmp/usr/bin/convert-ly \
+		debian/tmp/usr/bin/lilypond-book \
+		debian/tmp/usr/bin/abc2ly \
+		debian/tmp/usr/bin/etf2ly \
+		debian/tmp/usr/bin/mup2ly \
+		debian/tmp/usr/bin/midi2ly
+
 	# Remove a file that we get from other debian packages.
 	rm $(CURDIR)/debian/tmp/usr/share/lilypond/$(VERSION)/tex/texinfo.tex
 

Reply to: