From b66681aace326c562d317566115ed9b2ae015653 Mon Sep 17 00:00:00 2001 From: Jerome Sagnole Date: Sun, 27 Aug 2017 16:38:04 +0200 Subject: [PATCH] adding patch server --- .../builder/debian/jessie/i686/build.sh | 15 +- .../builder/debian/jessie/x86_64/Dockerfile | 14 +- .../jessie/x86_64/build-under-docker.sh | 2 +- .../builder/debian/jessie/x86_64/build.sh | 23 +- dist/docker/server/debian/init-basic.sh | 85 ++++++- dist/docker/server/debian/init-khanat.sh | 228 ++++++++++++++++-- .../server/debian/jessie/x86_64/Dockerfile | 4 +- .../debian/jessie/x86_64/Dockerfile.khanat | 1 + .../server/debian/jessie/x86_64/server.sh | 27 ++- 9 files changed, 363 insertions(+), 36 deletions(-) diff --git a/dist/docker/builder/debian/jessie/i686/build.sh b/dist/docker/builder/debian/jessie/i686/build.sh index 587db96af..4f3ee8fa3 100755 --- a/dist/docker/builder/debian/jessie/i686/build.sh +++ b/dist/docker/builder/debian/jessie/i686/build.sh @@ -13,6 +13,7 @@ declare -i BUILD=1 declare -i DEBUG=0 declare JOBS="" declare CMAKEOPTS="" +declare DOCKEROPTS="" declare DIRBUILD="" declare CLEANDOCKER=0 @@ -42,11 +43,12 @@ options: -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -a OPTS, --add-opts-cmake=OPTS : Adding options on cmake command (before build) -c, --clean-container : remove all container in state Exited + -m OPTS, --add-opts-docker=OPTS : Adding options on docker command (when build) Example : cd [root Khanat directory] ./build.sh -c -r - ./build.sh -c -r -j 4 -a '-DWITH_SYMBOLS=ON' -a '-DWITH_RYZOM_TOOLS=OFF' -a '-DWITH_NEL_TOOLS=OFF' + ./build.sh -c -r -j 4 -a '-DWITH_SYMBOLS=ON' -a '-DWITH_RYZOM_TOOLS=OFF' -a '-DWITH_NEL_TOOLS=OFF' -m '-m 20g' EOF } @@ -134,6 +136,15 @@ do CMAKEOPTS="$CMAKEOPTS ${1#*=}" shift ;; + -m) + shift + DOCKEROPTS="$DOCKEROPTS $1" + shift + ;; + --add-opts-docker=*) + DOCKEROPTS="$DOCKEROPTS ${1#*=}" + shift + ;; *) msg_error "options '$1' not recoginze" usage @@ -166,6 +177,7 @@ msg_debug "basedir: $basedir" msg_debug "rootdir: $rootdir" msg_debug "JOBS: '$JOBS'" msg_debug "CMAKEOPTS: '$CMAKEOPTS'" +msg_debug "DOCKEROPTS: '$DOCKEROPTS'" mkdir -p "${DIRBUILD}" if [[ $REMOVE -ne 0 ]] @@ -197,6 +209,7 @@ then -u "$(id -u $USERNAME):$(id -g $USERNAME)" \ -v $rootdir/dist:/opt/dist \ -v $rootdir/code:/opt/code \ + ${DOCKEROPTS} \ ${IMAGEDOCKER} \ /opt/dist/docker/builder/${LOCALSRC}/build-under-docker.sh "/opt/code/${LOCALBUILDDIR}/" || exit 2 fi diff --git a/dist/docker/builder/debian/jessie/x86_64/Dockerfile b/dist/docker/builder/debian/jessie/x86_64/Dockerfile index d7d813bdf..9682c21d7 100644 --- a/dist/docker/builder/debian/jessie/x86_64/Dockerfile +++ b/dist/docker/builder/debian/jessie/x86_64/Dockerfile @@ -25,18 +25,18 @@ RUN apt-get dist-upgrade RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server RUN apt-get install -y apache2 php5 libapache2-mod-php5 php5-mysql apache2-utils php5-gd php5-imagick -RUN apt-get install -y git libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-turbo-dev rrdtool bison libxmu-dev autoconf automake libmysqlclient-dev libgif-dev cpputest libssl-dev liblzma-dev unzip +RUN apt-get install -y git libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-turbo-dev rrdtool bison libxmu-dev autoconf automake libmysqlclient-dev libgif-dev cpputest libssl-dev liblzma-dev unzip zlib1g-dev libssh-dev libboost-all-dev libopenal-dev libgl1-mesa-dev libogg-dev RUN apt-get install -y wget ## Build & Install cpptest # Impossible to build release 1.1.0, 1.1.1, 1.1.2 -#RUN apt-get install -y wget autogen autoconf automake libtool libtool-bin -#RUN mkdir -p /opt/src -#RUN wget -q https://github.com/cpptest/cpptest/archive/1.0.5.tar.gz -O /opt/src/cpptest.tar.gz -#RUN rm -rf /opt/src/cpptest -#RUN tar xvf /opt/src/cpptest.tar.gz -C /opt/src --strip 1 -#RUN cd /opt/src/cpptest && ./autogen.sh && ./configure && make && make install +RUN apt-get install -y wget autogen autoconf automake libtool libtool-bin +RUN mkdir -p /opt/src +RUN wget -q https://github.com/cpptest/cpptest/archive/1.0.5.tar.gz -O /opt/src/cpptest.tar.gz +RUN rm -rf /opt/src/cpptest +RUN tar xvf /opt/src/cpptest.tar.gz -C /opt/src --strip 1 +RUN cd /opt/src/cpptest && ./autogen.sh && ./configure && make && make install ## Build & Install Build squish RUN mkdir -p /opt/src diff --git a/dist/docker/builder/debian/jessie/x86_64/build-under-docker.sh b/dist/docker/builder/debian/jessie/x86_64/build-under-docker.sh index 53eaf4ddc..9a9a32ad5 100755 --- a/dist/docker/builder/debian/jessie/x86_64/build-under-docker.sh +++ b/dist/docker/builder/debian/jessie/x86_64/build-under-docker.sh @@ -30,7 +30,7 @@ fi echo "$(date "+%Y/%m/%d %H:%M:%S") BUILD START" >> $LOGFILE -cd ${DIRBUILD}; cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=OFF ${CMAKEOPTS} .. 1>>$LOGFILE 2>&1 || exit 2 +cd ${DIRBUILD}; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON ${CMAKEOPTS} .. 1>>$LOGFILE 2>&1 || exit 2 cd ${DIRBUILD}; make $MAKEOPTS 1>>$LOGFILE 2>&1 || exit 2 diff --git a/dist/docker/builder/debian/jessie/x86_64/build.sh b/dist/docker/builder/debian/jessie/x86_64/build.sh index e351ee70f..5fe9b35f3 100755 --- a/dist/docker/builder/debian/jessie/x86_64/build.sh +++ b/dist/docker/builder/debian/jessie/x86_64/build.sh @@ -13,6 +13,7 @@ declare -i BUILD=1 declare -i DEBUG=0 declare JOBS="" declare CMAKEOPTS="" +declare DOCKEROPTS="" declare DIRBUILD="" declare CLEANDOCKER=0 @@ -42,11 +43,14 @@ options: -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -a OPTS, --add-opts-cmake=OPTS : Adding options on cmake command (before build) -c, --clean-container : remove all container in state Exited + -m OPTS, --add-opts-docker=OPTS : Adding options on docker command (when build) + --only-build-server : adding option to build only server Example : cd [root Khanat directory] - ./build.sh -c -r - ./build.sh -c -r -j 4 -a '-DWITH_SYMBOLS=ON' -a '-DWITH_RYZOM_TOOLS=OFF' -a '-DWITH_NEL_TOOLS=OFF' + ./build.sh -c -r -m '-m 20g' + ./build.sh -c -r -j 4 -a '-DWITH_SYMBOLS=ON' -a '-DWITH_RYZOM_TOOLS=OFF' -a '-DWITH_NEL_TOOLS=OFF' -m '-m 20g' -d + EOF } @@ -134,6 +138,19 @@ do CMAKEOPTS="$CMAKEOPTS ${1#*=}" shift ;; + -m) + shift + DOCKEROPTS="$DOCKEROPTS $1" + shift + ;; + --add-opts-docker=*) + DOCKEROPTS="$DOCKEROPTS ${1#*=}" + shift + ;; + --only-build-server) + CMAKEOPTS="$CMAKEOPTS -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=OFF" + shift + ;; *) msg_error "options '$1' not recoginze" usage @@ -166,6 +183,7 @@ msg_debug "basedir: $basedir" msg_debug "rootdir: $rootdir" msg_debug "JOBS: '$JOBS'" msg_debug "CMAKEOPTS: '$CMAKEOPTS'" +msg_debug "DOCKEROPTS: '$DOCKEROPTS'" mkdir -p "${DIRBUILD}" if [[ $REMOVE -ne 0 ]] @@ -197,6 +215,7 @@ then -u "$(id -u $USERNAME):$(id -g $USERNAME)" \ -v $rootdir/dist:/opt/dist \ -v $rootdir/code:/opt/code \ + ${DOCKEROPTS} \ ${IMAGEDOCKER} \ /opt/dist/docker/builder/${LOCALSRC}/build-under-docker.sh "/opt/code/${LOCALBUILDDIR}/" || exit 2 fi diff --git a/dist/docker/server/debian/init-basic.sh b/dist/docker/server/debian/init-basic.sh index ca66561ff..b91c65f10 100755 --- a/dist/docker/server/debian/init-basic.sh +++ b/dist/docker/server/debian/init-basic.sh @@ -1,18 +1,27 @@ #!/bin/bash +#################################### # -# +#################################### echo "Start Basic" +#################################### +# Install some package for server (apache, mysql, screen) +#################################### DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server apt-get install -y apache2 php5 libapache2-mod-php5 php5-mysql apache2-utils php5-gd php5-imagick rrdtool screen mcrypt php5-mcrypt +#################################### +# Initialize database +#################################### + /usr/bin/mysql_install_db --user=mysql --skip-name-resolve || exit 2 # Start the MySQL daemon in the background. /usr/sbin/mysqld & mysql_pid=$! +# Wait mysql start until /usr/bin/mysqladmin ping >/dev/null 2>&1 do echo -n "." @@ -22,6 +31,7 @@ done # Initialize password root (to empty) /usr/bin/mysqladmin -u root password '' || exit 2 +# Adding phpmyadmin DEBIAN_FRONTEND=noninteractive apt-get install -y phpmyadmin ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf || exit 2 @@ -36,7 +46,9 @@ awk '{if($0 ~ /AllowNoPassword/){$1="";}; print $0;}' /etc/phpmyadmin/config.inc # Wait MySQL stop wait $mysql_pid +#################################### # Initialize bashrc (for root) +#################################### cat << EOF > /root/.bashrc # bashrc: executed by bash(1) for non-login shells. @@ -59,7 +71,9 @@ if [ -f /etc/bash_completion ]; then fi EOF - +#################################### +# Initialize bashrc (for compil) +#################################### cat << EOF > /home/compil/.bashrc # bashrc: executed by bash(1) for non-login shells. @@ -83,9 +97,76 @@ fi EOF chown compil:compil /home/compil/.bashrc +#################################### +# Initialize bashrc (for gameserver) +#################################### +cat << EOF > /home/gameserver/.bashrc +# bashrc: executed by bash(1) for non-login shells. + +# You may uncomment the following lines if you want 'ls' to be colorized: +export SHELL=/bin/bash +export LS_OPTIONS='--color=auto' +eval "\`dircolors\`" +alias ls='ls \$LS_OPTIONS' +alias ll='ls \$LS_OPTIONS -l' +alias l='ls \$LS_OPTIONS -lA' + +# Some more alias to avoid making mistakes: +# alias rm='rm -i' +# alias cp='cp -i' +# alias mv='mv -i' + +# Autocompletion +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi +EOF +chown gameserver:gameserver /home/gameserver/.bashrc + +#################################### +# Adding sudo command +#################################### + +# Update sudo rule (you can execute all command as root) cat << EOF > /etc/sudoers.d/compil # User privilege specification compil ALL=NOPASSWD: ALL +gameserver ALL=NOPASSWD: ALL EOF +#################################### +# LOGING HEADER +#################################### +# Message see when connect on ssh + +# Before login +cat << EOF > /etc/issue.net +********************* +* KHANAT SERVER DEV * +********************* + +account compil +password khanat + +account gameserver +password khanat + +EOF + +# After Login +cat << EOF > /etc/motd +*************************************************** +connect to root use compil or gameserver and launch +sudo bash +--------------------------------------------------- +mysql : account root (no password) +*************************************************** +EOF + +# Activate banner +sed -i 's/#Banner/Banner/g' /etc/ssh/sshd_config + +#################################### +# End +#################################### echo "End Basic" diff --git a/dist/docker/server/debian/init-khanat.sh b/dist/docker/server/debian/init-khanat.sh index 339dd244a..0846ca20d 100755 --- a/dist/docker/server/debian/init-khanat.sh +++ b/dist/docker/server/debian/init-khanat.sh @@ -11,8 +11,10 @@ cd /opt; tar xzf ryzom-ressources.tar.gz || exit 2 cat << EOF > /opt/shard.sh export RYHOME=/home/compil export RYZOM_PATH=/home/compil/ryzom -export PATH=$PATH:/usr/local/bin:$RYZOM_PATH/tools/scripts/linux +export PATH=\$PATH:/usr/local/bin:\$RYZOM_PATH/tools/scripts/linux export RYDATA=/home/compil/khanat-ressources +export PATCH_HOME=/home/gameserver +export PATCH_CLIENT_SYSTEM=\$PATCH_HOME/patch_service echo "Environment loaded" EOF @@ -20,8 +22,10 @@ EOF cat << EOF > /home/compil/.bashrc export RYHOME=/home/compil export RYZOM_PATH=/home/compil/ryzom -export PATH=$PATH:/usr/local/bin:$RYZOM_PATH/tools/scripts/linux +export PATH=\$PATH:/usr/local/bin:\$RYZOM_PATH/tools/scripts/linux export RYDATA=/home/compil/khanat-ressources +export PATCH_HOME=/home/gameserver +export PATCH_CLIENT_SYSTEM=\$PATCH_HOME/patch_service echo "Environment loaded" EOF @@ -62,15 +66,15 @@ chown -R www-data:www-data $RYZOM_PATH/ryzomweb || exit 2 # configure apache cat << EOF > /etc/apache2/sites-available/000-default.conf - - Options Indexes FollowSymLinks - AllowOverride None - Require all granted - DirectoryIndex index.php - AddType text/html .php .phps - AddHandler application/x-httpd-php .php - AddHandler application/x-httpd-php-source .phps - + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + DirectoryIndex index.php + AddType text/html .php .phps + AddHandler application/x-httpd-php .php + AddHandler application/x-httpd-php-source .phps + ServerName lirria.khaganat.net ServerAdmin webmaster@localhost @@ -81,11 +85,11 @@ cat << EOF > /etc/apache2/sites-available/000-default.conf - - Options Indexes FollowSymLinks - AllowOverride None - Require all granted - + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + ServerName lirria.khaganat.net ServerAdmin admin@localhost @@ -94,6 +98,17 @@ cat << EOF > /etc/apache2/sites-available/000-default.conf ErrorLog \${APACHE_LOG_DIR}/error.log CustomLog \${APACHE_LOG_DIR}/access.log combined + + + ServerName lirria.khaganat.net + DocumentRoot $PATCH_HOME/patch_service/patch_game/patch/ + + + Options -Indexes + AllowOverride All + Require all granted + + EOF cat << EOF > /etc/apache2/ports.conf @@ -103,6 +118,7 @@ cat << EOF > /etc/apache2/ports.conf Listen 80 Listen 40916 +Listen 43435 Listen 443 @@ -316,10 +332,184 @@ mkdir -p $RYZOM_PATH/server/save_shard/rrd_graphs # # Serveur Patch -# TODO - need add other step to initialize patch server # Account use : gameserver -su -c "mkdir -p /home/gameserver/patch_service/" gameserver || exit 2 -su -c "cd /home/gameserver/patch_service; patch_gen createNewProduct patch_game/ryzom.xml" gameserver || exit 2 + +# Generate data to client +echo "PATCH - CREATE DIRECTORY" +echo "PATCH_HOME:$PATCH_HOME" +echo "PATCH_CLIENT_SYSTEM:$PATCH_CLIENT_SYSTEM" +mkdir -p $PATCH_HOME/patch_service/dataserver || exit 2 + +# TODO : Pourquoi récupère ton des données de khanat-ressources pour les langues ? +# Search le nombre de langue +listlang=$(ls $RYDATA/translation/translated | cut -f 1 -d '.' | sed 's/^.*\(.\{2\}\)$/\1/' | sort | uniq) +echo "LIST LANG : $listlang" + +for lang in $listlang +do + echo "create dir : $PATCH_HOME/patch_service/dataserver/kh_translate_$lang" + mkdir -p $PATCH_HOME/patch_service/dataserver/kh_translate_$lang || exit 2 +done +mkdir -p $PATCH_HOME/patch_service/kh_server || exit 2 +mkdir -p $PATCH_HOME/patch_service/dataserver || exit 2 +mkdir -p $PATCH_CLIENT_SYSTEM/patch_game/bnp/ + +echo "COPY DATA TO GENERATE PATCH" +cp $RYZOM_PATH/common/data_common/database.xml $PATCH_CLIENT_SYSTEM/kh_server/ || exit 2 +cp $RYZOM_PATH/common/data_common/msg.xml $PATCH_CLIENT_SYSTEM/kh_server/ || exit 2 +cp /opt/sheets_packer/client/data/*.packed_sheets $PATCH_CLIENT_SYSTEM/kh_server/ || exit 2 +cp /opt/sheets_packer/client/data/*.packed $PATCH_CLIENT_SYSTEM/kh_server/ || exit 2 +cp $RYZOM_PATH/common/data_common/visual_slot.tab $PATCH_CLIENT_SYSTEM/kh_server/ || exit 2 +cp $RYDATA/leveldesign/game_elem/sheet_id.bin $PATCH_CLIENT_SYSTEM/kh_server/ || exit 2 + + +cd $PATCH_HOME/patch_service/dataserver; tar xzf /opt/khanat-data-client.tar.gz || exit 2 + +# TODO : Pourquoi récupère ton des données de khanat-ressources pour les langues ? +for lang in $listlang +do + cp $RYDATA/translation/translated/*$lang.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_$lang/ || exit 2 +done + +echo "GENERATE PATCH" +for lang in $listlang +do + cd $PATCH_CLIENT_SYSTEM/dataserver/; bnp_make -p kh_translate_$lang || exit 2 +done + +# tous les bnp de khanat-data-client +cd $PATCH_HOME/patch_service/dataserver/data/; bnp_make -p fonts || exit 2 +for dir in $PATCH_HOME/patch_service/dataserver/data/kh/* +do + cd $dir/..; bnp_make -p $(basename $dir) || exit 2 +done + +for dir in $PATCH_HOME/patch_service/dataserver/data/kh_shard/* +do + cd $dir/..; bnp_make -p $(basename $dir) || exit 2 +done + +for dir in $PATCH_HOME/patch_service/dataserver/data/ryz/* +do + cd $dir/..; bnp_make -p $(basename $dir) || exit 2 +done + +## TODO - check how generate '.ref' files +for dir in $PATCH_HOME/patch_service/dataserver/client/* +do + cd $dir/..; bnp_make -p $(basename $dir) || exit 2 +done +for file in $PATCH_HOME/patch_service/dataserver/client/*.bnp +do + mv "$file" "${file%.bnp}.ref" || exit 2 +done + + +# kh_server +cd $PATCH_CLIENT_SYSTEM/; bnp_make -p kh_server || exit 2 + +echo "MOVE PATCH" + +for file in $PATCH_HOME/patch_service/dataserver/client/*.ref +do + mv "$file" $PATCH_CLIENT_SYSTEM/patch_game/bnp/ || exit 2 +done + +for file in $PATCH_HOME/patch_service/dataserver/data/kh/*.bnp +do + mv "$file" $PATCH_CLIENT_SYSTEM/patch_game/bnp/ || exit 2 +done + +for file in $PATCH_HOME/patch_service/dataserver/data/kh_shard/*.bnp +do + mv "$file" $PATCH_CLIENT_SYSTEM/patch_game/bnp/ || exit 2 +done + +for file in $PATCH_HOME/patch_service/dataserver/data/ryz/*.bnp +do + mv "$file" $PATCH_CLIENT_SYSTEM/patch_game/bnp/ || exit 2 +done + +for lang in $listlang +do + mv $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_$lang.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ || exit 2 +done +mv kh_server.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ || exit 2 + +chown -R gameserver:www-data $PATCH_HOME/patch_service || exit 2 + +echo "PREPARE PATCH" +# +su -c "cd $PATCH_HOME/patch_service; patch_gen createNewProduct patch_game/ryzom.xml" gameserver || exit 2 +su -c "cd $PATCH_HOME/patch_service;touch patch_game/Lirria.version" gameserver || exit 2 +sed -i -r 's/value="main"/value="khanat_lirria"/g' patch_game/ryzom.xml || exit 2 +sed -i -r 's/_NextVersionFile type="STRING" value=""/_NextVersionFile type="STRING" value="patch_game\/Lirria.version"/g' patch_game/ryzom.xml || exit 2 + +#cat << EOF > $PATCH_HOME/patch_service/patch_game/ryzom.xml +# +# <_Categories> +# <_Category> +# <_Name type="STRING" value="khanat_lirria"/> +# <_IsOptional type="SINT32" value="0"/> +# <_UnpackTo type="STRING" value="./user/"/> +# <_IsIncremental type="SINT32" value="1"/> +# <_Files type="STRING" value="patch_lirria.bnp"/> +# +# +# <_IndexFileName type="STRING" value="ryzom.hist"/> +# <_PatchDirectory type="STRING" value="patch_game/patch/"/> +# <_BnpDirectory type="STRING" value="patch_game/bnp/"/> +# <_RefDirectory type="STRING" value="patch_game/ref/"/> +# <_NextVersionFile type="STRING" value="patch_game/Lirria.version"/> +# <_ClientIndexFileName type="STRING" value="ryzom"/> +# +#EOF + +# Generate patch +su -c "cd $PATCH_HOME/patch_service; patch_gen updateProduct patch_game/ryzom.xml" gameserver || exit 2 +# Edit release note +cat << EOF > $PATCH_HOME/patch_service/patch_game/patch/index.php + + + + + +

