glibmm2.4 2.18.0 bug during Ingen compilation - no patch fix for Mandriva?
MandrivaThis Forum is for the discussion of Mandriva (Mandrake) Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
glibmm2.4 2.18.0 bug during Ingen compilation - no patch fix for Mandriva?
Hello everyone,
I've been trying to install Ingen from svn on Mandriva 2009.0, according to the instructions given in the install documentation page . After installing all the dependencies listed, I did the following, as per the instructions:
Code:
svn co http://svn.drobilla.net/lad/trunk drobilla-lad
cd drobilla-lad
./waf --help
./waf configure --enable-whatever-options-you-want
./waf
The build stopped with these errors on step 191 (of 283):
Code:
...
[190/283] cxx: ingen/src/gui/Configuration.cpp -> build/default/ingen/src/gui/Configuration_1.o
[191/283] cxx: ingen/src/gui/ConnectWindow.cpp -> build/default/ingen/src/gui/ConnectWindow_1.o
In file included from /usr/include/giomm-2.4/giomm/file.h:39,
from /usr/include/giomm-2.4/giomm/mount.h:29,
from /usr/include/giomm-2.4/giomm/drive.h:28,
from /usr/include/giomm-2.4/giomm.h:30,
from /usr/include/gtkmm-2.4/gtkmm.h:30,
from /usr/include/libgnomecanvasmm-2.6/libgnomecanvasmm.h:29,
from ../ingen/src/gui/App.hpp:26,
from ../ingen/src/gui/ConnectWindow.cpp:43:
/usr/include/giomm-2.4/giomm/error.h:72: error: expected identifier before numeric constant
/usr/include/giomm-2.4/giomm/error.h:72: error: expected `}' before numeric constant
/usr/include/giomm-2.4/giomm/error.h:72: error: expected unqualified-id before numeric constant
/usr/include/giomm-2.4/giomm/error.h:78: error: expected `)' before ‘error_code’
/usr/include/giomm-2.4/giomm/error.h:79: error: expected `)' before ‘*’ token
/usr/include/giomm-2.4/giomm/error.h:80: error: ‘Code’ does not name a type
/usr/include/giomm-2.4/giomm/error.h:83: error: expected unqualified-id before ‘private’
/usr/include/giomm-2.4/giomm/error.h:92: error: ‘friend’ used outside of class
/usr/include/giomm-2.4/giomm/error.h:97: error: expected declaration before ‘}’token
Build failed
-> task failed (err #1):
{task: cxx ConnectWindow.cpp -> ConnectWindow_1.o}
Upon googling, I found that identical errors have been reported here, as a bug in the glibmm2.4 2.18.0 package, which I have installed on my system:
The above bug report lists patch fixes for Fedora and Debian. I did not find any fix for Mandriva.
I would be grateful if anybody could show me how to work around this bug for Mandriva.
Thanks in advance!
Cheers,
Guru
Thanks, knudfl, for the prompt response.
I'm in the process of compiling the glibmm2.4 package with the patch. I've never done this before, so I spent some time reading up about it from here. Quite a learning experience! Hope it works in the end.
By the way, I didn't find a libglibmm package, the only one in the /SRPMS/Main/release/ folder was the package glibmm2.4-2.18.0-1mdv2009.0.src.rpm. I'm applying the patch to this package..
I will let you know how it goes....
Thanks once again,
Guru
P.S. Confirmed - it does generate the libraries, -devel libraries and static-devel libraries as separate rpms. This is from a pre-patch test build. Will apply the patch now.
I applied the patch exactly as described in this page. I bzipped the patch and placed it in the SOURCES directory. I then edited the spec file, to include the following two lines at the appropriate places:
then did rpmbuild -ba --clean glibmm2.4*.spec. There were no errors reported in the build, and 5 rpms were created in the RPMS/i586 directory.
Then, as root, I removed the two packages (libglibmm2.4 and libglibmm2.4-devel) using urpme, and then did
and for both packages, the first entry was exactly what I had put in.
However, while compiling Ingen as described above, I got the same errors at the same place again!
I have no clue as to how to proceed further. Any help would be appreciated!
Cheers,
Guru
P.S. Here is the spec file, upto the changelog:
Code:
%define version 2.18.0
%define release %mkrel 1
%define pkgname glibmm
%define api_version 2.4
%define major 1
%define libname_orig %mklibname %{pkgname} %{api_version}
%define libname %mklibname %{pkgname} %{api_version} %{major}
%define libnamedev %mklibname -d %{pkgname} %{api_version}
%define libnamestaticdev %mklibname -s -d %{pkgname} %{api_version}
Name: %{pkgname}%{api_version}
Summary: C++ interface for glib
Version: %{version}
Release: %{release}
License: LGPLv2+
Group: System/Libraries
URL: http://gtkmm.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Source: http://ftp.gnome.org/pub/GNOME/sources/%{pkgname}/%{pkgname}-%{version}.tar.bz2
Patch0: glibmm-2.18.0-gio-header-fix.patch.bz2
BuildRequires: glib2-devel >= 2.17.4
BuildRequires: libsigc++2.0-devel
BuildRequires: doxygen libxslt-proc
%description
Gtkmm provides a C++ interface to the GTK+ GUI library.
%{pkgname} originally belongs to gtkmm, but is now separated,
for use with non-GUI software written in C++.
%package -n %{libname}
Summary: C++ interface for glib
Group: System/Libraries
Provides: %{libname_orig} = %{version}-%{release}
Provides: %{pkgname}%{api_version} = %{version}-%{release}
%description -n %{libname}
Gtkmm provides a C++ interface to the GTK+ GUI library.
%{pkgname} originally belongs to gtkmm, but is now separated,
for use with non-GUI software written in C++.
This package contains the library needed to run programs dynamically
linked with %{pkgname}.
%package -n %{libnamedev}
Summary: Headers and development files of %{pkgname}
Group: Development/GNOME and GTK+
Requires: %{libname} = %{version}
Provides: %{pkgname}%{api_version}-devel = %{version}-%{release}
Provides: %{libname_orig}-devel = %{version}-%{release}
Obsoletes: %mklibname -d %{pkgname} %{api_version} 1
%description -n %{libnamedev}
This package contains the headers and development files that are needed,
when trying to develop or compile applications which need %{pkgname}.
%package -n %{libnamestaticdev}
Summary: Static libraries of %{pkgname}
Group: Development/GNOME and GTK+
Requires: %{libnamedev} = %{version}
Provides: %{libname_orig}-static-devel = %{version}-%{release}
Obsoletes: %mklibname -s -d %{pkgname} %{api_version} 1
%description -n %{libnamestaticdev}
Gtkmm provides a C++ interface to the GTK+ GUI library.
%{pkgname} originally belongs to gtkmm, but is now separated,
for use with non-GUI software written in C++.
This package contains the static libraries of %{pkgname}.
%package doc
Summary: Glibmm documentation
Group: Books/Other
%description doc
Gtkmm provides a C++ interface to the GTK+ GUI library.
%{pkgname} originally belongs to gtkmm, but is now separated,
for use with non-GUI software written in C++.
This package contains all API documentation for %{pkgname}.
%prep
%setup -q -n %{pkgname}-%{version}
%patch -p1
%build
# mdk does not have libtool 1.5 yet
%define __libtoolize /bin/true
%configure2_5x --enable-static --enable-shared
%make
# make check does nothing
%install
rm -rf %{buildroot}
%makeinstall_std
find %buildroot -name \*.la|xargs chmod 644
%if %mdkversion < 200900
%post -n %{libname} -p /sbin/ldconfig
%endif
%if %mdkversion < 200900
%postun -n %{libname} -p /sbin/ldconfig
%endif
%clean
rm -rf %{buildroot}
%files -n %{libname}
%defattr(-, root, root)
%doc COPYING NEWS README
%{_libdir}/libglibmm*%{api_version}.so.%{major}*
%{_libdir}/libgiomm*%{api_version}.so.%{major}*
%files -n %{libnamedev}
%defattr(-, root, root)
%doc AUTHORS ChangeLog
%{_includedir}/*
%attr(644,root,root) %{_libdir}/*.la
%{_libdir}/*.so
%{_libdir}/giomm-%api_version
%{_libdir}/glibmm-%{api_version}
%{_libdir}/pkgconfig/*.pc
%{_datadir}/aclocal/*.m4
%_datadir/devhelp/books/glibmm-2.4
%files -n %{libnamestaticdev}
%defattr(-, root, root)
%{_libdir}/*.a
%files doc
%defattr(-, root, root)
%doc %{_datadir}/doc/glibmm-%{api_version}
%changelog
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511
Rep:
I'd guess, your packages did not install, when having
the same release number. ??
( # 'rpm -Uvh <package.rpm> will return some text.)
Suggest : change 1 to 2 (or your choice) in line 2,
the spec file, I think it's that number, and use
'rpmbuild' again.
Thanks, knudfl, for the reply!
You've put in a lot of effort to find a solution for this issue... that's very kind of you. I am exploring both the solutions, and will get back to you with the results.
Cheers,
Guru
well I do this always happens to me when I want to compile some cool gnome enviroment programs glibmm is only part of the picture. I gave up and just installed a gnome environment and got away from that. mandriva has the gnome environment do you use it.and if you do down load the devel stuff.
sorry this is not much help but the mandriva dependency stuff is a big pain some times.
I wish you luck.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.