Re: postfix on Yellow Dog Linux: comment & question


Subject: Re: postfix on Yellow Dog Linux: comment & question
From: Michael Tokarev (mjt@tls.msk.ru)
Date: Fri Jul 06 2001 - 01:33:27 MDT


Please, folks, do not try to cover every unix/linux system
with all variants, and especially every kind of *individual*
installation in README/INSTALL of postfix or any other general
package. Postfix, like many other packages, just "assumes"
that a system have basic development environment (I'd say
"standard" environment). If a system can't include sys/types.h,
then it is either broken (and should be "repaired" -- note the
*system*, not postfix or whatether) or just lacks proper
development environment. Imagine the situation: one uses only
`csh' and not installed "standard" `sh' on his system; then
he tries to compile postfix and noticies that "make makefiles"
wan't work -- it is not a reason to mention that "this system
needs /bin/sh installed to build postfix" in postfix's readme!
On many linux distros, glibc-devel (i.e. *all* headers) just
*depends* on kernel-headers, and you don't allowed to install
glibc-devel without kernel-headers (you can do that, but you
will be warned, and again, if some program wan't compile, it
will be *your* problem; and if after that you'll request
adding "in order to compile postfix on mr. First.M.Last's
(or Chris Pepper's for that matter) machine, he need to
install kernel-headers" to postfix's README? That's
absurd).

Note also that in next version of YDL authors may decide to
reorganize packages etc etc, and e.g. include kernel-headers
in glibc-devel or the like (how many flamewars was on linux-kernel
about using kernel headers for userspace? And note that
Linus's position is very clear: do NOT use them, but use
separate set of headers!), and this proposed README statement
will be just false.

And note also that this issue is not the same as e.g. libdb
issue: it is very common to have strange things with berkely
db library (unfortunately), as there was 3 incompatible
versions and different distributions prefers different versions
(for various reasons), even more, on e.g. redhat, db3-devel
(db3 is the default on 7.x) is not installed by default, even
if development env. was selected during install (package
is optional, while glibc-devel/kernel-headers is not).

Sorry if you think I'm too rigorous/indelicate.

Regards,
 Michael.

Chris Pepper wrote:
>
> At 7:31 PM -0400 2001/07/05, Wietse Venema wrote:
> >Chris Pepper:
> >> Folks,
> >>
> >> On Yellow Dog Linux 2.0 (PowerPC), postfix requires the
> >> kernel-headers RPM for sys/types.h. This should probably be in
> >> LINUX_README.
> >
> >I think this is a defect in Yellow Dog Linux. If they provide a
> >development environment with sys/types.h then they should provide
> >all files needed by sys/types.h. I have never used a UNIX system
> >with incomplete sys/types.h dependencies.
>
> I don't see that this is a defect -- I didn't specify a
> development environment in the base install, but did add the RPMs I
> knew I'd need (gcc, make, etc.). I did not know I'd need
> kernel-headers for postfix -- I haven't needed it for any of the
> smaller program I've compiled so far.
>
> I do think it would be nice to mention, in the Linux README,
> that kernel-headers is a requirement, alongside the db3 requirement.
>
> > > Also, there's a dependency that my YDL 2.0 system doesn't
> >> satisfy, but I can't tell what it is. I added the yp* RPMs
> >> (yp-tools-2.4-4.ppc.rpm, ypbind-1.6-11.ppc.rpm, and
> >> ypserv-1.3.11-9.ppc.rpm), but that didn't help. What's missing from
> >> my system? FWIW, I have the db1, db2, and db3 RPMs installed, as well
> >> as db3-devel & gdbm. Any insight is appreciated.
> >
> >Looks like the NIS *library routines* are missing.
>
> That makes sense, but I still don't know which specific file
> is missing. All the files in my LinuxPPC /lib directory that contain
> the strings yp_match, yp_get_default_domain, and R_PPC_REL24 also
> exist in my YDL /lib directory (modulo version numbers), and error
> compiles successfully under LinuxPPC. Are the NIS library files
> elsewhere??
>
> >[pepper@www postfix-20010228-pl03]$ grep yp_match /lib/* /lppcroot/lib/*
> >Binary file /lib/libnsl-2.2.1.so matches
> >Binary file /lib/libnsl.so.1 matches
> >Binary file /lib/libnss_compat-2.2.1.so matches
> >Binary file /lib/libnss_compat.so.2 matches
> >Binary file /lib/libnss_nis-2.2.1.so matches
> >Binary file /lib/libnss_nis.so.2 matches
> >Binary file /lib/libpwdb.a matches
> >Binary file /lib/libpwdb.so matches
> >Binary file /lib/libpwdb.so.0 matches
> >Binary file /lib/libpwdb.so.0.61.1 matches
> >grep: /lib/modules: Is a directory
> >grep: /lib/security: Is a directory
> >Binary file /lppcroot/lib/libnsl-2.1.3.so matches
> >Binary file /lppcroot/lib/libnsl.so.1 matches
> >Binary file /lppcroot/lib/libnss_compat-2.1.3.so matches
> >Binary file /lppcroot/lib/libnss_compat.so.2 matches
> >Binary file /lppcroot/lib/libnss_nis-2.1.3.so matches
> >Binary file /lppcroot/lib/libnss_nis.so.2 matches
> >Binary file /lppcroot/lib/libpwdb.a matches
> >Binary file /lppcroot/lib/libpwdb.so matches
> >Binary file /lppcroot/lib/libpwdb.so.0 matches
> >Binary file /lppcroot/lib/libpwdb.so.0.60 matches
> >grep: /lppcroot/lib/modules: Is a directory
> >grep: /lppcroot/lib/security: Is a directory
> >[pepper@www postfix-20010228-pl03]$ grep R_PPC_REL24 /lib/* /lppcroot/lib/*
> >Binary file /lib/ld-2.2.1.so matches
> >Binary file /lib/ld.so.1 matches
> >grep: /lib/modules: Is a directory
> >grep: /lib/security: Is a directory
> >Binary file /lppcroot/lib/ld-2.1.3.so matches
> >Binary file /lppcroot/lib/ld.so.1 matches
> >grep: /lppcroot/lib/modules: Is a directory
> >grep: /lppcroot/lib/security: Is a directory
>
> I also see that YDL puts a couple libs which error uses in
> /usr/lib, but copying them to /lib didn't alleviate the error
> building error.
>
> >[pepper@www error]$ strings error|grep lib
> >/lib/ld.so.1
> >libdb.so.3
> >libnsl.so.1
> >libresolv.so.2
> >libc.so.6
> >__libc_start_main
> >/usr/libexec/postfix
> >[pepper@www error]$ locate libdb.so. libresolv.so. libnsl.so. libc.so.|sort
> >/lib/libc.so.6
> >/lib/libnsl.so.1
> >/lib/libresolv.so.2
> >/lppcroot/lib/libc.so.6
> >/lppcroot/lib/libdb.so.2
> >/lppcroot/lib/libdb.so.3
> >/lppcroot/lib/libnsl.so.1
> >/lppcroot/lib/libresolv.so.2
> >/usr/lib/libdb.so.2
> >/usr/lib/libdb.so.3
>
> > Wietse
> >
> >> >[src/error]
> >> >gcc -Wmissing-prototypes -Wformat -g -O -I. -I../../include
> >> >-DLINUX2 -o error error.o ../../lib/libmaster.a
> > > >../../lib/libglobal.a ../../lib/libutil.a -ldb
> >> >../../lib/libutil.a(dict_nis.o): In function `dict_nis_init':
> >> >/home/user/pepper/tarball/postfix-20010228-pl03/src/util/dict_nis.c:81:
> > > >undefined reference to `, yp_get_default_domain'
> > > >/home/user/pepper/tarball/postfix-20010228-pl03/src/util/dict_nis.c:81:
> >> >relocation truncated to fit: R_PPC_REL24 yp_get_default_domain
> >> >../../lib/libutil.a(dict_nis.o): In function `dict_nis_lookup':
> >> >/home/user/pepper/tarball/postfix-20010228-pl03/src/util/dict_nis.c:156:
> > > >undefined reference to `yp_match'
> >> >/home/user/pepper/tarball/postfix-20010228-pl03/src/util/dict_nis.c:156:
> >> >relocation truncated to fit: R_PPC_REL24 yp_match
> >> >/home/user/pepper/tarball/postfix-20010228-pl03/src/util/dict_nis.c:170:
> >> >undefined reference to `yp_match'
> >> >/home/user/pepper/tarball/postfix-20010228-pl03/src/util/dict_nis.c:170:
> > > >relocation truncated to fit: R_PPC_REL24 yp_match
> >> >collect2: ld returned 1 exit status
> >> >make: *** [error] Error 1
> > > >make: *** [update] Error 1
>
> Thx,
>
> Chris Pepper
> --
> Chris Pepper: <http://www.reppep.com/~pepper/>
> NEW: Mastering Mac OS X: <http://www.reppep.com/~pepper/mmosx/>
> -
> To unsubscribe, send mail to majordomo@postfix.org with content
> (not subject): unsubscribe postfix-users



This archive was generated by hypermail 2a24 : Fri Jul 06 2001 - 00:37:11 MDT