New test data - Release $KHANAT_CLIENT_VERSION

+

An update will now be performed to your client(the /user directory to be exact). + Please help us test the deployment of our free MMORPG server!! + + +EOF +chown gameserver:www-data $PATCH_HOME/patch_service/patch_game/patch/index.php + +cat << EOF > $PATCH_HOME/patch_service/patch_game/patch/Lirria.version +$KHANAT_CLIENT_VERSION $KHANAT_CLIENT_VERSION +EOF + +echo "CONFIGURE APACHE" +cat << EOF > /etc/apache2/conf-available/patch_service.conf +Alias /patch /home/gameserver/patch_service/patch_game/patch + + Options FollowSymLinks + DirectoryIndex index.php + + Require all granted + + + + AddType application/x-httpd-php .php + + + SetHandler application/x-httpd-php + + + +EOF +# Activate & deploy new configuration +a2enconf patch_service.conf + +chown -R gameserver:www-data $PATCH_HOME/patch_service +chmod g+w -R $PATCH_HOME/patch_service # # Stop All diff --git a/dist/docker/server/debian/jessie/x86_64/Dockerfile b/dist/docker/server/debian/jessie/x86_64/Dockerfile index 71a2b3cdb..ca1cffc5a 100644 --- a/dist/docker/server/debian/jessie/x86_64/Dockerfile +++ b/dist/docker/server/debian/jessie/x86_64/Dockerfile @@ -19,9 +19,9 @@ RUN apt-get install -y openssh-server sudo net-tools RUN apt-get install -y lzma xdelta # adding account compil, password compil -RUN useradd -G sudo,www-data -c /home -d /home/gameserver -c "Khanat account GAME" -m -p '$6$4a/ofDWe$Bh16Bi.fWHF2dkerY6f0fKLspYKfjsaZvvQ3Hqycoye0JV1KLS4SAm/FEtIx1MzwqkgQnnPgNFZRZwPIebnL01' -s /bin/bash -U gameserver +RUN useradd -G sudo,www-data -c /home -d /home/gameserver -c "Khanat account GAME" -m -p '$6$nxHX/3u.$azS0.eldpfKqxqOLDjgZj8.hPOLC64arXDTUVX0fs7RZvRBX/pNqPzDR89ccP5XkEE/daOyaD3wVtDGDUND5b/' -s /bin/bash -U gameserver -RUN useradd -G sudo,www-data -c /home -d /home/compil -c "Khanat account" -m -p '$6$cQrN51jJ$eP/whHzKesStKm8KgQwZMb.kYdPzJm2RtG7FcESQtrrioyOiDslE4jxnuz4WieMIvW8saPdnj3vOy1s/cnfVy.' -s /bin/bash -U compil +RUN useradd -G sudo,www-data -c /home -d /home/compil -c "Khanat account" -m -p '$6$nxHX/3u.$azS0.eldpfKqxqOLDjgZj8.hPOLC64arXDTUVX0fs7RZvRBX/pNqPzDR89ccP5XkEE/daOyaD3wVtDGDUND5b/' -s /bin/bash -U compil COPY dist/docker/server/debian/init-basic.sh /opt/ diff --git a/dist/docker/server/debian/jessie/x86_64/Dockerfile.khanat b/dist/docker/server/debian/jessie/x86_64/Dockerfile.khanat index 432ba73d3..96024fea3 100644 --- a/dist/docker/server/debian/jessie/x86_64/Dockerfile.khanat +++ b/dist/docker/server/debian/jessie/x86_64/Dockerfile.khanat @@ -16,6 +16,7 @@ COPY dist/docker/server/debian/init-khanat.sh /opt/ COPY ryzomcore.tar.gz /opt/ COPY ryzom-ressources.tar.gz /opt/ COPY khanat-ressources.tar.gz /opt/ +COPY khanat-data-client.tar.gz /opt/ RUN /opt/init-khanat.sh diff --git a/dist/docker/server/debian/jessie/x86_64/server.sh b/dist/docker/server/debian/jessie/x86_64/server.sh index fe974322a..3c5a8cc4b 100755 --- a/dist/docker/server/debian/jessie/x86_64/server.sh +++ b/dist/docker/server/debian/jessie/x86_64/server.sh @@ -11,6 +11,7 @@ declare -i IMAGE=1 declare -i BASICSERVER=0 declare -i KHANATSERVER=0 declare -i KHANATRESSOURCES=0 +declare -i KHANATDATACLIENT=0 declare -i RYZOMRESSOURCES=0 declare -i LAUNCHKHANAT=1 declare -i DEBUG=0 @@ -18,7 +19,7 @@ declare -i AUTODETEC=1 declare -i STOPKHANAT=0 declare -i CLEANCONTAINERKHANAT=0 declare -i CONNECTSSHKHANAT=0 -declare -i KHANAT_CLIENT_VERSION=0 +declare -i KHANAT_CLIENT_VERSION=1 declare IMAGEGENERICSERVER="server_generic_debian_jessie_x86_64" declare IMAGEKHANATSERVER="server_khanat_debian_jessie_x86_64" @@ -42,6 +43,7 @@ options: -d, --debug : Show debug message -b, --force-basic : Force create/recreate image basic server -t, --force-tar-ressources : Generate TAR.GZ for khanat-ressources (look directory ../khanat-ressources) + -q, --force-tar-data-client : Generate TAR.GZ for khanat-data-client (look directory ../khanat-data-client) -z, --force-tar-ryzom-ressources : Generate TAR.GZ in data khanat-code -k, --force-khanat : Force create/recreate image khanat server -n, --no-launch-khanat : Doesn't launch khanat server @@ -84,6 +86,7 @@ calldir="$(dirname $0)" basedir=$(cd $calldir; pwd) rootdir="$(dirname $(dirname $(dirname $(dirname $(dirname $(dirname ${basedir}))))))" ressourcedir="$(dirname ${rootdir})/khanat-ressources" +dataclientdir="$(dirname ${rootdir})/khanat-data-client" while test $# -gt 0 do @@ -120,6 +123,10 @@ do KHANATRESSOURCES=1 shift ;; + -q|--force-tar-data-client) + KHANATDATACLIENT=1 + shift + ;; -z|--force-tar-ryzom-ressources) RYZOMRESSOURCES=1 shift @@ -190,10 +197,14 @@ then then BASICSERVER=1 fi - if [[ ! -d ${ressourcedir} ]] + if [[ ! -f ${rootdir}/khanat-ressources.tar.gz ]] then KHANATRESSOURCES=1 fi + if [[ ! -f ${rootdir}/khanat-data-client.tar.gz ]] + then + KHANATDATACLIENT=1 + fi if [[ ! -f ${rootdir}/ryzom-ressources.tar.gz ]] then RYZOMRESSOURCES=1 @@ -222,6 +233,7 @@ msg_debug "rootdir: $rootdir" msg_debug "ressourcedir: $ressourcedir" msg_debug "generate basic image: $BASICSERVER" msg_debug "generate tar khanat ressources: $KHANATRESSOURCES" +msg_debug "generate tar khanat data client: $KHANATDATACLIENT" msg_debug "generate tar ryzom ressources: $RYZOMRESSOURCES" msg_debug "generate khanat image: $KHANATSERVER" msg_debug "launch khanat: $LAUNCHKHANAT" @@ -238,6 +250,17 @@ then (cd $ressourcedir; tar --exclude='.git' -czf ${rootdir}/khanat-ressources.tar.gz .) || exit 2 fi +if [[ $KHANATDATACLIENT -ne 0 ]] +then + msg_info "$(date "+%Y/%m/%d %H:%M:%S") CREATE TAR with KHANAT DATA CLIENT" + if [[ ! -d ${dataclientdir} ]] + then + msg_error "Missing khanat-data-client directory ($dataclientdir)" + exit 2 + fi + (cd $dataclientdir; tar --exclude='.git' -czf ${rootdir}/khanat-data-client.tar.gz .) || exit 2 +fi + if [[ $RYZOMRESSOURCES -ne 0 ]] then msg_info "CREATE TAR with RYZOM Ressources"