com web/rmtools: added some doc about pecl automation: client/data/doc/README.PECL.WIN
| From: | Anatol Belski | Date: | Tue, 01 Oct 2013 09:55:38 +0000 |
| Subject: | com web/rmtools: added some doc about pecl automation: client/data/doc/README.PECL.WIN | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-19135@lists.php.net to get a copy of this message | ||
Commit: 6e4b7325bf561be05c06d5485e0a73eaebbc8cc9
Author: Anatol Belski <ab@php.net> Tue, 1 Oct 2013 11:55:38 +0200
Parents: c190ea19bee7a2ef51b4e5c8d224d4139ae9f9a7
Branches: master
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=6e4b7325bf561be05c06d5485e0a73eaebbc8cc9
Log:
added some doc about pecl automation
Changed paths:
A client/data/doc/README.PECL.WIN
Diff:
diff --git a/client/data/doc/README.PECL.WIN b/client/data/doc/README.PECL.WIN
new file mode 100644
index 0000000..2abee76
--- /dev/null
+++ b/client/data/doc/README.PECL.WIN
@@ -0,0 +1,63 @@
+
+= Prerequisites =
+
+WARNING: Concurrent builds may break the cronjobs. When running batch scripts manually ensure
there's no build currently running. It's possible to run pecl.bat on a single config even
if a regular build is running, to ensure is that the branches do not collide. Alternatively disable
the cronjobs and ensure no build is running. Certain build configurations can be done automatically
by the running cronjob when putting the package into the right directory (see folders, batch
scripts, cronjobs sections).
+
+Externsion package means a regular PECL tarball or a source snapshot packaged as a tarball
(uncompressed, tgz, tbz, txz) or zip. It's vital to have package.xml unless you run builds
manually with --force-* options (see --help)..
+
+= Folders =
+
+c:\pecl-in-pkg - incoming release packages
+c:\pecl-in-snap - incoming snapshot packages
+c:\pecl-in-pkg-nomail - incoming release packages where no mail alerts after build should be done
+c:\pecl-in-snap-nomail - incoming snap packages where no mail alerts after build should be done
+c:\pecl-dep-ext - dependency extensions. When configured for an extension, that packages will be
automatically pulled into the current building source, so they are present for an extension
requiring them.
+c:\pecl-dep-libs - prepared library dependencies. Regular dependencies are grouped by CRT/ARCH so
they can be found automatically for a particular build type. Say
C:\pecl-dep-libs\vc11\x86\GraphicsMagick will be automatically pulled for
php_gmagick-1.1.2rc1-5.5-nts-vc11-x86. For special cases like the OCI8 extension just put the deps
into c:\pecl-dep-libs and override the path with the options in the extension configuration.
+c:\apps - path various utilities, see the external programs section.
+
+
+= External programs =
+
+- tar.exe
+- bsdtar.exe
+- gzip.exe
+- bzip2.exe
+- xz.exe from the xzutils
+- zip.exe
+- unzip.exe
+- deplister.exe available from the PHP sources
+
+All that programs are freely available from the internet, say gnuwin32 or msysgit projects are the
first place to look. The paths to this programs are hardcoded in include/PeclExt.php class, usually
they lead to somewhere in c:\apps.
+
+= PHP scripts =
+
+script/pecl.php - build worker
+script/pecl_rss.php - rss update worker
+
+Those should not be run directly.
+
+= Batch scripts =
+
+bin/pecl.bat - wrapper around script/pecl.php, builds package for one given configuration
+bin/pecl_build_all.bat - build package for a set of known configurations. The commandos are
hardcoded there, currently 5.3/4/5.
+bin/pecl_build_next.bat - picks and builds the next package. The order is release, release-nomail,
snap, snap-nomail (see folders section).
+bin/pecl_rss.bat - wrapper around scripts/pecl_rss.php, updates the rss database from the PECL
website. The database is saved into data/pecl.sqlite .
+bin/pecl_rss_task.bat - rss update script for a cronjob.
+
+Each of this batch scripts can be run on demand from the shell, try --help for usage options.
Exception are bin/pecl_build_next.bat and bin/pecl_rss_task.bat which are supposed to be cronjob
workers, but nevertheless they also can be just run on the shell.
+
+= Cronjobs =
+
+- pecl_build_next, runs bin/pecl_build_next.bat
+- pecl_rss, runs bin/pecl_rss_task.bat
+
+The cronjob definitions ready to import are in data\config\pecl\cron.
+
+= Mailing =
+
+Two constants MAIL_FROM and MAIL_TO_FALLBACK are defined in scripts/pecl.php . Look at --help for
the mailing options.
+
+
+= PHP classes =
+TODO
+