<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body ><div>I dont think the client is the first thing to head on, because I guess it will depend on server architecture. Anyway tcl seems to most suited for that, there would no need to add some more junk into pd bin folder...</div><div><br></div><div><br></div><div><br></div><div><br></div><div><div style="font-size:100%">Envoyé depuis mon appareil mobile Samsung</div></div> <br><br><br>-------- Message d'origine --------<br>De : Hans-Christoph Steiner &lt;hans@at.or.at&gt; <br>Date : 05/02/2013  16:20  (GMT+00:00) <br>A : pd-list@iem.at <br>Objet : [PD] package system for Pd WAS: Plugin auto install feature to Pure          data <br> <br><br><br>While I agree with all this, we don't need a full design spec to start coding.<br> I think the next step is for someone to put together a rough prototype to<br>start with, rather than get bogged down in the details of something that has<br>been talked about for years, but never implemented :-)<br><br>Then it can be implemented bit by bit as people have time and interest.&nbsp; So<br>the first question to ask before starting it:&nbsp; which language?&nbsp; Is Tcl<br>workable for people?<br><br>.hc<br><br>On 02/05/2013 10:36 AM, Charles Z Henry wrote:<br>&gt; I think that it's a great idea--but the devil's in the details.&nbsp; I think<br>&gt; you need to have a good guiding vision to help you make the decisions about<br>&gt; the implementation--a top-down design<br>&gt; <br>&gt; On the client side, you have to have information about what packages are<br>&gt; installed, where they're installed, what flavor of pd they are installed<br>&gt; for, version information, more?<br>&gt; Dependencies:&nbsp; within Pd, you could be distributing patches that require<br>&gt; some externals--I think it's best for a Pd package system to only reference<br>&gt; dependencies that include other abstractions or externals, not system<br>&gt; libraries.<br>&gt; Maintenance:&nbsp; a system like this needs to be *easy* to maintain---only a<br>&gt; few binary targets can be supported.&nbsp; The rest will need to compile from<br>&gt; source.<br>&gt; <br>&gt; I would start out like this.... make a list and argue point-by-point until<br>&gt; you have a clear plan.<br>&gt; Not that I'm much one to *complete* my projects... but I have a lot of<br>&gt; insight on failing :)<br>&gt; <br>&gt; <br>&gt; On Mon, Feb 4, 2013 at 3:10 AM, colet.patrice &lt;colet.patrice@free.fr&gt; wrote:<br>&gt; <br>&gt;&gt; Hello, that's a quite interesting subject I've been thinking about for pdx<br>&gt;&gt; since a time, thank you for the contribution... like you said it might be<br>&gt;&gt; complicated to resolve all dependences required by an external, so I think<br>&gt;&gt; that adding other dependences like php sql or json would make it even more<br>&gt;&gt; complicated... Why not just using the native client interpreted langage,<br>&gt;&gt; TCL-TK? With the help of a command line like wget included with the tcl<br>&gt;&gt; script and a bunch of pkg files that should be enough, wouldn't it?<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; -------- Message d'origine --------<br>&gt;&gt; De : fls@rendera.com.br<br>&gt;&gt; Date : 03/02/2013 20:22 (GMT+00:00)<br>&gt;&gt; A : pd-list@iem.at<br>&gt;&gt; Objet : [PD] Plugin auto install feature to Pure data<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Hi list<br>&gt;&gt;<br>&gt;&gt; I would like to write before but unfortunately I couldn't. Some weeks ago<br>&gt;&gt; people started to talk about the development of some auto install<br>&gt;&gt; mechanism to Pure Data, like the apt-get. It is an amazing idea. I<br>&gt;&gt; researched and developed some thing like it to my master degree and I<br>&gt;&gt; would like to contrib with my 3 cents.<br>&gt;&gt;<br>&gt;&gt; I studied the plugin structure of Netbeans, Eclipse, Fire Fox, deb and rpm<br>&gt;&gt; and my contribution is about it. Sorry if I am a little bit prolix.<br>&gt;&gt;<br>&gt;&gt; The first thing is to create a plugin package. A a single file to group a<br>&gt;&gt; lot of files. It can be a zip package, tar, gzip or anything that already<br>&gt;&gt; has some C open source API to pack / unpack. This way we can upload /<br>&gt;&gt; download a single file and extract it localy. I will call it the package.<br>&gt;&gt;<br>&gt;&gt; Inside the package is necessary to have a package descriptor. It can be a<br>&gt;&gt; XML file, CSV, txt, JSON or any kind of structured file to describe the<br>&gt;&gt; content of the package. This file should have the information about the<br>&gt;&gt; plugin like the author, version, website, license, OS, dependencies,<br>&gt;&gt; compatibility with PD "flavors" (vanilla, extended, Lork ....),<br>&gt;&gt; pre-installation script, post-installation script, uninstall script, key<br>&gt;&gt; words, ...<br>&gt;&gt;<br>&gt;&gt; Pre and post installation script are used to create SQL tables, files or<br>&gt;&gt; other things. Maybe it is not useful in PD. Uninstall script should clean<br>&gt;&gt; the mess if you want to remove a plugin. Dependencies is a complex problem<br>&gt;&gt; because it should care about libraries and circular dependencies. Maybe it<br>&gt;&gt; is the hardest problem to solve.<br>&gt;&gt;<br>&gt;&gt; These two things will define the PD plugin: The package file and the<br>&gt;&gt; plugin descriptor inside the package. The package structure should be<br>&gt;&gt; defined as a standard. So we should agree, for example, about the name of<br>&gt;&gt; the descriptor, the folder where the plugin will be and the name of the<br>&gt;&gt; package file. Probably a package file can be the name of the<br>&gt;&gt; external.version.something.pd_pkg.<br>&gt;&gt;<br>&gt;&gt; In PD we should have a list of installed plugins. It can be a directory<br>&gt;&gt; with all the plugin descriptors. The user might be able to install new<br>&gt;&gt; plugins manually. It means a local file in my machine that I choose. PD<br>&gt;&gt; will open the package, copy the content to the correct folders and copy<br>&gt;&gt; the descriptor the the correct folder. The uninstall option will do the<br>&gt;&gt; oposite, delete the plugin descriptor and delete the plugin files.<br>&gt;&gt;<br>&gt;&gt; To update from the web, a plugin repository need to be defined. The client<br>&gt;&gt; should have a list of repositories address. (It is good because different<br>&gt;&gt; flavors can have their own plugin repositories and the users can choose<br>&gt;&gt; which one they want to use.)<br>&gt;&gt;<br>&gt;&gt; The plugin server can be implemented with a HTTP server. It will publish<br>&gt;&gt; the list of available plugins on the server. This list can be the list of<br>&gt;&gt; package descriptors in a tar / zip file. Locally, PD will keep these<br>&gt;&gt; lists, one for each server, and it will be used to look for new plugins.<br>&gt;&gt; Add a new server means add the server to the repositories list and<br>&gt;&gt; download the plugin list of the new server.<br>&gt;&gt;<br>&gt;&gt; Since PD has a list of local installed plugins, if you want to check for<br>&gt;&gt; updates PD compares the servers plugin lists with your local list. Easy<br>&gt;&gt; task. Different versions should can be shown and the user would be able to<br>&gt;&gt; choose what to update. These descriptors can be useful also to search for<br>&gt;&gt; plugins by author, version, key words, versions, ...<br>&gt;&gt;<br>&gt;&gt; Update a plugin means to create a list of update, download the packages to<br>&gt;&gt; a temp directory and install them locally.<br>&gt;&gt;<br>&gt;&gt; Just to step foward, the server can have a web interface with some PHP<br>&gt;&gt; programming, for instance, that automatically update a package, extract<br>&gt;&gt; the descriptor, put it in the correct folder and put the plugins in the<br>&gt;&gt; correct folder. Just to be easier to maintenance.<br>&gt;&gt;<br>&gt;&gt; Another tool can help developers to pack. Since I did a new plugin I can<br>&gt;&gt; select the folder, fill a form with the meta-data and the tool will create<br>&gt;&gt; the package automatically.<br>&gt;&gt;<br>&gt;&gt; That's it. Sorry if I wrote too much.<br>&gt;&gt;<br>&gt;&gt; cheers<br>&gt;&gt;<br>&gt;&gt; f schiavoni<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>&gt;&gt; Pd-list@iem.at mailing list<br>&gt;&gt; UNSUBSCRIBE and account-management -&gt;<br>&gt;&gt; http://lists.puredata.info/listinfo/pd-list<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>&gt;&gt; Pd-list@iem.at mailing list<br>&gt;&gt; UNSUBSCRIBE and account-management -&gt;<br>&gt;&gt; http://lists.puredata.info/listinfo/pd-list<br>&gt;&gt;<br>&gt;&gt;<br>&gt; <br>&gt; <br>&gt; <br>&gt; _______________________________________________<br>&gt; Pd-list@iem.at mailing list<br>&gt; UNSUBSCRIBE and account-management -&gt; http://lists.puredata.info/listinfo/pd-list<br>&gt; <br><br>_______________________________________________<br>Pd-list@iem.at mailing list<br>UNSUBSCRIBE and account-management -&gt; http://lists.puredata.info/listinfo/pd-list<br></body>