From 59ab73c57f5048290841b3f1daa3fcda7ce070b2 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 22 Sep 2010 12:55:13 +0200 Subject: [PATCH] On Linux: Run ldconfig during make install,if not --disable-ldconfig-at-install --- ChangeLog | 3 ++- Makefile.am | 2 ++ README | 40 ++++++++++++++++++++++------------------ acinclude.m4 | 2 ++ configure.ac | 11 +++++++++++ 5 files changed, 39 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 00b1525..307d2cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,10 +4,11 @@ libisofs-0.6.36.tar.gz Wed Sep 15 2010 an MBR with a first partiton table entry that bears non-zero start address. A second set of volume descriptors and directory tree+tables gets created which can be used to mount the image at the partition start. -* Hiding all non-API symbols from the linker by use of --version-scrip +* Hiding all non-API symbols from the linker by use of --version-script * Automatic C++ detection in libisofs.h by using macro __cplusplus * Corrected several memory leaks and potential NULL pointer evaluations in case of memory shortage. +* Now with history of release notes in ./ChangeLog file. libisofs-0.6.34.tar.gz Tue Jun 29 2010 =============================================================================== diff --git a/Makefile.am b/Makefile.am index eafdd32..1a07867 100644 --- a/Makefile.am +++ b/Makefile.am @@ -80,6 +80,8 @@ libisofs_libisofs_la_LIBADD= \ libinclude_HEADERS = \ libisofs/libisofs.h +install-exec-hook: + $(LIBBURNIA_LDCONFIG_CMD) "$(DESTDIR)$(libdir)" || echo 'NOTE: Explicite dynamic library configuration failed. If needed, configure manually for:' "$(DESTDIR)$(libdir)" ## ========================================================================= ## diff --git a/README b/README index aecec2a..75d77c9 100644 --- a/README +++ b/README @@ -37,7 +37,25 @@ and execute To make the libraries accessible for running resp. developing applications make install -See INSTALL file for further details. +On GNU/Linux it will try to run program ldconfig with the library installation +directory as only argument. Failure to do so will not abort installation. +One may disable ldconfig by ./configure option --disable-ldconfig-at-install . + +By use of a version script, the libisofs.so library exposes no other function +names but those of the API definitions in . +If -Wl,--version-script=... makes problems with the local compiler, then +disable this encapsulation feature by + ./configure --disable-versioned-libs + make clean ; make + +The ./configure script checks for the availability of supporting libraries. +If found, they will become mandatory for the emerging libisofs.so and all +applications which use it. This dependency can be avoided by configure options + --disable-libacl avoid use of ACL functions like acl_to_text() + --disable-xattr avoid use of xattr functions like listxattr() + --disable-zlib avoid use of zlib functions like compress2() + +See INSTALL file for general options of ./configure. ------------------------------------------------------------------------------ @@ -113,7 +131,6 @@ a) Images with unsupported features, such as: - UDF. - HSF/HFS+ or other Mac extensions. - ECMA-119 Extended attributes. - - Non El-Torito boot info. - ... In all these cases, the resulting new image (or new session) could lack some features of the original image. Nevertheless, the ECMA-119 System Area with @@ -122,22 +139,9 @@ a) Images with unsupported features, such as: or modify the image. Others remain undetected. Images created with libisofs do not have this problems. -b) Bootable El-Torito images may have several problems, that result in a new - image that is not bootable, or that boots from an outdated session. In many - cases it is recommended to add boot info again in the new session. - - - isolinux images won't be bootable after a modify. This is because - isolinux images need to have hardcoded the root dir lba in their boot - information table. - libisofs makes an educated guess at load time whether a boot image - contains such a table. Its outcome can be inquired by call - el_torito_seems_boot_info_table(). - If one knows to have isolinux or GRUB El-Torito-bootable images, or if - a boot information table seems to exist, it is advised to apply the - el_torito_patch_isolinux_image() function. - Most boot images are highly dependent of the image contents, so if the - user moves or removes some files on image it is possible they won't boot - anymore. +b) Bootable El-Torito images may have problems, that result in a new image that + is not bootable, or that boots from an outdated session. In some cases it + might be necessary to add boot info again in a new first session. - There is no safe way to modify hidden boot images, as the size of the boot image can't be figured out. diff --git a/acinclude.m4 b/acinclude.m4 index 4c9f780..417b0e9 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -16,10 +16,12 @@ AC_DEFUN([TARGET_SHIZZLE], AC_MSG_CHECKING([target operating system]) + LIBBURNIA_LDCONFIG_CMD="echo 'No ldconfig run performed. If needed, configure manually for:'" case $target in *-*-linux*) ARCH=linux LIBBURN_ARCH_LIBS= + LIBBURNIA_LDCONFIG_CMD=ldconfig ;; *-*-freebsd*) ARCH=freebsd diff --git a/configure.ac b/configure.ac index 6996aed..3c56b75 100644 --- a/configure.ac +++ b/configure.ac @@ -225,6 +225,17 @@ else echo "disabled strict symbol encapsulation" fi +AC_ARG_ENABLE(ldconfig-at-install, +[ --enable-ldconfig-at-install On GNU/Linux run ldconfig, default=yes], + , ldconfig_at_install=yes) +if test x$ldconfig_at_install = xyes; then + dummy=dummy +else + LIBBURNIA_LDCONFIG_CMD="echo 'NOTE: ldconfig is disabled. If needed, configure manually for:'" + echo "disabled run of ldconfig during installation on GNU/Linux" +fi +AC_SUBST(LIBBURNIA_LDCONFIG_CMD) + AC_CONFIG_FILES([ Makefile doc/doxygen.conf