[pve-devel] [v3 ha-manager 3/5] build: restructure packaging

Fabian Grünbichler f.gruenbichler at proxmox.com
Wed Oct 10 13:55:05 CEST 2018


use dpkg-buildpackage and debhelper properly, add missing dependencies and
embed used perl modules from libpve-common-perl to make pve-ha-simulator
standalone.

Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
note: unchanged from v2

 Makefile                                     | 17 ++--------
 src/Makefile                                 | 10 ++----
 src/PVE/HA/Makefile                          |  2 +-
 src/PVE/HA/Resources/Makefile                |  5 ---
 src/PVE/HA/Sim/Makefile                      |  6 ++--
 src/PVE/HA/Sim/Resources/Makefile            |  4 +--
 src/PVE/Makefile                             |  1 -
 changelog.Debian => debian/changelog         |  0
 debian/control                               | 21 +++++++++++-
 debian/pve-ha-manager.install                | 34 ++++++++++++++++++++
 debian/{triggers => pve-ha-manager.triggers} |  0
 debian/pve-ha-simulator.install              |  2 ++
 debian/rules                                 | 14 ++++++++
 simdebian/compat                             |  1 -
 simdebian/control                            | 14 --------
 simdebian/copyright                          | 16 ---------
 simdebian/rules                              | 20 ------------
 17 files changed, 81 insertions(+), 86 deletions(-)
 rename changelog.Debian => debian/changelog (100%)
 create mode 100644 debian/pve-ha-manager.install
 rename debian/{triggers => pve-ha-manager.triggers} (100%)
 create mode 100644 debian/pve-ha-simulator.install
 delete mode 100644 simdebian/compat
 delete mode 100644 simdebian/control
 delete mode 100644 simdebian/copyright
 delete mode 100755 simdebian/rules

diff --git a/Makefile b/Makefile
index b406f3f..1bf41fa 100644
--- a/Makefile
+++ b/Makefile
@@ -17,19 +17,6 @@ all: deb
 dinstall: $(DEB) $(SIMDEB)
 	dpkg -i ${DEB} ${SIMDEB}
 
-
-.PHONY: simdeb
-simdeb: ${SIMDEB}
-${SIMDEB}:
-	rm -rf build
-	mkdir build
-	rsync -a src/ build
-	rsync -a simdebian/ build/debian
-	cp changelog.Debian build/debian/changelog
-	echo "git clone git://git.proxmox.com/git/pve-ha-manager.git\\ngit checkout ${GITVERSION}" > build/debian/SOURCE
-	cd build; dpkg-buildpackage -rfakeroot -b -us -uc
-	lintian ${SIMDEB}
-
 .PHONY: deb
 deb: ${DEB} ${SIMDEB}
 ${DEB}:
@@ -37,10 +24,10 @@ ${DEB}:
 	mkdir build
 	rsync -a src/ build
 	rsync -a debian/ build/debian
-	cp changelog.Debian build/debian/changelog
 	echo "git clone git://git.proxmox.com/git/pve-ha-manager.git\\ngit checkout ${GITVERSION}" > build/debian/SOURCE
-	cd build; dpkg-buildpackage -rfakeroot -b -us -uc
+	cd build; dpkg-buildpackage -b -us -uc
 	lintian ${DEB}
+	lintian ${SIMDEB}
 
 .PHONY: clean
 clean:
diff --git a/src/Makefile b/src/Makefile
index f70f06d..d34d47e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -34,7 +34,7 @@ watchdog-mux: watchdog-mux.c
 	gcc watchdog-mux.c -o watchdog-mux -Wall -Wl,-z,relro
 
 .PHONY: install
