the owner of all installed files is a non-root user. This change
affects most packages that require special users or groups by making
them use the specified unprivileged user and group instead.
(1) Add two new variables PKG_GROUPS_VARS and PKG_USERS_VARS to
unprivileged.mk. These two variables are lists of other bmake
variables that define package-specific users and groups. Packages
that have user-settable variables for users and groups, e.g. apache
and APACHE_{USER,GROUP}, courier-mta and COURIER_{USER,GROUP},
etc., should list these variables in PKG_USERS_VARS and PKG_GROUPS_VARS
so that unprivileged.mk can know to set them to ${UNPRIVILEGED_USER}
and ${UNPRIVILEGED_GROUP}.
(2) Modify packages to use PKG_GROUPS_VARS and PKG_USERS_VARS.
since they always need a C compiler, even when the source code is
completely in C++.
For some other packages, stated in the comment that a C compiler is
really not needed.
- Fixed the SMTP protocol module to send QUIT on protocol failures.
- Added support for the SMTP AUTH LOGIN method. Thanks to Sean
MacLennan for the suggestion.
- Fixed the SMTP protocol module to send EHLO instead of HELO when doing
authentication. Thanks to Norbert Tretkowski for pointing this out.
- Fixed compile breakage on Solaris due to use of setenv.
- Fixed netstring length bug in QMQP sending module.
- If the sender name cannot be determined from the environment
variables, try to pull it from /etc/passwd before using "unknown".
Thanks Roderick Schertler.
INSTALL/DEINSTALL script creation within pkgsrc.
If an INSTALL or DEINSTALL script is found in the package directory,
it is automatically used as a template for the pkginstall-generated
scripts. If instead, they should be used simply as the full scripts,
then the package Makefile should set INSTALL_SRC or DEINSTALL_SRC
explicitly, e.g.:
INSTALL_SRC= ${PKGDIR}/INSTALL
DEINSTALL_SRC= # emtpy
As part of the restructuring of the pkginstall framework internals,
we now *always* generate temporary INSTALL or DEINSTALL scripts. By
comparing these temporary scripts with minimal INSTALL/DEINSTALL
scripts formed from only the base templates, we determine whether or
not the INSTALL/DEINSTALL scripts are actually needed by the package
(see the generate-install-scripts target in bsd.pkginstall.mk).
In addition, more variables in the framework have been made private.
The *_EXTRA_TMPL variables have been renamed to *_TEMPLATE, which are
more sensible names given the very few exported variables in this
framework. The only public variables relating to the templates are:
INSTALL_SRC INSTALL_TEMPLATE
DEINSTALL_SRC DEINSTALL_TEMPLATE
HEADER_TEMPLATE
The packages in pkgsrc have been modified to reflect the changes in
the pkginstall framework.
- Fixed problem with multiple arguments to protocol modules.
Thanks Sascha Silbe.
- Fixed extraneous spaces in SMTP sender.
- Made permissions on queued files more strict.
- Handle the "-bs" flag in the sendmail wrapper by dieing when we see it.
- Fixed the address parser handling domain names with trailing periods.
- Fixed bug in header parsing that would cause the last header line to
be repeated if there was no body.
- Fixed bug in handling headers containing CR+LF line endings.
pkgsrc changes:
* Replace @exec and @unexec in PLIST with bsd.pkginstall.mk incantations
* sort PLIST
* Honor VARBASE in manpages and rc.d script
* Enable logging in rc.d script
* Allow rc.d script to start nullmailer without rc.subr
* Take MAINTAINER.
And always is defined as share/examples/rc.d
which was the default before.
This rc.d scripts are not automatically added to PLISTs now also.
So add to each corresponding PLIST as required.
This was discussed on tech-pkg in late January and late April.
Todo: remove the RCD_SCRIPTS_EXAMPLEDIR uses in MESSAGES and elsewhere
and remove the RCD_SCRIPTS_EXAMPLEDIR itself.
under share/examples/rc.d. The variable name already was named
RCD_SCRIPTS_EXAMPLEDIR.
This is from ideas from Greg Woods and others.
Also bumped PKGREVISION for all packages using RCD_SCRIPTS mechanism
(as requested by wiz).
under ${PREFIX} instead of being an absolute path.
So fix the references using RCD_SCRIPTS_EXAMPLEDIR to be
${PREFIX}/${RCD_SCRIPTS_EXAMPLEDIR}.
This should have no changes to use before.
Please note that the MESSAGE files in most cases are wrong in the
first place. We have automated mechanisms and could have an automated
message for explaining rc.d script usage. (This is something to do!)
which installs to ${RCD_SCRIPTS_EXAMPLEDIR}. But the MESSAGE
referred to wrong hard-coded location if the RCD_SCRIPTS_EXAMPLEDIR
was not the default. So use RCD_SCRIPTS_EXAMPLEDIR instead.
PKGREVISION not bumped because if someone had changed
RCD_SCRIPTS_EXAMPLEDIR before recent change of autoregistration
of rc.d script in PLIST, then it could not have been packaged
in first place.
Note that this commit does not imply that the MESSAGE is correct.
In some cases, the MESSAGE is clearly wrong such as suggesting
running the rc.d script from the example directory (which will work
although).
the RCD_SCRIPTS rc.d script(s) to the PLIST.
This GENERATE_PLIST idea is part of Greg A. Woods'
PR #22954.
This helps when the RC_SCRIPTS are installed to
a different ${RCD_SCRIPTS_EXAMPLEDIR}. (Later,
the default RCD_SCRIPTS_EXAMPLEDIR will be changed
to be more clear that they are the examples.)
These patches also remove the etc/rc.d/ scripts from PLISTs
(of packages that use RCD_SCRIPTS). (This also removes
now unused references from openssh* makefiles. Note that
qmail package has not been changed yet.)
I have been doing automatic PLIST registration for RC_SCRIPTS
for over a year. Not all of these packages have been tested,
but many have been tested and used.
Somethings maybe to do:
- a few packages still manually install the rc.d scripts to
hard-coded etc/rc.d. These need to be fixed.
- maybe remove from mk/${OPSYS}.pkg.dist mtree specifications too.
- use 1.0.0.7 as PKGVERSION, 1.00RC7 is invalid
- USE_PKGINSTALL, don't include bsd.pkg.install.mk directly
- use automatic rc.d scripts handling
- install example mailer.conf
- minor cleanups
Changes for pkgsrc:
* Added an rc.d/nullmailer script
* Added brief instructions on how to set up nullmailer in MESSAGE.
* Changed spool directory from /var/nullmailer to /var/spool/nullmailer
Changes in nullmailer itself:
Changes in version 1.00RC7
- Fixed typo in smtp protocol module that caused HELO to be sent without
a hostname.
- Added a one-shot mode to nullmailer-send, triggered by setting the
pausetime to zero.
Note: If no further bugs are found, this will become the official
version 1.00 release.
Changes in version 1.00RC6
- Protocol modules now report all failure and success messages.
- Removed the whole gethostname/getdomainname mess and replaced it with
code to read the hostname from the "me" control file, and the default
domain name from the "defaultdomain" control file.
- Fixed a bug that would cause lines starting with a period to have that
period stripped when it was sent via SMTP.
- Added some missing includes to fix compilation failures in various
sources.
- Fixed a bug in the setenv function in sendmail.cc.
NOTE! Make sure to set up the new "me" control file before using this
version. The RPM install does this automatically.
have it be automatically included by bsd.pkg.mk if USE_PKGINSTALL is set
to "YES". This enforces the requirement that bsd.pkg.install.mk be
included at the end of a package Makefile. Idea suggested by Julio M.
Merino Vidal <jmmv at menta.net>.
This is nullmailer, a sendmail/qmail/etc replacement MTA for hosts
which relay to a fixed set of smart relays. It is designed to be
simple to configure, secure, and easily extendable.