Skip to content
Snippets Groups Projects
snapcraft-template.yaml 3.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kali Kaneko's avatar
    Kali Kaneko committed
    name: ${binaryName}
    version: ${version}
    summary: ${applicationName}, secure VPN. Powered by Bitmask.
    description: |
    
      ${applicationName} is an easy, fast, and secure VPN service from ${providerURL}.
      ${applicationName} does not require a user account, keep logs, or track you in
    
      any way. The service is paid for entirely by donations from users like you.
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    grade: stable
    confinement: classic
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    icon: snap/gui/icon.svg 
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
    parts:
    
    
      bitmask-root:
        plugin: dump
        source: helpers
        source-type: local
        override-prime: |
          mkdir -p bin
          cp $SNAPCRAFT_PART_SRC/bitmask-root bin/
          chmod +x bin/bitmask-root
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
    
      openvpn:
        plugin: nil
        stage-packages: [openvpn]
        prime:
          - -usr/share/doc
          - -usr/share/man
    
      bitmask-vpn:
        plugin: nil
        source: .
        source-type: local
        stage:
            - bin/${binaryName}
        override-build: |
    
            # TODO - this still has some round corners for vendoring.
            # Maybe we just need to put the providers.json in the VENDOR_PATH
            # and pass it to gui/providers from some path that snap can access.
            # Same for the vendor.qrc
    
            mkdir -p $SNAPCRAFT_PART_INSTALL/snap/
            mkdir -p $SNAPCRAFT_PRIME/snap/
            echo ${version} > $SNAPCRAFT_PRIME/snap/version.txt
    
            make build_golib
            QT_SELECT=5 XBUILD=no TARGET=${binaryName} make build_gui
    
            mkdir -p $SNAPCRAFT_PART_INSTALL/bin
    
            mv build/qt/release/${binaryName} $SNAPCRAFT_PART_INSTALL/bin/
    
        override-prime: |
          rm -rf $SNAPCRAFT_PROJECT_DIR/snap/hooks/.mypy_cache
          snapcraftctl prime
        build-packages:
          - pkg-config
          - g++
          - golang
          - git
          - make
          - qt5-qmake
          - qttools5-dev-tools
          - qtdeclarative5-dev
        stage-packages:  # for some reason they're not picked from here - duplicating in desktop-qt5.
          - libqt5qml5
          - libqt5quick5
          - qml-module-qtquick-controls
          - qml-module-qtquick-dialogs
          - qml-module-qtquick-extras
          - qml-module-qt-labs-qmlmodels
          - qml-module-qt-labs-platform
        after: [desktop-qt5]
    
      desktop-qt5:
        source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
        source-subdir: qt
        plugin: make
        make-parameters: ["FLAVOR=qt5"]
        build-packages:
          - build-essential
          - qtbase5-dev
          - dpkg-dev
        stage-packages:
          - libxkbcommon0
          - ttf-ubuntu-font-family
          - dmz-cursor-theme
          - light-themes
          - adwaita-icon-theme
          - gnome-themes-standard
          - shared-mime-info
          - locales-all
          - xdg-user-dirs
          - fcitx-frontend-qt5
          - libxcb1
          - libqt5gui5
          - libgdk-pixbuf2.0-0
          - libqt5svg5
          - libqt5qml5
          - libqt5quick5
          - qml-module-qtquick2
          - qml-module-qtquick-controls
          - qml-module-qtquick-dialogs
          - qml-module-qtquick-extras
          - qml-module-qt-labs-platform
          - qml-module-qt-labs-qmlmodels
          - try: [appmenu-qt5] # not available on core18
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    apps:
    
    
      bitmask-root:
        command: bin/bitmask-root
    
      openvpn:
        command: usr/sbin/openvpn
        environment:
          LD_LIBRARY_PATH: &library-path
              $SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET
    
      launcher:
        command: bin/${binaryName}
        environment:
          QT_PLUGIN_PATH: &path
            $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/plugins:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/qml
          LD_LIBRARY_PATH:
            $SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$LD_LIBRARY_PATH
          QML2_IMPORT_PATH:
            $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/qml
          # debug -------------
          #QT_DEBUG_PLUGINS: 1
          SNAP_DESKTOP_DEBUG: 1
          # debug -------------