summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Smith2015-06-09 09:47:23 +1000
committerPhillip Smith2015-06-09 09:47:23 +1000
commitf8e99a497e85fc5e406ffadc427600943c365556 (patch)
tree30cf89bc49fe9bcbe83dfa109d9d8a8024fd9e78
downloadaur-f8e99a497e85fc5e406ffadc427600943c365556.tar.gz
initial commit
-rw-r--r--.SRCINFO38
-rw-r--r--.gitignore3
-rwxr-xr-x12-firestarter_transparent_icon.patch92
-rwxr-xr-x18-fix_memleak.patch56
-rw-r--r--20-net-tools-ifconfig-format-change.patch25
-rw-r--r--30-conntrack-proc-path.patch11
-rw-r--r--PKGBUILD102
-rwxr-xr-xevents-log-fix.patch58
-rw-r--r--firestarter.install55
-rw-r--r--firestarter.service11
-rwxr-xr-xmenu-toolbar-icons-fix.patch17
11 files changed, 468 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..5a344283fdf
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,38 @@
+pkgbase = firestarter
+ pkgdesc = GUI front-end for iptables
+ pkgver = 1.0.3
+ pkgrel = 15
+ url = http://www.fs-security.com/
+ install = firestarter.install
+ arch = i686
+ arch = x86_64
+ license = GPL2
+ makedepends = patch
+ depends = net-tools
+ depends = iptables
+ depends = gtk2
+ depends = libgnome
+ depends = libgnomeui
+ depends = libglade
+ depends = pango
+ depends = gksu
+ depends = perl-xml-parser
+ source = http://downloads.sourceforge.net/firestarter/firestarter-1.0.3.tar.gz
+ source = 12-firestarter_transparent_icon.patch
+ source = 18-fix_memleak.patch
+ source = 20-net-tools-ifconfig-format-change.patch
+ source = 30-conntrack-proc-path.patch
+ source = events-log-fix.patch
+ source = menu-toolbar-icons-fix.patch
+ source = firestarter.service
+ md5sums = f46860a9e16dac4b693bd05f16370b03
+ md5sums = b657c53280b30f1b4976ec01eff085e8
+ md5sums = b31efd1caf430d979e26abb2618a3659
+ md5sums = 7bcd40b3690e3833078ea31a8a9935f1
+ md5sums = 56d77ceb2a6b249c01922ccc46b12eb6
+ md5sums = acd91fefe00edb41dd38fcc91567707f
+ md5sums = ea9cd9b92939c554b26ccdfe735a2d90
+ md5sums = 3ad02ca9c95f7b897e1b57b040148a2a
+
+pkgname = firestarter
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000000..66e67a051c6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/pkg/
+/src/
+firestarter-*.tar.gz
diff --git a/12-firestarter_transparent_icon.patch b/12-firestarter_transparent_icon.patch
new file mode 100755
index 00000000000..ba4bc8574bc
--- /dev/null
+++ b/12-firestarter_transparent_icon.patch
@@ -0,0 +1,92 @@
+diff -Naur firestarter-1.0.3.orig/src/eggtrayicon.c firestarter-1.0.3/src/eggtrayicon.c
+--- firestarter-1.0.3.orig/src/eggtrayicon.c 2005-01-29 07:32:08.000000000 -0500
++++ firestarter-1.0.3/src/eggtrayicon.c 2006-05-15 19:49:09.000000000 -0400
+@@ -59,6 +59,9 @@
+ GValue *value,
+ GParamSpec *pspec);
+
++static void egg_tray_icon_add (GtkContainer *container,
++ GtkWidget *widget);
++
+ static void egg_tray_icon_realize (GtkWidget *widget);
+ static void egg_tray_icon_unrealize (GtkWidget *widget);
+
+@@ -104,14 +107,18 @@
+ {
+ GObjectClass *gobject_class = (GObjectClass *)klass;
+ GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
++ GtkContainerClass *container_class = (GtkContainerClass *)klass;
+
+ parent_class = g_type_class_peek_parent (klass);
+
++
+ gobject_class->get_property = egg_tray_icon_get_property;
+
+ widget_class->realize = egg_tray_icon_realize;
+ widget_class->unrealize = egg_tray_icon_unrealize;
+
++ container_class->add = egg_tray_icon_add;
++
+ g_object_class_install_property (gobject_class,
+ PROP_ORIENTATION,
+ g_param_spec_enum ("orientation",
+@@ -122,6 +129,35 @@
+ G_PARAM_READABLE));
+ }
+
++static gboolean
++transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
++{
++ gdk_window_clear_area (widget->window, event->area.x, event->area.y,
++ event->area.width, event->area.height);
++ return FALSE;
++}
++
++static void
++make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
++ gpointer user_data)
++{
++ gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++}
++
++static void
++make_transparent (GtkWidget *widget, gpointer user_data)
++{
++ if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
++ return;
++
++ gtk_widget_set_app_paintable (widget, TRUE);
++ gtk_widget_set_double_buffered (widget, FALSE);
++ gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++ g_signal_connect (widget, "expose_event",
++ G_CALLBACK (transparent_expose_event), NULL);
++ g_signal_connect_after (widget, "style_set",
++ G_CALLBACK (make_transparent_again), NULL);
++}
+ static void
+ egg_tray_icon_get_property (GObject *object,
+ guint prop_id,
+@@ -343,6 +379,8 @@
+ if (GTK_WIDGET_CLASS (parent_class)->realize)
+ GTK_WIDGET_CLASS (parent_class)->realize (widget);
+
++ make_transparent (widget, NULL);
++
+ screen = gtk_widget_get_screen (widget);
+ display = gdk_screen_get_display (screen);
+ xdisplay = gdk_x11_display_get_xdisplay (display);
+@@ -373,6 +411,14 @@
+ egg_tray_icon_manager_filter, icon);
+ }
+
++static void
++egg_tray_icon_add (GtkContainer *container, GtkWidget *widget)
++{
++ g_signal_connect (widget, "realize",
++ G_CALLBACK (make_transparent), NULL);
++ GTK_CONTAINER_CLASS (parent_class)->add (container, widget);
++}
++
+ EggTrayIcon *
+ egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name)
+ {
diff --git a/18-fix_memleak.patch b/18-fix_memleak.patch
new file mode 100755
index 00000000000..cf5b477ca26
--- /dev/null
+++ b/18-fix_memleak.patch
@@ -0,0 +1,56 @@
+diff -Naur firestarter-1.0.3.orig/src/preferences.c firestarter-1.0.3/src/preferences.c
+--- firestarter-1.0.3.orig/src/preferences.c 2005-01-29 12:32:08.000000000 +0000
++++ firestarter-1.0.3/src/preferences.c 2008-01-22 18:15:14.000000000 +0000
+@@ -273,7 +273,7 @@
+ 1, _("Advanced Options"),
+ -1);
+ gtk_tree_iter_free (top_section);
+- gtk_tree_iter_free (iter);
++ g_free (iter);
+
+ return GTK_TREE_MODEL (store);
+ }
+diff -Naur firestarter-1.0.3.orig/src/statusview.c firestarter-1.0.3/src/statusview.c
+--- firestarter-1.0.3.orig/src/statusview.c 2005-01-29 12:32:08.000000000 +0000
++++ firestarter-1.0.3/src/statusview.c 2008-01-22 18:15:32.000000000 +0000
+@@ -773,7 +773,7 @@
+ {
+ Connection_entry *entry = (Connection_entry *)data;
+
+- gtk_tree_iter_free (entry->ref);
++ g_free (entry->ref);
+ g_free (data);
+ }
+
+diff -Naur firestarter-1 (copy).0.3/src/policyview.c firestarter-1.0.3/src/policyview.c
+--- firestarter-1.0.3.orig/src/policyview.c 2005-01-29 12:32:08.000000000 +0000
++++ firestarter-1.0.3/src/policyview.c 2008-04-09 23:35:32.000000000 +0100
+@@ -146,7 +146,7 @@
+
+ g_strfreev (tokens);
+ if (view != NULL)
+- gtk_tree_iter_free (iter);
++ g_free (iter);
+ return TRUE;
+ }
+
+@@ -218,7 +218,9 @@
+ gtk_entry_set_text (GTK_ENTRY (element), "");
+ }
+
+- g_object_steal_data (G_OBJECT (dialog), "editing");
++ GtkTreeIter *iter = g_object_steal_data (G_OBJECT (dialog), "editing");
++ if (iter)
++ g_free(iter);
+ }
+
+ static gboolean
+@@ -428,7 +430,7 @@
+ gtk_list_store_remove (GTK_LIST_STORE (model), iter); /* Remove from the view */
+ remove_line_from_file (rule_file, (int)position);
+
+- gtk_tree_iter_free (iter);
++ g_free (iter);
+ }
+
+ append_to_file (rule_file, data, TRUE);
diff --git a/20-net-tools-ifconfig-format-change.patch b/20-net-tools-ifconfig-format-change.patch
new file mode 100644
index 00000000000..0037fbd0350
--- /dev/null
+++ b/20-net-tools-ifconfig-format-change.patch
@@ -0,0 +1,25 @@
+--- firestarter-1.0.3/src/scriptwriter.c
++++ firestarter-1.0.3/src/scriptwriter.c
+@@ -88,16 +88,16 @@
+ fprintf (f, "\n# --(Extract Network Information)--\n\n");
+
+ fprintf (f, "# External network interface data\n"
+- "IP=`/sbin/ifconfig $IF | grep inet | cut -d : -f 2 | cut -d \\ -f 1`\n"
+- "MASK=`/sbin/ifconfig $IF | grep Mas | cut -d : -f 4`\n"
+- "BCAST=`/sbin/ifconfig $IF |grep Bcast: | cut -d : -f 3 | cut -d \\ -f 1`\n"
++ "IP=`/sbin/ifconfig $IF | grep inet | tr -s ' ' | cut -d \\ -f 3`\n"
++ "MASK=`/sbin/ifconfig $IF | grep netmask | tr -s ' ' | cut -d \\ -f 5`\n"
++ "BCAST=`/sbin/ifconfig $IF | grep broadcast | tr -s ' ' | cut -d \\ -f 7`\n"
+ "NET=$IP/$MASK\n\n");
+
+ fprintf (f, "if [ \"$NAT\" = \"on\" ]; then\n"
+ " # Internal network interface data\n"
+- " INIP=`/sbin/ifconfig $INIF | grep inet | cut -d : -f 2 | cut -d \\ -f 1`\n"
+- " INMASK=`/sbin/ifconfig $INIF | grep Mas | cut -d : -f 4`\n"
+- " INBCAST=`/sbin/ifconfig $INIF |grep Bcast: | cut -d : -f 3 | cut -d \\ -f 1`\n"
++ " INIP=`/sbin/ifconfig $INIF | grep inet | tr -s ' ' | cut -d \\ -f 3`\n"
++ " INMASK=`/sbin/ifconfig $INIF | grep netmask | tr -s ' ' | cut -d \\ -f 5`\n"
++ " INBCAST=`/sbin/ifconfig $INIF | grep broadcast | tr -s ' ' | cut -d \\ -f 7`\n"
+ " INNET=$INIP/$INMASK\n"
+ "fi\n\n");
+
diff --git a/30-conntrack-proc-path.patch b/30-conntrack-proc-path.patch
new file mode 100644
index 00000000000..1d9c242d3de
--- /dev/null
+++ b/30-conntrack-proc-path.patch
@@ -0,0 +1,11 @@
+--- firestarter-1.0.3/src/statusview.c.ORIG 2012-05-29 16:58:05.204114870 +1000
++++ firestarter-1.0.3/src/statusview.c 2012-05-29 16:59:01.914116450 +1000
+@@ -32,7 +32,7 @@
+
+ #define DEV_FILE "/proc/net/dev"
+ #define TCP_FILE "/proc/net/tcp"
+-#define CONNTRACK_FILE "/proc/net/ip_conntrack"
++#define CONNTRACK_FILE "/proc/net/nf_conntrack" /* http://www.kernelhardware.org/firestarter-on-centos-6/ */
+ #define CONNTRACK_TTL 10 /* Number of refresh cycles a non-established connection is kept in the GUI */
+ #define REFRESH_RATE 1 /* Time in seconds between updates */
+ #define HISTORY_LENGTH 5 /* Number of samples to use when averaging the traffic rate */
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..5c9c31daf7f
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,102 @@
+# Maintainer: Phillip Smith <fukawi2@NO-SPAM.gmail.com>
+# http://github.com/fukawi2/aur-packages
+
+### I AM ONLY THE PACKAGER, NOT THE DEVELOPER
+### Please ask support questions about this software in one of:
+### 1) The AUR comments; OR
+### 2) Upstream forums/maillist etc; OR
+### 3) The ArchLinux forums
+### I do not always know enough about the software itself, or don't have the
+### time to promptly respond to direct emails.
+### If you have found a problem with the package/PKGBUILD (as opposed to
+### the software) then please do email me or post an AUR comment.
+
+pkgname=firestarter
+pkgver=1.0.3
+pkgrel=15
+pkgdesc="GUI front-end for iptables"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('net-tools' 'iptables' 'gtk2' 'libgnome' 'libgnomeui' 'libglade'
+ 'pango' 'gksu' 'perl-xml-parser')
+makedepends=('patch')
+url="http://www.fs-security.com/"
+install="${pkgname}.install"
+source=("http://downloads.sourceforge.net/firestarter/$pkgname-$pkgver.tar.gz"
+ '12-firestarter_transparent_icon.patch'
+ '18-fix_memleak.patch'
+ '20-net-tools-ifconfig-format-change.patch'
+ '30-conntrack-proc-path.patch'
+ 'events-log-fix.patch'
+ 'menu-toolbar-icons-fix.patch'
+ 'firestarter.service')
+md5sums=('f46860a9e16dac4b693bd05f16370b03'
+ 'b657c53280b30f1b4976ec01eff085e8'
+ 'b31efd1caf430d979e26abb2618a3659'
+ '7bcd40b3690e3833078ea31a8a9935f1'
+ '56d77ceb2a6b249c01922ccc46b12eb6'
+ 'acd91fefe00edb41dd38fcc91567707f'
+ 'ea9cd9b92939c554b26ccdfe735a2d90'
+ '3ad02ca9c95f7b897e1b57b040148a2a')
+
+prepare() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ # Apply patches to fix things
+ # Transparent tray icon (from Ubuntu launchpad)
+ patch -Np1 -i "$srcdir"/12-firestarter_transparent_icon.patch
+ # fix GUI crashes on newer Gnome libs (from Ubuntu launchpad)
+ patch -Np1 -i "$srcdir"/18-fix_memleak.patch
+ # patch to use the new 'ifconfig' from net-tools (thanks to Joeny Ang)
+ patch -Np1 -i "$srcdir"/20-net-tools-ifconfig-format-change.patch
+ # Replace kernel.log with iptables.log
+ patch -Np1 -i "$srcdir"/events-log-fix.patch
+ # menu-toolbar-icons-fix.patch: fixed a couple menu and toolbar icons to follow GTK theme
+ patch -Np1 -i "$srcdir"/menu-toolbar-icons-fix.patch
+ # path to the conn track table in /proc has changed
+ patch -Np1 -i "$srcdir"/30-conntrack-proc-path.patch
+}
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ # Configure, Build and Install to $pkgdir
+ export LDFLAGS='-lX11'
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
+
+ # Create default empty ruleset and fix permissions
+ install -dm755 "$pkgdir"/etc/firestarter/outbound/
+ touch "$pkgdir"/etc/firestarter/outbound/allow-service
+ chown -R root:root "$pkgdir"/etc/firestarter/
+
+ # Fix the desktop launcher to run with root permission using gksudo.
+ sed -e "s|Exec=|TryExec=gksu\n\0gksu |" \
+ -i "$pkgdir"/usr/share/gnome/apps/Internet/firestarter.desktop
+
+ # Move the .desktop file to a standard location
+ install -Dm644 "$pkgdir"/usr/share/gnome/apps/Internet/${pkgname}.desktop \
+ "$pkgdir"/usr/share/applications/${pkgname}.desktop
+ rm -rf "$pkgdir"/usr/share/gnome
+
+ # Merge Schema files to /usr/share/gconf so the .install file can update the database at install time.
+ install -dm755 "$pkgdir"/usr/share/gconf/schemas
+ gconf-merge-schema "${pkgdir}"/usr/share/gconf/schemas/${pkgname}.schemas \
+ "$srcdir"/${pkgname}-${pkgver}/*.schemas
+ rm -Rf "$pkgdir"/etc/gconf
+
+ # install systemd "unit file"
+ install -D -m755 "$srcdir"/firestarter.service "$pkgdir"/usr/lib/systemd/system/firestarter.service
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/events-log-fix.patch b/events-log-fix.patch
new file mode 100755
index 00000000000..c8d96766b49
--- /dev/null
+++ b/events-log-fix.patch
@@ -0,0 +1,58 @@
+--- firestarter-1.0.3.orig/firestarter.schemas.in 2005-01-29 20:32:09.000000000 +0800
++++ firestarter-1.0.3/firestarter.schemas.in 2006-12-20 20:18:02.000000000 +0800
+@@ -82,7 +82,7 @@
+ <applyto>/apps/firestarter/client/system_log</applyto>
+ <owner>Firestarter</owner>
+ <type>string</type>
+- <default>/var/log/messages</default>
++ <default>/var/log/iptables.log</default>
+ <locale name="C">
+ <short>The system log file</short>
+ <long>The location of the file the system logging daemon writes to.</long>
+--- firestarter-1.0.3.orig/src/logread.c 2005-01-29 20:32:08.000000000 +0800
++++ firestarter-1.0.3/src/logread.c 2008-03-11 21:24:54.000000000 +0800
+@@ -189,6 +194,10 @@
+ */
+ void
+ open_logfile (char *logpath) {
++ /* Check if logpath isn't NULL before proceeding to avoid libgnomevfs-CRITICAL errors */
++ if (logpath == NULL)
++ return;
++
+ GnomeVFSAsyncHandle *handle;
+
+ gnome_vfs_async_open(&handle, logpath, GNOME_VFS_OPEN_READ, GNOME_VFS_PRIORITY_DEFAULT,
+--- firestarter-1.0.3.orig/src/util.c 2005-01-29 20:32:08.000000000 +0800
++++ firestarter-1.0.3/src/util.c 2006-12-20 20:31:06.000000000 +0800
+@@ -24,6 +24,7 @@
+ #include "util.h"
+ #include "hitview.h"
+ #include "preferences.h"
++#include "logread.h"
+
+ extern int h_errno;
+
+@@ -121,13 +122,18 @@
+ /* User has specified the log file location */
+ path = preferences_get_string (PREFS_SYSLOG_FILE);
+
+- if (path && g_file_test (path, G_FILE_TEST_EXISTS)) {
++ if (path && g_file_test (path, G_FILE_TEST_EXISTS) && parse_log_line (path)->time != "") {
+ return path;
+- } else { /* Try to guess some default syslog location */
+- if (g_file_test ("/var/log/messages", G_FILE_TEST_EXISTS))
+- path = g_strdup ("/var/log/messages");
+- else if (g_file_test ("/var/log/kernel", G_FILE_TEST_EXISTS))
++ } else { /* Guess default kernel messages log path: syslog-ng first, then sysklogd and metalog */
++ if (g_file_test ("/var/log/iptables.log", G_FILE_TEST_EXISTS) && parse_log_line ("/var/log/iptables.log")->time != "")
++ path = g_strdup ("/var/log/iptables.log");
++ else if (g_file_test ("/var/log/kernel", G_FILE_TEST_EXISTS) && parse_log_line ("/var/log/kernel")->time != "")
+ path = g_strdup ("/var/log/kernel");
++ /* Let's try these just in case */
++ else if (g_file_test ("/var/log/messages.log", G_FILE_TEST_EXISTS) && parse_log_line ("/var/log/messages.log")->time != "")
++ path = g_strdup ("/var/log/messages.log");
++ else if (g_file_test ("/var/log/messages", G_FILE_TEST_EXISTS) && parse_log_line ("/var/log/messages")->time != "")
++ path = g_strdup ("/var/log/messages");
+ else
+ path = NULL;
+ }
diff --git a/firestarter.install b/firestarter.install
new file mode 100644
index 00000000000..9ca5eb107f2
--- /dev/null
+++ b/firestarter.install
@@ -0,0 +1,55 @@
+post_install() {
+ cat << EOM
+ --> This version comes with a system init script now. You have to run the
+ --> "firestarter" executable from the command line (in an X driven console)
+ --> first to generate the initial start-up scripts.
+ --> If you'd like firestarter brought up on system initialization, add
+ --> firestarter to the DAEMONS line of your /etc/rc.conf (after network)
+ --> Consider to use gksu to start firestarter, since firestarter has to be
+ --> used as root to change the settings of you firewall. It is called as
+ --> "gksu firestarter"
+ --> and brings it's own menu entry if gksu is installed on the system.
+
+ --> Some autodetection for the messages logfile has been included, the
+ --> original code looks for /var/log/kernel and /var/log/messages. In this
+ --> package detection for /var/log/messages.log and /var/log/kernel.log
+ --> has been added. So metalog, sysklogd and syslog-ng users should be happy,
+ --> as long as you remove unused log files form the directory.
+
+EOM
+
+ echo "installing gnome schemas ..."
+ GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source` \
+ usr/bin/gconftool-2 --makefile-install-rule usr/share/gconf/schemas/firestarter.schemas > /dev/null
+}
+
+pre_upgrade() {
+ [ ! -d etc/firestarter ] && mkdir -p etc/firestarter
+ if [ -d opt/gnome/etc/firestarter ] && [ "`find etc/firestarter -type f | wc -l`" = "1" ]; then
+ mv opt/gnome/etc/firestarter/* etc/firestarter/
+ rmdir opt/gnome/etc/firestarter
+ for file in `find etc/firestarter -type f`; do
+ sed -e 's|/opt/gnome/bin|/usr/bin|g' -e 's|/opt/gnome||g' -i "${file}"
+ done
+ fi
+ pre_remove
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo "unregistering gnome schemas ..."
+ if [ -f opt/gnome/etc/gconf/schemas/firestarter.schemas ]; then
+ schema=opt/gnome/etc/gconf/schemas/firestarter.schemas
+ else
+ schema=usr/share/gconf/schemas/firestarter.schemas
+ fi
+ GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source` \
+ usr/bin/gconftool-2 --makefile-uninstall-rule $schema > /dev/null
+}
+
+op=$1
+shift
+$op $*
diff --git a/firestarter.service b/firestarter.service
new file mode 100644
index 00000000000..3b2c1eb5acd
--- /dev/null
+++ b/firestarter.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Application of firewall rules created by FireStarter GUI
+Wants=network.target
+Before=network.target
+
+[Service]
+Type=oneshot
+ExecStart=/etc/firestarter/firestarter.sh start
+
+[Install]
+WantedBy=multi-user.target
diff --git a/menu-toolbar-icons-fix.patch b/menu-toolbar-icons-fix.patch
new file mode 100755
index 00000000000..da0f9ae49ef
--- /dev/null
+++ b/menu-toolbar-icons-fix.patch
@@ -0,0 +1,17 @@
+--- firestarter-1.0.3-orig/src/menus.c 2005-01-29 20:32:08.000000000 +0800
++++ firestarter-1.0.3/src/menus.c 2008-03-11 22:25:13.000000000 +0800
+@@ -64,12 +64,12 @@
+
+ { "RemoveRule", GTK_STOCK_REMOVE, N_("_Remove Rule"), NULL, N_("Remove the selected rule"), policyview_remove_rule },
+ { "AddRule", GTK_STOCK_ADD, N_("_Add Rule"), NULL, N_("Add a rule to the selected policy group"), policyview_add_rule },
+- { "EditRule", FIRESTARTER_STOCK_EDIT, N_("_Edit Rule"), NULL, N_("Edit the selected rule"), policyview_edit_rule },
++ { "EditRule", GTK_STOCK_EDIT, N_("_Edit Rule"), NULL, N_("Edit the selected rule"), policyview_edit_rule },
+ { "ApplyPolicy", GTK_STOCK_APPLY, N_("A_pply Policy"), NULL, N_("Apply the changes made the policy"), policyview_apply },
+
+ { "OpenManual", GTK_STOCK_HELP, N_("Online Users' _Manual"), NULL, N_("Open the online users' manual in a browser"), open_manual },
+ { "OpenHomepage", GTK_STOCK_HOME, N_("Firestarter _Homepage"), NULL, N_("Open the Firestarter homepage in a browser"), open_homepage },
+- { "ShowAbout", GNOME_STOCK_ABOUT, N_("_About"), NULL, N_("About Firestarter"), G_CALLBACK (show_about) },
++ { "ShowAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, N_("About Firestarter"), G_CALLBACK (show_about) },
+
+ { "AllowInboundFrom", NULL, N_("Allow Connections From Source"), NULL, N_("Allow all connections from this source"), hitview_allow_host },
+ { "AllowInboundService", NULL, N_("Allow Inbound Service for Everyone"), NULL, N_("Allow inbound service for everyone"), hitview_allow_service },