{"thread":{"id":"61491","subject":"Embedding Git Command Line","startedAt":"2024-05-16T12:04:58Z","lastAt":"2024-05-21T16:48:44Z","messageCount":5,"participants":["Kevin Gale","brian m. carlson","Konstantin Khomoutov","Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"494883","messageId":"36B52407-B52F-4394-8DF2-F2DF3D3F0504@yahoo.co.uk","threadId":"61491","inReplyTo":"36B52407-B52F-4394-8DF2-F2DF3D3F0504.ref@yahoo.co.uk","subject":"Embedding Git Command Line","fromName":"Kevin Gale","fromEmail":"s7g2vp2@yahoo.co.uk","sentAt":"2024-05-16T12:04:35Z","receivedAt":"2024-05-16T12:04:58Z","isPatch":false,"sender":{"key":"s7g2vp2@yahoo.co.uk","avatar":null},"body":"Hi.\n\nWe are looking to embed version control features into our commercially licensed proprietary product.\n\nWe haven’t made a decision on which technology yet but Git would be a popular choice.\n\nI’ve read ‘Appendix B: Embedding Git in your applications’ on the website and determined that our choices would be either to invoke the Git command line tools or integrate with libgit2.\n\nIn theory, the command line tools should be easier to integrate with and we would rely on the user’s Git install rather than bundling the Git software.\n\nWhat I would like to know is if integrating with the command line tools would still fall foul of the GPLv2 license or if there is an exception like there is for libgit2.\n\n\nTIA\nKevin\n"},{"id":"494892","messageId":"ZkYjD7VGC4zLhRDF@tapette.crustytoothpaste.net","threadId":"61491","inReplyTo":"36B52407-B52F-4394-8DF2-F2DF3D3F0504@yahoo.co.uk","subject":"Re: Embedding Git Command Line","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-05-16T15:15:27Z","receivedAt":"2024-05-16T15:15:29Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2024-05-16 at 12:04:35, Kevin Gale wrote:\n> Hi.\n\nHey,\n\n> What I would like to know is if integrating with the command line tools would still fall foul of the GPLv2 license or if there is an exception like there is for libgit2.\n\nFirst of all, I'm not a lawyer and this is not legal advice.  However,\nhaving said that, I think the common understanding is that it's fine to\ncall out to a GPL binary from your proprietary program without violating\nthe license, unless the output is a derivative work.  Usually that's not\nthe case; it would only usually be so if the output included part of the\nGPL software's source code, such as a parser generator.  The FSF has a\nFAQ[0] that covers this to some extent, which calls the approach of\ncalling out to the program a form of \"communicat[ing] at arms length\".\n\nAs a major copyright holder in Git, I don't see a problem from my\nperspective with a proprietary piece of software calling out to Git as a\nseparate binary.  Git is designed to provide scripting interfaces so\nit's easy to use from a variety of software.  You would of course need\nto provide the source to the version of Git you distribute and the\ncopyright and license information as well, in compliance with the\nlicense.  Note also that if you are distributing Git, you cannot link it\nagainst GPL-incompatible software (e.g., OpenSSL) unless that\nGPL-incompatible software is distributed independently as part of the\noperating system.\n\nI also want to be clear that this is my understanding as a layperson and\nmy interpretation as a contributor to and copyright holder in Git, but\nit isn't binding on anyone else here.  If you want a legal opinion, you\nneed to consult a lawyer licensed in your jurisdiction who has\nexperience in FLOSS copyright law.  Nobody here can provide you such\nan opinion.\n\n[0] https://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem\n-- \nbrian m. carlson (they/them or he/him)\nToronto, Ontario, CA\n"},{"id":"494905","messageId":"20240516181738.g7iw6rfqvjfucoiw@carbon","threadId":"61491","inReplyTo":"36B52407-B52F-4394-8DF2-F2DF3D3F0504@yahoo.co.uk","subject":"Re: Embedding Git Command Line","fromName":"Konstantin Khomoutov","fromEmail":"kostix@bswap.ru","sentAt":"2024-05-16T18:17:38Z","receivedAt":"2024-05-16T18:43:51Z","isPatch":false,"sender":{"key":"kostix@bswap.ru","avatar":null},"body":"On Thu, May 16, 2024 at 01:04:35PM +0100, Kevin Gale wrote:\n\n> We are looking to embed version control features into our commercially\n> licensed proprietary product.\n> \n> We haven’t made a decision on which technology yet but Git would be a\n> popular choice.\n[...]\n\nWhile only tangentially related, I'd point out that if your product is going\nto actually _bundle_ Git, then be prepared that it has quite a hefty set\nof dependencies, so unless you're going to rely on the target OS to provide\nthem (which is, as I understand it, a no-go on Windows) you might be required\nto invest considerable effort into that endaevor.\n\nOn the other hand, if it's not a shrink-wrap product but rather something\nenterprise-y (kind of software usually installed by a dedicated technician -\nas opposed to being downloaded and click-through installing by a layperson),\nyou might just use what Git for Windows ships, I suppose.\n\n"},{"id":"495047","messageId":"224aff4c-facc-76cd-94c1-8b40f18c0d40@gmx.de","threadId":"61491","inReplyTo":"20240516181738.g7iw6rfqvjfucoiw@carbon","subject":"Re: Embedding Git Command Line","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2024-05-18T19:50:00Z","receivedAt":"2024-05-18T19:50:04Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 16 May 2024, Konstantin Khomoutov wrote:\n\n> On Thu, May 16, 2024 at 01:04:35PM +0100, Kevin Gale wrote:\n>\n> > We are looking to embed version control features into our commercially\n> > licensed proprietary product.\n> >\n> > We haven’t made a decision on which technology yet but Git would be a\n> > popular choice.\n> [...]\n>\n> While only tangentially related, I'd point out that if your product is going\n> to actually _bundle_ Git, then be prepared that it has quite a hefty set\n> of dependencies, so unless you're going to rely on the target OS to provide\n> them (which is, as I understand it, a no-go on Windows) you might be required\n> to invest considerable effort into that endaevor.\n>\n> On the other hand, if it's not a shrink-wrap product but rather something\n> enterprise-y (kind of software usually installed by a dedicated technician -\n> as opposed to being downloaded and click-through installing by a layperson),\n> you might just use what Git for Windows ships, I suppose.\n\nGit for Windows offers MinGit (for full details, see\nhttps://github.com/git-for-windows/git/wiki/MinGit), which is a subset of\nGit for Windows intended to be bundled by 3rd-party applications. That's\nwhat Visual Studio and GitHub Desktop do.\n\nCiao,\nJohannes\n"},{"id":"495179","messageId":"20240521160049.jiqpr2prvprryuuw@carbon","threadId":"61491","inReplyTo":"224aff4c-facc-76cd-94c1-8b40f18c0d40@gmx.de","subject":"Re: Embedding Git Command Line","fromName":"Konstantin Khomoutov","fromEmail":"kostix@bswap.ru","sentAt":"2024-05-21T16:00:49Z","receivedAt":"2024-05-21T16:48:44Z","isPatch":false,"sender":{"key":"kostix@bswap.ru","avatar":null},"body":"On Sat, May 18, 2024 at 09:50:00PM +0200, Johannes Schindelin wrote:\n\n[...]\n>> On the other hand, if it's not a shrink-wrap product but rather something\n>> enterprise-y (kind of software usually installed by a dedicated technician -\n>> as opposed to being downloaded and click-through installing by a layperson),\n>> you might just use what Git for Windows ships, I suppose.\n> \n> Git for Windows offers MinGit (for full details, see\n> https://github.com/git-for-windows/git/wiki/MinGit), which is a subset of\n> Git for Windows intended to be bundled by 3rd-party applications. That's\n> what Visual Studio and GitHub Desktop do.\n\nI've read that page and a couple related (describing MSYS[2] vs MinGW stuff\nand the like) - pretty impressive. Thanks for the heads-up!\n\n"}]}