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

Bug 407695

Summary: app-i18n/ibus-chewing-1.3.10: fails to build against app-i18n/ibus-1.4.1
Product: Gentoo Linux Reporter: Jack Chen <speed.up08311990>
Component: Current packagesAssignee: CJK Team <cjk>
Status: RESOLVED FIXED    
Severity: normal CC: paluszak, ssuominen
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://code.google.com/p/ibus/issues/detail?id=1427
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Patch for app-i18n/ibus-chewing-1.3.10 for it to compile against ibus-1.4.1.
updated ebuild (applying patch)
Patch for app-i18n/ibus-chewing-1.3.10 to correct install path.

Description Jack Chen 2012-03-10 16:06:52 UTC
Created attachment 304857 [details]
Patch for app-i18n/ibus-chewing-1.3.10 for it to compile against ibus-1.4.1.

Problem and possible cause:
app-i18n/ibus-chewing-1.3.10(and all other available versions in portage tree) failed to build due to API change in ibus-1.4.1.
Some members of IBusProperty were directly accessible before.  As of ibus-1.4.1, they have become private and are only accessible through function call.


Steps to reproduce:
1. emerge =app-i18n/ibus-chewing-1.3.10


Actual result:
Compilation failed with following error messages:
/var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine.gob: In function ‘___23_ibus_chewing_engine_property_activate’:                   
/var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine.gob:1044:29: error: ‘IBusProperty’ has no member named ‘state’
/var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine.gob:1049:22: error: ‘IBusProperty’ has no member named ‘state’
In file included from /var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine.gob:1079:0:
/var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine-input-events.c: In function ‘ibus_chewing_engine_property_activate’:
/var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine-input-events.c:294:25: error: ‘IBusProperty’ has no member named ‘state’
/var/tmp/portage/app-i18n/ibus-chewing-1.3.10/work/ibus-chewing-1.3.10-Source/src/IBusChewingEngine-input-events.c:299:25: error: ‘IBusProperty’ has no member named ‘state’
make[2]: *** [bin/CMakeFiles/ibus-engine-chewing.dir/ibus-chewing-engine.c.o] Error 1


How often:
Always reproducible.


Fix:
I took the ibus-mozc-1.3.975.102 patch from #402397 as example, and created a patch for ibus-chewing-1.3.10.
The patch is attached as an attachment.  I'm testing it on my local overlay.  The patched ibus-chewing-1.3.10 compiles successfully and works so far.
Comment 1 Jack Chen 2012-03-10 16:13:14 UTC
Portage 2.1.10.44 (default/linux/amd64/10.0, gcc-4.5.3, glibc-2.13-r4, 3.2.1-gentoo-r2 x86_64)
=================================================================
System uname: Linux-3.2.1-gentoo-r2-x86_64-Intel-R-_Core-TM-_i7_CPU_860_@_2.80GHz-with-gentoo-2.0.3
Timestamp of tree: Fri, 09 Mar 2012 16:15:01 +0000
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r3, 3.2.2
dev-util/cmake:           2.8.6-r4
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.8.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.11.1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r2, 4.6.2
sys-devel/gcc-config:     1.5-r2
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 3.1 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo gentoo-zh sunrise my_dev                                                                                                                                         
ACCEPT_KEYWORDS="amd64"                                                                                                                                                               
ACCEPT_LICENSE="* -@EULA"                                                                                                                                                             
CBUILD="x86_64-pc-linux-gnu"                                                                                                                                                          
CFLAGS="-march=native -O2 -pipe"                                                                                                                                                      
CHOST="x86_64-pc-linux-gnu"                                                                                                                                                           
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"                                                                           
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"     
CXXFLAGS="-march=native -O2 -pipe"                                                                                                                                                    
DISTDIR="/usr/portage/distfiles"                                                                                                                                                      
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"                                                                                                                                                                               
FFLAGS=""                                                                                                                                                                             
GENTOO_MIRRORS="http://ftp.twaren.net/Linux/Gentoo/ http://ftp.ncnu.edu.tw/Linux/Gentoo/ http://gentoo.cs.nctu.edu.tw/gentoo/"                                                        
LANG="en_US.UTF-8"                                                                                                                                                                    
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en en_US zh_TW ja zh_CN"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/gentoo-zh /var/lib/layman/sunrise /usr/local/portage/overlay"
SYNC="rsync://rsync6.tw.gentoo.org/gentoo-portage"
USE="X acl acpi alsa amd64 bash-completion berkdb branding bzip2 cairo cdr cjk cli consolekit cracklib crypt cups cxx dbus dri dvd dvdr exif fam fortran gdbm gif gpm iconv ipv6 jpeg kde lcms libnotify lm_sensors mmx mmxext mng modules mudflap multilib ncurses nls nptl nptlonly opengl openmp pam pcre pdf png policykit pppd pulseaudio qt3support qt4 readline semantic-desktop session sse sse2 sse3 sse4_1 ssl ssse3 startup-notification subversion svg sysfs tcpd threads tiff truetype udev unicode vim-pager vim-syntax xml xorg xpm zlib" 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="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 stage tables krita karbon braindump" 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="evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US zh_TW ja zh_CN" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fglrx" 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"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Jakub Paluszak 2012-03-10 17:26:51 UTC
Created attachment 304861 [details]
updated ebuild (applying patch)

