1cdbd92df420340ab0dfc9a5d8b83e5e3be85558 max Thu May 1 10:52:59 2025 -0700 using libmysqlclient so mysql8 leads to crashes in jksql. very odd. So removing libmysqlclient and using only libmariadb-dev now in gbic. diff --git src/product/installer/browserSetup.sh src/product/installer/browserSetup.sh index 8b1eb2b4b75..2b07a345d16 100755 --- src/product/installer/browserSetup.sh +++ src/product/installer/browserSetup.sh @@ -360,31 +360,31 @@ offline - put the browser offline, so no more loading of missing tables from UCSC on-the-fly. Much faster, but depending on how much you downloaded, means that you have many fewer tracks available. online - put the browser online, so any missing files and tracks are loaded on-the-fly from UCSC. update - update the genome browser software and data, updates all tables of an assembly, like "mirror" cgiUpdate - update only the genome browser software, not the data. Not recommended, see documentation. clean - remove temporary files of the genome browser older than one day, but do not delete any uploaded custom tracks addTools - copy the UCSC User Tools, e.g. blat, featureBits, overlapSelect, bedToBigBed, pslCDnaFilter, twoBitToFa, gff3ToGenePred, bedSort, ... to /usr/local/bin This has to be run after the browser has been installed, other- - wise these packages may be missing: libpng zlib libmysqlclient + wise these packages may be missing: libpng zlib mariadb-client dev - install git/gcc/c++/freetype/etc, clone the kent repo into ~/kent and build the CGIs into /usr/local/apache so you can try them right away. Useful if you want to develop your own track type. (OSX OK) mysql - Patch my.cnf and recreate Mysql users. This can fix a broken Mysql server after an update to Mysql 8. parameters for 'minimal', 'mirror' and 'update': <assemblyList> - download Mysql + /gbdb files for a space-separated list of genomes examples: bash $0 install - install Genome Browser, do not download any genome assembly, switch to on-the-fly mode (see the -f option) @@ -1104,31 +1104,31 @@ fi if [[ ! -f /usr/sbin/mysqld ]]; then echo2 echo2 Now installing the Mysql server. echo2 The root password will be set to a random string and will be written echo2 to the file /root/.my.cnf so root does not have to provide a password on echo2 the command line. waitKey moveAwayMyCnf # do not prompt in apt-get, will set an empty mysql root password export DEBIAN_FRONTEND=noninteractive # Debian / Ubuntu 20 defaults to Mysql 8 and Mysql 8 does not allow rsync of myisam anymore # -> we require mariaDb now - apt-get $APTERR --assume-yes install mariadb-server libmariadb-dev + apt-get $APTERR --assume-yes install mariadb-server mariadb-client mysqlStrictModeOff startMysql # flag so script will set mysql root password later to a random value SET_MYSQL_ROOT=1 fi } # download apache mysql libpng openssl into the current dir # and build them into $APACHEDIR/ext function buildApacheMysqlOpensslLibpng () { echo2 echo2 Now building cmake, openssl, pcre, apache and mysql into $APACHEDIR/ext @@ -1475,34 +1475,34 @@ sudo sed -Ei '' 's/^[[:space:]]*#(LoadModule include_module)/\1/' /etc/apache2/httpd.conf # activate server side includes and make them depend on the X flag sudo sed -Ei '' 's/Options FollowSymLinks Multiviews/Options FollowSymLinks Includes Multiviews/' /etc/apache2/httpd.conf if grep -qv XBitHack /etc/apache2/httpd.conf ; then sudo sed -Ei '' '/Options FollowSymLinks Includes Multiviews/ a\ XBitHack on\ SSILegacyExprParser on ' /etc/apache2/httpd.conf fi sudo /usr/sbin/apachectl restart } # install gcc, make etc so we can build the tree on linux function setupBuildLinux () { - echo2 Installing required linux packages from repositories: Git, GCC, G++, Mysql-client-libs, uuid, etc + echo2 Installing required linux packages from repositories: Git, GCC, G++, MariaDB-client-libs, uuid, etc waitKey if [[ "$DIST" == "debian" ]]; then - apt-get --assume-yes $APTERR install make git gcc g++ libpng-dev libmysqlclient-dev uuid-dev libfreetype-dev libbz2-dev pkg-config + apt-get --assume-yes $APTERR install make git gcc g++ libpng-dev libmariadb-dev uuid-dev libfreetype-dev libbz2-dev pkg-config elif [[ "$DIST" == "redhat" ]]; then yum install -y git vim gcc gcc-c++ make libpng-devel libuuid-devel freetype-devel else echo Error: Cannot identify linux distribution exit 100 fi # the build target cgi-bin requires that these directories exist mkdir -p $HTDOCDIR $CGIBINDIR # leave a flag file so the script knows later that this directory did not exist and we made it # and it is safe to write into it touch "$APACHEDIR"/.madeByBrowserBuild } # set this machine for browser development: install required tools, clone the tree, build it function buildTree () @@ -1631,31 +1631,31 @@ mkdir -p $APACHEDIR/userdata/cramCache/{error,pending} chmod -R 777 $APACHEDIR/userdata/cramCache # ------------------- # CGI installation # ------------------- echo2 echo2 Creating $CGIBINDIR and $HTDOCDIR and downloading contents from UCSC waitKey # create apache directories: HTML files, CGIs, temporary and custom track files mkdir -p $HTDOCDIR $CGIBINDIR $TRASHDIR $TRASHDIR/customTrash # the CGIs create links to images in /trash which need to be accessible from htdocs cd $HTDOCDIR - if [ ! -e $TRASHDIR ]; then + if [ ! -e trash ]; then ln -fs $TRASHDIR fi # write the sample hg.conf to the cgi-bin directory echo2 Creating Genome Browser config file $CGIBINDIR/hg.conf echo "$HG_CONF_STR" > $CGIBINDIR/hg.conf # hg.conf tweaks # redhat distros have the same default socket location set in mysql as # in our binaries. To allow mysql to connect, we have to remove the socket path. # Also change the psxy path to the correct path for redhat, /usr/bin/ if [ "$DIST" == "redhat" ]; then echo2 Adapting mysql socket locations in $APACHEDIR/cgi-bin/hg.conf sed -i "/socket=/s/^/#/" $CGIBINDIR/hg.conf sed -i "/^hgc\./s/.usr.lib.gmt.bin/\/usr\/bin/" $CGIBINDIR/hg.conf