Hello Matthias,
as I see it, most of the discussion came up because of 'formalities'. Michael tries to survey the style and way of project development. Frank doesn't want to discuss his work, IMHO.
Therefore I posted my short analysis of the code to bring it bach to the facts. Remains the question how to go further. Frank declared in the community thread, he is not willing to maintain his code officially. Michael and some users in the community think there is some need for the feature. Whether pmacct is a solution, I don't know.
Regards, Bernhard
Gesendet: Dienstag, 26. Januar 2021 um 17:45 Uhr Von: "Matthias Fischer" matthias.fischer@ipfire.org An: "Michael Tremer" michael.tremer@ipfire.org Cc: development@lists.ipfire.org Betreff: Re: [PATCH] New package: IPTraffic 0.8.2
Hi,
On 25.01.2021 20:27, Michael Tremer wrote:
Hello Matthias,
Thank you for submitting the patch.
It is great to see more people taking part in development tasks, but I am not really sure what has been done here.
The main problem is that I do not know what IPTraffic does, or how it works. The code is in a tarball and I am not aware if there is a Git repository to see what has been changed over time.
Oh my, just came back from work and had to read a lot of postings here. Hm...
I must confess I was puzzled after reading through all of it - its a pity.
Perhaps I should have coded this for Pakfire in a different manner to make things more transparent and perhaps avoid a bit of todays discussions - but I can't make that undone. It started with a classical ipcop installation script.
As I see it, Bernhard has already looked through the code. The only thing I can think of now: I could rewrite the build process - if this makes still sense, let me know. If it doesn't fit our needs - than thats it.
On 17 Jan 2021, at 17:15, Matthias Fischer matthias.fischer@ipfire.org wrote:
From: Frank Mainz frank@cybermainzel.de
Please note: This is a port of the old 'IPTraffics' addon from ipcop to ipfire done by RadioCarbon (Frank Mainz). He asked me to publish this for him - ALL programming work was done by him. I'm only the MITM.
You can use “git commit —-author=…” to set the correct author and you should sign-off as yourself as usual.
FYI: This is exactly what I did in the *first* commit... => https://patchwork.ipfire.org/patch/3813/
...and in GIT:
=> https://git.ipfire.org/?p=people/mfischer/ipfire-2.x.git;a=commit;h=bc2af5d1...
...but I forgot to do set the author in the last one. That happens.
So to go back to the usual question: What is being proposed here and why?
Who is this add-on for? What are its features, and what are its limitations?
Why is this realised as add-on and not as part of the core system? I do not want to suggest that it should be either. It just seems that this decision has been made I would like to know based on what reasons :)
As I see it - it was once written as an addon and just stayed in this condition. No one had the idea to integrate it. Simple.
Don't get me wrong - I'm not offended - just a little disappointed how the whole thing has gone here at once and would definitely try to still get the best out of it.
Best, Matthias
Best, -Michael
Description: With the add-on “IPTraffic” you can determine the traffic of a computer based on its IP address. Only the traffic between IPFire and the client to be monitored can be determined. The display is shown once as a tabular overview and additionally a statistical graphic can be called up for each client over the period of the last hour, day, week, month and year.
Signed-off-by: Matthias Fischer matthias.fischer@ipfire.org
config/rootfiles/packages/iptraffic | 22 ++++++ lfs/iptraffic | 108 ++++++++++++++++++++++++++++ make.sh | 1 + src/paks/iptraffic/install.sh | 40 +++++++++++ src/paks/iptraffic/uninstall.sh | 28 ++++++++ src/paks/iptraffic/update.sh | 26 +++++++ 6 files changed, 225 insertions(+) create mode 100644 config/rootfiles/packages/iptraffic create mode 100644 lfs/iptraffic create mode 100644 src/paks/iptraffic/install.sh create mode 100644 src/paks/iptraffic/uninstall.sh create mode 100644 src/paks/iptraffic/update.sh
diff --git a/config/rootfiles/packages/iptraffic b/config/rootfiles/packages/iptraffic new file mode 100644 index 000000000..b860cd9aa --- /dev/null +++ b/config/rootfiles/packages/iptraffic @@ -0,0 +1,22 @@ +etc/fcron.minutely/update-iptraffic +srv/web/ipfire/html/images/iptraffic +srv/web/ipfire/cgi-bin/iptraffic.cgi +srv/web/ipfire/html/images/iptraffic/addblue.gif +srv/web/ipfire/html/images/iptraffic/addfaint.gif +srv/web/ipfire/html/images/iptraffic/addgray.gif +srv/web/ipfire/html/images/iptraffic/addgreen.gif +srv/web/ipfire/html/images/iptraffic/addorange.gif +srv/web/ipfire/html/images/iptraffic/addred.gif +srv/web/ipfire/html/images/iptraffic/blue.png +srv/web/ipfire/html/images/iptraffic/graph.png +srv/web/ipfire/html/images/iptraffic/gray.png +srv/web/ipfire/html/images/iptraffic/green.png +srv/web/ipfire/html/images/iptraffic/orange.png +srv/web/ipfire/html/images/iptraffic/red.png +srv/web/ipfire/html/images/iptraffic/square-green.png +srv/web/ipfire/html/images/iptraffic/square-red.png +srv/web/ipfire/html/images/iptraffic/square-yellow.png +usr/local/bin/iptraffic.pl +var/ipfire/addon-lang/iptraffic.de.pl +var/ipfire/addon-lang/iptraffic.en.pl +var/ipfire/menu.d/EX-iptraffic.menu diff --git a/lfs/iptraffic b/lfs/iptraffic new file mode 100644 index 000000000..8f1dfd676 --- /dev/null +++ b/lfs/iptraffic @@ -0,0 +1,108 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2020 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.8.2
+THISAPP = iptraffic-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PAK_VER = 1 +PROG = iptraffic
+DEPS = ""
+############################################################################### +# Top-level Rules +###############################################################################
+objects = $(DL_FILE)
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+$(DL_FILE)_MD5 = 4d6d54a8e17111da6a60d3c7d4588f16
+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 zxf $(DIR_DL)/$(DL_FILE)
- # Install GUI
- install -v -m 755 $(DIR_SRC)/srv/web/ipfire/cgi-bin/iptraffic.cgi \
- /srv/web/ipfire/cgi-bin/iptraffic.cgi
- # Install images
- -mkdir -p /srv/web/ipfire/html/images/iptraffic
- install -v -m 644 $(DIR_SRC)/srv/web/ipfire/html/images/iptraffic/* \
- /srv/web/ipfire/html/images/iptraffic/
- # Install iptraffic script
- install -v -m 755 $(DIR_SRC)/usr/local/bin/iptraffic.pl \
- /usr/local/bin/iptraffic.pl
- # Create symlink for one minute updates
- ln -sf /usr/local/bin/iptraffic.pl \
- /etc/fcron.minutely/update-iptraffic
- # Install language files
- install -v -m 004 $(DIR_SRC)/var/ipfire/addon-lang/iptraffic.*.pl \
- /var/ipfire/addon-lang/
- # Install menu entry
- install -v -m 644 $(DIR_SRC)/var/ipfire/menu.d/EX-iptraffic.menu \
- /var/ipfire/menu.d/EX-iptraffic.menu
- chown nobody.nobody /var/ipfire/menu.d/EX-iptraffic.menu
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
diff --git a/make.sh b/make.sh index a9db53edf..267e1b09a 100755 --- a/make.sh +++ b/make.sh @@ -1654,6 +1654,7 @@ buildipfire() { lfsmake2 ncdu lfsmake2 lshw lfsmake2 socat
- lfsmake2 iptraffic
}
buildinstaller() { diff --git a/src/paks/iptraffic/install.sh b/src/paks/iptraffic/install.sh new file mode 100644 index 000000000..a9f857784 --- /dev/null +++ b/src/paks/iptraffic/install.sh @@ -0,0 +1,40 @@ +#!/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) 2020 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_files
+mkdir -p /srv/web/ipfire/html/graphs/iptraffic +mkdir -p /var/log/iptraffic +mkdir -p /var/log/rrd/iptraffic
+touch /var/log/iptraffic/iptraffic.db
+restore_backup ${NAME}
+chown -R nobody.nobody /var/log/iptraffic +chown -R nobody.nobody /var/log/rrd/iptraffic +chown root.nobody /usr/local/bin/iptraffic.pl +chown nobody.nobody /var/ipfire/menu.d/EX-iptraffic.menu
+/usr/local/bin/update-lang-cache diff --git a/src/paks/iptraffic/uninstall.sh b/src/paks/iptraffic/uninstall.sh new file mode 100644 index 000000000..dac570c05 --- /dev/null +++ b/src/paks/iptraffic/uninstall.sh @@ -0,0 +1,28 @@ +#!/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
+remove_files
+/usr/local/bin/update-lang-cache diff --git a/src/paks/iptraffic/update.sh b/src/paks/iptraffic/update.sh new file mode 100644 index 000000000..89c40d0d7 --- /dev/null +++ b/src/paks/iptraffic/update.sh @@ -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
2.18.0