Como modificar o devscript (pacote debian) para adicionar suporte ao python 3 (específico para o pacote GDCM)

2

Estou usando o GDCM no meu projeto em um ambiente Python 2.7. Quanto mais está se movendo em direção ao Python 3, eu gostaria de instalar o python-gdcm para o Python 3. O pacote usa SWIG para gerar o interface e deve support Python 3. Também há um Pacote do Fedora disponível que faz isso.

Meu palpite é que uma simples modificação no arquivo-dsc deve ser feita, mas eu nunca trabalhei com dsc-files e não tenho certeza de onde começar. Não consigo nem encontrar onde o ambiente do Python 3 deve ser imposto no arquivo. Eu encontrei o wiki pbuilder (alt. sbuild ) que parece ser o lugar para começar, mas eu agradeceria muito se alguém aqui tivesse algumas dicas concretas sobre como fazer isso funcionar.

Atualizar

Eu consegui obter as fontes usando:

apt source python-gdcm

Pelo que entendi, olhando o gdcm-2.6.3/debian/python-gdcm.install ele deve copiar os arquivos em qualquer /usr/lib/python* versão. Uma coisa que me deixa um pouco confuso é que o /usr/lib/python3.5/ não tem um diretório dist-packages enquanto o /usr/lib/python2.7/ faz. Em vez disso, o dist-packages do Python 3 está localizado em /usr/lib/python3/ - não tenho certeza se isso é importante. Eu tentei apenas copiar os arquivos para o diretório Python 3 dist-packages , mas isso só causou um segfault ao importar o pacote.

Criando a partir da fonte - atualizar

Então, encontrei um bug que me levou a criar o pacote a partir do código-fonte. O bug foi corrigido usando a nova versão e eu fui capaz de compilar esse pacote para que ele seja carregado em um console do Python 3:

  1. Clone o repositório do git:

git clone --branch release git://git.code.sf.net/p/gdcm/gdcm

  1. Em seguida, instale as dependências para construção:

sudo apt-get build-dep python-gdcm

  1. Algumas dependências adicionais foram necessárias antes que tudo fosse clicado:

sudo apt install python-vtk6 libvtk6-dev cmake-curses-gui

  1. Usando o ccmake e a configuração GDCM_WRAP_PYTHON para ON e a biblioteca GDCM_BUILD_SHARED_LIBS para ON †, o configure funciona e a biblioteca pode ser compilada com suporte a Python.

  2. Use a seção de alternância para acessar a seção avançada e defina os caminhos do Python para corresponder às configurações do Python 3, usando cmake puro a chamada é: cmake GDCM_WRAP_PYTHON=ON PYTHON_EXECUTABLE=/user/bin/python3 PYTHON_INCLUDE_DIR=/usr/include/python3.5 GDCM_BUILD_SHARED_LIBS=ON GDCM_USE_VTK=ON ../gdcm

  3. O pacote pode ser instalado por meio de checkinstall .

  4. Os arquivos python ( gdcm.py , gdcmswig.py , vtkgdcm.py e _gdcmswig.so ) terminaram em /usr/local/lib e precisam ser copiados manualmente para o /usr/local/lib/python3.5/dist-packages antes que o pacote possa ser carregado. Nota antes do carregamento faça um ldconfig para atualizar os links.

Minhas perguntas restantes:

  • O que devo modificar na pasta debian para inserir as configurações acima de cmake ?
  • Existe uma maneira de disponibilizar simultaneamente o Python 2 e o Python 3? Eu conheço muitos pacotes que fornecem ambos, então isso deve ser trivial para adicionar, embora uma recompilação provavelmente seja necessária, ou?
  • Por que o cmake não detecta a pasta correta do Python, por exemplo, /usr/local/lib/python3.5/dist-packages ? Isso é um bug nos arquivos cmake ou é alguma configuração que está faltando?

† Não usar as bibliotecas compartilhadas causou este erro:

 CMake Error at Utilities/VTK/CMakeLists.txt:796 (install):
   install TARGETS given no ARCHIVE DESTINATION for static library target
   "vtkgdcmPythonD".
    
por Max Gordon 09.08.2016 / 20:18

0 respostas