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

Bug#123887: EVMS: shared libraries with unversioned sonames



On Sat, Dec 29, 2001 at 01:33:26PM -0600, Kevin Corry wrote:

> On Friday 28 December 2001 23:48, Matt Zimmerman wrote:
> > I have already grabbed the latest release and started work on evms
> > packages for Debian, though I haven't touched them for over a week since
> > I have been away.  I should have experimental packages ready within the
> > next week or so.
> 
> Great!

I have a set of packages which work for me, but a few things will need to be
resolved before they can go into Debian proper.

- Shared library versioning

  libevms and libdlist have sonames with no version number (libevms.so and
  libdlist.so).  I assume that this is because the APIs aren't yet stable
  and you aren't worrying about binary compatibility yet, but this setup
  will cause problems for upgrades, and as such does not meet Debian
  requirements.  There are at least couple other ways to approach the
  situation:

  - Use a soname like libevms-0.2.4.so, where there is implicitly no binary
    compatibility between versons, and multiple versions of the library can
    be installed at once.  This is my preferred method.

  - Only provide static libraries until normal soname versioning makes sense

  What are your feelings on this?

- Manual pages

  Debian requires that every program have a manual page.  This is not a big
  deal; I will write the man pages if you don't have any.

- Makefile stuff

  I modified the makefiles to support DESTDIR, and to remove the autoconf
  clutter in 'clean' instead of 'distclean'.  I can't run 'distclean' from
  the package build scripts because it removes 'configure'; I'm not sure why
  this is, since configure is part of the distribution.  My diff is
  attached.

> > I have not as yet built a kernel with the EVMS patch.  I hope it is
> > possible to include both LVM and EVMS for migration purposes; is this
> > true?
> 
> Yep. I run kernels with both EVMS and LVM enabled. Just make sure you
> don't mount the same LV with both systems at the same time. Also, if you
> make any volume modifications with one system (add/delete LVs, add/delete
> PVs from a VG, etc), you may need to reboot in order for the other to pick
> up the changes.

I have a device which used to be LVM PV, but is no longer in any VG, and I
want to give the device to EVMS to use as a new segment to play with.  It
was still claimed by the LVM region manager, though (in
LVM_Unassigned_Group).  The only way I could release it was to zero out the
first sector and run evms_vgscan.  Was there a better way?

-- 
 - mdz
--- evms-0.2.4.orig/engine/Engine/Makefile
+++ evms-0.2.4/engine/Engine/Makefile
@@ -19,10 +19,10 @@
 all: .depend $(TARGET)
 
 install: all
