Date: Fri, 11 Jun 2010 10:40:08 -0500 From: Scot Hetzel <swhetzel@gmail.com> To: Helmut Schneider <jumper99@gmx.de>, Gabor Kovesdan <gabor@freebsd.org> Cc: freebsd-ports@freebsd.org Subject: Re: amavisd-new does not compile because of db42 Message-ID: <AANLkTik07PhAe2uojwOxvHscG31XVTxra4hM9sZB-xTa@mail.gmail.com> In-Reply-To: <xn0gv99ud2vdc01000@news.gmane.org> References: <xn0gv8b8n2ri61n000@news.gmane.org> <xn0gv8ssj2y6ijg001@news.gmane.org> <4C1166C6.600@FreeBSD.org> <xn0gv8t9u2yvk8n002@news.gmane.org> <4C11E9EB.6080101@FreeBSD.org> <xn0gv99ud2vdc01000@news.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 11, 2010 at 4:08 AM, Helmut Schneider <jumper99@gmx.de> wrote: > Gabor Kovesdan wrote: > >> > >> >=3D=3D=3D> =A0 =A0Running ldconfig >> > /sbin/ldconfig -m /usr/local/lib >> >=3D=3D=3D> =A0 =A0Registering installation for db42-4.2.52_5 >> >=3D=3D=3D> =A0 =A0Returning to build of amavisd-new-2.6.4_6,1 >> > Error: shared library "db-4.2.2" does not exist >> > *** Error code 1 >> > >> > Stop in /usr/ports/security/amavisd-new. >> > *** Error code 1 >> > >> > >> It seems that it cannot find the library but amavisd-new uses the >> USE_BDB know from bsd.databases.mk just like quite a bunch of other >> ports, so the dependency definition is obviously correct. I don't >> know what causes this error and I haven't got any more PRs from other >> users. Soon, I'll bump the required version again because after the >> last change I got some mails that say newer versions operate even >> better with amavisd-new. I'll just talk to the developer to see, >> which version would be the optimal one or we can just pull in the >> latest bdb version. I'd say let's wait for that update and hopefully >> that will also solve your problem. > > # make clean > =3D=3D=3D> =A0Cleaning for amavisd-new-2.6.4_6,1 > # env make depends > =3D=3D=3D> =A0 amavisd-new-2.6.4_6,1 depends on shared library: db-4.2.2 = - found > [...] > # env make depends -DWITH_RAR > =3D=3D=3D> =A0 amavisd-new-2.6.4_6,1 depends on shared library: db-4.2.2 = - not > found > [...] > # > > I then commented out "IA32_BINARY_PORT=3Dyes" from the WITH_RAR section > in the Makefile and guess what?! :) > > # env make depends -DWITH_RAR > =3D=3D=3D> =A0 amavisd-new-2.6.4_6,1 depends on shared library: db-4.2.2 = - found > [...] > # portupgrade -N amavisd-new\* > [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 224 > packages found (-0 +1) . done] > [Gathering depends for security/amavisd-new > ........................................................................ > ........................................................................ > ........................................................................ > ...... done] > ---> =A0Installing 'amavisd-new-2.6.4_6,1' from a port > (security/amavisd-new) > ---> =A0Building '/usr/ports/security/amavisd-new' with make flags: > -DWITH_BDB -DWITH_SNMP -DWITH_POF -DWITH_RAR -DWITH_UNRAR -DWITH_UNARJ > -DWITH_NOMARCH -DWITH_UNZOO -DWITH_TNEF > =3D=3D=3D> =A0Cleaning for amavisd-new-2.6.4_6,1 > cd /usr/ports/security/amavisd-new && make config; > [...] > =3D=3D=3D> =A0 amavisd-new-2.6.4_6,1 depends on shared library: db-4.2.2 = - found > [...] > # > > Does that help? :) > The use as defined in bsd.port.mk for the IA32_BINARY_PORT variable is incorrectly being used in the amavisd-new port: # IA32_BINARY_PORT # - Set this instead of ONLY_FOR_ARCHS if the given port # fetches and installs compiled i386 binaries. When this variable is set it changes how ldconfig searches for libraries by setting the -32 to ldconfig. This prevents the port from properly detecting any 64bit libraries and only looks for 32bit libraries. The reason that only db42 is being affected is because most of the ports dependancies are RUN_DEPENDS. The correct way to the amavisd-new port would be to change this: .if defined(WITH_RAR) IA32_BINARY_PORT=3D yes RUN_DEPENDS+=3D ${LOCALBASE}/bin/rar:${PORTSDIR}/archivers/rar .endif To this: .if defined(WITH_RAR) # support for archivers/rar is broken on ia64 .if ${ARCH} =3D=3D"i386" || ${ARCH} =3D=3D "amd64" RUN_DEPENDS+=3D ${LOCALBASE}/bin/rar:${PORTSDIR}/archivers/rar .else IGNORE=3D archviers/rar is a 32-bit binary port and is not compatible with = ${ARCH} .endif .endif Note: This may need to be moved after the bsd.port.pre.mk. Scot
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTik07PhAe2uojwOxvHscG31XVTxra4hM9sZB-xTa>