[PD-dev] build instructions for pd-extended

Ricardo Fabbri rfabbri at gmail.com
Fri Sep 30 10:49:36 CEST 2011


Hello everyone,

I have documented this thread and my experiences with putting together
the code from the different repositories for development. I took the
initiative to place this into the main community website, although
there might be better ways to expose the material. I have decided to
put a section in
 http://puredata.info/docs/developer/BuildingPdExtended
And to reference to the section at the beginning of that article.

I also put a reference to BuildingPdExtended in the page:
 http://puredata.info/docs/developer/GettingPdSource

Hope this can be useful to the community. Any suggestions on improving
the way I wrote it are more than welcome.

Best regards,
Ricardo
--
Linux registered user #175401
www.lems.brown.edu/~rfabbri



On Wed, Sep 28, 2011 at 11:12 PM, Hans-Christoph Steiner <hans at at.or.at> wrote:
>
> I actually use all three:
> - links in pd-extended.git/extra
> - work on libs directly in their folder in pure-data/trunk/externals
> - test things on the build as a whole.
>
> I just dpends on what I am working on, and what the quickest route to
> testing it is.
>
> .hc
>
> On Sep 28, 2011, at 6:15 PM, Ricardo Fabbri wrote:
>
>> Hello Hans,
>>
>> Thank you for the info - it is interesting that the method you
>> described is the oposite of what I did ;)
>> Instead of basing things off of pd-svn and linking to pd-extended.git
>> and Gem, you base things off of pd-extended.git and link to what you
>> need from pd-svn and Gem.  I guess I might stick to your way once I
>> need to isolatedly develop things. For now, we use so many libs that
>> it might be better to build and develop everything at once.
>>
>> I will try to document these things and send a link to the list. If
>> you approve then I can post to the main site.
>>
>> Best,
>> Ricardo
>> --
>> Linux registered user #175401
>> www.lems.brown.edu/~rfabbri
>>
>>
>>
>> On Wed, Sep 28, 2011 at 6:26 PM, Hans-Christoph Steiner <hans at at.or.at>
>> wrote:
>>>
>>> Hey Ricardo,
>>>
>>> I proposed the rsync method as the easiest way to get started. But yes,
>>> it
>>> doesn't work for development.  For the most part, when doing dev work, I
>>> find it easiest to stick with the smallest unit possible.  Like if I want
>>> to
>>> work on a library, then I only build that library, not all of
>>> Pd-extended.
>>>
>>> Then in pd-extended.git/extra, I put symlinks to the libraries I'm
>>> currently
>>> working on, i.e.:
>>>
>>> libdir -> ../../pure-data/trunk/externals/loaders/libdir
>>> cyclone ->
>>> /Applications/Pd-extended.app/Contents/Resources/extra/cyclone/
>>> extra -> ../../pure-data/trunk/externals/extra
>>> vanilla -> ../../pure-data/trunk/externals/vanilla/
>>> pddp -> ../../pure-data/trunk/externals/pddp
>>> pdlua -> ../../pure-data/trunk/externals/loaders/pdlua/src/
>>>
>>> This also means I can quickly test core changes but building just in
>>> pd-extended.git, and then running Pd directly from there, i.e.:
>>>
>>> cd ~/code/pd-extended.git
>>> ./autogen.sh
>>> ./configure
>>> make
>>> ./src/pd
>>>
>>> As for your introduction, you should post that in its own email with a
>>> separate Subject so people know what its about.
>>>
>>> .hc
>>>
>>> On Sep 28, 2011, at 5:00 PM, Ricardo Fabbri wrote:
>>>
>>>> Hi,
>>>>
>>>> My friend Vilson Vieira and I were able to generate the latest
>>>> full-fledged Pd-extended using two methods. I can give the details in
>>>> a later email, but basically:
>>>>
>>>> method1: rsync+autobuild as you mentioned. worked after some basic
>>>> dependence installations. the downside is that this is not the best
>>>> option for development, but mainly for building the latest Pd only.
>>>>
>>>> method2: download Pd from svn, then pd-extended.git and Gem, ans use
>>>> the linux-make approach. This provides for a full development tree
>>>> which makes it easy to push commits and make patches, as well as
>>>> updating from the repos. I had to modify the pd-svn tree to mimick
>>>> what was done for the rsync'd tree. Basically this involves moving the
>>>> 'pd' subdir to something else, like 'pd-original', then linking
>>>> pd-extended.git to  'pd' inside pd-svn. Then do something similar for
>>>> Gem: link gem-svn to pd-svn/Gem and pd-svn/extensions/Gem.  Then I
>>>> went to pd-svn/packges/linux_make, and typed "make install" to
>>>> generate a .deb package, which I then installed using dpkg -i.
>>>>
>>>> The generated packages for 32bit (using method1) and 64bit (using
>>>> method2) have been posted in:
>>>> http://hera.ethymos.com.br:1080/pd/
>>>>
>>>> Perhaps they can be useful for some alpha-testing as we are already
>>>> doing locally at our Lab Macambira (labmacambira.sf.net).
>>>>
>>>> I really feel that method 2 got us into Pd development now. The build
>>>> works very well as far as we have tested. Perhaps this establishes a
>>>> good enough workflow (update->develop->build->test->commit) that I
>>>> think it might be time to provide commit access, if you agree.
>>>> Following SVNCommitAccess, this is the requested info:
>>>
>>>> My name is Ricardo Fabbri and I have been working with free software
>>>> since 1999, specializing in computer vision and image processing.
>>>> During my PhD I worked on 3D reconstruction algorithms and camera
>>>> self-calibration, and have also worked for Google in applications of
>>>> this technology for the scanning and indexing of books and other print
>>>> material. I have recently returned to Brazil where I helped found the
>>>> free software group Lab Macambira (labmacambira.sf.net), together with
>>>> my brother Renato Fabbri, Vilson Vieira, and others. We are currently
>>>> a team of 15.
>>>>
>>>> My brother had a significant influence in Pd Con that was held in
>>>> Brazil, as well as in the rise of the Brazilian Pd community. My
>>>> brother is a composer and is doing graduate work in computational
>>>> physics. I was actually the one who introduced him to Pd and Linux
>>>> back in the days when he was dependant on Max. We were also joined by
>>>> Gilson Beck, another composer who got hooked on Pd. Currently, my
>>>> direct interests with Pd deveolpment are to support the demands from
>>>> these composers, but, mainly, to support Pd as a core component of our
>>>> real-time video processing stack. We use Pd for guiding C++ modules
>>>> linked to OpenCV and VXL.
>>>> We also use Scilab as a quick prototyping language for new algorithms.
>>>> As you can see, Pd is the guiding master of our systems, so it is
>>>> crucial for us to have a development gripo on it. Commit access is
>>>> important as we would like to develop this key component with you. You
>>>> can count on our painstaking care not to break anything and our
>>>> willing service to improve Pd. Perhaps with a commit access it will
>>>> make it easier to do small improvements and documentation, for a
>>>> start.
>>>>
>>>> SF user: ricardofabbri.
>>>> Optionally, Vilson's SF user: vilsonvieira and My brother's: greenkobold
>>>>
>>>> Best regards,
>>>> Ricardo
>>>> --
>>>> Linux registered user #175401
>>>> www.lems.brown.edu/~rfabbri
>>>>
>>>>
>>>>
>>>> On Wed, Sep 28, 2011 at 12:19 AM, Hans-Christoph Steiner <hans at at.or.at>
>>>> wrote:
>>>>>
>>>>> The easiest way to get started build Pd-extended is how the nightly
>>>>> builds
>>>>> are done.  Start by getting the source using the rsync method and then
>>>>> running the build script:
>>>>>
>>>>> http://puredata.info/docs/developer/AutoBuildProcess
>>>>>
>>>>> The whole build process has lots of hacks and kludges in it, which we
>>>>> are
>>>>> in
>>>>> the process of disentangling.  Two notable efforts along those lines
>>>>> are
>>>>> the
>>>>> Library Template:
>>>>>
>>>>> http://puredata.info/docs/developer/LibraryTemplate
>>>>>
>>>>> And submitting lots of libs to Debian:
>>>>>
>>>>> http://qa.debian.org/developer.php?login=hans%40eds.org
>>>>> http://qa.debian.org/developer.php?login=zmoelnig@iem.at
>>>>> http://qa.debian.org/developer.php?login=reduzent@gmail.com
>>>>>
>>>>> .hc
>>>>>
>>>>>
>>>>> On Sep 27, 2011, at 6:15 PM, Ricardo Fabbri wrote:
>>>>>
>>>>>> Other problems with pd from Subversion:
>>>>>>
>>>>>> - my GUI cannot pan/scroll large patches. A scroll bar is missing and
>>>>>> there is no way to scroll.
>>>>>> - I don't have a help browser.
>>>>>>
>>>>>> Thanks in advance for your guidance,
>>>>>> Ricardo
>>>>>> --
>>>>>> Linux registered user #175401
>>>>>> www.lems.brown.edu/~rfabbri
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Sep 27, 2011 at 7:13 PM, Ricardo Fabbri <rfabbri at gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hans,
>>>>>>>
>>>>>>> I think I will stick to the patch format for now. Let me report my
>>>>>>> build adventures for the day so that someone can give some advice.
>>>>>>>
>>>>>>> I would like to build a full pd-extended from development source
>>>>>>> code.
>>>>>>> It seems to be a bit complicated, but I tried at least to build the
>>>>>>> stuff I need.
>>>>>>>
>>>>>>> The first problem I got is that the pd built from SVN doesn't runn
>>>>>>> off
>>>>>>> of /usr/local/bin but only runs from its own source dir. This is what
>>>>>>> I did on Pd-svn:
>>>>>>>
>>>>>>>  cd pd/pd/src
>>>>>>>  autoreconf -vi
>>>>>>>  ./configure
>>>>>>>  make depend
>>>>>>>  make
>>>>>>>  sudo make install
>>>>>>>
>>>>>>> Then when I rund pd it just hangs.. Running pd -verbose gives:
>>>>>>> Pd version 0.42-5
>>>>>>> compiled 15:33:07 Sep 27 2011
>>>>>>> port 5403
>>>>>>> TCL_LIBRARY="/usr/local/lib/pd/lib/tcl/library"
>>>>>>> TK_LIBRARY="/usr/local/lib/pd/lib/tk/library"   wish
>>>>>>> "/usr/local/lib/pd/tcl/pd-gui.tcl" 5403
>>>>>>> Waiting for connection request...
>>>>>>> ... connected
>>>>>>>
>>>>>>> I tried with both wish 8.4 and 8.5.
>>>>>>>
>>>>>>> The way I managed to run it was just through the source dir.
>>>>>>>  pd/pd/bin/pd
>>>>>>>
>>>>>>> Next, I built Gem from svn (but kinda tailored to the Pd source code
>>>>>>> dir since that's what I managed to run):
>>>>>>>  cd pd-gem/Gem/src
>>>>>>>  ./autogen.sh
>>>>>>>  ./configure --with-pd=$HOME/src/pd/pd
>>>>>>>  make
>>>>>>>  sudo make install
>>>>>>>
>>>>>>> Finally, pix_opencv:
>>>>>>>  ./configure --with-pd=$HOME/src/pd/pd --with-
>>>>>>> gem=$HOME/src/pd-gem/Gem
>>>>>>>  make
>>>>>>>  sudo make install
>>>>>>>
>>>>>>>
>>>>>>> I noticed pix_opencv installs cleanly onto the Pd source dir but Gem
>>>>>>> just insists on using /usr/local no matter what.
>>>>>>>
>>>>>>> I was able to install Pd using gem like this:
>>>>>>>
>>>>>>>  cd $HOME/src/pd-gem/Gem
>>>>>>>  $HOME/src/pd/pd/bin/pd -lib Gem
>>>>>>>
>>>>>>> Not to speak about compiling+installing iemmatrix, which should be
>>>>>>> simple, similar to pix_opencv, if only pd would run out of /usr/local
>>>>>>> which it isn't.
>>>>>>>
>>>>>>> I appreciate any help, even if just a small guiding remark.
>>>>>>> Ricardo
>>>>>>> --
>>>>>>> Linux registered user #175401
>>>>>>> www.lems.brown.edu/~rfabbri
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Sep 27, 2011 at 5:23 PM, Hans-Christoph Steiner
>>>>>>> <hans at at.or.at>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hey Ricardo,
>>>>>>>>
>>>>>>>> If you want commit access, here is the process, its pretty simple:
>>>>>>>>
>>>>>>>> http://puredata.info/docs/developer/SVNCommitAccess
>>>>>>>>
>>>>>>>> We do need work out the flow before you start directly committing.
>>>>>>>>  The
>>>>>>>> rule
>>>>>>>> of the pure-data SVN is that you need to have explicit permission to
>>>>>>>> each
>>>>>>>> file that you want to work on.  Usually this goes on a
>>>>>>>> library-by-library
>>>>>>>> basis, for example puredata_opencv. You just ask on pd-dev for
>>>>>>>> permission.
>>>>>>>>
>>>>>>>> For things that are directly maintained in SVN, it makes sense to
>>>>>>>> commit
>>>>>>>> directly there.  For things that are maintained in git, then you
>>>>>>>> should
>>>>>>>> make
>>>>>>>> your own fork of pd-extended.git, and submit 'git format-patch'
>>>>>>>> files
>>>>>>>> to
>>>>>>>> the
>>>>>>>> patch tracker.
>>>>>>>>
>>>>>>>> Either way, starting by submitting patches to the tracker would be
>>>>>>>> the
>>>>>>>> best
>>>>>>>> way to start.  There is no barrier, you can do that now.
>>>>>>>>
>>>>>>>> .hc
>>>>>>>>
>>>>>>>> On Sep 27, 2011, at 2:15 AM, Ricardo Fabbri wrote:
>>>>>>>>
>>>>>>>>> Hello Hans,
>>>>>>>>>
>>>>>>>>> Thanks for the quick reply. We will be targeting Linux, mostly
>>>>>>>>> Ubuntu
>>>>>>>>> 11.04.
>>>>>>>>>
>>>>>>>>> I would like to develop using a branch in such a way that I can
>>>>>>>>> easily
>>>>>>>>> push the changes to you through patches or by committing. I am a
>>>>>>>>> bit
>>>>>>>>> hesitant to develop a release branch instead of the main branch
>>>>>>>>> directly, since I might be repeating work.
>>>>>>>>>
>>>>>>>>> I already talked to the puredata_opencv guys and they are willing
>>>>>>>>> to
>>>>>>>>> let me commit code, as long as I discuss the changes before
>>>>>>>>> modifying
>>>>>>>>> existing functionality.
>>>>>>>>>
>>>>>>>>> My username is ricardofabbri just in case, although I totally
>>>>>>>>> understand it might be too early for commit privileges, given that
>>>>>>>>> I
>>>>>>>>> haven't even settled on a workflow.
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>> Ricardo
>>>>>>>>> --
>>>>>>>>> Linux registered user #175401
>>>>>>>>> www.lems.brown.edu/~rfabbri
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Sep 27, 2011 at 2:20 AM, Hans-Christoph Steiner
>>>>>>>>> <hans at at.or.at>
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hey Ricardo,
>>>>>>>>>>
>>>>>>>>>> This is great news!  Yes, its true, the sources are a bit
>>>>>>>>>> confusing.
>>>>>>>>>>  Website updates are a good thing.  If you are talking about
>>>>>>>>>> Pd-extended,
>>>>>>>>>> then all sources are from
>>>>>>>>>> https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk,
>>>>>>>>>> except
>>>>>>>>>> for
>>>>>>>>>> the core 'pd' part, which is from the pd-extended.git.  Once we
>>>>>>>>>> have
>>>>>>>>>> the
>>>>>>>>>> 0.43 release branch, which is soon, then everything will be in
>>>>>>>>>> this
>>>>>>>>>> SVN
>>>>>>>>>> branch:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://pure-data.svn.sourceforge.net/svnroot/pure-data/branches/pd-extended/0.43
>>>>>>>>>>
>>>>>>>>>> You can see the 0.42 release branch here:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://pure-data.svn.sourceforge.net/svnroot/pure-data/branches/pd-extended/0.42
>>>>>>>>>>
>>>>>>>>>> Which platform are you going to be targetting?
>>>>>>>>>>
>>>>>>>>>> .hc
>>>>>>>>>>
>>>>>>>>>> On Sep 27, 2011, at 12:49 AM, Ricardo Fabbri wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I would like to help out with the development of Pd, in
>>>>>>>>>>> particular
>>>>>>>>>>> with Gem and puredata_opencv. Please be patient as I am just
>>>>>>>>>>> starting
>>>>>>>>>>> with Pd development.
>>>>>>>>>>>
>>>>>>>>>>> I would like to get some advice from you on how to build from the
>>>>>>>>>>> develpment sources. I can then update the community website
>>>>>>>>>>> instructions based on your responses, if you think that'd be
>>>>>>>>>>> helpful.
>>>>>>>>>>>
>>>>>>>>>>> I would like to install pd-extended, gem, and pix_opencv from the
>>>>>>>>>>> development source code.
>>>>>>>>>>>
>>>>>>>>>>> It seems I should download from Subversion, even though Git is
>>>>>>>>>>> used
>>>>>>>>>>> for pd vanilla core and pd-extended core. It seems these Git
>>>>>>>>>>> repos
>>>>>>>>>>> are
>>>>>>>>>>> regularly pushed onto Subversion. Is that true?
>>>>>>>>>>>
>>>>>>>>>>> Now, should I really download from these?
>>>>>>>>>>>
>>>>>>>>>>> https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk
>>>>>>>>>>>
>>>>>>>>>>> and
>>>>>>>>>>>
>>>>>>>>>>> https://pd-gem.svn.sourceforge.net/svnroot/pd-gem/trunk
>>>>>>>>>>>
>>>>>>>>>>> Next, I'd like some up-to-date build instructions based on the
>>>>>>>>>>> development code base. Again, I am more than willing to update
>>>>>>>>>>> the
>>>>>>>>>>> online doc with the info you provide.
>>>>>>>>>>>
>>>>>>>>>>> I appreciate your guidance on how to contribute. I lead a team
>>>>>>>>>>> with
>>>>>>>>>>> computer vision programmers and music composition experts that
>>>>>>>>>>> will
>>>>>>>>>>> be
>>>>>>>>>>> heavily developing Pd in the next coming weeks and months.
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>> Ricardo
>>>>>>>>>>> --
>>>>>>>>>>> Linux registered user #175401
>>>>>>>>>>> www.lems.brown.edu/~rfabbri
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Pd-dev mailing list
>>>>>>>>>>> Pd-dev at iem.at
>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ----------------------------------------------------------------------------
>>>>>>>>>>
>>>>>>>>>> 'You people have such restrictive dress for women,’ she said,
>>>>>>>>>> hobbling
>>>>>>>>>> away
>>>>>>>>>> in three inch heels and panty hose to finish out another
>>>>>>>>>> pink-collar
>>>>>>>>>> temp
>>>>>>>>>> pool day.  - “Hijab Scene #2", by Mohja Kahf
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ----------------------------------------------------------------------------
>>>>>>>>
>>>>>>>> As we enjoy great advantages from inventions of others, we should be
>>>>>>>> glad of
>>>>>>>> an opportunity to serve others by any invention of ours; and this we
>>>>>>>> should
>>>>>>>> do freely and generously.         - Benjamin Franklin
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ----------------------------------------------------------------------------
>>>>>
>>>>> Mistrust authority - promote decentralization.  - the hacker ethic
>>>>>
>>>>>
>>>>>
>>>
>>>
>>>
>>>
>>> ----------------------------------------------------------------------------
>>>
>>> Mistrust authority - promote decentralization.  - the hacker ethic
>>>
>>>
>>>
>
>
>
> ----------------------------------------------------------------------------
>
> "Making boring techno music is really easy with modern tools, but with live
> coding, boring techno is much harder." - Chris McCormick
>
>
>
>
>



More information about the Pd-dev mailing list