UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    flare - need help - package did not install

    Scheduled Pinned Locked Moved Other Projects
    3 Posts 1 Posters 484 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      ds2k5
      last edited by

      Using Linux Mint 22.2 amd64

      wanna get flare on ubuntu touch
      was able to build a package but can not install it

      here is what I did:

      git clone https://gitlab.com/schmiddi-on-mobile/flare

      modify and files

      sudo apt-get install librust-gsk4-sys-dev
      sudo apt-get install protobuf-compiler
      sudo apt-get install librust-libadwaita-sys-dev
      sudo apt-get install librust-libadwaita-sys-de
      sudo apt-get install librust-libadwaita-sys-dev
      sudo apt install pkg-config libgtksourceview-5-dev
      sudo apt install pkg-config libadwaita-1-dev

      sudo apt-get install libxml2-utils
      sudo apt install python3-pip

      pip3 install --user clickable-ut pip3 install --user clickable-ut

      sudo apt install -y
      meson ninja-build cargo rustc
      libgtk-4-dev libadwaita-1-dev
      libglib2.0-dev libsqlite3-dev
      libssl-dev libdbus-1-dev
      gettext blueprint-compiler
      pkg-config

      ./build-click-package.sh armhf

      ./build-click-package.sh arm64

      ./build-click-package.sh aarch64

      Copy to device

      scp build/armhf/*.click phablet@device-ip:~/

      SSH to device and install

      ssh phablet@device-ip
      pkcon install-local --allow-untrusted *.click

      example:

      pkcon install-local --allow-untrusted flare.schmidhuberj_0.17.2_arm64.click

      at this point the install hang

      4c0a1d3b-b488-4b13-bb10-9f06dfd840b1-image.png

      here is the hole folder as zip

      https://gitlab.com/-/project/37464215/uploads/e1d86ce5da7c42508c1fee6e007d7a83/flare.tar.gz

      D 1 Reply Last reply Reply Quote 0
      • D Offline
        ds2k5 @ds2k5
        last edited by

        I could cross-build now before it was amd64 insted of aarch64

        but did not start because lib: libgtksourceview-5.so.0 missing

        D 1 Reply Last reply Reply Quote 0
        • CiberSheepC CiberSheep moved this topic from General on
        • D Offline
          ds2k5 @ds2k5
          last edited by ds2k5

          could compile it
          installed it

          but when run direct on the smartphone it hang

          if login ssh -CY phablet@10.42.0.1

          and run then, gut the GUI

          Dockerfile

          FROM ubuntu:24.04
          
          ENV DEBIAN_FRONTEND=noninteractive
          
          # First, update and install basic tools
          RUN apt-get update && apt-get install -y \
              curl \
              ca-certificates \
              && rm -rf /var/lib/apt/lists/*
          
          # Configure repositories properly
          RUN rm /etc/apt/sources.list.d/ubuntu.sources && \
              echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" > /etc/apt/sources.list && \
              echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
              echo "deb [arch=amd64] http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list && \
              echo "" >> /etc/apt/sources.list && \
              echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble main restricted universe multiverse" >> /etc/apt/sources.list && \
              echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
              echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list
          
          # Enable arm64 architecture
          RUN dpkg --add-architecture arm64
          
          # Update and install dependencies
          RUN apt-get update && apt-get install -y \
              build-essential \
              crossbuild-essential-arm64 \
              git \
              meson \
              ninja-build \
              pkg-config \
              blueprint-compiler \
              desktop-file-utils \
              gobject-introspection \
              libgirepository1.0-dev \
              gir1.2-gtk-4.0 \
              gir1.2-adw-1 \
              gir1.2-gtksource-5 \
              libglib2.0-bin \
              libglib2.0-dev \
              protobuf-compiler \
              libglib2.0-dev:arm64 \
              libgtk-4-dev:arm64 \
              libadwaita-1-dev:arm64 \
              libpango1.0-dev:arm64 \
              libgdk-pixbuf-2.0-dev:arm64 \
              libcairo2-dev:arm64 \
              libgtksourceview-5-dev:arm64 \
              gettext \
              python3-pip \
              && rm -rf /var/lib/apt/lists/*
          
          # Fix: Replace ARM64 glib-compile-schemas with wrapper to native version
          RUN if [ -f /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas ]; then \
                  mv /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas \
                     /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas.arm64 && \
                  echo '#!/bin/bash\nexec /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas "$@"' \
                  > /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas && \
                  chmod +x /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas; \
              fi
          
          
          # Add this near the end of your Dockerfile, before WORKDIR
          RUN pip3 install --break-system-packages clickable-ut
          
          # Install Rust
          RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
          ENV PATH="/root/.cargo/bin:${PATH}"
          
          # Add aarch64 Rust target
          RUN rustup target add aarch64-unknown-linux-gnu
          
          # Configure Cargo
          RUN mkdir -p /root/.cargo && \
              echo '[target.aarch64-unknown-linux-gnu]' >> /root/.cargo/config.toml && \
              echo 'linker = "aarch64-linux-gnu-gcc"' >> /root/.cargo/config.toml
          
          # Set pkg-config paths for Cargo
          ENV PKG_CONFIG_SYSROOT_DIR=/
          ENV PKG_CONFIG_PATH=
          ENV PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig
          ENV PKG_CONFIG_ALLOW_CROSS=1
          
          # CRITICAL: Force Cargo to build for aarch64
          ENV CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu
          
          # Create simpler cargo wrapper
          RUN mv /root/.cargo/bin/cargo /root/.cargo/bin/cargo-real && \
              cat > /root/.cargo/bin/cargo << 'EOFWRAPPER'
          #!/bin/bash
          case "$1" in
              build)
                  if [[ "$*" != *"--target"* ]]; then
                      /root/.cargo/bin/cargo-real "$@" --target aarch64-unknown-linux-gnu
                      result=$?
                      if [ $result -eq 0 ] && [ -n "$CARGO_TARGET_DIR" ] && [ -f "$CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/flare" ]; then
                          mkdir -p "$CARGO_TARGET_DIR/release"
                          cp "$CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/flare" "$CARGO_TARGET_DIR/release/flare"
                      fi
                      exit $result
                  fi
                  ;;
          esac
          exec /root/.cargo/bin/cargo-real "$@"
          EOFWRAPPER
          
          RUN chmod +x /root/.cargo/bin/cargo
          
          # Create pkg-config wrapper
          RUN echo '#!/bin/bash\n\
          export PKG_CONFIG_PATH=\n\
          export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig\n\
          export PKG_CONFIG_SYSROOT_DIR=/\n\
          exec pkg-config "$@"' > /usr/local/bin/aarch64-linux-gnu-pkg-config && \
              chmod +x /usr/local/bin/aarch64-linux-gnu-pkg-config
          
          WORKDIR /build
          

          aarch64-cross.txt

          [binaries]
          c = 'aarch64-linux-gnu-gcc'
          cpp = 'aarch64-linux-gnu-g++'
          ar = 'aarch64-linux-gnu-ar'
          strip = 'aarch64-linux-gnu-strip'
          pkg-config = 'aarch64-linux-gnu-pkg-config'
          rust = ['rustc', '--target', 'aarch64-unknown-linux-gnu']
          
          [properties]
          sys_root = '/usr/aarch64-linux-gnu'
          
          [built-in options]
          pkg_config_path = '/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig'
          
          [host_machine]
          system = 'linux'
          cpu_family = 'aarch64'
          cpu = 'aarch64'
          endian = 'little'
          
          [build_machine]
          system = 'linux'
          cpu_family = 'x86_64'
          cpu = 'x86_64'
          endian = 'little'
          

          docker build -t flare-builder .

          [docker run --rm -v $(pwd):/build flare-builder bash -c "
          # Install clickable in the container
          pip3 install clickable-ut

          # Build the click package
          cd /build
          clickable build --arch arm64
          clickable click-build --arch arm64
          

          "

          docker run --rm -v $(pwd):/build flare-builder bash -c "
          cd /build

          apt-get update && apt-get install -y click patchelf
          
          rm -rf click-package
          mkdir -p click-package/usr/bin
          mkdir -p click-package/lib/aarch64-linux-gnu
          
          # Copy binary
          cp builddir/src/flare click-package/usr/bin/flare-bin
          chmod +x click-package/usr/bin/flare-bin
          
          # Explicitly copy ALL required GTK4/Libadwaita libraries
          echo 'Copying libraries explicitly...'
          
          # Copy each library with all its versions
          cp -v /usr/lib/aarch64-linux-gnu/libgtksourceview-5.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgtksourceview-5 not found'
          cp -v /usr/lib/aarch64-linux-gnu/libgtk-4.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgtk-4 not found'
          cp -v /usr/lib/aarch64-linux-gnu/libadwaita-1.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libadwaita-1 not found'
          cp -v /usr/lib/aarch64-linux-gnu/libgraphene-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgraphene not found'
          cp -v /usr/lib/aarch64-linux-gnu/libpangocairo-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libpango-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libharfbuzz.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libcairo-gobject.so.2* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libcairo.so.2* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libvulkan.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libgio-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libgobject-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libfribidi.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libfontconfig.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libfreetype.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libpixman-1.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libpng16.so.16* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libxcb.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libxcb-render.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libxcb-shm.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libX11.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libXrender.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libXext.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libwayland-client.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libwayland-cursor.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libwayland-egl.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          cp -v /usr/lib/aarch64-linux-gnu/libepoxy.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true
          
          # Set RPATH
          patchelf --set-rpath '\$ORIGIN/../../lib/aarch64-linux-gnu' click-package/usr/bin/flare-bin
          
          # Create wrapper
          cat > click-package/usr/bin/flare << 'WRAPPER'
          

          #!/bin/bash
          SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
          APP_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"

          export LD_LIBRARY_PATH="$APP_ROOT/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH"
          export QT_QPA_PLATFORM=ubuntumirclient
          export MIR_SOCKET="${MIR_SOCKET:-/run/user/$(id -u)/mir_socket}"

          if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
          export $(dbus-launch)
          fi

          exec "$SCRIPT_DIR/flare-bin" "$@"
          WRAPPER

          chmod +x click-package/usr/bin/flare
          
          # Copy icon
          find data -name '*Flare*.svg' -exec cp {} click-package/flare.svg \; -quit
          
          # Create desktop file
          cat > click-package/flare.desktop << 'DESKTOP'
          

          [Desktop Entry]
          Name=Flare
          Comment=Signal messaging client
          Exec=usr/bin/flare
          Icon=flare.svg
          Terminal=false
          Type=Application
          Categories=Network;InstantMessaging;
          X-Ubuntu-Touch=true
          DESKTOP

          # Create manifest
          cat > click-package/manifest.json << 'MANIFEST'
          

          {
          "name": "flare.dennisschweiger",
          "title": "Flare",
          "version": "0.18.6",
          "maintainer": "Dennis Schweiger dennis@example.com",
          "architecture": "arm64",
          "description": "Signal messaging client",
          "framework": "ubuntu-sdk-20.04",
          "hooks": {
          "flare": {
          "apparmor": "flare.apparmor",
          "desktop": "flare.desktop"
          }
          }
          }
          MANIFEST

          # Create apparmor
          cat > click-package/flare.apparmor << 'APPARMOR'
          

          {
          "template": "unconfined",
          "policy_groups": [
          "networking",
          "audio"
          ]
          }
          APPARMOR](link url)

          cd click-package
          
          ```
          

          echo ''
          echo '=== Bundled libraries (first 30) ==='
          ls -lah lib/aarch64-linux-gnu/ | head -30
          echo ''
          echo 'Total library files:'
          ls -1 lib/aarch64-linux-gnu/ | wc -l
          echo ''
          echo 'Verifying libgtksourceview-5:'
          ls -la lib/aarch64-linux-gnu/libgtksourceview* || echo 'NOT FOUND!'

          # Build
          click build . --no-validate
          
          mv *.click ../
          cd ..
          
          echo ''
          echo '=== Package created ==='
          ls -lh *.click
          

          "

          
          sudo click unregister --user=phablet flare.dennisschweiger 2>/dev/null || true
          sudo click install --user=phablet --allow-unauthenticated /home/phablet/flare.dennisschweiger_0.18.6_arm64
          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • First post
            Last post