{"id":21083656,"url":"https://github.com/initdc/rpms-kernel","last_synced_at":"2025-03-14T05:09:56.751Z","repository":{"id":59403666,"uuid":"537105059","full_name":"initdc/rpms-kernel","owner":"initdc","description":null,"archived":false,"fork":false,"pushed_at":"2022-09-15T16:24:14.000Z","size":125024,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"26","last_synced_at":"2025-01-20T23:48:32.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://src.fedoraproject.org/rpms/kernel.git","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/initdc.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-15T16:06:03.000Z","updated_at":"2022-09-16T04:55:57.000Z","dependencies_parsed_at":"2022-09-16T16:34:25.616Z","dependency_job_id":null,"html_url":"https://github.com/initdc/rpms-kernel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initdc%2Frpms-kernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initdc%2Frpms-kernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initdc%2Frpms-kernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initdc%2Frpms-kernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/initdc","download_url":"https://codeload.github.com/initdc/rpms-kernel/tar.gz/refs/heads/26","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243526952,"owners_count":20305115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T20:19:17.351Z","updated_at":"2025-03-14T05:09:56.731Z","avatar_url":"https://github.com/initdc.png","language":"Shell","readme":"\n\t\tKernel package tips \u0026 tricks.\n\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe kernel is one of the more complicated packages in the distro, and\nfor the newcomer, some of the voodoo in the spec file can be somewhat scary.\nThis file attempts to document some of the magic.\n\n\nSpeeding up make prep\n---------------------\nThe kernel is nearly 500MB of source code, and as such, 'make prep'\ntakes a while. The spec file employs some trickery so that repeated\ninvocations of make prep don't take as long.  Ordinarily the %prep\nphase of a package will delete the tree it is about to untar/patch.\nThe kernel %prep keeps around an unpatched version of the tree,\nand makes a symlink tree clone of that clean tree and than applies\nthe patches listed in the spec to the symlink tree.\nThis makes a huge difference if you're doing multiple make preps a day.\nAs an added bonus, doing a diff between the clean tree and the symlink\ntree is slightly faster than it would be doing two proper copies of the tree.\n\n\nbuild logs.\n-----------\nThere's a convenience helper script in scripts/grab-logs.sh\nthat will grab the build logs from koji for the kernel version reported\nby make verrel\n\n\nconfig heirarchy.\n-----------------\nInstead of having to maintain a config file for every arch variant we build on,\nthe kernel spec uses a nested system of configs.  At the top level, is\nconfig-generic. Add options here that should be present in every possible\nconfig on all architectures.\n\nBeneath this are per-arch overrides. For example config-x86-generic add\nadditional x86 specific options, and also _override_ any options that were\nset in config-generic.\n\nThe heirarchy looks like this..\n\n                           config-generic\n                                 |\n                         config-x86-generic\n                         |                |\n             config-x86-32-generic   config-x86-64-generic\n\nAn option set in a lower level will override the same option set in one\nof the higher levels.\n\n\nThere exist two additional overrides, config-debug, and config-nodebug,\nwhich override -generic, and the per-arch overrides. It is documented\nfurther below.\n\n\ndebug options.\n--------------\nThis is a little complicated, as the purpose \u0026 meaning of this changes\ndepending on where we are in the release cycle.\nIf we are building for a current stable release, 'make release' has\ntypically been run already, which sets up the following..\n- Two builds occur, a 'kernel' and a 'kernel-debug' flavor.\n- kernel-debug will get various heavyweight debugging options like\n  lockdep etc turned on.\n\nIf we are building for rawhide, 'make debug' has been run, which changes\nthe status quo to:\n- We only build one kernel 'kernel'\n- The debug options from 'config-debug' are always turned on.\nThis is done to increase coverage testing, as not many people actually\nrun kernel-debug.\n\nTo add new debug options, add an option to _both_ config-debug and config-nodebug,\nand also new stanzas to the Makefile 'debug' and 'release' targets.\n\nSometimes debug options get added to config-generic, or per-arch overrides\ninstead of config-[no]debug. In this instance, the options should have no\ndiscernable performance impact, otherwise they belong in the debug files.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finitdc%2Frpms-kernel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finitdc%2Frpms-kernel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finitdc%2Frpms-kernel/lists"}