path: root/dev/pkg/opkg/future.mdwn
diff options
Diffstat (limited to 'dev/pkg/opkg/future.mdwn')
1 files changed, 90 insertions, 0 deletions
diff --git a/dev/pkg/opkg/future.mdwn b/dev/pkg/opkg/future.mdwn
new file mode 100644
index 0000000..fe4b4b3
--- /dev/null
+++ b/dev/pkg/opkg/future.mdwn
@@ -0,0 +1,90 @@
+[[!meta title="Opkg in ProteanOS"]]
+ProteanOS uses [opkg][opkg] to manage packages after installation with
+[[prokit|dev/prokit]]. opkg has a long history through different umbrella
+projects and maintainers. After [more than three years since the 0.1.8
+release][pbarker-maint], regular releases were resumed in August/September 2013
+with the [0.2.x series][0.2.x-NEWS]. [Starting in December 2013][yocto-move],
+development of opkg was moved from Google Code to infrastructure of the Yocto
+Project, a project of the Linux Foundation that also serves as a home for
+BitBake, OpenEmbedded, and Poky.
+The Growing Lightweight Package Management System
+Development has continued in the 0.3.x series. Multiple maintainers and
+contributors have added various bugfixes, new features, and architectural
+improvements to make opkg a more modern and maintainable codebase.
+For a long time, opkg had an embedded copy of BusyBox's libbb for reading
+archives (as packages supported by opkg are doubly nested archive files). This
+copy of libbb had grown
+[[stale_and_heavily_patched|dev/todo/removing-libbb-from-opkg]]. Finally, [in
+2013/2014][drop-libbb-git], libbb was [replaced][add-libarchive] with
+[libarchive][libarchive]. This removed a large amount of old code from opkg,
+however it added a dependency on a large library that was never designed with
+the code size restraints of embedded systems in mind.
+And in August 2015, support for external dependency solver libraries was added,
+so as to remove additional complexity from opkg and leave dependency solving to
+another project. Unfortunately, this also [pulls][solver] in
+[another][solver-patch] large [library][oe-pw-libsolv], openSUSE's
+[libsolv][libsolv]. As of now, this dependency is still optional, and the
+original internal solver can still be used. However, the current maintainer has
+[indicated][libsolv-focus] that the internal solver will eventually be
+The Future of the Past
+ProteanOS currently [still uses][pro-opkg-cl] the [0.2.x series][0.2.x]. The
+increasing size of modern opkg (starting with the 0.3.x series) and its
+dependencies makes it increasingly unsuitable for small system distributions
+like ProteanOS. We will need to find a solution going forward.
+[OpenWrt][owrt] and [libreCMC][lcmc] use a [0.1.8+r618][opkg-owrt-lcmc] version
+(SVN revision 618, between 0.1.8 and 0.2.0) with [numerous local
+patches][owrt-patches]. LEDE [switched][lede-switch] their [opkg
+package][lede-pkgdata] to [their own fork][lede-fork], which is based on the
+same 0.1.8+r618 version that OpenWrt and libreCMC use.
+LEDE actively maintains their opkg fork and backports changes from upstream.
+This may be the best and easiest option for ProteanOS, although there are a
+couple of minor problems:
+ 1. It still has [libbb][lede-opkg-libbb], and
+ 2. It pulls in a new, but small, dependency: LEDE's [libubox][lede-libubox].
+Note also that the original Autoconf/Automake-based build system was
+[removed][lede-opkg-at] and [replaced][lede-opkg-cm] with CMake.