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?

1 Answer 1


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, 2018 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, 2018 at 9:43
  • Thanks @madhatter! I think we will take proper legal advice.
    – xtu
    Jun 25, 2018 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, 2018 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, 2018 at 14:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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