clive

module
v0.0.0-...-bbd0190 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2016 License: MIT

README

open http://lsub.org/ls/clive.html
to see what's in here and how to use it, there is a link to the
manual in that page.

This contains the lsub go packages for clive, which
require the go compiler from lsub with modified chans and doselect.

IMPORTANT:
	Unless you checkout the dist tag from this repo, the source might
	not even compile: it's our development git and we push things
	whlie we are writing them, so they might not even compile, or
	they might fail.
	The dist tag is the last pushed tree that should be ok, so use that one.


The fmt and doc tools have been modified for Clive in the lsub go compiler.
To get documentation for packages you should, for example,

	go doc -m ...

and that prints the manual page for ...

To fmt the code we use the -S flag (which leverages shorthands
introduced by lsub go in some declarations).

In the lsub go we use the lsub branch, but in clive, we use the
master branch.

NOTES TO INSTALL AND USE CLIVE
------------------------------
(thanks to fgergo, who wrote these notes).

Installing clive and running clive programs (e.g. the graphical shell ix)

Installing clive
You'll be building from source.

Installation requirements
- linux or macosx
- git and at least go1.4.3 for bootstrapping clive's modified go compiler

You can install clive’s modified go compiler and clive in different directories.
These steps install both under $CLIVEROOT. Only this document references
$CLIVEROOT and only for convenience. Feel free to follow or change.

Installation instructions

#  Download and build clive's modified go compiler
export CLIVEROOT=/home/<this is my home>/cliveroot	# yes, change this, to wherever you want to have clive
export GOROOT_BOOTSTRAP=/your/path/to/go14	# yes, change this
mkdir $CLIVEROOT
cd $CLIVEROOT
git clone git://git.lsub.org/golang.git golang
cd golang
git checkout lsub
export GOROOT=`pwd`
export PATH=$GOROOT/bin:$PATH
cd src
./all.bash
export GOPATH=$CLIVEROOT/gopath
mkdir $GOPATH

# Download and build clive
mkdir $GOPATH/src
cd $GOPATH/src
git clone git://git.lsub.org/clive.git clive
cd clive
go get golang.org/x/net/websocket
go install -v ./...

# Setup clive: check and set environment variables, create directories, create temporary keys, set passwords
# check and set environment variables
echo $GOROOT	# yes, check $GOROOT and set if needed. Details: see above
echo $GOPATH		# yes, check $GOPATH and set if needed. Details: see above
export PATH=$GOPATH/bin:$PATH
# create directories
sudo mkdir -p /zx/lib			# run as root
sudo chown -R `whoami`:`whoami` /zx
# create temporary certs
cd $HOME/.ssh
# create ~/.ssh/server.[pem|key]
openssl req -new -nodes -x509 -out server.pem \
        -keyout server.key -days 500 -subj \
        "/C=DE/ST=NRW/L=Earth/O=Random \
        Company/OU=IT/CN=lsub.org/emailAddress=dont@mail.me"
# create ~/.ssh/client.[pem|key]
openssl req -new -nodes -x509 -out client.pem \
        -keyout client.key -days 500 -subj \
        "/C=DE/ST=NRW/L=Earth/O=Random \
        Company/OU=IT/CN=lsub.org/emailAddress=dont@mail.me"
# create /zx/lib/webcert.[pem|key]
cd /zx/lib
openssl req -new -nodes -x509 -out webcert.pem \
        -keyout webcert.key -days 500 -subj \
        "/C=DE/ST=NRW/L=Earth/O=Random \
        Company/OU=IT/CN=lsub.org/emailAddress=dont@mail.me"
# create passwords
auth -f default `whoami` secret1	# yes, change this: secret1 will be the password for the  'default' domain
auth -f wax `whoami` secret2 	# yes, change this: secret2 will be the password for the 'was' domain used by the graphical shell ix
chmod 600 server.pem server.key client.pem client.key clive.default clive.wax

# Running clive programs

# to test if your certs are ok, first check clive's web command
web -l	# should start without any output
# your browser: https://ip_of_machine_running_clive:8083 and accept the security exception and you can browse the files in /zx

