1

I've been compiling my own kernels for and have hit an error with kernel 6.3:

$ make LSMOD=$XDG_CONFIG_HOME/modprobed.db localmodconfig
$ make deb-pkg -j4 LOCALVERSION=-custom

 UPD     include/config/kernel.release
  GEN     debian
error: creating source package requires git repository
make[1]: *** [scripts/Makefile.package:40: check-git] Error 1
make[1]: *** Waiting for unfinished jobs....
warning: Not a git repository. Use --no-index to compare two paths outside a working tree
usage: git diff --no-index [<options>] <path> <path>

Diff output format options -p, --patch generate patch -s, --no-patch suppress diff output -u generate patch -U, --unified[=<n>] generate diffs with <n> lines context -W, --function-context generate diffs with <n> lines context --raw generate the diff in raw format --patch-with-raw synonym for '-p --raw' --patch-with-stat synonym for '-p --stat' --numstat machine friendly --stat --shortstat output only the last line of --stat -X, --dirstat[=<param1,param2>...] output the distribution of relative amount of changes for each sub-directory --cumulative synonym for --dirstat=cumulative --dirstat-by-file[=<param1,param2>...] synonym for --dirstat=files,param1,param2... --check warn if changes introduce conflict markers or whitespace errors --summary condensed summary such as creations, renames and mode changes --name-only show only names of changed files --name-status show only names and status of changed files --stat[=<width>[,<name-width>[,<count>]]] generate diffstat --stat-width <width> generate diffstat with a given width --stat-name-width <width> generate diffstat with a given name width --stat-graph-width <width> generate diffstat with a given graph width --stat-count <count> generate diffstat with limited lines --compact-summary generate compact summary in diffstat --binary output a binary diff that can be applied --full-index show full pre- and post-image object names on the "index" lines --color[=<when>] show colored diff --ws-error-highlight <kind> highlight whitespace errors in the 'context', 'old' or 'new' lines in the diff -z do not munge pathnames and use NULs as output field terminators in --raw or --numstat --abbrev[=<n>] use <n> digits to display object names --src-prefix <prefix> show the given source prefix instead of "a/" --dst-prefix <prefix> show the given destination prefix instead of "b/" --line-prefix <prefix> prepend an additional prefix to every line of output --no-prefix do not show any source or destination prefix --inter-hunk-context <n> show context between diff hunks up to the specified number of lines --output-indicator-new <char> specify the character to indicate a new line instead of '+' --output-indicator-old <char> specify the character to indicate an old line instead of '-' --output-indicator-context <char> specify the character to indicate a context instead of ' '

Diff rename options -B, --break-rewrites[=<n>[/<m>]] break complete rewrite changes into pairs of delete and create -M, --find-renames[=<n>] detect renames -D, --irreversible-delete omit the preimage for deletes -C, --find-copies[=<n>] detect copies --find-copies-harder use unmodified files as source to find copies --no-renames disable rename detection --rename-empty use empty blobs as rename source --follow continue listing the history of a file beyond renames -l <n> prevent rename/copy detection if the number of rename/copy targets exceeds given limit

Diff algorithm options --minimal produce the smallest possible diff -w, --ignore-all-space ignore whitespace when comparing lines -b, --ignore-space-change ignore changes in amount of whitespace --ignore-space-at-eol ignore changes in whitespace at EOL --ignore-cr-at-eol ignore carrier-return at the end of line --ignore-blank-lines ignore changes whose lines are all blank -I, --ignore-matching-lines <regex> ignore changes whose all lines match <regex> --indent-heuristic heuristic to shift diff hunk boundaries for easy reading --patience generate diff using the "patience diff" algorithm --histogram generate diff using the "histogram diff" algorithm --diff-algorithm <algorithm> choose a diff algorithm --anchored <text> generate diff using the "anchored diff" algorithm --word-diff[=<mode>] show word diff, using <mode> to delimit changed words --word-diff-regex <regex> use <regex> to decide what a word is --color-words[=<regex>] equivalent to --word-diff=color --word-diff-regex=<regex> --color-moved[=<mode>] moved lines of code are colored differently --color-moved-ws <mode> how white spaces are ignored in --color-moved

