adding patch server

This commit is contained in:
Jerome Sagnole 2017-08-27 16:38:04 +02:00
parent 93d7d90826
commit b66681aace
9 changed files with 363 additions and 36 deletions

View file

@ -13,6 +13,7 @@ declare -i BUILD=1
declare -i DEBUG=0 declare -i DEBUG=0
declare JOBS="" declare JOBS=""
declare CMAKEOPTS="" declare CMAKEOPTS=""
declare DOCKEROPTS=""
declare DIRBUILD="" declare DIRBUILD=""
declare CLEANDOCKER=0 declare CLEANDOCKER=0
@ -42,11 +43,12 @@ options:
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -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) -a OPTS, --add-opts-cmake=OPTS : Adding options on cmake command (before build)
-c, --clean-container : remove all container in state Exited -c, --clean-container : remove all container in state Exited
-m OPTS, --add-opts-docker=OPTS : Adding options on docker command (when build)
Example : Example :
cd [root Khanat directory] cd [root Khanat directory]
./build.sh -c -r ./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 EOF
} }
@ -134,6 +136,15 @@ do
CMAKEOPTS="$CMAKEOPTS ${1#*=}" CMAKEOPTS="$CMAKEOPTS ${1#*=}"
shift shift
;; ;;
-m)
shift
DOCKEROPTS="$DOCKEROPTS $1"
shift
;;
--add-opts-docker=*)
DOCKEROPTS="$DOCKEROPTS ${1#*=}"
shift
;;
*) *)
msg_error "options '$1' not recoginze" msg_error "options '$1' not recoginze"
usage usage
@ -166,6 +177,7 @@ msg_debug "basedir: $basedir"
msg_debug "rootdir: $rootdir" msg_debug "rootdir: $rootdir"
msg_debug "JOBS: '$JOBS'" msg_debug "JOBS: '$JOBS'"
msg_debug "CMAKEOPTS: '$CMAKEOPTS'" msg_debug "CMAKEOPTS: '$CMAKEOPTS'"
msg_debug "DOCKEROPTS: '$DOCKEROPTS'"
mkdir -p "${DIRBUILD}" mkdir -p "${DIRBUILD}"
if [[ $REMOVE -ne 0 ]] if [[ $REMOVE -ne 0 ]]
@ -197,6 +209,7 @@ then
-u "$(id -u $USERNAME):$(id -g $USERNAME)" \ -u "$(id -u $USERNAME):$(id -g $USERNAME)" \
-v $rootdir/dist:/opt/dist \ -v $rootdir/dist:/opt/dist \
-v $rootdir/code:/opt/code \ -v $rootdir/code:/opt/code \
${DOCKEROPTS} \
${IMAGEDOCKER} \ ${IMAGEDOCKER} \
/opt/dist/docker/builder/${LOCALSRC}/build-under-docker.sh "/opt/code/${LOCALBUILDDIR}/" || exit 2 /opt/dist/docker/builder/${LOCALSRC}/build-under-docker.sh "/opt/code/${LOCALBUILDDIR}/" || exit 2
fi fi

View file

@ -25,18 +25,18 @@ RUN apt-get dist-upgrade
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server 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 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 RUN apt-get install -y wget
## Build & Install cpptest ## Build & Install cpptest
# Impossible to build release 1.1.0, 1.1.1, 1.1.2 # 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 apt-get install -y wget autogen autoconf automake libtool libtool-bin
#RUN mkdir -p /opt/src 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 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 rm -rf /opt/src/cpptest
#RUN tar xvf /opt/src/cpptest.tar.gz -C /opt/src --strip 1 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 cd /opt/src/cpptest && ./autogen.sh && ./configure && make && make install
## Build & Install Build squish ## Build & Install Build squish
RUN mkdir -p /opt/src RUN mkdir -p /opt/src

View file

@ -30,7 +30,7 @@ fi
echo "$(date "+%Y/%m/%d %H:%M:%S") BUILD START" >> $LOGFILE 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 cd ${DIRBUILD}; make $MAKEOPTS 1>>$LOGFILE 2>&1 || exit 2

View file

