From 9bc15f5d98a3a17d465a94f42dc3ffb60c077293 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 6 Dec 2010 18:16:39 +0000 Subject: [PATCH] Remove ability to build static distribution. We are now going to build binaries for each distribution so there is no need to build the quasi-distro-independent static binaries any more. --- .gitignore | 9 ------- Makefile.am | 31 ++------------------- cat/Makefile.am | 14 ---------- df/Makefile.am | 6 ----- fish/Makefile.am | 6 ----- fuse/Makefile.am | 6 ----- inspector/Makefile.am | 6 ----- relink-static.sh | 75 --------------------------------------------------- rescue/Makefile.am | 6 ----- test-tool/Makefile.am | 6 ----- 10 files changed, 2 insertions(+), 163 deletions(-) delete mode 100755 relink-static.sh diff --git a/.gitignore b/.gitignore index 0f24850..b4d8f53 100644 --- a/.gitignore +++ b/.gitignore @@ -23,13 +23,10 @@ capitests/test*.tmp cat/stamp-virt-*.pod cat/virt-cat cat/virt-cat.1 -cat/virt-cat.static cat/virt-filesystems cat/virt-filesystems.1 -cat/virt-filesystems.static cat/virt-ls cat/virt-ls.1 -cat/virt-ls.static ChangeLog *.class *.cma @@ -67,7 +64,6 @@ depcomp df/stamp-virt-df.pod df/virt-df df/virt-df.1 -df/virt-df.static emptydisk examples/create_disk examples/guestfs-examples.3 @@ -78,7 +74,6 @@ fish/cmds_gperf.c fish/cmds_gperf.gperf fish/completion.c fish/guestfish -fish/guestfish.static fish/prepopts.c fish/prepopts.h fish/rc_protocol.c @@ -86,7 +81,6 @@ fish/rc_protocol.h fish/stamp-guestfish.pod fuse/guestmount fuse/guestmount.1 -fuse/guestmount.static fuse/stamp-guestmount.pod generator/.pod2text.data* generator/generator @@ -146,7 +140,6 @@ images/windows.img inspector/stamp-virt-inspector.pod inspector/virt-inspector inspector/virt-inspector.1 -inspector/virt-inspector.static install-sh *.jar java/api @@ -270,7 +263,6 @@ regressions/test.out rescue/stamp-virt-rescue.pod rescue/virt-rescue rescue/virt-rescue.1 -rescue/virt-rescue.static ruby/bindtests.rb ruby/examples/guestfs-ruby.3 ruby/examples/stamp-guestfs-ruby.pod @@ -299,7 +291,6 @@ stamp-h1 test1.img test-tool/libguestfs-test-tool test-tool/libguestfs-test-tool.1 -test-tool/libguestfs-test-tool.static test-tool/libguestfs-test-tool-helper tools/test.img tools/virt-*.1 diff --git a/Makefile.am b/Makefile.am index a4f24be..5f441a2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -193,14 +193,7 @@ CLEANFILES = \ quickcheck: test-tool/run-test-tool-locally -# Mostly static binary distribution. -# -# Some binaries are relinked partially statically. You can make these -# binaries "more static" by making sure that as many foo-static -# packages are installed as possible. -# -# We remove the supermin appliance and adjust some directories to make -# them non-Fedora-specific. +# Make binary distribution. BINTMPDIR = /tmp/libguestfs-bin bindist: @@ -208,26 +201,6 @@ bindist: mkdir $(BINTMPDIR) $(MAKE) $(MAKE) DESTDIR=$(BINTMPDIR) install - rm -r $(BINTMPDIR)$(libdir)/guestfs/supermin.d - rm $(BINTMPDIR)$(libdir)/guestfs/kmod.whitelist - mv $(BINTMPDIR)$(prefix)/lib64/* $(BINTMPDIR)$(libdir) - mv $(BINTMPDIR)/usr/lib64/* $(BINTMPDIR)$(libdir) -find $(BINTMPDIR) -type d -exec rmdir --ignore-fail-on-non-empty {} \; - $(MAKE) -C fish guestfish.static - cp fish/guestfish.static $(BINTMPDIR)$(bindir)/guestfish - $(MAKE) -C fuse guestmount.static - cp fuse/guestmount.static $(BINTMPDIR)$(bindir)/guestmount - $(MAKE) -C test-tool libguestfs-test-tool.static - cp test-tool/libguestfs-test-tool.static $(BINTMPDIR)$(bindir)/libguestfs-test-tool - $(MAKE) -C cat virt-cat.static virt-filesystems.static virt-ls.static - cp cat/virt-cat.static $(BINTMPDIR)$(bindir)/virt-cat - cp cat/virt-filesystems.static $(BINTMPDIR)$(bindir)/virt-filesystems - cp cat/virt-ls.static $(BINTMPDIR)$(bindir)/virt-ls - $(MAKE) -C df virt-df.static - cp df/virt-df.static $(BINTMPDIR)$(bindir)/virt-df - $(MAKE) -C inspector virt-inspector.static - cp inspector/virt-inspector.static $(BINTMPDIR)$(bindir)/virt-inspector - $(MAKE) -C rescue virt-rescue.static - cp rescue/virt-rescue.static $(BINTMPDIR)$(bindir)/virt-rescue (cd $(BINTMPDIR) && tar cf - .) | \ - gzip -c -9 > libguestfs-$(VERSION)-$(host_cpu).tar.gz + gzip -c -9 > libguestfs-$(VERSION)-$(DISTRO)-$(host_cpu).tar.gz diff --git a/cat/Makefile.am b/cat/Makefile.am index 10a768b..026a561 100644 --- a/cat/Makefile.am +++ b/cat/Makefile.am @@ -129,17 +129,3 @@ TESTS_ENVIRONMENT = \ LIBGUESTFS_PATH=$(top_builddir)/appliance TESTS = test-virt-cat.sh test-virt-filesystems.sh test-virt-ls.sh - -# Build a partly-static binary (for the binary distribution). - -virt-cat.static$(EXEEXT): $(virt_cat_OBJECTS) $(virt_cat_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(virt_cat_LINK) $(virt_cat_OBJECTS) -static $(virt_cat_LDADD) $(virt_cat_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm - -virt-filesystems.static$(EXEEXT): $(virt_filesystems_OBJECTS) $(virt_filesystems_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(virt_filesystems_LINK) $(virt_filesystems_OBJECTS) -static $(virt_filesystems_LDADD) $(virt_filesystems_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm - -virt-ls.static$(EXEEXT): $(virt_ls_OBJECTS) $(virt_ls_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(virt_ls_LINK) $(virt_ls_OBJECTS) -static $(virt_ls_LDADD) $(virt_ls_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm diff --git a/df/Makefile.am b/df/Makefile.am index 053261d..2f0eff0 100644 --- a/df/Makefile.am +++ b/df/Makefile.am @@ -79,9 +79,3 @@ TESTS_ENVIRONMENT = \ LIBGUESTFS_PATH=$(top_builddir)/appliance TESTS = test-virt-df.sh - -# Build a partly-static binary (for the binary distribution). - -virt-df.static$(EXEEXT): $(virt_df_OBJECTS) $(virt_df_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(virt_df_LINK) $(virt_df_OBJECTS) -static $(virt_df_LDADD) $(virt_df_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm diff --git a/fish/Makefile.am b/fish/Makefile.am index 01ed59c..75002cc 100644 --- a/fish/Makefile.am +++ b/fish/Makefile.am @@ -128,12 +128,6 @@ rc_protocol.h: rc_protocol.x mv $@-t $@ endif -# Build a partly-static library (for the binary distribution). - -guestfish.static$(EXEEXT): $(guestfish_OBJECTS) $(guestfish_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(guestfish_LINK) $(guestfish_OBJECTS) -static $(guestfish_LDADD) $(guestfish_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -ltinfo -lpcre -lhivex -lmagic -lz -lm - # Manual page. man_MANS = guestfish.1 diff --git a/fuse/Makefile.am b/fuse/Makefile.am index 692da6e..7d3b463 100644 --- a/fuse/Makefile.am +++ b/fuse/Makefile.am @@ -55,12 +55,6 @@ guestmount_LDADD = \ $(top_builddir)/src/libguestfs.la \ ../gnulib/lib/libgnu.la -# Build a partly-static library (for the binary distribution). - -guestmount.static$(EXEEXT): $(guestmount_OBJECTS) $(guestmount_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(guestmount_LINK) $(guestmount_OBJECTS) -static $(guestmount_LDADD) $(guestmount_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm - # Documentation. man_MANS = guestmount.1 diff --git a/inspector/Makefile.am b/inspector/Makefile.am index d1dcb6d..7e36611 100644 --- a/inspector/Makefile.am +++ b/inspector/Makefile.am @@ -95,9 +95,3 @@ example-ubuntu.xml: ./run-inspector-locally ../images/ubuntu.img > $@ example-windows.xml: ./run-inspector-locally ../images/windows.img | fgrep -v '' > $@ - -# Build a partly-static library (for the binary distribution). - -virt-inspector.static$(EXEEXT): $(virt_inspector_OBJECTS) $(virt_inspector_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(virt_inspector_LINK) $(virt_inspector_OBJECTS) -static $(virt_inspector_LDADD) $(virt_inspector_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm diff --git a/relink-static.sh b/relink-static.sh deleted file mode 100755 index 9dd5a22..0000000 --- a/relink-static.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2010 Red Hat Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# Written by Richard W.M. Jones -# -# Take a dynamically linked ELF binary and relink it, maximizing the -# use of static libraries. -# -# Example: -# binary foo -# ---> dynamically links to libbar.so.0 -# ---> dynamically links to libzab.so.3 -# If libbar.a is available, but there is no libzab.a, then we would -# end up with: -# binary foo.static with libbar.a statically inside it -# ---> still dynamically linking with libzab.so.3 -# -# We need to have access to the original link command. This script -# works by post-processing it to find the '-lbar' arguments, which are -# replaced sometimes by direct static library names. -# -# Therefore to use this, you have to add this rule to your -# Makefile.am: -# -# foo.static$(EXEEXT): $(foo_OBJECTS) $(foo_DEPENDENCIES) -# relink-static.sh \ -# $(foo_LINK) $(foo_OBJECTS) -static $(foo_LDADD) $(foo_LIBS) - -declare -a args - -i=0 -for arg; do - case "$arg" in - -l*) # get just the library name (eg. "xml2") - lib=${arg:2} - # does a static version exist? - for d in /usr/local/lib{64,} /usr/lib{64,} /lib{64,}; do - path="$d/lib$lib.a" - if [ -f "$path" ]; then - arg="$path" - break - fi - done - ;; - *.la) # hack around libtool mess - d=$(dirname "$arg") - b=$(basename "$arg") - b=${b:0:${#b}-3} - if [ -f "$d/.libs/$b.a" ]; then - arg="$d/.libs/$b.a" - fi - ;; - *) ;; - esac - args[$i]="$arg" - i=$(($i+1)) -done - -# Run the final command. -echo "${args[@]}" -"${args[@]}" diff --git a/rescue/Makefile.am b/rescue/Makefile.am index 1208be1..f6f5b25 100644 --- a/rescue/Makefile.am +++ b/rescue/Makefile.am @@ -59,9 +59,3 @@ stamp-virt-rescue.pod: virt-rescue.pod --html $(top_builddir)/html/virt-rescue.1.html \ $< touch $@ - -# Build a partly-static binary (for the binary distribution). - -virt-rescue.static$(EXEEXT): $(virt_rescue_OBJECTS) $(virt_rescue_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(virt_rescue_LINK) $(virt_rescue_OBJECTS) -static $(virt_rescue_LDADD) $(virt_rescue_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm diff --git a/test-tool/Makefile.am b/test-tool/Makefile.am index 908d2a0..15a5c8f 100644 --- a/test-tool/Makefile.am +++ b/test-tool/Makefile.am @@ -39,12 +39,6 @@ libguestfs_test_tool_LDADD = \ libguestfs_test_tool_helper_SOURCES = helper.c libguestfs_test_tool_helper_LDFLAGS = -all-static -# Build a partly-static library (for the binary distribution). - -libguestfs-test-tool.static$(EXEEXT): $(libguestfs_test_tool_OBJECTS) $(libguestfs_test_tool_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(libguestfs_test_tool_LINK) $(libguestfs_test_tool_OBJECTS) -static $(libguestfs_test_tool_LDADD) $(libguestfs_test_tool_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm - libguestfs-test-tool.1: libguestfs-test-tool.pod $(top_srcdir)/podwrapper.sh \ --man $@ \ -- 1.8.3.1