-	../mkinstalldirs.sh $(EVMSLIB_DIR)
-	$(INSTALL) $(TARGET) $(EVMSLIB_DIR)
-	rm -f $(EVMSLIB_DIR)/$(SONAME)
-	ln -s $(EVMSLIB_DIR)/$(TARGET) $(EVMSLIB_DIR)/$(SONAME)
+	../mkinstalldirs.sh $(DESTDIR)$(EVMSLIB_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(EVMSLIB_DIR)
+	rm -f $(DESTDIR)$(EVMSLIB_DIR)/$(SONAME)
+	ln -s $(TARGET) $(DESTDIR)$(EVMSLIB_DIR)/$(SONAME)
 
 uninstall:
 	rm -f $(EVMSLIB_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Makefile
+++ evms-0.2.4/engine/Makefile
@@ -12,15 +12,15 @@
 	done && test -z "$$fail"
 
 install:
-	rm -f $(PLUGINS_DIR)/lib*
-	rm -f $(EVMSHEADERS_DIR)/*.h
+	rm -f $(DESTDIR)$(PLUGINS_DIR)/lib*
+	rm -f $(DESTDIR)$(EVMSHEADERS_DIR)/*.h
 
 	@for dir in ${subdirs}; do \
 	  (cd $$dir && $(MAKE) install) \
 	  || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
 	done && test -z "$$fail"
-	./mkinstalldirs.sh $(EVMSHEADERS_DIR)
-	$(INSTALL) include/*.h $(EVMSHEADERS_DIR)
+	./mkinstalldirs.sh $(DESTDIR)$(EVMSHEADERS_DIR)
+	$(INSTALL) -m 644 include/*.h $(DESTDIR)$(EVMSHEADERS_DIR)
 
 uninstall:
 	@for dir in ${subdirs}; do \
@@ -29,7 +29,7 @@
 	done && test -z "$$fail"
 
 clean:
-	/bin/rm -f *~
+	/bin/rm -f *~ config.cache config.log config.status
 	@for dir in ${subdirs}; do \
 	  (cd $$dir && $(MAKE) clean) \
 	  || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
--- evms-0.2.4.orig/engine/Plugins/aixregmgr/Makefile
+++ evms-0.2.4/engine/Plugins/aixregmgr/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/bbr/Makefile
+++ evms-0.2.4/engine/Plugins/bbr/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/defsegmgr/Makefile
+++ evms-0.2.4/engine/Plugins/defsegmgr/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/drivelink/Makefile
+++ evms-0.2.4/engine/Plugins/drivelink/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/localdskmgr/Makefile
+++ evms-0.2.4/engine/Plugins/localdskmgr/Makefile
@@ -19,8 +19,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/lvmregmgr/Makefile
+++ evms-0.2.4/engine/Plugins/lvmregmgr/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/mdregmgr/Makefile
+++ evms-0.2.4/engine/Plugins/mdregmgr/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/os2regmgr/Makefile
+++ evms-0.2.4/engine/Plugins/os2regmgr/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/Plugins/snapshot/Makefile
+++ evms-0.2.4/engine/Plugins/snapshot/Makefile
@@ -20,8 +20,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(PLUGINS_DIR)
-	$(INSTALL) $(TARGET) $(PLUGINS_DIR)
+	../../mkinstalldirs.sh $(DESTDIR)$(PLUGINS_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(PLUGINS_DIR)
 
 uninstall:
 	rm -f $(PLUGINS_DIR)/$(TARGET)
--- evms-0.2.4.orig/engine/UserInterface/CommandLine/Makefile
+++ evms-0.2.4/engine/UserInterface/CommandLine/Makefile
@@ -18,8 +18,8 @@
 	@echo "*************************************************"
 
 install: all
-	../../mkinstalldirs.sh $(sbindir)
-	$(INSTALL) $(TARGET) $(sbindir)
+	../../mkinstalldirs.sh $(DESTDIR)$(sbindir)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
 
 uninstall:
 	rm -f $(sbindir)/$(TARGET)
--- evms-0.2.4.orig/engine/UserInterface/LvmUtils/Makefile
+++ evms-0.2.4/engine/UserInterface/LvmUtils/Makefile
@@ -20,10 +20,10 @@
 all: .depend $(TARGETS)
 
 install: all
-	@echo "Installing LVM utilities in $(sbindir)"
-	../../mkinstalldirs.sh $(sbindir)
+	@echo "Installing LVM utilities in $(DESTDIR)$(sbindir)"
+	../../mkinstalldirs.sh $(DESTDIR)$(sbindir)
 	@for f in $(TARGETS); do \
-		$(INSTALL) $$f $(sbindir); \
+		$(INSTALL) $$f $(DESTDIR)$(sbindir); \
 	done
 
 uninstall:
--- evms-0.2.4.orig/engine/UserInterface/devnode_fixup/Makefile
+++ evms-0.2.4/engine/UserInterface/devnode_fixup/Makefile
@@ -10,8 +10,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(sbindir)
-	$(INSTALL) $(TARGET) $(sbindir)
+	../../mkinstalldirs.sh $(DESTDIR)$(sbindir)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
 
 uninstall:
 	rm -f $(sbindir)/$(TARGET)
--- evms-0.2.4.orig/engine/UserInterface/evmsgui/Makefile
+++ evms-0.2.4/engine/UserInterface/evmsgui/Makefile
@@ -15,9 +15,9 @@
 all: .depend $(TARGET)
 
 install: all
-	@echo "Installing EVMS GUI in $(sbindir)"
-	../../mkinstalldirs.sh $(sbindir)
-	$(INSTALL) $(TARGET) $(sbindir)
+	@echo "Installing EVMS GUI in $(DESTDIR)$(sbindir)"
+	../../mkinstalldirs.sh $(DESTDIR)$(sbindir)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
 
 uninstall:
 	@echo "Removing EVMS GUI from $(sbindir)"
--- evms-0.2.4.orig/engine/UserInterface/ncurses/Makefile
+++ evms-0.2.4/engine/UserInterface/ncurses/Makefile
@@ -10,8 +10,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../../mkinstalldirs.sh $(sbindir)
-	$(INSTALL) $(TARGET) $(sbindir)
+	../../mkinstalldirs.sh $(DESTDIR)$(sbindir)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
 
 uninstall:
 	rm -f $(sbindir)/$(TARGET)
--- evms-0.2.4.orig/engine/dlist/Makefile
+++ evms-0.2.4/engine/dlist/Makefile
@@ -14,8 +14,8 @@
 all: .depend $(TARGET)
 
 install: all
-	../mkinstalldirs.sh $(EVMSLIB_DIR)
-	$(INSTALL) $(TARGET) $(EVMSLIB_DIR)
+	../mkinstalldirs.sh $(DESTDIR)$(EVMSLIB_DIR)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(EVMSLIB_DIR)
 
 uninstall:
 	rm -f $(EVMSLIB_DIR)/$(TARGET)

Attachment: pgpZWv8S0rEc3.pgp
Description: PGP signature


Reply to: