Add linuxtools pre-reqs

This commit is contained in:
Mat Booth 2019-06-05 21:17:52 +01:00
commit 8e07db140e
4 changed files with 159 additions and 24 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/*.png
/rpms/

View file

@ -2,7 +2,7 @@
script_location=$( (cd $(dirname $0) && pwd) )
module=$(basename $script_location`)
module=$(basename $script_location)
mkdir -p rpms
pushd rpms 2>&1 >/dev/null

View file

@ -273,7 +273,7 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-jgit, jython.
Runtime dependency of docker-client-java, eclipse-jgit, jython.
apache-commons-el:
buildorder: 10
ref: eclipse
@ -284,12 +284,13 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
apache-commons-lang:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-mylyn.
Runtime dependency of docker-client-java, eclipse-mylyn.
apache-sshd:
buildorder: 10
ref: eclipse
@ -313,12 +314,25 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
bean-validation-api:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of jersey.
bouncycastle:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-jgit, jython.
Runtime dependency of docker-client-java, eclipse-jgit, jython.
docker-client-java:
buildorder: 50
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-linuxtools.
eclipse-abrt:
buildorder: 50
ref: eclipse
@ -331,8 +345,7 @@ data:
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Module API.
Runtime dependency of eclipse-photran, eclipse-ptp,
eclipse-remote.
Runtime dependency of eclipse-ptp, eclipse-remote.
eclipse-dtp:
buildorder: 20
ref: eclipse
@ -395,13 +408,6 @@ data:
Runtime dependency of eclipse-abrt, eclipse-egit,
eclipse-egit-github, eclipse-epp-logging,
eclipse-subclipse.
eclipse-photran:
buildorder: 70
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Module API.
Runtime dependency of eclipse-ptp.
eclipse-ptp:
buildorder: 80
ref: eclipse
@ -451,23 +457,26 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
felix-gogo-runtime:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of felix-gogo-command,
Runtime dependency of eclipse, felix-gogo-command,
felix-gogo-shell.
felix-gogo-shell:
buildorder: 20
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
felix-scr:
buildorder: 30
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
freemarker:
buildorder: 10
ref: eclipse
@ -479,6 +488,19 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse, glassfish-hk2, jersey.
glassfish-hk2:
buildorder: 20
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of docker-client-java, jersey.
glassfish-jax-rs-api:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-linuxtools, jersey.
glassfish-jaxb:
buildorder: 20
ref: eclipse
@ -490,37 +512,79 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-cdt, glassfish-jaxb.
Runtime dependency of eclipse-cdt, eclipse-ptp, glassfish-jaxb.
glassfish-jsp:
buildorder: 30
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
glassfish-jsp-api:
buildorder: 20
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of glassfish-jsp.
Runtime dependency of eclipse, glassfish-jsp.
glassfish-servlet-api:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of glassfish-jsp-api, jetty.
Runtime dependency of eclipse, glassfish-jsp-api, jetty.
google-gson:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-cdt, eclipse-egit-github,
Runtime dependency of eclipse, eclipse-cdt, eclipse-egit-github,
eclipse-epp-logging, eclipse-jgit, eclipse-mylyn.
icu4j:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of jython.
Runtime dependency of eclipse, jython.
jackson-annotations:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-linuxtools,
jackson-databind, jackson-modules-base, jersey.
jackson-core:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of jackson-databind,
jackson-datatypes-collections, jackson-jaxrs-providers,
jackson-modules-base.
jackson-databind:
buildorder: 20
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of docker-client-java,
eclipse-linuxtools, jackson-datatypes-collections,
jackson-jaxrs-providers, jackson-modules-base, jersey.
jackson-datatypes-collections:
buildorder: 30
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of docker-client-java.
jackson-jaxrs-providers:
buildorder: 40
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of docker-client-java.
jackson-modules-base:
buildorder: 30
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of jackson-jaxrs-providers, jersey.
jakarta-commons-httpclient:
buildorder: 10
ref: eclipse
@ -539,6 +603,19 @@ data:
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Build dependency of jctools.
javassist:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of glassfish-hk2.
jersey:
buildorder: 40
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of docker-client-java,
eclipse-linuxtools.
jctools:
buildorder: 20
ref: eclipse
@ -550,7 +627,7 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-jgit.
Runtime dependency of eclipse, eclipse-jgit.
jffi:
buildorder: 10
ref: eclipse
@ -606,7 +683,7 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-abrt.
Runtime dependency of docker-client-java, eclipse-abrt.
jnr-x86asm:
buildorder: 10
ref: eclipse
@ -636,13 +713,13 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-cdt, eclipse-dtp.
Runtime dependency of eclipse-dtp.
lucene:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse-dtp, eclipse-mylyn.
Runtime dependency of eclipse, eclipse-dtp, eclipse-mylyn.
nekohtml:
buildorder: 10
ref: eclipse
@ -660,7 +737,7 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of jnr-ffi, jython.
Runtime dependency of eclipse, jersey, jnr-ffi, jython.
rxtx:
buildorder: 10
ref: eclipse
@ -672,11 +749,13 @@ data:
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
sat4j:
buildorder: 10
ref: eclipse
arches: [x86_64, ppc64le, aarch64, s390x]
rationale: >
Runtime dependency of eclipse.
sequence-library:
buildorder: 10
ref: eclipse

54
gen_build_order_graph.py Executable file
View file

@ -0,0 +1,54 @@
#!/usr/bin/python3
import yaml
from pygraphviz import AGraph
from subprocess import call
with open("eclipse.yaml", 'r') as stream:
yaml = yaml.safe_load(stream)
rpms = yaml['data']['components']['rpms']
g = AGraph(directed=True, name="G", strict=False, label="Build Order Graph")
ranks = []
for key, value in rpms.items():
rank = value['buildorder']
if rank not in ranks:
ranks.append(rank)
subg = g.get_subgraph(f"{rank}")
if subg is None:
subg = g.add_subgraph(name=f"{rank}", label=f"Build Order {rank}", rank="same")
subg.add_node(f"{rank}")
subg.add_node(key)
rs = value['rationale'].replace('\n', ' ').split('.')
reqs = []
breqs = []
for r in rs:
r = r.strip()
if not r or r == 'Module API':
continue
if r.startswith('Runtime dependency of'):
r = r[len('Runtime dependency of'):]
reqs = [x.strip() for x in r.split(',')]
if r.startswith('Build dependency of'):
r = r[len('Build dependency of'):]
breqs = [x.strip() for x in r.split(',')]
for req in reqs:
# For Rs, check if also a BR
if req not in breqs:
g.add_edge(key, req, color='blue')
else:
g.add_edge(key, req, color='purple')
for breq in breqs:
# For BRs, check if also a R
if breq not in reqs:
g.add_edge(key, breq, color='red')
ranks.sort()
for idx, rank in enumerate(ranks):
if idx+1 < len(ranks):
g.add_edge(rank, ranks[idx+1], weight=1000)
print(g.string())
g.draw("build_order_graph.png", prog="dot")
call('eog build_order_graph.png &', shell=True)