1
0
Fork 0
forked from len0rd/rockbox
Fork of rockbox tailored for ipod classic
Find a file
Aidan MacDonald ec8fb871f0 rockboxdev: fix glib compile error on hosts with Python 3.12 (FS#13471)
On hosts running Python 3.12, building the hosted MIPS toolchain fails
on glib with the error

    Traceback (most recent call last):
      File "<string>", line 2, in <module>
    ModuleNotFoundError: No module named 'imp'
    gmake[6]: *** [Makefile:982: install-codegenPYTHON] Error 1
    gmake[6]: Leaving directory '/tmp/rbdev-build/build-glib-2.46.2/gio/gdbus-2.0/codegen'

due to 'imp' being removed from Python 3.12 after a long deprecation
period. The module is imported by automake's py-compile script, but
in newer versions of automake this has been updated to use 'importlib'
instead, so running autoreconf fixes this.

We need to patch m4macros/glib-gettext.m4 to avoid an error running
autoreconf (see: https://gitlab.gnome.org/GNOME/glib/-/issues/1159):

    ac-wrapper: autoreconf: warning: auto-detected versions not found ( 2.69 2.69); falling back to latest available
    autoreconf-2.71: export WARNINGS=
    autoreconf-2.71: Entering directory '.'
    autoreconf-2.71: configure.ac: not using Gettext
    autoreconf-2.71: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
    am-wrapper: aclocal: warning: auto-detected versions not found (1.15); falling back to latest available
    m4macros/glib-gettext.m4:39: error: m4_copy: won't overwrite defined macro: glib_DEFUN
    m4macros/glib-gettext.m4:39: the top level
    autom4te-2.71: error: /usr/bin/m4 failed with exit status: 1
    aclocal-1.16: error: /usr/bin/autom4te-2.71 failed with exit status: 1
    autoreconf-2.71: error: aclocal failed with exit status: 1

This problem goes away in glib 2.47.5 when they switched to using
upstream gettext.

Change-Id: I878a9d7086d17c6de43470b6e5f14917f0ae1bb9
2024-08-26 16:44:42 +01:00
android android: Fix configure script for "newer" versions of the NDK 2020-04-13 16:51:58 +02:00
apps puzzles: add Slide and Sokoban. 2024-08-25 19:30:01 -04:00
backdrops New port: Shanling Q1 native 2021-07-13 22:01:33 +01:00
bootloader xduoox3: Completely strip USB support out of the bootloader. 2024-07-03 16:51:58 -04:00
debian Prepare new maemo release 2013-03-10 12:12:38 +01:00
docs update MAINTAINERS 2024-08-11 17:00:55 -04:00
firmware Bootloaders: Include HAVE_MULTIVOLUME if BOOT_REDIR also present 2024-08-21 18:31:28 -04:00
fonts fonts: Update to v4.49.1 of the Terminus font family 2024-07-29 22:18:31 -04:00
gdb Nuke the never-functional iriver ifp-7xx port 2021-04-26 07:42:58 -04:00
icons Revert Non-Alpha Updated 8x8 tango icons 2020-10-25 16:21:58 +00:00
lib Remove mp3info function & remove list_do_action from plugin_api 2024-07-26 15:15:06 -04:00
manual plugins: extract redundant functionality from stats/properties 2024-07-28 20:18:41 +02:00
packaging Prepare unofficial pandora release 2013-03-10 14:09:30 +01:00
tools rockboxdev: fix glib compile error on hosts with Python 3.12 (FS#13471) 2024-08-26 16:44:42 +01:00
uisimulator sim: stub out volume_partition() for sim targets 2024-08-12 16:10:12 -04:00
utils FS#13468: Updated Simplified Chinese translation for rbutil (王吉) 2024-08-14 11:03:14 -04:00
wps Add more space for Time Elapsed/Remaining on Rocker WPS 2022-11-15 09:23:37 -05:00
.gitattributes Add a gitattributes file for the migration. 2011-12-01 14:14:59 +00:00
.gitignore Update .gitignore 2024-05-05 14:19:22 -04:00
.gitreview misc: Add a .gitreview file for better gerrit integration 2021-06-24 07:22:19 -04:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Clone 'rockbox' from git (or extract a downloaded archive).

   $ git clone git://git.rockbox.org/rockbox

     or

   $ tar xjf rockbox.tar.bz2

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have mips/m68k/arm-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be generated using the rockboxdev.sh script in the /tools/ folder of the
   source.

   $ which arm-elf-eabi-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fuzeplus
   $ cd build-fuzeplus
   $ ../tools/configure

   $ mkdir build-xduoox3
   $ cd build-xduoox3
   $ ../tools/configure

Questions anyone? Ask on the mailing list or on IRC. We'll be happy to help you!