Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2424

Přidáno uživatelem Ondřej Fibich před více než 9 roky(ů)

Merge novinky: refs #970: Podpora pro jessie + DEB baliky

Zobrazit rozdíly:

freenetis/trunk/application/vendors/deb/debianization.sh
NAMES=(freenetis freenetis-monitoring freenetis-redirection freenetis-dhcp \
freenetis-ssh-keys freenetis-qos)
DEBIANS=(lenny squeeze wheezy)
DEBIANS=(lenny squeeze wheezy jessie)
VERSION=$1
if [ $# -eq 2 ] || [ $# -eq 3 ]; then
......
if [ -f "$deb_sh" ]; then
cd "$deb_dir_sh"
./debianization.sh "$VERSION" "$debian"
if [ $? -eq 0 ]; then
green_echo ">>>> [$name+$debian] debianized"
# move builded packages
......
else
red_echo ">>>> [$name+$debian] an error occured during debianization"
fi
cd "$root_dir"
else
red_echo ">>>> [$name+$debian] not debianized (debianization utility is missing)"
freenetis/trunk/application/vendors/deb/freenetis/debianization.sh
usr/share/doc/${NAME}/copyright
# compress doc
gzip --best usr/share/doc/${NAME}/changelog
gzip --best usr/share/doc/${NAME}/changelog
gzip --best usr/share/doc/${NAME}/changelog.Debian
# count size
......
# scripts ######################################################################
cp -a -f ../../${NAME}/preinst DEBIAN/preinst
cp -a -f ../../${NAME}/postinst DEBIAN/postinst
if [ $DEBIAN = "jessie" ]; then
cp -a -f ../../${NAME}/postinst.jessie DEBIAN/postinst
else
cp -a -f ../../${NAME}/postinst DEBIAN/postinst
fi
cp -a -f ../../${NAME}/prerm DEBIAN/prerm
cp -a -f ../../${NAME}/postrm DEBIAN/postrm
if [ $DEBIAN = "jessie" ]; then
cp -a -f ../../${NAME}/postrm.jessie DEBIAN/postrm
else
cp -a -f ../../${NAME}/postrm DEBIAN/postrm
fi
cp -a -f ../../${NAME}/templates DEBIAN/templates
cp -a -f ../../${NAME}/config DEBIAN/config
cp -a -f ../../${NAME}/conffiles DEBIAN/conffiles
freenetis/trunk/application/vendors/deb/freenetis/postinst.jessie
#!/bin/bash
# FreenetIS DEB: actions after installing of package
set -e
. /usr/share/debconf/confmodule
SERVER=apache2
CONFIGFILE=/etc/freenetis/freenetis.conf
CONFIG_SAMPLE_PHP=/usr/share/freenetis/config-sample.php
# Generate config file, if it doesn’t exist.
# An alternative is to copy in a template
# file from elsewhere.
if [ ! -e $CONFIGFILE ]; then
mkdir /etc/freenetis/
echo "# Config file for FreenetIS" > $CONFIGFILE
echo "SERVERNAME=\"localhost/freenetis\"" >> $CONFIGFILE
echo "PROTOCOL=\"http\"" >> $CONFIGFILE
fi
# load configure file
. $CONFIGFILE || true
# Version 1.1 is located in /usr/share/freenetis but previous versions were
# located in /var/www/freeenetis, we try to use old config files if they are
# exists. The old configuration must not replace new configuration!
OLD_PATH=/var/www/freenetis
CURRENT_PATH=/usr/share/freenetis
# DB config
if [ -f "${OLD_PATH}/config.php" ] && [ ! -f "${CURRENT_PATH}/config.php" ]; then
echo "Copying old DB configuration from ${OLD_PATH}/config.php file"
cp "${OLD_PATH}/config.php" "${CURRENT_PATH}/config.php"
fi
# .htaccess
if [ -f "${OLD_PATH}/.htaccess" ] && [ ! -f "${CURRENT_PATH}/.htaccess" ]; then
echo "Copying old apache configuration from ${OLD_PATH}/.htaccess file"
cp "${OLD_PATH}/.htaccess" "${CURRENT_PATH}/.htaccess"
chmod 0666 "${CURRENT_PATH}/.htaccess" || true
fi
# Substitute in the values from the debconf db.
# There are obvious optimizations possible here.
# The cp before the sed ensures we do not mess up
# the config file’s ownership and permissions.
db_get freenetis/server_type
SERVER_TYPE="$RET"
db_get freenetis/servername
SERVERNAME="$RET"
db_get freenetis/protocol
PROTOCOL="$RET"
db_get freenetis/https_add_redir
HTTPS_ADD_REDIR="$RET"
cp -a -f $CONFIGFILE $CONFIGFILE.tmp
# h@ck for enable reloading vars from config file
db_set freenetis/hack_reload true
db_go || true
# If the admin deleted or commented some variables but then set
# them via debconf, (re-)add them to the conffile.
test -z "$SERVERNAME" || grep -Eq '^ *SERVERNAME=' $CONFIGFILE || echo "SERVERNAME=" >> $CONFIGFILE
test -z "$PROTOCOL" || grep -Eq '^ *PROTOCOL=' $CONFIGFILE || echo "PROTOCOL=" >> $CONFIGFILE
SERVERNAME_ESCAPED="${SERVERNAME//\//\\/}"
sed -e "s/^ *SERVERNAME=.*/SERVERNAME=\"$SERVERNAME_ESCAPED\"/" \
-e "s/^ *PROTOCOL=.*/PROTOCOL=\"$PROTOCOL\"/" < $CONFIGFILE > $CONFIGFILE.tmp
mv -f $CONFIGFILE.tmp $CONFIGFILE
# check server name
if [ -z "$SERVERNAME" ]; then
echo "Wrong server name, configuration failed!"
exit 3
fi
# check protocol
if [ -z "$PROTOCOL" ]; then
echo "Wrong protocol, configuration failed!"
exit 3
fi
# check SSL keys
if [ "$PROTOCOL" = "https" ]; then
if [ ! -f "$SSL_CERTIFICATE_FILE" ]; then
echo "SSL certificate file and key file not set properly."
echo "File $SSL_CERTIFICATE_FILE does not exists"
echo " => switching protocol from https to http"
PROTOCOL="http"
fi
if [ ! -f "$SSL_CERTIFICATE_KEY_FILE" ]; then
echo "SSL certificate file and key file not set properly."
echo "File $SSL_CERTIFICATE_KEY_FILE does not exists"
echo " => switching protocol from https to http"
PROTOCOL="http"
fi
fi
# Make post install things
# 0) Access rights to some directories
chmod ugo+w /usr/share/freenetis
chmod ugo+w /usr/share/freenetis/upload
mkdir -m 0777 /usr/share/freenetis/logs 2>/dev/null || true
# 1) Apache config
echo "Preparing Apache"
A2CF=/etc/$SERVER/conf-enabled/freenetis.conf
# activate redirection
a2enmod rewrite > /dev/null
# activate SSL if https selected
if [ "$PROTOCOL" = "https" ]; then
a2enmod ssl > /dev/null
fi
# PHP settings
php_settings="
# PHP settings
php_flag register_globals Off
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag file_uploads On
php_flag short_open_tag On
# large inputs (fixes #358, #410)
php_value max_input_vars 100000
php_admin_value suhosin.post.max_vars 100000
php_admin_value suhosin.request.max_vars 100000"
# make config for FN
if [ "$SERVER_TYPE" = localhost ]; then
echo "Alias /freenetis /usr/share/freenetis" > $A2CF
echo "<Directory /usr/share/freenetis>" >> $A2CF
echo " Options Indexes FollowSymLinks MultiViews" >> $A2CF
echo " AllowOverride All" >> $A2CF
echo " Order allow,deny" >> $A2CF
echo " allow from all" >> $A2CF
echo " ${php_settings}" >> $A2CF
echo "</Directory>" >> $A2CF
else
if [ "$PROTOCOL" = "https" ]; then
echo "NameVirtualHost *:443" > $A2CF
echo "<VirtualHost *:443>" >> $A2CF
else
echo "NameVirtualHost *:80" > $A2CF
echo "<VirtualHost *:80>" >> $A2CF
fi
echo " ServerName ${SERVERNAME}" >> $A2CF
echo " ServerAlias www.${SERVERNAME}" >> $A2CF
echo " DocumentRoot /usr/share/freenetis" >> $A2CF
echo " <Directory /usr/share/freenetis>" >> $A2CF
echo " Options Indexes FollowSymLinks MultiViews" >> $A2CF
echo " AllowOverride All" >> $A2CF
echo " Order allow,deny" >> $A2CF
echo " allow from all" >> $A2CF
echo " ${php_settings}" >> $A2CF
echo " </Directory>" >> $A2CF
echo " ErrorLog $ERROR_LOG_FILE" >> $A2CF
echo " CustomLog $CUSTOM_LOG_FILE common" >> $A2CF
if [ "$PROTOCOL" = "https" ]; then
echo " SSLEngine on" >> $A2CF
echo " SSLProtocol all -SSLv2" >> $A2CF
echo " SSLCipherSuite ALLADHEXPORTSSLv2:RC4+RSA:+HIGH:+MEDIUM" >> $A2CF
if [ -f "$SSL_CERTIFICATE_FILE" ]; then
echo " SSLCertificateFile $SSL_CERTIFICATE_FILE" >> $A2CF
fi
if [ -f "$SSL_CERTIFICATE_KEY_FILE" ]; then
echo " SSLCertificateKeyFile $SSL_CERTIFICATE_KEY_FILE" >> $A2CF
fi
if [ -f "$SSL_CERTIFICATE_CHAIN_FILE" ]; then
echo " SSLCertificateChainFile $SSL_CERTIFICATE_CHAIN_FILE" >> $A2CF
fi
if [ -f "$SSL_CA_CERTIFICATE_FILE" ]; then
echo " SSLCACertificateFile $SSL_CA_CERTIFICATE_FILE" >> $A2CF
fi
echo " SetEnvIf User-Agent \".*MSIE.*\" nokeepalive ssl-unclean-shutdown" >> $A2CF
fi
echo "</VirtualHost>" >> $A2CF
# redirection from http to https
if [ "$PROTOCOL" = "https" ] && [ "$HTTPS_ADD_REDIR" = true ]; then
echo "<VirtualHost *:80>" >> $A2CF
echo " ServerName ${SERVERNAME}" >> $A2CF
echo " ServerAlias www.${SERVERNAME}" >> $A2CF
echo " KeepAlive Off" >> $A2CF
echo " RewriteEngine On" >> $A2CF
echo " RewriteRule ^/(.*) https://${SERVERNAME}/\$1 [L,R=301]" >> $A2CF
echo "</VirtualHost>" >> $A2CF
fi
fi
# pre-configure protocol
sed -e "s/^ *\$config\['protocol'\] *=.*/\$config['protocol'] = '$PROTOCOL';/" < $CONFIG_SAMPLE_PHP > $CONFIG_SAMPLE_PHP.tmp
mv -f $CONFIG_SAMPLE_PHP.tmp $CONFIG_SAMPLE_PHP
# restart
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d apache2 restart 3>/dev/null || true
else
/etc/init.d/apache2 restart 3>/dev/null || true
fi
# 2) CRON
echo "Preparing CRON"
echo "# /etc/cron.d/freenetis: Regular CRON file for freenetis package (triggered each minute)" > /etc/cron.d/freenetis
echo "" >> /etc/cron.d/freenetis
echo "SHELL=/bin/sh" >> /etc/cron.d/freenetis
echo "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" >> /etc/cron.d/freenetis
echo "* * * * * root wget -O /dev/null ${PROTOCOL}://${SERVERNAME}/index.php/cs/scheduler/run --no-check-certificate -q" >> /etc/cron.d/freenetis
chmod g-w /etc/cron.d/freenetis
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d cron restart 3>/dev/null || true
else
/etc/init.d/cron restart 3>/dev/null || true
fi
# 3) locales
echo "Preparing locales"
# list of required locales for FreenetIS -> add some for different language mutation
locales=(en_US.UTF-8 cs_CZ.UTF-8)
locales_lowered=(en_US.utf8 cs_CZ.utf8)
# is reconfigure of locales required?
reconfigure=0
debian=1
for index in ${!locales[*]}
do
loc=${locales[index]}
loc_lowered=${locales_lowered[index]}
set +e
locale -a | grep "^$loc_lowered$" > /dev/null
ret=$?
set -e
# locale not present
if [ $ret -ne 0 ]; then
reconfigure=1
encoding=`echo $loc | cut -f2 -d'.'`
loc_str="$loc $encoding"
if [ -f "/etc/locale.gen" ]; then # Debian
loc_str_esc="${loc_str//\//\\/}"
sed -e "s/^# $loc_str_esc/$loc_str_esc/" < /etc/locale.gen > /etc/locale.gen.tmp
mv -f /etc/locale.gen.tmp /etc/locale.gen
elif [ -d "/var/lib/locales/supported.d" ]; then # Ubuntu
debian=0
short_cut=`echo $loc | cut -f1 -d'_'`
touch /var/lib/locales/supported.d/${short_cut}
echo $loc_str >> /var/lib/locales/supported.d/${short_cut}
else
echo "Unknown locale generation, cannot generate locales"
exit 5
fi
fi
done
# reconfigure locales if any missing
if [ $reconfigure -eq 1 ]; then
if [ $debian -eq 1 ]; then # Debian
locale-gen
else # Ubuntu
dpkg-reconfigure locales
fi
fi
freenetis/trunk/application/vendors/deb/freenetis/postrm.jessie
#!/bin/sh
# FreenetIS DEB: actions after uninstalling of package
set -e
CONFIGFILE=/etc/freenetis/freenetis.conf
# remove from Apache config
rm -rf /etc/apache2/conf-enabled/freenetis.conf
# remove all configuration if purge
if [ "$1" = purge ]; then
# remove defconf values
if [ -e /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_purge
fi
# remove config files
rm -rf $CONFIGFILE
# remove all files
rm -rf /usr/share/freenetis
# remove dir if empty
[ "$(ls -A /etc/freenetis)" ] || rm -rf /etc/freenetis
# restart apache
else
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d apache2 reload 3>/dev/null || true
else
/etc/init.d/apache2 reload 3>/dev/null || true
fi
fi
exit 0

Také k dispozici: Unified diff