Other diff options --relative[=<prefix>] when run from subdir, exclude changes outside and show relative paths -a, --text treat all files as text -R swap two inputs, reverse the diff --exit-code exit with 1 if there were differences, 0 otherwise --quiet disable all output of the program --ext-diff allow an external diff helper to be executed --textconv run external text conversion filters when comparing binary files --ignore-submodules[=<when>] ignore changes to submodules in the diff generation --submodule[=<format>] specify how differences in submodules are shown --ita-invisible-in-index hide 'git add -N' entries from the index --ita-visible-in-index treat 'git add -N' entries as real in the index -S <string> look for differences that change the number of occurrences of the specified string -G <regex> look for differences that change the number of occurrences of the specified regex --pickaxe-all show all changes in the changeset with -S or -G --pickaxe-regex treat <string> in -S as extended POSIX regular expression -O <file> control the order in which files appear in the output --rotate-to <path> show the change in the specified path first --skip-to <path> skip the output to the specified path --find-object <object-id> look for differences that change the number of occurrences of the specified object --diff-filter [(A|C|D|M|R|T|U|X|B)...[*]] select files by diff type --output <file> output to a specific file

make: *** [Makefile:1656: deb-pkg] Error 2

Does anyone have any advice on how to fix this? Thanks.

Ubuntu 23.04

vaskark
  • 243
  • Not the kernel 23.04 comes with why are you trying to do this? – David Apr 26 '23 at 11:37
  • Try make bindeb-pkg -j4 LOCALVERSION=-custom. But please tell us more about what you doing and why. see also here. – Doug Smythies Apr 26 '23 at 14:29
  • Hey again. Why am I doing this? No crucial reason. Everything works fine on my laptop. I've been building my own custom kernels specific to my hardware for a few years and I've never received this kind of an error before. These are the commands I've always used to make the deb pkgs for install. Just surprised by a 'git' error of all things. – vaskark Apr 26 '23 at 16:00
  • Okay. Tried the 'bindeb-pkg' command above and it worked. Not sure why it changed but oh well. Many thanks :) – vaskark Apr 26 '23 at 18:31
  • Glad you got it to work. It was years ago I had to change to bindeb-pkg. However, while looking into your question, I tried deb-pkg and it worked!!! – Doug Smythies Apr 26 '23 at 20:41
  • Thanks. It is a little weird about deb-pkg, isn’t it? I’ve used that command for years - even yesterday when I recompiled 6.2.12 just to see and it worked as always. Weird. – vaskark Apr 27 '23 at 00:19

2 Answers2

3

March 16, 2023 linux kernel git commit 05e96e96a315fa49faca4da2aedd1761a218b616

kbuild: use git-archive for source package creation Commit 5c3d1d0 ("kbuild: add a tool to list files ignored by git") added a new tool, scripts/list-gitignored. My intention was to create source packages without cleaning the source tree, without relying on git.

Linus strongly objected to it, and suggested using 'git archive' instead. [1] [2] [3]

This commit goes in that direction - Remove scripts/list-gitignored.c and rewrites Makefiles and scripts to use 'git archive' for building Debian and RPM source packages. It also makes 'make perf-tar*-src-pkg' use 'git archive' again.

Going forward, building source packages is only possible in a git-managed tree. Building binary packages does not require git.

So according to the above commit, just use "make bindeb-pkg" or if you want to build src pkg using "make deb-pkg" like before (pre 6.3), then you have to git pull the kernel source tree.

gniuk
  • 31
1

The same for me, for unknown reasons, the command 'make deb-pkg' won't work (it worked fo years without problems), the suggested command 'make bindeb-pkg' worked. This only for the 6.3 kernel release.