termux / termux-packages

A package build system for Termux.
https://termux.dev
Other
13.31k stars 3.06k forks source link

Package request: Rakudo (a.k.a. Perl 6) #1324

Open ddeimeke opened 7 years ago

ddeimeke commented 7 years ago

Perl 6 is called "Rakudo" in Debian, Fedora and Ubuntu.

ohmycloud commented 6 years ago

+1

sydneyfalk commented 6 years ago

also interested in this, I realize it's not wide appeal or high urgency but it'd be a nice feature for the people learning p6 now that books are coming out for it ^_^

Mu-00 commented 6 years ago

On the contrary, now there are 4 backers for this request, and I guess it would give termux a lot of additional interest if it provides a rakudo star package. Rakudo star on ARM is available for all debian versions, sources are here: https://rakudo.perl6.org/downloads/star/ After I got my new device first thing was to install termux and try to compile rakudo, but at least a few libraries are missing. So far I found no easy example for crosscompiling a package for termux, if there should be some basic guide please point me to it.

sydneyfalk commented 6 years ago

Sorry if it seemed like I was belittling it in any way -- I really wasn't.

I just meant compared to something with a long, known set of niche applications (like, say, Prolog or Forth) or something popular and everywhere (like Ruby and Python) a Perl 6 package isn't going to have as wide an appeal. (But this isn't to say lacking 'wide appeal' is a signal of poor quality or anything. It's not like the best restaurant on earth is McDonald's, after all.)

As for the urgency, I only meant that I could imagine there are a lot of things that are higher priority overall.

Hopefully that clears things up! ^_^

its-pointless commented 6 years ago

its currently building in my android 6 x86_64 vm. See if i can get something

Mu-00 commented 6 years ago

its-pointless, that would be really gorgeous. I'm just realizing that my new Onyx Boox Max2 with 13,3" e-ink Display and termux for some things is better suited than my Laptop. Reading a book and switching to console practicing is a breeze.

its-pointless commented 6 years ago

okay i got it to install on device. Moarvm and libtommath cross compiled from pc. Caveats MVM_SPESH_DISABLE=1 was used....

its-pointless commented 6 years ago

if you want to have a try at this iv put moarvm and libtommath packages on my repo github.com/its-pointless/gcc_termux readme for instructions...

Mu-00 commented 6 years ago

Great. I installed moarvm following your instructions and it's up and running, so far no problems.

Mu-00 commented 6 years ago

I symlinked the moar executable into install/bin of rakudo-star tree and tried to compile rakudo star on device, but it fails at some point with nqp. Perhaps it needs more than just the executable.

Mu-00 commented 6 years ago

If you install moarvm from its-pointless and unpack rakudo-star sources into your $HOME and run perl Configure.pl --backend=moar --gen-nqp it will fail because it expects moar and share/nqp/lib in source tree/install. I don't know if it would help to add --prefix=../usr, I don't want it to install stuff somewhere. So solution is to do
ln -s ../usr/bin/moar in install/bin and ln -s ../usr/share/nqp/lib in install/share/nqp On my regular machine I was able to compile nqp and afterwards make rakudo. On device it's currently compiling ... :)

Mu-00 commented 6 years ago

nqp compiled. The final make failed. Unfortunately I can't transfer the log now, abbreviated something like: src/vm/moar/ops/perl6_ops.c:2: ...com.termux/files/usr/include/moar/moar.h:24:10: uv.h file not found

include uv.h

Mu-00 commented 6 years ago

FWIW, libuv 1.19.1 is installed

its-pointless commented 6 years ago

I didn't need to link moarvm All I did was export MVM_SPESH_DISABLE=1 perl Configure.pl --backends=moar --gen-moar --prefix=$PREFIX --sysroot=$PREFIX make install

its-pointless commented 6 years ago

Also make sure libuv-dev is installed

Mu-00 commented 6 years ago

the final make that builds perl6 doesn't find stuff in source_tree/MoarVM/3rdparty/* instead it's looking in /usr/include no quick and dirty hack for this one, tomorrow I try --prefix/ --sysroot, though I don't understand it

Mu-00 commented 6 years ago

Yes. Forget everybody everything I said and follow instruction from it-pointless.

Mu-00 commented 6 years ago

I made clean and issued your commands. The following happens:

  1. It states moar is new enough and uses that one you provided
  2. It successfully compiles nqp
  3. It fails after make because it does not find stuff in source_tree/MoarVM/3rdparty/, instead it looks in /usr/include. If libuv-dev is installed, it finds that header, but fails with the next atomic_ops.h. It's about source_tree/MoarVM/3rdparty/
Mu-00 commented 6 years ago

It doesn't help to pkg uninstall moarvm (keeping libffi libtommath), that leads to configuration fail, also because of 3rdparty

its-pointless commented 6 years ago

oh you need atomic-ops-dev package

forgot to upload that.... apt install libatomic-ops-dev sorry about that been doing about 5 different things at once

Mu-00 commented 6 years ago

You're work is much appreciated! Also needed is apt install libffi-dev libtommath-dev

Mu-00 commented 6 years ago

