Closed eduardomozart closed 2 years ago
Tudo na paz! Pelo erro QStandardPaths: wrong permissions on runtime directory /run/user/1000, 0755 instead of 0700 chuto que é algo relacionado as permissões de usuário. Verifica no flatseal como está as permissões para acessar as pastas de usuário, por favor
É só pelo Deepin Launcher que não funciona, correto?
Achei esse problema parecido com o Telegram e o Deepin https://github.com/telegramdesktop/tdesktop/issues/24569
Pelo que vi no código-fonte do Qt, essa mensagem de permissão é apenas um aviso e não deveria impedir a execução do programa - https://invent.kde.org/packaging/flatpak-kde-runtime/-/merge_requests/44/diffs Devido ao não abrir pelo Deepin Launcher, decidi executar ele pelo Terminal. Ele não abre nem pelo Deepin Launcher nem pelo Terminal. Em ambos não chega nem a exibir a janela do programa. Acho que o erro pode estar relacionado as duas mensagens de erro no final da execução:
3:11:0801/212131.316644:ERROR:object_proxy.cc(642)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/Flatpak: org.freedesktop.DBus.Error.InvalidArgs: Nenhuma propriedade “supports”
Eduardo@Eduardo-PC:~$ [10:10:0100/000000.431688:ERROR:zygote_linux.cc(650)] write: Pipe quebrado (32)
Pelo que vi no código-fonte do Qt, essa mensagem de permissão é apenas um aviso e não deveria impedir a execução do programa - https://invent.kde.org/packaging/flatpak-kde-runtime/-/merge_requests/44/diffs Devido ao não abrir pelo Deepin Launcher, decidi executar ele pelo Terminal. Ele não abre nem pelo Deepin Launcher nem pelo Terminal. Em ambos não chega nem a exibir a janela do programa. Acho que o erro pode estar relacionado as duas mensagens de erro no final da execução:
3:11:0801/212131.316644:ERROR:object_proxy.cc(642)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/Flatpak: org.freedesktop.DBus.Error.InvalidArgs: Nenhuma propriedade “supports” Eduardo@Eduardo-PC:~$ [10:10:0100/000000.431688:ERROR:zygote_linux.cc(650)] write: Pipe quebrado (32)
Muito estranho. Já tentou remover e instalar novamente?
Já, mas o problema persiste. Vou tentar baixar as dependências pelo Pip e executar direto pelo código-fonte. Seria interessante disponibilizar seu app como um pacote pip
também, já que permitiria executar o app de forma nativa em plataformas que suportam o Python ao invés de depender do Flatpak, possivelmente tornando o app multiplataforma, já que o pip
está disponível para Windows e outros sistemas operacionais também. Seria interessante ter uma alternativa para o WhatsApp Web no Windows 7 e Windows 8 que não possuem cliente do WhatsApp nativos.
Seria o ideal, mas uso muita coisa que é exclusivo do linux como a troca de temas e notificações. Enfim, não é difícil "instalar" esse app no sistema. Bastaria:
pip install setup.py --user
/home/seu_user/.local/share/applications/
/home/seu_user/.local/share/icons/hicolor/scalable/apps/
Só terá um problema, a correção ortográfica não funcionará.
Outro problema é que não uso Windows mais e como há muita coisa específica da plataforma seria muito complicado dar suporte (lembre-se que faço isso no meu "tempo livre"). O flatpak proporciona essa compatibilidade com a maioria das distribuições e isso facilita bastante. Muitos dos problemas que aparecem, assim como o seu, é bem isolado e, na maioria das vezes, não consigo reproduzir aqui.
Se você puder mandar o link de download da distro que você usa ficaria mais fácil reproduzir aqui e tentar lançar uma correção.
Sim, eu entendo. Sem problemas. =) Normalmente eu usava o WhatsChrome no Windows 7.
Tentei executar o comando pip install setup.py --user
aqui mas recebi o erro:
Eduardo@Eduardo-PC:~/Documents/GitHub/zapzap$ pip install setup.py --user
Collecting setup.py
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/setup-py/
Não sei se essa URL é apontada no próprio código-fonte ou se o PIP está tentando baixar o setup-py
da Internet. Estou vendo se consigo instalar o setup-py
de outra forma.
O Deepin 20.6 pode ser baixado à partir da seguinte URL: https://www.deepin.org/en/download/
Acho que foi erro meu. Tenta "python setup.py install --user"
Sim, eu entendo. Sem problemas. =) Normalmente eu usava o WhatsChrome no Windows 7. Tentei executar o comando
pip install setup.py --user
aqui mas recebi o erro:Eduardo@Eduardo-PC:~/Documents/GitHub/zapzap$ pip install setup.py --user Collecting setup.py Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/setup-py/
Não sei se essa URL é apontada no próprio código-fonte ou se o PIP está tentando baixar o
setup-py
da Internet. Estou vendo se consigo instalar osetup-py
de outra forma.O Deepin 20.6 pode ser baixado à partir da seguinte URL: https://www.deepin.org/en/download/
Amanhã vou instalar essa distro e fazer alguns testes.
Se a instalação funcionar, basta digitar 'zapzap' no terminal que o app é executado!
Consegui instalar pelo Python/Pip!
Eis os comandos que executei para instalar após baixar o repositório pelo git:
python3 -m pip install pip setuptools --upgrade
python3 setup.py install --user
pip3 install PyQt6 PyQt6-WebEngine
O zapzap
será instalado no diretório $HOME/.local/bin
. Para executá-lo:
cd $HOME/.local/bin
./zapzap
Seria interessante atualizar o README para usar pip3
ao invés de pip
e sobre a necessidade de atualizar o setup.py
que acompanha a distro para a versão do repositório do Pip. Distribuições estáveis (como o Debian), diferente de Distros mais modernas, ainda acompanham o Python 2.7 por padrão. Então a única forma de executar o Python3 é informando a versão diretamente.
Coloquei a versão do python logo acima, mas vou ajustar essa parte. Obrigado.
Se jogar apenas zapzap no terminal tem que funcionar também.
Tá funcionando ok? Lembrando que a correção ortográfica não irá funcionar, agora o resto acho que funciona perfeitamente.
Para instalar o atalho no Deepin Launcher (menu iniciar) do Deepin, navegue até o diretório git onde você baixou o zapzap
e execute os comandos:
cp share/applications/com.rtosta.zapzap.desktop ~/.local/share/applications
cp share/icons/com.rtosta.zapzap.svg ~/.local/share/icons
Você precisará editar o arquivo ~/.local/share/applications/com.rtosta.zapzap.desktop
e informar o caminho completo para o executável do ZapZap, caso contrário, o atalho não será exibido no Deepin Launcher. Altere Exec=zapzap
para Exec=/home/Eduardo/.local/bin/zapzap
(substitua /home/Eduardo
pelo seu diretório $HOME
).
Para executar o zapzap
sem precisar executar pelo caminho completo (apenas executando o comando zapzap
no Terminal), adicione o diretório ~/.local/bin
a variável $PATH
adicionando a seguinte linha ao final do arquivo ~/.bashrc
:
export PATH="$HOME/.local/bin:$PATH"
Instalei o Deepin através do Fedora Everything e roda perfeitamente através do flatpak. Os únicos problemas são:
Note que o seletor de arquivo aberto pelo ZapZap segue o tema aplicado do sistema.
Realmente as notificações não funcionam como deveriam e, mais uma vez, acredito que seja a forma que o Deepin trabalha com elas. O ZapZap usa o python-dbus e a interface org.freedesktop.Notification, que parece não ser um padrão da DE.
Concluo que todos os problemas enfrentados por você está na distribuição que usa e não no Flatpak ou ZapZap.
Sim, eu também acredito que seja problema na distro subjacente (Debian) ao invés do Flatpak ou ZapZap. Talvez seja corrigido na versão 20.7 ou na versão 23 do Deepin, que vai passar a usar o Debian 11. Mas as notificações pelo jeito não funcionaram nem no Flatpak quando o DDE é usado, o que indica que pode se tratar de um bug ou limitação do ambiente gráfico (DDE). Vou averiguar essa informação analisando o código-fonte do ZapZap e caso não consiga fazer a imagem aparecer, vou abrir um Bug Report na distro. Conseguiria um print da notificação como ela deveria aparecer? Pode ser no seu ambiente mesmo (Ubuntu, etc.), só para que eu possa encaminhar ao fazer o Bug Report, já que provavelmente não vou conseguir fazer ela aparecer como deveria no DDE.
No ambiente Gnome aparecem dessa forma:
Notificação flutuante:
Bandeja do sistema:
Ao clicar, independente de aonde esteja, é redirecionado para o aplicativo. O Plasma possui o mesmo comportamento.
Legal! Obrigado pelos prints, Rafa! Vou tentar futricar no código-fonte do ZapZap e comparar com o código-fonte das notificações de aplicativos que exibem o ícone normalmente no DDE e tentar fazer funcionar por aqui (talvez seja uma limitação do formato, tamanho ou cores da imagem) e confirmando a limitação ou se não conseguir fazer aparecer, vou abrir um Bug Report na Distro. De qualquer forma, como funciona em outras Distros, creio eu que não seja um bug no ZapZap em si e sim uma limitação do DDE. Obrigado pelo retorno!
E aí Rafa, vim atualizar essa Issue com um HowTo de como fazer o Debian 10 rodar o ZapZap via Flatpak XD Acredito que o erro na execução do ZapZap no Debian esteja ocorrendo devido a sandbox que o Debian 10 cria usando o setuid/bubblewrap. Como os próprios desenvolvedores do Debian comentaram (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977841), outras distros não impõe o mesmo nível de segurança/restrições de sandbox que o Debian e provavelmente na versão do Debian 11 a Bubblewrap vai ser mitigada, assim como ocorre em outras distros, como Ubuntu e Fedora/RHEL.
Antes de atualizar o Flatpak, talvez a atualização do Flatpak para a versão Backports não seja necessária, talvez basta apenas desativar o Bubblewrap (https://github.com/flathub/org.chromium.Chromium/issues/31):
sudo echo 'kernel.unprivileged_userns_clone=1' >> /usr/lib/sysctl.d/50-bubblewrap.conf
sudo sysctl -p
sudo bash -c 'chmod -s $(which bwrap)'
sudo bash -c 'dpkg-statoverride --add --update root root 0755 $(which bwrap)'
Reinicie o sistema e tente executar o ZapZap novamente. Caso o erro persista, instale a versão do Flatpak disponível no Buster-Backports.
sudo echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list.d/debian-buster-backports.list
sudo apt-get update && sudo apt install -y flatpak/buster-backports
Eu suspeito que o problema estivesse relacionado a sandbox do Debian porque ao executar o ZapZap sem desabilitar o setuid/bubblewrap antes a seguinte mensagem de erro era exibida ao executar o ZapZap via Terminal:
$ flatpak -v run com.rtosta.zapzap
<<<Ommited output>>>
[3:11:0803/200328.287225:FATAL:flatpak_sandbox.cc(290)] Your Flatpak installation is setuid, which is not supported
Após desabilitar o setuid/bubblewrap, o ZapZap iniciou normalmente.
Havia aberto com você a Issue https://github.com/rafatosta/zapzap/issues/84 referente as notificações, então decidi instalar o dbus-python através do Pip. Não recebi nenhuma mensagem para testar se após a instalação/atualização da interface DBus o problema da Issue https://github.com/rafatosta/zapzap/issues/84 foi corrigido, mas de qualquer forma, como o dbus-python
é uma dependência do ZapZap, vou mantê-la instalada.
Para instalar o dbus-python 1.2.18 no Debian 10 (https://stackoverflow.com/questions/61285415/no-package-dbus-1-found):
sudo apt install build-essential libdbus-glib-1-dev libgirepository1.0-dev
sudo apt install build-essential libpython3-dev libdbus-1-dev
python3 -m pip install dbus-python
Porém, no meu caso, talvez devido a versão do Flatpak ser a Backports, o ícone do ZapZap não é exibido na Dock. Os Devs do Telegram (https://github.com/telegramdesktop/tdesktop/issues/24046#issuecomment-1034147197) acreditam que isso esteja ocorrendo devido ao Qt criar o arquivo de ícone em /run/user/1000 e o Flatpak não compartilhar esse diretório com o host. Talvez esse problema esteja relacionado a Issue https://github.com/rafatosta/zapzap/issues/84, já que se as imagens dos contatos também são salvas nesse diretório, pode explicar o porquê do Deepin falhar ao carregá-las e fazer fallback para o ícone padrão do sistema ao invés de exibir a imagem dos contatos nas notificações.
De qualquer forma, por estar usando o Flatpak na versão Backports, sei que dificilmente vou obter qualquer suporte da distro do Deepin. Também acredito que nas próximas versões do Deepin (principalmente a versão 23, que será baseado no Debian 11), caso esses problemas estejam relacionados a sandbox e/ou versão desatualizada/incompatível do Flatpak, deverão ser corrigidos automaticamente e sequer vou precisar usar a versão Backports do Flatpak.
Mas como uma solução de contorno para deixar o ícone bonitinho na Dock até sair a versão estável do Deepin 20.7 ou Deepin 23, já que não encontrei uma solução definitiva para o problema na Internet, apenas outros usuários que encontraram problemas similares com o Flatpak/Snap em diferentes distros, encontrei uma solução de contorno no AskUbuntu, que é modificar o ícone genérico no Dock pelo ícone do ZapZap através do xseticon
.
A primeira coisa que você precisa fazer é compilar o xseticon
, já que não há arquivos binários para versões recentes do Debian. Também é possível executar ele através do Snap, mas você precisará instalar o pacote selinux-utils
e desabilitar o SELINUX (https://github.com/PowerShell/PowerShell/issues/9252#issuecomment-486954264) para o xseticon
funcionar. Então é mais rápido e seguro compilar o xseticon
à partir do código-fonte. As instruções de compilação e instalação estão disponíveis em https://github.com/xeyownt/xseticon
Infelizmente, o xseticon
suporta apenas ícones em formato PNG. Como o ZapZap utiliza um ícone SVG escalável, precisamos convertê-lo para PNG para usá-lo em conjunto com o xseticon
. Para isso, certifique-se de possuir o pacote librsvg2-bin
instalado no seu sistema (https://stackoverflow.com/a/32573821) e execute o seguinte comando no Terminal para converter o ícone do ZapZap para todos os tamanhos de ícones PNG padrões do Flatpak:
for i in 16 24 32 64 128 256 512; do
rsvg-convert -w $i -h $i $HOME/.local/share/flatpak/exports/share/icons/hicolor/scalable/apps/com.rtosta.zapzap.svg \
-o $HOME/.local/share/flatpak/exports/share/icons/hicolor/${i}x${i}/apps/com.rtosta.zapzap.png
done
Agora, basta abrir o ZapZap e executar o seguinte comando para executar o xseticon
e realizar a substituição do ícone (substitua /home/Eduardo
pelo seu caminho $HOME):
xseticon -name ZapZap /home/Eduardo/.local/share/flatpak/exports/share/icons/hicolor/512x512/apps/com.rtosta.zapzap.png
Como não temos como prever quando o usuário irá abrir o ZapZap sem modificar o arquivo .desktop
que acompanha o ZapZap (e possivelmente ter que alterá-lo toda vez que você lançar uma nova atualização do programa), decidi adicionar o xseticon
como um script de inicialização que executa o programa a cada 2 segundos. Caso o ZapZap seja aberto, o xseticon
irá substituir automaticamente o ícone padrão do sistema pelo ícone do ZapZap.
Crie o seguinte arquivo em $HOME/.config/autostart/xseticon-com.rtosta.zapzap.desktop
. Note que você deverá substituir "/home/Eduardo" pelo seu diretório $HOME. Não é permitido usar variáveis em arquivos .desktop
, portanto, você precisará especificar explicitamente o caminho do diretório $HOME.
[Desktop Entry]
Name=xseticon-com.rtosta.zapzap.desktop
Type=Application
Exec=bash -c 'while : ; do xseticon -name ZapZap /home/Eduardo/.local/share/flatpak/exports/share/icons/hicolor/512x512/apps/com.rtosta.zapzap.png ; sleep 2.0 ; done"
NoDisplay=true
Terminal=false
Obrigado pela devolutiva. Me alertou que quando não há suporte ou a imagem fosse desativada nas configurações o ícone do app não seria exibido. Mandei a correção em Fix default image in notifications
Opa, buenas Rafael, tudo certo? Sempre é bom encontrar um brazuca e usar software desenvolvido por um brazuca também! Estou tentando executar o zapzap no Deepin 20.6 (baseado no Debian 10) e ao executar ele pelo Deepin Launcher ele simplesmente não abre. Ao executar ele pelo Flatpak, recebo a seguinte mensagem de erro:
Notei que a dependência
com.riverbankcomputing.PyQt.BaseApp
não havia sido instalada mas mesmo instalando ela via Flatpak conforme oREADME
o problema persiste.Se houver alguma informação que eu possa te fornecer para ajudar a diagnosticar ou resolver o problema, fico à disposição! Abraço e obrigado por desenvolver esse projeto!