How to build the package - for CI systems, etc

1 - install all the build-dependencies as listed in the debian/control file.
    From the repo top-level directory:

apt-get install `dpkg-checkbuilddeps |& sed "s/.*://g" |& sed "s/(...[0-9]*)//g"`

2 - run debuild (the flags will avoid signing the built packages):
    From the repo top-level directory:

debuild -uc -us

***************

quilt patches format

Note that we use the dquilt format for patches as outlined on Debian's wiki:
https://www.debian.org/doc/manuals/maint-guide/modify.en.html#quiltrc

Please consider using the same format to avoid excessive churn when adding or
refreshing patches.

Add the following to your ~/.bashrc (or equivalent):

alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
complete -F _quilt_completion $_quilt_complete_opt dquilt

And then create a new ~/.quiltrc-dpkg file with content:

d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done
if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then
    # if in Debian packaging tree with unset $QUILT_PATCHES
    QUILT_PATCHES="debian/patches"
    QUILT_PATCH_OPTS="--reject-format=unified"
    QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
    QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
    QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"
    if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi
fi

Open a new terminal or souce ~/.bashrc, and then you will be able to use
dquilt.

***************

After using Gerrit on FD.io (thanks!) for a while we converged on using salsa
The main page is at https://salsa.debian.org/debian/dpdk

Branches that we use:
- sid                   - main development branch, uploads to unstable from here
- experimental          - development if frozen, merged to sid on a new release
- pristine-tar          - artifact of gbp import to recreate tarballs
- upstream              - artifact of gbp import reflecting new versions
                          upstream following mainline "master" releases
                          e.g. 18.11 -> 19.02 -> 19.05 -> ...
- upstream-XX.YY-stable - to keep updates linear stable releases like 18.11.2
                          will go here, branched from XX.YY
                          e.g. 17.11 -> 18.11 -> 19.11 -> ...
- stretch*              - track updates/backports to stable Debian releases

The majority of changes is co-maintained in Salsa directly.
Uploads to existing Ubuntu releases are maintained in git Ubuntu [1]
at https://git.launchpad.net/ubuntu/+source/dpdk

There are branches per Ubuntu release which are forked off the Debian branch
at the time. SRU [2] uploads follow the usual process based on these branches.

[1]: https://ubuntu.com/blog/developing-ubuntu-using-git
[2]: https://wiki.ubuntu.com/StableReleaseUpdates


***************

DPDK has many libraries and not all build on all architectures.
Any new major version should be checked if they turn out to build
in the same way across architectures. A simple, but helpful approach
is starting by comparing the files in those.

1. Fetch buildlogs from all the builds of e.g. an RC release
2. Run the following to compare the number of files per binary package

$ for a in ppc64el amd64 riscv64; do awk '
/^lib.*\.deb/{
  if(count){
    print prev,count
  }
  prev=$0
  count=""
  next
}
/root\/root/ {
  count++
}
END{
  if(count && prev){
    print prev,count
  }
}
' buildlog_.*-${a}.dpdk_.*BUILDING.txt  | sed "s/${a}//" | sort > ${a}.count; done; vimdiff *.count
