forgot to attach postgres.scm ...
Le Thu, 08 Apr 2010 20:53:17 +0200, Andy Wingo <wi...@pobox.com> a écrit : > Hi David, > > I'm happy to help, and glad to hear things are going OK. You probably > have the largest guile-gnome-using apps out there... Also, one of these > three lists is probably enough ;) :-) left guile-devel only this time > On Thu 08 Apr 2010 20:06, David Pirotte <da...@altosw.be> writes: > ... > I just downloaded > http://vychodil.inf.upol.cz/research/development/gtrees/download/gtrees-0.5-alpha.tar.bz2, > and it seems to compile fine against 2.0. I did a (load-extension > "./libgtrees" "define_gtrees_module") and that worked, and then > (use-modules (gtrees-module)) and that worked too. Yes. Just made things working both with guile-1.6 and guile-1.8 [on the same machine I mean], by changing the module definition as this [if others would like to do so...]: ;; -- (define-module (struct gtrees)) (let ((ef-ver (string->symbol (effective-version)))) (case ef-ver ((#{1.6}#) (dynamic-call "init_gtrees_module" (dynamic-link "/usr/local/lib/gtrees-0.3/libgtrees.so"))) (else (dynamic-call "init_gtrees_module" (dynamic-link "/usr/local/lib/gtrees-0.5/libgtrees.so"))) )) ;; -- > Perhaps you will be able to skip 1.8 ;-) But it should work with 1.8 as well. Well, as much as possible, due to the amount of work I have, I'll stick to debian packages until I finish the application I am working on, then I'll try 2.0 and guile-vm, I can't wait! but I have to :-( > > guile-1.8 and guile-pg, a prehistoric version which will remain so until > ^^ > No such luck with guile-pg, it will need patches. I even tried applying > debian's patches to see if that would help, but guile-pg uses gh.h. > Copying Thien-Thi, who appears to be the upstream: what is the right > thing to do here? Get it into a project on savannah in git hosting, no? If you remember, thanks to dsmith, on xchat, I could produce a guile-pg [debian] package patched that works with guile-1.8 [the problem was a dependency one: here is what I wrote to myself: ;;; ;;; Debian package [patching guile-pg-0.16] ;;; A] Getting the source cd ~/alto/admin/guile-pg apt-get build-dep guile-pg apt-get source guile-pg cd guile-pg-0.16 B] Changing the dependency towards guile-1.8 cd guile-pg-0.16/debian perform the following change < Build-Depends: debhelper (>> 4.0), quilt, libpq-dev, guile-1.6-dev > Build-Depends: debhelper (>> 4.0), quilt, libpq-dev, guile-1.8-dev But I also wrote something about patching libpostgres.c and .h, [postgres-7.4: the only SW that's still is not a debian package [in my dependency 'little tower'] but a manual compilation [and they are @ 8.4 now, so quite late on this side too ...] can't find right now but if people are interested i'll make that info avalable too, let me know. C] Then I changed the module definition [attached] ;; -- So I was wondering, in order to be as practicle as possible and save 'lost' debugging time, is it possible to install both guile-gnom0 and guile-gnome2 on the same machine ? I think I tried and didn't work, but I might be wrong. That would fantastic because I could right away porting the development I am doing and later on port the old apps. Cheers, David
;;; postgres.scm --- wrap PostgreSQL libpq ;; Guile-pg - A Guile interface to PostgreSQL ;; Copyright (C) 1999,2000,2002,2003 Free Software Foundation, Inc. ;; ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;; Author: Ian Grant <ian.gr...@cl.cam.ac.uk> ;; Load the C interface functions (define-module (database postgres)) (let ((ef-ver (string->symbol (effective-version)))) (case ef-ver ((#{1.6}#) (dynamic-call "init_postgres" (dynamic-link "/usr/alto/admin/guile-pg/guile-1.6/libpostgres.so"))) (else (dynamic-call "init_postgres" (dynamic-link "/usr/alto/admin/guile-pg/guile-1.8/libpostgres.so"))) )) #! (cond ;; maybe this is already done ((and (defined? 'pg-guile-pg-loaded) pg-guile-pg-loaded)) ;; use app-module loader if there ((defined? 'make-app-module-loader) ((make-app-module-loader (lambda (name) (car (list `("~A/guile-pg/0.16" ,(assq-ref %guile-build-info 'libdir))))) (lambda (name) `("lib~A" ,name)) (lambda (name) `("init_~A" ,name))) "postgres")) ;; primitive way (else (dynamic-call "init_postgres" (dynamic-link (car (list (format #f "~A/guile-pg/0.16/libpostgres.so" (assq-ref %guile-build-info 'libdir)))))))) !# (export pg-guile-pg-loaded) ; ugh (export pg-connectdb) (export pg-connection?) (export pg-setdb) (export pg-reset) (export pg-get-client-data) (export pg-set-client-data!) (export pg-exec) (export pg-result?) (export pg-error-message) (export pg-get-db) (export pg-get-user) (export pg-get-pass) (export pg-get-host) (export pg-get-port) (export pg-get-tty) (export pg-get-options) (export pg-get-connection) (export pg-backend-pid) (export pg-result-status) (export pg-ntuples) (export pg-nfields) (export pg-cmdtuples) (export pg-oid-status) (export pg-oid-value) (export pg-fname) (export pg-fnumber) (export pg-ftype) (export pg-fsize) (export pg-getvalue) (export pg-getlength) (export pg-getisnull) (export pg-binary-tuples?) (export pg-fmod) (export pg-guile-pg-version) (export pg-getline) (export pg-putline) (export pg-endcopy) (export pg-trace) (export pg-untrace) (export pg-make-print-options) (export pg-print) (export pg-lo-creat) (export pg-lo-open) (export pg-lo-unlink) (export pg-lo-get-connection) (export pg-lo-get-oid) (export pg-lo-tell) (export pg-lo-seek) (export pg-lo-read) (export pg-lo-import) (export pg-lo-export) (define-public (pg-guile-pg-module-config-stamp) "Sun Apr 15 15:55:56 UTC 2007") (define-public (pg-guile-pg-module-version) "0.16") ;; backward compatibility (not documented to encourage ;; usage of symbols in new code) ;; ;; WARNING: these will go away! (define-public PGRES_EMPTY_QUERY 'PGRES_EMPTY_QUERY) (define-public PGRES_COMMAND_OK 'PGRES_COMMAND_OK) (define-public PGRES_TUPLES_OK 'PGRES_TUPLES_OK) (define-public PGRES_COPY_OUT 'PGRES_COPY_OUT) (define-public PGRES_COPY_IN 'PGRES_COPY_IN) (define-public PGRES_BAD_RESPONSE 'PGRES_BAD_RESPONSE) (define-public PGRES_NONFATAL_ERROR 'PGRES_NONFATAL_ERROR) (define-public PGRES_FATAL_ERROR 'PGRES_FATAL_ERROR) ;;; postgres.scm ends here