ZapZap - Whatsapp Desktop para Linux

Bom dia,

Putz, eu lí rápido e na minha cabeça ficou “Costa”, desculpe aí.
Rapaz, ontem fui fazer uma coisa aqui e não falei com linguem do meu Whatsapp, depois fiquei com um sono da peste e acabei nem testando.
Hoje quando chegar em casa vou ver

@rafatosta , mano, acho que tá não. Eu escrevi português errado pra ver e não apareceu nada:

image

O empacotador do PyQt do Arch deixou pacotes de fora. Complicado… :sob::sweat_smile:

Esse é um dos motivos apenas para suportar pelo Flatpak, cada distro com uma forma de empacotar as dependências é complicado.
O Flatpak simplesmente pega literalmente do repositório oficial o PyQt e disponibiliza. Não sei qual o motivo desses pacotes não fazerem o mesmo.

Fala sobre isso lá na AUR e indica que o pacote PyQt6-WebEngine quem fornece os dicionários para o corretor. E reza para que o cara faça algo. Caso contrário usa o Flatpak e seja feliz! :grin:

Até hoje espero esses pacotes virem para o Fedora para criar um RPM zapzap, mas enquanto isso pelo Flatpak não há problemas.

1 curtida

Blz, vou fazer isso ae

Achei o problema. O pacote do Arch está pegando do pypi, que é um repositório de pacotes do python.
O pacote do pypi também está faltando os arquivos dos dicionários.

Por isso a importância de baixar diretamente da fonte ao invés de pegar de empacotamento se terceiros.

Quais arquivos e quais dicionarios?
Me interessei em resolver.
Quais bibliotecas precisa?

Esse é o repositório fornecido pelo Flatpak com.riverbankcomputing.PyQt.BaseApp

Mais precisamente essa dependência pyqt-webengine

Não sei como funciona esse empacotamento e construção, mas talvez a substituição dos pacotes e modo de construção possa funcionar. Sei que pode tentar essa construção localmente a partir do arquivo PKGBUILD ou enviar essa sugestão para o empacotador responsável.

Mano acho que seria interessante ter um discord ou qualquer canal de comunicação do projeto para quem quiser colaborar e tirar dúvidas. Esse tópico vai acabar sendo infinito HAHAHAHA!

Pensei que o tópico é justamente pra isso. Dúvidas e colaboração.
Enfim, esse é o canal de comunicação para discutirmos. Não há lugar melhor para falar do ZapZap, logo não vou criar nenhum outro.

2 curtidas

Olha, eu desinstalei o zapzap (AUR) e instalei o zapzap-git (AUR).
Na compillação, notei 2 mensatens, que não se se pra você é importante:

“Dependências Opcionais”:

Não sei se um destes pacotes funcionariam para o dicionário funcionar.

Dependências opcionais para python-pyqt6
    qt6-tools: QtHelp, QtDesigner bindings
    qt6-svg: QtSvg bindings [instalado]
    qt6-declarative: QtQml bindings, qmlplugin [instalado]
    qt6-quick3d: QtQuick3D bindings
    qt6-connectivity: QtBluetooth, QtNfc bindings
    qt6-multimedia: QtMultimedia bindings
    qt6-positioning: QtPositioning bindings [pendente]
    qt6-remoteobjects: QtRemoteObjects bindings
    qt6-sensors: QtSensors bindings
    qt6-serialport: QtSerialPort bindings
    qt6-speech: QtTextToSpeech bindings
    qt6-webchannel: QtWebChannel bindings [pendente]
    qt6-webengine: QtPdf bindings [pendente]
    qt6-websockets: QtWebSockets bindings
    dbus-python: for python-dbus mainloop support [instalado]
