diff --git a/README.en.md b/README.en.md deleted file mode 100644 index cb6f626761323f49c523b7e93757c16607bd89b1..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# mrtg - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index b187d518d14a74938a87ad486f1820a5f3c115a0..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# mrtg - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/filter-provides-mrtg.sh b/filter-provides-mrtg.sh new file mode 100644 index 0000000000000000000000000000000000000000..509570bee6834e5e34d7a2a90b6a9cd32bf1c4d9 --- /dev/null +++ b/filter-provides-mrtg.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +/usr/lib/rpm/find-provides "$@" | grep -v 'perl(\(SNMP_util\|SNMP_Session\|BER\|SNMPv1_Session\|SNMPv2c_Session\))' +exit 0 diff --git a/filter-requires-mrtg.sh b/filter-requires-mrtg.sh new file mode 100644 index 0000000000000000000000000000000000000000..b4295eb6ef24b58b21aac5c84539870d891e0532 --- /dev/null +++ b/filter-requires-mrtg.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +/usr/lib/rpm/find-requires "$@" | grep -v 'perl(\(GD\|MRP::BaseClass\|Net::SNMP\))' diff --git a/mrtg-2.15.0-lib64.patch b/mrtg-2.15.0-lib64.patch new file mode 100644 index 0000000000000000000000000000000000000000..53a88ecb4343a44225e286a784a48d2b454906e4 --- /dev/null +++ b/mrtg-2.15.0-lib64.patch @@ -0,0 +1,48 @@ +diff -up mrtg-2.17.7/bin/cfgmaker.orig mrtg-2.17.7/bin/cfgmaker +--- mrtg-2.17.7/bin/cfgmaker.orig 2018-07-13 08:09:56.000000000 +0200 ++++ mrtg-2.17.7/bin/cfgmaker 2018-08-08 13:07:38.419241131 +0200 +@@ -44,7 +44,7 @@ BEGIN { + + use FindBin; + use lib "${FindBin::Bin}"; +-use lib "${FindBin::Bin}${main::SL}..${main::SL}lib${main::SL}mrtg2"; ++use lib "${FindBin::Bin}${main::SL}..${main::SL}@@lib@@${main::SL}mrtg2"; + + use MRTG_lib "2.100015"; + use Getopt::Long; +diff -up mrtg-2.17.7/bin/indexmaker.orig mrtg-2.17.7/bin/indexmaker +--- mrtg-2.17.7/bin/indexmaker.orig 2018-07-13 08:09:56.000000000 +0200 ++++ mrtg-2.17.7/bin/indexmaker 2018-08-08 13:08:41.187309764 +0200 +@@ -48,7 +48,7 @@ BEGIN { + + use FindBin; + use lib "${FindBin::Bin}"; +-use lib "${FindBin::Bin}${main::SL}..${main::SL}lib${main::SL}mrtg2"; ++use lib "${FindBin::Bin}${main::SL}..${main::SL}@@lib@@${main::SL}mrtg2"; + + use MRTG_lib "2.100016"; + use Getopt::Long; +diff -up mrtg-2.17.7/bin/mrtg.orig mrtg-2.17.7/bin/mrtg +--- mrtg-2.17.7/bin/mrtg.orig 2018-07-13 08:09:56.000000000 +0200 ++++ mrtg-2.17.7/bin/mrtg 2018-08-08 13:09:07.459338491 +0200 +@@ -81,7 +81,7 @@ ERR + + use FindBin; + use lib "${FindBin::Bin}"; +-use lib "${FindBin::Bin}${main::SL}..${main::SL}lib${main::SL}mrtg2"; ++use lib "${FindBin::Bin}${main::SL}..${main::SL}@@lib@@${main::SL}mrtg2"; + use Getopt::Long; + use Math::BigFloat; + +diff -up mrtg-2.17.7/bin/mrtg-traffic-sum.orig mrtg-2.17.7/bin/mrtg-traffic-sum +--- mrtg-2.17.7/bin/mrtg-traffic-sum.orig 2017-03-05 15:09:52.000000000 +0100 ++++ mrtg-2.17.7/bin/mrtg-traffic-sum 2018-08-08 13:08:17.650284034 +0200 +@@ -33,7 +33,7 @@ BEGIN { + + use FindBin; + use lib "${FindBin::Bin}"; +-use lib "${FindBin::Bin}${main::SL}..${main::SL}lib${main::SL}mrtg2"; ++use lib "${FindBin::Bin}${main::SL}..${main::SL}@@lib@@${main::SL}mrtg2"; + use MRTG_lib "2.090017"; + use POSIX qw(mktime); + diff --git a/mrtg-2.17.2-socket6-fix.patch b/mrtg-2.17.2-socket6-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..5f08189d29e576ca32deb282e7933299c9c5782e --- /dev/null +++ b/mrtg-2.17.2-socket6-fix.patch @@ -0,0 +1,33 @@ +diff -up mrtg-2.17.7/bin/mrtg.orig mrtg-2.17.7/bin/mrtg +--- mrtg-2.17.7/bin/mrtg.orig 2018-08-08 13:09:59.682296406 +0200 ++++ mrtg-2.17.7/bin/mrtg 2018-08-08 13:11:01.089173582 +0200 +@@ -302,7 +302,7 @@ sub main { + if ($cfg{enableipv6} eq 'yes') { + if ( eval {local $SIG{__DIE__};require Socket; require Socket6; require IO::Socket::INET6;}) { + import Socket; +- import Socket6; ++ Socket6->import(qw(inet_pton getaddrinfo)); + debug('base', "IPv6 libraries found, IPv6 enabled."); + } else { + warn "$NOW: WARNING: IPv6 libraries not found, IPv6 disabled.\n"; +diff -up mrtg-2.17.7/lib/mrtg2/SNMP_Session.pm.orig mrtg-2.17.7/lib/mrtg2/SNMP_Session.pm +--- mrtg-2.17.7/lib/mrtg2/SNMP_Session.pm.orig 2018-07-13 08:09:56.000000000 +0200 ++++ mrtg-2.17.7/lib/mrtg2/SNMP_Session.pm 2018-08-08 13:13:15.361988807 +0200 +@@ -146,7 +146,7 @@ BEGIN { + + if (eval {local $SIG{__DIE__};require Socket6;} && + eval {local $SIG{__DIE__};require IO::Socket::INET6; IO::Socket::INET6->VERSION("1.26");}) { +- Socket6->import(qw(pack_sockaddr_in6 inet_pton getaddrinfo)); ++ Socket6->import(qw(inet_pton getaddrinfo inet_ntop)); + $ipv6_addr_len = length(pack_sockaddr_in6(161, inet_pton(AF_INET6(), "::1"))); + $SNMP_Session::ipv6available = 1; + } +@@ -601,7 +601,7 @@ use Carp; + BEGIN { + if($SNMP_Session::ipv6available) { + import IO::Socket::INET6; +- Socket6->import(qw(pack_sockaddr_in6 inet_pton getaddrinfo)); ++ Socket6->import(qw(inet_pton getaddrinfo inet_ntop)); + } + } + diff --git a/mrtg-2.17.4-cfgmaker-ifhighspeed.patch b/mrtg-2.17.4-cfgmaker-ifhighspeed.patch new file mode 100644 index 0000000000000000000000000000000000000000..3ec8bf703e4a79352aefedde22b27c0e78a80394 --- /dev/null +++ b/mrtg-2.17.4-cfgmaker-ifhighspeed.patch @@ -0,0 +1,12 @@ +diff -up mrtg-2.17.7/bin/cfgmaker.orig mrtg-2.17.7/bin/cfgmaker +--- mrtg-2.17.7/bin/cfgmaker.orig 2018-08-08 13:14:19.609048676 +0200 ++++ mrtg-2.17.7/bin/cfgmaker 2018-08-08 13:15:17.795102892 +0200 +@@ -224,7 +224,7 @@ sub InterfaceInfo($$$$$) { + # maximum value (4,294,967,295) and ifHighSpeed must be used + # to report the interace's speed. For a sub-layer which has + # no concept of bandwidth, this object should be zero." +- if ( (not defined $value) || ($value == 2**32-1) ) { ++ if ( (not defined $value) || ($value == 2**32-1) || ($value == 2**32-2)) { + ($if, $value) = split /:/, $ifHighSpeed[$i], 2; + $value = $value * 1000000; # highSpeed = contador * 10^6 + debug('base',"Speed: $if - $value"); diff --git a/mrtg-2.17.7.tar.gz b/mrtg-2.17.7.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..468092a5548b03e6877f48d15b9c835aadac90f6 Binary files /dev/null and b/mrtg-2.17.7.tar.gz differ diff --git a/mrtg-2.17.7.tar.gz.md5 b/mrtg-2.17.7.tar.gz.md5 new file mode 100644 index 0000000000000000000000000000000000000000..7c6cb84f3a54f6dc12f2d816dd072320c2670d57 --- /dev/null +++ b/mrtg-2.17.7.tar.gz.md5 @@ -0,0 +1 @@ +eada3870c0419e425299401486600d95 mrtg-2.17.7.tar.gz diff --git a/mrtg-httpd.conf b/mrtg-httpd.conf new file mode 100644 index 0000000000000000000000000000000000000000..b2fd2ea442c7c5a451174cb069208aae9b789130 --- /dev/null +++ b/mrtg-httpd.conf @@ -0,0 +1,12 @@ +# +# This configuration file maps the mrtg output (generated daily) +# into the URL space. By default these results are only accessible +# from the local host. +# +Alias /mrtg /var/www/mrtg + + + Require local + # Require ip 10.1.2.3 + # Require host example.org + diff --git a/mrtg.cfg b/mrtg.cfg new file mode 100644 index 0000000000000000000000000000000000000000..f4e7534581f70186154717d6a23a4df969154f12 --- /dev/null +++ b/mrtg.cfg @@ -0,0 +1,23 @@ +###################################################################### +# Multi Router Traffic Grapher -- Example Configuration File +###################################################################### +# This file is for use with mrtg-2.0 +# +# Note: +# +# * Keywords must start at the begin of a line. +# +# * Lines which follow a keyword line which do start +# with a blank are appended to the keyword line +# +# * Empty Lines are ignored +# * Lines starting with a # sign are comments. +# Where should the logfiles, and webpages be created? + +# Minimal mrtg.cfg +#-------------------- + +HtmlDir: /var/www/mrtg +ImageDir: /var/www/mrtg +LogDir: /var/lib/mrtg +ThreshDir: /var/lib/mrtg diff --git a/mrtg.service b/mrtg.service new file mode 100644 index 0000000000000000000000000000000000000000..48719a05761fb32b1a509910825c6a0dc2b2d722 --- /dev/null +++ b/mrtg.service @@ -0,0 +1,29 @@ +# To customize, copy this file to /etc/systemd/system and edit there +# +# This unit facilitates starting of MRTG. There are 2 options of +# how to run MRTG: +# - as a daemon (preferred); in this case please put +# RunAsDaemon: yes in mrtg.conf (or use --daemon switch) +# - periodically - please see and enable mrtg.timer +# Periodic settings need Type=oneshot set here +# +# Other recommended settings in mrtg.cfg for daemon mode: +# NoDetach: yes +# If you set this, change below Type=simple +# +# Please disable /etc/crond.d/mrtg job when using this unit! +# +# do not enable both mrtg-as-a-daemon and timer at the same time + +[Unit] +Description=Multi-router Traffic Grapher +After=syslog.target + +[Service] +Environment=LANG=C +ExecStart=/usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok +Type=simple +StandardOutput=syslog + +[Install] +WantedBy=multi-user.target diff --git a/mrtg.spec b/mrtg.spec new file mode 100644 index 0000000000000000000000000000000000000000..da06d4a3daac18656b7891539fe424568a50e8b2 --- /dev/null +++ b/mrtg.spec @@ -0,0 +1,126 @@ +%global _use_internal_dependency_generator 0 +%global contentdir %{_localstatedir}/www/mrtg +%global libdir %{_localstatedir}/lib/mrtg +%global __find_requires %_sourcedir/filter-requires-mrtg.sh +%global __find_provides %_sourcedir/filter-provides-mrtg.sh + +Name: mrtg +Version: 2.17.7 +Release: 3 +Summary: Multi Router Traffic Grapher + +License: GPLv2+ +URL: http://oss.oetiker.ch/mrtg/ +Source0: http://oss.oetiker.ch/mrtg/pub/mrtg-%{version}.tar.gz +Source1: mrtg.cfg +Source2: filter-requires-mrtg.sh +Source3: mrtg-httpd.conf +Source4: filter-provides-mrtg.sh +Source5: mrtg.tmpfiles +Source6: mrtg.service +Source7: mrtg.timer + +Patch0: mrtg-2.15.0-lib64.patch +Patch1: mrtg-2.17.2-socket6-fix.patch +Patch2: mrtg-2.17.4-cfgmaker-ifhighspeed.patch + +BuildRequires: gd-devel libpng-devel perl-generators systemd-units gcc +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires: perl-Socket6 perl-IO-Socket-INET6 gd + +%description +MRTG is a tool to monitor SNMP network devices and draw pretty pictures showing +how much traffic has passed through each interface. + +%package_help + +%prep +%autosetup -n %{name}-%{version} -p1 + +rm -rf contrib/nt-services + +for i in doc/mrtg-forum.1 doc/mrtg-squid.1 CHANGES; do + iconv -f iso-8859-1 -t utf-8 < "$i" > "${i}_" + mv "${i}_" "$i" +done + +%build +%configure +make LIBS='-lgd -lm' +pushd contrib +find . -type f -exec \ + %{__perl} -e 's,^#!/\s*\S*perl\S*,#!%{__perl},gi' -p -i \{\} \; +find . -name "*.pl" -exec %{__perl} -e 's;\015;;gi' -p -i \{\} \; +find . -type f | xargs chmod a-x +popd + +%install +chmod +x %_sourcedir/filter-*-mrtg.sh +%make_install + +pushd %{buildroot} +mkdir -p .%{contentdir} +mkdir -p .%{_sysconfdir}/mrtg +mkdir -p .%{_sysconfdir}/httpd/conf.d +mkdir -p .%{_localstatedir}/lib/mrtg +mkdir -p .%{_localstatedir}/lock/mrtg + +install -m 644 %_builddir/%{name}-%{version}/images/* .%{contentdir}/ +install -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/mrtg/mrtg.cfg +install -m 644 %{SOURCE3} .%{_sysconfdir}/httpd/conf.d/mrtg.conf +mkdir -p ./%{_tmpfilesdir} +install -p -D -m 644 %{SOURCE5} ./%{_tmpfilesdir}/mrtg.conf + +mkdir -p .%{_unitdir} +install -p -m 644 %{SOURCE6} .%{_unitdir}/mrtg.service +install -p -m 644 %{SOURCE7} .%{_unitdir}/mrtg.timer + +for i in mrtg cfgmaker indexmaker mrtg-traffic-sum; do + sed -i 's;@@lib@@;%{_lib};g' .%{_bindir}/"$i" +done + +sed -i 's;@@lib@@;%{_lib};g' .%{_mandir}/man1/*.1 +popd + +%post +install -d -m 0755 -o root -g root /var/lock/mrtg +restorecon /var/lock/mrtg +%systemd_post mrtg.service + +%preun +if [ $1 -eq 0 ]; then + rm -rf /var/lock/mrtg +fi +%systemd_preun mrtg.service + +%postun +%systemd_postun_with_restart mrtg.service + +%files +%defattr(-,root,root) +%license COPYING COPYRIGHT +%ghost /var/lock/mrtg +%{_tmpfilesdir}/mrtg.conf +%dir %{_sysconfdir}/mrtg +%config(noreplace) %{_sysconfdir}/mrtg/mrtg.cfg +%config(noreplace) %{_sysconfdir}/httpd/conf.d/mrtg.conf +%{_bindir}/* +%{_libdir}/mrtg2 +%dir %{_localstatedir}/lib/mrtg +%{_unitdir}/mrtg.timer +%{_unitdir}/mrtg.service +%{contentdir} +%exclude %{_datadir}/doc/mrtg2 +%exclude %{_datadir}/mrtg2/icons +%exclude %{_libdir}/mrtg2/Pod + +%files help +%defattr(-,root,root) +%doc contrib CHANGES README THANKS +%{_mandir}/*/* + +%changelog +* Thu Nov 21 2019 openEuler Buildteam - 2.17.7-3 +- Package init diff --git a/mrtg.timer b/mrtg.timer new file mode 100644 index 0000000000000000000000000000000000000000..f8213522447593dcd9779c1e00393114df5acc71 --- /dev/null +++ b/mrtg.timer @@ -0,0 +1,20 @@ +# To customize, copy this file to /etc/systemd/system and edit there +# +# You can use this unit to periodically run mrtg.service. +# Only enable if you do not want to run mrtg as a daemon. +# Starting mrtg.timer while mrtg.service is running as a daemon has no point. +# +# Please disable /etc/crond.d/mrtg job when using this unit! +# +# Default is to run mrtg.service every 5 minutes, starting +# 1 minute after system boot. + +[Unit] +Description=periodic invocation of MRTG + +[Timer] +OnBootSec=2m +OnUnitActiveSec=6m + +[Install] +WantedBy=multi-user.target diff --git a/mrtg.tmpfiles b/mrtg.tmpfiles new file mode 100644 index 0000000000000000000000000000000000000000..b38b0de92b3b078f76808d82ad8ac4899086149e --- /dev/null +++ b/mrtg.tmpfiles @@ -0,0 +1,2 @@ +d /var/lock/mrtg 0755 root root - +d /var/lib/mrtg 0755 root root -