I was wondering which packages took the most time to build, here is a short script I use:


genlop -nt '*' |
tail -n +3 |
sed -n '
1~3 {x;b}
3~3 d
# prefix 0
s/ \([0-9] \)/ 0\1/g
# remove "," and "and"
s/\(,\|and \)//g
# remove tailing dot
/merge time/ s/\.$//
# remove plural
s/\(hour\|minute\|second\)s/\1/g
s/\([0-9]\+\) second/A \1/
s/\([0-9]\+\) minute/B \1/
s/\([0-9]\+\) hour/C \1/
G
s/\n//
# remove extra heading spaces
s/^ \+//
p
'

Sample output:


$ sudo ./t.sh | sort | tac | head -30 | nl
Password:
1 merge time: C 03 B 30 A 12 Sun Jul 5 02:56:18 2009 >>> app-office/openoffice-3.0.0
2 merge time: C 03 B 02 A 24 Sun Sep 4 17:14:57 2011 >>> www-client/chromium-13.0.782.215
3 merge time: C 02 B 50 A 19 Mon Jan 16 13:16:09 2012 >>> www-client/chromium-16.0.912.75
4 merge time: C 02 B 12 A 34 Mon Feb 7 22:29:16 2011 >>> www-client/chromium-9.0.597.84
5 merge time: C 02 B 11 A 26 Mon Dec 27 02:13:51 2010 >>> www-client/chromium-8.0.552.224
6 merge time: C 02 B 07 A 52 Fri Jul 16 20:53:40 2010 >>> www-client/chromium-6.0.466.0
7 merge time: C 02 B 04 A 42 Sun Feb 19 06:16:00 2012 >>> www-client/chromium-17.0.963.56
8 merge time: C 01 B 56 A 47 Sun Aug 15 03:13:04 2010 >>> www-client/chromium-6.0.490.1
9 merge time: C 01 B 54 A 49 Tue Jul 6 10:46:18 2010 >>> www-client/chromium-6.0.453.1
10 merge time: C 01 B 54 A 43 Wed Mar 28 05:12:07 2012 >>> www-client/chromium-17.0.963.83
11 merge time: C 01 B 49 A 45 Mon Jun 28 18:56:56 2010 >>> www-client/chromium-6.0.437.3
12 merge time: C 01 B 46 A 28 Sat Jul 24 02:53:00 2010 >>> www-client/chromium-6.0.472.0
13 merge time: C 01 B 43 Thu Feb 23 10:19:39 2012 >>> sys-devel/gcc-4.5.3-r2
14 merge time: C 01 B 41 A 47 Fri Aug 13 02:40:04 2010 >>> www-client/chromium-6.0.472.33
15 merge time: C 01 B 40 A 02 Thu Oct 27 15:31:02 2011 >>> www-client/firefox-7.0.1-r1
16 merge time: C 01 B 32 A 29 Wed Apr 14 08:34:10 2010 >>> www-client/chromium-5.0.371.0
17 merge time: C 01 B 29 A 42 Wed Aug 4 18:32:28 2010 >>> www-client/chromium-6.0.472.14
18 merge time: C 01 B 28 A 59 Mon Jul 12 07:17:58 2010 >>> www-client/chromium-6.0.458.1
19 merge time: C 01 B 28 A 26 Sat Aug 28 08:28:48 2010 >>> www-client/chromium-7.0.503.1
20 merge time: C 01 B 27 A 17 Fri Oct 29 18:41:39 2010 >>> www-client/chromium-7.0.517.41
21 merge time: C 01 B 23 A 33 Tue Jul 26 21:19:18 2011 >>> www-client/firefox-5.0-r2
22 merge time: C 01 B 23 A 17 Fri Apr 16 07:54:08 2010 >>> www-client/chromium-5.0.375.3
23 merge time: C 01 B 21 A 52 Sat May 22 01:58:47 2010 >>> www-client/chromium-6.0.408.1
24 merge time: C 01 B 21 A 46 Wed May 5 17:56:27 2010 >>> www-client/chromium-5.0.375.29
25 merge time: C 01 B 17 A 34 Mon May 17 03:36:14 2010 >>> www-client/chromium-6.0.401.1
26 merge time: C 01 B 14 A 40 Mon Sep 27 17:03:03 2010 >>> sys-devel/gcc-4.4.3-r2
27 merge time: C 01 B 09 A 52 Thu Apr 16 19:33:27 2009 >>> sys-devel/gcc-4.3.2-r3
28 merge time: C 01 B 09 A 35 Fri Jun 18 10:05:27 2010 >>> www-client/chromium-6.0.437.1
29 merge time: C 01 B 09 A 11 Thu Oct 27 18:02:41 2011 >>> net-libs/xulrunner-2.0.1-r1
30 merge time: C 01 B 06 A 28 Mon Feb 28 21:25:07 2011 >>> sys-devel/gcc-4.4.5

Clearly, Chromium is the winner, that old OpenOffice doesn’t count in my opinion. Too bad, chromium-bin had gone long ago, or I would save a lot of time as I do with LibreOffice.

The script doesn’t output pretty results, but it gets the job done. It replaces and swaps some strings, so I can simply pipe the output to sort and have correct sorting.

As I mentioned in previous post, genlop has some issues and it hasn’t been updated in Portage. I was planning to fix that repeating issue, then I realized it’s written in Perl and I know nothing about Perl programming.

I found a GitHub repo, it has some commits. But it seems to be messed up, it outputs basically nothing when I query. I did find the commit which introduced the problem I saw:


# bad: [333fd0d495300ce4311b2b2a838a49bbab93bf28] Merge pull request #2 from 0xe2-0x9a-0x9b/master
# good: [e0ad9556c68cffbb9a06dc4b74d886ca4d74b340] Patch source to report correct version
git bisect start 'master' 'e0ad955'
# good: [eee490a3333caaff8499530832df7dfa9ad6998c] Fix typographical errors in man page. (Bug 196599)
git bisect good eee490a3333caaff8499530832df7dfa9ad6998c
# bad: [87370688184ca71447e2240d085ec6755d51f1fc] Change example in man page to use --nocolor. (Bug 232942)
git bisect bad 87370688184ca71447e2240d085ec6755d51f1fc
# bad: [a006de6e18f0f23bca09b6dd44b8ce0a95654124] Fix heading when using genlop -l and add -u option. (Bug 211688)
git bisect bad a006de6e18f0f23bca09b6dd44b8ce0a95654124

Anyway, if you can code Perl and use Gentoo, I hope you will help. There is not a short list of bugs on Gentoo Bugs as well, 26 bug reports as of writing.

I will just leave with the issues I have known, they are all slight formating issues, it doesn’t affect the accuracy of results. (or I thought?)