Date: Fri, 19 Jun 2020 16:01:13 +0200 From: Milan Obuch <freebsd-python@dino.sk> To: freebsd-python@freebsd.org Subject: Any way to access db5 data with python? Message-ID: <20200619160113.3280a8d1@zeta.dino.sk>
next in thread | raw e-mail | index | archive | help
Hi, I am trying to upgrade mail/courier-pythonfilter port to new version using Python 3. While it basically works, I found there is some problem accessing database from courier mail server. In log file I see courierfilter[2875]: Error reading /usr/local/etc/courier/smtpaccess.dat This file exists, it is -rw-r--r-- 1 root courier 131072 May 26 13:30 smtpaccess.dat Pythonfilter author wrote me it probably means there is no module for accessing it and suggested test $ python3 >>> import dbm >>> dbm.open('/usr/local/etc/courier/smtpaccess.dat', 'r') This gives an error: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.7/dbm/__init__.py", line 88, in open raise error[0]("db type could not be determined") dbm.error: db type could not be determined With some tests I found a way to display file contents: # dbmmanage /usr/local/etc/courier/smtpaccess.dat view 127.0.0.1:allow,RELAYCLIENT :0000:0000:0000:0000:0000:0000:0000:0001:allow,RELAYCLIENT 10:allow,RELAYCLIENT 192.168:allow,RELAYCLIENT or # db_dump185-5.3 -p /usr/local/etc/courier/smtpaccess.dat format=print type=hash h_ffactor=65536 db_lorder=1234 db_pagesize=32768 HEADER=END 127.0.0.1 allow,RELAYCLIENT :0000:0000:0000:0000:0000:0000:0000:0001 allow,RELAYCLIENT 10 allow,RELAYCLIENT 192.168 allow,RELAYCLIENT First one uses binary installed with apache web server, second one uses binary from db5 package. One more test: # file /usr/local/etc/courier/smtpaccess.dat /usr/local/etc/courier/smtpaccess.dat: Berkeley DB 1.85 (Hash, version 2, native byte-order) Could anybody offer a hint? I found no Python package for db5, at least not with name like py-db5 or some such tricial. Regards, Milan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200619160113.3280a8d1>