[PD] pd-gui.tcl not found

Willy WOLFF willy.wolff at etu.unistra.fr
Wed Jul 31 17:37:24 CEST 2013


I have some difficulties to compile Pd-extended-0.43.4
I woold like to write an ebuild for GNU/Gentoo Linux for pd-overlay.

First, i try to compile by hand:

cd pd-extended/pd
./autogen.sh
./configure --enable-jack --prefix=`pwd`/../../install
make
make install

no error in compilation
but when I
cd ../../install/bin
./pd

I have this error:

willy at music-linux-desktop ~/install/bin $ ./pd
disabling real-time priority due to missing pd-watchdog (/home/willy/install/bin/../bin/pd-watchdog)
Error in startup script: couldn't read file "/home/willy/install/bin/../tcl//pd-gui.tcl": no such file or directory


I found a patch for solve this problem (for 0.43.0) at http://sourceforge.net/p/pure-data/patches/380/

application of the first patch make some Hunk failed:

willy at music-linux-desktop ~/pd-extended/pd $ patch < ../../0001-fix-install-targets-add-enable-unix-layout-and-insta.patch
patching file Makefile.am
Hunk #2 FAILED at 50.
1 out of 2 hunks FAILED -- saving rejects to file Makefile.am.rej
patching file configure.ac
Hunk #2 succeeded at 78 (offset -4 lines).
patching file Makefile.am
Hunk #1 FAILED at 5.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
patching file Makefile.am
Hunk #1 FAILED at 20.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
patching file Makefile.am
Hunk #1 FAILED at 12.
Hunk #2 FAILED at 94.
Hunk #3 FAILED at 109.
Hunk #4 FAILED at 122.
Hunk #5 FAILED at 130.
5 out of 5 hunks FAILED -- saving rejects to file Makefile.am.rej
patching file pd-gui
patching file Makefile.am
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej



So, I try to write new patch for pd 0.43.4
When I do this, I see that "a/extra/Makefile.am" does not exist anymore.

For doing the patch:
diff -Naur pd_original pd_modified > pd-extended_0.43.4-fix-install-targets.patch

And for apply after:
willy at music-linux-desktop ~/pd-extended/pd $ patch -p1 < ../../pd-extended_0.43.4-fix-install-targets.patch
patching file Makefile.am
patching file configure.ac
patching file po/Makefile.am
patching file src/Makefile.am
patching file src/pd-gui
patching file tcl/Makefile.am


Finally we configure with:
./configure --enable-jack --enable-unix-layout --prefix=`pwd`/../../install


But I still have the same problem:

willy at music-linux-desktop ~/install/bin $ ./pd
disabling real-time priority due to missing pd-watchdog (/home/willy/install/bin/../bin/pd-watchdog)
Error in startup script: couldn't read file "/home/willy/install/bin/../tcl//pd-gui.tcl": no such file or directory






Did I forget something??



The patch
----------
diff -Naur pd_original/Makefile.am pd_modified/Makefile.am
--- pd_original/Makefile.am	2013-01-19 21:02:04.000000000 +0100
+++ pd_modified/Makefile.am	2013-07-31 16:10:20.582094468 +0200
@@ -2,7 +2,7 @@
 ACLOCAL_AMFLAGS =  -I m4/generated -I m4

 CFLAGS += @DEFS@
-EXTRA_SUBDIRS =
+EXTRA_SUBDIRS =

 # pkg-config support
 pkgconfigdir = $(libdir)/pkgconfig
@@ -29,15 +29,12 @@
 # subdirs that are always included in the dist, etc.
 DIST_SUBDIRS = asio man po portaudio portmidi src tcl

-BUILT_SOURCES =
+BUILT_SOURCES =
 if MSGFMT
 BUILT_SOURCES += locales
 endif

-## FIXXXME
-## $(pkglibdir) is used throughout the other Makefile.amS
-##       simply ignoring the special case for other OSs...
-if LINUX
+if UNIX_LAYOUT
 libpddir = $(pkglibdir)
 else
 libpddir = $(prefix)
@@ -54,6 +51,11 @@
 	$(INSTALL) -d $(DESTDIR)$(libpddir)/extra
 	$(INSTALL_DATA) extra/output~.pd extra/output~-help.pd $(DESTDIR)$(libpddir)/extra
 	$(INSTALL) -d $(DESTDIR)$(libpddir)/startup
