Re: bld.sh on openSUSE Slowroll (Tumbleweed)
On 2/16/26 11:37 AM, Andrew Randrianasulu wrote:
пн, 16 февр. 2026 г., 11:47 Terje J. Hanssen <[email protected]>:
On 2/15/26 8:21 PM, Andrew Randrianasulu wrote:
вс, 15 февр. 2026 г., 22:12 Terje J. Hanssen <[email protected]>:
On 2/15/26 6:44 PM, Andrew Randrianasulu wrote:
вс, 15 февр. 2026 г., 20:31 Terje J. Hanssen <[email protected]>:
On 2/15/26 6:20 PM, Andrew Randrianasulu wrote: > On Sun, Feb 15, 2026 at 8:00 PM Terje J. Hanssen > <[email protected]> wrote: >> >> >> On 2/15/26 4:58 PM, Andrew Randrianasulu wrote: >> >> [snip] >> >> >> this day's catch: >> >> filempeg.h:33:10: fatal error: lame/lame.h: No such file or directory >> 33 | #include "lame/lame.h" >> | ^~~~~~~~~~~~~ >> compilation terminated. >> make[2]: *** [Makefile:600: x86_64/assetedit.o] Error 1 >> make[2]: *** Waiting for unfinished jobs.... >> >> >> something like libmp3lame-devel needed .... >> >> I do not think you need to send email each time it stops, try to figure out package name, or search via rpm search function or online what package holds those headers .... >> >> >> >> I agree. >> Now I got a difficult one (make); >> >> 25 | #include "xfer/xfer.h" >> >> Tried to install libfm-devel, and could not find any other package that solved this requirement. >> Any idea ? >> >> >> Python3 failed to install ? >> >> >> The question is which package(s) out of hundreds of python3* available? >> >> Looking at the bld_prepare.sh suse package list, there was only one single named "python" >> >> I have 105 python3* package names installed, plus now also -devel packages > one with python3 binary? > > also check if you have "which" command > > > so 'which python3' gives sensible answer > > which python3 > /usr/bin/python3
Yep, get the same.
Yet in make log I saw:
which: no python in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.9 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
Does Suse have any "alternatives" system? So you can set python3.14 (say) as python3 ?
Out of my knowledge. A google/ai say for what it is worth:
Classical "I am root here" way is just to make symlink form fancy-numbered python binary to just /usr/bin/python3
May be morning will be wiser than evening, for this problem.
Yeah, it's not so hasty for me in this olympic time and other daily tasks.
I searched a bit more and got the following infol:
Cin # cat make.log | grep python which: no python in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.9 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.12 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
Verify default version
python3 --version Python 3.13.11
check if a specific version is installed and its version number
python3 --version Python 3.13.11
localhost:/Cin # python3.9 --version python3.9: command not found
python3.12 --version python3.12: command not found
python3.13 --version Python 3.13.11
python3.14 --version Python 3.14.2
python3.15 --version Python 3.15.0a3
Verify all installed versions
ls /usr/bin/python3* /usr/bin/python3 /usr/bin/python3.14 /usr/bin/python3.15-config /usr/bin/python3.13 /usr/bin/python3.14-config /usr/bin/python3-config /usr/bin/python3.13-config /usr/bin/python3.15
So from this output and make output above "just" /usr/bin/python
does not exist
try ln -s /usr/bin/python3 /usr/bin/python
?
Yeah, thanks. Now the build steps ran successful 🙂 * ln -s /usr/bin/python3 /usr/bin/python * make clean * make > make.log 2>&1 * make install > make_install.log 2>&1 cat make.log | grep python /usr/bin/python < ./bccmdl.py cat make.log | grep "#include" tail make.log make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1/po' Making all in db/utils make[2]: Entering directory '/home3/cinelerra/cinelerra-5.1/db/utils' make[2]: warning: -j32 forced in submake: resetting jobserver mode. make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1/db/utils' make[2]: Entering directory '/home3/cinelerra/cinelerra-5.1' make[2]: warning: -j32 forced in submake: resetting jobserver mode. make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1' make[1]: Leaving directory '/home3/cinelerra/cinelerra-5.1' And Cingg launched succesful and tested ok with VAAPI and QSV rendering. VULKAN didn't work as expected and experienced on Intel Alder Lake/ DG2 Info outputs as follows: 1) First launch Cin # bin/cin Cinelerra Infinity - built: Feb 16 2026 13:37:20 ...... BC_DisplayInfo::gl_fb_config failed build plugin index for: /home3/cinelerra/cinelerra-5.1/bin/plugins error: attempt to map invalid URI `(null)' [lv2 @ 0x2976ff80] Invalid plugin URI <(null)> PluginFFilter::new_ffilter(lv2) err: Invalid argument [sofalizer_206 @ 0x29c10840] Valid SOFA filename must be set. PluginFFilter::new_ffilter(sofalizer) err: Invalid argument PluginFFilter::new_ffilter(blend_vulkan) err: Input/output error MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers PluginFFilter::new_ffilter(overlay_vulkan) err: Input/output error PluginFFilter::new_ffilter(xfade_vulkan) err: Input/output error build lv2 index for: $CIN_PATH/lv2 MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers build ladspa plugin index for: /home3/cinelerra/cinelerra-5.1/bin/ladspa ------ 2) Second launch Cinelerra Infinity - built: Feb 16 2026 13:37:20 BC_DisplayInfo::gl_fb_config failed MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers 3) VAAPI test File to render to: /Videoklipp/VAAPI/hdv09_04_cin_hevc_vaapi_8b420.mp4 Video Compression: hevc_vaapi_8b420.mp4 OK render FFMPEG::scan: codec open failed FFMPEG::scan:file=/Videoklipp/VAAPI/hdv09_04.m2t FFMPEG::scan: codec open failed FFMPEG::scan:file=/Videoklipp/VAAPI/hdv09_04.m2t audio0 pad 64 -8831 (8895) audio0 pad 0 -7679 (7679) audio0 pad 0 -6527 (6527) audio0 pad 0 -5375 (5375) audio0 pad 0 -4223 (4223) audio0 pad 0 -3071 (3071) audio0 pad 0 -1919 (1919) audio0 pad 0 -767 (767) Render::render_single: Session finished. ** rendered 5971 frames in 24.211 secs, 246.623 fps audio0 pad 64 0 (64) 4) QSV test File load recent: hdv09_04.m2t /Videoklipp/QSV/hdv09_04_cin_hevc_qsv_8b420.mp4 Compression: hevc_qsv_8b420.mp4 OK BC_DisplayInfo::gl_fb_config failed MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 Render::render_single: Session finished. ** rendered 5972 frames in 18.749 secs, 318.524 fps audio0 pad 64 0 (64) 5) VULKAN test export ANV_DEBUG="video-decode,video-encode" File load recent: hdv09_04.m2t /Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4 Compression: hevc_vulkan_8b420.mp4 [hevc_vulkan @ 0x7f3984036400] Specified pixel format nv12 is not supported by the hevc_vulkan encoder. [hevc_vulkan @ 0x7f3984036400] Supported pixel formats: [hevc_vulkan @ 0x7f3984036400] vulkan FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed hevc_vulkan:/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4 Tried to change Pixel: vulkan (from hevc) cin_pix_fmt=vulkan currently, only vaapi hw encode is supported [hevc_vulkan @ 0x7f3990cca340] A hardware frames reference is required to associate the encoding device. FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed hevc_vulkan:/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4 ------------------ New post follows how to build an AppImage of this build
----------
And the rest from Google/AI:
Yes, SUSE (both openSUSE and SUSE Linux Enterprise) uses an *alternatives* system, but it is typically used for *Python modules* rather than the core |python3| binary itself. While you /can/ technically use the update-alternatives command <https://documentation.suse.com/fr-fr/sled/15-SP5/html/SLED-all/cha-update-alternative.html> to point |python3| to a different version, it is *highly discouraged*. Essential system tools like *YaST*, *Zypper*, and *firewalld* rely on the specific version of Python they were built with; changing the system-wide |python3| can break these critical components. How to manage multiple Python versions safely:
* *The "SUSE Way" for Binaries:* SUSE typically installs Python versions side-by-side as |python3.x|. You are encouraged to call them explicitly (e.g., |python3.14|) or use the correct shebang <https://danigm.net/python-tw.html> in your scripts: |#!/usr/bin/env python3.14|. * *update-alternatives (for modules):* Many Python-based tools (like |poetry|) use the alternatives system so you can switch between versions: bash
|sudo update-alternatives --config poetry |
* *Recommended Tool: pyenv <https://realpython.com/intro-to-pyenv/>:* For development, use *pyenv* (which is packaged in openSUSE) to manage Python versions for a specific user or directory without touching the system default. * *Aliases:* For your own shell usage, adding |alias python3=python3.14| to your |~/.bashrc| is a safe, non-destructive way to change the command for your interactive sessions.
Summary Table Approach Suitability Risk |update-alternatives| Good for generic tools High (Can break system scripts) |libalternatives| Good for Tumbleweed Medium *Pyenv* *Best for development* *None (Isolated to user)* *Venv* *Best for projects* *None*
*In short:* Yes, you can use |update-alternatives| on SUSE, but for Python, *use pyenv* to set a different version as default for your user to avoid breaking the OS.
Directly replacing |/usr/bin/python3| with a newer version (like 3.14) via |update-alternatives| is generally discouraged as it can break system tools that rely on the default version. Here is how to manage multiple Python versions on SUSE:
1. Recommended: Use Package Manager for Side-by-Side Installation SUSE handles multiple Python versions by installing them with specific version names (e.g., |python311|, |python312|). You can install a newer Python version alongside the system default. bash
|sudo zypper install python311 # Example: installing Python 3.11|
* The default Python remains |/usr/bin/python3| (e.g., 3.6 or 3.10). * The new version is available as |/usr/bin/python3.11|. * You can call your scripts using |python3.11 script.py|.
2. The "Alternatives" Approach (Alternative to |update-alternatives|) On modern openSUSE (Tumbleweed/Leap 16+), a new system called *libalternatives* is used to support transactional updates. If you are using an older version, you can create a user-specific alias, which is much safer: bash
|# Add this to your ~/.bashrcalias python3='/usr/bin/python3.11'|
3. Using |pyenv| (Best for Development) To use a very new version like 3.14 without affecting system packages, |pyenv| is recommended. bash
|# Install pyenv and then:pyenv install 3.14.0pyenv global 3.14.0|
> >> zypper se -i python*devel >> >> S | Name | Summary | Type >> ---+-----------------+-------------------------------------------------------------------+-------- >> i+ | python313-devel | Include Files and Libraries Mandatory for Building Python Modules | package >> i+ | python314-devel | Include Files and Libraries Mandatory for Building Python Modules | package >> i+ | python315-devel | Include Files and Libraries Mandatory for Building Python Modules | package >> >> >> but still get >> >> cat make.log | grep "#include" >> 25 | #include "xfer/xfer.h" >> >> >> >>
пн, 16 февр. 2026 г., 19:19 Terje J. Hanssen <[email protected]>:
On 2/16/26 11:37 AM, Andrew Randrianasulu wrote:
пн, 16 февр. 2026 г., 11:47 Terje J. Hanssen <[email protected]>:
On 2/15/26 8:21 PM, Andrew Randrianasulu wrote:
вс, 15 февр. 2026 г., 22:12 Terje J. Hanssen <[email protected]>:
On 2/15/26 6:44 PM, Andrew Randrianasulu wrote:
вс, 15 февр. 2026 г., 20:31 Terje J. Hanssen <[email protected]>:
On 2/15/26 6:20 PM, Andrew Randrianasulu wrote:
On Sun, Feb 15, 2026 at 8:00 PM Terje J. Hanssen <[email protected]> wrote:
On 2/15/26 4:58 PM, Andrew Randrianasulu wrote:
[snip]
this day's catch:
filempeg.h:33:10: fatal error: lame/lame.h: No such file or directory 33 | #include "lame/lame.h" | ^~~~~~~~~~~~~ compilation terminated. make[2]: *** [Makefile:600: x86_64/assetedit.o] Error 1 make[2]: *** Waiting for unfinished jobs....
something like libmp3lame-devel needed ....
I do not think you need to send email each time it stops, try to
figure out package name, or search via rpm search function or online what package holds those headers ....
I agree. Now I got a difficult one (make);
25 | #include "xfer/xfer.h"
Tried to install libfm-devel, and could not find any other package
that solved this requirement.
Any idea ?
Python3 failed to install ?
The question is which package(s) out of hundreds of python3* available?
Looking at the bld_prepare.sh suse package list, there was only one single named "python"
I have 105 python3* package names installed, plus now also -devel packages one with python3 binary?
also check if you have "which" command
so 'which python3' gives sensible answer
which python3 /usr/bin/python3
Yep, get the same.
Yet in make log I saw:
which: no python in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.9 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
Does Suse have any "alternatives" system? So you can set python3.14 (say) as python3 ?
Out of my knowledge. A google/ai say for what it is worth:
Classical "I am root here" way is just to make symlink form fancy-numbered python binary to just /usr/bin/python3
May be morning will be wiser than evening, for this problem.
Yeah, it's not so hasty for me in this olympic time and other daily tasks.
I searched a bit more and got the following infol:
Cin # cat make.log | grep python which: no python in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.9 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.12 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
Verify default version
python3 --version Python 3.13.11
check if a specific version is installed and its version number
python3 --version Python 3.13.11
localhost:/Cin # python3.9 --version python3.9: command not found
python3.12 --version python3.12: command not found
python3.13 --version Python 3.13.11
python3.14 --version Python 3.14.2
python3.15 --version Python 3.15.0a3
Verify all installed versions
ls /usr/bin/python3* /usr/bin/python3 /usr/bin/python3.14 /usr/bin/python3.15-config /usr/bin/python3.13 /usr/bin/python3.14-config /usr/bin/python3-config /usr/bin/python3.13-config /usr/bin/python3.15
So from this output and make output above "just" /usr/bin/python
does not exist
try ln -s /usr/bin/python3 /usr/bin/python
?
Yeah, thanks.
Now the build steps ran successful 🙂
- ln -s /usr/bin/python3 /usr/bin/python - make clean - make > make.log 2>&1 - make install > make_install.log 2>&1
cat make.log | grep python /usr/bin/python < ./bccmdl.py
cat make.log | grep "#include"
tail make.log
make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1/po' Making all in db/utils make[2]: Entering directory '/home3/cinelerra/cinelerra-5.1/db/utils' make[2]: warning: -j32 forced in submake: resetting jobserver mode. make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1/db/utils' make[2]: Entering directory '/home3/cinelerra/cinelerra-5.1' make[2]: warning: -j32 forced in submake: resetting jobserver mode. make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1' make[1]: Leaving directory '/home3/cinelerra/cinelerra-5.1'
And Cingg launched succesful and tested ok with VAAPI and QSV rendering. VULKAN didn't work as expected and experienced on Intel Alder Lake/ DG2
Info outputs as follows:
1) First launch
Cin # bin/cin Cinelerra Infinity - built: Feb 16 2026 13:37:20 ...... BC_DisplayInfo::gl_fb_config failed build plugin index for: /home3/cinelerra/cinelerra-5.1/bin/plugins error: attempt to map invalid URI `(null)' [lv2 @ 0x2976ff80] Invalid plugin URI <(null)> PluginFFilter::new_ffilter(lv2) err: Invalid argument [sofalizer_206 @ 0x29c10840] Valid SOFA filename must be set. PluginFFilter::new_ffilter(sofalizer) err: Invalid argument PluginFFilter::new_ffilter(blend_vulkan) err: Input/output error MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers PluginFFilter::new_ffilter(overlay_vulkan) err: Input/output error PluginFFilter::new_ffilter(xfade_vulkan) err: Input/output error build lv2 index for: $CIN_PATH/lv2 MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers build ladspa plugin index for: /home3/cinelerra/cinelerra-5.1/bin/ladspa
------
2) Second launch
Cinelerra Infinity - built: Feb 16 2026 13:37:20
BC_DisplayInfo::gl_fb_config failed MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers
3) VAAPI test
File to render to: /Videoklipp/VAAPI/hdv09_04_cin_hevc_vaapi_8b420.mp4
Video Compression: hevc_vaapi_8b420.mp4
OK render
FFMPEG::scan: codec open failed FFMPEG::scan:file=/Videoklipp/VAAPI/hdv09_04.m2t FFMPEG::scan: codec open failed FFMPEG::scan:file=/Videoklipp/VAAPI/hdv09_04.m2t audio0 pad 64 -8831 (8895) audio0 pad 0 -7679 (7679) audio0 pad 0 -6527 (6527) audio0 pad 0 -5375 (5375) audio0 pad 0 -4223 (4223) audio0 pad 0 -3071 (3071) audio0 pad 0 -1919 (1919) audio0 pad 0 -767 (767) Render::render_single: Session finished.
** rendered 5971 frames in 24.211 secs, 246.623 fps audio0 pad 64 0 (64)
4) QSV test
File load recent: hdv09_04.m2t
/Videoklipp/QSV/hdv09_04_cin_hevc_qsv_8b420.mp4 Compression: hevc_qsv_8b420.mp4
OK BC_DisplayInfo::gl_fb_config failed MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 Render::render_single: Session finished.
** rendered 5972 frames in 18.749 secs, 318.524 fps audio0 pad 64 0 (64)
A bit strange that qsv rendered one more frame?
5) VULKAN test
export ANV_DEBUG="video-decode,video-encode"
File load recent: hdv09_04.m2t
/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4
Compression: hevc_vulkan_8b420.mp4
[hevc_vulkan @ 0x7f3984036400] Specified pixel format nv12 is not supported by the hevc_vulkan encoder. [hevc_vulkan @ 0x7f3984036400] Supported pixel formats: [hevc_vulkan @ 0x7f3984036400] vulkan FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed hevc_vulkan:/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4
Tried to change Pixel: vulkan (from hevc) cin_pix_fmt=vulkan
currently, only vaapi hw encode is supported [hevc_vulkan @ 0x7f3990cca340] A hardware frames reference is required to associate the encoding device. FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed hevc_vulkan:/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4
yeah, unless you applied patch manually vulkan encode not supposed to work due to way we initialize/open encoder ....
------------------
New post follows how to build an AppImage of this build
----------
And the rest from Google/AI:
Yes, SUSE (both openSUSE and SUSE Linux Enterprise) uses an *alternatives* system, but it is typically used for *Python modules* rather than the core python3 binary itself. While you *can* technically use the update-alternatives command <https://documentation.suse.com/fr-fr/sled/15-SP5/html/SLED-all/cha-update-alternative.html> to point python3 to a different version, it is *highly discouraged*. Essential system tools like *YaST*, *Zypper*, and *firewalld* rely on the specific version of Python they were built with; changing the system-wide python3 can break these critical components. How to manage multiple Python versions safely:
- *The "SUSE Way" for Binaries:* SUSE typically installs Python versions side-by-side as python3.x. You are encouraged to call them explicitly (e.g., python3.14) or use the correct shebang <https://danigm.net/python-tw.html> in your scripts: #!/usr/bin/env python3.14. - *update-alternatives (for modules):* Many Python-based tools (like poetry) use the alternatives system so you can switch between versions: bash
sudo update-alternatives --config poetry
- *Recommended Tool: pyenv <https://realpython.com/intro-to-pyenv/>:* For development, use *pyenv* (which is packaged in openSUSE) to manage Python versions for a specific user or directory without touching the system default. - *Aliases:* For your own shell usage, adding alias python3=python3.14 to your ~/.bashrc is a safe, non-destructive way to change the command for your interactive sessions.
Summary Table Approach Suitability Risk update-alternatives Good for generic tools High (Can break system scripts) libalternatives Good for Tumbleweed Medium *Pyenv* *Best for development* *None (Isolated to user)* *Venv* *Best for projects* *None* *In short:* Yes, you can use update-alternatives on SUSE, but for Python, *use pyenv* to set a different version as default for your user to avoid breaking the OS.
Directly replacing /usr/bin/python3 with a newer version (like 3.14) via update-alternatives is generally discouraged as it can break system tools that rely on the default version. Here is how to manage multiple Python versions on SUSE:
1. Recommended: Use Package Manager for Side-by-Side Installation SUSE handles multiple Python versions by installing them with specific version names (e.g., python311, python312). You can install a newer Python version alongside the system default. bash
sudo zypper install python311 # Example: installing Python 3.11
- The default Python remains /usr/bin/python3 (e.g., 3.6 or 3.10). - The new version is available as /usr/bin/python3.11. - You can call your scripts using python3.11 script.py.
2. The "Alternatives" Approach (Alternative to update-alternatives) On modern openSUSE (Tumbleweed/Leap 16+), a new system called *libalternatives* is used to support transactional updates. If you are using an older version, you can create a user-specific alias, which is much safer: bash
# Add this to your ~/.bashrc alias python3='/usr/bin/python3.11'
3. Using pyenv (Best for Development) To use a very new version like 3.14 without affecting system packages, pyenv is recommended. bash
# Install pyenv and then: pyenv install 3.14.0 pyenv global 3.14.0
zypper se -i python*devel
S | Name | Summary
| Type
---+-----------------+-------------------------------------------------------------------+--------
i+ | python313-devel | Include Files and Libraries Mandatory for Building Python Modules | package i+ | python314-devel | Include Files and Libraries Mandatory for Building Python Modules | package i+ | python315-devel | Include Files and Libraries Mandatory for Building Python Modules | package
but still get
cat make.log | grep "#include" 25 | #include "xfer/xfer.h"
On 2/16/26 5:38 PM, Andrew Randrianasulu wrote:
пн, 16 февр. 2026 г., 19:19 Terje J. Hanssen <[email protected]>:
On 2/16/26 11:37 AM, Andrew Randrianasulu wrote:
пн, 16 февр. 2026 г., 11:47 Terje J. Hanssen <[email protected]>:
On 2/15/26 8:21 PM, Andrew Randrianasulu wrote:
вс, 15 февр. 2026 г., 22:12 Terje J. Hanssen <[email protected]>:
On 2/15/26 6:44 PM, Andrew Randrianasulu wrote:
вс, 15 февр. 2026 г., 20:31 Terje J. Hanssen <[email protected]>:
On 2/15/26 6:20 PM, Andrew Randrianasulu wrote: > On Sun, Feb 15, 2026 at 8:00 PM Terje J. Hanssen > <[email protected]> wrote: >> >> >> On 2/15/26 4:58 PM, Andrew Randrianasulu wrote: >> >> [snip] >> >> >> this day's catch: >> >> filempeg.h:33:10: fatal error: lame/lame.h: No such file or directory >> 33 | #include "lame/lame.h" >> | ^~~~~~~~~~~~~ >> compilation terminated. >> make[2]: *** [Makefile:600: x86_64/assetedit.o] Error 1 >> make[2]: *** Waiting for unfinished jobs.... >> >> >> something like libmp3lame-devel needed .... >> >> I do not think you need to send email each time it stops, try to figure out package name, or search via rpm search function or online what package holds those headers .... >> >> >> >> I agree. >> Now I got a difficult one (make); >> >> 25 | #include "xfer/xfer.h" >> >> Tried to install libfm-devel, and could not find any other package that solved this requirement. >> Any idea ? >> >> >> Python3 failed to install ? >> >> >> The question is which package(s) out of hundreds of python3* available? >> >> Looking at the bld_prepare.sh suse package list, there was only one single named "python" >> >> I have 105 python3* package names installed, plus now also -devel packages > one with python3 binary? > > also check if you have "which" command > > > so 'which python3' gives sensible answer > > which python3 > /usr/bin/python3
Yep, get the same.
Yet in make log I saw:
which: no python in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.9 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
Does Suse have any "alternatives" system? So you can set python3.14 (say) as python3 ?
Out of my knowledge. A google/ai say for what it is worth:
Classical "I am root here" way is just to make symlink form fancy-numbered python binary to just /usr/bin/python3
May be morning will be wiser than evening, for this problem.
Yeah, it's not so hasty for me in this olympic time and other daily tasks.
I searched a bit more and got the following infol:
Cin # cat make.log | grep python which: no python in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.9 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin) which: no python3.12 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
Verify default version
python3 --version Python 3.13.11
check if a specific version is installed and its version number
python3 --version Python 3.13.11
localhost:/Cin # python3.9 --version python3.9: command not found
python3.12 --version python3.12: command not found
python3.13 --version Python 3.13.11
python3.14 --version Python 3.14.2
python3.15 --version Python 3.15.0a3
Verify all installed versions
ls /usr/bin/python3* /usr/bin/python3 /usr/bin/python3.14 /usr/bin/python3.15-config /usr/bin/python3.13 /usr/bin/python3.14-config /usr/bin/python3-config /usr/bin/python3.13-config /usr/bin/python3.15
So from this output and make output above "just" /usr/bin/python
does not exist
try ln -s /usr/bin/python3 /usr/bin/python
?
Yeah, thanks.
Now the build steps ran successful 🙂
* ln -s /usr/bin/python3 /usr/bin/python * make clean
I possibly forgot CFLAGS=-I/usr/include/ffmpeg ./configure --with-single-user --disable-static-build --without-thirdparty --without-libdpx in here
* make > make.log 2>&1 * make install > make_install.log 2>&1
cat make.log | grep python /usr/bin/python < ./bccmdl.py
cat make.log | grep "#include"
tail make.log
make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1/po' Making all in db/utils make[2]: Entering directory '/home3/cinelerra/cinelerra-5.1/db/utils' make[2]: warning: -j32 forced in submake: resetting jobserver mode. make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1/db/utils' make[2]: Entering directory '/home3/cinelerra/cinelerra-5.1' make[2]: warning: -j32 forced in submake: resetting jobserver mode. make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/home3/cinelerra/cinelerra-5.1' make[1]: Leaving directory '/home3/cinelerra/cinelerra-5.1'
And Cingg launched succesful and tested ok with VAAPI and QSV rendering. VULKAN didn't work as expected and experienced on Intel Alder Lake/ DG2
Info outputs as follows:
1) First launch
Cin # bin/cin Cinelerra Infinity - built: Feb 16 2026 13:37:20 ...... BC_DisplayInfo::gl_fb_config failed build plugin index for: /home3/cinelerra/cinelerra-5.1/bin/plugins error: attempt to map invalid URI `(null)' [lv2 @ 0x2976ff80] Invalid plugin URI <(null)> PluginFFilter::new_ffilter(lv2) err: Invalid argument [sofalizer_206 @ 0x29c10840] Valid SOFA filename must be set. PluginFFilter::new_ffilter(sofalizer) err: Invalid argument PluginFFilter::new_ffilter(blend_vulkan) err: Input/output error MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers PluginFFilter::new_ffilter(overlay_vulkan) err: Input/output error PluginFFilter::new_ffilter(xfade_vulkan) err: Input/output error build lv2 index for: $CIN_PATH/lv2 MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers build ladspa plugin index for: /home3/cinelerra/cinelerra-5.1/bin/ladspa
------
2) Second launch
Cinelerra Infinity - built: Feb 16 2026 13:37:20
BC_DisplayInfo::gl_fb_config failed MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers
3) VAAPI test
File to render to: /Videoklipp/VAAPI/hdv09_04_cin_hevc_vaapi_8b420.mp4
Video Compression: hevc_vaapi_8b420.mp4
OK render
FFMPEG::scan: codec open failed FFMPEG::scan:file=/Videoklipp/VAAPI/hdv09_04.m2t FFMPEG::scan: codec open failed FFMPEG::scan:file=/Videoklipp/VAAPI/hdv09_04.m2t audio0 pad 64 -8831 (8895) audio0 pad 0 -7679 (7679) audio0 pad 0 -6527 (6527) audio0 pad 0 -5375 (5375) audio0 pad 0 -4223 (4223) audio0 pad 0 -3071 (3071) audio0 pad 0 -1919 (1919) audio0 pad 0 -767 (767) Render::render_single: Session finished.
** rendered 5971 frames in 24.211 secs, 246.623 fps audio0 pad 64 0 (64)
4) QSV test
File load recent: hdv09_04.m2t
/Videoklipp/QSV/hdv09_04_cin_hevc_qsv_8b420.mp4 Compression: hevc_qsv_8b420.mp4
OK BC_DisplayInfo::gl_fb_config failed MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:993: FINISHME: support more multi-planar formats with DRM modifiers libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 Render::render_single: Session finished.
** rendered 5972 frames in 18.749 secs, 318.524 fps audio0 pad 64 0 (64)
A bit strange that qsv rendered one more frame?
I compared with notes from XPS-13 and all tests rendered 5972 frames.
5) VULKAN test
export ANV_DEBUG="video-decode,video-encode"
File load recent: hdv09_04.m2t
/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4
Compression: hevc_vulkan_8b420.mp4
[hevc_vulkan @ 0x7f3984036400] Specified pixel format nv12 is not supported by the hevc_vulkan encoder. [hevc_vulkan @ 0x7f3984036400] Supported pixel formats: [hevc_vulkan @ 0x7f3984036400] vulkan FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed hevc_vulkan:/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4
Tried to change Pixel: vulkan (from hevc) cin_pix_fmt=vulkan
currently, only vaapi hw encode is supported [hevc_vulkan @ 0x7f3990cca340] A hardware frames reference is required to associate the encoding device. FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed hevc_vulkan:/Videoklipp/VULKAN/hdv09_04_cin_hevc_vulkan_8b420.mp4
yeah, unless you applied patch manually vulkan encode not supposed to work due to way we initialize/open encoder ....
------------------
New post follows how to build an AppImage of this build
----------
And the rest from Google/AI:
Yes, SUSE (both openSUSE and SUSE Linux Enterprise) uses an *alternatives* system, but it is typically used for *Python modules* rather than the core |python3| binary itself. While you /can/ technically use the update-alternatives command <https://documentation.suse.com/fr-fr/sled/15-SP5/html/SLED-all/cha-update-alternative.html> to point |python3| to a different version, it is *highly discouraged*. Essential system tools like *YaST*, *Zypper*, and *firewalld* rely on the specific version of Python they were built with; changing the system-wide |python3| can break these critical components. How to manage multiple Python versions safely:
* *The "SUSE Way" for Binaries:* SUSE typically installs Python versions side-by-side as |python3.x|. You are encouraged to call them explicitly (e.g., |python3.14|) or use the correct shebang <https://danigm.net/python-tw.html> in your scripts: |#!/usr/bin/env python3.14|. * *update-alternatives (for modules):* Many Python-based tools (like |poetry|) use the alternatives system so you can switch between versions: bash
|sudo update-alternatives --config poetry |
* *Recommended Tool: pyenv <https://realpython.com/intro-to-pyenv/>:* For development, use *pyenv* (which is packaged in openSUSE) to manage Python versions for a specific user or directory without touching the system default. * *Aliases:* For your own shell usage, adding |alias python3=python3.14| to your |~/.bashrc| is a safe, non-destructive way to change the command for your interactive sessions.
Summary Table Approach Suitability Risk |update-alternatives| Good for generic tools High (Can break system scripts) |libalternatives| Good for Tumbleweed Medium *Pyenv* *Best for development* *None (Isolated to user)* *Venv* *Best for projects* *None*
*In short:* Yes, you can use |update-alternatives| on SUSE, but for Python, *use pyenv* to set a different version as default for your user to avoid breaking the OS.
Directly replacing |/usr/bin/python3| with a newer version (like 3.14) via |update-alternatives| is generally discouraged as it can break system tools that rely on the default version. Here is how to manage multiple Python versions on SUSE:
1. Recommended: Use Package Manager for Side-by-Side Installation SUSE handles multiple Python versions by installing them with specific version names (e.g., |python311|, |python312|). You can install a newer Python version alongside the system default. bash
|sudo zypper install python311 # Example: installing Python 3.11|
* The default Python remains |/usr/bin/python3| (e.g., 3.6 or 3.10). * The new version is available as |/usr/bin/python3.11|. * You can call your scripts using |python3.11 script.py|.
2. The "Alternatives" Approach (Alternative to |update-alternatives|) On modern openSUSE (Tumbleweed/Leap 16+), a new system called *libalternatives* is used to support transactional updates. If you are using an older version, you can create a user-specific alias, which is much safer: bash
|# Add this to your ~/.bashrcalias python3='/usr/bin/python3.11'|
3. Using |pyenv| (Best for Development) To use a very new version like 3.14 without affecting system packages, |pyenv| is recommended. bash
|# Install pyenv and then:pyenv install 3.14.0pyenv global 3.14.0|
> >> zypper se -i python*devel >> >> S | Name | Summary | Type >> ---+-----------------+-------------------------------------------------------------------+-------- >> i+ | python313-devel | Include Files and Libraries Mandatory for Building Python Modules | package >> i+ | python314-devel | Include Files and Libraries Mandatory for Building Python Modules | package >> i+ | python315-devel | Include Files and Libraries Mandatory for Building Python Modules | package >> >> >> but still get >> >> cat make.log | grep "#include" >> 25 | #include "xfer/xfer.h" >> >> >> >>
participants (2)
-
Andrew Randrianasulu -
Terje J. Hanssen