Skip to content

remove bzip2 spkg #40011

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jun 14, 2025
Merged

remove bzip2 spkg #40011

merged 5 commits into from
Jun 14, 2025

Conversation

dimpase
Copy link
Member

@dimpase dimpase commented Apr 26, 2025

a good enough bzip2/libbz2 is readily available on all the systems we support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. sage-devel for the relevant context.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

@dimpase dimpase requested a review from vbraun April 26, 2025 17:33
@dimpase dimpase requested a review from orlitzky April 26, 2025 17:33
Copy link

github-actions bot commented Apr 26, 2025

Documentation preview for this PR (built with commit eeabce5; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@orlitzky
Copy link
Contributor

Unless its absence causes no issues, we may want to disable it first (for a release cycle) to avoid creating extra work for others. It has no dependencies though so it should be easier to remove than (say) python.

@culler is this something you can use the system copy of, or at least build yourself easily?

@culler
Copy link
Contributor

culler commented Apr 29, 2025

Unless its absence causes no issues, we may want to disable it first (for a release cycle) to avoid creating extra work for others. It has no dependencies though so it should be easier to remove than (say) python.

@culler is this something you can use the system copy of, or at least build yourself easily?

@orlitzky Apple provides libbz2 and a bzip2 executable as part of the OS, and when you build python they find and use Apple's library with no issues. I don't know of any reason for not using Apple's library or executable.

Your suggestion about the spkg is supported by basic principles of software engineering. The spkg should be disabled first, and not removed until it has been disabled for a long enough time that unexpected issues are likely to have appeared, if any exist.

@dimpase
Copy link
Member Author

dimpase commented Apr 29, 2025

Unless its absence causes no issues, we may want to disable it first (for a release cycle) to avoid creating extra work for others. It has no dependencies though so it should be easier to remove than (say) python.

I am not sure what you mean.

We are using Apple's bzip2 and libbz2 without any issues with Sage for years, it's all tested very, very well indeed. (And Linux has not been problematic here for many years too, needless to say)

If it was not the case I wouldn't have proposed this removal like this.

@dimpase
Copy link
Member Author

dimpase commented Apr 29, 2025

@culler not sure what principles you mean here. It has been tested a lot, as building this package from source is disabled by default already, for at least 3 years or more. On macOS as well as on Linuxes. It is 100% dead wood already.

@culler
Copy link
Contributor

culler commented Apr 29, 2025 via email

@dimpase
Copy link
Member Author

dimpase commented Apr 29, 2025

@culler your list can easily be adapted to make any progress and any development impossible.
I am telling you that it has been already tested for years, and yet you demand more testing.

@culler
Copy link
Contributor

culler commented Apr 29, 2025

I am not demanding anything. And please do not ever ask me to comment on
another Sage PR.

@dimpase
Copy link
Member Author

dimpase commented Apr 29, 2025

@culler your list can easily be adapted to make any progress and any development impossible. I am telling you that it has been already tested for years, and yet you demand more testing.
I am not demanding anything. And please do not ever ask me to comment on another Sage PR.

You wrote above: "The spkg should be disabled first." How is this anything but a demand?

And I have not asked you to comment here, @orlitzky did.

@dimpase dimpase requested a review from tobiasdiez April 29, 2025 14:55
@orlitzky
Copy link
Contributor

Marc hasn't objected in principle to removing these packages, he is only asking to go slowly so that we don't break anything and don't create too much extra work for him. It doesn't sound unreasonable to me, and I think progress on this will be a lot faster if we don't all hate each other, so it would be preferable to proceed in a way that leaves no one feeling slighted.

@dimpase
Copy link
Member Author

dimpase commented Apr 30, 2025

Well, Marc is not even using this particular package. I am fine with providing a deprecation dance around the ones he is using, but for this one it just doesn't make sense.

@dimpase dimpase requested a review from jhpalmieri May 30, 2025 02:21
@jhpalmieri
Copy link
Member

One question is, how do we know that no one has been building Sage's bzip2?

What about changing the default argument for --with-system-bzip2 to "force"? That fits with the other suggestions here — don't delete it yet, just disable it. We could also modify the error message (if "force" causes an error for anyone) to encourage people to let us know if this actually causes problems, or to let them know that the Sage bzip2 package is being removed very soon.

@dimpase
Copy link
Member Author

dimpase commented May 30, 2025

@jhpalmieri - we don't support ancient Linux installations which have a vintage bzip2, and all macOS systems have bzip2 installed with XCode.

While it's in principle possible to come across a Linux system without bzip2 installed, bzip2 from the system will work (and the user will be best advised to use the system one).

I don't see the point of a depreciation period for the empty set of users.

@dimpase
Copy link
Member Author

dimpase commented May 30, 2025

We removed patch spkg, if you might have noticed, quite recently, in #39943, without any depreciation period - whereas exactly the same objections applied.

@dimpase
Copy link
Member Author

dimpase commented May 30, 2025

last but not the least, we ship a 10 years old bzip2 version, which is bad. This PR corrects this.

Copy link
Contributor

@tobiasdiez tobiasdiez left a comment

Choose a reason for hiding this comment

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

In my opinion, it's a good idea to mark more and more packages as 'prerequisite'. Out of the 400 sage packages, 2/3 thirds are not up-to-date - which shows that the maintenance load of the current approach is too heavy (or nobody cares about some packages as they are never installed anyway).

Looking at https://repology.org/project/bzip2/versions, only three linux systems have the older version 1.0.5 (and those are oldtimers like Centos 6 with an eol of 2020). So it should be fine to drop it without a deprecation period.

It might be easier to first decide on a list of systems for which sage should work with only the prerequisite packages installed. Based on this list, it should be straight-forward to decide whether to mark a given sage package as prerequisite or not.

@dimpase dimpase mentioned this pull request Jun 3, 2025
5 tasks
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 4, 2025
sagemathgh-40011: remove bzip2 spkg
    
a good enough bzip2/libbz2 is readily available on all the systems we
support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. [sage-devel](https://groups.google.com/g/sage-
devel/c/-ASHfAXqVYo/m/anPQmHxECwAJ) for the relevant context.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40011
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
@vbraun
Copy link
Member

vbraun commented Jun 5, 2025

This breaks the buildbot (debian 12) with bzip installed (but no libbz2-dev)

$ dpkg -l |  grep -E '(bz2|bzip)'
ii  bzip2                           1.0.8-5+b1                     amd64        high-quality block-sorting file compressor - utilities
ii  libbz2-1.0:amd64                1.0.8-5+b1                     amd64        high-quality block-sorting file compressor library - runtime

our configure insists on building python, yet python's bz2 module is not built (presumably due to the lack of libbz2-dev):

$ ./sage -python
Python 3.12.5 (main, Jun  4 2025, 21:12:40) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bz2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/var/lib/buildbot/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/lib/python3.12/bz2.py", line 17, in <module>
    from _bz2 import BZ2Compressor, BZ2Decompressor

In principle thats ok (require libbz2-dev), but our configure diagnostic doesn't mention that at all:

$./configure
[...]
real_configure:

    notice: the following SPKGs did not find equivalent system packages:

        appdirs cachetools chardet colorama cvxopt cypari distlib filelock fpylll matplotlib meson numpy pplpy primecountpy python3 pyzmq scipy tox virtualenv   4ti2 _develop _recommended bliss cbc coxeter3 ffmpeg free_fonts fricas giac gp2c graphviz igraph imagemagick isl libgraphviz libjpeg libnauty libsemigroups libxml2 lrslib msolve onetbb pandoc pari_elldata pari_galpol pari_nftables pari_seadata pdf2svg perl_cpan_polymake_prereq perl_mongodb perl_term_readline_gnu polymake sbcl texlive texlive_luatex xindy
        
checking for the package system in use... debian
real_configure:

    hint: installing the following system packages, if not
    already present, is recommended and may avoid having to
    build them (though some may have to be built anyway):

      $ sudo apt-get update 
      $ sudo apt-get install meson python3 libpython3-dev python3-setuptools python3-venv tox 

real_configure:

    hint: installing the following system packages, if not
    already present, may provide additional optional features:

      $ sudo apt-get update 
      $ sudo apt-get install 4ti2 gpgconf openssh-client default-jdk libavdevice-dev coinor-cbc coinor-libcbc-dev ffmpeg fonts-freefont-otf fricas libgiac-dev xcas pari-gp2c graphviz libigraph-dev imagemagick libisl-dev libgraphviz-dev libjpeg-dev libnauty-dev libxml2-dev lrslib libtbb-dev pandoc pdf2svg libxml-libxslt-perl libxml-writer-perl libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl libterm-readline-gnu-perl polymake libpolymake-dev sbcl texlive-latex-extra texlive-xetex latexmk dvipng tex-gyre texlive-fonts-recommended texlive-lang-cyrillic texlive-lang-english texlive-lang-european texlive-lang-french texlive-lang-german texlive-lang-italian texlive-lang-japanese texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-lang-chinese texlive-luatex xindy 

real_configure:

    hint: After installation, re-run configure using:

      $ make reconfigure
                
mv: cannot stat 'bak_conftest.py': No such file or directory

Shouldn't it at the very least say that you should apt-get install libbz2-dev?

@dimpase
Copy link
Member Author

dimpase commented Jun 5, 2025

@vbraun I will add a test in configure.ac for availability of libbz2 and the corresponding header

dimpase added 3 commits June 5, 2025 20:19
inst_patch no longer even defined, so we should remove it from the deps of the base target
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 6, 2025
sagemathgh-40011: remove bzip2 spkg
    
a good enough bzip2/libbz2 is readily available on all the systems we
support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. [sage-devel](https://groups.google.com/g/sage-
devel/c/-ASHfAXqVYo/m/anPQmHxECwAJ) for the relevant context.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40011
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
@dimpase
Copy link
Member Author

dimpase commented Jun 7, 2025

@vbraun it should be fixed now

vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 8, 2025
sagemathgh-40011: remove bzip2 spkg
    
a good enough bzip2/libbz2 is readily available on all the systems we
support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. [sage-devel](https://groups.google.com/g/sage-
devel/c/-ASHfAXqVYo/m/anPQmHxECwAJ) for the relevant context.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40011
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
@vbraun
Copy link
Member

vbraun commented Jun 8, 2025

Ok it does test now, but immediately bails out and does not make it to the diagnosis screen with suggestions for system packages:

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... none
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for Arch Linux... no
checking for root user... no
checking the symbolic links in the source tree... intact
checking for a sed that does not truncate output... /usr/bin/sed
checking for ar... yes
checking for m4... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.29... yes
checking for ranlib... yes
checking for strip... yes
checking for GNU or BSD tar... /usr/bin/tar
checking for GNU make... /usr/bin/make
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for bzlib.h... no
real_configure: error: could not find bzlib.h, i.e. the header of libbz2 library

@dimpase
Copy link
Member Author

dimpase commented Jun 8, 2025

Ok it does test now, but immediately bails out and does not make it to the diagnosis screen with suggestions for system packages:

This is not a regression, as we don't do it the packages in _prereq. E.g. if you remove m4 from your box and run ./configure, you will end up with

checking for m4... no
real_configure: Sorry, the 'm4' command must be in the path to build Sage
real_configure: On some systems it can be found in /usr/ccs/bin
real_configure: See also http://www.gnu.org/software/m4/
real_configure: error: Exiting, as the macro processor 'm4' can not be found.

Nothing system-specific.
I can make ./configure to say more, but it won't be too system-specific.

@dimpase
Copy link
Member Author

dimpase commented Jun 8, 2025

Ok it does test now, but immediately bails out and does not make it to the diagnosis screen with suggestions for system packages:

This is not a regression, as we don't do it the packages in _prereq. E.g. if you remove m4 from your box and run ./configure, you will end up with

checking for m4... no
real_configure: Sorry, the 'm4' command must be in the path to build Sage
real_configure: On some systems it can be found in /usr/ccs/bin
real_configure: See also http://www.gnu.org/software/m4/
real_configure: error: Exiting, as the macro processor 'm4' can not be found.

Nothing system-specific. I can make ./configure to say more, but it won't be too system-specific.

Done in eeabce5 - now you'll be pointed at https://doc.sagemath.org/html/en/reference/spkg/_prereq.html for more details

vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 9, 2025
sagemathgh-40011: remove bzip2 spkg
    
a good enough bzip2/libbz2 is readily available on all the systems we
support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. [sage-devel](https://groups.google.com/g/sage-
devel/c/-ASHfAXqVYo/m/anPQmHxECwAJ) for the relevant context.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40011
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 9, 2025
sagemathgh-40011: remove bzip2 spkg
    
a good enough bzip2/libbz2 is readily available on all the systems we
support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. [sage-devel](https://groups.google.com/g/sage-
devel/c/-ASHfAXqVYo/m/anPQmHxECwAJ) for the relevant context.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40011
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 9, 2025
sagemathgh-40011: remove bzip2 spkg
    
a good enough bzip2/libbz2 is readily available on all the systems we
support, including "bare" macOS.
Thus it's obsolete, and ripe for removal.

See e.g. [sage-devel](https://groups.google.com/g/sage-
devel/c/-ASHfAXqVYo/m/anPQmHxECwAJ) for the relevant context.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40011
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
@vbraun vbraun merged commit 9fc7660 into sagemath:develop Jun 14, 2025
25 of 28 checks passed
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 17, 2025
As reported by @jeriedel24 [here](https://github.com/sagemath/sage/commi
t/7f6dd7547ecf8c4d23099842f4ad4ace5f2f3072#commitcomment-160100961), old
autoconf does not correctly deal with `test` clauses split across the
lines. So we fix this regression, introduced in sagemath#40011,  here.

We still cannot drop autoconf 2.69, as various distros, e.g. Debian, are
very slow in adapting 2.71+

<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->

URL: sagemath#40261
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 18, 2025
sagemathgh-40261: ensure autoconf 2.69 compatiblity in configure.ac
    
As reported by @jeriedel24 [here](https://github.com/sagemath/sage/commi
t/7f6dd7547ecf8c4d23099842f4ad4ace5f2f3072#commitcomment-160100961), old
autoconf does not correctly deal with `test` clauses split across the
lines. So we fix this regression, introduced in sagemath#40011,  here.

We still cannot drop autoconf 2.69, as various distros, e.g. Debian, are
very slow in adapting 2.71+

<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40261
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 21, 2025
sagemathgh-40204: Remove pkgconf spkg
    
`pkgconf`, a.k.a. `pkg-config`, is available on all systems we support -
even on the "naked" (no homebrew/macports) macOS one can install a
formally certified/notarised package
https://github.com/donmccaughey/pkg-config_pkg - so there is no reason
to keep it in the tree.

There are big advantages to have pkg-config available at configure time,
as recognition of several crucial external spkgs, such as (open)blas,
zlib, etc. hinges upon pkg-config.
With this PR in, we proceed to remove them.

Last but not the least, it simplifies the Makefile by getting rid of
`base` target, which becomes empty


## 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
- sagemath#40011 - remove bzip2 spkg.
- sagemath#40153 - planarity spkg fix (can't build otherwise)
    
URL: sagemath#40204
Reported by: Dima Pasechnik
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 21, 2025
sagemathgh-40261: ensure autoconf 2.69 compatiblity in configure.ac
    
As reported by @jeriedel24 [here](https://github.com/sagemath/sage/commi
t/7f6dd7547ecf8c4d23099842f4ad4ace5f2f3072#commitcomment-160100961), old
autoconf does not correctly deal with `test` clauses split across the
lines. So we fix this regression, introduced in sagemath#40011,  here.

We still cannot drop autoconf 2.69, as various distros, e.g. Debian, are
very slow in adapting 2.71+

<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40261
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 25, 2025
sagemathgh-40204: Remove pkgconf spkg
    
`pkgconf`, a.k.a. `pkg-config`, is available on all systems we support -
even on the "naked" (no homebrew/macports) macOS one can install a
formally certified/notarised package
https://github.com/donmccaughey/pkg-config_pkg - so there is no reason
to keep it in the tree.

There are big advantages to have pkg-config available at configure time,
as recognition of several crucial external spkgs, such as (open)blas,
zlib, etc. hinges upon pkg-config.
With this PR in, we proceed to remove them.

Last but not the least, it simplifies the Makefile by getting rid of
`base` target, which becomes empty


## 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
- sagemath#40011 - remove bzip2 spkg.
- sagemath#40153 - planarity spkg fix (can't build otherwise)
    
URL: sagemath#40204
Reported by: Dima Pasechnik
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 25, 2025
sagemathgh-40261: ensure autoconf 2.69 compatiblity in configure.ac
    
As reported by @jeriedel24 [here](https://github.com/sagemath/sage/commi
t/7f6dd7547ecf8c4d23099842f4ad4ace5f2f3072#commitcomment-160100961), old
autoconf does not correctly deal with `test` clauses split across the
lines. So we fix this regression, introduced in sagemath#40011,  here.

We still cannot drop autoconf 2.69, as various distros, e.g. Debian, are
very slow in adapting 2.71+

<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40261
Reported by: Dima Pasechnik
Reviewer(s): Tobias Diez
@tobiasdiez
Copy link
Contributor

This breaks the sdist publishing: #40306

Should we install there also _preq dependencies, or add bzip also to _bootstrap?

@dimpase
Copy link
Member Author

dimpase commented Jun 26, 2025

installing _prereq dependencies will fix it, sure.

this might be a bit suboptimal, but it's still fast, so why not

I don't understand how it worked before

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants