Clone this repo:


  1. 5edede5 Fix finding the kernel version that a commit is based on by Eric Biggers · 11 months ago master
  2. 498904e Initial commit by Eric Biggers · 12 months ago


This repository contains some scripts that may be helpful for maintenance of stable and Long Term Support branches of the Linux kernel.


Install the following packages:

  • python
  • python-requests
  • python-beautifulsoup4

List of scripts

  • find-orig-patch: Finds the original patch email from a git commit.

  • find-orig-series: Finds the original patch series from a git commit.

  • find-missing-prereqs: Finds patches that were backported without previous patches in their original series also being backported.

For more information, run each script with --help.

If anything goes wrong, using the --verbose option might help diagnose it. There are also tests, which can be run using


Settings such as the location of the Linux git repo are defined by the Config in These settings can be overridden by creating a file, in this directory, that contains a method customize(config). For example, your could contain:

import os

def customize(config):
    config.linux_dir = os.getenv('HOME') + '/src/linux'

Information sources

These scripts use two sources of information: a local Linux git repo and a remote mailing list archive server.

Linux git repo

config.linux_dir must be a clone of Linux that contains:

  • Any git commit IDs that are explicitly specified in commands

  • A git ref config.upstream (default: origin/master) that refers to the latest mainline. This is used to check whether commits are “upstream”.

  • The history going back at least to config.start_of_history (default: v4.0)

config.lore (default: must be a public-inbox server that archives the mailing lists that the patches for the git commits are sent to. The scripts query this server to find patches.

These scripts make a large number of queries, so please don‘t run these scripts excessively. However, all responses are cached for config.lore_cache_timeout (default: 24 hours) in the lore_cache directory. So, redundant requests won’t be made if e.g. a script is run multiple times with the same arguments.