You are not logged in.

#1 2013-10-13 18:37:14

andgset
Member
Registered: 2013-10-13
Posts: 4

Problem installing jreen lib 1.1.1

Hey everybody,

I'm trying to install tomahawk via yaourt and while trying to install the jreen 1.1.1 lib the installation fails, giving out

==> Beginne build()...
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake-qt4 (found suitable version "4.8.5", minimum required is "4.6.0") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- checking for module 'qca2'
--   found qca2, version 2.0.3
-- Found QCA2: /usr/lib64/libqca.so  
-- checking for one of the modules 'speex'
-- Speex library is found.
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
Using simple sasl auth instead cyrus sasl
CMake Error at cmake/jreenMacros.cmake:42 (QT4_CREATE_MOC_COMMAND):
  QT4_CREATE_MOC_COMMAND Macro invoked with incorrect arguments for macro
  named: QT4_CREATE_MOC_COMMAND
Call Stack (most recent call first):
  CMakeLists.txt:138 (JREEN_WRAP_CPP)


CMake Error at cmake/jreenMacros.cmake:60 (QT4_CREATE_MOC_COMMAND):
  QT4_CREATE_MOC_COMMAND Macro invoked with incorrect arguments for macro
  named: QT4_CREATE_MOC_COMMAND
Call Stack (most recent call first):
  CMakeLists.txt:138 (JREEN_WRAP_CPP)


CMake Error at cmake/jreenMacros.cmake:60 (QT4_CREATE_MOC_COMMAND):
  QT4_CREATE_MOC_COMMAND Macro invoked with incorrect arguments for macro
  named: QT4_CREATE_MOC_COMMAND
Call Stack (most recent call first):
  CMakeLists.txt:138 (JREEN_WRAP_CPP)


CMake Error at cmake/jreenMacros.cmake:60 (QT4_CREATE_MOC_COMMAND):
  QT4_CREATE_MOC_COMMAND Macro invoked with incorrect arguments for macro
  named: QT4_CREATE_MOC_COMMAND
Call Stack (most recent call first):
  CMakeLists.txt:138 (JREEN_WRAP_CPP)


CMake Error at cmake/jreenMacros.cmake:60 (QT4_CREATE_MOC_COMMAND):
  QT4_CREATE_MOC_COMMAND Macro invoked with incorrect arguments for macro
  named: QT4_CREATE_MOC_COMMAND
Call Stack (most recent call first):
  CMakeLists.txt:138 (JREEN_WRAP_CPP)


CMake Error at cmake/jreenMacros.cmake:60 (QT4_CREATE_MOC_COMMAND):
  QT4_CREATE_MOC_COMMAND Macro invoked with incorrect arguments for macro
  named: QT4_CREATE_MOC_COMMAND
Call Stack (most recent call first):
  CMakeLists.txt:138 (JREEN_WRAP_CPP)

-- Configuring incomplete, errors occurred!
See also "/tmp/yaourt-tmp-USER/aur-jreen/src/jreen-1.1.1-build/CMakeFiles/CMakeOutput.log".
See also "/tmp/yaourt-tmp-USER/aur-jreen/src/jreen-1.1.1-build/CMakeFiles/CMakeError.log".

Like suggested in the AUR comments of the jreen package I tried to install it manually from http://qutim.org/jreen which ended up in the same error message.
I really have no idea what's the problem here, so any kind of help would be very appreciated.
I can also post the CMake .logs if it would be helpful.

Thanks smile

EDIT: What I forgot: I'm running a Emachines E732ZG Laptop with linux 3.11.4 and gnome 3.10, pacman -Syu says everything is up to date.

Last edited by andgset (2013-10-13 18:46:04)

Offline

#2 2013-10-14 08:23:41

pavelgood
Member
Registered: 2013-10-14
Posts: 2

Re: Problem installing jreen lib 1.1.1

You can try to replace original JREEN_WRAP_CPP macros ( defined in cmake/jreenMacros.cmake) by this:

