diff --git a/bundle_onelab.sh b/bundle_onelab.sh
index 6e161e4229279efd078ec12ec1273ae521c06ba2..6eca78a9314f5f2a02c0f3d9a68e29d63cd7481c 100755
--- a/bundle_onelab.sh
+++ b/bundle_onelab.sh
@@ -27,12 +27,15 @@ CONVEKS=git
 #GETDP=3.0.1
 #CONVEKS=1.0.0
 
+# get models and tutorials
+curl -O https://onelab.info/files/bundle_tutorials_getdp.txt
+curl -O https://onelab.info/files/bundle_tutorials_cpp.txt
+curl -O https://onelab.info/files/bundle_tutorials_python.txt
+curl -O https://onelab.info/files/bundle_models.txt
 TUTO_GETDP=`cat bundle_tutorials_getdp.txt`
 TUTO_CPP=`cat bundle_tutorials_cpp.txt`
 TUTO_PYTHON=`cat bundle_tutorials_python.txt`
 MODELS=`cat bundle_models.txt`
-
-# get models and tutorials
 rm -rf /tmp/models
 mkdir /tmp/models
 for m in ${MODELS}; do
@@ -131,43 +134,6 @@ if [ $# -lt 1 ] || [ $1 == "win64" ]; then
   scp onelab-Windows64.zip geuzaine@onelab.info:/onelab_files/
 fi
 
-if [ $# -lt 1 ] || [ $1 == "win32" ]; then
-  rm -rf onelab-Windows32*
-  mkdir onelab-Windows32
-  curl -O https://gmsh.info/bin/Windows/gmsh-${GMSH}-Windows32.zip
-  curl -O https://getdp.info/bin/Windows/getdp-${GETDP}-Windows32c.zip
-  curl -O https://onelab.info/conveks/bin/conveks-${CONVEKS}-Windows32.zip
-  mv gmsh-${GMSH}-Windows32.zip /tmp
-  mv getdp-${GETDP}-Windows32c.zip /tmp
-  mv conveks-${CONVEKS}-Windows32.zip /tmp
-  unzip -q -o /tmp/gmsh-${GMSH}-Windows32.zip -d /tmp
-  unzip -q -o /tmp/getdp-${GETDP}-Windows32c.zip -d /tmp
-  unzip -q -o /tmp/conveks-${CONVEKS}-Windows32.zip -d /tmp
-  cp /tmp/README.txt onelab-Windows32
-  perl -pi -e 's/\n/\r\n/' onelab-Windows32/README.txt
-  mv /tmp/gmsh-*${GMSH}-Windows32/gmsh.exe onelab-Windows32
-  mv /tmp/gmsh-*${GMSH}-Windows32/onelab.py onelab-Windows32
-  mv /tmp/getdp-*${GETDP}-Windows32/getdp.exe onelab-Windows32
-  mv /tmp/conveks-*${CONVEKS}-Windows32/lib/conveks.py onelab-Windows32
-  mv /tmp/conveks-*${CONVEKS}-Windows32/lib/conveks*.dll onelab-Windows32
-  mv /tmp/gmsh-*${GMSH}-Windows32/LICENSE.txt onelab-Windows32/LICENSE.txt
-  echo "\n\n" >> onelab-Windows32/LICENSE.txt
-  cat /tmp/getdp-*${GETDP}-Windows32/LICENSE.txt >> onelab-Windows32/LICENSE.txt
-  mv /tmp/gmsh-*${GMSH}-Windows32/CREDITS.txt onelab-Windows32/CREDITS.txt
-  echo "\n\n" >> onelab-Windows32/CREDITS.txt
-  cat /tmp/getdp-*${GETDP}-Windows32/CREDITS.txt >> onelab-Windows32/CREDITS.txt
-  cp -R /tmp/models onelab-Windows32/
-  cp -R /tmp/tutorials onelab-Windows32/
-  cp -R /tmp/gmsh-*${GMSH}-Windows32/tutorial/* onelab-Windows32/tutorials/gmsh/
-  cp -R /tmp/getdp-*${GETDP}-Windows32/templates onelab-Windows32/
-  rm -rf /tmp/gmsh-*
-  rm -rf /tmp/getdp-*
-  rm -rf /tmp/conveks-*
-  zip -r onelab-Windows32.zip onelab-Windows32
-  rm -rf onelab-Windows32
-  scp onelab-Windows32.zip geuzaine@onelab.info:/onelab_files/
-fi
-
 if [ $# -lt 1 ] || [ $1 == "linux64" ]; then
   rm -rf onelab-Linux64*
   mkdir onelab-Linux64
@@ -204,51 +170,17 @@ if [ $# -lt 1 ] || [ $1 == "linux64" ]; then
   scp onelab-Linux64.zip geuzaine@onelab.info:/onelab_files/
 fi
 
-if [ $# -lt 1 ] || [ $1 == "linux32" ]; then
-  rm -rf onelab-Linux32*
-  mkdir onelab-Linux32
-  curl -O https://gmsh.info/bin/Linux/gmsh-${GMSH}-Linux32.tgz
-  curl -O https://getdp.info/bin/Linux/getdp-${GETDP}-Linux32c.tgz
-  curl -O https://onelab.info/conveks/bin/conveks-${CONVEKS}-Linux32.zip
-  mv gmsh-${GMSH}-Linux32.tgz /tmp
-  mv getdp-${GETDP}-Linux32c.tgz /tmp
-  mv conveks-${CONVEKS}-Linux32.zip /tmp
-  tar zxvf /tmp/gmsh-${GMSH}-Linux32.tgz -C /tmp
-  tar zxvf /tmp/getdp-${GETDP}-Linux32c.tgz -C /tmp
-  unzip -q -o /tmp/conveks-${CONVEKS}-Linux32.zip -d /tmp
-  cp /tmp/README.txt onelab-Linux32
-  mv /tmp/gmsh-*${GMSH}-Linux32/bin/gmsh onelab-Linux32
-  mv /tmp/gmsh-*${GMSH}-Linux32/bin/onelab.py onelab-Linux32
-  mv /tmp/getdp-*${GETDP}-Linux32/bin/getdp onelab-Linux32
-  mv /tmp/conveks-*${CONVEKS}-Linux32/lib/conveks.py onelab-Linux32
-  cp /tmp/conveks-*${CONVEKS}-Linux32/lib/libconveks*.so onelab-Linux32
-  mv /tmp/gmsh-*${GMSH}-Linux32/share/doc/gmsh/LICENSE.txt onelab-Linux32/LICENSE.txt
-  echo "\n\n" >> onelab-Linux32/LICENSE.txt
-  cat /tmp/getdp-*${GETDP}-Linux32/share/doc/getdp/LICENSE.txt >> onelab-Linux32/LICENSE.txt
-  mv /tmp/gmsh-*${GMSH}-Linux32/share/doc/gmsh/CREDITS.txt onelab-Linux32/CREDITS.txt
-  echo "\n\n" >> onelab-Linux32/CREDITS.txt
-  cat /tmp/getdp-*${GETDP}-Linux32/share/doc/getdp/CREDITS.txt >> onelab-Linux32/CREDITS.txt
-  cp -R /tmp/models onelab-Linux32/
-  cp -R /tmp/tutorials onelab-Linux32/
-  cp -R /tmp/gmsh-*${GMSH}-Linux32/share/doc/gmsh/tutorial/* onelab-Linux32/tutorials/gmsh/
-  cp -R /tmp/getdp-*${GETDP}-Linux32/share/doc/getdp/templates onelab-Linux32
-  rm -rf /tmp/gmsh-*
-  rm -rf /tmp/getdp-*
-  rm -rf /tmp/conveks-*
-  zip -r onelab-Linux32.zip onelab-Linux32
-  rm -rf onelab-Linux32
-  scp onelab-Linux32.zip geuzaine@onelab.info:/onelab_files/
-fi
-
 if [ $# -lt 1 ] || [ $1 == "mac" ]; then
   rm -rf onelab-MacOSX*
   mkdir onelab-MacOSX
   curl -O https://gmsh.info/bin/MacOSX/gmsh-${GMSH}-MacOSX.dmg
   curl -O https://getdp.info/bin/MacOSX/getdp-${GETDP}-MacOSXc.tgz
   curl -O https://onelab.info/conveks/bin/conveks-${CONVEKS}-MacOSX.zip
+  curl -O https://gitlab.onelab.info/gmsh/gmsh/-/raw/master/utils/misc/notarize.py
   mv gmsh-${GMSH}-MacOSX.dmg /tmp
   mv getdp-${GETDP}-MacOSXc.tgz /tmp
   mv conveks-${CONVEKS}-MacOSX.zip /tmp
+  mv notarize.py /tmp
   hdiutil convert /tmp/gmsh-${GMSH}-MacOSX.dmg -format UDTO -o /tmp/gmsh-tmp.cdr
   hdiutil attach -nobrowse -noverify -noautoopen -mountpoint gmsh_mount /tmp/gmsh-tmp.cdr
   tar zxvf /tmp/getdp-${GETDP}-MacOSXc.tgz -C /tmp
@@ -259,7 +191,7 @@ if [ $# -lt 1 ] || [ $1 == "mac" ]; then
   mv /tmp/conveks-*${CONVEKS}-MacOSX/lib/conveks.py onelab-MacOSX/Gmsh.app/Contents/MacOS/
   cp /tmp/conveks-*${CONVEKS}-MacOSX/lib/libconveks*.dylib onelab-MacOSX/Gmsh.app/Contents/MacOS/
   security unlock-keychain -p "FIXME" ${HOME}/Library/Keychains/login.keychain
-  codesign -v --force --deep --sign "Developer ID Application: Christophe Geuzaine" onelab-MacOSX/Gmsh.app
+  codesign -v --force --deep --options runtime --sign "Developer ID Application: Christophe Geuzaine" onelab-MacOSX/Gmsh.app
   cp gmsh_mount/LICENSE.txt onelab-MacOSX/LICENSE.txt
   echo "\n\n" >> onelab-MacOSX/LICENSE.txt
   cat /tmp/getdp-*${GETDP}-MacOSX/share/doc/getdp/LICENSE.txt >> onelab-MacOSX/LICENSE.txt
@@ -276,7 +208,7 @@ if [ $# -lt 1 ] || [ $1 == "mac" ]; then
   rm -rf /tmp/conveks-*
   # cannot use zip file: it destroys the signature for onelab.py
   hdiutil create -srcfolder onelab-MacOSX onelab-MacOSX.dmg
-  codesign -v --sign "Developer ID Application: Christophe Geuzaine" onelab-MacOSX.dmg
+  python3 /tmp/notarize.py --package onelab-MacOSX.dmg --username cgeuzaine@ulg.ac.be --primary-bundle-id org.geuz.Gmsh --password "@keychain:Gmsh Notarization"
   rm -rf onelab-MacOSX
   scp onelab-MacOSX.dmg geuzaine@onelab.info:/onelab_files/
 fi