summaryrefslogtreecommitdiffstats
path: root/HACKING
diff options
context:
space:
mode:
authorJustin Davis <jrcd83@gmail.com>2012-06-01 19:45:59 +0200
committerJustin Davis <jrcd83@gmail.com>2012-06-01 19:45:59 +0200
commit753389d3691c24c930550f31817d4021dd544aa0 (patch)
tree4ef3eaeace641646c57dde76bd39ff793e9a0207 /HACKING
parente776ba2864c91696503443282958675501826678 (diff)
downloadgenpkg-753389d3691c24c930550f31817d4021dd544aa0.tar.gz
genpkg-753389d3691c24c930550f31817d4021dd544aa0.tar.xz
Rename README to HACKING since it has TMI.
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING30
1 files changed, 30 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..e728295
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,30 @@
+IMPLEMENTATION NOTES
+
+Preparation
+The first stage is preparation performed by the prepkg script.
+Software releases (i.e. tarballs) must be fetched and general information
+about the package is determined from these downloaded files. Scripts
+called "preps" are each queried in turn to see if the specified package
+is one they recognize. Each package source has its own prep script, though
+currently only one exists for the CPAN. The prep creates a PKGDATA file,
+a simple key/value text file, and initializes the PKGBUILD functions by using
+putpkgtree(1). prepkg's duty is then finished.
+
+Modification
+While creating perl packages I found that automated techniques
+could not always generate exactly what I wanted. Human intervention would
+sometimes be inevitable. In case modification is necessary, a mod script
+can be created. Mods are written in tcl and usually stored in
+$HOME/pkg/mods/. If a mod script with the same name as the package
+is present, the modifications are performed on the PKGDATA and PKGBUILD.
+These duties are handled by modpkg(1).
+
+Finalization
+Now the package data and functions are merged together into a PKGBUILD.
+injectdigs(1) is used to generate the MD5 and SHA digests for the
+package files in the source array, as well as any patches or files added.
+vervar(1) is used to replace version strings in PKGBUILD fields with
+$pkgver. After the PKGDATA(5) stream is fed through these
+filters, the pbfields(1) script converts the fields into a PKGBUILD header.
+All of the sections of the PKGBUILD are then merged together and written
+to a file with the help of the getpkgtree(1) script.