我发现适用于 Mac 的 GPL-ed SIP 客户端 Blink。我想从源代码构建它,因为二进制文件只能作为付费下载。
仅供参考,我在大学学习编程,但没有从源代码构建复杂应用程序的经验。
下载完存储库内容后,我打开了 Xcode 项目并尝试在 OS X 10.7、Xcode 4.2.1 上构建。不幸的是,构建失败,出现 1 个错误和许多警告。大多数警告如下:
Attribute Unavailable: Custom Identifiers in Interface Builder versions prior to 3.2
错误信息是:
Apple Mach-O Linker (ld) Error
Command /Developer/usr/bin/clang failed with exit code 1
警告之前
Apple Mach-O Linker (ld) Warning
directory not found for option '-L/Users/Sergio/Downloads/Blink/devel.ag-projects.com/repositories/public/blink-cocoa/Distribution/Frameworks'
我注意到在所需文件列表中缺少以下文件:
Dependencies/Frameworks
libgcrypt.11.6.0.dylib
libgcrypt.11.dylib
libgnutls-extra.26.dylib
libgnutls.26.dylib
libgpg-error.0.dylib
libintl.8.dylib
liblzo.1.dylib
libtasn1.3.dylib
Dependencies/Resources
lib
Frameworks/Linked Frameworks
Sparkle.framework
Products
Blink.app
应该可以从某个地方下载这些文件。不幸的是,谷歌搜索没有帮助。项目网站上没有文档。
正如 Kifosis 所说,开发者网站上的人们建议遵循本指南 ,不幸的是它很长,很不清楚(至少对我来说)并且似乎我必须安装大量的依赖项,每个依赖项都有单独的下载网站,单独的有关如何构建它们的说明以及可能单独的依赖项。
在我看来,所有这些都非常令人困惑,难道我真的必须安装一堆软件,只是因为它们没有在项目目录中包含一些文件吗?我知道 GPL v3 可能允许这样做,但它只会鼓励人们依赖第三方服务器(将来可能无法使用)和支持文档,更不用说当提供的链接太通用时,让人们没有真正合适的方法来完成工作。
我不是安装此必需依赖项的专家,我按照我提到的指南进行操作,但是当我输入
curl -O ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error- 1.10.tar.bz2
结果是这样的:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (78) RETR response: 550
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://ar.libero.it/nxd_an.html">here</a>.</p>
</body></html>
答案1
这不起作用的原因是libgpg-error-
和 之间有一个空格1.10.tar.bz2
:
curl -O ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error- 1.10.tar.bz2
如果你运行它,它会起作用:
curl -O ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2
答案2
我设法在 OS X Mavericks 上构建了它。我找不到自己构建这些依赖项的简单方法,因此我从他们的一个免费品牌 Blink 客户端中复制了它们。
我已经创建了一个带有说明的要点:https://gist.github.com/lucaspiller/8194862
答案3
看起来他们故意“忘记”了这些库!我认为最好的办法是直接联系他们,询问他们从哪里可以得到构建应用程序所需的所有东西。
我不是 GPL 专家,但我认为他们有义务至少向您提供必要库的链接,只要它们也获得了 GPL 许可,否则他们使用 GPL 只是为了说“嘿,我们很酷,我们使用 copyleft”,并且实际上没有提供任何方式来构建他们的程序,因此违背了作为开源项目的目的,甚至违背了 GPL 许可项目的目的,而 GPL 许可项目应该是完全 copyleft 的……
如果成功的话请告诉我。
否则,我很乐意购买该应用程序,然后询问我是否可以获得可用的源代码树;如果他们拒绝,这显然违反了 GPL 的原则。
祝你好运!
PS:商业 IDE Komodo(可免费试用)也可能有助于构建项目,因为后者似乎包含此 IDE 的项目文件