# run the graphical shell ix
ix	# should start without any output
Your browser on https://ip_of_machine_running_clive:8181 and accept the security exception and you should see the default ix screen something like this: http://lsub.org/export/inkdump.png

# ix manual page: http://lsub.org/sys/man/1/ix.html

# put these in your profile
export CLIVEROOT=/home/<this is my home>/cliveroot	# yes, change this, to wherever you installed clive
export GOROOT=$CLIVEROOT/golang
export GOPATH=$CLIVEROOT/gopath
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Some browsers work better than others
should be best: macosx/safari
should be ok: windows/chrome (tested) and chrome in general should just work
kind of ok: firefox - typing isn't ok: https://support.mozilla.org/en-US/questions/984845

Minimal ix(1) walkthrough
ix(1) navigation is similar to http://research.swtch.com/acme Mouse click B1 is
select, B2 run's the selected command and B3 is similar to acme's B3
("acquire"), cursor keys scroll the current win. You can drag and drop wins with
B1. To browse the filesystem type / in the first window and B3 click the slash:
a new win lists the root of the file system. B3 on a file opens that file in a
new win, B3 on a directory opens that directory in a new win. You can type
commands in any win, the working directory is shown in the win's title bar. If
you change a file, B1 the floppy to put changes to disk. These should be enough
to get you started.

If some or all of this fails to work as described or you have something to add,
you can try fgergo@gmail.com.

Directories

Path Synopsis
cmd
auth
Create authentication keys for Clive.
Create authentication keys for Clive.
ch
ch command
ch command
child
Report the set of pids for a command and all its descendants
Report the set of pids for a command and all its descendants
cols
columnate text
columnate text
path
Clean and print path or path elements
Clean and print path or path elements
rmf
remove files command
remove files command
tty
UNIX tty tools
UNIX tty tools
web
Simple static web server for UNIX files.
Simple static web server for UNIX files.
when
+build !darwin
+build !darwin
xzx
ZX file server.
ZX file server.
zxpull
pull a zx replica
pull a zx replica
zxpush
push a zx replica
push a zx replica
zxrepl
make a replica for zx trees
make a replica for zx trees
net
ink/iedit
Simple editor mostly to test the ink UI framework Creates a text control to edit the text and then prints the text when it exits.
Simple editor mostly to test the ink UI framework Creates a text control to edit the text and then prints the text when it exits.
Access to the system clipboard.
Access to the system clipboard.
u
users
users
x
bazil.org/fuse/syscallx
Package syscallx provides wrappers that make syscalls on various platforms more interoperable.
Package syscallx provides wrappers that make syscalls on various platforms more interoperable.
code.google.com/p/go.crypto/curve25519
Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
code.google.com/p/go.crypto/nacl/box
Package box authenticates and encrypts messages using public-key cryptography.
Package box authenticates and encrypts messages using public-key cryptography.
code.google.com/p/go.crypto/nacl/secretbox
Package secretbox encrypts and authenticates small messages.
Package secretbox encrypts and authenticates small messages.
code.google.com/p/go.crypto/openpgp/errors
Package errors contains common error types for the OpenPGP packages.
Package errors contains common error types for the OpenPGP packages.
code.google.com/p/go.crypto/openpgp/s2k
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
code.google.com/p/go.crypto/pbkdf2
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
code.google.com/p/go.crypto/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
code.google.com/p/go.crypto/salsa20
Package salsa20 implements the Salsa20 stream cipher as specified in http://cr.yp.to/snuffle/spec.pdf.
Package salsa20 implements the Salsa20 stream cipher as specified in http://cr.yp.to/snuffle/spec.pdf.
code.google.com/p/go.crypto/salsa20/salsa
Package salsa provides low-level access to functions in the Salsa family.
Package salsa provides low-level access to functions in the Salsa family.
code.google.com/p/go.crypto/scrypt
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
code.google.com/p/go.crypto/ssh/test
This package contains integration tests for the clive/x/code.google.com/p/go.crypto/ssh package.
This package contains integration tests for the clive/x/code.google.com/p/go.crypto/ssh package.
code.google.com/p/go.net/idna
Package idna implements IDNA2008 (Internationalized Domain Names for Applications), defined in RFC 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.
Package idna implements IDNA2008 (Internationalized Domain Names for Applications), defined in RFC 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL