Skip to content

libidn@2 2.0.2 (new formula)#12885

Closed
DomT4 wants to merge 5 commits into
Homebrew:masterfrom
DomT4:libidn2
Closed

libidn@2 2.0.2 (new formula)#12885
DomT4 wants to merge 5 commits into
Homebrew:masterfrom
DomT4:libidn2

Conversation

@DomT4
Copy link
Copy Markdown
Contributor

@DomT4 DomT4 commented Apr 25, 2017

  • Have you followed the guidelines for contributing?
  • Have you checked that there aren't other open pull requests for the same formula update/change?
  • Have you built your formula locally with brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • Does your build pass brew audit --strict <formula> (after doing brew install <formula>)?

New formula for libidn@2, which is now stable upstream.

libidn@2 includes compatibility functions for other projects but I think the way to be most Homebrew-friendly is to introduce this as a new formula for now & migrate things across it as possible rather than inreplacing a bunch of projects to use the correct header:

This library is backwards (API) compatible with the libidn library. Replacing the idna.h header with idn2.h into a program is sufficient to switch the application from IDNA2003 to IDNA2008 as supported by this library.

DomT4 added 4 commits April 25, 2017 22:41
New formula for libidn@2, which is now stable upstream.
`libidn@2` includes compatibility functions for other projects
but I think the way to be most Homebrew-friendly is to
introduce this as a new formula for now & migrate things
across it as possible rather than inreplacing a bunch of projects
to use the correct header:

```
This library is backwards (API) compatible with the libidn library.
Replacing the idna.h header with idn2.h into a program is
sufficient to switch the application from IDNA2003 to IDNA2008 as supported
by this library.
```
@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented Apr 25, 2017

Ah, the classic osc testing failure 😒.

@bfontaine bfontaine added the new formula PR adds a new formula to Homebrew/homebrew-core label Apr 26, 2017
@ilovezfs
Copy link
Copy Markdown
Contributor

I'm 👎 on using versioned formulae for new versions.

Copy link
Copy Markdown
Contributor

@ilovezfs ilovezfs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be recast as an ordinary version upgrade for the main libidn formula, or deferred until that becomes feasible.

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented Apr 26, 2017

I'm 👎 on using versioned formulae for new versions.

How do you feel about flipping it and this becoming libidn & adding a libidn@1 formula then? That would seem more in line with how Homebrew has handled breaking updates so far.

@ilovezfs
Copy link
Copy Markdown
Contributor

I'd prefer to avoid libidn@1 if possible. Have you tried just upgrading it?

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented Apr 26, 2017

No, but the entire header structure changed, as well as the library versioning, so best case scenario everything needs a revision, worst case scenario almost everything needs inreplace-ing to use the right unified header & reported upstream.

I mean, I can do it that way, because slowly as we're discovering libidn2 is becoming expected upstream, but this way felt more Homebrewish so I started here.

@MikeMcQuaid
Copy link
Copy Markdown
Member

Agreed about trying an update and falling back to a libidn@1 formula if that's not possible and falling back again to a libidn@2 formula if the vast majority of formulae are on libidn@1 vs. 2.

@ilovezfs
Copy link
Copy Markdown
Contributor

"This library is backwards (API) compatible with the libidn library.
Replacing the idna.h header with idn2.h into a program is
sufficient to switch the application from IDNA2003 to IDNA2008 as supported
by this library."

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented Apr 26, 2017

Of the mandatory stuff:

  • freediameter - Fixed with some inreplace-ing, reported upstream.
  • getdns - Needs stringprep, which seems to have been dropped???
  • git-annex - Builds without any issue, but unsure it's actually using libidn. Removing it locally doesn't obviously break anything.
  • hesiod - Add support for libidn2 achernya/hesiod#13
  • knot
  • lftp
  • libswiften
  • loudmouth
  • mcabber
  • monotone
  • pidgin
  • skipfish

Will keep testing. Anything without an explanation hasn't been checked yet.

@ilovezfs
Copy link
Copy Markdown
Contributor

getdns - Needs stringprep, which seems to have been dropped???

mind asking libidn2 upstream what the deal is there?

