View Issue Details

IDProjectCategoryView StatusLast Update
0000648Cinelerra-GG[All Projects] Bugpublic2024-02-18 19:40
Reportershipman Assigned ToPhyllisSmith  
PrioritylowSeverityblockReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000648: Python 3.12 removed obsolete IMP module. - Can't build cinelerra from source
DescriptionBuild of Cinelerra fails because no IMP module.
Steps To ReproduceBuild cinelerra with python 3.12
TagsNo tags attached.

Activities

PhyllisSmith

PhyllisSmith

2024-02-18 19:40

manager   ~0005613

With the 3 LV2 related patches checked in, it now builds using Python 3.12 where imp code was deleted.
PhyllisSmith

PhyllisSmith

2024-02-08 19:52

manager   ~0005612

@shipman
Patches have been checked into CinGG GIT so that it will now build LV2 files using Python 3.12 on Fedora 39 -- I got no errors on my desktop Fedora 39.
PhyllisSmith

PhyllisSmith

2023-12-21 01:13

manager   ~0005611

@Andrew-R
The lilv development files were already installed. I tried again with same failure. Below shows install on 32 and 39.
Fedora 32
***
[root@keystone Downloads]# dnf list | grep lilv
lilv.x86_64 0.24.6-3.fc32
lilv.i686 0.24.6-3.fc32
lilv-devel.i686 0.24.6-3.fc32
lilv-devel.x86_64 0.24.6-3.fc32
python3-lilv.x86_64 0.24.6-3.fc32

Fedora 39
***
root@fedora:/tmp# grep lilv a
lilv-libs.x86_64 0.24.20-1.fc39
lilv.x86_64 0.24.20-1.fc39
lilv-devel.i686 0.24.20-1.fc39
lilv-devel.x86_64 0.24.20-1.fc39
lilv-libs.i686 0.24.20-1.fc39
python3-lilv.x86_64 0.24.20-1.fc39

I will send you the failure log privately.
Andrew-R

Andrew-R

2023-12-21 00:04

reporter   ~0005610

@PhyllisSmith , yes (but full line a bit longer because I tested it on termux only so far.

Be sure to install lilv-dev - development files for lilv. Because this is interface library to lv2 - Fedora should fetch all other files /packages automatically, I hope.
PhyllisSmith

PhyllisSmith

2023-12-20 23:58

manager   ~0005609

@Andrew-R
So to do that, you used?
./configure --with-lv2 --disable-lv2 --disable-sord --disable-serd --disable-suil --disable-sratom --disable-lilv
That failed for me, but let me try again as maybe I made a mistake.
Andrew-R

Andrew-R

2023-12-20 21:11

reporter   ~0005608

@PhyllisSmith

I also tried to " --disable" all our lv2 stack components YET keep lv2 enabled.

On termux I only have one lv2 plugin (rubberband-lv2) but it appear in list of audio plugins after I manually enter path to folder with it in Preferences.

So, there seems to be way to keep lv2 functionality as long as system's lv2 stack does not drift too far away from version we used ....
PhyllisSmith

PhyllisSmith

2023-12-20 21:03

manager   ~0005607

@shipman
@Andrew-R

After upgrading from Fedora 38 to 39, I confirmed the error.
Workaround is simply to add "--without-lv2" on the configure line for now until/if we have a fix. This is what I used.

#!/bin/bash
( ./autogen.sh
  ./configure --with-single-user --without-lv2
  make && make install ) 2>&1 | tee log
mv Makefile Makefile.cfg
cp Makefile.devel Makefile
PhyllisSmith

PhyllisSmith

2023-12-20 16:30

manager   ~0005606

@Andrew-R
@shipman

"meanwhile lv2 libs switched to meson:"

It was quite difficult and time-consuming to incorporate the "lv2" library/plugins in May of 2018. In addition, besides updated versions of dav1d requiring "meson", that is not widely available on all distros and we would like to continue to support these older systems.

Until an expert programmer becomes available to CinGG, the only solution would be to compile without lv2 as Andrew recommended.
Andrew-R

Andrew-R

2023-12-20 03:51

reporter   ~0005605

@shipman

yeah, whole lv2 stack was depending on waf build system and THAT was depending on python!

meanwhile lv2 libs switched to meson:

http://drobilla.net/category/sord/

not sure if I am up to task to fix this ...

may be something like this (after installing those libs systewide) will get you going:

./configure --with-lv2 --disable-lv2 --disable-sord --disable-serd --disable-suil --disable-sratom --disable-lilv


build on my (arm tablet) end will take a hour .
shipman

shipman

2023-12-20 03:34

reporter   ~0005604

I did a quick grep through my source and found these
Jim
---------------------------------------------
./thirdparty/lv2-1.18.0/waflib/Tools/python.py
./thirdparty/lv2-1.18.0/waflib/Context.py
./thirdparty/lilv-0.24.8/.waf-1.8.22-985a667c86981bbd06ccfe1f94032940/waflib/Tools/python.py
./thirdparty/lilv-0.24.8/waflib/Context.py
./thirdparty/lilv-0.24.8/waflib/Tools/python.py
./thirdparty/sratom-0.6.4/waflib/Tools/python.py
./thirdparty/serd-0.30.4/waflib/Context.py
./thirdparty/serd-0.30.4/waflib/Tools/python.py
./thirdparty/sord-0.16.4/waflib/Tools/python.py
./thirdparty/suil-0.10.6/waflib/Tools/python.py
./thirdparty/suil-0.10.6/waflib/Tools/python.py
shipman

shipman

2023-12-20 02:33

reporter   ~0005603

Here is the error output from a build.
-----------------------------------------
Make[2]: warning: -j14 forced in submake: resetting jobserver mode.
error: Failed to import waf (No module named 'imp')
error: Failed to import waf (No module named 'imp')
find: ‘.waf*’: No such file or directory
find: ‘.waf*’: No such file or directory
error: Failed to import waf (No module named 'imp')
error: Failed to import waf (No module named 'imp')
make[2]: *** [Makefile:381: /home/shipman/dk/cin5/cinelerra-5.1/thirdparty/../thirdparty/build/sord.configure] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:384: /home/shipman/dk/cin5/cinelerra-5.1/thirdparty/../thirdparty/build/suil.configure] Error 1
make[1]: *** [Makefile:585: all-recursive] Error 1
make: *** [Makefile:532: all] Error 2

