diff options
author | Justin Davis <jrcd83@gmail.com> | 2012-06-01 19:45:59 +0200 |
---|---|---|
committer | Justin Davis <jrcd83@gmail.com> | 2012-06-01 19:45:59 +0200 |
commit | 753389d3691c24c930550f31817d4021dd544aa0 (patch) | |
tree | 4ef3eaeace641646c57dde76bd39ff793e9a0207 /HACKING | |
parent | e776ba2864c91696503443282958675501826678 (diff) | |
download | genpkg-753389d3691c24c930550f31817d4021dd544aa0.tar.gz genpkg-753389d3691c24c930550f31817d4021dd544aa0.tar.xz |
Rename README to HACKING since it has TMI.
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -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. |