| 10 Dec 2022 |
GALLY | In reply to Gabriel Fontes (Misterio) λ Acho que assim só funciona no NixOS Realmente, do jeito que tá é uma gambis.
No mínimo, tem que fazer um patch com substituteInPlace. | 22:55:43 |
@baduhai:matrix.org | Redacted or Malformed Event | 23:30:49 |
@baduhai:matrix.org | Redacted or Malformed Event | 23:40:27 |
GALLY | Então qual é o objetivo desse emulador? Ele é um frontend pro retroarch? | 23:51:54 |
@baduhai:matrix.org | É um launcher, não só pra retroarch/libretro, mas pra emulador as no geral | 23:52:43 |
@baduhai:matrix.org | * É um launcher, não só pra retroarch/libretro, mas pra emuladores no geral | 23:52:58 |
GALLY | Hum, então ele "depende" de outros emuladores já instalados. | 23:54:19 |
@baduhai:matrix.org | Sim, mas ele tbm abre jogos de outras fontes, como lutris e steam, então todas as dependências dele q não são build time, são opcionais | 23:55:37 |
GALLY | Aquele patch seria para encontrar os arquivos, certo?
Tipo cores, DLLs... | 23:56:37 |
@baduhai:matrix.org | Isso | 23:56:52 |
GALLY | Sem aquilo, como você poderia usar o treco? | 23:57:25 |
@baduhai:matrix.org | Ele tbm abre arquivos .desktop, ou tbm consegue abrir emuladores instalados com flatpak | 23:58:02 |
| 11 Dec 2022 |
GALLY | Dando um exemplo tangente, se um programa depende de uma lib, numa distro comum essas libs ficam em /usr/lib e o executável vasculha o diretório em runtime.
No Nixpkgs, existe todo um aparato que basicamente faz um ponteiro para a lib. | 00:00:06 |
GALLY | É como se por exemplo você instalasse algo num diretório fora do PATH | 00:00:33 |
@baduhai:matrix.org | Sim | 00:00:42 |
GALLY | Aí você tem que escrever explicitamente, ~/my-scripts/bin/erase-pictures | 00:01:10 |
@baduhai:matrix.org | Isso | 00:01:19 |
GALLY | * Aí você tem que escrever explicitamente, ~/my-scripts/bin/erase-weekend-pictures | 00:01:22 |
GALLY | Ou você inclui ~/my-scripts/bin/ no $PATH | 00:01:52 |
@baduhai:matrix.org | Mas no nix não existe uma pasta especifica onde as bibliotecas estariam, acho q sei onde vc esta indo com a conversa, o q eu não sei exatamente é como lidar com isso | 00:03:25 |
@baduhai:matrix.org | Entendo como o makeWrapper talvez me ajude, o problema é q o programa não foi escrito procurando o $PATH, e sim hard-codando o diretório onde cada distribuição coloca os cores | 00:05:14 |
@baduhai:matrix.org | Meio tosco, mas é assim q o autor fez, pq muitas distribuições não expõem os cores, como se não esperassem nenhum programa alem do retroarch usar os cores do libretro | 00:06:35 |
@baduhai:matrix.org | Por isso q eu acabei usando o patch q eu escrevi | 00:07:20 |
@baduhai:matrix.org | Acho q o substituteInPlace tbm possa me ajudar, mas pelo o q eu entendi, como o retroarch é uma dependência opcional, o substituteInPlace só vai ser executado se o retroarch for instalado como dependência, fazendo com q se eu instalar o retroarch depois do emulationstation-de, o substituteInPlace nunca tenha executado, e os cores não serão encontrados | 00:11:50 |
@baduhai:matrix.org | In reply to @baduhai:matrix.org Acho q o substituteInPlace tbm possa me ajudar, mas pelo o q eu entendi, como o retroarch é uma dependência opcional, o substituteInPlace só vai ser executado se o retroarch for instalado como dependência, fazendo com q se eu instalar o retroarch depois do emulationstation-de, o substituteInPlace nunca tenha executado, e os cores não serão encontrados Meu raciocínio faz sentido, ou to completamente errado? | 00:12:14 |
Lucas Eduardo | In reply to @baduhai:matrix.org Meu raciocínio faz sentido, ou to completamente errado? Tá certo | 00:19:43 |
Lucas Eduardo | BTW tu pode tentar patchear pra pegar as coisas de uma variável de ambiente e aí no makeWrapper passar o valor | 00:20:47 |
@baduhai:matrix.org | In reply to @telegram_155706732:t2bot.io BTW tu pode tentar patchear pra pegar as coisas de uma variável de ambiente e aí no makeWrapper passar o valor Boa ideia, vou testar, não sei se o programa vai respeitar a variável no arquivo q vai ser patcheado | 00:23:08 |
Anderson Torres | In reply to @baduhai:matrix.org Mas no nix não existe uma pasta especifica onde as bibliotecas estariam, acho q sei onde vc esta indo com a conversa, o q eu não sei exatamente é como lidar com isso Eu, ou melhor, um tanto de gente teve que enfrentar uma situação parecida com o MPV.
O MPV suporta scripts Lua, como se fosse um sistema de plugins.
Basicamente o pessoal criou uma derivação que junta todo mundo num mesmo "diretório" via symlinks, mais precisamente via symlinkJoin.
https://github.com/NixOS/nixpkgs/blob/7bbdd67dee01d12d9f12835f2de05dc0fcf4fb5c/pkgs/applications/video/mpv/wrapper.nix#L61
| 00:27:14 |
Anderson Torres | Eu costumo usar esse código como guia para quando preciso de algo similar. | 00:27:35 |