Message ID | 55E31540.3050600@iki.fi |
---|---|
State | Superseded |
Headers | show |
I created a Luci implementation that utilises this opkg change to show the .ipk size to the user in GUI: https://github.com/openwrt/luci/issues/19#issuecomment-136397807 On 30.8.2015 17:37, Hannu Nyman wrote: > ... Luci might be extended to utilize the new options to e.g. answer > https://github.com/openwrt/luci/issues/19 >
On 30/08/2015 16:37, Hannu Nyman wrote: > '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 in the listing. > * Default behaviour is to print the list of available packages as > earlier: "name - version - description" > * with "--size" the output of is "name - version - size - description". > > All current functionality should continue working without any change. > Luci might be extended to utilize the new options to e.g. answer > https://github.com/openwrt/luci/issues/19 > > Signed-off-by: Hannu Nyman < hannu.nyman@iki.fi> > > Looks good but needs a rebase to apply. can you send a V2 please John --- > > Tested with ar71xx / WNDR3700: > > opkg package size increase is minimal: > > root@OpenWrt2:~# ls -l /bin/opkg > -rwxr-xr-x 1 root root 101532 Aug 29 23:05 /bin/opkg > > root@OpenWrt2:~# opkg install > /tmp/opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_ar71xx.ipk > Upgrading opkg on root from 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-8 > to 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9... > Configuring opkg. > > root@OpenWrt2:~# ls -l /bin/opkg > -rwxr-xr-x 1 root root 101548 Aug 29 23:05 /bin/opkg > > --size works as expected: > (packages not from "packages" feed have been removed for clarity) > > root@OpenWrt2:/tmp# opkg list j* > jansson - 2.7-1 - Jansson is a C library for encoding, decoding and > manipulating JSON data > joe - 4.0-4 - Joe is world-famous Wordstar like text editor, that also > features > Emacs and Pico emulation > jpeg-tools - 9a-1 - The Independent JPEG Group's JPEG manipulation tools > json4lua - 0.9.53-1 - JSON and JSONRPC for Lua > > root@OpenWrt2:/tmp# opkg list --size j* > jansson - 2.7-1 - 19182 - Jansson is a C library for encoding, decoding > and manipulating JSON data > joe - 4.0-4 - 173911 - Joe is world-famous Wordstar like text editor, > that also features > Emacs and Pico emulation > jpeg-tools - 9a-1 - 31188 - The Independent JPEG Group's JPEG > manipulation tools > json4lua - 0.9.53-1 - 7205 - JSON and JSONRPC for Lua > > ------------- > https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/packages/ > > > jansson_2.7-1_ar71xx.ipk 26-Aug-2015 > 05:20 19182 > joe_4.0-4_ar71xx.ipk 26-Aug-2015 > 05:20 173911 > jpeg-tools_9a-1_ar71xx.ipk 26-Aug-2015 > 00:04 31188 > json4lua_0.9.53-1_ar71xx.ipk 26-Aug-2015 > 05:21 7205 > > > > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel >
Index: package/system/opkg/Makefile =================================================================== --- package/system/opkg/Makefile (revision 46751) +++ package/system/opkg/Makefile (working copy) @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2014 OpenWrt.org +# Copyright (C) 2006-2015 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -12,7 +12,7 @@ PKG_NAME:=opkg PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d PKG_VERSION:=$(PKG_REV) -PKG_RELEASE:=8 +PKG_RELEASE:=9 PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=$(PKG_REV) Index: package/system/opkg/patches/250-add-print-package-size.patch =================================================================== --- package/system/opkg/patches/250-add-print-package-size.patch (revision 0) +++ package/system/opkg/patches/250-add-print-package-size.patch (working copy) @@ -0,0 +1,74 @@ +--- a/libopkg/opkg_conf.c ++++ b/libopkg/opkg_conf.c +@@ -69,6 +69,7 @@ opkg_option_t options[] = { + { "proxy_passwd", OPKG_OPT_TYPE_STRING, &_conf.proxy_passwd }, + { "proxy_user", OPKG_OPT_TYPE_STRING, &_conf.proxy_user }, + { "query-all", OPKG_OPT_TYPE_BOOL, &_conf.query_all }, ++ { "size", OPKG_OPT_TYPE_BOOL, &_conf.size }, + { "tmp_dir", OPKG_OPT_TYPE_STRING, &_conf.tmp_dir }, + { "verbosity", OPKG_OPT_TYPE_INT, &_conf.verbosity }, + #if defined(HAVE_OPENSSL) +--- a/libopkg/opkg_conf.h ++++ b/libopkg/opkg_conf.h +@@ -88,6 +88,7 @@ struct opkg_conf + int query_all; + int verbosity; + int noaction; ++ int size; + int download_only; + char *cache; + +--- a/src/opkg-cl.c ++++ b/src/opkg-cl.c +@@ -52,6 +52,7 @@ enum { + ARGS_OPT_AUTOREMOVE, + ARGS_OPT_CACHE, + ARGS_OPT_FORCE_SIGNATURE, ++ ARGS_OPT_SIZE, + }; + + static struct option long_options[] = { +@@ -98,6 +99,7 @@ static struct option long_options[] = { + {"offline-root", 1, 0, 'o'}, + {"add-arch", 1, 0, ARGS_OPT_ADD_ARCH}, + {"add-dest", 1, 0, ARGS_OPT_ADD_DEST}, ++ {"size", 0, 0, ARGS_OPT_SIZE}, + {"test", 0, 0, ARGS_OPT_NOACTION}, + {"tmp-dir", 1, 0, 't'}, + {"tmp_dir", 1, 0, 't'}, +@@ -207,6 +209,9 @@ args_parse(int argc, char *argv[]) + } + free(tuple); + break; ++ case ARGS_OPT_SIZE: ++ conf->size = 1; ++ break; + case ARGS_OPT_NOACTION: + conf->noaction = 1; + break; +@@ -310,6 +315,7 @@ usage() + printf("\t--download-only No action -- download only\n"); + printf("\t--nodeps Do not follow dependencies\n"); + printf("\t--nocase Perform case insensitive pattern matching\n"); ++ printf("\t--size Print package size when listing available packages\n"); + printf("\t--force-removal-of-dependent-packages\n"); + printf("\t Remove package and all dependencies\n"); + printf("\t--autoremove Remove packages that were installed\n"); +--- a/libopkg/opkg_cmd.c ++++ b/libopkg/opkg_cmd.c +@@ -47,10 +47,12 @@ static void + print_pkg(pkg_t *pkg) + { + char *version = pkg_version_str_alloc(pkg); ++ printf("%s - %s", pkg->name, version); ++ if (conf->size) ++ printf(" - %lu", pkg->size); + if (pkg->description) +- printf("%s - %s - %s\n", pkg->name, version, pkg->description); +- else +- printf("%s - %s\n", pkg->name, version); ++ printf(" - %s", pkg->description); ++ printf("\n"); + free(version); + } +
'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 in the listing. * Default behaviour is to print the list of available packages as earlier: "name - version - description" * with "--size" the output of is "name - version - size - description". All current functionality should continue working without any change. Luci might be extended to utilize the new options to e.g. answer https://github.com/openwrt/luci/issues/19 Signed-off-by: Hannu Nyman < hannu.nyman@iki.fi> --- Tested with ar71xx / WNDR3700: opkg package size increase is minimal: root@OpenWrt2:~# ls -l /bin/opkg -rwxr-xr-x 1 root root 101532 Aug 29 23:05 /bin/opkg root@OpenWrt2:~# opkg install /tmp/opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_ar71xx.ipk Upgrading opkg on root from 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-8 to 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9... Configuring opkg. root@OpenWrt2:~# ls -l /bin/opkg -rwxr-xr-x 1 root root 101548 Aug 29 23:05 /bin/opkg --size works as expected: (packages not from "packages" feed have been removed for clarity) root@OpenWrt2:/tmp# opkg list j* jansson - 2.7-1 - Jansson is a C library for encoding, decoding and manipulating JSON data joe - 4.0-4 - Joe is world-famous Wordstar like text editor, that also features Emacs and Pico emulation jpeg-tools - 9a-1 - The Independent JPEG Group's JPEG manipulation tools json4lua - 0.9.53-1 - JSON and JSONRPC for Lua root@OpenWrt2:/tmp# opkg list --size j* jansson - 2.7-1 - 19182 - Jansson is a C library for encoding, decoding and manipulating JSON data joe - 4.0-4 - 173911 - Joe is world-famous Wordstar like text editor, that also features Emacs and Pico emulation jpeg-tools - 9a-1 - 31188 - The Independent JPEG Group's JPEG manipulation tools json4lua - 0.9.53-1 - 7205 - JSON and JSONRPC for Lua ------------- https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/packages/ jansson_2.7-1_ar71xx.ipk 26-Aug-2015 05:20 19182 joe_4.0-4_ar71xx.ipk 26-Aug-2015 05:20 173911 jpeg-tools_9a-1_ar71xx.ipk 26-Aug-2015 00:04 31188 json4lua_0.9.53-1_ar71xx.ipk 26-Aug-2015 05:21 7205