mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-08 18:02:05 +03:00
include system package state in cache key
Summary: Using system packages changes the binaries, so include the used packages in the cache key when present Reviewed By: krallin Differential Revision: D32693534 fbshipit-source-id: c0494667b57040dde680cea3e8e00d77ef48403b
This commit is contained in:
committed by
Facebook GitHub Bot
parent
eb6c5ecd15
commit
46e693f4e5
@@ -175,22 +175,33 @@ class SystemPackageFetcher(object):
|
|||||||
if self.installed is not None:
|
if self.installed is not None:
|
||||||
return self.installed
|
return self.installed
|
||||||
|
|
||||||
|
cmd = None
|
||||||
if self.manager == "rpm":
|
if self.manager == "rpm":
|
||||||
result = run_cmd(["rpm", "-q"] + self.packages, allow_fail=True)
|
cmd = ["rpm", "-q"] + sorted(self.packages)
|
||||||
self.installed = result == 0
|
|
||||||
elif self.manager == "deb":
|
elif self.manager == "deb":
|
||||||
result = run_cmd(["dpkg", "-s"] + self.packages, allow_fail=True)
|
cmd = ["dpkg", "-s"] + sorted(self.packages)
|
||||||
self.installed = result == 0
|
|
||||||
|
if cmd:
|
||||||
|
proc = subprocess.run(cmd, capture_output=True)
|
||||||
|
if proc.returncode == 0:
|
||||||
|
# captured as binary as we will hash this later
|
||||||
|
self.installed = proc.stdout
|
||||||
|
else:
|
||||||
|
# Need all packages to be present to consider us installed
|
||||||
|
self.installed = False
|
||||||
else:
|
else:
|
||||||
self.installed = False
|
self.installed = False
|
||||||
|
|
||||||
return self.installed
|
return bool(self.installed)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
assert self.installed
|
assert self.installed
|
||||||
return ChangeStatus(all_changed=False)
|
return ChangeStatus(all_changed=False)
|
||||||
|
|
||||||
def hash(self):
|
def hash(self):
|
||||||
|
if self.packages_are_installed():
|
||||||
|
return hashlib.sha256(self.installed).hexdigest()
|
||||||
|
else:
|
||||||
return "0" * 40
|
return "0" * 40
|
||||||
|
|
||||||
def get_src_dir(self):
|
def get_src_dir(self):
|
||||||
|
Reference in New Issue
Block a user