Jyri Virkki wrote: > Amanda Waite wrote: > >>> Define it this way instead MYSQL_PATH=/usr/mysql and >>> MYSQL_LIB=$(MYSQL_PATH)/lib/mysql >>> >> I think this would lead to some ambiguity and potential problems. What >> if you were to update MySQL to 5.2?. I might no longer be able to >> predict if Lighttpd will be linked against MySQL 5.1 or MySQL 5.2, it >> would all depend on the order that the two MySQL's were built. I think >> that being specific is better. >> > > It won't be ambiguous, the 'latest' link is always the latest one. > > Whether you want the 'latest' or a specific version depends on what > the dependencies are. > > In theory, if you are depending on MySQL interfaces which are > classified Uncommitted or better, you can know there will not be an > incompatible change as MySQL goes from 5.1 to 5.2 (for instance), so > you're better off depending on 'latest'. If you're depending on > Volatile interfaces specific to 5.1 then you need to hardcode 5.1. Of > course, if that is the case then there will be a problem eventually > when 5.1 is removed. > > In practice the build already has other hardcoded areas which need to > be changed manually as MySQL version upgrades (pkg deps, build > component deps). Just wanted to make sure you're deciding to hardcode > 5.1 use for the right reasons. > > >
Ok, I'll work on the basis that there is only one version of MySQL on the system and that is the one in /usr/mysql ($(ROOT)/usr/mysql in the proto area). If at some point lighttpd breaks either build wise or functionality wise because of a change to the version of MySQL then we'll treat it the same as we would if an update to say OpenSSL caused a similar issue. One thing though (and I maybe way off base about this), in the proto area, how is it guaranteed that the links point to 5.1 and not to 5.0? There is no build order dependency defined in usr/src/cmd/Makefile and if MySQL 5.0 is built after 5.1 then the links point to 5.0. At the moment it's possible that 5.0 gets built before 5.1 because other components have a dependency on 5.0. This won't be the case once everything depends on 5.1. This bothered me when Sunanda first mentioned it, it bothers me more now that when I ran nightly builds yesterday I saw the following: Files that changed between yesterday and today: Unit T File Name Reloc/Sym name perm owner group inode lnk maj min package(s) ------------------------------------------------------------------------------------------------------------ filea: s usr/mysql/lib 5.0/lib 777 - - 0 1 - - proto fileb: s usr/mysql/lib 5.1/lib 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/bin 5.0/bin 777 - - 0 1 - - proto fileb: s usr/mysql/bin 5.1/bin 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/man 5.0/man 777 - - 0 1 - - proto fileb: s usr/mysql/man 5.1/man 777 - - 0 1 - - proto differ: symlink filea: s var/mysql/data 5.0/data 777 - - 0 1 - - proto fileb: s var/mysql/data 5.1/data 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/docs 5.0/docs 777 - - 0 1 - - proto fileb: s usr/mysql/docs 5.1/docs 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/share 5.0/share 777 - - 0 1 - - proto fileb: s usr/mysql/share 5.1/share 777 - - 0 1 - - proto differ: symlink filea: s etc/mysql/my.cnf 5.0/my.cnf 777 - - 0 1 - - proto fileb: s etc/mysql/my.cnf 5.1/my.cnf 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/include 5.0/include 777 - - 0 1 - - proto fileb: s usr/mysql/include 5.1/include 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/sql-bench 5.0/sql-bench 777 - - 0 1 - - proto fileb: s usr/mysql/sql-bench 5.1/sql-bench 777 - - 0 1 - - proto differ: symlink filea: s usr/mysql/mysql-test 5.0/mysql-test 777 - - 0 1 - - proto fileb: s usr/mysql/mysql-test 5.1/mysql-test 777 - - 0 1 - - proto differ: symlink