[pve-devel] r4950 - pve-common/trunk
svn-commits at proxmox.com
svn-commits at proxmox.com
Mon Aug 9 15:01:33 CEST 2010
Author: dietmar
Date: 2010-08-09 13:01:33 +0000 (Mon, 09 Aug 2010)
New Revision: 4950
Added:
pve-common/trunk/ChangeLog
pve-common/trunk/Exception.pm
pve-common/trunk/changelog.Debian
pve-common/trunk/control.in
pve-common/trunk/copyright
Modified:
pve-common/trunk/Makefile
Log:
create debain package - first try
Added: pve-common/trunk/Exception.pm
===================================================================
--- pve-common/trunk/Exception.pm (rev 0)
+++ pve-common/trunk/Exception.pm 2010-08-09 13:01:33 UTC (rev 4950)
@@ -0,0 +1,80 @@
+#!/usr/bin/perl -w
+
+# a way to add more information to exceptions (see man perlfunc (die))
+# use PVE::Exception qw(raise);
+# raise (400, "my error message", param1 => 1, param2 => 2);
+
+package PVE::Exception;
+
+use strict;
+use vars qw(@ISA @EXPORT_OK);
+require Exporter;
+
+ at ISA = qw(Exporter);
+
+use overload '""' => sub {local $@; shift->stringify};
+
+ at EXPORT_OK = qw(raise);
+
+sub new {
+ my ($class, $code, $msg, %params) = @_;
+
+ $class = ref($class) || $class;
+
+ my $self = {
+ code => $code,
+ msg => $msg,
+ };
+
+ foreach my $p (keys %params) {
+ next if defined($self->{$p});
+ $self->{$p} = $params{$p};
+ }
+
+ return bless $self;
+}
+
+sub raise {
+
+ my ($pkg, $filename, $line) = caller;
+
+ my $exc = PVE::Exception->new(@_);
+
+ $exc->{filename} = $filename;
+ $exc->{line} = $line;
+
+ die $exc;
+}
+
+sub stringify {
+ my $self = shift;
+
+ my $msg = $self->{msg};
+
+ if ($msg !~ m/\n$/) {
+
+ if ($self->{filename} && $self->{line}) {
+ $msg .= " at $self->{filename} line $self->{line}";
+ }
+
+ $msg .= "\n";
+ }
+
+ if ($self->{propagate}) {
+ foreach my $pi (@{$self->{propagate}}) {
+ $msg .= "\t...propagated at $pi->[0] line $pi->[1]\n";
+ }
+ }
+
+ return $msg;
+}
+
+sub PROPAGATE {
+ my ($self, $file, $line) = @_;
+
+ push @{$self->{propagate}}, [$file, $line];
+
+ return $self;
+}
+
+1;
Property changes on: pve-common/trunk/Exception.pm
___________________________________________________________________
Added: svn:executable
+ *
Modified: pve-common/trunk/Makefile
===================================================================
--- pve-common/trunk/Makefile 2010-08-09 12:02:04 UTC (rev 4949)
+++ pve-common/trunk/Makefile 2010-08-09 13:01:33 UTC (rev 4950)
@@ -1,2 +1,67 @@
RELEASE=2.0
+# also edit changelog.Debian
+VERSION=1.0
+PKGREL=1
+
+PACKAGE=libpve-common-perl
+
+DESTDIR=t
+PREFIX=/usr
+BINDIR=${PREFIX}/bin
+MANDIR=${PREFIX}/share/man
+DOCDIR=${PREFIX}/share/doc
+MAN1DIR=${MANDIR}/man1/
+PERLDIR=${PREFIX}/share/perl5
+
+ARCH=all
+DEB=${PACKAGE}_${VERSION}-${PKGREL}_${ARCH}.deb
+
+LIB_SOURCES= \
+ Exception.pm
+
+all: ${DEB}
+
+.PHONY: dinstall
+dinstall: deb
+ dpkg -i ${DEB}
+
+install: ${LIB_SOURCES}
+ install -d -m 0755 ${DESTDIR}${PERLDIR}/PVE
+ for i in ${LIB_SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/$$i; done
+
+.PHONY: deb
+deb ${DEB}: ${LIB_SOURCES} control.in copyright changelog.Debian ChangeLog
+ rm -rf debian
+ mkdir debian
+ make DESTDIR=debian install
+ install -d -m 0755 debian/DEBIAN
+ sed -e s/@@VERSION@@/${VERSION}/ -e s/@@PKGRELEASE@@/${PKGREL}/ -e s/@@ARCH@@/${ARCH}/ <control.in >debian/DEBIAN/control
+ install -D -m 0644 copyright debian/${DOCDIR}/${PACKAGE}/copyright
+ install -m 0644 changelog.Debian debian/${DOCDIR}/${PACKAGE}/
+ gzip -9 debian/${DOCDIR}/${PACKAGE}/changelog.Debian
+ install -m 0644 ChangeLog debian/${DOCDIR}/${PACKAGE}/changelog
+ gzip -9 debian/${DOCDIR}/${PACKAGE}/changelog
+ dpkg-deb --build debian
+ mv debian.deb ${DEB}
+ rm -rf debian
+ lintian ${DEB}
+
+.PHONY: clean
+clean:
+ rm -rf debian *~ *.deb ${PACKAGE}-*.tar.gz
+
+.PHONY: distclean
+distclean: clean
+
+
+.PHONY: upload
+upload: ${DEB}
+ umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw
+ mkdir -p /pve/${RELEASE}/extra
+ rm -f /pve/${RELEASE}/extra/${PACKAGE}_*.deb
+ rm -f /pve/${RELEASE}/extra/Packages*
+ cp ${DEB} /pve/${RELEASE}/extra
+ cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz
+ umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro
+
Added: pve-common/trunk/changelog.Debian
===================================================================
--- pve-common/trunk/changelog.Debian (rev 0)
+++ pve-common/trunk/changelog.Debian 2010-08-09 13:01:33 UTC (rev 4950)
@@ -0,0 +1,6 @@
+libpve-common-perl (1.0-1) unstable; urgency=low
+
+ * initial package
+
+ -- Proxmox Support Team <support at proxmox.com> Mon, 09 Aug 2010 14:54:24 +0200
+
Added: pve-common/trunk/control.in
===================================================================
--- pve-common/trunk/control.in (rev 0)
+++ pve-common/trunk/control.in 2010-08-09 13:01:33 UTC (rev 4950)
@@ -0,0 +1,9 @@
+Package: libpve-common-perl
+Version: @@VERSION@@-@@PKGRELEASE@@
+Section: perl
+Priority: optional
+Architecture: @@ARCH@@
+Depends: perl (>= 5.6.0-16)
+Maintainer: Proxmox Support Team <support at proxmox.com>
+Description: Proxmox VE base library
+ This package contains the base library used by other Proxmox VE components.
Added: pve-common/trunk/copyright
===================================================================
--- pve-common/trunk/copyright (rev 0)
+++ pve-common/trunk/copyright 2010-08-09 13:01:33 UTC (rev 4950)
@@ -0,0 +1,20 @@
+Copyright (C) 2010 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 General Public License as published by
+the Free Software Foundation; version 2 dated June, 1991.
+
+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., 51 Franklin St, Fifth Floor, Boston,
+MA 02110-1301, USA.
+
+The complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
More information about the pve-devel
mailing list