MACRO (JREEN_WRAP_CPP outfiles )
        # get include dirs
        QT4_GET_MOC_FLAGS(moc_flags)
        #QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN})
        QT4_EXTRACT_OPTIONS(moc_files moc_options moc_target ${ARGN})

        FOREACH (it ${moc_files})
                GET_FILENAME_COMPONENT(_abs_FILE ${it} ABSOLUTE)
                GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH)
                GET_FILENAME_COMPONENT(_basename ${it} NAME_WE)

                SET(_HAS_MOC false)

                IF(EXISTS ${_abs_PATH}/${_basename}.cpp)
                        SET(_header ${_abs_PATH}/${_basename}.cpp)
                        FILE(READ ${_header} _contents)
                        STRING(REGEX MATCHALL "# *include +[\">]moc_[^ ]+\\.cpp[\">]" _match "${_contents}")
                        STRING(REGEX MATCHALL "# *include +[^ ]+\\.moc[\">]" _match2 "${_contents}")
                        STRING(REGEX MATCHALL "Q_OBJECT" _match3 "${_contents}")
                        IF(_match)
                                SET(_HAS_MOC true)
                                FOREACH (_current_MOC_INC ${_match})
                                        STRING(REGEX MATCH "moc_[^ <\"]+\\.cpp" _current_MOC "${_current_MOC_INC}")
                                        SET(_moc    ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
                                        #QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${_moc_INCS}" "")
                                        QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${moc_flags}" "${moc_options}" "${moc_target}")
                                        MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
                                ENDFOREACH (_current_MOC_INC)
                        ENDIF()
                        IF(_match2)
                                FOREACH (_current_MOC_INC ${_match2})
                                        STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
                                        SET(_moc    ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
                                        #QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "")
                                        QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${moc_flags}" "${moc_options}" "${moc_target}")
                                        MACRO_ADD_FILE_DEPENDENCIES(${_header} ${_moc})
                                ENDFOREACH (_current_MOC_INC)
                        ENDIF()
                ENDIF()
                IF(NOT _HAS_MOC)
                        FILE(READ ${_abs_FILE} _contents)
                        STRING(REGEX MATCHALL "Q_OBJECT|Q_GADGET" _match2 "${_contents}")
                        IF(_match2)
                                QT4_MAKE_OUTPUT_FILE(${_abs_FILE} moc_ cpp outfile)
                                #QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${outfile} "${moc_flags}" "${moc_options}")
                                QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}")
                                SET(${outfiles} ${${outfiles}} ${outfile})
                        ENDIF()
                ENDIF()
        ENDFOREACH(it)
ENDMACRO (JREEN_WRAP_CPP)

Last edited by pavelgood (2013-10-14 08:25:54)

Offline

#3 2013-10-14 13:47:03

andgset
Member
Registered: 2013-10-13
Posts: 4

Re: Problem installing jreen lib 1.1.1

Thanks for the reply!
It seemed to work, but unfortunately I can't install it.

The package readme says

Compiling Jreen
---------------

    $ mkdir build && cd build
    $ cmake ..
    $ make

but $ make install will install it in /usr/local/ , with should be /usr/ in Arch, right?
Wiki suggests to $ ./configure --prefix=/usr, but since there's no configure file in jreen I'm kinda helpless sad

Last edited by andgset (2013-10-14 15:29:51)

Offline

#4 2013-10-15 06:16:00

pavelgood
Member
Registered: 2013-10-14
Posts: 2

Re: Problem installing jreen lib 1.1.1

Jreen uses cmake build system and it not contains configure script. You can use makepkg utililty for build this package.

I slightly modified the PKGBUILD file:

pkgname=jreen
pkgver=1.1.1
pkgrel=3
pkgdesc="Free and Opensource Jabber library, written in C++ using cross-platform framework Qt."
arch=('i686' 'x86_64')
url="http://qutim.org/jreen"
license=('GPL2')
depends=('libidn' 'qca-ossl' 'zlib')
makedepends=('cmake')
provides=('jreen')
conflicts=('jreen-git')
source=("${pkgname}-${pkgver}.zip::http://github.com/euroelessar/${pkgname}/archive/v${pkgver}.zip")
md5sums=('07e64faaae4be7cf2c99eac07f80fb8f')

# Clean options array to strip pkg if release buildtype is chosen
if [[ ! ${_buildtype} == "Release" ]] && [[ ! ${_buildtype} == "release" ]]; then
  options=(!strip)
fi

prepare() {
  if [[ -e ${srcdir}/${pkgname}-${pkgver}-build ]]; then rm -rf ${srcdir}/${pkgname}-${pkgver}-build; fi
  mkdir ${srcdir}/${pkgname}-${pkgver}-build
}

build() {
  cd ${srcdir}/${pkgname}-${pkgver}

  cp ../../jreenMacros.diff ./
  
  patch -p1 -i jreenMacros.diff

  cd ${srcdir}/${pkgname}-${pkgver}-build

  cmake -DQT_QMAKE_EXECUTABLE=qmake-qt4 \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_BUILD_TYPE=${_buildtype} \
        ../${pkgname}-${pkgver}
  make
}

package() {
  cd ${srcdir}/${pkgname}-${pkgver}-build
  make DESTDIR=${pkgdir} install
}

Use this patch to fix problem:

--- libjreen-1.1.1/cmake/jreenMacros.cmake	2013-01-06 19:49:31.000000000 +0400
+++ libjreen-1.1.1-fix/cmake/jreenMacros.cmake	2013-10-14 12:14:09.117863475 +0400
@@ -18,9 +18,10 @@
 
 MACRO (JREEN_WRAP_CPP outfiles )
         # get include dirs
         QT4_GET_MOC_FLAGS(moc_flags)
-        QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN})
+        #QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN})
+        QT4_EXTRACT_OPTIONS(moc_files moc_options moc_target ${ARGN})
 
         FOREACH (it ${moc_files})
                 GET_FILENAME_COMPONENT(_abs_FILE ${it} ABSOLUTE)
                 GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH)
