Message ID | CAAaf0CCFHwF=QFTxxzLNN_X=CtZWav8NmQ=U2QW+=UQ6t5keUA@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#47435] gnu: mail: Make the sendmail package actually output its binary | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
On Mon, 2021-03-29 at 16:24 +0200, Rovanion Luckey wrote: > Attached to this email you will find three patches that > 1. make the sendmail binary appear in PATH after the sendmail package > is > installed, > 2. add libmilter to the package collection and > 3. updates sendmail and libmilter to 8.16.1. > > I ended up putting smrsh back in libexec because that is where all > the > other distros put it and seems like a program that should only be > used by > sendmail itself. Thank you for the patches! > + (synopsis "Sendmail library for creating mail filters."))) > + On the commit message, the convention is that all titles end with a period, also all statements in the subtext also end with a period, and that the subtext is wrapped to 80 columns (unless links). Look at other commit messages for examples. It seems in your latest patches applied on top of master, the 'sendmail' package does not build: starting phase `pre-install' Using M4=/gnu/store/jlm51s1gz6pah5bn7mc1i12kj5xilhck-m4-1.4.18/bin/m4 ../../devtools/bin/install.sh -c -o root -g bin -m 0444 sendmail.cf /gnu/store/6iaqmnb3rgcjdh3jz56x4r1hafalrvmg-sendmail- 8.16.1/etc/mail/sendmail.cf cp: cannot create regular file '/gnu/store/6iaqmnb3rgcjdh3jz56x4r1hafalrvmg-sendmail- 8.16.1/etc/mail/sendmail.cf': No such file or directory make: *** [Makefile:83: install-sendmail-cf] Error 1 command "sh" "Build" "install-cf" failed with status 2 builder for `/gnu/store/7rm2hkxw5sqz34k562wfgwsfvpg0avsk-sendmail- 8.16.1.drv' failed with exit code 1 @ build-failed /gnu/store/7rm2hkxw5sqz34k562wfgwsfvpg0avsk-sendmail- 8.16.1.drv - 1 builder for `/gnu/store/7rm2hkxw5sqz34k562wfgwsfvpg0avsk-sendmail-8.16.1.drv' failed with exit code 1 derivation '/gnu/store/7rm2hkxw5sqz34k562wfgwsfvpg0avsk-sendmail- 8.16.1.drv' offloaded to 'www.proxmox-2.schmilblick.org' failed: build of `/gnu/store/7rm2hkxw5sqz34k562wfgwsfvpg0avsk-sendmail-8.16.1.drv' failed build of /gnu/store/7rm2hkxw5sqz34k562wfgwsfvpg0avsk-sendmail- 8.16.1.drv failed libmilter builds fine however. I noticed it builds as a static library: /gnu/store/vdg98ynngj637sdn1xazgafb8af8fv2j-libmilter- 1.0.1/lib/libmilter.so.: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), statically linked, not stripped Is there any build flag to disable that? If so, I think we probably should, for security updates of it's dependencies, but it doesnt look like it has any, not even the glibc? Maybe it's not so important here. I also noticed that there was a weird naming for the actual so file, it ends with a dot '.': $ tree $(./pre-inst-env guix build libmilter) /gnu/store/vdg98ynngj637sdn1xazgafb8af8fv2j-libmilter-1.0.1 ├── include │ └── libmilter │ ├── mfapi.h │ └── mfdef.h ├── lib │ ├── libmilter.a │ ├── libmilter.so -> libmilter.so. <<-- here │ └── libmilter.so. <<-- also here └── share └── doc └── libmilter-1.0.1 └── LICENSE 6 directories, 6 files Again it will work anyways I believe, not crucial. > +(define-public libmilter > + (package > + (inherit sendmail) > + (name "libmilter") > + (version "1.0.1") Where does this version come from? Are you sure about that? Also do note that changing the version field here in libmilter does not change the version used in the origin of the inherited package So it's using the same sources as sendmail exactly, that's what you want? > + (arguments > + (substitute-keyword-arguments (package-arguments sendmail) > + ((#:phases phases) > + `(modify-phases ,phases > + (replace 'build > + (lambda* _ > + (with-directory-excursion "libmilter" > + (invoke "sh" "Build")) > + #t)) > + (delete 'pre-install) > + (replace 'install > + (lambda* _ > + (with-directory-excursion "libmilter" > + (mkdir-p (string-append (assoc-ref %outputs "out") > "/lib")) > + (invoke "make" "install")) > + #t)))))) > + (synopsis "Sendmail library for creating mail filters."))) > + I suggest adding a dedicated synopsis and description here, also synopsises as I see it should not be sentences and not end with a period, descriptions on the other hand should be full sentences, look at the other packages for inspiration. Léo
To add on my previous message, also run the linter like below and try to fix the warnings: $ ./pre-inst-env guix lint libmilter sendmail gnu/packages/mail.scm:2871:2: libmilter@1.0.1: 'm4' should probably be a native input gnu/packages/mail.scm:2871:2: libmilter@1.0.1: file names of patches should start with the package name gnu/packages/mail.scm:2891:14: libmilter@1.0.1: no period allowed at the end of the synopsis gnu/packages/mail.scm:2871:2: libmilter@1.0.1: permanent redirect from http://sendmail.org to https://www.proofpoint.com/us/products/email-protection/open-source-email-solution gnu/packages/mail.scm:2871:2: libmilter@1.0.1: source not archived on Software Heritage gnu/packages/mail.scm:2858:5: sendmail@8.16.1: 'm4' should probably be a native input gnu/packages/mail.scm:2860:15: sendmail@8.16.1: permanent redirect from http://sendmail.org to https://www.proofpoint.com/us/products/email-protection/open-source-email-solution gnu/packages/mail.scm:2772:5: sendmail@8.16.1: source not archived on Software Heritage Thank you!
From 7629f800d16e37236e539397d0393d729bb06e73 Mon Sep 17 00:00:00 2001 From: Rovanion Luckey <rovanion.luckey@gmail.com> Date: Sat, 27 Mar 2021 18:28:02 +0100 Subject: [PATCH 1/3] gnu: sendmail: Fix output's directory structure. * gnu/packages/mail.scm (sendmail)[arguments]<#:phases>: Properly specify output directories in replacement 'configure and 'pre-> install. --- gnu/packages/mail.scm | 41 ++++++++++---- .../sendmail-libmilter-shared-library.patch | 56 +++++++++++++++++++ 2 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 gnu/packages/patches/sendmail-libmilter-shared-library.patch diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b02f547e03..a1f4147aa5 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2742,7 +2742,8 @@ powerful user customization features.") version ".tar.gz")) (sha256 (base32 - "0fdl9ndmspqspdlmghzxlaqk56j3yajk52d7jxcg21b7sxglpy94")))) + "0fdl9ndmspqspdlmghzxlaqk56j3yajk52d7jxcg21b7sxglpy94")) + (patches (search-patches "sendmail-libmilter-shared-library.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -2761,23 +2762,44 @@ powerful user customization features.") (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh")))) #t)) (replace 'configure - (lambda _ + (lambda* (#:key outputs #:allow-other-keys) ;; Render harmless any attempts to chown or chgrp (substitute* "devtools/bin/install.sh" (("owner=\\$2") "owner=''") (("group=\\$2") "group=''")) - (with-output-to-file "devtools/Site/site.config.m4" - (lambda () - (format #t " + (let ((out (assoc-ref outputs "out"))) + (with-output-to-file "devtools/Site/site.config.m4" + (lambda () + ;; See 'devtools/M4/UNIX/defines.m4' for the list of + ;; installation directories. + (format #t " define(`confCC', `gcc') +define(`confAR', `ar') +define(`confCCOPTS', `-fPIC') define(`confOPTIMIZE', `-g -O2') define(`confLIBS', `-lresolv') define(`confINSTALL', `~a/devtools/bin/install.sh') define(`confDEPEND_TYPE', `CC-M') define(`confINST_DEP', `') -" (getcwd)))) + +define(`confLIBDIR', `~a/lib/') +define(`confINCLUDEDIR', `~a/include') +define(`confHFDIR', `~a/etc/mail') +define(`confSTDIR', `~a/etc/mail') +define(`confMBINDIR', `~a/sbin') +define(`confUBINDIR', `~a/bin') +define(`confSBINDIR', `~a/sbin') +define(`confEBINDIR', `~a/libexec') +define(`confMANROOT', `~a/share/man')~%" + (getcwd) + out out out out out out out out out)))) + (substitute* "cf/cf/Makefile" + (("^MAILDIR=.*") + (string-append "MAILDIR = " + (assoc-ref outputs "out") + "/etc/mail\n"))) #t)) (replace 'build (lambda _ @@ -2789,10 +2811,9 @@ define(`confINST_DEP', `') (add-before 'install 'pre-install (lambda _ (let ((out (assoc-ref %outputs "out"))) - (mkdir-p (string-append out "/usr/bin")) - (mkdir-p (string-append out "/usr/sbin")) - (mkdir-p (string-append out "/etc/mail")) - (setenv "DESTDIR" out) + (mkdir-p (string-append out "/bin")) + (mkdir-p (string-append out "/sbin")) + (mkdir-p (string-append out "/var/spool/mail")) (with-directory-excursion "cf/cf" (invoke "sh" "Build" "install-cf")) #t)))) diff --git a/gnu/packages/patches/sendmail-libmilter-shared-library.patch b/gnu/packages/patches/sendmail-libmilter-shared-library.patch new file mode 100644 index 0000000000..1e256c59ec --- /dev/null +++ b/gnu/packages/patches/sendmail-libmilter-shared-library.patch @@ -0,0 +1,56 @@ +diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3/devtools/M4/UNIX/milterlibrary.m4 +--- sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 1970-01-01 01:00:00.000000000 +0100 ++++ sendmail-8.14.3/devtools/M4/UNIX/milterlibrary.m4 2009-08-22 21:51:10.000000000 +0200 +@@ -0,0 +1,39 @@ ++divert(-1) ++# ++# Copyright (c) 1999-2001 Sendmail, Inc. and its suppliers. ++# All rights reserved. ++# ++# By using this file, you agree to the terms and conditions set ++# forth in the LICENSE file which can be found at the top level of ++# the sendmail distribution. ++# ++# ++# Definitions for Makefile construction for sendmail ++# ++divert(0)dnl ++include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl ++define(`confSOEXT', ifdef(`confSOEXT', `confSOEXT', `so'))dnl ++bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl ++bldPUSH_TARGET(bldCURRENT_PRODUCT`.'confSOEXT bldCURRENT_PRODUCT`.a')dnl ++bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl ++bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl ++ ++include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4') ++divert(bldTARGETS_SECTION) ++bldCURRENT_PRODUCT`.'confSOEXT: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} ++ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.confSOEXT ifdef(`confSONAME',`-Wl,confSONAME,bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}') ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS} ++bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} ++ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'} ++ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a ++ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)') ++ ++install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ++ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ') ++ ${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}" ++ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT" ++ ${INSTALL} -c -m 644 bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') ++ ++bldCURRENT_PRODUCT-clean: ++ rm -f ${OBJS} bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ${MANPAGES} ++ ++divert(0) ++COPTS+= confCCOPTS_SO +diff -Nru sendmail-8.14.3.orig/libmilter/Makefile.m4 sendmail-8.14.3/libmilter/Makefile.m4 +--- sendmail-8.14.3.orig/libmilter/Makefile.m4 2008-04-08 07:23:44.000000000 +0200 ++++ sendmail-8.14.3/libmilter/Makefile.m4 2009-08-22 21:53:35.000000000 +0200 +@@ -9,7 +9,7 @@ + SMSRCDIR=ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail') + PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ') + +-bldPRODUCT_START(`library', `libmilter') ++bldPRODUCT_START(`milterlibrary', `libmilter') + define(`bldINSTALLABLE', `true') + define(`LIBMILTER_EXTRAS', `errstring.c strl.c') + APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL -Dsm_snprintf=snprintf') -- 2.30.0