New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New changes metamanifest #38
Conversation
the test failure looks like was only the lack of the new gkeys dep... somehting that should be ready by end of GSOC... there are some other changes to add for using it to come. |
else: | ||
self.checkFileHashes('MANIFEST', f, ignoreMissing=False) | ||
if verify_pkgs: | ||
new_mfpath = os.path.join(mfdir, f.replace("Manifest", "")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's kind of an odd use of replace
. This seems more appropriate
new_mfpath = os.path.dirname(os.path.join(mfdir, f))
68d4591
to
43b4380
Compare
else: | ||
raise portage.exception.PortageException("!!! gpg exited with '" + str(return_code) + "' status") | ||
|
||
def find_reporoot(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the reporoot and the repolevel should be constructor parameters, since it's very inefficient for each Manifest instance to have to figure this stuff out automatically.
43b4380
to
47b5ec0
Compare
GLEP 58 has been replaced by GLEP 74 which is already implemented on the infrastructure side. See bug 638908. |
This PR is for a GSoC project based on GLEP:58
Added more
MANIFEST_IDENTIFIERS
inpym/portage/const.py
according to GLEP:60Modified
guessManifestType()
for the newMANIFEST_IDENTIFIERS
and reduced the return statementsUpdated some variable names in
/pym/portage/manifest.py
Added a new file
/pym/portage/meta-manifest.py
which includes a subclass of Manifest for manifest files outside of the packages (ex. /profiles, categories etc)Added 4
create_
functions for it,create_cat()
that creates a metamanifest for categories that includes the manifest files of all packages after verifying them,create_profile
andcreate_eclass
that create a metamanifest for the/profiles
and/eclass
directories, andcreate_master
that creates a metamanifest file that includes all the metamanifests above and all files in the root directory.Added signature and manifest verification to the metamanifest files which verifies package manifests only if a boolean is passed and ignores missing categories or packages if the whole directory is missing.
Modified the
checkFileHashes()
method in the subclass to ignoreDIST
files because otherwise package manifests wouldn't be verifiable.Added some methods to help me identify things like the repolevel, reporoot and repotype.
Modified the
create()
function to choose whichcreate_
function to use based on the repotype.Instructions on how to use the script: https://goo.gl/i0LIay
Test cases: https://wiki.gentoo.org/wiki/User:Aeroniero