-install: watchdog-mux pve-ha-crm pve-ha-lrm ha-manager.1 pve-ha-crm.8 pve-ha-lrm.8 ha-manager.bash-completion pve-ha-lrm.bash-completion pve-ha-crm.bash-completion
+install: watchdog-mux pve-ha-crm pve-ha-lrm ha-manager.1 pve-ha-crm.8 pve-ha-lrm.8 ha-manager.bash-completion pve-ha-lrm.bash-completion pve-ha-crm.bash-completion pve-ha-simulator
 	PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_crm; PVE::Service::pve_ha_crm->verify_api();"
 	PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_lrm; PVE::Service::pve_ha_lrm->verify_api();"
 	PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::CLI::ha_manager; PVE::CLI::ha_manager->verify_api();"
@@ -43,10 +43,12 @@ install: watchdog-mux pve-ha-crm pve-ha-lrm ha-manager.1 pve-ha-crm.8 pve-ha-lrm
 	install -m 0755 pve-ha-lrm ${DESTDIR}${SBINDIR}
 	install -m 0755 ha-manager ${DESTDIR}${SBINDIR}
 	install -m 0755 watchdog-mux ${DESTDIR}${SBINDIR}
+	install -m 0755 pve-ha-simulator ${DESTDIR}${SBINDIR}
 	install -m 0644 -D pve-ha-crm.bash-completion ${DESTDIR}${BASHCOMPLDIR}/pve-ha-crm
 	install -m 0644 -D pve-ha-lrm.bash-completion ${DESTDIR}${BASHCOMPLDIR}/pve-ha-lrm
 	install -m 0644 -D ha-manager.bash-completion ${DESTDIR}${BASHCOMPLDIR}/ha-manager
 	make -C PVE install
+	make -C PVE PERLDIR=${PREFIX}/share/${SIMPACKAGE} installsim
 	install -d ${DESTDIR}/${MAN8DIR}
 	install -m 0644 pve-ha-crm.8 ${DESTDIR}/${MAN8DIR}
 	gzip -9 ${DESTDIR}/${MAN8DIR}/pve-ha-crm.8
@@ -56,12 +58,6 @@ install: watchdog-mux pve-ha-crm pve-ha-lrm ha-manager.1 pve-ha-crm.8 pve-ha-lrm
 	install -m 0644 ha-manager.1 ${DESTDIR}/${MAN1DIR}
 	gzip -9 ${DESTDIR}/${MAN1DIR}/ha-manager.1
 
-.PHONY: installsim
-installsim: pve-ha-simulator
-	install -d ${DESTDIR}${SBINDIR}
-	install -m 0755 pve-ha-simulator ${DESTDIR}${SBINDIR}
-	make -C PVE PERLDIR=${PREFIX}/share/${SIMPACKAGE} installsim
-
 .PHONY: test
 test: 
 	make -C test test
