Skip to content
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

Add missing runtime libs to heroku-22 and heroku-24 #317

Merged
merged 5 commits into from
Sep 23, 2024

Conversation

dzuelke
Copy link
Contributor

@dzuelke dzuelke commented Jul 31, 2024

As a general rule, we make dynamic libraries available in the run base images if the packages containing headers for dynamic linking (typically named lib…-dev) are present in the build image.

This ensures that programs that dynamically link against libraries using these headers at build time (e.g. native extensions for various languages) work reliably at runtime.

A recent review of the list of packages on all stacks turned up a number of packages that aren't available at runtime, but have build time headers.

Ignoring heroku-20 (as it is deprecated), and disregarding libpcre… libraries for character strings other than UTF-8 (which already are in the run images) as well as X11-related libraries, we're missing the following:

heroku-22:

  • libgeoip1 because of libgeoip-dev
  • libhashkit2 because of libhashkit-dev
  • libmemcachedutil2 because of libmemcached-dev
  • libnetpbm10 because of libnetpbm10-dev
  • libwmf-0.2-7 because of libwmf-dev

heroku-24:

  • libgirepository-1.0-1 because of libgirepository1.0-dev and libgirepository-1.0-dev
  • libidn12 because of libidn-dev
  • libmemcachedutil2t64 because of libmemcached-dev
  • libwebpdecoder3 because of libwebp-dev
  • libwmf-0.2-7 because of libwmf-dev

GUS-W-16381871

@dzuelke dzuelke requested a review from a team as a code owner July 31, 2024 13:38
@dzuelke dzuelke marked this pull request as draft July 31, 2024 13:58
- libgeoip1 because of libgeoip-dev
- libhashkit2 because of libhashkit-dev
- libmemcachedutil2 because of libmemcached-dev
- libnetpbm10 because of libnetpbm10-dev
- libwmf-0.2-7 because of libwmf-dev

GUS-W-16381871
@dzuelke dzuelke force-pushed the add-missing-runtime-libs branch from 89e438f to 6d28afc Compare September 5, 2024 15:10
@dzuelke
Copy link
Contributor Author

dzuelke commented Sep 5, 2024

Sizes:

% docker run -u root --rm -ti heroku/heroku:22 bash
root@2e3c355b3af4:/# apt-get update

root@2e3c355b3af4:/# apt-get install libgeoip1 libhashkit2 libmemcachedutil2 libnetpbm10 libwmf-0.2-7
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  geoip-bin libwmf-0.2-7-gtk
The following NEW packages will be installed:
  libgeoip1 libhashkit2 libmemcachedutil2 libnetpbm10 libwmf-0.2-7
0 upgraded, 5 newly installed, 0 to remove and 3 not upgraded.
Need to get 284 kB of archives.
After this operation, 1001 kB of additional disk space will be used.
% docker run -u root --rm -ti heroku/heroku:24 bash      
root@5e5722257542:/# apt-get update

root@5e5722257542:/# apt-get install libgirepository-1.0-1 libidn12 libmemcachedutil2t64 libwebpdecoder3 libwmf-0.2-7
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  libwmf-0.2-7-gtk
The following NEW packages will be installed:
  libgirepository-1.0-1 libidn12 libmemcachedutil2t64 libwebpdecoder3
  libwmf-0.2-7
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 328 kB of archives.
After this operation, 1278 kB of additional disk space will be used.

@dzuelke dzuelke force-pushed the add-missing-runtime-libs branch 3 times, most recently from 8f0b18b to 08092e3 Compare September 5, 2024 16:02
- libgirepository-1.0-1 because of libgirepository1.0-dev and libgirepository-1.0-dev
- libidn12 because of libidn-dev
- libmemcachedutil2t64 because of libmemcached-dev
- libwebpdecoder3 because of libwebp-dev
- libwmf-0.2-7 because of libwmf-dev

GUS-W-16381871
@dzuelke dzuelke force-pushed the add-missing-runtime-libs branch from 08092e3 to f733e36 Compare September 5, 2024 16:24
@dzuelke dzuelke marked this pull request as ready for review September 5, 2024 17:08
Copy link
Member

@edmorley edmorley left a comment

Choose a reason for hiding this comment

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

Thank you for listing the size impacts - makes review easier!

I'm happy for us to add these - just have a few questions/comments first :-)

heroku-24/setup.sh Outdated Show resolved Hide resolved
heroku-22/setup.sh Outdated Show resolved Hide resolved
It's now already included after the recent re-introduction of ghostscript in #324
As discussed in #317, we removed this from heroku-24, and it hasn't come up as an issue report.
Copy link
Member

@edmorley edmorley left a comment

Choose a reason for hiding this comment

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

Thank you!

@dzuelke dzuelke merged commit 5b37dd9 into main Sep 23, 2024
10 checks passed
@dzuelke dzuelke deleted the add-missing-runtime-libs branch September 23, 2024 15:11
@edmorley
Copy link
Member

@dzuelke Could you update the PR description so it matches the final version of the PR? :-)

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.

2 participants