Skip to content
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

Please update android-boost packages at AUR #175

Closed
hipersayanX opened this issue Mar 10, 2024 · 29 comments
Closed

Please update android-boost packages at AUR #175

hipersayanX opened this issue Mar 10, 2024 · 29 comments

Comments

@hipersayanX
Copy link
Contributor

I would need boost package for compiling mariadb, also I have added icu, openmpi, and zstd in case you want to add them as dependencies for boost.

@Martchus
Copy link
Owner

No problem, I'll have a look at it this or tomorrow evening. (Of course you can also send a PR if you need it sooner.)

@Martchus
Copy link
Owner

I've just started the build of the new dependencies. I'm wondering what you're up to with packages like https://aur.archlinux.org/packages/android-aarch64-libx11 on Android.

I guess it might make sense to use system freetype and harfbuzz in Qt now that you've added those packages. (But I haven't even used the current version of Qt 6 successfully so I guess I'll keep it simple for now.)

@Martchus
Copy link
Owner

Looks like some packages lack dependencies, see https://martchus.no-ip.biz/buildservice/#build-action-details-section?189 for my build logs.

@hipersayanX
Copy link
Contributor Author

I've just started the build of the new dependencies. I'm wondering what you're up to with packages like https://aur.archlinux.org/packages/android-aarch64-libx11 on Android.

Well, X is just a protocol and there are servers for that protocol in Android:

https://play.google.com/store/apps/details?id=au.com.darkside.xdemo&hl=es_AR&gl=US
https://f-droid.org/es/packages/au.com.darkside.xdemo/
https://play.google.com/store/apps/details?id=x.org.server&hl=es&gl=US
https://www.mochasoft.dk/android_x11.htm

And someone will hack a way into that a for sure 😄

Looks like some packages lack dependencies

openmpi for example is marking a download error, but the file is accessible, its maybe a connection error on your side?

@Martchus
Copy link
Owner

Maybe, but some packages also miss android-env.

@hipersayanX
Copy link
Contributor Author

Try it now, I have fixed the missing dependencies.

@Martchus
Copy link
Owner

Thanks. It looks better but some packages still lack android-env: https://martchus.no-ip.biz/buildservice/#build-action-details-section?184

@hipersayanX
Copy link
Contributor Author

Will check, right now I'm trying to build the boost packages.

@hipersayanX
Copy link
Contributor Author

I have updated libgcrypt and pciutils.

@Martchus
Copy link
Owner

Good, I think this only leaves libxau, libxslt, libxcb, libx11, hwloc, openpmix, prrte and openmpi.

@hipersayanX
Copy link
Contributor Author

If you build manually, for example android-aarch64-openmpi, does it works? or you still have the same download problem?

@Martchus
Copy link
Owner

Martchus commented Mar 11, 2024

With "this only leaves …" I was talking about the missing android-env. Hence I did never get far enough to build openmpi. However, also the download problem still exists and I can reproduce it on my local machine as well:

$ curl -L https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-5.0.2.tar.bz2
curl: (35) Recv failure: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt

The download works from the web browser so I guess I can just put the file on my server once I can proceed with the build to this point.

@hipersayanX
Copy link
Contributor Author

The connection was reset by the communication partner

Maybe are you using a firewall or a proxy?

@hipersayanX
Copy link
Contributor Author

hipersayanX commented Mar 11, 2024

I was trying switching to the github sources, but I'm now facing these problems.

@Martchus
Copy link
Owner

Maybe are you using a firewall or a proxy?

I'm pretty sure I'm not. Considering that the download via Firefox works and via curl it doesn't work (on the same machine) it is probably a client problem.

