From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-2.0 required=3.0 tests=AWL,BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_HI,RCVD_IN_SORBS_WEB,RP_MATCHES_RCVD shortcircuit=no autolearn=no autolearn_force=no version=3.4.0 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by dcvr.yhbt.net (Postfix) with ESMTP id 077161F89D for ; Tue, 25 Jul 2017 13:53:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751898AbdGYNxu (ORCPT ); Tue, 25 Jul 2017 09:53:50 -0400 Received: from mout.gmx.net ([212.227.15.15]:52822 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750861AbdGYNxt (ORCPT ); Tue, 25 Jul 2017 09:53:49 -0400 Received: from virtualbox ([37.201.192.198]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MXIcX-1d3o8W03ML-00WIrV; Tue, 25 Jul 2017 15:53:41 +0200 Date: Tue, 25 Jul 2017 15:53:40 +0200 (CEST) From: Johannes Schindelin X-X-Sender: virtualbox@virtualbox To: Philippe Joyez cc: Joris van der Hoeven , git-for-windows@googlegroups.com, git@vger.kernel.org Subject: Re: requesting permission to use some Git for Windows code In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21.1 (DEB 209 2017-03-23) MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="8323329-1501518741-1498647661=:84669" Content-ID: X-Provags-ID: V03:K0:FRhGGwuo/KtN97NlWCvM6R/6eEdS0mwYeB0Jp+1WEl8lZwhQO7Z IubhdYdvWC39XWTYYzxY6W/jPN8N3QS6AgvYoChqWwEK+furBAIAUfHgJGlM7uISQz2Vqd+ qlwLXJmyEv39DfCwsKpGd8yfvRLbznaeIqPIA8ZfnpmPUIpPRxAhU5SY9E6ITq6qQSED8YK mgsFMH97i3SyyWiiWhmfQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:zTeJKCbIWok=:SBOVezor6QXpd/dPSdY5Vq 7K4GQzyNj7gqNdHcri4k+9dIYEtxt/3R/drHZW65SK/EusrRZdleEXUGxz7UEUT43NET+2yQ3 eG68uJVzYYYMYrqIhTyGJi/mpqvN1q0S7CjRIeiHcN878HDqOgjWWEDxRInKgn0Zqq2sOmT7E SBRSUSz5cXOxf6/Wjn0jNG4rqgSAoPOJNnelZ+ovc+6BZbrD1NMXT9aY0aX8y3vWuYdvjHtrr FN3dzobFG1v5ieQjbNsMfnGQJfsW3TbWjLtzn3wwWst/oR5tg7wPDXrBGNNaO2uLLLudN9QXF jd5O6mq2JyV9anvBmkBtPV6EehKS7roHiC9l9f1psVWOX1t+JHG2dl+lMp/A4uV55lxX8/fPK oM/zj5f4WTe1I/oAsTmrY7iGxABQKIXv7H9Q3zSoTrZ+m+8uZCb5oad7Ko7Hi2q+W4gRe8BWS CBy+4Xpzu3i5Yo4Jyh9Xo1VKwXvgpflonb7yGiTm62WTU5enrm4bsd+h5ImXjoalnXjMSfALC lHmDiTIMqw4EA/S7KVSY6O0G3Y1tNoR5SoxTHhmnwcFSFDjDfeofbcxn9/oHuXWuhoxOsRY2J +1PHQF9ysS6ZLKBOCebRVRi6vzonEr/vN46dD/mIE6+p4AEIlLhdcmi0kjwp6MRGUobRnE60h XKWuX9hCC7a7ITCDp4lS2UQ6PmXFaq4+IcCdncJthss0CaVUaSX5hsgHx0yVYAoMOqDHRZOJX M8hoMrPotC7z7rxfRck18SrniIehnwhgc9ybZmg/ZLngVbvk7c81STsoBkJxOJRuKuFnPo43K IQt3tpT6ot8m0VaIdck8Cv2Wh7OyQ== Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1501518741-1498647661=:84669 Content-Type: text/plain; CHARSET=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Content-ID: Hi Philippe, I am not quite certain whether I have replied to this earlier or not. Under the assumption that I did not, I'll send this mail; Cc:ed to the mailing lists as discussed privately. On Fri, 23 Jun 2017, Philippe Joyez wrote: > This message is to request the permission to use code chunks from Git > for Windows in GNU TeXmacs , to which I contribute. > The main developer of TeXmacs is Joris van der Hoeven (in cc). >=20 > Context: >=20 > Just like Git, TeXmacs originated on *nix platforms and was subsequently > ported to windows using MinGW. Naturally, some issues we have in that > port are the very same Git for Windows has faced. >=20 > One specific problem you have solved and that TeXmacs still hasn't, is > dealing with unicode filenames. By taking relevant pieces of code in Git > for windows, I could easily come up with a patch that enables TeXmacs to > handle unicode filenames in windows. >=20 > Now, the problem is that Git code is GPL V2, while TeXmacs is GPL V3: > Incorporating my patch in TeXmacs' trunk would be a violation of GPL > V2... /unless/ we are granted the permission to do so by the authors of > the code. This is precisely the reason for this message. It is great that you can make use of the code! As to the licensing problem, I agree it is a hassle. The biggest obstacle is that you have to have the consent of all the authors. You hereby have mine. > The chunks of code we would like to reuse are from these Git for Windows > files: > git-compat-util.h This file is quite large, maybe you can cut down on the authors to contact by restricting the `git annotate`/`git log`/`git shortlog` calls to specific parts, using the `-L ,` option? > ctype.c $ git shortlog -nse ctype.c 5 Junio C Hamano 4 Ren=C3=A9 Scharfe 2 Nguy=E1=BB=85n Th=C3=A1i Ng=E1=BB=8Dc Duy 1 Ben Walton 1 Brandon Casey 1 Gary V. Vaughan 1 Linus Torvalds 1 Namhyung Kim I *think* Ben Walton's change (189c860c9ec (kwset: use unsigned char to store values with high-bit set, 2015-03-02)) is not copyright-able, as it only changes the type from signed to unsigned. But I am not a lawyer ;-) Likewise, Namhyung Kim's change (1a191a22959 (ctype.c only wants git-compat-util.h, 2012-02-10)) only changes which header is included. That seems to be a too-obvious/too-trivial change to me. Also, it looks as if removing a comma as was done in 4b05548fc05 (enums: omit trailing comma for portability, 2010-05-14) by Gary V. Vaughan would not merit any copyright. If in doubt, you could simply take the version of ctype.c with those changes reverted as basis of your work. You still have to get the consent of Junio, Ren=C3=A9, Duy, Brandon and Lin= us to relicense the file's contents. > compat =C2=AC > mingw.c I count 35 authors other than myself for that file... Maybe you can narrow down what you need? > mingw.h Still 29 authors other than me... > win32.h This is more manageable, as it only saw three authors. But then, you could simply reimplement the functionality, it's just two functions, and I do not think that get_file_attr() is implemented in the best way: we have a function called err_win_to_posix() in compat/mingw.c which is much more complete. Having said that, err_win_to_posix() is still not implemented in the best way. The best way is to abuse Windows' own (undocumented) _doserrmap() function along with the information in the header files winerror.h and errno.h to generate the mapping. Those two files, as per mingw-w64's headers, have the very nice preamble: =09/** =09 * This file has no copyright assigned and is placed in the Public Domai= n. =09 * This file is part of the mingw-w64 runtime package. =09 * No warranty is given; refer to the file DISCLAIMER.PD within this =09 * package. =09 */ Therefore, the result has no copyright assigned and is placed in the Public Domain and we can do the very same, too. As I wanted to have a Windows error -> errno mapping that I could relicense as I see fit, anyway, I took this as an excellent opportunity to generate exactly that. Please find the header attached. Here is how I generated that header file: -- snip -- cat >/tmp/generrmap.c < #include static void map_code(unsigned long code, const char *id); int _main(int argc, char **argv) { =09printf("/* This file has no copyright assigned and is placed in the " =09=09"Public Domain. */\\n" =09=09"\\n" =09=09"#ifndef WINERR2ERRNO_H\\n" =09=09"#define WINERR2ERRNO_H\\n" =09=09"\\n" =09=09"static int winerror2errno(long code)\\n" =09=09"{\\n"); $(sed -n 's/^#define \([^ ]*\) __MSABI_LONG([1-9].*/\tmap_code(\1, "\1");/p= ' \ =09 win32 =C2=AC > dirent.c > dirent.h I encourage you to have a look whether you really need that full-fledged functionality. For vaguely related work, I recently reimplemented this differently, for use in BusyBox-w32, where we really only need to have the file names. The implementation is a lot cleaner, and I am happy to relicense this to whatever license you see fit (even BSD): =09https://github.com/git-for-windows/busybox-w32/commit/b76eee3aca > lazyload.h This one was authored by me, and I am happy to relicense it to GPLv3. Or whatever license, really. Ciao, Johannes --8323329-1501518741-1498647661=:84669 Content-Type: text/x-chdr; name=winerr2errno.h Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=winerr2errno.h LyogVGhpcyBmaWxlIGhhcyBubyBjb3B5cmlnaHQgYXNzaWduZWQgYW5kIGlz IHBsYWNlZCBpbiB0aGUgUHVibGljIERvbWFpbi4gKi8NCg0KI2lmbmRlZiBX SU5FUlIyRVJSTk9fSA0KI2RlZmluZSBXSU5FUlIyRVJSTk9fSA0KDQpzdGF0 aWMgaW50IHdpbmVycm9yMmVycm5vKGxvbmcgY29kZSkNCnsNCgljYXNlIEVS Uk9SX0ZJTEVfTk9UX0ZPVU5EOiBlcnJubyA9IEVOT0VOVDsNCgljYXNlIEVS Uk9SX1BBVEhfTk9UX0ZPVU5EOiBlcnJubyA9IEVOT0VOVDsNCgljYXNlIEVS Uk9SX1RPT19NQU5ZX09QRU5fRklMRVM6IGVycm5vID0gRU1GSUxFOw0KCWNh c2UgRVJST1JfQUNDRVNTX0RFTklFRDogZXJybm8gPSBFQUNDRVM7DQoJY2Fz ZSBFUlJPUl9JTlZBTElEX0hBTkRMRTogZXJybm8gPSBFQkFERjsNCgljYXNl IEVSUk9SX0FSRU5BX1RSQVNIRUQ6IGVycm5vID0gRU5PTUVNOw0KCWNhc2Ug RVJST1JfTk9UX0VOT1VHSF9NRU1PUlk6IGVycm5vID0gRU5PTUVNOw0KCWNh c2UgRVJST1JfSU5WQUxJRF9CTE9DSzogZXJybm8gPSBFTk9NRU07DQoJY2Fz ZSBFUlJPUl9CQURfRU5WSVJPTk1FTlQ6IGVycm5vID0gRTJCSUc7DQoJY2Fz ZSBFUlJPUl9CQURfRk9STUFUOiBlcnJubyA9IEVOT0VYRUM7DQoJY2FzZSBF UlJPUl9JTlZBTElEX0RSSVZFOiBlcnJubyA9IEVOT0VOVDsNCgljYXNlIEVS Uk9SX0NVUlJFTlRfRElSRUNUT1JZOiBlcnJubyA9IEVBQ0NFUzsNCgljYXNl IEVSUk9SX05PVF9TQU1FX0RFVklDRTogZXJybm8gPSBFWERFVjsNCgljYXNl IEVSUk9SX05PX01PUkVfRklMRVM6IGVycm5vID0gRU5PRU5UOw0KCWNhc2Ug RVJST1JfV1JJVEVfUFJPVEVDVDogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBF UlJPUl9CQURfVU5JVDogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBFUlJPUl9O T1RfUkVBRFk6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2UgRVJST1JfQkFEX0NP TU1BTkQ6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2UgRVJST1JfQ1JDOiBlcnJu byA9IEVBQ0NFUzsNCgljYXNlIEVSUk9SX0JBRF9MRU5HVEg6IGVycm5vID0g RUFDQ0VTOw0KCWNhc2UgRVJST1JfU0VFSzogZXJybm8gPSBFQUNDRVM7DQoJ Y2FzZSBFUlJPUl9OT1RfRE9TX0RJU0s6IGVycm5vID0gRUFDQ0VTOw0KCWNh c2UgRVJST1JfU0VDVE9SX05PVF9GT1VORDogZXJybm8gPSBFQUNDRVM7DQoJ Y2FzZSBFUlJPUl9PVVRfT0ZfUEFQRVI6IGVycm5vID0gRUFDQ0VTOw0KCWNh c2UgRVJST1JfV1JJVEVfRkFVTFQ6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2Ug RVJST1JfUkVBRF9GQVVMVDogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBFUlJP Ul9HRU5fRkFJTFVSRTogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBFUlJPUl9T SEFSSU5HX1ZJT0xBVElPTjogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBFUlJP Ul9MT0NLX1ZJT0xBVElPTjogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBFUlJP Ul9XUk9OR19ESVNLOiBlcnJubyA9IEVBQ0NFUzsNCgljYXNlIEVSUk9SX1NI QVJJTkdfQlVGRkVSX0VYQ0VFREVEOiBlcnJubyA9IEVBQ0NFUzsNCgljYXNl IEVSUk9SX0JBRF9ORVRQQVRIOiBlcnJubyA9IEVOT0VOVDsNCgljYXNlIEVS Uk9SX05FVFdPUktfQUNDRVNTX0RFTklFRDogZXJybm8gPSBFQUNDRVM7DQoJ Y2FzZSBFUlJPUl9CQURfTkVUX05BTUU6IGVycm5vID0gRU5PRU5UOw0KCWNh c2UgRVJST1JfRklMRV9FWElTVFM6IGVycm5vID0gRUVYSVNUOw0KCWNhc2Ug RVJST1JfQ0FOTk9UX01BS0U6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2UgRVJS T1JfRkFJTF9JMjQ6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2UgRVJST1JfTk9f UFJPQ19TTE9UUzogZXJybm8gPSBFQUdBSU47DQoJY2FzZSBFUlJPUl9EUklW RV9MT0NLRUQ6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2UgRVJST1JfQlJPS0VO X1BJUEU6IGVycm5vID0gRVBJUEU7DQoJY2FzZSBFUlJPUl9ESVNLX0ZVTEw6 IGVycm5vID0gRU5PU1BDOw0KCWNhc2UgRVJST1JfSU5WQUxJRF9UQVJHRVRf SEFORExFOiBlcnJubyA9IEVCQURGOw0KCWNhc2UgRVJST1JfV0FJVF9OT19D SElMRFJFTjogZXJybm8gPSBFQ0hJTEQ7DQoJY2FzZSBFUlJPUl9DSElMRF9O T1RfQ09NUExFVEU6IGVycm5vID0gRUNISUxEOw0KCWNhc2UgRVJST1JfRElS RUNUX0FDQ0VTU19IQU5ETEU6IGVycm5vID0gRUJBREY7DQoJY2FzZSBFUlJP Ul9TRUVLX09OX0RFVklDRTogZXJybm8gPSBFQUNDRVM7DQoJY2FzZSBFUlJP Ul9ESVJfTk9UX0VNUFRZOiBlcnJubyA9IEVOT1RFTVBUWTsNCgljYXNlIEVS Uk9SX05PVF9MT0NLRUQ6IGVycm5vID0gRUFDQ0VTOw0KCWNhc2UgRVJST1Jf QkFEX1BBVEhOQU1FOiBlcnJubyA9IEVOT0VOVDsNCgljYXNlIEVSUk9SX01B WF9USFJEU19SRUFDSEVEOiBlcnJubyA9IEVBR0FJTjsNCgljYXNlIEVSUk9S X0xPQ0tfRkFJTEVEOiBlcnJubyA9IEVBQ0NFUzsNCgljYXNlIEVSUk9SX0FM UkVBRFlfRVhJU1RTOiBlcnJubyA9IEVFWElTVDsNCgljYXNlIEVSUk9SX0lO VkFMSURfU1RBUlRJTkdfQ09ERVNFRzogZXJybm8gPSBFTk9FWEVDOw0KCWNh c2UgRVJST1JfSU5WQUxJRF9TVEFDS1NFRzogZXJybm8gPSBFTk9FWEVDOw0K CWNhc2UgRVJST1JfSU5WQUxJRF9NT0RVTEVUWVBFOiBlcnJubyA9IEVOT0VY RUM7DQoJY2FzZSBFUlJPUl9JTlZBTElEX0VYRV9TSUdOQVRVUkU6IGVycm5v ID0gRU5PRVhFQzsNCgljYXNlIEVSUk9SX0VYRV9NQVJLRURfSU5WQUxJRDog ZXJybm8gPSBFTk9FWEVDOw0KCWNhc2UgRVJST1JfQkFEX0VYRV9GT1JNQVQ6 IGVycm5vID0gRU5PRVhFQzsNCgljYXNlIEVSUk9SX0lURVJBVEVEX0RBVEFf RVhDRUVEU182NGs6IGVycm5vID0gRU5PRVhFQzsNCgljYXNlIEVSUk9SX0lO VkFMSURfTUlOQUxMT0NTSVpFOiBlcnJubyA9IEVOT0VYRUM7DQoJY2FzZSBF UlJPUl9EWU5MSU5LX0ZST01fSU5WQUxJRF9SSU5HOiBlcnJubyA9IEVOT0VY RUM7DQoJY2FzZSBFUlJPUl9JT1BMX05PVF9FTkFCTEVEOiBlcnJubyA9IEVO T0VYRUM7DQoJY2FzZSBFUlJPUl9JTlZBTElEX1NFR0RQTDogZXJybm8gPSBF Tk9FWEVDOw0KCWNhc2UgRVJST1JfQVVUT0RBVEFTRUdfRVhDRUVEU182NGs6 IGVycm5vID0gRU5PRVhFQzsNCgljYXNlIEVSUk9SX1JJTkcyU0VHX01VU1Rf QkVfTU9WQUJMRTogZXJybm8gPSBFTk9FWEVDOw0KCWNhc2UgRVJST1JfUkVM T0NfQ0hBSU5fWEVFRFNfU0VHTElNOiBlcnJubyA9IEVOT0VYRUM7DQoJY2Fz ZSBFUlJPUl9JTkZMT09QX0lOX1JFTE9DX0NIQUlOOiBlcnJubyA9IEVOT0VY RUM7DQoJY2FzZSBFUlJPUl9GSUxFTkFNRV9FWENFRF9SQU5HRTogZXJybm8g PSBFTk9FTlQ7DQoJY2FzZSBFUlJPUl9ORVNUSU5HX05PVF9BTExPV0VEOiBl cnJubyA9IEVBR0FJTjsNCgljYXNlIEVSUk9SX05PVF9FTk9VR0hfUVVPVEE6 IGVycm5vID0gRU5PTUVNOw0KCWRlZmF1bHQ6IGVycm5vID0gRUlOVkFMOw0K CX0NCg0KCXJldHVybiAtMTsgLyogVHlwaWNhbCByZXR1cm4gdmFsdWUgd2hl biBlcnJubyB3YXMgc2V0ICovDQp9DQoNCiNlbmRpZiAvKiBXSU5FUlIyRVJS Tk9fSCAqLw0K --8323329-1501518741-1498647661=:84669--