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

这是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的内容:
    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。”

    最佳答案



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

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

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

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



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

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

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

    (cygport或健全的构建系统破坏构建树是极少见的,这迫使您重新运行prep。更常见的是,当您尝试破坏构建树并手动获取时,最终需要重新执行prep首次构建的新程序包,需要重新开始。)



    您可能可以通过使用 libaspell-devel 从官方Cygwin软件包存储库中安装setup.exe软件包来解决此问题。

    我个人不会禁用任何功能,除非它意味着安装非官方的软件包,例如Cygwin Ports项目中的软件包。一种“安装世界”的情况:程序包A取决于程序包B,C和D,而程序包C取决于E,F,G,H和G取决于I,J,K和...。Cygwin中的依赖关系层次结构软件包仓库通常比Cygports仓库中的仓库更平整,更窄。



    您已经猜到您只是将--prefix=/my/private/program/tree添加到CYGCONF_ARGS中,我相信。

    [*]如果您对“Cygwin Ports”和cygport感到困惑,则命名相似之处并非巧合。 cygport是Yaakov Selkowitz在创建Cygwin Ports软件包存储库时为自己创建的工具。后来,它在其他Cygwin软件包维护人员中变得非常流行,以至于它淘汰了大多数竞争的构建系统。

    关于cygwin - 如何从CygPort构建src?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11619415/

    10-09 05:11