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