Package the new SSHFS plugin separately from the libpve-storage-perl source. This avoids mixing up the example packaging code with the pre-existing one.
Note that the Makefile this commit adds currently isn't being called by the top-level one in the repository root. Signed-off-by: Max Carrara <m.carr...@proxmox.com> --- Changes rfc-v1 --> v1: * none example/sshfs-plugin/Makefile | 71 +++++++++++++++++++++++ example/sshfs-plugin/debian/changelog | 5 ++ example/sshfs-plugin/debian/control | 22 +++++++ example/sshfs-plugin/debian/copyright | 21 +++++++ example/sshfs-plugin/debian/rules | 26 +++++++++ example/sshfs-plugin/debian/source/format | 1 + example/sshfs-plugin/debian/triggers | 1 + 7 files changed, 147 insertions(+) create mode 100644 example/sshfs-plugin/Makefile create mode 100644 example/sshfs-plugin/debian/changelog create mode 100644 example/sshfs-plugin/debian/control create mode 100644 example/sshfs-plugin/debian/copyright create mode 100755 example/sshfs-plugin/debian/rules create mode 100644 example/sshfs-plugin/debian/source/format create mode 100644 example/sshfs-plugin/debian/triggers diff --git a/example/sshfs-plugin/Makefile b/example/sshfs-plugin/Makefile new file mode 100644 index 0000000..cbd0691 --- /dev/null +++ b/example/sshfs-plugin/Makefile @@ -0,0 +1,71 @@ +# Makes useful Debian-specific variables available +include /usr/share/dpkg/default.mk + +# --- Useful variables for convenience + +# Note that variables can be overridden, e.g. `make install DESTDIR='./foo'` +DESTDIR= +PACKAGE=pve-storage-sshfs-plugin + +BINDIR=${DESTDIR}/usr/bin +PERLLIBDIR=${DESTDIR}/usr/share/perl5 +MAN1DIR=${DESTDIR}/usr/share/man/man1 +MAN8DIR=${DESTDIR}/usr/share/man/man8 +CRONDAILYDIR=${DESTDIR}/etc/cron.daily +INITDBINDIR=${DESTDIR}/etc/init.d +SERVICEDIR=${DESTDIR}/lib/systemd/system +BASHCOMPLDIR=${DESTDIR}/usr/share/bash-completion/completions/ +ZSHCOMPLDIR=${DESTDIR}/usr/share/zsh/vendor-completions/ +HARADIR=${DESTDIR}/usr/share/cluster +DOCDIR=${DESTDIR}/usr/share/doc/${PACKAGE} +PODDIR=${DESTDIR}/usr/share/doc/${PACKAGE}/pod +USRSHARE=${DESTDIR}/usr/share/${PACKAGE} + +# Directory where our custom plugin has to go +PLUGINDIR=${PERLLIBDIR}/PVE/Storage/Custom + +export VERSION = $(DEB_VERSION_UPSTREAM_REVISION) + +BUILDDIR = $(PACKAGE)-$(DEB_VERSION_UPSTREAM) + +DSC=$(PACKAGE)_$(DEB_VERSION).dsc +DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb + +# --- Targets + +$(BUILDDIR): + rm -rf $@ $@.tmp + mkdir $@.tmp + rsync -a * $@.tmp + # You can add additional commands instead of this comment if you need to + # e.g. create additional files inside the build directory etc. + mv $@.tmp $@ + +# Creates a .deb package for installation +.PHONY: deb +deb: $(DEB) +$(DEB): $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -b -us -uc + lintian $(DEB) + +# Creates a .dsc (Debian source) package +.PHONY: dsc +dsc: + rm -rf $(BUILDDIR) $(DSC) + $(MAKE) $(DSC) + lintian $(DSC) + +$(DSC): $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d + +# Target used to place files and directories at expected locations, with expected permissions +.PHONY: install +install: + install -D -m 0644 lib/PVE/Storage/Custom/SSHFSPlugin.pm $(PLUGINDIR)/SSHFSPlugin.pm + +# Used to clean up your builds +.PHONY: clean +clean: + rm -f $(PACKAGE)*.tar* *.deb *.dsc *.build *.buildinfo *.changes + rm -rf dest $(PACKAGE)-[0-9]*/ + diff --git a/example/sshfs-plugin/debian/changelog b/example/sshfs-plugin/debian/changelog new file mode 100644 index 0000000..7372095 --- /dev/null +++ b/example/sshfs-plugin/debian/changelog @@ -0,0 +1,5 @@ +pve-storage-sshfs-plugin (1.0.0) UNRELEASED; urgency=medium + + * Initial release. + + -- Proxmox Support Team <supp...@proxmox.com> Wed, 09 Apr 2025 16:13:26 +0200 diff --git a/example/sshfs-plugin/debian/control b/example/sshfs-plugin/debian/control new file mode 100644 index 0000000..5732cd6 --- /dev/null +++ b/example/sshfs-plugin/debian/control @@ -0,0 +1,22 @@ +Source: pve-storage-sshfs-plugin +Section: perl +Priority: optional +Maintainer: Proxmox Support Team <supp...@proxmox.com> +Rules-Requires-Root: no +Build-Depends: + debhelper-compat (= 13), + libpve-storage-perl (>= 8.3.3), + lintian, + perl, + rsync, +Standards-Version: 4.6.2 + +Package: pve-storage-sshfs-plugin +Architecture: any +Depends: + ${misc:Depends}, + ${perl:Depends}, + libpve-storage-perl (>= 8.3.3), + sshfs (>= 3.7.3), +Description: SSHFS storage plugin for Proxmox Virtual Environment. + Used to demonstrate plugin development. diff --git a/example/sshfs-plugin/debian/copyright b/example/sshfs-plugin/debian/copyright new file mode 100644 index 0000000..c26ed02 --- /dev/null +++ b/example/sshfs-plugin/debian/copyright @@ -0,0 +1,21 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source: https://git.proxmox.com/?p=pve-storage.git + +Files: + * +Copyright: + 2025 Proxmox Server Solutions GmbH <supp...@proxmox.com> +License: AGPL-3.0+ + 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/example/sshfs-plugin/debian/rules b/example/sshfs-plugin/debian/rules new file mode 100755 index 0000000..f1d1d25 --- /dev/null +++ b/example/sshfs-plugin/debian/rules @@ -0,0 +1,26 @@ +#!/usr/bin/make -f + +# See debhelper(7) (uncomment to enable). +# Output every command that modifies files on the build system. +#export DH_VERBOSE = 1 + + +# See FEATURE AREAS in dpkg-buildflags(1). +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +# See ENVIRONMENT in dpkg-buildflags(1). +# Package maintainers to append CFLAGS. +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# Package maintainers to append LDFLAGS. +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + + +%: + dh $@ + + +# dh_make generated override targets. +# This is an example for Cmake (see <https://bugs.debian.org/641051>). +#override_dh_auto_configure: +# dh_auto_configure -- \ +# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) diff --git a/example/sshfs-plugin/debian/source/format b/example/sshfs-plugin/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/example/sshfs-plugin/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/example/sshfs-plugin/debian/triggers b/example/sshfs-plugin/debian/triggers new file mode 100644 index 0000000..59dd688 --- /dev/null +++ b/example/sshfs-plugin/debian/triggers @@ -0,0 +1 @@ +activate-noawait pve-api-updates -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel