name: mizar adopt-info: mizar summary: A TCP testing tool, useful and intuitive to use right out of the box. description: | Mizar is a TCP tester/debugger designed to be immediately useful and intuitive to use right out of the box. The purpose of Mizar is to help developers working on software that communicates over TCP protocol by speeding up debugging and testing from the earliest stages of development. base: core20 grade: stable confinement: strict architectures: - build-on: amd64 compression: lzo layout: /etc/nsswitch.conf: bind-file: $SNAP/etc/nsswitch.conf parts: mizar: plugin: dump source: . override-build: | snapcraftctl build ARCHITECTURE=$(dpkg --print-architecture) if [ "${ARCHITECTURE}" = "amd64" ]; then FILTER="amd64.deb" else echo "ERROR! Mizar only produces debs for amd64. Failing the build here." exit 1 fi # Get the latest releases json echo "Get GitHub releases..." wget --quiet https://api.github.com/repos/fabio286/mizar/releases/latest -O releases.json # Get the version from the tag_name and the download URL. VERSION=$(jq . releases.json | grep tag_name | cut -d'"' -f4 | sed s'/release-//') DEB_URL=$(cat releases.json | jq -r ".assets[] | select(.name | test(\"${FILTER}\")) | .browser_download_url") DEB=$(basename "${DEB_URL}") echo "Downloading ${DEB_URL}..." wget --quiet "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}" echo "Unpacking ${DEB}..." dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL} rm -f releases.json 2>/dev/null rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}" 2>/dev/null echo $VERSION > $SNAPCRAFT_STAGE/version # Correct path to icon. sed -i 's|Icon=mizar|Icon=/usr/share/icons/hicolor/256x256/apps/mizar\.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/mizar.desktop # Delete usr/bin/mizar, it's a broken symlink pointing outside the snap. rm -f ${SNAPCRAFT_PART_INSTALL}/usr/bin/mizar chmod -s ${SNAPCRAFT_PART_INSTALL}/opt/Mizar/chrome-sandbox snapcraftctl set-version "$(echo $VERSION)" build-packages: - dpkg - jq - sed - wget stage-packages: - fcitx-frontend-gtk3 - libappindicator3-1 - libasound2 - libcurl4 - libgconf-2-4 - libgtk-3-0 - libnotify4 - libnspr4 - libnss3 - libpcre3 - libpulse0 - libxss1 - libsecret-1-0 - libxtst6 - libxkbfile1 - gcc-10-base - libapparmor1 - libblkid1 - libbsd0 - libcom-err2 - libcrypt1 - libdb5.3 - libdbus-1-3 - libexpat1 - libffi7 - libgcc-s1 - libgcrypt20 - libglib2.0-0 - libgmp10 - libgnutls30 - libgpg-error0 - libgssapi-krb5-2 - libhogweed5 - libidn2-0 - libjson-c4 - libk5crypto3 - libkeyutils1 - libkrb5-3 - libkrb5support0 - liblz4-1 - liblzma5 - libmount1 - libnettle7 - libp11-kit0 - libpcre2-8-0 - libselinux1 - libsqlite3-0 - libssl1.1 - libstdc++6 - libsystemd0 - libtasn1-6 - libudev1 - libunistring2 - libuuid1 - libwrap0 - libzstd1 - zlib1g - libx11-xcb1 - libdrm2 - libgbm1 - libxcb-dri3-0 cleanup: after: [mizar] plugin: nil build-snaps: [gnome-3-38-2004] override-prime: | set -eux cd /snap/gnome-3-38-2004/current find . -type f,l -exec rm -f $SNAPCRAFT_PRIME/{} \; mdns-lookup: # Make resolution of ".local" host names (Zero-Conf/mDNS/DNS-SD) # working: Take the original nsswitch.conf file from the base # Snap and add "mdns4_minimal [NOTFOUND=return]" to its "hosts:" line # Also install corresponding mdns4_minimal plug-in # See: https://forum.snapcraft.io/t/no-mdns-support-in-snaps-should-core-have-a-modified-nsswitch-conf/ plugin: nil stage-packages: - libnss-mdns override-prime: | set -eux sed -Ee 's/^\s*hosts:(\s+)files/hosts:\1files mdns4_minimal \[NOTFOUND=return\]/' /snap/core20/current/etc/nsswitch.conf > $SNAPCRAFT_STAGE/etc/nsswitch.conf snapcraftctl prime prime: - lib/$SNAPCRAFT_ARCH_TRIPLET/libnss_mdns4_minimal* - etc/nsswitch.conf apps: mizar: command: opt/Mizar/mizar --no-sandbox desktop: usr/share/applications/mizar.desktop extensions: [gnome-3-38] environment: # Fallback to XWayland if running in a Wayland session. DISABLE_WAYLAND: 1 plugs: - browser-support - cups-control - home - network - opengl - pulseaudio - removable-media - unity7