This is on a Fedora 39 system.
PhyllisSmith

PhyllisSmith

2023-12-19 01:37

manager   ~0005602

Last edited: 2023-12-19 02:00

View 2 revisions

@Andrew-R
I also installed python3.12 on Fedora 38 but it is still using 3.11.x which I have not figured out yet why. Will continue working on, but did read about python3.12 and they did remove a bunch of deprecated and broken stuff. I even rebooted just in case and did another "dnf install python3.12" and it said it was already installed.

Andrew-R

Andrew-R

2023-12-19 01:33

reporter   ~0005601

strange, I think I installed python3.12 on termux (not yet in main repo) and build still finishes ok?

python --version
Python 3.12.0
PhyllisSmith

PhyllisSmith

2023-12-18 20:58

manager   ~0005600

Andrew-R is looking into this and I will update one of my systems to Python 3.12 to create error too.
Andrew-R

Andrew-R

2023-12-18 20:23

reporter   ~0005599

grepping around:

grep -F -e "import imp" -r ./thirdparty/ | grep .py
  ./thirdparty/libwebp-1.3.2/swig/libwebp.py: import importlib .
/thirdparty/libwebp-1.3.2/swig/libwebp.py: import imp
  ./thirdparty/tiff-4.6.0/cmake/list-manpages.py:import importlib.util ./thirdparty/tiff-4.6.0/cmake/list-manpage-dependencies.py:import importlib.util


so it seems to be swing inside libwebp .... lets see if we can disable this.
Andrew-R

Andrew-R

2023-12-18 19:58

reporter   ~0005598

@shipman
can you post exact error?

I only found this line on our bccmdl.py:

