Compare commits
2 Commits
1d5bc7922d
...
6d2e371500
Author | SHA1 | Date | |
---|---|---|---|
6d2e371500 | |||
208f70472c |
@@ -21,9 +21,6 @@ blacklist:
|
||||
- pacman
|
||||
- tensorflow
|
||||
- tensorflow-cuda
|
||||
- brotli
|
||||
- libarchive
|
||||
- libb2
|
||||
- gcc
|
||||
|
||||
build:
|
||||
|
30
master.py
30
master.py
@@ -34,7 +34,8 @@ repos = []
|
||||
|
||||
def build(pkgbuild: str, repo: str) -> None:
|
||||
start_time = time.time()
|
||||
name = pathlib.Path(pkgbuild).parts[-4]
|
||||
parsed = parse_pkgbuild(pkgbuild)
|
||||
name = parsed["pkgbase"]
|
||||
process_name = current_process().name
|
||||
logging.info("[%s/%s/%s] Build starting (Queue ~= %s)", process_name, repo, name, q.qsize())
|
||||
|
||||
@@ -45,7 +46,7 @@ def build(pkgbuild: str, repo: str) -> None:
|
||||
import_keys(pkgbuild)
|
||||
|
||||
# increase pkgrel
|
||||
increase_pkgrel(pkgbuild)
|
||||
increase_pkgrel(pkgbuild, parsed)
|
||||
|
||||
# build with devtools
|
||||
os.chdir(pathlib.Path(pkgbuild).parent)
|
||||
@@ -59,7 +60,7 @@ def build(pkgbuild: str, repo: str) -> None:
|
||||
|
||||
# write packagename to failed list
|
||||
with open(os.path.join(config["basedir"]["repo"], repo + "_failed.txt"), "a") as f:
|
||||
f.write(name + "\n")
|
||||
f.write(name + "==" + str(parse_pkgbuild_ver(parsed=parsed)) + "\n")
|
||||
|
||||
# write logs
|
||||
if not os.path.exists(os.path.join(config["basedir"]["repo"], "logs", repo)):
|
||||
@@ -96,6 +97,10 @@ def build(pkgbuild: str, repo: str) -> None:
|
||||
logging.debug("[GIT] %s", subprocess.run(["git", "clean", "-xdff"], check=False, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT).stdout.decode(errors="ignore"))
|
||||
|
||||
logpath = pathlib.Path(os.path.join(config["basedir"]["repo"], "logs", repo, name + ".log"))
|
||||
if logpath.exists():
|
||||
os.remove(logpath)
|
||||
|
||||
logging.info("[%s/%s/%s] Build successful (%s)", process_name, repo, name,
|
||||
format_timespan(time.time() - start_time))
|
||||
|
||||
@@ -180,6 +185,21 @@ def find_package_files(name: str, repo: list[AnyStr]) -> list[AnyStr]:
|
||||
return pkgs
|
||||
|
||||
|
||||
def is_package_failed(package: str, ver: LegacyVersion, repo: str):
|
||||
pkgs = get_failed_packages(repo)
|
||||
|
||||
p: str
|
||||
for p in pkgs:
|
||||
s = p.split("==")
|
||||
|
||||
if s[0] == package:
|
||||
if ver > LegacyVersion(s[1]):
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def get_failed_packages(repo: str) -> list:
|
||||
if os.path.exists(os.path.join(config["basedir"]["repo"], repo + "_failed.txt")):
|
||||
with open(os.path.join(config["basedir"]["repo"], repo + "_failed.txt")) as p:
|
||||
@@ -297,13 +317,13 @@ def fill_queue() -> None:
|
||||
else:
|
||||
for march in config["march"]:
|
||||
repo = path_split[-2].split("-")[0] + "-" + march
|
||||
ver = parse_pkgbuild_ver(parsed=parsed_pkgb)
|
||||
|
||||
if parsed_pkgb["pkgbase"] in get_failed_packages(repo):
|
||||
if is_package_failed(parsed_pkgb["pkgbase"], ver, repo):
|
||||
logging.info("[%s/%s] Skipped due to failing build", repo, parsed_pkgb["pkgbase"])
|
||||
delete_package(parsed_pkgb, [repo, ])
|
||||
continue
|
||||
|
||||
ver = parse_pkgbuild_ver(parsed=parsed_pkgb)
|
||||
packages = list(parsed_pkgb["packages"])
|
||||
pkg_f = find_package_files(packages[0], [repo, ])
|
||||
if pkg_f:
|
||||
|
5
utils.py
5
utils.py
@@ -27,8 +27,9 @@ def import_keys(pkgbuild: str) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
def increase_pkgrel(pkgbuild_file) -> None:
|
||||
parsed = parse_pkgbuild(pkgbuild_file)
|
||||
def increase_pkgrel(pkgbuild_file: str, parsed: dict = None) -> None:
|
||||
if not parsed:
|
||||
parsed = parse_pkgbuild(pkgbuild_file)
|
||||
with open(pkgbuild_file, "r+", errors='ignore') as p:
|
||||
pkgbuild_str = p.read()
|
||||
p.truncate(0)
|
||||
|
Reference in New Issue
Block a user