Contents

Introdução ao Desenvolvimento do Inkscape

Link do Código: lp:inkscape

Aqui pretendemos dar uma rápida referência em como começar com o desenvolvimento do Inkscape. Para mais detalhes, dê uma olhada no Inkscape Wiki e outras documentações específicas.

Configurar uma conta no Launchpad

Para reportar erros e ajudar com assuntos técnicos, você irá precisar de uma conta no Launchpad. Para subir o código-fonte, você também precisará configurar chaves SSH para sua conta. Instruções mais detalhadas para configurar uma conta estão disponíveis no tutorial usuário do Launchpad.

Buscando o código-fonte

O primeiro passo é obter o código-fonte. Apenas baixar os arquivos de código fonte "Release" não é suficiente, pois você vai precisar obter as mais recentes fontes de ponta para desenvolver o Inkscape.

O Inkscape usa o sistema de controle de versão do Bazaar. Instruções de instalação específicas da plataforma estão disponíveis aqui. No Debian e sistemas relacionados (por exemplo, Ubuntu), você precisa instalar o pacote bzr. No Windows, você precisará baixar e executar o instalador.

Recomendamos configurar uma conta no Launchpad (veja acima) antes de obter o código-fonte, pois assim é mais fácil para subir o código posteriormente uma vez que você tenha acesso para isto. Ao configurar sua conta no Launchpad, execute os seguintes comandos:

bzr whoami "Nome Real <e-mail@dominio.tld>"
bzr launchpad-login nomedeusuario

onde Nome Real é seu nome real ou um pseudônimo que você deseje usar (deve ser reconhecível por pessoas na lista de discussão), e-mail@dominio.tld é o seu e-mail para envio de mensagens relacionadas ao Inkscape (pode ser omitido se você quiser), e nomedeusuario é seu nome de usuário do Launchpad. Com esta configuração, você será capaz de subir o código uma vez que você estiver aprovado como membro da equipe de desenvolvedores do Inkscape no Launchpad.

Para obter o código-fonte mais recente, use o seguinte comando:

bzr checkout lp:inkscape

Para atualizar esse código posteriormente, use:

bzr update

Usando o Git

Se você deseja usar o Git ao invés do Bazaar, você poderá fazer isto facilmente através do adaptador git-bzr. Confira o nosso guia para usuários do Git.

Compilando dentro de uma máquina virtual (Virtual Box)

Possivelmente a maneira mais simples de compilar o Inkscape é usando o inkup, que lhe disponibiliza um arquivo Vagrant capaz de construir uma máquina virtual, que constrói as fontes do Inkscape. Isso requer o VirtualBox e Vagrant instalados em sua máquina.

Compilando o Inkscape no Linux

Instalar as dependências de compilação

Para construir o Inkscape, você precisará instalar o compilador GCC e os arquivos de desenvolvimento para todas as bibliotecas que ele usa. A maneira mais fácil de fazer isso no Debian e sistemas relacionados é usar o comando:

sudo apt-get build-dep inkscape

Nota: Se você estiver usando o PPA para as versões mais recentes no debian, você pode usar este comando alternativo para obter um conjunto mais preciso das dependências de compilação:

sudo apt-get build-dep inkscape-trunk

Note que isto irá instalar as dependências de compilação do pacote Inkscape disponível em seus repositórios. Se o pacote é antigo, talvez seja necessário instalar algumas dependências adicionais; a saída do script configure deve lhe dar dicas sobre o que mais é necessário.

De 0.92 em diante

No Inkscape 0.92, damos suporte a dois sistemas de compilação paralelos, o autotools acima mencionado e CMake.

Para compilar com o CMake, faça o seguinte:

  mkdir build
  cd build
  cmake [-DCMAKE_INSTALL_PREFIX=/usr] ..
  make [-j8]
  sudo make install

Os colchetes indicam argumentos opcionais.

O argumento opcional -j8 para o make diz para executar 8 trabalhos em paralelo. Sinta-se livre para ajustar isto para o número de threads (núcleos físicos) disponíveis no hardware de seu computador. O argumento opcional -DCMAKE_INSTALL_PREFIX permite que você instale uma segunda versão do Inkscape em paralelo, em uma pasta diferente (/usr no exemplo). Ele ainda usará todos os arquivos (incluindo preferences.xml) que residem no diretório /home/.config/inkscape.

Versões <= 0.92

Depois de ter as dependências instaladas, use os seguintes comandos no diretório de origem do Inkscape:

./autogen.sh
./configure [--prefix=/usr]
make [-j8]
sudo make install

Os colchetes indicam argumentos opcionais.

O argumento opcional -j8 no comando make diz para executar 8 trabalhos em paralelo. Sinta-se livre para ajustar isto para o número de threads (núcleos físicos) disponíveis no hardware de seu computador. O argumento opcional --prefix permite que você instale uma segunda versão do Inkscape em paralelo, em uma pasta diferente (/usr no exemplo). Ele ainda usará todos os arquivos (incluindo preferences.xml) que residem no diretório /home/.config/inkscape.

Compilando o Inkscape no Windows

