Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 489242 - mail-mta/exim-4.82_rc4 USE=dns - Failed Patch: exim_469_dsn_1_3.patch !
Summary: mail-mta/exim-4.82_rc4 USE=dns - Failed Patch: exim_469_dsn_1_3.patch !
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Fabian Groffen
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-24 08:14 UTC by Marcin Mirosław
Modified: 2013-10-29 08:56 UTC (History)
1 user (show)

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


Attachments
patch.out (exim_469_dsn_1_3.patch.out,34.85 KB, text/plain)
2013-10-24 08:15 UTC, Marcin Mirosław
Details
work in progress (dns-support.patch,5.62 KB, patch)
2013-10-24 20:02 UTC, Fabian Groffen
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Marcin Mirosław 2013-10-24 08:14:20 UTC
* Messages for package mail-mta/exim-4.82_rc4:

 * Failed Patch: exim_469_dsn_1_3.patch !
 *  ( exim_469_dsn_1_3.patch )
 * 
 * Include in your bugreport the contents of:
 * 
 *   /var/tmp/portage/mail-mta/exim-4.82_rc4/temp/exim_469_dsn_1_3.patch.out
 * ERROR: mail-mta/exim-4.82_rc4::gentoo failed (prepare phase):
 *   Failed Patch: exim_469_dsn_1_3.patch!
 * 
 * Call stack:
 *     ebuild.sh, line   93:  Called src_prepare
 *   environment, line 2939:  Called epatch 'exim_469_dsn_1_3.patch'
 *   environment, line 1256:  Called die
 * The specific snippet of code:
 *               die "Failed Patch: ${patchname}!";
 *
Comment 1 Marcin Mirosław 2013-10-24 08:15:52 UTC
Created attachment 361766 [details]
patch.out
Comment 2 Marcin Mirosław 2013-10-24 08:18:34 UTC
# emerge --info                                                                                                                           [22/9650]
Portage 2.2.7 (hardened/linux/amd64, gcc-4.7.3, glibc-2.15-r3, 3.10.1-hardened-r1 x86_64)
=================================================================
System uname: Linux-3.10.1-hardened-r1-x86_64-Intel_Xeon_E312xx_-Sandy_Bridge-with-gentoo-2.2
KiB Mem:     2366904 total,    412312 free
KiB Swap:     524284 total,    428944 free
Timestamp of tree: Thu, 24 Oct 2013 04:15:01 +0000
ld GNU gold (GNU Binutils 2.23.1) 1.11
ccache version 3.1.9 [enabled]
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r3, 3.2.5-r3
dev-util/ccache:          3.1.9
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.11.6, 1.12.6
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.6.3, 4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=core2 -mtune=native -frecord-gcc-switches         -fno-unwind-tables -fno-asynchronous-unwind-tables -fpeel-loops         -ftracer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=core2 -mtune=native -frecord-gcc-switches         -fno-unwind-tables -fno-asynchronous-unwind-tables -fpeel-loops         -ftracer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache collision-protect compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.mirror.pw.edu.pl/ http://ftp.vectranet.pl/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="-O"
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"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
USE="acl acpi amd64 bash-completion caps cli cracklib crypt cxx dri hardened iconv idn justify mmx mmxext modules mudflap multilib ncurses nls nptl openmp pax_kernel pcre postgres readline session sse sse2 sse3 ssse3 threads unicode urandom vhosts vim-syntax xattr" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authz_host dir mime unique_id" APACHE2_MPMS="itk" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NGINX_MODULES_HTTP="access auth_basic browser charset fastcgi gzip gzip_static headers_more limit_conn limit_req proxy realip referer rewrite userid" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3 php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="tarpit"
USE_PYTHON="3.2"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
Comment 3 Fabian Groffen gentoo-dev 2013-10-24 20:02:05 UTC
Created attachment 361828 [details, diff]
work in progress

Attached is my work in progress, it doesn't compile, and I don't quite know how to fix it.  Maybe you can figure it out.
Comment 4 Marcin Mirosław 2013-10-25 08:08:49 UTC
Attached patch for patch (yo dawg?:)) dosesn't apply:
# patch -p1 --dry-run <exim-4.82-dsn.patch 
checking file exim_469_dsn_1_3.patch
Hunk #2 FAILED at 525.
1 out of 8 hunks FAILED

It looks patch exim-4.82 should be applied before patch exim_469 but failed hunks contains diff for readconf.c with applied exim_469 patch.
Comment 5 Fabian Groffen gentoo-dev 2013-10-25 08:55:39 UTC
hmmm, you should also apply the 4.72 one, did you do that?

