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 426 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