Bug 240914

Summary: mail/fetchmail 6.4.1 failure in tests
Product: Ports & Packages Reporter: Konstantin Belousov <kib>
Component: Individual Port(s)Assignee: Matthias Andree <mandree>
Status: Closed FIXED    
Severity: Affects Only Me CC: chalpin, dhaag, freebsd-bugzilla, lantw44, mainland, mandree, marko.cupac
Priority: --- Flags: chalpin: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://gitlab.com/fetchmail/fetchmail/issues/6
Attachments:
Description Flags
patch-t.smoke none

Description Konstantin Belousov freebsd_committer freebsd_triage 2019-09-29 09:06:51 UTC
gmake  check-TESTS
gmake[4]: Entering directory '/wrkdirs/usr/ports/mail/fetchmail/work/fetchmail-6.4.1'
gmake[5]: Entering directory '/wrkdirs/usr/ports/mail/fetchmail/work/fetchmail-6.4.1'
FAIL: t.smoke
SKIP: t.validate-xhtml10
SKIP: t.validate-xhtml
PASS: t.x509_name_match

Are these tests needed at all for packaging ?

https://kib.kiev.ua/poudriere-solo/data/nuc_poudriere_11-head/2019-09-29_11h57m40s/logs/errors/fetchmail-6.4.1.log
Comment 1 Corey Halpin 2019-09-29 12:19:21 UTC
If t.smoke fails, that means that the built 'fetchmail' binary crashed trying to parse a trivial configuration file. Something is pretty broken in that case.

Thank you for providing the full poudriere logs; it's very helpful. From what I can see, it looks like the relevant options in your configuration are  ssl=openssl111 and GSSAPI_NONE=on.

