From a645b87542e2f735bb8b59e7f9ae00fa8263b320 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Tue, 6 Nov 2018 20:51:42 +0100 Subject: [PATCH 01/35] First attempt at building on OSX with TravisCI --- .travis.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.travis.yml b/.travis.yml index bcf34ae15..3de0bca5f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ branches: only: - master - cppgui + - osxbuild addons: apt: sources: @@ -81,6 +82,14 @@ matrix: - package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 + - os: osx + osx_image: xcode9.4 + env: + - BUILD_PL=true + - SLIC3R_STATIC=1 + - BOOST_DIR=$HOME/boost_1_63_0 + install: + - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) - os: osx osx_image: xcode9.4 before_install: From 76828a805c5d32cb8fdd24138b847f9898766b94 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 00:21:31 +0100 Subject: [PATCH 02/35] Refactoring of Travis configuration --- .travis.yml | 76 +++++++++----------- package/{linux => common}/travis-decrypt-key | 0 package/linux/travis-build-cpp.sh | 30 ++++++++ package/linux/travis-build-main.sh | 37 ++++++++++ package/linux/travis-setup.sh | 70 ------------------ package/osx/travis-build-cpp.sh | 36 ++++++++++ package/osx/travis-build-main.sh | 10 +++ 7 files changed, 145 insertions(+), 114 deletions(-) rename package/{linux => common}/travis-decrypt-key (100%) create mode 100755 package/linux/travis-build-cpp.sh create mode 100755 package/linux/travis-build-main.sh delete mode 100755 package/linux/travis-setup.sh create mode 100755 package/osx/travis-build-cpp.sh create mode 100755 package/osx/travis-build-main.sh diff --git a/.travis.yml b/.travis.yml index 3de0bca5f..ea48c356a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,20 @@ language: generic before_install: - - sh package/linux/travis-decrypt-key + - sh package/common/travis-decrypt-key + - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) + script: - - bash package/linux/travis-setup.sh - - if [[ "$BUILD_PL" == false ]]; then mkdir build && cd build; fi - - if [[ "$BUILD_PL" == false ]]; then cmake -DBOOST_ROOT=$BOOST_DIR -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src; fi - - if [[ "$BUILD_PL" == false ]]; then cmake --build .; fi - - if [[ "$BUILD_PL" == false ]]; then ./slic3r_test -s; fi - - if [[ "$BUILD_PL" == true ]]; then perlbrew switch slic3r-perl; fi - - if [[ "$BUILD_PL" == true ]]; then perl ./Build.PL; fi -# - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ./gui_test -s; fi + - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$BUILD_PL" == true ]]; then ./package/linux/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$BUILD_PL" == false ]]; then ./package/linux/travis-build-cpp.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == true ]]; then ./package/osx/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == false ]]; then ./package/osx/travis-build-cpp.sh; fi + branches: only: - master - cppgui - osxbuild + addons: apt: sources: @@ -32,29 +32,18 @@ addons: - libwxgtk3.0-dev - wx-common ssh_known_hosts: dl.slic3r.org -notifications: - irc: - channels: - - chat.freenode.net#slic3r - on_success: change - on_failure: always - use_notice: true + dist: trusty + matrix: include: - os: linux env: - BUILD_PL=true - - SLIC3R_STATIC=1 - - CC=gcc-7 - - CXX=g++-7 - install: - - export BOOST_DIR=$HOME/boost_1_63_0 - - export SLIC3R_STATIC=1 - - export CXX=g++-4.9 - - export CC=g++-4.9 - - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) - - source $HOME/perl5/perlbrew/etc/bashrc + - CACHE=$HOME/cache + cache: + directories: + - "$HOME/local-lib" after_success: - eval $(perl -Mlocal::lib=$TRAVIS_BUILD_DIR/local-lib) - cd package/linux && make -f build_shell.mk && mv Slic3r* $TRAVIS_BUILD_DIR && cd $TRAVIS_BUILD_DIR @@ -66,11 +55,7 @@ matrix: - os: linux env: - BUILD_PL=false - - WXVERSION=pkg - - CC=gcc-7 - - CXX=g++-7 - - BOOST_DIR=$HOME/boost_1_63_0 - - DISPLAY=:99.0 + - CACHE=$HOME/cache cache: apt: true directories: @@ -86,26 +71,29 @@ matrix: osx_image: xcode9.4 env: - BUILD_PL=true - - SLIC3R_STATIC=1 - - BOOST_DIR=$HOME/boost_1_63_0 - install: - - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) + cache: + directories: + - "$HOME/local-lib" - os: osx osx_image: xcode9.4 - before_install: - - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update -v ; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache; fi env: - BUILD_PL=false - - WXVERSION=pkg - - BOOST_DIR=$HOME/boost_1_63_0 - - DISPLAY=:99.0 + - CACHE=$HOME/cache cache: ccache: true - directories: - - $HOME/Library/Caches/Homebrew + directories: + - $HOME/cache + - $HOME/Library/Caches/Homebrew + env: global: - secure: eEVRZNMv7FM6jrOU9iAFkDhWxFQ1WtHBEaObImcvtFUxy6vWSt3ehFFeTRouj3uHQAnbvUzziDyvPPm8/95alv5g/du8ML6YzzqKBKfazM0xQ7SF6R2DQL8lfFIp+RSV7T02byEP1f1g7Zva7xH9szIlDcSfU0pXW4KWbkBFMd8= - secure: gj338h+qHGccTD/VQFmEJkqdg2McIe2pO0iZ4Ae9BvY5vxkIML4BpoYZQXQTqiAOETnUjlcknY9lx0hI/PfkDD9MSJc5BC/3fMYRCu3SgAclEwklWf9vvtodUeT69mtnZuw1zze1nTbExuOw2mepbqFjxKKMl+9l5oCz4O54fXU= + +notifications: + irc: + channels: + - chat.freenode.net#slic3r + on_success: change + on_failure: always + use_notice: true diff --git a/package/linux/travis-decrypt-key b/package/common/travis-decrypt-key similarity index 100% rename from package/linux/travis-decrypt-key rename to package/common/travis-decrypt-key diff --git a/package/linux/travis-build-cpp.sh b/package/linux/travis-build-cpp.sh new file mode 100755 index 000000000..7c45c81fe --- /dev/null +++ b/package/linux/travis-build-cpp.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -euo pipefail + +export WXVERSION=pkg +export CC=gcc-7 +export CXX=g++-7 +export DISPLAY=:99.0 + +mkdir -p $CACHE + +if [[ "$WXVERSION" != "pkg" ]]; then + export WXDIR=$HOME/wx${WXVERSION} + if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 + fi + tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 +fi + +if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 +fi + +tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 + +mkdir build && cd build +cmake -DBOOST_ROOT=$HOME/boost_1_63_0 -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src +cmake --build . +./slic3r_test -s diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh new file mode 100755 index 000000000..f0ab92707 --- /dev/null +++ b/package/linux/travis-build-main.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -euo pipefail + +mkdir -p $CACHE + +WXVERSION=302 +if [ ! -e $CACHE/slic3r-perlbrew-5.24.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2 => $CACHE/slic3r-perlbrew-5.24.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o $CACHE/slic3r-perlbrew-5.24.tar.bz2; +fi + +if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 +fi + +if [ ! -e $CACHE/local-lib-wx${WXVERSION}.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.gcc49.travis-wx${WXVERSION}.tar.bz2 => $CACHE/local-lib-wx${WXVERSION}.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2" -o $CACHE/local-lib-wx${WXVERSION}.tar.bz2 +fi + +if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 +fi + +tar -C$TRAVIS_BUILD_DIR -xjf $CACHE/local-lib-wx${WXVERSION}.tar.bz2 +tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 +tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 +tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 + +source $HOME/perl5/perlbrew/etc/bashrc +perlbrew switch slic3r-perl + +# CXX=g++-4.9 ? +# CC=g++-4.9 ? +SLIC3R_STATIC=1 CC=gcc-7 CXX=g++-7 BOOST_DIR=$HOME/boost_1_63_0 perl ./Build.PL diff --git a/package/linux/travis-setup.sh b/package/linux/travis-setup.sh deleted file mode 100755 index 28c9ef81a..000000000 --- a/package/linux/travis-setup.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -# Script to configure travis environment prior to build -CACHE=$HOME/cache -mkdir -p $CACHE - -if [[ "$BUILD_PL" == true ]]; then - WXVERSION=302 - if [ ! -e $CACHE/slic3r-perlbrew-5.24.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2 => $CACHE/slic3r-perlbrew-5.24.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o $CACHE/slic3r-perlbrew-5.24.tar.bz2; - fi - - if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 - fi - - if [ ! -e $CACHE/local-lib-wx${WXVERSION}.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.gcc49.travis-wx${WXVERSION}.tar.bz2 => $CACHE/local-lib-wx${WXVERSION}.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2" -o $CACHE/local-lib-wx${WXVERSION}.tar.bz2 - fi - - if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 - fi - - tar -C$TRAVIS_BUILD_DIR -xjf $CACHE/local-lib-wx${WXVERSION}.tar.bz2 - tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 - tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 - tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 -else - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - if [[ "$WXVERSION" != "pkg" ]]; then - export WXDIR=$HOME/wx${WXVERSION} - if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 - fi - tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 - fi - - if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 - fi - - tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 - - elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - if [[ "$WXVERSION" != "pkg" ]]; then - WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1} - export WXDIR=$HOME/wx${WXVERSION} - if [ ! -e $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 ]; then - curl -L "https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVER_EXPANDED}/wxWidgets-${WXVER_EXPANDED}.tar.bz2" -o $HOME/wx${WXVERSION}-src.tar.bz2 - tar -C$HOME -xjf $HOME/wx${WXVERSION}-src.tar.bz2 - mkdir $WXDIR - cd $HOME/$WXDIR && cmake $HOME/wxWidgets-${WXVER_EXPANDED} -DwxBUILD_SHARED=OFF - cmake --build . --target -- -j4 - tar -C$HOME -cjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 $(basename ${WXDIR}) - else - tar -C$HOME -xjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 - fi - export PATH=${PATH}:${WXDIR} - cd $TRAVIS_BUILD_DIR # go back to the build dir - else - brew install wxmac # install via homebrew - fi - fi -fi diff --git a/package/osx/travis-build-cpp.sh b/package/osx/travis-build-cpp.sh new file mode 100755 index 000000000..89d000fb7 --- /dev/null +++ b/package/osx/travis-build-cpp.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -euo pipefail + +export WXVERSION=pkg +export DISPLAY=:99.0 + +mkdir -p $CACHE + +( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& +brew update -v +brew install ccache + +if [[ "$WXVERSION" != "pkg" ]]; then + WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1} + export WXDIR=$HOME/wx${WXVERSION} + if [ ! -e $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 ]; then + curl -L "https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVER_EXPANDED}/wxWidgets-${WXVER_EXPANDED}.tar.bz2" -o $HOME/wx${WXVERSION}-src.tar.bz2 + tar -C$HOME -xjf $HOME/wx${WXVERSION}-src.tar.bz2 + mkdir $WXDIR + cd $HOME/$WXDIR && cmake $HOME/wxWidgets-${WXVER_EXPANDED} -DwxBUILD_SHARED=OFF + cmake --build . --target -- -j4 + tar -C$HOME -cjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 $(basename ${WXDIR}) + else + tar -C$HOME -xjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 + fi + export PATH=${PATH}:${WXDIR} + cd $TRAVIS_BUILD_DIR # go back to the build dir +else + brew install wxmac # install via homebrew +fi + +mkdir build && cd build +cmake -DBOOST_ROOT=$HOME/boost_1_63_0 -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src +cmake --build . +./slic3r_test -s +#./gui_test -s \ No newline at end of file diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh new file mode 100755 index 000000000..75c596077 --- /dev/null +++ b/package/osx/travis-build-main.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -euo pipefail + +brew update -v +brew install boost perl cpanminus + +export SLIC3R_STATIC=1 +export BOOST_DIR=/usr/local +perl ./Build.PL +perl ./Build.PL --gui From 5f5c075689399d7e39b17466976cd5b15b734ba9 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 01:08:53 +0100 Subject: [PATCH 03/35] Further refactoring of TravisCI configuration --- .travis.yml | 46 ++++++++++++++++++----------- package/linux/travis-build-main.sh | 1 + package/linux/travis-deploy-cpp.sh | 10 +++++++ package/linux/travis-deploy-main.sh | 13 ++++++++ package/osx/travis-build-main.sh | 14 +++++++++ package/osx/travis-deploy-main.sh | 4 +++ 6 files changed, 70 insertions(+), 18 deletions(-) create mode 100755 package/linux/travis-deploy-cpp.sh create mode 100755 package/linux/travis-deploy-main.sh create mode 100755 package/osx/travis-deploy-main.sh diff --git a/.travis.yml b/.travis.yml index ea48c356a..a3ec56336 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,18 @@ +# TravisCI configuration for Slic3r - https://slic3r.org +# +# We build Linux and macOS versions on TravisCI, both the main program +# (perl/C++) and the pure C++ one. +# +# Each job performs the following steps: +# - install dependencies (cached across builds) +# - build +# - test +# - package +# - deploy to dl.slic3r.org + language: generic +dist: trusty + before_install: - sh package/common/travis-decrypt-key - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) @@ -33,8 +47,6 @@ addons: - wx-common ssh_known_hosts: dl.slic3r.org -dist: trusty - matrix: include: - os: linux @@ -43,15 +55,11 @@ matrix: - CACHE=$HOME/cache cache: directories: - - "$HOME/local-lib" + - $HOME/cache + - local-lib after_success: - - eval $(perl -Mlocal::lib=$TRAVIS_BUILD_DIR/local-lib) - - cd package/linux && make -f build_shell.mk && mv Slic3r* $TRAVIS_BUILD_DIR && cd $TRAVIS_BUILD_DIR - - LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 - - package/linux/appimage.sh x86_64 - - package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage - - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage - - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 + - package/linux/travis-deploy-main.sh + - os: linux env: - BUILD_PL=false @@ -59,21 +67,22 @@ matrix: cache: apt: true directories: - - "$HOME/cache" + - $HOME/cache after_success: - - cp slic3r ../ - - LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 - - package/linux/appimage.sh x86_64 - - package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage - - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage - - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 + - package/linux/travis-deploy-cpp.sh + - os: osx osx_image: xcode9.4 env: - BUILD_PL=true cache: directories: - - "$HOME/local-lib" + - /usr/local/Homebrew + - $HOME/Library/Caches/Homebrew + - local-lib + after_success: + - package/osx/travis-deploy-main.sh + - os: osx osx_image: xcode9.4 env: @@ -82,6 +91,7 @@ matrix: cache: ccache: true directories: + - /usr/local/Homebrew - $HOME/cache - $HOME/Library/Caches/Homebrew diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index f0ab92707..881ed5edd 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -29,6 +29,7 @@ tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 +export PERLBREW_SKIP_INIT=0 source $HOME/perl5/perlbrew/etc/bashrc perlbrew switch slic3r-perl diff --git a/package/linux/travis-deploy-cpp.sh b/package/linux/travis-deploy-cpp.sh new file mode 100755 index 000000000..3725f5f19 --- /dev/null +++ b/package/linux/travis-deploy-cpp.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -euo pipefail + +# Not sure this is the correct deployment: +# cp slic3r ../ +# LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 +# package/linux/appimage.sh x86_64 +# package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage +# package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage +# package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 diff --git a/package/linux/travis-deploy-main.sh b/package/linux/travis-deploy-main.sh new file mode 100755 index 000000000..3cbc85727 --- /dev/null +++ b/package/linux/travis-deploy-main.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -euo pipefail + +eval $(perl -Mlocal::lib=$TRAVIS_BUILD_DIR/local-lib) +cd package/linux && make -f build_shell.mk && mv Slic3r* $TRAVIS_BUILD_DIR && cd $TRAVIS_BUILD_DIR + +LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 + +package/linux/appimage.sh x86_64 + +package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage +package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage +package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 75c596077..e4ff9d779 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -7,4 +7,18 @@ brew install boost perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local perl ./Build.PL + +# Install GUI modules and wxWidgets: + +curl -O https://gist.githubusercontent.com/alranel/c2de82c05f6006b49c5029fc78bcaa87/raw/778dec2692408334ef2b87818bf977ac6f9fd8ee/patch-wxwidgets-noquicktime.diff + +PERL_USE_UNSAFE_INC=1 \ + CXX="clang++ -mmacosx-version-min=10.12" \ + CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ + LDFLAGS="-mmacosx-version-min=10.12" \ + cpanm --local-lib local-lib Alien::wxWidgets -v --reinstall \ + --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/patch-wxwidgets-noquicktime.diff" + +PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master + perl ./Build.PL --gui diff --git a/package/osx/travis-deploy-main.sh b/package/osx/travis-deploy-main.sh new file mode 100755 index 000000000..94df9482d --- /dev/null +++ b/package/osx/travis-deploy-main.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -euo pipefail + +package/osx/make_dmg.sh foo From 390d613e8719c5e2068e9b58ef6c56eaf0eee71f Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 14:22:23 +0100 Subject: [PATCH 04/35] More fixes for CI --- package/linux/travis-build-main.sh | 4 ++- package/osx/patch-wxwidgets.diff | 46 ++++++++++++++++++++++++++++++ package/osx/travis-build-main.sh | 21 +++++++------- 3 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 package/osx/patch-wxwidgets.diff diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index 881ed5edd..68afae520 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -1,5 +1,7 @@ #!/bin/bash -set -euo pipefail + +# This is too strict for source $HOME/perl5/perlbrew/etc/bashrc: +### set -euo pipefail mkdir -p $CACHE diff --git a/package/osx/patch-wxwidgets.diff b/package/osx/patch-wxwidgets.diff new file mode 100644 index 000000000..dc13c9dd0 --- /dev/null +++ b/package/osx/patch-wxwidgets.diff @@ -0,0 +1,46 @@ +diff --git src/osx/carbon/dataobj.cpp src/osx/carbon/dataobj.cpp +index 758e3a7928..5445aa6b14 100644 +--- src/osx/carbon/dataobj.cpp ++++ src/osx/carbon/dataobj.cpp +@@ -29,10 +29,6 @@ + + #include "wx/osx/private.h" + +-#if wxOSX_USE_COCOA_OR_CARBON +- #include +-#endif +- + // ---------------------------------------------------------------------------- + // wxDataFormat + // ---------------------------------------------------------------------------- +diff --git src/osx/core/bitmap.cpp src/osx/core/bitmap.cpp +index 3c61c173e7..3322b605fc 100644 +--- src/osx/core/bitmap.cpp ++++ src/osx/core/bitmap.cpp +@@ -35,10 +35,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) + #include "wx/osx/private.h" + #endif + +-#ifndef __WXOSX_IPHONE__ +-#include +-#endif +- + CGColorSpaceRef wxMacGetGenericRGBColorSpace(); + CGDataProviderRef wxMacCGDataProviderCreateWithMemoryBuffer( const wxMemoryBuffer& buf ); + +diff --git src/stc/scintilla/src/Editor.cxx src/stc/scintilla/src/Editor.cxx +index cd72953ae7..a3ee41c49b 100644 +--- src/stc/scintilla/src/Editor.cxx ++++ src/stc/scintilla/src/Editor.cxx +@@ -5841,9 +5841,9 @@ void Editor::GoToLine(int lineNo) { + } + + static bool Close(Point pt1, Point pt2) { +- if (abs(pt1.x - pt2.x) > 3) ++ if (labs(pt1.x - pt2.x) > 3) + return false; +- if (abs(pt1.y - pt2.y) > 3) ++ if (labs(pt1.y - pt2.y) > 3) + return false; + return true; + } diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index e4ff9d779..57185a1f2 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -8,17 +8,16 @@ export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local perl ./Build.PL -# Install GUI modules and wxWidgets: +# Only recompile Wx if it's not already there +if !(perl -MWx -e1 2> /dev/null); then + PERL_USE_UNSAFE_INC=1 \ + CXX="clang++ -mmacosx-version-min=10.12" \ + CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ + LDFLAGS="-mmacosx-version-min=10.12" \ + cpanm --local-lib local-lib Alien::wxWidgets -v --reinstall \ + --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" -curl -O https://gist.githubusercontent.com/alranel/c2de82c05f6006b49c5029fc78bcaa87/raw/778dec2692408334ef2b87818bf977ac6f9fd8ee/patch-wxwidgets-noquicktime.diff - -PERL_USE_UNSAFE_INC=1 \ - CXX="clang++ -mmacosx-version-min=10.12" \ - CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ - LDFLAGS="-mmacosx-version-min=10.12" \ - cpanm --local-lib local-lib Alien::wxWidgets -v --reinstall \ - --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/patch-wxwidgets-noquicktime.diff" - -PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master + PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master +fi perl ./Build.PL --gui From c9ce5bf3ae7f87ea259a0895eca3f9335d95d06a Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 16:49:01 +0100 Subject: [PATCH 05/35] More fixes to CI scripts --- package/linux/travis-build-main.sh | 5 +---- package/osx/patch-wxwidgets.diff | 4 ++-- package/osx/travis-build-main.sh | 1 + 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index 68afae520..273eb0319 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -31,10 +31,7 @@ tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 -export PERLBREW_SKIP_INIT=0 source $HOME/perl5/perlbrew/etc/bashrc perlbrew switch slic3r-perl -# CXX=g++-4.9 ? -# CC=g++-4.9 ? -SLIC3R_STATIC=1 CC=gcc-7 CXX=g++-7 BOOST_DIR=$HOME/boost_1_63_0 perl ./Build.PL +SLIC3R_STATIC=1 CC=g++-4.9 CXX=g++-4.9 BOOST_DIR=$HOME/boost_1_63_0 perl ./Build.PL diff --git a/package/osx/patch-wxwidgets.diff b/package/osx/patch-wxwidgets.diff index dc13c9dd0..39c639459 100644 --- a/package/osx/patch-wxwidgets.diff +++ b/package/osx/patch-wxwidgets.diff @@ -17,7 +17,7 @@ diff --git src/osx/core/bitmap.cpp src/osx/core/bitmap.cpp index 3c61c173e7..3322b605fc 100644 --- src/osx/core/bitmap.cpp +++ src/osx/core/bitmap.cpp -@@ -35,10 +35,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) +@@ -35,10 +35,6 @@ #include "wx/osx/private.h" #endif @@ -32,7 +32,7 @@ diff --git src/stc/scintilla/src/Editor.cxx src/stc/scintilla/src/Editor.cxx index cd72953ae7..a3ee41c49b 100644 --- src/stc/scintilla/src/Editor.cxx +++ src/stc/scintilla/src/Editor.cxx -@@ -5841,9 +5841,9 @@ void Editor::GoToLine(int lineNo) { +@@ -5841,9 +5841,9 @@ } static bool Close(Point pt1, Point pt2) { diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 57185a1f2..223782fad 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -10,6 +10,7 @@ perl ./Build.PL # Only recompile Wx if it's not already there if !(perl -MWx -e1 2> /dev/null); then + # our patch-wxwidgets.diff assumes Alien::wxWidgets installs wxWidgets 3.0.2 PERL_USE_UNSAFE_INC=1 \ CXX="clang++ -mmacosx-version-min=10.12" \ CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ From fa31265bff03d8085b926a3c7d45f58f90bf5149 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 17:54:38 +0100 Subject: [PATCH 06/35] Make wxWidgets compilation less verbose (in order to honor the max logs limit) and temporarily suspend Build.PL --- package/osx/travis-build-main.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 223782fad..51df043d9 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -6,7 +6,7 @@ brew install boost perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local -perl ./Build.PL +#perl ./Build.PL # Only recompile Wx if it's not already there if !(perl -MWx -e1 2> /dev/null); then @@ -15,7 +15,7 @@ if !(perl -MWx -e1 2> /dev/null); then CXX="clang++ -mmacosx-version-min=10.12" \ CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ LDFLAGS="-mmacosx-version-min=10.12" \ - cpanm --local-lib local-lib Alien::wxWidgets -v --reinstall \ + cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master From dd7127a36a55fdd74b65f263051d725eb043e9aa Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 18:18:59 +0100 Subject: [PATCH 07/35] Use travis_wait --- package/osx/travis-build-main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 51df043d9..69b6bbb63 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -15,7 +15,7 @@ if !(perl -MWx -e1 2> /dev/null); then CXX="clang++ -mmacosx-version-min=10.12" \ CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ LDFLAGS="-mmacosx-version-min=10.12" \ - cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ + travis_wait 60 cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master From bc4af97d3d36ff7a38b223a8b838b708b7f36f50 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 7 Nov 2018 18:26:27 +0100 Subject: [PATCH 08/35] Move travis_wait to .travis.yml --- .travis.yml | 2 +- package/osx/travis-build-main.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a3ec56336..a4a8da48a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ before_install: script: - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$BUILD_PL" == true ]]; then ./package/linux/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$BUILD_PL" == false ]]; then ./package/linux/travis-build-cpp.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == true ]]; then ./package/osx/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == true ]]; then travis_wait 60 ./package/osx/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == false ]]; then ./package/osx/travis-build-cpp.sh; fi branches: diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 69b6bbb63..51df043d9 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -15,7 +15,7 @@ if !(perl -MWx -e1 2> /dev/null); then CXX="clang++ -mmacosx-version-min=10.12" \ CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ LDFLAGS="-mmacosx-version-min=10.12" \ - travis_wait 60 cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ + cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master From 868ed58baa62d09559cc7bde22d6a1d9d5ace926 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 11:15:14 +0100 Subject: [PATCH 09/35] Re-enable Build.PL for osx and leverage Travis cache for Linux --- .travis.yml | 11 ++++----- package/linux/travis-build-main.sh | 36 +++++++++++++----------------- package/osx/travis-build-main.sh | 2 +- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index a4a8da48a..edea8c183 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ # - build # - test # - package -# - deploy to dl.slic3r.org +# - deploy to dl.slic3r.org (except for the cppgui branch) language: generic dist: trusty @@ -52,13 +52,14 @@ matrix: - os: linux env: - BUILD_PL=true - - CACHE=$HOME/cache cache: directories: - - $HOME/cache + - $HOME/boost_1_63_0 + - $HOME/perl5 + - $HOME/wx302 - local-lib after_success: - - package/linux/travis-deploy-main.sh + - if [[ "${TRAVIS_BRANCH}" != "cppgui" ]]; then ./package/linux/travis-deploy-main.sh; fi - os: linux env: @@ -81,7 +82,7 @@ matrix: - $HOME/Library/Caches/Homebrew - local-lib after_success: - - package/osx/travis-deploy-main.sh + - if [[ "${TRAVIS_BRANCH}" != "cppgui" ]]; then ./package/osx/travis-deploy-main.sh; fi - os: osx osx_image: xcode9.4 diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index 273eb0319..037c1d1bf 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -3,34 +3,30 @@ # This is too strict for source $HOME/perl5/perlbrew/etc/bashrc: ### set -euo pipefail -mkdir -p $CACHE - -WXVERSION=302 -if [ ! -e $CACHE/slic3r-perlbrew-5.24.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2 => $CACHE/slic3r-perlbrew-5.24.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o $CACHE/slic3r-perlbrew-5.24.tar.bz2; +if [ ! -d $HOME/perl5/perlbrew/perls ]; then + echo "Downloading slic3r-perl.524.travis.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o /tmp/slic3r-perlbrew-5.24.tar.bz2; + tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 fi -if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 +if [ ! -d $HOME/boost_1_63_0 ]; then + echo "Downloading boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o /tmp/boost-compiled.tar.bz2 + tar -C$HOME -xjf /tmp/boost-compiled.tar.bz2 fi -if [ ! -e $CACHE/local-lib-wx${WXVERSION}.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.gcc49.travis-wx${WXVERSION}.tar.bz2 => $CACHE/local-lib-wx${WXVERSION}.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2" -o $CACHE/local-lib-wx${WXVERSION}.tar.bz2 +if [ ! -d $TRAVIS_BUILD_DIR/local-lib ]; then + echo "Downloading slic3r-dependencies.gcc49.travis-wx302.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx302.tar.bz2" -o /tmp/local-lib-wx302.tar.bz2 + tar -C$TRAVIS_BUILD_DIR -xjf /tmp/local-lib-wx302.tar.bz2 fi -if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 +if [ ! -d $HOME/wx302 ]; then + echo "Downloading buildserver/wx302-libs.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/wx302-libs.tar.bz2" -o /tmp/wx302.tar.bz2 + tar -C$HOME -xjf /tmp/wx302.tar.bz2 fi -tar -C$TRAVIS_BUILD_DIR -xjf $CACHE/local-lib-wx${WXVERSION}.tar.bz2 -tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 -tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 -tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 - source $HOME/perl5/perlbrew/etc/bashrc perlbrew switch slic3r-perl diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 51df043d9..62b5bb8d2 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -6,7 +6,7 @@ brew install boost perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local -#perl ./Build.PL +perl ./Build.PL # Only recompile Wx if it's not already there if !(perl -MWx -e1 2> /dev/null); then From 18769699eb9597c97d23e1cb74fa10f8abca42d4 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 12:30:32 +0100 Subject: [PATCH 10/35] Fix cache triggers --- package/linux/travis-build-main.sh | 10 ++++------ package/osx/travis-build-main.sh | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index 037c1d1bf..dce24f540 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -3,25 +3,23 @@ # This is too strict for source $HOME/perl5/perlbrew/etc/bashrc: ### set -euo pipefail -if [ ! -d $HOME/perl5/perlbrew/perls ]; then +if [ ! -d $HOME/perl5/perlbrew/perls/slic3r-perl ]; then echo "Downloading slic3r-perl.524.travis.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o /tmp/slic3r-perlbrew-5.24.tar.bz2; tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 fi -if [ ! -d $HOME/boost_1_63_0 ]; then +if [ ! -e $HOME/boost_1_63_0/boost/version.hpp ]; then echo "Downloading boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o /tmp/boost-compiled.tar.bz2 tar -C$HOME -xjf /tmp/boost-compiled.tar.bz2 fi -if [ ! -d $TRAVIS_BUILD_DIR/local-lib ]; then +if !(perl -MWx -e1 2> /dev/null); then echo "Downloading slic3r-dependencies.gcc49.travis-wx302.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx302.tar.bz2" -o /tmp/local-lib-wx302.tar.bz2 tar -C$TRAVIS_BUILD_DIR -xjf /tmp/local-lib-wx302.tar.bz2 -fi - -if [ ! -d $HOME/wx302 ]; then + echo "Downloading buildserver/wx302-libs.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/wx302-libs.tar.bz2" -o /tmp/wx302.tar.bz2 tar -C$HOME -xjf /tmp/wx302.tar.bz2 diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 62b5bb8d2..aa29c712d 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -9,7 +9,7 @@ export BOOST_DIR=/usr/local perl ./Build.PL # Only recompile Wx if it's not already there -if !(perl -MWx -e1 2> /dev/null); then +if !(perl -MWx -e1); then # our patch-wxwidgets.diff assumes Alien::wxWidgets installs wxWidgets 3.0.2 PERL_USE_UNSAFE_INC=1 \ CXX="clang++ -mmacosx-version-min=10.12" \ From fd5cd7a3e306afdab495e50adcbae91d31219e58 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 12:40:38 +0100 Subject: [PATCH 11/35] Fix path --- package/linux/travis-build-main.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index dce24f540..43ec9637c 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -4,9 +4,9 @@ ### set -euo pipefail if [ ! -d $HOME/perl5/perlbrew/perls/slic3r-perl ]; then - echo "Downloading slic3r-perl.524.travis.tar.bz2" + echo "Downloading slic3r-perlbrew-5.24.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o /tmp/slic3r-perlbrew-5.24.tar.bz2; - tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 + tar -C$HOME/perl5/perlbrew/perls -xjf /tmp/slic3r-perlbrew-5.24.tar.bz2 fi if [ ! -e $HOME/boost_1_63_0/boost/version.hpp ]; then From cbb618a381c3f7cdea95bb400782cc510b790e86 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 13:51:46 +0100 Subject: [PATCH 12/35] More tweaks for Travis caching --- .travis.yml | 16 ++++++++-------- package/linux/travis-build-main.sh | 9 +++++---- package/osx/travis-build-main.sh | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index edea8c183..1fc7cc158 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,10 +18,10 @@ before_install: - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) script: - - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$BUILD_PL" == true ]]; then ./package/linux/travis-build-main.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$BUILD_PL" == false ]]; then ./package/linux/travis-build-cpp.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == true ]]; then travis_wait 60 ./package/osx/travis-build-main.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$BUILD_PL" == false ]]; then ./package/osx/travis-build-cpp.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "main" ]]; then ./package/linux/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "cpp" ]]; then ./package/linux/travis-build-cpp.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then travis_wait 60 ./package/osx/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "cpp" ]]; then ./package/osx/travis-build-cpp.sh; fi branches: only: @@ -51,7 +51,7 @@ matrix: include: - os: linux env: - - BUILD_PL=true + - TARGET=main cache: directories: - $HOME/boost_1_63_0 @@ -63,7 +63,7 @@ matrix: - os: linux env: - - BUILD_PL=false + - TARGET=cpp - CACHE=$HOME/cache cache: apt: true @@ -75,7 +75,7 @@ matrix: - os: osx osx_image: xcode9.4 env: - - BUILD_PL=true + - TARGET=main cache: directories: - /usr/local/Homebrew @@ -87,7 +87,7 @@ matrix: - os: osx osx_image: xcode9.4 env: - - BUILD_PL=false + - TARGET=cpp - CACHE=$HOME/cache cache: ccache: true diff --git a/package/linux/travis-build-main.sh b/package/linux/travis-build-main.sh index 43ec9637c..de6586865 100755 --- a/package/linux/travis-build-main.sh +++ b/package/linux/travis-build-main.sh @@ -9,13 +9,16 @@ if [ ! -d $HOME/perl5/perlbrew/perls/slic3r-perl ]; then tar -C$HOME/perl5/perlbrew/perls -xjf /tmp/slic3r-perlbrew-5.24.tar.bz2 fi +source $HOME/perl5/perlbrew/etc/bashrc +perlbrew switch slic3r-perl + if [ ! -e $HOME/boost_1_63_0/boost/version.hpp ]; then echo "Downloading boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o /tmp/boost-compiled.tar.bz2 tar -C$HOME -xjf /tmp/boost-compiled.tar.bz2 fi -if !(perl -MWx -e1 2> /dev/null); then +if [ ! -e ./local-lib/lib/perl5/x86_64-linux-thread-multi/Wx.pm ]; then echo "Downloading slic3r-dependencies.gcc49.travis-wx302.tar.bz2" curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx302.tar.bz2" -o /tmp/local-lib-wx302.tar.bz2 tar -C$TRAVIS_BUILD_DIR -xjf /tmp/local-lib-wx302.tar.bz2 @@ -25,7 +28,5 @@ if !(perl -MWx -e1 2> /dev/null); then tar -C$HOME -xjf /tmp/wx302.tar.bz2 fi -source $HOME/perl5/perlbrew/etc/bashrc -perlbrew switch slic3r-perl - SLIC3R_STATIC=1 CC=g++-4.9 CXX=g++-4.9 BOOST_DIR=$HOME/boost_1_63_0 perl ./Build.PL +perl ./Build.PL --gui diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index aa29c712d..cc2463a35 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -9,7 +9,7 @@ export BOOST_DIR=/usr/local perl ./Build.PL # Only recompile Wx if it's not already there -if !(perl -MWx -e1); then +if [ ! -e ./local-lib/lib/perl5/darwin-thread-multi-2level/Wx.pm ]; then # our patch-wxwidgets.diff assumes Alien::wxWidgets installs wxWidgets 3.0.2 PERL_USE_UNSAFE_INC=1 \ CXX="clang++ -mmacosx-version-min=10.12" \ From 2d3c17842c623aaac276d332c0dfe0d20af67be3 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 15:27:59 +0100 Subject: [PATCH 13/35] Try Alien::wxWidgets and brew --- .travis.yml | 1 - package/osx/travis-build-main.sh | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1fc7cc158..d6cc59e03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,6 @@ branches: only: - master - cppgui - - osxbuild addons: apt: diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index cc2463a35..34ba2dda7 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -2,7 +2,7 @@ set -euo pipefail brew update -v -brew install boost perl cpanminus +brew install boost perl cpanminus wxwidgets export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local @@ -11,12 +11,12 @@ perl ./Build.PL # Only recompile Wx if it's not already there if [ ! -e ./local-lib/lib/perl5/darwin-thread-multi-2level/Wx.pm ]; then # our patch-wxwidgets.diff assumes Alien::wxWidgets installs wxWidgets 3.0.2 - PERL_USE_UNSAFE_INC=1 \ - CXX="clang++ -mmacosx-version-min=10.12" \ - CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ - LDFLAGS="-mmacosx-version-min=10.12" \ - cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ - --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" +# PERL_USE_UNSAFE_INC=1 \ +# CXX="clang++ -mmacosx-version-min=10.12" \ +# CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ +# LDFLAGS="-mmacosx-version-min=10.12" \ +# cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ +# --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master fi From ab694efabb1890ad2662b4a92b62bcf169d46a43 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 17:29:24 +0100 Subject: [PATCH 14/35] Use brew wxwidgets and stock Wx --- package/osx/travis-build-main.sh | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 34ba2dda7..12c331480 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -3,22 +3,9 @@ set -euo pipefail brew update -v brew install boost perl cpanminus wxwidgets +brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local perl ./Build.PL - -# Only recompile Wx if it's not already there -if [ ! -e ./local-lib/lib/perl5/darwin-thread-multi-2level/Wx.pm ]; then - # our patch-wxwidgets.diff assumes Alien::wxWidgets installs wxWidgets 3.0.2 -# PERL_USE_UNSAFE_INC=1 \ -# CXX="clang++ -mmacosx-version-min=10.12" \ -# CPPFLAGS="-mmacosx-version-min=10.12 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ -# LDFLAGS="-mmacosx-version-min=10.12" \ -# cpanm --local-lib local-lib Alien::wxWidgets --reinstall \ -# --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/package/osx/patch-wxwidgets.diff" - - PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alranel/wxPerl-osx10.12/tarball/master -fi - perl ./Build.PL --gui From ed1429b8ea94e00afe0550ce9424c0ea3a809199 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 17:57:55 +0100 Subject: [PATCH 15/35] Add package & deploy for OSX builds --- .travis.yml | 4 ++-- package/osx/make_dmg.sh | 10 ++++++++++ package/osx/travis-deploy-main.sh | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index d6cc59e03..4dcf7cc39 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,12 +15,12 @@ dist: trusty before_install: - sh package/common/travis-decrypt-key - - export SLIC3R_GIT_VERSION=$(git rev-parse HEAD) + - export SLIC3R_GIT_VERSION=$(git rev-parse --short HEAD) script: - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "main" ]]; then ./package/linux/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "cpp" ]]; then ./package/linux/travis-build-cpp.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then travis_wait 60 ./package/osx/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then ./package/osx/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "cpp" ]]; then ./package/osx/travis-build-cpp.sh; fi branches: diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 5b06cd9f3..81b0b9012 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -7,6 +7,15 @@ set -euo pipefail # Adapted from script written by bubnikv for Prusa3D. # Run from slic3r repo root directory. +# While we might have a pp executable in our path, it might not be +# using the perl binary we have in path, so make sure they belong +# to the same Perl instance: +if !(perl -Mlocal::lib=local-lib -MPAR::Packer -e1 2> /dev/null); then + echo "The PAR::Packer module was not found; installing..." + cpanm --local-lib local-lib PAR::Packer + exit 1 +fi + WD=$(dirname $0) appname=Slic3r @@ -59,6 +68,7 @@ PkgInfoContents="APPL????" source $WD/plist.sh # Our slic3r dir and location of perl +eval $(perl -Mlocal::lib=local-lib) PERL_BIN=$(which perl) PP_BIN=$(which pp) SLIC3R_DIR=$(perl -MCwd=realpath -e "print realpath '${WD}/../../'") diff --git a/package/osx/travis-deploy-main.sh b/package/osx/travis-deploy-main.sh index 94df9482d..56c0c4977 100755 --- a/package/osx/travis-deploy-main.sh +++ b/package/osx/travis-deploy-main.sh @@ -1,4 +1,5 @@ #!/bin/bash set -euo pipefail -package/osx/make_dmg.sh foo +package/osx/make_dmg.sh +package/deploy/sftp.sh mac ~/slic3r-upload.rsa *.bz2 Slic3r*.dmg From 627e0f488a0f06cd538d1ae9ce9f5f61e440a0b7 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 18:17:35 +0100 Subject: [PATCH 16/35] Enable verbose output for cpanm Wx --- package/osx/travis-build-main.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 12c331480..fc8850791 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -7,5 +7,6 @@ brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local -perl ./Build.PL +#perl ./Build.PL +cpanm -v --local-lib local-lib Wx perl ./Build.PL --gui From 64d955fd37002600d5ef089ffd721de68d2979a9 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 18:35:48 +0100 Subject: [PATCH 17/35] Force reinstall of Alien::wxWidgets now that we are using the brew one --- package/osx/travis-build-main.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index fc8850791..cc965af6a 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -8,5 +8,6 @@ brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local #perl ./Build.PL -cpanm -v --local-lib local-lib Wx +cpanm -v --reinstall --local-lib local-lib Alien::wxwidgets +cpanm -v --reinstall --local-lib local-lib Wx perl ./Build.PL --gui From 7dc0e6dac62b64a6d47e70d7f439285c31b83add Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 19:04:46 +0100 Subject: [PATCH 18/35] Typo --- package/osx/travis-build-main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index cc965af6a..ebfbc7201 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -8,6 +8,6 @@ brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local #perl ./Build.PL -cpanm -v --reinstall --local-lib local-lib Alien::wxwidgets +cpanm -v --reinstall --local-lib local-lib Alien::wxWidgets cpanm -v --reinstall --local-lib local-lib Wx perl ./Build.PL --gui From 67021fb8f8d581ac46bef869ae2372070997e749 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 19:39:51 +0100 Subject: [PATCH 19/35] Fix Wx compilation on Travis --- package/osx/travis-build-main.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index ebfbc7201..204e859ca 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -8,6 +8,8 @@ brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local #perl ./Build.PL + +export LIBRARY_PATH=/usr/local/lib cpanm -v --reinstall --local-lib local-lib Alien::wxWidgets cpanm -v --reinstall --local-lib local-lib Wx perl ./Build.PL --gui From cd85ea0a117d75aac8968fb212b296971f891662 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 8 Nov 2018 20:28:32 +0100 Subject: [PATCH 20/35] Re-enable the full build on OS X and add a OS X 10.10 build --- .travis.yml | 12 +++++++++++- package/osx/make_dmg.sh | 1 - package/osx/travis-build-main.sh | 4 +--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4dcf7cc39..5cf610760 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,7 +72,17 @@ matrix: - package/linux/travis-deploy-cpp.sh - os: osx - osx_image: xcode9.4 + osx_image: xcode6.4 # OS X 10.10 + env: + - TARGET=main + cache: + directories: + - /usr/local/Homebrew + - $HOME/Library/Caches/Homebrew + - local-lib + + - os: osx + osx_image: xcode9.4 # OS X 10.13 env: - TARGET=main cache: diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 81b0b9012..61e3a5849 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -13,7 +13,6 @@ set -euo pipefail if !(perl -Mlocal::lib=local-lib -MPAR::Packer -e1 2> /dev/null); then echo "The PAR::Packer module was not found; installing..." cpanm --local-lib local-lib PAR::Packer - exit 1 fi WD=$(dirname $0) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 204e859ca..1dab2c14b 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -7,9 +7,7 @@ brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local -#perl ./Build.PL +perl ./Build.PL export LIBRARY_PATH=/usr/local/lib -cpanm -v --reinstall --local-lib local-lib Alien::wxWidgets -cpanm -v --reinstall --local-lib local-lib Wx perl ./Build.PL --gui From 7739cae3f3003e46a9b5bdf216ce1a8ee2f33d08 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 9 Nov 2018 02:10:01 +0100 Subject: [PATCH 21/35] Build 10.11 instead of 10.10; fix branch name detection; cache PAR::Packer --- .travis.yml | 2 +- package/osx/make_dmg.sh | 23 ++++++++++------------- package/osx/travis-build-main.sh | 3 +++ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5cf610760..168064470 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,7 +72,7 @@ matrix: - package/linux/travis-deploy-cpp.sh - os: osx - osx_image: xcode6.4 # OS X 10.10 + osx_image: xcode8 # OS X 10.11 env: - TARGET=main cache: diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 61e3a5849..9bdb86a66 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -25,18 +25,17 @@ if [ $(git describe --exact-match &>/dev/null) ]; then SLIC3R_BUILD_ID=$(git describe) else # Get the current branch - if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then - current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!') + if [ ! -z ${GIT_BRANCH+x} ]; then + echo "Setting to GIT_BRANCH" + current_branch=$(echo $GIT_BRANCH | cut -d / -f 2) + elif [ ! -z ${TRAVIS_BRANCH+x} ]; then + echo "Setting to TRAVIS_BRANCH" + current_branch=$TRAVIS_BRANCH + elif [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then + echo "Setting to APPVEYOR_REPO_BRANCH" + current_branch=$APPVEYOR_REPO_BRANCH else - current_branch="unknown" - if [ ! -z ${GIT_BRANCH+x} ]; then - echo "Setting to GIT_BRANCH" - current_branch=$(echo $GIT_BRANCH | cut -d / -f 2) - fi - if [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then - echo "Setting to APPVEYOR_REPO_BRANCH" - current_branch=$APPVEYOR_REPO_BRANCH - fi + current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!') fi if [ "$current_branch" == "master" ]; then @@ -53,8 +52,6 @@ fi dmgfile=slic3r-${SLIC3R_BUILD_ID}.dmg echo "DMG filename: ${dmgfile}" -# If we're on a branch, add the branch name to the app name. - rm -rf $WD/_tmp mkdir -p $WD/_tmp diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 1dab2c14b..8ca7e481c 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -11,3 +11,6 @@ perl ./Build.PL export LIBRARY_PATH=/usr/local/lib perl ./Build.PL --gui + +# Install PAR::Packer now so that it gets cached by Travis +cpanm --local-lib local-lib PAR::Packer From 3f155825e15c23d3d745a6052a1e20fd9324e790 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 9 Nov 2018 10:10:15 +0100 Subject: [PATCH 22/35] Do not fail if brew has an updated version of a package we already cached --- package/osx/travis-build-cpp.sh | 4 ++-- package/osx/travis-build-main.sh | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package/osx/travis-build-cpp.sh b/package/osx/travis-build-cpp.sh index 89d000fb7..ba43a1ebe 100755 --- a/package/osx/travis-build-cpp.sh +++ b/package/osx/travis-build-cpp.sh @@ -8,7 +8,7 @@ mkdir -p $CACHE ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& brew update -v -brew install ccache +brew upgrade ccache || brew install ccache if [[ "$WXVERSION" != "pkg" ]]; then WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1} @@ -26,7 +26,7 @@ if [[ "$WXVERSION" != "pkg" ]]; then export PATH=${PATH}:${WXDIR} cd $TRAVIS_BUILD_DIR # go back to the build dir else - brew install wxmac # install via homebrew + brew upgrade wxmac || brew install wxmac # install via homebrew fi mkdir build && cd build diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 8ca7e481c..b8b646d6c 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -2,7 +2,10 @@ set -euo pipefail brew update -v -brew install boost perl cpanminus wxwidgets +brew upgrade boost || brew install boost +brew upgrade perl || brew install perl +brew upgrade cpanminus || brew install cpanminus +brew upgrade wxwidgets || brew install wxwidgets brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 From dd4dfab2554b09ec7dfb1bca9230bcf170639074 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 9 Nov 2018 10:39:54 +0100 Subject: [PATCH 23/35] More tweaks for brew, Mac deploy and bootstrap compilation --- .travis.yml | 2 +- package/osx/travis-build-cpp.sh | 4 ++-- package/osx/travis-build-main.sh | 8 ++++---- package/osx/travis-deploy-main.sh | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 168064470..a138153b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ before_install: script: - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "main" ]]; then ./package/linux/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "cpp" ]]; then ./package/linux/travis-build-cpp.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then ./package/osx/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then travis_wait 60 ./package/osx/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "cpp" ]]; then ./package/osx/travis-build-cpp.sh; fi branches: diff --git a/package/osx/travis-build-cpp.sh b/package/osx/travis-build-cpp.sh index ba43a1ebe..078593aff 100755 --- a/package/osx/travis-build-cpp.sh +++ b/package/osx/travis-build-cpp.sh @@ -8,7 +8,7 @@ mkdir -p $CACHE ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& brew update -v -brew upgrade ccache || brew install ccache +brew install ccache || brew upgrade ccache if [[ "$WXVERSION" != "pkg" ]]; then WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1} @@ -26,7 +26,7 @@ if [[ "$WXVERSION" != "pkg" ]]; then export PATH=${PATH}:${WXDIR} cd $TRAVIS_BUILD_DIR # go back to the build dir else - brew upgrade wxmac || brew install wxmac # install via homebrew + brew install wxmac || brew upgrade wxmac # install via homebrew fi mkdir build && cd build diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index b8b646d6c..957732361 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -2,10 +2,10 @@ set -euo pipefail brew update -v -brew upgrade boost || brew install boost -brew upgrade perl || brew install perl -brew upgrade cpanminus || brew install cpanminus -brew upgrade wxwidgets || brew install wxwidgets +brew install boost || brew upgrade boost +brew install perl || brew upgrade perl +brew install cpanminus || brew upgrade cpanminus +brew install wxwidgets || brew upgrade wxwidgets brew link --overwrite perl cpanminus export SLIC3R_STATIC=1 diff --git a/package/osx/travis-deploy-main.sh b/package/osx/travis-deploy-main.sh index 56c0c4977..d73423dd4 100755 --- a/package/osx/travis-deploy-main.sh +++ b/package/osx/travis-deploy-main.sh @@ -2,4 +2,4 @@ set -euo pipefail package/osx/make_dmg.sh -package/deploy/sftp.sh mac ~/slic3r-upload.rsa *.bz2 Slic3r*.dmg +package/deploy/sftp.sh mac ~/slic3r-upload.rsa *.bz2 slic3r*.dmg From 28592cf1600a0a435021d2b2daa68a527c4ec395 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 9 Nov 2018 16:53:40 +0100 Subject: [PATCH 24/35] Try to compile on OSX 10.12 and fix Mac deployment --- .travis.yml | 5 +++-- package/deploy/sftp.sh | 2 +- package/linux/travis-deploy-main.sh | 2 +- package/osx/travis-deploy-main.sh | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index a138153b1..a75e619c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ before_install: script: - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "main" ]]; then ./package/linux/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "cpp" ]]; then ./package/linux/travis-build-cpp.sh; fi - - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then travis_wait 60 ./package/osx/travis-build-main.sh; fi + - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then ./package/osx/travis-build-main.sh; fi - if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "cpp" ]]; then ./package/osx/travis-build-cpp.sh; fi branches: @@ -72,7 +72,8 @@ matrix: - package/linux/travis-deploy-cpp.sh - os: osx - osx_image: xcode8 # OS X 10.11 + #osx_image: xcode8 # OS X 10.11 + osx_image: xcode9.2 # OS X 10.12 env: - TARGET=main cache: diff --git a/package/deploy/sftp.sh b/package/deploy/sftp.sh index 14ffa6aab..350b3db4d 100755 --- a/package/deploy/sftp.sh +++ b/package/deploy/sftp.sh @@ -18,7 +18,7 @@ fi if [ -s $KEY ]; then for i in $FILES; do - filepath=$(readlink -f "$i") + filepath=$i # this is expected to be an absolute path tmpfile=$(mktemp) echo put $filepath > $tmpfile sftp -b $tmpfile -i$KEY "${UPLOAD_USER}@dl.slic3r.org:$DIR/" diff --git a/package/linux/travis-deploy-main.sh b/package/linux/travis-deploy-main.sh index 3cbc85727..a57ec6010 100755 --- a/package/linux/travis-deploy-main.sh +++ b/package/linux/travis-deploy-main.sh @@ -8,6 +8,6 @@ LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 package/linux/appimage.sh x86_64 -package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage +package/deploy/sftp.sh linux ~/slic3r-upload.rsa `pwd`/*.bz2 `pwd`/Slic3r*.AppImage package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 diff --git a/package/osx/travis-deploy-main.sh b/package/osx/travis-deploy-main.sh index d73423dd4..7f6e509c3 100755 --- a/package/osx/travis-deploy-main.sh +++ b/package/osx/travis-deploy-main.sh @@ -2,4 +2,4 @@ set -euo pipefail package/osx/make_dmg.sh -package/deploy/sftp.sh mac ~/slic3r-upload.rsa *.bz2 slic3r*.dmg +package/deploy/sftp.sh mac ~/slic3r-upload.rsa `pwd`/slic3r*.dmg From 720414404612fe7f15bbe1b6f1352eb211d6f0e9 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 9 Nov 2018 19:07:11 +0100 Subject: [PATCH 25/35] Trigger build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a75e619c5..363bcc855 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,7 +72,7 @@ matrix: - package/linux/travis-deploy-cpp.sh - os: osx - #osx_image: xcode8 # OS X 10.11 + # osx_image: xcode8 # OS X 10.11 osx_image: xcode9.2 # OS X 10.12 env: - TARGET=main From b54dd265577cb7a0bbe9fa07360ef809ec012bd2 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 13:02:39 +0100 Subject: [PATCH 26/35] Fix OpenGL linking; fix dependencies on OSX 10.12 --- package/osx/travis-build-main.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index 957732361..ef4f73332 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -2,6 +2,11 @@ set -euo pipefail brew update -v + +# These two commands are only needed on 10.12: +rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask +brew uninstall --force postgis cgal sfcgal + brew install boost || brew upgrade boost brew install perl || brew upgrade perl brew install cpanminus || brew upgrade cpanminus @@ -12,7 +17,17 @@ export SLIC3R_STATIC=1 export BOOST_DIR=/usr/local perl ./Build.PL +# remove X11 because otherwise OpenGL.pm will link libglut.3.dylib instead of GLUT.framework +sudo rm -rf /opt/X11* +cpanm --local-lib local-lib --reinstall OpenGL # this updates the cache, remove it after one commit + export LIBRARY_PATH=/usr/local/lib + +# One Wx test fails on 10.12; seems harmless +if [ $TRAVIS_OSX_IMAGE == 'xcode9.2']; then + cpanm --local-lib local-lib -f Wx +fi + perl ./Build.PL --gui # Install PAR::Packer now so that it gets cached by Travis From 1f65f3caceced772b39180a0f696566bf46c7631 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 13:48:35 +0100 Subject: [PATCH 27/35] One more fix for homebrew on 10.12 --- package/osx/travis-build-main.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package/osx/travis-build-main.sh b/package/osx/travis-build-main.sh index ef4f73332..18049e315 100755 --- a/package/osx/travis-build-main.sh +++ b/package/osx/travis-build-main.sh @@ -1,12 +1,12 @@ #!/bin/bash set -euo pipefail -brew update -v - # These two commands are only needed on 10.12: rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask brew uninstall --force postgis cgal sfcgal +brew update -v + brew install boost || brew upgrade boost brew install perl || brew upgrade perl brew install cpanminus || brew upgrade cpanminus @@ -19,7 +19,6 @@ perl ./Build.PL # remove X11 because otherwise OpenGL.pm will link libglut.3.dylib instead of GLUT.framework sudo rm -rf /opt/X11* -cpanm --local-lib local-lib --reinstall OpenGL # this updates the cache, remove it after one commit export LIBRARY_PATH=/usr/local/lib From 60a9eb31259be0fdb11516488d1b5f3e2a285b4c Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 14:50:30 +0100 Subject: [PATCH 28/35] Make sure libperl.dylib gets packaged --- package/osx/make_dmg.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 9bdb86a66..44c314bd3 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -95,7 +95,7 @@ cp $SLIC3R_DIR/slic3r.pl $macosfolder/slic3r.pl cp -fRP $SLIC3R_DIR/local-lib $macosfolder/local-lib cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/ -echo "Relocating dylib paths..." +echo "Relocating Wx dylib paths..." for bundle in $(find $macosfolder/local-lib/lib/perl5/darwin-thread-multi-2level/auto/Wx -name '*.bundle') $(find $macosfolder/local-lib/lib/perl5/darwin-thread-multi-2level/Alien/wxWidgets -name '*.dylib' -type f); do chmod +w $bundle for dylib in $(otool -l $bundle | grep .dylib | grep local-lib | awk '{print $2}'); do @@ -108,8 +108,15 @@ cp -f $WD/startup_script.sh $macosfolder/$appname chmod +x $macosfolder/$appname echo "Copying perl from $PERL_BIN" -# Edit package/common/coreperl to add/remove core Perl modules added to this package, one per line. cp -f $PERL_BIN $macosfolder/perl-local +chmod +w $macosfolder/perl-local +for dylib in $(otool -l $macosfolder/perl-local | grep libperl.dylib | awk '{print $2}'); do + cp $dylib $macosfolder/ + install_name_tool -change "$dylib" "@executable_path/$(basename $dylib)" $macosfolder/perl-local +done + +echo "Copying core modules" +# Edit package/common/coreperl to add/remove core Perl modules added to this package, one per line. ${PP_BIN} \ -M $(grep -v "^#" ${WD}/../common/coreperl | xargs | awk 'BEGIN { OFS=" -M "}; {$1=$1; print $0}') \ -B -p -e "print 123" -o $WD/_tmp/bundle.par From 3430f6cc0ab25bf49eeb75ad8d2b153d00482a71 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 15:15:35 +0100 Subject: [PATCH 29/35] Add Getopt::Long to core Perl modules --- package/common/coreperl | 1 + 1 file changed, 1 insertion(+) diff --git a/package/common/coreperl b/package/common/coreperl index ac6effc2c..2077f6e3a 100644 --- a/package/common/coreperl +++ b/package/common/coreperl @@ -5,6 +5,7 @@ bytes B POSIX FindBin +Getopt::Long Unicode::Normalize Tie::Handle Time::Local From 942b6d6acd037b2590726af68413339ab6320081 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 16:05:45 +0100 Subject: [PATCH 30/35] Add Thread::Semaphore to core Perl modules --- package/common/coreperl | 1 + 1 file changed, 1 insertion(+) diff --git a/package/common/coreperl b/package/common/coreperl index 2077f6e3a..f69009654 100644 --- a/package/common/coreperl +++ b/package/common/coreperl @@ -9,6 +9,7 @@ Getopt::Long Unicode::Normalize Tie::Handle Time::Local +Thread::Semaphore Math::Trig IO::Socket Errno From 4c965be68649c86d11104dc68ade5bbc0cc28ea2 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 16:44:29 +0100 Subject: [PATCH 31/35] Add Time::HiRes to coreperl modules --- package/common/coreperl | 1 + 1 file changed, 1 insertion(+) diff --git a/package/common/coreperl b/package/common/coreperl index f69009654..ec1305420 100644 --- a/package/common/coreperl +++ b/package/common/coreperl @@ -8,6 +8,7 @@ FindBin Getopt::Long Unicode::Normalize Tie::Handle +Time::HiRes Time::Local Thread::Semaphore Math::Trig From f74b30dd5c6f6552c0a8ebb45a247403732f38f0 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 18:32:27 +0100 Subject: [PATCH 32/35] Improve dylib relocation; disable building on 10.12; add package/osx/_tmp to .gitignore --- .gitignore | 1 + .travis.yml | 22 ++++++++++++---------- package/osx/make_dmg.sh | 36 ++++++++++++++++++++++++++++-------- 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index cee8153dd..ec0236821 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ xs/assertlib* .init_bundle.ini local-lib package/osx/Slic3r*.app +package/osx/_tmp *.dmg *.swp *.swo diff --git a/.travis.yml b/.travis.yml index 363bcc855..fd1283e24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,16 +71,18 @@ matrix: after_success: - package/linux/travis-deploy-cpp.sh - - os: osx - # osx_image: xcode8 # OS X 10.11 - osx_image: xcode9.2 # OS X 10.12 - env: - - TARGET=main - cache: - directories: - - /usr/local/Homebrew - - $HOME/Library/Caches/Homebrew - - local-lib + # While this works, it does not appear to be needed as the 10.13 builds + # work on 10.12 as well. + # - os: osx + # # osx_image: xcode8 # OS X 10.11 + # osx_image: xcode9.2 # OS X 10.12 + # env: + # - TARGET=main + # cache: + # directories: + # - /usr/local/Homebrew + # - $HOME/Library/Caches/Homebrew + # - local-lib - os: osx osx_image: xcode9.4 # OS X 10.13 diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 44c314bd3..705a5428e 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -96,10 +96,12 @@ cp -fRP $SLIC3R_DIR/local-lib $macosfolder/local-lib cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/ echo "Relocating Wx dylib paths..." -for bundle in $(find $macosfolder/local-lib/lib/perl5/darwin-thread-multi-2level/auto/Wx -name '*.bundle') $(find $macosfolder/local-lib/lib/perl5/darwin-thread-multi-2level/Alien/wxWidgets -name '*.dylib' -type f); do +for bundle in $(find $macosfolder/local-lib/ \( -name '*.bundle' -or -name '*.dylib' \) -type f); do chmod +w $bundle - for dylib in $(otool -l $bundle | grep .dylib | grep local-lib | awk '{print $2}'); do - install_name_tool -change "$dylib" "@executable_path/local-lib/lib/perl5/darwin-thread-multi-2level/Alien/wxWidgets/osx_cocoa_3_0_2_uni/lib/$(basename $dylib)" $bundle + for dylib in $(otool -l $bundle | grep .dylib | grep -v /usr/lib | awk '{print $2}'); do + echo " relocating $dylib" + install_name_tool -change "$dylib" "@loader_path/$(basename $dylib)" $bundle + cp -n $dylib $(dirname $bundle) || true done done @@ -155,15 +157,33 @@ make_plist echo $PkgInfoContents >$appfolder/Contents/PkgInfo KEYCHAIN_FILE_=${KEYCHAIN_FILE:-} +KEYCHAIN_BASE64_=${KEYCHAIN_BASE64:-} +KEYCHAIN_PASSWORD_=${KEYCHAIN_PASSWORD:-travis} +KEYCHAIN_IDENTITY_=${KEYCHAIN_IDENTITY:-Developer ID Application: Alessandro Ranellucci (975MZ9YJL7)} + +# In case we were supplied a base64-encoded .p12 file instead of the path +# to an existing keychain, create a temporary one +if [[ -z "$KEYCHAIN_FILE_" && ! -z "$KEYCHAIN_BASE64_" ]]; then + KEYCHAIN_FILE_=$WD/_tmp/build.keychain + echo "Creating temporary keychain at ${KEYCHAIN_FILE_}" + echo "$KEYCHAIN_BASE64_" | base64 --decode > "${KEYCHAIN_FILE_}.p12" + rm -f "$KEYCHAIN_FILE_" + security delete-keychain "$KEYCHAIN_FILE_" + security create-keychain -p "${KEYCHAIN_PASSWORD_}" "$KEYCHAIN_FILE_" + security set-keychain-settings -t 3600 -u "$KEYCHAIN_FILE_" + security import "${KEYCHAIN_FILE_}.p12" -k "$KEYCHAIN_FILE_" -P "${KEYCHAIN_PASSWORD_}" -T /usr/bin/codesign + security set-key-partition-list -S apple-tool:,apple: -s -k "${KEYCHAIN_PASSWORD_}" "$KEYCHAIN_FILE_" +fi + if [ ! -z $KEYCHAIN_FILE_ ]; then echo "Signing app..." chmod -R +w $macosfolder/* security list-keychains -s "${KEYCHAIN_FILE_}" security default-keychain -s "${KEYCHAIN_FILE_}" - security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}" - codesign --sign "${KEYCHAIN_IDENTITY}" --deep "$appfolder" + security unlock-keychain -p "${KEYCHAIN_PASSWORD_}" "${KEYCHAIN_FILE_}" + codesign --sign "${KEYCHAIN_IDENTITY_}" --deep "$appfolder" else - echo "No KEYCHAIN_FILE env variable; skipping codesign" + echo "No KEYCHAIN_FILE or KEYCHAIN_BASE64 env variable; skipping codesign" fi echo "Creating dmg file...." @@ -177,8 +197,8 @@ if [ ! -z $KEYCHAIN_FILE_ ]; then chmod +w $dmgfile security list-keychains -s "${KEYCHAIN_FILE_}" security default-keychain -s "${KEYCHAIN_FILE_}" - security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}" - codesign --sign "${KEYCHAIN_IDENTITY}" "$dmgfile" + security unlock-keychain -p "${KEYCHAIN_PASSWORD_}" "${KEYCHAIN_FILE_}" + codesign --sign "${KEYCHAIN_IDENTITY_}" "$dmgfile" fi rm -rf $WD/_tmp From 936b83f3c7c7b03a8e6e0499cd22e74e199dee0a Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 20:17:40 +0100 Subject: [PATCH 33/35] Minor fix to codesigning --- package/osx/make_dmg.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 705a5428e..a80c5de30 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -167,8 +167,7 @@ if [[ -z "$KEYCHAIN_FILE_" && ! -z "$KEYCHAIN_BASE64_" ]]; then KEYCHAIN_FILE_=$WD/_tmp/build.keychain echo "Creating temporary keychain at ${KEYCHAIN_FILE_}" echo "$KEYCHAIN_BASE64_" | base64 --decode > "${KEYCHAIN_FILE_}.p12" - rm -f "$KEYCHAIN_FILE_" - security delete-keychain "$KEYCHAIN_FILE_" + security delete-keychain "$KEYCHAIN_FILE_" || true security create-keychain -p "${KEYCHAIN_PASSWORD_}" "$KEYCHAIN_FILE_" security set-keychain-settings -t 3600 -u "$KEYCHAIN_FILE_" security import "${KEYCHAIN_FILE_}.p12" -k "$KEYCHAIN_FILE_" -P "${KEYCHAIN_PASSWORD_}" -T /usr/bin/codesign From 72697ab2f8d9aa5a44c44423d883df05e9054aaa Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 20:33:00 +0100 Subject: [PATCH 34/35] Fix dylib relocation --- package/osx/make_dmg.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index a80c5de30..74f1806b1 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -96,13 +96,22 @@ cp -fRP $SLIC3R_DIR/local-lib $macosfolder/local-lib cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/ echo "Relocating Wx dylib paths..." -for bundle in $(find $macosfolder/local-lib/ \( -name '*.bundle' -or -name '*.dylib' \) -type f); do +mkdir $macosfolder/dylibs +function relocate_dylibs { + bundle=$1 chmod +w $bundle for dylib in $(otool -l $bundle | grep .dylib | grep -v /usr/lib | awk '{print $2}'); do - echo " relocating $dylib" - install_name_tool -change "$dylib" "@loader_path/$(basename $dylib)" $bundle - cp -n $dylib $(dirname $bundle) || true + dylib_dest="$macosfolder/dylibs/$(basename $dylib)" + if [ ! -e $dylib_dest ]; then + echo " relocating $dylib" + install_name_tool -change "$dylib" "@executable_path/dylibs/$(basename $dylib)" $bundle + cp $dylib $macosfolder/dylibs/ + relocate_dylibs $dylib_dest + fi done +} +for bundle in $(find $macosfolder/local-lib/ \( -name '*.bundle' -or -name '*.dylib' \) -type f); do + relocate_dylibs "$bundle" done echo "Copying startup script..." @@ -112,10 +121,7 @@ chmod +x $macosfolder/$appname echo "Copying perl from $PERL_BIN" cp -f $PERL_BIN $macosfolder/perl-local chmod +w $macosfolder/perl-local -for dylib in $(otool -l $macosfolder/perl-local | grep libperl.dylib | awk '{print $2}'); do - cp $dylib $macosfolder/ - install_name_tool -change "$dylib" "@executable_path/$(basename $dylib)" $macosfolder/perl-local -done +relocate_dylibs $macosfolder/perl-local echo "Copying core modules" # Edit package/common/coreperl to add/remove core Perl modules added to this package, one per line. From e3812db9ee2eceaf6853c616ca8c2db31eaf9211 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sat, 10 Nov 2018 21:08:55 +0100 Subject: [PATCH 35/35] More fixes to dylib relocation --- package/osx/make_dmg.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh index 74f1806b1..697861c2e 100755 --- a/package/osx/make_dmg.sh +++ b/package/osx/make_dmg.sh @@ -98,16 +98,17 @@ cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/ echo "Relocating Wx dylib paths..." mkdir $macosfolder/dylibs function relocate_dylibs { - bundle=$1 + local bundle=$1 chmod +w $bundle - for dylib in $(otool -l $bundle | grep .dylib | grep -v /usr/lib | awk '{print $2}'); do - dylib_dest="$macosfolder/dylibs/$(basename $dylib)" + local dylib + for dylib in $(otool -l $bundle | grep .dylib | grep -v /usr/lib | awk '{print $2}' | grep -v '^@'); do + local dylib_dest="$macosfolder/dylibs/$(basename $dylib)" if [ ! -e $dylib_dest ]; then echo " relocating $dylib" - install_name_tool -change "$dylib" "@executable_path/dylibs/$(basename $dylib)" $bundle cp $dylib $macosfolder/dylibs/ relocate_dylibs $dylib_dest fi + install_name_tool -change "$dylib" "@executable_path/dylibs/$(basename $dylib)" $bundle done } for bundle in $(find $macosfolder/local-lib/ \( -name '*.bundle' -or -name '*.dylib' \) -type f); do