Resposta abrangente às violações da AGPLv3 pela Bambu
(sfconservancy.org)- Bambu Studio é uma versão modificada do PrusaSlicer baseada em AGPLv3, mas não forneceu todo o código-fonte nem as informações de instalação da biblioteca de rede proprietária
- O Corresponding Source da AGPLv3 inclui o código necessário para gerar, instalar, executar e modificar, além do código-fonte de bibliotecas dinamicamente vinculadas que estejam fortemente acopladas
- A Bambu exigiu que Paweł Jarczak removesse um fork que modificava o Orca Slicer para funcionar com componentes de servidor da Bambu, entrando em conflito com a cláusula que proíbe restrições adicionais
- A SFC está promovendo o projeto baltobu para fazer engenharia reversa da biblioteca de rede, manter o Orca Slicer para Bambu e desenvolver o viscose como fork substituto do Bambu Studio
- A SFC iniciou uma arrecadação de US$250.007 por dois meses para atividades de direito ao reparo de software em impressoras 3D e pretende divulgar os detalhes de um comitê permanente em junho de 2026
Violações confirmadas da AGPLv3
-
Código-fonte de
libbambu_networkingnão fornecido- Uma investigação de conformidade com a AGPLv3 sobre o software e o firmware das impressoras 3D da Bambu Lab confirmou duas violações
- O Bambu Studio é um slicer que divide modelos de projeto digital como
STLem camadas 2D horizontais que a impressora consegue imprimir - Há 4 anos, a Bambu divulga o Bambu Studio como uma versão modificada do PrusaSlicer, um slicer concorrente licenciado sob AGPLv3
- O PrusaSlicer, por sua vez, é uma versão modificada do Slic3r, criado originalmente por Alessandro Ranellucci
- Parte do código-fonte do Bambu Studio está na organização da Bambu no GitHub, mas a empresa afirma distribuir o Bambu Studio aos usuários por meio de prompts interativos na UI, combinado com bibliotecas proprietárias
- A AGPLv3 determina que, ao transmitir uma obra coberta em forma de código-objeto, também deve ser transmitido o Corresponding Source legível por máquina sob os mesmos termos de licença
- O Corresponding Source inclui o código-fonte e os scripts necessários para gerar, instalar, executar e modificar o código-objeto
- Também inclui o código-fonte de bibliotecas compartilhadas e subprogramas com link dinâmico projetados para serem exigidos pela obra por meio de comunicação de dados estreita ou fluxo de controle
- O fato de a Bambu não fornecer o Corresponding Source Code completo nem as Installation Information de
libbambu_networking.so,bambu_networking.dllelibbambu_networking.dylibé considerado uma violação grave e contínua da AGPLv3
-
Exigência de remoção do fork de Paweł Jarczak
- Separadamente da decisão da Bambu de manter a biblioteca de rede como proprietária, as medidas tomadas contra o desenvolvedor e usuário da Bambu Lab Paweł Jarczak também são apresentadas como violação da AGPLv3
- Paweł Jarczak divulgou outra forma de integração com os componentes do lado do servidor do Bambu Studio sem substituir nem modificar a biblioteca vinculada dinamicamente
- Após revisar o código-fonte incompleto do Bambu Studio, ele modificou outro slicer sob AGPLv3, o Orca Slicer
- O Orca Slicer modificado permitia que usuários substituíssem o Bambu Studio enquanto se conectavam, por comunicação de dados estreita, a partes executadas nos servidores da Bambu Lab cujo código-fonte ainda não foi publicado
- A Bambu exigiu que Paweł removesse do GitHub o fork do OrcaSlicer com essas mudanças
- A empresa alegou que seus termos de serviço prevalecem sobre a AGPLv3, mas a AGPLv3§10¶3 afirma que não se podem impor restrições adicionais ao exercício dos direitos concedidos ou confirmados pela licença
- Paweł removeu o fork do Orca Slicer em protesto
Plano de resposta da SFC
-
Projeto
baltobu- A SFC iniciou o projeto baltobu e está operando vários repositórios para responder às violações da AGPLv3 relacionadas à Bambu e melhorar o direito ao reparo de software em impressoras 3D
- Motivado pelas medidas da Bambu contra Paweł Jarczak, foi iniciado um trabalho multifacetado para ajudar consumidores e usuários no curto prazo e melhorar, no longo prazo, o direito ao reparo de software para consumidores de impressoras 3D
- Como a Bambu já era conhecida havia muito tempo como uma forte infratora da AGPLv3, a prioridade foi começar por engenharia reversa, que pode trazer resultados mais rápidos do que medidas judiciais
-
reverse-networking- O repositório
reverse-networkingdo baltobu hospeda um projeto de engenharia reversa delibbambu_networking.so,bambu_networking.dllelibbambu_networking.dylib - A SFC pediu e continua pedindo a voluntários da comunidade Use the Source que participem desse processo
- A posição da SFC é que código-objeto combinado com software AGPLv3 também deve ser licenciado sob AGPLv3
- A SFC entende que essas bibliotecas de código-objeto estão sujeitas à AGPLv3 e que ela, junto com seus voluntários, tem o direito de fazer engenharia reversa delas para criar código-fonte próprio que funcione como substituto drop-in no Bambu Studio
- O repositório
-
orca-slicer-for-bambu- O repositório
orca-slicer-for-bambudo baltobu deve se tornar o repositório padrão para manter e aprimorar o fork do Orca Slicer originalmente publicado por Paweł, com base no trabalho dele - A SFC está pedindo voluntários para manter um fork do OrcaStudio que funcione com impressoras 3D da Bambu
- Contribuidores voluntários que atuem em nome da SFC podem receber um certo nível de proteção de responsabilidade pessoal, e a SFC pretende intervir sempre que possível caso a Bambu faça ameaças legais contra esses voluntários
- O repositório
-
viscose- O repositório
viscosedo baltobu é um projeto para manter um fork ativo do próprio Bambu Studio - Com base nas descobertas dos dois trabalhos anteriores, a iniciativa caminha para criar um substituto do Bambu Studio que funcione melhor para donos de impressoras 3D da Bambu
- O repositório
-
Monitoramento de violações adicionais
- A SFC pretende continuar monitorando possíveis violações adicionais da Bambu Lab
- Em geral, ela não sai ativamente procurando violações, mas neste caso pretende observar a Bambu Lab de perto e investigar regularmente possíveis violações de licenças copyleft
-
Comitê permanente da comunidade de impressoras 3D
- A SFC pretende iniciar um comitê permanente para discutir liberdade e direitos de software na comunidade de impressoras 3D
- Os detalhes do comitê serão divulgados em junho de 2026
- O plano é que o comitê reúna mensalmente fabricantes de impressoras 3D, usuários, consumidores, especialistas em licenças copyleft e ativistas da liberdade de software
- O objetivo é compartilhar problemas e preocupações sobre o direito ao reparo de software em impressoras 3D e software relacionado, e criar planos de ação para resolvê-los
Participação e apoio
-
Participação voluntária
- A SFC está pedindo voluntários para participar imediatamente desse trabalho
- Paweł Jarczak já entrou como primeiro voluntário, e o trabalho dele teve papel importante na investigação de várias violações da AGPLv3 pela Bambu
- Quem quiser ajudar no trabalho técnico do projeto baltobu pode verificar como solicitar uma conta na instância Forgejo da SFC
- Quem tiver interesse em outras iniciativas pode enviar e-mail para 3dprint@sfconservancy.org
-
Arrecadação para atividades de direito ao reparo
- A SFC está realizando uma campanha de arrecadação de US$250.007 por dois meses
- Novas contribuições como Sustainer e doações gerais à SFC serão destinadas às atividades de direito ao reparo de software
- Se a meta for alcançada, a organização iniciará imediatamente a contratação de pessoal adicional para liderar o trabalho de longo prazo
- Esse profissional ficará responsável por coordenar contribuições voluntárias, planejar estratégias para melhorar o direito ao reparo de software em impressoras 3D e definir os próximos passos necessários caso não seja possível levar a Bambu Lab à conformidade com a AGPLv3
- Se a meta não for atingida, os valores arrecadados serão usados no tempo que a equipe atual dedicar a esse projeto e em atividades relacionadas ao direito ao reparo de software
Pessoas que já contribuíram
- Paweł Jarczak fez a SFC tomar conhecimento das contínuas violações da AGPLv3 pela Bambu Lab e modificou o código-fonte de formas permitidas pela AGPLv3 para avançar o trabalho relacionado
- b3nsn0w investigou mais a fundo a situação da Bambu Lab e vem defendendo a AGPLv3 há mais de um ano em relação à violação envolvendo bibliotecas com link dinâmico
- A FULU ajudou a chamar atenção para esse problema e publicou uma posição contra a Bambu Labs
1 comentários
Opiniões no Lobste.rs
Também acompanho licenças FLOSS há bastante tempo e, embora eu entenda a motivação da AGPLv3, ela sempre me pareceu um pouco desconfortável. Também não gosto da forma como a Bambu está lidando com isso e, mesmo que eu não saiba dizer se chega ao nível jurídico, pelo menos certamente viola o espírito do open source
O ponto que me pega é: o que está sendo dito aqui é que software sob AGPLv3 não pode chamar
dlopen()em binários não livres, ou que distribuir um arquivo.soque só compartilha algumas assinaturas de ponteiros de função com um software AGPLv3 já é violação de licença? Neste caso específico, dá para entender a rejeição, já que a mesma entidade está distribuindo junta uma versão modificada de software AGPLv3 e binários não livres, mas generalizando isso a ideia não entra muito bem na minha cabeçaLevando ao extremo, isso poderia parecer significar que software AGPLv3 capaz de carregar plugins em um formato padronizado seria incompatível com a própria licença. Por exemplo, no caso de um software de áudio AGPLv3 que consegue carregar VST(https://en.wikipedia.org/wiki/Virtual_Studio_Technology), parece bem complicado entender corretamente as implicações de licença
dlopen()em binários não livres?” não é a posição da FSF. A FSF explica, no item do FAQ sobre plugins, que a definição de se é um único programa combinado depende de como o programa principal chama o pluginSe ele apenas o executa com
forkeexece não há comunicação estreita, pode ser um programa separado; mas, se há linkagem dinâmica e compartilhamento de chamadas de função e estruturas de dados, a posição deles é que isso deve ser visto como um único programa combinado. Eles também consideram que trocar estruturas de dados complexas por memória compartilhada é quase o mesmo que linkagem dinâmicaPelo que sei, isso se aplica de forma geral a todas as versões da GPL. Em resumo, o critério é se aquele plugin já poderia ser usado em outro software antes de ser escrito para o programa GPL. Se ele só tem utilidade naquele programa GPL, então na prática é mais próximo de uma parte daquele programa
Portanto, o mero suporte a plugins em si é aceitável. O problema surge quando um plugin específico se torna, na prática, necessário para a funcionalidade normal da aplicação. O
.somencionado no texto da SFC parece estar relacionado à rede, e também parece plausível que seja difícil usar a impressora com conforto sem acesso à redeEm um contexto mais amplo, “Corresponding Source” para uma obra em forma de código objeto significa todo o código-fonte e scripts necessários para gerar, instalar, executar e modificar o código objeto, mas exclui bibliotecas de sistema e ferramentas de uso geral ou programas livres geralmente disponíveis que sejam usados sem modificação
Em particular, é possível desenvolver software AGPL no OSX dependendo de um SDK proprietário fornecido pela Apple em todas as máquinas OSX. O mesmo vale para aplicativos Windows que dependem de componentes do lado do Windows