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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Feldman, S.I.: Make — a program for maintaining computer programs. Software — Practice and Experience 9 (1979) 255–65
Bailey, E.C.: Maximum RPM. Sams (1997)
Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Addison-Wesley (2000)
van den Brand, M.G.J., de Jong, H.A., Klint, P., Olivier, P.: Efficient annotated terms. Software—Practice and Experience 30 (2000) 259–291
de Jonge, M.: To Reuse or To Be Reused. PhD thesis, University of Amsterdam (2003)
CollabNet: Subversion home page. http://subversion.tigris.org (2002)
Miller, P.: Recursive make considered harmful (1997)
Free Software Foundation: Automake home page. http://www.gnu.org/software/automake/ (2002)
Free Software Foundation: Autoconf home page. http://www.gnu.org/software/autoconf/ (2002)
de Jonge, M.: Source tree composition. In: Seventh International Conference on Software Reuse. Number 2319 in Lecture Notes in Computer Science, Springer-Verlag (2002)
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)
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–320
Clemm, G.M.: The Odin System — An Object Manager for Extensible Software Environments. PhD thesis, University of Colorado at Boulder (1986)
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–22
Hart, J., D’Amelia, J.: An analysis of RPM validation drift. In: LISA’02: Sixteenth Systems Administration Conference, USENIX Association (2002) 155–166
The FreeBSD Project: FreeBSD Ports Collection. http://www.freebsd.org/ports/ (2002)
van der Hoek, A.: Integrating configuration management and software deployment. In: Proc. Working Conference on Complex and Dynamic Systems Architecture (CDSA 2001). (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dolstra, E. (2003). Integrating Software Construction and Software Deployment. In: Westfechtel, B., van der Hoek, A. (eds) Software Configuration Management. SCM SCM 2001 2003. Lecture Notes in Computer Science, vol 2649. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-39195-9_8
Download citation
DOI: https://doi.org/10.1007/3-540-39195-9_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-14036-8
Online ISBN: 978-3-540-39195-1
eBook Packages: Springer Book Archive