Updated ebuild that applies the patch. Compiles and works fine.
Comment 3 Samuli Suominen gentoo-dev 2012-03-10 17:29:07 UTC
+  10 Mar 2012; Samuli Suominen <ssuominen@gentoo.org>
+  ibus-chewing-1.3.10.ebuild, +files/ibus-chewing-1.3.10-ibus-1.4.patch:
+  Fix building with app-i18n/ibus >= 1.4.0 wrt #407695 by Jack Chen. Move
+  ibus-chewing.schemas from /gconf to /etc/gconf.
Comment 4 Samuli Suominen gentoo-dev 2012-03-10 17:30:59 UTC
Are you guys seeing ibus-chewing creating a directory called /gconf to root filesystem?
I had to add some `mv` commands to the ebuild to make it stop that.

<<<          obj /gconf/schemas/ibus-chewing.schemas
<<<          dir /gconf/schemas
<<<          dir /gconf
Comment 5 Jakub Paluszak 2012-03-10 17:34:11 UTC
(In reply to comment #4)
> Are you guys seeing ibus-chewing creating a directory called /gconf to root
> filesystem?
> I had to add some `mv` commands to the ebuild to make it stop that.
> 
> <<<          obj /gconf/schemas/ibus-chewing.schemas
> <<<          dir /gconf/schemas
> <<<          dir /gconf

Yep, though I never noticed /gconf in my root.
Comment 6 Samuli Suominen gentoo-dev 2012-03-10 17:39:31 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > Are you guys seeing ibus-chewing creating a directory called /gconf to root
> > filesystem?
> > I had to add some `mv` commands to the ebuild to make it stop that.
> > 
> > <<<          obj /gconf/schemas/ibus-chewing.schemas
> > <<<          dir /gconf/schemas
> > <<<          dir /gconf
> 
> Yep, though I never noticed /gconf in my root.

OK thanks for verifying it's not only my problem.

I have plans on keeping an eye for anything failing because of 1.4 stabilization, so if you find more, please file bugs and CC me if nothing happens in reasonable time
Comment 7 Jakub Paluszak 2012-03-10 18:40:03 UTC
https://bugs.gentoo.org/show_bug.cgi?id=407685 and https://bugs.gentoo.org/show_bug.cgi?id=407691 are direct results of the update.
Comment 8 Jack Chen 2012-03-11 02:31:20 UTC
Created attachment 304883 [details, diff]
Patch for app-i18n/ibus-chewing-1.3.10 to correct install path.

I was wondering where does the /gconf came from several months ago, without noticing that the content is ibus-chewing.schemas.  Oops.

It seems that the SYSCONF_INSTALL_DIR variable used by UseGConf.cmake was not defined.  Thus:
    ${SYSCONF_INSTALL_DIR}/gconf/schemas
became
    /gconf/schemas
and things got installed into root.

If you are interested in patching this problem from source code level, I've attached a new patch to check and set SYSCONF_INSTALL_DIR before including UseGConf.cmake.
I've tested it and it correctly installs gconf into /etc directory.

Thank you for the updated ebuild and quick responses.
Comment 9 Samuli Suominen gentoo-dev 2012-03-11 11:16:18 UTC
(In reply to comment #8)
> Created attachment 304883 [details, diff] [details, diff]
> Patch for app-i18n/ibus-chewing-1.3.10 to correct install path.
> 
> I was wondering where does the /gconf came from several months ago, without
> noticing that the content is ibus-chewing.schemas.  Oops.
> 
> It seems that the SYSCONF_INSTALL_DIR variable used by UseGConf.cmake was
> not defined.  Thus:
>     ${SYSCONF_INSTALL_DIR}/gconf/schemas
> became
>     /gconf/schemas
> and things got installed into root.
> 
> If you are interested in patching this problem from source code level, I've
> attached a new patch to check and set SYSCONF_INSTALL_DIR before including
> UseGConf.cmake.
> I've tested it and it correctly installs gconf into /etc directory.
> 
> Thank you for the updated ebuild and quick responses.

I've reported this here:

http://code.google.com/p/ibus/issues/detail?id=1426
Comment 10 Samuli Suominen gentoo-dev 2012-03-11 11:19:52 UTC
And the ibus-1.4.0 building bug/patch is now at:

http://code.google.com/p/ibus/issues/detail?id=1427