diff --git a/.travis/Brewfile b/.github/workflows/Brewfile similarity index 100% rename from .travis/Brewfile rename to .github/workflows/Brewfile diff --git a/.github/workflows/macOS.yml b/.github/workflows/macOS.yml index 59a5cb4d..6a62882d 100644 --- a/.github/workflows/macOS.yml +++ b/.github/workflows/macOS.yml @@ -13,7 +13,7 @@ jobs: - name: Install dependencies from hombrew run: | brew upgrade - brew bundle --file=./.travis/Brewfile + brew bundle --file=./.github/workflows/Brewfile brew link qt -f - name: Build custom Python as a framework diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6cf2e047..00000000 --- a/.travis.yml +++ /dev/null @@ -1,73 +0,0 @@ -# .travis.yml - -# Building, testing and deployment on OS X and Linux - -# Reference: https://docs.travis-ci.com/user/customizing-the-build - -language: cpp -sudo: required - -os: - - osx - - linux - -osx_image: xcode10.2 - -services: - - docker - -install: - - | - if [[ "$TRAVIS_OS_NAME" == "osx" ]] - then - ./.travis/build-macos - fi - -script: - - | - if [[ "$TRAVIS_OS_NAME" == "linux" ]] - then - docker build -t xenial-deb -f docker/xenial-deb/Dockerfile . - docker build -t xenial-appimage -f docker/xenial-appimage/Dockerfile . - fi - -after_success: - - mkdir deploy/ - # Extract all user facing strings and create a textfile with them for deployment. - - lupdate yubioath-desktop.pro -ts yubioath-desktop.ts - - cp yubioath-desktop.ts deploy/yubioath-desktop-$TRAVIS_BRANCH-strings.xml - - | - if [[ "$TRAVIS_OS_NAME" == "osx" ]] - then - # Rename app bundle - mv yubioath-desktop.app Yubico\ Authenticator.app - # Copy .app to deploy dir - tar -czf yubioath-desktop-$TRAVIS_BRANCH.app.tar.gz Yubico\ Authenticator.app - mv yubioath-desktop-$TRAVIS_BRANCH.app.tar.gz deploy - fi - - | - if [[ "$TRAVIS_OS_NAME" == "linux" ]] - then - id=$(docker create xenial-deb) - docker start --attach $id - docker cp $id:/yubioath-desktop-debian-packages.tar.gz deploy/yubioath-desktop-$TRAVIS_BRANCH-deb.tar.gz - id=$(docker create --privileged xenial-appimage) - docker start --attach $id - docker cp $id:/yubioath-desktop/Yubico_Authenticator-x86_64.AppImage deploy/yubioath-desktop-$TRAVIS_BRANCH.AppImage - - git archive --format=tar.gz -o yubioath-desktop-$TRAVIS_BRANCH.tar.gz --prefix yubioath-desktop/ $TRAVIS_BRANCH - mv yubioath-desktop-$TRAVIS_BRANCH.tar.gz deploy - fi - -deploy: - provider: s3 - access_key_id: "$AWS_KEY_ID" - secret_access_key: "$AWS_SECRET_KEY" - bucket: "$AWS_BUCKET" - skip_cleanup: true - acl: public-read - region: eu-west-1 - local-dir: "deploy/" - upload-dir: "yubioath-desktop" - on: - all_branches: true diff --git a/.travis/build-macos b/.travis/build-macos deleted file mode 100755 index c81c9078..00000000 --- a/.travis/build-macos +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash - -# Builds a deployable yubioath-desktop on macOS Mojave. -# Assumes hombrew and xcode installed. -# Uses pyenv to build a python as a framework, but -# compiles pyotherside against homebrew python. -# Make sure the versions match. - - -rm -rf ~/.pyenv -rm -rf lib -rm -rf yubioath-desktop.app - -PYVERSION="3.6.7" -PYOTHERSIDEVERSION="1.5.3" - -# Workaround for compiling python on mojave -# https://github.com/pyenv/pyenv/issues/1219 -sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / -CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" - -# Get python 3.6.4 from homebrew, workaround for https://github.com/pyenv/pyenv/issues/1066 (can't use 3.7 yet) -brew uninstall python --ignore-dependencies -brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/10cdf659af8c56c629fba94347b25346d0770875/Formula/python.rb -brew link --overwrite python - - -# Install and upgrade brew dependencies -brew install swig ykpers libyubikey libusb qt pyenv wget zlib openssl@1.1 -brew upgrade swig ykpers libyubikey libusb qt pyenv wget zlib openssl@1.1 -brew link qt -f - -# Download, build and install pyotherside qml plugin -wget https://github.com/thp/pyotherside/archive/$PYOTHERSIDEVERSION.tar.gz -P ./lib -cd lib -tar -xzvf $PYOTHERSIDEVERSION.tar.gz -echo "DEFINES += QT_NO_DEBUG_OUTPUT" >> pyotherside-$PYOTHERSIDEVERSION/src/src.pro -cd pyotherside-$PYOTHERSIDEVERSION -qmake -make -sudo make install -cd ../.. - -# Build custom Python from pyenv with --enable-framework and activate it -eval "$(pyenv init -)" -env PYTHON_CONFIGURE_OPTS="--enable-framework CC=clang" pyenv install $PYVERSION -f -pyenv global $PYVERSION - -# Build yubioath-desktop -make distclean -qmake -make -macdeployqt yubioath-desktop.app/ -qmldir=qml/ - -# Copy over dylibs from homebrew -sudo find /usr/local/Cellar/json-c/ -name '*.dylib' -exec cp '{}' yubioath-desktop.app/Contents/Frameworks/ ';' -sudo find /usr/local/Cellar/ykpers/ -name '*.dylib' -exec cp '{}' yubioath-desktop.app/Contents/Frameworks/ ';' -sudo find /usr/local/Cellar/libyubikey/ -name '*.dylib' -exec cp '{}' yubioath-desktop.app/Contents/Frameworks/ ';' -sudo find /usr/local/Cellar/libusb/ -name '*.dylib' -exec cp '{}' yubioath-desktop.app/Contents/Frameworks/ ';' -sudo find /usr/local/Cellar/openssl@1.1/ -name '*.dylib' -exec cp '{}' yubioath-desktop.app/Contents/Frameworks/ ';' - -# Copy over Python.framework -cp -a ~/.pyenv/versions/$PYVERSION/Python.framework yubioath-desktop.app/Contents/Frameworks/ -sudo find yubioath-desktop.app/Contents/Frameworks/Python.framework -name '*.pyc' -delete -sudo find yubioath-desktop.app/Contents/Frameworks/Python.framework -name '__pycache__' -delete - -# Move pymodules from app bundle to site-packages, to be accepted by codesign -mv yubioath-desktop.app/Contents/MacOS/pymodules/* yubioath-desktop.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ -rm -rf yubioath-desktop.app/Contents/MacOS/pymodules - -# Point pyotherside to relative custom Python, currently points to homebrew python -sudo install_name_tool -change /usr/local/opt/python/Frameworks/Python.framework/Versions/3.6/Python @executable_path/../Frameworks/Python.framework/Versions/3.6/Python yubioath-desktop.app/Contents/PlugIns/quick/libpyothersideplugin.dylib - -# Fix linking for python and openssl .so's -sudo install_name_tool -change /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib @executable_path/../Frameworks/libcrypto.1.1.dylib yubioath-desktop.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_ssl.cpython-36m-darwin.so -sudo install_name_tool -change /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib @executable_path/../Frameworks/libssl.1.1.dylib yubioath-desktop.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_ssl.cpython-36m-darwin.so -sudo install_name_tool -change /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib @executable_path/../Frameworks/libcrypto.1.1.dylib yubioath-desktop.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_hashlib.cpython-36m-darwin.so -sudo install_name_tool -change /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib @executable_path/../Frameworks/libssl.1.1.dylib yubioath-desktop.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_hashlib.cpython-36m-darwin.so -sudo install_name_tool -change /usr/local/Cellar/openssl@1.1/1.1.1c/lib/libcrypto.1.1.dylib @executable_path/../Frameworks/libcrypto.1.1.dylib yubioath-desktop.app/Contents/Frameworks/libssl.1.1.dylib - -# Fix linking to dependencies for libykpers -sudo install_name_tool -change /usr/local/opt/libyubikey/lib/libyubikey.0.dylib @executable_path/../Frameworks/libyubikey.0.dylib yubioath-desktop.app/Contents/Frameworks/libykpers-1.1.dylib -sudo install_name_tool -change /usr/local/opt/libyubikey/lib/libyubikey.0.dylib @executable_path/../Frameworks/libyubikey.0.dylib yubioath-desktop.app/Contents/Frameworks/libykpers-1.dylib -sudo install_name_tool -change /usr/local/opt/json-c/lib/libjson-c.4.dylib @executable_path/../Frameworks/libjson-c.4.dylib yubioath-desktop.app/Contents/Frameworks/libykpers-1.1.dylib -sudo install_name_tool -change /usr/local/opt/json-c/lib/libjson-c.4.dylib @executable_path/../Frameworks/libjson-c.4.dylib yubioath-desktop.app/Contents/Frameworks/libykpers-1.dylib diff --git a/README b/README index 92ce1533..21589515 100644 --- a/README +++ b/README @@ -1,5 +1,4 @@ == Yubico Authenticator -image:https://travis-ci.org/Yubico/yubioath-desktop.svg?branch=master["Build Status", link="https://travis-ci.org/Yubico/yubioath-desktop"] image:https://ci.appveyor.com/api/projects/status/tddss2exet3ysypt?svg=true["Appveyor Status", link="https://ci.appveyor.com/project/Yubico53275/yubioath-desktop-xfr6h/"] Cross-platform application for generating Open Authentication (OATH) time-based TOTP and event-based HOTP one-time password codes, with the help of a YubiKey that protects the shared secrets. diff --git a/docker/xenial-deb/Dockerfile b/docker/xenial-deb/Dockerfile deleted file mode 100644 index 34d02679..00000000 --- a/docker/xenial-deb/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM ubuntu:xenial -RUN apt-get update -qq -RUN apt-get install -qq software-properties-common -RUN add-apt-repository -y ppa:yubico/stable -RUN apt-get -qq update && apt-get -qq upgrade && apt-get install -y git devscripts equivs python3-dev python3-pip -COPY . yubioath-desktop -RUN yes | mk-build-deps -i /yubioath-desktop/debian/control -RUN cd yubioath-desktop && debuild -us -uc -RUN mkdir /deb && mv /yubioath-desktop_* /deb -RUN cd / && tar czf yubioath-desktop-debian-packages.tar.gz deb -RUN git clone https://github.com/Yubico/yubikey-manager -RUN yes | mk-build-deps -i /yubikey-manager/debian/control -RUN cd yubikey-manager && debuild -us -uc -RUN mv /yubikey-manager_* /python3-yubikey-manager_* /python-yubikey-manager_* /deb