parent
31a903ab3d
commit
ec7d5e4fa9
@ -1,362 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
# -------------------------------------------------------------------- |
|
||||||
# This program is free software: you can redistribute it and/or modify |
|
||||||
# it under the terms of the GNU General Public License as published by |
|
||||||
# the Free Software Foundation, either version 3 of the License, or |
|
||||||
# (at your option) any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||||
# --------------------------------------------------------------------- |
|
||||||
|
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# functions # |
|
||||||
####################################################################### |
|
||||||
notifyError(){ |
|
||||||
notify-send -t 0 "Error occoured" "An error occours during the sankore build:\n\t$1" -i /usr/share/icons/oxygen/64x64/status/dialog-error.png |
|
||||||
exit 1 |
|
||||||
} |
|
||||||
|
|
||||||
checkExecutable(){ |
|
||||||
if [ ! -x $1 ]; then |
|
||||||
notify-send "$1 executable not found" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
checkDirectory(){ |
|
||||||
if [ ! -d $1 ]; then |
|
||||||
notify-send "$1 directory not found" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# path definition # |
|
||||||
####################################################################### |
|
||||||
QT_PATH="/usr/local/Trolltech/Qt-4.7.3" |
|
||||||
QT_PLUGINS_PATH="$QT_PATH/plugins" |
|
||||||
RELEASE_DIR=build/linux/release |
|
||||||
BUILD_DIR=$RELEASE_DIR/product |
|
||||||
GUI_TRANSLATIONS_DIRECTORY_PATH="../Qt-sankore3.1/translations" |
|
||||||
QT_LIBRARY_SOURCE_PATH="$QT_PATH/lib" |
|
||||||
SANKORE_SRC_PLUGINS_PATH="plugins" |
|
||||||
SANKORE_DST_PLUGINS_PATH=build/linux/release/product/plugins |
|
||||||
CFF_ADAPTOR_SRC_PLUGIN_PATH=$SANKORE_SRC_PLUGINS_PATH/cffadaptor/build/linux/release/lib |
|
||||||
|
|
||||||
QMAKE_PATH="$QT_PATH/bin/qmake" |
|
||||||
LRELEASE="../Qt-sankore3.1/bin/lrelease" |
|
||||||
#LRELEASE="/usr/local/Trolltech/Qt-4.7.3/bin/lrelease" |
|
||||||
|
|
||||||
ARCHITECTURE=`uname -m` |
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# initials checks # |
|
||||||
####################################################################### |
|
||||||
checkExecutable $QMAKE_PATH |
|
||||||
checkExecutable $LRELEASE |
|
||||||
|
|
||||||
checkDirectory $GUI_TRANSLATIONS_DIRECTORY_PATH |
|
||||||
checkDirectory $QT_PLUGINS_PATH |
|
||||||
checkDirectory $QT_LIBRARY_SOURCE_PATH |
|
||||||
|
|
||||||
checkDirectory $CFF_ADAPTOR_PLUGIN_PATH |
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# cleaning # |
|
||||||
####################################################################### |
|
||||||
#rm -rf $RELEASE_DIR |
|
||||||
|
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# Internalization # |
|
||||||
####################################################################### |
|
||||||
notify-send "QT" "Internalization ..." |
|
||||||
|
|
||||||
cd $GUI_TRANSLATIONS_DIRECTORY_PATH |
|
||||||
$LRELEASE translations.pro |
|
||||||
cd - |
|
||||||
if [ ! -e $BUILD_DIR/i18n ]; then |
|
||||||
mkdir -p $BUILD_DIR/i18n |
|
||||||
fi |
|
||||||
#copying qt gui translation |
|
||||||
cp $GUI_TRANSLATIONS_DIRECTORY_PATH/qt_??.qm $BUILD_DIR/i18n/ |
|
||||||
|
|
||||||
|
|
||||||
$LRELEASE Sankore_3.1.pro |
|
||||||
|
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# building # |
|
||||||
####################################################################### |
|
||||||
notify-send "Open-Sankore" "Building Open-Sankore ..." |
|
||||||
|
|
||||||
if [ "$ARCHITECTURE" == "x86_64" ]; then |
|
||||||
$QMAKE_PATH -spec linux-g++-64 |
|
||||||
else |
|
||||||
$QMAKE_PATH -spec linux-g++ |
|
||||||
fi |
|
||||||
|
|
||||||
checkDirectory $BUILD_DIR |
|
||||||
|
|
||||||
make -j 4 release-install |
|
||||||
|
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# github tag # |
|
||||||
####################################################################### |
|
||||||
notify-send "Git Hub" "Make a tag of the delivered version" |
|
||||||
VERSION=`cat $RELEASE_DIR/version` |
|
||||||
if [ ! -f $RELEASE_DIR/version ]; then |
|
||||||
notifyError "version not found" |
|
||||||
exit 1 |
|
||||||
else |
|
||||||
LAST_COMMITED_VERSION="`git describe $(git rev-list --tags --max-count=1)`" |
|
||||||
if [ "v$VERSION" != "$LAST_COMMITED_VERSION" ]; then |
|
||||||
echo creating a tag with the version $VERSION |
|
||||||
git tag -a "v$VERSION" -m "Generating setup for v$VERSION" |
|
||||||
git push origin --tags |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# coping resources # |
|
||||||
####################################################################### |
|
||||||
cp resources/linux/run.sh $BUILD_DIR |
|
||||||
chmod +x $BUILD_DIR/run.sh |
|
||||||
|
|
||||||
cp -R resources/linux/qtlinux/* $BUILD_DIR |
|
||||||
|
|
||||||
cp -R resources/customizations $BUILD_DIR |
|
||||||
|
|
||||||
notify-send "Sankore" "Copying plugins..." |
|
||||||
mkdir "$SANKORE_DST_PLUGINS_PATH" |
|
||||||
mkdir "$SANKORE_DST_PLUGINS_PATH/cffadaptor" |
|
||||||
cp -R $CFF_ADAPTOR_SRC_PLUGIN_PATH/*.so* "$SANKORE_DST_PLUGINS_PATH/cffadaptor" |
|
||||||
|
|
||||||
notify-send "QT" "Coping plugins and library ..." |
|
||||||
cp -R $QT_PLUGINS_PATH $BUILD_DIR |
|
||||||
|
|
||||||
#copying custom qt library |
|
||||||
QT_LIBRARY_DEST_PATH="$BUILD_DIR/qtlib" |
|
||||||
mkdir $QT_LIBRARY_DEST_PATH |
|
||||||
|
|
||||||
copyQtLibrary(){ |
|
||||||
if [ ! -e "$QT_LIBRARY_SOURCE_PATH/$1.so.4" ]; then |
|
||||||
notifyError "$1 library not found in path: $QT_LIBRARY_SOURCE_PATH" |
|
||||||
fi |
|
||||||
cp $QT_LIBRARY_SOURCE_PATH/$1.so.4.* $QT_LIBRARY_DEST_PATH/ |
|
||||||
} |
|
||||||
|
|
||||||
copyQtLibrary libphonon |
|
||||||
copyQtLibrary libQtWebKit |
|
||||||
copyQtLibrary libQtDBus |
|
||||||
copyQtLibrary libQtScript |
|
||||||
copyQtLibrary libQtSvg |
|
||||||
copyQtLibrary libQtXmlPatterns |
|
||||||
copyQtLibrary libQtNetwork |
|
||||||
copyQtLibrary libQtXml |
|
||||||
copyQtLibrary libQtGui |
|
||||||
copyQtLibrary libQtCore |
|
||||||
# uncomment for Qt 4.8 |
|
||||||
#copyQtLibrary libQtOpenGL |
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# Removing unwanted files # |
|
||||||
####################################################################### |
|
||||||
cd $BUILD_DIR |
|
||||||
|
|
||||||
#Removing .svn directories ... |
|
||||||
find . -name .svn -exec rm -rf {} \; 2> /dev/null |
|
||||||
|
|
||||||
cd - |
|
||||||
notify-send "Building Sankore" "Finished to build Sankore building the package" |
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# build debian # |
|
||||||
####################################################################### |
|
||||||
BASE_WORKING_DIR="packageBuildDir" |
|
||||||
|
|
||||||
#creating package directory |
|
||||||
mkdir $BASE_WORKING_DIR |
|
||||||
mkdir "$BASE_WORKING_DIR/DEBIAN" |
|
||||||
mkdir -p "$BASE_WORKING_DIR/usr/share/applications" |
|
||||||
mkdir -p "$BASE_WORKING_DIR/usr/local" |
|
||||||
|
|
||||||
|
|
||||||
cat > "$BASE_WORKING_DIR/DEBIAN/prerm" << EOF |
|
||||||
#!/bin/bash |
|
||||||
# -------------------------------------------------------------------- |
|
||||||
# This program is free software: you can redistribute it and/or modify |
|
||||||
# it under the terms of the GNU General Public License as published by |
|
||||||
# the Free Software Foundation, either version 3 of the License, or |
|
||||||
# (at your option) any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||||
# --------------------------------------------------------------------- |
|
||||||
|
|
||||||
xdg-desktop-menu uninstall /usr/share/applications/Open-Sankore.desktop |
|
||||||
exit 0 |
|
||||||
#DEBHELPER# |
|
||||||
EOF |
|
||||||
|
|
||||||
cat > "$BASE_WORKING_DIR/DEBIAN/postint" << EOF |
|
||||||
#!/bin/bash |
|
||||||
# -------------------------------------------------------------------- |
|
||||||
# This program is free software: you can redistribute it and/or modify |
|
||||||
# it under the terms of the GNU General Public License as published by |
|
||||||
# the Free Software Foundation, either version 3 of the License, or |
|
||||||
# (at your option) any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||||
# --------------------------------------------------------------------- |
|
||||||
|
|
||||||
xdg-desktop-menu install --novendor /usr/share/applications/Open-Sankore.desktop |
|
||||||
exit 0 |
|
||||||
#DEBHELPER# |
|
||||||
EOF |
|
||||||
|
|
||||||
|
|
||||||
SANKORE_DIRECTORY_NAME="Open-Sankore-$VERSION" |
|
||||||
SANKORE_PACKAGE_DIRECTORY="$BASE_WORKING_DIR/usr/local/$SANKORE_DIRECTORY_NAME" |
|
||||||
#move sankore build directory to packages directory |
|
||||||
cp -R $BUILD_DIR $SANKORE_PACKAGE_DIRECTORY |
|
||||||
|
|
||||||
|
|
||||||
cat > $BASE_WORKING_DIR/usr/local/$SANKORE_DIRECTORY_NAME/run.sh << EOF |
|
||||||
!/bin/bash |
|
||||||
# -------------------------------------------------------------------- |
|
||||||
# This program is free software: you can redistribute it and/or modify |
|
||||||
# it under the terms of the GNU General Public License as published by |
|
||||||
# the Free Software Foundation, either version 3 of the License, or |
|
||||||
# (at your option) any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||||
# --------------------------------------------------------------------- |
|
||||||
|
|
||||||
env LD_LIBRARY_PATH=/usr/local/$SANKORE_DIRECTORY_NAME/qtlib:$LD_LIBRARY_PATH /usr/local/$SANKORE_DIRECTORY_NAME/Open-Sankore |
|
||||||
EOF |
|
||||||
|
|
||||||
|
|
||||||
CHANGE_LOG_FILE="$BASE_WORKING_DIR/DEBIAN/changelog-sankore-$VERSION.txt" |
|
||||||
CONTROL_FILE="$BASE_WORKING_DIR/DEBIAN/control" |
|
||||||
CHANGE_LOG_TEXT="changelog.txt" |
|
||||||
|
|
||||||
if [ "$ARCHITECTURE" == "x86_64" ]; then |
|
||||||
ARCHITECTURE="amd64" |
|
||||||
fi |
|
||||||
|
|
||||||
if [ "$ARCHITECTURE" == "i686" ]; then |
|
||||||
ARCHITECTURE="i386" |
|
||||||
fi |
|
||||||
|
|
||||||
echo "Open-Sankore ($VERSION) $ARCHITECTURE; urgency=low" > "$CHANGE_LOG_FILE" |
|
||||||
echo >> "$CHANGE_LOG_FILE" |
|
||||||
cat $CHANGE_LOG_TEXT >> "$CHANGE_LOG_FILE" |
|
||||||
echo >> "$CHANGE_LOG_FILE" |
|
||||||
echo "-- Claudio Valerio <claudio@open-sankore.org> `date`" >> "$CHANGE_LOG_FILE" |
|
||||||
|
|
||||||
echo "Package: open-sankore" > "$CONTROL_FILE" |
|
||||||
echo "Version: $VERSION" >> "$CONTROL_FILE" |
|
||||||
echo "Section: education" >> "$CONTROL_FILE" |
|
||||||
echo "Priority: optional" >> "$CONTROL_FILE" |
|
||||||
echo "Architecture: $ARCHITECTURE" >> "$CONTROL_FILE" |
|
||||||
echo "Essential: no" >> "$CONTROL_FILE" |
|
||||||
echo "Installed-Size: `du -s $SANKORE_PACKAGE_DIRECTORY | awk '{ print $1 }'`" >> "$CONTROL_FILE" |
|
||||||
echo "Maintainer: Open-Sankore Developers team <dev@open-sankore.org>" >> "$CONTROL_FILE" |
|
||||||
echo "Homepage: http://dev.open-sankore.org" >> "$CONTROL_FILE" |
|
||||||
echo -n "Depends: " >> "$CONTROL_FILE" |
|
||||||
unset tab |
|
||||||
declare -a tab |
|
||||||
let count=0 |
|
||||||
for l in `objdump -p $SANKORE_PACKAGE_DIRECTORY/Open-Sankore | grep NEEDED | awk '{ print $2 }'`; do |
|
||||||
for lib in `dpkg -S $l | awk -F":" '{ print $1 }'`; do |
|
||||||
#echo $lib |
|
||||||
presence=`echo ${tab[*]} | grep -c "$lib"`; |
|
||||||
if [ "$presence" == "0" ]; then |
|
||||||
tab[$count]=$lib; |
|
||||||
((count++)); |
|
||||||
fi; |
|
||||||
done; |
|
||||||
done; |
|
||||||
|
|
||||||
#additional dependencies |
|
||||||
tab[$count]="gtk2-engines-pixbuf" |
|
||||||
((count++)) |
|
||||||
tab[$count]="ttf-mscorefonts-installer" |
|
||||||
((count++)) |
|
||||||
|
|
||||||
for ((i=0;i<${#tab[@]};i++)); do |
|
||||||
if [ $i -ne "0" ]; then |
|
||||||
echo -n ", " >> "$CONTROL_FILE" |
|
||||||
fi |
|
||||||
echo -n "${tab[$i]} (>= "`dpkg -p ${tab[$i]} | grep "Version: " | awk '{ print $2 }'`") " >> "$CONTROL_FILE" |
|
||||||
done |
|
||||||
echo "" >> "$CONTROL_FILE" |
|
||||||
echo "Description: This a interactive white board that uses a free standard format." >> "$CONTROL_FILE" |
|
||||||
|
|
||||||
find $BASE_WORKING_DIR/usr/ -exec md5sum {} > $BASE_WORKING_DIR/DEBIAN/md5sums 2>/dev/null \; |
|
||||||
SANKORE_SHORTCUT="$BASE_WORKING_DIR/usr/share/applications/Open-Sankore.desktop" |
|
||||||
echo "[Desktop Entry]" > $SANKORE_SHORTCUT |
|
||||||
echo "Version=$VERSION" >> $SANKORE_SHORTCUT |
|
||||||
echo "Encoding=UTF-8" >> $SANKORE_SHORTCUT |
|
||||||
echo "Name=Open-Sankore ($VERSION)" >> $SANKORE_SHORTCUT |
|
||||||
echo "GenericName=Open-Sankore" >> $SANKORE_SHORTCUT |
|
||||||
echo "Comment=Logiciel de creation de presentations pour tableau numerique interactif (TNI)" >> $SANKORE_SHORTCUT |
|
||||||
echo "Exec=/usr/local/$SANKORE_DIRECTORY_NAME/run.sh" >> $SANKORE_SHORTCUT |
|
||||||
echo "Icon=/usr/local/$SANKORE_DIRECTORY_NAME/sankore.png" >> $SANKORE_SHORTCUT |
|
||||||
echo "StartupNotify=true" >> $SANKORE_SHORTCUT |
|
||||||
echo "Terminal=false" >> $SANKORE_SHORTCUT |
|
||||||
echo "Type=Application" >> $SANKORE_SHORTCUT |
|
||||||
echo "Categories=Education" >> $SANKORE_SHORTCUT |
|
||||||
echo "Name[fr_FR]=Open-Sankore ($VERSION)" >> $SANKORE_SHORTCUT |
|
||||||
cp "resources/images/uniboard.png" "$SANKORE_PACKAGE_DIRECTORY/sankore.png" |
|
||||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN" |
|
||||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN/prerm" |
|
||||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN/postint" |
|
||||||
|
|
||||||
mkdir -p "install/linux" |
|
||||||
|
|
||||||
rm install/linux/Open-Sankore_*.deb |
|
||||||
|
|
||||||
fakeroot chown -R root:root $BASE_WORKING_DIR |
|
||||||
dpkg -b "$BASE_WORKING_DIR" install/linux/Open-Sankore_${VERSION}_$ARCHITECTURE.deb |
|
||||||
notify-send "Open-Sankore" "Package built" |
|
||||||
|
|
||||||
#clean up mess |
|
||||||
fakeroot rm -rf $BASE_WORKING_DIR |
|
||||||
|
|
||||||
|
|
||||||
####################################################################### |
|
||||||
# tar.gz # |
|
||||||
####################################################################### |
|
||||||
echo `pwd` |
|
||||||
cp -R $RELEASE_DIR/product $RELEASE_DIR/Open-Sankore.$VERSION |
|
||||||
cd $RELEASE_DIR |
|
||||||
|
|
||||||
rm ../../../install/linux/Open-Sankore.tar.gz |
|
||||||
|
|
||||||
tar cvzf ../../../install/linux/Open-Sankore.tar.gz Open-Sankore.$VERSION -C . |
|
||||||
notify-send "Open-Sankore" "tar.gz Build done" |
|
Loading…
Reference in new issue