After that make succeeds, with warning linker: ...rakudo/dynext/libperl6.ops.moar.so: unused DT entry: type 0xf arg 0x52a but make install hangs in order to get rid of warnings I did termux-elf-cleaner rakudo/dynext/libperl6_ops_moar.so make install hangs shortly after copying libperl6_ops_moar.so while doing this: perl6-m tools/build/install-core-dist.pl $PREFIX/usr/share/perl6

Squifi commented 6 years ago

Hi, i am also interested in trying to install rakudo on my android tablet. i followed the steps mentioned above, sadly not able to get past the instructions given by its-pointless. export MVM_SPESH_DISABLE=1 perl Configure.pl --backends=moar --gen-moar --prefix=$PREFIX --sysroot=$PREFIX make install

Sadly probing pthread_yield support ...................... NO probing support of rdtscp intrinsic ................ NO

Doesnt work and libuv isn't found although i have the 1.9.1 version installed. Am I missing something or is that the current status.

Kind regards, squifi

Mu-00 commented 6 years ago

You need apt install libatomic-ops-dev libffi-dev libtommath-dev libuv-dev

What worked for me was making nqp and rakudo IF the crosscompiled moarvm from its-pointless is installed. It will skip moarvm if moarvm is up to date, so you need either rakudo 2017-12 or rakudo-star 2017-10 BUT make install will fail. So perl6-m will be in the build tree. As-is it's not really helpful, I'm not using it.

its-pointless commented 6 years ago

I got it to install just when it hangs stop and try make install again.

Mu-00 commented 6 years ago

I tried that before and again, it's not working for me. perl6-m tools/build/install-core-dist.pl $PREFIX/usr/share/perl6 is the latest I see. I have no idea how the installation process works, there are these precomp binaries in $PREFIX/usr/share/perl6

Squifi commented 6 years ago

Thx for your replies, i'll continue to try. Got the dependencies, but sadly still no luck atm

sydneyfalk commented 6 years ago

Awesome to see I'm not the only person interested!

I've been juggling RL too much lately but I have been reading the thread off and on and will be trying to do it too in a week or so, with the assistance of my far more well-versed-in-these-things spousal unit. ^_^

Mu-00 commented 6 years ago

I want to mention that I tried to install debian on termux using sp4rkie's script https://github.com/sp4rkie/debian-on-termux but failed initially a few weeks ago. Now it is working with stable and testing and the slight modification suggested here https://github.com/sp4rkie/debian-on-termux/issues/12#issuecomment-367323561. I installed testing, which required 412M. I added unstable to /etc/apt/sources.list and installed rakudo-2018.1 with apt-get -t unstable install rakudo testing version would be rakudo-2017.6 (of course apt preferences need to be set appropriately to keep unstable rakudo on testing)

its-pointless commented 6 years ago

I have found a .. bad way of getting this built in termux but still.. for some reason its not killing threads that need to be killed so i did it manually during the install process....

Rakudo Star has been built and installed successfully. Please make sure that the following directories are in PATH: /data/data/com.termux/files/usr/bin /data/data/com.termux/files/usr/share/perl6/site/bin

its-pointless commented 6 years ago

okay using htop... this is what is i see during build the bug occurs when it spawns 2 process with the same command. the earlier one will go for a brief moment and then second will cause a dead lock. This second is identified by its shared memory value of 0.... killing this secondary process enable the build to continue.

ohmycloud commented 6 years ago

is Perl 6 available for termux-packages finally?

ghost commented 6 years ago

@ohmycloud If issue is Open then package is not available at this time.

ohmycloud commented 5 years ago

I found a rakudo package in this repository: https://github.com/its-pointless/its-pointless.github.io/blob/0d6340f2e7db3be83d949f0411407073cd1b7710/files/24/dists/termux/extras/binary-aarch64/Packages

startup termux and download

curl -O https://its-pointless.github.io/setup-pointless-repo.sh
chmod +x setup-pointless-repo.sh
./setup-pointless-repo.sh
apt-get install rakudo
licy183 commented 10 months ago

This package request is associated with three package, moarvm, nqp and rakudo. moarvm can be cross-compiled, but nqp and rakudo cannot. I don't know if it is necessary to add moarvm only.

Bestboigill commented 1 month ago

I am sorry if I am not asking this properly it's my first time, while trying to install raku according to the steps mentioned by its-pointless I run into the following error

~/src/MoarVM $ CC=clang ./Configure.pl --prefix=$HOME/.local --has-libuv --cc=clang
Welcome to MoarVM!

Updating submodules .................................... OK
Configuring native build environment ...................
FAIL
    unknown OS 'android'
    assuming POSIX userland ............................     trying to compile a simple C program ............... ERROR

    Can't link simple C program.
    Failing command: clang  -o try try.o 2>&1
    Error: ld.lld: error: cannot open /data/data/com.termux/files/usr/lib/clang/19/lib/aarch64-unknown-linux-android24/libclang_rt.builtins.a: No such file or directory
ld.lld: error: cannot open /data/data/com.termux/files/usr/lib/clang/19/lib/aarch64-unknown-linux-android24/libc

I also tried

ln -s ../usr/bin/moar in install/bin and
ln -s ../usr/share/nqp/lib in install/share/nqp 

as mentioned above and now I feel like this is above my pay grade any help would be appreciated.