Construir o Inkscape no Windows é um pouco mais complicado porque as ferramentas e bibliotecas necessárias não são incluídas com o sistema operacional. Portanto, você precisará baixar elas separadamente

  • o sistema de controle de versão do Bazaar que é usado para gerenciar o código-fonte do Inkscape, bem como os fontes de devlibs (não é estritamente necessário para uma construção simples, mas altamente recomendável, especialmente se você quiser fazer compilações regulares ou contribuir com código).
  • o sistema de compilação CMake (usado desde o Inkscape 0.92).
  • MinGW (acrônimo do inglês "Minimalist GNU for Windows") que inclui as ferramentas necessárias do compilador e linha de comando (ver nota abaixo!).
  • um exemplar do "Inkscape Devlibs", ver inkscape-devlibs (para versões de 32-bits) ou inkscape-devlibs64 (para versões de 64-bits). Aqueles contêm versões pré-construídas das bibliotecas de programação que Inkscape o precisa para executar.
    Você pode usar o Bazaar para baixar as devlibs, por exemplo, executando
    bzr checkout --lightweight lp:inkscape-devlibs C:\devlibs
    (o argumento "--lightweight" faz o Bazzar só baixar a revisão mais recente, poupando-lhe bastante tempo de download e espaço em disco).

Uma vez que a versão do compilador MinGW que você precisará depende se você está construindo um executável de 32-bits ou 64-bits, e sobre a versão do compilador usada para construir as devlibs, é altamente recomendável verificar os artigos mais detalhados sobre Compilando o Inkscape para Windows e Compilando o Inkscape para Windows 64-bits para determinar os requisitos exatos antes de prosseguir.

Depois de ter baixado o código-fonte do Inkscape, e atendido à todos os requisitos, você está pronto para compilar. Primeiro configure os caminhos no arquivo "mingwenv.bat" (localizado na raiz do diretório de origem do Inkscape) para coincidir com localização das pastas em seu sistema. Em seguida, abra uma janela de linha de comando, navegue até o diretório de fontes do Inkscape e execute os seguintes comandos:

mingwenv.bat
configura as variáveis de ambiente
mkdir build
cd build
configura um diretório de compilação (se ocorrer problemas para executar, tente excluir este diretório e começar novamente)
cmake -G "MinGW Makefiles" ..
cria os arquivos make
mingw32-make -j 2
inicia o processo de compilação atual (a opção -j define o número de processadores para compilação e pode ser usada para acelerar significativamente o processo de compilação)
mingw32-make install

criar o diretório de distribuição (ou seja, copia todos os arquivos necessários para um subdiretório, por padrão "builds\inkscape", de onde você pode executar sua nova compilação do Inkscape)

Compilando o Inkscape no Mac

Instale as dependências listadas na wiki:

port install cairo boehmgc gtkmm3 intltool libxslt lcms2 gdl3 \
popt poppler boost gsl gnome-vfs libgnomeprintui bzr cmake potrace

Obter o inkscape:

bzr branch lp:inkscape trunk

Construí-lo:

mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst && make -j8 && make install

Executá-lo:

inst/bin/inkscape

Fluxo de trabalho do desenvolvedor

Bazaar

Como o projeto Inkscape usa Bazaar como uma VCS (do inglês Version Control System), você precisará usá-lo para contribuir para o projeto. Informações mais detalhadas sobre o Bazaar podem ser encontradas no Inkscape Wiki e na documentação oficial do Bazaar.

Depurando com GDB

O Inkscape deve ser construído com os sinalizadores -g para g++ para que ele possa ser depurado com GDB.

Desenvolvimento do Inkscape

A base de código do Inkscape

O Inkscape começou como uma bifurcação do Sodipodi, um aplicativo do GNOME baseado em GObject. O Inkscape é escrito em uma mistura de C e C++, devido a razões históricas. Esperamos que eventualmente migrá-lo para C++. No entanto, ainda há um monte de código baseado em GObject, portanto, algum conhecimento de GObject é necessário para trabalhar com Inkscape.

O Inkscape usa componentes do conjunto de ferramentas GTK+ e a biblioteca de apoio Glib. Estamos no processo de migração do GTK+ 2.0 para o GTK+ 3.0. Nós também usamos as partes somente do cabeçalho de carregamento (ou seja, é uma dependência em tempo de compilação, mas não uma dependência em tempo de execução). O de biblioteca de geometria lib2geom, escrito em C++, destina-se a eventualmente tornar-se um projeto separado. Você pode obter a versão mais recente de lib2geom em seu repositório no Launchpad.

Saber como programar em C++ e usar o GTK é essencial para contribuir para o Inkscape. Felizmente, o aprendizado não é assim tão difícil, então leia tutoriais relevantes.

O projeto Inkscape usa o Doxygen para gerar documentação de código fonte automaticamente (incluindo diagramas da estrutura do programa). Você pode obter rapidamente uma visão geral sobre qual parte do programa você gostaria de trabalhar aqui.

Estilo de Programação

As diretrizes de Estilo de Programação do Inkscape podem ser encontradas aqui.

Comunidade

  • Lista de discussão: inkscape-devel@lists.sourceforge.net. A maioria dos desenvolvedores estão inscritos na lista.

  • IRC: #inkscape-devel no Freenode.

  • Rastreador de Falhas do Inkscape: Corrigir alguns erros fáceis é uma ótima maneira de começar a trabalhar com desenvolvimento do Inkscape.