@@ -38,17 +39,19 @@
                                 SET(_HAS_MOC true)
                                 FOREACH (_current_MOC_INC ${_match})
                                         STRING(REGEX MATCH "moc_[^ <\"]+\\.cpp" _current_MOC "${_current_MOC_INC}")
                                         SET(_moc    ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
-                                        QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${_moc_INCS}" "")
+                                        #QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${_moc_INCS}" "")
+                                        QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${_moc_INCS}" "${moc_options}" "${moc_target}")
                                         MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
                                 ENDFOREACH (_current_MOC_INC)
                         ENDIF()
                         IF(_match2)
                                 FOREACH (_current_MOC_INC ${_match2})
                                         STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
                                         SET(_moc    ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
-                                        QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "")
+                                        #QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "")
+                                        QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${_moc} "${_moc_INCS}" "${moc_options}" "${moc_target}")
                                         MACRO_ADD_FILE_DEPENDENCIES(${_header} ${_moc})
                                 ENDFOREACH (_current_MOC_INC)
                         ENDIF()
                 ENDIF()
@@ -56,9 +59,10 @@
                         FILE(READ ${_abs_FILE} _contents)
                         STRING(REGEX MATCHALL "Q_OBJECT|Q_GADGET" _match2 "${_contents}")
                         IF(_match2)
                                 QT4_MAKE_OUTPUT_FILE(${_abs_FILE} moc_ cpp outfile)
-                                QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${outfile} "${moc_flags}" "${moc_options}")
+                                #QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${outfile} "${moc_flags}" "${moc_options}")
+                                QT4_CREATE_MOC_COMMAND(${_abs_FILE} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}")
                                 SET(${outfiles} ${${outfiles}} ${outfile})
                         ENDIF()
                 ENDIF()
         ENDFOREACH(it)

So, create files (PKGBUILD and jreenMacros.diff) , put them into empty directory and build package:

$ ls
 jreenMacros.diff  PKGBUILD 
$ makepkg
$ sudo pacman -U jreen-1.1.1-3-x86_64.pkg.tar.xz 

Offline

#5 2013-10-15 09:40:53

andgset
Member
Registered: 2013-10-13
Posts: 4

Re: Problem installing jreen lib 1.1.1

Thank's for the detailed help! I finally installed it

Offline

Board footer

Powered by FluxBB