Celestia: 提供一个 Debian Stretch 包

创建于 2017-06-22  ·  20评论  ·  资料来源: CelestiaProject/Celestia

或者甚至可以提供一个基本的 /debian/ 目录。

背景:Stretch(新马厩),掉落 Celestia。 这对 Debian 生态系统和用户来说是一个巨大的损失。
(顺便说一句,也失去了可能的贡献者的来源)

packaging

最有用的评论

你好,

这是我为 Debian 9 创建 celestia 软件包的分步说明。

快乐建筑:-)

安装构建依赖

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

获取源码

git 克隆https://github.com/CelestiaProject/Celestia.git

配置它

cd 塞拉斯蒂亚
自动重新配置 -iv
./configure --with-gnome --enable-cairo --enable-theora --with-lua --disable-warnings --prefix=/usr

编译

制作 -j2

make 错误的解决方法

导出 MKDIR_P='mkdir -p'

构建 Debian 软件包

checkinstall -D --pkgversion 1.6.1 make install-strip

获取包依赖

mkdir debian
触摸 debian/控制
dpkg-shlibdeps /usr/bin/celestia
猫 debian/substvars

提取包

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

向 DEBIAN/control 添加依赖项(添加带有“Depends:”的新行)

更改菜单项文件:usr/share/applications/celestia.desktop

[桌面输入]
编码=UTF-8
版本=1.6.1
类型=应用程序
exec=celestia -c /usr/share/celestia/celestia.cfg
图标=天体
X-GNOME-DocPath=
终端=假
名称=塞拉斯蒂娅
评论=空间模拟器
启动通知=真
类别=天文学;科学;应用;教育;

构建更改的包

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

所有20条评论

@drzraf Alexell 不适用于 Linux,并且绝对不熟悉上述内容。 现在我们没有一个人了解 Linux 的 Celestia 代码。
请描述一下,我们究竟应该怎么做才能解决这个问题? 谁能做到这一点?

[ ] 使用 Debian 的人已经制作了一个 Debian 软件包(或想学习它)
[ ] 为 Celestia 安装必要的 Linux 构建环境
最标准的是所需的构建工具(autotools、cmake、..)越好/越简单
[] 在 Debian 上构建、运行和测试 Celestia

从这个可以创建 Debian 必要的文件(可能修改旧版本),规定程序的一些特征。
[ ] 它需要构建的依赖项 [软件/版本]
[ ] 它需要运行的依赖项 [软件/版本]

如果由于某种原因它崩溃,错误,......需要一些自定义补丁
而这些往往是 Debian 维护者最痛苦的工作。
在上游代码中快速修复大多数问题在这里很有帮助。

在最好的情况下,Debian/Linux 不需要额外的补丁来构建和运行。 然后打包只需几个基本文件(https://wiki.debian.org/Packaging),然后即可轻松下载/安装。

在 Debian 9 存储库中分发(再次)软件包更多的是“社会工作”,但我认为 Linux 上的软件构建/稳定性是唯一真正可能的阻碍。

顺便说一句,另一个/替代方向: flatpak

@drzraf您精通您所写的内容。 也许你可以自己做所有事情? 我们将非常感谢您的帮助。

我尝试在 Stretch 上安装 Celestia,但我遇到了 glu.h、libjpg、libpng 的问题,并且请求的 lua 版本太旧,即使在成功配置 make 失败后
可能有帮助

好吧,我,尤其是我的孩子们现在已经有一段时间想念塞拉斯蒂娅了。 我的第一次尝试也是从 celestia projetc 页面的 1.6.1 代码构建(这有多难......)。 稍后修复了一些代码,链接器错误阻止了我。 今天,我在 Ububtu 17.10 上运行了几年后第一次运行它。

接下来是什么? 有什么方法可以提供我的更改并使 celestia 恢复一段时间吗?

一个问题,因为我绝对不是汽车制造大师......我需要解决命令行上的一个方面:

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

问题是所有 celestia 库都在一个 automake 变量 $(all_libraries) 中,出于某种原因,-ldl 需要完全落后于 libcelengine.a .... 第一个 -ldl 没有帮助。 我可以为 libcelengine.a 等特定库添加链接器标志吗?

很高兴能帮它找回来——我的孩子们会很高兴,因为 celestia 真的是一种很好的、​​有趣的方式来观察我们的宇宙:)。

