Question about the base repository for patch creation: Mainline vs. linux-next?
Hi everyone,
I am currently taking the LFD103 course, and I noticed that in the kernel configuration and compilation section, it is recommended to use the mainline repository (torvalds/linux.git) to follow along with the exercises and create the first patch.
However, reading the kernel documentation and learning about real-world workflows, I see it is very common to use linux-next (or the subsystem's development tree, such as usb-next) to ensure patches are built against the latest code and avoid conflicts with changes already queued by maintainers.
I would like to clarify the recommended best practice for both the course context and future contributions:
For LFD103 exercises and assignments: Should I standardize creating all patches against the master branch of the mainline tree? For submitting real patches to maintainers: Is the official recommendation to always use linux-next (or the subsystem tree), or are there specific cases where patches should be created directly against mainline?
Thank you in advance!
Best Answer
-
For the LFD103 exercises, stick with the repository and branch the course specifies. The point there is to have a known baseline so the exercises and patches are reproducible. For real kernel work, its a bit different. You normally base a patch on the subsystem maintainer’s tree or the branch they ask you to use, rather than automatically using 'linux-next'.
linux-nextis mainly useful for testing how your changes interact with other work that is being developed, but it isn’t generally the tree you submit patches against. So the safest rule is: follow the course for LFD103, and for upstream work follow the maintainer/subsystem current contribution instructions.0
Categories
- All Categories
- 178 LFX Mentorship
- 178 LFX Mentorship: Linux Kernel
- 775 Linux Foundation IT Professional Programs
- 384 Cloud Engineer IT Professional Program
- 175 Advanced Cloud Engineer IT Professional Program
- 75 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 103 Cloud Native Developer IT Professional Program
- 7.7K Training Courses & Learning Paths
- 13 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 36 Cloud & Containers Training
- 4 Cybersecurity Training
- 3 DevOps & Site-Reliability Training
- 2 Linux Kernel Development Training
- 2 Networking Training
- 2 Open Source Best Practice Training
- 5 System Administration Training
- 1 System Engineering Training
- 6 Web & Application Development Training
- 798 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 96 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 92 Storage
- 773 Linux Distributions
- 81 Debian
- 68 Fedora
- 24 Linux Mint
- 13 Mageia
- 24 openSUSE
- 151 Red Hat Enterprise
- 32 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 472 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 103 Linux Security
- 79 Network Management
- 102 System Management
- 46 Web Management
- 167 Mobile Computing
- 32 Android
- 120 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 407 Off Topic
- 128 Introductions
- 35 Study Material
- 1.1K Programming and Development
- 311 Kernel Development
- 723 Software Development
- 1K Software
- 418 Applications
- 183 Command Line
- 5 Compiling/Installing
- 71 Games
- 320 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)