Hi, I would like to propose a few changes to the way the webstack sources are organized and built in the svn repository.
Currently, the top level of the source tree contains the following: webstack/trunk/src % ls .svn/ APC-3.0.14/ README freetds-0.64/ freetype-2.2.1/ gd-2.0.33/ gdbm-1.8.3/ gettext-0.16/ gmp-4.2.1/ mod_fcgid.2.1/ mod_perl-2.0.2/ mysql-5.0.33.32bit/ mysql-5.0.33.64bit/ ncurses-5.5/ openldap-2.3.30/ perl-5.8.8/ php-5.2.0/ rails/ ruby-1.8.5/ rubygems-0.9.0/ squid/ suhosin-0.9.16/ tidy/ Each of these top-level directories contain the entire source tree of the component. In some cases, these sources have been modified. These top-level directories also contain a make_solaris.sh script. webstack/trunk/src % ls imap-2006c1 ./ README ipopd/ mlock/ ../ SPECIALS mailutil/ mtest/ .svn/ SUPPORT make_solaris.sh* src/ CONTENTS an* makefile.nt tmail/ LICENSE.txt c-client/ makefile.ntk tools/ Makefile dmail/ makefile.os2 NOTICE docs/ makefile.w2k OSTYPE imapd/ makefile.wce a) I propose that we remove the version numbers from the directory names and instead just use the component names - APC, ruby, php etc - for the top-level directories. b) Under each top-level directory, I propose that we do not check in the exploded version of the sources for each component. Instead each of these top-level directories will contain the upstream community's distribution of the sources (e.g. imap-2006c1.tar.Z), a Makefile and any source patches (maybe even a 'patches' directory containing all patches) that need to be applied to the upstream sources before we build the sources. Each component's Makefile will contain rules that will unzip the source distribution, apply any applicable patches, run any configuration scripts, build and install the component % ls imap (after my proposed changes) ./ Makefile src.patch ../ imap-2006c1.tar.Z Currently, the upstream community's distribution is not checked in anywhere and since the individual sources are checked in, it is quite easy to inadvertently change the sources and check that in (instead of applying the change as a patch). I think it will make maintenance much easier if we carry the upstream distribution as is and have the logic for unzipping/configuring/building the component in Makefiles. c) I propose that we replace the top-level build_webstack.sh script with a Makefile This is similar to what is being done for sfw components e.g. http://cvs.opensolaris.org/source/xref/sfw/usr/src/cmd/apache2/Makefile.sfw Comments? Arvind
