debian package for newLisp

Machine-specific discussion
Unix, Linux, OS X, OS/2, Windows, ..?
Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

debian package for newLisp

Post by Dmi »

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
WBR, Dmi

statik
Posts: 58
Joined: Thu Apr 14, 2005 1:12 am

Post by statik »

Score.
-statik

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

Debian apt repository now available:
For sarge:

Code: Select all

deb http://en.feautec.pp.ru/debian/ sarge main
deb-src http://en.feautec.pp.ru/debian/ sarge main
For etch:

Code: Select all

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.
WBR, Dmi

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

package updated

Post by Dmi »

now "util" directory (with newlisp.vim) is included under /usr/share/newlisp/doc
WBR, Dmi

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

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

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

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.
WBR, Dmi

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

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

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

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/portovervie ... me=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

radix42
Posts: 1
Joined: Fri Jan 05, 2007 8:04 pm
Location: Tucson, AZ
Contact:

Post by radix42 »

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.

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

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.
WBR, Dmi

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

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

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

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

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Thanks Nigel, this is the best approach

Lutz

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

... also, very welcome to newLISP radix42/David

Lutz

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

Dmi wrote: 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

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

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
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Currently

Code: Select all

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

Code: Select all

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;

Code: Select all

$(MAKE) linux
with

Code: Select all

$(MAKE) debian
The second question is: how would I link, this way:

Code: Select all

$(CC) $(OBJS) -g -lm -ldl -lreadline -ltermcap -o newlisp
or would I use this way:

Code: Select all

$(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
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

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
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

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.
WBR, Dmi

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

Currently, debian package is builded against a makefile_linux_readline on a build phase with

Code: Select all

        /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":

Code: Select all

        /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
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

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.

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

Lutz wrote: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!
Lutz wrote: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.
Lutz wrote: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.
Lutz wrote: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 ?)
Lutz wrote: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.
Lutz wrote: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
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Not only "datadir" but all the installation paths, i.e. "bindir", "mandir" and all others if they will appears.
Do you mean like this?

Code: Select all

# 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.
/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.
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?
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

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

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]

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

Lutz wrote:Do you mean like this?

Code: Select all

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

Code: Select all

# 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.
Lutz wrote:A symlink seems to be a good idea.
done
Lutz wrote: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

Locked