The Debian packaging of imediff is maintained in git, using the merging
workflow described in dgit-maint-merge(7).  There isn't a patch queue
that can be represented as a quilt series.

Currently, imediff is hosted at https://github.com/osamuaoki/imediff.git
(Since I am the upstream.  I will move to salsa.debian.org as the primary)

Seeing the git history in the above repository should give you good
clear perspective what is in the single combined diff of this packge.

If bss is ever uploaded to the Debian, the following may be used.

A detailed breakdown of the changes is available from their canonical
representation - git commits in the packaging repository.  For example,
to see the changes made by the Debian maintainer in the first upload of
upstream version 1.2.3, you could use:

    % git clone https://git.dgit.debian.org/imediff
    % cd foo
    % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian'

(If you have dgit, use `dgit clone imediff`, rather than plain `git clone`.)

A single combined diff, containing all the changes, follows.

--- imediff-2.4.orig/README.md
+++ imediff-2.4/README.md
@@ -13,8 +13,8 @@ This provides the imediff command and gi
 ## What is imediff
 
 The imediff command helps you to merge 2 slightly different files with an
-optional base file interactively using the in-place alternating display of
-the changed content on a single-pane full screen terminal user interface.
+optional base file interactively using the in-place alternating display of the
+changed content on a single-pane full screen terminal user interface.
 
 The source of line is clearly identified by the color of the line or the
 identifier character at the first column.
@@ -38,26 +38,29 @@ always yields the clean merge.
 
 ## What is git-ime
 
-This git ime is a simple shell wrapper script on git and imediff to
-split the latest commit from HEAD^ to HEAD on the current git
-repository into multiple commits.
+The "git ime" command helps you to merge 2 slightly different file trees
+committed to the consecutive commits (`HEAD^`, `HEAD`) of a git repository
+while using "git rebase -i *treeish*" and gitk as helper to select changes.
 
 If any staged changes or local uncommitted changes are found in the git
-repository, git ime immediately exits without changes to be on the safe
+repository, "git ime" immediately exits without changes to be on the safe
 side.
 
-If the latest commit involves multiple files, this big commit is split
-by the file into multiple smaller commits involving a single file.
+If the latest commit involves multiple files, this big commit is split by the
+file into multiple smaller commits involving a single file.
 
-If the latest commit involves only a single file, the commit is split
-into multiple smaller commits involving a set of meaningful partial
-changes selected by imediff interactively.
-
-This git-ime is not only useful at the checked out branch head but also
-at "edit" prompt during the interactive execution of git rebase -i
-treeish.
+If the latest commit involves only a single file, the commit is split into
+multiple smaller commits involving a set of meaningful partial changes by
+imediff and managed interactively.
 
-## Quick start
+This "git ime" is not only useful at the checked out branch head but also at
+"edit" prompt during the interactive execution of "git rebase -i *treeish*".
+
+The "git ime" command is a simple shell wrapper script of git and imediff.
+
+## Quick start for Debian/Ubuntu derivative users
+
+Please install the `imediff` package from the APT repository.
 
 At the console command line prompt, type:
  * "imediff" to read the tutorial,
@@ -114,6 +117,54 @@ consulting with Jarno Elonen. Now progra
 supports diff for not only 2 files but also 3 files.  The version number is
 bumped to 2.0.
 
+## Note to non-Debian/Ubuntu derivative users
+
+The building of rpm or wheel are not supported as out-of-box now (patch
+welcome).
+
+Since this is packaged with setuptools, I recommend to create a wheel package
+first and install it with `pip` or `pipx` to the system.
+
+You must have the full python 3.9 environment.  Corresponding packages for the
+following Debian packages are needed.
+
+* python3-minimal  -- include all the Python standard libraries (curses, gettext)
+* python3-distutils -- You need this for `setup.py`
+* python3-setuptools -- You need this for `setup.py`
+* python3-distutils-extra -- You need this for i18n functionality.
+
+I am sure the first 3 packages are available if the platform system supports
+Python 3.9.  It seems some older Python 3 seems to cause problem with the
+current `setup.py` probably due to the use of new archive style using `src/`
+directory.
+
+Since older version did not have this problem, I created the `alternative`
+branch which should support such older system.  Also, I backported `git-ime` to
+this `alternative` branch.
+
+The problematic one may be python3-distutils-extra which supports UI messages
+for non-English languages.  Here are points to disable i18n features and drop
+build dependency to the python3-distutils-extra.
+
+* Remove `i18n=True` and `icons=False` in `[build]` section of `setup.cfg` .
+* Replace `_ = gettext.gettext` with `_ = lambda x : x` in `src/utils.py`.
+* Comment out all lines containing "gettext" in the source under `src/` .
+
+The `alternative` branch also implements these changes to drop all i18n
+features for the maximum compatibility.
+
+For the build dependencies listed in `debian/control`, `debhelper-compat` and
+`dh-python` are purely for the Debian package building, so these are not
+essential for other platforms.
+
+If you wish to update manpage from XML, `docbook-xsl` and `xsltproc` are needed
+for building manpage from xml source then manually touch up details.
+
+Code is not written for Windows compatibility in mind, yet.
+
+The `git-ime` command requires you to have some POSIX shell and the `git`
+command access.
+
 ## Note to developer and translator
 
 ### making Debian package