diff --git a/src/PVE/HA/Makefile b/src/PVE/HA/Makefile
index 313e6b0..c366f6c 100644
--- a/src/PVE/HA/Makefile
+++ b/src/PVE/HA/Makefile
@@ -14,4 +14,4 @@ install:
 installsim:
 	install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE/HA
 	for i in ${SIM_SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/HA/$$i; done
-	make -C Sim installsim
+	make -C Sim install
diff --git a/src/PVE/HA/Resources/Makefile b/src/PVE/HA/Resources/Makefile
index ea840a7..28fbb55 100644
--- a/src/PVE/HA/Resources/Makefile
+++ b/src/PVE/HA/Resources/Makefile
@@ -4,8 +4,3 @@ SOURCES=PVEVM.pm PVECT.pm
 install:
 	install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE/HA/Resources
 	for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/HA/Resources/$$i; done
-
-.PHONY: installsim
-installsim:
-	install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE/HA/Resources
-	for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/HA/Resources/$$i; done
diff --git a/src/PVE/HA/Sim/Makefile b/src/PVE/HA/Sim/Makefile
index 793f142..cb8feff 100644
--- a/src/PVE/HA/Sim/Makefile
+++ b/src/PVE/HA/Sim/Makefile
@@ -1,7 +1,7 @@
 SOURCES=Env.pm Hardware.pm TestEnv.pm TestHardware.pm RTEnv.pm RTHardware.pm Resources.pm
 
-.PHONY: installsim
-installsim:
+.PHONY: install
+install:
 	install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE/HA/Sim
 	for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/HA/Sim/$$i; done
-	make -C Resources installsim
+	make -C Resources install
diff --git a/src/PVE/HA/Sim/Resources/Makefile b/src/PVE/HA/Sim/Resources/Makefile
index b15a846..bfbb08e 100644
--- a/src/PVE/HA/Sim/Resources/Makefile
+++ b/src/PVE/HA/Sim/Resources/Makefile
@@ -1,6 +1,6 @@
 SOURCES=VirtVM.pm VirtCT.pm VirtFail.pm
 
-.PHONY: installsim
-installsim:
+.PHONY: install
+install:
 	install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE/HA/Sim/Resources
 	for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/HA/Sim/Resources/$$i; done
diff --git a/src/PVE/Makefile b/src/PVE/Makefile
index b57dd06..7da9fed 100644
--- a/src/PVE/Makefile
+++ b/src/PVE/Makefile
@@ -1,4 +1,3 @@
-
 .PHONY: install
 install:
 	install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE
diff --git a/changelog.Debian b/debian/changelog
similarity index 100%
rename from changelog.Debian
rename to debian/changelog
diff --git a/debian/control b/debian/control
index 1758e73..ddd4d15 100644
--- a/debian/control
+++ b/debian/control
@@ -16,7 +16,8 @@ Package: pve-ha-manager
 Section: perl
 Priority: optional
 Architecture: any
-Depends: libpve-common-perl,
+Depends: libjson-perl,
+         libpve-common-perl,
          pve-cluster (>= 3.0-17),
          qemu-server,
          systemd,
@@ -26,3 +27,21 @@ Depends: libpve-common-perl,
 Conflicts: watchdog,
 Description: Proxmox VE HA Manager
  HA Manager Proxmox VE.
+
+Package: pve-ha-simulator
+Section: perl
+Priority: optional
+Architecture: all
+Depends: libclone-perl,
+         libdevel-cycle-perl,
+         libfilesys-df-perl,
+         libglib-perl,
+         libgtk3-perl,
+         libjson-perl,
+         libnet-ip-perl,
+         libstring-shellquote-perl,
+         liburi-perl,
+         ${misc:Depends},
+         ${perl:Depends},
+Description: Proxmox VE HA Simulator
+ This is a simple GUI to simulate the behavior of a Proxmox VE HA cluster.
diff --git a/debian/pve-ha-manager.install b/debian/pve-ha-manager.install
new file mode 100644
index 0000000..7a3f13d
--- /dev/null
+++ b/debian/pve-ha-manager.install
@@ -0,0 +1,34 @@
+/usr/sbin/ha-manager
+/usr/sbin/pve-ha-crm
+/usr/sbin/pve-ha-lrm
+/usr/sbin/watchdog-mux
+/usr/share/bash-completion/completions/ha-manager
+/usr/share/bash-completion/completions/pve-ha-crm
+/usr/share/bash-completion/completions/pve-ha-lrm
+/usr/share/man
+/usr/share/man/man1
+/usr/share/man/man1/ha-manager.1.gz
+/usr/share/man/man8
+/usr/share/man/man8/pve-ha-crm.8.gz
+/usr/share/man/man8/pve-ha-lrm.8.gz
+/usr/share/perl5/PVE/API2/HA/Groups.pm
+/usr/share/perl5/PVE/API2/HA/Resources.pm
+/usr/share/perl5/PVE/API2/HA/Status.pm
+/usr/share/perl5/PVE/CLI/ha_manager.pm
+/usr/share/perl5/PVE/HA/CRM.pm
+/usr/share/perl5/PVE/HA/Config.pm
+/usr/share/perl5/PVE/HA/Config.pm
+/usr/share/perl5/PVE/HA/Env.pm
+/usr/share/perl5/PVE/HA/Env/PVE2.pm
+/usr/share/perl5/PVE/HA/Fence.pm
+/usr/share/perl5/PVE/HA/FenceConfig.pm
+/usr/share/perl5/PVE/HA/Groups.pm
+/usr/share/perl5/PVE/HA/LRM.pm
+/usr/share/perl5/PVE/HA/Manager.pm
+/usr/share/perl5/PVE/HA/NodeStatus.pm
+/usr/share/perl5/PVE/HA/Resources.pm
+/usr/share/perl5/PVE/HA/Resources/PVECT.pm
+/usr/share/perl5/PVE/HA/Resources/PVEVM.pm
+/usr/share/perl5/PVE/HA/Tools.pm
+/usr/share/perl5/PVE/Service/pve_ha_crm.pm
+/usr/share/perl5/PVE/Service/pve_ha_lrm.pm
diff --git a/debian/triggers b/debian/pve-ha-manager.triggers
similarity index 100%
rename from debian/triggers
rename to debian/pve-ha-manager.triggers
diff --git a/debian/pve-ha-simulator.install b/debian/pve-ha-simulator.install
new file mode 100644
index 0000000..4948a77
--- /dev/null
+++ b/debian/pve-ha-simulator.install
@@ -0,0 +1,2 @@
+/usr/sbin/pve-ha-simulator
+/usr/share/pve-ha-simulator/PVE
diff --git a/debian/rules b/debian/rules
index 468631f..b215911 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,6 +12,20 @@
 %:
 	dh $@ --with=systemd
 
+override_dh_install:
+	# embed copies of libpve-common-perl files needed by simulator
+	install -d -m 0755 debian/tmp/usr/share/pve-ha-simulator/PVE
+	install -m 0644 \
+		/usr/share/perl5/PVE/Exception.pm \
+		/usr/share/perl5/PVE/JSONSchema.pm \
+		/usr/share/perl5/PVE/ProcFSTools.pm \
+		/usr/share/perl5/PVE/SafeSyslog.pm \
+		/usr/share/perl5/PVE/SectionConfig.pm \
+		/usr/share/perl5/PVE/Syscall.pm \
+		/usr/share/perl5/PVE/Tools.pm \
+		debian/tmp/usr/share/pve-ha-simulator/PVE/
+	dh_install --fail-missing
+
 # dh_systemd_enable watchdog-mux despite it being static to get it installed in
 # the correct location/package without manual intervention
 override_dh_systemd_enable:
diff --git a/simdebian/compat b/simdebian/compat
deleted file mode 100644
index ec63514..0000000
--- a/simdebian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/simdebian/control b/simdebian/control
deleted file mode 100644
index 5b692a7..0000000
--- a/simdebian/control
+++ /dev/null
@@ -1,14 +0,0 @@
-Source: pve-ha-manager
-Section: perl
-Priority: extra
-Maintainer: Proxmox Support Team <support at proxmox.com>
-Build-Depends: debhelper (>= 7.0.50~), libpve-common-perl, libglib-perl, libgtk3-perl
-Standards-Version: 3.8.4
-
-Package: pve-ha-simulator
-Section: perl
-Priority: optional
-Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}, libpve-common-perl, libglib-perl, libgtk3-perl
-Description: Proxmox VE HA Simulator
- This is a simple GUI to simulate the behavior of a Proxmox VE HA cluster.
diff --git a/simdebian/copyright b/simdebian/copyright
deleted file mode 100644
index 3ef2e85..0000000
--- a/simdebian/copyright
+++ /dev/null
@@ -1,16 +0,0 @@
-Copyright (C) 2015 Proxmox Server Solutions GmbH
-
-This software is written by Proxmox Server Solutions GmbH <support at proxmox.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as published by
-the Free Software Foundation, either version 3 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 Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/simdebian/rules b/simdebian/rules
deleted file mode 100755
index 4a6f1c9..0000000
--- a/simdebian/rules
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-%:
-	dh $@
-
-override_dh_auto_test:
-
-
-override_dh_auto_install:
-
-	make DESTDIR=$$(pwd)/debian/pve-ha-simulator installsim
-- 
2.19.1





More information about the pve-devel mailing list