[pve-devel] need help to package frr routing software in proxmox way

Alexandre DERUMIER aderumier at odiso.com
Mon Jun 11 13:27:41 CEST 2018


> They are some bootstraping to generate the /debian directory with build rules.

>>what needs to be done here, roughly?
>>Isn't it enough to make a softlink from debian -> debianpkg in the
>>build directory? 

I'm currently looking inside the bootstrap, but I seem that some files are generated in debianpkg directory

They are a "make dist" in the boostrap, which do some configure, make and generate some files in debianpkg. (maybe compiling some templates rules files, or something like that).

Thanks for hints, I'll dig a little more.



----- Mail original -----
De: "Thomas Lamprecht" <t.lamprecht at proxmox.com>
À: "pve-devel" <pve-devel at pve.proxmox.com>, "aderumier" <aderumier at odiso.com>
Envoyé: Lundi 11 Juin 2018 09:05:12
Objet: Re: [pve-devel] need help to package frr routing software in proxmox way

Hi, 

On 6/11/18 8:15 AM, Alexandre DERUMIER wrote: 
> Hi, 
> 
> I'm currently working to package frr 
> https://github.com/FRRouting/frr 
> 
> in proxmox way (with git submodule) 
> 
> 
> official debian build infos are here: 
> 
> https://github.com/FRRouting/frr/blob/8d659e9168063897f5a475f78162f0e63889c964/doc/developer/packaging-debian.rst 
> 
> 
> But I'm not sure how to implement this for a clean proxmox package in the Makefile 
> 

Normally the stepos would be somewhat like: 

* ensure submodule is initialised 
* sync over submodule to build directory 
* overwrite (parts of) debian packaging directory 
* call dpkg-buildpackage 

> They are some bootstraping to generate the /debian directory with build rules. 

what needs to be done here, roughly? 
Isn't it enough to make a softlink from debian -> debianpkg in the 
build directory? 

> Maybe should I implemented this in "download:" to generate a tar.gz, and simply use it in "deb:" section ? 
> 

Hmm, if you do it with submodules then no "download to archive" should be needed. 

A makefile could look somewhat like: 
(this is a modified version of our novnc-pve Makfile) 

PACKAGE=frr-pve 
VER=X.Y.Z 
PKGREL=1 

SRCDIR=frr 
BUILDDIR=${SRCDIR}.tmp 

ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH) 
GITVERSION:=$(shell git rev-parse HEAD) 

DEB=${PACKAGE}_${VER}-${PKGREL}_${ARCH}.deb 
all: ${DEB} 

.PHONY: deb 
deb: ${DEB} 
${DEB}: | submodule 
rm -rf ${BUILDDIR} 
cp -rpa ${SRCDIR} ${BUILDDIR} 
ln -s ${BUILDDIR}/debian ${BUILDDIR}/debianpkg 
# copy debian changelog here, and/or overwrite d/control 
echo "git clone git://git.proxmox.com/git/frr-pve.git\\ngit checkout ${GITVERSION}" > ${BUILDDIR}/debian/SOURCE 
cd ${BUILDDIR}; dpkg-buildpackage -b -uc -us 
lintian ${DEB} 

.PHONY: submodule 
submodule: 
# some test to check if the submodule was initialized once 
#test -f "${SRCDIR}/vnc.html" || git submodule update --init 

.PHONY: update_modules 
update_modules ${SRCDIR}: submodule 
git submodule foreach 'git pull --ff-only origin master' 

.PHONY: clean 
clean: 
rm -rf *~ debian/*~ *.deb ${BUILDDIR} *.changes *.dsc *.buildinfo 

.PHONY: dinstall 
dinstall: deb 
dpkg -i ${DEB}1 



More information about the pve-devel mailing list