SysFSTools: copy over scan_usb from PVE::Storage
[pve-common.git] / README.dev
index 14d89e7..0b12123 100644 (file)
@@ -1,29 +1,56 @@
 = Setup PVE Development Environment =
 
-1. Install Debian 'jessie'
-2. Configure pvetest repository in apt sources.list
+0.  Read https://pve.proxmox.com/wiki/Developer_Documentation
+1.  Install Debian 9 'stretch' (you can also start from a PVE installation and
+    skip step 2 - 5, 7 - 11)
+2.  Configure the network interface(s)
+3.  Change the IP address of your hostname for proper name resolution
+    in /etc/hosts
+    Using 127.0.1.1 will not work, so change it to an IP address from your
+    local network!
 
- deb http://download.proxmox.com/debian jessie pvetest
+4:  Check that the Debian repositories are set properly.
+    See https://wiki.debian.org/SourcesList for more information.
 
-3. Add our repository key with apt-key:
+5.  Optional: Install openssh-server and connect via ssh to the host.
 
- wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
+    run: apt-get update && apt-get install openssh-server
+    Connect via ssh to host and switch user to root
 
-4. make sure you have a read IP address for your hostname in /etc/hosts
-   (using 127.0.1.1 will not work)
+6.  Configure 'pvetest' repository in /etc/apt/sources.list.d/:
 
-5. run: apt-get update
-6. run: apt-get dist-upgrade
-7. run: apt-get install proxmox-ve-3.10.0
+    run: echo "deb http://download.proxmox.com/debian stretch pvetest" > /etc/apt/sources.list.d/pve-development.list
+
+7.  Add the repository key:
+
+    run: wget -O- "http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg" | apt-key add -
+
+8.  run: apt-get update && apt-get dist-upgrade
+9.  run: apt-get install proxmox-ve
+10. run: mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
+
+11. You should now have a working Proxmox VE installation.
+    Open a browser: https://<host_IP_address>:8006 e.g. https://10.0.0.90:8006
 
-You should now have a working Proxmox VE installation.
 
 = Install build prerequisites for development environment =
 
-apt-get -y install build-essential git-core 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 \
+NOTE: this is a huge list intended to be able to build (almost) all packages,
+from the UI/API components to backend components to our Linux Kernel.
+If you only want to hack on specific topics you won't need most of those.
+We try to have a complete list of build dependencies in each source
+repositories 'debian/control' file. If you run `make deb` dpkg-buildpackage will
+stop and tell you if you miss some required packages.
+
+12. For installing the most important, always needed, ones run:
+
+apt-get install build-essential git git-email debhelper pve-doc-generator
+
+Additionally, for quickly installing (almost) all build dependencies run:
+
+apt-get install 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 \
@@ -35,57 +62,40 @@ 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-daemon-dev libreadline-gplv2-dev libio-multiplex-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 vlan ifenslave-2.6 libfile-sync-perl cstream \
+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
-
-= Compile PVE packages from Source =
-
-Download and install the following git modules in order from top to bottom:
+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 \
+librsvg2-bin
 
-# git clone git://git.proxmox.com/git/<PACKAGE.git>
 
-You currently need the following packages:
+= Compile PVE packages from Source =
 
-libqb.git
-corosync-pve.git
-pve-common.git
-pve-cluster.git
-lvm.git
-pve-access-control.git
-pve-storage.git
-pve-qemu-kvm.git
-qemu-server.git
-vncterm.git
-spiceterm.git
-#vzquota.git
-#vzctl.git
-#fence-agents-pve.git
-#resource-agents-pve.git
-pve-manager.git
-pve-kernel-3.10.0.git
-libiscsi.git
-#gfs2-utils.git
-ksm-control-daemon.git
+13: Download and install git repositories as Proxmox modules:
 
-Most packages can be installed with 'make dinstall' command.
+    run: mkdir /root/proxmox && cd /root/proxmox
 
-4.  Reboot the system.
-5.  Learn to use the quilt patch scripts.
-6.  Happy coding.
+    run: git clone git://git.proxmox.com/git/pve-common.git
 
-There is an experimental package containing the API documentation
-as ExtJS application:
+    'pve-common.git' is some kind of starting repository and needed for some
+    other repositories as dependency.
+    Install this to get an idea of how the installation process is working.
 
-pve2-api-doc.git
+    See https://git.proxmox.com/ for all available repositories.
 
-You can view the source code at:
+14: Most packages can be installed with 'make dinstall' command.
+    run: cd pve-common && make dinstall
 
-https://git.proxmox.com
+15: Reboot the system.
+16. Learn to use the quilt patch scripts.
+17. Happy coding!
 
 
 = REST vs. SOAP =
@@ -159,7 +169,7 @@ __PACKAGE__->register_method ({
        type => 'string',
     },
     code => sub {
-       my ($conn, $resp, $param) = @_;
+       my ($param) = @_;
 
        return $param->{text};
     }