代码之家  ›  专栏  ›  技术社区  ›  Nicholas DiPiazza

如何从CygPort构建src?

  •  9
  • Nicholas DiPiazza  · 技术社区  · 13 年前

    我有一个关于cygport包的源代码结构的问题。

    以下是Cygports源文件的内容:

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

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

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

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

    有没有什么方法可以使用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 回复  |  直到 13 年前
        1
  •  19
  •   Warren Young    12 年前

    以下是Cygports源文件的内容:

    你最好把它看作 赛格温 包源文件。

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

    之前 赛格波特 存在的时候,人们确实建造了自己的 特别的 包装系统。许多Cygwin包维护者仍然使用他们创建的这些工具。(你的真的包括在内;我的三个包裹中有两个使用 赛格波特 ,但第三个仍然使用自定义构建系统。)

    最终,您想阅读 赛格波特 手动,在 /usr/share/doc/cygport/manual.html

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

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

    正如您通过其他资源发现的那样,您首先需要编辑 CYGCONF_ARGS 中的值 .cygport 文件

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

    如果有什么东西坏了 all 在构建过程中,切换到使用包含的子命令通常会更快 全部的 而不是完全重新启动该过程。这个 全部的 步骤只是运行 prep , compile , install , package finish 为你,按顺序。例如,如果 全部的 在编译步骤中失败,可能不需要重复 把…准备好

    (对于 赛格波特 或者一个健全的构建系统破坏构建树,迫使你重新运行 把…准备好 .更常见的情况是,你最终需要重新做 把…准备好 当你 手动 在尝试第一次构建新包时破坏构建树,需要重新开始。)

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

    您可能可以通过安装 libaspell-devel 来自官方Cygwin软件包存储库的软件包 setup.exe

    就我个人而言,我不会禁用任何功能,除非它意味着安装非官方软件包,比如 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/tree CYGCONF_ARGS公司 ,我相信。


    [*]如果您对“Cygwin Ports”和 赛格波特 ,命名相似并非巧合。 赛格波特 是Yaakov Selkowitz在创建Cygwin Ports包存储库时为自己创建的工具。后来,它在其他Cygwin包维护者中变得足够流行,以至于推出了大多数竞争的构建系统。