I'm attempting to replicate this failure with those options. I'll follow up if I need more information.
Comment 2 Konstantin Belousov freebsd_committer freebsd_triage 2019-09-30 16:49:24 UTC
(In reply to Corey Halpin from comment #1)
Whatever test does, is not too related to my setup.  I extracted the freshly-built fetchmail binary from the saved workspace, and used it alone with my config file.  Everything worked fine.
Comment 3 Corey Halpin 2019-10-01 00:30:17 UTC
Created attachment 207968 [details]
patch-t.smoke

I wasn't able to replicate the problem in poudriere with the options I suspected. Nor with a complete copy of your make.conf from your logs.

However, mail from pkg-fallout reporting a failure in the build-as-user set provided a clue.

Does your poudriere.conf set BUILD_AS_NON_ROOT=yes and CCACHE_DIR_NON_ROOT_SAFE=yes ?

If so, then I think t.smoke is failing because it tries to run fetchmail as 'nobody', but 'nobody' does not have a home directory. I'm able to make it fail that way by setting BUILD_AS_NON_ROOT=yes in my poudriere.conf.

Placing the attached patch-t.smoke ${PORTSDIR}/mail/fetchmail/files resolves the failure for me. Does it work for you?

As to your earlier question, 'are the tests necessary', as of right now the test suite is quite small and runs quickly while also providing a backstop that prevents installing a binary that appears to have built correctly but does not actually function. I'd prefer to keep them in order to have that extra layer of safety.
Comment 4 Konstantin Belousov freebsd_committer freebsd_triage 2019-10-01 09:04:38 UTC
(In reply to Corey Halpin from comment #3)
Patch worked, thanks.

My poudriere.conf:
# $Id: poudriere.conf,v 1.2 2019/07/14 19:10:33 root Exp root $
NO_ZFS=yes
FREEBSD_HOST=https://download.FreeBSD.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/home/poudriere
POUDRIERE_DATA=${BASEFS}/data
USE_PORTLINT=no
USE_TMPFS=all
#TMPFS_LIMIT=8
#MAX_MEMORY=8
DISTFILES_CACHE=/usr/home/poudriere/distfiles
SVN_HOST=tom.home
CHECK_CHANGED_OPTIONS=verbose
CHECK_CHANGED_DEPS=yes
#PKG_REPO_SIGNING_KEY=/etc/ssl/keys/repo.key
PARALLEL_JOBS=2
PREPARE_PARALLEL_JOBS=1
SAVE_WRKDIR=yes
WRKDIR_ARCHIVE_FORMAT=tbz
NOLINUX=yes
export HTTP_PROXY=http://tomv4.home:3128
export FTP_PROXY=http://tomv4.home:3128
#export HTTP_PROXY=http://v1.home:3120
#export FTP_PROXY=http://v1.home:3120
ALLOW_MAKE_JOBS=yes
URL_BASE=https://kib.kiev.ua/poudriere-solo
HTML_TRACK_REMAINING=yes
#MAX_EXECUTION_TIME=86400
#NOHANG_TIME=7200
ATOMIC_PACKAGE_REPOSITORY=yes
COMMIT_PACKAGES_ON_FAILURE=yes
KEEP_OLD_PACKAGES=yes
KEEP_OLD_PACKAGES_COUNT=15
PORTTESTING_FATAL=no
BUILDER_HOSTNAME=solo.home
PRESERVE_TIMESTAMP=yes
BUILD_AS_NON_ROOT=yes
PORTBUILD_USER=nobody
CCACHE_DIR=/usr/home/poudriere/ccache
CCACHE_DIR_NON_ROOT_SAFE=yes
Comment 5 Gary 2019-10-04 16:16:22 UTC
Hi,

Will the patch be committed?  fetchmail has been broken for me since the 6.4.1 update and I think this is why (failing in same place)

Thanks,

Gary
Comment 6 Marko Cupać 2019-10-09 07:36:37 UTC
I'm also waiting for the patch to be committed. Other 1315 ports I build in poudriere as non-root are currently OK, I wouldn't like to start building as root because of fetchmail.
Comment 7 Matthias Andree freebsd_committer freebsd_triage 2019-10-09 17:15:35 UTC
Committed. I'll keep this open until I've merged it upstream.
Comment 8 commit-hook freebsd_committer freebsd_triage 2019-10-09 17:15:47 UTC
A commit references this bug:

Author: mandree
Date: Wed Oct  9 17:15:30 UTC 2019
New revision: 514172
URL: https://svnweb.freebsd.org/changeset/ports/514172

Log:
  fetchmail: Fix manpage rendering w/ groff, fix t.smoke failure

  PR:		240914
  PR:		241032
  Submitted by:	Corey Halpin (maintainer)
  Reported by:	Helge Oldach, Konstantin Belousov

Changes:
  head/mail/fetchmail/Makefile
  head/mail/fetchmail/files/patch-fetchmail.man
  head/mail/fetchmail/files/patch-t.smoke
Comment 9 commit-hook freebsd_committer freebsd_triage 2019-10-09 17:19:50 UTC
A commit references this bug:

Author: mandree
Date: Wed Oct  9 17:19:43 UTC 2019
New revision: 514173
URL: https://svnweb.freebsd.org/changeset/ports/514173

Log:
  MFH: r514172

  fetchmail: Fix manpage rendering w/ groff, fix t.smoke failure

  PR:		240914
  PR:		241032
  Submitted by:	Corey Halpin (maintainer)
  Reported by:	Helge Oldach, Konstantin Belousov

  One patch removes a .br from the .man page to fix manpage rendering
  with groff on FreeBSD 12.0, one patch changes the environment for a
  build-time self-test that will not be installed but unbreaks a build
  in some configurations, hence claiming blanket approval.

  Approved by:	ports-secteam@ (blanket)

Changes:
_U  branches/2019Q4/
  branches/2019Q4/mail/fetchmail/Makefile
  branches/2019Q4/mail/fetchmail/files/patch-fetchmail.man
  branches/2019Q4/mail/fetchmail/files/patch-t.smoke