makedeb


fluffychat-bin 1.24.0-0


Cute and easy to use matrix messenger. Secure and decentralized.

Viewing /PKGBUILD.

View raw.

Click here to go back to the Git tree for fluffychat-bin.

# Maintainer: exponential <echo ZXhwb25lbnRpYWxtYXRyaXhAcHJvdG9ubWFpbC5jb20K | base64 -d>
# Contributor: The one with the braid (AUR) <the-one@with-the-braid.cf>

_pkgname=fluffychat
pkgname="${_pkgname}-bin"
pkgver="1.24.0"
_gccmajorver="14"
_libcmajorver="6"
_libstdmajorver="6"
_gccver="14.2.0-16"
_libcver="2.40-6"
_glibver="2.82.4-2"
_libmountver="2.40.4-2"
pkgrel=0
pkgdesc="Cute and easy to use matrix messenger. Secure and decentralized."
arch=('amd64')
url="https://fluffychat.im/"
license=('AGPL3')
makedepends=('patchelf')
depends=('libgtk-3-0' 'libjsoncpp25' 'libsecret-1-0' 'libolm3' 'xdg-user-dirs' 'zenity')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
#https://packages.debian.org/sid/amd64/libc6/download
#https://packages.debian.org/sid/amd64/libstdc++6/download
#https://packages.debian.org/sid/amd64/libglib2.0-0t64/download
#https://packages.debian.org/sid/amd64/libmount1/download
source=("fluffychat-${pkgver}.tar.gz::https://github.com/krille-chan/fluffychat/releases/download/v${pkgver}/fluffychat-linux-x64.tar.gz"
        "http://deb.debian.org/debian/pool/main/g/glibc/libc${_libcmajorver}_${_libcver}_amd64.deb"
        "http://deb.debian.org/debian/pool/main/g/gcc-${_gccmajorver}/libstdc++${_libstdmajorver}_${_gccver}_amd64.deb"
        "http://deb.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0t64_${_glibver}_amd64.deb"  
        "http://deb.debian.org/debian/pool/main/u/util-linux/libmount1_${_libmountver}_amd64.deb")
noextract=("${_pkgname}-${pkgver}.tar.gz"
           "libc${_libcmajorver}_${_libcver}_amd64.deb"
           "libstdc++${_libstdmajorver}_${_gccver}_amd64.deb"
           "libglib2.0-0t64_${_glibver}_amd64.deb"
           "libmount1_${_libmountver}_amd64.deb")
sha256sums=('5508ce1bdb5e4fbe6df87d6b32a81ac45921e3c0868110104c8a2bf49f06dc48'
            'd5933305f97b5b32f6a35a8751ee34f1f4f181f7e5aff4eb42b6247c27b20d45'
            '000031e81ed322cf5e1a9c85b86efea7fef5b58ad32ef18a644dd8981d209b58'
            '25b661ac4e42d38b5af3ce4909397630a15b3d76869aeb8d67e2e9bf33970b10'
            '72d1dd25b28a2306e16b6c408bb2e221832a9ac5ae589a41a8628f5ae5aa6ae4')

prepare() {
  cd "${srcdir}"
  # extract archive
  mkdir -p "${_pkgname}-${pkgver}"
  bsdtar -xf "${_pkgname}-${pkgver}.tar.gz" -C "${_pkgname}-${pkgver}"
  # extract debs
  dpkg-deb -x "libc${_libcmajorver}_${_libcver}_amd64.deb" "libc${_libcmajorver}_${_libcver}_amd64"
  dpkg-deb -x "libstdc++${_libstdmajorver}_${_gccver}_amd64.deb" "libstdc++${_libstdmajorver}_${_gccver}_amd64"
  dpkg-deb -x "libglib2.0-0t64_${_glibver}_amd64.deb" "libglib2.0-0t64_${_glibver}_amd64"
  dpkg-deb -x "libmount1_${_libmountver}_amd64.deb" "libmount1_${_libmountver}_amd64"
  # set to bundled dynamic linker
  patchelf --set-interpreter /usr/lib/${_pkgname}/ld-linux-x86-64.so.2 "${_pkgname}-${pkgver}/${_pkgname}"
}

package() {  
  cd "${srcdir}/${_pkgname}-${pkgver}"
  # creating directories
  install -dm755 ${pkgdir}/usr/{bin,lib,libexec/${_pkgname},share/{pixmaps,applications,doc/${_pkgname}}}
  # install
  install -m755 "${srcdir}/${_pkgname}-${pkgver}/${_pkgname}" "${pkgdir}/usr/libexec/${_pkgname}/"
  cp -r "${srcdir}/${_pkgname}-${pkgver}/data" "${pkgdir}/usr/share/${_pkgname}"
  cp -r "${srcdir}/${_pkgname}-${pkgver}/lib" "${pkgdir}/usr/lib/${_pkgname}"
  # extra libs
  cp -ra ../"libc${_libcmajorver}_${_libcver}_amd64/usr/lib/x86_64-linux-gnu/"* "${pkgdir}/usr/lib/${_pkgname}"
  cp -ra ../"libstdc++${_libstdmajorver}_${_gccver}_amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6"* "${pkgdir}/usr/lib/${_pkgname}"
  cp -ra ../"libglib2.0-0t64_${_glibver}_amd64/usr/lib/x86_64-linux-gnu/"* "${pkgdir}/usr/lib/${_pkgname}"
  cp -ra ../"libmount1_${_libmountver}_amd64/usr/lib/x86_64-linux-gnu/"* "${pkgdir}/usr/lib/${_pkgname}"
  # linking
#  ln -s /usr/libexec/${_pkgname}/${_pkgname} ${pkgdir}/usr/bin/${_pkgname}
  ln -s /usr/share/${_pkgname} ${pkgdir}/usr/libexec/${_pkgname}/data
  ln -s /usr/lib/${_pkgname} ${pkgdir}/usr/libexec/${_pkgname}/lib
  ln -s /usr/share/${_pkgname}/flutter_assets/assets/favicon.png ${pkgdir}/usr/share/pixmaps/${_pkgname}.png
  ln -s /usr/share/${_pkgname}/flutter_assets/NOTICES.Z ${pkgdir}/usr/share/doc/${_pkgname}/NOTICES.Z
  # wrapper
  echo '#!/bin/sh

set -eu

export LD_PRELOAD="/usr/lib/fluffychat/libmount.so.1"

exec /usr/libexec/fluffychat/fluffychat "$@"' > "$pkgdir/usr/bin/${_pkgname}"
  chmod 755 "$pkgdir/usr/bin/${_pkgname}"

  # desktop entry
  cat > ${pkgdir}/usr/share/applications/${_pkgname}.desktop << EOF
[Desktop Entry]
Type=Application
Version=${pkgver}
Name=FluffyChat
Comment=Cute and easy to use (matrix) messenger. Secure and decentralized.
Exec=${_pkgname}
Icon=${_pkgname}
Terminal=false
StartupNotify=false
Categories=Network;InstantMessaging;Chat;
EOF
}

# vim: set sw=2 ts=2 et: