From 197d1016fd2f75aa4654d2fd77b4142fc450e2ba Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Sun, 9 May 2021 19:37:47 +0200 Subject: [PATCH] buildsys: split packaging and source build-systems Much nicer to handle and work with than entangling all together in a single spaghetti pile. Signed-off-by: Thomas Lamprecht --- Makefile | 55 +++----------------------- src/Makefile | 54 +++++++++++++++++++++++++ {PVE => src/PVE}/API2/ACL.pm | 0 {PVE => src/PVE}/API2/AccessControl.pm | 0 {PVE => src/PVE}/API2/Domains.pm | 0 {PVE => src/PVE}/API2/Group.pm | 0 {PVE => src/PVE}/API2/Makefile | 0 {PVE => src/PVE}/API2/Role.pm | 0 {PVE => src/PVE}/API2/User.pm | 0 {PVE => src/PVE}/AccessControl.pm | 0 {PVE => src/PVE}/Auth/AD.pm | 0 {PVE => src/PVE}/Auth/LDAP.pm | 0 {PVE => src/PVE}/Auth/Makefile | 0 {PVE => src/PVE}/Auth/PAM.pm | 0 {PVE => src/PVE}/Auth/PVE.pm | 0 {PVE => src/PVE}/Auth/Plugin.pm | 0 {PVE => src/PVE}/CLI/Makefile | 0 {PVE => src/PVE}/CLI/pveum.pm | 0 {PVE => src/PVE}/Makefile | 0 {PVE => src/PVE}/RPCEnvironment.pm | 0 {PVE => src/PVE}/TokenConfig.pm | 0 oathkeygen => src/oathkeygen | 0 pveum => src/pveum | 0 {test => src/test}/Makefile | 0 {test => src/test}/auth-test.pl | 0 {test => src/test}/dump-perm.pl | 0 {test => src/test}/dump-users.pl | 0 {test => src/test}/parser_writer.pl | 0 {test => src/test}/perm-test1.pl | 0 {test => src/test}/perm-test2.pl | 0 {test => src/test}/perm-test3.pl | 0 {test => src/test}/perm-test4.pl | 0 {test => src/test}/perm-test5.pl | 0 {test => src/test}/perm-test6.pl | 0 {test => src/test}/perm-test7.pl | 0 {test => src/test}/perm-test8.pl | 0 {test => src/test}/test1.cfg | 0 {test => src/test}/test2.cfg | 0 {test => src/test}/test3.cfg | 0 {test => src/test}/test4.cfg | 0 {test => src/test}/test5.cfg | 0 {test => src/test}/test6.cfg | 0 {test => src/test}/test7.cfg | 0 {test => src/test}/test8.cfg | 0 44 files changed, 59 insertions(+), 50 deletions(-) create mode 100644 src/Makefile rename {PVE => src/PVE}/API2/ACL.pm (100%) rename {PVE => src/PVE}/API2/AccessControl.pm (100%) rename {PVE => src/PVE}/API2/Domains.pm (100%) rename {PVE => src/PVE}/API2/Group.pm (100%) rename {PVE => src/PVE}/API2/Makefile (100%) rename {PVE => src/PVE}/API2/Role.pm (100%) rename {PVE => src/PVE}/API2/User.pm (100%) rename {PVE => src/PVE}/AccessControl.pm (100%) rename {PVE => src/PVE}/Auth/AD.pm (100%) rename {PVE => src/PVE}/Auth/LDAP.pm (100%) rename {PVE => src/PVE}/Auth/Makefile (100%) rename {PVE => src/PVE}/Auth/PAM.pm (100%) rename {PVE => src/PVE}/Auth/PVE.pm (100%) rename {PVE => src/PVE}/Auth/Plugin.pm (100%) rename {PVE => src/PVE}/CLI/Makefile (100%) rename {PVE => src/PVE}/CLI/pveum.pm (100%) rename {PVE => src/PVE}/Makefile (100%) rename {PVE => src/PVE}/RPCEnvironment.pm (100%) rename {PVE => src/PVE}/TokenConfig.pm (100%) rename oathkeygen => src/oathkeygen (100%) rename pveum => src/pveum (100%) rename {test => src/test}/Makefile (100%) rename {test => src/test}/auth-test.pl (100%) rename {test => src/test}/dump-perm.pl (100%) rename {test => src/test}/dump-users.pl (100%) rename {test => src/test}/parser_writer.pl (100%) rename {test => src/test}/perm-test1.pl (100%) rename {test => src/test}/perm-test2.pl (100%) rename {test => src/test}/perm-test3.pl (100%) rename {test => src/test}/perm-test4.pl (100%) rename {test => src/test}/perm-test5.pl (100%) rename {test => src/test}/perm-test6.pl (100%) rename {test => src/test}/perm-test7.pl (100%) rename {test => src/test}/perm-test8.pl (100%) rename {test => src/test}/test1.cfg (100%) rename {test => src/test}/test2.cfg (100%) rename {test => src/test}/test3.cfg (100%) rename {test => src/test}/test4.cfg (100%) rename {test => src/test}/test5.cfg (100%) rename {test => src/test}/test6.cfg (100%) rename {test => src/test}/test7.cfg (100%) rename {test => src/test}/test8.cfg (100%) diff --git a/Makefile b/Makefile index c9e3c17..4db6f8f 100644 --- a/Makefile +++ b/Makefile @@ -3,66 +3,23 @@ include /usr/share/dpkg/architecture.mk PACKAGE=libpve-access-control +DEB=${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}_all.deb +DSC=${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}.dsc BUILDDIR ?= ${PACKAGE}-${DEB_VERSION_UPSTREAM} -DESTDIR= -PREFIX=/usr -BINDIR=${PREFIX}/bin -SBINDIR=${PREFIX}/sbin -MANDIR=${PREFIX}/share/man -DOCDIR=${PREFIX}/share/doc/${PACKAGE} -MAN1DIR=${MANDIR}/man1/ -BASHCOMPLDIR=${PREFIX}/share/bash-completion/completions/ -ZSHCOMPLDIR=${PREFIX}/share/zsh/vendor-completions/ - -export PERLDIR=${PREFIX}/share/perl5 - GITVERSION:=$(shell git rev-parse HEAD) -DEB=${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}_all.deb -DSC=${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}.dsc - -# this requires package pve-doc-generator -export NOVIEW=1 -include /usr/share/pve-doc-generator/pve-doc-generator.mk - all: .PHONY: dinstall dinstall: deb dpkg -i ${DEB} -pveum.bash-completion: PVE/CLI/pveum.pm - perl -I. -T -e "use PVE::CLI::pveum; PVE::CLI::pveum->generate_bash_completions();" >$@.tmp - mv $@.tmp $@ - -pveum.zsh-completion: PVE/CLI/pveum.pm - perl -I. -T -e "use PVE::CLI::pveum; PVE::CLI::pveum->generate_zsh_completions();" >$@.tmp - mv $@.tmp $@ - -.PHONY: install -install: pveum.1 oathkeygen pveum.bash-completion pveum.zsh-completion - install -d ${DESTDIR}${BINDIR} - install -d ${DESTDIR}${SBINDIR} - install -m 0755 pveum ${DESTDIR}${SBINDIR} - install -m 0755 oathkeygen ${DESTDIR}${BINDIR} - make -C PVE install - install -d ${DESTDIR}/${MAN1DIR} - install -d ${DESTDIR}/${DOCDIR} - install -m 0644 pveum.1 ${DESTDIR}/${MAN1DIR} - install -m 0644 -D pveum.bash-completion ${DESTDIR}${BASHCOMPLDIR}/pveum - install -m 0644 -D pveum.zsh-completion ${DESTDIR}${ZSHCOMPLDIR}/_pveum - -.PHONY: test -test: - perl -I. ./pveum verifyapi - perl -I. -T -e "use PVE::CLI::pveum; PVE::CLI::pveum->verify_api();" - make -C test check - ${BUILDDIR}: rm -rf ${BUILDDIR} - rsync -a * ${BUILDDIR} + cp -a src ${BUILDDIR} + cp -a debian ${BUILDDIR}/ echo "git clone git://git.proxmox.com/git/pve-access-control.git\\ngit checkout ${GITVERSION}" > ${BUILDDIR}/debian/SOURCE .PHONY: deb @@ -83,9 +40,7 @@ upload: ${DEB} .PHONY: clean clean: - rm -rf ${BUILDDIR} - make cleanup-docgen - rm -rf *.deb *.buildinfo *.changes ${PACKAGE}*.tar.gz *.dsc + rm -rf ${BUILDDIR} *.deb *.buildinfo *.changes ${PACKAGE}*.tar.gz *.dsc find . -name '*~' -exec rm {} ';' .PHONY: distclean diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..fefa157 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,54 @@ +include /usr/share/dpkg/pkg-info.mk +include /usr/share/dpkg/architecture.mk + +PACKAGE=libpve-access-control + +BUILDDIR ?= ${PACKAGE}-${DEB_VERSION_UPSTREAM} + +DESTDIR= +PREFIX=/usr +BINDIR=${PREFIX}/bin +SBINDIR=${PREFIX}/sbin +MANDIR=${PREFIX}/share/man +DOCDIR=${PREFIX}/share/doc/${PACKAGE} +MAN1DIR=${MANDIR}/man1/ +BASHCOMPLDIR=${PREFIX}/share/bash-completion/completions/ +ZSHCOMPLDIR=${PREFIX}/share/zsh/vendor-completions/ + +export PERLDIR=${PREFIX}/share/perl5 +-include /usr/share/pve-doc-generator/pve-doc-generator.mk + +all: + +pveum.bash-completion: PVE/CLI/pveum.pm + perl -I. -T -e "use PVE::CLI::pveum; PVE::CLI::pveum->generate_bash_completions();" >$@.tmp + mv $@.tmp $@ + +pveum.zsh-completion: PVE/CLI/pveum.pm + perl -I. -T -e "use PVE::CLI::pveum; PVE::CLI::pveum->generate_zsh_completions();" >$@.tmp + mv $@.tmp $@ + +.PHONY: install +install: pveum.1 oathkeygen pveum.bash-completion pveum.zsh-completion + install -d ${DESTDIR}${BINDIR} + install -d ${DESTDIR}${SBINDIR} + install -m 0755 pveum ${DESTDIR}${SBINDIR} + install -m 0755 oathkeygen ${DESTDIR}${BINDIR} + make -C PVE install + install -d ${DESTDIR}/${MAN1DIR} + install -d ${DESTDIR}/${DOCDIR} + install -m 0644 pveum.1 ${DESTDIR}/${MAN1DIR} + install -m 0644 -D pveum.bash-completion ${DESTDIR}${BASHCOMPLDIR}/pveum + install -m 0644 -D pveum.zsh-completion ${DESTDIR}${ZSHCOMPLDIR}/_pveum + +.PHONY: test +test: + perl -I. ./pveum verifyapi + perl -I. -T -e "use PVE::CLI::pveum; PVE::CLI::pveum->verify_api();" + make -C test check + +.PHONY: clean distclean +distclean: clean +clean: + make cleanup-docgen + find . -name '*~' -exec rm {} ';' diff --git a/PVE/API2/ACL.pm b/src/PVE/API2/ACL.pm similarity index 100% rename from PVE/API2/ACL.pm rename to src/PVE/API2/ACL.pm diff --git a/PVE/API2/AccessControl.pm b/src/PVE/API2/AccessControl.pm similarity index 100% rename from PVE/API2/AccessControl.pm rename to src/PVE/API2/AccessControl.pm diff --git a/PVE/API2/Domains.pm b/src/PVE/API2/Domains.pm similarity index 100% rename from PVE/API2/Domains.pm rename to src/PVE/API2/Domains.pm diff --git a/PVE/API2/Group.pm b/src/PVE/API2/Group.pm similarity index 100% rename from PVE/API2/Group.pm rename to src/PVE/API2/Group.pm diff --git a/PVE/API2/Makefile b/src/PVE/API2/Makefile similarity index 100% rename from PVE/API2/Makefile rename to src/PVE/API2/Makefile diff --git a/PVE/API2/Role.pm b/src/PVE/API2/Role.pm similarity index 100% rename from PVE/API2/Role.pm rename to src/PVE/API2/Role.pm diff --git a/PVE/API2/User.pm b/src/PVE/API2/User.pm similarity index 100% rename from PVE/API2/User.pm rename to src/PVE/API2/User.pm diff --git a/PVE/AccessControl.pm b/src/PVE/AccessControl.pm similarity index 100% rename from PVE/AccessControl.pm rename to src/PVE/AccessControl.pm diff --git a/PVE/Auth/AD.pm b/src/PVE/Auth/AD.pm similarity index 100% rename from PVE/Auth/AD.pm rename to src/PVE/Auth/AD.pm diff --git a/PVE/Auth/LDAP.pm b/src/PVE/Auth/LDAP.pm similarity index 100% rename from PVE/Auth/LDAP.pm rename to src/PVE/Auth/LDAP.pm diff --git a/PVE/Auth/Makefile b/src/PVE/Auth/Makefile similarity index 100% rename from PVE/Auth/Makefile rename to src/PVE/Auth/Makefile diff --git a/PVE/Auth/PAM.pm b/src/PVE/Auth/PAM.pm similarity index 100% rename from PVE/Auth/PAM.pm rename to src/PVE/Auth/PAM.pm diff --git a/PVE/Auth/PVE.pm b/src/PVE/Auth/PVE.pm similarity index 100% rename from PVE/Auth/PVE.pm rename to src/PVE/Auth/PVE.pm diff --git a/PVE/Auth/Plugin.pm b/src/PVE/Auth/Plugin.pm similarity index 100% rename from PVE/Auth/Plugin.pm rename to src/PVE/Auth/Plugin.pm diff --git a/PVE/CLI/Makefile b/src/PVE/CLI/Makefile similarity index 100% rename from PVE/CLI/Makefile rename to src/PVE/CLI/Makefile diff --git a/PVE/CLI/pveum.pm b/src/PVE/CLI/pveum.pm similarity index 100% rename from PVE/CLI/pveum.pm rename to src/PVE/CLI/pveum.pm diff --git a/PVE/Makefile b/src/PVE/Makefile similarity index 100% rename from PVE/Makefile rename to src/PVE/Makefile diff --git a/PVE/RPCEnvironment.pm b/src/PVE/RPCEnvironment.pm similarity index 100% rename from PVE/RPCEnvironment.pm rename to src/PVE/RPCEnvironment.pm diff --git a/PVE/TokenConfig.pm b/src/PVE/TokenConfig.pm similarity index 100% rename from PVE/TokenConfig.pm rename to src/PVE/TokenConfig.pm diff --git a/oathkeygen b/src/oathkeygen similarity index 100% rename from oathkeygen rename to src/oathkeygen diff --git a/pveum b/src/pveum similarity index 100% rename from pveum rename to src/pveum diff --git a/test/Makefile b/src/test/Makefile similarity index 100% rename from test/Makefile rename to src/test/Makefile diff --git a/test/auth-test.pl b/src/test/auth-test.pl similarity index 100% rename from test/auth-test.pl rename to src/test/auth-test.pl diff --git a/test/dump-perm.pl b/src/test/dump-perm.pl similarity index 100% rename from test/dump-perm.pl rename to src/test/dump-perm.pl diff --git a/test/dump-users.pl b/src/test/dump-users.pl similarity index 100% rename from test/dump-users.pl rename to src/test/dump-users.pl diff --git a/test/parser_writer.pl b/src/test/parser_writer.pl similarity index 100% rename from test/parser_writer.pl rename to src/test/parser_writer.pl diff --git a/test/perm-test1.pl b/src/test/perm-test1.pl similarity index 100% rename from test/perm-test1.pl rename to src/test/perm-test1.pl diff --git a/test/perm-test2.pl b/src/test/perm-test2.pl similarity index 100% rename from test/perm-test2.pl rename to src/test/perm-test2.pl diff --git a/test/perm-test3.pl b/src/test/perm-test3.pl similarity index 100% rename from test/perm-test3.pl rename to src/test/perm-test3.pl diff --git a/test/perm-test4.pl b/src/test/perm-test4.pl similarity index 100% rename from test/perm-test4.pl rename to src/test/perm-test4.pl diff --git a/test/perm-test5.pl b/src/test/perm-test5.pl similarity index 100% rename from test/perm-test5.pl rename to src/test/perm-test5.pl diff --git a/test/perm-test6.pl b/src/test/perm-test6.pl similarity index 100% rename from test/perm-test6.pl rename to src/test/perm-test6.pl diff --git a/test/perm-test7.pl b/src/test/perm-test7.pl similarity index 100% rename from test/perm-test7.pl rename to src/test/perm-test7.pl diff --git a/test/perm-test8.pl b/src/test/perm-test8.pl similarity index 100% rename from test/perm-test8.pl rename to src/test/perm-test8.pl diff --git a/test/test1.cfg b/src/test/test1.cfg similarity index 100% rename from test/test1.cfg rename to src/test/test1.cfg diff --git a/test/test2.cfg b/src/test/test2.cfg similarity index 100% rename from test/test2.cfg rename to src/test/test2.cfg diff --git a/test/test3.cfg b/src/test/test3.cfg similarity index 100% rename from test/test3.cfg rename to src/test/test3.cfg diff --git a/test/test4.cfg b/src/test/test4.cfg similarity index 100% rename from test/test4.cfg rename to src/test/test4.cfg diff --git a/test/test5.cfg b/src/test/test5.cfg similarity index 100% rename from test/test5.cfg rename to src/test/test5.cfg diff --git a/test/test6.cfg b/src/test/test6.cfg similarity index 100% rename from test/test6.cfg rename to src/test/test6.cfg diff --git a/test/test7.cfg b/src/test/test7.cfg similarity index 100% rename from test/test7.cfg rename to src/test/test7.cfg diff --git a/test/test8.cfg b/src/test/test8.cfg similarity index 100% rename from test/test8.cfg rename to src/test/test8.cfg -- 2.39.2