+if UNIX_LAYOUT
+# so pd-gui.tcl can find ../bin/pd and pd can find pd-watchdog
+	$(INSTALL) -d $(DESTDIR)$(pkglibdir)
+	$(LN_S) $(prefix)/bin $(DESTDIR)$(pkglibdir)/bin
+endif

 # this is at the end because its loooong
 # these files go into libpddir defined above
diff -Naur pd_original/configure.ac pd_modified/configure.ac
--- pd_original/configure.ac	2013-01-19 21:02:04.000000000 +0100
+++ pd_modified/configure.ac	2013-07-31 16:11:50.228098604 +0200
@@ -45,6 +45,10 @@
 	EXTERNAL_CFLAGS="-fPIC"
 	EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"
 	EXTERNAL_EXTENSION=pd_linux
+	# on GNU/Linux use the complicated, UNIX-style install by default
+	if test -z $unix_layout; then
+		unix_layout=yes
+	fi
 	;;
 *mingw*)
 	WINDOWS=yes
@@ -74,6 +78,12 @@
  LDFLAGS="${LDFLAGS} ${ARCH_LDFLAGS}"
 fi

+AC_ARG_ENABLE([unix_layout],
+		[AS_HELP_STRING([--enable-unix-layout],
+			[use the "complicated", UNIX-style directory layout for installing the build products using 'make install'])],
+    	[unix_layout=$enableval])
+AM_CONDITIONAL(UNIX_LAYOUT, test x$unix_layout = xyes)
+
 AM_CONDITIONAL(ANDROID, test x$ANDROID = xyes)
 AM_CONDITIONAL(IPHONEOS, test x$IPHONEOS = xyes)
 AM_CONDITIONAL(LINUX, test x$LINUX = xyes)
@@ -121,7 +131,7 @@

 AC_HEADER_STDC

-dnl Cygwin has sys/soundcard.h but Pd isn't ready for Cygwin since it only
+dnl Cygwin has sys/soundcard.h but Pd isn't ready for Cygwin since it only
 dnl includes OSS for UNIX
 AC_CHECK_HEADER(sys/soundcard.h, [oss=yes], [oss=no])
 AM_CONDITIONAL(OSS, test x$oss = xyes)
@@ -189,7 +199,7 @@
 AC_ARG_ENABLE([portaudio],
 		[AS_HELP_STRING([--disable-portaudio],
 			[do not use portaudio])],
-    	[portaudio=$enableval])
+    	[portaudio=$enableval])
 AM_CONDITIONAL(PORTAUDIO, test x$portaudio = xyes)

 dnl portmidi
