merging in master from kpe.io
authorRuss Tyndall <russ@acceleration.net>
Fri, 9 Oct 2015 15:30:40 +0000 (11:30 -0400)
committerRuss Tyndall <russ@acceleration.net>
Fri, 9 Oct 2015 15:30:40 +0000 (11:30 -0400)
17 files changed:
ChangeLog
NEWS
README
db-mysql/Makefile
db-oracle/oracle-sql.lisp
db-postgresql-socket/postgresql-socket-api.lisp
db-postgresql-socket/postgresql-socket-package.lisp
debian/changelog
debian/control
debian/copyright
debian/upload.sh [changed mode: 0755->0644]
debian/watch
doc/clsql.pdf
doc/html.tar.gz
doc/intro.xml
tests/README
uffi/Makefile

index 63a2b167499b171d7ad093b4bb6a86e39194ac8f..ccc8afcf33a6ca829802594f80b17fab9bb2e79e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+
+2015-08-12 Kevin Rosenberg <kevin@rosenberg.net>
+       * Version 6.6.3 release
+       * db-oracle/oracle-sql.lisp: Patch for PostgreSQL socket interface
+       for unicode characters. Thanks to Jason Melbye.
+       
 2015-06-02 Daniel KochmaƄski <dkochmanski@turtle-solutions.eu>
        * clsql.asd, sql/package.lisp: Add ECL compatibility fixes
        * sql/db-interface.lisp: Fix declaration typo
@@ -7,6 +13,11 @@
        operator / expression.  Needed for correct regex handling
        EG: [E "some string"]=> E'some string'
 
+2015-03-30 Kevin Rosenberg <kevin@rosenberg.net>
+       * Version 6.6.2 release
+       * db-oracle/oracle-sql.lisp: Remove extra hyphen, thanks to
+       Thomas Vossen
+       
 2015-03-24 Russ Tyndall <russ@acceleration.net>
        * sql/oodml.lisp: fixed call-next-method in the base of
        read-sql-value and replaced with a continuable
        * {uffi,db-mysql}/Makefile: remove -pie build hardening for
        which caused load issues for Linux Mint
 
+2015-03-18 Kevin Rosenberg <kevin@rosenberg.net>
+       * Version 6.6.1 release
+       * {uffi,db-mysql}/Makefile: Remove pie from build
+       hardening options for Debian/Ubuntu systems. Thanks to
+       DJ <jakep@arqux.com> and Russ Tyndall <russ@acceleration.net>
+
 2015-02-26 Kevin Rosenberg <kevin@rosenberg.net>
        * Version 6.6.0 release
        * {uffi,db-mysql}/Makefile: Add build hardening for Debian
diff --git a/NEWS b/NEWS
index d1e96f25f9eaca933445a72a760e3d1a5129078d..b69ad0003e8f0bc53eb5637ef6449996f2db9ec4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -36,7 +36,7 @@ well as the initial regression suite and most of the new
 documentation. He has contributed to many of the re-design decisions
 and new code for CLSQL.
 
-CLSQL's home is http://clsql.b9.com
+CLSQL's home is http://clsql.kpe.io
 
 Enjoy!
 
diff --git a/README b/README
index 3caff9f6076f1c81d267ba25bf115233c8314212..8fdfd89788b7aa24018534db65295363c7f604ab 100644 (file)
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ Rosenberg. It includes both functional and object oriented subsystems
 for data definition and manipulation as well as an integrated symbolic
 SQL syntax.
 
