parent
3db6e7fee1
commit
a10070679a
@ -0,0 +1 @@
|
||||
DIST vipnetclient_gost_ru_amd64_4.15.0-26717.deb 14904446 BLAKE2B efd6dbb033d3c6a7a92ca6031c9c6f3f35035297c8167e3ffdbf09db65c08a21011bdfd56747f3b33f2b05b4b6bea3aca5e9f0b29533cf31cd68bece74a5c6f6 SHA512 029cbe9efacfb9c6f9902db9824a705bc04635aea778d87e047ca5b0d56489bce59f3b6eaeacc6e05bfa34f318fb934da037eb6a6f809b1e7dd97a4320975162
|
@ -0,0 +1,164 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
inherit desktop unpacker xdg
|
||||
|
||||
DESCRIPTION="ViPNet Client for Linux GUI by JSC InfoTeCS. CLI version"
|
||||
HOMEPAGE="https://www.vipnet.ru"
|
||||
|
||||
MY_PV=${PV/0./0-}
|
||||
MY_PN=${PN/-gost/_gost}
|
||||
|
||||
SRC_URI="
|
||||
amd64? ( https://git.calculate-linux.org/serg-sg/sources/raw/branch/master/net-vpn/vipnetclient/${MY_PN}_ru_amd64_${MY_PV}.deb )
|
||||
"
|
||||
|
||||
LICENSE=""
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
RESTRICT="bindist mirror strip"
|
||||
|
||||
RDEPEND="
|
||||
!net-vpn/vipnetclient-gui
|
||||
!net-vpn/vipnetclient-gui-gost
|
||||
!net-vpn/vipnetclient
|
||||
sys-process/procps
|
||||
"
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
pkg_setup() {
|
||||
|
||||
# Sandbox Disabled
|
||||
|
||||
UPGRADE_DIR="/tmp/vipnetclient"
|
||||
rm -rf ${UPGRADE_DIR}
|
||||
mkdir -p ${UPGRADE_DIR}
|
||||
|
||||
# Creating file-markers on each existing vipnetclient process and send them USR1
|
||||
for pid in $(pgrep -x /usr/bin/vipnetclient); do
|
||||
local uid=$(stat -c "%u" /proc/${pid} 2>/dev/null)
|
||||
[ -z "$uid" ] && continue
|
||||
[ $uid -ne 0 ] && continue # select only root owned processes
|
||||
[ $(stat -c "%u" /proc/${pid} 2>/dev/null) -eq 0 ] || continue # select only root owned processes
|
||||
local user=$(grep -awz USER /proc/${pid}/environ 2>/dev/null | tr -d '\0' | cut -c 6-)
|
||||
[ -z "$user" ] && continue
|
||||
echo ${pid} >${UPGRADE_DIR}/${user}
|
||||
done
|
||||
|
||||
local sig=USR1
|
||||
local proc_name=vipnetclient
|
||||
|
||||
if which pkill >/dev/null 2>&1; then
|
||||
pkill -${sig} -x ${proc_name}
|
||||
elif which killall >/dev/null 2>&1; then
|
||||
killall -${sig} ${proc_name}
|
||||
fi
|
||||
|
||||
[ -x /usr/bin/vipnetclient-webui ] && /etc/init.d/vipnetclient-webui restart
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
|
||||
unpack_deb ${A}
|
||||
|
||||
}
|
||||
|
||||
src_install() {
|
||||
|
||||
mv * "${D}" || die
|
||||
|
||||
# Set owners
|
||||
chown root:root ${D}/usr/bin/vipnetclient 2>/dev/null
|
||||
chown root:root $(ls -1 ${D}/etc/init.d/*vipnetclient) 2>/dev/null
|
||||
chmod 755 $(ls -1 ${D}/etc/init.d/*vipnetclient) 2>/dev/null
|
||||
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
|
||||
# Sandbox Disabled
|
||||
|
||||
# Set capability
|
||||
/usr/bin/vipnetclient --setcap --version
|
||||
|
||||
# update man db
|
||||
mandb >/dev/null 2>&1
|
||||
|
||||
# create service and init scripts
|
||||
if which systemctl >/dev/null 2>&1; then
|
||||
if [ -f /etc/systemd/system/vipnetclientd.service ]; then
|
||||
systemctl enable vipnetclientd >/dev/null 2>&1 && elog "Служба vipnetclientd установлена"
|
||||
else
|
||||
systemctl enable vipnetclient >/dev/null 2>&1 && elog "Служба vipnetclient установлена"
|
||||
fi
|
||||
[ -x /usr/bin/vipnetclient-webui ] && systemctl enable vipnetclient-webui >/dev/null 2>&1 && elog "Служба vipnetclient-webui установлена"
|
||||
|
||||
systemctl reset-failed
|
||||
systemctl stop vipnetclientdaemon*
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
update-rc.d vipnetclient defaults 90 10 >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && update-rc.d vipnetclient-webui defaults 90 10 >/dev/null 2>&1
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
rc-update add vipnetclient default >/dev/null 2>&1 && elog "Служба vipnetclient установлена"
|
||||
[ -x /usr/bin/vipnetclient-webui ] && rc-update add vipnetclient-webui default >/dev/null 2>&1 && elog "Служба vipnetclient-webui установлена"
|
||||
fi
|
||||
|
||||
[ -x /usr/bin/vipnetclient-webui ] && /etc/init.d/vipnetclient-webui start
|
||||
|
||||
# Update shared libraries paths
|
||||
which ldconfig >/dev/null 2>&1 && ldconfig 2>/dev/null
|
||||
|
||||
# for some distrs
|
||||
find /var/lib/vipnet -type d -exec chmod 755 {} \;
|
||||
|
||||
}
|
||||
|
||||
pkg_prerm () {
|
||||
|
||||
# Sandbox Disabled
|
||||
|
||||
# Размонтируем виртуальный диск
|
||||
umount /home/*/.vipnet/var/run
|
||||
umount /root/.vipnet/var/run
|
||||
|
||||
#update man db
|
||||
mandb >/dev/null 2>&1
|
||||
|
||||
# Update shared libraries paths
|
||||
which ldconfig >/dev/null 2>&1 && ldconfig 2>/dev/null
|
||||
|
||||
# disable service and remove init scripts
|
||||
if which systemctl >/dev/null 2>&1; then
|
||||
systemctl disable vipnetclient >/dev/null 2>&1
|
||||
systemctl disable vipnetclientd >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && systemctl disable vipnetclient-webui >/dev/null 2>&1
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
update-rc.d -f vipnetclient remove >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && update-rc.d -f vipnetclient-webui remove >/dev/null 2>&1
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
rc-update del vipnetclient >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && rc-update del vipnetclient-webui >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# При новой установке REPLACING_VERSIONS = "", при новой установке pkg_postrm() не выполняется.
|
||||
# При удалении REPLACING_VERSIONS не вычисляется, этап pkg_postinst() не выполняется.
|
||||
# При удалении REPLACED_BY_VERSION = "", при новой установке pkg_postrm() не выполняется.
|
||||
# При обновлении или переустановки выполняются этапы pkg_postinst() и pkg_postrm()
|
||||
# и, соответственно, переменные REPLACING_VERSIONS и REPLACED_BY_VERSION имеют ненулевое значение.
|
||||
# Таким образом мы можем определить, что пакет устанавливается, обновляется, переустанавливается поверх или удаляется
|
||||
# и выстраивать соответствующую логику.
|
||||
|
||||
if [ "${REPLACED_BY_VERSION}" = "" ]; then
|
||||
# Удалим мусор при окончательном удалении
|
||||
elog "Пакет ${PN} окончательно удаляется"
|
||||
rm -rf /etc/systemd/system/vipnetclient*
|
||||
rm -f /etc/rc*/*vipnetclient* >/dev/null 2>&1
|
||||
rm -f /etc/vipnet_token.conf
|
||||
fi
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
DIST vipnetclient_ru_amd64_4.15.0-26717.deb 14960892 BLAKE2B 918218d2fa32f70c703f9dc91c3bba2476fa06d18eabb6d1b24dc94c757273a9da1786ba26e6144c1de41df7b01add8f0d8ccddf70f44f56c46795e4fa85a243 SHA512 b08c706976ec63b6478e6040c7f0b06d2222d9ff1c7c4e7cbddbc30b364024ae4653b487ea579eef7501d551e1b9b33612b1048bc044de78e9312756102637ee
|
@ -0,0 +1,164 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
inherit desktop unpacker xdg
|
||||
|
||||
DESCRIPTION="ViPNet Client for Linux GUI by JSC InfoTeCS. CLI version"
|
||||
HOMEPAGE="https://www.vipnet.ru"
|
||||
|
||||
MY_PV=${PV/0./0-}
|
||||
MY_PN=${PN/-gost/_gost}
|
||||
|
||||
SRC_URI="
|
||||
amd64? ( https://git.calculate-linux.org/serg-sg/sources/raw/branch/master/net-vpn/vipnetclient/${MY_PN}_ru_amd64_${MY_PV}.deb )
|
||||
"
|
||||
|
||||
LICENSE=""
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
RESTRICT="bindist mirror strip"
|
||||
|
||||
RDEPEND="
|
||||
!net-vpn/vipnetclient-gui
|
||||
!net-vpn/vipnetclient-gui-gost
|
||||
!net-vpn/vipnetclient-gost
|
||||
sys-process/procps
|
||||
"
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
pkg_setup() {
|
||||
|
||||
# Sandbox Disabled
|
||||
|
||||
UPGRADE_DIR="/tmp/vipnetclient"
|
||||
rm -rf ${UPGRADE_DIR}
|
||||
mkdir -p ${UPGRADE_DIR}
|
||||
|
||||
# Creating file-markers on each existing vipnetclient process and send them USR1
|
||||
for pid in $(pgrep -x /usr/bin/vipnetclient); do
|
||||
local uid=$(stat -c "%u" /proc/${pid} 2>/dev/null)
|
||||
[ -z "$uid" ] && continue
|
||||
[ $uid -ne 0 ] && continue # select only root owned processes
|
||||
[ $(stat -c "%u" /proc/${pid} 2>/dev/null) -eq 0 ] || continue # select only root owned processes
|
||||
local user=$(grep -awz USER /proc/${pid}/environ 2>/dev/null | tr -d '\0' | cut -c 6-)
|
||||
[ -z "$user" ] && continue
|
||||
echo ${pid} >${UPGRADE_DIR}/${user}
|
||||
done
|
||||
|
||||
local sig=USR1
|
||||
local proc_name=vipnetclient
|
||||
|
||||
if which pkill >/dev/null 2>&1; then
|
||||
pkill -${sig} -x ${proc_name}
|
||||
elif which killall >/dev/null 2>&1; then
|
||||
killall -${sig} ${proc_name}
|
||||
fi
|
||||
|
||||
[ -x /usr/bin/vipnetclient-webui ] && /etc/init.d/vipnetclient-webui restart
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
|
||||
unpack_deb ${A}
|
||||
|
||||
}
|
||||
|
||||
src_install() {
|
||||
|
||||
mv * "${D}" || die
|
||||
|
||||
# Set owners
|
||||
chown root:root ${D}/usr/bin/vipnetclient 2>/dev/null
|
||||
chown root:root $(ls -1 ${D}/etc/init.d/*vipnetclient) 2>/dev/null
|
||||
chmod 755 $(ls -1 ${D}/etc/init.d/*vipnetclient) 2>/dev/null
|
||||
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
|
||||
# Sandbox Disabled
|
||||
|
||||
# Set capability
|
||||
/usr/bin/vipnetclient --setcap --version
|
||||
|
||||
# update man db
|
||||
mandb >/dev/null 2>&1
|
||||
|
||||
# create service and init scripts
|
||||
if which systemctl >/dev/null 2>&1; then
|
||||
if [ -f /etc/systemd/system/vipnetclientd.service ]; then
|
||||
systemctl enable vipnetclientd >/dev/null 2>&1 && elog "Служба vipnetclientd установлена"
|
||||
else
|
||||
systemctl enable vipnetclient >/dev/null 2>&1 && elog "Служба vipnetclient установлена"
|
||||
fi
|
||||
[ -x /usr/bin/vipnetclient-webui ] && systemctl enable vipnetclient-webui >/dev/null 2>&1 && elog "Служба vipnetclient-webui установлена"
|
||||
|
||||
systemctl reset-failed
|
||||
systemctl stop vipnetclientdaemon*
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
update-rc.d vipnetclient defaults 90 10 >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && update-rc.d vipnetclient-webui defaults 90 10 >/dev/null 2>&1
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
rc-update add vipnetclient default >/dev/null 2>&1 && elog "Служба vipnetclient установлена"
|
||||
[ -x /usr/bin/vipnetclient-webui ] && rc-update add vipnetclient-webui default >/dev/null 2>&1 && elog "Служба vipnetclient-webui установлена"
|
||||
fi
|
||||
|
||||
[ -x /usr/bin/vipnetclient-webui ] && /etc/init.d/vipnetclient-webui start
|
||||
|
||||
# Update shared libraries paths
|
||||
which ldconfig >/dev/null 2>&1 && ldconfig 2>/dev/null
|
||||
|
||||
# for some distrs
|
||||
find /var/lib/vipnet -type d -exec chmod 755 {} \;
|
||||
|
||||
}
|
||||
|
||||
pkg_prerm () {
|
||||
|
||||
# Sandbox Disabled
|
||||
|
||||
# Размонтируем виртуальный диск
|
||||
umount /home/*/.vipnet/var/run
|
||||
umount /root/.vipnet/var/run
|
||||
|
||||
#update man db
|
||||
mandb >/dev/null 2>&1
|
||||
|
||||
# Update shared libraries paths
|
||||
which ldconfig >/dev/null 2>&1 && ldconfig 2>/dev/null
|
||||
|
||||
# disable service and remove init scripts
|
||||
if which systemctl >/dev/null 2>&1; then
|
||||
systemctl disable vipnetclient >/dev/null 2>&1
|
||||
systemctl disable vipnetclientd >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && systemctl disable vipnetclient-webui >/dev/null 2>&1
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
update-rc.d -f vipnetclient remove >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && update-rc.d -f vipnetclient-webui remove >/dev/null 2>&1
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
rc-update del vipnetclient >/dev/null 2>&1
|
||||
[ -x /usr/bin/vipnetclient-webui ] && rc-update del vipnetclient-webui >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# При новой установке REPLACING_VERSIONS = "", при новой установке pkg_postrm() не выполняется.
|
||||
# При удалении REPLACING_VERSIONS не вычисляется, этап pkg_postinst() не выполняется.
|
||||
# При удалении REPLACED_BY_VERSION = "", при новой установке pkg_postrm() не выполняется.
|
||||
# При обновлении или переустановки выполняются этапы pkg_postinst() и pkg_postrm()
|
||||
# и, соответственно, переменные REPLACING_VERSIONS и REPLACED_BY_VERSION имеют ненулевое значение.
|
||||
# Таким образом мы можем определить, что пакет устанавливается, обновляется, переустанавливается поверх или удаляется
|
||||
# и выстраивать соответствующую логику.
|
||||
|
||||
if [ "${REPLACED_BY_VERSION}" = "" ]; then
|
||||
# Удалим мусор при окончательном удалении
|
||||
elog "Пакет ${PN} окончательно удаляется"
|
||||
rm -rf /etc/systemd/system/vipnetclient*
|
||||
rm -f /etc/rc*/*vipnetclient* >/dev/null 2>&1
|
||||
rm -f /etc/vipnet_token.conf
|
||||
fi
|
||||
|
||||
}
|
Loading…
Reference in new issue