(yeah, patch to patch sulks and confuses a lot)
Comment 6 Marcin Mirosław 2013-10-25 10:55:24 UTC
>>> Preparing source in /var/tmp/portage/mail-mta/exim-4.82_rc5/work/exim-4.82_RC5 ...
 * Applying exim-4.14-tail.patch ...                                  [ ok ]
 * Applying exim-4.74-localscan_dlopen.patch ...                      [ ok ]
 * Applying exim-4.69-r1.27021.patch ...                              [ ok ]
 * Applying exim-4.74-radius-db-ENV-clash.patch ...                   [ ok ]
 * Applying exim-4.82-makefile-freebsd.patch ...                      [ ok ]
 * Applying exim-4.77-as-needed-ldflags.patch ...                     [ ok ]
 * Applying exim-4.76-crosscompile.patch ...                          [ ok ]
 * Applying exim-4.80-spool-mail-group.patch ...                      [ ok ]
 * Applying exim-4.82-dsn.patch ...

 * Failed Patch: exim-4.82-dsn.patch !
 *  ( /usr/portage/mail-mta/exim/files/exim-4.82-dsn.patch )

And the snip from my ebuild looks like this:
        if use dsn ; then
                cp "${DISTDIR}"/exim_${DSN_EXIM_V}_dsn_${DSN_V}.patch . || die
                epatch "${FILESDIR}"/${PN}-4.82-dsn.patch
                epatch exim_${DSN_EXIM_V}_dsn_${DSN_V}.patch
        fi

But in your diff is:
   	if use dsn ; then
   		cp "${DISTDIR}"/exim_${DSN_EXIM_V}_dsn_${DSN_V}.patch . || die
   		epatch "${FILESDIR}"/${PN}-4.76-dsn.patch
  +		epatch "${FILESDIR}"/${PN}-4.82-dsn.patch
   		epatch exim_${DSN_EXIM_V}_dsn_${DSN_V}.patch
   	fi
  
It looks we are using diffrent ebuilds:)
I don't have line:
epatch "${FILESDIR}"/${PN}-4.76-dsn.patch

With above line patch applies correctly.

I can see you are using dsn version DSN_EXIM_V=469, why not DSN_EXIM_V=476?

I wanted to fix original patch using your patch as a hint. But I failed, reading diff of diff is to *diff*icult for me:)
About problem with compilation I suspect you move section:"
+  if (dsn_ret == dsn_ret_hdrs)
+    {
+    strcpy(p, " RET=HDRS");
+    while (*p) p++;
"
too far towards beginning of the file. It should be (probably - I don't have C lang skills) arround 1400-1500 line.

Next problem I can see is smtp_in.c. In original sources "if" statement was changed and has more "else" clauses. I don't know in which place DSN patch should add own "else if" but your patch moves it before "if" statement. It gives another compilation error:
smtp_in.c: In function 'smtp_setup_msg':
smtp_in.c:3386:7: error: 'else' without a previous 'if'
       else if (dsn && strcmpic(name, US"RET") == 0)
       ^
make[1]: *** [smtp_in.o] Error 1
Comment 7 Fabian Groffen gentoo-dev 2013-10-25 11:50:54 UTC
ok, I guess we should start taking the latest version here.  It'll probably still break, but using the latest is good.

Then I guess we better try to get an alternate patch for 4.82 and abandon the patch on patch principle.

Alternative is to wait for upstream to fix their patch.  Not sure if people are going to happy with that.
Comment 8 Fabian Groffen gentoo-dev 2013-10-27 20:56:36 UTC
I've committed a patch that applies and compiles.  I'd appreciate some testing of the patch, as I have no idea if it works correctly.  Thanks!
Comment 9 Marcin Mirosław 2013-10-28 15:15:16 UTC
I made simple test, sended email with and without DSN request, works correctly. In EHLO I'm getting "250-DSN". After 5 minuts of using I didn't get segfault yet;)
It's a pitty there is no tests suite for DSN made by upstream.
Thank you for fixing patch.
Comment 10 Fabian Groffen gentoo-dev 2013-10-28 17:07:57 UTC
you're my hero!  Then it goes in exim-4.82!
Comment 11 Marcin Mirosław 2013-10-28 21:28:08 UTC
Are you going to add PRDR, Redis, TPDA support to ebuild?
Comment 12 Fabian Groffen gentoo-dev 2013-10-29 08:56:00 UTC
hmmm, unless you need it, I guess