Summary: | net-analyzer/snort-2.9.0.5 fails to configure, because postgresql header are not found | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
Component: | Current packages | Assignee: | PgSQL Bugs <pgsql-bugs> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | jason.r.wallace, netmon |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | /var/tmp/portage/net-analyzer/snort-2.9.0.5/work/snort-2.9.0.5/config.log |
Description
Juergen Rose
2011-04-14 07:48:13 UTC
Created attachment 269903 [details]
/var/tmp/portage/net-analyzer/snort-2.9.0.5/work/snort-2.9.0.5/config.log
Run: eselect postgresql update libpq-fe.h is explicitly managed by the module. This sort of issue keeps coming up with eselect/postgresql, so CCing postgresql maintainers. Did 'eselect postgresql update' solve your problem? I'm trying to determine if I need to start digging into the snort ebuild or if this is truly an eselect/postgresql issue. I have just now no access to to computer from my last posting (grizzly). On a second computer (lynx) I have the same problem. I tried 'eselect postgresql update', but I got an error and 'emerge snort' fails as before: checking "for odbc"... yes checking for postgresql... ********************************************** ERROR: unable to find postgresql header file (libpq-fe.h) checked in the following places /usr/include /usr/include/pgsql /usr/local/include /usr/local/include/pgsql /usr/local/pgsql/include /usr/local/pgsql/include/pgsql /usr/pgsql/include /usr/pgsql/include/pgsql /usr/local/include /usr/local/include/pgsql ********************************************** !!! Please attach the following file when seeking support: !!! /var/tmp/portage/net-analyzer/snort-2.9.0.5/work/snort-2.9.0.5/config.log * ERROR: net-analyzer/snort-2.9.0.5 failed (configure phase): * econf failed * * Call stack: * ebuild.sh, line 56: Called src_configure * environment, line 2899: Called econf '--enable-shared' '--disable-static' '--enable-dynamicplugin' '--enable-ipv6' '--enable-zlib' '--disable-gre' '--disable-mpls' '--disable-targetbased' '--enable-decoder-preprocessor-rules' '--disable-ppm' '--disable-perfprofiling' '--disable-linux-smp-stats' '--disable-inline-init-failopen' '--disable-prelude' '--enable-pthread' '--disable-debug' '--disable-debug-msgs' '--disable-corefiles' '--enable-dlclose' '--disable-active-response' '--disable-normalizer' '--disable-reload-error-restart' '--disable-react' '--disable-flexresp3' '--disable-aruba' '--with-mysql' '--with-odbc' '--with-postgresql' '--enable-reload' '--disable-build-dynamic-examples' '--disable-profile' '--disable-ppm-test' '--disable-intel-soft-cpm' '--disable-static-daq' '--disable-rzb-saac' '--without-oracle' * ebuild.sh, line 557: Called die * The specific snippet of code: * die "econf failed" * * If you need support, post the output of 'emerge --info =net-analyzer/snort-2.9.0.5', * the complete build log and the output of 'emerge -pqv =net-analyzer/snort-2.9.0.5'. * The complete build log is located at '/var/tmp/portage/net-analyzer/snort-2.9.0.5/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-analyzer/snort-2.9.0.5/temp/environment'. * S: '/var/tmp/portage/net-analyzer/snort-2.9.0.5/work/snort-2.9.0.5' >>> Failed to emerge net-analyzer/snort-2.9.0.5, Log file: >>> '/var/tmp/portage/net-analyzer/snort-2.9.0.5/temp/build.log' root@lynx:/root(4)# eselect postgresql list Available PostgreSQL Slots 8.4 9.0 * server-9.0.3-r4 base-9.0.3-r1 docs-9.0.3-r1 root@lynx:/root(5)# eselect postgresql update Setting 9.0 as the default installation... Removing old links...!!! Error: The target '/usr/lib64/postgresql' still exists and could not be removed! exiting root@lynx:/root(6)# eselect postgresql list Available PostgreSQL Slots 8.4 9.0 * server-9.0.3-r4 base-9.0.3-r1 docs-9.0.3-r1 root@lynx:/root(7)# eselect postgresql update Setting 9.0 as the default installation... Removing old links...!!! Error: The target '/usr/lib64/postgresql' still exists and could not be removed! exiting root@lynx:/root(8)# /etc/init.d/postgresql-9.0 status * Reloading PostgreSQL configuration ... pg_ctl: server is running (PID: 4196) /usr/lib64/postgresql-9.0/bin/postgres "-D" "/var/lib/postgresql/9.0/data" "-D" "/etc/postgresql-9.0/" "--data-directory=/var/lib/postgresql/9.0/data" "--silent-mode=true" [ ok ] root@lynx:/root(9)# /etc/init.d/postgresql-9.0 stop * Stopping PostgreSQL (this can take up to 92 seconds) ... [ ok ] root@lynx:/root(10)# eselect postgresql update Setting 9.0 as the default installation... Removing old links...!!! Error: The target '/usr/lib64/postgresql' still exists and could not be removed! exiting root@lynx:/root(11)# emerge -vuND world ... checking for postgresql... ********************************************** ERROR: unable to find postgresql header file (libpq-fe.h) checked in the following places /usr/include /usr/include/pgsql /usr/local/include /usr/local/include/pgsql /usr/local/pgsql/include /usr/local/pgsql/include/pgsql /usr/pgsql/include /usr/pgsql/include/pgsql /usr/local/include /usr/local/include/pgsql ********************************************** !!! Please attach the following file when seeking support: !!! /var/tmp/portage/net-analyzer/snort-2.9.0.5/work/snort-2.9.0.5/config.log Still some information: root@lynx:/root(12)# eselect postgresql update Setting 9.0 as the default installation... Removing old links...!!! Error: The target '/usr/lib64/postgresql' still exists and could not be removed! exiting root@lynx:/root(13)# ll /usr/lib64/postgresql total 0 lrwxrwxrwx 1 root root 31 Apr 12 16:38 lib64 -> /usr/lib64/postgresql-9.0/lib64/ root@lynx:/root(14)# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video),1217(tuntap) root@lynx:/root(15)# qlist -Iv eselect app-admin/eselect-1.2.15 ... app-admin/eselect-postgresql-1.0.6 ... Error: The target '/usr/lib64/postgresql' still exists and could not be removed! That's a hint there. You have to take care of that manually. It's up to you to see if it's safe to remove that directory, and, if it is, remove it. On some of my computers /usr/lib/postgresql is a directory containing one link lib64: root@lynx:/root(5)# ll -d /usr/lib/postgresql drwxr-xr-x 2 root root 4096 Apr 12 16:38 /usr/lib/postgresql/ root@lynx:/root(6)# ll /usr/lib/postgresql/ total 0 lrwxrwxrwx 1 root root 31 Apr 12 16:38 lib64 -> /usr/lib64/postgresql-9.0/lib64/ on the other computers /usr/lib/postgresql is a link to /usr/lib/postgresql-9.0/lib/> root@caiman:/root(2)# ll -d /usr/lib/postgresql lrwxrwxrwx 1 root root 31 Apr 14 08:32 /usr/lib/postgresql -> /usr/lib64/postgresql-9.0/lib64/ If I remove the link inside the /usr/lib/postgresql directory and the /usr/lib/postgresql directory, 'eselect postgresql update' fails with: root@lynx:/root(9)# eselect postgresql update Setting 9.0 as the default installation... Removing old links...!!! Error: The target '/usr/share/postgresql' still exists and could not be removed! exiting /usr/share/postgresql is again a directory containing one subdirectory /usr/share/postgresql/contrib and a link /usr/share/postgresql/postgresql-9.0 root@lynx:/root(10)# ll -d /usr/share/postgresql drwxr-xr-x 3 root root 4096 Apr 12 16:38 /usr/share/postgresql/ root@lynx:/root(11)# ll -d /usr/share/postgresql/* drwxr-xr-x 2 root root 4096 Feb 25 2010 /usr/share/postgresql/contrib/ lrwxrwxrwx 1 root root 25 Apr 12 16:38 /usr/share/postgresql/postgresql-9.0 -> /usr/share/postgresql-9.0/ I recursively removed /usr/share/postgresql, and tried once more 'eselect postgresql update': root@lynx:/root(12)# rm -r /usr/share/postgresql root@lynx:/root(13)# eselect postgresql update Setting 9.0 as the default installation... Removing old links...done. Generating new links...done. Setting 9.0 as default was successful! Cleaning out old links before refreshing...done. Refreshing symbolic links for 9.0 applications (like /usr/bin/psql90)...done. Refreshing symbolic links for 8.4 applications (like /usr/bin/psql84)...find: `/usr/lib64/postgresql-8.4/bin': No such file or directory done. root@lynx:/root(14)# eselect postgresql list Available PostgreSQL Slots 8.4 9.0 * server-9.0.3-r4 base-9.0.3-r1 docs-9.0.3-r1 Why 'eselect postgresql list' offers to select 8.4? postgresql-*-8.4 is not installed: root@lynx:/root(16)# qlist -Iv postgresql app-admin/eselect-postgresql-1.0.6 dev-db/postgresql-base-9.0.3-r1 dev-db/postgresql-docs-9.0.3-r1 dev-db/postgresql-server-9.0.3-r4 dev-java/jdbc-postgresql-9.0_p801 There is still an almost empty /usr/lib/postgresql-8.4 directory: root@lynx:/root(22)# ll /usr/lib/postgresql-8.4/ total 4 drwxr-xr-x 2 root root 4096 Sep 29 2010 lib64/ root@lynx:/root(23)# ll /usr/lib/postgresql-8.4/lib64/ total 56 -rw-r--r-- 1 root root 9270 Oct 23 2009 slon-tools.pm -rwxr-xr-x 1 root root 26720 Oct 23 2009 slony1_funcs.so* -rwxr-xr-x 1 root root 14216 Oct 23 2009 xxid.so* After removing the /usr/lib/postgresql-8.4 directory and reinstalling postgresql-*-9 'eselect list update' does not complain any more and I also could install snort. Because you have a system that wasn't cleaned up properly from the old dev-db/{postgresql,libpq} ebuilds most likely. The way that the module determines which slots are available is by looking for key directories being in place. And the way the module is used in the ebuilds causes false positives when checking for versions using alternative methods. It isn't foolproof, and most likely never will be. (I won't write it to check for the existence of every single file and executable that a package should contain.) |