I suggest you just keep the URL from before (in accordance with https://gitlab.archlinux.org/archlinux/packaging/packages/openmpi/-/blob/main/PKGBUILD?ref_type=heads) and I just download that archive manually via the web browser.

@hipersayanX
Copy link
Contributor Author

hipersayanX commented Mar 11, 2024

Ok, will add a android-configure and will let you know when ready.
Also tried downloading the sources with both curl and wget, and its working for me, maybe you have something miss-configured in your side.
Also, going back to boost package, this is what I have for now:

https://gist.github.com/hipersayanX/a20ecdcec5fd28b4315bd3dd3dd58490

It was failing when including <cerrno> (line 64), and have found that removing -I"/usr/include" allow me to continue (line 67 is the command that failed), but still did not discovered where that flag was introduced.
I have took the extra/boost code as base and then applied some of your changes to it.

@Martchus
Copy link
Owner

Also, going back to boost package …

Thanks, then I'll leave it to you for now.

and have found that removing …

I guess that's a good thing. The less hacks the better. I was also able to remove some hacks in the version you can find in this repository which is newer than the version in the AUR (https://github.com/Martchus/PKGBUILDs/blob/master/boost/android-aarch64/PKGBUILD).

@Martchus
Copy link
Owner

Note that the "workflow" in my PKGBUILDs repo for Android packages is currently to update the aarch64 version first and then invoke devel/sync-android-variants.sh boost in the root of the repository which will update the other archs.

@hipersayanX
Copy link
Contributor Author

hipersayanX commented Mar 11, 2024

I have updated openmpi.

I guess that's a good thing. The less hacks the better. I was also able to remove some hacks in the version you can find in this repository which is newer than the version in the AUR (https://github.com/Martchus/PKGBUILDs/blob/master/boost/android-aarch64/PKGBUILD).

Yes, I actually took some of your code: cflags, ldflgas, architecture=, and address-model=; but I'm planning to remove target, toolchain, and sysroot, and will probably reduce the flags even more.

Note that the "workflow" in my PKGBUILDs repo for Android packages is currently to update the aarch64 version first and then invoke devel/sync-android-variants.sh boost in the root of the repository which will update the other archs.

In my case, I have a template PKGBUILD which manages all architectures, then I just have to set _android_arch so that one unique variable can change the whole build behavior, and can use that template for watching version changes.

@Martchus
Copy link
Owner

Ok, I'll wait for libxau and others that are currently missing android-env to be ready.

@hipersayanX
Copy link
Contributor Author

Ready, hopefully these are all the packages I have to fix but not sure.

@Martchus
Copy link
Owner

Martchus commented Mar 12, 2024

I was able to build everything now. I only noticed that https://aur.archlinux.org/packages/android-armv7a-eabi-openmpi is still at the old version. Strangely I haven't encountered any download issues anymore.

@hipersayanX
Copy link
Contributor Author

There was no option, that was the latest version supporting 32 bits, and disabling 32 bits detection was a bit complicated, so I took the easy path.

@Martchus
Copy link
Owner

Martchus commented Mar 12, 2024

so I took the easy path

Ah, makes sense. I guess then it is actually best to stick with what's supported.

In my case, I have a template PKGBUILD which manages all architectures …

I've seen that and I it looks good as well. I guess everyone uses their own helpers for things like that. (For more complicated packages I also use a template system that allows to have bigger differences between files and that allows de-duplication between similar packages like Qt modules.)

@hipersayanX
Copy link
Contributor Author

The package that I was able to enable 32 bits support was prrte, everything compiled fine, not sure if something will broke, not sure if I did right.
The next packages that I want to unlock are: mariadb, postgresql, openldap, poppler, and cairo, but the dependency tree is a never ending, and all of this just for the purpose of having a full build of ffmpeg 😆

@Martchus
Copy link
Owner

Were you able to make progress on the Boost package? I would work on it this evening if not. If you made progress but it's not fully working yet you can also share a WIP commit/branch for me to pick up.

@hipersayanX
Copy link
Contributor Author

These was the last changes I did, tried with

sed -i "s|/usr/include|${ANDROID_PREFIX_INCLUDE}|g" libs/compute/cmake/FindTBB.cmake
sed -i "s|/usr/include|${ANDROID_PREFIX_INCLUDE}|g" libs/config/configure
sed -i "s|/usr/include|${ANDROID_PREFIX_INCLUDE}|g" tools/build/src/tools/stage.jam

but no luck, I don't know where the -I"/usr/include" is coming from. My other idea was using cmake to compile boost since cmake have a more transparent build process, but I decided to advance with other packages before coming back to this.

@Martchus
Copy link
Owner

Ok, I'll have a look at it this evening then. Switching to CMake makes maybe sense.

@Martchus
Copy link
Owner

I updated the boost packages. They are now a mix of your draft and my previous version. So luckily most hacks weren't required anymore and even the soname patch is no longer required. I didn't encounter any errors (caused by -I"/usr/include"). I disabled openmpi dependencies for 32-bit packages because they are not installable due to file conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants