mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-10 02:55:55 +02:00
Merge remote-tracking branch 'ms/frr' into next
This commit is contained in:
1
config/backup/includes/frr
Normal file
1
config/backup/includes/frr
Normal file
@@ -0,0 +1 @@
|
||||
/etc/frr
|
||||
21
config/rootfiles/common/json-c
Normal file
21
config/rootfiles/common/json-c
Normal file
@@ -0,0 +1,21 @@
|
||||
#usr/include/json-c
|
||||
#usr/include/json-c/arraylist.h
|
||||
#usr/include/json-c/bits.h
|
||||
#usr/include/json-c/debug.h
|
||||
#usr/include/json-c/json.h
|
||||
#usr/include/json-c/json_c_version.h
|
||||
#usr/include/json-c/json_config.h
|
||||
#usr/include/json-c/json_inttypes.h
|
||||
#usr/include/json-c/json_object.h
|
||||
#usr/include/json-c/json_object_iterator.h
|
||||
#usr/include/json-c/json_pointer.h
|
||||
#usr/include/json-c/json_tokener.h
|
||||
#usr/include/json-c/json_util.h
|
||||
#usr/include/json-c/json_visit.h
|
||||
#usr/include/json-c/linkhash.h
|
||||
#usr/include/json-c/printbuf.h
|
||||
#usr/lib/libjson-c.la
|
||||
#usr/lib/libjson-c.so
|
||||
usr/lib/libjson-c.so.4
|
||||
usr/lib/libjson-c.so.4.0.0
|
||||
#usr/lib/pkgconfig/json-c.pc
|
||||
129
config/rootfiles/packages/frr
Normal file
129
config/rootfiles/packages/frr
Normal file
@@ -0,0 +1,129 @@
|
||||
#etc/frr
|
||||
etc/frr/bgpd.conf.sample
|
||||
etc/frr/bgpd.conf.sample2
|
||||
etc/frr/bgpd.conf.vnc.sample
|
||||
etc/frr/ospfd.conf.sample
|
||||
etc/frr/ripngd.conf.sample
|
||||
etc/frr/staticd.conf.sample
|
||||
etc/frr/vtysh.conf.sample
|
||||
etc/frr/zebra.conf.sample
|
||||
etc/rc.d/init.d/frr
|
||||
usr/bin/bgp_btoa
|
||||
usr/bin/vtysh
|
||||
#usr/include/frr
|
||||
#usr/include/frr/bfd.h
|
||||
#usr/include/frr/bitfield.h
|
||||
#usr/include/frr/buffer.h
|
||||
#usr/include/frr/checksum.h
|
||||
#usr/include/frr/command.h
|
||||
#usr/include/frr/command_graph.h
|
||||
#usr/include/frr/command_match.h
|
||||
#usr/include/frr/compiler.h
|
||||
#usr/include/frr/csv.h
|
||||
#usr/include/frr/debug.h
|
||||
#usr/include/frr/distribute.h
|
||||
#usr/include/frr/eigrpd
|
||||
#usr/include/frr/eigrpd/eigrp_dump.h
|
||||
#usr/include/frr/eigrpd/eigrp_topology.h
|
||||
#usr/include/frr/eigrpd/eigrpd.h
|
||||
#usr/include/frr/event_counter.h
|
||||
#usr/include/frr/ferr.h
|
||||
#usr/include/frr/fifo.h
|
||||
#usr/include/frr/filter.h
|
||||
#usr/include/frr/freebsd-queue.h
|
||||
#usr/include/frr/frr_pthread.h
|
||||
#usr/include/frr/frratomic.h
|
||||
#usr/include/frr/frrstr.h
|
||||
#usr/include/frr/getopt.h
|
||||
#usr/include/frr/graph.h
|
||||
#usr/include/frr/hash.h
|
||||
#usr/include/frr/hook.h
|
||||
#usr/include/frr/if.h
|
||||
#usr/include/frr/if_rmap.h
|
||||
#usr/include/frr/imsg.h
|
||||
#usr/include/frr/ipaddr.h
|
||||
#usr/include/frr/jhash.h
|
||||
#usr/include/frr/json.h
|
||||
#usr/include/frr/keychain.h
|
||||
#usr/include/frr/lib_errors.h
|
||||
#usr/include/frr/libfrr.h
|
||||
#usr/include/frr/libospf.h
|
||||
#usr/include/frr/linklist.h
|
||||
#usr/include/frr/log.h
|
||||
#usr/include/frr/logicalrouter.h
|
||||
#usr/include/frr/md5.h
|
||||
#usr/include/frr/memory.h
|
||||
#usr/include/frr/memory_vty.h
|
||||
#usr/include/frr/module.h
|
||||
#usr/include/frr/monotime.h
|
||||
#usr/include/frr/mpls.h
|
||||
#usr/include/frr/network.h
|
||||
#usr/include/frr/nexthop.h
|
||||
#usr/include/frr/nexthop_group.h
|
||||
#usr/include/frr/ns.h
|
||||
#usr/include/frr/openbsd-queue.h
|
||||
#usr/include/frr/openbsd-tree.h
|
||||
#usr/include/frr/ospfd
|
||||
#usr/include/frr/ospfd/ospf_api.h
|
||||
#usr/include/frr/ospfd/ospf_asbr.h
|
||||
#usr/include/frr/ospfd/ospf_dump.h
|
||||
#usr/include/frr/ospfd/ospf_dump_api.h
|
||||
#usr/include/frr/ospfd/ospf_ism.h
|
||||
#usr/include/frr/ospfd/ospf_lsa.h
|
||||
#usr/include/frr/ospfd/ospf_lsdb.h
|
||||
#usr/include/frr/ospfd/ospf_nsm.h
|
||||
#usr/include/frr/ospfd/ospf_opaque.h
|
||||
#usr/include/frr/ospfd/ospfd.h
|
||||
#usr/include/frr/pbr.h
|
||||
#usr/include/frr/plist.h
|
||||
#usr/include/frr/pqueue.h
|
||||
#usr/include/frr/prefix.h
|
||||
#usr/include/frr/privs.h
|
||||
#usr/include/frr/ptm_lib.h
|
||||
#usr/include/frr/pw.h
|
||||
#usr/include/frr/qobj.h
|
||||
#usr/include/frr/queue.h
|
||||
#usr/include/frr/ringbuf.h
|
||||
#usr/include/frr/route_types.h
|
||||
#usr/include/frr/routemap.h
|
||||
#usr/include/frr/sbuf.h
|
||||
#usr/include/frr/sha256.h
|
||||
#usr/include/frr/sigevent.h
|
||||
#usr/include/frr/skiplist.h
|
||||
#usr/include/frr/sockopt.h
|
||||
#usr/include/frr/sockunion.h
|
||||
#usr/include/frr/spf_backoff.h
|
||||
#usr/include/frr/srcdest_table.h
|
||||
#usr/include/frr/stream.h
|
||||
#usr/include/frr/systemd.h
|
||||
#usr/include/frr/table.h
|
||||
#usr/include/frr/termtable.h
|
||||
#usr/include/frr/thread.h
|
||||
#usr/include/frr/vector.h
|
||||
#usr/include/frr/version.h
|
||||
#usr/include/frr/vlan.h
|
||||
#usr/include/frr/vrf.h
|
||||
#usr/include/frr/vrf_int.h
|
||||
#usr/include/frr/vty.h
|
||||
#usr/include/frr/vxlan.h
|
||||
#usr/include/frr/wheel.h
|
||||
#usr/include/frr/workqueue.h
|
||||
#usr/include/frr/zassert.h
|
||||
#usr/include/frr/zclient.h
|
||||
#usr/include/frr/zebra.h
|
||||
#usr/lib/libfrr.a
|
||||
#usr/lib/libfrr.la
|
||||
#usr/lib/libfrr.so
|
||||
usr/lib/libfrr.so.0
|
||||
usr/lib/libfrr.so.0.0.0
|
||||
usr/sbin/bgpd
|
||||
usr/sbin/frr
|
||||
usr/sbin/frr-reload
|
||||
usr/sbin/frr-reload.py
|
||||
usr/sbin/ospfd
|
||||
usr/sbin/rfptest
|
||||
usr/sbin/ssd
|
||||
usr/sbin/staticd
|
||||
usr/sbin/watchfrr
|
||||
usr/sbin/zebra
|
||||
var/ipfire/backup/addons/includes/frr
|
||||
114
lfs/frr
Normal file
114
lfs/frr
Normal file
@@ -0,0 +1,114 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# IPFire.org - A linux based firewall #
|
||||
# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
|
||||
# #
|
||||
# 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 3 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, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
###############################################################################
|
||||
# Definitions
|
||||
###############################################################################
|
||||
|
||||
include Config
|
||||
|
||||
VER = 6.0
|
||||
|
||||
THISAPP = frr-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.xz
|
||||
DL_FROM = $(URL_IPFIRE)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
PROG = frr
|
||||
PAK_VER = 1
|
||||
|
||||
DEPS = ""
|
||||
|
||||
###############################################################################
|
||||
# Top-level Rules
|
||||
###############################################################################
|
||||
|
||||
objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = d725c08e0093f58e5fcac0969c781813
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
|
||||
|
||||
download :$(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
|
||||
md5 : $(subst %,%_MD5,$(objects))
|
||||
|
||||
dist:
|
||||
@$(PAK)
|
||||
|
||||
###############################################################################
|
||||
# Downloading, checking, md5sum
|
||||
###############################################################################
|
||||
|
||||
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
|
||||
@$(CHECK)
|
||||
|
||||
$(patsubst %,$(DIR_DL)/%,$(objects)) :
|
||||
@$(LOAD)
|
||||
|
||||
$(subst %,%_MD5,$(objects)) :
|
||||
@$(MD5)
|
||||
|
||||
###############################################################################
|
||||
# Installation Details
|
||||
###############################################################################
|
||||
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
||||
cd $(DIR_APP) && ./configure \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc/frr \
|
||||
--localstatedir=/var/run/frr \
|
||||
--enable-user="frr" \
|
||||
--enable-group="frr" \
|
||||
--enable-vty-group="frrvty" \
|
||||
--enable-multipath=64 \
|
||||
--disable-doc \
|
||||
--disable-babeld \
|
||||
--disable-bfdd \
|
||||
--disable-eigrpd \
|
||||
--disable-irdp \
|
||||
--disable-isisd \
|
||||
--disable-ldpd \
|
||||
--disable-nhrpd \
|
||||
--disable-ospf6d \
|
||||
--disable-ospfapi \
|
||||
--disable-pbrd \
|
||||
--disable-pimd \
|
||||
--disable-ripd \
|
||||
--disable-ripngd
|
||||
cd $(DIR_APP) && make $(MAKETUNING)
|
||||
cd $(DIR_APP) && make install
|
||||
|
||||
# Install backup include
|
||||
install -v -m 644 $(DIR_SRC)/config/backup/includes/frr \
|
||||
/var/ipfire/backup/addons/includes/frr
|
||||
|
||||
# Install initscript
|
||||
$(call INSTALL_INITSCRIPT,frr)
|
||||
|
||||
@rm -rf $(DIR_APP)
|
||||
@$(POSTBUILD)
|
||||
|
||||
80
lfs/json-c
Normal file
80
lfs/json-c
Normal file
@@ -0,0 +1,80 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# IPFire.org - A linux based firewall #
|
||||
# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
|
||||
# #
|
||||
# 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 3 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, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
###############################################################################
|
||||
# Definitions
|
||||
###############################################################################
|
||||
|
||||
include Config
|
||||
|
||||
VER = 0.13.1
|
||||
|
||||
THISAPP = json-c-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
DL_FROM = $(URL_IPFIRE)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
|
||||
###############################################################################
|
||||
# Top-level Rules
|
||||
###############################################################################
|
||||
|
||||
objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 04969ad59cc37bddd83741a08b98f350
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
|
||||
|
||||
download :$(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
|
||||
md5 : $(subst %,%_MD5,$(objects))
|
||||
|
||||
dist:
|
||||
@$(PAK)
|
||||
|
||||
###############################################################################
|
||||
# Downloading, checking, md5sum
|
||||
###############################################################################
|
||||
|
||||
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
|
||||
@$(CHECK)
|
||||
|
||||
$(patsubst %,$(DIR_DL)/%,$(objects)) :
|
||||
@$(LOAD)
|
||||
|
||||
$(subst %,%_MD5,$(objects)) :
|
||||
@$(MD5)
|
||||
|
||||
###############################################################################
|
||||
# Installation Details
|
||||
###############################################################################
|
||||
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
||||
cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
|
||||
cd $(DIR_APP) && make $(MAKETUNING)
|
||||
cd $(DIR_APP) && make install
|
||||
@rm -rf $(DIR_APP)
|
||||
@$(POSTBUILD)
|
||||
2
make.sh
2
make.sh
@@ -1176,6 +1176,7 @@ buildipfire() {
|
||||
lfsmake2 libgcrypt
|
||||
lfsmake2 libassuan
|
||||
lfsmake2 nettle
|
||||
lfsmake2 json-c
|
||||
lfsmake2 libevent
|
||||
lfsmake2 libevent2
|
||||
lfsmake2 expat
|
||||
@@ -1556,6 +1557,7 @@ buildipfire() {
|
||||
lfsmake2 lua
|
||||
lfsmake2 dnsdist
|
||||
lfsmake2 bird
|
||||
lfsmake2 frr
|
||||
lfsmake2 dmidecode
|
||||
lfsmake2 mcelog
|
||||
lfsmake2 rtpproxy
|
||||
|
||||
63
src/initscripts/packages/frr
Executable file
63
src/initscripts/packages/frr
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/frr
|
||||
#
|
||||
# Description : FRRouting Suite
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
|
||||
DAEMONS="zebra bgpd ospfd staticd"
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
# Fix permissions of configuration directory
|
||||
if [ -d "/etc/frr" ]; then
|
||||
chown root.frr /etc/frr
|
||||
chmod 775 /etc/frr
|
||||
fi
|
||||
|
||||
for daemon in ${DAEMONS}; do
|
||||
if [ -f "/etc/frr/${daemon}.conf" ]; then
|
||||
# Set permissions
|
||||
chown frr.frr "/etc/frr/${daemon}.conf"
|
||||
|
||||
boot_mesg "Starting FRRouting ${daemon}..."
|
||||
loadproc "/usr/sbin/${daemon}" --daemon
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
stop)
|
||||
for daemon in ${DAEMONS}; do
|
||||
boot_mesg "Stopping FRRouting ${daemon}..."
|
||||
killproc "/usr/sbin/${daemon}"
|
||||
done
|
||||
;;
|
||||
|
||||
reload)
|
||||
boot_mesg "Reloading FRRouting..."
|
||||
reloadproc /usr/sbin/frr-reload
|
||||
;;
|
||||
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
|
||||
status)
|
||||
for daemon in ${DAEMONS}; do
|
||||
statusproc "/usr/sbin/${daemon}"
|
||||
done
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|reload|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/frr
|
||||
52
src/paks/frr/install.sh
Normal file
52
src/paks/frr/install.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# #
|
||||
# This file is part of the IPFire Firewall. #
|
||||
# #
|
||||
# IPFire 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. #
|
||||
# #
|
||||
# IPFire 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 IPFire; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
|
||||
# #
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
|
||||
if ! getent group frr &>/dev/null; then
|
||||
groupadd -r frr
|
||||
fi
|
||||
|
||||
if ! getent group frrvty &>/dev/null; then
|
||||
groupadd -r frrvty
|
||||
fi
|
||||
|
||||
if ! getent passwd frr &>/dev/null; then
|
||||
useradd -r frr -g frr -s /bin/false -b /var/empty -G frrvty
|
||||
fi
|
||||
|
||||
# Extract files
|
||||
extract_files
|
||||
|
||||
# Restore any backups
|
||||
restore_backup "${NAME}"
|
||||
|
||||
# Start services
|
||||
start_service "${NAME}"
|
||||
|
||||
# Enable autostart
|
||||
ln -svf ../init.d/frr /etc/rc.d/rc0.d/K40frr
|
||||
ln -svf ../init.d/frr /etc/rc.d/rc3.d/S50frr
|
||||
ln -svf ../init.d/frr /etc/rc.d/rc6.d/K40frr
|
||||
|
||||
exit 0
|
||||
35
src/paks/frr/uninstall.sh
Normal file
35
src/paks/frr/uninstall.sh
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# #
|
||||
# This file is part of the IPFire Firewall. #
|
||||
# #
|
||||
# IPFire 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. #
|
||||
# #
|
||||
# IPFire 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 IPFire; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
|
||||
# #
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
|
||||
# Stop services
|
||||
stop_service "${NAME}"
|
||||
|
||||
# Create backup
|
||||
extract_backup_includes
|
||||
make_backup "${NAME}"
|
||||
|
||||
# Remove all files
|
||||
rm -rfv /etc/rc.d/rc*.d/*frr
|
||||
remove_files
|
||||
26
src/paks/frr/update.sh
Normal file
26
src/paks/frr/update.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# #
|
||||
# This file is part of the IPFire Firewall. #
|
||||
# #
|
||||
# IPFire 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. #
|
||||
# #
|
||||
# IPFire 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 IPFire; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
|
||||
# #
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
./uninstall.sh
|
||||
./install.sh
|
||||
Reference in New Issue
Block a user