Perl::Cricit fixups
[pve-common.git] / README.dev
index bc6cfbe..92f1e74 100644 (file)
@@ -1,73 +1,85 @@
-====================================
-Setup PVE Development Environment
-====================================
-
-1.  Install Debian 'jessie'
-2.  Install prerequisites for development environment:
-
-# new jessie depends
-apt-get -y install build-essential git-core debhelper autotools-dev \
-doxygen check pkg-config groff quilt dpatch automake autoconf libtool  \
-lintian libdevel-cycle-perl libjson-perl libcommon-sense-perl    \
-liblinux-inotify2-perl libio-stringy-perl libstring-shellquote-perl  \
-dh-systemd rpm2cpio libsqlite3-dev sqlite3 libglib2.0-dev librrd-dev \
-librrds-perl rrdcached libdigest-hmac-perl libxml-parser-perl \
-gdb libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl \
-libnet-ldap-perl libauthen-pam-perl libjson-xs-perl libterm-readline-gnu-perl oathtool libmime-base32-perl liboath0 libpci-dev texi2html libsdl1.2-dev \
-libgnutls28-dev libspice-protocol-dev xfslibs-dev libnuma-dev libaio-dev \
-libspice-server-dev libusbredirparser-dev glusterfs-common libusb-1.0-0-dev \
-librbd-dev libpopt-dev iproute bridge-utils numactl glusterfs-common \
-ceph-common python-ceph libgoogle-perftools4 libfile-chdir-perl lvm2 \
-glusterfs-client liblockfile-simple-perl libsystemd-daemon-dev \
-libreadline-gplv2-dev libio-multiplex-perl libnetfilter-log-dev \
-libipset3 ipset socat libsasl2-dev
-
-# old wheezy depends
-apt-get -y install build-essential git-core debhelper autotools-dev \
-doxygen check pkg-config libnss3-dev groff quilt dpatch libxml2-dev \
-libncurses5-dev libslang2-dev libldap2-dev xsltproc python-pexpect \
-python-pycurl libdbus-1-dev openipmi sg3-utils libnet-snmp-perl \
-libnet-telnet-perl snmp python-openssl libxml2-utils automake autoconf \
-libsqlite3-dev sqlite3 libfuse-dev libglib2.0-dev librrd-dev \
-librrds-perl rrdcached lintian libdevel-cycle-perl libjson-perl \
-liblinux-inotify2-perl libio-stringy-perl unzip fuse-utils \
-libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl \
-libauthen-pam-perl libterm-readline-gnu-perl libssl-dev open-iscsi \
-libapache2-mod-perl2 libfilesys-df-perl libfile-readbackwards-perl \
-libpci-dev texi2html libgnutls-dev libsdl1.2-dev bridge-utils \
-libvncserver0 rpm2cpio  apache2-mpm-prefork libintl-perl \
-libapache2-request-perl libnet-dns-perl vlan libio-socket-ssl-perl \
-libfile-sync-perl ifenslave-2.6 libnet-ldap-perl console-data \
-libtool dietlibc-dev liblocale-po-perl libstring-shellquote-perl \
-libio-multiplex-perl liblockfile-simple-perl
-
-3.  Download and install the following git modules in order from top to bottom:
+= Setup PVE Development Environment =
+
+1. Install Debian 'stretch'
+2. Configure pvetest repository in apt sources.list
+
+ deb http://download.proxmox.com/debian stretch pvetest
+
+3. Add our repository key with apt-key:
+
+ wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
+
+4. make sure you have a read IP address for your hostname in /etc/hosts
+   (using 127.0.1.1 will not work)
+
+5. run: apt-get update
+6. run: apt-get dist-upgrade
+7. run: apt-get install proxmox-ve
+
+You should now have a working Proxmox VE installation.
+
+= Install build prerequisites for development environment =
+
+apt-get install build-essential git git-email debhelper \
+autotools-dev autogen dh-autoreconf dkms doxygen check pkg-config \
+groff quilt dpatch automake autoconf libtool lintian libdevel-cycle-perl \
+libjson-perl libcommon-sense-perl liblinux-inotify2-perl libio-stringy-perl \
+libstring-shellquote-perl dh-systemd rpm2cpio libsqlite3-dev sqlite3 \
+libglib2.0-dev librrd-dev librrds-perl rrdcached libdigest-hmac-perl \
+libxml-parser-perl gdb libcrypt-openssl-random-perl \
+libcrypt-openssl-rsa-perl libnet-ldap-perl libauthen-pam-perl \
+libjson-xs-perl libterm-readline-gnu-perl oathtool libmime-base32-perl \
+liboath0 libpci-dev texi2html libsdl1.2-dev libgnutls28-dev \
+libspice-protocol-dev xfslibs-dev libnuma-dev libaio-dev \
+pve-libspice-server-dev libusbredirparser-dev glusterfs-common \
+libusb-1.0-0-dev librbd-dev libpopt-dev iproute bridge-utils numactl \
+glusterfs-common ceph-common python-ceph libgoogle-perftools4 \
+libfile-chdir-perl lvm2 glusterfs-client liblockfile-simple-perl \
+libsystemd-dev libreadline-gplv2-dev libio-multiplex-perl \
+libnetfilter-log-dev libipset3 ipset socat libsasl2-dev libogg-dev \
+python-pyparsing libfilesys-df-perl libcrypt-ssleay-perl \
+libfile-readbackwards-perl libanyevent-perl libanyevent-http-perl \
+unzip liblocale-po-perl libfile-sync-perl cstream \
+lzop dtach apt-transport-https hdparm gdisk parted ttf-dejavu-core \
+liblzma-dev dosfstools mtools libxen-dev libfuse-dev corosync-dev \
+libcpg-dev libquorum-dev libcmap-dev libuuid-perl \
+libqb-dev libapparmor-dev docbook2x libcap-dev dh-apparmor \
+graphviz libseccomp-dev libglib-perl libgtk3-perl libnss3-dev libdlm-dev \
+libudev-dev asciidoc-dblatex source-highlight libiscsi-dev libiscsi7
+
+= Compile PVE packages from Source =
+
+Download and install the following git modules in order from top to bottom:
 
 # git clone git://git.proxmox.com/git/<PACKAGE.git>
 
 You currently need the following packages:
 