@ -13,6 +13,7 @@ declare -i BUILD=1
declare -i DEBUG=0 declare -i DEBUG=0
declare JOBS="" declare JOBS=""
declare CMAKEOPTS="" declare CMAKEOPTS=""
declare DOCKEROPTS=""
declare DIRBUILD="" declare DIRBUILD=""
declare CLEANDOCKER=0 declare CLEANDOCKER=0
@ -42,11 +43,14 @@ options:
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -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) -a OPTS, --add-opts-cmake=OPTS : Adding options on cmake command (before build)
-c, --clean-container : remove all container in state Exited -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 : Example :
cd [root Khanat directory] cd [root Khanat directory]
./build.sh -c -r ./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' ./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 EOF
} }
@ -134,6 +138,19 @@ do
CMAKEOPTS="$CMAKEOPTS ${1#*=}" CMAKEOPTS="$CMAKEOPTS ${1#*=}"
shift 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" msg_error "options '$1' not recoginze"
usage usage
@ -166,6 +183,7 @@ msg_debug "basedir: $basedir"
msg_debug "rootdir: $rootdir" msg_debug "rootdir: $rootdir"
msg_debug "JOBS: '$JOBS'" msg_debug "JOBS: '$JOBS'"
msg_debug "CMAKEOPTS: '$CMAKEOPTS'" msg_debug "CMAKEOPTS: '$CMAKEOPTS'"
msg_debug "DOCKEROPTS: '$DOCKEROPTS'"
mkdir -p "${DIRBUILD}" mkdir -p "${DIRBUILD}"
if [[ $REMOVE -ne 0 ]] if [[ $REMOVE -ne 0 ]]
@ -197,6 +215,7 @@ then
-u "$(id -u $USERNAME):$(id -g $USERNAME)" \ -u "$(id -u $USERNAME):$(id -g $USERNAME)" \
-v $rootdir/dist:/opt/dist \ -v $rootdir/dist:/opt/dist \
-v $rootdir/code:/opt/code \ -v $rootdir/code:/opt/code \
${DOCKEROPTS} \
${IMAGEDOCKER} \ ${IMAGEDOCKER} \
/opt/dist/docker/builder/${LOCALSRC}/build-under-docker.sh "/opt/code/${LOCALBUILDDIR}/" || exit 2 /opt/dist/docker/builder/${LOCALSRC}/build-under-docker.sh "/opt/code/${LOCALBUILDDIR}/" || exit 2
fi fi

View file

@ -1,18 +1,27 @@
#!/bin/bash #!/bin/bash
####################################
# #
# ####################################
echo "Start Basic" echo "Start Basic"
####################################
# Install some package for server (apache, mysql, screen)
####################################
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server 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 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 /usr/bin/mysql_install_db --user=mysql --skip-name-resolve || exit 2
# Start the MySQL daemon in the background. # Start the MySQL daemon in the background.
/usr/sbin/mysqld & /usr/sbin/mysqld &
mysql_pid=$! mysql_pid=$!
# Wait mysql start
until /usr/bin/mysqladmin ping >/dev/null 2>&1 until /usr/bin/mysqladmin ping >/dev/null 2>&1
do do
echo -n "." echo -n "."
@ -22,6 +31,7 @@ done
# Initialize password root (to empty) # Initialize password root (to empty)
/usr/bin/mysqladmin -u root password '' || exit 2 /usr/bin/mysqladmin -u root password '' || exit 2
# Adding phpmyadmin
DEBIAN_FRONTEND=noninteractive apt-get install -y phpmyadmin DEBIAN_FRONTEND=noninteractive apt-get install -y phpmyadmin
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf || exit 2 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 stop
wait $mysql_pid wait $mysql_pid
####################################
# Initialize bashrc (for root) # Initialize bashrc (for root)
####################################
cat << EOF > /root/.bashrc cat << EOF > /root/.bashrc
# bashrc: executed by bash(1) for non-login shells. # bashrc: executed by bash(1) for non-login shells.
@ -59,7 +71,9 @@ if [ -f /etc/bash_completion ]; then
fi fi
EOF EOF
####################################
# Initialize bashrc (for compil)
####################################
cat << EOF > /home/compil/.bashrc cat << EOF > /home/compil/.bashrc
# bashrc: executed by bash(1) for non-login shells. # bashrc: executed by bash(1) for non-login shells.
@ -83,9 +97,76 @@ fi
EOF EOF
chown compil:compil /home/compil/.bashrc 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 cat << EOF > /etc/sudoers.d/compil
# User privilege specification # User privilege specification
compil ALL=NOPASSWD: ALL compil ALL=NOPASSWD: ALL
gameserver ALL=NOPASSWD: ALL
EOF 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" echo "End Basic"

View file

