Celestia: fornecer um pacote Debian Stretch

Criado em 22 jun. 2017  ·  20Comentários  ·  Fonte: CelestiaProject/Celestia

ou talvez até mesmo fornecer um diretório base / debian /.

Contexto: Stretch (novo estável), descartou Celestia. Isso é uma grande perda para o ecossistema Debian e usuários.
(e, aliás, a perda da fonte de possíveis contribuidores também)

packaging

Comentários muito úteis

Oi,

aqui vem minha instrução passo a passo para criar um pacote celestia para o Debian 9.

Feliz construção :-)

Instale dependências de compilação

apt-get install git build-essential autoconf debhelper freeglut3-dev liblua5.1-dev libgnomeui-dev libgtkglext1-dev libtheora-dev chrpath libjpeg-dev

Busque a fonte

git clone https://github.com/CelestiaProject/Celestia.git

Configure-o

cd celestia
autoreconf -iv
./configure --with-gnome --enable-cairo --enable-theora --with-lua --disable-warnings --prefix = / usr

Compilar

make -j2

Solução alternativa para erro

exportar MKDIR_P = 'mkdir -p'

Construir pacote Debian

checkinstall -D --pkgversion 1.6.1 make install-strip

Obtenha dependências de pacote

mkdir debian
toque debian / control
dpkg-shlibdeps / usr / bin / celestia
cat debian / substvars

Extrair pacote

dpkg-deb -R celestia_1.6.1-1_amd64.deb.

Adicione dependências a DEBIAN / control (adicione uma nova linha com "Depends:")

Alterar o arquivo de entrada do menu: usr / share / applications / celestia.desktop

[Desktop Entry]
Codificação = UTF-8
Versão = 1.6.1
Type = Application
Exec = celestia -c /usr/share/celestia/celestia.cfg
Ícone = celestia
X-GNOME-DocPath =
Terminal = falso
Nome = Celestia
Comentário = Simulador Espacial
StartupNotify = true
Categorias = Astronomia; Ciência; Aplicação; Educação;

Construir pacote alterado

dpkg-deb --build. ../celestia_1.6.1-1_amd64.deb

Todos 20 comentários

@drzraf Alexell não funciona com Linux e não está absolutamente familiarizado com o acima. Agora não temos uma pessoa que entenda o código Celestia para Linux.
Descreva o que exatamente devemos fazer para resolver o problema? Quem pode fazer isso?

[] alguém usando Debian que já criou um pacote Debian (ou quer aprender)
[] instale o ambiente de construção Linux necessário para Celestia
O mais padrão são as ferramentas de construção necessárias (autotools, cmake, ..) o melhor / mais simples
[] construir, executar e testar o Celestia no Debian

A partir disso, pode-se criar os arquivos Debian necessários (possivelmente modificando a versão antiga) que estipulam algumas características do programa.
[] as dependências que precisa ser construído [software / versões]
[] as dependências que ele precisa para ser executado [software / versões]

Se por algum motivo ele travar, bug, ... alguns patches personalizados são necessários
e estes são freqüentemente os trabalhos mais dolorosos para o mantenedor do Debian.
Ter a maioria das correções rapidamente dentro do código upstream ajuda muito aqui.

Na melhor das hipóteses, o Debian / Linux não precisaria de patches adicionais para construir ou executar. Então, o empacotamento seria apenas alguns arquivos básicos de distância (https://wiki.debian.org/Packaging) e então baixável / instalável facilmente.

Ter o pacote distribuído (novamente) no repositório do Debian 9 é um pouco mais de "trabalho social", mas acho que a construção / estabilidade de software no Linux é o único obstáculo real possível.

Outra direção / alternativa a propósito: flatpak

@drzraf Você é bem versado no que escreve. Talvez você possa fazer tudo sozinho? Ficaremos muito gratos pela ajuda.

Tentei instalar o Celestia no Stretch e tive problemas com glu.h, libjpg, libpng e a versão de lua solicitada é muito antiga, mesmo depois de ter configurado com sucesso o make falhou
pode ser útil

ok, eu e principalmente meus filhos estamos sentindo falta da Celestia há algum tempo. Minha primeira tentativa também foi apenas construir a partir do código para 1.6.1 da página do projeto celestia (quão difícil pode ser ...). Algumas correções de código depois, um erro do vinculador me impediu. Hoje comecei a rodar pela primeira vez depois de alguns anos no Ububtu 17.10.

Qual o proximo? Existe alguma maneira de fornecer minhas mudanças e trazer Celestia de volta algum tempo?

Uma pergunta, já que definitivamente não sou um guru de automake ... Eu precisava contornar um aspecto na linha de comando:

-ldl -llua5.1 ../celengine/libcelengine.a -ldl ../celtxf/libceltxf.a

o problema era que todas as bibliotecas celestia estão em uma variável automake $ (all_libraries) e por alguma razão o -ldl precisa estar exatamente atrás de libcelengine.a .... o primeiro -ldl não ajuda. Posso colocar um sinalizador de vinculador para uma biblioteca específica como libcelengine.a?

Fico feliz em ajudar a recuperá-lo - meus filhos ficarão felizes porque a Celestia é realmente uma maneira ótima e interessante de ver o nosso universo :).