-libqb.git
-corosync-pve.git
-openais-pve.git
 pve-common.git
+libpve-http-server-perl.git
+libpve-apiclient-perl.git
+pve-docs.git
 pve-cluster.git
-redhat-cluster-pve.git
-lvm.git
 pve-access-control.git
 pve-storage.git
+pve-guest-common.git
+pve-firewall.git
 pve-qemu-kvm.git
 qemu-server.git
 vncterm.git
-vzquota.git
-vzctl.git
-fence-agents-pve.git
-resource-agents-pve.git
+spiceterm.git
+#vzquota.git
+#vzctl.git
+#fence-agents-pve.git
+#resource-agents-pve.git
+extjs.git
 pve-manager.git
-pve-kernel-2.6.32.git
-libiscsi.git
-gfs2-utils.git
+#pve-kernel-3.10.0.git
+#libiscsi.git
+#gfs2-utils.git
 ksm-control-daemon.git
+pve-container.git
+pve-kernel.git
 
 Most packages can be installed with 'make dinstall' command.
 
@@ -85,8 +97,7 @@ You can view the source code at:
 https://git.proxmox.com
 
 
-REST vs. SOAP
-=============
+= REST vs. SOAP =
 
 We decided to change our SOAP API (1.X) and use a REST like API. The
 concept is described in [1] (Resource Oriented Architecture
@@ -101,8 +112,7 @@ That framework, like any other AJAX toolkit, can talk directly to the
 REST API using JSON. So we were able to remove the server side
 template toolkit completely.
 
-JSON and JSON Schema
-====================
+= JSON and JSON Schema =
 
 We use JSON as data format, because it is simple and parse-able by any
 web browser.
@@ -127,8 +137,7 @@ So here is a summary of the advantage:
    - automatic generation of API documentation
    - easy way to create command line tools (using same API).
 
-API Implementation (PVE::RESTHandler)
-=====================================
+= API Implementation (PVE::RESTHandler) =
 
 All classes exposing methods on the API use PVE::RESTHandler as base class.
 
@@ -159,7 +168,7 @@ __PACKAGE__->register_method ({
        type => 'string',
     },
     code => sub {
-       my ($conn, $resp, $param) = @_;
+       my ($param) = @_;
 
        return $param->{text};
     }
@@ -217,8 +226,8 @@ C1->find_handler('GET', "/sub2/index") => C2::list2
 The HTTP server use the URL (a path) to find the corresponding method. 
 
 
-References
-==========
+= References =
+
 [1] RESTful Web Services
 Web services for the real world