[03:48] <TimurTabi> I have a question about https://kernel.ubuntu.com/~kernel-ppa/mainline/.  Starting with the 5.7 kernel, the build patch files (e.g. 0001-base-packaging.patch) are no longer included.  Why is that?  I need those files in order to build an upstream kernel and they're just missing with no explanation.
[08:28] <juergh> @TimurTabi, The patches are now provided as a git bundle: crack.bundle in the top directory.
[13:24] <TimurTabi> Thanks.  I've never heard of a git bundle before, so I guess I need to figure that out.
[13:27] <TimurTabi> Was this change documented anywhere? I don't see any reference to bundles on https://wiki.ubuntu.com/Kernel/MainlineBuilds
[13:32] <TimurTabi> $ git pull crack.bundle master
[13:32] <TimurTabi> fatal: couldn't find remote ref master
[13:32] <TimurTabi> Shouldn't that work?
[13:41] <klebers> TimurTabi, you don't need to apply any additional patch anymore on top of the git tag mentioned on the page
[13:41] <klebers> e.g. from https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.12-rc6/
[13:41] <klebers> To obtain the source from which they are built fetch the commit below:
[13:41] <klebers>   git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack cod/mainline/v5.12-rc6
[13:42] <klebers> just fetch that tag, it already contains all the additional patches applied
[13:42] <TimurTabi> What I'm trying to do is create an ubuntu_defconfig from *any* v5.12-rc6 kernel
[13:42] <TimurTabi> not just the one that Canonical used.
[13:43] <TimurTabi> I just need those 5 patch files that are apparently in crack.bundle
[13:43] <klebers> you can likely do it with 'git format-path -1 <sha1>', then you can apply that patch anywhere you need
[13:43] <klebers> actually 'git format-patch ...'
[13:43] <TimurTabi> what <sha1> do I use?  
[13:44] <TimurTabi> $ git bundle unbundle crack.bundle
[13:44] <TimurTabi> 7a4e5f292833e50d0c5575afac2a2d81a5d6b18a refs/tags/cod/mainline/v5.12-rc6
[13:44] <TimurTabi> That one?
[13:45] <TimurTabi> That seemed to work, but I don't understand how.
[13:46] <klebers> that command will generate only one patch, if you need the last N patches you can do something like 'git format-patch -N' or 'git format-patch <latest Linus' mainline tag>'
[13:46] <klebers> e.g. 'git format-patch v5.12-rc6'
[13:46] <TimurTabi> How do I know how many patches are in the bundle?
[13:48] <TimurTabi> "git format-patch v5.12-rc6" gave me 30 patches.  That's not what I want
[13:48] <TimurTabi> Ah, maybe this:
[13:48] <TimurTabi> $ git format-patch v5.12-rc6..7a4e5f292833e50d0c5575afac2a2d81a5d6b18a
[13:48] <TimurTabi> 0001-base-packaging.patch
[13:48] <TimurTabi> 0002-UBUNTU-SAUCE-kbuild-add-fcf-protection-none-when-usi.patch
[13:48] <TimurTabi> 0003-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
[13:48] <TimurTabi> 0004-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
[13:48] <TimurTabi> 0005-debian-changelog.patch
[13:48] <TimurTabi> 0006-configs-based-on-refs-remotes-unstable-master.patch
[13:49] <TimurTabi> Did the "git bundle unbundle" command create those commits, but in a detached state?
[13:49] <klebers> yeah, that looks like to be what you want
[13:50] <klebers> not sure about the bundle, would need to take a look 
[13:51] <TimurTabi> I mean, that's what it looks like it does, but I'm still confused about how bundles work, so I'm not sure.
[15:30] <kwilczynski> TimurTabi: Bundle just "packages" together reflog, more or less.
[15:31] <kwilczynski> TimurTabi: You can think of it as a snapshot of Git repository at a given point in time. You can unbundle the bundle, you can check it out, or check something from it out, etc.
[15:31] <kwilczynski> TimurTabi: Not a lot of projects uses bundles, though.
[15:43] <TimurTabi> So I don't really need to create patches if I unbundle the bundle, I can just merge that new SHA onto master?
[16:13] <luna> soon Kernel freeze time
[18:20] <juergh> @TimurTabi, https://git-scm.com/book/en/v2/Git-Tools-Bundling
[18:23] <juergh> @TimurTabi, git bundle verify will tell you the refs that it contains and required (which for the 5.7 bundle is the v5.7 tag)
[18:23] <juergh> $ git bundle verify crack.bundle
[18:23] <juergh> The bundle contains this ref:
[18:23] <juergh> 7b90fe899b99570c6d6e76109df4446540ceccd2 refs/tags/cod/mainline/v5.7
[18:23] <juergh> The bundle requires this ref:
[18:23] <juergh> 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162 
[18:23] <juergh> crack.bundle is okay
[18:24] <juergh> So you need to be in a repo that contains the required ref and then:
[18:24] <juergh> $ git fetch crack.bundle refs/tags/cod/mainline/v5.7:crack
[18:24] <juergh> From crack.bundle
[18:24] <juergh>  * [new tag]                   cod/mainline/v5.7 -> crack
[18:39] <TimurTabi> Thanks, I've got it working this way:
[18:39] <TimurTabi>         SHA=`git bundle unbundle ${PATCHDIR}/crack.bundle`
[18:39] <TimurTabi>         SHA=${SHA:0:40}
[18:39] <TimurTabi>         git format-patch v${KERNEL_VERSION}..${SHA} -o ${PATCHDIR}
[18:39] <TimurTabi> Not as elegant but compatible with the rest of my script.