see inline ...

On 16/09/2015 10:09, 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.
> * 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.ny...@iki.fi>
> 
> ---
> Patch v2: bump opkg PKG_RELEASE and rebase
> 
> This patch superseeds https://patchwork.ozlabs.org/patch/512231/
> 
> Example:
> root@OpenWrt:~# opkg list kr*
> krb5-client - 1.13.1-1 - Kerberos 5 Client
> krb5-libs - 1.13.1-1 - Kerberos 5 Shared Libraries
> krb5-server - 1.13.1-1 - Kerberos 5 Server
> 
> root@OpenWrt:~# opkg list --size kr*
> krb5-client - 1.13.1-1 - 37297 - Kerberos 5 Client
> krb5-libs - 1.13.1-1 - 667427 - Kerberos 5 Shared Libraries
> krb5-server - 1.13.1-1 - 122460 - Kerberos 5 Server
> 
> Example 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
> 
> 
> 
> Index: package/system/opkg/Makefile
> ===================================================================
> --- package/system/opkg/Makefile      (revision 46946)
> +++ package/system/opkg/Makefile      (working copy)

^^^ this is against the wrong base and git am does not apply it because
of that. how did you generate the patch ?



> @@ -12,7 +12,7 @@
>  PKG_NAME:=opkg
>  PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
>  PKG_VERSION:=$(PKG_REV)
> -PKG_RELEASE:=9
> +PKG_RELEASE:=10
>  
>  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'},
> +@@ -212,6 +214,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;
> +@@ -315,6 +320,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);
> + }
> + 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
> 
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to