Ir para o conteúdo

 Voltar a invesalius-l...
Tela cheia

Situação atual do Porte pra Linux

18 de Junho de 2008, 10:01 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 29 vezes
Estou entrando na comunidade InVesalius pra Linux. Tenho muito interesse em contribuir com esse projeto/porte, pois estou elaborando uma distro "comercial" chamada Tiger Linux - Enterprise Desktop.
Embora eu n programe em Python, estou providenciando q uma pessoa q conheço colabore com esse porte, mas para isso preciso q alguém me forneça algumas informações; uma delas é justamente saber o q já foi feito e o q ainda precisa ser feito.

Autor: Daigo Asuka


1111 comentários

  • 01b4129a178c6d8d1d6412686e0f5309?only path=false&size=50&d=404Thomaz dos Reis(usuário não autenticado)
    18 de Junho de 2008, 14:39

     

    O InVesalius versão 1 já foi portado para Linux pela comunidade

    O InVesalius versão 2 está sendo portado por uma equipe de Graduandos (eu incluso) da Universidade Católica de Brasilia como projeto de conclusão de curso.

     Como se trata de um trabalho acadêmico, tivemos que fazer os processos de engenharia reversa, e agora estamos iniciando o processo de reengenharia.

     Boa parte da documentação de engenharia reversa já foi enviada para a responsável pela comunidade (Tatiana) para verificação para então colocarmos no portal.

    • A6ad7621f5b52757ceddd804fadb2830?only path=false&size=50&d=404Daigo Asuka(usuário não autenticado)
      18 de Junho de 2008, 14:53

       

      Já tentaram rodar o InVesalius via wine?

      Quais as maiores dificuldades pra fazer o porte? 

      • 01b4129a178c6d8d1d6412686e0f5309?only path=false&size=50&d=404Thomaz dos Reis(usuário não autenticado)
        18 de Junho de 2008, 15:16

         

        Já. Não funciona.

         A dificuldade está no processo de engenharia reversa e reengenharia.

        • A6ad7621f5b52757ceddd804fadb2830?only path=false&size=50&d=404Daigo Asuka(usuário não autenticado)
          18 de Junho de 2008, 15:37

           

          + detalhes.

          • 01b4129a178c6d8d1d6412686e0f5309?only path=false&size=50&d=404Thomaz dos Reis(usuário não autenticado)
            18 de Junho de 2008, 15:51

             

            Que detalhes você quer? atualmente terminamos o processo de Engenharia Reversa do software, e estamos fazendo a parte de reengenharia.

            Estou gerando uma documentação contendo todas as bibliotecas utilizadas e qual a portabilidade de cada uma, de forma a poder isolar os pontos problemáticos.

            Outras técnincas serão utilizadas para extrair o máximo possível de problemas antes de iniciar a modificação do código.

             

  • 48dfb8d5a4a0459d4285c752af22e7cb?only path=false&size=50&d=404Tatiana Al-Chueyr Pereira Martins(usuário não autenticado)
    18 de Junho de 2008, 17:49

     

    Olá Daigo!

    Muito obrigada por seu interesse em nos auxiliar no projeto de porte do InVesalius para GNU Linux. Toda ajuda é bem vinda e será um prazer ter o InVesalius portado para a distribuição Tiger Linux, conforme já conversamos previamente.

    O InVesalius 1.0 foi portado para GNU Linux por Paulo e José Alexandre (que também trabalhou no CenPRA por algum tempo). Infelizmente ele não foi empacotado de modo apropriado, mas podemos lhe passar o status deste projeto se você tiver interesse. Descontinuamos o desenvolvimento desta versão.

    Atualmente as pessoas que estão envolvidas no porte do InVesalius 2 para GNU Linux são: programadores do CenPRA (Paulo e eu) em parceria a alunos da Universidade Católica de Brasília (Thomaz, Carolina e Ivo).

    Já tentamos rodar o InVesalius utilizando Wine e outros aplicativos semelhantes, sendo que não fomos bem sucedidos com nenhum deles. Em geral os problemas encontrados foram em decorrência a bindings (wrappers) para Python de bibliotecas originalmente em C++ - que são dependências do InVesalius. Combinei com Paulo que ele irá descrever alguns dos problemas encontrados para cada um dos sistemas testados, neste mesmo fórum.

    Um gargalo para portar o software é a falta de documentação técnica do projeto e das classes. O software está mal estruturado e possui uma série de práticas de má programação em vários trechos do código, o que pode dificultar na hora de debugar o programa para adequá-lo para outras plataformas. Neste sentido, o pessoal da Católica está fazendo um trabalho de engenharia reversa, que também é tema do trabalho final de fim de curso deles, para entenderem a estrutura geral do programa.

    A seguir algumas informações importantes para você nos ajudar:

    Dependências do InVesalius 2.0

    :: Multiplataformas
    - Python 2.5
    - wxPython 2.8.7.1
    - Python Imaging Library (PIL) 1.1.5
    - NumPy 1.0.1
    - PyRTF 0.44

    :: Específicas do sistema operacional
    - Python Windows 32 (pywin32) Library 210  (apenas usada para partes bastante específicas, como por ex: listar impressoras da rede) - não sendo um impedimento para portar o software para GNU Linux
    - py2exe

    :: Bibliotecas em C++
    - Visualization Tookit (VTK) 5.1.0
    - Slicer 3D 2.6

    No que diz respeito as bibliotecas em C++, o VTK já possui um sistema pronto para os interessados em em gerar wrappers para Python - tanto para Windows quanto para GNU Linux. O "problema" é que adicionamos algumas classes da biblioteca Slicer 3D (também em C++) ao VTK.

    Assim, para gerar o wrapper tanto para Windows quanto para GNU Linux são necessárias algumas modificações nos arquivos trabalhados - e até o início do ano nossa equipe do CenPRA não tinha tido tempo de trabalhar com estas adaptações para GNU Linux, apenas para Windows. E este era - portanto - o maior gargalo para portar o software para GNU Linux. Entretanto, isso já foi solucionado.

    Passos para portar o InVesalius 2.0 para GNU Linux

    1. Gerar o wrapper VTK 5.1 para GNU Linux. Felizmente Paulo concluiu em abril este trabalho - a descrição está disponível em:
    www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/i​nves​aliu​slin​ux/x​owik​i/ho​w_to​_bui​ld_w​rapp​er

    2. Debugar os erros que surgirem ao tentar rodar o InVesalius (o arquivo que inicia o InVesalius 2.0 é o ivStartApp.py). Nesta segunda parte acredito que os erros que surgirão serão decorrentes de caminhos de ícones e afins... Neste caso basta analisar qual o sistema operacional em questão usando o módulo sys (chamada sys.platform) e setar o caminho em decorrência do so;

    3. Empacotar o programa em deb ou rpm ou afins. Nesta parte não temos experiência. Até onde tive contato Thomaz estava fazendo testes para fazer este empacotamento. Em Windows, para o InVesalius 2 utilizamos o gui2exe que é uma interface bastante amigável para o py2exe. Algumas opções de ferramentas que poderiam auxiliar neste empactamento são:
    - py2app
    - cx_Freeze
    - PyInstaller

    Atualmente, dado que o primeiro passo já foi concluído, é necessário apoio de pessoas interessadas para rodar o código fonte do InVesalius 2 e verificar os erros que estão ocorrendo. Nossa equipe do irá dar assistência para a resolução dos problemas, contanto que os interessados enviem emails para este fórum de discussão relatando os mesmos.

    De que modo você acha que poderia nos auxiliar?

    Abraços,

    Tatiana