Monday, June 25, 2007

Ubuntu: postgresql-8.1-plr for Feisty missing plr.so and plr.sql

I am trying to get plr installed. However after running apt-get install postgresql-8.1-plr I get the dreaded:
ERROR: could not access file "$libdir/plr": No such file or directory
I double check the package list for plr
$ dpkg-query --listfiles postgresql-8.1-plr
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/postgresql-8.1-plr
/usr/share/doc/postgresql-8.1-plr/index.html
/usr/share/doc/postgresql-8.1-plr/plr-aggregate-funcs.html
/usr/share/doc/postgresql-8.1-plr/plr-data.html
/usr/share/doc/postgresql-8.1-plr/plr-func-naming.html
/usr/share/doc/postgresql-8.1-plr/plr-funcs.html
/usr/share/doc/postgresql-8.1-plr/plr-global-data.html
/usr/share/doc/postgresql-8.1-plr/plr-install.html
/usr/share/doc/postgresql-8.1-plr/plr-license.html
/usr/share/doc/postgresql-8.1-plr/plr-module-funcs.html
/usr/share/doc/postgresql-8.1-plr/plr-overview.html
/usr/share/doc/postgresql-8.1-plr/plr-pgsql-support-funcs.html
/usr/share/doc/postgresql-8.1-plr/plr-spi-rsupport-funcs.html
/usr/share/doc/postgresql-8.1-plr/plr-trigger-func.html
/usr/share/doc/postgresql-8.1-plr/stylesheet.css
/usr/share/doc/postgresql-8.1-plr/copyright
/usr/share/doc/postgresql-8.1-plr/changelog.Debian.gz
Hmm.. where's the .so???

I check around on the ubuntu packages and confirm that other releases have the the .so file:
http://packages.ubuntu.com/dapper/libs/postgresql-8.1-plr
http://packages.ubuntu.com/edgy/libs/postgresql-8.1-plr

So I file a bug and start looking into a way to fix it.

I search for how to build a package: and come up the official guide.
$ mkdir -p ~src/plr/feisty
$ cd ~src/plr/feisty
$ apt-get source postgresql-8.1-plr
$ sudo apt-get build-dep postgresql-8.1-plr
$ cd plr-0.6.2
$ dpkg-buildpackage -rfakeroot -uc -b
$ cd ..

The resulting postgresql-8.1-plr_0.6.2-4ubuntu1_amd64.deb still is missing the files. $ dpkg --contents postgresql-8.1-plr_0.6.2-4ubuntu1_amd64.deb

After a lot of poking at the problem I notice that the binary files are created in a directory called install-8.1. However in that dir, are directories for 8.2.

After tracking the problem down, I created a diff file:
diff -u debian/rules /home/lance/rules.patched > /home/lance/rules.patch
And then I uploaded to launchpad.

--- debian/rules 2007-06-25 15:37:43.000000000 -0700
+++ /home/lance/rules.patched 2007-06-25 15:37:23.707021486 -0700
@@ -47,7 +47,7 @@
dh_testroot

# 8.1
- $(MAKE) -C build-8.1/plr -f Makefile.pgxs R_HOME=/usr/lib/R install DESTDIR=$(HERE)/install-8.1 PGXS=/usr/lib/postgresql/8.1/lib/pgxs/src/makefiles/pgxs.mk
+ $(MAKE) -C build-8.1/plr -f Makefile.pgxs R_HOME=/usr/lib/R install DESTDIR=$(HERE)/install-8.1 PGXS=/usr/lib/postgresql/8.1/lib/pgxs/src/makefiles/pgxs.mk datadir=/usr/share/postgresql/8.1 docdir=/usr/share/doc/postgresql-doc-8.1 pkglibdir=/usr/lib/postgresql/8.1/lib

# install files
dh_installdocs -a


Download the patch file to your home directory as rules.patch, then do:

$ mkdir /tmp/plr
$ cd /tmp/plr
$ apt-get source postgresql-8.1-plr
$ sudo apt-get build-dep postgresql-8.1-plr
$ cd plr-0.6.2
$ patch -p0 -i ~/rules.patch
$ dpkg-buildpackage -rfakeroot -uc -b
$ cd ..
$ sudo dpkg --install postgresql-8.1-plr_0.6.2-4ubuntu1_amd64.deb

1 comment:

son cho said...

khí không?

Nhạc Thành cười nói, thân ảnh đã tiến lên phía trước nói chuyện với Đoan Mộc Lưu Quang.

- Ngươi là ai?

Đoan Mộc Lưu Quang gần đây giao thủ cũng chưa từng nhìn thấy hắc bào nam tử này bao giờ, cảm nhận thấy thực lực trên người của đối phương hắn cũng không khỏi kinh ngạc.
dongtam
game mu
cho thue phong tro
http://nhatroso.com/
nhac san cuc manh
tổng đài tư vấn luật
http://dichvu.tuvanphapluattructuyen.com/
văn phòng luật
tổng đài tư vấn pháp luật
thành lập công ty
http://we-cooking.com/
chém gió
trung tâm ngoại ngữ
- Trưởng lão, hắn chính là Nhạc Thành, hậu nhân của Nhạc Thiên, hắn cũng là người diệt cả ba tộc Viễn Cổ Hổ Tộc, Viễn Cổ Minh Xà tộc, và Toan Nghê Tộc.

Một tam tinh Đấu Thánh cất tiếng nói với Đoan Mộc Lưu Quang.

Đoan Mộc Lưu Quang chưa từng nhìn thấy Nhạc Thành nhưng thấy bộ dáng cũng quen thuộc, lúc này sắc mặt của hắn liền biến hóa.

- Thì ra ngươi chính là Nhạc Thành, ta có thể bắt ngươi trở về cũng là một công lớn.

Đoan Mộc Lưu Quang nhìn Nhạc Thành rồi nói.