Andy2244 / openwrt-extra

extra openwrt package feed (samba 4.12.x)
51 stars 17 forks source link

A generalized solution (in the packages repo) to generate cross-answers? #22

Closed jefferyto closed 4 years ago

jefferyto commented 4 years ago

I was looking into generating cross-answers for talloc and tdb, so I thought I would come by to see how it's done for samba, but I see the code has been removed (e1e5f59ce77365c3c5331a72dcbc1c4d5fb94b25)? :joy:

Anyway, I had an idea: would it be possible to encapsulate the cross-execute/qemu code (perhaps even selecting the right cross-answers file, copying into PKG_BUILD_DIR, etc.) into a separate Makefile, then packages that use Waf can include the Makefile to get this functionality?

Maybe it can hook into make package/.../refresh to refresh the cross-answers also (or add a similar target to do this)?

I haven't examined your qemu-userspace package closely yet, but if distro-packaged qemu is good enough then it could just depend on the user having their distro qemu package(s) installed.

One advantage (obviously) is that all Waf-based packages can benefit from this work. Another advantage of having this in the packages repo is that other people can help update the cross-answers.

Instead of me jumping on this immediately, I thought I'd ask if you would be interested in working on this? You've already done most of the work, this way you would get all of the credit :wink:

Andy2244 commented 4 years ago

but I see the code has been removed

only "temporary" i was cleaning up some stuff and was trying to get the waf/qemu stuff working via a external include file. I had some problems getting this to work and had to give-up for now.

I think for the most part all samba4 related packages can just copy my waf answers or are they getting specific answers? Yes i generate via qemu-userspace, which i never tried to merge into the qemu main package, was just too much work at the time and the waf-answers are kinda stable so far. So custom generating them on every big release worked fine.

The main reason i have not yet integrated the qemu-userspace/waf stuff, is time and its not really a "exciting" feature, i did rather focus on actual improvements/updates for my main packages. Its just low on my priority list.

You can check my old branches to get the old code back. I'm really not sure when i have time and want to fix this mess, since samba4.11 works fine so far.

If you want to experiment, the workflow is basically build qemu-userspace/host and use it via waf "cross-execute" option, than grab the files from build_dir. The only issue i had was with some specific archs, where i got segfaults on generic qemu profiles and therefore had to map specific CPU's to use. Which can be a pain in the ...., since not all openwrt cpu's exist in qemu/userspace, so i had to research which closest matching CPU i could use...

jefferyto commented 4 years ago

I think for the most part all samba4 related packages can just copy my waf answers or are they getting specific answers?

Probably, though I'm not 100% sure, and there may be waf-based packages in the future that require different answers.

Its just low on my priority list.

No problem :smile: just thought I'd ask you first before starting.

Thanks for the tips - I'll close this for now and may come back with more questions later :joy: