Skip to content

Commit e3dbc78

Browse files
authored
Avoid trailing colon when prepending to optional env vars (#1645)
When prepending a value to an env var that uses a delimiter, the delimiter should not be added when the env var wasn't previously set. To achieve this we use the ${var:+VALUE_IF_SET} parameter expansion feature. See: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
1 parent 8656b21 commit e3dbc78

File tree

7 files changed

+42
-41
lines changed

7 files changed

+42
-41
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## [Unreleased]
44

5+
- Stopped adding a trailing `:` to `C_INCLUDE_PATH`, `CPLUS_INCLUDE_PATH`, `LIBRARY_PATH`, `LD_LIBRARY_PATH` and `PKG_CONFIG_PATH`. ([#1645](https://github.com/heroku/heroku-buildpack-python/pull/1645))
56
- Removed remnants of the unused `.heroku/vendor/` directory. ([#1644](https://github.com/heroku/heroku-buildpack-python/pull/1644))
67

78
## [v257] - 2024-09-24

bin/compile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ export PYTHONUNBUFFERED=1
7777
# Ensure Python uses a Unicode locale, to prevent the issues described in:
7878
# https://github.com/docker-library/python/pull/570
7979
export LANG="en_US.UTF-8"
80-
export C_INCLUDE_PATH="/app/.heroku/python/include:${C_INCLUDE_PATH}"
81-
export CPLUS_INCLUDE_PATH="/app/.heroku/python/include:${CPLUS_INCLUDE_PATH}"
82-
export LIBRARY_PATH="/app/.heroku/python/lib:${LIBRARY_PATH}"
83-
export LD_LIBRARY_PATH="/app/.heroku/python/lib:${LD_LIBRARY_PATH}"
84-
export PKG_CONFIG_PATH="/app/.heroku/python/lib/pkg-config:${PKG_CONFIG_PATH}"
80+
export C_INCLUDE_PATH="/app/.heroku/python/include${C_INCLUDE_PATH:+:${C_INCLUDE_PATH}}"
81+
export CPLUS_INCLUDE_PATH="/app/.heroku/python/include${CPLUS_INCLUDE_PATH:+:${CPLUS_INCLUDE_PATH}}"
82+
export LIBRARY_PATH="/app/.heroku/python/lib${LIBRARY_PATH:+:${LIBRARY_PATH}}"
83+
export LD_LIBRARY_PATH="/app/.heroku/python/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
84+
export PKG_CONFIG_PATH="/app/.heroku/python/lib/pkg-config${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
8585

8686
# Global pip options (https://pip.pypa.io/en/stable/user_guide/#environment-variables).
8787
# Disable pip's warnings about EOL Python since we show our own.
@@ -248,8 +248,8 @@ set_env PYTHONUNBUFFERED true
248248
# Tell Python where it lives.
249249
set_env PYTHONHOME "\${HOME}/.heroku/python"
250250
# Set variables for C libraries.
251-
set_env LIBRARY_PATH "\${HOME}/.heroku/python/lib:\${LIBRARY_PATH}"
252-
set_env LD_LIBRARY_PATH "\${HOME}/.heroku/python/lib:\${LD_LIBRARY_PATH}"
251+
set_env LIBRARY_PATH "\${HOME}/.heroku/python/lib\${LIBRARY_PATH:+:\${LIBRARY_PATH}}"
252+
set_env LD_LIBRARY_PATH "\${HOME}/.heroku/python/lib\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}"
253253
# Locale.
254254
set_default_env LANG en_US.UTF-8
255255
# The Python hash seed is set to random.

spec/hatchet/ci_spec.rb

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@
2626
-----> Skipping Django collectstatic since the env var DISABLE_COLLECTSTATIC is set.
2727
-----> Running post-compile hook
2828
CI=true
29-
CPLUS_INCLUDE_PATH=/app/.heroku/python/include:
30-
C_INCLUDE_PATH=/app/.heroku/python/include:
29+
CPLUS_INCLUDE_PATH=/app/.heroku/python/include
30+
C_INCLUDE_PATH=/app/.heroku/python/include
3131
DISABLE_COLLECTSTATIC=1
3232
INSTALL_TEST=1
3333
LANG=en_US.UTF-8
3434
LC_ALL=C.UTF-8
35-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
36-
LIBRARY_PATH=/app/.heroku/python/lib:
35+
LD_LIBRARY_PATH=/app/.heroku/python/lib
36+
LIBRARY_PATH=/app/.heroku/python/lib
3737
PATH=/app/.heroku/python/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/app/.sprettur/bin/
3838
PIP_NO_PYTHON_VERSION_WARNING=1
39-
PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config:
39+
PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config
4040
PYTHONUNBUFFERED=1
4141
-----> Inline app detected
4242
LANG=en_US.UTF-8
43-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
44-
LIBRARY_PATH=/app/.heroku/python/lib:
43+
LD_LIBRARY_PATH=/app/.heroku/python/lib
44+
LIBRARY_PATH=/app/.heroku/python/lib
4545
PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/app/.sprettur/bin/
4646
PYTHONHASHSEED=random
4747
PYTHONHOME=/app/.heroku/python
@@ -54,8 +54,8 @@
5454
FORWARDED_ALLOW_IPS=\\*
5555
GUNICORN_CMD_ARGS=--access-logfile -
5656
LANG=en_US.UTF-8
57-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
58-
LIBRARY_PATH=/app/.heroku/python/lib:
57+
LD_LIBRARY_PATH=/app/.heroku/python/lib
58+
LIBRARY_PATH=/app/.heroku/python/lib
5959
PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/app/.sprettur/bin/:/app/.sprettur/bin/
6060
PYTHONHASHSEED=random
6161
PYTHONHOME=/app/.heroku/python
@@ -104,22 +104,22 @@
104104
-----> Skipping Django collectstatic since the env var DISABLE_COLLECTSTATIC is set.
105105
-----> Running post-compile hook
106106
CI=true
107-
CPLUS_INCLUDE_PATH=/app/.heroku/python/include:
108-
C_INCLUDE_PATH=/app/.heroku/python/include:
107+
CPLUS_INCLUDE_PATH=/app/.heroku/python/include
108+
C_INCLUDE_PATH=/app/.heroku/python/include
109109
DISABLE_COLLECTSTATIC=1
110110
INSTALL_TEST=1
111111
LANG=en_US.UTF-8
112112
LC_ALL=C.UTF-8
113-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
114-
LIBRARY_PATH=/app/.heroku/python/lib:
113+
LD_LIBRARY_PATH=/app/.heroku/python/lib
114+
LIBRARY_PATH=/app/.heroku/python/lib
115115
PATH=/app/.heroku/python/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/app/.sprettur/bin/
116116
PIP_NO_PYTHON_VERSION_WARNING=1
117-
PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config:
117+
PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config
118118
PYTHONUNBUFFERED=1
119119
-----> Inline app detected
120120
LANG=en_US.UTF-8
121-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
122-
LIBRARY_PATH=/app/.heroku/python/lib:
121+
LD_LIBRARY_PATH=/app/.heroku/python/lib
122+
LIBRARY_PATH=/app/.heroku/python/lib
123123
PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/app/.sprettur/bin/
124124
PYTHONHASHSEED=random
125125
PYTHONHOME=/app/.heroku/python
@@ -132,8 +132,8 @@
132132
FORWARDED_ALLOW_IPS=\\*
133133
GUNICORN_CMD_ARGS=--access-logfile -
134134
LANG=en_US.UTF-8
135-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
136-
LIBRARY_PATH=/app/.heroku/python/lib:
135+
LD_LIBRARY_PATH=/app/.heroku/python/lib
136+
LIBRARY_PATH=/app/.heroku/python/lib
137137
PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/app/.sprettur/bin/:/app/.sprettur/bin/
138138
PYTHONHASHSEED=random
139139
PYTHONHOME=/app/.heroku/python

spec/hatchet/hooks_spec.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
remote: ~ pre_compile ran with env vars:
1919
remote: BUILD_DIR=/tmp/build_<hash>
2020
remote: CACHE_DIR=/tmp/codon/tmp/cache
21-
remote: C_INCLUDE_PATH=/app/.heroku/python/include:
22-
remote: CPLUS_INCLUDE_PATH=/app/.heroku/python/include:
21+
remote: C_INCLUDE_PATH=/app/.heroku/python/include
22+
remote: CPLUS_INCLUDE_PATH=/app/.heroku/python/include
2323
remote: ENV_DIR=/tmp/...
2424
remote: HOME=/app
2525
remote: LANG=en_US.UTF-8
26-
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib:
27-
remote: LIBRARY_PATH=/app/.heroku/python/lib:
26+
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib
27+
remote: LIBRARY_PATH=/app/.heroku/python/lib
2828
remote: PATH=/app/.heroku/python/bin::/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2929
remote: PIP_NO_PYTHON_VERSION_WARNING=1
30-
remote: PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config:
30+
remote: PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config
3131
remote: PWD=/tmp/build_<hash>
3232
remote: PYTHONUNBUFFERED=1
3333
remote: SOME_APP_CONFIG_VAR=1
@@ -42,16 +42,16 @@
4242
remote: ~ post_compile ran with env vars:
4343
remote: BUILD_DIR=/tmp/build_<hash>
4444
remote: CACHE_DIR=/tmp/codon/tmp/cache
45-
remote: C_INCLUDE_PATH=/app/.heroku/python/include:
46-
remote: CPLUS_INCLUDE_PATH=/app/.heroku/python/include:
45+
remote: C_INCLUDE_PATH=/app/.heroku/python/include
46+
remote: CPLUS_INCLUDE_PATH=/app/.heroku/python/include
4747
remote: ENV_DIR=/tmp/...
4848
remote: HOME=/app
4949
remote: LANG=en_US.UTF-8
50-
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib:
51-
remote: LIBRARY_PATH=/app/.heroku/python/lib:
50+
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib
51+
remote: LIBRARY_PATH=/app/.heroku/python/lib
5252
remote: PATH=/app/.heroku/python/bin::/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
5353
remote: PIP_NO_PYTHON_VERSION_WARNING=1
54-
remote: PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config:
54+
remote: PKG_CONFIG_PATH=/app/.heroku/python/lib/pkg-config
5555
remote: PWD=/tmp/build_<hash>
5656
remote: PYTHONUNBUFFERED=1
5757
remote: SOME_APP_CONFIG_VAR=1

spec/hatchet/pip_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
remote: Successfully installed typing-extensions-4.12.2
3636
remote: -----> Inline app detected
3737
remote: LANG=en_US.UTF-8
38-
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib:
39-
remote: LIBRARY_PATH=/app/.heroku/python/lib:
38+
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib
39+
remote: LIBRARY_PATH=/app/.heroku/python/lib
4040
remote: PATH=/app/.heroku/python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
4141
remote: PYTHONHASHSEED=random
4242
remote: PYTHONHOME=/app/.heroku/python

spec/hatchet/pipenv_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@
8686
remote: Installing dependencies from Pipfile.lock \\(.+\\)...
8787
remote: -----> Inline app detected
8888
remote: LANG=en_US.UTF-8
89-
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib:
90-
remote: LIBRARY_PATH=/app/.heroku/python/lib:
89+
remote: LD_LIBRARY_PATH=/app/.heroku/python/lib
90+
remote: LIBRARY_PATH=/app/.heroku/python/lib
9191
remote: PATH=/app/.heroku/python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9292
remote: PYTHONHASHSEED=random
9393
remote: PYTHONHOME=/app/.heroku/python

spec/hatchet/profile_d_scripts_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
GUNICORN_CMD_ARGS=--access-logfile -
2020
HOME=/app
2121
LANG=en_US.UTF-8
22-
LD_LIBRARY_PATH=/app/.heroku/python/lib:
23-
LIBRARY_PATH=/app/.heroku/python/lib:
22+
LD_LIBRARY_PATH=/app/.heroku/python/lib
23+
LIBRARY_PATH=/app/.heroku/python/lib
2424
PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin
2525
PWD=/app
2626
PYTHONHASHSEED=random

0 commit comments

Comments
 (0)