openwrt/scripts
Paul Spooren 0c87304d2b scripts: add size_compare.sh
As package size changes are a continuous topic on the mailing list this
scripts helps developers to compare their local package modifications
against latest upstream.

The script downloads the latest package indexes based on env variables
or the `.config` file. The script compares the actual installed size
(data.tar.gz) or the IPK package size.

An example output is found below:

```
user@dawn:~/src/openwrt/openwrt$ ./scripts/size_compare.sh
Compare packages of ath79/tiny/mips_24kc:
dropbear busybox iw ubus

Checking configuration difference
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   554  100   554    0     0    336      0  0:00:01  0:00:01 --:--:--   336

 --- start config diff ---
--- /tmp/config.DDjwVh-LOCAL	2020-11-23 09:08:28.913203068 -1000
+++ /tmp/config.DDjwVh-UPSTREAM	2020-11-23 09:08:36.369240887 -1000
@@ -1,5 +1,9 @@
+CONFIG_ALL_KMODS=y
+CONFIG_ALL_NONSHARED=y
 CONFIG_AUTOREBUILD=y
+CONFIG_AUTOREMOVE=y
--- 8< ---
 CONFIG_BINARY_FOLDER=""
+CONFIG_BUILDBOT=y
+CONFIG_TARGET_ALL_PROFILES=y
 CONFIG_TARGET_ROOTFS_DIR=""
 CONFIG_USE_SSTRIP=y
 CONFIG_USE_UCLIBCXX=y
 --- end config diff ---

Checking installed size

Fetching latest package indexes...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 80634  100 80634    0     0  33499      0  0:00:02  0:00:02 --:--:-- 33485
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54082  100 54082    0     0  24252      0  0:00:02  0:00:02 --:--:-- 24252

Comparing package sizes...
Change 	Local	Remote 	Package
+271	51386	51115	base-files
+123	705241	705118	bnx2-firmware
+86	17209	17123	fstools
+22	47989	47967	procd
+21	208311	208290	busybox
+19	67181	67162	netifd

```

