Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37046937
en ru br
Репозитории ALT

Группа :: Система/Библиотеки
Пакет: libvzctl

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: libvzctl-7.0.730.patch
Скачать


 .gear/rules                                        |   2 +
 .../tags/cd2272e4cfb943e89b1628c3af34b74caee04493  |   6 +
 .gear/tags/list                                    |   1 +
 dists/Makefile.am                                  |   4 +
 dists/alt.conf                                     |  36 +++
 dists/scripts/alt-add_ip.sh                        | 186 +++++++++++
 dists/scripts/alt-add_netif.sh                     | 259 +++++++++++++++
 dists/scripts/alt-del_ip.sh                        |  94 ++++++
 dists/scripts/alt-del_netif.sh                     |  57 ++++
 dists/scripts/set_dns.sh                           |  51 +--
 include/libvzctl.h                                 |   4 +-
 lib/bindmount.c                                    |   2 +
 lib/disk_configure.c                               |   2 +-
 lib/env.c                                          |   2 +-
 lib/env_configure.c                                |   2 +-
 lib/exec.c                                         |   4 +-
 lib/net.c                                          |   2 +-
 lib/util.c                                         |   6 +-
 lib/vztypes.h                                      |   3 +-
 libvzctl.spec                                      | 356 +++++++++++++++++++++
 paths.am                                           |   9 +-
 scripts/vz-announce_ips.in                         |   2 +-
 scripts/vz-cpt.in                                  |   4 +-
 scripts/vz-functions.in                            |  16 +-
 scripts/vz-rst.in                                  |   4 +-
 scripts/vz-setrate.in                              |   2 +-
 scripts/vz-stop.in                                 |   2 +-
 scripts/vznetcfg.in                                |   9 +-
 28 files changed, 1068 insertions(+), 59 deletions(-)
diff --git a/.gear/rules b/.gear/rules
new file mode 100644
index 0000000..26340af
--- /dev/null
+++ b/.gear/rules
@@ -0,0 +1,2 @@
+tar: v@version@:.
+diff: v@version@:. . name=@name@-@version@.patch
diff --git a/.gear/tags/cd2272e4cfb943e89b1628c3af34b74caee04493 b/.gear/tags/cd2272e4cfb943e89b1628c3af34b74caee04493
new file mode 100644
index 0000000..a7de1fc
--- /dev/null
+++ b/.gear/tags/cd2272e4cfb943e89b1628c3af34b74caee04493
@@ -0,0 +1,6 @@
+object aea5242a32d9cccc3cd170d1eef4b7008b8f58d0
+type commit
+tag v7.0.730
+tagger Apache <apache@kojihub.eng.sw.ru> 1678297753 +0300
+
+AUTO v7.0.730 tag
diff --git a/.gear/tags/list b/.gear/tags/list
new file mode 100644
index 0000000..ef9b2b3
--- /dev/null
+++ b/.gear/tags/list
@@ -0,0 +1 @@
+cd2272e4cfb943e89b1628c3af34b74caee04493 v7.0.730
diff --git a/dists/Makefile.am b/dists/Makefile.am
index 2c599ed..be9b268 100644
--- a/dists/Makefile.am
+++ b/dists/Makefile.am
@@ -47,6 +47,9 @@ SLACK_9x_VER = 9.0 9.1
 SLACK_VER = 10.0 10.1
 SLES_VER = 9 10 11
 
+alt:
+	$(INSTALL_DATA) $(srcdir)/alt.conf \
+		$(DESTDIR)$(distconfdir)/alt.conf
 centos:
 	$(INSTALL_DATA) $(srcdir)/redhat.conf \
 		$(DESTDIR)$(distconfdir)/centos.conf
@@ -145,6 +148,7 @@ ubuntu:
 		$(DESTDIR)$(distconfdir)/ubuntu.conf
 
 install-data-hook:\
+                   alt \
                    centos \
                    debian \
                    fedora \
diff --git a/dists/alt.conf b/dists/alt.conf
new file mode 100644
index 0000000..8a103a0
--- /dev/null
+++ b/dists/alt.conf
@@ -0,0 +1,36 @@
+# This configuration file is meant to be used with
+# the CentOS distribution kit.
+#
+# Copyright (c) 1999-2017, Parallels International GmbH
+# Copyright (c) 2018, vt@altlinux.org
+#
+# This file is part of OpenVZ libraries. OpenVZ 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
+# 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Our contact details: Parallels International GmbH, Vordergasse 59, 8200
+# Schaffhausen, Switzerland.
+
+ADD_IP=alt-add_ip.sh
+DEL_IP=alt-del_ip.sh
+NETIF_ADD=alt-add_netif.sh
+NETIF_DEL=alt-del_netif.sh
+SET_HOSTNAME=redhat-set_hostname.sh
+SET_DNS=set_dns.sh
+SET_USERPASS=set_userpass.sh
+SET_UGID_QUOTA=set_ugid_quota.sh
+POST_CREATE=postcreate.sh
+POST_MIGRATE=redhat-post_migrate.sh
+GET_V2PMIGRATE_EXCLUDES=redhat-v2pmigrate-excludes.sh
+SET_CONSOLE=set_console.sh
diff --git a/dists/scripts/alt-add_ip.sh b/dists/scripts/alt-add_ip.sh
new file mode 100755
index 0000000..a4dab1c
--- /dev/null
+++ b/dists/scripts/alt-add_ip.sh
@@ -0,0 +1,186 @@
+#!/bin/bash
+# Copyright (c) 1999-2017, Parallels International GmbH
+# Copyright (c) 2018, vt@altlinux.org
+#
+# This file is part of OpenVZ libraries. OpenVZ 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
+# 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Our contact details: Parallels International GmbH, Vordergasse 59, 8200
+# Schaffhausen, Switzerland.
+#
+# This script configure IP alias(es) inside RedHat like VPS.
+#
+# Parameters are passed in environment variables.
+# Required parameters:
+#   IP_ADDR       - IP address(es) to add
+#                   (several addresses should be divided by space)
+# Optional parameters:
+#   VE_STATE      - state of VPS; could be one of:
+#                     starting | stopping | running | stopped
+#   IPDELALL	  - delete all old interfaces
+#
+VENET_DEV=venet0
+IFCFG=/etc/net/ifaces/$VENET_DEV
+NETFILE=/etc/sysconfig/network
+HOSTFILE=/etc/hosts
+IFCFG_NETWORKD=/etc/systemd/network
+
+function setup_network()
+{
+	rm -rf $IFCFG >/dev/null 2>&1
+	put_param $NETFILE NETWORKING yes
+	if [ ! -f $HOSTFILE ]; then
+		echo "127.0.0.1 localhost.localdomain localhost" > $HOSTFILE
+	fi
+}
+
+function setup_network_networkd()
+{
+	if [ ! -f $HOSTFILE ]; then
+		echo "127.0.0.1 localhost.localdomain localhost" > $HOSTFILE
+	fi
+        echo "[Match]
+Name=${VENET_DEV}
+
+[Network]
+IPv6AcceptRA=no
+LinkLocalAddressing=no
+DefaultRouteOnDevice=yes" > $IFCFG_NETWORKD/${VENET_DEV}.network || \
+                error "Can't write to file $IFCFG_NETWORKD/${VENET_DEV}.network" $VZ_FS_NO_DISK_SPACE
+}
+
+function init_config()
+{
+	mkdir -p $IFCFG
+	echo "TYPE=eth
+DEVICE=$VENET_DEV
+BOOTPROTO=static
+ONBOOT=yes" > $IFCFG/options || \
+		error "Can't write to file $IFCFG/options" $VZ_FS_NO_DISK_SPACE
+}
+
+function add_ip6()
+{
+	local ip=$1
+	local mask=$2
+
+	put_param $IFCFG/options CONFIG_IPV6 yes
+	echo "$ip/${mask:-128}" >> $IFCFG/ipv6address || \
+		error "Can't write to file $IFCFG/ipv6address" ${VZ_FS_NO_DISK_SPACE}
+}
+
+function add_ip6_networkd()
+{
+    local ip=$1
+    local mask=$2
+    local ipe
+    local cfg=$IFCFG_NETWORKD/${VENET_DEV}.network
+
+    ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+    if grep -E "^Address=$ip/${mask:-128}" $cfg >/dev/null 2>&1; then
+        echo "$ip/${mask:-128} already exists"
+    else
+        echo "Address=$ip/${mask:-128}" >> $cfg || \
+            error "Can't write to file $cfg" ${VZ_FS_NO_DISK_SPACE}
+    fi
+}
+
+function add_ip4()
+{
+	local ip=$1
+	local mask=$2
+
+	echo "$ip/${mask:-32}" >> $IFCFG/ipv4address || \
+		error "Can't write to file $IFCFG/ipv4address" ${VZ_FS_NO_DISK_SPACE}
+	echo "default dev $VENET_DEV" >"$IFCFG/ipv4route" || \
+		error "Can't write to file $IFCFG/ipv4route" $VZ_FS_NO_DISK_SPACE
+	echo net.ipv4.conf.$VENET_DEV.promote_secondaries=1 > ${IFCFG}/sysctl.conf || \
+		error "Can't write to file $IFCFG/sysctl.conf" $VZ_FS_NO_DISK_SPACE
+}
+
+function add_ip4_networkd()
+{
+    local ip=$1
+    local mask=$2
+    local ipe
+    local cfg=$IFCFG_NETWORKD/${VENET_DEV}.network
+
+    ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+    if grep -E "^Address=$ip/${mask:-32}" $cfg >/dev/null 2>&1; then
+        echo "$ip/${mask:-32} already exists"
+    else
+        echo "Address=$ip/${mask:-32}" >> $cfg || \
+            error "Can't write to file $cfg" ${VZ_FS_NO_DISK_SPACE}
+        ip addr add $ip/${mask:-32} dev $VENET_DEV
+    fi
+}
+
+function add_ip()
+{
+	local ipm ip mask
+
+	if [ "$VE_STATE" = "starting" ]; then
+		setup_network
+	fi
+	if [ ! -d $IFCFG ]; then
+		init_config
+	fi
+	for ipm in $IP_ADDR; do
+		ip=${ipm%%/*}
+		mask=
+		if [[ "$ipm" =~ / ]]; then
+			mask=${ipm##*/}
+		fi
+		if is_ipv6 $ip; then
+			add_ip6 "$ip" "$mask"
+		else
+			add_ip4 "$ip" "$mask"
+		fi
+	done
+	ifdown $VENET_DEV 2>/dev/null
+	ifup $VENET_DEV 2>/dev/null
+}
+
+function add_ip_networkd()
+{
+	local ipm ip mask
+
+	if [ "$VE_STATE" = "starting" ]; then
+		setup_network_networkd
+	fi
+	for ipm in $IP_ADDR; do
+		ip=${ipm%%/*}
+		mask=
+		if [[ "$ipm" =~ / ]]; then
+			mask=${ipm##*/}
+		fi
+		if is_ipv6 $ip; then
+			add_ip6_networkd "$ip" "$mask"
+		else
+			add_ip4_networkd "$ip" "$mask"
+		fi
+	done
+        ip link set $VENET_DEV up
+        ip route add default dev $VENET_DEV
+}
+
+if [ -e /etc/systemd/system/dbus-org.freedesktop.network1.service -o \
+     -e /etc/systemd/system/multi-user.target.wants/systemd-networkd.service -o \
+     -e /lib/systemd/system/multi-user.target.wants/systemd-networkd.service ]; then
+	add_ip_networkd
+else
+	add_ip
+fi
+exit 0
diff --git a/dists/scripts/alt-add_netif.sh b/dists/scripts/alt-add_netif.sh
new file mode 100755
index 0000000..7dddd85
--- /dev/null
+++ b/dists/scripts/alt-add_netif.sh
@@ -0,0 +1,259 @@
+#!/bin/bash
+# Copyright (C) 1999-2015 Parallels IP Holdings GmbH
+# Copyright (C) 2018 vt@altlinux.org
+#
+# This file is part of OpenVZ libraries. OpenVZ 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
+# 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Our contact details: Parallels IP Holdings GmbH, Vordergasse 59, 8200
+# Schaffhausen, Switzerland.
+#
+# This script configure IP alias(es) inside RedHat like VE.
+#
+# Parameters are passed in environment variables.
+# Required parameters:
+#   IP_ADDR       - IP address(es) to add
+#                   (several addresses should be divided by space)
+# Optional parameters:
+#   VE_STATE        - state of VPS; could be one of:
+#                     starting | stopping | running | stopped
+#   DEVICE	    - device name
+#   IPADD    	    - list of ip addresses in format <ip[/mask] | dhcp>
+#   IPDEL    	    - list of ip addresses in format <ip | all>
+#   GW	    	    - gateway ip
+#
+
+DEVICE=$(basename $DEVICE)
+IFCFG=/etc/net/ifaces/$DEVICE
+NETFILE=/etc/sysconfig/network
+IFCFG_NETWORKD=/etc/systemd/network
+
+function setup_network() # OK
+{
+	rm -rf $IFCFG >/dev/null 2>&1
+	put_param $NETFILE NETWORKING yes
+	if [ ! -f ${HOSTFILE} ]; then
+		echo "127.0.0.1 localhost.localdomain localhost" > $HOSTFILE
+	fi
+}
+
+function setup_network_networkd()
+{
+        if [ ! -f ${HOSTFILE} ]; then
+                echo "127.0.0.1 localhost.localdomain localhost" > $HOSTFILE
+        fi
+}
+
+function init_config()
+{
+	mkdir -p $IFCFG
+	echo "TYPE=eth
+DEVICE=$DEVICE
+BOOTPROTO=static
+ONBOOT=yes" > $IFCFG/options || \
+		error "Can't write to file $IFCFG/options" $VZ_FS_NO_DISK_SPACE
+}
+
+# Function to delete IP address for RedHat like systems
+function del_ips()
+{
+	local ips="$1"
+	local ip ipm mask
+	local file
+
+	[ -z "$ips" ] && return 0
+	[ -d $IFCFG ] || return 0
+
+	for ipm in ${ips}; do
+		ip=${ipm%%/*}
+		if [ "$ip" = "all" ]; then
+			rm -f $IFCFG/ipv4address
+			rm -f $IFCFG/ipv6address
+		else
+			ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+			if is_ipv6 "$ip"; then
+				[ -e $IFCFG/ipv6address ] && sed -i "/^$ipe\//d" $IFCFG/ipv6address
+			else
+				[ -e $IFCFG/ipv4address ] && sed -i "/^$ipe\//d" $IFCFG/ipv4address
+			fi
+		fi
+		if [ ! -s $IFCFG/ipv4address ]; then
+			rm -f $IFCFG/ipv4address
+			rm -f $IFCFG/ipv4route
+		fi
+		if [ ! -s $IFCFG/ipv6address ]; then
+			rm -f $IFCFG/ipv6address
+			rm -f $IFCFG/ipv6route
+			del_param $IFCFG/options CONFIG_IPV6
+		fi
+	done
+}
+
+function add_ip6()
+{
+	local ip=$1
+	local mask=$2
+	local ipe
+
+	put_param $IFCFG/options CONFIG_IPV6 yes
+	ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+	sed -i "/^$ipe\//d" $IFCFG/ipv6address
+	echo "$ip/${mask:-128}" >> $IFCFG/ipv6address || \
+		error "Can't write to file $IFCFG/ipv6address" ${VZ_FS_NO_DISK_SPACE}
+}
+
+function add_ip4()
+{
+	local ip=$1
+	local mask=$2
+	local ipe
+
+	ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+	[ -e $IFCFG/ipv4address ] && sed -i "/^$ipe\//d" $IFCFG/ipv4address
+	echo "$ip/${mask:-32}" >> $IFCFG/ipv4address || \
+		error "Can't write to file $IFCFG/ipv4address" ${VZ_FS_NO_DISK_SPACE}
+	echo net.ipv4.conf.$DEVICE.promote_secondaries=1 > $IFCFG/sysctl.conf || \
+		error "Can't write to file $IFCFG/sysctl.conf" $VZ_FS_NO_DISK_SPACE
+}
+
+function add_ip4_networkd()
+{
+        local ip=$1
+        local mask=$2
+        local ipe
+
+        ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+        echo "Address=$ip/${mask:-32}" >> $IFCFG_NETWORKD/${DEVICE}.network || \
+                error "Can't write to file $IFCFG_NETWORKD/${DEVICE}.network" ${VZ_FS_NO_DISK_SPACE}
+        ip addr add $ip/${mask:-32} dev $DEVICE
+}
+
+function update_dev()
+{
+	local ips="$1"
+	local ipm ip mask
+
+	put_param $IFCFG/options BOOTPROTO "static"
+	if [ "$DHCP4" = "yes" ]; then
+		check_dhcp
+		put_param $IFCFG/options BOOTPROTO "dhcp"
+		rm -f $IFCFG/ipv4address
+		rm -f $IFCFG/ipv4route
+	fi
+	if [ "$DHCP6" = "yes" ]; then
+		check_dhcp_ipv6
+		put_param $IFCFG/options BOOTPROTO "dhcp6"
+		put_param $IFCFG/options CONFIG_IPV6 "yes"
+		rm -f $IFCFG/ipv6address
+		rm -f $IFCFG/ipv6route
+	fi
+	for ipm in $ips; do
+		ip=${ipm%%/*}
+		if [[ "$ipm" =~ / ]]; then
+			mask=${ipm##*/}
+		else
+			mask=
+		fi
+		if is_ipv6 "$ip"; then
+			add_ip6 "$ip" "$mask"
+		else
+			add_ip4 "$ip" "$mask"
+		fi
+	done
+	if [ -n "$IPV6" ]; then
+		put_param $IFCFG/options CONFIG_IPV6 yes
+	fi
+}
+
+function update_dev_systemd()
+{
+        local ips="$1"
+        local ipm ip mask
+
+        for ipm in $ips; do
+                ip=${ipm%%/*}
+                if [[ "$ipm" =~ / ]]; then
+                        mask=${ipm##*/}
+                else
+                        mask=
+                fi
+                add_ip4_networkd "$ip" "$mask"
+        done
+}
+
+function setup_gw()
+{
+	if [ -n "$GWDEL" ]; then
+		rm -f $IFCFG/ipv4route
+	fi
+	if [ -n "$GW6DEL" ]; then
+		rm -f $IFCFG/ipv6route
+	fi
+	if [ -n "$GW" ]; then
+		echo "default dev $DEVICE via $GW" > $IFCFG/ipv4route
+	fi
+	if [ -n "$GW6" ]; then
+		echo "default dev $DEVICE via $GW6" > $IFCFG/ipv6route
+	fi
+}
+
+function setup()
+{
+	if [ "$VE_STATE" = "starting" ]; then
+		setup_network
+	fi
+	if [ ! -d $IFCFG ]; then
+		init_config
+	fi
+	[ -z "$DEVICE" ] && return
+	ifdown $DEVICE 2>/dev/null
+	del_ips "$IPDEL"
+	update_dev "$IPADD"
+	setup_gw
+	ifup $DEVICE 2>/dev/null
+}
+
+function setup_networkd()
+{
+        if [ "$VE_STATE" = "starting" ]; then
+                setup_network_networkd
+        fi
+        [ -z "$DEVICE" ] && return
+        ip link set $DEVICE down
+
+	echo "[Match]
+Name=${DEVICE}
+
+[Network]
+IPv6AcceptRA=no
+LinkLocalAddressing=no
+DefaultRouteOnDevice=yes" > $IFCFG_NETWORKD/${DEVICE}.network || \
+                error "Can't write to file $IFCFG_NETWORKD/${DEVICE}.network" $VZ_FS_NO_DISK_SPACE
+
+#TODO         del_ips_networkd "$IPDEL"
+        update_dev_networkd "$IPADD"
+
+        ip link set $DEVICE up
+        ip route add default dev $DEVICE
+}
+
+if [ -e /etc/systemd/system/dbus-org.freedesktop.network1.service -o \
+     -e /etc/systemd/system/multi-user.target.wants/systemd-networkd.service -o \
+     -e /lib/systemd/system/multi-user.target.wants/systemd-networkd.service ]; then
+	setup_networkd
+else
+	setup
+fi
+exit 0
diff --git a/dists/scripts/alt-del_ip.sh b/dists/scripts/alt-del_ip.sh
new file mode 100755
index 0000000..800c0d0
--- /dev/null
+++ b/dists/scripts/alt-del_ip.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+# Copyright (C) 1999-2015 Parallels IP Holdings GmbH
+# Copyright (c) 2018, vt@altlinux.org
+#
+# This file is part of OpenVZ libraries. OpenVZ 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
+# 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Our contact details: Parallels IP Holdings GmbH, Vordergasse 59, 8200
+# Schaffhausen, Switzerland.
+#
+# This script deletes IP alias(es) inside VPS for RedHat like systems.
+#
+# Parameters are passed in environment variables.
+# Required parameters:
+#   IP_ADDR       - IPs to delete, several addresses should be divided by space
+# Optional parameters:
+#   IPDELALL      - delete all ip addresses
+VENET_DEV=venet0
+IFCFG=/etc/net/ifaces/${VENET_DEV}
+NETFILE=/etc/sysconfig/network
+HOSTFILE=/etc/hosts
+IFCFG_NETWORKD=/etc/systemd/network
+
+# Function to delete IP address for RedHat like systems
+function del_ip()
+{
+	local ipm ip mask
+
+	[ -d ${IFCFG} ] || return 0
+	for ipm in ${IP_ADDR}; do
+		ip=${ipm%%/*}
+		mask=
+		if [[ "${ipm}" =~ / ]]; then
+			mask=${ipm##*/}
+		fi
+		ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+		if is_ipv6 "${ip}"; then
+			sed -i "/^$ipe\//d" ${IFCFG}/ipv6address
+		else
+			sed -i "/^$ipe\//d" ${IFCFG}/ipv4address
+		fi
+		if [ ! -s ${IFCFG}/ipv6address ]; then
+			rm -f ${IFCFG}/ipv6address
+			rm -f ${IFCFG}/ipv6route
+			del_param ${IFCFG}/options CONFIG_IPV6
+		fi
+	done
+
+	ifdown ${VENET_DEV} 2>/dev/null
+	ifup ${VENET_DEV} 2>/dev/null
+}
+
+# Function to delete IP for Networkd service of Systemd
+function del_ip_systemd()
+{
+	local ipm ip mask
+	local cfg=$IFCFG_NETWORKD/${VENET_DEV}.network
+
+	[ -d ${IFCFG_NETWORKD} ] || return 0
+	for ipm in ${IP_ADDR}; do
+		ip=${ipm%%/*}
+		mask=
+		if [[ "${ipm}" =~ / ]]; then
+			mask=${ipm##*/}
+		fi
+		ipe=$(echo $ip | sed -e 's/[]\/$*.^[]/\\&/g')
+		sed -i "/^$ipe\//d" ${cfg}
+		/sbin/ip a d ${ipe}
+	done
+
+	ifdown ${VENET_DEV} 2>/dev/null
+	ifup ${VENET_DEV} 2>/dev/null
+}
+
+if [ -e /etc/systemd/system/dbus-org.freedesktop.network1.service -o \
+     -e /etc/systemd/system/multi-user.target.wants/systemd-networkd.service -o \
+     -e /lib/systemd/system/multi-user.target.wants/systemd-networkd.service ]; then
+    del_ip_networkd
+else
+    del_ip
+fi
+exit 0
diff --git a/dists/scripts/alt-del_netif.sh b/dists/scripts/alt-del_netif.sh
new file mode 100755
index 0000000..fcab7df
--- /dev/null
+++ b/dists/scripts/alt-del_netif.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+# Copyright (C) 1999-2015 Parallels IP Holdings GmbH
+# Copyright (C) 2018 vt@altlinux.org
+#
+# This file is part of OpenVZ libraries. OpenVZ 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
+# 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# Our contact details: Parallels IP Holdings GmbH, Vordergasse 59, 8200
+# Schaffhausen, Switzerland.
+#
+# This script deletes IP alias(es) inside VPS for RedHat like systems.
+#
+# Parameters are passed in environment variables.
+# Required parameters:
+#   DEVICE	- device name
+
+DEVICE=$(basename $DEVICE)
+IFCFG=/etc/net/ifaces/${DEVICE}
+NETFILE=/etc/sysconfig/network
+IFCFG_NETWORKD=/etc/systemd/network
+
+function del_dev()
+{
+	[ -d ${IFCFG} ] || exit 1
+	ifdown ${DEVICE} 2>/dev/null
+	if [ -f ${IFCFG}/options ]; then
+		rm -rf -- "${IFCFG}"
+	fi
+}
+
+function del_dev_systemd()
+{
+	[ -d ${IFCFG_NETWORKD} ] || exit 1
+	ifdown ${DEVICE} 2>/dev/null
+	rm -rf -- "${IFCFG_NETWORKD}/${DEVICE}.network"
+}
+
+if [ -e /etc/systemd/system/dbus-org.freedesktop.network1.service -o \
+     -e /etc/systemd/system/multi-user.target.wants/systemd-networkd.service -o \
+     -e /lib/systemd/system/multi-user.target.wants/systemd-networkd.service ]; then
+	del_dev_systemd
+else
+    del_dev
+fi
+exit 0
diff --git a/dists/scripts/set_dns.sh b/dists/scripts/set_dns.sh
index 2b42aec..2070b7c 100755
--- a/dists/scripts/set_dns.sh
+++ b/dists/scripts/set_dns.sh
@@ -29,15 +29,18 @@
 #       Sets search domain(s). Modifies /etc/resolv.conf
 #   NAMESERVER
 #       Sets name server(s). Modifies /etc/resolv.conf
