【问题标题】:How to abort a macports portfile on an error condition?如何在错误情况下中止 macports 端口文件?
【发布时间】:2020-10-03 09:10:20
【问题描述】:

我在 cc65 上进行版本升级,遇到了 linuxdoc-tools 的问题。由于我无法修复 linuxdoc-tools 并且可能有一个简单的解决方法,我决定添加一个 if 语句来通知用户以及解决方法:

    if {! [file exists ${prefix}/bin/perl] } {
        ui_error "
«${prefix}/bin/perl» is missing but the linuxdoc-tools depends on it.

Please create an appropriate symbolic link for linuxdoc-tools to work.
"
    exit 1
    }

粗略但我能做的最好,因为我既不是 perl5 也不是 linuxdoc-tools 维护者,我不想花太多时间在版本凹凸。

但是,MacPorts 不理解 exit 1ui_error 不会自行停止执行。

如何停止执行,以免浪费用户时间在构建上,否则最终会失败。

【问题讨论】:

    标签: macports tlc


    【解决方案1】:

    使用return -code error "error message",或同一事物的简写error "error message"

    请注意,在此之前您应该使用ui_error 为用户打印人类可读的消息 - 在打印错误消息的同时,它有时会在输出中丢失。

    另外,请注意$prefix/bin/perllinuxdoc-tools 的构建依赖项。如果在运行时也需要它,您应该提交一个将 depends_run path:bin/perl:perl5 添加到端口的拉取请求,而不是尝试在您的端口中修复此错误。

    【讨论】:

    • linuxdoc-tools 的好点——perl 中的依赖项应该是运行时而不是构建时——然而,端口是 nomaintainer。因此,如果我写了一张票,那么会有人来解决这个问题。
    • 对于如此简单的更改,提交拉取请求通常是解决此问题的最快方法。然而,在这种特殊情况下,无论如何,Ryan 更快并且已经修复它:github.com/macports/macports-ports/commit/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多