homebrew-core icon indicating copy to clipboard operation
homebrew-core copied to clipboard

[email protected] 1.2.39 (new formula)

Open nosnilmot opened this issue 1 year ago • 8 comments

  • [x] Have you followed the guidelines for contributing?
  • [x] Have you ensured that your commits follow the commit style guide?
  • [x] Have you checked that there aren't other open pull requests for the same formula update/change?
  • [x] Have you built your formula locally with HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • [x] Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • [x] Does your build pass brew audit --strict <formula> (after doing HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>)? If this is a new formula, does it pass brew audit --new <formula>?

python-xmlsec is not compatible with current libxmlsec1 1.3, add a parallel-installable [email protected] that can be used with python xmlsec:

$ HOMEBREW_NO_INSTALL_FROM_API=1 brew install [email protected]
==> Fetching [email protected]
==> Downloading https://www.aleksey.com/xmlsec/download/xmlsec1-1.2.39.tar.gz
#################################################################################### 100.0%
==> Patching
==> ./configure --disable-crypto-dl --disable-apps-crypto-dl --with-nss=no --with-nspr=no --enable-mscrypto=no --enable-mscng=no --with-openssl=/opt/homebrew/opt/openssl@3
==> make install
==> Caveats
[email protected] is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.

If you need to have [email protected] first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> /Users/stu/.bash_profile

For compilers to find [email protected] you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/[email protected]/include"

For pkg-config to find [email protected] you may need to set:
  export PKG_CONFIG_PATH="/opt/homebrew/opt/[email protected]/lib/pkgconfig"
==> Summary
🍺  /opt/homebrew/Cellar/[email protected]/1.2.39: 221 files, 6MB, built in 9 seconds
==> Running `brew cleanup [email protected]`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

$ export PKG_CONFIG_PATH="/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/libxml2/lib/pkgconfig"

