Waldek wrote:
> I have no time to check what exactly is done by Aaron's
> script.
It's all buried in comments and over-wordy explanations, but here are the
key points, followed by some thoughts about future steps.
I've tried to make installation much simpler for end users, which makes the
installation scripts more complex.
I previously depended on you providing a tar file derived from github.
The last one was poplog_base6.tar.bz2
That fixed the host_name bug -- and you sent me diff information.
I later decided I should find out how to get your latest system from github
so that you don't have to send me diff information after changes, or create
a special tar file for users to download.
It was fairly simple to get github to provide a zip file. But I wanted to
be able to add extra items if necessary so I unzipped it and rebuilt it as
latest_poplog_base.tar.bz2
including several tar files that were previously fetched separately, along
with a script to unpack them, etc.
In more detail:
When that file is untarred it produces the poplog_base directory that you
created, plus a few additional items to simplify the installation process.
Contents of your original tar file:
drwxr-xr-x 4 4096 Jun 30 01:11 local
drwxr-xr-x 13 4096 Jun 30 01:11 pop
-rwxr-xr-x 1 1244 Jun 30 01:11 mk_cross
-rwxr-xr-x 1 27 Jun 30 01:11 asm
-rwxr-xr-x 1 2060 Jun 30 01:22 build_pop2
-rwxr-xr-x 1 1744 Jun 30 01:22 build_pop0
-rw-r--r-- 1 532 Jun 30 01:30 nopie.diff
In June, you also provided instructions to be run manually in the
poplog_base directory. I wanted to try to automate those steps.
You wrote:
I hope instructions are resonable simple on Debian 8:
1) fetch and unpack the tarball
2) change directory to 'poplog_base'
3) run
./build_pop0 > rapp1 2>&1
4) move newly created 'newpop11' to 'corepop':
mv pop/pop/newpop11 pop/pop/corepop
5) run
./build_pop2 > rapp2 2>&1
After the last step 'pop/pop' should contain newly build 'basepop11'
and there should be images for Pop11, Prolog, Lisp, PML, ved and xved.
So I thought I should try to automate those steps, as part of an install
script, that also includes the steps required to download and install the
items from Birmingham (missing documentation files and the packages
system).
[You also added this, which I had forgotten till now!
For Debian 9 and testing one needs extra step, between 2 and 3
above:
2a) patch 'asmout.p' to add '-no-pie' option
patch -p1 < nopie.diff
So that's not included in my "automation"! Later that could be dealt with
using special instructions for those users.
]
My aim was to produce a single script that could simply be run to download
required additional scripts and tar files, unpack them and set everything
up, provided that system specific libraries were already installed, as
specified here:
https://www.cs.bham.ac.uk/research/projects/poplog/V16/required-packages.html
I found that your steps 1-5 worked for Fedora (and Steve later confirmed
that they also worked for Ubuntu) so I created a script
build_all.csh
to be invoked from my install script getpoplog.sh, including all your
instructions, plus extra instructions to install (previously downloaded)
additional tar files, namely:
docs.tar.bz2
missing documentation files in poplog_base/pop
packages-v16.tgz
the poplog packages directory, with some extra notes for
version 16, and a couple of minor bug fixes.
[People who don't want those can edit the install script after downloading,
and delete unwanted tar files.]
I tried combining those 'finishing off' instructions with your poplog
construction steps in a new C-shell script (as I could not get a bash
script to run when invoked from the new getpoplog.sh).
So the new installation process required fetching just one script to do all
the above, including downloading the required files, un-packing, building
the new poplog, and also adding information about $usepop and startup
scripts for end users.
That is all now done in this script which works on three Redhat-based linux
systems and Ubuntu (as reported by Steve Leach).
https://www.cs.bham.ac.uk/research/projects/poplog/V16/getpoplog.sh
(It sounds as if a minor variant could be made to work for Arch.)
The build_all.csh script is included in the main tar file:
https://www.cs.bham.ac.uk/research/projects/poplog/V16/latest_poplog_base.tar.bz2
but it can also be seen here:
https://www.cs.bham.ac.uk/research/projects/poplog/V16/build_all.csh
It will need to be changed to cope with the debian exceptions you
mentioned, though producing a separate debian install package may be
simpler.
Perhaps I should produce scripts that include the prerequisites for
different versions of linux. E.g. one script would install the required
fedora libraries then download and run the poplog install script.
Another would do that for ubuntu, etc.
I don't yet know whether it can be modified to cope also with Arch.
>From your recent comments I suspect that a slightly modified version of
getpoplog.sh will deal with Arch.
I am not fluent at building complex shell scripts, and I shall not object
if anyone wishes to generalise getpoplog.sh, or perhaps provide two or more
versions to deal with debian and arch as special cases.
The objective of all this complexity is to make it as simple as possible
for people unfamiliar with poplog to fetch, install, and try it out.
Perhaps github can later be given the job of packaging required
combinations for different sorts of user.
The "try it out" part may require a collection of online tutorials for
different kinds of user, including your pop11 pages and others.
I shall shortly invite a collection of former poplog users and contributors
to try the system. Perhaps some of them will find a new use for Poplog in
their teaching or research.
Thanks again for all you've done.
Aaron
PS If I ever get time I want to try to resurrect the impressive
'Pop-racer' project, which was done by a group of second year students here
(not supervised by me). It evolves simulated racing cars with evolved
neural nets, that can be trained and tested on different racing circuits
hand-drawn by users.
https://www.tamias.co.uk/popracer
Code and documentation files here:
https://www.cs.bham.ac.uk/research/projects/poplog/popracer/