@ilovezfs
Copy link
Copy Markdown
Contributor

git-annex - Builds without any issue, but unsure it's actually using libidn. Removing it locally doesn't obviously break anything.

Possible it's not finding it. @joeyh is there something we need to do to get git-annex to use libidn/libidn2?

@joeyh
Copy link
Copy Markdown

joeyh commented Apr 27, 2017 via email

@ilovezfs
Copy link
Copy Markdown
Contributor

@joeyh Thanks for the help!

@DomT4 DomT4 mentioned this pull request Apr 27, 2017
4 tasks
@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented Apr 27, 2017

mind asking libidn2 upstream what the deal is there?

https://gitlab.com/libidn/libidn2/issues/28

@ilovezfs
Copy link
Copy Markdown
Contributor

ilovezfs commented May 1, 2017

@DomT4 looks like upstream responded

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 1, 2017

Aye, I saw.

The reply was impressively detailed & I'll leave a thanks for that shortly, but somewhat threw me in terms of realising some of the I guess not non-standard but nonetheless less simple libidn usage from the 1.x branch is a fair bit more work than swapping out headers & library linkage.

Not planning to give it up but it certainly gave me an appreciation this may be more involved than the upstream README initially made me think 😄.

@ilovezfs
Copy link
Copy Markdown
Contributor

ilovezfs commented May 1, 2017

@DomT4 What's more, it seems your inquiry triggered some upstream commits. Neat!

@stale stale Bot added the stale No recent activity label May 23, 2017
@stale
Copy link
Copy Markdown

stale Bot commented May 23, 2017

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 24, 2017

@probot-stale[bot] Complicated but not yet dead.

@stale stale Bot removed the stale No recent activity label May 24, 2017
@ilovezfs
Copy link
Copy Markdown
Contributor

I love how you talk to the 🤖

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 24, 2017

It's the easiest way to get it to drop the stale label without simply rebasing, force pushing & having the test-bot do a pointless run 😅

@ilovezfs ilovezfs added the in progress Stale bot should stay away label May 24, 2017
@ilovezfs
Copy link
Copy Markdown
Contributor

Now it will leave you alone.

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 24, 2017

Cool, thanks 🙇.

This is something I'm still paying attention to, but with upstream adding more advice on how to transition to libidn2, other upstreams seemingly completely ignoring patches I've sent so far & not wanting to spend all the time I have for FOSS on this things have slowed a fair bit.

@ilovezfs
Copy link
Copy Markdown
Contributor

Maybe vendor it into the two (curl and wget) that can't use version 1 and call it a day?

@ilovezfs
Copy link
Copy Markdown
Contributor

If you prefer to close both PRs, I'm also fine with that if you want to move on from this.

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 24, 2017

Maybe vendor it into the two (curl and wget) that can't use version 1 and call it a day?

Yeah, maybe that's not a bad way to go for now to be fair. I guess we could always come back to this in 3/4/5/6 months, or as more upstreams migrate & make vendoring unpleasantly heavy to maintain for folks.

@ilovezfs
Copy link
Copy Markdown
Contributor

Do you think a significant number of users would actually want to brew install libidn@2 for their own purposes?

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 24, 2017

At this point I wouldn't say it has the same testing appeal in a Homebrew context as openssl@1.1 did & does. It could be useful to some I'm sure, but building libidn2 from source is a pretty quick & simple process compared to OpenSSL.

@ilovezfs
Copy link
Copy Markdown
Contributor

Vendoring seems fine to me then, but we can always revisit libidn@2 later if there are users asking for it.

@DomT4
Copy link
Copy Markdown
Contributor Author

DomT4 commented May 24, 2017

#13899

@DomT4 DomT4 closed this Jun 2, 2017
@DomT4 DomT4 deleted the libidn2 branch June 2, 2017 16:50
@ilovezfs ilovezfs mentioned this pull request Aug 22, 2017
4 tasks
@DomT4 DomT4 mentioned this pull request Dec 11, 2017
4 tasks
@Homebrew Homebrew locked and limited conversation to collaborators May 4, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

in progress Stale bot should stay away new formula PR adds a new formula to Homebrew/homebrew-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants