aboutsummaryrefslogtreecommitdiff
path: root/development/bless
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2018-08-13 11:26:28 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2018-08-18 08:39:47 +0700
commit928d612ac5feeb0ca1feb9b4938cf209e11c1fce (patch)
tree66f3a4e2b445b9098646a3fe69f934197260fcc1 /development/bless
parentaad280b6459b93075af2c5f92ffc955adb24c7fc (diff)
development/bless: Added (GUI hex editor).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
Diffstat (limited to 'development/bless')
-rw-r--r--development/bless/README8
-rw-r--r--development/bless/bless.132
-rw-r--r--development/bless/bless.SlackBuild130
-rw-r--r--development/bless/bless.info10
-rw-r--r--development/bless/doinst.sh3
-rw-r--r--development/bless/help_script.sh39
-rw-r--r--development/bless/patches/default_overwrite.patch12
-rw-r--r--development/bless/patches/fix_save.patch12
-rw-r--r--development/bless/patches/fixxmltextwriter.patch31
-rw-r--r--development/bless/patches/force_gtk_action_namespace.patch72
-rw-r--r--development/bless/slack-desc19
11 files changed, 368 insertions, 0 deletions
diff --git a/development/bless/README b/development/bless/README
new file mode 100644
index 0000000000000..1b7ad457f24b0
--- /dev/null
+++ b/development/bless/README
@@ -0,0 +1,8 @@
+bless (GUI hex editor)
+
+bless is a full featured hexadecimal editor, written in C#, using Gtk#
+for the user interface.
+
+Its purpose is to edit files as a sequence of bytes, allowing read/write,
+search, pattern finding, efficient query-replace, multi-tabbing,
+customized data-views, plug‐ins, and many other features.
diff --git a/development/bless/bless.1 b/development/bless/bless.1
new file mode 100644
index 0000000000000..89669c0632ffe
--- /dev/null
+++ b/development/bless/bless.1
@@ -0,0 +1,32 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH BLESS 1 "June 2007" bless "User Commands"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+bless \- graphical hexadecimal Gtk# editor
+.SH SYNOPSIS
+.B bless
+[\fFFILE\fP]...
+.br
+.SH DESCRIPTION
+.\" Add any additional description here
+Edit the FILEs as a sequence of bytes, allowing read/write, search,
+pattern finding, efficient query-replace, multi-tabbing, customized
+data-views, plugins, and many other features.
+.SH REPORTING BUGS
+Report bugs to Alexandros Frantzis <alf82@freemail.gr>.
+.SH AUTHOR
+Copyright \(co 2004-2007, Alexandros Frantzis.
diff --git a/development/bless/bless.SlackBuild b/development/bless/bless.SlackBuild
new file mode 100644
index 0000000000000..207854b1615a3
--- /dev/null
+++ b/development/bless/bless.SlackBuild
@@ -0,0 +1,130 @@
+#!/bin/sh
+
+# Slackware build script for bless
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+PRGNAM=bless
+VERSION=${VERSION:-0.6.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+# Compiled .net code is "anycpu" by default.
+# I see no reason to use lib64 for this. It would mean having separate
+# 32-bit and 64-bit packages, even though the actual object code is
+# noarch. Also, no CFLAGS because, no C... since I'm not a mono/C#
+# expert, I dunno what the equivalent optimization flags should be
+# (or if they even exist) so we'll go with whatever upstream does.
+
+ARCH=noarch
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/${PRGNAM}_$VERSION.orig.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+
+# Begin rant. FWIW, I'm not very impressed with bless:
+# - It has show-stopper bugs that were left in place when the maintainer
+# abandoned it a few years ago (others have fixed the worst of them
+# by now, patches included here).
+# - It starts up in Insert mode which definitely violates the principle
+# of least surprise (in normal hex editors, overwrite is generally the
+# default and often only mode). This is so annoying that I patched it.
+# Even in overwrite mode, it'll let you append bytes to the end of
+# the file, which a hex editor shouldn't do in its default mode.
+# - It ships with 3 .layout files that get installed in /usr/share, but
+# the layout dialog is broken: you can't choose between the
+# "system" layouts, though you can load them if you copy them to
+# ~/.config/bless/layouts. (But, they don't appear to *do* anything...)
+# - Finally, and maybe this is just my own personal bias, I don't see an
+# obvious way to change the white background to black (if the .layout
+# files are capable of it, great, but I tried really hard to get them
+# to work and they don't seem to behave the way the docs say they do).
+# This means I won't be using this application very much, as it hurts
+# my eyes to look at it for more than a few minutes.
+# If it's so awful, why am I writing a SlackBuild for it? Because it's
+# a GUI hex editor that (a) uses GTK, and (b) doesn't require KDE and
+# its horde of daemons. Someone is going to be glad it's here. People
+# who grew up using GUIs are going to prefer this to a textmode app.
+# Here endeth the rant.
+
+# Patch from Debian. Might not be needed with newer versions of mono,
+# but no harm done.
+patch -p1 < $CWD/patches/force_gtk_action_namespace.patch
+
+# Patch from dead gna.org site:
+# http://web.archive.org/web/20170205194531/http://gna.org/bugs/?14878
+# Fixes "not enough space" error when trying to save.
+patch -p1 < $CWD/patches/fix_save.patch
+
+# Patch from: https://bugs.launchpad.net/ubuntu/+source/bless/+bug/1622951
+# Fixes broken preferences saving.
+patch -p1 < $CWD/patches/fixxmltextwriter.patch
+
+# Make bless act like all other hex editors on the planet by NOT starting
+# up in Insert mode. I wouldn't have patched this, except that bless
+# doesn't auto-save the Insert/Overwrite state across sessions. You can
+# set the default via Edit/Preferences, but it doesn't remember the last
+# state if you just press Insert to toggle it.
+patch -p1 < $CWD/patches/default_overwrite.patch
+
+# Grr. The configure script doesn't allow setting CS or MCS or CSC or
+# anything to override the compiler (like normal stuff does with CC).
+# FFS, it's even hardcoded in C# code...
+sed -i 's,gmcs,mcs,g' configure builder/ModuleBuilder.cs
+
+./configure \
+ --without-scrollkeeper \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+# GRR. Even with --without-scrollkeeper we have to fake it out. I
+# could look into using rarian, but I'm not sure what good it would
+# do: the .xml and .html help files are already installed in the right
+# places, and help_script.sh knows how to display them when you click
+# Help/Contents or press F1.
+cp doc/user/bless-manual.omf.in doc/user/bless-manual.omf
+
+make
+make install DESTDIR=$PKG
+
+# --docdir is ignored.
+mkdir -p $PKG/usr/doc/
+mv $PKG/usr/share/doc/$PRGNAM $PKG/usr/doc/$PRGNAM-$VERSION
+rm -rf $PKG/usr/share/doc
+
+# The help script needed help.
+PKGHELP=$PKG/usr/share/$PRGNAM/help_script.sh
+sed "s/@VERSION@/$VERSION/g" $CWD/help_script.sh > $PKGHELP
+chmod 755 $PKGHELP
+
+# Man page from Debian. Not much to it, but not much was needed.
+mkdir -p $PKG/usr/man/man1
+gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
+
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/development/bless/bless.info b/development/bless/bless.info
new file mode 100644
index 0000000000000..e6b9baf111bd7
--- /dev/null
+++ b/development/bless/bless.info
@@ -0,0 +1,10 @@
+PRGNAM="bless"
+VERSION="0.6.0"
+HOMEPAGE="https://packages.debian.org/sid/bless"
+DOWNLOAD="http://http.debian.net/debian/pool/main/b/bless/bless_0.6.0.orig.tar.gz"
+MD5SUM="b4c20d113281dfedb67d9f3ff8b174e3"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="gtk-sharp"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/development/bless/doinst.sh b/development/bless/doinst.sh
new file mode 100644
index 0000000000000..5fb28930db0b9
--- /dev/null
+++ b/development/bless/doinst.sh
@@ -0,0 +1,3 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
diff --git a/development/bless/help_script.sh b/development/bless/help_script.sh
new file mode 100644
index 0000000000000..f841e96e7df89
--- /dev/null
+++ b/development/bless/help_script.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# Script that loads help for Bless. Modified by B. Watson for
+# slackbuilds.org. No idea if the gnome-help or yelp stuff really works,
+# I haven't got either one installed. At least the user manual opens
+# in an actual browser with this version of the script.
+
+xml_help="/usr/doc/bless-@VERSION@/user/bless-manual.xml"
+html_help="/usr/doc/bless-@VERSION@/user/index.html"
+
+# try to get default browsers from GConf
+GCONFTOOL=`which gconftool-2 2> /dev/null`
+
+if [[ -n $GCONFTOOL ]];
+then
+ help_browser=`$GCONFTOOL --get "/desktop/gnome/url-handlers/ghelp/command"`
+ if [[ -n "$help_browser" ]];
+ then
+ help_browser=`echo "$help_browser" | cut -d' ' -f1`
+ fi
+
+ http_browser=`$GCONFTOOL --get "/desktop/gnome/url-handlers/http/command"`
+
+ if [[ -n "$http_browser" ]];
+ then
+ http_browser=`echo "$http_browser" | cut -d' ' -f1`
+ fi
+fi
+
+# some other browsers
+yelp_browser=`which yelp 2> /dev/null`
+firefox_browser=`which firefox 2> /dev/null`
+mozilla_browser=`which mozilla 2> /dev/null`
+
+([[ -n $help_browser ]] && $help_browser $xml_help) ||
+([[ -n $yelp_browser ]] && $yelp_browser $xml_help) ||
+([[ -n $http_browser ]] && $http_browser $html_help) ||
+([[ -n $firefox_browser ]] && $firefox_browser $html_help) ||
+([[ -n $mozilla_browser ]] && $mozilla_browser $html_help)
diff --git a/development/bless/patches/default_overwrite.patch b/development/bless/patches/default_overwrite.patch
new file mode 100644
index 0000000000000..5eec4ba1a3037
--- /dev/null
+++ b/development/bless/patches/default_overwrite.patch
@@ -0,0 +1,12 @@
+diff -Naur bless-0.6.0/data/default-preferences.xml bless-0.6.0.patched/data/default-preferences.xml
+--- bless-0.6.0/data/default-preferences.xml 2008-06-07 08:18:12.000000000 -0400
++++ bless-0.6.0.patched/data/default-preferences.xml 2018-08-12 12:36:21.800800175 -0400
+@@ -1,7 +1,7 @@
+ <preferences>
+ <pref name="Session.RememberCursorPosition">True</pref>
+ <pref name="Tools.ConversionTable.LEDecoding">False</pref>
+- <pref name="Default.EditMode">Insert</pref>
++ <pref name="Default.EditMode">Overwrite</pref>
+ <pref name="Tools.ConversionTable.Show">True</pref>
+ <pref name="Tools.Statistics.Show">False</pref>
+ <pref name="Session.RememberWindowGeometry">True</pref>
diff --git a/development/bless/patches/fix_save.patch b/development/bless/patches/fix_save.patch
new file mode 100644
index 0000000000000..45e85b932b85d
--- /dev/null
+++ b/development/bless/patches/fix_save.patch
@@ -0,0 +1,12 @@
+diff -Naur bless-0.6.0/src/buffers/ByteBuffer.cs bless-0.6.0-fixed/src/buffers/ByteBuffer.cs
+--- bless-0.6.0/src/buffers/ByteBuffer.cs 2008-06-07 21:59:25.000000000 +0700
++++ bless-0.6.0-fixed/src/buffers/ByteBuffer.cs 2009-12-11 20:07:42.000000000 +0600
+@@ -957,7 +957,7 @@
+ ///</summary>
+ public string TempDir {
+ get { return tempDir; }
+- set { tempDir = value;}
++ set { if(value != "") tempDir = value; }
+ }
+
+ ///<summary>
diff --git a/development/bless/patches/fixxmltextwriter.patch b/development/bless/patches/fixxmltextwriter.patch
new file mode 100644
index 0000000000000..2b241d5525325
--- /dev/null
+++ b/development/bless/patches/fixxmltextwriter.patch
@@ -0,0 +1,31 @@
+diff --git a/src/tools/Preferences.cs b/src/tools/Preferences.cs
+index 192bf14..775a83e 100644
+--- a/src/tools/Preferences.cs
++++ b/src/tools/Preferences.cs
+@@ -132,6 +132,7 @@ public class Preferences
+ xml.Indentation = 1;
+ xml.IndentChar = '\t';
+
++ xml.WriteStartDocument(true);
+ xml.WriteStartElement(null, "preferences", null);
+
+ foreach (DictionaryEntry entry in prefs) {
+diff --git a/src/tools/Session.cs b/src/tools/Session.cs
+index 7980cc0..5184632 100644
+--- a/src/tools/Session.cs
++++ b/src/tools/Session.cs
+@@ -77,6 +77,7 @@ public class Session
+ xml.Indentation = 1;
+ xml.IndentChar = '\t';
+
++ xml.WriteStartDocument(true);
+ xml.WriteStartElement(null, "session", null);
+
+ xml.WriteStartElement(null, "windowheight", null);
+@@ -194,4 +195,4 @@ public class SessionFileInfo
+ }
+ }
+
+-} // end namespace
+\ No newline at end of file
++} // end namespace
diff --git a/development/bless/patches/force_gtk_action_namespace.patch b/development/bless/patches/force_gtk_action_namespace.patch
new file mode 100644
index 0000000000000..fe722129dcfff
--- /dev/null
+++ b/development/bless/patches/force_gtk_action_namespace.patch
@@ -0,0 +1,72 @@
+diff -urNad bless-0.5.2.orig/src/gui/plugins/BitwiseOperationsPlugin.cs bless-0.5.2/src/gui/plugins/BitwiseOperationsPlugin.cs
+--- bless-0.5.2.orig/src/gui/plugins/BitwiseOperationsPlugin.cs 2008-04-10 03:50:32.000000000 +0100
++++ bless-0.5.2/src/gui/plugins/BitwiseOperationsPlugin.cs 2008-04-10 03:51:45.000000000 +0100
+@@ -30,6 +30,8 @@
+ using Bless.Buffers;
+ using Mono.Unix;
+
++using Action = Gtk.Action;
++
+ namespace Bless.Gui.Plugins {
+
+ ///<summary>
+diff -urNad bless-0.5.2.orig/src/gui/plugins/EditOperationsPlugin.cs bless-0.5.2/src/gui/plugins/EditOperationsPlugin.cs
+--- bless-0.5.2.orig/src/gui/plugins/EditOperationsPlugin.cs 2008-04-10 03:50:32.000000000 +0100
++++ bless-0.5.2/src/gui/plugins/EditOperationsPlugin.cs 2008-04-10 03:52:06.000000000 +0100
+@@ -27,6 +27,8 @@
+ using Bless.Gui.Dialogs;
+ using Bless.Tools;
+
++using Action = Gtk.Action;
++
+ namespace Bless.Gui.Plugins {
+
+ public class EditOperationsPlugin : GuiPlugin
+diff -urNad bless-0.5.2.orig/src/gui/plugins/FileOperationsPlugin.cs bless-0.5.2/src/gui/plugins/FileOperationsPlugin.cs
+--- bless-0.5.2.orig/src/gui/plugins/FileOperationsPlugin.cs 2008-04-10 03:50:32.000000000 +0100
++++ bless-0.5.2/src/gui/plugins/FileOperationsPlugin.cs 2008-04-10 03:52:26.000000000 +0100
+@@ -29,6 +29,8 @@
+ using Gtk;
+ using Mono.Unix;
+
++using Action = Gtk.Action;
++
+ namespace Bless.Gui.Plugins {
+
+ public class FileOperationsPlugin : GuiPlugin
+diff -urNad bless-0.5.2.orig/src/gui/plugins/FindReplacePlugin.cs bless-0.5.2/src/gui/plugins/FindReplacePlugin.cs
+--- bless-0.5.2.orig/src/gui/plugins/FindReplacePlugin.cs 2008-04-10 03:50:32.000000000 +0100
++++ bless-0.5.2/src/gui/plugins/FindReplacePlugin.cs 2008-04-10 03:51:21.000000000 +0100
+@@ -31,6 +31,8 @@
+ using Bless.Plugins;
+ using Mono.Unix;
+
++using Action = Gtk.Action;
++
+ namespace Bless.Gui.Plugins {
+
+ public class FindReplacePlugin : GuiPlugin
+diff -urNad bless-0.5.2.orig/src/gui/plugins/HistoryPlugin.cs bless-0.5.2/src/gui/plugins/HistoryPlugin.cs
+--- bless-0.5.2.orig/src/gui/plugins/HistoryPlugin.cs 2008-04-10 03:50:32.000000000 +0100
++++ bless-0.5.2/src/gui/plugins/HistoryPlugin.cs 2008-04-10 03:53:22.000000000 +0100
+@@ -26,6 +26,8 @@
+ using Bless.Gui;
+ using Bless.Tools;
+
++using Action = Gtk.Action;
++
+ namespace Bless.Gui.Plugins {
+
+ public class HistoryPlugin : GuiPlugin
+diff -urNad bless-0.5.2.orig/src/gui/plugins/InfobarPlugin.cs bless-0.5.2/src/gui/plugins/InfobarPlugin.cs
+--- bless-0.5.2.orig/src/gui/plugins/InfobarPlugin.cs 2008-04-10 03:50:32.000000000 +0100
++++ bless-0.5.2/src/gui/plugins/InfobarPlugin.cs 2008-04-10 03:52:48.000000000 +0100
+@@ -28,6 +28,8 @@
+ using Bless.Tools;
+ using Mono.Unix;
+
++using Action = Gtk.Action;
++
+ namespace Bless.Gui.Plugins {
+
+ public class InfobarPlugin : GuiPlugin
diff --git a/development/bless/slack-desc b/development/bless/slack-desc
new file mode 100644
index 0000000000000..ef53391a8abe0
--- /dev/null
+++ b/development/bless/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+bless: bless (GUI hex editor)
+bless:
+bless: bless is a full featured hexadecimal editor, written in C#, using Gtk#
+bless: for the user interface.
+bless:
+bless: Its purpose is to edit files as a sequence of bytes, allowing
+bless: read/write, search, pattern finding, efficient query-replace,
+bless: multi-tabbing, customized data-views, plug‐ins, and many other
+bless: features.
+bless:
+bless: