[PD-dev] installation paths

Hans-Christoph Steiner hans at eds.org
Fri Feb 6 23:48:22 CET 2004


On Monday, Feb 2, 2004, at 16:03 America/New_York, guenter geiger wrote:

> On Mon, 2 Feb 2004, d.lj wrote:
>> i m not sure if such a policy is the key to this dilemma given
>> guenthers statement of resistance against structuring, since its only
>> more of structuring, more specifically a top-down structuring and i
>> think the other way round would be preferable.
>
> I think a common build system for all platforms (where the developers
> just have to drop in their external) and some basic guideline how to
> do it would not necessarily be restrictive.
>
> It would rather help the developers. They just would not need to think
> about the build system anymore, and if something in the install paths
> changes (e.g. we decide to split the externals in subdirectories) it
> would happen in an organized way and easy to communicate to users.
>
> Guenter


This is definitely the best approach.  Instead of a policy, we could  
define an 'interface' that a developer would need to implement in order  
for their externals to be included in the packages.  For example, in  
order to have your externals included in the MacOS X installer, you  
would need to implement "make pkg", which would compile everything in  
that externals collection and generate a MacOS X package to be included  
in the installer.

In order for this to work, there would need to be some standard make  
targets and a standard internal layout for Pd, with $PDDIR being freely  
redefinable (/usr, /usr/local, /Applications, C:\Program Files, etc.).   
Here a suggested internal layout based on what exists:

abstractions
bin
doc
	0.tutorials/
	1.manual/
	2.control.examples/
	3.audio.examples/
	4.fft.examples/
	5.reference/
	6.externals
		flext/
		GEM/
	7.stuff/
	sound/
extra
lib (for external libraries)

Another thing is to have a suggested file layout for developer's files,  
so that the paths to the pd sources, for example, are the same for  
everyone.  I think most people basically are doing it the same way now,  
but I'll lay it out just for discussion's sake.  I think everything  
should be laid out as if you just run 'cvs checkout' for everything in  
the same dir:

abstractions
doc
externals
packages
pd

I would ultimately like to see various 'extensions' to pd in this tree  
also, maybe in a directory/cvs module called 'extensions':

extensions
	Gem
	GemLibs
	Framestein
	gripd
	xgui
	etc. etc.

I think the key to making this work with the pd community is not making  
it a 'requirement' for the CVS per se. Instead a developer will have to  
provide the standard interface to the package makers in order for the  
maintainers to include their externals in the packages.  I would love  
to be able to include every piece of software written for Pd in the  
installers, but I do not have time or an inclination to figure out each  
individual build system.  But if someone else wants to include it in  
the build systems themselves, they can.

The other key is providing clear examples and documentation about the  
standard interfaces and path layout.  I am guilty of not doing this yet  
for sure, but I do think its quite important and will start working on  
it while I working making new installers for 0.37-1.

.hc



>> the cvs right now fullfils at least the function of a more or less
>> complete collection spot for externals regardless of the state they're
>> in, which is pretty good, so exlcuding stuff via some policy will only
>> generate regress in this aspect. i think the same goes for using
>> libaries in externals.
>>
>> a lot of stuff is being created by a devel-user hybrid and commitment
>> stops if a local solution is achieved, i.e. bringing a little project
>> into some formal shape is a bunch of work with no more direct benefit.
>>
>> maybe a proper example external would help here, since a lot of stuff  
>> is
>> being made via copy and pasting from existing externals.
>>
>> this means that the work fixing makefiles and putting stuff into  
>> common
>> locations is being shifted to those packaging stuff for particular
>> distribution formats. but exactly the work thats being done there  
>> could
>> be folded back into the cvs?
>>
>> i dont think that agreeing on any general common location for stuff is
>> necessary as long as there's a configure script providing a --prefix
>> option.
>>
>> furthermore, i dont think its productive to moan about stuff being
>> strewn all over the place. just have a quick glance over the stuff
>> you're compiling and you can figure where make install will put it. if
>> there's no install target at all, its even more your responsibility to
>> pass in the proper path when doing a cp *.pd_platform  
>> /path/to/pd/externs
>>
>> i do install a lot of externals here and there and somehow i manage to
>> get them all under /usr/lib/pd and i m not applying any kind of voodoo
>> or excessively timeconsuming techniques to achieve this, which is not  
>> to
>> say that i dont (massively) appreciate doing "cvs co externals"  
>> instead
>> of clicking 20 plus websites and downloading tar.gz's.
>>
>> and given that probably most "users" use binary packages anyway its
>> again back to the responsibility of the package maintainer.
>>
>> i think this boils down to: if you think you can fix something, fix it
>> and commit it.
>>
>> if not, spend money on a commercial package or hire someone to fix it
>> for you.
>>
>> make sense?
>> make: *** No rule to make target `sense'.  Stop.
>>
>> bst,jdl
>>
>> --
>> i          x          D          ¥          ·          o          r    
>>        G
>> GPG-key at http://xdv.org/~jdl/jdl.pub.asc
>>
>> _______________________________________________
>> PD-dev mailing list
>> PD-dev at iem.at
>> http://iem.at/cgi-bin/mailman/listinfo/pd-dev
>>
>
>
> _______________________________________________
> PD-dev mailing list
> PD-dev at iem.at
> http://iem.at/cgi-bin/mailman/listinfo/pd-dev
>

________________________________________________________________________ 
____

Man has survived hitherto because he was too ignorant to know how to  
realize his wishes.
Now that he can realize them, he must either change them, or perish.
		                                     -William Carlos Williams





More information about the Pd-dev mailing list