'''Deken''' is a framework to create, upload and distribute libraries of externals for Pd-vanilla. It consists of two parts:
- a script to retrieve, build and upload packaged externals
- a plug-in to search for and install externals.
The web site: https://github.com/pure-data/deken
This is a list of tasks performed to convert an object package to deken. Used for converting pd-extended packages, but it also applies to other compiled code packages.
- fix some errors and/or improve help-patches;
- This is not the place for a manual for fixing pd-externals, but here are some links:
- build, install and test on development system;
- commit to repository; github, sourceforge, ...;
- If you are sure all is well, you could add a label to the repository reflecting your version. But you might find platform specific problems while porting. Adding the label might best wait until all ports are tested.
- download current sources from github as .zip;
- This is to ensure the build package matched the version on the repository, and it doesn't contain build objects like .o or executables.
- repackage it as *-(Sources).tgz (this is the source for the ports);
- At this stage the file name is free-form, but at some time in the future, remote building tools might expect a certain format. Make sure there are no dashes
-in either filename or version, as this would confuse the Deken-plugin
- upload to port machine;
- build, install and run load test;
- A quick test can be performed by creating a patch containing all objects. If this opens without errors, all the objects succesfully could load and instantiate. While not a replacement for proper testing, it is a quick way to find compile, install and package problems
- copy *-(Sources).tgz to install directory and create a .tgz or .zip file with the proper name, given library name, version and platform);
- Run the package tool (tar, zip) from the directory where your library directory is installed, making sure the library directory itself is included in the tar.gz or zip. The proper file name is libraryName-version-(platform)(Sources).tar.gz (or .zip)
- copy the package to the development system;
- This assumes the development system is the machine with the deken tool and key-ring for signing installed.
- run deken upload ... to sign and upload to puredata.info;
- For uploading, an account for http://puredata.info is required. The signing process couples the email address of the uploader to the uploaded package. The package hash and certificate are uploaded next to the package. At one time in the future, a tool might be available to the downloaderwant to verify the origin of the package before downloading.
- upload *-objects.txt to the proper directory at puredata.info;
- The objects file is used by the puredata.info server to find library packages by object names. It is a text file, created by the maintainer/uploader and contains the names of the objects contained in the library package, each on a separate line. A short object description might be added to each line, separated from the object name by one or more spaces, but this is not used yet. The uploaded packages are placed by the deken tool at Members/userName/software/packageName/version and this where the objects file should be.
The current platform names recognised by the deken-plugin are:
- Linux Intel 32 bit: Linux-i686-32
- Linux Intel 64 bit: Linux-x86_64
- MacOSX? 32 bit: Darwin-i386-32
- MacOSX? 64 bit: Darwin-X86_64-32
- Windows 32 bit: Windows-i386-32
- Linux ARM 32 bit: Linux-armv7l-32
- Linux ARM 64 bit: Linux-aarch64-64
For MacOSX? build systems it is customary to build for both Intel 32-bit and 64-bit. The filename then becomes
More info on the deken tool can be found here: https://github.com/pure-data/deken/tree/master/developer