I plan to integrate this script into the CI so we have a summary how
sizes change over different architectures.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-11-24 18:18:48 -10:00
..
config scripts: update SPDX license names 2020-09-22 20:36:04 +02:00
flashing scripts/flashing/flash.sh: remove trailing whitespaces 2020-05-24 14:44:00 +02:00
arm-magic.sh scripts/arm-magic.sh: switch to /bin/sh 2020-01-02 23:59:20 +01:00
brcmImage.pl merge: targets: update image generation and targets 2017-12-08 19:41:18 +01:00
bundle-libraries.sh scripts: bundle-libraries.sh: fix broken SDK compiler 2020-11-02 08:39:49 +01:00
cfe-bin-header.py scripts: cfe-bin-header: fix shebang 2020-05-19 08:05:22 +02:00
cfe-partition-tag.py scripts: add CFE Partition Tags support 2020-05-21 19:11:24 +02:00
cfe-wfi-tag.py scripts: cfe-wfi-tag: fix shebang 2020-05-19 08:06:29 +02:00
checkpatch.pl scripts: checkpatch.pl: suppress warnings about MAINTAINERS 2020-11-18 21:50:53 +01:00
clang-gcc-wrapper build: fix build on Mac OS X 10.9 2013-10-28 15:15:09 +00:00
clean-package.sh build: Fix directory symlinks not removed when cleaning STAGING_DIR 2020-03-01 21:35:59 +01:00
cleanfile build: remove absolute path to perl and replace with /usr/bin/env perl 2017-05-02 14:33:58 +02:00
cleanpatch build: remove absolute path to perl and replace with /usr/bin/env perl 2017-05-02 14:33:58 +02:00
combined-ext-image.sh combined-ext-image.sh: generate image in temp dir 2018-01-13 07:58:46 +01:00
combined-image.sh scripts: make all scripts executable 2017-07-14 04:09:16 +02:00
config.guess scripts: update config.guess and config.sub 2018-11-01 17:16:52 +01:00
config.rpath add config.rpath and link it in autotools.mk if missing, some packages might need it, especially users of lib-link.m4 or iconv.m4 2011-02-27 15:39:27 +00:00
config.sub scripts: update config.guess and config.sub 2018-11-01 17:16:52 +01:00
const_structs.checkpatch scripts: add const_structs.checkpatch for checkpatch.pl 2020-11-18 21:50:58 +01:00
deptest.sh scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
diffconfig.sh scripts/diffconfig.sh: fix output if TARGET_PER_DEVICE_ROOTFS is set 2016-10-06 22:00:10 +02:00
dl_cleanup.py dl_cleanup: Fix linux blacklist 2015-10-07 10:51:18 +00:00
dl_github_archive.py scripts/dl_github_archive.py: fix python3 str, bytes confusion 2019-11-04 11:11:19 +00:00
download.pl scripts: download.pl: retry download using filename 2020-11-20 02:35:43 +01:00
dump-target-info.pl scripts: Add Buildbot dump-target-info.pl script 2020-08-04 09:28:39 +02:00
env scripts/env: Fix 56f813674a scripts/env: use command -v instead of which 2020-07-12 13:29:28 +01:00
ext-toolchain.sh scripts: Probe external toolchains for libthread-db 2017-05-11 13:43:01 -07:00
feeds scripts/feeds: fix accepting "-" in feed type string 2019-09-15 19:54:03 +02:00
fixup-makefile.pl fixup-makefile.pl: fixup when PKG_SOURCE is defined elsewhere 2018-07-05 01:30:57 +08:00
functions.sh images: fix boot failures on NAND with small sub pages 2019-09-14 11:43:19 +02:00
gen_image_generic.sh scripts/gen_image_generic.sh: fix more shellcheck warnings 2020-07-11 14:42:32 +02:00
gen-dependencies.sh scripts/gen-dependencies.sh: use /bin/sh 2020-01-01 17:01:02 +01:00
get_source_date_epoch.sh build: get_source_date_epoch allow external repos 2020-08-31 11:18:06 +01:00
getver.sh scripts/getver.sh: silence rev-list errors 2020-11-02 08:39:49 +01:00
ipkg-build scripts: ipkg-build: simplify uid/gid resolving 2020-09-14 17:11:04 +02:00
ipkg-make-index.sh scripts: ipkg-make-index.sh: dereference symbolic links 2019-01-31 12:35:29 +01:00
ipkg-remove scripts: ipkg-remove: handle existing .ipk files without SourceName field 2019-01-21 16:35:40 +01:00
json_add_image_info.py build: store SOURCE_DATE_EPOCH in JSON info files 2020-11-12 18:19:44 +01:00
json_overview_image_info.py build,json: fix compatibility with Python 3.5 2020-07-13 22:45:04 +02:00
kconfig.pl scripts/kconfig.pl: allow regex syntax in filtering out config entries 2020-11-13 13:17:53 +01:00
linksys-image.sh build: add a script for generating Linksys factory images 2019-01-26 21:43:07 +01:00
make-ipkg-dir.sh branding: add LEDE branding 2016-03-24 22:40:13 +01:00
md5sum improve support for building on mac os x by improving detection of missing components 2009-01-25 19:00:43 +00:00
metadata.pm build: add option to mark devices as BROKEN 2020-07-30 21:49:07 +02:00
mkhash.c scripts: mkhash fail on hashing a folder 2020-11-09 10:54:29 +00:00
mkits-qsdk-ipq-image.sh build: add helpers for generating QSDK sysupgrade compatible images 2019-02-25 17:36:16 +01:00
mkits.sh scripts: mkits.sh make it possible to specify fdt@# 2020-09-25 19:32:33 +02:00
om-fwupgradecfg-gen.sh ar71xx: Skip more hashed blocks for OM2P(-HS) 64k variant 2018-09-10 10:01:58 +02:00
package-metadata.pl metadata: handle ABI version rebuild tracking for transient dependencies 2019-06-21 12:03:43 +02:00
pad_image scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
patch-kernel.sh scripts/patch-kernel.sh: remove -E flag to preserve empty files touched by patches 2015-08-25 07:46:32 +00:00
patch-specs.sh toolchain: Add GCC 9.1.0 release 2019-06-16 16:40:08 +02:00
portable_date.sh scripts: fix GNU data invocation 2016-02-01 10:43:27 +00:00
qemustart scripts/qemustart: update malta to use MIPS64 R2 cpu 2020-10-11 16:16:24 +02:00
redboot-script.pl scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
relink-lib.sh base-files: relink uclibc and libgcc libraries to remove leftovers of the statically linked initial libgcc saves a few kb and gets rid of unused not exported functions as well should also improve the reliability of mklibs 2011-03-01 05:40:38 +00:00
remote-gdb Fix handling of BUILD_SUFFIX in remote-gdb script 2019-09-01 18:38:05 +02:00
rstrip.sh scripts: rstrip.sh: allow rpath with sole $ORIGIN token 2018-12-19 15:36:05 +01:00
sercomm-crypto.py scripts: support Sercomm crypto 2020-06-02 08:37:54 +02:00
sercomm-partition-tag.py scripts: support Sercomm partition tags 2020-06-02 08:33:11 +02:00
sercomm-payload.py scripts: support Sercomm load tags 2020-06-02 13:06:42 +02:00
sign_images.sh build: add script to sign packages 2019-10-21 14:07:08 +02:00
size_compare.sh scripts: add size_compare.sh 2020-11-24 18:18:48 -10:00
slugimage.pl scripts: Replace obsolete POSIX tmpnam in slugimage.pl with File::Temp function 2018-06-05 10:07:42 -04:00
spelling.txt scripts: add spelling.txt for checkpatch.pl 2020-11-12 18:21:55 +01:00
srecimage.pl treewide: replace jow@openwrt.org with jo@mein.io 2016-06-07 11:42:52 +02:00
strip-kmod.sh scripts/strip-kmod.sh: harmonize leading whitespaces 2019-12-31 11:41:07 +01:00
symlink-tree.sh scripts/symlink-tree.sh: use /bin/sh 2019-12-31 11:43:15 +01:00
sysupgrade-tar.sh images: fix boot failures on NAND with small sub pages 2019-09-14 11:43:19 +02:00
target-metadata.pl build: define PWM_SUPPORT arch feature flag 2020-09-25 19:32:33 +02:00
time.pl scripts: time.pl: Don't print the time on stderr 2019-07-03 07:45:00 +02:00
timestamp.pl fix timestamp checks for build system paths which have '.svn' in their directory name 2010-04-14 22:21:15 +00:00
ubinize-image.sh ubinize-image: set image sequence from SOURCE_DATE_EPOCH 2019-11-03 04:20:21 +01:00