-RESOLVCONF=/etc/resolvconf/resolv.conf.d/base
+
+# shellcheck disable=SC2181,SC2166,SC2086
+#RESOLVCONF=/etc/resolvconf/resolv.conf.d/base
+RESOLVCONF=/etc/net/ifaces/venet0/resolv.conf
 
 set_resolvconf()
 {
-	local cfgfile=/etc/resolv.conf
-	local server="$1"
-	local search="$2"
+	local cfgfile="$1"
+	local server="$2"
+	local search="$3"
 	local post_configure_cmd=
-	local srv fname
+	local srv
 
 	# Use resolvconf static storage
 	if which resolvconf >/dev/null 2>&1; then
@@ -45,8 +48,8 @@ set_resolvconf()
 			cfgfile=$RESOLVCONF
 			[ "${VE_STATE}" = "running" ] && post_configure_cmd='resolvconf -u'
 			if  [ "${VE_STATE}" = "starting" ] && 
-				[ -e /etc/systemd/system/systemd-resolved.service ] &&
-				[ $(readlink /etc/systemd/system/systemd-resolved.service) == '/dev/null' ]; then
+				[ -e /lib/systemd/system/systemd-resolved.service ] &&
+				[ "$(readlink /lib/systemd/system/systemd-resolved.service)" == "/dev/null" ]; then
 				grep -qF -- "resolvconf -u" "/etc/rc.local" || echo "resolvconf -u" >> "/etc/rc.local"
 			fi
 		fi
@@ -57,7 +60,7 @@ set_resolvconf()
 			sed "/search.*/d" < ${cfgfile} > ${cfgfile}.$$ && \
 				if [ $? -ne 0 ]; then
 					rm -f ${cfgfile}.$$
-					error "Can't change file ${cfgfile}" ${VZ_FS_NO_DISK_SPACE}
+					error "Can't change file ${cfgfile}" "${VZ_FS_NO_DISK_SPACE}"
 				fi
 				mv -f ${cfgfile}.$$ ${cfgfile} || rm -f ${cfgfile}.$$
 		else
@@ -66,17 +69,17 @@ set_resolvconf()
 	fi
 	if [ -n "${server}" -a ! -L "${cfgfile}" ]; then
 		[ -f "${cfgfile}" ] || touch "${cfgfile}"
-		${CP} ${cfgfile} ${cfgfile}.$$ || error "Can't copy file $cfgfile" $VZ_FS_NO_DISK_SPACE
+		${CP} ${cfgfile} ${cfgfile}.$$ || error "Can't copy file $cfgfile" "$VZ_FS_NO_DISK_SPACE"
 		sed "/nameserver.*/d" ${cfgfile} > ${cfgfile}.$$
 		if [ $? -ne 0 ]; then
 			rm -f ${cfgfile}.$$
-			error "Can't change file ${cfgfile}" ${VZ_FS_NO_DISK_SPACE}
+			error "Can't change file ${cfgfile}" "${VZ_FS_NO_DISK_SPACE}"
 		fi
 
 		if [ "${server}" != '#' ]; then
 			for srv in ${server}; do
 				echo "nameserver ${srv}" >> ${cfgfile}.$$ || \
-					 error "Can't change file ${cfgfile}" ${VZ_FS_NO_DISK_SPACE}
+					 error "Can't change file ${cfgfile}" "${VZ_FS_NO_DISK_SPACE}"
 			done
 		fi
 
@@ -88,9 +91,9 @@ set_resolvconf()
 
 set_resolved()
 {
-	local cfg=/etc/systemd/resolved.conf
-	local server="$1"
-	local search="$2"
+	local cfg="$1"
+	local server="$2"
+	local search="$3"
 
 	if [ "${server}" = '#' ]; then
 		sed "/DNS=.*/d" < ${cfg} > ${cfg}.$$ && \
@@ -134,14 +137,18 @@ set_network_config()
 	[ -n "$NAMESERVER" -o  -n "$SEARCHDOMAIN" ] && netconfig -v update -m dns-resolver
 }
 
-if  [ -e /etc/systemd/system/dbus-org.freedesktop.resolve1.service ] &&
-    [ -e /etc/systemd/system/systemd-resolved.service ] &&
-    [ $(readlink /etc/systemd/system/systemd-resolved.service) != '/dev/null' ]; then
-    set_resolved "${NAMESERVER}" "${SEARCHDOMAIN}"
-elif [ -e /sbin/netconfig -a -e /etc/sysconfig/network/config ]; then
-    set_network_config
-else
-    set_resolvconf "${NAMESERVER}" "${SEARCHDOMAIN}"
+if [ -e /etc/systemd/system/dbus-org.freedesktop.network1.service ]; then # systemd-networkd
+        set_resolved "/etc/systemd/network/venet0.network" "${NAMESERVER}" "${SEARCHDOMAIN}"
+fi
+if [ -e /etc/systemd/system/dbus-org.freedesktop.resolve1.service ] &&
+   [ -e /lib/systemd/system/systemd-resolved.service ] &&
+   [ "$(readlink /etc/systemd/system/dbus-org.freedesktop.resolve1.service)" != "/dev/null" ] &&
+   [ "$(readlink /lib/systemd/system/systemd-resolved.service)" != "/dev/null" ]; then # systemd-resolved
+        set_resolved "/etc/systemd/resolved.conf" "${NAMESERVER}" "${SEARCHDOMAIN}"
+elif [ -e /sbin/netconfig -a -e /etc/sysconfig/network/config ]; then # SLES netconfig
+        set_network_config
+else # openresolv or any other resolver
+        set_resolvconf "/etc/resolv.conf" "${NAMESERVER}" "${SEARCHDOMAIN}"
 fi
 
 exit 0
diff --git a/include/libvzctl.h b/include/libvzctl.h
index 71282d0..141a82c 100644
--- a/include/libvzctl.h
+++ b/include/libvzctl.h
@@ -31,7 +31,7 @@
 #define VZ_DIR			"/etc/vz/"
 #define VZ_GLOBAL_CFG		VZ_DIR "vz.conf"
 #define VZ_ENV_CONF_DIR		VZ_DIR "conf/"
-#define VZ_ENV_CONF_LOCK_DIR	"/var/vz/"
+#define VZ_ENV_CONF_LOCK_DIR	"/var/lib/vz/"
 #define VZ_SAMPLE_CONF_PATTERN	"ve-%s.conf-sample"
 #define VZ_ENV_CONF_SAMPLE	VZ_ENV_CONF_DIR VZ_SAMPLE_CONF_PATTERN
 #define VZCTL_VE_ROOTHDD_DIR	"root.hdd"
@@ -762,7 +762,7 @@ int vzctl2_clear_all_ve_netstat(void);
 
 vzctl_env_handle_ptr vzctl2_alloc_env_handle();
 vzctl_env_handle_ptr vzctl2_env_open(const char *ctid, int flags, int *err);
-vzctl_env_handle_ptr vzctl2_env_open_conf(const char *ctid, const char *fname, int flags, int *err);
+vzctl_env_handle_ptr vzctl2_env_open_conf(const ctid_t ctid, const char *fname, int flags, int *err);
 void vzctl2_env_close(vzctl_env_handle_ptr h);
 int vzctl2_apply_param(vzctl_env_handle_ptr h, vzctl_env_param_ptr param, int flags);
 int vzctl2_env_save(vzctl_env_handle_ptr h);
diff --git a/lib/bindmount.c b/lib/bindmount.c
index 8b5281e..fabb214 100644
--- a/lib/bindmount.c
+++ b/lib/bindmount.c
@@ -365,6 +365,7 @@ static int get_mount_flags(const char *dir, int *flags)
 	return 0;
 }
 
+#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 37)
 static int open_tree(int dirfd, const char *pathname, unsigned int flags) {
 	return syscall(428, dirfd, pathname, flags);
 }
@@ -373,6 +374,7 @@ static int move_mount(int from_dirfd, const char *from_pathname, int to_dirfd,
 		const char *to_pathname, unsigned int flags) {
 	return syscall(429, from_dirfd, from_pathname, to_dirfd, to_pathname, flags);
 }
+#endif
 
 static int set_mount_flags(const char *mnt, int flags)
 {
diff --git a/lib/disk_configure.c b/lib/disk_configure.c
index 382d7df..9fea838 100644
--- a/lib/disk_configure.c
+++ b/lib/disk_configure.c
@@ -57,7 +57,7 @@ int get_fs_uuid(const char *device, struct vzctl_disk *disk)
 	struct stat st;
 	FILE *fp;
 	char *argv[] = {
-		"/usr/sbin/blkid",
+		"/sbin/blkid",
 		(char *)device,
 		NULL,
 	};
diff --git a/lib/env.c b/lib/env.c
index 4cd7e6f..62daa97 100644
--- a/lib/env.c
+++ b/lib/env.c
@@ -901,7 +901,7 @@ int exec_init(const struct start_param *param)
 {
 	char cid[STR_SIZE];
 	char *argv[] = {"init", "-z", "      ", NULL};
-	char *envp[] = {"HOME=/", "TERM=linux", cid, NULL};
+	char *envp[] = {"HOME=/root", "TERM=linux", cid, NULL};
 	char **env;
 	int errcode = 0;
 	logger(1, 0, "Starting init");
diff --git a/lib/env_configure.c b/lib/env_configure.c
index fcace24..da4ca72 100644
--- a/lib/env_configure.c
+++ b/lib/env_configure.c
@@ -46,7 +46,7 @@
 
 static char *envp_s[] =
 {
-	"HOME=/",
+	"HOME=/root",
 	"TERM=linux",
 	ENV_PATH,
 	NULL
diff --git a/lib/exec.c b/lib/exec.c
index af7a081..e24e819 100644
--- a/lib/exec.c
+++ b/lib/exec.c
@@ -85,7 +85,7 @@ static __thread int s_timeout_pid;
 static char _proc_title[PATH_MAX];
 static int _proc_title_len = sizeof(_proc_title);
 
-static char *envp_bash[] = {"HOME=/",
+static char *envp_bash[] = {"HOME=/root",
 	ENV_PATH,
 	"SHELL=/bin/bash",
 	NULL, NULL};
@@ -147,7 +147,7 @@ static void exec_handler(int sig)
 int execvep(const char *path, char *const argv[], char *const envp[])
 {
 	if (!strchr(path, '/')) {
-		char *p = DEF_PATH;
+		char *p = DEF_PATH "/usr/local/bin";
 		for (; p && *p;) {
 			char partial[FILENAME_MAX];
 			char *p2;
diff --git a/lib/net.c b/lib/net.c
index 30764ba..f9777ad 100644
--- a/lib/net.c
+++ b/lib/net.c
@@ -746,7 +746,7 @@ static int get_net_info(ctid_t ctid, const char *ifname,
 	char ip[STR_SIZE];
 	char buf[STR_SIZE];
 	LIST_HEAD(ips);
-	char *arg[] = {"/usr/sbin/ip", "-n", ctid, "a", "l",
+	char *arg[] = {"/sbin/ip", "-n", ctid, "a", "l",
 		ifname ? "dev" : NULL, (char *) ifname, NULL};
 
 	fp = vzctl_popen(arg, NULL, 0);
diff --git a/lib/util.c b/lib/util.c
index 9d68770..a8f5011 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -72,8 +72,8 @@
 #define NR_OPEN 1024
 #endif
 
-static char *envp_bash[] = {"HOME=/", "TERM=linux",
-	ENV_PATH ".", NULL};
+static char *envp_bash[] = {"HOME=/root", "TERM=linux",
+	ENV_PATH, NULL};
 
 void *xmalloc(size_t size)
 {
@@ -1120,7 +1120,7 @@ static int vzctl_env_convert_layout4(struct vzctl_env_handle *h)
 		unlink(buf);
 	}
 	/* Remove quota file */
-	snprintf(buf, sizeof(buf), "/var/vzquota/quota.%d", ctid);
+	snprintf(buf, sizeof(buf), "/var/lib/vzquota/quota.%d", ctid);
 	unlink(buf);
 	logger(0, 0, "Container was successfully converted to the 4 layout");
 	return 0;
diff --git a/lib/vztypes.h b/lib/vztypes.h
index d58dee2..0133ce5 100644
--- a/lib/vztypes.h
+++ b/lib/vztypes.h
@@ -101,8 +101,7 @@
 #define VZCTL_SCRIPT_EXEC_TIMEOUT	600
 
 /* Default enviroment variable PATH */
-#define	DEF_PATH	"/usr/local/sbin:/usr/local/bin:" \
-			"/bin:/sbin:/usr/bin:/usr/sbin:"
+#define	DEF_PATH	"/sbin:/usr/sbin:/bin:/usr/bin:"
 #define	ENV_PATH	"PATH=" DEF_PATH
 
 #define MAX_ARGS	255
diff --git a/libvzctl.spec b/libvzctl.spec
new file mode 100644
index 0000000..ada1c4a
--- /dev/null
+++ b/libvzctl.spec
@@ -0,0 +1,356 @@
+
+# %%define _without_vcmmd yes
+%{?_without_vcmmd:%global _without_vcmmd --without-vcmmd}
+
+Name: libvzctl
+Summary: OpenVZ Containers API library
+Version: 7.0.730
+Release: alt2
+License: LGPLv2.1
+Group: System/Libraries
+Url: https://openvz.org/
+Vcs: https://src.openvz.org/scm/ovzl/libvzctl.git
+
+Source: %name-%version.tar
+Patch: %name-%version.patch
+
+ExclusiveArch: x86_64
+
+Requires: libvzevent >= 7.0.0
+Requires: libploop >= 7.0.199
+Requires: cgroup
+Requires: crtools-ovz >= 3.15.0.9
+Requires: e2fsprogs gdisk iputils iproute2
+BuildRequires: kernel-headers-ovz-el7 >= 3.10.0
+BuildRequires: libvzevent-devel >= 5.0.0
+BuildRequires: libploop-devel >= 7.0.199
+BuildRequires: libe2fs-devel
+BuildRequires: libxml2-devel >= 2.6.16
+BuildRequires: libuuid-devel
+BuildRequires: libdbus-devel
+
+%if 0%{!?_without_vcmmd:1}
+Requires: libvcmmd >= 7.0.22
+BuildRequires: libvcmmd-devel >= 7.0.22
+%endif
+
+%add_findreq_skiplist %_datadir/%name/dists/scripts/*
+%filter_from_requires /^\/etc\/vz\/vz.conf/d
+%define _pkglibdir %_libdir/%name
+
+%description
+OpenVZ Containers API library
+
+%package devel
+Summary: OpenVZ Containers API development library
+Group: Development/C
+License: LGPLv2.1
+Requires: %name  = %version-%release
+
+%description devel
+OpenVZ Containers API development library
+
+%prep
+%setup -q
+%patch -p1
+
+%build
+%autoreconf
+export CFLAGS="%optflags -Wno-error=format-truncation -Wno-error=stringop-truncation -Wno-error=format-overflow -Wno-error=stringop-overflow"
+%configure %{?_without_vcmmd}
+%make_build
+
+%install
+%makeinstall_std
+
+%files
+%_libdir/*.so.*
+%_pkglibdir
+%_datadir/%name
+
+%files devel
+%_libdir/*.so
+%_includedir/vzctl
+
+%changelog
+* Fri Jul 14 2023 Andrew A. Vasilyev <andy@altlinux.org> 7.0.730-alt2
+- fix build with glibc 2.37
+
+* Tue Mar 14 2023 Andrew A. Vasilyev <andy@altlinux.org> 7.0.730-alt1
+- 7.0.730
+
+* Tue Mar 07 2023 Andrew A. Vasilyev <andy@altlinux.org> 7.0.729-alt1
+- 7.0.729
+
+* Wed Feb 22 2023 Andrew A. Vasilyev <andy@altlinux.org> 7.0.726-alt2
+- set_dns.sh: restore previous resolver choice
+
+* Tue Feb 21 2023 Andrew A. Vasilyev <andy@altlinux.org> 7.0.726-alt1
+- 7.0.726
+- set_dns.sh: optimize and clear syntax
+
+* Sat Dec 10 2022 Andrew A. Vasilyev <andy@altlinux.org> 7.0.723-alt1
+- 7.0.723
+
+* Mon Nov 14 2022 Andrew A. Vasilyev <andy@altlinux.org> 7.0.719-alt1
+- 7.0.719
+
+* Wed Oct 26 2022 Andrew A. Vasilyev <andy@altlinux.org> 7.0.717-alt1
+- 7.0.717
+
+* Tue Jun 28 2022 Andrew A. Vasilyev <andy@altlinux.org> 7.0.714-alt1
+- 7.0.714
+
+* Wed Jun 01 2022 Andrew A. Vasilyev <andy@altlinux.org> 7.0.713-alt1
+- 7.0.713
+
+* Thu May 12 2022 Andrew A. Vasilyev <andy@altlinux.org> 7.0.711-alt1
+- 7.0.711
+
+* Sat Nov 13 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.707-alt1
+- 7.0.707
+
+* Tue Oct 05 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.700-alt1
+- 7.0.700
+
+* Wed Sep 22 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.698-alt1
+- 7.0.698
+- move all ALT CFLAGS to spec
+- fix -Warray-parameter in vzctl2_env_open_conf() declaration (gcc11)
+
+* Fri Sep 10 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.697-alt1
+- 7.0.697
+
+* Wed Sep 01 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.689-alt1
+- 7.0.689
+- fix openvswitch dependency
+
+* Thu Aug 05 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.678-alt1
+- 7.0.678
+
+* Wed Jul 28 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.674-alt1
+- 7.0.674
+
+* Thu Jul 15 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.671-alt1
+- 7.0.671
+
+* Tue Jul 13 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.664-alt2
+- use "ip link" instead of brctl, no deps on bridge-utils now
+
+* Thu Jul 08 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.664-alt1
+- 7.0.664
+
+* Wed Jun 09 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.659-alt1
+- 7.0.659
+
+* Mon Apr 19 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.651-alt1
+- 7.0.651
+
+* Fri Mar 26 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.648-alt1
+- 7.0.648
+
+* Fri Mar 19 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.647-alt1
+- 7.0.647
+
+* Mon Mar 08 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.645-alt1
+- 7.0.645
+
+* Wed Feb 10 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.641-alt1
+- 7.0.641
+
+* Thu Feb 04 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.640-alt1
+- 7.0.640
+
+* Sun Jan 31 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.639-alt2
+- change resolver configuration for systemd
+- remove default NS from systemd-networkd config
+- change route command to "ip route" call
+
+* Tue Jan 26 2021 Andrew A. Vasilyev <andy@altlinux.org> 7.0.639-alt1
+- 7.0.639
+
+* Tue Dec 08 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.633-alt1
+- 7.0.633
+
+* Thu Dec 03 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.632-alt1
+- 7.0.632
+
+* Thu Nov 19 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.629-alt1
+- 7.0.629
+
+* Sat Oct 24 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.628-alt1
+- 7.0.628
+
+* Tue Oct 06 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.625-alt1
+- 7.0.625
+
+* Fri Oct 02 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.623-alt1
+- 7.0.623
+- add explicit requirements on e2fsprogs, gdisk and iputils packages
+
+* Wed Sep 30 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.619-alt2
+- change criu to criu-ovz in scripts
+
+* Thu Sep 24 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.619-alt1
+- 7.0.619
+
+* Fri Sep 18 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.618-alt1
+- 7.0.618
+
+* Mon Sep 14 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.617-alt1
+- 7.0.617
+- R: crtools-ovz
+
+* Thu Sep 10 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.616-alt1
+- 7.0.616
+
+* Fri Sep 04 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.614-alt1
+- 7.0.614
+
+* Fri Aug 28 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.605-alt1
+- 7.0.605
+
+* Tue Aug 25 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.604-alt1
+- 7.0.604
+
+* Mon Aug 03 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.601-alt1
+- 7.0.601
+
+* Fri Jul 24 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.598-alt1
+- 7.0.598
+
+* Tue Jul 21 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.596-alt1
+- 7.0.596
+
+* Tue Jul 14 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.592-alt1
+- 7.0.592
+- ability to build without vcmmd
+
+* Wed Jun 24 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.590-alt1
+- 7.0.590
+
+* Wed Jun 17 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.588-alt1
+- 7.0.588
+
+* Wed May 27 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.583-alt1
+- 7.0.583
+
+* Wed May 20 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.580-alt1
+- 7.0.580
+
+* Sat Apr 25 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.578-alt1
+- 7.0.578
+
+* Mon Apr 20 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.574-alt1
+- 7.0.574
+
+* Wed Apr 08 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.571-alt1
+- 7.0.571
+
+* Tue Mar 31 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.568-alt1
+- 7.0.568
+- remove with_ub due to autodetect of UB
+
+* Tue Mar 24 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.567-alt1
+- 7.0.567
+
+* Thu Mar 19 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.566-alt1
+- 7.0.566
+
+* Wed Mar 11 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.564-alt1
+- 7.0.564
+
+* Tue Mar 10 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.563-alt1
+- 7.0.563
+
+* Thu Feb 27 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.561-alt1
+- 7.0.561
+
+* Wed Feb 12 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.560-alt1
+- 7.0.560
+
+* Mon Feb 03 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.558-alt1
+- 7.0.558
+
+* Fri Jan 31 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.556-alt1
+- 7.0.556
+
+* Tue Jan 28 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.555-alt1
+- 7.0.555
+
+* Wed Jan 22 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.553-alt1
+- 7.0.553
+
+* Wed Jan 22 2020 Andrew A. Vasilyev <andy@altlinux.org> 7.0.552-alt2
+- modify scripts for networkd
+
+* Tue Dec 17 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.552-alt1
+- 7.0.552
+
+* Tue Dec 10 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.551-alt1
+- 7.0.551
+
+* Mon Dec 09 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.550-alt1
+- 7.0.550
+
+* Fri Dec 06 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.548-alt1
+- 7.0.548
+
+* Thu Nov 14 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.545-alt5
+- fix criu scripts path
+- spec cleanup
+
+* Fri Nov 08 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.545-alt4
+- fix broken Requires
+
+* Wed Nov 06 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.545-alt3
+- revert 1d53de2b265fe21c7df7bc to lower diff with upstream
+
+* Wed Nov 06 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.545-alt2
+- fix USE_UB absence
+
+* Tue Nov 05 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.545-alt1
+- 7.0.545
+
+* Fri Nov 01 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.544-alt1
+- 7.0.544
+- fix /sbin/blkid path
+
+* Fri Oct 25 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.540-alt1
+- 7.0.540
+
+* Wed Oct 16 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.539-alt1
+- 7.0.539
+
+* Wed Oct 16 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.538-alt2
+- add/remove device for systemd/networkd service
+
+* Mon Oct 14 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.538-alt1
+- 7.0.538
+- fix /sbin/ip path
+
+* Mon Oct 07 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.537-alt1
+- 7.0.537
+
+* Thu Sep 12 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.536-alt3
+- fix systemd-networkd discovery
+
+* Tue Sep 03 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.536-alt2
+- add interface and IPs for networkd
+
+* Mon Aug 26 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.536-alt1
+- 7.0.536
+
+* Fri Aug 23 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.535-alt2
+- fixed alt scripts
+- fixed arping full path
+- fixed awk regexp warning
+
+* Mon Aug 19 2019 Andrew A. Vasilyev <andy@altlinux.org> 7.0.535-alt1
+- 7.0.535
+
+* Sun Nov 04 2018 Alexey Shabalin <shaba@altlinux.org> 7.0.499-alt1
+- 7.0.499
+
+* Mon Feb 19 2018 Alexey Shabalin <shaba@altlinux.ru> 7.0.463-alt1
+- Initial build
diff --git a/paths.am b/paths.am
index 4553b07..13a86a7 100644
--- a/paths.am
+++ b/paths.am
@@ -21,16 +21,15 @@
 pkglibdir=$(libdir)/libvzctl
 
 initddir    = $(sysconfdir)/init.d
+etcnetdir   = $(sysconfdir)/net
 netsdir     = $(sysconfdir)/sysconfig/network-scripts
 
 pkgconfdir  = $(sysconfdir)/vz
 vpsconfdir  = $(pkgconfdir)/conf
 namesdir    = $(pkgconfdir)/names
 
-# automake < 1.10.2 does not set pkglibexecdir
-pkglibexecdir = $(libexecdir)/libvzctl
-distconfdir = $(pkglibexecdir)/dists
-scriptdir   = $(pkglibexecdir)/scripts
-scriptddir  = $(pkglibexecdir)/script.d
+distconfdir = $(pkgdatadir)/dists
+scriptdir   = $(pkgdatadir)/scripts
+scriptddir  = $(pkgdatadir)/script.d
 
 pkgincludedir = $(includedir)/vzctl
diff --git a/scripts/vz-announce_ips.in b/scripts/vz-announce_ips.in
index 3851c3e..8a590e8 100755
--- a/scripts/vz-announce_ips.in
+++ b/scripts/vz-announce_ips.in
@@ -35,7 +35,7 @@ if [ ! -d "${VEROOT}/sys/class/net" ]; then
 	exit 1
 fi
 
-ARPING_CMD=/sbin/arping
+ARPING_CMD=/usr/sbin/arping
 ARPING_ARGS="-f -c 1 -w 1"
 IP_CMD=/sbin/ip
 NDSEND_CMD=/usr/sbin/ndsend
diff --git a/scripts/vz-cpt.in b/scripts/vz-cpt.in
index 12cf950..cbcafdd 100755
--- a/scripts/vz-cpt.in
+++ b/scripts/vz-cpt.in
@@ -83,7 +83,7 @@ function cg_dump_props {
 }
 
 # NFS actions
-nfs_actions_path=/usr/libexec/criu/scripts/nfs-ports-allow.sh
+nfs_actions_path=/usr/lib/criu/scripts/nfs-ports-allow.sh
 if [ -f "$nfs_actions_path" ]; then
 	nfs_actions="--action-script $nfs_actions_path"
 fi
@@ -111,7 +111,7 @@ cg_controllers="--cgroup-dump-controller hugetlb \
  --cgroup-dump-controller blkio"
 
 CRIU_LOGLEVEL=4
-criu dump -v$CRIU_LOGLEVEL -o dump.log			\
+criu-ovz dump -v$CRIU_LOGLEVEL -o dump.log				\
 		--ve $VEID				\
 		--skip-freezer-state			\
 		--skip-in-flight			\
diff --git a/scripts/vz-functions.in b/scripts/vz-functions.in
index 3e0e157..86c9c08 100755
--- a/scripts/vz-functions.in
+++ b/scripts/vz-functions.in
@@ -39,7 +39,7 @@ VZ_SET_RATE=80
 VZ_SET_ACCOUNT=81
 
 # iptables parameters
-VE_STATE_DIR="/var/vz/veip/"
+VE_STATE_DIR="/var/lib/vz/veip/"
 CONF_DIR=@VPSCONFDIR@
 VZ_IP_CLASSES="${CONF_DIR}/networks_classes"
 SUSPEND_CONF_DIR="/etc/vz/vzreboot"
@@ -50,7 +50,7 @@ PRAM_MOUNT_POINT="/mnt/pram"
 TC_CMD=tc
 IP_CMD=ip
 MAX_FORKS=100
-ARPING_CMD="/sbin/arping"
+ARPING_CMD="/usr/sbin/arping"
 ARPING_ARGS="-f -c 1 -q"
 NDSEND_CMD="/usr/sbin/ndsend"
 OVSCTL_CMD="/usr/bin/ovs-vsctl"
@@ -232,14 +232,14 @@ vzadjustmacs()
 vzconfbridge()
 {
 	if [ "x$BRIDGE" = "xvenet0" ]; then
-		if [ $(brctl show venet0 2>/dev/null | tail -n+2 | wc -l) -eq 0 ]; then
-			brctl addbr venet0
+		if [ $(${IP_CMD} -br link show venet0 2>/dev/null | wc -l) -eq 0 ]; then
+			${IP_CMD} link add venet0 type bridge
 			${IP_CMD} link set venet0 up
 		fi
 	fi
 
 	if [ "x$BRIDGE" != "x" ]; then
-		brctl addif $BRIDGE $HNAME >/dev/null 2>&1
+		${IP_CMD} link set "$HNAME" master "$BRIDGE" >/dev/null 2>&1
 	fi
 }
 
@@ -275,7 +275,7 @@ function vzgetnetdev()
 			continue
 		fi
 		local tmp=`${IP_CMD} a l $dev | awk -v dev=$dev \
-			'/^^[\ \t]+inet6? / && !/scope link/ { print(dev); exit; }'`
+			'/^^[ \t]+inet6? / && !/scope link/ { print(dev); exit; }'`
 		[ -n "$tmp" ] && tmp_list="$tmp_list $tmp"
 	done
 	NETDEVICES="$tmp_list"
@@ -365,7 +365,7 @@ function vzarpipdetect()
 		done
 	done
 	# Duplicate address detection mode (DAD). Returns 0, if DAD succeeded i.e. no replies are received
-	parallel_execution 1000000 "${ARPING_CMD} ${ARPING_ARGS} -w 1 -D -I" ipv4_pairs[@]
+	parallel_execution 1000000 "${ARPING_CMD} ${ARPING_ARGS} -w 1 -D -I" ipv4_pairs[@] >/dev/null 2>&1
 }
 
 # Send ARP request to update neighbour ARP caches
@@ -403,7 +403,7 @@ function vzarpipset()
 	lockfile ${VZ_ARP_ANNOUNCE_LOCK}
 	nonlocal_bind_prev=$(cat /proc/sys/net/ipv4/ip_nonlocal_bind)
 	echo "1" > /proc/sys/net/ipv4/ip_nonlocal_bind
-	parallel_execution 100000 "${ARPING_CMD} ${ARPING_ARGS} -A -I" ipv4_pairs[@]
+	parallel_execution 100000 "${ARPING_CMD} ${ARPING_ARGS} -A -I" ipv4_pairs[@] >/dev/null 2>&1
 	echo "${nonlocal_bind_prev}" > /proc/sys/net/ipv4/ip_nonlocal_bind
 	rm -rf ${VZ_ARP_ANNOUNCE_LOCK} > /dev/null 2>&1
 	parallel_execution 100000 "${NDSEND_CMD}" ipv6_pairs[@]
diff --git a/scripts/vz-rst.in b/scripts/vz-rst.in
index 3360ecf..452fd0f 100755
--- a/scripts/vz-rst.in
+++ b/scripts/vz-rst.in
@@ -105,7 +105,7 @@ fi
 [ -z "$VE_RESTORE_LOG_PATH" ] && VE_RESTORE_LOG_PATH="restore.log"
 
 # AutoFS actions
-autofs_actions_path=/usr/libexec/criu/scripts/systemd-autofs-restart.sh
+autofs_actions_path=/usr/lib/criu/scripts/systemd-autofs-restart.sh
 if [ -f "$autofs_actions_path" ]; then
 	autofs_actions="--action-script $autofs_actions_path"
 fi
@@ -113,7 +113,7 @@ fi
 eval $(. /etc/vz/vz.conf && echo RESTORE_EXTRA_OPT=\"$RESTORE_EXTRA_OPT\")
 CRIU_LOGLEVEL=4
 [ -n "$VE_CRIU_PIDFILE" ] && echo $$ > $VE_CRIU_PIDFILE
-exec criu restore -v$CRIU_LOGLEVEL $RESTORE_EXTRA_OPT	\
+exec criu-ovz restore -v$CRIU_LOGLEVEL $RESTORE_EXTRA_OPT	\
 		--ve $VEID				\
 		--skip-freezer-state			\
 		--file-locks				\
diff --git a/scripts/vz-setrate.in b/scripts/vz-setrate.in
index 7f56bd9..9226dbf 100755
--- a/scripts/vz-setrate.in
+++ b/scripts/vz-setrate.in
@@ -314,7 +314,7 @@ fill_configured_dev()
 check_BANDWIDTH()
 {
 	[ -n "$BANDWIDTH" ] && return
-	dev=`/usr/sbin/ip r l | awk '/^default/ {print $5; exit(0)}'`
+	dev=`/sbin/ip r l | awk '/^default/ {print $5; exit(0)}'`
 	[ -z "$dev" ] && return
 	if [ -e "/sys/class/net/$dev/device" ]; then
 		BANDWIDTH="$dev"
diff --git a/scripts/vz-stop.in b/scripts/vz-stop.in
index b64d4d7..9755ea5 100755
--- a/scripts/vz-stop.in
+++ b/scripts/vz-stop.in
@@ -47,7 +47,7 @@ fi
 [ "${TRAFFIC_SHAPING}" == "yes" ] && @SCRIPTDIR@/vz-setrate del
 
 for v in $VETH; do
-	[ -x /usr/bin/ovs-vsctl ] && ovs-vsctl --if-exists del-port "$v" 2>/dev/null
+	[ -x ${OVSCTL_CMD} ] && ${OVSCTL_CMD} --if-exists del-port "$v" 2>/dev/null
 	ip link set $v down >/dev/null 2>&1 && \
 		ip link set $v name "${v}M$(( $$ % 100 ))" >/dev/null 2>&1
 done
diff --git a/scripts/vznetcfg.in b/scripts/vznetcfg.in
index 526aece..dbb5d0b 100755
--- a/scripts/vznetcfg.in
+++ b/scripts/vznetcfg.in
@@ -20,6 +20,7 @@
 # Our contact details: Virtuozzo International GmbH, Vordergasse 59, 8200
 # Schaffhausen, Switzerland.
 VZNETCFG='/etc/vz/vznet.conf'
+OVSCTL='ovs-vsctl'
 
 [ -f "$VZNETCFG" ] && . "$VZNETCFG"
 
@@ -74,9 +75,9 @@ addif()
 			set Interface $iface external-ids:iface-id=$IFACEID -- \
 			set Interface $iface external-ids:attached-mac=${MAC} -- \
 			set Interface $iface external-ids:vm-id=${VEID}"
-		ovs-vsctl $args
+		${OVSCTL} $args
 	else
-		brctl addif "$br" "$iface"
+		ip link set "$iface" master "$br"
 	fi
 	if [ $? -ne 0 ]; then
 		echo "Unable to attach $iface to bridge $br/$2"
@@ -92,11 +93,11 @@ delif()
 	local br
 
 	if [ "$VPORT_TYPE" = "ovs" ]; then
-		ovs-vsctl --if-exists del-port "$iface"
+		${OVSCTL} --if-exists del-port "$iface"
 	fi
 	for br in `ls -1 /sys/class/net`; do
 		[ -d  /sys/class/net/$br/bridge ] || continue
-		brctl show $br | grep -w $iface && brctl delif $br $iface
+		ip -br link show master "$br" | grep -w "$iface" && ip link set "$iface" nomaster
 	done
 }
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin