Re: [ANNOUNCE] util-linux-ng v2.16-rc2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 03, 2009 at 11:29:41AM +0200, Kay Sievers wrote:
> On Thu, 2009-07-02 at 22:32 +0200, Kay Sievers wrote:
> > On Thu, Jul 2, 2009 at 20:10, Karel Zak<kzak@xxxxxxxxxx> wrote:
> > >
> > > The second util-linux-ng 2.16 release candidate is available at
> > >
> > >   ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.16/
> > >
> > > Feedback and bug reports, as always, are welcomed.
> > 
> > It builds fine on the host, but fails to build in a clean chroot:
> > 
> > The hack with moving the devel files around to /usr with an install
> > hook breaks the values stored in the libblkid.la file and relinking
> > fails, because the lib devel files are now no longer in /lib but
> > (silently) moved to /usr/lib:
> > 
> > libtool: relink: gcc -std=gnu99 -shared  .libs/cache.o .libs/dev.o
> > .libs/devname.o .libs/devno.o .libs/getsize.o .libs/llseek.o
> > .libs/probe.o .libs/read.o .libs/resolve.o .libs/save.o .libs/tag.o
> > .libs/version.o .libs/verify.o .libs/encode.o .libs/config.o
> > .libs/evaluate.o .libs/blkdev.o .libs/linux_version.o
> > .libs/canonicalize.o .libs/md5.o  -Wl,--whole-archive
> > probers/.libs/libblkid_probers.a -Wl,--no-whole-archive
> > -L/var/tmp/util-linux-2.16-build/lib64 -L/lib64 -luuid
> > -Wl,--version-script=../../../shlibs/blkid/src/blkid.sym   -Wl,-soname
> > -Wl,libblkid.so.1 -o .libs/libblkid.so.1.0.0
> > /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld:
> > cannot find -luuid
> > collect2: ld returned 1 exit status
> > 
> > That the .so is installed in the root is really the implementation
> > detail that should be hidden from anything but the ld loader on the
> > system. I guess, we want to keep the original --libdir value, and use
> > a --rootlibdir as it's own parameter, or something similar, and just
> > move the .so image to the root with the install hook (or the spec
> > file), instead of moving the devel stuff, faking the .pc files and
> > patching the .la files. :)
> 
> This seems to make it work in the chroot.
> 

Almost, you forgot to remove the 

 mv $(DESTDIR)$(libdir)/libblkid.a $(DESTDIR)$(usrlibexecdir)/; \
 mv $(DESTDIR)$(libdir)/libuuid.a $(DESTDIR)$(usrlibexecdir)/; \

lines. Patch below works for me. Another issue with 2.16 is that
parallel builds with 'make -jN' are broken for N>1, vaild for the
install target too.


Thanks and regards
Juergen


diff -Nru util-linux-ng-2.16-rc2.orig/shlibs/blkid/src/Makefile.am util-linux-ng-2.16-rc2/shlibs/blkid/src/Makefile.am
--- util-linux-ng-2.16-rc2.orig/shlibs/blkid/src/Makefile.am	2009-07-03 11:36:15.607275083 +0200
+++ util-linux-ng-2.16-rc2/shlibs/blkid/src/Makefile.am	2009-07-03 12:25:42.217275068 +0200
@@ -21,7 +21,7 @@
 blkidincdir = $(includedir)/blkid
 blkidinc_HEADERS = blkid.h
 
-lib_LTLIBRARIES = libblkid.la
+usrlibexec_LTLIBRARIES = libblkid.la
 libblkid_la_SOURCES = cache.c dev.c devname.c devno.c getsize.c llseek.c  \
 		     probe.c read.c resolve.c save.c tag.c version.c verify.c \
 		     encode.c blkid.h list.h blkidP.h probers/probers.h \
@@ -49,17 +49,14 @@
 	$(COMPILE) -DTEST_PROGRAM $< .libs/libblkid.a -o $@ $(common_ldadd)
 
 
-# move devel files from $(libdir) to $(usrlibexecdir) if needed
+# move lib from $(usrlibexecdir) to $(libdir) if needed
 install-data-hook:
-	rm  $(DESTDIR)$(libdir)/$(lib_LTLIBRARIES)
 	if test "$(usrlibexecdir)" != "$(libdir)"; then \
-		mkdir -p $(DESTDIR)$(usrlibexecdir); \
-		mv $(DESTDIR)$(libdir)/libblkid.a $(DESTDIR)$(usrlibexecdir)/; \
-		so_img_name=$$(readlink $(DESTDIR)$(libdir)/libblkid.so); \
-		rm $(DESTDIR)$(libdir)/libblkid.so; \
+		mkdir -p $(DESTDIR)$(libdir); \
+		so_img_name=$$(readlink $(DESTDIR)$(usrlibexecdir)/libblkid.so); \
 		so_img_rel_target=$$(echo $(usrlibexecdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
-		ln -sf  $$so_img_rel_target$(libdir)/$$so_img_name \
-			$(DESTDIR)$(usrlibexecdir)/libblkid.so; \
+		ln -sf  $$so_img_rel_target$(libdir)/$$so_img_name $(DESTDIR)$(usrlibexecdir)/libblkid.so; \
+		mv $(DESTDIR)$(usrlibexecdir)/libblkid.so.* $(DESTDIR)$(libdir); \
 	fi
 
 uninstall-hook:
diff -Nru util-linux-ng-2.16-rc2.orig/shlibs/uuid/src/Makefile.am util-linux-ng-2.16-rc2/shlibs/uuid/src/Makefile.am
--- util-linux-ng-2.16-rc2.orig/shlibs/uuid/src/Makefile.am	2009-07-03 11:36:15.627274837 +0200
+++ util-linux-ng-2.16-rc2/shlibs/uuid/src/Makefile.am	2009-07-03 12:25:54.977275086 +0200
@@ -10,7 +10,7 @@
 uuidincdir = $(includedir)/uuid
 uuidinc_HEADERS = uuid.h
 
-lib_LTLIBRARIES = libuuid.la
+usrlibexec_LTLIBRARIES = libuuid.la
 libuuid_la_SOURCES = clear.c compare.c copy.c gen_uuid.c \
            isnull.c pack.c parse.c unpack.c unparse.c uuidd.h \
            uuidd.h uuidP.h uuid_time.c $(uuidinc_HEADERS)
@@ -30,17 +30,14 @@
 	$(COMPILE) -DTEST_PROGRAM $< .libs/libuuid.a -o $@
 
 
-# move devel files from $(libdir) to $(usrlibexecdir) if needed
+# move lib from $(usrlibexecdir) to $(libdir) if needed
 install-data-hook:
-	rm  $(DESTDIR)$(libdir)/$(lib_LTLIBRARIES)
 	if test "$(usrlibexecdir)" != "$(libdir)"; then \
-		mkdir -p $(DESTDIR)$(usrlibexecdir); \
-		mv $(DESTDIR)$(libdir)/libuuid.a $(DESTDIR)$(usrlibexecdir)/; \
-		so_img_name=$$(readlink $(DESTDIR)$(libdir)/libuuid.so); \
-		rm $(DESTDIR)$(libdir)/libuuid.so; \
+		mkdir -p $(DESTDIR)$(libdir); \
+		so_img_name=$$(readlink $(DESTDIR)$(usrlibexecdir)/libuuid.so); \
 		so_img_rel_target=$$(echo $(usrlibexecdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
-		ln -sf  $$so_img_rel_target$(libdir)/$$so_img_name \
-			$(DESTDIR)$(usrlibexecdir)/libuuid.so; \
+		ln -sf  $$so_img_rel_target$(libdir)/$$so_img_name $(DESTDIR)$(usrlibexecdir)/libuuid.so; \
+		mv $(DESTDIR)$(usrlibexecdir)/libuuid.so.* $(DESTDIR)$(libdir); \
 	fi
 
 uninstall-hook:


-- 
Juergen Daubert  |  mailto:jue@xxxxxx  
Korb, Germany    |  http://jue.li/crux

--
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux