Ilya and Numan,

I preemptively added your names to the commit message because the
patch contains your work as detailed in the commit message.

I hope this is ok.

On Fri, Aug 5, 2022 at 10:35 PM Frode Nordahl
<[email protected]> wrote:
>
> Update debian package source from Debian and Ubuntu.
>
> debian/ovn-common.logrotate comes from the RHEL packaging in this
> tree, and author is credited below.
>
> The debian/automake.mk tricks to generate the copyright file while
> building came from the work on the debian packaging in openvswitch
> and author is credited below.
>
> Signed-off-by: James Page <[email protected]>
> Co-Authored-by: James Page <[email protected]>
> Signed-off-by: Christian Ehrhardt <[email protected]>
> Co-Authored-by: Christian Ehrhardt <[email protected]>
> Signed-off-by: Numan Siddique <[email protected]>
> Co-Authored-by: Numan Siddique <[email protected]>
> Signed-off-by: Ilya Maximets <[email protected]>
> Co-Authored-by: Ilya Maximets <[email protected]>
> Signed-off-by: Frode Nordahl <[email protected]>
> ---
>  build-aux/initial-tab-whitelist               |   3 +-
>  debian/.gitignore                             |  17 ++
>  debian/automake.mk                            |  85 ++++++++-
>  debian/control                                | 176 ++++++++++++++++++
>  debian/copyright.in                           | 146 +++++++++++++++
>  debian/flaky-tests-amd64.txt                  |   6 +
>  debian/flaky-tests-arm64.txt                  |   5 +
>  debian/flaky-tests-armel.txt                  |   7 +
>  debian/flaky-tests-armhf.txt                  |   9 +
>  debian/flaky-tests-i386.txt                   |   8 +
>  debian/flaky-tests-mips64el.txt               |   5 +
>  debian/flaky-tests-mipsel.txt                 |  21 +++
>  debian/flaky-tests-ppc64el.txt                |   6 +
>  debian/flaky-tests-riscv64.txt                |   6 +
>  debian/flaky-tests-s390x.txt                  |   5 +
>  debian/gbp.conf                               |  13 ++
>  debian/not-installed                          |   5 +
>  debian/ovn-central.default                    |   5 +
>  debian/ovn-central.install                    |   3 +
>  debian/ovn-central.ovn-northd.service         |  15 ++
>  .../ovn-central.ovn-ovsdb-server-nb.service   |  18 ++
>  .../ovn-central.ovn-ovsdb-server-sb.service   |  18 ++
>  debian/ovn-central.postrm                     |  47 +++++
>  debian/ovn-central.service                    |  16 ++
>  debian/ovn-common.docs                        |   1 +
>  debian/ovn-common.install                     |  32 ++++
>  debian/ovn-common.logrotate                   |  22 +++
>  debian/ovn-common.postinst                    |  24 +++
>  debian/ovn-common.postrm                      |  23 +++
>  debian/ovn-controller-vtep.install            |   1 +
>  debian/ovn-controller-vtep.service            |  16 ++
>  debian/ovn-doc.doc-base                       |   9 +
>  debian/ovn-doc.install                        |   1 +
>  debian/ovn-docker.install                     |   2 +
>  debian/ovn-host.default                       |   5 +
>  debian/ovn-host.install                       |   1 +
>  debian/ovn-host.ovn-controller.service        |  15 ++
>  debian/ovn-host.postrm                        |  43 +++++
>  debian/ovn-host.service                       |  14 ++
>  debian/ovn-ic-db.install                      |   2 +
>  .../ovn-ic-db.ovn-ovsdb-server-ic-nb.service  |  15 ++
>  .../ovn-ic-db.ovn-ovsdb-server-ic-sb.service  |  15 ++
>  debian/ovn-ic-db.service                      |  15 ++
>  debian/ovn-ic.install                         |   1 +
>  debian/ovn-ic.service                         |  16 ++
>  debian/rules                                  | 104 +++++++++++
>  debian/source/format                          |   1 +
>  debian/source/include-binaries                |   1 +
>  debian/testlist.py                            |  72 +++++++
>  debian/watch                                  |   5 +
>  50 files changed, 1098 insertions(+), 3 deletions(-)
>  create mode 100644 debian/.gitignore
>  create mode 100644 debian/control
>  create mode 100644 debian/copyright.in
>  create mode 100644 debian/flaky-tests-amd64.txt
>  create mode 100644 debian/flaky-tests-arm64.txt
>  create mode 100644 debian/flaky-tests-armel.txt
>  create mode 100644 debian/flaky-tests-armhf.txt
>  create mode 100644 debian/flaky-tests-i386.txt
>  create mode 100644 debian/flaky-tests-mips64el.txt
>  create mode 100644 debian/flaky-tests-mipsel.txt
>  create mode 100644 debian/flaky-tests-ppc64el.txt
>  create mode 100644 debian/flaky-tests-riscv64.txt
>  create mode 100644 debian/flaky-tests-s390x.txt
>  create mode 100644 debian/gbp.conf
>  create mode 100644 debian/not-installed
>  create mode 100644 debian/ovn-central.default
>  create mode 100644 debian/ovn-central.install
>  create mode 100644 debian/ovn-central.ovn-northd.service
>  create mode 100644 debian/ovn-central.ovn-ovsdb-server-nb.service
>  create mode 100644 debian/ovn-central.ovn-ovsdb-server-sb.service
>  create mode 100644 debian/ovn-central.postrm
>  create mode 100644 debian/ovn-central.service
>  create mode 100644 debian/ovn-common.docs
>  create mode 100644 debian/ovn-common.install
>  create mode 100644 debian/ovn-common.logrotate
>  create mode 100644 debian/ovn-common.postinst
>  create mode 100644 debian/ovn-common.postrm
>  create mode 100644 debian/ovn-controller-vtep.install
>  create mode 100644 debian/ovn-controller-vtep.service
>  create mode 100644 debian/ovn-doc.doc-base
>  create mode 100644 debian/ovn-doc.install
>  create mode 100644 debian/ovn-docker.install
>  create mode 100644 debian/ovn-host.default
>  create mode 100644 debian/ovn-host.install
>  create mode 100644 debian/ovn-host.ovn-controller.service
>  create mode 100644 debian/ovn-host.postrm
>  create mode 100644 debian/ovn-host.service
>  create mode 100644 debian/ovn-ic-db.install
>  create mode 100644 debian/ovn-ic-db.ovn-ovsdb-server-ic-nb.service
>  create mode 100644 debian/ovn-ic-db.ovn-ovsdb-server-ic-sb.service
>  create mode 100644 debian/ovn-ic-db.service
>  create mode 100644 debian/ovn-ic.install
>  create mode 100644 debian/ovn-ic.service
>  create mode 100755 debian/rules
>  create mode 100644 debian/source/format
>  create mode 100644 debian/source/include-binaries
>  create mode 100755 debian/testlist.py
>  create mode 100644 debian/watch
>
> diff --git a/build-aux/initial-tab-whitelist b/build-aux/initial-tab-whitelist
> index b2f5a0791..71d4f007d 100644
> --- a/build-aux/initial-tab-whitelist
> +++ b/build-aux/initial-tab-whitelist
> @@ -6,6 +6,5 @@
>  ^ovs/
>  ^third-party/
>  ^xenserver/
> -^debian/rules.modules$
> -^debian/rules$
> +^debian/
>  ^\.gitmodules$
> diff --git a/debian/.gitignore b/debian/.gitignore
> new file mode 100644
> index 000000000..d2393b3fd
> --- /dev/null
> +++ b/debian/.gitignore
> @@ -0,0 +1,17 @@
> +*.debhelper
> +*.debhelper.log
> +*.substvars
> +/autoreconf.after
> +/autoreconf.before
> +/copyright
> +/files
> +/ovn-common
> +/ovn-controller-vtep
> +/ovn-host
> +/ovn-central
> +/ovn-docker
> +/debhelper-build-stamp
> +/ovn-doc/
> +/ovn-ic-db/
> +/ovn-ic/
> +/tmp
> diff --git a/debian/automake.mk b/debian/automake.mk
> index ce11fd040..d199c925d 100644
> --- a/debian/automake.mk
> +++ b/debian/automake.mk
> @@ -1,2 +1,85 @@
>  EXTRA_DIST += \
> -       debian/changelog
> +       debian/changelog \
> +       debian/control \
> +       debian/copyright.in \
> +       debian/flaky-tests-amd64.txt \
> +       debian/flaky-tests-arm64.txt \
> +       debian/flaky-tests-armel.txt \
> +       debian/flaky-tests-armhf.txt \
> +       debian/flaky-tests-i386.txt \
> +       debian/flaky-tests-mips64el.txt \
> +       debian/flaky-tests-mipsel.txt \
> +       debian/flaky-tests-ppc64el.txt \
> +       debian/flaky-tests-riscv64.txt \
> +       debian/flaky-tests-s390x.txt \
> +       debian/gbp.conf \
> +       debian/not-installed \
> +       debian/ovn-central.default \
> +       debian/ovn-central.install \
> +       debian/ovn-central.ovn-northd.service \
> +       debian/ovn-central.postrm \
> +       debian/ovn-central.service \
> +       debian/ovn-common.docs \
> +       debian/ovn-common.install \
> +       debian/ovn-common.logrotate \
> +       debian/ovn-common.postinst \
> +       debian/ovn-common.postrm \
> +       debian/ovn-controller-vtep.install \
> +       debian/ovn-controller-vtep.service \
> +       debian/ovn-doc.doc-base \
> +       debian/ovn-doc.install \
> +       debian/ovn-docker.install \
> +       debian/ovn-host.default \
> +       debian/ovn-host.install \
> +       debian/ovn-host.ovn-controller.service \
> +       debian/ovn-host.postrm \
> +       debian/ovn-host.service \
> +       debian/ovn-ic-db.install \
> +       debian/ovn-ic-db.service \
> +       debian/ovn-ic.install \
> +       debian/ovn-ic.service \
> +       debian/rules \
> +       debian/source/format \
> +       debian/source/include-binaries \
> +       debian/testlist.py \
> +       debian/watch
> +
> +check-debian-changelog-version:
> +       @DEB_VERSION=`echo '$(VERSION)' | sed 's/pre/~pre/'`;                \
> +       if $(FGREP) '($(DEB_VERSION)' $(srcdir)/debian/changelog >/dev/null; \
> +       then                                                                 \
> +         :;                                                                 \
> +       else                                                                 \
> +         echo "Update debian/changelog to mention version $(VERSION)";      \
> +         exit 1;                                                            \
> +       fi
> +ALL_LOCAL += check-debian-changelog-version
> +DIST_HOOKS += check-debian-changelog-version
> +
> +update_deb_copyright = \
> +       $(AM_V_GEN) \
> +       { sed -n -e '/%AUTHORS%/q' -e p < $(srcdir)/debian/copyright.in;   \
> +         tail -n +28 $(srcdir)/AUTHORS.rst | sed '1,/^$$/d' |             \
> +               sed -n -e '/^$$/q' -e 's/^/  /p';                          \
> +         sed -e '1,/%AUTHORS%/d' $(srcdir)/debian/copyright.in;           \
> +       } > debian/copyright
> +
> +debian/copyright: AUTHORS.rst debian/copyright.in
> +       $(update_deb_copyright)
> +
> +CLEANFILES += debian/copyright
> +
> +debian: debian/copyright
> +.PHONY: debian
> +
> +debian-deb: debian
> +       @if test X"$(srcdir)" != X"$(top_builddir)"; then                   \
> +               echo "Debian packages should be built from $(abs_srcdir)/"; \
> +               exit 1;                                                     \
> +       fi
> +       $(MAKE) distclean
> +       $(update_deb_copyright)
> +       $(update_deb_control)
> +       $(AM_V_GEN) fakeroot debian/rules clean
> +       $(AM_V_GEN) DEB_BUILD_OPTIONS="nocheck parallel=`nproc`" \
> +               fakeroot debian/rules binary
> diff --git a/debian/control b/debian/control
> new file mode 100644
> index 000000000..a6f395842
> --- /dev/null
> +++ b/debian/control
> @@ -0,0 +1,176 @@
> +Source: ovn
> +Section: net
> +Priority: optional
> +Maintainer: OVN developers <[email protected]>
> +Build-Depends:
> + autoconf,
> + automake,
> + bzip2,
> + debhelper-compat (= 10),
> + dh-python,
> + graphviz,
> + libcap-ng-dev,
> + libnuma-dev [amd64 i386 ppc64el arm64],
> + libpcap-dev [amd64 i386 ppc64el arm64],
> + libssl-dev,
> + libtool,
> + libudev-dev,
> + libunbound-dev,
> + openssl,
> + openstack-pkg-tools,
> + openvswitch-source (>= 2.17.2-3~),
> + pkg-config,
> + procps,
> + python3-all-dev,
> + python3-setuptools,
> + python3-sortedcontainers,
> + python3-sphinx,
> + tcpdump,
> +Standards-Version: 4.6.1
> +Homepage: https://www.ovn.org/
> +
> +Package: ovn-central
> +Architecture: linux-any
> +Pre-Depends: ${misc:Pre-Depends},
> +Depends:
> + lsb-base,
> + lsb-release,
> + openvswitch-common (>= 2.17.0~),
> + ovn-common (= ${binary:Version}),
> + ${misc:Depends},
> + ${shlibs:Depends},
> +Description: OVN central components
> + OVN, the Open Virtual Network, is a system to support virtual network
> + abstraction. OVN complements the existing capabilities of OVS to add native
> + support for virtual network abstractions, such as virtual L2 and L3 overlays
> + and security groups.
> + .
> + ovn-central provides the userspace daemons, utilities and
> + databases for OVN that is run at a central location.
> +
> +Package: ovn-common
> +Architecture: linux-any
> +Depends:
> + ${misc:Depends},
> + ${python3:Depends},
> + ${shlibs:Depends},
> +Breaks:
> + ovn-ic-db (<< 22.03~),
> +Replaces:
> + ovn-ic-db (<< 22.03~),
> +Description: OVN common components
> + OVN, the Open Virtual Network, is a system to support virtual network
> + abstraction. OVN complements the existing capabilities of OVS to add native
> + support for virtual network abstractions, such as virtual L2 and L3 overlays
> + and security groups.
> + .
> + ovn-common provides components required by other OVN packages.
> +
> +Package: ovn-controller-vtep
> +Architecture: linux-any
> +Pre-Depends: ${misc:Pre-Depends},
> +Depends:
> + lsb-base,
> + ovn-common (= ${binary:Version}),
> + ${misc:Depends},
> + ${shlibs:Depends},
> +Description: OVN vtep controller
> + ovn-controller-vtep is the local controller daemon in OVN, the Open Virtual
> + Network, for VTEP enabled physical switches. It connects up to the OVN
> + Southbound database over the OVSDB protocol, and down to the VTEP database
> + over the OVSDB protocol.
> + .
> + ovn-controller-vtep provides the ovn-controller-vtep binary for controlling
> + vtep gateways.
> +
> +Package: ovn-doc
> +Section: doc
> +Architecture: all
> +Depends:
> + ${misc:Depends},
> + ${sphinxdoc:Depends},
> +Description: OVN documentation
> + OVN, the Open Virtual Network, is a system to support virtual network
> + abstraction.  OVN complements the existing capabilities of OVS to add
> + native support for virtual network abstractions, such as virtual L2 and L3
> + overlays and security groups.
> + .
> + This package provides documentation for configuration and use
> + of OVN.
> +
> +Package: ovn-docker
> +Architecture: linux-any
> +Depends:
> + openvswitch-common (>= 2.17.0~),
> + ovn-common (= ${binary:Version}),
> + python3-openvswitch (>= 2.17.0~),
> + ${misc:Depends},
> + ${python3:Depends},
> + ${shlibs:Depends},
> +Description: OVN Docker drivers
> + OVN, the Open Virtual Network, is a system to support virtual network
> + abstraction.  OVN complements the existing capabilities of OVS to add
> + native support for virtual network abstractions, such as virtual L2 and L3
> + overlays and security groups.
> + .
> + ovn-docker provides the docker drivers for OVN.
> +
> +Package: ovn-host
> +Architecture: linux-any
> +Pre-Depends: ${misc:Pre-Depends},
> +Depends:
> + lsb-base,
> + lsb-release,
> + openvswitch-switch (>= 2.17.0~),
> + ovn-common (= ${binary:Version}),
> + ${misc:Depends},
> + ${shlibs:Depends},
> +Description: OVN host components
> + OVN, the Open Virtual Network, is a system to support virtual network
> + abstraction.  OVN complements the existing capabilities of OVS to add
> + native support for virtual network abstractions, such as virtual L2 and L3
> + overlays and security groups.
> + .
> + ovn-host provides the userspace components and utilities for
> + OVN that can be run on every host/hypervisor.
> +
> +Package: ovn-ic
> +Architecture: linux-any
> +Pre-Depends: ${misc:Pre-Depends},
> +Depends:
> + lsb-base,
> + lsb-release,
> + ovn-common (= ${binary:Version}),
> + ${misc:Depends},
> + ${shlibs:Depends},
> +Enhances:
> + ovn-central,
> +Suggests:
> + ovn-ic-db,
> +Description: Open Virtual Network interconnection controller
> + OVN IC, the Open Virtual Network interconnection controller, is a
> + centralized daemon which communicates with global interconnection
> + databases to configure and exchange data with local OVN databases for
> + interconnection with other OVN deployments.
> + .
> + This package provides the ovn-ic daemon which should be run alongside
> + ovn-central services in each OVN deployment zone.
> +
> +Package: ovn-ic-db
> +Architecture: linux-any
> +Pre-Depends: ${misc:Pre-Depends},
> +Depends:
> + lsb-base,
> + lsb-release,
> + openvswitch-common (>= 2.17.0~),
> + ovn-common (= ${binary:Version}),
> + ${misc:Depends},
> + ${shlibs:Depends},
> +Description: Open Virtual Network interconnection controller databases
> + OVN IC, the Open Virtual Network interconnection controller, is a
> + centralized daemon which communicates with global interconnection
> + databases to configure and exchange data with local OVN databases for
> + interconnection with other OVN deployments.
> + .
> + This package provides the global OVN IC southbound and northbound
> + OVSDB databases.
> diff --git a/debian/copyright.in b/debian/copyright.in
> new file mode 100644
> index 000000000..911704ae0
> --- /dev/null
> +++ b/debian/copyright.in
> @@ -0,0 +1,146 @@
> +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
> +Upstream-Name: Open Virtual Network (OVN)
> +Source: https://github.com/ovn-org/ovn
> +Files-Excluded: debian
> +Upstream-Authors:
> +%AUTHORS%
> +
> +Files: *
> +Copyright: 2007-2017 Nicira, Inc.
> +           2010 Jean Tourrilhes - HP-Labs.
> +           2008,2009,2010 Citrix Systems, Inc.
> +           2011 Gaetano Catalli
> +           2000-2003 Geoffrey Wossum <[email protected]>
> +           2000 The NetBSD Foundation, Inc.
> +           1995, 1996, 1997, and 1998 WIDE Project.
> +           1982, 1986, 1990, 1993 The Regents of the University of 
> California.
> +           2008, 2012 Vincent Bernat <[email protected]>
> +           2014 Michael Chapman
> +           2014 WindRiver, Inc.
> +           2014 Avaya, Inc.
> +           2001 Daniel Hartmeier
> +           2002 - 2008 Henning Brauer
> +           2012 Gleb Smirnoff <[email protected]>
> +           2015-2019 Red Hat, Inc.
> +           2017 DtDream Technology Co., Ltd.
> +           2018 eBay Inc.
> +License: Apache-2.0
> +Comment:
> + This package contains code from other projects and authors not
> + mentioned elsewhere.
> + .
> + Open vSwitch
> + Copyright (c) 2007, 2008, 2009, 2010, 2011, 2013 Nicira, Inc.
> + .
> + Open vSwitch BSD port
> + Copyright (c) 2011 Gaetano Catalli
> + .
> + Apache Portable Runtime
> + Copyright 2008 The Apache Software Foundation.
> + .
> + This product includes software developed by
> + The Apache Software Foundation (http://www.apache.org/).
> + .
> + Portions of this software were developed at the National Center
> + for Supercomputing Applications (NCSA) at the University of
> + Illinois at Urbana-Champaign.
> + .
> + lib/ovs.tmac includes troff macros written by Eric S. Raymond
> + and Werner Lemberg.
> + .
> + m4/include_next.m4 and m4/absolute-header.m4
> + Copyright (C) 2006-2013 Free Software Foundation, Inc.
> + .
> + Rapid Spanning Tree Protocol (RSTP) implementation
> + Copyright (c) 2011-2014 M3S, Srl - Italy
> + .
> + LLDP implementation
> + Copyright (c) 2008, 2012 Vincent Bernat <[email protected]>
> + .
> + LLDP includes code used from the Net::CDP project based on the ISC license
> + Copyright (c) 2014 Michael Chapman
> + .
> + LLDP includes code used from the ladvd project based on the ISC license
> + Copyright (c) 2008, 2009, 2010 Sten Spans <[email protected]>
> + .
> + Auto Attach implementation
> + Copyright (c) 2014, 2015 WindRiver, Inc
> + Copyright (c) 2014, 2015 Avaya, Inc
> + .
> + TCP connection tracker from FreeBSD pf, BSD licensed
> + Copyright (c) 2001 Daniel Hartmeier
> + Copyright (c) 2002 - 2008 Henning Brauer
> + Copyright (c) 2012 Gleb Smirnoff <[email protected]>
> +
> +Files: build-aux/cccl
> +Copyright: 2000-2003 Geoffrey Wossum <[email protected]>
> +License: GPL-2
> +
> +Files: utilities/bugtool/ovn-bugtool-*
> +       utilities/bugtool/plugins/network-status/ovn.xml
> +Copyright: 2016 Nicira, Inc.
> +License: LGPL-2.1
> +
> +Files: m4/absolute-header.m4
> +       m4/include_next.m4
> +Copyright: Derek Price
> +           Paul Eggert
> +           2006-2013 Free Software Foundation, Inc.
> +License: file-is-free-software
> + This file is free software; the Free Software Foundation
> + gives unlimited permission to copy and/or distribute it,
> + with or without modifications, as long as this notice is preserved.
> +
> +Files: ovn-vif/*
> +Copyright: 2021 Canonical
> +License: Apache-2.0
> +
> +License: GPL-2
> + This program is free software; you can redistribute it and/or modify it 
> under
> + the terms of the GNU General Public License as published by the Free 
> Software
> + Foundation; either version 2 of the License, or (at your option) any later
> + version.
> + .
> + This program is distributed in the hope that it will be useful, but WITHOUT
> + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
> FITNESS
> + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
> details.
> + .
> + You should have received a copy of the GNU General Public License along with
> + this program; if not, write to the Free Software Foundation, Inc., 51 
> Franklin
> + St, Fifth Floor, Boston, MA 02110-1301 USA
> + .
> + On Debian systems, the complete text of the GNU General Public License v2
> + (GPL) can be found in /usr/share/common-licenses/GPL-2.
> +
> +License: LGPL-2.1
> + This library is free software; you can redistribute it and/or modify it 
> under
> + the terms of the GNU Lesser General Public License as published by the Free
> + Software Foundation; either version 2.1 of the License.
> + .
> + This library is distributed in the hope that it will be useful, but WITHOUT
> + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
> FITNESS
> + FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
> + details.
> + .
> + You should have received a copy of the GNU Lesser General Public License 
> along
> + with this library; if not, write to the Free Software Foundation, Inc., 51
> + Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> + .
> + On Debian systems, the complete text of the GNU Lesser General Public 
> License
> + (LGPL) may be found in /usr/share/common-licenses/LGPL-2.
> +
> +License: Apache-2.0
> + Licensed under the Apache License, Version 2.0 (the "License");
> + you may not use this file except in compliance with the License.
> + You may obtain a copy of the License at
> + .
> +    http://www.apache.org/licenses/LICENSE-2.0
> + .
> + Unless required by applicable law or agreed to in writing, software
> + distributed under the License is distributed on an "AS IS" BASIS,
> + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + See the License for the specific language governing permissions and
> + limitations under the License.
> + .
> + On Debian-based systems the full text of the Apache version 2.0 license
> + can be found in `/usr/share/common-licenses/Apache-2.0'.
> diff --git a/debian/flaky-tests-amd64.txt b/debian/flaky-tests-amd64.txt
> new file mode 100644
> index 000000000..cfe5d8c66
> --- /dev/null
> +++ b/debian/flaky-tests-amd64.txt
> @@ -0,0 +1,6 @@
> +send gratuitous arp on localnet
> +policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR
> +ACLs on Port Groups
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +northd ssl file change
> diff --git a/debian/flaky-tests-arm64.txt b/debian/flaky-tests-arm64.txt
> new file mode 100644
> index 000000000..996d0537e
> --- /dev/null
> +++ b/debian/flaky-tests-arm64.txt
> @@ -0,0 +1,5 @@
> +ovn-controller incremental processing
> +nb_cfg timestamp
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +ipsec -- basic configuration
> diff --git a/debian/flaky-tests-armel.txt b/debian/flaky-tests-armel.txt
> new file mode 100644
> index 000000000..6ce03bb10
> --- /dev/null
> +++ b/debian/flaky-tests-armel.txt
> @@ -0,0 +1,7 @@
> +policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR
> +1 LR with distributed router gateway port
> +ACL conjunction
> +IP packet buffering
> +test transport zones
> +lflow cache for conjunctions
> +nb_cfg timestamp
> diff --git a/debian/flaky-tests-armhf.txt b/debian/flaky-tests-armhf.txt
> new file mode 100644
> index 000000000..43654f3ae
> --- /dev/null
> +++ b/debian/flaky-tests-armhf.txt
> @@ -0,0 +1,9 @@
> +policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR
> +ovn-controller incremental processing
> +ACL conjunction
> +neighbor update on same HV
> +nb_cfg timestamp
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +ovn-ic -- gateway sync
> +ipsec -- basic configuration
> diff --git a/debian/flaky-tests-i386.txt b/debian/flaky-tests-i386.txt
> new file mode 100644
> index 000000000..b82300de9
> --- /dev/null
> +++ b/debian/flaky-tests-i386.txt
> @@ -0,0 +1,8 @@
> +policy-based routing: 1 HVs, 2 LSs, 1 lport/LS, 1 LR
> +nb_cfg timestamp
> +ARP replies for SNAT external ips
> +conflict ACLs with address set
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +ovn-ic -- gateway sync
> +ipsec -- basic configuration
> diff --git a/debian/flaky-tests-mips64el.txt b/debian/flaky-tests-mips64el.txt
> new file mode 100644
> index 000000000..e67e2c4ca
> --- /dev/null
> +++ b/debian/flaky-tests-mips64el.txt
> @@ -0,0 +1,5 @@
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +ovn-ic -- gateway sync
> +ipsec -- basic configuration
> +nb_cfg timestamp
> diff --git a/debian/flaky-tests-mipsel.txt b/debian/flaky-tests-mipsel.txt
> new file mode 100644
> index 000000000..00d383572
> --- /dev/null
> +++ b/debian/flaky-tests-mipsel.txt
> @@ -0,0 +1,21 @@
> +vtep: 3 HVs, 1 VIFs/HV, 1 GW, 1 LS
> +policy-based routing: 1 HVs, 2 LSs, 1 lport/LS, 1 LR
> +policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR
> +send gratuitous arp for nat ips in localnet
> +send gratuitous arp for NAT rules on distributed router
> +vlan traffic for external network with distributed router gateway port
> +send gratuitous ARP for NAT rules on HA distributed router
> +ACL conjunction
> +router - check packet length - icmp defrag
> +router - check packet length - icmp defrag
> +IP packet buffering
> +test transport zones
> +Load balancer health checks
> +interconnection
> +nb_cfg timestamp
> +conflict ACLs with address set
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +northd ssl file change
> +ovn-ic -- gateway sync
> +ipsec -- basic configuration
> diff --git a/debian/flaky-tests-ppc64el.txt b/debian/flaky-tests-ppc64el.txt
> new file mode 100644
> index 000000000..6e089b6cb
> --- /dev/null
> +++ b/debian/flaky-tests-ppc64el.txt
> @@ -0,0 +1,6 @@
> +options:requested-chassis for logical port
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +northd ssl file change
> +ovn-ic -- gateway sync
> +ipsec -- basic configuration
> diff --git a/debian/flaky-tests-riscv64.txt b/debian/flaky-tests-riscv64.txt
> new file mode 100644
> index 000000000..50570ab80
> --- /dev/null
> +++ b/debian/flaky-tests-riscv64.txt
> @@ -0,0 +1,6 @@
> +send gratuitous arp on localnet
> +1 LR with distributed router gateway port
> +router - check packet length - icmp defrag
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +ipsec -- basic configuration
> diff --git a/debian/flaky-tests-s390x.txt b/debian/flaky-tests-s390x.txt
> new file mode 100644
> index 000000000..a642063d9
> --- /dev/null
> +++ b/debian/flaky-tests-s390x.txt
> @@ -0,0 +1,5 @@
> +options:requested-chassis for logical port
> +ACLs on Port Groups
> +multi-vtep SB Chassis encap updates
> +ACL with Port Group conjunction flow efficiency
> +ipsec -- basic configuration
> diff --git a/debian/gbp.conf b/debian/gbp.conf
> new file mode 100644
> index 000000000..438b3fa8d
> --- /dev/null
> +++ b/debian/gbp.conf
> @@ -0,0 +1,13 @@
> +[DEFAULT]
> +debian-branch = main
> +upstream-branch = upstream
> +pristine-tar = True
> +components = ['ovn-vif']
> +
> +[import-orig]
> +upstream-vcs-tag = v%(version)s
> +
> +[dch]
> +multimaint-merge = True
> +customizations=/usr/share/doc/git-buildpackage/examples/wrap_cl.py
> +git-log=--first-parent
> diff --git a/debian/not-installed b/debian/not-installed
> new file mode 100644
> index 000000000..e213b139d
> --- /dev/null
> +++ b/debian/not-installed
> @@ -0,0 +1,5 @@
> +# The OVN library and headers are currently not considered ABI/API stable.
> +# If the need arises to build sibling projects we should probably provide an
> +# ovn-source package.
> +usr/include/*
> +usr/lib/*
> diff --git a/debian/ovn-central.default b/debian/ovn-central.default
> new file mode 100644
> index 000000000..7cea13e50
> --- /dev/null
> +++ b/debian/ovn-central.default
> @@ -0,0 +1,5 @@
> +# This is a POSIX shell fragment                -*- sh -*-
> +
> +# OVN_CTL_OPTS: Extra options to pass to ovs-ctl.  This is, for example,
> +# a suitable place to specify --ovn-northd-wrapper=valgrind.
> +# OVN_CTL_OPTS=
> diff --git a/debian/ovn-central.install b/debian/ovn-central.install
> new file mode 100644
> index 000000000..095ca7cfa
> --- /dev/null
> +++ b/debian/ovn-central.install
> @@ -0,0 +1,3 @@
> +usr/bin/ovn-northd
> +usr/share/ovn/ovn-nb.ovsschema
> +usr/share/ovn/ovn-sb.ovsschema
> diff --git a/debian/ovn-central.ovn-northd.service 
> b/debian/ovn-central.ovn-northd.service
> new file mode 100644
> index 000000000..09c600016
> --- /dev/null
> +++ b/debian/ovn-central.ovn-northd.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=Open Virtual Network central control daemon
> +After=network.target ovn-nb-ovsdb.service ovn-sb-ovsdb.service
> +PartOf=ovn-central.service
> +DefaultDependencies=no
> +
> +[Service]
> +Type=forking
> +EnvironmentFile=-/etc/default/ovn-central
> +PIDFile=%t/ovn/ovn-northd.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl start_northd --ovn-manage-ovsdb=no 
> --no-monitor $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_northd --no-monitor
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> diff --git a/debian/ovn-central.ovn-ovsdb-server-nb.service 
> b/debian/ovn-central.ovn-ovsdb-server-nb.service
> new file mode 100644
> index 000000000..81f6c75a3
> --- /dev/null
> +++ b/debian/ovn-central.ovn-ovsdb-server-nb.service
> @@ -0,0 +1,18 @@
> +[Unit]
> +Description=Open vSwitch database server for OVN Northbound database
> +After=network.target
> +PartOf=ovn-central.service
> +DefaultDependencies=no
> +
> +[Service]
> +Type=simple
> +EnvironmentFile=-/etc/default/ovn-central
> +PIDFile=%t/ovn/ovnnb_db.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl run_nb_ovsdb $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_nb_ovsdb
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> +
> +[Install]
> +Alias=ovn-nb-ovsdb.service
> diff --git a/debian/ovn-central.ovn-ovsdb-server-sb.service 
> b/debian/ovn-central.ovn-ovsdb-server-sb.service
> new file mode 100644
> index 000000000..3aa840d2f
> --- /dev/null
> +++ b/debian/ovn-central.ovn-ovsdb-server-sb.service
> @@ -0,0 +1,18 @@
> +[Unit]
> +Description=Open vSwitch database server for OVN Southbound database
> +After=network.target
> +PartOf=ovn-central.service
> +DefaultDependencies=no
> +
> +[Service]
> +Type=simple
> +EnvironmentFile=-/etc/default/ovn-central
> +PIDFile=%t/run/ovn/ovnsb_db.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl run_sb_ovsdb $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_sb_ovsdb
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> +
> +[Install]
> +Alias=ovn-sb-ovsdb.service
> diff --git a/debian/ovn-central.postrm b/debian/ovn-central.postrm
> new file mode 100644
> index 000000000..3b3483fc3
> --- /dev/null
> +++ b/debian/ovn-central.postrm
> @@ -0,0 +1,47 @@
> +#!/bin/sh
> +# postrm script for ovn-central
> +#
> +# see: dh_installdeb(1)
> +
> +set -e
> +
> +# summary of how this script can be called:
> +#        * <postrm> `remove'
> +#        * <postrm> `purge'
> +#        * <old-postrm> `upgrade' <new-version>
> +#        * <new-postrm> `failed-upgrade' <old-version>
> +#        * <new-postrm> `abort-install'
> +#        * <new-postrm> `abort-install' <old-version>
> +#        * <new-postrm> `abort-upgrade' <old-version>
> +#        * <disappearer's-postrm> `disappear' <overwriter>
> +#          <overwriter-version>
> +# for details, see http://www.debian.org/doc/debian-policy/ or
> +# the debian-policy package
> +
> +
> +case "$1" in
> +    purge)
> +        rm -f /etc/openvswitch/ovnnb.db*
> +        rm -f /etc/openvswitch/.ovnnb.db.~lock~
> +        rm -f /etc/openvswitch/ovnsb.db*
> +        rm -f /etc/openvswitch/.ovnsb.db.~lock~
> +        rm -f /var/log/openvswitch/ovn-northd.log* || true
> +        ;;
> +
> +    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
> +        ;;
> +
> +    *)
> +        echo "postrm called with unknown argument \`$1'" >&2
> +        exit 1
> +        ;;
> +esac
> +
> +# dh_installdeb will replace this with shell code automatically
> +# generated by other debhelper scripts.
> +
> +#DEBHELPER#
> +
> +exit 0
> +
> +
> diff --git a/debian/ovn-central.service b/debian/ovn-central.service
> new file mode 100644
> index 000000000..aead7eae6
> --- /dev/null
> +++ b/debian/ovn-central.service
> @@ -0,0 +1,16 @@
> +[Unit]
> +Description=Open Virtual Network central components
> +After=network.target
> +Requires=network.target
> +Wants=ovn-northd.service
> +Wants=ovn-ovsdb-server-sb.service
> +Wants=ovn-ovsdb-server-nb.service
> +
> +[Service]
> +Type=oneshot
> +ExecStart=/bin/true
> +ExecStop=/bin/true
> +RemainAfterExit=yes
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/debian/ovn-common.docs b/debian/ovn-common.docs
> new file mode 100644
> index 000000000..6d5ee1d05
> --- /dev/null
> +++ b/debian/ovn-common.docs
> @@ -0,0 +1 @@
> +NOTICE
> diff --git a/debian/ovn-common.install b/debian/ovn-common.install
> new file mode 100644
> index 000000000..52e9e0050
> --- /dev/null
> +++ b/debian/ovn-common.install
> @@ -0,0 +1,32 @@
> +usr/bin/ovn-appctl
> +usr/bin/ovn_detrace.py
> +usr/bin/ovn-detrace
> +usr/bin/ovn-nbctl
> +usr/bin/ovn-sbctl
> +/usr/bin/ovn-ic-nbctl
> +/usr/bin/ovn-ic-sbctl
> +usr/bin/ovn-trace
> +usr/share/ovn/bugtool-plugins/network-status/ovn.xml
> +usr/share/ovn/scripts/ovn-ctl
> +usr/share/ovn/scripts/ovn-lib
> +usr/share/ovn/scripts/ovndb-servers.ocf
> +usr/share/ovn/scripts/ovn-bugtool-nbctl-show
> +usr/share/ovn/scripts/ovn-bugtool-sbctl-lflow-list
> +usr/share/ovn/scripts/ovn-bugtool-sbctl-show
> +usr/share/man/man1/ovn-detrace.1
> +usr/share/man/man5/ovn-ic-nb.5
> +usr/share/man/man5/ovn-ic-sb.5
> +usr/share/man/man5/ovn-nb.5
> +usr/share/man/man5/ovn-sb.5
> +usr/share/man/man7/ovn-architecture.7
> +usr/share/man/man8/ovn-appctl.8
> +usr/share/man/man8/ovn-controller-vtep.8
> +usr/share/man/man8/ovn-controller.8
> +usr/share/man/man8/ovn-ctl.8
> +usr/share/man/man8/ovn-ic-nbctl.8
> +usr/share/man/man8/ovn-ic-sbctl.8
> +usr/share/man/man8/ovn-ic.8
> +usr/share/man/man8/ovn-nbctl.8
> +usr/share/man/man8/ovn-northd.8
> +usr/share/man/man8/ovn-sbctl.8
> +usr/share/man/man8/ovn-trace.8
> diff --git a/debian/ovn-common.logrotate b/debian/ovn-common.logrotate
> new file mode 100644
> index 000000000..a351ec303
> --- /dev/null
> +++ b/debian/ovn-common.logrotate
> @@ -0,0 +1,22 @@
> +# Copyright (C) 2019 Red Hat, Inc.
> +#
> +# Copying and distribution of this file, with or without modification,
> +# are permitted in any medium without royalty provided the copyright
> +# notice and this notice are preserved.  This file is offered as-is,
> +# without warranty of any kind.
> +
> +/var/log/ovn/*.log {
> +    su root root
> +    daily
> +    compress
> +    sharedscripts
> +    missingok
> +    postrotate
> +        # Tell OVN daemons to reopen their log files
> +        if [ -d /var/run/ovn ]; then
> +            for ctl in /var/run/ovn/*.ctl; do
> +                ovs-appctl -t "$ctl" vlog/reopen 2>/dev/null || :
> +            done
> +        fi
> +    endscript
> +}
> diff --git a/debian/ovn-common.postinst b/debian/ovn-common.postinst
> new file mode 100644
> index 000000000..588044fbc
> --- /dev/null
> +++ b/debian/ovn-common.postinst
> @@ -0,0 +1,24 @@
> +#!/bin/sh
> +# postinst script for ovn-common
> +#
> +# see: dh_installdeb(1)
> +
> +set -e
> +
> +case "$1" in
> +    configure)
> +        mkdir -p /usr/lib/ocf/resource.d/ovn
> +        ln -sf /usr/share/openvswitch/scripts/ovndb-servers.ocf 
> /usr/lib/ocf/resource.d/ovn/ovndb-servers
> +        ;;
> +    abort-upgrade|abort-remove|abort-deconfigure)
> +        ;;
> +
> +    *)
> +        echo "postinst called with unknown argument \`$1'" >&2
> +        exit 1
> +        ;;
> +esac
> +
> +#DEBHELPER#
> +
> +exit 0
> diff --git a/debian/ovn-common.postrm b/debian/ovn-common.postrm
> new file mode 100644
> index 000000000..9face726b
> --- /dev/null
> +++ b/debian/ovn-common.postrm
> @@ -0,0 +1,23 @@
> +#!/bin/sh
> +# postrm script for openvswitch-testcontroller
> +#
> +# see: dh_installdeb(1)
> +
> +set -e
> +
> +case "$1" in
> +    purge|remove)
> +        rm -rf /usr/lib/ocf/resource.d/ovn
> +        ;;
> +    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
> +        ;;
> +
> +    *)
> +        echo "postrm called with unknown argument \`$1'" >&2
> +        exit 1
> +        ;;
> +esac
> +
> +#DEBHELPER#
> +
> +exit 0
> diff --git a/debian/ovn-controller-vtep.install 
> b/debian/ovn-controller-vtep.install
> new file mode 100644
> index 000000000..1d208f37e
> --- /dev/null
> +++ b/debian/ovn-controller-vtep.install
> @@ -0,0 +1 @@
> +usr/bin/ovn-controller-vtep
> diff --git a/debian/ovn-controller-vtep.service 
> b/debian/ovn-controller-vtep.service
> new file mode 100644
> index 000000000..d51e75277
> --- /dev/null
> +++ b/debian/ovn-controller-vtep.service
> @@ -0,0 +1,16 @@
> +[Unit]
> +Description=Open Virtual Network VTEP gateway controller daemon
> +After=openvswitch-switch.service
> +Requires=openvswitch-switch.service
> +
> +[Service]
> +Type=forking
> +PIDFile=%t/ovn/ovn-controller-vtep.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl start_controller_vtep --no-monitor 
> $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_controller_vtep --no-monitor
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/debian/ovn-doc.doc-base b/debian/ovn-doc.doc-base
> new file mode 100644
> index 000000000..c7192ebdb
> --- /dev/null
> +++ b/debian/ovn-doc.doc-base
> @@ -0,0 +1,9 @@
> +Document: ovn-doc
> +Title: Open Virtual Network Documentation
> +Author: N/A
> +Abstract: Sphinx documentation for Open Virtual Network
> +Section: Network/Communication
> +
> +Format: HTML
> +Index: /usr/share/doc/ovn-doc/html/index.html
> +Files: /usr/share/doc/ovn-doc/html/*
> diff --git a/debian/ovn-doc.install b/debian/ovn-doc.install
> new file mode 100644
> index 000000000..4cfd153cf
> --- /dev/null
> +++ b/debian/ovn-doc.install
> @@ -0,0 +1 @@
> +Documentation/_build/html/* /usr/share/doc/ovn-doc/html/
> diff --git a/debian/ovn-docker.install b/debian/ovn-docker.install
> new file mode 100644
> index 000000000..583306732
> --- /dev/null
> +++ b/debian/ovn-docker.install
> @@ -0,0 +1,2 @@
> +usr/bin/ovn-docker-overlay-driver
> +usr/bin/ovn-docker-underlay-driver
> diff --git a/debian/ovn-host.default b/debian/ovn-host.default
> new file mode 100644
> index 000000000..7fd54efda
> --- /dev/null
> +++ b/debian/ovn-host.default
> @@ -0,0 +1,5 @@
> +# This is a POSIX shell fragment                -*- sh -*-
> +
> +# OVN_CTL_OPTS: Extra options to pass to ovs-ctl.  This is, for example,
> +# a suitable place to specify --ovn-controller-wrapper=valgrind.
> +# OVN_CTL_OPTS=
> diff --git a/debian/ovn-host.install b/debian/ovn-host.install
> new file mode 100644
> index 000000000..d2de82fd9
> --- /dev/null
> +++ b/debian/ovn-host.install
> @@ -0,0 +1 @@
> +usr/bin/ovn-controller
> diff --git a/debian/ovn-host.ovn-controller.service 
> b/debian/ovn-host.ovn-controller.service
> new file mode 100644
> index 000000000..a41e77d75
> --- /dev/null
> +++ b/debian/ovn-host.ovn-controller.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=Open Virtual Network host control daemon
> +After=network.target openvswitch-switch.service
> +PartOf=ovn-host.service
> +DefaultDependencies=no
> +
> +[Service]
> +Type=forking
> +EnvironmentFile=-/etc/default/ovn-host
> +PIDFile=%t/ovn/ovn-controller.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl start_controller 
> --ovn-manage-ovsdb=no --no-monitor $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_controller --no-monitor
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> diff --git a/debian/ovn-host.postrm b/debian/ovn-host.postrm
> new file mode 100644
> index 000000000..9d17ef966
> --- /dev/null
> +++ b/debian/ovn-host.postrm
> @@ -0,0 +1,43 @@
> +#!/bin/sh
> +# postrm script for ovn-host
> +#
> +# see: dh_installdeb(1)
> +
> +set -e
> +
> +# summary of how this script can be called:
> +#        * <postrm> `remove'
> +#        * <postrm> `purge'
> +#        * <old-postrm> `upgrade' <new-version>
> +#        * <new-postrm> `failed-upgrade' <old-version>
> +#        * <new-postrm> `abort-install'
> +#        * <new-postrm> `abort-install' <old-version>
> +#        * <new-postrm> `abort-upgrade' <old-version>
> +#        * <disappearer's-postrm> `disappear' <overwriter>
> +#          <overwriter-version>
> +# for details, see http://www.debian.org/doc/debian-policy/ or
> +# the debian-policy package
> +
> +
> +case "$1" in
> +    purge)
> +        rm -f /var/log/openvswitch/ovn-controller.log* || true
> +        ;;
> +
> +    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
> +        ;;
> +
> +    *)
> +        echo "postrm called with unknown argument \`$1'" >&2
> +        exit 1
> +        ;;
> +esac
> +
> +# dh_installdeb will replace this with shell code automatically
> +# generated by other debhelper scripts.
> +
> +#DEBHELPER#
> +
> +exit 0
> +
> +
> diff --git a/debian/ovn-host.service b/debian/ovn-host.service
> new file mode 100644
> index 000000000..b524888fd
> --- /dev/null
> +++ b/debian/ovn-host.service
> @@ -0,0 +1,14 @@
> +[Unit]
> +Description=Open Virtual Network host components
> +After=network.target
> +Requires=network.target
> +Wants=ovn-controller.service
> +
> +[Service]
> +Type=oneshot
> +ExecStart=/bin/true
> +ExecStop=/bin/true
> +RemainAfterExit=yes
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/debian/ovn-ic-db.install b/debian/ovn-ic-db.install
> new file mode 100644
> index 000000000..a4d50002e
> --- /dev/null
> +++ b/debian/ovn-ic-db.install
> @@ -0,0 +1,2 @@
> +/usr/share/ovn/ovn-ic-nb.ovsschema
> +/usr/share/ovn/ovn-ic-sb.ovsschema
> diff --git a/debian/ovn-ic-db.ovn-ovsdb-server-ic-nb.service 
> b/debian/ovn-ic-db.ovn-ovsdb-server-ic-nb.service
> new file mode 100644
> index 000000000..193024daf
> --- /dev/null
> +++ b/debian/ovn-ic-db.ovn-ovsdb-server-ic-nb.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=Open vSwitch database server for OVN IC Northbound database
> +After=network.target
> +PartOf=ovn-ic-db.service
> +DefaultDependencies=no
> +
> +[Service]
> +Type=simple
> +EnvironmentFile=-/etc/default/ovn-ic
> +PIDFile=%t/ovn/ovn_ic_nb_db.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl run_ic_nb_ovsdb $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_ic_nb_ovsdb
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> diff --git a/debian/ovn-ic-db.ovn-ovsdb-server-ic-sb.service 
> b/debian/ovn-ic-db.ovn-ovsdb-server-ic-sb.service
> new file mode 100644
> index 000000000..714748325
> --- /dev/null
> +++ b/debian/ovn-ic-db.ovn-ovsdb-server-ic-sb.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=Open vSwitch database server for OVN IC Southbound database
> +After=network.target
> +PartOf=ovn-ic-db.service
> +DefaultDependencies=no
> +
> +[Service]
> +Type=simple
> +EnvironmentFile=-/etc/default/ovn-ic
> +PIDFile=%t/ovn/ovn_ic_sb_db.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl run_ic_sb_ovsdb $OVN_CTL_OPTS
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_ic_sb_ovsdb
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> diff --git a/debian/ovn-ic-db.service b/debian/ovn-ic-db.service
> new file mode 100644
> index 000000000..b116bc79d
> --- /dev/null
> +++ b/debian/ovn-ic-db.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=Open Virtual Network interconnection databases
> +After=network.target
> +Requires=network.target
> +Wants=ovn-ovsdb-server-ic-sb.service
> +Wants=ovn-ovsdb-server-ic-nb.service
> +
> +[Service]
> +Type=oneshot
> +ExecStart=/bin/true
> +ExecStop=/bin/true
> +RemainAfterExit=yes
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/debian/ovn-ic.install b/debian/ovn-ic.install
> new file mode 100644
> index 000000000..b15508259
> --- /dev/null
> +++ b/debian/ovn-ic.install
> @@ -0,0 +1 @@
> +/usr/bin/ovn-ic
> diff --git a/debian/ovn-ic.service b/debian/ovn-ic.service
> new file mode 100644
> index 000000000..07974285f
> --- /dev/null
> +++ b/debian/ovn-ic.service
> @@ -0,0 +1,16 @@
> +[Unit]
> +Description=Open Virtual Network interconnection controller
> +After=network.target
> +Requires=network.target
> +
> +[Service]
> +Type=forking
> +PIDFile=%t/ovn/ovn-ic.pid
> +ExecStart=/usr/share/ovn/scripts/ovn-ctl start_ic --no-monitor
> +ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_ic
> +Restart=on-failure
> +LimitNOFILE=65535
> +TimeoutStopSec=15
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/debian/rules b/debian/rules
> new file mode 100755
> index 000000000..4596afb49
> --- /dev/null
> +++ b/debian/rules
> @@ -0,0 +1,104 @@
> +#!/usr/bin/make -f
> +# -*- makefile -*-
> +#export DH_VERBOSE=1
> +export DEB_BUILD_MAINT_OPTIONS = hardening=+all
> +
> +%:
> +       dh $@ --with autoreconf,python3,sphinxdoc
> +
> +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
> +PARALLEL = -j$(patsubst parallel=%,%,$(filter 
> parallel=%,$(DEB_BUILD_OPTIONS)))
> +else
> +PARALLEL =
> +endif
> +
> +override_dh_auto_configure:
> +       # Configure OVS before OVN
> +       test -d $(CURDIR)/ovs || mkdir ovs
> +       cd ovs && tar -xzf /usr/src/openvswitch/openvswitch.tar.gz 
> --strip-components=1
> +       cd ovs && ./configure --enable-ssl --localstatedir=/var 
> --sysconfdir=/etc --prefix=/usr && make $(PARALLEL)
> +       # Configure OVN to allow building OVN VIF
> +       ./boot.sh && ./configure \
> +               --prefix=/usr \
> +               --localstatedir=/var \
> +               --sysconfdir=/etc \
> +               --with-dbdir=/var/lib/ovn \
> +               --with-ovs-source=$(CURDIR)/ovs \
> +               --enable-ssl
> +       # Configure and build OVN VIF
> +       cd ovn-vif && \
> +               ./boot.sh && \
> +               ./configure \
> +                       --with-ovs-source=$(CURDIR)/ovs \
> +                       --with-ovn-source=$(CURDIR) \
> +                       --enable-plug-representor && \
> +               make $(PARALLEL)
> +       # Use dh_auto_configure to build OVN
> +       dh_auto_configure -- \
> +               --prefix=/usr \
> +               --localstatedir=/var \
> +               --sysconfdir=/etc \
> +               --with-dbdir=/var/lib/ovn \
> +               --with-ovs-source=$(CURDIR)/ovs \
> +               --enable-ssl \
> +               --with-vif-plug-provider=$(CURDIR)/ovn-vif
> +       $(MAKE) debian/copyright
> +
> +TEST_LIST = $(shell \
> +                $(CURDIR)/debian/testlist.py \
> +                $(CURDIR)/debian/flaky-tests-$(DEB_HOST_ARCH).txt \
> +                $(CURDIR)/tests/testsuite)
> +
> +override_dh_auto_test:
> +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
> +       if $(MAKE) check TESTSUITEFLAGS='$(PARALLEL) $(TEST_LIST)' || \
> +                $(MAKE) check TESTSUITEFLAGS='--recheck'; then :; \
> +       else \
> +               cat tests/testsuite.log; \
> +               exit 1; \
> +       fi
> +endif # nocheck
> +
> +override_dh_auto_build:
> +       cd ovs && $(MAKE) $(PARALLEL)
> +       $(MAKE) $(PARALLEL)
> +
> +override_dh_auto_clean:
> +       dh_auto_clean
> +       cd ovn-vif && make distclean | :
> +       rm -rf ovs
> +
> +override_dh_installinit:
> +       # Package does not ship any init.d files
> +       dh_installinit --no-scripts
> +
> +override_dh_installsystemd:
> +       dh_installsystemd --restart-after-upgrade -povn-central 
> --name=ovn-northd
> +       dh_installsystemd --restart-after-upgrade -povn-central 
> --name=ovn-ovsdb-server-sb
> +       dh_installsystemd --restart-after-upgrade -povn-central 
> --name=ovn-ovsdb-server-nb
> +       dh_installsystemd --restart-after-upgrade -povn-ic-db   
> --name=ovn-ovsdb-server-ic-sb
> +       dh_installsystemd --restart-after-upgrade -povn-ic-db   
> --name=ovn-ovsdb-server-ic-nb
> +       dh_installsystemd --restart-after-upgrade -povn-host    
> --name=ovn-controller
> +       dh_installsystemd --restart-after-upgrade
> +
> +override_dh_python3:
> +       dh_python3 --shebang=/usr/bin/python3
> +
> +# Helper target for creating snapshots from upstream git
> +DATE=$(shell date +%Y%m%d)
> +# Upstream branch to track
> +BRANCH=main
> +VERSION=22.09.0
> +
> +get-orig-snapshot:
> +       rm -Rf ovn-upstream ovn-vif-upstream
> +       git clone --branch $(BRANCH) --depth 1 https://github.com/ovn-org/ovn 
> ovn-upstream
> +       git clone --branch $(BRANCH) --depth 1 
> https://github.com/ovn-org/ovn-vif ovn-vif-upstream
> +       cd ovn-upstream && \
> +               export COMMIT=`git rev-parse --short HEAD` && \
> +               git archive --format tgz 
> --prefix=ovn-$(VERSION)~git$(DATE).$$COMMIT/ \
> +                       -o 
> ../../ovn_$(VERSION)~git$(DATE).$$COMMIT.orig.tar.gz $(BRANCH) && \
> +               cd ../ovn-vif-upstream && \
> +               git archive --format tgz 
> --prefix=ovn-vif-$(VERSION)~git$(DATE).$$COMMIT/ \
> +                       -o 
> ../../ovn_$(VERSION)~git$(DATE).$$COMMIT.orig-ovn-vif.tar.gz $(BRANCH)
> +       rm -Rf ovn-upstream ovn-vif-upstream
> diff --git a/debian/source/format b/debian/source/format
> new file mode 100644
> index 000000000..163aaf8d8
> --- /dev/null
> +++ b/debian/source/format
> @@ -0,0 +1 @@
> +3.0 (quilt)
> diff --git a/debian/source/include-binaries b/debian/source/include-binaries
> new file mode 100644
> index 000000000..2dfb2fe55
> --- /dev/null
> +++ b/debian/source/include-binaries
> @@ -0,0 +1 @@
> +ovn-vif/Documentation/_static/logo.png
> diff --git a/debian/testlist.py b/debian/testlist.py
> new file mode 100755
> index 000000000..24d2ae9c5
> --- /dev/null
> +++ b/debian/testlist.py
> @@ -0,0 +1,72 @@
> +#!/usr/bin/env python3
> +import enum
> +import itertools
> +import os
> +import sys
> +
> +
> +if len(sys.argv) < 3:
> +    print(
> +        "usage: {} skipdescriptionlist testsuite\n"
> +        "\n"
> +        "This program reads two files, a skiplist containing the \n"
> +        "description of tests to skip separated by newline, and a \n"
> +        "generated testsuite script.\n"
> +        "\n"
> +        "From this it produces string with range of tests to execute \n"
> +        "which can be provided to the testsuite 
> script.\n".format(sys.argv[0]),
> +        file=sys.stderr,
> +    )
> +    sys.exit(os.EX_USAGE)
> +
> +
> +SKIP_TEST_STRINGS = []
> +with open(sys.argv[1]) as fin:
> +    SKIP_TEST_STRINGS = [line.rstrip() for line in fin.readlines()]
> +
> +
> [email protected]
> +class State(enum.Enum):
> +    INIT = enum.auto()
> +    AT_HELP_ALL = enum.auto()
> +
> +
> +SKIP_TESTS = set()
> +TESTS = set()
> +with open(sys.argv[2]) as fin:
> +    state = State.INIT
> +    last_test = 0
> +    for line in fin.readlines():
> +        if state == State.INIT:
> +            if not line.startswith('at_help_all="'):
> +                continue
> +            else:
> +                state = State.AT_HELP_ALL
> +                data = line.split('"')[1].rstrip().split(";")
> +        elif state == State.AT_HELP_ALL:
> +            if line.startswith('"'):
> +                break
> +            data = line.rstrip().split(";")
> +        test_nr = int(data[0])
> +        if last_test < test_nr:
> +            last_test = test_nr
> +        for skip_string in SKIP_TEST_STRINGS:
> +            if skip_string in data[2]:
> +                SKIP_TESTS.add(test_nr)
> +            else:
> +                TESTS.add(test_nr)
> +
> +
> +def ranges(testlist):
> +    for a, b in itertools.groupby(
> +        enumerate(list(testlist)), lambda pair: pair[1] - pair[0]
> +    ):
> +        b = list(b)
> +        yield b[0][1], b[-1][1]
> +
> +
> +testranges = [
> +    "{}-{}".format(testrange[0], testrange[1])
> +    for testrange in ranges(TESTS - SKIP_TESTS)
> +]
> +print(" ".join(testranges))
> diff --git a/debian/watch b/debian/watch
> new file mode 100644
> index 000000000..4831f3456
> --- /dev/null
> +++ b/debian/watch
> @@ -0,0 +1,5 @@
> +version=4
> +opts=filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/ovn-$1\.tar\.gz/ \
> +  https://github.com/ovn-org/ovn/tags .*/v?(\d\S+)\.tar\.gz
> +opts="filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/ovn-vif-$1\.tar\.gz/, 
> component=ovn-vif" \
> +  https://github.com/ovn-org/ovn-vif/tags .*/v?(\d\S+)\.tar\.gz
> --
> 2.36.1
>
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


-- 
Frode Nordahl
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to