-CLSQL supports a number of RDBMS and uses the UFFI (http://uffi.b9.com)
+CLSQL supports a number of RDBMS and uses the UFFI (http://uffi.kpe.io)
 library for compatibility with Allegro CL, Lispworks, CMUCL, SBCL and
 OpenMCL.
 
@@ -14,7 +14,7 @@ in 2004, development of has stopped on these incorporated projects.
   - Paul Meurer's SQL/ODBC
   - Cadabra's Oracle interface
 
-CLSQL's home is http://clsql.b9.com.
+CLSQL's home is http://clsql.kpe.io.
 
 Documentation is available as a PDF file in doc/clsql.pdf and as HTML
 files in doc/html.tar.gz.
@@ -24,7 +24,7 @@ CONTRIBUTING
 ------------
 
 If you would like to report a bug please do so through the clsql
-mailing list. http://lists.b9.com/mailman/listinfo/CLSQL
+mailing list. http://lists.kpe.io/mailman/listinfo/CLSQL
 
 Patches are welcome. It will be much easier for us to incorporate if
 you use [git](http://git-scm.com/). Please keep distinct changes in
index d67afe1bacb61986ce02931541b0d7f777f08a18..de42b71c529f37c4c0eddf1e8b0082c6e4b8f4db 100644 (file)
@@ -30,7 +30,7 @@ CFLAGS:=-I /usr/local/include/mysql -I /usr/include/mysql -I /sw/include/mysql -
 LDFLAGS:=-L/usr/local/lib64/mysql -L/usr/local/lib/mysql -L/usr/lib64/mysql -L/usr/lib/mysql -L/sw/lib -L/opt/local/lib/mysql -L/opt/local/lib/mysql5/mysql -L/usr/local/mysql/lib -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lmysqlclient -lz -lc
 
 CFLAGS32:=-I /usr/local/include/mysql -I /usr/include/mysql -I /sw/include/mysql -I /opt/local/include/mysql -I /opt/local/include/mysql5/mysql -I /usr/local/mysql/include -m32
-LDFLAGS32:=-L/lib32 -L/usr/lib32 -melf_i386 -lmysqlclient -lz -lc
+LDFLAGS32:=-L/lib32 -L/usr/lib32 -lmysqlclient -lz -lc
 
 ifneq ($(OS_CYGWIN),0)
   CFLAGS:=-I /cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.0/include
@@ -64,14 +64,14 @@ else
         else
           ifneq ($(OS_LINUX64),0)
            gcc $(CFLAGS) -fPIC -c $(source) -o $(object)
-           ld $(LDFLAGS) -shared -soname=$(base) $(object) -o $(shared64_lib)
+           gcc $(LDFLAGS) -fPIC -shared -Wl,-soname=$(base) -lc $(object) -o $(shared64_lib)
            rm $(object)
            @echo "Ensure that you have multiarch i386 build tools and libraries if you want to build 32-bit library"
            -gcc $(CFLAGS32) -fPIC -c $(source) -o $(object)
-           -ld -shared -soname=$(base) $(object) $(LDFLAGS32) -o $(shared_lib)
+           -gcc $(LDFLAGS) -fPIC -shared -Wl,-soname=$(base) -lc $(object) $(LDFLAGS32) -o $(shared_lib)
           else
            gcc $(CFLAGS) -fPIC -c $(source) -o $(object)
-           ld -shared -soname=$(base) $(object) $(LDFLAGS) -o $(shared_lib)
+           gcc -m32 $(LDFLAGS) -fPIC  -shared -Wl,-soname=$(base) -lc $(object) $(LDFLAGS) -o $(shared_lib)
           endif
         endif
       endif
index f8f5836fab84ba29182f2aa6a0667191f3ad5c0b..9460011db0d7f1a687d4faafa513eef7eeee9c0c 100644 (file)
@@ -514,7 +514,7 @@ the length of that format.")
                  (oci-stmt-prepare (deref-vp stmthp)
                                    (deref-vp errhp)
                                    c-stmt-string
-                                   (uffi:foreign-string-length c--stmt-string)
+                                   (uffi:foreign-string-length c-stmt-string)
                                    +oci-ntv-syntax+ +oci-default+ :database db)
                  (oci-attr-get (deref-vp stmthp)
                                +oci-htype-stmt+
index 879e5bb2a0ede5a358f45e88dad9205676790c87..40dc86a780d46d88c1a146b7ecbced867cc6eaee 100644 (file)
@@ -234,6 +234,14 @@ socket interface"
   (int32 pid)
   (int32 key))
 
+(defun read-bytes (socket length)
+  "Read a byte array of the given length from a stream."
+  (declare (type stream socket)
+           (type fixnum length)
+           (optimize (speed 3) (safety 0)))
+  (let ((result (make-array length :element-type '(unsigned-byte 8))))
+    (read-sequence result socket)
+    result))
 
 (defun read-socket-sequence (stream length &optional (allow-wide t))
   (declare (stream stream)
@@ -487,10 +495,16 @@ troubles."
                                :database database :user user
                                :password (or password ""))))
 
-(defun encrypt-md5 (plaintext salt)
-  (string-downcase
-   (format nil "~{~2,'0X~}"
-           (coerce (md5sum-string (concatenate 'string plaintext salt)) 'list))))
+(defun byte-sequence-to-hex-string (sequence)
+  (string-downcase (format nil "~{~2,'0X~}" (coerce sequence 'list))))
+
+(defun encrypt-password-md5 (password user salt)
+  (let ((pass1 (byte-sequence-to-hex-string
+               (md5::md5sum-string (concatenate 'string password user)))))
+    (byte-sequence-to-hex-string
+     (md5:md5sum-sequence (concatenate '(vector (unsigned-byte 8))
+                                  (map '(vector (unsigned-byte 8)) #'char-code pass1)
+                                  salt)))))
 
 (defun reopen-postgresql-connection (connection)
   "Reopen the given PostgreSQL connection.  Closes any existing
@@ -532,10 +546,11 @@ connection, if it is still open."
                          (postgresql-connection-password connection) salt)))
                      (force-output socket))
                     (5
-                     (let ((salt (read-socket-sequence socket 4 nil)))
-                       (let* ((pwd2 (encrypt-md5 (postgresql-connection-password connection)
-                                                 (postgresql-connection-user connection)))
-                              (pwd (encrypt-md5 pwd2 salt)))
+                     (let ((salt (read-bytes socket 4)))
+                       (let ((pwd (encrypt-password-md5
+                                  (postgresql-connection-password connection)
+                                  (postgresql-connection-user connection)
+                                  salt)))
                          (send-encrypted-password-message
                           socket
                           (concatenate 'string "md5" pwd))))
index 718667be5984cf62da410d111c460416254e92c9..fbedb5157cf2494bf0ecc59e905a47aa2bad7e68 100644 (file)
@@ -19,7 +19,7 @@
 #+lispworks (require "comm")
 
 (defpackage #:postgresql-socket
-  (:use #:cl md5)
+  (:use #:cl #:md5)
   (:export #:pgsql-ftype
            #:pgsql-ftype#bytea
            #:pgsql-ftype#int2
@@ -56,4 +56,3 @@
            #:copy-cursor-row
            #:skip-cursor-row
            ))
-
index 0d2b64a213ab97f2f30196b6190ced9d69aa1580..4d133fb30a50839631d8d8b557592f13ff8b071c 100644 (file)
@@ -1,8 +1,27 @@
+cl-sql (6.6.3-1) unstable; urgency=medium
+
+  * New upstream
+  * Use gcc for linking (closes:755064)
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Sat, 29 Aug 2015 18:13:55 -0600
+
+cl-sql (6.6.2-1) unstable; urgency=medium
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Mon, 30 Mar 2015 14:46:53 -0600
+
+cl-sql (6.6.1-1) unstable; urgency=medium
+
+  * {uffi,db-mysql}/Makefile: Change build hardening to +all,-pie
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Wed, 18 Mar 2015 21:30:11 -0600
+
 cl-sql (6.6.0-1) unstable; urgency=medium
 
   * New upstream
   * {uffi,db-mysql}/Makefile: Add build hardening
-  
+
  -- Kevin M. Rosenberg <kmr@debian.org>  Thu, 26 Feb 2015 15:32:46 -0700
 
 cl-sql (6.5.0-1) unstable; urgency=low
index 524a4c9f12c0f6c1368c59e990393f035dd6e195..8a681c1b911147044c8b1912322596b2656b96cc 100644 (file)
@@ -4,9 +4,9 @@ Priority: extra
 Maintainer: Kevin M. Rosenberg <kmr@debian.org>
 Build-Depends: dh-lisp, debhelper (>= 7.0.0), libmysqlclient-dev, libpq-dev
 Standards-Version: 3.9.6
-Homepage: http://clsql.b9.com/
-Vcs-Git: git://git.b9.com/clsql.git
-Vcs-Browser: http://git.b9.com/?p=clsql.git
+Homepage: http://clsql.kpe.io/
+Vcs-Git: git://git.kpe.io/clsql.git
+Vcs-Browser: http://git.kpe.io/?p=clsql.git
 
 Package: cl-sql
 Architecture: all
index f9364eb4694a399ca38b7b653c6161ce4b30fdec..71a7cb7dd16fda600f327f0f716ca5149b1166f0 100644 (file)
@@ -1,7 +1,7 @@
 Debian Copyright Section
 ========================
 
-Upstream Source URL: http://files.b9.com/clsql
+Upstream Source URL: http://files.kpe.io/clsql
 Upstream Author: Kevin M. Rosenberg <kmr@debian.org>
 Debian Maintainer: (Same as upstream)
 
old mode 100755 (executable)
new mode 100644 (file)
index c5d401e..c44c009
@@ -1,4 +1,4 @@
 #!/bin/bash -e
 
-dup clsql -Ufiles.b9.com -D/home/ftp/clsql -su \
+dup clsql -Ufiles.kpe.io -D/home/ftp/clsql -su \
     -C"(umask 022; cd /srv/www/html/clsql; make install; find . -type d |xargs chmod go+rx; find . -type f | xargs chmod go+r)" $*
index b697ecb3e9bf97ecadd1484ca03ebef4a7ecd9f8..1b92d46343b21d7633f6d7086ba79ed42ddcc279 100644 (file)
@@ -1,2 +1,2 @@
 version=3
-http://files.b9.com/clsql/clsql-([\d\.]*)\.tar\.gz     debian  uupdate
+http://files.kpe.io/clsql/clsql-([\d\.]*)\.tar\.gz     debian  uupdate
index 4a5cc4ce611dfb3e506d2244c757cd4b6d95bfb2..4922a969d122812359024d780102b3352ca58b85 100644 (file)
Binary files a/doc/clsql.pdf and b/doc/clsql.pdf differ
index bdc07349140a8ab6ee850c1130019bae93326e99..8718c23cccfb213a2d5bafaf3c66af6bfd5d39ee 100644 (file)
Binary files a/doc/html.tar.gz and b/doc/html.tar.gz differ
index eb10c69e7f868bc00a8d27a4fac8d4044698a3ff..936cf59e9acd8d5c14cf7d91f690b32d0ee7996b 100644 (file)
@@ -86,7 +86,7 @@
       <title>&uffi;</title>
       <para>
        &clsql; uses <ulink
-       url="http://uffi.b9.com/"><citetitle>&uffi;</citetitle></ulink>
+       url="http://uffi.kpe.io/"><citetitle>&uffi;</citetitle></ulink>
        as a <emphasis>Foreign Function Interface</emphasis>
        (<glossterm linkend="gloss-ffi">FFI</glossterm>) to support
        multiple &cl; implementations.
@@ -96,7 +96,7 @@
     <sect2>
       <title>&md5;</title>
       <para>&clsql;'s postgresql-socket interface uses Pierre Mai's 
-       <ulink url="http://files.b9.com/md5/">md5</ulink>
+       <ulink url="http://files.kpe.io/md5/">md5</ulink>
        module.
       </para>       
     </sect2>
index b3f6efe59d6057b7a9f7c99c37a257e0120d831f..aa6a9a691119a30cbab7362d54ff214d5a54f1af 100644 (file)
@@ -7,7 +7,7 @@ each database type to be tested. There is an example file in
 contained in CLSQL's examples directory.
 
 These tests require the downloading of the rt package from
-http://files.b9.com/.
+http://files.kpe.io/.
 
 Load clsql.asd or put it somewhere where ASDF can find it
 and call:
index 77203fdfc723150ac9baf5a3b98a149cc14f0e27..7599380f1c047befc356d12833a898ef84cdaad2 100644 (file)
@@ -55,11 +55,11 @@ else
         else
           ifneq ($(OS_LINUX64),0)
            gcc $(CFLAGS) -fPIC -DPIC -c $(source) -o $(object)
-           ld $(LDFLAGS) -shared -soname=$(base) -lc $(object) -o $(shared64_lib)
+           gcc $(LDFLAGS) -fPIC -shared -Wl,-soname=$(base) -lc $(object) -o $(shared64_lib)
            rm -f $(object)
            @echo "Ensure that you have multiarch i386 build tools if you want to build 32-bit library"
            -gcc -m32 $(CFLAGS) -fPIC -DPIC -c $(source) -o $(object)
-           -ld -melf_i386 $(LDFLAGS) -shared -soname=$(base) -lc $(object) -o $(shared_lib)
+           -gcc -m32 $(LDFLAGS) -fPIC -shared -Wl,-soname=$(base) -lc $(object) -o $(shared_lib)
           else
            gcc -fPIC -DPIC -c $(source) -o $(object)
            ld -shared -soname=$(base) -lc $(object) -o $(shared_lib)