# Linux-2.6.37-rc1-git6 now with qt4 make xconfig support?

## wrc1944

I just compiled a 2.6.37-rc1-git6 kernel from the portage "git-sources," and was very pleasantly surprised to find I could run xconfig without having to patch with the 2900_xconfig-with-qt4.patch, or have qt3 installed.  In other words, apparently as of 2.6.37-rc1-git6, the linux kernel now has make config qt4 support included by default.

At least that's my theory. I knew that the qt4 patch was recently included in gentoo-sources (genpatches), as the ebuild includes the lines: 

```
K_WANT_GENPATCHES="base extras"

K_GENPATCHES_VER="1" 
```

However, the git-sources ebuild does not have these lines, and therefore if make xconfig works with only qt4 installed, I figured it must be already included in 2.6.37-x-x.

This is seeming confirmed in the /usr/src/linux-2.6.37-rc1-git6/scripts/kconfig/Makefile, as there are several references (snipped and in order from the makefile):

```
fdef KBUILD_KCONFIG

Kconfig := $(KBUILD_KCONFIG)

else

Kconfig := Kconfig

endif

xconfig: $(obj)/qconf

   $< $(Kconfig)

# Help text used by make help

help:

   @echo  '  config     - Update current config utilising a line-oriented program'

   @echo  '  nconfig         - Update current config utilising a ncurses menu based program'

   @echo  '  menuconfig     - Update current config utilising a menu based program'

   @echo  '  xconfig     - Update current config utilising a QT based front-end'

   @echo  '  gconfig     - Update current config utilising a GTK based front-end'

   @echo  '  oldconfig     - Update current config utilising a provided .config as base'

   @echo  '  localmodconfig  - Update current config disabling modules not loaded'

   @echo  '  localyesconfig  - Update current config converting local mods to core'

   @echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'

   @echo  '  defconfig     - New config with default from ARCH supplied defconfig'

   @echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'

   @echo  '  allnoconfig     - New config where all options are answered with no'

   @echo  '  allyesconfig     - New config where all options are accepted with yes'

   @echo  '  allmodconfig     - New config selecting modules when possible'

   @echo  '  alldefconfig    - New config with all symbols set to default'

   @echo  '  randconfig     - New config with random answer to all options'

   @echo  '  listnewconfig   - List new options'

   @echo  '  oldnoconfig     - Same as silentoldconfig but set new symbols to n (unset)'

# QT needs some extra effort...

$(obj)/.tmp_qtcheck:

   @set -e; echo "  CHECK   qt"; dir=""; pkg=""; \

   if ! pkg-config --exists QtCore 2> /dev/null; then \

       echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \

       pkg-config --exists qt 2> /dev/null && pkg=qt; \

       pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \

       if [ -n "$$pkg" ]; then \

         cflags="\$$(shell pkg-config $$pkg --cflags)"; \

         libs="\$$(shell pkg-config $$pkg --libs)"; \

         moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \

         dir="$$(pkg-config $$pkg --variable=prefix)"; \

       else \

         for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \

           if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \

         done; \

         if [ -z "$$dir" ]; then \

           echo "*"; \

           echo "* Unable to find any QT installation. Please make sure that"; \

           echo "* the QT4 or QT3 development package is correctly installed and"; \

           echo "* either qmake can be found or install pkg-config or set"; \

           echo "* the QTDIR environment variable to the correct location."; \

           echo "*"; \

           false; \

         fi; \

         libpath=$$dir/lib; lib=qt; osdir=""; \

         $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \

           osdir=x$$($(HOSTCXX) -print-multi-os-directory); \

         test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \

         test -f $$libpath/libqt-mt.so && lib=qt-mt; \

         cflags="-I$$dir/include"; \

         libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \

         moc="$$dir/bin/moc"; \

       fi; \

       if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \

         echo "*"; \

         echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \

         echo "*"; \

         moc="/usr/bin/moc"; \

       fi; \

   else \

     cflags="\$$(shell pkg-config QtCore QtGui Qt3Support --cflags)"; \

     libs="\$$(shell pkg-config QtCore QtGui Qt3Support --libs)"; \

     binpath="\$$(shell pkg-config QtCore --variable=prefix)"; \

     moc="$$binpath/bin/moc"; \

   fi; \

   echo "KC_QT_CFLAGS=$$cflags" > $@; \

   echo "KC_QT_LIBS=$$libs" >> $@; \

   echo "KC_QT_MOC=$$moc" >> $@

endif

$(obj)/gconf.o: $(obj)/.tmp_gtkcheck

ifeq ($(gconf-target),1)

-include $(obj)/.tmp_gtkcheck

# GTK needs some extra effort, too...

$(obj)/.tmp_gtkcheck: 
```

So, unless I'm wrong all of us old-time kernel compilers preferring make xconfig can finally rejoice, and enjoy the ease, quickness, and in-depth intuitive configuration process make xconfig provides.   :Very Happy:    All I can say, it's about time this was addressed.   :Rolling Eyes: 

Or am i mistaken, and Gentoo just added that one patch (or equivalent code) and not all the genpatches to git-sources?

UPDATE:  I can confirm the qt4 support for make xconfig is in plain vanilla 2.6.37-rc1, and was not added in the Gentoo "git-sources" package.

----------