伟大的@TheBigW。
你认为-ldl编译调整是在以前的 Celestia Debian 软件包中的吗?
请参阅https://sources.debian.net/src/celestia/1.6.1%2Bdfsg-3.1/debian/patches/ (OP) 以获取在以前的 Debian 版本中构建 Celestia 所需的补丁列表。

我的印象是从1.6.1 包debian/目录开始可能是正确的方向。 然后,使用dpkg-buildpackage ,您应该能够生成一个 Debian 软件包。

可能必须从当前的debian/ 目录改编的内容可能是:

  • control文件中的构建/运行时依赖项的版本(使用 Debian 的 Stretch 版本)
  • 补丁/ 有一个系列文件,确定哪个应用按哪个顺序应用,哪个不应用
  • 也许更改日志
    (有些可能已经集成到 Celestia 的 git 中,有些可能没有,但大多数可能应该)

我很高兴能够自己(我在 Debian Stretch 上)使用您将添加到 debian/ 目录中的更改来dpkg-buildpackage 。 然后我可以测试生成的包的稳定性。
(在某些时候,你可以在 Debian 的 bugtracker 上打开一个 ITP-bug ( Intend to Package ),并希望一个稳定的包可以回到存储库中,并取悦这么多的 Debian 用户。

嗨,德拉夫,
上面提到的 -ldl 应该可以工作,但据我所知,它只在配置文件中修复。 如果我没有错,下一个 ./configure 将覆盖它 - 但对于构建包,这将起作用(仍然比在命令行上手动链接更好:))。
一个问题:我使用我找到的 Ubuntu src 包作为 zip 下载。 这对我有用,但当然会错过所有 Debian 细节(更改日志等...)。你知道我如何让以前的 debian celestia src 包在不同的 linux 上运行(我在 Ubuntu 17.10 上)。 我知道在最坏的情况下,我可以在 VM 中获取 Jessie 并执行“apt-get source”,但更可取的方法是更简单的方法。

好的,我在这里找到了一个源包(基本上和我在 ubuntu 包页面上得到的一样):
http://http.debian.net/debian/pool/main/c/celestia/celestia_1.6.1+dfsg.orig.tar.gz
问题是要维护历史记录、更改日志等。我可能需要您的源链接中的完整 debian 子文件夹。 如果可以从上面的源包形式从头开始构建,我可以继续,但即使我至少复制了更改日志,以前的 deb/包历史也会丢失。 还值得继续吗?

并更具体地回答(也许):

让我们 ping 前维护者@gsliepen / 上传者 @kees

...并引用导致包孤立的原始问题 2 年前:

Upstream 在过去 4 年中没有发布任何新版本。
与此同时,由于bitrot,该软件包正在积累错误。 它已经
不是一个无故障的包,由于一些非常重要的资源不是
符合 DFSG。

为了让 Celestia 重新进入 Debian,您首先需要解决我必须将其删除的原因:

  • 进行适当的发布。
  • 如果您想在 Debian 的主存档中使用 Celestia,请确保它带有与 DFSG 兼容的数据文件。
  • 确保它在现代硬件 runnign Linux 上正常运行。 使用相当新的 AMD、Intel 和 Nvidia 卡对其进行测试。
  • 确保它在编译时没有警告(不仅是代码,而且 autoconf 和 automake 都应该在没有警告的情况下运行),并且与 Debian 中的库一起正常工作。
  • 确保 Debian 软件包有专门的维护者(不会是我)。

最后但并非最不重要的一点是,塞拉斯蒂娅真的需要认真地重新审视一下。 移至 C++11,在适当的情况下使用标准库和 Boost,更改渲染引擎以要求 OpenGL ES 2.0 并放弃对任何更早版本的支持。 不要试图在 Linux 上支持 5 个不同的前端(这甚至不包括 Windows 和 Mac 的东西),而是选择真正跨平台的东西并坚持下去。 如果您不需要成熟的小部件工具包,我会选择 SDL2,否则我会推荐 Qt5。 如果你不承诺,恐怕我看不到塞拉斯蒂娅的美好未来。

就在我完成创建第一个未签名的 deb 包进行测试时:)。 基本上,如果有任何方法可以让它再次在 debian/Ubuntu 上安装/运行,对我(也许还有其他人)来说会很好。 这并不一定意味着将其作为 debian 主存档的一部分。
目前的问题是,没有任何软件包(旧的 deb 软件包和直接来自 celestia 站点的软件包)甚至无法通过编译...

我可以处理代码方面,只要它意味着清理(无警告、C++11 等)——任何进一步的工作都是一个相当大的任务。 Do-over 听起来很有趣……也许需要考虑一下……

好的,看起来 celestia 团队已经听到了我们的意见,现在正在为 Windows 开发新的 QT5 版本:):

https://github.com/CelestiaProject/Celestia

我现在为 Ubuntu 编译了它,它开箱即用。 我将与他们讨论如何将我的更改返回给他们,我还将了解如何完成 .deb 二进制包。

这是要再次考虑的事情,还是我应该只专注于让 linux 支持为他们工作并将其托管在他们身边?

你好,

这是我为 Debian 9 创建 celestia 软件包的分步说明。

快乐建筑:-)

安装构建依赖

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

获取源码

git 克隆https://github.com/CelestiaProject/Celestia.git

配置它

cd 塞拉斯蒂亚
自动重新配置 -iv
./configure --with-gnome --enable-cairo --enable-theora --with-lua --disable-warnings --prefix=/usr

编译

制作 -j2

make 错误的解决方法

导出 MKDIR_P='mkdir -p'

构建 Debian 软件包

checkinstall -D --pkgversion 1.6.1 make install-strip

获取包依赖

mkdir debian
触摸 debian/控制
dpkg-shlibdeps /usr/bin/celestia
猫 debian/substvars

提取包

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

向 DEBIAN/control 添加依赖项(添加带有“Depends:”的新行)

更改菜单项文件:usr/share/applications/celestia.desktop

[桌面输入]
编码=UTF-8
版本=1.6.1
类型=应用程序
exec=celestia -c /usr/share/celestia/celestia.cfg
图标=天体
X-GNOME-DocPath=
终端=假
名称=塞拉斯蒂娅
评论=空间模拟器
启动通知=真
类别=天文学;科学;应用;教育;

构建更改的包

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

在 2017 年 12 月 4 日星期一上午 06:26:59 +0000,m23project 写道:

这是我为 Debian 9 创建 celestia 软件包的分步说明。

这不是应该如何构建正确的 Debian 软件包。 这永远不会
被 Debian 接受,我认为你在伤害他人
提供这些说明。

请参阅https://wiki.debian.org/Packaging/Intro和/或链接
由@dzraf 发布。

——
遇见了 vriendelijke groet / 亲切的问候,
Guus Sliepen [email protected]

你好,

我无意构建一个有价值的软件包以包含在 Debian 中。
对于想要自己构建软件包的人来说,这只是一个循序渐进的过程。

库豪克

你好! 我目前正在为基于 debian 的发行版HuayraLinux开发一个软件包。 当我有一个最可用的包(使用 Qt5 前端)(以及重新创建它的debian/文件夹)时,我会更新它。

我已经看到早期版本的 celestia 在 debian 上分成几个包(主要是为了法律原因)。 任何人都可以给我一些支持吗? 我在法律问题上没有经验,但如果我可以构建一个可用的包,我认为它对重新分配 Celestia 非常有用。

PS:继续努力! Celestia 是一个很棒的软件!

编辑:我有一个快速和肮脏的工作,它使用WorkInProgress debian的cspice

如果你们提供快照或扁平包装图像,我将不胜感激。

我们通过https://build.opensuse.org/package/show/home :munix9:unstable/celestia 提供 *.deb 和 *.appimage

你好,

我来自Debian Astro团队。

由于 Debian 文件看起来已经很不错了:您会考虑直接在 Debian 中维护软件包吗? 这将允许人们以标准方式安装 Celestia,而无需任何额外的努力。

此致

奥莱

嗨,奥莱,

这实际上是我的计划,但是当 1.7 发布时。 对于即将发布的 1.6.2 版本,我们仍然存在一些纹理许可证的旧问题。 对于类 Unix 系统,1.6.x 仅提供 glut 和 gtk2 接口,我担心 Debian 迟早会放弃它(gtk2)。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

shujaatak picture shujaatak  ·  9评论

furquan-lp picture furquan-lp  ·  8评论

CelestiaProject picture CelestiaProject  ·  8评论

munix9 picture munix9  ·  28评论

Panterstruck picture Panterstruck  ·  9评论