debian package for newLisp

Started by Dmi, August 05, 2005, 01:47:39 PM

Previous topic - Next topic

Dmi

#15
Now descend into it:

# cd newlisp-x.y.z



and simply run

# dpkg-buildpackage



It will build *.deb in the upper directory.

It may not found some development packages (such as libncurses-dev etc.) - if so, it stops and suggest you to install them - simply do

# apt-get install something



Of course, more careful is to build under a regular user:

$ fakeroot dpkg-buildpackage

instead of

# dpkg-buildpackage

as above



Write me if you'll got a questions
WBR, Dmi

Lutz

#16
Currently


make linux

makes newLISP without readline support, which is not nice but many Linux distributions do not have libreadline installed.



My question is: does the Debian apt-get install resolve missing libraries on the system. For example, if somebody does


sudo apt-get install newlisp

and the Debian newlisp package he is installing was compiled with libreadline, will it automatically also install libreadline if required? If not will it tell the user and will it tell what to do about it?



If this is so, then I would supply a: makefile_debian and in the package maker: rules file we could replace;


$(MAKE) linux

with


$(MAKE) debian

The second question is: how would I link, this way:


$(CC) $(OBJS) -g -lm -ldl -lreadline -ltermcap -o newlisp

or would I use this way:


$(CC) $(OBJS) -g -lm -ldl -lreadline -lncurses -o newlisp

I found on that some systems want also -ltermcap and yet others want -lncurses. Would that situation be the same on all Debian systems? If not, what would be the situation on UBUNTU Linux?



Lutz

nigelbrown

#17
A deb build on Ubuntu 6.10 desktop is shown below. I note that libreadline seems to be widely used in Ubuntu as asking to uninstall libreadline offers to uninstall a large number of application packages.

Once deb was built I didn't know how to apt-get from a local directory so in Nautilus file browser I opened it with gdebi via right click and newlisp installed fine viz: running newlisp from my home built deb installed:

 nigel@N3000-UBUNTU:~$ newlisp

newLISP v.9.0.16 on Linux, execute 'newlisp -h' for more info.



>



(ta-da)

but wish not standard in Ubuntu I guess

nigel@N3000-UBUNTU:~$ newlisp-tk

exec: 3: wish: not found

nigel@N3000-UBUNTU:~$



nigel@N3000-UBUNTU:~$ sudo apt-get install wish

Password:

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Package wish is a virtual package provided by:

  tk8.0-ja 8.0.4jp1.3-15

  tk8.0 8.0.5-11

  tk8.4 8.4.12-1

  tk8.3 8.3.5-6ubuntu1

You should explicitly select one to install.

E: Package wish has no installation candidate

nigel@N3000-UBUNTU:~$ sudo apt-get install tk8.3



...

and now:

nigel@N3000-UBUNTU:~$ newlisp-tk

newLISP v.9016 listening on port 64001

Connected to 127.0.0.1 on Thu Jan 25 06:41:37 2007



Regards

Nigel





PS build output for checking by Dmi:



nigel@N3000-UBUNTU:~/deb/newlisp-9.0.16$  fakeroot dpkg-buildpackage

dpkg-buildpackage: source package is newlisp

dpkg-buildpackage: source version is 9.0.16

dpkg-buildpackage: source changed by Dmitry Chernyak <dmi>

dpkg-buildpackage: host architecture i386

dpkg-buildpackage: source version without epoch 9.0.16

 debian/rules clean

dh_testdir

dh_testroot

rm -f build-stamp configure-stamp

# Add here commands to clean up after the build process.

/usr/bin/make clean

make[1]: Entering directory `/home/nigel/deb/newlisp-9.0.16'

rm *~ *.bak *.o *.obj *.map core *.tgz  *.tds *.ils *.ilf *.ild *.ilc *.TR2 TEST

rm: cannot remove `*~': No such file or directory

rm: cannot remove `*.bak': No such file or directory

rm: cannot remove `*.o': No such file or directory

rm: cannot remove `*.obj': No such file or directory

rm: cannot remove `*.map': No such file or directory

rm: cannot remove `core': No such file or directory

rm: cannot remove `*.tgz': No such file or directory

rm: cannot remove `*.tds': No such file or directory

rm: cannot remove `*.ils': No such file or directory

