Commit Graph

27 Commits (1175a5b153061b677513fb75c5fe7b1a57dc2bd0)

Author SHA1 Message Date
Jo-Philipp Wich e1d1c31890 opkg: vfork external gzip command to uncompress data
Opkg's builtin decompression code is unsuitable to process nested archives as
it uses a single shared state and relies on undefined seek behaviour for pipes.

Rework the extraction logic to use the external gzip command as I/O filter for
decompressing data and remove the builtin inflate code entirely.

This shrinks the final opkg binary by about 4KB and results in less runtime
memory consumption due to efficient use of vfork() and less copy-on-write
operations in the forked child.

Rework by Felix: create a thread that relays data to the gzip process
instead of using a fragile poll loop

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 years ago
Stijn Tintel dc5f496a0d Revert "opkg: vfork external gzip command to uncompress data"
This reverts commit 0090adcd5c.
It breaks reading package list in /tmp/opkg-lists, making it impossible
to install packages from feeds in snapshots.
8 years ago
Jo-Philipp Wich 0090adcd5c opkg: vfork external gzip command to uncompress data
Opkg's builtin decompression code is unsuitable to process nested archives as
it uses a single shared state and relies on undefined seek behaviour for pipes.

Rework the extraction logic to use the external gzip command as I/O filter for
decompressing data and remove the builtin inflate code entirely.

This shrinks the final opkg binary by about 4KB and results in less runtime
memory consumption due to efficient use of vfork() and less copy-on-write
operations in the forked child.

Rework by Felix: create a thread that relays data to the gzip process
instead of using a fragile poll loop

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 years ago
Jonas Gorski 88a14bfd1d opkg: run prerm scripts for the old version also on upgrade
To make sure we properly restart services on upgrade we need to
call the prerm script of the old package, in case the init script
changes (or vanishes).

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Jo-Philipp Wich <jo@mein.io>
8 years ago
Jonas Gorski a58f176ef2 opkg: set PKG_UPGRADE also when running scripts for the old package
Allow scripts from the package to be upgraded to be aware of being
upgraded.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Jo-Philipp Wich <jo@mein.io>
8 years ago
Jo-Philipp Wich bba8a1a9ba Revert "opkg: use vfork on gz_open by default (FS#120)"
This reverts commit 763f5d7873.

Currently the vfork() code path in opkg is broken and relies on unsupported
ftello() / fseeko() operations on pipes - we need to restructure the code
before we can reconsider this approach.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
8 years ago
Jo-Philipp Wich d0b88b6067 Revert "opkg: disable the use of vfork for the host build"
This reverts commit 02e3c718e9.

Currently the vfork() code path in opkg is broken and relies on unsupported
ftello() / fseeko() operations on pipes - we need to restructure the code
before we can reconsider this approach.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
8 years ago
Felix Fietkau 02e3c718e9 opkg: disable the use of vfork for the host build
Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 years ago
Felix Fietkau 763f5d7873 opkg: use vfork on gz_open by default (FS#120)
Reduces memory consumption and binary size

Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 years ago
Jo-Philipp Wich 4c60a6f803 opkg: fix use-after-free with duplicate packages on the command line
When the same package file is specified multiple times on the opkg install
command line, the name pointer on the argv array becomes stale after the
package structures have been merged, leading to invalid memory accesses
upon install.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
8 years ago
John Crispin 1268b2e899 opkg: Fix handling of sha256sums for conffiles
MD5s are shorter than SHA256, so reading buffer has to be bigger to read the
whole hash.

Signed-off-by: Michal Hrusecky <michal.hrusecky@nic.cz>

SVN-Revision: 48917
8 years ago
John Crispin 61c839ddd7 opkg: Make opkg understand old md5
Opkg now uses sha256 by default and expects them. Making it optionally
understand md5s also and detect md5 sum so we can migrate from configuration
that used md5.

Signed-off-by: Michal Hrusecky <Michal.Hrusecky@nic.cz>

SVN-Revision: 48867
8 years ago
John Crispin 5bf8dd5e5e opkg: Extend 'opkg list' command to optionally display package size
'opkg list' command only displays the available packages' name, version and
description. It would be useful to also see the approximate size of the
available package.

This patch extends "opkg list" command with "--size" to optionally show also
the *.ipk size.
* Default behaviour is to list the available packages as earlier:
  "name - version - description"
* with "--size" the output of is "name - version - size - description".

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

SVN-Revision: 46980
9 years ago
Jo-Philipp Wich 6497406220 opkg: expose lists_dir option as command line argument
Expose the "lists_dir" configuration file option as command line
switch so that we can override it for the Image Builder environment.

Also add a more standard PKG_MAINTAINER variable while touching
the Makefile.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 46911
9 years ago
John Crispin 72eb909a0d opkg: Fix --force-checksum when using SHA256
Allow installing packages with mismatching SHA256 checksums via

$ opkg install --force-checksum $PACKAGE

Signed-off-by: Florian Fieber <florian@florianfieber.de>

SVN-Revision: 45904
9 years ago
Felix Fietkau 4d67af61be opkg: fix md5 related #ifdef (thx, swalker)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45447
9 years ago
John Crispin cc9a392e49 opkg: drop md5 in favour of sha256
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 45437
9 years ago
Felix Fietkau dde8214d16 opkg: add patch to circumvent signature checks on the command line
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45285
9 years ago
Felix Fietkau 3efd1303d8 opkg: add patch for supporting signature checking through usign
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45284
9 years ago
John Crispin ac09fd9a13 opkg: make PKG_UPGRADE available during preinst hook
https://dev.openwrt.org/ticket/18479

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43581
10 years ago
John Crispin 5698e62ecb opkg: the PKG_UPGRADE env was not set properly
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43493
10 years ago
John Crispin b05c2aad3c opkg: indicate upgrade vs install
when running the postinst trigger we set PKG_UPGRADE=1 if this is an upgrade
and not an install.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42468
10 years ago
Jo-Philipp Wich 1f3a36b9c3 opkg: introduce a --force-checksum cmdline flag to be ale to ignore mismatching md5sums
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 40766
10 years ago
Felix Fietkau 594442a37e opkg: do not add blank "Provides:" fields to package metadata
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39039
11 years ago
Steven Barth cde419ebfc opkg: ignore empty fields in package lists
This is to work around issues with package list generators creating
empty fields in some environments.

Based on a patch by Paul Selkrik <pselkrik@isc.org>
Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 38390
11 years ago
Steven Barth 2d5448afb5 opkg: add build variant with signature support
SVN-Revision: 38220
11 years ago
John Crispin 4ebf19b48f packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37007
11 years ago