$ pip install xmlsec
Collecting xmlsec
  Downloading xmlsec-1.3.13.tar.gz (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.6/64.6 kB 686.0 kB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting lxml>=3.8 (from xmlsec)
  Downloading lxml-5.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (3.5 kB)
Downloading lxml-5.1.0-cp310-cp310-macosx_11_0_arm64.whl (4.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 2.5 MB/s eta 0:00:00
Building wheels for collected packages: xmlsec
  Building wheel for xmlsec (pyproject.toml) ... done
  Created wheel for xmlsec: filename=xmlsec-1.3.13-cp310-cp310-macosx_14_0_arm64.whl size=45915 sha256=4ce692d311ca17b812905fee2f5f8c6afbba6fdb421bc8769c58f1d510af69f1
  Stored in directory: /private/var/folders/_q/7_p0fjmn0zj_d25n4rrjwwv00000gn/T/pip-ephem-wheel-cache-jfmme5qz/wheels/4e/10/4f/db7ab2326b7ed5575ca8d5896571220217048e11c899e8f35f
Successfully built xmlsec
Installing collected packages: lxml, xmlsec
Successfully installed lxml-5.1.0 xmlsec-1.3.13

nosnilmot avatar Jan 27 '24 17:01 nosnilmot

python-xmlsec seems to not be updated anymore so we would effectively be maintaining this forever which seems undesirable.

Bo98 avatar Jan 27 '24 18:01 Bo98

python-xmlsec seems to not be updated anymore so we would effectively be maintaining this forever which seems undesirable.

The situation with python-xmlsec is indeed unfortunate but I don't expect it will last forever, somone will either take over maintenance or produce a usable fork, at which point this package can be retired.

In the meantime there are brew users implementing various differnt workarounds that are only likely to cause further trouble by building the last available 1.2.x libxmlsec1 formula (1.2.37) - it is not binary compatible with the curent brew-provided 1.3.x and will cause problems for anything else in brew that links with libxmlsec1, and it is not the latest 1.2.x release (1.2.39)

I would expect the important thing to brew is that libxmlsec1 1.2 is still maintained upstream.

nosnilmot avatar Jan 28 '24 08:01 nosnilmot

The situation with python-xmlsec is indeed unfortunate but I don't expect it will last forever, somone will either take over maintenance or produce a usable fork, at which point this package can be retired.

In the meantime there are brew users implementing various differnt workarounds that are only likely to cause further trouble by building the last available 1.2.x libxmlsec1 formula (1.2.37) - it is not binary compatible with the curent brew-provided 1.3.x and will cause problems for anything else in brew that links with libxmlsec1, and it is not the latest 1.2.x release (1.2.39)

I mean it's been a year, that's already a lot longer than what other formulae get.

I would expect the important thing to brew is that libxmlsec1 1.2 is still maintained upstream.

This however is the better argument to take. We have a policy for what versioned formulae to allow (https://docs.brew.sh/Versions) and it being maintained upstream means that this would be acceptable to add. So I'm OK with adding this based on that information.

That also gives us a rough idea of how long to maintain it. When upstream stops updating 1.2 then we can deprecate the formula.

Bo98 avatar Jan 28 '24 16:01 Bo98

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

github-actions[bot] avatar Feb 18 '24 23:02 github-actions[bot]

I work for a ~100 engineers company and I can confirm there is a significant interest for this recipe to be merged. We have to use python-xmlsec because of python3-saml and it's currently utterly broken at python dependencies installation time in one of the least understandable manner even for seasoned developers, it would be such an incredible developer experience improvement for this one to be merged.

deronnax avatar Feb 19 '24 09:02 deronnax

I work for a ~100 engineers company and I can confirm there is a significant interest for this recipe to be merged. We have to use python-xmlsec because of python3-saml and it's currently utterly broken at python dependencies installation time in one of the least understandable manner even for seasoned developers, it would be such an incredible developer experience improvement for this one to be merged.

That isn't impactful to Homebrew as a project unless that company is maintaining the software. If your company needs a certain piece of software a private tap is the way to go.

Let's keep this discussion to if it should be in homebrew/core or not based on our policies and the maintenance burden involved.

SMillerDev avatar Feb 19 '24 09:02 SMillerDev

That also gives us a rough idea of how long to maintain it. When upstream stops updating 1.2 then we can deprecate the formula.

Can someone ask how long they are planning to maintain it? That way we can already set a deprecation/disable policy.

SMillerDev avatar Feb 19 '24 09:02 SMillerDev

I asked the question there discussion #762, and there answer is:

I have no definite plans to "kill" 1.2 branch. It will not get any new features but I will continue fixing critical bugs as long as the fix is reasonably portable from "master" (1.3).

deronnax avatar Feb 20 '24 09:02 deronnax

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

github-actions[bot] avatar Mar 13 '24 00:03 github-actions[bot]

Activity has resumed on python-xmlsec. Most PRs fixing the problems have been merged. A release hasn't been done yet but I bet it will be done in a not-so-long-time. ~When it is, this formula will have no interest anymore.~ EDIT: xmlsec 1.3.x merged fixes broke compatibitity with xmlsec 1.2.x, which is the default xmlsec shipped on must Ubuntu. So a xmlsec 1.2.x formula will actually be needed.

deronnax avatar Mar 13 '24 09:03 deronnax

@SMillerDev so, what's your take on this?

deronnax avatar Mar 20 '24 10:03 deronnax

I'm not sure why a formula is needed if the fixes exist and are merged for 1.3 compatibility.

SMillerDev avatar Mar 20 '24 12:03 SMillerDev

I'm not sure why a formula is needed if the fixes exist and are merged for 1.3 compatibility.

ack. hopefully a new python-xmlsec release is made soon and I can close this PR

nosnilmot avatar Mar 20 '24 12:03 nosnilmot

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

github-actions[bot] avatar Apr 10 '24 15:04 github-actions[bot]