-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
addpkg(main/supercollider): 3.14.0 #25826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@rene-descartes2021 please test your code based on my PR and let me know if I have understood your problem with the package |
- Fixes a problem explained here (that `boost` lacks needed `/tmp` path patches) #25025 - Methodology to find paths to prepend: - Ignore all folders named `doc` - Ignore all folders named `test` - Find them using `grep -rn $TERMUX_PKG_SRCDIR -e '"/tmp' -e 'data/local/tmp'` - Ignore codepaths that don't compile for Android (`#ifndef __ANDROID__`) - Try to calculate the code behavior to make sure every patched instance is a true absolute path (and not a path subcomponent that could be appended to a longer path) - Dependency of #25826
e8e2dba to
129306d
Compare
- Progress on #23492 - Dependency of #25826 - In order to rebuild all reverse dependencies successfully, also includes some fixes for builds of packages that currently fail to build with CMake 4, which are either the commonly-used `-DCMAKE_POLICY_VERSION_MINIMUM=3.5` argument, or are patches named to indicate their purpose - All patches with attribution headers are cherry-picked from respective upstream PRs or commits - All patches without attribution headers are written from scratch by me to solve errors that are either Termux-specific or are not yet fixed anywhere in upstream Some notes about unique patches: - Very big thanks to cho-m, who almost single-handedly brought boost 1.89 to `libc++`-based UNIX-like operating systems with their work on boost 1.89 for MacOS in Homebrew/homebrew-core#233031. Many cherry-picked patches originated from them. - I chose to write my own patch for `ncmpcpp` for boost 1.89 rather then exactly copy the example of cho-m, even though my method involves more lines of code, because **I decided that I would like to be notified, through the patch failing to apply, when upstream `ncmpcpp` has added official support for boost 1.89**, indicating that the downstream change can then be removed without me having to remember it, which cho-m's example unfortunately wouldn't do. - For some reason, building `openfoam` with boost 1.89 instead of boost 1.87 causes it to attempt to link to `libgmp.so` in a nonexistent folder `/data/data/com.termux/files/usr/lib64`, instead of `/data/data/com.termux/files/usr/lib` - It's unclear how exactly boost 1.89 draws out this error, but it can also be seen that the origin of the "lib64" instance is within openfoam, and Termux does not use any "lib64" folder, so it should be patched out from `openfoam` (which resolves the error) ``` -L/data/data/com.termux/files/usr/lib64 -L/home/builder/.termux-build/openfoam/src/ThirdParty/platforms/linuxARM64Clang/boost-system/lib -L/home/builder/.termux-build/openfoam/src/ThirdParty/platforms/linuxARM64Clang/boost-system/lib64 -lmpfr -lgmp -lfileFormats -lsurfMesh -lmeshTools -ldecompose -ldynamicMesh -lsnappyHexMesh -o /home/builder/.termux-build/openfoam/src/platforms/linuxARM64ClangDPInt32Opt/lib/libconformalVoronoiMesh.so ld.lld: error: unable to find library -lmpfr ``` - `ravencoin` and `mkvtoolnix` use `autoreconf -fi` during their `build.sh` files, but unfortunately, in the Ubuntu 24.04 cross-builder Docker image, there is a package installed in Ubuntu `autoconf-archive` version 20220903-3, which contains a file `/usr/share/aclocal/ax_boost_system.m4`, and this file is unfortunately propagated into the build systems of `ravencoin` and `mkvtoolnix` by `autoreconf -fi` and "pollutes" them with "awareness" that they would not otherwise have of the `Boost::System` shared library that no longer exists in boost 1.89, so temporary changes to `TERMUX_PKG_EXTRA_CONFIGURE_ARGS` are required, which should be removed the next time the Ubuntu cross-builder image is bumped, since after that happens, they will no longer be necessary. - Copy and paste fix for building `abiword` with `libc++` 19+ (NDK r28c) from FreeBSD: freebsd/freebsd-ports@e6daa21 - Fix prefix pollution `libjxl`->`telegram-desktop` - (i.e. the command `scripts/run-docker.sh ./build-package.sh -I -f libjxl telegram-desktop`) - For clarity, the edits to `packages/libjxl/fix-pkgconfig-file.patch` are primarily implementing this fix by removing the invalid path `/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include` from the command `pkg-config --cflags libjxl`
- Progress on termux/termux-packages#23492 - Dependency of termux/termux-packages#25826 - In order to rebuild all reverse dependencies successfully, also includes some fixes for builds of packages that currently fail to build with CMake 4, which are either the commonly-used `-DCMAKE_POLICY_VERSION_MINIMUM=3.5` argument, or are patches named to indicate their purpose - All patches with attribution headers are cherry-picked from respective upstream PRs or commits - All patches without attribution headers are written from scratch by me to solve errors that are either Termux-specific or are not yet fixed anywhere in upstream Some notes about unique patches: - Very big thanks to cho-m, who almost single-handedly brought boost 1.89 to `libc++`-based UNIX-like operating systems with their work on boost 1.89 for MacOS in Homebrew/homebrew-core#233031. Many cherry-picked patches originated from them. - I chose to write my own patch for `ncmpcpp` for boost 1.89 rather then exactly copy the example of cho-m, even though my method involves more lines of code, because **I decided that I would like to be notified, through the patch failing to apply, when upstream `ncmpcpp` has added official support for boost 1.89**, indicating that the downstream change can then be removed without me having to remember it, which cho-m's example unfortunately wouldn't do. - For some reason, building `openfoam` with boost 1.89 instead of boost 1.87 causes it to attempt to link to `libgmp.so` in a nonexistent folder `/data/data/com.termux/files/usr/lib64`, instead of `/data/data/com.termux/files/usr/lib` - It's unclear how exactly boost 1.89 draws out this error, but it can also be seen that the origin of the "lib64" instance is within openfoam, and Termux does not use any "lib64" folder, so it should be patched out from `openfoam` (which resolves the error) ``` -L/data/data/com.termux/files/usr/lib64 -L/home/builder/.termux-build/openfoam/src/ThirdParty/platforms/linuxARM64Clang/boost-system/lib -L/home/builder/.termux-build/openfoam/src/ThirdParty/platforms/linuxARM64Clang/boost-system/lib64 -lmpfr -lgmp -lfileFormats -lsurfMesh -lmeshTools -ldecompose -ldynamicMesh -lsnappyHexMesh -o /home/builder/.termux-build/openfoam/src/platforms/linuxARM64ClangDPInt32Opt/lib/libconformalVoronoiMesh.so ld.lld: error: unable to find library -lmpfr ``` - `ravencoin` and `mkvtoolnix` use `autoreconf -fi` during their `build.sh` files, but unfortunately, in the Ubuntu 24.04 cross-builder Docker image, there is a package installed in Ubuntu `autoconf-archive` version 20220903-3, which contains a file `/usr/share/aclocal/ax_boost_system.m4`, and this file is unfortunately propagated into the build systems of `ravencoin` and `mkvtoolnix` by `autoreconf -fi` and "pollutes" them with "awareness" that they would not otherwise have of the `Boost::System` shared library that no longer exists in boost 1.89, so temporary changes to `TERMUX_PKG_EXTRA_CONFIGURE_ARGS` are required, which should be removed the next time the Ubuntu cross-builder image is bumped, since after that happens, they will no longer be necessary. - Copy and paste fix for building `abiword` with `libc++` 19+ (NDK r28c) from FreeBSD: freebsd/freebsd-ports@e6daa21 - Fix prefix pollution `libjxl`->`telegram-desktop` - (i.e. the command `scripts/run-docker.sh ./build-package.sh -I -f libjxl telegram-desktop`) - For clarity, the edits to `packages/libjxl/fix-pkgconfig-file.patch` are primarily implementing this fix by removing the invalid path `/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include` from the command `pkg-config --cflags libjxl`
129306d to
814f035
Compare
814f035 to
b7d413c
Compare
|
Current CI build error on missing boost module or whatever might be due to: supercollider/supercollider#7114
|
|
Can we use https://github.com/supercollider/supercollider/pull/7116.patch as a backport? |
|
the next error is the compatibility/incompatibility of supercollider with boost 1.89 that i explained here, i will wait for the CI of said changes for the current existing x11-packages to complete, and merge it, and then after that i can help apply the same kind of patch to supercollider. |
|
Alright, I am sorry for delay in helping. I had to go for a while and I am also helping with a lot of other PRs so I just have to rotate through each one one by one.
|
b7d413c to
92115b7
Compare
No problem at all! I'm used to communication delays of weeks or longer on most open-source projects. It's nice when they're funded & staffed but I'm used to the scratching-an-itch kind of participation. EDIT: Your help has been invaluable and much appreciated! I'll try to spread the word about SuperCollider being now available on Android/Termux on the SuperCollider forum, with thankful musicians to be found there as well!
I never got that. Weird. Well I'll leave that as a mystery. Agreed best to leave it there then.
Done! When building with the patch initially I had a patch rejected error. Then I recopied, repasted (into emacs), reran the script to make the patch and ran git diff, noticed a few chars in two places were dropped in the paste which led to the failure. I should probably get the Termux:API app for the termux-clipboard-get/set CLI tools to avoid that and the paste-into-browser-newline problem. After that had error: So in build.sh I changed the boost dependency to boost-headers, which also depends on boost. Builds and runs now, test works. |
|
Oh, when I grep for boost-headers, I see every other packages has that as a |
- boost-1.89.patch backports: supercollider/supercollider#7114
92115b7 to
2842bad
Compare
|
Ok, pushed the boost-headers fix. Tested locally, works. |
I see, I use Firefox X11 and Kitty terminal X11 both inside X11 with full Ctrl+C from Firefox, then Ctrl+Shift+V into Kitty on either a physical keyboard (on desktop) or https://f-droid.org/en/packages/org.pocketworkstation.pckeyboard/ (on Termux:X11). I was really considering uploading a video of myself doing the inputs on Termux:X11 so that you could exactly copy what I do, since I am aware that some kinds of copying and pasting are incompatible with my workflow because of not exactly duplicating the characters, but unfortunately I had decided the message was large enough already. However, it looks like you managed to figure it out in the end, good job! I will merge this in 24 hours unless you make any final changes, since everything looks finished and correct to me here. One final thing is, if you want to try using the Termux auto update system to automatically bump https://github.com/supercollider/supercollider/tags In this case, I think the needed function would be similar to the example that can be seen in the termux-packages/packages/openjdk-21/build.sh Lines 21 to 51 in 1ee8a31
however, using the auto update system is optional, so if that seems like a lot of extra work you don't need to do that and can instead manually bump the package in termux-packages whenever you have time to. |
|
I've noticed that this package implements ports of the following two programs to Android:
however, I have also noticed that the upstream project documents support in the same breath for these other two additional programs that are not yet implemented by this package:
I guess that you might not need these other programs at the moment, and I am not very experienced with the software so I am not sure how often people would need the other two programs, but if you ever do need either of the other two programs in the future, let me know and I would probably be able to help expand the package and/or create an x11-package to implement ports of them to Android as well. |
Previous PR was here #25025, had to open new one.
Closes #25024.
Oh, the boost patch problem might not be necessary now? TomJo2000 might have fixed that in Termux's system boost since then. EDIT: Nope I don't see the patch in Termux's boost. No biggie.