Date: Fri, 29 Jul 2022 00:52:36 -0700 From: Xin Li <delphij@delphij.net> To: Eugene Grosbein <eugen@grosbein.net>, d@delphij.net, freebsd-current <freebsd-current@freebsd.org>, freebsd-hackers@freebsd.org Subject: Re: Proposal: remove /usr/bin/minigzip Message-ID: <c257b8eb-6631-e3d1-79ef-8612a1edb91a@delphij.net> In-Reply-To: <b946c9ab-7586-12ca-61cd-e2e7799c3626@grosbein.net> References: <0d8e1b38-bcd2-0875-1864-3385c502646d@delphij.net> <b946c9ab-7586-12ca-61cd-e2e7799c3626@grosbein.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7/28/22 23:24, Eugene Grosbein wrote: > 29.07.2022 13:12, Xin Li пишет: >> Hi, >> >> I'd like to remove /usr/bin/minigzip , a patch is available at: >> >> https://reviews.freebsd.org/D35979 >> >> The minigzip is originally an example application shipped with zlib to demonstrate how to use it to implement basic functionality of gzip. It was connected to the base system in 1997, mainly because there wasn't a GPL-free implementation of gzip(1): >> >> https://cgit.freebsd.org/src/commit/usr.bin/minigzip?id=85e55f7ab8473307fb16c5bce8c2e933a317215b >> >> Now we already have a GPL-free gzip(1) implementation in base system for quite a while, so it seems that there isn't much value of keeping minigzip around. A quick grep suggests that it's not being used by the base system anywhere, nor in the ports tree. >> >> Any objections? > > Have you considered embedded applications (crunchgen etc.)? Yes, but I don't think it's being used in real life anywhere, base system crunchgen examples, including rescue and tools/bsdbox, are all using the real gzip. > In 13.1/amd64, /usr/bin/minigzip binary is about 11KB and links with libc and libz only. > > OTOH, /usr/bin/gzip is about six times larger (64KB) and additionally needs libbz2, liblzma, libmd and libthr. It's a little bit unfair to compare the sizes of the executables directly :-) After all, the C library accounted for 94.4% and 75.4% of space for minigzip and gzip respectively: $ F=/usr/bin/minigzip; du -Akc $(echo ${F} $(ldd -f '%p\n' ${F} | grep ^/ | sort)) 12 /usr/bin/minigzip 1939 /lib/libc.so.7 104 /lib/libz.so.6 2054 total $ F=/usr/bin/gzip; du -Akc $(echo ${F} $(ldd -f '%p\n' ${F} | grep ^/ | sort)) 63 /usr/bin/gzip 1939 /lib/libc.so.7 107 /lib/libmd.so.6 122 /lib/libthr.so.3 104 /lib/libz.so.6 77 /usr/lib/libbz2.so.4 163 /usr/lib/liblzma.so.5 2573 total So yes, gzip is bigger, but arguably it's just about 0.5MiB, or 25% larger, and among that 2573KB, 2510KB or 97.6% was shared library. But for applications that really want to have smaller footprint, bzip2 might be a better alternative -- the binary is bigger than minigzip, but library was smaller than zlib so the total size is actually a little bit smaller: $ F=/usr/bin/bzip2; du -Akc $(echo ${F} $(ldd -f '%p\n' ${F} | grep ^/ | sort)) 34 /usr/bin/bzip2 1939 /lib/libc.so.7 77 /usr/lib/libbz2.so.4 2050 total (It's true that zlib is a much more popular library and is used in more scenarios, like ppp, etc., so in reality this might actually added 99kb (=34+77-12), I just wanted to say that there are other options, and if minigzip is not really being used, building it on every FreeBSD machines doesn't seem to be a good use of resources). Cheers,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c257b8eb-6631-e3d1-79ef-8612a1edb91a>