rm: cannot remove `*.ilf': No such file or directory

rm: cannot remove `*.ild': No such file or directory

rm: cannot remove `*.ilc': No such file or directory

rm: cannot remove `*.TR2': No such file or directory

rm: cannot remove `TEST': No such file or directory

make[1]: [clean] Error 1 (ignored)

rm newlisp-tk/*~ doc/*~ util/*~ examples/*~ modules/*~

rm: cannot remove `newlisp-tk/*~': No such file or directory

rm: cannot remove `doc/*~': No such file or directory

rm: cannot remove `util/*~': No such file or directory

rm: cannot remove `examples/*~': No such file or directory

rm: cannot remove `modules/*~': No such file or directory

make[1]: [clean] Error 1 (ignored)

rm newlisp-tk/*.bak doc/*.bak util/*.bak examples/*.bak modules/*.bak

rm: cannot remove `newlisp-tk/*.bak': No such file or directory

rm: cannot remove `doc/*.bak': No such file or directory

rm: cannot remove `util/*.bak': No such file or directory

rm: cannot remove `examples/*.bak': No such file or directory

rm: cannot remove `modules/*.bak': No such file or directory

make[1]: [clean] Error 1 (ignored)

chmod 644 *.h *.c *.lsp Makefile makefile*

chmod: cannot access `*.lsp': No such file or directory

make[1]: [clean] Error 1 (ignored)

chmod 755 build configure examples/*

chmod 644 doc/* modules/*.lsp examples/*.lsp examples/*.html

chmod 644 newlisp-tk/*

chmod 755 newlisp-tk/*.bat newlisp-tk/*.tcl

chmod 755 newlisp-tk/images

chmod 644 newlisp-tk/images/*

make[1]: Leaving directory `/home/nigel/deb/newlisp-9.0.16'

rm newlisp

rm: cannot remove `newlisp': No such file or directory

make: [clean] Error 1 (ignored)

dh_clean

 dpkg-source -b newlisp-9.0.16

dpkg-source: building newlisp in newlisp_9.0.16.tar.gz

dpkg-source: building newlisp in newlisp_9.0.16.dsc

 debian/rules build

dh_testdir

# Add here commands to configure the package.

touch configure-stamp

dh_testdir

# Add here commands to compile the package.

/bin/cp makefile_linux makefile_linux.orig

/bin/cp makefile_linux_readline makefile_linux

/usr/bin/make linux

make[1]: Entering directory `/home/nigel/deb/newlisp-9.0.16'

make -f makefile_linux

make[2]: Entering directory `/home/nigel/deb/newlisp-9.0.16'

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX newlisp.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-symbol.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-math.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-list.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-liststr.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-string.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-filesys.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-sock.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-import.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-xml.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-web.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-matrix.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-debug.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX pcre.c

gcc newlisp.o nl-symbol.o nl-math.o nl-list.o nl-liststr.o nl-string.o nl-filesys.o nl-sock.o nl-import.o nl-xml.o nl-web.o nl-matrix.o nl-debug.o pcre.o -g -lm -ldl -lreadline -lncurses -o newlisp

strip newlisp

make[2]: Leaving directory `/home/nigel/deb/newlisp-9.0.16'

make[1]: Leaving directory `/home/nigel/deb/newlisp-9.0.16'

#docbook-to-man debian/newlisp.sgml > newlisp.1

touch build-stamp

 debian/rules binary

dh_testdir

dh_testroot

dh_clean -k

dh_installdirs

# Add here commands to install the package into debian/newlisp.

/usr/bin/awk -f debian/instprep Makefile >Makefile.debian

/usr/bin/awk -f debian/makedocs Makefile.debian >debian/docs

find doc|grep -v '^doc$' >>debian/docs

/usr/bin/make -f Makefile.debian install DESTDIR=/home/nigel/deb/newlisp-9.0.16/debian/newlisp

make[1]: Entering directory `/home/nigel/deb/newlisp-9.0.16'

install -d /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp

install -d /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/newlisp-tk/images

install -m 755 newlisp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/bin/newlisp

install -m 755 newlisp-tk/newlisp-tk.tcl /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/bin/newlisp-tk

install -m 644 init.lsp.example /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/init.lsp.example

install -m 644 examples/httpd-conf.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/httpd-conf.lsp

install -m 644 examples/link.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/link.lsp

install -m 644 examples/tcltk.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/tcltk.lsp

install -m 644 examples/syntax.cgi /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/syntax.cgi

install -m 644 examples/newlispdoc /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/newlispdoc

install -m 644 modules/mysql.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/mysql.lsp

install -m 644 modules/mysql5.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/mysql5.lsp

install -m 644 modules/pop3.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/pop3.lsp

install -m 644 modules/ftp.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/ftp.lsp

install -m 644 modules/infix.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/infix.lsp

install -m 644 modules/smtp.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/smtp.lsp

install -m 644 modules/odbc.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/odbc.lsp

install -m 644 modules/cgi.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/cgi.lsp

install -m 644 modules/sqlite3.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/sqlite3.lsp

install -m 644 modules/stat.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/stat.lsp

install -m 644 modules/gmp.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/gmp.lsp

install -m 644 modules/postscript.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/postscript.lsp

install -m 644 modules/unix.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/unix.lsp

install -m 644 modules/zlib.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/zlib.lsp

install -m 644 doc/COPYING /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/COPYING

install -m 644 doc/CREDITS /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/CREDITS

install -m 644 doc/newlisp_manual.html /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/newlisp_manual.html

install -m 644 doc/newlisp_index.html /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/newlisp_index.html

install -m 644 doc/manual_frame.html /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/manual_frame.html

install -m 644 doc/CodePatterns.html /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/CodePatterns.html

install -m 644 newlisp-tk/newlisp-tk.html /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/newlisp-tk.html

install -m 644 newlisp-tk/*.lsp /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/newlisp-tk/

install -m 644 newlisp-tk/images/* /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/newlisp/newlisp-tk/images/

install -m 644 doc/newlisp.1 /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/man/man1/newlisp.1

install -m 644 doc/newlisp-tk.1 /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/man/man1/newlisp-tk.1

make[1]: Leaving directory `/home/nigel/deb/newlisp-9.0.16'

cp util/* /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/util

cp examples/* /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/share/doc/newlisp/examples

cp examples/newlispdoc /home/nigel/deb/newlisp-9.0.16/debian/newlisp/usr/bin

dh_testdir

dh_testroot

dh_installchangelogs

dh_installdocs

dh_installexamples

dh_installman

dh_link

dh_strip

dh_compress

dh_fixperms

dh_installdeb

dh_shlibdeps

dh_gencontrol

dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}

dh_md5sums

dh_builddeb

dpkg-deb: building package `newlisp' in `../newlisp_9.0.16_i386.deb'.

tar: -: file name read contains nul character

 dpkg-genchanges

dpkg-genchanges: including full source code in upload

dpkg-buildpackage: full upload; Debian-native package (full source is included)

nigel@N3000-UBUNTU:~/deb/newlisp-9.0.16$

Dmi

#18
Quotedmi@stone:newlisp$ apt-cache show newlisp

Package: newlisp

Status: install ok installed

Priority: optional

Section: optional

Installed-Size: 1904

Maintainer: Dmitry Chernyak <losthost>

Architecture: i386

Version: 9.0.18

Depends: libc6 (>= 2.3.6-6), libncurses5 (>= 5.4-5), libreadline5 (>= 5.2)

Suggests: wish

Description: Lisp-like general purpose scripting language

Currently package has dependencies as in "Depends:" above.

(note, that for versions prior to 9.0.18 for "sarge" there was a bug, which had bloking readline. fixed.)



Theese dependencies are generated automatically by Debian build scripts from linker info, manual work isn't required.

"apt" will automatically install them.



The tcl/tk "wish" is the other case, because it is optional (many systems needed newlisp but aren't require wish). Now I has include it into "Suggests:" tag. It will be shown by "apt-cache show newlisp", by "aptitude" and similar tools.
WBR, Dmi

Dmi

#19
Currently, debian package is builded against a  makefile_linux_readline on a build phase with
       /bin/cp makefile_linux makefile_linux.orig
        /bin/cp makefile_linux_readline makefile_linux
        $(MAKE) linux

and then some corrections are made in install phase:

- Debian build system needs a way to install all files relatively to $(DESTDIR) make's variable. So transformations are applied to Makefile:

datadir=/usr/share => to datadir=$(DESTDIR)/usr/share

etc.

- According to debian policy all documentation (also - support scripts, examples etc.) should go into /usr/share/doc/newlisp and subdirs - not in /usr/share/newlisp/...

- Also all "real" documentation files should be listed in /debian/docs file of source package

All theese corrections are preformed with other debian package building instructions in debian/rules file with supplement scripts "instprep" and "makedocs":

       /usr/bin/awk -f debian/instprep Makefile >Makefile.debian
        /usr/bin/awk -f debian/makedocs Makefile.debian >debian/docs
        find doc|grep -v '^doc$$' >>debian/docs
        $(MAKE) -f Makefile.debian install DESTDIR=$(CURDIR)/debian/newlisp
        cp util/* $(CURDIR)/debian/newlisp/usr/share/doc/newlisp/util
        cp examples/* $(CURDIR)/debian/newlisp/usr/share/doc/newlisp/examples
        cp examples/newlispdoc $(CURDIR)/debian/newlisp/usr/bin

If it is possible to have makefile for debian, that will not needed in theese corrections, it will be good.
WBR, Dmi

Lutz

#20
Thanks for all the work and scripts Dmitry and Nigel,



I will include a makefile_debian, which can be called as 'make debian'. This way the package maker script does not need to go through the routine of copying make files.



I can also make the change 'datadir=$(DESTDIR)/usr/share', it does not pose any problems when $(DESTDIR) is not defined in other environments.



Only those files should be distributed in the Debian install, which are distirbuted by 'make install'. The 'util' directory or files in it should not be installed. Even if we cannot have the same directory structure on all installations, the files distributed, should be identical.



I also reduced the 'make clean' part to less operations, there was still a lot of 'Borland C++' stuff in it which is not needed.



One problem which has to be solved is that 'newlisp-tk' is basically broken after the Debian installation because it cannot find the '/usr/share/newlisp/newlisp-tk/images' and '/usr/share/newlisp/doc/' and '/usr/share/newlisp/newlisp-tk' directories. Perhaps I can include something in the 'makefile_debian' script which will change those paths in the 'newlisp-tk.tcl' file when running the package maker.



In the 'control' files the 'Description:' for newLISP should read:



"newLISP is a scripting language for developing web applications and programs in general and in the domains of artificial intelligence (AI) and statistics."



The description should always be indentical to the text on the home age of http://newlisp.org">http://newlisp.org. I do not want to include further descriptions of newLISP in that file (like the features list, currently included).





Last not least we have to check if the Debian policy for distribution directories is the same on UBUNTU if not, we have to make different 'rules' and 'instprep' files for the UBUNTU distribution.



thanks again for helping



Lutz



ps: I am surpised that after all this years there is no standard for directories on Linux to install applications.

Dmi

#21
Quote from: "Lutz"I will include a makefile_debian, which can be called as 'make debian'. This way the package maker script does not need to go through the routine of copying make files.

Very good news! Thanks, Lutz!
Quote from: "Lutz"I can also make the change 'datadir=$(DESTDIR)/usr/share', it does not pose any problems when $(DESTDIR) is not defined in other environments.

Not only "datadir" but all the installation paths, i.e. "bindir", "mandir" and all others if they will appears.
Quote from: "Lutz"Only those files should be distributed in the Debian install, which are distirbuted by 'make install'. The 'util' directory or files in it should not be installed. Even if we cannot have the same directory structure on all installations, the files distributed, should be identical.

Well, but, IMHO, it would be nice, if newlisp.vim and similar "user-interesting" files will be included in a regular install process too.
Quote from: "Lutz"One problem which has to be solved is that 'newlisp-tk' is basically broken after the Debian installation because it cannot find the '/usr/share/newlisp/newlisp-tk/images' and '/usr/share/newlisp/doc/' and '/usr/share/newlisp/newlisp-tk' directories. Perhaps I can include something in the 'makefile_debian' script which will change those paths in the 'newlisp-tk.tcl' file when running the package maker.

Hmm... /usr/share/newlisp/newlisp-tk/images/* seems to be present and this seems to be a right place. (I'll double check this)

/usr/share/newlisp/doc/ should go to /usr/share/doc/newlisp (but perhaps we can make a symlink /usr/share/newlisp/doc -> /usr/share/doc/newlisp ?)
Quote from: "Lutz"In the 'control' files the 'Description:' for newLISP should read:



"newLISP is a scripting language for developing web applications and programs in general and in the domains of artificial intelligence (AI) and statistics."

The control file has a two description parts:

One, wich go just after a Description: -  is a _one_line_ short description for listings. Lutz, may U suggest a shorter one, which will fit one line?

Second - is a multiline descriptional part. It will be just as U wrote above.
Quote from: "Lutz"ps: I am surpised that after all this years there is no standard for directories on Linux to install applications.

Heh! Welcome to Linux ;-)

Dislike all the other systems, each linux distribution (RHEL, Debian, Slackware,...) is a separate system only with one kernel. And each has a separate author, which tries to make a system useful for a separate part of users in the world. :-)
WBR, Dmi

Lutz

#22
QuoteNot only "datadir" but all the installation paths, i.e. "bindir", "mandir" and all others if they will appears.


Do you mean like this?


# in Makefile
datadir=$(DESTDIR)/usr/share
bindir=$(BINDIR)/usr/bin
mandir=$(MANDIR)/usr/share/man


At least on Mac OS X and FreeBSD these definitions don't interfere with the normal 'make install' routine, so I can include them.


Quote/usr/share/newlisp/doc/ should go to /usr/share/doc/newlisp (but perhaps we can make a symlink /usr/share/newlisp/doc -> /usr/share/doc/newlisp ?)


A symlink seems to be a good idea.


QuoteHmm... /usr/share/newlisp/newlisp-tk/images/* seems to be present and this seems to be a right place. (I'll double check this)


Yes, if those still work that would be great, they seem have to worked for Nigel?


QuoteThe control file has a two description parts:

One, wich go just after a Description: - is a _one_line_ short description for listings. Lutz, may U suggest a shorter one, which will fit one line?

Second - is a multiline descriptional part. It will be just as U wrote above.


One-line description:

"newLISP is a LISP like, general purpose scripting language."



Longer description:

"newLISP is a scripting language for developing web applications and programs in general and in the domains of artificial intelligence (AI) and statistics."





Lutz

nigelbrown

#23
For anyone who would like to join Ubuntu testing/building but needs to stay in windows I found that the free VMWare VMserver (from http://www.vmware.com/download/server">http://www.vmware.com/download/server ) runs the Ubuntu 6.10 virtual machine (from http://www.vmware.com/vmtn/appliances/directory/693">http://www.vmware.com/vmtn/appliances/directory/693 ) well - I'm typing this on Ubuntu running inside WinXP and have just built the 9.0.18 deb on the system (after installing required dev libs and build packages) - these were

build-essential

libreadline5-dev

fakeroot

devscripts (?needed)

debhelper

tk8.3  (if you want to run newlisp-tk)



Lutz - newlisp-tk seems to run fine, what would I not see if images weren't found as queried above? newlisp-tk of course points to wrong docs place.



Regards

Nigel



[Why Ubuntu on WinXP - unfortunately I've some graphics stuff using Win progs that I've not learnt to do with Blender ( http://www.blender3d.org">www.blender3d.org ) yet]

Dmi

#24
Quote from: "Lutz"Do you mean like this?
# in Makefile
datadir=$(DESTDIR)/usr/share
bindir=$(BINDIR)/usr/bin
mandir=$(MANDIR)/usr/share/man


No, really so:
# in Makefile
datadir=$(DESTDIR)/usr/share
bindir=$(DESTDIR)/usr/bin
mandir=$(DESTDIR)/usr/share/man

The package builder sets DESTDIR to temporary filesystem tree and then archive this tree into a package.


Quote from: "Lutz"A symlink seems to be a good idea.

done


Quote from: "Lutz"One-line description:

"newLISP is a LISP like, general purpose scripting language."



Longer description:

"newLISP is a scripting language for developing web applications and programs in general and in the domains of artificial intelligence (AI) and statistics."

corrected



Thanks, Lutz!

The corrected version is under the testing now. Will be published till the end of the weekend.



P.S. And what about newlisp.vim etc.? It will be sadly (I think) if customers, instaling a package will also be need to download a source to extract such additional gooddies from there.
WBR, Dmi

Dmi

#25
All major work seems to be done now.

The distro of 9.0.19 is now ready for sarge/i386, etch/i386, etch/amd64 versions.

Also sarge/source and etch/source are ready for rebuild.



Lutz, take a look under "util" folder, please (dpkg -L newlisp) - can I leave this?



Nigel, can you build it on Ubuntu?
WBR, Dmi

Lutz

#26
Thanks Dmity, I don't have access to a PC at the moment, but will look at everything tomorrow.



Lutz

nigelbrown

#27
Hi



9.0.19 builds fine on Ubuntu 6.10 Desktop viz.

ubuntu@ubuntu:~$ newlisp

newLISP v.9.0.19 on Linux, execute 'newlisp -h' for more info.



> (exit)

ubuntu@ubuntu:~$ newlisp-tk

newLISP v.9019 listening on port 64001

Connected to 127.0.0.1 on Tue Jan 30 09:00:09 2007



The help menu in newlisp-tk finds the manual and tk ref. Build output below.

Thanks Dmi

Regards

Nigel

Build output:



ubuntu@ubuntu:~/newlisp-9.0.19$ fakeroot dpkg-buildpackage

dpkg-buildpackage: source package is newlisp

dpkg-buildpackage: source version is 9.0.19

dpkg-buildpackage: source changed by Dmitry Chernyak <dmi>

dpkg-buildpackage: host architecture i386

dpkg-buildpackage: source version without epoch 9.0.19

 debian/rules clean

dh_testdir

dh_testroot

rm -f build-stamp configure-stamp

# Add here commands to clean up after the build process.

/usr/bin/make clean

make[1]: Entering directory `/home/ubuntu/newlisp-9.0.19'

rm *~ *.bak *.o *.obj *.map core *.tgz TEST

rm: cannot remove `*~': No such file or directory

rm: cannot remove `*.bak': No such file or directory

rm: cannot remove `*.o': No such file or directory

rm: cannot remove `*.obj': No such file or directory

rm: cannot remove `*.map': No such file or directory

rm: cannot remove `core': No such file or directory

rm: cannot remove `*.tgz': No such file or directory

rm: cannot remove `TEST': No such file or directory

make[1]: [clean] Error 1 (ignored)

rm newlisp-tk/*~ doc/*~ util/*~ examples/*~ modules/*~

rm: cannot remove `newlisp-tk/*~': No such file or directory

rm: cannot remove `doc/*~': No such file or directory

rm: cannot remove `util/*~': No such file or directory

rm: cannot remove `examples/*~': No such file or directory

rm: cannot remove `modules/*~': No such file or directory

make[1]: [clean] Error 1 (ignored)

rm newlisp-tk/*.bak doc/*.bak util/*.bak examples/*.bak modules/*.bak

rm: cannot remove `newlisp-tk/*.bak': No such file or directory

rm: cannot remove `doc/*.bak': No such file or directory

rm: cannot remove `util/*.bak': No such file or directory

rm: cannot remove `examples/*.bak': No such file or directory

rm: cannot remove `modules/*.bak': No such file or directory

make[1]: [clean] Error 1 (ignored)

chmod 644 *.h *.c *.lsp Makefile makefile*

chmod: cannot access `*.lsp': No such file or directory

make[1]: [clean] Error 1 (ignored)

chmod 755 build configure examples/*

chmod 644 doc/* modules/*.lsp examples/*.lsp examples/*.html

chmod 644 newlisp-tk/*

chmod 755 newlisp-tk/*.bat newlisp-tk/*.tcl

chmod 755 newlisp-tk/images

chmod 644 newlisp-tk/images/*

make[1]: Leaving directory `/home/ubuntu/newlisp-9.0.19'

rm newlisp

rm: cannot remove `newlisp': No such file or directory

make: [clean] Error 1 (ignored)

dh_clean

 dpkg-source -b newlisp-9.0.19

dpkg-source: building newlisp in newlisp_9.0.19.tar.gz

dpkg-source: building newlisp in newlisp_9.0.19.dsc

 debian/rules build

dh_testdir

# Add here commands to configure the package.

touch configure-stamp

dh_testdir

# Add here commands to compile the package.

/usr/bin/make linux_debian

make[1]: Entering directory `/home/ubuntu/newlisp-9.0.19'

make -f makefile_debian

make[2]: Entering directory `/home/ubuntu/newlisp-9.0.19'

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX newlisp.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-symbol.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-math.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-list.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-liststr.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-string.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-filesys.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-sock.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-import.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-xml.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-web.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-matrix.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX nl-debug.c

gcc -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DREADLINE -DLINUX pcre.c

gcc newlisp.o nl-symbol.o nl-math.o nl-list.o nl-liststr.o nl-string.o nl-filesys.o nl-sock.o nl-import.o nl-xml.o nl-web.o nl-matrix.o nl-debug.o pcre.o -g -lm -ldl -lreadline -lncurses -o newlisp

strip newlisp

make[2]: Leaving directory `/home/ubuntu/newlisp-9.0.19'

make[1]: Leaving directory `/home/ubuntu/newlisp-9.0.19'

#docbook-to-man debian/newlisp.sgml > newlisp.1

touch build-stamp

 debian/rules binary

dh_testdir

dh_testroot

dh_clean -k

dh_installdirs

# Add here commands to install the package into debian/newlisp.

/usr/bin/awk -f debian/instprep Makefile >Makefile.debian

/usr/bin/awk -f debian/makedocs Makefile.debian >debian/docs

find doc|grep -v '^doc$' >>debian/docs

/usr/bin/make -f Makefile.debian install DESTDIR=/home/ubuntu/newlisp-9.0.19/debian/newlisp

make[1]: Entering directory `/home/ubuntu/newlisp-9.0.19'

install -d /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp

install -d /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/newlisp-tk/images

install -m 755 newlisp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/bin/newlisp

install -m 755 newlisp-tk/newlisp-tk.tcl /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/bin/newlisp-tk

install -m 644 init.lsp.example /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/init.lsp.example

install -m 644 examples/httpd-conf.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/httpd-conf.lsp

install -m 644 examples/link.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/link.lsp

install -m 644 examples/tcltk.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/tcltk.lsp

install -m 644 examples/syntax.cgi /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/syntax.cgi

install -m 644 examples/newlispdoc /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/newlispdoc

install -m 644 modules/mysql.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/mysql.lsp

install -m 644 modules/mysql5.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/mysql5.lsp

install -m 644 modules/pop3.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/pop3.lsp

install -m 644 modules/ftp.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/ftp.lsp

install -m 644 modules/infix.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/infix.lsp

install -m 644 modules/smtp.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/smtp.lsp

install -m 644 modules/odbc.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/odbc.lsp

install -m 644 modules/cgi.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/cgi.lsp

install -m 644 modules/sqlite3.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/sqlite3.lsp

install -m 644 modules/stat.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/stat.lsp

install -m 644 modules/gmp.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/gmp.lsp

install -m 644 modules/postscript.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/postscript.lsp

install -m 644 modules/unix.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/unix.lsp

install -m 644 modules/zlib.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/zlib.lsp

install -m 644 doc/COPYING /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/COPYING

install -m 644 doc/CREDITS /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/CREDITS

install -m 644 doc/newlisp_manual.html /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/newlisp_manual.html

install -m 644 doc/newlisp_index.html /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/newlisp_index.html

install -m 644 doc/manual_frame.html /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/manual_frame.html

install -m 644 doc/CodePatterns.html /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/CodePatterns.html

install -m 644 newlisp-tk/newlisp-tk.html /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/newlisp-tk.html

install -m 644 newlisp-tk/*.lsp /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/newlisp-tk/

install -m 644 newlisp-tk/images/* /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/newlisp/newlisp-tk/images/

install -m 644 doc/newlisp.1 /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/man/man1/newlisp.1

install -m 644 doc/newlisp-tk.1 /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/man/man1/newlisp-tk.1

make[1]: Leaving directory `/home/ubuntu/newlisp-9.0.19'

for i in newlisp.vim newlisp.jsf types.c sql.c; do cp util/$i /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/util; done

cp examples/* /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/share/doc/newlisp/examples

cp examples/newlispdoc /home/ubuntu/newlisp-9.0.19/debian/newlisp/usr/bin

dh_testdir

dh_testroot

dh_installchangelogs

dh_installdocs

dh_installexamples

dh_installman

dh_link

dh_strip

dh_compress

dh_fixperms

dh_installdeb

dh_shlibdeps

dh_gencontrol

dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}

dh_md5sums

dh_builddeb

dpkg-deb: building package `newlisp' in `../newlisp_9.0.19_i386.deb'.

tar: -: file name read contains nul character

 dpkg-genchanges

dpkg-genchanges: including full source code in upload

dpkg-buildpackage: full upload; Debian-native package (full source is included)

Lutz

#28
Thanks Nigel and Dmitry,



The output from: dpkg-buildpackage looks Ok to me.





I installed Dmitry's newlisp_9.0.19_i386.deb on a UBUNTU life CD 6.10 with following results/output:


~> sudo dpkg -i Desktop/newlisp_9.0.19_i386.deb
Selecting previously deselected package newlisp.
(Reading database ... 90842 files and directories currently installed.)
Unpacking newlisp (from .../newlisp_9.0.19_i386.deb) ...
dpkg: dependency problems prevent configuration of newlisp:
 newlisp depends on libreadline5 (>= 5.2); however:
  Version of libreadline5 on system is 5.1-7build1.
dpkg: error processing newlisp (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 newlisp
~> newlisp
newLISP v.9.0.19 on Linux, execute 'newlisp -h' for more info.

>


The libreadline issue worked out Ok, and newLISP is running fine. But why do I get this, I believe, I installed the etch-package or is my UBUNTO version 6.10 after Etch?



Man pages for newlisp and newlisp-tk worked fine. newlisp-tk would not run because of missing 'wish', wich is then suggested to install by the error output.



Then I inspected the directories:


/usr/share/newlisp> ls
cgi.lsp  gmp.lsp           link.lsp    newlisp-tk      smtp.lsp     tcltk.lsp
COPYING  httpd-conf.lsp    mysql5.lsp  odbc.lsp        sqlite3.lsp  unix.lsp
CREDITS  infix.lsp         mysql.lsp   pop3.lsp        stat.lsp     zlib.lsp
ftp.lsp  init.lsp.example  newlispdoc  postscript.lsp  syntax.cgi


The doc /usr/share/newlisp/doc directory is missing. newlisp-tk will look for the following files:


/usr/share/newlisp/doc/newlisp_manual.html
/usr/share/newlisp/doc/manual_frame.html
/usr/share/newlisp/doc/newlisp_index.html
/usr/share/newlisp/doc/newlisp-tk.html


I understand that Debian wants documentation in /usr/share/doc/newlisp. Then we need links to this place from /usr/share/newlisp/ so newlisp-tk can find the three files.



In /usr/share/doc/newlisp I found the following:


/usr/share/doc/newlisp> ls
changelog.gz       examples           MemoryManagement.html  newlisp-tk.html
CHANGES.gz         FILES.gz           newlisp.1.gz           README.Debian
CodePatterns.html  INSTALL.gz         newLISPdoc.html        syntax-help
COPYING.gz         keywords.txt       newlisp_index.html     TRU64BUILD
copyright          LOCALIZATION       newlisp_manual.html    util
CREDITS.gz         manual_frame.html  newlisp-tk.1


there are many files which do not belong here. The only files here should be those, that the 'make install' would put into /usr/share/newlisp/doc. These files are the following:


newlisp_manual.html
newlisp_index.html
newlisp-tk.html
manual_frame.html
CodePatterns.html


no other files should appear here. newlisp.1 and newlisp-tk.1 files are installed in some man directory. Other files here are directed towards developers. Editor support files are at http://newlisp.org">http://newlisp.org. The editor support files are available on http://newlisp.org">http://newlisp.org.



Thanks for the help, it looks like we are getting close to the final package.



Lutz

Lutz

#29
It seems that /usr/share/doc is not only standard on Debian Linux, but also on Mac OS X and FreeBSD. I wonder if this is the same on all LINUX?



Perhaps the installation should move documentation on all platforms to /usr/share/doc/newlisp and the references in newlisp-tk.tcl be changed?



Any comments?



Lutz