pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: New courier packages



It suspect the problem building courier-mta is related to these two lines in
the Makefile:

[mail/courier-mta/Makefile]
CONFIGURE_ARGS+=        --with-mailuid=${PKG_UID.${COURIER_USER}}
CONFIGURE_ARGS+=        --with-mailgid=${PKG_GID.${COURIER_GROUP}}

because if I replace them with

CONFIGURE_ARGS+=        --with-mailuid=1005
CONFIGURE_ARGS+=        --with-mailgid=1005

the build completes. However, "bmake install" then fails as follows:

...
===> Installing for courier-mta-0.65.0
=> Running PRE-INSTALL script actions
===========================================================================
The following groups need to be created for courier-mta-0.65.0:

        mail (gid = 8)

===========================================================================
===========================================================================
The following users need to be created for courier-mta-0.65.0:

        courier (uid = 1008): mail, /nonexistent, /bin/false

===========================================================================
*** Error code 1

Stop.
bmake: stopped in /v/build/pkgsrc/mail/courier-mta
*** Error code 1

Stop.
bmake: stopped in /v/build/pkgsrc/mail/courier-mta
*** Error code 1

Stop.
bmake: stopped in /v/build/pkgsrc/mail/courier-mta

However I already *do* have that group and user on my system, with those
ids:

$ grep mail /etc/group
mail:x:8:
$ grep courier /etc/passwd
courier:x:1008:8:courier-authlib courier user:/nonexistent:/bin/false
$ 

This suggests a problem with user_exists() and group_exists() in
mk/pkginstall/usergroupfuncs.

I'm building --unprivileged.

I notice that courier-imap managed to work OK, picking up my login
username:group instead of courier:mail

$ grep COURIER_ mail/courier-imap/work/.pkgdb/+BUILD_INFO
COURIER_GROUP=candlerb
COURIER_GROUP=candlerb
COURIER_USER=candlerb
COURIER_USER=candlerb

although I haven't been able to workout from the makefiles how COURIER_USER
is actually getting set to candlerb, nor whether PKG_UID.candlerb is being
set.

I found these snippets:

[security/courier-authlib/Makefile.common]
COURIER_USER?=          courier
COURIER_GROUP?=         mail
...
PKG_GROUPS=             ${COURIER_GROUP}
PKG_USERS=              ${COURIER_USER}:${COURIER_GROUP}

[mk/pkginstall/bsd.pkginstall.mk]
.for _entry_ in ${PKG_USERS}
.  for e in ${_entry_:C/\:.*//}
.    if defined(USERGROUP_PHASE)
# Determine the numeric UID of each user.
USE_TOOLS+=     perl
PKG_UID.${e}_cmd=                                                       \
        if ${TEST} ! -x ${PERL5}; then ${ECHO} ""; exit 0; fi;          \
        ${PERL5} -le 'print scalar getpwnam shift' ${e}
PKG_UID.${e}?=  ${PKG_UID.${e}_cmd:sh:M*}
.    endif
_PKG_USERS+=    
${_entry_}:${PKG_UID.${e}}:${PKG_GECOS.${e}:Q}:${PKG_HOME.${e}:Q}:${PKG_SHELL.${e}:Q}
.  endfor
.endfor

but there's a bit too much bmake magic in there for me :-(

Perl is installed and working though:

$ ~/pkg/bin/perl5.10.1 -le 'print scalar getpwnam shift' candlerb
1005

Regards,

Brian.


Home | Main Index | Thread Index | Old Index