rpm for newLISP 8.0

Started by nigelbrown, March 18, 2004, 03:28:14 PM

Previous topic - Next topic

nigelbrown

Hi Lutz,

As a major new stable release point is close perhaps now would be a good time to consider also releasing newlisp as an rpm for some systems (rehat/mandrake etc) or other distribution friendly package formats (Debian?).

If getting newLISP into a distribution is a target then providing this would maybe make things easier. I'd like to see newLISP in at least a specialist distribution (such as Quantian http://dirk.eddelbuettel.com/quantian.html">http://dirk.eddelbuettel.com/quantian.html ) for the next stable release. Having some functions especially set up for that distribution (eg some openMOSIX friendly process dispatch functions in a module/context  for Quantian) may help our case.



Having said that I've no experiance with rpm'ing packages.

Lutz

#1
>>>

Having said that I've no experiance with rpm'ing packages

>>>



neither do I :(, but I agree that a rpm package would be a good thing,



Lutz

nigelbrown

#2
I'll try looking at http://www.rpm.org/RPM-HOWTO/">http://www.rpm.org/RPM-HOWTO/



PS I obvisofly dont have experiance with spel checkerz eithr

newdep

#3
A solution could be to have some package managers/people who deliver to

Lutz for the UNIX/Linux/MAC distribution they work on for the specific stable newlisp compressed package (its a terrible task to maintain this by yourself...)  



Norman.
-- (define? (Cornflakes))

nigelbrown

#4
A first step may be to find something that would ease the pain:

perhaps http://sourceforge.net/projects/krpmbuilder">http://sourceforge.net/projects/krpmbuilder ?

freshmeat.net shows a few other helpers as well

newdep

#5
I believe its probably a good tool, but its useless too.. If newlisp would take

50 different directory to spread over and would have over 500 small files which change every week , then its a good option would be a softwarebased package- manager. But truely...isnt the (tgz) already nice enough...



There is only 1 advantage.



Newlisp could be adapted quicker in standard releases like slackware debian and "that odd thing on your head" distribution...
-- (define? (Cornflakes))

nigelbrown

#6
The more linux spreads the smaller the proportion of users that will want to know whether readline is installed and do compiles. One could take the philosophical view that it would be good for them to understand these things. Howver, if you've just convinced your graphics friends to try linux and your great whiz-bang fractal generator (that happens to be based on newlisp) having an easy newlisp rpm could be the make-or-break. rpm's also get around the thinking of readline dependancies.



I agree it is a small thing, but worth discussing whether it's worth the effort.



As pointed out, rpms are often made available in a contributor directory after they have been put together by someone other than the chief programmer -  I'll look at doing a Mandrake rpm.

nigelbrown

#7
Another consideration is that some distros don't come with a compiler:



He cried whisperingly at some image, at some vision--he cried twice, with a cry that was no more than a breath--



  "'The horror! The horror!'



- Joseph Conrad "The Heart of Darkness." 1899



 eg Lindows - which I believe uses Debian packages http://www-106.ibm.com/developerworks/linux/library/l-debpkg.html">http://www-106.ibm.com/developerworks/l ... ebpkg.html">http://www-106.ibm.com/developerworks/linux/library/l-debpkg.html  - so someone may want the binary.

nigelbrown

#8
I'm getting time to look at doing a Mandrake rpm using these instructions: http://qa.mandrakesoft.com/twiki/bin/view/Main/RpmHowTo">http://qa.mandrakesoft.com/twiki/bin/view/Main/RpmHowTo .

Lutz, have you done a newlisp man page at some time? If not I thought I'd do one along the lines of the clisp man page (see http://clisp.cons.org/clisp.html">http://clisp.cons.org/clisp.html ) which looks like a pretty standard man page.

Lutz

#9
if you could help on that, that would be great



thankyou



Lutz

nigelbrown

#10
Hi Lutz,

Looking at linux sofware the usual name for newlisp would be more like

newlisp-8.0.0rc1.tgz or newlisp-8.0.0-0.rc1.tgz and eventually newlisp-8.0.0.tgz

rather than the more windows friendly newlisp_8000.tgz. Would you be happy for an rpm

to use the newlisp-8.0.0.i586.rpm naming? Some programs may distribute source as newlisp-8.0.0.tgz and also as newlisp_8000.zip for windows people who are not used to seeing .tgz - you may like to consider doing source that way.

Lutz

#11
Yes, I agree lets do newlisp-8.0.0.i586.rpm



For source I will do only *.tgz for now most unzip tools used recognize it automatically and treat it well (i.e. WinZip)





Lutz

nigelbrown

#12
Below is a proposed man page. Cut and save as newlisp.1 then view with man /path/newlisp.1

Please comment, including further examples to include. I've not checked the stated exit code behaviour on a linux system. Sorry about the date!



.TH newlisp 1  "April 1, 2004" "version 8.0.0" "USER COMMANDS"

.SH NAME

newlisp - lisp dialect interpreter

.SH SYNOPSIS

.B newlisp

[-h] [-s stacksize] [-m max-mem-megabyte] [-e programtext] [[-l | -L] [-p port-number | -d port-number]] [lisp-files ...]

.SH DESCRIPTION

Invokes the newLisp lisp interpreter which loads init.lsp if it exists then loads and interprets any specified lisp files in sequence.

.SH OPTIONS

.TP

-h

display a short help text

.TP

-s max-mem-megabyte

Limits memory to max-mem-megabyte megabytes for LISP cell memory.

.TP

-e programtext

programtext is an expression enclosed in quotation marks which is evaluated and the result printed to standard out device (STDOUT). In most UNIX system shells apostrophes can also be used to delimit the expression.

.TP

-l -L

Logs the port connection, use the -l or -L option together with the -p or -d option. This registers time and IP number of the connecting client in file newlisp-log.txt. When using -L all remote commands received are also logged. If the logfile newlisp-log.txt already exists, new content is appended; otherwise newlisp-log.txt is created.

.TP

-p port-number

Listen for commands on a TCP/IP socket connection. In this case standard I/O is redirected to the port specified in the -p option.

.TP

-d port-number

Run in demon mode. As for the -p option, but newLISP does not exit after a closed connection and stays in memory listening for a new connection.

.SH EXAMPLES

.TP

Add 3 and 4, 7 prints on standard output

.B newlisp

-e "(+ 3 4)"

.PP

.TP

newLISP is started as a server (the & indicates to LINUX to run the process in the background) and can be connected to with telnet by issuing telnet localhost 1234

.B newlisp

-p 1234 &

.PP

.SH EXIT STATUS

newlisp returns a zero exist status for normal exit unless exit command specifies a code to be returned. Non zero is returned in case of abnormal exit.

.SH AUTHOR

Lutz Mueller (contact (at) nuevatec.com)

.SH SEE ALSO

newlisp-tk(1)

nigelbrown

#13
Or perhaps synposis should be

.SH SYNOPSIS

.B newlisp

[-h] [-s stacksize] [-m max-mem-megabyte] [[-e programtext] | [[-l | -L] [-p port-number | -d port-number]] | [lisp-files ...]]



to emphasise that either the -e or (-p or -d) or lisp-files are mutually exclusive options

nigelbrown

#14
The option details were incorrect and are now corrected(?). Description was expanded. I changed synopsis to above suggested form. the new newlisp.1 is:



.TH newlisp 1  "April 1, 2004" "version 8.0.0" "USER COMMANDS"

.SH NAME

newlisp - lisp dialect interpreter

.SH SYNOPSIS

.B newlisp

[-h] [-s stacksize] [-m max-mem-megabyte] [[-e programtext] | [[-l | -L] -p port-number | -d port-number [somefile.lsp]] | [lisp-files ...]]

.SH DESCRIPTION

Invokes the newLisp lisp interpreter which loads init.lsp. Newlisp then either interprets commandline programtext or listens on a port or interprets any specified lisp files in sequence or begins interactive session, depending on commandline switches.

.SH OPTIONS

.TP

-h

display a short help text

.TP

-s stacksize

stack size to use when starting newLISP. When no stack size is specified the stack defaults to 1024.

.TP

-m max-mem-megabyte

Limits memory to max-mem-megabyte megabytes for LISP cell memory.

.TP

-e programtext

programtext is an expression enclosed in quotation marks which is evaluated and the result printed to standard out device (STDOUT). In most UNIX system shells apostrophes can also be used to delimit the expression.

.TP

-l -L

Logs the port connection, use the -l or -L option together with the -p or -d option. This registers time and IP number of the connecting client in file newlisp-log.txt. When using -L all remote commands received are also logged. If the logfile newlisp-log.txt already exists, new content is appended; otherwise newlisp-log.txt is created.

.TP

-p port-number somefile.lsp

Listen for commands on a TCP/IP socket connection. In this case standard I/O is redirected to the port specified in the -p option and somefile.lsp is an optional file to be loaded during startup.



.TP

-d port-number somefile.lsp

Run in demon mode. As for the -p option, but newLISP does not exit after a closed connection and stays in memory listening for a new connection.

.SH EXAMPLES

.TP

Start interactive session

.B newlisp

.PP

.TP

Add 3 and 4, 7 prints on standard output

.B newlisp

-e "(+ 3 4)"

.PP

.TP

newLISP is started as a server (the & indicates to LINUX to run the process in the background) and can be connected to with telnet by issuing telnet localhost 1234

.B newlisp

-p 1234 &

.PP

.SH EXIT STATUS

newlisp returns a zero exist status for normal exit unless exit command specifies a code to be returned. Non zero is returned in case of abnormal exit.

.SH AUTHOR

Lutz Mueller (contact (at) nuevatec.com)

.SH SEE ALSO

newlisp-tk(1)