2012-07-23 74 views
6

我对cygport包中源代码的结构有疑问。如何从CygPort建立src?

这里是一个Cygports源文件的内容:

  • 为项目(tar.gz的,TAR.BZ2等)
  • 的任何数量的* .patch文件实际的源代码包。
  • 一个.cygport文件

我试图建立从cygports库的gedit-3.4.2。

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

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

有什么办法可以使用cygport可执行文件来构建cygport并更改前缀吗?

这里是gedit-3.4.2-1.cygport内容:从Cygwin的ports邮件列表

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" 

编辑有人说:

“配置选项是

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

这是从CYGCONF_ARGS。 “

回答

16

这里是一个Cygports源文件的内容:

你会做更好的把它看作一个Cygwin的包的源文件。

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

cygport之前,人们确实建立了自己的特设的包装系统。许多Cygwin包维护者仍然使用他们创建的这些工具。 (此致包括;二是我三个包的使用cygport,但第三仍然采用了自定义生成系统。)

最后,你想读的cygport说明书,/usr/share/doc/cygport/manual.html

(是的,我知道,“RTFM”的答案在这里皱起了眉头。但是,作为一个谁目前维持两个cygport基于包在官方Cygwin包库,请相信我,当我告诉你,手动还是这个主题提供的最好的资源。)

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

当你通过其他资源的发现,你首先需要在.cygport文件编辑CYGCONF_ARGS值。

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

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

(这是cygport或一个健全的构建系统非常少见,破坏构建树,迫使你重新运行prep,远远更常见的是,你最终需要重新做prep当你手动沉船建立树,同时试图获得一个新的包第一次建立,需要重新开始。)

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

你或许可以修复由官方Cygwin包库与setup.exe安装libaspell-devel包。我个人不会禁用任何功能,除非它意味着安装非官方软件包,例如Cygwin Ports项目中的软件包。[*] Cygwin Ports存储库很好,但是因为它包含了很多软件包,所以安装了一个可能会导致创建一个“安装世界”的情况:程序包A依赖于程序包B,C和D,而C依赖于E,F,G,H和G,这取决于I,J,K和...依赖项Cygwin软件包回购协议中的层次结构比Cygports回购协议中的层次结构更扁平和更窄。

有什么方法可以使用cygport可执行文件来构建cygport并更改前缀吗?

你已经猜到你只是加--prefix=/my/private/program/treeCYGCONF_ARGS,我相信。


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

+1

真的很棒的答案。已经使用过5次了。 – 2013-07-01 20:05:23