--- imediff-2.4.orig/doc/git-ime.1
+++ imediff-2.4/doc/git-ime.1
@@ -28,7 +28,7 @@
 .\" * MAIN CONTENT STARTS HERE *
 .\" -----------------------------------------------------------------
 .SH "NAME"
-git-ime \- An interactive git commit split tool
+git-ime \- An interactive git commit split helper tool
 .SH "SYNOPSIS"
 .HP \w'\fBgit\-ime\fR\ 'u
 \fBgit\-ime\fR [\fB\-a\fR] [\fB\-\-auto\fR] [\fB\-v\fR] [\fB\-\-verbose\fR] [\fB\-h\fR] [\fB\-\-help\fR]
--- imediff-2.4.orig/doc/git-ime.xml
+++ imediff-2.4/doc/git-ime.xml
@@ -40,7 +40,7 @@
   </refmeta>
   <refnamediv>
     <refname>&dhpackage;</refname>
-    <refpurpose>An interactive git commit split tool</refpurpose>
+    <refpurpose>An interactive git commit split helper tool</refpurpose>
   </refnamediv>
   <refsynopsisdiv>
     <cmdsynopsis>
--- imediff-2.4.orig/po/POTFILES.in
+++ imediff-2.4/po/POTFILES.in
@@ -3,7 +3,7 @@ src/imediff/config.py
 src/imediff/diff2lib.py
 src/imediff/diff3lib.py
 src/imediff/__init__.py
-src/imediff/main.py
+src/imediff/__main__.py
 src/imediff/tui.py
 src/imediff/utils.py
 
--- imediff-2.4.orig/setup.cfg
+++ imediff-2.4/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = imediff
-version = attr: imediff.main.VERSION
+version = attr: imediff.__main__.VERSION
 description = Interactive Merge Editor for DIFF2/3
 long_description = file: README.md
 classifiers =
@@ -11,10 +11,6 @@ classifiers =
         License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
 	Programming Language :: Python
 	Programming Language :: Python :: 3
-	Programming Language :: Python :: 3.5
-	Programming Language :: Python :: 3.6
-	Programming Language :: Python :: 3.7
-	Programming Language :: Python :: 3.8
 	Programming Language :: Python :: 3.9
         Operating System :: POSIX :: Linux
 #author = Osamu Aoki
@@ -42,7 +38,7 @@ cmdclass =
 package_dir =
 	= src
 packages = find:
-python_requires = >=3.4
+python_requires = >=3.9
 setup_requires = setuptools >= 42
 
 [options.packages.find]
--- imediff-2.4.orig/src/imediff/__init__.py
+++ imediff-2.4/src/imediff/__init__.py
@@ -23,4 +23,4 @@ License along with this program; if not,
 Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.
 """
-from imediff.main import *
+from imediff.__main__ import *
--- imediff-2.4.orig/src/imediff/__main__.py
+++ imediff-2.4/src/imediff/__main__.py
@@ -151,9 +151,7 @@ Specify configuration file to use.  (def
     pa.add_argument(
         "--non-interactive", "-n", action="store_true", help="execution without curses"
     )
-    pa.add_argument(
-            "--macro", "-M", default=":", help="set MACRO string"
-    )
+    pa.add_argument("--macro", "-M", default=":", help="set MACRO string")
     pa.add_argument(
         "--template",
         "-t",
@@ -195,13 +193,12 @@ Specify configuration file to use.  (def
             args.default_mode = "d"  # default diff2
         else:
             args.default_mode = "g"  # default diff3
-    config_file = os.path.expanduser(args.conf)
     return args
 
 
-def initialize_confs(config_file):
+def initialize_confs(conf):
     """Process configuration file"""
-    config_file = os.path.expanduser(config_file)
+    config_file = os.path.expanduser(conf)
     # Allow inline comment with #
     confs_i = configparser.ConfigParser(inline_comment_prefixes=("#"))
     confs_i.read_string(config_template)
@@ -216,13 +213,13 @@ def initialize_confs(config_file):
         else:
             error_exit(
                 '''\
-Error in ~/.imediff: version mismatch
-        the current version:  {}
-        the required version: {}
+Error in {0}: version mismatch
+        the current version:  {1}
+        the required version: {2}
 
-Rename ~/.imediff to ~/.imediff.bkup and make the new ~/.imediff by
+Rename {0} to {0}.bkup and make the new {0} by
 editing the template obtained by "imediff -t"'''.format(
-                    confs_f["config"]["version"], confs_i["config"]["version"]
+                    conf, confs_f["config"]["version"], confs_i["config"]["version"]
                 )
             )
     else:
@@ -245,7 +242,7 @@ def main():
     locale.setlocale(locale.LC_ALL, "")
     args = initialize_args()
     if args.template:
-        create_template(config_file)
+        create_template(args.conf)
         sys.exit(0)
 
     # logging
--- imediff-2.4.orig/src/imediff/config.py
+++ imediff-2.4/src/imediff/config.py
@@ -24,6 +24,8 @@ Software Foundation, Inc., 51 Franklin S
 Boston, MA 02110-1301, USA.
 """
 
