Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:packaging_debian [10/08/2018 03:08] scorpio810doc:packaging_debian [17/01/2024 16:36] (Version actuelle) scorpio810
Ligne 1: Ligne 1:
 +~~NOCACHE~~
  
 +====== Notes ======
 +
 +=== Dépôt Debian QElectroTech ===
 +
 +#for Debian Sid aka unstable
 +   ​deb http://​debian.qelectrotech.org/​qet/​debian/​ unstable main
 +   
 +   deb-src​ http://​debian.qelectrotech.org/​qet/​debian/​ unstable main
 +   
 +#for Debian stable   
 +   
 +   deb http://​debian.qelectrotech.org/​qet/​debian/​ stable main
 +   
 +   deb-src​ http://​debian.qelectrotech.org/​qet/​debian/​ stable main
 +   
 +[[https://download.qelectrotech.org/qet/debian/]]
 +
 +=== Git Debian package ====
 +
 +
 +[[http://git.tuxfamily.org/qet/debian.git/|debian.git]]
 +
 +=== packaging_script Debian, Ubuntu, Windows ===
 +
 +<code=bash>
 +#!/bin/bash 
 +#nettoyage des chroots
 +#set -x
 +eval $(gpg-agent --daemon)
 +
 +#variables repertoires de travail
 +DEFAULT_DIR="$HOME/paquet_qet"
 +TEMP_DIR="$HOME"
 +SSH_TARGET='scorpio810@ssh.tuxfamily.org:/home/qet/qelectrotech.org-web/htdocs/dl_link.inc.php'
 +SSH_OPTIONS=-B
 +
 +#Find Subversion revision number in 0.60 branch 
 +#if [ -z "$HEAD" ] ; then
 +#HEAD=$(svn --xml info svn://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60 | grep revision=\" | tail -1 | cut -d\" -f2)                                     
 +
 +#fi
 +
 +#VERSION=$(svn cat svn://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60/sources/qet.h | grep "const QString version" |  cut -d\" -f2 | cut -d\" -f1)          #Find version tag in Subversion sources/qet.h
 +#tagName=$(svn cat svn://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60/sources/qet.h | grep displayedVersion |  cut -d\" -f2 | cut -d\" -f1)                 #Find displayedVersion tag in Subversion sources/qet.h
 +cd $DEFAULT_DIR
 +cd qet_git
 +git pull
 +#git checkout test_pugi
 +
 +GITCOMMIT=$(git rev-parse --short HEAD)
 +
 +#Find Subversion revision number in trunk branch 
 +if [ -z "$HEAD" ] ; then
 +#HEAD=$(svn --xml info svn://svn.tuxfamily.org/svnroot/qet/qet/trunk | grep revision=\" | tail -1 | cut -d\" -f2)   
 +A=$(git rev-list HEAD --count)
 +HEAD=$(($A+473))
 +                                                                                                                                          # force displayed number
 +fi
 +
 +VERSION=$(cat sources/qet.h | grep "const QString version" |  cut -d\" -f2 | cut -d\" -f1)          #Find version tag in Subversion sources/qet.h
 +tagName=$(cat sources/qet.h | grep displayedVersion |  cut -d\" -f2 | cut -d\" -f1)                 #Find displayedVersion tag in Subversion sources/qet.h
 +#git ls-remote https://git.tuxfamily.org/qet/qet.git/ | head -1 | cut -c1-10
 +#95d1fca171
 +#git rev-list HEAD --count
 +#5475
 +
 +
 +
 +#clean /var/cache/pbuilder/ .. / result/debs
 +echo  -e "\033[1;31mWould you like to clean all debs n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +  echo -e "\033[1;31mClean_all_base_environment.\033[m"
 +  cd /var/cache/pbuilder/stable-amd64/result/ && sudo rm qe* 
 +  cd /var/cache/pbuilder/unstable-amd64/result/ && sudo rm qe* 
 +  cd /var/cache/pbuilder/stable-i386/result/ && sudo rm qe* 
 +  cd /var/cache/pbuilder/unstable-i386/result/ && sudo rm qe* 
 + else
 +  echo  -e "\033[1;33mNo Clean_all_base_environment.\033[m"
 +fi
 +#clean all apt cache
 +echo  -e "\033[1;31mWould you like to clean all pbuilder n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +  echo -e "\033[1;31mClean_all_pbuilder_environment.\033[m"
 +  DIST=stable ARCH=i386 sudo pbuilder --clean
 +  DIST=stable ARCH=amd64 sudo pbuilder --clean
 +  DIST=unstable ARCH=i386 sudo pbuilder --clean
 +  DIST=unstable ARCH=amd64 sudo pbuilder --clean
 + else
 +  echo  -e "\033[1;33mNo Clean_all_pbuilder_environment.\033[m"
 +fi
 +
 +
 +#Update des chroots
 +echo  -e "\033[1;31mWould you like to update all chroots n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +   echo  -e "\033[1;33mUpdate_all_base_environment..\033[m"
 +   sudo DIST=stable ARCH=i386 pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
 +   sudo DIST=sid ARCH=i386 pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
 +   sudo DIST=stable pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
 +   sudo DIST=sid pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
 +   else
 +echo  -e "\033[1;33mNo Update_all_base_environment.\033[m"
 +fi
 +
 +echo  -e "\033[1;34mdownload source qelectrotech-$VERSION.r$HEAD.\033[m"
 +
 +cd $TEMP_DIR
 +
 +#get latest source revision
 +# svn export svn://svn.tuxfamily.org/svnroot/qet/qet/trunk --revision 5212 qelectrotech-$VERSION.r$HEAD/                                              # force a specific version in trunk     
 +#svn export svn://svn.tuxfamily.org/svnroot/qet/qet/trunk qelectrotech-$VERSION.r$HEAD/
 +#svn export svn://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60 qelectrotech-$VERSION.r$HEAD/                                                       # Branch 0.61
 +cp -r $DEFAULT_DIR/qet_git/ $TEMP_DIR/qelectrotech-$VERSION.r$HEAD/ 
 +rm -rf qelectrotech-$VERSION.r$HEAD/.git 
 +#create svn tarball
 +tar cfvz qelectrotech-$VERSION.r$HEAD.tar.gz qelectrotech-$VERSION.r$HEAD/
 +
 +#copy tarball in $DEFAULT_DIR 
 +cp qelectrotech-$VERSION.r$HEAD.tar.gz $DEFAULT_DIR 
 +
 +clean $TEMP_DIR
 +rm -Rf qelectrotech-$VERSION.r$HEAD/ && rm qelectrotech-$VERSION.r$HEAD.tar.gz
 +
 +#return to working directory
 +cd $DEFAULT_DIR
 +
 +#extract tarball and go to archive
 +tar zxvf qelectrotech-$VERSION.r$HEAD.tar.gz && cd qelectrotech-$VERSION.r$HEAD/
 +
 +#create origin.tar.gz
 +dh_make -e  scorpio@qelectrotech.org -c gpl2  -f ../qelectrotech-$VERSION.r$HEAD.tar.gz
 +
 +#clean debian folder
 +cd /
 +rm -Rf debian/
 +
 +#return to working directory
 +cd $DEFAULT_DIR
 +
 +#copy debian folder
 +cp -r debian/ qelectrotech-$VERSION.r$HEAD/
 +
 +#update changelog to new release
 +cd qelectrotech-$VERSION.r$HEAD/ 
 +dch -d -D unstable "New upstream subversion version " 
 +#edit changelog
 +echo  -e "\033[1;31mWould you like to edit changelog n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +   echo  -e "\033[1;31mEdit debian changelog..\033[m"
 +   dch --edit
 +   else
 +echo  -e "\033[1;33mNo edit changelog.\033[m"
 +fi
 +
 +cd debian/ && rm -rf *ex *EX README*  
 +
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/debian/patches/ 
 +sed -i 's/'"$tagName+[0-9]*"'/'"$tagName+$GITCOMMIT"'/' 03_qet.diff
 +
 +
 +#deplacement dans le paquet_qet
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/
 +quilt push 
 +quilt push 
 +quilt refresh
 +
 +echo  -e "\033[1;31mWould you like to build Debian packages n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +
 +#build 
 +echo  -e "\033[1;34mBuild_all_environements.\033[m"
 + sudo DIST=sid ARCH=amd64  pdebuild --configfile /home/laurent/.pbuilderrc
 + sudo DIST=sid ARCH=i386 pdebuild --configfile /home/laurent/.pbuilderrc
 + dch -i -D stable  "Backport stable " && 
 + sudo DIST=stable ARCH=amd64 pdebuild --configfile /home/laurent/.pbuilderrc
 + sudo DIST=stable ARCH=i386 pdebuild --configfile /home/laurent/.pbuilderrc
 +STRING="Build_all_environements is ready!!!"
 +echo $STRING
 +
 +#save debian/
 +#echo  -e "\033[1;33mDebian sauvegardé.\033[m"
 +#cp -r debian/ $DEFAULT_DIR
 +
 +#prepare download copys
 +cd $DEFAULT_DIR
 +mkdir -p $HEAD/stable/amd64
 +mkdir -p $HEAD/stable/i386
 +mkdir -p $HEAD/sid/amd64
 +mkdir -p $HEAD/sid/i386
 +
 +#copie des debs des results vers $HEAD
 +find /var/cache/pbuilder/stable-amd64/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/stable/amd64 \;
 +find /var/cache/pbuilder/stable-i386/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/stable/i386 \;
 +find /var/cache/pbuilder/unstable-amd64/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/sid/amd64 \;
 +find /var/cache/pbuilder/unstable-i386/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/sid/i386 \;
 +
 +#debsign
 +echo  -e "\033[1;31mWould you like to sign all packages n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +
 +#debsign stable amd64
 +cd $DEFAULT_DIR/$HEAD/stable/amd64
 +debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
 +echo  -e "\033[1;33mAll stable amd64 are sign.\033[m"
 +
 +#debsign sid amd64
 +cd $DEFAULT_DIR/$HEAD/sid/amd64
 +debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
 +echo  -e "\033[1;33mAll sid amd64 are sign.\033[m"
 +
 +
 +#debsign stable i386
 +cd $DEFAULT_DIR/$HEAD/stable/i386
 +debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
 +echo  -e "\033[1;33mAll stable i386 are sign.\033[m"
 +
 +#debsign sid i386
 +cd $DEFAULT_DIR/$HEAD/sid/i386
 +debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
 +echo  -e "\033[1;33mAll sid i386 are sign.\033[m"
 +
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 +
 +#upload vers incoming
 +echo  -e "\033[1;31mWould you like to upload to incoming n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +  echo  -e "\033[1;33mUpload qelectrotech-$VERSION.r$HEAD.\033[m"
 +
 +
 +cd ~/apt
 +#rm db/*
 +reprepro -vb . include unstable $DEFAULT_DIR/$HEAD/sid/amd64/*.changes 
 +reprepro -vb . includedeb unstable $DEFAULT_DIR/$HEAD/sid/i386/*i386.deb 
 +reprepro -vb . include stable $DEFAULT_DIR/$HEAD/stable/amd64/*.changes 
 +reprepro -vb . includedeb stable $DEFAULT_DIR/$HEAD/stable/i386/*i386.deb 
 +reprepro -b . export
 +
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 +
 +#rsync to TF
 +echo  -e "\033[1;31mWould you like to RSYNC Debian packages to TF n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +echo  -e "\033[1;33mRsync to TF qelectrotech-$VERSION.r$HEAD .\033[m"
 +echo -e "\033[1;31mrsync to TF password ssh and TF\033[m"
 +cd $DEFAULT_DIR/script
 +rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress --exclude-from=ExclusionRSync ~/apt/ server:download.qelectrotech.org/qet/qet-repository/debian/ 
 +if [ $? != 0 ]; then
 +{
 +echo "RSYNC ERROR: problem syncing qelectrotech-$VERSION.r$HEAD "
 +rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress --exclude-from=ExclusionRSync ~/apt/ server:download.qelectrotech.org/qet/qet-repository/debian/
 +} fi
 +
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 + else
 +echo  -e "\033[1;33mExit.\033[m"
 +fi
 +
 +
 +
 +
 +
 +############# Ubuntu packages ################################################################################################
 +
 +echo  -e "\033[1;31mWould you like to build Ubuntu PPA packages n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +
 +#deplacement dans le paquet_qet
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/
 +
 +#dch -i -D yakkety "Yakkety Upload to ppa"
 +#debuild -S -sa -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
 +
 +#dch -i -D xenial "Xenial Upload to ppa"
 +#debuild -S -sa -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
 +
 +#dch -i -D artful "Artful Upload to ppa"
 +#debuild -S -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
 +
 +dch -i -D bionic "Bionic Upload to ppa"
 +debuild -S -sa -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
 +
 +dch -i -D eoan "Eoan Upload to ppa"
 +debuild -S -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1  
 +
 +
 +dch -i -D disco "Disco Upload to ppa"
 +debuild -S -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1  
 +
 +cd $DEFAULT_DIR/
 +
 +#dput my-ppa qelectrotech_$VERSION.r$HEAD-*ubuntu1_source.changes
 +#dput my-ppa qelectrotech_$VERSION.r$HEAD-*ubuntu2_source.changes
 +#dput my-ppa qelectrotech_$VERSION.r$HEAD-*ubuntu3_source.changes
 +
 +dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu1_source.changes
 +dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu2_source.changes
 +dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu3_source.changes
 +#dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu4_source.changes
 +
 +
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 +
 +
 +############# Windows packages ################################################################################################
 +
 +
 +#copy and update folders of nsis_base skeleton
 +echo  -e "\033[1;31mWould you like to build Window packages n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +# 32 bits
 +cd $DEFAULT_DIR
 +cp -r qelectrotech-$VERSION.r$HEAD/ qelectrotech-$VERSION.r$HEAD-XP/
 +cp -r nsis_base nsis_base$HEAD
 +cd qelectrotech-$VERSION.r$HEAD/
 +cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/nsis_base$HEAD/files
 +cp -r lang/*.qm  /$DEFAULT_DIR/nsis_base$HEAD/files/lang
 +
 +cd $DEFAULT_DIR
 +cd qelectrotech-$VERSION.r$HEAD/build-aux/windows/
 +cp {lang_extra.nsh,QET.nsi,lang_extra_fr.nsh} /$DEFAULT_DIR/nsis_base$HEAD/
 +
 +
 +
 +
 +# 64 bits
 +cd $DEFAULT_DIR
 +cp -r nsis_base nsis_base64$HEAD
 +cd qelectrotech-$VERSION.r$HEAD/
 +cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/nsis_base64$HEAD/files
 +cp -r lang/*.qm  /$DEFAULT_DIR/nsis_base64$HEAD/files/lang
 +
 +cd $DEFAULT_DIR
 +cd qelectrotech-$VERSION.r$HEAD/build-aux/windows/
 +cp {lang_extra.nsh,QET64.nsi,lang_extra_fr.nsh} /$DEFAULT_DIR/nsis_base64$HEAD/
 +
 +#copy and update folders of  readytouse_base skeleton
 +cd $DEFAULT_DIR
 +cp -r readytouse_base qelectrotech-$tagName+git$HEAD-x86-win32-readytouse
 +cd qelectrotech-$VERSION.r$HEAD/
 +cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse
 +cp -r lang/*.qm  /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/lang
 +
 +#################################################################################################################
 +export PATH=/media/backup6/digikam_new2/project/bundles/mxe/build.win32/usr/bin:$PATH
 +#cross-compil 32 bits
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD
 +mkdir build/ && cd build
 +
 +#mxe: qmake-qt5 i686-w64
 +#/home/laurent/mxe/usr/bin/i686-w64-mingw32.static.posix-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
 +
 +/media/backup6/digikam_new2/project/bundles/mxe/build.win32/usr/bin/i686-w64-mingw32.static-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
 +#build jobs=17
 +#build jobs=17
 +#make -j17
 +make -j$(nproc)
 +
 +#copy 32 bits binarie to /bin Windows packages
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/build/release/
 +cp qelectrotech.exe /$DEFAULT_DIR/nsis_base$HEAD/files/bin
 +cp qelectrotech.exe /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/bin
 +
 +#copy manifest file to /bin Windows packages
 +#cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD
 +#cp qelectrotech.exe.manifest /$DEFAULT_DIR/nsis_base$HEAD/files/bin
 +#cp qelectrotech.exe.manifest /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/bin
 +
 +#tag $HEAD by sed for nsis script
 +cd $DEFAULT_DIR/nsis_base$HEAD
 +sed -i 's/'"0.5-dev+[0-9]*"'/'"$tagName"+git"$HEAD"'/' QET.nsi
 +
 +
 +#build Windows installer
 +makensis QET.nsi
 +
 +#################################################################################################################
 +export PATH=/media/backup6/digikam_new2/project/bundles/mxe/build.win64/usr/bin:$PATH
 +#export PATH=/media/backup6/digikam_new2/project/bundles/mxe/build.win64/usr/bin:$PATH
 +
 +#cross-compil 64 bits
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD
 +rm -r build/
 +mkdir build/ && cd build
 +#mxe: qmake-qt5 x86_64-w64
 +#/home/laurent/mxe/usr/bin/x86_64-w64-mingw32.static.posix-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
 +/media/backup6/digikam_new2/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.static-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
 +#/media/backup6/digikam_new2/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.static.posix.seh-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
 +#build jobs=17
 +#make -j17
 +make -j$(nproc)
 +
 +cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/build/release/
 +mv qelectrotech.exe /$DEFAULT_DIR/nsis_base64$HEAD/files/bin
 +
 +#copy manifest file to /bin Windows packages
 +#cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD
 +#cp qelectrotech.exe.manifest /$DEFAULT_DIR/nsis_base64$HEAD/files/bin
 +
 +
 +cd $DEFAULT_DIR/nsis_base64$HEAD
 +
 +sed -i 's/'"0.5-dev_x86_64-win64+[0-9]*"'/'"$tagName"_x86_64-win64+git"$HEAD"'/' QET64.nsi
 +
 +makensis QET64.nsi
 +
 +#################################################################################################################
 +#cross-compil 32 bits XP VISTA
 +
 +# WIN XP VISTA build
 +#cd $DEFAULT_DIR
 +#cp -r nsis_base nsis_baseXP$HEAD
 +#cd qelectrotech-$VERSION.r$HEAD/
 +#cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/nsis_baseXP$HEAD/files
 +#cp -r elements/ examples/ titleblocks/ /$DEFAULT_DIR/nsis_base$HEAD/files
 +#cp -r lang/*.qm  /$DEFAULT_DIR/nsis_baseXP$HEAD/files/lang
 +
 +#cd $DEFAULT_DIR
 +#cd qelectrotech-$VERSION.r$HEAD/build-aux/windows/
 +#cp {lang_extra.nsh,QET.nsi,lang_extra_fr.nsh} /$DEFAULT_DIR/nsis_baseXP$HEAD/
 +
 +#copy and update folders of  readytouse_XP_base skeleton
 +#cd $DEFAULT_DIR
 +#cp -r readytouse_base qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse
 +#cd qelectrotech-$VERSION.r$HEAD/
 +#cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse
 +#cp -r lang/*.qm  /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse/lang
 +
 +
 +#cd /home/$USER
 +#mv mxe mxe_old
 +#mv mxeXP mxe
 +#sleep 4
 +
 +#cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD-XP
 +
 +#mkdir build/ && cd build
 +
 +#mxe: qmake-qt5 i686-w64
 +#/home/laurent/mxe/usr/bin/i686-w64-mingw32.static.posix-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD-XP/qelectrotech.pro
 +#/home/laurent/mxe/usr/bin/i686-w64-mingw32.static.posix-qmake-qt5.7 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD-XP/qelectrotech.pro
 +#build jobs=17
 +#make -j17
 +#make -j$(nproc)
 +
 +#cd /home/$USER
 +#mv mxe mxeXP 
 +#mv mxe_old mxe
 +
 +#copy 32 bits binarie to /bin Windows packages
 +#cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD-XP/build/release
 +#cp qelectrotech.exe /$DEFAULT_DIR/nsis_baseXP$HEAD/files/bin
 +#cp qelectrotech.exe /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse/bin
 +
 +#tag $HEAD by sed for nsis script
 +#cd $DEFAULT_DIR/nsis_baseXP$HEAD
 +#sed -i 's/'"0.5-dev+[0-9]*"'/'"$tagName"+git"$HEAD"'/' QET.nsi
 +
 +
 +#build Windows installer
 +#makensis QET.nsi
 +
 +
 +#crompress readytouse
 +cd $DEFAULT_DIR
 +
 +7za a -m0=lzma qelectrotech-$tagName+git$HEAD-x86-win32-readytouse.7z qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/
 +#7za a -m0=lzma qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse.7z qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse/
 +
 +
 +
 +
 +
 +echo  -e "\033[1;31mWould you like to prepare to RSYNC Windows packages /Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +
 +cd /home/laurent/builds/nightly/
 +
 +name=$(date +%Y-%m-%d-) #defined a name based on the date
 +
 +#start increment to 1
 +i=1
 +#increment by i if the builds have already been created
 +while [ "$(ls /home/$USER/builds/nightly/ | grep $name$i)" != "" ]; do 
 + ((i++))
 +done
 +#create a new folder incremented by 1
 +mkdir /home/$USER/builds/nightly/$name$i 
 +#mkdir /home/$USER/builds/nightly/$name$i/WIN_XP_VISTA
 +
 +
 +
 +cd $DEFAULT_DIR/
 +cp qelectrotech-$tagName+git$HEAD-x86-win32-readytouse.7z /home/laurent/builds/nightly/$name$i
 +#cp qelectrotech-$tagName+git$HEAD-WIN_XP-x86-win32-readytouse.7z /home/laurent/builds/nightly/$name$i/WIN_XP_VISTA
 +cd /$DEFAULT_DIR/nsis_base$HEAD
 +cp Installer_QElectroTech-$tagName+git$HEAD-1.exe /home/laurent/builds/nightly/$name$i
 +#cd /$DEFAULT_DIR/nsis_baseXP$HEAD
 +#cp Installer_QElectroTech-$tagName+git$HEAD-1.exe /home/laurent/builds/nightly/$name$i/WIN_XP_VISTA
 +cd $DEFAULT_DIR/nsis_base64$HEAD
 +cp Installer_QElectroTech-$tagName"_x86_64-win64+git"$HEAD-1.exe /home/laurent/builds/nightly/$name$i
 +
 +
 +
 +
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 +
 +
 +#rsync to TF Windows builds
 +echo  -e "\033[1;31mWould you like to upload Windows packages n/Y?.\033[m"
 +read a
 +if [[ $a == "Y" || $a == "y" ]]; then
 +rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress  /home/laurent/builds/nightly/ server:download.qelectrotech.org/qet/qet-repository/builds/nightly/ 
 +if [ $? != 0 ]; then
 +{
 +echo "RSYNC ERROR: problem syncing qelectrotech-$VERSION.r$HEAD "
 +rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress  /home/laurent/builds/nightly/ server:download.qelectrotech.org/qet/qet-repository/builds/nightly/ 
 +} fi
 +
 +#cd ~/paquet_qet/script
 +#sed -i 's/'[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9]'/'"$name$i"'/' dl_link.inc.php
 +#scp dl_link.inc.php "${SSH_TARGET}"
 +
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 +else
 +  echo  -e "\033[1;33mExit.\033[m"
 +fi
 +exit
 +
 +
 +
 +</code>
 +
 +=== AppImage ===
 +
 +
 +We use now Digikam scripts, on Xubuntu 20.04 VM for create Qt 5.15.X compile environment with system-sqlite (Sqilte3) for database project exporting.\\
 +See:
 +https://invent.kde.org/graphics/digikam/-/tree/master/project/bundles/appimage \\
 +First read the README file: \\
 +https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/appimage/README
 +
 +We only use __01-build-host.sh__  script__ to build MacOS Macports environment for QET builds. 
 +
 +<code>
 +git clone https://invent.kde.org/graphics/digikam.git
 +cd digikam/project/bundles/appimage</code>
 +
 +
 +
 +<code=diff>
 +diff --git a/project/bundles/3rdparty/ext_qt5/CMakeLists.txt b/project/bundles/3rdparty/ext_qt5/CMakeLists.txt
 +index a362363309..8548419442 100644
 +--- a/project/bundles/3rdparty/ext_qt5/CMakeLists.txt
 ++++ b/project/bundles/3rdparty/ext_qt5/CMakeLists.txt
 +@@ -38,7 +38,7 @@ ExternalProject_Add(ext_qt5
 +                   -release
 +                   -opensource
 +                   -confirm-license
 +-                  -sql-sqlite                       # Compile Sqlite SQL plugin
 ++                  -system-sqlite                      # We use Sqlite3-dev deb package 
 +                   -sql-mysql                        # Compile Mysql SQL plugin
 + #                  -iconv                            # International string conversion
 +                   -icu
 +diff --git a/project/bundles/appimage/01-build-host.sh b/project/bundles/appimage/01-build-host.sh
 +index f8c317f336..77e1247fb3 100755
 +--- a/project/bundles/appimage/01-build-host.sh
 ++++ b/project/bundles/appimage/01-build-host.sh
 +@@ -80,19 +80,10 @@ cmake $ORIG_WD/../3rdparty \
 +       -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \
 +       -DKA_VERSION=$DK_KA_VERSION \
 +       -DKP_VERSION=$DK_KP_VERSION \
 +-      -DKDE_VERSION=$DK_KDE_VERSION \
 +-      -DENABLE_QTVERSION=$DK_QTVERSION \
 +-      -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE
 ++      -DKDE_VERSION=$DK_KDE_VERSION 
 + 
 + # Install new cmake recent version and shared lib
 + 
 +-cmake --build . --config RelWithDebInfo --target ext_cmake           -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_jasper          -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_libde265        -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_libjxl          -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_libaom          -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_libavif         -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_ffmpeg          -- -j$CPU_CORES
 + 
 + #################################################################################################
 + 
 +@@ -107,9 +98,7 @@ cmake $ORIG_WD/../3rdparty \
 +       -DKA_VERSION=$DK_KA_VERSION \
 +       -DKP_VERSION=$DK_KP_VERSION \
 +       -DKDE_VERSION=$DK_KDE_VERSION \
 +-      -DENABLE_QTVERSION=$DK_QTVERSION \
 +-      -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE \
 +-      -DQTWEBENGINE_VERSION=$DK_QTWEBENGINEVERSION
 ++      -DENABLE_QTVERSION=$DK_QTVERSION 
 + 
 + # Low level libraries and Qt dependencies
 + # NOTE: The order to compile each component here is very important.
 +@@ -121,9 +110,7 @@ cmake --build . --config RelWithDebInfo --target ext_openssl         -- -j$CPU_C
 + 
 + cmake --build . --config RelWithDebInfo --target ext_qt$DK_QTVERSION -- -j$CPU_CORES    # depend of tiff, png, jpeg
 + 
 +-if [[ $DK_QTWEBENGINE = 0 ]] ; then
 +-    cmake --build . --config RelWithDebInfo --target ext_qtwebkit    -- -j$CPU_CORES    # depend of Qt and libicu
 +-fi
 ++
 + 
 + # Clean up previous openssl install
 + 
 +@@ -131,9 +118,7 @@ rm -fr /usr/local/lib/libssl.a    || true
 + rm -fr /usr/local/lib/libcrypto.a || true
 + rm -fr /usr/local/include/openssl || true
 + 
 +-cmake --build . --config RelWithDebInfo --target ext_imagemagick     -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_opencv          -- -j$CPU_CORES
 +-cmake --build . --config RelWithDebInfo --target ext_heif            -- -j$CPU_CORES
 ++
 + 
 + #################################################################################################
 + 
 +diff --git a/project/bundles/appimage/02-build-extralibs.sh b/project/bundles/appimage/02-build-extralibs.sh
 +index 523b1c4c73..92dad7912e 100755
 +--- a/project/bundles/appimage/02-build-extralibs.sh
 ++++ b/project/bundles/appimage/02-build-extralibs.sh
 +@@ -123,35 +123,5 @@ cmake --build . --config RelWithDebInfo --target ext_breeze
 + 
 + #################################################################################################
 + 
 +-if [[ $DK_QTVERSION == 6 ]] ; then
 +-
 +-    KF6_GITREV_LST=$ORIG_WD/data/kf6_manifest.txt
 +-
 +-    echo "List git sub-module revisions in $KF6_GITREV_LST"
 +-
 +-    if [ -f $KF6_GITREV_LST ] ; then
 +-        rm -f $KF6_GITREV_LST
 +-    fi
 +-
 +-    currentDate=`date +"%Y-%m-%d"`
 +-    echo "+KF6 Snapshot $currentDate" > $KF6_GITREV_LST
 +-
 +-    # --- List git revisions for all sub-modules
 +-
 +-    DIRS=$(find $BUILDING_DIR/ext_kf6/ -name "ext_*-prefix")
 +-
 +-    for ITEM in $DIRS ; do
 +-
 +-        COMPONENT=(echo $ITEM | cut -d'_' -f 1 | cut -d'-' -f 2)
 +-        SUBDIR=$BUILDING_DIR/ext_kf6/$ITEM/src/$COMPONENT
 +-        cd $SUBDIR
 +-        echo "$(basename "$SUBDIR"):$(git rev-parse HEAD)" >> $KF6_GITREV_LST
 +-        cd $ORIG_WD
 +-
 +-    done
 +-
 +-    cat $KF6_GITREV_LST
 +-
 +-fi
 + 
 + TerminateScript
 +diff --git a/project/bundles/appimage/common.sh b/project/bundles/appimage/common.sh
 +index 2bcfca9e7c..d428e12a5e 100644
 +--- a/project/bundles/appimage/common.sh
 ++++ b/project/bundles/appimage/common.sh
 +@@ -132,17 +132,6 @@ invent.kde.org \
 + tinami.kde.org \
 + "
 + 
 +-if [[ ! -f $HOME/.ssh/known_hosts ]] ; then
 +-    touch $HOME/.ssh/known_hosts
 +-fi
 +-
 +-for server in $SERVER_LIST; do
 +-
 +-    echo "Register $server"
 + 
 +-    ssh-keygen -R $server
 +-    ssh-keyscan -H $server >> $HOME/.ssh/known_hosts
 +-
 +-done
 + 
 + }
 +diff --git a/project/bundles/appimage/config.sh b/project/bundles/appimage/config.sh
 +index 8d5722d756..9bfdf91799 100644
 +--- a/project/bundles/appimage/config.sh
 ++++ b/project/bundles/appimage/config.sh
 +@@ -61,7 +61,7 @@ DK_KA_VERSION="23.08.4"
 + DK_DEBUG=0
 + 
 + # Option to use QtWebEngine instead QtWebkit
 +-DK_QTWEBENGINE=1
 ++DK_QTWEBENGINE=0
 + 
 + # Installer sub version to differentiates newer updates of the installer itself, even if the underlying application hasn’t changed.
 + #DK_SUBVER="-01"
 +@@ -70,7 +70,7 @@ DK_QTWEBENGINE=1
 + DK_SIGN=0
 + 
 + # Upload automatically bundle to files.kde.org (pre-release only).
 +-DK_UPLOAD=1
 ++DK_UPLOAD=0
 + DK_UPLOADURL="digikam@tinami.kde.org"
 + 
 + # KDE frameworks version + Upload URL.
 +diff --git a/project/bundles/appimage/host_ubuntu.inc b/project/bundles/appimage/host_ubuntu.inc
 +index 0a283ad98d..989e52afa7 100644
 +--- a/project/bundles/appimage/host_ubuntu.inc
 ++++ b/project/bundles/appimage/host_ubuntu.inc
 +@@ -211,11 +211,7 @@ for pkg in ${optional_packages[@]}; do
 +     echo "-------------------------------------------------------------------"
 + done
 + 
 +-# Install more recent version of NodeJs for QtWebEngine.
 +-# https://learnubuntu.com/update-node-js/
 + 
 +-curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
 +-sudo apt-get install nodejs
 + 
 + echo -e "---------- Clean-up Old Packages\n"
 + 
 +
 +</code>
 +
 +
 +
 +
 +
 +
 +
 +<code=bash>
 +#!/bin/bash 
 +#set -x
 +
 +
 +#delete old qet.h
 +rm sources/qet.h
 +
 +cd sources
 +git reset --hard origin/master
 +
 +cd ..
 +git pull
 +sed -i 's/DEFINES += QET_EXPORT_PROJECT_DB/#DEFINES += QET_EXPORT_PROJECT_DB/' qelectrotech.pro 
 +
 +GITCOMMIT=$(git rev-parse --short HEAD)
 +A=$(git rev-list HEAD --count)
 +HEAD=$(($A+473))
 +
 +VERSION=$(cat sources/qet.h | grep "const QString version" |  cut -d\" -f2 | cut -d\" -f1)          #Find version tag in GIT sources/qet.h
 +tagName=$(cat sources/qet.h | grep displayedVersion |  cut -d\" -f2 | cut -d\" -f1)                 #Find displayedVersion tag in GIT sources/qet.h
 +
 +
 +# recupere le numero de la nouvelle revision
 +#revAp=$(svnversion | cut -d : -f 2 | tr -d '[:alpha:]')
 +
 +# On recupere le numero de version de l'originale 
 +tagName=$(sed -n "s/const QString displayedVersion =\(.*\)/\1/p" sources/qet.h  | cut -d\" -f2 | cut -d\" -f1 )
 +
 +
 +# On modifie l'originale avec le numéro de révision du dépôt GIT
 +sed -i 's/'"const QString displayedVersion =.*/const QString displayedVersion = \"$tagName+$GITCOMMIT\";"'/' sources/qet.h
 +
 +
 +rm -Rf build/
 +mkdir build && cd build
 +
 +
 +qmake ../qelectrotech.pro
 +make -j48
 +
 +
 +
 +cd ../appdir/
 +rm qelectrotech/usr/bin/qelectrotech
 +rm -Rf qelectrotech/usr/{lib,plugins}
 +rm -Rf qelectrotech/usr/share/{elements,examples,titleblocks,lang,man,doc}
 +
 +cp ../build/qelectrotech qelectrotech/usr/bin/
 +cp -r ../{elements,examples,titleblocks,lang,man} qelectrotech/usr/share/
 +
 +
 +
 + ./linuxdeployqt-continuous-x86_64.AppImage qelectrotech/usr/share/qelectrotech.desktop  -appimage -bundle-non-qt-libs -verbose=1 -extra-plugins=iconengines
 +rm qelectrotech/AppRun
 +sed -i 's/'"QElectroTech_0.8-DEV.*/QElectroTech_0.8-DEV-r"$HEAD""'/' qelectrotech/qelectrotech.desktop
 +cp AppRun qelectrotech/
 +rm QElectroTech_*.AppImage
 +
 +
 +ARCH=x86_64 ./appimagetool-x86_64.AppImage qelectrotech
 +chmod -x QElectroTech_0.8-DEV-r$HEAD-x86_64.AppImage
 +
 +
 +</code>
 +
 +=== Flatpak ===
 +
 +<code=bash>
 +#!/bin/bash 
 +#set -x
 +
 +
 +#delete old qet.h
 +rm sources/qet.h
 +
 +cd sources
 +git reset --hard origin/master
 +
 +cd ..
 +
 +# Fait une mise à jour
 +git pull
 +#git checkout test_pugi
 +
 +sed -i 's/DEFINES += QET_EXPORT_PROJECT_DB/#DEFINES += QET_EXPORT_PROJECT_DB/' qelectrotech.pro 
 +
 +
 +GITCOMMIT=$(git rev-parse --short HEAD)
 +A=$(git rev-list HEAD --count)
 +HEAD=$(($A+473))
 +
 +VERSION=$(cat sources/qet.h | grep "const QString version" |  cut -d\" -f2 | cut -d\" -f1)          #Find version tag in GIT sources/qet.h
 +tagName=$(cat sources/qet.h | grep displayedVersion |  cut -d\" -f2 | cut -d\" -f1)                 #Find displayedVersion tag in GIT sources/qet.h
 +
 +
 +# recupere le numero de la nouvelle revision
 +#revAp=$(svnversion | cut -d : -f 2 | tr -d '[:alpha:]')
 +
 +# On recupere le numero de version de l'originale 
 +tagName=$(sed -n "s/const QString displayedVersion =\(.*\)/\1/p" sources/qet.h  | cut -d\" -f2 | cut -d\" -f1 )
 +
 +
 +# On modifie l'originale avec le numero de revision du depot svn
 +sed -i 's/'"const QString displayedVersion =.*/const QString displayedVersion = \"$tagName+$GITCOMMIT\";"'/' sources/qet.h
 +
 +cd ~
 +flatpak-builder --force-clean --ccache --repo=qet_git/0.8-dev qet_git/build-dir qet_git/build-aux/flatpak/org.qelectrotech.QElectroTech.json --gpg-sign=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   --gpg-homedir=gpg
 +flatpak build-update-repo qet_git/0.8-dev --title="Development builds of QElectroTech" --prune --prune-depth=4  --generate-static-deltas --gpg-sign=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   --gpg-homedir=gpg
 +rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress qet_git/0.8-dev/ server:download.qelectrotech.org/qet/qet-repository/builds/Flatpak/
 +</code>
Imprimer/exporter