Bootstrapping software distributions

New hardware architectures and custom coprocessor extensions are introduced to the market on a regular basis. While it is relatively easy to port a proprietary software stack to a new platform, FOSS distributions face major challenges. Bootstrapping distributions proved to be a yearlong manual process in the past due to a large amount of dependency cycles which had to be broken by hand. In this paper we propose an heuristic-based algorithm to remove build dependency cycles and to create a build order for automatically bootstrapping a binary based software distribution on a new platform.

[1]  Houari A. Sahraoui,et al.  Automatic Package Coupling and Cycle Minimization , 2009, 2009 16th Working Conference on Reverse Engineering.

[2]  Giuseppe F. Italiano,et al.  Finding strong bridges and strong articulation points in linear time , 2012, Theor. Comput. Sci..

[3]  Andrew W. Appel,et al.  Axiomatic bootstrapping: a guide for compiler hackers , 1994, TOPL.

[4]  Edwin Hautus,et al.  IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS , 2002 .

[5]  Donald B. Johnson,et al.  Finding All the Elementary Circuits of a Directed Graph , 1975, SIAM J. Comput..

[6]  Stéphane Ducasse,et al.  Cycles Assessment with CycleTable , 2011 .

[7]  David Grove,et al.  Frameworks for Intra- and Interprocedural Dataflow Analysis , 1998 .

[8]  Roberto Di Cosmo,et al.  Dependency solving: A separate concern in component evolution management , 2012, J. Syst. Softw..

[9]  Roberto Di Cosmo,et al.  Managing the Complexity of Large Free and Open Source Package-Based Software Distributions , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[10]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[11]  Roberto Di Cosmo,et al.  Learning from the future of component repositories , 2014, Sci. Comput. Program..

[12]  Roberto Di Cosmo,et al.  Strong dependencies between software components , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[13]  Ewan D. Tempero,et al.  Jooj: Real-Time Support For Avoiding Cyclic Dependencies , 2007, ACSC.

[14]  Roberto Di Cosmo,et al.  Feature Diagrams as Package Dependencies , 2010, SPLC.

[15]  Ewan D. Tempero,et al.  An empirical study of cycles among classes in Java , 2007, Empirical Software Engineering.