+import os
+import io
 import curses
 
 # Update version below only when configuration API changes
@@ -117,25 +119,22 @@ cc["MAGENTA"] = curses.COLOR_MAGENTA
 cc["WHITE"] = curses.COLOR_WHITE
 cc["BLACK"] = curses.COLOR_BLACK
 
-def create_template(config_file):
+
+def create_template(conf):
+    config_file = os.path.expanduser(conf)
     if not os.path.exists(config_file):
         # logger.debug("create configuration file: {}".format(args.conf))
         try:
-            with open(
-                config_file, mode="w", buffering=io.DEFAULT_BUFFER_SIZE
-            ) as ofp:
+            with open(config_file, mode="w", buffering=io.DEFAULT_BUFFER_SIZE) as ofp:
                 ofp.write(config_template)
         except IOError:
-            error_exit(
-                "Error in creating configuration file: {}".format(config_file)
-            )
+            error_exit("Error in creating configuration file: {}".format(conf))
     else:
-        error_exit("Erase {} before 'imediff -t'".format(args.conf))
+        error_exit("Erase {} before 'imediff -t'".format(conf))
     return
 
+
 # Generate template file: TEMPLATE.imediff
 if __name__ == "__main__":
-    import os
-    import io
-    create_template("TEMPLATE.imediff")
 
+    create_template("TEMPLATE.imediff")
--- imediff-2.4.orig/src/imediff/diff3lib.py
+++ imediff-2.4/src/imediff/diff3lib.py
@@ -216,8 +216,7 @@ class SequenceMatcher3:
         self.chunks = None
 
     def set_seq1(self, a):
-        """Set the first sequence to be compared.
-        """
+        """Set the first sequence to be compared."""
 
         if a is self.a:
             return
@@ -225,8 +224,7 @@ class SequenceMatcher3:
         self.chunks = None
 
     def set_seq2(self, b):
-        """Set the second sequence to be compared.
-        """
+        """Set the second sequence to be compared."""
 
         if b is self.b:
             return
@@ -234,8 +232,7 @@ class SequenceMatcher3:
         self.chunks = None
 
     def set_seq3(self, c):
-        """Set the third sequence to be compared.
-        """
+        """Set the third sequence to be compared."""
 
         if c is self.c:
             return
@@ -243,8 +240,7 @@ class SequenceMatcher3:
         self.chunks = None
 
     def set_seqs(self, a, b, c):
-        """Set the two sequences to be compared.
-        """
+        """Set the two sequences to be compared."""
 
         self.set_seq1(a)
         self.set_seq2(b)
--- imediff-2.4.orig/test/test_diff23lib.py
+++ imediff-2.4/test/test_diff23lib.py
@@ -76,15 +76,17 @@ class TestImediff(unittest.TestCase):
 
     def test_diff2lib_doctest(self):
         result = subprocess.call(
-            "cd " + pwd + "; ./diff2lib.py", shell=True,
+            "cd " + pwd + "; ./diff2lib.py",
+            shell=True,
         )
         self.assertEqual(result, 0)
         return
 
     def test_diff3lib_doctest(self):
-#            "cd " + pwd + "; pwd; ls -lR",
+        #            "cd " + pwd + "; pwd; ls -lR",
         result = subprocess.call(
-            "cd " + pwd + "; ./diff3lib.py", shell=True,
+            "cd " + pwd + "; ./diff3lib.py",
+            shell=True,
         )
         self.assertEqual(result, 0)
         return
