@Jagster
也许我有点过于戏剧化了
因为我绝大部分软件都是通过 apt install 而不是网页浏览器安装的,而且我信任我的软件发行版(Trisquel)只会分发自由软件,所以这通常不是问题。
Jakke Flemming:
你刚才说自定义是不好的
澄清一下,我并不是说自定义本身一定是坏的,只是说如果自定义是非自由的,那它们可能就是坏的。因此,确保避免运行非自由软件的一种方法就是禁用自定义。
Jakke Flemming:
如果基础是开源的,那么每个附加组件也必须是自由的
我认为所有软件都应该是自由/ libre 的。
@Jagster @RGJ
澄清一下,我并不是想说 Discourse 是非自由的。只是 Discourse 的这个特定发行版(Discourse Meta)似乎包含了非自由软件。
@Jagster @merefield
Robert:
你无法预测托管商随后可能会将其适应做什么。
我应该在之前的帖子中提到,我认为这个发行版是自由的另一个原因是,Discourse 的关于页面 上写着:“Discourse 只有一个版本——那个很棒的开源版本 。”。这从技术上讲是正确的,因为插件不属于 Discourse 的一部分,但这让我觉得具有误导性。
Discourse 可能无法控制第三方发行版,但如果他们在关于页面上如此宣称,我原本会期望由 Discourse 托管的 Discourse 实例是自由软件。我也曾期望有一个许可证和/或框架,能有效地要求衍生作品必须是自由软件,Discourse 是 GPL 许可证,某种程度上确实如此,但我猜它并不涵盖插件。
@merefield @NateDhaliwal
我认为为软件或服务收费是可以的;通常“自由软件”中的“自由”指的是“libre”,即你在使用它(复制、修改等)之后,可以自由地做任何你想做的事。这并不一定意味着它是“免费”的,即零成本。
@NateDhaliwal
严格来说,是的,没有人会阻止我,但这是违法的,这似乎不好。对于私人用途,这可能行得通,但一般来说,公共软件仓库和应用程序商店不想包含非法代码,而且一些我可能希望使用该软件的人可能会对运行非法复制的代码感到不安。我不确定我的方法是否正确;也许我应该完全忽略版权,但这似乎不是避免非法和非自由软件的最佳选择。
别担心! 我不觉得你粗鲁,也不觉得我们是在兜圈子。
@RGJ
Richard - Communiteq:
运行自由软件并不意味着你对其拥有控制权。
你这话是什么意思?如果软件是自由的,那就意味着我可以修改它;因此,我确实对其功能拥有控制权。
我不认为“自由”等同于“受信任”;也许我应该说“任意”而不是“不受信任”,但我的观点是,大多数浏览器会执行网页给它们的任何代码,而且因为我经常访问以前从未访问过的网站,所以我访问的许多网站都是“不受信任”的。对于这些网站,我没有理由认为它们不会发送非自由软件。
关于 NPM,我认为它比任意网站更受信任,但可能不如我的 apt 或 guix 仓库受信任。不过,信任不是单维度的;虽然我不会仅仅因为某个新包在 NPM 上就信任它,但我会信任当我从 NPM 下载 JQuery 时,它确实是 JQuery。NPM 可能会犯错,允许攻击者替换 JQuery,但 NPM 可以采取一些措施来避免恶意软件,而这些措施对于网站提供的 JavaScript 来说是不太现实的(例如,发布前的自动/人工审查、发布后的众包审查、自动检查混淆/压缩后的脚本是否与源代码匹配、禁止在运行时下载和运行任意代码的规则)。重要的是,当在 NPM 上发现恶意软件时,有一个第三方(NPM,而不是软件开发人员)可以报告,以便将其移除。对于网站提供的 JavaScript 则不是这种情况——唯一能移除它的是网站运营商。
这是否意味着,如果服务器管理员进行了修改但没有同时更改列出的提交哈希,那么列出的提交哈希就是不正确的?我以为更新软件会自动更改提交哈希,我(错误地?)假设列出的提交哈希会自动更新。
插件注入的 JavaScript 会在 safe_mode=no_themes,no_unofficial_plugins 下被禁用吗?
Richard - Communiteq:
我不愿打破你的幻想,但这并不属实。
那么,在使用 Discourse 时避免非自由软件的唯一方法,是不是将 Discourse 客户端打包为浏览器扩展或 Haketilo 包或类似的东西?
Richard - Communiteq:
这无关自由或非自由、开源或闭源,而是关于信任。
我不太明白你的意思,考虑到我的原始问题是关于软件自由的,而不是信任。
我不同意你列出的每个人都必须被信任。
如果你不运行他们提供的软件,例如如果你从 GitHub 获取 Discourse 客户端并将其打包以便与该服务器一起使用,那么就不需要信任服务器管理员。
在许多情况下,合作开发软件的人可能会阅读彼此的部分提交,因此我不需要单独信任所有作者。
那么这是否意味着 Discourse Meta 客户端是专有软件?不过,可以使用安全模式禁用插件的 JavaScript。
也许吧,但如果我想避免非自由软件,那并没有太大帮助。
@NateDhaliwal
我阅读了 Discourse git 仓库中的许可证,但由于 CLA 的存在,它不一定适用于该仓库之外的 Discourse 衍生作品。我希望在每个 Discourse 发行版上都能看到一条说明,指出分发的哪些软件是 libre 的。这甚至(在我看来)符合 GPL 的精神:“你必须向他们展示这些条款,让他们知道他们的权利”。
@Mevo
是的,这是可能的,可以通过浏览器扩展或代理(如 Haketilo 或 GreaseMonkey)运行 JavaScript,尽管对于某些软件来说这可能非常不切实际,例如如果它更新非常频繁,就像数据被内置到 JavaScript 软件中的情况那样。Haketilo 也不支持某些类型的脚本,例如类型为“module”的脚本。
Mevo:
这样理解公平吗?
是的,我认为你的理解总体上是正确的。不过,将 JavaScript 打包为浏览器扩展或用于 Haketilo 或 GreaseMonkey,实际上会形成一个独立的已安装客户端,即使它使用的是 JavaScript。
@HAWK
我猜你说的“一切”是指“属于 Discourse 的一部分的所有内容”,即不包括像 discourse-customer-flair-plugin 这样的插件?