How to Create a Local Extension Repository
Prepare a web for the private repository
- Designate a web on your private site for storage of extensions. This could be Extensions, Sandbox, or any other web on your site.
- Copy the FastReport topic to this new web.
- Copy the PackageForm topic.
- If desired, copy the field definitions as well: Not required, but makes it easier to fill out the form
or, download all of these files as a bundled
Extensions
web:
- Edit the
FastReport
topic, modifying the search as appropriate for your private site.
Prepare extension for upload to the private site:
- Assuming your private site has different credentials from Foswiki.org, you need to rename the .buildcontrib file in your home directory to avoid using the cached credentials.
- Either edit the
build.pl
file in the extension directory to point to your private repository, or override the paths when prompted during the upload
- run
perl build.pl upload
responding with the path changes if necessary
- It currently works with Template authentication.
- If this is the first time the extension has been uploaded to the private repository, you need to fill out the extension form. You can copy the form metadata from another extension on Foswiki.org by appending
?raw=debug
to the extension topic in Extensions.
bin/configure
picks up the 'Find more extensions' search path from
lib/LocalSite.cfg
, so it's easy to modify/extend the search path. The path is written as a semicolon-separated list of site specifications. Each site specification takes the form SITENAME=(..Extensions URL, ...pub URL...).
For example, the default setting for
$Foswiki::cfg{ExtensionsRepositories}
is:
'Foswiki.org=(http://foswiki.org/Extensions/,http://foswiki.org/pub/Extensions/)'
The specification of site 'Foswiki.org' has two partial URLs; the first gives the location of the Foswiki web that contains the extension topics, and the second gives the pub directory where the attachments are loaded. Both URLs must end with a slash!
If extensions exist on more than one site in the path,
The last listed site is used. For example, if you are storing local extensions in the Sandbox web of mysite.com, and are using shorter URLs, then the path will be:
'Foswiki.org=(http://foswiki.org/Extensions/,http://foswiki.org/pub/Extensions/);MySite.com=(http://mysite.com/Sandbox/,http://mysite.com/pub/Sandbox/)';