Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 788343 - mail-mta/exim-4.94.2[dmarc] build failure (dmarc.c:448:20: error: too few arguments to function 'opendmarc_policy_store_dkim')
Summary: mail-mta/exim-4.94.2[dmarc] build failure (dmarc.c:448:20: error: too few arg...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Fabian Groffen
URL: https://bugs.exim.org/show_bug.cgi?id...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-05 13:24 UTC by PetaMem R&D
Modified: 2021-05-08 08:23 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log + emerge --info.txt (~amd64) (build.log-emerge-info.txt,36.33 KB, text/plain)
2021-05-08 02:57 UTC, Ionen Wolkens
Details

Note You need to log in before you can comment on or make changes to this bug.
Description PetaMem R&D 2021-05-05 13:24:28 UTC
when compiling exim 4.94.2 with "dmarc" use flag, the compilation fails:


dmarc.c: In function 'dmarc_process':
dmarc.c:449:48: warning: passing argument 3 of 'opendmarc_policy_store_dkim' makes pointer from integer without a cast [-Wint-conversion]
  449 |                                                dkim_result, US"");
      |                                                ^~~~~~~~~~~
      |                                                |
      |                                                int
In file included from dmarc.h:14,
                 from exim.h:548,
                 from dmarc.c:14:
/usr/include/opendmarc/dmarc.h:125:94: note: expected 'u_char *' {aka 'unsigned char *'} but argument is of type 'int'
  125 | OPENDMARC_STATUS_T opendmarc_policy_store_dkim(DMARC_POLICY_T *pctx, u_char *domain, u_char *selector, int result, u_char *human_result);
      |                                                                                      ~~~~~~~~^~~~~~~~
In file included from local_scan.h:31,
                 from exim.h:524,
                 from dmarc.c:14:
mytypes.h:77:14: warning: passing argument 4 of 'opendmarc_policy_store_dkim' makes integer from pointer without a cast [-Wint-conversion]
In file included from dmarc.h:14,
                 from exim.h:548,
                 from dmarc.c:14:
/usr/include/opendmarc/dmarc.h:125:94: note: expected 'u_char *' {aka 'unsigned char *'} but argument is of type 'int'
  125 | OPENDMARC_STATUS_T opendmarc_policy_store_dkim(DMARC_POLICY_T *pctx, u_char *domain, u_char *selector, int result, u_char *human_result);
      |                                                                                      ~~~~~~~~^~~~~~~~
In file included from local_scan.h:31,
                 from exim.h:524,
                 from dmarc.c:14:
mytypes.h:77:14: warning: passing argument 4 of 'opendmarc_policy_store_dkim' makes integer from pointer without a cast [-Wint-conversion]
   77 | #define US   (unsigned char *)
dmarc.c:449:61: note: in expansion of macro 'US'
  449 |                                                dkim_result, US"");
      |                                                             ^~
In file included from dmarc.h:14,
                 from exim.h:548,
                 from dmarc.c:14:
/usr/include/opendmarc/dmarc.h:125:108: note: expected 'int' but argument is of type 'unsigned char *'
  125 | OPENDMARC_STATUS_T opendmarc_policy_store_dkim(DMARC_POLICY_T *pctx, u_char *domain, u_char *selector, int result, u_char *human_result);
      |                                                                                                        ~~~~^~~~~~
dmarc.c:448:20: error: too few arguments to function 'opendmarc_policy_store_dkim'
  448 |     libdm_status = opendmarc_policy_store_dkim(dmarc_pctx, US sig->domain,
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from dmarc.h:14,
                 from exim.h:548,
                 from dmarc.c:14:
/usr/include/opendmarc/dmarc.h:125:20: note: declared here
  125 | OPENDMARC_STATUS_T opendmarc_policy_store_dkim(DMARC_POLICY_T *pctx, u_char *domain, u_char *selector, int result, u_char *human_result);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:800: dmarc.o] Error 1
make[1]: *** Waiting for unfinished jobs....


Without that flag, compilation is successful.

OK:

mail-mta/exim          exiscan exiscan-acl spf srs srs-native ssl sqlite dkim

NOK:

