[Soc-coordination] debian-images-generator report for July 9, 2006
Carlos Parra Camargo
cparra at emergya.info
Sun Jul 9 18:50:15 UTC 2006
This the 7th report of debian-images-generator project.
Things that have been keeping me busy this week:
* Complete tasks support. I have been working with debian-cd/tasks and
the component is including the list pretty well.
* Added control over unknown packages, for this purpose, it has been
added a variable "Force". If this variable isn't set to True and
there is unknown packages, debian-images-generator will stop.
* Important implemented methods:
- MediaSet.add_task(self, task):
Add the task passed as argument to the current set of images.
This method retrieve the info about the task, decide if we can
continue with unknown packages and it add all valid packages
using MediaSet.add_package
- MediaSet.add_package(self, package):
Add the package passed as argument in the first MediaElement
that has enough space. If there is no space left on the
MediaElement's that the MediaSet has, append a new MediaElement.
- MediaElement.add_package(self, package_name, package_info):
It delegates on his PackagesTree object.
- PackagesTree.add_package(self, package_name, package_info):
Add the package in the main dictionary of the object and
update the attributes.
* It's very expensive for the memory when a package listed in a task
is not a package name but it's a package provided for other package
because we have to look in every entry of the dictionary to check
if is listed in the 'Provides' field. For example, when a package
is not in the dictionary and is not at the 'Provides' field of the
packages, it has to look in all the dictionary!
To avoid this problem, there is a list: PackagesTree.provides that
keeps up to date a list with all the provides packages that are in
the dictionary, it just a list of strings not a dictionary with extra
info but with this list we can check faster if a package is provided
by some package in the dictionary.
For these purposes there are two methods:
- PackagesTree.__add_provided_packages__(self, package):
Add the provided packages of package into PackagesTree.provides
- PackagesTree.__remove_provided_packages__(self, package):
Remove the provided packages of PackagesTree.provides
Note: The idea is to work like i-node's works, if there is 0 goings-on
of the package x in PackagesTree.provides it means that there is
no package who provide the package x. if there is 1 goings-on
of the package y in PackagesTree.provides it means that one
package provide the package y, if there is 2 goings-on ....
* Added more exceptions to control specific errors
* Added a TODO file. Steve, feel free to add anything ;)
* The current code at subversion loads the Debian_etch task and
generate 12 logic (just in memory) images:
Number of elements: 12
=======================
Piece 1
========
Size: 629.999469757 MB
Number of packages: 445
Piece 2
========
Size: 629.999715805 MB
Number of packages: 994
Piece 3
========
Size: 629.999614716 MB
Number of packages: 959
Piece 4
========
Size: 629.999670029 MB
Number of packages: 1053
Piece 5
========
Size: 629.999994278 MB
Number of packages: 837
Piece 6
========
Size: 629.999322891 MB
Number of packages: 1007
Piece 7
========
Size: 629.999362946 MB
Number of packages: 944
Piece 8
========
Size: 629.999979019 MB
Number of packages: 1309
Piece 9
========
Size: 629.999498367 MB
Number of packages: 1134
Piece 10
========
Size: 629.999866486 MB
Number of packages: 1293
Piece 11
========
Size: 629.999485016 MB
Number of packages: 1374
Piece 12
========
Size: 144.366920471 MB
Number of packages: 618
Best,
cpc
--
Emergya, Soluciones Tecnológicas
Tel. +34 954 98 10 53 FAX +34 954 98 11 79
Avda. Luis Montoto, 105
E41007 Sevilla
cparra at emergya.info
http://www.emergya.info
More information about the Soc-coordination
mailing list