@ -11,8 +11,10 @@ cd /opt; tar xzf ryzom-ressources.tar.gz || exit 2
cat << EOF > /opt/shard.sh cat << EOF > /opt/shard.sh
export RYHOME=/home/compil export RYHOME=/home/compil
export RYZOM_PATH=/home/compil/ryzom 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 RYDATA=/home/compil/khanat-ressources
export PATCH_HOME=/home/gameserver
export PATCH_CLIENT_SYSTEM=\$PATCH_HOME/patch_service
echo "Environment loaded" echo "Environment loaded"
EOF EOF
@ -20,8 +22,10 @@ EOF
cat << EOF > /home/compil/.bashrc cat << EOF > /home/compil/.bashrc
export RYHOME=/home/compil export RYHOME=/home/compil
export RYZOM_PATH=/home/compil/ryzom 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 RYDATA=/home/compil/khanat-ressources
export PATCH_HOME=/home/gameserver
export PATCH_CLIENT_SYSTEM=\$PATCH_HOME/patch_service
echo "Environment loaded" echo "Environment loaded"
EOF EOF
@ -62,15 +66,15 @@ chown -R www-data:www-data $RYZOM_PATH/ryzomweb || exit 2
# configure apache # configure apache
cat << EOF > /etc/apache2/sites-available/000-default.conf cat << EOF > /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80> <VirtualHost *:80>
<Directory "$RYZOM_PATH/ryzomweb/"> <Directory "$RYZOM_PATH/ryzomweb/">
Options Indexes FollowSymLinks Options Indexes FollowSymLinks
AllowOverride None AllowOverride None
Require all granted Require all granted
DirectoryIndex index.php DirectoryIndex index.php
AddType text/html .php .phps AddType text/html .php .phps
AddHandler application/x-httpd-php .php AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps AddHandler application/x-httpd-php-source .phps
</Directory> </Directory>
ServerName lirria.khaganat.net ServerName lirria.khaganat.net
ServerAdmin webmaster@localhost ServerAdmin webmaster@localhost
@ -81,11 +85,11 @@ cat << EOF > /etc/apache2/sites-available/000-default.conf
</VirtualHost> </VirtualHost>
<VirtualHost *:40916> <VirtualHost *:40916>
<Directory "$RYZOM_PATH/ryzomweb/"> <Directory "$RYZOM_PATH/ryzomweb/">
Options Indexes FollowSymLinks Options Indexes FollowSymLinks
AllowOverride None AllowOverride None
Require all granted Require all granted
</Directory> </Directory>
ServerName lirria.khaganat.net ServerName lirria.khaganat.net
ServerAdmin admin@localhost ServerAdmin admin@localhost
@ -94,6 +98,17 @@ cat << EOF > /etc/apache2/sites-available/000-default.conf
ErrorLog \${APACHE_LOG_DIR}/error.log ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost> </VirtualHost>
<VirtualHost *:43435>
ServerName lirria.khaganat.net
DocumentRoot $PATCH_HOME/patch_service/patch_game/patch/
<Directory "/$PATCH_HOME/patch_service/patch_game/patch">
Options -Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF EOF
cat << EOF > /etc/apache2/ports.conf cat << EOF > /etc/apache2/ports.conf
@ -103,6 +118,7 @@ cat << EOF > /etc/apache2/ports.conf
Listen 80 Listen 80
Listen 40916 Listen 40916
Listen 43435
<IfModule ssl_module> <IfModule ssl_module>
Listen 443 Listen 443
@ -316,10 +332,184 @@ mkdir -p $RYZOM_PATH/server/save_shard/rrd_graphs
# #
# Serveur Patch # Serveur Patch
# TODO - need add other step to initialize patch server
# Account use : gameserver # 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
#<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"/>
# </_Category>
# </_Categories>
# <_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"/>
#</xml>
#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
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>New test data - Release $KHANAT_CLIENT_VERSION</h1>
<p>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!!
</body>
</html>
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
<Directory /home/gameserver/patch_service/patch_game/patch>
Options FollowSymLinks
DirectoryIndex index.php
Require all granted
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
</Directory>
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 # Stop All

View file

@ -19,9 +19,9 @@ RUN apt-get install -y openssh-server sudo net-tools
RUN apt-get install -y lzma xdelta RUN apt-get install -y lzma xdelta
# adding account compil, password compil # 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/ COPY dist/docker/server/debian/init-basic.sh /opt/

View file

@ -16,6 +16,7 @@ COPY dist/docker/server/debian/init-khanat.sh /opt/
COPY ryzomcore.tar.gz /opt/ COPY ryzomcore.tar.gz /opt/
COPY ryzom-ressources.tar.gz /opt/ COPY ryzom-ressources.tar.gz /opt/
COPY khanat-ressources.tar.gz /opt/ COPY khanat-ressources.tar.gz /opt/
COPY khanat-data-client.tar.gz /opt/
RUN /opt/init-khanat.sh RUN /opt/init-khanat.sh

View file

