Yet another INDEX builder.
Michel Talon
talon at lpthe.jussieu.fr
Sat Sep 30 06:39:02 PDT 2006
> It took longer on my P4 3.6GHz:
>
> The tree (15689ports) takes 2789.84287214 seconds to explore.
> Now computing the recursively extended dependencies.
> Took 3.02815794945 seconds.
> Now converting to packages and sorting.
> Last phase takes 4.7659368515 seconds.
> Total time spent: 2800.94901609 seconds.
> python build_index.py 3024,42s user 2050,37s system 181% cpu 46:41,64 total
This time 46 minutes is compatible with the timing 2800 seconds. My ports tree
has less ports that you own
niobe% wc -l /usr/ports/INDEX-6
14186 /usr/ports/INDEX-6
As you can see i am not a frequent updater :-(, which says something about the
ease of use of the present system, and more positively about the growth rate
of the ports tree.
Also perhaps my disk is faster
niobe% diskinfo -t /dev/ad0
...
Transfer rates:
outside: 102400 kbytes in 2.092096 sec = 48946 kbytes/sec
middle: 102400 kbytes in 2.429019 sec = 42157 kbytes/sec
inside: 102400 kbytes in 3.887401 sec = 26342 kbytes/sec
- this is not a benchmark, and I was using the machine in the same time;
I was doing that under KDE myself.
- I have several local ports or local tweaks which have been reported as
"The port xxx/yyy is obsolete".
This is intentional. Since ports are frequently deleted but this deletion is
not always effective on you own port tree (for example because there is a
remaining README.html here) i compare subdirectories of a top directory to
what is in its Makefile, listed as SUBDIR. If a directory exists but is not
listed in SUBDIR i mark it obsolete, because i used to think it was a
directory which should have been deleted. However i have seen in my port tree
such situations, which are obviously strange and need human intervention. I
have no idea what is the correct way to resolve these problems, at least thay
are flagged.
I have also noticed that a number of dependencies are incorrectly presented
with trailing / and \n when you run make -V, and i was outputting them, but
when i ran the script on the full port tree, there were so many of them, that
i censored all that stuff by stripping white space and / at the end of
origins. There is however certainly a problem in the way such things are
computed.
Let the function "clean_path" return "return path.replace(portdir, '', 1)"
and you will see them. If you have kept the safe.pkl you can read it and just
run everything after "safe = open('safe.pkl','r')", it will run in
something like 5 seconds.
--
Michel TALON
More information about the freebsd-ports
mailing list