We have a commercial .NET desktop application that uses a nuget package called Magick.NET. Magick.NET is licensed under Apache License.

Some functions in Magick.NET relies on Ghostscript (AGPL licensed). In order to use those functions, users have to install Ghostscript manually. That means Magick.NET is using Ghostscript at runtime.

Can I distribute Ghostscript installer with our application installer? Do I have to opensource our application?


Firstly, IANAL/IANYL, and I will assume for the purposes of this answer that the FSF's attitude to what constitutes a derivative work is the correct one.

If Magick.NET invokes ghostscript solely through userspace, the resulting combination of the two doesn't become a derivative work of both; the two programs are "merely aggregated" and may be distributed together without either's licence requirements affecting the other. If ghostscript is invoked through a library, or some other shared-data-structure method, then the resulting combination of the two is a derivative work of both, and if distributed with ghostscript this derivative work would also have to be under AGPL.

What makes me suspicious that the latter is true is that Magick.NET themselves don't distribute ghostscript with their code, but instead require the user to download it. If they were confident that their use of ghostscript was mere-aggregation, they would not need to do that.

Assuming from that (and it is another assumption) that Magick.NET uses ghostscript in such a way as to make a derivative work, distributing ghostscript with it would require that the entire resulting derivative work was covered by AGPL3.

Whether that requirement extends to your product depends similarly on how it uses Magick.NET. If you are making some kind of derivative work, then the AGPL licensing requirement would extend yet further, to your code.

  • Thanks @MadHatter! Magick.NET does not link ghostscript when compiling but invoke it at runtime, so I don't think it's a derivative work of ghostscript. Our product has a .NET reference to Magick.NET. I don't if this means 'linking' as in those license statement. – xtu Jun 24 '18 at 9:40
  • It depends how it's invoked; if it's simple user-space execution plus an argument or two, you're likely right. If data structures are passed between them, you may not be. In any case, if you're going to bet a company on this, you should take proper legal advice! – MadHatter Jun 24 '18 at 9:43
  • Thanks @madhatter! I think we will take proper legal advice. – xtu Jun 25 '18 at 15:25
  • @xtu no problem. If you're happy with this answer, please consider accepting it, which puts the question to bed so it doesn't float around forever like some kind of querulous albatross. – MadHatter Jun 25 '18 at 16:14
  • Although this answer does not give the specific answer to my questions, it does help on understanding some details of the licences. Thus, I accept this as an accepted answer. Thanks again @madhatter. – xtu Jun 27 '18 at 14:20

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.