@@ -260,7 +270,5 @@
 AS_IF([test x$windows = xyes], [
     AS_IF([test x$asio = xno], [
 	    AC_MSG_RESULT(
-ASIO SDK not found! You need to download asiosdk2.2.zip from:
+ASIO SDK not found! You need to download asiosdk2.2.zip from:
     http://www.steinberg.net/en/company/developer.html)])])
-
-
diff -Naur pd_original/po/Makefile.am pd_modified/po/Makefile.am
--- pd_original/po/Makefile.am	2013-01-19 21:02:04.000000000 +0100
+++ pd_modified/po/Makefile.am	2013-07-31 16:15:08.639107759 +0200
@@ -12,14 +12,19 @@

 FILES = $(addprefix ../tcl/, $(TCLFILES)) iemgui_dynamic_strings.tcl pd_dynamic_strings.tcl

-# these are the supported languages,
+# these are the supported languages,
 ALL_LINGUAS = af az be bg ca cs da de el en_ca en_gb es es_mx eu fr gd gu he hi hu it ja ko lt lv nl pa pt pt_pt ru sk sq sv tr vi zh_cn zh_tw
 POFILES = $(ALL_LINGUAS:=.po)
 MSGFILES = $(ALL_LINGUAS:=.msg)

 TEMPLATE = template.pot

+if UNIX_LAYOUT
 libpdpodir = $(pkglibdir)/po
+else
+libpdpodir = $(prefix)/po
+endif
+
 libpdpo_DATA = $(MSGFILES)
 dist_libpdpo_DATA =

diff -Naur pd_original/src/Makefile.am pd_modified/src/Makefile.am
--- pd_original/src/Makefile.am	2013-01-19 21:02:00.000000000 +0100
+++ pd_modified/src/Makefile.am	2013-07-31 16:17:11.017113405 +0200
@@ -3,19 +3,20 @@
 pd_CFLAGS = -DPD -DINSTALL_PREFIX=\"$(prefix)\"
 pd_LDFLAGS =

-pdsend_CFLAGS =
-pdreceive_CFLAGS =
-pd_watchdog_CFLAGS =
-LIBS =
+pdsend_CFLAGS =
+pdreceive_CFLAGS =
+pd_watchdog_CFLAGS =
+LIBS =
 INCLUDES = @INCLUDES@

 SUFFIXES = . at EXTENSION@ . at SHARED_LIB@

 bin_PROGRAMS = pd pdsend pdreceive
+bin_SCRIPTS = pd-gui
 pdsend_SOURCES = u_pdsend.c
 pdreceive_SOURCES = u_pdreceive.c
 pd_watchdog_SOURCES = s_watchdog.c
-pd_LDADD =
+pd_LDADD =
 pd_SOURCES = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c \
 	g_io.c g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \
     g_all_guis.c \
@@ -101,7 +102,6 @@
 pd_SOURCES += s_midi_pm.c
 endif

-
 # FIXXXME
 # GNU/HURD, IPHONEOS, ... have no MIDI (not even OSS)
 #  i think it would be better to add s_midi_dummy.c only if no other midi API can be found
@@ -115,10 +115,7 @@
 pd_SOURCES += s_midi_dummy.c
 endif

-if LINUX
-libpdbindir = $(pkglibdir)/bin
-libpdbin_DATA =
-libpdbin_PROGRAMS = pd-watchdog pd
+if LINUX
 # this flag has to have a single leading "-" for libtool, even though ld uses
 # --export-dynamic, and libtool sends -Wl,--export-dynamic to ld...
 pd_LDFLAGS += -export-dynamic
@@ -129,7 +126,6 @@
 if MACOSX
 LIBS += -framework Carbon
 pd_CFLAGS += -DMACOSX #kludge, should use auto macro __APPLE__
-bin_SCRIPTS =
 bin_PROGRAMS += pd-watchdog
 endif

@@ -137,7 +133,6 @@
 LIBS += -lwsock32 -lwinmm -lole32
 pd_CFLAGS +=  -DUSEAPI_MMIO -DPD_INTERNAL
 pd_SOURCES += s_audio_mmio.c s_midi_mmio.c scandir.c
-bin_SCRIPTS =
 endif

 if MINGW
diff -Naur pd_original/src/pd-gui pd_modified/src/pd-gui
--- pd_original/src/pd-gui	1970-01-01 01:00:00.000000000 +0100
+++ pd_modified/src/pd-gui	2013-07-31 16:17:39.996114742 +0200
@@ -0,0 +1,4 @@
+#!/bin/sh
+# this script launches Pd by running the GUI first, which then starts pd
+
+`dirname $0`/../lib/pd/tcl/pd-gui.tcl $@
diff -Naur pd_original/tcl/Makefile.am pd_modified/tcl/Makefile.am
--- pd_original/tcl/Makefile.am	2013-01-19 21:01:59.000000000 +0100
+++ pd_modified/tcl/Makefile.am	2013-07-31 16:18:30.255117060 +0200
@@ -2,11 +2,13 @@

 SUFFIXES = .tcl

-bin_SCRIPTS = pd-gui.tcl
-
+if UNIX_LAYOUT
 libpdtcldir = $(pkglibdir)/tcl
+else
+libpdtcldir = $(prefix)/tcl
+endif
+
 dist_libpdtcl_SCRIPTS = pd-gui.tcl
 dist_libpdtcl_DATA = apple_events.tcl dialog_canvas.tcl dialog_gatom.tcl dialog_path.tcl pd_bindings.tcl pd_menus.tcl pdwindow.tcl scrollboxwindow.tcl AppMain.tcl dialog_data.tcl dialog_iemgui.tcl dialog_startup.tcl pd_connect.tcl pdtk_array.tcl pkgIndex.tcl wheredoesthisgo.tcl dialog_array.tcl dialog_find.tcl dialog_message.tcl helpbrowser.tcl makeapp.tcl pdtk_canvas.tcl pkg_mkIndex.tcl dialog_audio.tcl dialog_font.tcl dialog_midi.tcl opt_parser.tcl pd_menucommands.tcl pdtk_text.tcl scrollbox.tcl pd_guiprefs.tcl pd.gif

 ETAGS_ARGS = $(ETAGS) --language=none --regex="/proc[ \t]+\([^ \t]+\)/\1/" *.tcl
-




--
Willy WOLFF



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130731/2d40af31/attachment-0001.htm>


More information about the Pd-list mailing list