Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 468430

Summary: =app-crypt/pinentry-0.8.2 fails with sys-libs/ncurses[tinfo]
Product: Gentoo Linux Reporter: Justin Lecher <jlec>
Component: Current packagesAssignee: Crypto team [DISABLED] <crypto+disabled>
Status: RESOLVED FIXED    
Severity: normal CC: alonbl, mgmadden
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 457530    
Attachments: pinentry-0.8.2.ebuild.diff
pinentry-0.8.2-ncurses.patch
pinentry-0.8.2-ncurses.patch
build log for my x86_64 unit
automake.out file in addition to my build-log

Description Justin Lecher gentoo-dev 2013-05-03 13:19:26 UTC
make[2]: Entering directory `/var/tmp/portage/app-crypt/pinentry-0.8.2/work/pinentry-0.8.2/curses'
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I/usr/include/ncursesw -I../pinentry -Wall  -O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wimplicit-function-declaration -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-pointer-sign -c pinentry-curses.c
x86_64-pc-linux-gnu-gcc  -O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wimplicit-function-declaration -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-pointer-sign  -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -o pinentry-curses pinentry-curses.o ../pinentry/libpinentry.a ../pinentry/libpinentry-curses.a ../assuan/libassuan.a ../secmem/libsecmem.a -lcap -lncursesw  
pinentry-curses.c:573: error: undefined reference to 'curs_set'
pinentry-curses.c:573: error: undefined reference to 'curs_set'
pinentry-curses.c:568: error: undefined reference to 'curs_set'
pinentry-curses.c:615: error: undefined reference to 'stdscr'
pinentry-curses.c:616: error: undefined reference to 'stdscr'
pinentry-curses.c:618: error: undefined reference to 'stdscr'
pinentry-curses.c:647: error: undefined reference to 'stdscr'
pinentry-curses.c:756: error: undefined reference to 'keypad'
pinentry-curses.c:758: error: undefined reference to 'cbreak'
pinentry-curses.c:756: error: undefined reference to 'keypad'
pinentry-curses.c:758: error: undefined reference to 'cbreak'
pinentry-curses.c:402: error: undefined reference to 'acs_map'
pinentry-curses.c:405: error: undefined reference to 'acs_map'
pinentry-curses.c:409: error: undefined reference to 'acs_map'
pinentry-curses.c:412: error: undefined reference to 'acs_map'
collect2: error: ld returned 1 exit status
make[2]: *** [pinentry-curses] Error 1
make[2]: Leaving directory `/var/tmp/portage/app-crypt/pinentry-0.8.2/work/pinentry-0.8.2/curses'



