Subject: [alpine-aports] Re: [alpine-devel] bridge utils in Alpine Linux

From: Isaac Dunham <[email-masked]>
Date: Sun, 31 Jan 2016 17:21:33 -0800

On Sun, Jan 31, 2016 at 09:41:51AM +0000, Paul Roland wrote:
> I am not impatient, got it compiled afterwards, it's a small utility. What
> worries me is the fact that bridge-utils package exists and it's very empty
> and I had to find that on the hard way. There may be other packages in this
> situation...

Well, here's my best shot at finding them so far:
apk search | sed -e 's/-[0-9.]*-r[0-9]*$//g'  \
	-e 's/-[0-9.]*_[a-z0-9]*-r[0-9]*$//g' \
	| grep -ve '-r[0-9][0-9]*$' | xargs apk info -s \
	| grep -B1 '^4096$'

Technically, this lists all packages for which 'installed size' is 4096:
in other words, no contents or one small file.
Some of these are false positives or deliberate transitional packages.

This lists 65 packages, which are as follows:
xf86-video-modesetting-0.9.0-r6
libowfat-0.28-r1
mysql-bench-10.1.9-r2
docs-0.2-r0
lang-0.1-r0
lua-sql-postgres-2.3.0-r3
lua-cloud_storage-0.1.0-r3
libc-dev-0.7-r0
ppp-2.4.7-r3
lxc-lvm-1.1.5-r3
bbsuid-0.6-r0
lua-rex-pcre-2.8.0-r0
jpeg-dev-8-r6
fonts-extra-1.0-r0
alpine-sdk-0.4-r3
network-extras-1.1-r0
lua-sircbot-0.4-r0
abiword-plugins-3.0.1-r1
lua-zlib-0.3-r0
upgrade-notify-0.1-r0
libjpeg-8-r6
lua-rex-2.8.0-r0
patchwork-mysql-0_git20150420-r7
pkgconfig-0.25-r1
luarocks-2.3.0-r0
lua-struct-0.2-r2
lua-rex-posix-2.8.0-r0
tut-20090830-r0
gtk+-dev-2.24-r1
asio-1.10.6-r0
build-base-0.4-r1
gtk+-2.24-r1
lua-pc-1.0.0-r9
lua-lzlib-0.4.3-r0
lua-feedparser-0.71-r0
mysql-10.1.9-r2
lua-curses-33.3.1-r5
acf-lib-0.9.0-r1
lua-maxminddb-0.1-r1
jpeg-8-r6
lua-mimetypes-1.0.0-r0
mysql-client-10.1.9-r2
lua-sqlite-0.9.3-r2
patchwork-postgresql-0_git20150420-r7
lua-sql-odbc-2.3.0-r3
libc-utils-0.7-r0
lua-sql-sqlite3-2.3.0-r3
alpine-desktop-2.5-r0
lua-lpeg-0.12.2-r0
texlive-full-20150521-r4
vlc-plugins-2.2.1-r6
bridge-utils-1.5-r2
lua-inspect-3.0.2-r0
tesseract-data-3.02-r0
ttf-noto-2015.04.20-r0
apk-post-messages-0.10-r0
mdds-0.12.1-r0
fonts-base-1.0-r0
lua-hiredis-0.2.1-r0
man-1.13.3-r5
libreoffice-5.0.3.2-r1
xfce4-4.12.0-r0
lua-sql-mysql-2.3.0-r3
opennebula-node-kvm-4.9.80-r0
lua-date-2.1.1-r0

If you strip off the version numbers and send that to 'pkglist',
here's an attempt at eliminating meta/transitional packages:
for pkg in `cat pkglist `; do
	F=`apk info -d $pkg|head -n 2 | tail -n 1`
	case "$F" in
		(*[Mm]eta*|*ummy*|*removed*|*[Ww]rapper*) ;;
		(*) echo $pkg - $F;;
	esac
done

Send the output to a file 'nullpkgs', and I find it's 39 lines long.
Now, looking for the real empties in those:
for f in `cut -d\  -f1 nullpkgs`; do
	apk fetch $f
	tar -tzf $f-* | grep ^.dummy >/dev/null && echo $f >> /tmp/truenulls
	rm -f $f-*.apk
done

That's 39 lines, no false positives there.
At least two of them (abiword-plugins and texlive-full) are metapackages.

So, nullpkgs is the list to look through.
I'm attaching it for the use of package maintainers.

HTH,
Isaac Dunham