{"thread":{"id":"59770","subject":"Which macOS versions does Git support?","startedAt":"2023-05-19T07:01:29Z","lastAt":"2023-05-22T19:24:41Z","messageCount":6,"participants":["M Hickford","Jeff King","Jeff Hostetler","Carlo Marcelo Arenas Belón"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"477591","messageId":"CAGJzqsnS3SnoW__aPQ+13s+-b3a+makCjWxR=z6mjgBBnuKjLg@mail.gmail.com","threadId":"59770","inReplyTo":null,"subject":"Which macOS versions does Git support?","fromName":"M Hickford","fromEmail":"mirth.hickford@gmail.com","sentAt":"2023-05-19T07:00:00Z","receivedAt":"2023-05-19T07:01:29Z","isPatch":false,"sender":{"key":"mirth.hickford@gmail.com","avatar":"https://avatars.githubusercontent.com/u/105314?v=4"},"body":"Hi. Does anyone know which macOS versions are supported by Git?\n\nMotivation: I spotted that git-credential-osxkeychain.c uses a\ndeprecated API. SecKeychainAddInternetPassword was deprecated in\n2014's macOS 10.10 [1].  Replacement SecItemAdd was introduced in\n2009's macOS 10.6 [2].\n\nFurther motivation: If I understand the documentation correctly, the\nnew SecItemAdd API has better support for storing attributes alongside\nsecrets, which might be handy for storing Git credential's new\npassword_expiry_utc attribute (d208bfd, credential: new attribute\npassword_expiry_utc, 2023-02-18).\n\n[0] https://github.com/git/git/blob/master/contrib/credential/osxkeychain/git-credential-osxkeychain.c\n[1] https://developer.apple.com/documentation/security/1393322-seckeychainaddinternetpassword?language=objc\n[2] https://developer.apple.com/documentation/security/1401659-secitemadd?language=objc\n"},{"id":"477596","messageId":"20230519090917.GB3515410@coredump.intra.peff.net","threadId":"59770","inReplyTo":"CAGJzqsnS3SnoW__aPQ+13s+-b3a+makCjWxR=z6mjgBBnuKjLg@mail.gmail.com","subject":"Re: Which macOS versions does Git support?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2023-05-19T09:09:17Z","receivedAt":"2023-05-19T09:09:23Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, May 19, 2023 at 08:00:00AM +0100, M Hickford wrote:\n\n> Hi. Does anyone know which macOS versions are supported by Git?\n\nI don't think we have any formal decision here (or for any other\nplatform; it is usually a cost/benefit for individual features we may\nwant to depend on).\n\n> Motivation: I spotted that git-credential-osxkeychain.c uses a\n> deprecated API. SecKeychainAddInternetPassword was deprecated in\n> 2014's macOS 10.10 [1].  Replacement SecItemAdd was introduced in\n> 2009's macOS 10.6 [2].\n\n+cc Taylor, who I know was looking into this recently.\n\nI'd guess that anything older than 2009 is probably not worth worrying\nabout.\n\n> Further motivation: If I understand the documentation correctly, the\n> new SecItemAdd API has better support for storing attributes alongside\n> secrets, which might be handy for storing Git credential's new\n> password_expiry_utc attribute (d208bfd, credential: new attribute\n> password_expiry_utc, 2023-02-18).\n\nYeah, that would be a nice bonus (in addition to avoiding a deprecated\ninterface).\n\n-Peff\n"},{"id":"477603","messageId":"7778a454-fefd-5b8a-212b-ab46681ccfd4@jeffhostetler.com","threadId":"59770","inReplyTo":"20230519090917.GB3515410@coredump.intra.peff.net","subject":"Re: Which macOS versions does Git support?","fromName":"Jeff Hostetler","fromEmail":"git@jeffhostetler.com","sentAt":"2023-05-19T17:49:09Z","receivedAt":"2023-05-19T17:49:14Z","isPatch":false,"sender":{"key":"git@jeffhostetler.com","avatar":null},"body":"\n\nOn 5/19/23 5:09 AM, Jeff King wrote:\n> On Fri, May 19, 2023 at 08:00:00AM +0100, M Hickford wrote:\n> \n>> Hi. Does anyone know which macOS versions are supported by Git?\n> \n> I don't think we have any formal decision here (or for any other\n> platform; it is usually a cost/benefit for individual features we may\n> want to depend on).\n> \n>> Motivation: I spotted that git-credential-osxkeychain.c uses a\n>> deprecated API. SecKeychainAddInternetPassword was deprecated in\n>> 2014's macOS 10.10 [1].  Replacement SecItemAdd was introduced in\n>> 2009's macOS 10.6 [2].\n> \n> +cc Taylor, who I know was looking into this recently.\n> \n> I'd guess that anything older than 2009 is probably not worth worrying\n> about.\n> \n>> Further motivation: If I understand the documentation correctly, the\n>> new SecItemAdd API has better support for storing attributes alongside\n>> secrets, which might be handy for storing Git credential's new\n>> password_expiry_utc attribute (d208bfd, credential: new attribute\n>> password_expiry_utc, 2023-02-18).\n> \n> Yeah, that would be a nice bonus (in addition to avoiding a deprecated\n> interface).\n> \n> -Peff\n\nI had similar issues last year with older versions of the compiler\ntools and/or an API that I was using in FSMonitor.\n\nhttps://lore.kernel.org/git/xmqqsfhtphpl.fsf@gitster.g/T/\nhttps://lore.kernel.org/git/pull.1375.git.1665085395.gitgitgadget@gmail.com/\n\nIIRC my API usage needs 10.6 or newer.\n\nJeff\n"},{"id":"477611","messageId":"k3dnos4h7i4sjxzotiqwhz47wc2qvuzpii4wgysgt6ywoi6dx3@2ggmoesxlqsi","threadId":"59770","inReplyTo":"20230519090917.GB3515410@coredump.intra.peff.net","subject":"Re: Which macOS versions does Git support?","fromName":"Carlo Marcelo Arenas Belón","fromEmail":"carenas@gmail.com","sentAt":"2023-05-20T00:37:04Z","receivedAt":"2023-05-20T00:44:03Z","isPatch":false,"sender":{"key":"carenas@gmail.com","avatar":"https://avatars.githubusercontent.com/u/76036?v=4"},"body":"On Fri, May 19, 2023 at 05:09:17AM -0400, Jeff King wrote:\n> \n> I'd guess that anything older than 2009 is probably not worth worrying\n> about.\n\nFWIW Mac OS X 10.5 (Leopard) was last updated in 2009 and also happens to\nbe the last one that can run in PowerPC, so sadly there is a non zero\nnumber of users for it (MacPorts uses a minimum of 10.4 for that reason)\n\nCarlo\n"},{"id":"477613","messageId":"CAGJzqsmJSVJYTtT41wQ5Cgsz=ExMZ8y7qKPDh-7kt8RXY__NbQ@mail.gmail.com","threadId":"59770","inReplyTo":"k3dnos4h7i4sjxzotiqwhz47wc2qvuzpii4wgysgt6ywoi6dx3@2ggmoesxlqsi","subject":"Re: Which macOS versions does Git support?","fromName":"M Hickford","fromEmail":"mirth.hickford@gmail.com","sentAt":"2023-05-20T07:36:58Z","receivedAt":"2023-05-20T07:37:39Z","isPatch":false,"sender":{"key":"mirth.hickford@gmail.com","avatar":"https://avatars.githubusercontent.com/u/105314?v=4"},"body":"On Sat, 20 May 2023 at 01:37, Carlo Marcelo Arenas Belón\n<carenas@gmail.com> wrote:\n>\n> On Fri, May 19, 2023 at 05:09:17AM -0400, Jeff King wrote:\n> >\n> > I'd guess that anything older than 2009 is probably not worth worrying\n> > about.\n\nThanks Jeff, Jeff and Carlo for your replies.\n\n>\n> FWIW Mac OS X 10.5 (Leopard) was last updated in 2009 and also happens to\n> be the last one that can run in PowerPC, so sadly there is a non zero\n> number of users for it (MacPorts uses a minimum of 10.4 for that reason)\n\nInteresting! https://ports.macports.org/port/git/details/ It looks\nlike the most recent build is from 2021\nhttps://ports.macports.org/port/git/builds/?builder_name__name=10.5_ppc_legacy\n.   https://ports.macports.org/port/git/stats/?days=365&days_ago=0\nshows 10 total PowerPC downloads in the past year between versions\n10.4, 10.5 and 10.6\n\n>\n> Carlo\n\nI don't have the equipment or expertise to develop on macOS, so I'll\nleave the API migration as a potential future #leftoverbits\n\nReading the keychain docs more carefully, the new API only supports a\nfixed set of attribute keys such as 'kSecAttrComment', so discount my\noriginal \"further motivation\"\nhttps://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values?language=objc\n"},{"id":"477644","messageId":"20230522192437.GB365027@coredump.intra.peff.net","threadId":"59770","inReplyTo":"CAGJzqsmJSVJYTtT41wQ5Cgsz=ExMZ8y7qKPDh-7kt8RXY__NbQ@mail.gmail.com","subject":"Re: Which macOS versions does Git support?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2023-05-22T19:24:37Z","receivedAt":"2023-05-22T19:24:41Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sat, May 20, 2023 at 08:36:58AM +0100, M Hickford wrote:\n\n> > FWIW Mac OS X 10.5 (Leopard) was last updated in 2009 and also happens to\n> > be the last one that can run in PowerPC, so sadly there is a non zero\n> > number of users for it (MacPorts uses a minimum of 10.4 for that reason)\n> \n> Interesting! https://ports.macports.org/port/git/details/ It looks\n> like the most recent build is from 2021\n> https://ports.macports.org/port/git/builds/?builder_name__name=10.5_ppc_legacy\n> .   https://ports.macports.org/port/git/stats/?days=365&days_ago=0\n> shows 10 total PowerPC downloads in the past year between versions\n> 10.4, 10.5 and 10.6\n\nOne nice thing here is that the credential helpers are pretty\nindependent from the rest of Git. If new versions of the helper drop\nsupport for the old API, people on ancient systems can still use the old\nhelper. We'd just have to make a decision about how much to help them:\n\n  1. (least help) Tell them to dig it out of git.git history, build, and\n     stuff the resulting binary somewhere.\n\n  2. (most help) Support both, selected by an #ifdef and a Makefile\n     knob, and maybe even turn the knob automatically based on \"uname\n     -r\".\n\n  3. (middle ground) Rewrite with the new API, but leave the old helper\n     as contrib/osxkeychain-old or something. Still easy-ish to build,\n     but carries less maintenance burden.\n\n> I don't have the equipment or expertise to develop on macOS, so I'll\n> leave the API migration as a potential future #leftoverbits\n\nI'd probably do (3), but as I also lack equipment or expertise, I'm not\nplanning on working on it myself (and I'd let whoever does decide to do\nthat work have the final say on approach).\n\n> Reading the keychain docs more carefully, the new API only supports a\n> fixed set of attribute keys such as 'kSecAttrComment', so discount my\n> original \"further motivation\"\n\nBummer. Thanks for looking into this, though.\n\n-Peff\n"}]}