(3/7) instalando qt6-webchannel                                                                                    [####################################################################] 100%
(4/7) instalando qt6-positioning                                                                                   [####################################################################] 100%
Dependências opcionais para qt6-positioning
    qt6-declarative: QML bindings [instalado]
    qt6-serialport: NMEA plugin
(5/7) instalando re2                                                                                               [####################################################################] 100%
(6/7) instalando qt6-webengine                                                                                     [####################################################################] 100%
Dependências opcionais para qt6-webengine
    pipewire: WebRTC desktop sharing under Wayland [instalado]

Tem uma outra mensagem, talvez seja somente um aviso, pois o aplicativo é traduzido normalmente, então não sei se é importante:

 check.warn(importable)
/usr/lib/python3.10/site-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'zapzap.po.pt_BR.LC_MESSAGES' as data is deprecated, please list it in `packages`.
    !!


    ############################
    # Package would be ignored #
    ############################
    Python recognizes 'zapzap.po.pt_BR.LC_MESSAGES' as an importable package,
    but it is not listed in the `packages` configuration of setuptools.

    'zapzap.po.pt_BR.LC_MESSAGES' has been automatically added to the distribution only
    because it may contain data files, but this behavior is likely to change
    in future versions of setuptools (and therefore is considered deprecated).

    Please make sure that 'zapzap.po.pt_BR.LC_MESSAGES' is included as a package by using
    the `packages` configuration field or the proper discovery methods
    (for example by using `find_namespace_packages(...)`/`find_namespace:`
    instead of `find_packages(...)`/`find:`).

    You can read more about "package discovery" and "data files" on setuptools
    documentation page.


!!

Pelo que eu ví, um pacote puxa o outro e é instalado vários pacotes python:

pacman -Qs python
local/boost-libs 1.80.0-2
    Free peer-reviewed portable C++ source libraries (runtime libraries)
local/cython 0.29.32-2
    C-Extensions for Python
local/dbus-python 1.2.18-3
    Python bindings for DBUS
local/imath 3.1.5-3
    A C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics
local/libvirt-python 1:8.8.0-1
    libvirt python binding
local/python 3.10.8-2
    Next generation of the python high-level scripting language
local/python-appdirs 1.4.4-7
    A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".
local/python-autocommand 2.2.1-1
    A library to create a command-line program from a function
local/python-build 0.8.0-2
    A simple, correct PEP 517 build frontend
local/python-cairo 1.21.0-1
    Python bindings for the cairo graphics library
local/python-chardet 5.0.0-1
    Python3 module for character encoding auto-detection
local/python-distro 1.7.0-1
    Linux OS platform information API
local/python-evdev 1.6.0-1
    Python bindings for the Linux input subsystem
local/python-gobject 3.42.2-1
    Python Bindings for GLib/GObject/GIO/GTK+
local/python-idna 3.4-1
    Internationalized Domain Names in Applications (IDNA)
local/python-inflect 6.0.0-1
    Correctly generate plurals, singular nouns, ordinals, indefinite articles
local/python-installer 0.5.1-1
    Low-level library for installing a Python package from a wheel distribution
local/python-jaraco.context 4.1.2-1
    Context managers by jaraco
local/python-jaraco.functools 3.5.2-1
    Functools like those found in stdlib
local/python-jaraco.text 3.9.1-1
    Module for text manipulation
local/python-lxml 4.9.1-1
    Python3 binding for the libxml2 and libxslt libraries
local/python-more-itertools 8.14.0-1
    More routines for operating on iterables, beyond itertools
local/python-ordered-set 4.1.0-1
    A MutableSet that remembers its order, so that every entry has an index
local/python-packaging 21.3-1
    Core utilities for Python packages
local/python-pep517 0.13.0-1
    Wrappers to build Python packages using PEP 517 hooks
local/python-pillow 9.2.0-1
    Python Imaging Library (PIL) fork.
local/python-pydantic 1.10.2-1
    Data parsing and validation using Python type hints
local/python-pyparsing 3.0.9-1
    General parsing module for Python
local/python-pyqt6 6.4.0-1 (pyqt6)
    A set of Python bindings for the Qt6 toolkit
local/python-pyqt6-sip 13.4.0-1
    The sip module support for PyQt6
local/python-pyqt6-webengine 6.4.0-1 (pyqt6)
    Python bindings for QtWebEngine
local/python-requests 2.28.1-1
    Python HTTP for Humans
local/python-setuptools 1:63.4.2-1
    Easily download, build, install, upgrade, and uninstall Python packages
local/python-tomli 2.0.1-1
    A lil' TOML parser
local/python-trove-classifiers 2022.9.26-1
    Canonical source for classifiers on PyPI (pypi.org)
local/python-typing_extensions 4.3.0-1
    Backported and Experimental Type Hints for Python 3.7+
local/python-urllib3 1.26.12-1
    HTTP library with thread-safe connection pooling and file post support
local/python-validate-pyproject 0.10.1-1
    Validation library and CLI tool for checking on 'pyproject.toml' files using JSON Schema
local/python-wheel 0.37.1-1
    A built-package format for Python
local/python-yaml 6.0-1
    Python bindings for YAML, using fast libYAML library
local/reflector 2021.11-5
    A Python 3 module and script to retrieve and filter the latest Pacman mirror list.
local/scons 4.4.0-1
    Extensible Python-based build utility

Não entendi o motivo dele ter colocado essas dependências todas, pois apenas o PyQt já tem tudo o que precisa.
Uma coisa eu tenho certeza, o empacotamento está de qualquer jeito!

Até o próprio empacotamento do Arch do PyQt está com problemas. Não vi reclamações do página do pacote, então é sinal que quase ninguém use o PyQt6-webengine.

O do Fedora eu estou tentando junto com o o empacotador pra não ter essas falhas e ter realmente todos os arquivos e pacotes do fornecedor oficial.

Já usei Arch por um dia (não aguentei por causa da demora para instalar algo). O que reparei foi que a maioria dos pacotes da AUR não seguem o princípio da distro, instalar apenas o necessário. Não sei se por culpa do empacotamento do Arch ou por falta de conhecimento de quem criou o PKGBUILD.

Até o momento ninguém reclamou sobre isso no github. Ainda bem, porque não é problema meu e o cara não parece entender muito do assunto. Mas acredito que quase ninguém usa pelo AUR.

Meu conselho é usar pelo Flatpak e deixar seja lá qual for o pré-conceito ou filosofia de lado e usar o sistema para ser produtivo e fazer algo de útil.

Vai economizar dores de cabeça com certeza :laughing:

2 curtidas

Pelo que vi são pseudo dependências, o cara colocou somente aqueles pacotes que tá escrito na informação do aplicativo.
Aí é aquele esquema, o sistema vê que tal pacote x precisa de tal pacote y e instala.

Eu avisei ele lá no AUR, agora é com ele… Hahaha

Vou continuar usando, pois ficou muito melhor usar o Whatsapp assim e deixar o navegador livre.
E de quebra eu acho que tá muito melhor que o original.
Se é bom, eu uso como se não houvesse o amanhã… (Poético :nerd_face:)

1 curtida

Concordo, é realmente muito melhor do que usar pelo navegador. Foi por isso que criei hehehe

2 curtidas


Rapaz, empacado aqui, não sai dessa dela.
Se bem q aqui não é o lugar ideal pra tratar do assunto

Se tornou um essencial na minha lista de “Pos Instalação”

2 curtidas

@rafatosta Já considerou um port no Snap? Sei que não é bem quisto esse empacotamento, mas é também um dos mais utilizados…

Já tentei, perdi muito tempo e não consegui.
O problema é gastar tempo sem algum retorno, nem que seja para um café, garantido.

Nem relógio trabalha de graça kkkkkkkk

Alguém colocou o ZapZap no AUR. Achei bacana até eu instalar pra testar. Tava tão bugado e instável que hoje deixo claro que não resolvo problema fora do flatpak. Há quem não goste do flatpak, mas para manter é muito bom por não se preocupar com as diversas distros (e merdas que os usuários fazem no sistema e que pode impactar diretamente ou indiretamente).

5 curtidas

Rafa, uma dúvida: como você faz para evitar o problema que, se não todos, a maioria de clients third party do whatsapp para linux apresenta? O famigerado " WhatsApp works with Chrome 60+"


Você mantém o electron sempre no mais atualizado possível ou utiliza outro tipo de abordagem?
Qual abordagem você usa para contornar?

1 curtida

Esse problema raramente acontece, mas acontece. Não consegui contornar 100%.
Para “contornar” eu forço a leitura do cache.

Esse não é um aplicativo em Electron!!

1 curtida

Concordo…
Citei do Snap por o Ubuntu estar tão relutante e dificultando tanto a adesão ao Flatpak (meu preferido), mas acabou que fiz o mais certo, troquei de distro (hahaha).