Hi,
On 2007-12-22 15:15:08 +0100, Vincenzo Barranco wrote:
> Hi,
> I've to do the rpms of ede for X11:windowmanagers and I'm building on
> my home project (home:barravince112) I'm doing some build tests.
> During the building the obs said in the window:
>
> Installing shared libraries...
> cp: cannot create regular file `/usr/local/lib/libefltk.so.2.0':
> Permission denied
> make[1]: *** [install_shared] Error 1
> make[1]: Leaving directory `/usr/src/packages/BUILD/efltk-2.0.7/src'
> make: *** [install] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.15095 (%build)
>
>
> RPM build errors:
> Bad exit status from /var/tmp/rpm-tmp.15095 (%build)
> mount: can't find / in /etc/fstab or /etc/mtab
> md: stopping all md devices.
> xenbus_dev_shutdown: device/console/0: Initialising != Connected, skipping
> System halted.
>
> What can it be?
>
The Makefile doesn't support the $(DESTDIR) variable, so %makeinstall (which
is expanded to "make DESTDIR=%{buildroot} install") won't work.
The following make install call should work (please add this to your %install
section in the spec file):
%__make prefix=%{buildroot}%{_prefix} \
libdir=%{buildroot}%{_libdir} \
bindir=%{buildroot}%{_bindir} \
includedir=%{buildroot}%{_includedir} \
datadir=%{buildroot}%{_datadir} \
localedir=%{buildroot}%{_localedir} \
install
Additionally you need a small patch for your Makefile (see attached file).
By the way: why doesn't suse use the "default" %makeinstall macro definition
from /usr/lib/rpm/macros? If the Makefile has no DESTDIR support the default
macro will most likely work.
> I've another question: why in the x86_64 package obs don't find the
> package gcc42-c++ ?
Use gcc-c++ instead of gcc42-c++ - then it'll work with other suse versions
too.
Marcus
--- src/Makefile.old 2007-12-22 16:04:58.000000000 +0100
+++ src/Makefile 2007-12-22 16:05:16.000000000 +0100
@@ -132,6 +132,7 @@
install_shared: shared
@echo "Installing shared libraries..."
+ @mkdir -p $(libdir)
@rm -f $(libdir)/$(DLLIMPORTNAME)
@rm -f $(libdir)/$(DSOLIBNAME)$(DSOEXT)
@rm -f $(libdir)/$(DSOLIBNAME)$(DSOSHORTEXT)