Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 704856 - media-sound/mixxx scons python3 compatibility
Summary: media-sound/mixxx scons python3 compatibility
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Professional Audio Applications Maintainers
URL:
Whiteboard:
Keywords: PATCH
Depends on: 739390
Blocks: scons-python3
  Show dependency tree
 
Reported: 2020-01-06 08:50 UTC by jospezial
Modified: 2020-12-20 13:20 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix SCons whitespace issue (tabs/spaces) for mixxx-2.1.8 (mixxx_2_1_8_tabs_spaces.patch,358 bytes, patch)
2020-01-06 08:55 UTC, jospezial
Details | Diff
scons: Fix UIC invocation via map() in Python 3 (mixxx_2_2_3_scons-python3.patch,674 bytes, patch)
2020-01-06 09:01 UTC, jospezial
Details | Diff
ebuildpatch to inherit python-any-r1 with python3 support (mixxx-9999_ebuild_python3.patch,1.41 KB, patch)
2020-01-23 00:28 UTC, jospezial
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description jospezial 2020-01-06 08:50:17 UTC
These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[ebuild     U *] media-sound/mixxx-9999::gentoo [2.1.8::gentoo] USE="aac ffmpeg hid lv2%* mp3 mp4 opus shout wavpack -doc" 0 KiB
[ebuild   R    ]  dev-util/scons-3.1.2::gentoo  USE="-doc -test" PYTHON_TARGETS="python2_7* python3_7 python3_8 -python3_6" 0 KiB

Total: 2 packages (1 upgrade, 1 reinstall), Size of downloads: 0 KiB

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by media-sound/mixxx-9999::gentoo
# required by mixxx (argument)
>=dev-util/scons-3.1.2 python_targets_python2_7

This python2_7 dependency is pulled in somehow over the scons-utils.eclass.
The live ebuild merges without problems without that dependency change because it is fixed upstream.


mixxx-2.1.8,mixxx-2.2.2 and mixxx-2.2.3 produce this error with scons without python_targets_python2_7:

In file included from src/controllers/dlgcontrollerlearning.cpp:12:
src/controllers/dlgcontrollerlearning.h:16:10: fatal error: controllers/ui_dlgcontrollerlearning.h: No such file or directory
   16 | #include "controllers/ui_dlgcontrollerlearning.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.


media-sound/mixxx-2.1.8 additionally has that error which is fixed in later releases upstream:
>>> Compiling source in /var/tmp/portage/media-sound/mixxx-2.1.8/work/mixxx-release-2.1.8 ...
scons -j5 prefix=/usr qtdir=/usr/lib64/qt5 faad=1 ffmpeg=1 hid=1 hifieq=1 m4a=1 mad=1 optimize=native opus=1 qt5=1 shoutcast=1 vinylcontrol=1 wv=1
scons: Reading SConscript files ...
  File "/var/tmp/portage/media-sound/mixxx-2.1.8/work/mixxx-release-2.1.8/build/depends.py", line 35

    return []

            ^

TabError: inconsistent use of tabs and spaces in indentation
Comment 1 jospezial 2020-01-06 08:55:49 UTC
Created attachment 602646 [details, diff]
Fix SCons whitespace issue (tabs/spaces) for mixxx-2.1.8

https://github.com/mixxxdj/mixxx/commit/8a94cf57d07e3ce2397ea96724d7c6130aa74eff
Comment 2 jospezial 2020-01-06 09:01:11 UTC
Created attachment 602648 [details, diff]
scons: Fix UIC invocation via map() in Python 3

https://github.com/mixxxdj/mixxx/commit/03fad27e1f0f18ec83c9a4bc5f03f28948cd44fb
Comment 3 jospezial 2020-01-06 09:13:06 UTC
mixxx_2_2_3_scons-python3.patch applies to all 3 non-live releases.
mixxx-2.1.8,mixxx-2.2.3 and mixxx-9999 compile,merge and run tested.
Comment 4 jospezial 2020-01-23 00:28:38 UTC
Created attachment 604026 [details, diff]
ebuildpatch to inherit python-any-r1 with python3 support

myesconsargs is deprecated for EAPI6 and higher.

Any ebuild using scons-utils needs to:
Set a proper value of PYTHON_COMPAT being the intersection of Python implementations supported by build system scripts and the package (if applicable).
Inherit a proper Python eclass (python-any-r1, python-single-r1 or python-r1).



-EAPI=6
+EAPI=7
 
-inherit flag-o-matic scons-utils toolchain-funcs
+PYTHON_COMPAT=( python2_7 python3_{6,7,8})
+
+inherit flag-o-matic python-any-r1 scons-utils toolchain-funcs
 
 DESCRIPTION="Advanced Digital DJ tool based on Qt"
 HOMEPAGE="https://www.mixxx.org/"
@@ -75,6 +77,7 @@ DEPEND="
        virtual/pkgconfig
        dev-qt/qttest:5
        dev-qt/qtxmlpatterns:5
+       ${PYTHON_DEPS}
 "
 
 PATCHES=(
@@ -103,7 +106,7 @@ src_configure() {
                fi
        done
 
-       myesconsargs=(
+       MYSCONS=(
                prefix="${EPREFIX}/usr"
                qtdir="${EPREFIX}/usr/$(get_libdir)/qt5"
                faad="$(usex aac 1 0)"
@@ -124,12 +127,12 @@ src_configure() {
 
 src_compile() {
        CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \
-       LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${myesconsargs[@]}
+       LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${MYSCONS[@]}
 }
 
 src_install() {
        CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \
-       LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${myesconsargs[@]} \
+       LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${MYSCONS[@]} \
Comment 5 jospezial 2020-04-10 17:35:59 UTC
ping! @proaudio
almost 3 months of no reaction
Comment 6 Larry the Git Cow gentoo-dev 2020-09-02 07:45:04 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1df22a59e1d44d7e3ce138f0771cfb95b3cc9fe2

commit 1df22a59e1d44d7e3ce138f0771cfb95b3cc9fe2
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-09-02 07:44:38 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-09-02 07:44:53 +0000

    media-sound/mixxx: removed old 2.2.3-r2
    
    Closes: https://bugs.gentoo.org/655806
    Closes: https://bugs.gentoo.org/704856
    Package-Manager: Portage-3.0.5, Repoman-3.0.1
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 media-sound/mixxx/Manifest              |   1 -
 media-sound/mixxx/mixxx-2.2.3-r2.ebuild | 137 --------------------------------
 2 files changed, 138 deletions(-)
Comment 7 jospezial 2020-09-02 11:23:28 UTC
Comment on attachment 602646 [details, diff]
Fix SCons whitespace issue (tabs/spaces) for mixxx-2.1.8

mixxx-2.1.8 is gone.
Comment 8 jospezial 2020-09-02 11:33:42 UTC
Comment on attachment 602648 [details, diff]
scons: Fix UIC invocation via map() in Python 3

UIC invocation via map() fixed upstream with media-sound/mixxx-2.2.4.
mixxx-2.2.3 is gone.
Comment 9 jospezial 2020-09-02 11:45:46 UTC
(In reply to Larry the Git Cow from comment #6)
> The bug has been closed via the following commit(s):
> 
> https://gitweb.gentoo.org/repo/gentoo.git/commit/
> ?id=1df22a59e1d44d7e3ce138f0771cfb95b3cc9fe2
> 
> commit 1df22a59e1d44d7e3ce138f0771cfb95b3cc9fe2
> Author:     Miroslav Šulc <fordfrog@gentoo.org>
> AuthorDate: 2020-09-02 07:44:38 +0000
> Commit:     Miroslav Šulc <fordfrog@gentoo.org>
> CommitDate: 2020-09-02 07:44:53 +0000
> 
>     media-sound/mixxx: removed old 2.2.3-r2
>     
>     Closes: https://bugs.gentoo.org/655806
>     Closes: https://bugs.gentoo.org/704856
>     Package-Manager: Portage-3.0.5, Repoman-3.0.1
>     Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
> 
>  media-sound/mixxx/Manifest              |   1 -
>  media-sound/mixxx/mixxx-2.2.3-r2.ebuild | 137
> --------------------------------
>  2 files changed, 138 deletions(-)

media-sound/mixxx-2.2.4 and 9999 ebuilds still have to be changed for not depending on python-2.7 through scons. See the remaining patch.
Another and better way is a cmake based ebuild:
https://bugs.gentoo.org/739498
Comment 10 Larry the Git Cow gentoo-dev 2020-09-02 12:20:36 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=07944728f3aa7f23c2129588734952e8dec0b5cf

commit 07944728f3aa7f23c2129588734952e8dec0b5cf
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-09-02 12:20:12 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-09-02 12:20:29 +0000

    media-sound/mixxx: added scons py3 compatibility
    
    thanks for the patch to jospezial <jospezial@gmx.de>
    
    Closes: https://bugs.gentoo.org/704856
    Package-Manager: Portage-3.0.5, Repoman-3.0.1
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 media-sound/mixxx/mixxx-2.2.4.ebuild | 15 +++++++++------
 media-sound/mixxx/mixxx-9999.ebuild  | 15 +++++++++------
 2 files changed, 18 insertions(+), 12 deletions(-)