grep imp guicast/*.py
from __future__ import print_function

and discussion at
https://discuss.python.org/t/how-do-i-migrate-from-imp/27885/28

so, may be some other file is failing?

====
~/cinelerra/cinelerra-5.1 $ find . -name *.py ./thirdparty/ffmpeg-6.1/tools/normalize.py
   ./thirdparty/ffmpeg-6.1/tools/zmqshell.py ./thirdparty/ffmpeg-6.1/tools/python/tf_sess_config.py
  ./thirdparty/openjpeg-2.5.0/tests/performance/compare_perfs.py ./thirdparty/openjpeg-2.5.0/tests/performance/perf_test.py ./thirdparty/openjpeg-2.5.0/tests/profiling/filter_massif_output.py
   ./thirdparty/x264-stable/tools/digress/__init__.py
./thirdparty/x264-stable/tools/digress/cli.py ./thirdparty/x264-stable/tools/digress/comparers.py
   ./thirdparty/x264-stable/tools/digress/constants.py
    ./thirdparty/x264-stable/tools/digress/errors.py
  ./thirdparty/x264-stable/tools/digress/scm/__init__.py
./thirdparty/x264-stable/tools/digress/scm/dummy.py ./thirdparty/x264-stable/tools/digress/scm/git.py
 ./thirdparty/x264-stable/tools/digress/testing.py
./thirdparty/x264-stable/tools/test_x264.py
./thirdparty/libvpx-1.13.1/test/android/get_files.py ./thirdparty/libvpx-1.13.1/test/android/scrape_gtest_log.py
./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/Anandan.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/Exhaust.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/GroundTruth.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/HornSchunck.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/MotionEST.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/SearchSmooth.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/MotionEST/Util.py ./thirdparty/libvpx-1.13.1/tools/3D-Reconstruction/genY4M/genY4M.py ./thirdparty/libvpx-1.13.1/tools/cpplint.py
 ./thirdparty/libvpx-1.13.1/tools/diff.py ./thirdparty/libvpx-1.13.1/tools/intersect-diffs.py
./thirdparty/libvpx-1.13.1/tools/lint-hunks.py
  ./thirdparty/libvpx-1.13.1/tools/non_greedy_mv/non_greedy_mv.py
  ./thirdparty/libvpx-1.13.1/tools/wrap-commit-msg.py
./thirdparty/x265-17122023/doc/reST/conf.py ./thirdparty/libwebp-1.3.2/.cmake-format.py
  ./thirdparty/libwebp-1.3.2/PRESUBMIT.py
./thirdparty/libwebp-1.3.2/swig/libwebp.py
./thirdparty/libwebp-1.3.2/swig/setup.py ./thirdparty/libaom-v3.6.1/.cmake-format.py
  ./thirdparty/libaom-v3.6.1/test/gviz_api.py
 ./thirdparty/libaom-v3.6.1/test/visual_metrics.py
  ./thirdparty/libaom-v3.6.1/tools/aggregate_entropy_stats.py
 ./thirdparty/libaom-v3.6.1/tools/auto_refactor/auto_refactor.py
 ./thirdparty/libaom-v3.6.1/tools/auto_refactor/av1_preprocess.py
./thirdparty/libaom-v3.6.1/tools/auto_refactor/test_auto_refactor.py
 ./thirdparty/libaom-v3.6.1/tools/cpplint.py ./thirdparty/libaom-v3.6.1/tools/diff.py
./thirdparty/libaom-v3.6.1/tools/gen_constrained_tokenset.py
./thirdparty/libaom-v3.6.1/tools/gop_bitrate/analyze_data.py
 ./thirdparty/libaom-v3.6.1/tools/gop_bitrate/python/bitrate_accuracy.py
./thirdparty/libaom-v3.6.1/tools/intersect-diffs.py ./thirdparty/libaom-v3.6.1/tools/lint-hunks.py
 ./thirdparty/libaom-v3.6.1/tools/ratectrl_log_analyzer/analyze_ratectrl_log.py ./thirdparty/libaom-v3.6.1/tools/wrap-commit-msg.py
 ./thirdparty/libsndfile-1.0.28/src/create_symbols_file.py
./thirdparty/libsndfile-1.0.28/src/binheader_writef_check.py
./thirdparty/libsndfile-1.0.28/programs/test-sndfile-metadata-set.py
./thirdparty/mjpegtools-2.1.0/scripts/makePLI.py ./thirdparty/tiff-4.6.0/doc/conf.py
 ./thirdparty/tiff-4.6.0/cmake/list-manpages.py
 ./thirdparty/tiff-4.6.0/cmake/list-manpage-dependencies.py
  ./guicast/bccmdl.py

====

Issue History

Date Modified Username Field Change
2023-12-18 18:11 shipman New Issue
2023-12-18 19:58 Andrew-R Note Added: 0005598
2023-12-18 20:23 Andrew-R Note Added: 0005599
2023-12-18 20:58 PhyllisSmith Assigned To => PhyllisSmith
2023-12-18 20:58 PhyllisSmith Status new => acknowledged
2023-12-18 20:58 PhyllisSmith Note Added: 0005600
2023-12-19 01:33 Andrew-R Note Added: 0005601
2023-12-19 01:37 PhyllisSmith Note Added: 0005602
2023-12-19 02:00 PhyllisSmith Note Edited: 0005602 View Revisions
2023-12-20 02:33 shipman Note Added: 0005603
2023-12-20 03:34 shipman Note Added: 0005604
2023-12-20 03:51 Andrew-R Note Added: 0005605
2023-12-20 16:30 PhyllisSmith Note Added: 0005606
2023-12-20 21:03 PhyllisSmith Status acknowledged => confirmed
2023-12-20 21:03 PhyllisSmith Note Added: 0005607
2023-12-20 21:11 Andrew-R Note Added: 0005608
2023-12-20 23:58 PhyllisSmith Note Added: 0005609
2023-12-21 00:04 Andrew-R Note Added: 0005610
2023-12-21 01:13 PhyllisSmith Note Added: 0005611
2024-02-08 19:52 PhyllisSmith Note Added: 0005612
2024-02-18 19:40 PhyllisSmith Status confirmed => closed
2024-02-18 19:40 PhyllisSmith Resolution open => fixed
2024-02-18 19:40 PhyllisSmith Note Added: 0005613