commit ad0c6057f058b3e9cb67cc12cc3d2dc8a82d9900 parent 8c53cd40a3329d682a905decb1f8734fa1ba2e9a Author: Ellenor Malik <ellenor@umbrellix.net> Date: Fri, 3 Sep 2021 11:07:07 -0700 Moved most documentation to doc/, hierarchy cleanup in progress Diffstat:
85 files changed, 500 insertions(+), 183 deletions(-)
diff --git a/doc/LICENCE.fmxs b/doc/LICENCE.fmxs @@ -0,0 +1,230 @@ +Copyright 2021 Ellenor Bjornsdottir. All Rights Reserved. + +Your licence to this software is governed under the laws of BC, Canada, except as required by +applicable laws where you may reside. + +This is software, and it is NOT Open Source software, +per https://opensource.org/faq#avoid-unapproved-licenses . + +The source is available to you and your assigns provided that you and they follow the terms below. +If they are onerous, speak to the Initial Developer(s) and the Contributor(s) and/or their heirs or +assigns, and you may be able to obtain special dispensation to use and redistribute the software +under other licence terms. + +You should have received a copy of the Umbrellix Softare Licence, or other special licence you may +have negotiated, with this programme. If you haven't, please retrieve the CDDL-1.0 (on which the USL +is based): +https://opensource.org/licenses/cddl1.txt and prepend: + +Appendix 1. +USL replaces Section 4.1 with the following text: +Ellenor Agnes Bjornsdottir, or any person, natural or legal, she may with notice to initial licencees +assign the status to, is the licence steward and may, from time to time, publish revised and/or new +versions of this licence. Each version will be given a distinguishing version number, which may +be a commit number from a version control system. This licence may be modified solely as provided by +section 4.3. + +Appendix 2. +USL renumbers Section 4.3 to Section 4.3.1. +USL adds a Section 4.3.2, entitled "This licence is not the Sun CDDL", with the following text. +The terms of the USL are not those of the CDDL as published by Sun Microsystems, Inc. and +its heirs, assigns and successors. The terms of the USL are substantively different from the CDDL's, +and combination of the two licences in a larger work may result in a work that is not distributable. + +Appendix 3. +USL renumbers Section 6.1 to Section 6.1.1. +USL adds a Section 6.1.2, entitled "Resumability", with the following text. +This licence, and the rights previously granted under this licence, will resume automatically should You +wholly cure a breach of the licence that results in termination under section 6.1.1. You remain liable for +damages incurred by the initial developer or any contributor as a result of the breach. + +Appendix 4. +USL appends the following text to 1.4. +In the case of Covered Software which is not software, the Executable is the final form in which the +Covered Software is intended to be consumed. (Non-legal readers: think of a releasable piece of music, +regardless of how it's encoded) + +Appendix 5. +USL appends the following text to 1.12. +In the case of Covered Software which is not software, the Source Code is the data from which the +Executable is generated. (Non-legal readers: think of a piano roll in a DAW.) + +Appendix 6. +USL replaces the following text from Section 9: + This Licence shall be governed by the law of the jurisdiction specified in a notice contained within + the Original Software (except to the extent applicable law, if any, provides otherwise), excluding + such jurisdiction's conflict-of-law provisions. Any litigation relating to this Licence shall be + subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a + notice contained within the Original Software, with the losing party responsible for costs, including, + without limitation, court costs and reasonable attorneys' fees and expenses. The application of the + United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. +with the following text: + This Licence shall be governed by the law of the jurisdiction specified in a notice contained within + the Original Software (except to the extent applicable law, if any, provides otherwise), INCLUDING + such jurisdiction's conflict-of-law provisions. The application of the United Nations Convention + on Contracts for the International Sale of Goods is not limited by this section. Should there be no + jurisdiction notice included with the Original Software, or should it be waived by the initial + developer(s), You may opt that the licence be governed under the law of the jurisdiction in which + You reside. + +Appendix 7. +USL changes Section 1.10 to add: + , or other covered works, +after the words + "computer software code." + +The USL, as amended, is reproduced below. + +This is the Umbrellix Software Licence (USL), version 0.1. +This is NOT the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 on which it is based. + +1. Definitions. + +1.1. "Contributor" means each individual or entity that creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor. + +1.3. "Covered Software" means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof. + +1.4. "Executable" means the Covered Software in any form other than Source Code. In the case of Covered Software which is not software, the Executable is the final form in which the Covered Software is intended to be consumed. (Non-legal readers: think of a releasable piece of music, regardless of how it's encoded) + +1.5. "Initial Developer" means the individual or entity that first makes Original Software available under this License. + +1.6. "Larger Work" means a work which combines Covered Software or portions thereof with code not governed by the terms of this License. + +1.7. "License" means this document. + +1.8. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + +1.9. "Modifications" means the Source Code and Executable form of any of the following: + +A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications; + +B. Any new file that contains any part of the Original Software or previous Modification; or + +C. Any new file that is contributed or otherwise made available under the terms of this License. + +1.10. "Original Software" means the Source Code and Executable form of computer software code, or other covered works, that is originally released under this License. + +1.11. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + +1.12. "Source Code" means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code. In the case of Covered Software which is not software, the Source Code is the data from which the Executable is generated. (Non-legal readers: think of a piano roll in a DAW.) + +1.13. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + +2. License Grants. + +2.1. The Initial Developer Grant. + +Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof). + +(c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License. + +(d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices. + +2.2. Contributor Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, each +Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + +(c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party. +(d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor. + +3. Distribution Obligations. + +3.1. Availability of Source Code. + +Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange. + +3.2. Modifications. + +The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. + +3.3. Required Notices. + +You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer. + +3.4. Application of Additional Terms. + +You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients' rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + +3.5. Distribution of Executable Versions. + +You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient's rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + +3.6. Larger Works. + +You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software. + +4. Versions of the License. + +4.1. New Versions. + +Ellenor Agnes Bjornsdottir, or any person, natural or legal, she may with notice to initial licencees assign the status to, is the licence steward and may, from time to time, publish revised and/or new +versions of this licence. Each version will be given a distinguishing version number, which may be a commit number from a version control system. This licence may be modified solely as provided by section 4.3. + +(In the original text, this section had read as follows: Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.) + +4.2. Effect of New Versions. + +You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward. + +4.3. Modified Versions. + +4.3.1. Modified Versions. + +When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License. + +4.3.2. This licence is not the Sun CDDL + +The terms of the USL are not those of the CDDL as published by Sun Microsystems, Inc. and its heirs, assigns and successors. The terms of the USL are substantively different from the CDDL's, and combination of the two licences in a larger work may result in a work that is not distributable. + +5. DISCLAIMER OF WARRANTY. + +COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +6. TERMINATION. + +6.1. Termination upon violation, resumption upon cure + +6.1.1. Termination upon violation + +This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + +6.1.2. Resumption upon cure + +This licence, and the rights previously granted under this licence, will resume automatically should You wholly cure a breach of the licence that results in termination under section 6.1.1. You remain liable for damages incurred by the initial developer or any contributor as a result of the breach. + +6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as "Participant") alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant. + +6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + +The Covered Software is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" (as that term is defined at 48 C.F.R. ยค 252.227-7014(a)(1)) and "commercial computer software documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License. + +9. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. + +This Licence shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), INCLUDING such jurisdiction's conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is not limited by this section. Should there be no jurisdiction notice included with the Original Software, or should it be waived by the initial developer(s), You may opt that the licence be governed under the law of the jurisdiction in which You reside. + +Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. diff --git a/PIC.local2alias.md b/doc/PIC.local2alias diff --git a/PIC.local2ext.md b/doc/PIC.local2ext diff --git a/PIC.local2local.md b/doc/PIC.local2local diff --git a/PIC.local2rem.md b/doc/PIC.local2rem diff --git a/PIC.local2virt.md b/doc/PIC.local2virt diff --git a/PIC.nullclient.md b/doc/PIC.nullclient diff --git a/PIC.relaybad.md b/doc/PIC.relaybad diff --git a/PIC.relaygood.md b/doc/PIC.relaygood diff --git a/PIC.rem2local.md b/doc/PIC.rem2local diff --git a/doc/README.fmxs b/doc/README.fmxs @@ -0,0 +1,84 @@ + ...:: Copying +Changes to notqmail that make notqmail NightmareMail are licenced to you, the +user, as termed in doc/LICENCE.fmxs. This is similar to the CDDL, except there +is a resumptibility clause. + +Notqmail itself appears to be available under the Unlicense. + + ...:: NightmareMail/FMXS +NightmareMail (service resource locator: net.umbrellix.mail.fmxs) is a +mailer daemon for the 21st century operating system integrator. It's small, +it's light on system resources, and stable tags are backed by a USD50* +security guarantee from ellenor at site umbrellix.net if you can prove that +the bug comes from NightmareMail or our upstream notqmail. Other than the +amount and the provider, the terms of the guarantee are identical to the +security guarantee that was provided with qmail. + +Nightmare Mail is also known as FMXS, as it'll be included in New Vision, +the working codename for the Falsix operating system, and is our default +Mail eXchanger Service. + +* = Void where prohibited by law. Bitcoin is used as the payment method. + If the value of 1/6 of my savings account is higher than USD50, you will + receive the higher amount for successfully triggering a security guarantee + payment. Local holes experienced by sealed servers will receive 1/2 the + guaranteed amount. Shell server users are backed by the full guarantee. + Only the first reporter of a specific bug may get the guaranteed amount. + + ...:: Features +Over and above notqmail? None yet. + +We plan on adding, in the future: + [ ] 21st-century RBL support, with IPv4 and IPv6. + Most RBLs in the 21st century use an A record to indicate + that an address is listed, not a TXT record as they did in + 1997. rblsmtpd, part of Dan Bernstein's ucspi-tcp program, + isn't set up to handle this. It also rejects rbl'd users + who may be rbl'd because they're on dialup. "Dialup" in MTA + admin terms nowadays can mean fibre-optic access, but it's + still dialup. + We've received a licence from the developer of qmail-dnsbl + which permits us to integrate and modify that patch for + this purpose. + + [ ] Modern, pure BSD-make build system, for inclusion in the + New Vision integration + New Vision is Umbrellix' fork of HardenedBSD. As its name + suggests, we intend to pursue a New Vision in BSD system + design. Many of the programs we wish to use to do that currently + have build systems written in GNU Make. We do not include GPL'd + software in the base system, for licensing reasons (many FreeBSD + components are under the CDDL). As far as I know, FMXS is + currently built with a djb custom build system, which is inflexible + to the needs of modern sites. Our recommended startTLS frontend, from + the venerable Laurent Bercot from skarnet.org, uses GNU Make too. + GNU-free build systems will be part of the New Vision project. + + [ ] fmxs-lmtpc - QMQP client, but speaking LMTP instead of QMQP. + In the modern day, many sites use local delivery solutions from + Dovecot or other IMAP servers, which also support Maildir. These + LDAs as they're called often speak LMTP, which is a protocol used + for intra-site email delivery similar to QMQP. Easing the transition + away from Postfix for sites like this - sites like Umbrellix - is + a high priority of NightmareMail. + + [ ] QMQP over SSH. + QMQP is an intrasite protocol like LMTP. It doesn't use transport + security and shouldn't be exposed to anonymous hosts. Hey! That's + something ssh can alleviate. ssh provides both transport security + and public key authentication to front the qmqp server. Support for + firing off a QMQP over SSH connection, analogous to UUCP over SSH used + in many satellite site configurations, will be added, perhaps via + a generic pipe mechanism. + + [ ] fmxs-configengine - single-file configuration compilation + Let's face it: qmail control files are a bit harder to work with than + the kinds of configuration files you may be used to. Luckily, most + are one line long, and all are flat-formatted. We can use this to + our advantage by reading a file in rough .ini format, and writing + the values in that file to fmxs control files, should you prefer + single file configuration over control files. configengine will + optionally be able to signal net.umbrellix.mail.fmxs services + to change state through (s6-)svc if a configuration option they + only read at boot, or only read on hangup, has been changed. + This'll make your life as an email admin much easier. diff --git a/addresses.5 b/doc/man/addresses.5 diff --git a/bouncesaying.1 b/doc/man/bouncesaying.1 diff --git a/case.3 b/doc/man/case.3 diff --git a/cdb.3 b/doc/man/cdb.3 diff --git a/coe.3 b/doc/man/coe.3 diff --git a/condredirect.1 b/doc/man/condredirect.1 diff --git a/datetime.3 b/doc/man/datetime.3 diff --git a/direntry.3 b/doc/man/direntry.3 diff --git a/dot-qmail.9 b/doc/man/dot-qmail.9 diff --git a/env.3 b/doc/man/env.3 diff --git a/envelopes.5 b/doc/man/envelopes.5 diff --git a/error.3 b/doc/man/error.3 diff --git a/error_str.3 b/doc/man/error_str.3 diff --git a/error_temp.3 b/doc/man/error_temp.3 diff --git a/except.1 b/doc/man/except.1 diff --git a/fd_copy.3 b/doc/man/fd_copy.3 diff --git a/fd_move.3 b/doc/man/fd_move.3 diff --git a/fifo_make.3 b/doc/man/fifo_make.3 diff --git a/forgeries.7 b/doc/man/forgeries.7 diff --git a/forward.1 b/doc/man/forward.1 diff --git a/getln.3 b/doc/man/getln.3 diff --git a/getln2.3 b/doc/man/getln2.3 diff --git a/maildir.5 b/doc/man/maildir.5 diff --git a/maildir2mbox.1 b/doc/man/maildir2mbox.1 diff --git a/maildirmake.1 b/doc/man/maildirmake.1 diff --git a/mailsubj.1 b/doc/man/mailsubj.1 diff --git a/mbox.5 b/doc/man/mbox.5 diff --git a/now.3 b/doc/man/now.3 diff --git a/preline.1 b/doc/man/preline.1 diff --git a/qbiff.1 b/doc/man/qbiff.1 diff --git a/qmail-clean.8 b/doc/man/qmail-clean.8 diff --git a/qmail-command.8 b/doc/man/qmail-command.8 diff --git a/qmail-control.9 b/doc/man/qmail-control.9 diff --git a/qmail-getpw.9 b/doc/man/qmail-getpw.9 diff --git a/qmail-header.5 b/doc/man/qmail-header.5 diff --git a/qmail-inject.8 b/doc/man/qmail-inject.8 diff --git a/qmail-limits.9 b/doc/man/qmail-limits.9 diff --git a/qmail-local.8 b/doc/man/qmail-local.8 diff --git a/qmail-log.5 b/doc/man/qmail-log.5 diff --git a/qmail-lspawn.8 b/doc/man/qmail-lspawn.8 diff --git a/qmail-newmrh.9 b/doc/man/qmail-newmrh.9 diff --git a/qmail-newu.9 b/doc/man/qmail-newu.9 diff --git a/qmail-pop3d.8 b/doc/man/qmail-pop3d.8 diff --git a/qmail-popup.8 b/doc/man/qmail-popup.8 diff --git a/qmail-pw2u.9 b/doc/man/qmail-pw2u.9 diff --git a/qmail-qmqpc.8 b/doc/man/qmail-qmqpc.8 diff --git a/qmail-qmqpd.8 b/doc/man/qmail-qmqpd.8 diff --git a/qmail-qmtpd.8 b/doc/man/qmail-qmtpd.8 diff --git a/qmail-qread.8 b/doc/man/qmail-qread.8 diff --git a/qmail-qstat.8 b/doc/man/qmail-qstat.8 diff --git a/qmail-queue.8 b/doc/man/qmail-queue.8 diff --git a/qmail-remote.8 b/doc/man/qmail-remote.8 diff --git a/qmail-rspawn.8 b/doc/man/qmail-rspawn.8 diff --git a/qmail-send.9 b/doc/man/qmail-send.9 diff --git a/qmail-showctl.8 b/doc/man/qmail-showctl.8 diff --git a/qmail-smtpd.8 b/doc/man/qmail-smtpd.8 diff --git a/qmail-start.9 b/doc/man/qmail-start.9 diff --git a/qmail-tcpok.8 b/doc/man/qmail-tcpok.8 diff --git a/qmail-tcpto.8 b/doc/man/qmail-tcpto.8 diff --git a/qmail-users.9 b/doc/man/qmail-users.9 diff --git a/qmail.7 b/doc/man/qmail.7 diff --git a/qreceipt.1 b/doc/man/qreceipt.1 diff --git a/sgetopt.3 b/doc/man/sgetopt.3 diff --git a/splogger.8 b/doc/man/splogger.8 diff --git a/stralloc.3 b/doc/man/stralloc.3 diff --git a/subgetopt.3 b/doc/man/subgetopt.3 diff --git a/tcp-env.1 b/doc/man/tcp-env.1 diff --git a/tcp-environ.5 b/doc/man/tcp-environ.5 diff --git a/wait.3 b/doc/man/wait.3 diff --git a/hier.c b/hier.c @@ -70,182 +70,182 @@ void hier() hier_queue(); - c(auto_qmail,"boot","home",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","home+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","proc",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","proc+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm1",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm1+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm2",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm2+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm3",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm3+df",auto_uido,auto_gidq,0755); - - c(auto_qmail,"doc","FAQ.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","UPGRADE.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","SENDMAIL.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.alias.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.ctl.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.ids.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.maildir.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.mbox.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.vsm.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","TEST.deliver.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","TEST.receive.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","REMOVE.sendmail.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","REMOVE.binmail.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2alias.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2ext.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2local.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2rem.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2virt.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.nullclient.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.relaybad.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.relaygood.md",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.rem2local.md",auto_uido,auto_gidq,0644); - - c(auto_qmail,"bin","qmail-queue",auto_uidq,auto_gidq,04711); - c(auto_qmail,"bin","qmail-lspawn",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-start",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-getpw",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-local",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-remote",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-rspawn",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-clean",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-send",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-newu",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-newmrh",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-pw2u",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-inject",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","predate",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","datemail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","mailsubj",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-showctl",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qread",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qstat",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-tcpto",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-tcpok",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-pop3d",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-popup",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-qmqpc",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qmqpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qmtpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-smtpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","sendmail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","tcp-env",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qreceipt",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qbiff",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","forward",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","preline",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","condredirect",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","bouncesaying",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","except",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildirmake",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildir2mbox",auto_uido,auto_gidq,0755); - - c(auto_qmail,"man/man5","addresses.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","addresses.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","envelopes.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","maildir.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","mbox.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644); - - c(auto_qmail,"man/man7","forgeries.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man7","qmail.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","qmail.0",auto_uido,auto_gidq,0644); - - c(auto_qmail,"man/man1","forward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","forward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","condredirect.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","except.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","except.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","qbiff.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","preline.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","preline.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644); - - c(auto_qmail,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","splogger.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","splogger.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"boot","boot","home",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","home+df",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","proc",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","proc+df",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","binm1",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","binm1+df",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","binm2",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","binm2+df",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","binm3",auto_uido,auto_gidq,0755); + c(auto_qmail,"boot","boot","binm3+df",auto_uido,auto_gidq,0755); + + c(auto_qmail,"doc","doc","FAQ.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","UPGRADE.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","SENDMAIL.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.alias.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.ctl.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.ids.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.maildir.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.mbox.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","INSTALL.vsm.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","TEST.deliver.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","TEST.receive.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","REMOVE.sendmail.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","REMOVE.binmail.md",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.local2alias",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.local2ext",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.local2local",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.local2rem",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.local2virt",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.nullclient",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.relaybad",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.relaygood",auto_uido,auto_gidq,0644); + c(auto_qmail,"doc","doc","PIC.rem2local",auto_uido,auto_gidq,0644); + + c(auto_qmail,"bin","src","qmail-queue",auto_uidq,auto_gidq,04711); + c(auto_qmail,"bin","src","qmail-lspawn",auto_uido,auto_gidq,0700); + c(auto_qmail,"bin","src","qmail-start",auto_uido,auto_gidq,0700); + c(auto_qmail,"bin","src","qmail-getpw",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-local",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-remote",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-rspawn",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-clean",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-send",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","splogger",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-newu",auto_uido,auto_gidq,0700); + c(auto_qmail,"bin","src","qmail-newmrh",auto_uido,auto_gidq,0700); + c(auto_qmail,"bin","src","qmail-pw2u",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-inject",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","predate",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","datemail",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","mailsubj",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-showctl",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-qread",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-qstat",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-tcpto",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-tcpok",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-pop3d",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-popup",auto_uido,auto_gidq,0711); + c(auto_qmail,"bin","src","qmail-qmqpc",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-qmqpd",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-qmtpd",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qmail-smtpd",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","sendmail",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","tcp-env",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qreceipt",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","qbiff",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","forward",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","preline",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","condredirect",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","bouncesaying",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","except",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","maildirmake",auto_uido,auto_gidq,0755); + c(auto_qmail,"bin","src","maildir2mbox",auto_uido,auto_gidq,0755); + + c(auto_qmail,"man/man5","doc/man","addresses.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","addresses.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","envelopes.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","envelopes.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","maildir.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","maildir.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","mbox.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","mbox.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","dot-qmail.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","dot-qmail.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","qmail-control.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","qmail-control.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","qmail-header.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","qmail-header.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","qmail-log.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","qmail-log.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","qmail-users.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","qmail-users.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","doc/man","tcp-environ.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","doc/man","tcp-environ.0",auto_uido,auto_gidq,0644); + + c(auto_qmail,"man/man7","doc/man","forgeries.7",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat7","doc/man","forgeries.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man7","doc/man","qmail-limits.7",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat7","doc/man","qmail-limits.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man7","doc/man","qmail.7",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat7","doc/man","qmail.0",auto_uido,auto_gidq,0644); + + c(auto_qmail,"man/man1","doc/man","forward.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","forward.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","condredirect.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","condredirect.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","bouncesaying.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","bouncesaying.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","except.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","except.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","maildirmake.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","maildirmake.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","maildir2mbox.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","maildir2mbox.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","mailsubj.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","mailsubj.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","qreceipt.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","qreceipt.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","qbiff.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","qbiff.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","preline.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","preline.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man1","doc/man","tcp-env.1",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat1","doc/man","tcp-env.0",auto_uido,auto_gidq,0644); + + c(auto_qmail,"man/man8","doc/man","qmail-local.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-local.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-lspawn.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-lspawn.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-getpw.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-getpw.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-remote.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-remote.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-rspawn.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-rspawn.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-clean.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-clean.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-send.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-send.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-start.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-start.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","splogger.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","splogger.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-queue.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-queue.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-inject.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-inject.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-showctl.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-showctl.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-newmrh.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-newmrh.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-newu.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-newu.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-pw2u.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-pw2u.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-qread.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-qread.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-qstat.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-qstat.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-tcpok.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-tcpok.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-tcpto.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-tcpto.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-pop3d.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-pop3d.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-popup.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-popup.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-qmqpc.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-qmqpc.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-qmqpd.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-qmqpd.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-qmtpd.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-qmtpd.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-smtpd.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-smtpd.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man8","doc/man","qmail-command.8",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat8","doc/man","qmail-command.0",auto_uido,auto_gidq,0644); } diff --git a/hier.h b/hier.h @@ -6,7 +6,7 @@ extern void h(char *home, uid_t uid, gid_t gid, int mode); extern void d(char *home, char *subdir, uid_t uid, gid_t gid, int mode); extern void p(char *home, char *fifo, uid_t uid, gid_t gid, int mode); -extern void c(char *home, char *subdir, char *file, uid_t uid, gid_t gid, int mode); +extern void c(char *home, char *subdir, char *fromdir, char *file, uid_t uid, gid_t gid, int mode); extern void z(char *home, char *file, int len, uid_t uid, gid_t gid, int mode); extern void hier(void); extern void hier_queue(void); diff --git a/instcheck.c b/instcheck.c @@ -55,7 +55,7 @@ void p(char *home, char *fifo, uid_t uid, gid_t gid, int mode) perm("",home,"/",fifo,S_IFIFO,uid,gid,mode); } -void c(char *home, char *subdir, char *file, uid_t uid, gid_t gid, int mode) +void c(char *home, char *subdir, char *fromdir, char *file, uid_t uid, gid_t gid, int mode) { if (chdir(home) == -1) strerr_die4sys(111,FATAL,"unable to switch to ",home,": "); diff --git a/instchown.c b/instchown.c @@ -38,7 +38,7 @@ void p(char *home, char *fifo, uid_t uid, gid_t gid, int mode) strerr_die6sys(111,FATAL,"unable to chmod ",home,"/",fifo,": "); } -void c(char *home, char *subdir, char *file, uid_t uid, gid_t gid, int mode) +void c(char *home, char *subdir, char *fromdir, char *file, uid_t uid, gid_t gid, int mode) { if (chdir(home) == -1) strerr_die4sys(111,FATAL,"unable to switch to ",home,": "); diff --git a/instfiles.c b/instfiles.c @@ -99,14 +99,17 @@ char outbuf[SUBSTDIO_OUTSIZE]; substdio ssin; substdio ssout; -void c(char *home, char *subdir, char *file, uid_t uid, gid_t gid, int mode) +void c(char *home, char *subdir, char *fromdir, char *file, uid_t uid, gid_t gid, int mode) { int fdin; int fdout; stralloc dh = { 0 }; if (fchdir(fdsourcedir) == -1) - strerr_die2sys(111,FATAL,"unable to switch back to source directory: "); + strerr_die2sys(111,FATAL,"unable to switch back to top directory: "); + + if (chdir(fromdir) == -1) + strerr_die4sys(111,FATAL,"unable to switch back to from directory ",fromdir,": "); fdin = open_read(file); if (fdin == -1) {