summaryrefslogtreecommitdiffstats
path: root/dev/opkbootstrap.mdwn
diff options
context:
space:
mode:
authorP. J. McDermott <pehjota>2012-10-17 18:16:07 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-10-17 18:16:07 (EDT)
commit765a83010e7d2287c9ac93520ae03bed61e522aa (patch)
treed03961e1d3669609616b294948431c269efb8a91 /dev/opkbootstrap.mdwn
parentce500d16bd16716fea9615f81252d27113095116 (diff)
Write a page on opkbootstrap.
Diffstat (limited to 'dev/opkbootstrap.mdwn')
-rw-r--r--dev/opkbootstrap.mdwn81
1 files changed, 81 insertions, 0 deletions
diff --git a/dev/opkbootstrap.mdwn b/dev/opkbootstrap.mdwn
new file mode 100644
index 0000000..2ad19da
--- /dev/null
+++ b/dev/opkbootstrap.mdwn
@@ -0,0 +1,81 @@
+[[!meta title="opkbootstrap"]]
+
+opkbootstrap is a tool to bootstrap the installation of a basic root filesystem
+in a specified target directory. It will read package indices from a
+[[package_archive|dev/archive/layout]] to determine which packages must be
+installed, download the packages, unpack them into a target directory, and
+configure them for use.
+
+*opkbootstrap is a goal for [[release_1.0|dev/releases/1]].*
+
+*opkbootstrap is part of a project in the
+[[fall_2012_NJIT_CCS_Capstone|dev/capstone-2012f]].*
+
+
+Use Cases
+=========
+
+opkbootstrap will have two main types of uses. The first is installation of
+operating systems for use on hardware devices. opkbootstrap can be pointed to a
+package archive on a network or on local media (e.g. an installation CD).
+
+The other type of use is installation of development systems. Distribution
+developers will be able to use opkbootstrap to set up isolated systems in which
+they can build their packages. Additionally, opkbootstrap can be used to set up
+isolated systems managed by build daemon processes to automatically build
+packages.
+
+
+Portability Concerns
+====================
+
+opkbootstrap should be written to run on any operating system that at least
+mostly conforms to [POSIX.1-2008][posix.1-2008] XCU and has `tar` (or `pax`?)
+and `chroot` programs.
+
+opkbootstrap needs to perform the tasks of a package manager (resolving
+dependencies, unpacking packages, etc.) because opkg is not expected to be
+present on host systems.
+
+
+Status
+======
+
+[Development has begun][opkbootstrap-git] on opkbootstrap. It currently
+downloads old ipkg-style source lists, finds essential packages, and unpacks
+packages. To do are resolving dependencies, downloading packages, setting up an
+isolated environment ("chroot"), and running maintainer scripts.
+
+
+References
+==========
+
+debootstrap
+-----------
+
+opkbootstrap will be similar in function to [debootstrap][debootstrap]
+([repository][debootstrap-git]) of Debian and Debian-derived distributions.
+
+debootstrap is therefore a good reference for functionality and logic.
+
+ipkg
+----
+
+[ipkg][ipkg-wp] ([old Handhelds.org page][ipkg-hho]), "the itsy package
+management system", is the predecessor to opkg. ipkg was originally written by
+Carl D. Worth in 2001 as a monolithic UNIX shell script, complete with "black
+magic" and "blacker magic" sed scripts. The old ipkg script can still be found
+in some old repositories, such as [OpenWRT's][ipkg-openwrt] and
+[NSLU2's][ipkg-nslu2].
+
+ipkg may be a decent reference for package unpacking and configuration.
+
+
+[posix.1-2008]: http://pubs.opengroup.org/onlinepubs/9699919799/
+[opkbootstrap-git]: http://git.os.libiquity.com/opkbootstrap/opkbootstrap.git/
+[debootstrap]: https://wiki.debian.org/Debootstrap
+[debootstrap-git]: http://anonscm.debian.org/gitweb/?p=d-i/debootstrap.git
+[ipkg-wp]: https://en.wikipedia.org/wiki/Ipkg
+[ipkg-hho]: http://web.archive.org/web/20100823030002/http://www.handhelds.org/moin/moin.cgi/Ipkg
+[ipkg-openwrt]: https://dev.openwrt.org/browser/trunk/root/bin/ipkg?rev=113
+[ipkg-nslu2]: http://svn.nslu2-linux.org/svnroot/optware/trunk/sources/optware-bootstrap/ipkg.sh