mail-mta/exim          exiscan exiscan-acl spf srs srs-native ssl sqlite dkim dmarc
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-05-05 14:04:12 UTC
We need the full build.log and emerge —-info.
Comment 2 PetaMem R&D 2021-05-06 05:15:48 UTC
# emerge --info
Portage 3.0.18 (python 3.7.10-final-0, default/linux/x86/17.0, gcc-11.1.0, glibc-2.33, 5.4.22 i686)
=================================================================
System uname: Linux-5.4.22-i686-Intel-R-_Xeon-R-_CPU_E5-2620_v3_@_2.40GHz-with-gentoo-2.7
KiB Mem:     3425584 total,   1641956 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Wed, 05 May 2021 12:15:01 +0000
Head commit of repository gentoo: 63578529533c8f7da5015a8d794084e5fb924e55
sh bash 5.1_p8
ld GNU ld (Gentoo 2.36.1 p3) 2.36.1
app-shells/bash:          5.1_p8::gentoo
dev-lang/perl:            5.32.1::gentoo
dev-lang/python:          3.7.10_p3::gentoo
dev-util/cmake:           3.20.2::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.7-r2::gentoo
sys-apps/openrc:          0.42.1-r1::gentoo
sys-apps/sandbox:         2.24::gentoo
sys-devel/autoconf:       2.69-r5::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.15.1-r2::gentoo, 1.16.3-r1::gentoo
sys-devel/binutils:       2.36.1-r1::gentoo
sys-devel/gcc:            11.1.0::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.12::gentoo (virtual/os-headers)
sys-libs/glibc:           2.33::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: no
    sync-rsync-verify-jobs: 1
    sync-rsync-extra-opts: 
    sync-rsync-verify-max-age: 24

Installed sets: @system
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="@FREE"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.3/ext-active/ /etc/php/apache2-php7.4/ext-active/ /etc/php/apache2-php8.0/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cgi-php8.0/ext-active/ /etc/php/cli-php7.3/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/php/cli-php8.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=3 --keep-going --quiet-build=y"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LC_ALL="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="berkdb bzip2 cxx emacs fpm ithreads libglvnd ncurses pcre perl readline simplexml snmp split-usr ssl threads udev unicode x86 zlib" ABI_X86="32" CURL_SSL="gnutls" ELIBC="glibc" KERNEL="linux" L10N="cs de en" NGINX_MODULES_HTTP="access autoindex charset fastcgi gzip gzip_static rewrite" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7" USERLAND="GNU"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
Comment 3 PetaMem R&D 2021-05-06 05:17:28 UTC
Buildlog not available anymore.
Comment 4 Ionen Wolkens gentoo-dev 2021-05-08 02:57:42 UTC
Created attachment 706596 [details]
build.log + emerge --info.txt (~amd64)

Attaching own logs given I can reproduce on ~amd64

By the way, you are able to re-open your own bugs after providing more info, unless re-opened it's easy for us to miss these.
Comment 5 Fabian Groffen gentoo-dev 2021-05-08 07:55:24 UTC
this is nasty
Comment 6 Fabian Groffen gentoo-dev 2021-05-08 08:06:38 UTC
I've reported https://github.com/trusteddomainproject/OpenDMARC/issues/167

Since there's no way to patch this unconditionally here.
Comment 7 Larry the Git Cow gentoo-dev 2021-05-08 08:23:42 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a3e0eda4fc04c85c612ee6cdfd45e26e9108209

commit 9a3e0eda4fc04c85c612ee6cdfd45e26e9108209
Author:     Fabian Groffen <grobian@gentoo.org>
AuthorDate: 2021-05-08 08:23:13 +0000
Commit:     Fabian Groffen <grobian@gentoo.org>
CommitDate: 2021-05-08 08:23:19 +0000

    mail-mta/exim: bump stable release to include SLOT dep for opendmarc
    
    Unfortunately opendmarc broke their API without telling, and we need to
    ensure Exim instances are rebuilt that link against an upgraded
    opendmarc.  Also, need to ensure that once opendmarc-1.4 goes stable,
    Exim is properly rebuilt.  Unfortunately this requires a conditional
    patch, so we're all extremely unhappy here.
    
    Closes: https://bugs.gentoo.org/788343
    Package-Manager: Portage-3.0.18, Repoman-3.0.2
    RepoMan-Options: --force
    Signed-off-by: Fabian Groffen <grobian@gentoo.org>

 .../exim/{exim-4.94.2.ebuild => exim-4.94.2-r1.ebuild}     |  8 +++++++-
 mail-mta/exim/files/exim-4.94-opendmarc-1.4.patch          | 14 ++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)