[pve-devel] Setup PVE Development Environment

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Aug 22 09:40:47 CEST 2018


(adding the pve-devel list again, maybe you forgot to hit 'Reply All')

On 8/21/18 10:08 PM, Martin Beckert wrote:> Hi,
> 
> I want to add vlan trunks to the gui:
> https://forum.proxmox.com/threads/interface-on-vm-not-working.37597/#post-219335
> 
> So I set my developer machine up and got stuck a few times, because the
> current installation manual isn't up-to-date. I want to update (patch) it,
> so everyone else who is new to the Proxmox project and maybe also to
> development will get a nice and handy installation instruction. As easy as
> possible.

Install PVE and setup the pvetest repository[0], with it you're always on
(almost) latest and can work on the packages you're interested in without
issues - most of the time.

You also can setup a VM with PVE as nested hypervisor[1] and develop there,
with this approach your original setup won't get touched, helpful if other
VM/CTs are hosted on it. I'd suggest to connect with SSH and use a sane
editor like VIM or EMACS do hack around, but you can also use spice and
whatever editor you prefer, naturally.

> Currently the website says 'Download and install the following git modules
> in order from top to bottom:', but what git repositories shall be
> installed by default by a random developer? Is it only "pve-common.git" or
> also other repositories? What is it that we want to provide in this
> installation instruction? The current git repository list isn't working
> that way.

As stated in my other post: this is totally dependent on what you want to
do, there cannot be a blessed list of repositories which is enough for all
possible features _and_ not totally confusing for a new PVE contributor.

* pve-docs and pve-doc-generator are essential as most packages rely on them
to build their man pages, but as long as you do not want to enhance our
documentation it's enough installing them over apt as regular Debian
package...

* pve-common may be always wanted, it host a few common basic stuff, among
them network helpers - which could be helpful for your case.
I'd clone it as it's not big, not much dependencies and sooner or later
you'll need it.

* pve-manager hosts big parts of the API entries and (for now) the web
interface code, so for the feature you plan you will need this.

* qemu-server will also be needed, as you want to add this to VMs, so you
probably need to enhance the VM config net entry schema to support a trunk
entry

hope this helps, as said its hard to impossible to come up with a complete
starter guide, it's just to big of an project. IMO, best is to start small,
hack around, look at the surrounding code to get a feeling how it's
currently done (please, keep coding style in mind[2]) and ask here or post a
patch series - we try to provide you with feedback.

cheers,
Thomas

[0]: https://pve.proxmox.com/wiki/Package_Repositories#_proxmox_ve_test_repository
[1]: https://pve.proxmox.com/wiki/Nested_Virtualization
[2]: https://pve.proxmox.com/wiki/Perl_Style_Guide (for perl) for JS try to
     keep `make lint` in the www/manager6 directory happy


> 
> Am 21.08.2018 um 08:37 schrieb Thomas Lamprecht:
>> Hi,
>>
>> On 8/20/18 9:16 PM, Martin Beckert wrote:> Hello,
>>> I want to contribute to the Proxmox project and I'm using a mailing for the first time ever, so hopefully I'm doing right :)
>>>
>>> I have already read the following sites:
>>> - https://pve.proxmox.com/wiki/Developer_Documentation
>>> - https://git.proxmox.com/?p=pve-common.git;a=blob_plain;f=README.dev;hb=HEAD
>>>
>>> My Virtualbox with Debian Stretch and Proxmox is woking, but I'm stuck at the chapter 'Compile PVE packages from Source' as it's saying 'You currently need the following packages', but that seems to be wrong:
>>>
>>> pve-common.git
>>> libpve-http-server-perl.git
>>> libpve-apiclient-perl.git
>>> pve-docs.git
>>> pve-cluster.git
>>> pve-access-control.git
>>> pve-storage.git
>>> pve-guest-common.git
>>> pve-firewall.git
>>> pve-qemu-kvm.git
>>> qemu-server.git
>>> vncterm.git
>>> spiceterm.git
>>> #vzquota.git
>>> #vzctl.git
>>> #fence-agents-pve.git
>>> #resource-agents-pve.git
>>> extjs.git
>>> pve-manager.git
>>> #pve-kernel-3.10.0.git
>>> #libiscsi.git
>>> #gfs2-utils.git
>>> ksm-control-daemon.git
>>> pve-container.git
>>> pve-kernel.git
>>>
>>> When taking a look at https://git.proxmox.com/ I can see that there are way more git repositories and some other repositories like 'libpve-http-server-perl.git' don't even exist. So I need your help: Which repositories do I need and in what order do I need to build them?
>>>
>>> I'm already working on a patch for the site https://git.proxmox.com/?p=pve-common.git;a=blob_plain;f=README.dev;hb=HEAD and I want to provide this one maybe this week. I have already spent some time to figure it out and need the repositories as the last piece :)
>>>
>> Piggy-packing on Alexandre's post:
>> Yes, there are a lot more repositories, some are left over from previous
>> releases, e.g., older kernels or some tools/daemons which got replaced...
>> Others were introduced quite recently, thus they may not appear here.
>>
>> So, which one do you really need? Highly probable not all, at least in the
>> beginning. Only clone those you're interested to work with, e.g. if you add
>> a new storage plugin then you'd work with pve-storage, if you want to hack
>> on the webinterface then pve-manager and proxmox-widget-toolkit would be
>> needed (while extjs is used for the UI we normally don't patch it itself but
>> add overrides where necessary). Sometimes you may need to work with multiple
>> repositories/packages to achieve your goal in a sane and nice manner, but
>> for such non-trivial tasks it may be best to coordinate with us - especially
>> if you're only beginning to hack on Proxmox VE (or PMG for that matter).
>>
>> cheers,
>> Thomas
>




More information about the pve-devel mailing list