You can find "debian" directory for packaging newLisp to .deb at
//http://en.feautec.pp.ru/SiteNews/NewLispDebian
Instructions about packaging are in the package's README.Debian file
Score.
Debian apt repository now available:
For sarge:
deb http://en.feautec.pp.ru/debian/ sarge main
deb-src http://en.feautec.pp.ru/debian/ sarge main
For etch:
deb http://en.feautec.pp.ru/debian/ etch main
deb-src http://en.feautec.pp.ru/debian/ etch main
Current version is 8.9.3.
now "util" directory (with newlisp.vim) is included under /usr/share/newlisp/doc
Just wondering ... is a binary Debian package usable in Ubuntu Linux? or would it have to be made on Ubuntu Linux? or does Ubuntu have their own package format?
Ubuntu Linux seems to be very popular, it would be great to have a package or package maker script for this?
Lutz
The deb format is the same.
I suspect, that "etch" version can be safely used uder Ubuntu, but we need a volunteer to test.
Rebuilding from source package should be ok anyway (very simple procedure).
If anyone have a questions about Debian/Ubuntu/Knoppix I am ready to help.
I would like to help to get newlisp into Ubuntu and as a first try on Ubuntu made a .deb with checkinstall run on Ubuntu 6.06 LTS Desktop ( .deb is linked to on this page http://users.cyberone.com.au/nbrown/newlisp/rpms.html ).
I looked at the process for package inclusion in Ubuntu discussed here https://wiki.ubuntu.com/MOTU/Packages/New . From what is said here https://wiki.ubuntu.com/MOTU/Packages/Candidates if a package is alredy in Debian then is could be requested across into Ubuntu with a bug report. So the question is should the aim be for Ubuntu or into Debian first? Dmi - what do you think? If Ubuntu is the primary target then listing newlisp with supporting reasons for inclusion on https://wiki.ubuntu.com/MOTU/Packages/Candidates appears the first step.
I'll be running Ubuntu 6.06 LTS and latest stable (eg 6.10 currently) Desktops on Intel 32bit platforms so I can test or build. To approach Member status for a developer requires a significant involvement (2 months+ of demonstrated contributions) which is beyond me at this time so advocacy of newlisp to Ubuntu packagers with offer of as much help to them as possible from the newlisp community seems to be the way to go.
Nigel
There is somebody who has submitted a newLISP package to FreeBSD. I think 'Stanislav Sedov' is his name. Pehaps he has some ideas.
The fact that newLISP is submitted/accepted to FreeBSD ma be another good reason by itself for acceptance to other OS's and distributions. It went there through several iterations of submission making changes etc. See this link:
http://portsmon.freebsd.org/portoverview.py?category=lang&portname=newlisp
The 9.1 release is scheduled for February 15th, so even if it takes 2 months, it would still come close to the release date.
Meanwhile I updated the http://newlisp.org/index.cgi?page=Downloads page to reflect the availability of an Ubuntu package.
Lutz
ps: other reasons packagers might like to hear is: (1) small size (2) good documentation -> fits into Ubuntu philosophy
The sarge .deb file of 9.0.0 linked from the newlisp downloads page installs on Ubuntu 6.10 Intel. The etch .deb won't install because it needs a slightly newer readline5 version.
Hello guys! Happy New Year!
I'm slightly far away from my computers at holidays...
Nigel, I think that newlisp is definitely needed in Debian, because many servers are running it now (and many my servers too :-).
Unfortunately, I'm afraid that in case of bug reports I'll not be able to strictly maintain the package alone because of slightly unstable (but not bad :-) my current pesonal situation.
Does "dpkg-buildpackage" on my source package makes the Ubuntu binary well? If so, we can try to share the responsibility. In this case I'll try to submit newlisp into a Debian.
Meanwhile I also was able to build a debian package on Ubuntu using the fantastic Checkinstall program Nigel recommended. Trying Dmity's script it could not find the command 'fakeroot'.
As things are so easy I will produce for each mayor release a Debian package made on the latest version on Ubuntu and with a standardized format for the descriptive fields. As Dmitry pointed out it should run on all other Debian system as they use the same libraries.
I would be glad if one of you or both could help to submit it to Ubuntu and Debian.
Lutz
Hi Lutz and Dmi
I am happy to coordinate advocacy of newlisp for Ubuntu inclusion - I would see the steps as
1.get dpkg-buildpackage doing Ubuntu packages - checkinstall works well but may not be able to provide all the expected ubuntu details
2. put a newlisp section into the https://wiki.ubuntu.com/MOTU/Packages/Candidates page (simultaneous with 1.)
3. liaise with/help any Ubuntu MOTU (defined at https://wiki.ubuntu.com/MOTU) to complete inclusion into Ubuntu (this could lead me towards MOTU I expect)
If newlisp was also progressed toward debian inclusion and got into debian first then moving it across to Ubuntu would follow.
I'll look at dpkg-buildpackage and fakeroot on Ubuntu and report back (anyone else wanting to do that feel free to also try )
Nigel
Thanks Nigel, this is the best approach
Lutz
... also, very welcome to newLISP radix42/David
Lutz
Quote from: "Dmi"
Does "dpkg-buildpackage" on my source package makes the Ubuntu binary well? If so, we can try to share the responsibility. In this case I'll try to submit newlisp into a Debian.
How do you use dpkg-buildpackage ? The man pages for it weren't enough for me. I've downloaded your source package and extracted it - where now? as I'm new to building a deb. (suggest where to find goods docs on doing it if explanation isn't appropriate here)
I tried the 9.0.16 etch binary deb on Ubuntu but it won't install as it wants readline >=5.2 while ubuntu 6.10 has 5.1-7 as standard.
Nigel
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
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
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$
Quote
dmi@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.
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.
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. 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.
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. :-)
Quote
Not 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.
Quote
Hmm... /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?
Quote
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.
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
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 ) runs the Ubuntu 6.10 virtual machine (from 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 ( www.blender3d.org ) yet]
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.
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?
Thanks Dmity, I don't have access to a PC at the moment, but will look at everything tomorrow.
Lutz
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)
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. The editor support files are available on http://newlisp.org.
Thanks for the help, it looks like we are getting close to the final package.
Lutz
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
In Slackware and Zenwalk Linux the docs are also installed in '/usr/share/doc/<package>'. (In fact, '/usr/share/doc' is symlinked to '/usr/doc'.)
These distributions sometimes also provide a version number. So the directory would become '/usr/share/doc/newlis-9.0.19', for example. Most packages are stored without this version number, though.
Peter
Thanks Peter, the install will then be as follows:
usr/share/newlisp> ls -ltr
total 448
-rw-r--r-- 1 root wheel 3153 Jan 30 15:14 zlib.lsp
-rw-r--r-- 1 root wheel 7798 Jan 30 15:14 unix.lsp
-rw-r--r-- 1 root wheel 945 Jan 30 15:14 tcltk.lsp
-rwxr-xr-x 1 root wheel 6166 Jan 30 15:14 syntax.cgi
-rw-r--r-- 1 root wheel 17070 Jan 30 15:14 stat.lsp
-rw-r--r-- 1 root wheel 10866 Jan 30 15:14 sqlite3.lsp
-rw-r--r-- 1 root wheel 3065 Jan 30 15:14 smtp.lsp
-rw-r--r-- 1 root wheel 28185 Jan 30 15:14 postscript.lsp
-rw-r--r-- 1 root wheel 9715 Jan 30 15:14 pop3.lsp
-rw-r--r-- 1 root wheel 16431 Jan 30 15:14 odbc.lsp
-rwxr-xr-x 1 root wheel 7717 Jan 30 15:14 newlispdoc
-rw-r--r-- 1 root wheel 13104 Jan 30 15:14 mysql5.lsp
-rw-r--r-- 1 root wheel 7024 Jan 30 15:14 mysql.lsp
-rw-r--r-- 1 root wheel 2817 Jan 30 15:14 link.lsp
-rw-r--r-- 1 root wheel 1730 Jan 30 15:14 init.lsp.example
-rw-r--r-- 1 root wheel 3954 Jan 30 15:14 infix.lsp
-rw-r--r-- 1 root wheel 2087 Jan 30 15:14 httpd-conf.lsp
-rw-r--r-- 1 root wheel 15792 Jan 30 15:14 gmp.lsp
-rw-r--r-- 1 root wheel 4366 Jan 30 15:14 ftp.lsp
-rw-r--r-- 1 root wheel 5923 Jan 30 15:14 cgi.lsp
-rw-r--r-- 1 root wheel 5797 Jan 30 15:14 CREDITS
-rw-r--r-- 1 root wheel 15423 Jan 30 15:14 COPYING
drwxr-xr-x 10 root wheel 340 Jan 30 15:14 newlisp-tk
/usr/share/newlisp> cd ../doc/newlisp/
/usr/share/doc/newlisp> ls -ltr
total 1872
-rw-r--r-- 1 root wheel 721320 Jan 30 15:14 newlisp_manual.html
-rw-r--r-- 1 root wheel 28453 Jan 30 15:14 newlisp_index.html
-rw-r--r-- 1 root wheel 82212 Jan 30 15:14 newlisp-tk.html
-rw-r--r-- 1 root wheel 775 Jan 30 15:14 manual_frame.html
-rw-r--r-- 1 root wheel 111763 Jan 30 15:14 CodePatterns.html
/usr/share/doc/newlisp>
this should then be good for Mac OS X, all BSDs and all Linux
Lutz
Hi Lutz
Re libreadline and 6.10 I'd found the 5.2 vs 5.1-7 issue when I tried Dmi's deb earlier :
Quote from: "nigelbrown"
I tried the 9.0.16 etch binary deb on Ubuntu but it won't install as it wants readline >=5.2 while ubuntu 6.10 has 5.1-7 as standard.
Nigel
which is why I went to building on Ubuntu. I tried install with gdebi which refused install with the mismatch.
If you like I'll upload an Ubuntu built deb to my site with the rpm's when you're happy with the directory layout. Currently what is there ( http://users.cyberone.com.au/nbrown/newlisp/rpms.html ) is :
"Ubuntu linux deb package made with checkinstall on Ubuntu 6.06 LTS Desktop newlisp-9.0.0_9.0.0-1_i386.deb".
Regards
Nigel
Thanks Nigel, I see packages made from the development releases rather as an exercise to get it right for 9.1.
Also, why is on your checkinstall packages always the version number repeated: newlisp-9.0.0_9.0.0-1_i386.deb should be just newlisp-9.0.0-1_i386.deb.
Lutz
It seems the only way to get a package right is to make it on the system it is targeted to and then offer it only for that system. So an UBUNTU package 6.06 should be made on an UBUNTU system 6.06 etc., including observing naming conventions for that distribution, etc.
Judging from the UBUNTU website their current distribution seems to be 6.10, which is what I was trying this morning (life CD) and got a similar error message for the readline lib you got on 6.06.
The 6.06 they label as a LTS (long term support) release, so may be thats the one we should use, I don't know, any UBUNTU experts on the board?
Lutz
I'm not an expert but I think you'd have to support both the LTS release, the 6.06 currently, to target web server admins and latest stable desktop, eg 6.10 currently, to target new and updating users. Slightly different groups but both would benefit.
Nigel
Quote from: "Lutz"
why is on your checkinstall packages always the version number repeated: newlisp-9.0.0_9.0.0-1_i386.deb should be just newlisp-9.0.0-1_i386.deb.
Lutz
It's not quite the version number repeated which is how it comes about.
Looking at the checkinstall script the default basename is the 'pwd' returned directory e.g. newlisp-9.0.0 and version 9.0.0 is probably from the makefile. Basically checkinstall default behaviour is to expect the build directory to be the packagename without version info i.e. newlisp. This can be over-ridden but I just used default behaviour.
Nigel
Quote from: "Lutz"
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:
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
>
libreadline conflict has prevented post-install script to make a symlink /usr/share/newlisp/doc -> /usr/share/doc/newlisp
I'll investigate, how can I fix a libreadline compatibility version number independently of one currently installed. I suspect, this then makes etch and ubuntu packages binary compatible, because none of other libs (but libc) are used.
Quote from: "Lutz"
Then I inspected the directories:
......
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. The editor support files are available on http://newlisp.org.
Hmmm... there is a slight difference between documentation on the newlisp and documentation on the system package, of newlisp.
For the latter, the documents such as
Quote
changelog.gz CHANGES.gz README.Debian INSTALL.gz copyright
are useful and descriptive. For ex., copyright information is suggested by Debian, changelog is a part of each debian package, that holds versioning information, newlisp's CHANGES - is very useful, because most users looks for changes perfectly here...
Also /usr/share/doc/[package]/ is often used to hold additional useful scripts, examples etc.
Directing the users to the site for the editor support files etc. is, probably a good way to rise up a site rating ;-) but is very unuseful for 'no-internet' installations, moreover they are already present in the source tarball :-
Probably the right structure can look like this:
dmi@stone:newlisp$ ls -R
.:
changelog.gz copyright docs/ manual util
CHANGES.gz CREDITS.gz examples/ README.Debian
./docs:
INSTALL.gz LOCALIZATION MemoryManagement.html newLISPdoc.html
./examples:
client link.lsp server udp-client.lsp
finger newlispdoc.gz sqlite3.cgi udp-server.lsp
form.cgi newLISP-Excel-Import.xls.gz sqlite.cgi upload.cgi
form.html newlisp-log.txt syntax.cgi.gz upload.html
httpd-conf.lsp opengl-demo.lsp.gz syntax-help xmlrpc.cgi.gz
index.html prodcons.lsp tcltk.lsp xmlrpc-server.gz
./manual:
CodePatterns.html newlisp_index.html newlisp-tk.html
manual_frame.html newlisp_manual.html
./util:
keywords.txt newlisp.jsf.gz newlisp.vim.gz sql.c types.c
and then we can do a symlink
/usr/share/newlisp/doc -> /usr/share/doc/newlisp/manual
There are files in the source distribution I do not want to have included in the binary distribution . As written yesterday I will move:
/usr/share/newlisp/doc to: /usr/share/doc/newlisp
then it is not necessary to link files. I also added newLISPdoc. So we come to the following Scheme:
/usr/share/newlisp> ls
COPYING infix.lsp newlispdoc stat.lsp
CREDITS init.lsp.example odbc.lsp syntax.cgi
cgi.lsp link.lsp pop3.lsp tcltk.lsp
ftp.lsp mysql.lsp postscript.lsp unix.lsp
gmp.lsp mysql5.lsp smtp.lsp zlib.lsp
httpd-conf.lsp newlisp-tk sqlite3.lsp
/usr/share/newlisp> cd ../doc/newlisp/
/usr/share/doc/newlisp> ls
CodePatterns.html newLISPdoc.html newlisp_index.html
manual_frame.html newlisp-tk.html newlisp_manual.html
/usr/share/doc/newlisp>
To this only what is absolutely required by UBUNTU should be added. I do not want to have example progams or any other docs in the package. I am not sure what the rules are for the COPYING and CREDITS files. I left them in the main /usr/share/newlisp directory because they are not strictly usage documentation, but if UBUNTU requires them in /usr/share/doc/newlisp we can move them there.
Thanks
Lutz
Looking through the "New Maintainer's Guide" for Debian packages it looks like the files COPYING and CREDITS should go into /usr/share/doc/newlisp. A README.Debian made by the packager person should also be included.
README.Debian will not be supplied by 'make install' but will be added to /usr/share/doc/newlisp by the packageing process.
So as of now we have the following contents after an install with the Debian package:
/usr/share/newlisp> ls
cgi.lsp link.lsp pop3.lsp tcltk.lsp
ftp.lsp mysql.lsp postscript.lsp unix.lsp
gmp.lsp mysql5.lsp smtp.lsp zlib.lsp
httpd-conf.lsp newlisp-tk sqlite3.lsp
infix.lsp newlispdoc stat.lsp
init.lsp.example odbc.lsp syntax.cgi
/usr/share/newlisp> cd ../doc/newlisp/
/usr/share/doc/newlisp> ls
README.Debian
COPYING CodePatterns.html newLISPdoc.html newlisp_index.html
CREDITS manual_frame.html newlisp-tk.html newlisp_manual.html
/usr/share/doc/newlisp>
All files with the exception of README.Debian are supplied by 'make install' README.Debian is supplied by the packager
Lutz
Thanks, Lutz!
Ok. Accepted. I'll correct all the stuff.
Nevertheless, some notes:
As I can see, all the 'COPYING' and 'CREDITS' files under /usr/share on my debian system are placed under /usr/share/doc, so I suggest you to move them there too.
Also 'changelog' - debian versioning info will be there, because it is a mandatory part of a debian "deb" package system. Unfortunately, it is meaningless at present because each time a new package is builded by a script.
Also I suggest you to include CHANGES, because it is a significant part of documentation for long living projects and there is no other sources of version compatibility information.
Also a README.Debian - a suggested filename for package maintainer's notes - probably will be there (completely rewritten) as a possible comments to rebuilding source package (utf-8 etc.)
Also, I point your attention again, that /usr/share/doc/newlisp is a package documentation in general - not a pure newlisp usage documentation... but if you prefer.... ;-)
Thanks again, I feel we are close to release :-)
Quote from: "Lutz"
All files with the exception of README.Debian are supplied by 'make install' README.Debian is supplied by the packager
I was too late with previous message :-))
Very cool!
Thanks Dmitry,
I will include a newLISP_90_Release_Notes.html file in mayor releases. This file will be handled by 'make install' and go into /usr/share/doc/newlisp too and will inform the user about changes in the new version.
Quote
Also 'changelog' - debian versioning info will be there
yes, supplied also by packager
Lutz
Source and binary packages for debian etch for newlisp 9.0.20 are published and ready for testing.
The only thing different from newlisp's "make install" is copying newlispdoc into /usr/bin - Lutz, what do you think about this?
Thanks very much Dmitry, I will try the packages tomorrow on UBUNTU 6.10, and perhaps Nigel can try on 6.06.
About newlispdoc: it will be part of the install in a future version. I still have to: (1) write a man page for it and (2) embed syntax.cgi in it as part of the program, they are small enough to combine them, (3) change the newLISPdoc.html documentation file (4) let the man page and newLISPdoc.html be reviewed/edited by somebody who speaks/writes English better than I do. I don't think I get to this until February 15th.
So we will not put it 9.1, but it will go into it in a a later version.
Lutz
1.Binary from dmi site - deb for etch 9.0.20 won't install on 6.06 using gdebi due to "Error: Dependency is not satisfiable: libc6". libc6 2.3.6 is installed according to Synaptic Package Manager
Dmi's deb has in control:
Package: newlisp
Version: 9.0.20
Section: optional
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.6-6), libncurses5 (>= 5.4-5), libreadline5 (>= 5.2)
Suggests: wish
Installed-Size: 1640
Maintainer: Dmitry Chernyak <losthost>
Description: newLISP is a LISP like, general purpose scripting language
newLISP is a scripting language for developing web applications and
programs in general and in the domains of artificial intelligence (AI)
and statistics.
Mine has:
Package: newlisp
Version: 9.0.20
Section: optional
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.6-6), libncurses5 (>= 5.4-5), libreadline5 (>= 5.2)
Suggests: wish
Installed-Size: 1640
Maintainer: Dmitry Chernyak <losthost>
Description: newLISP is a LISP like, general purpose scripting language
newLISP is a scripting language for developing web applications and
programs in general and in the domains of artificial intelligence (AI)
and statistics.
so can't see the difference re libc6 - but newlisp viewed in synaptic says depend is libc6 >=2.3.4-1?
See my built 6.06 deb at http://users.cyberone.com.au/nbrown/newlisp/newlisp_9.0.20_i386.deb
. I redownloaded Dmi's and got same error.
2.Build from source builds on 6.06 (see below), installs with gdebi without complaint, and runs:
nigel@nigel-ubuntu:~/newlisp-9.0.20$ newlisp
newLISP v.9.0.20 on Linux, execute 'newlisp -h' for more info.
> (exit)
nigel@nigel-ubuntu:~/newlisp-9.0.20$ newlisp-tk
(newlisp-tk comes up fine and can launch manual and tk manual)
Nigel
build:
nigel@nigel-ubuntu:~/newlisp-9.0.20$ fakeroot dpkg-buildpackage dpkg-buildpackage: source package is newlisp
dpkg-buildpackage: source version is 9.0.20
dpkg-buildpackage: source changed by Dmitry Chernyak <dmi>
dpkg-buildpackage: host architecture i386
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/newlisp-9.0.20'
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/nigel/newlisp-9.0.20'
rm newlisp
rm: cannot remove `newlisp': No such file or directory
make: [clean] Error 1 (ignored)
dh_clean
dpkg-source -b newlisp-9.0.20
dpkg-source: building newlisp in newlisp_9.0.20.tar.gz
dpkg-source: building newlisp in newlisp_9.0.20.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/nigel/newlisp-9.0.20'
make -f makefile_debian
make[2]: Entering directory `/home/nigel/newlisp-9.0.20'
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/newlisp-9.0.20'
make[1]: Leaving directory `/home/nigel/newlisp-9.0.20'
#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/makedocs Makefile >debian/docs
/usr/bin/make install DESTDIR=/home/nigel/newlisp-9.0.20/debian/newlisp
make[1]: Entering directory `/home/nigel/newlisp-9.0.20'
install -d /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp
install -d /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/newlisp-tk/images
install -m 755 newlisp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/bin/newlispinstall -m 755 newlisp-tk/newlisp-tk.tcl /home/nigel/newlisp-9.0.20/debian/newlisp/usr/bin/newlisp-tk
install -m 644 init.lsp.example /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/init.lsp.example
install -m 644 examples/httpd-conf.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/httpd-conf.lsp
install -m 644 examples/link.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/link.lsp
install -m 644 examples/tcltk.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/tcltk.lsp
install -m 755 examples/syntax.cgi /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/syntax.cgi
install -m 755 examples/newlispdoc /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/newlispdoc
install -m 644 modules/mysql.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/mysql.lsp
install -m 644 modules/mysql5.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/mysql5.lsp
install -m 644 modules/pop3.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/pop3.lsp
install -m 644 modules/ftp.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/ftp.lsp
install -m 644 modules/infix.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/infix.lsp
install -m 644 modules/smtp.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/smtp.lsp
install -m 644 modules/odbc.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/odbc.lsp
install -m 644 modules/cgi.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/cgi.lsp
install -m 644 modules/sqlite3.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/sqlite3.lsp
install -m 644 modules/stat.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/stat.lsp
install -m 644 modules/gmp.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/gmp.lsp
install -m 644 modules/postscript.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/postscript.lsp
install -m 644 modules/unix.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/unix.lsp
install -m 644 modules/zlib.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/zlib.lsp
install -m 644 doc/COPYING /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/COPYING
install -m 644 doc/CREDITS /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/CREDITS
install -m 644 doc/newlisp_manual.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/newlisp_manual.html
install -m 644 doc/newlisp_index.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/newlisp_index.html
install -m 644 doc/manual_frame.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/manual_frame.html
install -m 644 doc/CodePatterns.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/CodePatterns.html
install -m 644 doc/newLISPdoc.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/newLISPdoc.html
install -m 644 doc/newLISP-9.1-Release.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/newLISP-9.1-Release.html
install -m 644 newlisp-tk/newlisp-tk.html /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/doc/newlisp/newlisp-tk.html
install -m 644 newlisp-tk/*.lsp /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/newlisp-tk/
install -m 644 newlisp-tk/images/* /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/newlisp/newlisp-tk/images/
install -m 644 doc/newlisp.1 /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/man/man1/newlisp.1
install -m 644 doc/newlisp-tk.1 /home/nigel/newlisp-9.0.20/debian/newlisp/usr/share/man/man1/newlisp-tk.1
make[1]: Leaving directory `/home/nigel/newlisp-9.0.20'
cp examples/newlispdoc /home/nigel/newlisp-9.0.20/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
dh_md5sums
dh_builddeb
dpkg-deb: building package `newlisp' in `../newlisp_9.0.20_i386.deb'.
dpkg-genchanges
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload; Debian-native package (full source is included)
nigel@nigel-ubuntu:~/newlisp-9.0.20$
Following Dmitry's request newlispdoc will be part of packaged distributions starting newLISP version 9.1.
Syntax highlighting is now integrated into newlispdoc, so only newlispdoc needs to be installed in /usr/bin/newlispdoc. syntax.cgi is still in the source distribution to be installed in web sites for syntax highlighting, but needs not to be present in a normal binary install of newLISP.
The main newLISPdoc documentation has been changed to reflect this and there is also a man page. Comments, corrections and improvements to the text are greatly appreciated.
http://newlisp.org/newlispdoc-man-page.txt
http://newlisp.org/newLISPdoc.html
Lutz
ps: so far I have only tested the new newlispdoc on Mac OS X and FreeBSD
also: I have not had a chance yet to try Dmitry's or Nigel's Debian package, but assume that result will be similar on UBUNTO 6.10 as on UBUNTU 6.06. It seems that the package must be done on UBUNTU if submitted to UBUNTU because of the libc issues reported by Nigel.
I finally tried out the debian packages from Dmitry and Nigel (made with Dmitry's script).
Both packages install and run fin on UBUNTU 6.10, allthoug an error message appears for libreadline, everyting installs fine and runs:
/Desktop> sudo dpkg -i newlisp_9.0.20_i386.deb
Selecting previously deselected package newlisp.
(Reading database ... 92590 files and directories currently installed.)
Unpacking newlisp (from newlisp_9.0.20_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
/usr/share/newlisp> ls
cgi.lsp httpd-conf.lsp link.lsp newlispdoc pop3.lsp sqlite3.lsp tcltk.lsp
ftp.lsp infix.lsp mysql5.lsp newlisp-tk postscript.lsp stat.lsp unix.lsp
gmp.lsp init.lsp.example mysql.lsp odbc.lsp smtp.lsp syntax.cgi zlib.lsp
/usr/share/newlisp> cd /usr/share/doc/newlisp
/usr/share/doc/newlisp> ls
changelog.gz copyright newLISP-9.1-Release.html newlisp_manual.html
CodePatterns.html CREDITS.gz newLISPdoc.html newlisp-tk.html
COPYING.gz manual_frame.html newlisp_index.html
/usr/share/doc/newlisp>
I also tried making a package with checkinstall of tomorrows newLISP 9.1 version., and it also made a fine package, but with the files CREDITS and COPYING in unzipped state, which I like more. Can this be done on Dmitry's script too?
As mentioned in my previous post 9.1. will also contain /usr/bin/newlispdoc.
Lutz
Quote from: "Lutz"
I finally tried out the debian packages from Dmitry and Nigel (made with Dmitry's script).
Both packages install and run fin on UBUNTU 6.10, allthoug an error message appears for libreadline, everyting installs fine and runs:
dpkg: dependency problems prevent configuration of newlisp:
newlisp depends on libreadline5 (>= 5.2); however:
Version of libreadline5 on system is 5.1-7build1.
The only way to avoid this, which I know at present - is to rebuild from source on the system of your choice.
Quote from: "Lutz"
I also tried making a package with checkinstall of tomorrows newLISP 9.1 version., and it also made a fine package, but with the files CREDITS and COPYING in unzipped state, which I like more. Can this be done on Dmitry's script too?
Compression is made by dh_compress according to common Debian policy.
Fixed as you request. I think this isn't really conflict with policy.
Thanks Dmitry, I will release version 9.1 tonight and there will also be packages for UBUNTU. They install and run without any messages on UBUNTU 6.06-Dapper and 6.10-Etchy and with readline support.
You could offer Debian packages on your site which install/run on original Debian. If the gz-form is required for Debian then of course it must stay, if it does not violate their policy then rather the unzipped versions, but you decide.
Lutz
Release 9.1 is available as final proposed version as source and debian binaries.
All looking fine to me including COPYING and CREDITS.
I'll investigate the way to officially register this as debian package.
Any suggestions are welcome as usual :-)
My reading of Ubuntu packaging list was that if something is debian accepted then it can be included in Ubuntu by submitting 'bug report' that it's not in Ubuntu but in debian. This is possibily best way to Ubuntu
Nigel
Thanks Dmitry, the package installs with a libc 6.0 warning message on UBUNTU 6.06 when using dpkg but the installed files look fine and newLISP runs.
But using gdebi on UBUNTU will not allow installation because of the library issue. So it looks like for UBUNTU we definetely have to go with the package made for UBUNTU, which is Ok. I wonder how other Debian based distributions behave, i.e. SUSE.
Also to Nigel: on my UBUNTU 6.06 no installation suggestion comes up when using Firefox, this seems to be an advanced 6.10 feature targeted for UBUNTU 7.0. Lets hope it will work on future UBUNTU stable distributions, because it certainly is a nice feature.
Lutz
Hi Lutz
Quote from: "Lutz"
Thanks Dmitry, the package installs with a libc 6.0 warning message on UBUNTU 6.06 when using dpkg but the installed files look fine and newLISP runs.
On my Ubuntu 6.06 install as updated by 21Feb updates I install the deb using gdebi with no warnings at all.
Quote from: "Lutz"
Also to Nigel: on my UBUNTU 6.06 no installation suggestion comes up when using Firefox, this seems to be an advanced 6.10 feature targeted for UBUNTU 7.0. Lets hope it will work on future UBUNTU stable distributions, because it certainly is a nice feature.
Lutz
I still get the offer to install in 6.06 (updated as above) using firefox 1.5. Click on the deb gives offer to open with gdebi and when this is accepted the file downloads and gdebi offers to install it. Accepting offer has gdebi install with no libc warning.
Maybe you need to update your 6.06 using update manager? Do you have gdebi?
In summary newlisp installs fine on both my 6.06 and 6.10 systems.
Nigel
May be the difference is, that I am using the life CD without ever really installing it. But Firefox 1.6 and gebi are included in the life mode. Firefox doesn't offer me the install options, but I click on the package after downoading and then gdbi comes up.
Lutz
The debian package was modified to better satisfy the standards.
in brief:
- COPYING will not be included in the binary tree, because the using of "copyright" is suggested (according to lintian check, shown below), and because each debian installation has a copy of GPLv2 in standard place.
- tcltk.lsp will be installed as executable (another lintian warning)
- sqlite3.lsp has a corrected path to libsqlie3.so for compatibility to sqlite3 debian package.
- package versioning and build structure is modified to meet debian standard for non-native debian packages.
Below is the reference output of "lintian" - debian package policy checker, started on old newlisp deb package:
Quote
W: newlisp: extra-license-file usr/share/doc/newlisp/COPYING
N:
N: All license information should be collected in the debian/copyright
N: file. This usually makes it unnecessary for the package to install
N: this information in other places as well.
N:
N: Refer to Policy Manual, section 12.5 for details.
N:
W: newlisp: script-not-executable ./usr/share/newlisp/tcltk.lsp
N:
N: This file starts with the #! sequence that marks interpreted scripts,
N: but it is not executable.
And finally, newlisp 9.1.1 was packaged and is available from my repository.
Quote
- COPYING will not be included in the binary tree, because the using of "copyright" is suggested (according to lintian check, shown below), and because each debian
Yes, leave it out.
Quote
- tcltk.lsp will be installed as executable (another lintian warning)
Yes, should be installed with executable permissions.
Quote
- sqlite3.lsp has a corrected path to libsqlie3.so for compatibility to sqlite3 debian package.
No, absolutely not, sqlite3.lsp should stay with the same path and name. libsqlite2.so would suggest a binary shared library. sqlite3.lsp is an included piece of newLISP code, just like mysql.lsp. Please do not change the path or name of sqlite3.lsp.
Lutz
Quote from: "Lutz"
Quote
- sqlite3.lsp has a corrected path to libsqlie3.so for compatibility to sqlite3 debian package.
No, absolutely not, sqlite3.lsp should stay with the same path and name. libsqlite2.so would suggest a binary shared library. sqlite3.lsp is an included piece of newLISP code, just like mysql.lsp. Please do not change the path or name of sqlite3.lsp.
Lutz
Oh, no! Probably I was wrong with my english :-)
sqlite3.lsp itself is resists at usual place of course.
I just have corrected the path to "libsqlite3.so" shared library _in_the_code_ of sqlite3.lsp. Because no one in debian community has libsqlite3.so in /usr/local/lib ;-)
Oh, sorry I misunderstood, yes of course change to the correct path for libsqlite3.so. Many OSs, including MacOS X now install libsqlite3.dylib in /usr/lib by default.
For the next version I will move to the new library detection method, as used in crypto.lsp http://newlisp.org/code/modules/crypto.lsp.src.html this way we can accomodate several paths and make it right for everybody.
Lutz
Good improvement! Thanks!
So, I planing to send official request for including the package in the debian tree next week.
Thanks Dmitry, I tried Etch and Sarge packages on UBUNTU with the following results:
Sarge install on UBUNTU 6.06 LTS
ubuntu@ubuntu:~/Desktop$ sudo dpkg -i newlisp_9.1.1-2_i386.deb
Selecting previously deselected package newlisp.
(Reading database ... 67140 files and directories currently installed.)
Unpacking newlisp (from newlisp_9.1.1-2_i386.deb) ...
dpkg: dependency problems prevent configuration of newlisp:
newlisp depends on libreadline4 (>= 4.3-1); however:
Package libreadline4 is not installed.
dpkg: error processing newlisp (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
newlisp
ubuntu@ubuntu:~/Desktop$ newlisp
newlisp: error while loading shared libraries: libreadline.so.4: cannot open shared object file: No such file or directory
ubuntu@ubuntu:~/Desktop$
Etch install on UBUNTU 6.06 LTS
uubuntu@ubuntu:~/Desktop$ sudo dpkg -i newlisp_9.1.1-2_i386.deb
Selecting previously deselected package newlisp.
(Reading database ... 67140 files and directories currently installed.)
Unpacking newlisp (from newlisp_9.1.1-2_i386.deb) ...
dpkg: dependency problems prevent configuration of newlisp:
newlisp depends on libc6 (>= 2.3.6-6); however:
Version of libc6 on system is 2.3.6-0ubuntu20.
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
ubuntu@ubuntu:~/Desktop$ newlisp
newLISP v.9.1.1 on Linux, execute 'newlisp -h' for more info.
>
Both install all files corrrectly, but Sarge will not run because of missing libreadline.so.4 on the UBUNTU live CD. What Debian distribution/version did you use to make the packages?
Etch will use libreadline5 and then runs fine.
Lutz
Lutz, in common it's not really correct to use etch or sarge packages for Ubuntu. Ubuntu is somewhere in the middle of sarge and etch, with its own improvements.
The package for Ubuntu must be recompled from source.
Really, the procedure is simple:
You have to add in /etc/apt/sources.list
deb-src http://en.feautec.pp.ru/debian/ etch main
Also you have to install:
# apt-get install dpkg-dev fakeroot
And then
$ sudo apt-get update
$ apt-get source newlisp
$ cd newlisp-9.1.1
$ dpkg-buildpackage -rfakeroot
$ cd ..
$ sudo dpkg -i newlisp-9.1.1-.....deb
This is the righ way.
Really, I building by hands only etch-amd64 binary deb. Other branches (sarge-i386 and etch-i386) are always built by the same procedure, automated by a script.
Good news: next week I'll try to build and post Ubuntu native package (I got a volunteer :-)
Package is registered on mentors.debian.net.
The Request For a Sponsor was sent.
Thanks for the good work Dmitry
Lutz
Newlisp deb installs fine on Ubuntu 7.04 - the Feisty Fawn (upgraded to 7.04 by update-manager). However when first running newlisp-tk the font used (fixed size 14) looks a bit thready (see http://users.cyberone.com.au/nbrown/Screenshot-newLISP-tk%20v.1.37.png ). It looks better at different size (almost anything but 14) or different fixed font. Just a little aesthetic point but it makes newlisp-tk not look as good as it could - maybe a font other than fixed 14 could be specified for newlisp-tk console? I.e. in newlisp-tk change
set Ide(fontName) "fixed"
set Ide(fontSize) 14
I don't know how the font looks on other systems so fixed 14 may be the best all round even if it's a bit poor on Ubuntu.
Nigel
(just changed to Courier 15 and saved config file (Save Settings) for my use)