This is the first in a series of projects to help a few open source projects.? We need a patch that applies to pkgcore [1] which will allow the building of binary packages.
[1] [login to view URL]
Most of the work is done and just needs binpkg-engine finished.
## Deliverables
Technical deliverables:
1) You will need to modify pkgcore source code [1] or possibly the snakeoil python modules [2] to change pkgcore's main interface (pmerge) to accept a new argument --build-pkg
2) the --build-pkg parameter should build a binary package as described in Exhibit A.
3) A patch which cleanly apply to pkgcore-0.4.7.12 (Please use gnu diff -ruN to generate the patch.)
[1] [login to view URL]
[2] [login to view URL]
Exhibit A:
1) Making a binary package will involve a normal step of moving all files to $INSTALLDIR ( image/ )
2) Generating an xml toc similar to the provided [login to view URL]
3) Create a xar file with lzma compression [1] using a command like the below example..
Note:
Doing the same thing indirectly by using ([login to view URL]) is also possible since this is python code. Either implementation is acceptable)
xar -cf ${packagename-version} --compression=lzma -n [login to view URL] -s [login to view URL]
4) rename if needed the file to .oxe
[1] You will need to use a patched version of xar from one of the below :
[login to view URL]
or svn source version found at
svn checkout [login to view URL] xar-read-only
Technical notes ( which may be helpful ) :
(08:51:16) ferringb: if you want binpkgs for example, that's (likely) another repository implementation, although format wise, implemented properly you can reuse (note pkgcore.ebuild.ebuild_built)
------------ The current rough high level flow for pkgcore looks like:
resolve deps using pkgcores built-in dep resolver
unpack to $WORKDIR
apply patches etc, build, install to $INSTALLDIR
then copy from $INSTALLDIR (which is image/) to live system (update pkgcore vdb)
This will be changed to:
resolve deps using smart/[login to view URL]
unpack to $WORKDIR
apply patches etc, build, install to $INSTALLDIR
build an rpm compatible package (later it will be a config feature which can be turned off, but that's not needed right now)
then copy from image to live system (update smart pm's object store)
Legal stuff:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables):
a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
The deliverable will be a patch that accomplishes the goals as defined in deliverables. pkgcore runs on most posix systems, but that should not affect the this patch.