@ -11,6 +11,7 @@ declare -i IMAGE=1
declare -i BASICSERVER=0 declare -i BASICSERVER=0
declare -i KHANATSERVER=0 declare -i KHANATSERVER=0
declare -i KHANATRESSOURCES=0 declare -i KHANATRESSOURCES=0
declare -i KHANATDATACLIENT=0
declare -i RYZOMRESSOURCES=0 declare -i RYZOMRESSOURCES=0
declare -i LAUNCHKHANAT=1 declare -i LAUNCHKHANAT=1
declare -i DEBUG=0 declare -i DEBUG=0
@ -18,7 +19,7 @@ declare -i AUTODETEC=1
declare -i STOPKHANAT=0 declare -i STOPKHANAT=0
declare -i CLEANCONTAINERKHANAT=0 declare -i CLEANCONTAINERKHANAT=0
declare -i CONNECTSSHKHANAT=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 IMAGEGENERICSERVER="server_generic_debian_jessie_x86_64"
declare IMAGEKHANATSERVER="server_khanat_debian_jessie_x86_64" declare IMAGEKHANATSERVER="server_khanat_debian_jessie_x86_64"
@ -42,6 +43,7 @@ options:
-d, --debug : Show debug message -d, --debug : Show debug message
-b, --force-basic : Force create/recreate image basic server -b, --force-basic : Force create/recreate image basic server
-t, --force-tar-ressources : Generate TAR.GZ for khanat-ressources (look directory ../khanat-ressources) -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 -z, --force-tar-ryzom-ressources : Generate TAR.GZ in data khanat-code
-k, --force-khanat : Force create/recreate image khanat server -k, --force-khanat : Force create/recreate image khanat server
-n, --no-launch-khanat : Doesn't launch khanat server -n, --no-launch-khanat : Doesn't launch khanat server
@ -84,6 +86,7 @@ calldir="$(dirname $0)"
basedir=$(cd $calldir; pwd) basedir=$(cd $calldir; pwd)
rootdir="$(dirname $(dirname $(dirname $(dirname $(dirname $(dirname ${basedir}))))))" rootdir="$(dirname $(dirname $(dirname $(dirname $(dirname $(dirname ${basedir}))))))"
ressourcedir="$(dirname ${rootdir})/khanat-ressources" ressourcedir="$(dirname ${rootdir})/khanat-ressources"
dataclientdir="$(dirname ${rootdir})/khanat-data-client"
while test $# -gt 0 while test $# -gt 0
do do
@ -120,6 +123,10 @@ do
KHANATRESSOURCES=1 KHANATRESSOURCES=1
shift shift
;; ;;
-q|--force-tar-data-client)
KHANATDATACLIENT=1
shift
;;
-z|--force-tar-ryzom-ressources) -z|--force-tar-ryzom-ressources)
RYZOMRESSOURCES=1 RYZOMRESSOURCES=1
shift shift
@ -190,10 +197,14 @@ then
then then
BASICSERVER=1 BASICSERVER=1
fi fi
if [[ ! -d ${ressourcedir} ]] if [[ ! -f ${rootdir}/khanat-ressources.tar.gz ]]
then then
KHANATRESSOURCES=1 KHANATRESSOURCES=1
fi fi
if [[ ! -f ${rootdir}/khanat-data-client.tar.gz ]]
then
KHANATDATACLIENT=1
fi
if [[ ! -f ${rootdir}/ryzom-ressources.tar.gz ]] if [[ ! -f ${rootdir}/ryzom-ressources.tar.gz ]]
then then
RYZOMRESSOURCES=1 RYZOMRESSOURCES=1
@ -222,6 +233,7 @@ msg_debug "rootdir: $rootdir"
msg_debug "ressourcedir: $ressourcedir" msg_debug "ressourcedir: $ressourcedir"
msg_debug "generate basic image: $BASICSERVER" msg_debug "generate basic image: $BASICSERVER"
msg_debug "generate tar khanat ressources: $KHANATRESSOURCES" 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 tar ryzom ressources: $RYZOMRESSOURCES"
msg_debug "generate khanat image: $KHANATSERVER" msg_debug "generate khanat image: $KHANATSERVER"
msg_debug "launch khanat: $LAUNCHKHANAT" msg_debug "launch khanat: $LAUNCHKHANAT"
@ -238,6 +250,17 @@ then
(cd $ressourcedir; tar --exclude='.git' -czf ${rootdir}/khanat-ressources.tar.gz .) || exit 2 (cd $ressourcedir; tar --exclude='.git' -czf ${rootdir}/khanat-ressources.tar.gz .) || exit 2
fi 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 ]] if [[ $RYZOMRESSOURCES -ne 0 ]]
then then
msg_info "CREATE TAR with RYZOM Ressources" msg_info "CREATE TAR with RYZOM Ressources"