Personal tools
You are here: Home documentation developer 64BitLinux
Views

Edit history

Edit: -1 of 1
Time: 2014-05-22 15:55:58
Note: /pd/pd/docs/developer/64BitLinux/vote

changed:
-
= Installing Pd-extended on a 64 bit Linux System =

== Other Logs ==
[http://puredata.info/Members/dmotd/pd-extended-64studio pd-extended-64studio] - 
[BuildingPdExtended64bitUbuntuIntrepid]
== Debian and Friends ==

=== Method 1: Build Pd-extended from the source ===
''So far this is a roughout of the steps one person followed to build on 64 bit ubuntu Hardy. Any Debian-based system should be similar. The resulting build is not fully tested. Please refine these directions as you try your own builds. Hopefully these instructions will converge to a clear foolproof method for building in 64 bit, and this could then be added to a machine in the pd-extended autofarm.''

See [Building-pd-extended-64bit-Ubuntu-Intrepid] for instructions on Ubuntu 8.10 Intrepid Ibex.

=== Resulting .deb binary ===

''built on and for 64 bit ubuntu Hardy''
[http://cratel.wichita.edu/cratel/cratel_Pd_extended_on_bit_64_Debian-based_OS?action=AttachFile&do=get&target=Pd-0.41.0-extended.deb pd-0.41-extended.deb]

=== Building ===

||'''what to do'''||'''why to do it'''||
||[http://puredata.info/downloads download pd-extended tarball]|| ||
||download Pd version >= 0.41.0||arrays don't work right in 64 bit for Pd < 0.41.0||
||build Pd vanilla||Gem needs to find the Pd headers and it is one way to help it find them||
||delete contents in Pd folder and replace with downloaded contents from Pd vanilla 0.41.0||Pd-extended build will now use Pd 0.41.0||
||edit scripts/auto-build/pd-extended-auto-builder and comment out line 48 (rsync) and lines 94-97||In this howto we are hacking up this pd-extended-auto-builder script to build the package. There's probably a better way (what is it?) In any case, apparently this script is for the build farm so it downloads the latest sources (?) and uploads the result? We don't want any downloading or uploading so we comment all of that out.||
||edit a couple of makefiles and change -m32 to -m64||Unfortunately there aren't good notes on which makefiles to edit. When building, you will get errors which refer to a stubs-32.h. Edit whatever makefile is causing the error and change the -m32 flag to -m64. ''(On my svn checkout of the extended 0.40.3 branch (May 2009), the offending makefiles were pd/extra/makefile and pd/extra/expr~/makefile. In HEAD they are corrected. -- jpburstrom)''||
||sudo apt-get install libvorbis-dev libspeex-dev fakeroot libgsl0-dev dssi-dev liblo0-dev freeglut3-dev libimlib2-dev libbz2-dev libtheora-dev libmagick9-dev libfftw3-dev||these were some of library headers that were missing on the target system. Maybe an apt-get build-dep would be better?||
||add -fPIC at beginning of CFLAGS line to: /externals/gem2pdp/makefile.in, /externals/pdp/opengl/Makefile.config, /externals/pdip/Makefile.in, and /externals/miXed/Makefile.common||without this, build breaks, and you will get instructions to do this.||
||download the latest Gem (was 0.91.1 at time of this howto), unpack into the pd-extended source folder, and rename the "gem-0.91.1" folder to "Gem"||build of extended was giving error claiming Gem was missing doc folder. If we are bothering to download the latest doc folder, might as well make sure Gem is the latest version for Pd-extended||
||edit gem2pdp/configure.ac and change lines 32-34 to refer to ../../Gem instead of ../../gem/Gem||gem2pdp wasn't building right because it couldn't find the gem headers.||
||{{{cd scripts/auto-build && ./pd-extended-auto-builder.sh}}}||try to build. When a break builds for a module, try to build that module separately with the ./configure and Makefiles associated with that module. Then try the autobuilder again||

 * eventually the autobuilder script reports that it has successfully built a deb package

==== Installing ====

{{{
dpkg -i packages/linux_make/Pd-0.41.0-extended.deb}}}

==== Problems and Fixes ====

||'''what to do'''||'''why to do it'''||
||apt-get install tcllib||Pd stderr reports: "can't find package base64"||
||???||Pd console reports: "error parsing startup arguments"||

=== Modules broken in 64 bit ===

''This area is for listing modules that worked in 32 bit but don't work in 64 bit.''

=== Questions & Answers ===

||'''Q'''||'''A'''||
||"make clean" for the entire pd-extended package?||cd pure-data/packages/linux_make && make clean||
||how to know which modules did not build correctly that should have?|| ||

=== Method 2: Install Pd-extended 32 bit on a 64 bit system using 32 bit libraries ===
''The following procedure was followed to get 32-bit Pd-extended binary running on a 64 bit ubuntu Hardy machine. Instructions for any Debian-based system should be similar and perhaps added to this wiki page as they are discovered''

'''''note: these directions resulted in a partially-working install, but not fulling working. For example, no video files would load correctly. /usr/lib32/libquicktime1.so.1 is segfaulting.'''''

----
 * install the core 32 bit libraries: {{{sudo apt-get install ia32-libs}}}
 * install getlibs: http://ubuntuforums.org/showthread.php?t=474790
 * download Pd-extended at: http://puredata.info/downloads
 * install Pd-extended: {{{sudo dpkg -i --force-architecture pd-extended-0.XX.deb}}}
 * install the 32 bit libraries needed by Pd-extended: {{{
sudo getlibs -l libtcl8.4.so.0 libdv.so.4 libmpeg.so.1 libmpeg3.so.1 libaviplay-0.7.so.0 \
libquicktime.so.1 libMagick++.so.10 libWand.so.10 liba52-0.7.4.so libtheora.so.0 \
libgslcblas.so.0 libtheora.so.0 libgslcblas.so.0 libvorbis.so.0 libvorbis.so.0 \
libvorbisenc.so.2 libmp3lame.so.0 libImlib2.so.1}}}
  * note: this list of libraries and versions is ''specific to ubuntu Hardy.'' For a different Debian-based distribution, just run Pd, note what library it is complaining it is missing, then add the library with {{{getlibs -l <library name>}}}. You have to do this for each library, one by one.


From hans Wed Mar 18 02:02:50 +0100 2009
From: hans
Date: Wed, 18 Mar 2009 02:02:50 +0100
Subject: downloading
Message-ID: <20090318020250+0100@puredata.info>

It might make more sense to use rsync to download the 0.41.4 pd-extended tree directly.

---

From sl Tue Apr 20 00:14:00 +0200 2010
From: sl
Date: Tue, 20 Apr 2010 00:14:00 +0200
Subject: pd on Fedora 12 x86_64
Message-ID: <20100420001400+0200@puredata.info>

Using the latest pd-0.42-5.src.tar.gz I have successfully built an rpm with 64bit libraries. The simplest method appears to be to use autoconf on the configure.in in the src directory. The pd-gui can be started by typing pd in the console. I have tested the audio connection with jack2 (1.9.4) and the midi with alsamidi - all appears to work although I noted that pd is using a depreciated api to connect to jack.

Here is the rpm spec file I used:

{{{
%define name	pd
%define _maj	0.42
%define _min	5
%define release	2.sl.fc12

Name:		%{name}
Summary:	Real-time patchable audio and multimedia processor
Version:	%{_maj}.%{_min}
Release:	%{release}
License:	BSD, Other
Group:		Applications/Multimedia
Source0:	%{name}-%{_maj}-%{_min}.src.tar.gz
Source1:	%{name}.png
URL:		http://crca.ucsd.edu/~msp/software

BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-buildroot

BuildRequires:	alsa-lib-devel
BuildRequires:	desktop-file-utils
BuildRequires:	dos2unix
BuildRequires:	fftw-devel
BuildRequires:	glibc
BuildRequires:	glibc-devel
BuildRequires:	gcc
BuildRequires:	jack-audio-connection-kit-devel
BuildRequires:	tcl-devel
BuildRequires:	tk-devel
BuildRequires:	xorg-x11-proto-devel

Requires:	alsa-lib
Requires:	glibc
Requires:	jack-audio-connection-kit
Requires:	tcl
Requires:	tk

# it is only a header file ..
Provides:	%{name}-devel

%description
Pd gives you a canvas for patching together modules that analyze,
process, and synthesize sounds, together with a rich palette of
real-time control and I/O possibilities.  Similar to Max (Cycling74)
and JMAX (IRCAM).  A related software package named Gem extends Pd's
capabilities to include graphical rendering.

Authors:
--------
    Miller Puckette

%prep
%setup -q -n %{name}-%{_maj}-%{_min}

pushd src
%__autoconf configure.in
%configure \
	--enable-alsa \
	--enable-jack \
	--enable-portmidi \
	--enable-portaudio \
	--enable-fftw \
	--prefix=%{_libdir}/%{name}

popd

dos2unix     doc/3.audio.examples/qlist2.txt doc/3.audio.examples/qlist.txt doc/7.stuff/soundfile-tools/README.txt
%__chmod 644 doc/3.audio.examples/qlist2.txt doc/3.audio.examples/qlist.txt doc/7.stuff/soundfile-tools/README.txt

%build
pushd src
%__make
popd

%install
rm -rf %{buildroot}
%{__install} -dm 755 %{buildroot}%{_datadir}/pixmaps
%{__install} -dm 755 %{buildroot}%{_datadir}/applications/

pushd src
%__make DESTDIR=%{buildroot} install
popd

# Icon
%{__install} -m 644 %{SOURCE1} \
	%{buildroot}%{_datadir}/pixmaps

# Desktop entry
%__cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF
[Desktop Entry]
Name=%{name}
Comment=%{summary}
Exec=%{_bindir}/%{name}
Icon=%{_datadir}/pixmaps/%{name}.png
Terminal=false
Type=Application
Categories=Audio;
EOF
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc LICENSE.txt README.txt
%{_bindir}/%{name}
%{_bindir}/pdreceive
%{_bindir}/pdsend
%{_includedir}/m_pd.h
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/bin
%dir %{_libdir}/%{name}/doc
%dir %{_libdir}/%{name}/extra
%{_libdir}/%{name}/bin/*
%{_libdir}/%{name}/doc/*
%{_libdir}/%{name}/extra/*
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%{_mandir}/man1/*

%changelog
* Mon Apr 19 2010 Simon Lewis <simon.lewis@slnet.online.de> - 0.42.5-2.sl.fc12
- Corrected bin location
* Mon Apr 19 2010 Simon Lewis <simon.lewis@slnet.online.de> - 0.42.5-1.sl.fc12
- Build 1
}}}



== Building Pd-extended on Fedora release 13 (Goddard) 64 bit ==

I have successfully build pd-extended on F13 x86_64. Works out very nice. Here is, what i did so far:

= Installing the rpmfusion-repo =

{{{
$ sudo rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
$ sudo rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
$ sudo yum clean all && sudo yum update
}}}

I rebuild the avifile package from ccrma. I might be, that you can skip this step, if you already installed the ccrma-repo and have avifile installed.
I can't test here, if it will be working with installing directly from ccrma. (Give it a try and let me know.)

You need to have a working build-tree in your home. If you set it up, you can build you own avifile with:

{{{
$ cd ~/rpmbuild/SRPMS
$ wget http://mirrors.ircam.fr/pub/planetccrma/mirror/fedora/linux/planetccrma/13/SRPMS/avifile-0.7.45-3.fc13.ccrma.src.rpm
$ rpm -i avifile-0.7.45-3.fc13.ccrma.src.rpm
$ sudo yum install esound-devel libmad-devel faad2-devel qt3-devel
$ rpmbuild -bb ~/rpmbuild/SPECS/avifile.spec
$ sudo yum localinstall --nogpgcheck ~/rpmbuild/RPMS/x86_64/avifile-0.7.45-3.fc13.x86_64.rpm ~/rpmbuild/RPMS/x86_64/avifile-devel-0.7.45-3.fc13.x86_64.rpm
}}}


= Prepare your system =

You have to install a hole bunch of Packages to build all of pd-extended:

{{{
$ sudo yum install curl cvs subversion make autoconf gcc gcc-c++ automake bzip2 bitstream-vera-sans-mono-fonts tcl tcl-devel
tk tk-devel jack-audio-connection-kit jack-audio-connection-kit-devel alsa-lib alsa-lib-devel libogg libogg-devel libvorbis
libvorbis-devel fftw3 fftw3-devel speex speex-devel flac flac-devel ladspa ladspa-devel libsndfile libsndfile-devel lame
lame-devel xmms xmms-devel pcre pcre-devel postgresql-devel mysql-devel swig dssi-devel lua lua-devel flite flite-devel ant
SDL SDL-devel gsl gsl-devel libtheora libtheora-devel libtiff libtiff-devel libpng libpng-devel imlib2 imlib2-devel bzip2-devel
ImageMagick ImageMagick-devel libxml2 libxml2-devel libjpeg libjpeg-devel libdv libdv-devel libavc1394 libavc1394-devel
libmpeg3-devel ftgl-devel freetype freetype-devel ImageMagick-c++ ImageMagick-c++-devel libXv libXv-devel lcms lcms-devel
mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel jasper jasper-devel ffmpeg ffmpeg-devel freeglut-devel opencv-devel
libquicktime libquicktime-devel faad2 faac ffmpeg-libs a52dec a52dec-devel libv4l libv4l-devel mysql-devel liblo-devel tcllib
}}}

= Getting the pd-extended source =

You can get the source, which i have used for this, here:

{{{
$ mkdir ~/source/puredata
$ cd  ~/source/puredata
$ rsync -av --delete rsync://128.238.56.50/distros/pd-extended/ pd-extended/
$ cd pd-extended
}}}

= Making some changes to the sources =

Insert the following line at the top of "~/source/puredata/pd-extended/Gem/src/Pixes/videoV4L2.h"

{{{
#include <sys/stat.h>
}}}

= Correcting the path for libquicktime =

If not installed, install "findutils" first.

{{{
$ sudo yum install findutils
}}}

If the findutils installed sucessfully, run:

{{{
$ find ~/source/puredata/pd-extended/externals/pdp externals/pidip -type f -exec perl -p -i -e "s|<quicktime/|<lqt/|g" {} \; 
}}}

= Now you are ready to build pd-extended =

Change to the Build dir for the Linux and run "make install"

{{{
cd ~/source/puredata/pd-extended/packages/linux_make
make install
}}}

Now you should have a working pd-extended under the "build" dir. The dirs under that should copied to "/usr/local/" or added to your $PATH.

= Running pd-extended =

If you want to use pd-extended together with other audio output, pulseaudio might stand in your way.

For my situation, running "padsp" with "pd-extended" is my "work around". Not nice, but working. Better way may be to get jackd running with pulseaudio and connect pd-extended via jack, but unfortunely the "pulseaudio-module-jack" for Fedora seems to be currently broken.

Anyway, this works for me:

{{{
$ padsp pdextended -oss -audiobuf 70
}}}

Good Luck.

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser