You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
5.1 KiB
170 lines
5.1 KiB
12 months ago
|
# Copyright 1999-2023 Gentoo Authors
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
EAPI="8"
|
||
|
|
||
|
inherit desktop unpacker xdg
|
||
|
|
||
11 months ago
|
DESCRIPTION="ViPNet Client for Linux GUI by JSC InfoTeCS. GUI version"
|
||
12 months ago
|
HOMEPAGE="https://www.vipnet.ru"
|
||
11 months ago
|
|
||
|
MY_PV=${PV/0./0-}
|
||
|
MY_PN=${PN/-gost/_gost}
|
||
|
|
||
11 months ago
|
SRC_URI="
|
||
|
amd64? ( https://git.calculate-linux.org/serg-sg/sources/raw/branch/master/net-vpn/vipnetclient/${MY_PN}_ru_amd64_${MY_PV}.deb )
|
||
|
"
|
||
12 months ago
|
|
||
|
LICENSE=""
|
||
|
SLOT="0"
|
||
|
KEYWORDS="~amd64"
|
||
|
RESTRICT="bindist mirror strip"
|
||
|
|
||
|
RDEPEND="
|
||
|
!net-vpn/vipnetclient-gui-gost
|
||
11 months ago
|
!net-vpn/vipnetclient
|
||
|
!net-vpn/vipnetclient-gost
|
||
11 months ago
|
x11-libs/libxkbcommon[X(+)]
|
||
|
x11-libs/libxcb[xkb(+)]
|
||
|
sys-process/procps
|
||
12 months ago
|
"
|
||
11 months ago
|
#dev-qt/qtgui[linuxfb(+),vnc(+)]
|
||
12 months ago
|
|
||
|
S=${WORKDIR}
|
||
|
|
||
|
pkg_setup() {
|
||
|
|
||
|
# Sandbox Disabled
|
||
|
|
||
11 months ago
|
UPGRADE_DIR="/tmp/vipnetclient"
|
||
|
rm -rf ${UPGRADE_DIR}
|
||
|
mkdir -p ${UPGRADE_DIR}
|
||
12 months ago
|
|
||
|
# Creating file-markers on each existing vipnetclient process and send them USR1
|
||
|
for pid in $(pgrep -U0 -x vipnetclient); do
|
||
|
local user=$(grep -awz USER /proc/${pid}/environ 2>/dev/null | tr -d '\0' | cut -c 6-)
|
||
|
[ -z "$user" ] && continue
|
||
|
echo ${pid} > /tmp/vipnetclient/${user}
|
||
|
done
|
||
|
|
||
|
pkill -x --signal USR1 vipnetclient 2>/dev/null
|
||
|
|
||
|
}
|
||
|
|
||
|
src_unpack() {
|
||
|
|
||
|
unpack_deb ${A}
|
||
|
|
||
11 months ago
|
# Переместим папку systemd чтобы не попал под фильтр INSTALL-MASK
|
||
11 months ago
|
mv -f ${S}/etc/systemd ${S}/var/lib/vipnet/systemd || die
|
||
12 months ago
|
|
||
|
}
|
||
|
|
||
|
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
|
||
|
chown root:root ${D}/usr/bin/vipnetclient-gui 2>/dev/null
|
||
|
chown root:root ${D}/usr/bin/vipnetclient-gui-bin 2>/dev/null
|
||
|
|
||
|
}
|
||
|
|
||
|
pkg_postinst() {
|
||
|
|
||
|
# Sandbox Disabled
|
||
|
|
||
|
# Копируем файлы службы для systemd, без них не работает
|
||
11 months ago
|
mkdir -p /etc/systemd/system || die
|
||
|
cp -rf /var/lib/vipnet/systemd/system/* /etc/systemd/system/ || die
|
||
12 months ago
|
|
||
|
# update man db
|
||
|
mandb >/dev/null 2>&1
|
||
|
|
||
|
# for some distrs
|
||
|
find /var/lib/vipnet -type d -exec chmod 755 {} \;
|
||
|
|
||
|
xdg_icon_cache_update
|
||
|
xdg_mimeinfo_database_update
|
||
|
xdg_desktop_database_update
|
||
|
|
||
|
# create service and init scripts
|
||
|
if which systemctl >/dev/null 2>&1; then
|
||
|
systemctl reset-failed
|
||
11 months ago
|
systemctl stop vipnetclientdaemon*
|
||
|
elog "Служба vipnetclientdaemon установлена"
|
||
|
elif which update-rc.d >/dev/null 2>&1; then
|
||
|
update-rc.d vipnetclient defaults 90 10 >/dev/null 2>&1 \
|
||
|
&& elog "Служба vipnetclient установлена"
|
||
12 months ago
|
elif which rc-update >/dev/null 2>&1; then
|
||
11 months ago
|
rc-update add vipnetclient default \
|
||
|
&& elog "Служба vipnetclient установлена"
|
||
12 months ago
|
fi
|
||
|
|
||
|
# Set capability
|
||
|
/usr/bin/vipnetclient --setcap --version
|
||
|
|
||
|
# Restart each running instance of vipnetclient-gui
|
||
|
pkill -f -USR1 vipnetclient-gui-bin 2>/dev/null
|
||
|
|
||
|
# Update shared libraries paths
|
||
11 months ago
|
#ldconfig 2>/dev/null
|
||
12 months ago
|
which ldconfig >/dev/null 2>&1 && ldconfig 2>/dev/null
|
||
|
}
|
||
|
|
||
|
pkg_prerm () {
|
||
|
|
||
11 months ago
|
# Размонтируем виртуальный диск
|
||
|
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
|
||
|
if [ -f /etc/systemd/system/vipnetclient_gui_login.service ]; then
|
||
|
systemctl disable vipnetclient_gui_login >/dev/null 2>&1
|
||
|
fi
|
||
|
elif which update-rc.d >/dev/null 2>&1; then
|
||
|
update-rc.d -f vipnetclient remove >/dev/null 2>&1
|
||
|
elif which rc-update >/dev/null 2>&1; then
|
||
|
rc-update del vipnetclient >/dev/null 2>&1
|
||
|
fi
|
||
12 months ago
|
|
||
|
# При новой установке 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
|
||
11 months ago
|
GUI_NAME=vipnetclient-gui-bin
|
||
|
pkill -f --signal INT ${GUI_NAME} 2>/dev/null
|
||
|
|
||
12 months ago
|
# Удалим мусор при окончательном удалении
|
||
11 months ago
|
elog "Пакет ${PN} окончательно удаляется"
|
||
12 months ago
|
rm -rf /etc/systemd/system/vipnetclient*
|
||
11 months ago
|
rm -f /etc/rc*/*vipnetclient >/dev/null 2>&1
|
||
|
rm -f /etc/vipnet_token.conf
|
||
12 months ago
|
fi
|
||
|
|
||
11 months ago
|
}
|
||
|
|
||
|
pkg_postrm () {
|
||
|
|
||
11 months ago
|
xdg_icon_cache_update
|
||
|
xdg_mimeinfo_database_update
|
||
|
xdg_desktop_database_update
|
||
12 months ago
|
|
||
|
}
|