如何从CygPort构建src?

时间:2012-07-23 19:45:14

标签: cygwin gedit ports

我对cygport包中的源代码结构有疑问。

以下是Cygports源文件的内容:

  • 项目的实际源包(tar.gz,tar.bz2等)
  • 任意数量的* .patch文件。
  • a .cygport文件

我正在尝试从cygports存储库构建gedit-3.4.2。

.cygport文件如何帮助我在./configure中运行正确的选项?

例如,在gedit中,如果我没有指定--disable-spell,它将不会因错误而继续。如何在构建cygport时获取用于构建项目的./configure选项列表?

我们是否可以通过某种方式使用cygport可执行文件来构建cygport并更改前缀?

以下是gedit-3.4.2-1.cygport的内容:

inherit python gnome2

DESCRIPTION="GNOME text editor"

PATCH_URI="3.4.2-cygwin.patch"

DEPEND="gnome-common gtk-doc
    girepository(Gtk-3.0)
    pkgconfig(enchant)
    pkgconfig(gtksourceview-3.0)
    pkgconfig(libpeas-gtk-1.0)"

PKG_NAMES="${PN} ${PN}-devel"
PKG_HINTS="setup devel"
gedit_CONTENTS="--exclude=gtk-doc --exclude=libgedit* etc/ usr/bin/ usr/lib/gedit/ ${PYTHON_SITELIB#/} usr/share/"
gedit_devel_CONTENTS="usr/include/ usr/lib/gedit/libgedit* usr/lib/pkgconfig/ usr/share/gtk-doc/"

DIFF_EXCLUDES="*.desktop.in *.schemas.in *-marshal.h"

CYGCONF_ARGS="--libexecdir=/usr/lib --enable-python"

KEEP_LA_FILES="none"

编辑来自Cygwin Ports邮件列表的人说:

“配置选项

--libexecdir=/usr/lib --enable-python

来自CYGCONF_ARGS。“

1 个答案:

答案 0 :(得分:17)

  

以下是Cygports源文件的内容:

您最好将其视为 Cygwin 包源文件。

cygport只是一个自动创建Cygwin二进制和源包的工具。它是可用的主要工具,但与其他一些包装系统不同,实际上并没有强迫您使用它。完全可以手工构建一个Cygwin包,因为它实际上只是一个tarball,Cygwin的setup.exe可以盲目地解压缩到Cygwin根目录(通常是c:\cygwin),期望这个将包裹的文件放在合理的位置。

cygport存在之前,人们确实构建了自己的 ad hoc 包装系统。许多Cygwin软件包维护者仍然使用他们创建的这些工具。 (你的确包括在内;我的三个软件包中有两个使用cygport,但第三个软件包仍使用自定义构建系统。)

最后,您想阅读cygport中的/usr/share/doc/cygport/manual.html手册。

(是的,我知道,“RTFM”的答案在这里不受欢迎。但是,作为一个目前在官方Cygwin软件包存储库中维护两个基于cygport的软件包的人,请相信我,当我告诉你手册时仍然是这个主题的唯一最佳资源。)

  

.cygport文件如何帮助我在./configure中运行正确的选项?

当您通过其他资源发现时,首先需要修改CYGCONF_ARGS文件中的.cygport值。

之后最简单的步骤是cygport gedit-3.4.2-1.cygport all。它试图在一个步骤中重建所有二进制包。它还构建了一个包含更新的.cygport和补丁文件的新源包。

如果all构建过程中出现问题,通常可以更快地切换到使用all包含的子命令,而不是完全重新启动该过程。 all步骤按此顺序为您运行prepcompileinstallpackagefinish。例如,如果all在编译步骤中失败,则可能无需重复prep步骤。

cygport或理智的构建系统破坏构建树非常罕见,迫使您重新运行prep。更常见的是,您最终需要重新执行{ {1}}当你手动破坏构建树时,尝试首次构建一个新包并需要重新开始。)

  

例如,在gedit中,如果我没有指定--disable-spell,它将不会因错误而继续。

您可以通过使用setup.exe从官方Cygwin软件包存储库安装prep软件包来解决这个问题。

就个人而言,我不会禁用任何功能,除非它意味着安装非官方软件包,例如来自Cygwin Ports项目的软件包。[*]很高兴有Cygwin Ports存储库,但因为它包含很多软件包安装一个最终会创建一个“安装世界”的情况:包A取决于包B,C和D,而C取决于E,F,G,H和G取决于I,J,K和。 .. Cygwin包回购中的依赖层次结构往往比Cygports回购中的依赖层次结构更平坦,更窄。

  

我们是否可以通过某种方式使用cygport可执行文件来构建cygport并更改前缀?

我猜你只是将libaspell-devel添加到--prefix=/my/private/program/tree,我相信。


[*]如果您对“Cygwin Ports”和CYGCONF_ARGS感到困惑,命名相似性并非巧合。 cygport是Yaakov Selkowitz在创建Cygwin Ports软件包库时为自己创建的工具。后来,它在其他Cygwin软件包维护者中变得非常受欢迎,它推出了大部分竞争构建系统。