Printing 为什么ghostscript是cups的必需依赖项?

Printing 为什么ghostscript是cups的必需依赖项?,printing,ghostscript,cups,Printing,Ghostscript,Cups,取决于ghostscript,但是如果我理解正确,ghostscript是一个PDF/PS解释器,我们需要向CUPS发送PDF/PS,但打印机不支持这两种格式。 对于提供CUPS驱动程序(也称为光栅驱动程序)的打印机: 但如果我有一台PS打印机,那么就不需要过滤器,也不应该调用ghostscript 为什么要向非自由软件添加一个简单情况下不需要的依赖项(如果我错了,请纠正我,但AFAIK ghostscript是双重AGPL/商业许可证) 更新 从 […]Linux下CUPS的上游标准(使用C

取决于ghostscript,但是如果我理解正确,ghostscript是一个PDF/PS解释器,我们需要向CUPS发送PDF/PS,但打印机不支持这两种格式。 对于提供CUPS驱动程序(也称为光栅驱动程序)的打印机:

但如果我有一台PS打印机,那么就不需要过滤器,也不应该调用ghostscript

为什么要向非自由软件添加一个简单情况下不需要的依赖项(如果我错了,请纠正我,但AFAIK ghostscript是双重AGPL/商业许可证)

更新 从

[…]Linux下CUPS的上游标准(使用CUPS和我们的CUPS过滤器包)是基于PDF的作业处理[…]。唯一的例外是,如果输入数据是PostScript,并且打印机是PostScript打印机,或者打印机驱动程序需要PostScript作为输入。然后我们不会将PostScript转换为PDF并返回PostScript,而是像以前一样通过pstops过滤器传递PostScript


Ghostscript确实是双重许可的。我真的看不出这是个什么问题,因为其中一个许可证是AGPL。如果你需要处理PostScript,那么你需要一个PostScript解释器,祝你好运找到另一个(完成3级)解释器。AIUI CUPS在内部将所有内容转换为PDF,通过过滤器传递PDF,然后在最后将PDF转换为“打印机格式”。因此,如果您使用PostScript并将其发送到PostScript打印机,它仍然会在两者之间转换为PDF(警告:我可能错了,我不是CUPS专家)。我已经更新了关于您关于将PS转换为PDF的评论的答案(但我既不是CUPS专家,也可能错)。关于寻找另一个PostScript解释器,这不是我要寻找的,我只是想了解Ghostscript是CUPS中必须的,还是在某些情况下可以避免它。也许我误解了AGPL许可证,只要我不修改源代码,使用Ghostscript就没有问题。即使您修改了Ghostscript源代码,您也可以使用Ghostscript。当然,所有开源作者都希望人们提供反馈和改进!只有在提供使用Ghostscript的产品或服务时,您才会遇到许可问题。我意识到这有点含糊不清,但我非常确定,例如,在打印服务中使用它不会被视为侵权。与您(大概)使用Linux的方式相同,Linux也是GPL许可的。现在,关于CUPS,您的帖子可能没有将PostScirpt转换为PDF。同样,CUPS如何知道您的特定安装不会(也永远不会)使用PostScript->PDF或PDF->PostScript?要实现软件的完整功能,您需要所有依赖项,即使您的特定用例不会实际使用它们。但是,如果提供一个对Ghostscript一无所知但向使用Ghostscript的CUPS服务器发送打印作业的商业产品呢?。关于我的特定安装不要使用PS->PDF或PDF->PS,AIUI如果CUPS找不到将输入mime类型转换为另一个特定mime类型的筛选器,则它在运行时失败,表示找不到转换输入格式的方法。