Ótimo @TheBigW.
Você acha que o ajuste de compilação de -ldl foi este no pacote Debian Celestia anterior ?
Veja https://sources.debian.net/src/celestia/1.6.1%2Bdfsg-3.1/debian/patches/ (OP) para a lista de patches necessários para construir Celestia em versões anteriores do Debian.

Tenho a impressão de que partir do diretório debian/ do pacote 1.6.1 pode ser a direção certa. Então, usando dpkg-buildpackage , você deve ser capaz de produzir um pacote Debian.

O que provavelmente teria que ser adaptado do diretório debian / atual são provavelmente:

Eu ficaria feliz em poder dpkg-buildpackage sozinho (estou no Debian Stretch) com as mudanças que você adicionará ao diretório debian /. Então, eu poderia testar a estabilidade do pacote resultante.
(em algum ponto, você pode abrir um bug ITP ( Intend to Package ) no bugtracker do Debian e esperar que um pacote estável possa voltar aos repositórios e agradar a tantos usuários Debian.

Oi drzraf,
o -ldl mencionado acima deve funcionar, mas até onde eu vi apenas corrige no arquivo de configuração. Se eu não estiver errado, o próximo ./configure irá substituí-lo - mas para compilar o pacote isso funcionará (ainda melhor do que o link manual na linha de comando :)).
Uma pergunta: usei o pacote Ubuntu src que encontrei como zip para download. Isso funciona para mim, mas é claro que falta todos os detalhes do Debian (changelog etc ...). Você sabe como posso fazer o pacote debian celestia src anterior rodar em um linux diferente (estou no Ubuntu 17.10). Eu sei que o pior caso em que posso colocar Jessie em uma VM e fazer um "apt-get source", mas uma maneira mais fácil é preferível.

ok, encontrei um pacote fonte aqui (basicamente o mesmo que encontrei na página de pacotes do ubuntu):
http://http.debian.net/debian/pool/main/c/celestia/celestia_1.6.1+dfsg.orig.tar.gz
O problema é que para manter o histórico, o changelog etc. Eu provavelmente precisaria da subpasta completa do debian do seu link de origem. Se estiver tudo bem para compilar a partir do rascunho do pacote fonte acima, posso prosseguir, mas o histórico deb / pacote anterior seria perdido mesmo se eu copiar pelo menos o changelog. Ainda vale a pena ir em frente?

e para responder (talvez) mais especificamente ao ponto:

Vamos executar ping do ex-mantenedor

... e cite o problema original que levou à separação do pacote há 2 anos:

Upstream não produziu nenhum novo lançamento nos últimos 4 anos.
Nesse meio tempo, o pacote está acumulando bugs devido ao bitrot. Já
não era um pacote sem problemas, devido a alguns recursos muito importantes que não
sendo compatível com DFSG.

Para colocar o Celestia de volta no Debian, você precisa abordar os motivos pelos quais tive que removê-lo em primeiro lugar:

  • Faça lançamentos adequados.
  • Se você deseja ter o Celestia no arquivo principal do Debian, certifique-se de que ele vem com arquivos de dados compatíveis com DFSG.
  • Certifique-se de que funciona corretamente no hardware contemporâneo runnign Linux. Teste-o com placas AMD, Intel e Nvidia razoavelmente recentes.
  • Certifique-se de que compila sem avisos (não apenas o código, mas também autoconf e automake devem ser executados sem avisos), e funciona corretamente com bibliotecas que estão no Debian.
  • Certifique-se de que haja um mantenedor dedicado para o pacote Debian (que não serei eu).

Por último, mas não menos importante, Celestia realmente precisa de uma reformulação séria. Mude para C ++ 11, use a biblioteca padrão e Boost quando apropriado, altere o mecanismo de renderização para exigir OpenGL ES 2.0 e elimine o suporte para qualquer coisa mais antiga do que isso. Não tente oferecer suporte a 5 front-ends diferentes no Linux (e isso sem contar as coisas do Windows e do Mac), mas vá para algo que seja verdadeiramente multiplataforma e fique com isso. Se você puder fazer sem um kit de ferramentas de widget completo, eu escolheria o SDL2, caso contrário, recomendaria o Qt5. Se você não se comprometer com isso, receio não ver um futuro brilhante para Celestia.

apenas quando terminei de criar os primeiros pacotes deb não assinados para teste :). Basicamente, seria bom para mim (e talvez para outros) se houvesse alguma maneira de instalá-lo / rodar no debian / Ubuntu novamente. Isso não significa necessariamente tê-lo como parte do arquivo principal debian.
O problema no momento é que nenhum dos pacotes (nem o antigo pacote deb nem o pacote diretamente do site do celestia) conseguiu passar de compilação ...

