Due to technical limitations or lack of license definition in the package
makefile, some of the material listed above could not been saved, as the
following list details.

