Integrating Software Construction and Software Deployment

  • Eelco Dolstra
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2649)

Abstract

Classically, software deployment is a process consisting of building the software, packaging it for distribution, and installing it at the target site. This approach has two problems. First, a package must be annotated with dependency information and other meta-data. This to some extent overlaps with component dependencies used in the build process. Second, the same source system can often be built into an often very large number of variants. The distributor must decide which element(s) of the variant space will be packaged, reducing the flexibility for the receiver of the package. In this paper we show how building and deployment can be integrated into a single formalism. We describe a build manager called Maak that can handle deployment through a sufficiently general module system. Through the sharing of generated files, a source distribution transparently turns into a binary distribution, removing the dichotomy between these two modes of deployment. In addition, the creation and deployment of variants becomes easy through the use of a simple functional language as the build formalism.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Feldman, S.I.: Make — a program for maintaining computer programs. Software — Practice and Experience 9 (1979) 255–65MATHCrossRefGoogle Scholar
  2. 2.
    Bailey, E.C.: Maximum RPM. Sams (1997)Google Scholar
  3. 3.
    Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Addison-Wesley (2000)Google Scholar
  4. 4.
    van den Brand, M.G.J., de Jong, H.A., Klint, P., Olivier, P.: Efficient annotated terms. Software—Practice and Experience 30 (2000) 259–291CrossRefGoogle Scholar
  5. 5.
    de Jonge, M.: To Reuse or To Be Reused. PhD thesis, University of Amsterdam (2003)Google Scholar
  6. 6.
    CollabNet: Subversion home page. http://subversion.tigris.org (2002)
  7. 7.
    Miller, P.: Recursive make considered harmful (1997)Google Scholar
  8. 8.
    Free Software Foundation: Automake home page. http://www.gnu.org/software/automake/ (2002)
  9. 9.
    Free Software Foundation: Autoconf home page. http://www.gnu.org/software/autoconf/ (2002)
  10. 10.
    de Jonge, M.: Source tree composition. In: Seventh International Conference on Software Reuse. Number 2319 in Lecture Notes in Computer Science, Springer-Verlag (2002)Google Scholar
  11. 11.
    Heydon, A., Levin, R., Mann, T., Yu, Y.: The Vesta approach to software configuration management. Technical Report Research Report 168, Compaq Systems Research Center (2001)Google Scholar
  12. 12.
    Heydon, A., Levin, R., Yu, Y.: Caching function calls using precise dependencies. In: ACM SIGPLAN’ 00 Conference on Programming Language Design and Implementation, ACM Press (2000) 311–320Google Scholar
  13. 13.
    Clemm, G.M.: The Odin System — An Object Manager for Extensible Software Environments. PhD thesis, University of Colorado at Boulder (1986)Google Scholar
  14. 14.
    Baalbergen, E.H., Verstoep, K., Tanenbaum, A.S.: On the design of the Amoeba configuration manager. In: Proc. 2nd Int. Works. on Software Configuration Management. Volume 17 of ACM SIGSOFT Software Engineering Notes. (1989) 15–22Google Scholar
  15. 15.
    Hart, J., D’Amelia, J.: An analysis of RPM validation drift. In: LISA’02: Sixteenth Systems Administration Conference, USENIX Association (2002) 155–166Google Scholar
  16. 16.
    The FreeBSD Project: FreeBSD Ports Collection. http://www.freebsd.org/ports/ (2002)
  17. 17.
    van der Hoek, A.: Integrating configuration management and software deployment. In: Proc. Working Conference on Complex and Dynamic Systems Architecture (CDSA 2001). (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Eelco Dolstra
    • 1
  1. 1.Utrecht UniversityUtrechtThe Netherlands

Personalised recommendations