Posso lidar com os aspectos do código, desde que isso signifique limpeza (sem aviso, C ++ 11 etc.) - qualquer coisa além disso é uma tarefa muito grande. Refazer parece interessante ... talvez algo para se pensar ...

Ok, parece que a equipe celestia nos ouviu e está desenvolvendo uma nova versão QT5 para windows agora :):

https://github.com/CelestiaProject/Celestia

Eu tenho compilado para o Ubuntu agora e funciona fora da caixa. Discutirei com eles como devolver minhas alterações e também verei como fazer um pacote binário .deb.

Isso é algo a ser considerado novamente ou devo apenas me concentrar em fazer o suporte Linux funcionar para eles e tê-lo apenas hospedado do lado deles?

Oi,

aqui vem minha instrução passo a passo para criar um pacote celestia para o Debian 9.

Feliz construção :-)

Instale dependências de compilação

apt-get install git build-essential autoconf debhelper freeglut3-dev liblua5.1-dev libgnomeui-dev libgtkglext1-dev libtheora-dev chrpath libjpeg-dev

Busque a fonte

git clone https://github.com/CelestiaProject/Celestia.git

Configure-o

cd celestia
autoreconf -iv
./configure --with-gnome --enable-cairo --enable-theora --with-lua --disable-warnings --prefix = / usr

Compilar

make -j2

Solução alternativa para erro

exportar MKDIR_P = 'mkdir -p'

Construir pacote Debian

checkinstall -D --pkgversion 1.6.1 make install-strip

Obtenha dependências de pacote

mkdir debian
toque debian / control
dpkg-shlibdeps / usr / bin / celestia
cat debian / substvars

Extrair pacote

dpkg-deb -R celestia_1.6.1-1_amd64.deb.

Adicione dependências a DEBIAN / control (adicione uma nova linha com "Depends:")

Alterar o arquivo de entrada do menu: usr / share / applications / celestia.desktop

[Desktop Entry]
Codificação = UTF-8
Versão = 1.6.1
Type = Application
Exec = celestia -c /usr/share/celestia/celestia.cfg
Ícone = celestia
X-GNOME-DocPath =
Terminal = falso
Nome = Celestia
Comentário = Simulador Espacial
StartupNotify = true
Categorias = Astronomia; Ciência; Aplicação; Educação;

Construir pacote alterado

dpkg-deb --build. ../celestia_1.6.1-1_amd64.deb

Na segunda-feira, 4 de dezembro de 2017 às 06:26:59 +0000, m23project escreveu:

aqui vem minha instrução passo a passo para criar um pacote celestia para o Debian 9.

NÃO é assim que os pacotes Debian apropriados devem ser construídos. Isso nunca vai
ser aceito no Debian, e acho que você está prestando um péssimo serviço aos outros ao
apresentar essas instruções.

Por favor, veja https://wiki.debian.org/Packaging/Intro e / ou os links
postado por @dzraf.

-
Met vriendelijke groet / com os melhores cumprimentos,
Guus Sliepen [email protected]

Oi,

não era minha intenção construir um pacote valioso para ser incluído no Debian.
É apenas um passo a passo para pessoas que desejam criar um pacote por conta própria.

Cu Hauke

Oi! Atualmente estou trabalhando em um pacote para a distro baseada em debian HuayraLinux . Quando eu tiver um pacote mais utilizável (usando o frontend Qt5) (e a pasta debian/ que o recria), irei atualizá-lo.

Eu vi que versões anteriores do celestia foram divididas em vários pacotes no debian (principalmente para resons legais). Alguém pode me dar algum apoio sobre o que vai acontecer? Não tenho experiência em questões legais, mas se eu puder construir um pacote utilizável, acho que pode ser realmente útil para a redistribuição de Celestia.

PS: Continue com o bom trabalho! Celestia é um software maravilhoso!

EDIT: Eu tenho um pacote de trabalho rápido e sujo que usa o pacote WorkInProgress debian

Eu apreciaria muito se vocês fornecerem imagens instantâneas ou flatpack.

fornecemos * .deb e * .appimage por meio de https://build.opensuse.org/package/show/home : munix9: unstable / celestia

Oi,

Eu sou da equipe Debian Astro .

Uma vez que os arquivos Debian já parecem bons: você consideraria manter o pacote diretamente dentro do Debian? Isso permitiria que as pessoas instalassem o Celestia sem nenhum esforço adicional da maneira padrão.

Atenciosamente

Ole

Oi olé,

Esse era realmente o meu plano, mas quando o 1.7 for lançado. Para uma próxima versão 1.6.2, ainda temos o antigo problema com licenças para algumas texturas. E para sistemas semelhantes ao Unix, 1.6.x fornece interfaces glut e gtk2 apenas e temo que o Debian irá abandoná-lo (gtk2) mais cedo ou mais tarde.

Esta página foi útil?
0 / 5 - 0 avaliações