$ einfo sys-libs/ncurses =app-crypt/pinentry-0.8.2
Portage 2.2.0_alpha173 (default/linux/amd64/13.0, gcc-4.8.0-asneeded, glibc-2.17, 3.9.0-lh x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.9.0-lh-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:    16345380 total,   2426772 free
KiB Swap:    3987452 total,   3978804 free
Timestamp of tree: Fri, 03 May 2013 12:30: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-java/java-config:     2.2.0
dev-lang/python:          2.6.8-r1, 2.7.4, 3.1.5-r1, 3.2.4, 3.3.0-r1
dev-util/ccache:          3.1.9-r1::science
dev-util/cmake:           2.8.10.2-r2
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.13, 2.69
sys-devel/automake:       1.10.3, 1.11.6, 1.12.6, 1.13.1
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.4.7, 4.5.4, 4.6.3, 4.7.2-r1, 4.8.0
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.8 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo sunrise bicatali betagarden dummy Neurogeek science Raspberry-Pi-Overlay last-hope g-ctan
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wimplicit-function-declaration"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/eselect/ /usr/share/gnupg/qualified.txt /usr/share/nano/ /var/lib/hsqldb /var/spool/munin-async/.ssh"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wenum-compare"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS=" -vt --keep-going --autounmask-write --autounmask --quiet-build=n"
FCFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g"
FEATURES="assume-digests binpkg-logs buildsyspkg candy ccache collision-protect compressdebug distlocks ebuild-locks fixlafiles merge-sync metadata-transfer multilib-strict news noinfo parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms sign split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g"
GENTOO_MIRRORS=" /mnt/tmpfs/ http://gentoo.j-schmitz.net/mirror/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/"
LANG="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common"
MAKEOPTS="-j12 -l9"
PKGDIR="/var/cache/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-z -e -9 -v"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/cache/portage/tree"
PORTDIR_OVERLAY="/local/overlays/sunrise-reviewed /local/overlays/bicatali /local/overlays/betagarden /local/overlays/dummy /local/overlays/neurogeek /local/overlays/sci /local/overlays/gen2pi /local/overlays/lh/ebuilds /local/overlays/g-ctan"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl alsa amd64 avx bash-completion berkdb branding bzip2 cairo caps cli cracklib crypt cxx dbus dri fortran gdbm gif gmp gnome gnome-keyring gpm gstreamer gtk iconv icu ipv6 jpeg jpeg2k mmx mmxext modules mudflap multilib ncurses network-cron nls nptl nsplugin numa opengl openmp pam pcre pgo png pulseaudio qt3support raw readline session smp sse sse2 sse2_4way sse2check sse3 sse4 sse41 sse4_1 sse4_2 sse4a ssl ssse3 startup-notification tcpd threads tiff truetype unicode vaapi vdpau xinerama zlib" ABI_X86="64" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" 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" DRACUT_MODULES="plymouth" 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" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer pdfimport scripting-javascript wiki-publisher nlpsolver" LINGUAS="en" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi stub_status" OFFICE_IMPLEMENTATION="libreoffice" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_6 python2_7 python3_1 python3_2 python3_3 pypy1_9 pypy2_0" QEMU_SOFTMMU_TARGETS="i386 x86_64 arm armeb" QEMU_USER_TARGETS="i386 x86_64 arm armeb" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
USE_PYTHON="2.6 2.7 3.1 3.2 3.3 2.7-pypy-1.9 2.7-pypy-2.0"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

sys-libs/ncurses-5.9-r2 was built with the following:
USE="cxx gpm (multilib) tinfo unicode -ada -debug -doc -minimal -profile -static-libs -trace" ABI_X86="64"
Comment 1 Alon Bar-Lev gentoo-dev 2013-05-04 21:41:31 UTC
Hi,

I cannot reproduce... any hint?

sys-libs/ncurses-5.9-r2 was built with the following:
USE="gpm tinfo unicode -ada -cxx -debug -doc -minimal -profile -static-libs -trace" ABI_X86="64"

---

make[2]: Leaving directory `/var/tmp/portage/app-crypt/pinentry-0.8.2/work/pinentry-0.8.2/pinentry'
Making all in curses
make[2]: Entering directory `/var/tmp/portage/app-crypt/pinentry-0.8.2/work/pinentry-0.8.2/curses'
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I/usr/include/ncursesw -I../pinentry -Wall  -O2 -march=native -fomit-frame-pointer -pipe -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-pointer-sign -c pinentry-curses.c
x86_64-pc-linux-gnu-gcc  -O2 -march=native -fomit-frame-pointer -pipe -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-pointer-sign  -Wl,-O1 -Wl,--as-needed -o pinentry-curses pinentry-curses.o ../pinentry/libpinentry.a ../pinentry/libpinentry-curses.a ../assuan/libassuan.a ../secmem/libsecmem.a -lcap -lncursesw  
make[2]: Leaving directory `/var/tmp/portage/app-crypt/pinentry-0.8.2/work/pinentry-0.8.2/curses'
Comment 2 Justin Lecher gentoo-dev 2013-05-04 21:51:26 UTC
(In reply to comment #1)
> Hi,
> 
> I cannot reproduce... any hint?
> 

Perhaps, it is a gold triggered one.
Comment 3 Alon Bar-Lev gentoo-dev 2013-05-04 23:29:27 UTC
Going blindly...

Can you please test these patches?
Comment 4 Alon Bar-Lev gentoo-dev 2013-05-04 23:29:57 UTC
Created attachment 347402 [details, diff]
pinentry-0.8.2.ebuild.diff
Comment 5 Alon Bar-Lev gentoo-dev 2013-05-04 23:30:23 UTC
Created attachment 347404 [details, diff]
pinentry-0.8.2-ncurses.patch
Comment 6 Justin Lecher gentoo-dev 2013-05-05 07:48:03 UTC
Created attachment 347410 [details, diff]
pinentry-0.8.2-ncurses.patch

I would sugest to use this kind of patch. You simply use pkg-config to detect what is right.
Comment 7 Alon Bar-Lev gentoo-dev 2013-05-05 08:16:29 UTC
(In reply to comment #6)
> Created attachment 347410 [details, diff] [details, diff]
> pinentry-0.8.2-ncurses.patch
> 
> I would sugest to use this kind of patch. You simply use pkg-config to
> detect what is right.

As I know upstream, the chance that pkg-config will be merge is low. So I prefer something that might be accepted.
Comment 8 Justin Lecher gentoo-dev 2013-05-05 10:49:53 UTC
(In reply to comment #7)
> As I know upstream, the chance that pkg-config will be merge is low. So I
> prefer something that might be accepted.

I think it should be fine with upstream. The configure script is using pkg-config at several places

 $ grep PKG configure.ac 
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
	if test x"${PKG_CONFIG}" = xno ; then
	"${PKG_CONFIG}" --exists gtk+-2.0
		modvers=`"${PKG_CONFIG}" --modversion gtk+-2.0`
		"${PKG_CONFIG}" --atleast-version=2.4.0 gtk+-2.0
			GTK2CFLAGS=`"${PKG_CONFIG}" --cflags gtk+-2.0`
			GTK2LIBS=`"${PKG_CONFIG}" --libs gtk+-2.0`
PKG_CHECK_MODULES(QT4_CORE, QtCore,,
PKG_CHECK_MODULES(QT4_GUI, QtGui,,


there are only two solutions, ncurses-config or pkg-config. And if upstream doesn't like it, then we need to maintain it here.
Comment 9 Alon Bar-Lev gentoo-dev 2013-05-05 10:55:01 UTC
(In reply to comment #8)
> there are only two solutions, ncurses-config or pkg-config. And if upstream
> doesn't like it, then we need to maintain it here.

'We' is I and I do not wish to maintain anything outside of upstream domain.

I will present these two (or three) options in upstream bug, but will provide the simplest most likely to be accepted for now.

Please check the variant I posted, and report if it works for you.

Thanks.
Comment 10 Justin Lecher gentoo-dev 2013-05-05 10:58:32 UTC
(In reply to comment #9)
> 'We' is I and I do not wish to maintain anything outside of upstream domain.

"we" should mean gentoo developers who have the intention to support a working ebuild for users.

> Please check the variant I posted, and report if it works for you.

That doesn't work. the problem is that some symbols are moved from libncurses(w).so to libtinfo(w).so. Therefore when ever you link against libncurses you most probably also need to link with libtinfo.so.
Comment 11 Alon Bar-Lev gentoo-dev 2013-05-05 11:01:59 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > 'We' is I and I do not wish to maintain anything outside of upstream domain.
> 
> "we" should mean gentoo developers who have the intention to support a
> working ebuild for users.

Do you want to maintain this package? No problem... really.
> 
> > Please check the variant I posted, and report if it works for you.
> 
> That doesn't work. the problem is that some symbols are moved from
> libncurses(w).so to libtinfo(w).so. Therefore when ever you link against
> libncurses you most probably also need to link with libtinfo.so.


This is what I have done in attachment#347404 [details, diff], please tell me where it fails.

Thanks.
Comment 12 Justin Lecher gentoo-dev 2013-05-05 11:06:51 UTC
(In reply to comment #11)
> This is what I have done in attachment#347404 [details, diff] [details, diff], please tell
> me where it fails.

Strange, now it works. I can swear that my first test was negativ. SO lets go with your patch, it works.

x86_64-pc-linux-gnu-gcc  -O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wimplicit-function-declaration -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-pointer-sign  -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -o pinentry-gtk-2 pinentry-gtk-2.o gtksecentry.o ../pinentry/libpinentry.a ../assuan/libassuan.a ../secmem/libsecmem.a -lcap -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig  ../pinentry/libpinentry-curses.a -lncursesw -ltinfow
Comment 13 Alon Bar-Lev gentoo-dev 2013-05-05 11:13:47 UTC
Thanks, fixed.
Comment 14 Alon Bar-Lev gentoo-dev 2013-05-05 11:20:02 UTC
https://bugs.g10code.com/gnupg/issue1494
Comment 15 Geoff Madden 2013-06-06 06:40:09 UTC
Created attachment 350258 [details]
build log for my x86_64 unit
Comment 16 Geoff Madden 2013-06-06 06:42:09 UTC
Created attachment 350260 [details]
automake.out file in addition to my build-log
Comment 17 Alon Bar-Lev gentoo-dev 2013-06-06 06:57:43 UTC
Geoff Madden,

Please do not post anything in resolved bugs, unless you are sure that the issue is the exact one.

Your issue is pinentry and newer gettext compatibility BTW.

Thanks,