Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3049 from patzim/binary-release
Files for binary releases
- Loading branch information
Showing
8 changed files
with
305 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
Windows | ||
======= | ||
|
||
- Create a fresh Windows 10 VM as described in [the Windows guide](docs/windows.md) if you don't have an up to date Windows 10 available (the download is 20GB and turns unusable after ~ 2 months). | ||
- Install Git, Perl 5, and the C/C+ development tools as described in that guide. | ||
- Download the [latest release](http://rakudo.org/files/rakudo) and extract it to `C:\rakudo`. The path will end up in the finished build, so if you don't want some other path to end up persisted in the build in some buildsystem variable put it in `C:\rakudo`. | ||
- Open the 'Developer Command Prompt for VS 20XX'. | ||
- Navigate to `C:\rakudo\`. | ||
- `perl Configure.pl --gen-moar --gen-nqp --backends=moar --relocatable` | ||
- `nmake install` | ||
- `nmake test` | ||
- In `C:\rakudo` do `git clone https://github.com/ugexe/zef.git` and `cd zef` and `C:\rakudo\install\bin\perl6.exe -I. bin\zef install .` | ||
- Copy all files in the `Windows` folder into the `install` folder. | ||
- Rename the `install` folder to `rakudo-20XX.XX`. | ||
- Create a `.zip` archive. Name it `rakudo-20XX.XX-windows-64bit.zip`. | ||
- Copy the `.zip` archive out of the Windows VM using the Virtual Box `File Manager` (*Machine -> File Manager...*) | ||
- Sign the `.zip` archive as described in `release_guide.pod`. | ||
- Upload the `.zip` archive and signature as described in `release_guide.pod`. | ||
|
||
|
||
Linux | ||
===== | ||
|
||
On Linux the major compatibility breaker is glibc. Basic rule: stuff compiled with a specific version of glibc can run on newer versions, but not older ones. So when compatibility with multiple Linuxes is desired one has to compile on a distribution with a reasonably old glibc. | ||
[this overview of glibc Versions](https://gist.github.com/wagenet/35adca1a032cec2999d47b6c40aa45b1) is quite helpful with that. | ||
As of 2019-07-08 CentOS 6 (using glibc 2.12) is a good pick. | ||
|
||
- Use a 64 bit Linux. | ||
- Install docker. | ||
- `docker run -it --name=rakudo-build centos:6 bash` | ||
|
||
yum -y update && yum clean all | ||
yum install git perl perl-core gcc make | ||
# Don't forget to change the link below back to rakudo.org, once the website is back in shape again. | ||
curl -o rakudo-2019.03.1.tar.gz https://perlgeek.de/static/p6/rakudo/rakudo-2019.03.1.tar.gz | ||
tar -xzf rakudo-2019.03.1.tar.gz | ||
cd rakudo-2019.03.1 | ||
perl Configure.pl --gen-moar --gen-nqp --backends=moar --relocatable | ||
make install | ||
make test | ||
git clone https://github.com/ugexe/zef.git | ||
cd zef | ||
/rakudo-2019.03.1/install/bin/perl6 -I. bin/zef install . | ||
cd /rakudo-2019.03.1 | ||
cp -r tools/releasable/release-files/Linux/* install | ||
mv install rakudo-2019.03.1 | ||
tar -czf /rakudo-2019.03.1-linux-64bit.tar.gz rakudo-2019.03.1 | ||
|
||
- On the host linux (not inside the container) run `docker cp rakudo-build:/rakudo-2019.03.1-linux-64bit.tar.gz .` to copy the archive out of the container. If you happended to stop the container by exitting the console, type `docker start rakudo-build` to start it again and allow copying files out. | ||
- Sign the tarball archive as described in `release_guide.pod`. | ||
- Upload the tarball and signature as described in `release_guide.pod`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# Rakudo Perl 6 | ||
|
||
This is a pre-built package of Rakudo Perl 6, a Perl 6 compiler. | ||
|
||
This package includes the Rakudo Perl 6 compiler and the module installer Zef. | ||
|
||
|
||
## Running Perl 6 | ||
|
||
To run a Perl 6 program, open a command prompt and type | ||
|
||
/path/to/this/folder/bin/perl6 my_script.p6 | ||
|
||
or start a REPL by calling `perl6` without an argument | ||
|
||
/path/to/this/folder/bin/perl6 | ||
|
||
To add the relevant paths to your environment so you don't have to type the full path run the following script: | ||
|
||
source scripts/set-env.sh | ||
|
||
|
||
## Installing modules | ||
|
||
To install Perl 6 modules you can use the Zef module installer. | ||
|
||
/path/to/this/folder/bin/perl6 /path/to/this/folder/share/perl6/site/bin/zef install JSON::Fast | ||
|
||
Modules will be installed into this Perl 6 package and will thus be available even when moving this package. | ||
|
||
|
||
### Native code modules | ||
|
||
To install modules that require a compiler toolchain, you have to have a compiler installed. | ||
|
||
- On Debian/Ubuntu based systems do `sudo apt-get install gcc make` | ||
- On RedHat/Fedora based systems do `sudo dnf install gcc make` | ||
|
||
|
||
## Changes | ||
|
||
Recent changes and feature additions are documented in the `docs/ChangeLog` | ||
text file. | ||
|
||
To receive important notifications from the core developer team, please | ||
subscribe to [the p6lert service](https://alerts.perl6.org) using the RSS feed, | ||
twitter, or [the p6lert commandline script](https://github.com/zoffixznet/perl6-p6lert). | ||
|
||
|
||
## Where to get help or answers to questions | ||
|
||
There are several mailing lists, IRC channels, and wikis available with | ||
help for Perl 6 and Rakudo. Figuring out the right one to use | ||
is often the biggest battle. Here are some rough guidelines: | ||
|
||
The central hub for Perl 6 information is [perl6.org](http://perl6.org/). | ||
This is always a good starting point. | ||
|
||
If you have a question about Perl 6 syntax or the right way to approach | ||
a problem using Perl 6, you probably want the “perl6-users@perl.org” | ||
mailing list or the [irc.freenode.net/#perl6 IRC | ||
channel](https://webchat.freenode.net/?channels=#perl6). The perl6-users | ||
list is primarily for the people who want to use Perl 6 to write | ||
programs, so newbie questions are welcomed there. Newbie questions | ||
are also welcome on the #perl6 channel; the Rakudo and Perl 6 | ||
development teams tend to hang out there and are generally glad | ||
to help. You can follow [@perl6org](https://twitter.com/perl6org) | ||
and on Twitter, there's a Perl 6 news aggregator at | ||
[Planet Perl 6](http://pl6anet.org/). | ||
|
||
Questions about NQP can also be posted to the #perl6 IRC channel. | ||
For questions about MoarVM, you can join #moarvm on freenode. | ||
|
||
|
||
## Reporting bugs | ||
|
||
See https://rakudo.org/bugs | ||
|
||
|
||
## Submitting patches | ||
|
||
If you have a patch that fixes a bug or adds a new feature, please | ||
create a pull request using github's pull request infrastructure. | ||
|
||
See [our contribution guidelines](https://github.com/rakudo/rakudo/blob/master/CONTRIBUTING.md) for more information. | ||
|
||
|
||
## License | ||
|
||
Rakudo Perl 6 is Copyright © 2008-2019, The Perl Foundation. Rakudo Perl 6 | ||
is distributed under the terms of the Artistic License 2.0. For more | ||
details, see the full text of the license in the file LICENSE. | ||
|
||
|
||
## AUTHOR | ||
|
||
Jonathan Worthington is the current pumpking for Rakudo Perl 6. | ||
See CREDITS for the many people that have contributed | ||
to the development of the Rakudo compiler. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#!/bin/sh | ||
|
||
# Sourced from https://stackoverflow.com/a/29835459/1975049 | ||
rreadlink() ( | ||
target=$1 fname= targetDir= CDPATH= | ||
{ \unalias command; \unset -f command; } >/dev/null 2>&1 | ||
[ -n "$ZSH_VERSION" ] && options[POSIX_BUILTINS]=on | ||
while :; do | ||
[ -L "$target" ] || [ -e "$target" ] || { command printf '%s\n' "ERROR: '$target' does not exist." >&2; return 1; } | ||
command cd "$(command dirname -- "$target")" || exit 1 | ||
fname=$(command basename -- "$target") | ||
[ "$fname" = '/' ] && fname='' | ||
if [ -L "$fname" ]; then | ||
target=$(command ls -l "$fname") | ||
target=${target#* -> } | ||
continue | ||
fi | ||
break | ||
done | ||
targetDir=$(command pwd -P) | ||
if [ "$fname" = '.' ]; then | ||
command printf '%s\n' "${targetDir%/}" | ||
elif [ "$fname" = '..' ]; then | ||
command printf '%s\n' "$(command dirname -- "${targetDir}")" | ||
else | ||
command printf '%s\n' "${targetDir%/}/$fname" | ||
fi | ||
) | ||
|
||
EXEC=$(rreadlink "$0") | ||
DIR=$(dirname -- "$EXEC") | ||
|
||
export PATH=$DIR/../bin:$DIR/../share/perl6/site/bin:$PATH | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
# Rakudo Perl 6 | ||
|
||
This is a pre-built package of Rakudo Perl 6, a Perl 6 compiler. | ||
|
||
This package includes the Rakudo Perl 6 compiler and the module installer Zef. | ||
|
||
|
||
## Running Perl 6 | ||
|
||
To run a Perl 6 program, open a command prompt and type | ||
|
||
C:\path\to\this\folder\bin\perl6.exe my_script.p6 | ||
|
||
or start a REPL by calling `perl6.exe` without an argument | ||
|
||
C:\path\to\this\folder\bin\perl6.exe | ||
|
||
To add the relevant paths to your environment so you don't have to type the full path execute the following script in CMD: | ||
|
||
C:\path\to\this\folder\scripts\set-env.bat | ||
|
||
or when using Powershell (note the dot at the beginning): | ||
|
||
. C:\path\to\this\folder\scripts\set-env.ps1 | ||
|
||
|
||
## Installing modules | ||
|
||
To install Perl 6 modules you can use the Zef module installer. | ||
|
||
C:\path\to\this\folder\bin\perl6.exe C:\path\to\this\folder\share\perl6\site\bin\zef install JSON::Fast | ||
|
||
Modules will be installed into this Perl 6 package and will thus be available even when moving this package. | ||
|
||
|
||
### Native code modules | ||
|
||
To install modules that require a compiler toolchain, you have to have the Microsoft Visual C compiler installed. It's included in the Microsoft BuildTools which can be freely downloaded [here](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools). | ||
|
||
|
||
## Changes | ||
|
||
Recent changes and feature additions are documented in the `docs/ChangeLog` | ||
text file. | ||
|
||
To receive important notifications from the core developer team, please | ||
subscribe to [the p6lert service](https://alerts.perl6.org) using the RSS feed, | ||
twitter, or [the p6lert commandline script](https://github.com/zoffixznet/perl6-p6lert). | ||
|
||
|
||
## Where to get help or answers to questions | ||
|
||
There are several mailing lists, IRC channels, and wikis available with | ||
help for Perl 6 and Rakudo. Figuring out the right one to use | ||
is often the biggest battle. Here are some rough guidelines: | ||
|
||
The central hub for Perl 6 information is [perl6.org](http://perl6.org/). | ||
This is always a good starting point. | ||
|
||
If you have a question about Perl 6 syntax or the right way to approach | ||
a problem using Perl 6, you probably want the “perl6-users@perl.org” | ||
mailing list or the [irc.freenode.net/#perl6 IRC | ||
channel](https://webchat.freenode.net/?channels=#perl6). The perl6-users | ||
list is primarily for the people who want to use Perl 6 to write | ||
programs, so newbie questions are welcomed there. Newbie questions | ||
are also welcome on the #perl6 channel; the Rakudo and Perl 6 | ||
development teams tend to hang out there and are generally glad | ||
to help. You can follow [@perl6org](https://twitter.com/perl6org) | ||
and on Twitter, there's a Perl 6 news aggregator at | ||
[Planet Perl 6](http://pl6anet.org/). | ||
|
||
Questions about NQP can also be posted to the #perl6 IRC channel. | ||
For questions about MoarVM, you can join #moarvm on freenode. | ||
|
||
|
||
## Reporting bugs | ||
|
||
See https://rakudo.org/bugs | ||
|
||
|
||
## Submitting patches | ||
|
||
If you have a patch that fixes a bug or adds a new feature, please | ||
create a pull request using github's pull request infrastructure. | ||
|
||
See [our contribution guidelines](https://github.com/rakudo/rakudo/blob/master/CONTRIBUTING.md) for more information. | ||
|
||
|
||
## License | ||
|
||
Rakudo Perl 6 is Copyright © 2008-2019, The Perl Foundation. Rakudo Perl 6 | ||
is distributed under the terms of the Artistic License 2.0. For more | ||
details, see the full text of the license in the file LICENSE. | ||
|
||
|
||
## AUTHOR | ||
|
||
Jonathan Worthington is the current pumpking for Rakudo Perl 6. | ||
See CREDITS for the many people that have contributed | ||
to the development of the Rakudo compiler. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
SET PATH=%~dp0%\..\bin;%~dp0%\..\share\perl6\site\bin;%PATH% | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition | ||
$Env:PATH = "$scriptPath\..\bin;$scriptPath\..\share\perl6\site\bin;$Env:PATH" | ||
|