Skip to content

Commit bd2a754

Browse files
committed
feat: pre-generate drbd patches using spatch out of tree
Stop using SPAAS and pre-generate the patches using spatch out of tree. Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
1 parent 898844e commit bd2a754

18 files changed

Lines changed: 1219 additions & 21 deletions

File tree

.github/renovate.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3-
"description": "THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.",
3+
"description": "THIS FILE WAS AUTOMATICALLY GENERATED BY KRES, PLEASE DO NOT EDIT.",
44
"prHeader": "Update Request | Renovate Bot",
55
"extends": [
66
":dependencyDashboard",
@@ -129,5 +129,6 @@
129129
]
130130
}
131131
],
132-
"separateMajorMinor": false
132+
"separateMajorMinor": false,
133+
"draftPR": true
133134
}

.github/workflows/ci.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
1+
# THIS FILE WAS AUTOMATICALLY GENERATED BY KRES, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2026-04-08T13:48:46Z by kres b6d29bf.
3+
# Generated on 2026-05-25T11:02:32Z by kres 44d3d02.
44

55
concurrency:
66
group: ${{ github.head_ref || github.run_id }}
@@ -95,7 +95,7 @@ jobs:
9595
make nonfree PUSH=true
9696
- name: Retrieve PR labels
9797
id: retrieve-pr-labels
98-
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # version: v8.0.0
98+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # version: v9.0.0
9999
with:
100100
retries: "3"
101101
script: |
@@ -122,14 +122,14 @@ jobs:
122122
make release-notes
123123
- name: Release
124124
if: startsWith(github.ref, 'refs/tags/')
125-
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # version: v2.6.1
125+
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # version: v3.0.0
126126
with:
127127
body_path: _out/RELEASE_NOTES.md
128128
draft: "true"
129129
reproducibility:
130130
runs-on:
131131
group: pkgs
132-
if: contains(fromJSON(needs.default.outputs.labels), 'integration/reproducibility')
132+
if: contains(fromJSON(needs.default.outputs.labels || '[]'), 'integration/reproducibility')
133133
needs:
134134
- default
135135
steps:

.github/workflows/slack-notify-ci-failure.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
1+
# THIS FILE WAS AUTOMATICALLY GENERATED BY KRES, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2026-04-08T13:48:46Z by kres b6d29bf.
3+
# Generated on 2026-05-25T11:02:32Z by kres 44d3d02.
44

55
"on":
66
workflow_run:
@@ -11,14 +11,15 @@
1111
branches:
1212
- main
1313
name: slack-notify-failure
14+
permissions: {}
1415
jobs:
1516
slack-notify:
1617
runs-on:
1718
group: generic
1819
if: github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.event != 'pull_request'
1920
steps:
2021
- name: Slack Notify
21-
uses: slackapi/slack-github-action@af78098f536edbc4de71162a307590698245be95 # version: v3.0.1
22+
uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # version: v3.0.3
2223
with:
2324
method: chat.postMessage
2425
payload: |
@@ -33,7 +34,7 @@ jobs:
3334
{
3435
"fields": [
3536
{
36-
"text": "${{ github.event.workflow_run.event == 'pull_request' && format('*Pull Request:* {0} (`{1}`)\n<{2}/pull/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, steps.get-pr-number.outputs.pull_request_number, github.event.workflow_run.display_title) || format('*Build:* {0} (`{1}`)\n<{2}/commit/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, github.sha, github.event.workflow_run.display_title) }}",
37+
"text": "${{ format('*Build:* {0} (`{1}`)\n<{2}/commit/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, github.sha, github.event.workflow_run.display_title) }}",
3738
"type": "mrkdwn"
3839
},
3940
{

.github/workflows/slack-notify.yaml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
1+
# THIS FILE WAS AUTOMATICALLY GENERATED BY KRES, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2026-04-08T13:48:46Z by kres b6d29bf.
3+
# Generated on 2026-05-25T11:02:32Z by kres 44d3d02.
44

55
"on":
66
workflow_run:
@@ -10,6 +10,8 @@
1010
types:
1111
- completed
1212
name: slack-notify
13+
permissions:
14+
pull-requests: read
1315
jobs:
1416
slack-notify:
1517
runs-on:
@@ -19,12 +21,24 @@ jobs:
1921
- name: Get PR number
2022
id: get-pr-number
2123
if: github.event.workflow_run.event == 'pull_request'
22-
env:
23-
GH_TOKEN: ${{ github.token }}
24-
run: |
25-
echo pull_request_number=$(gh pr view -R ${{ github.repository }} ${{ github.event.workflow_run.head_repository.owner.login }}:${{ github.event.workflow_run.head_branch }} --json number --jq .number) >> $GITHUB_OUTPUT
24+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # version: v9.0.0
25+
with:
26+
script: |
27+
const prs = await github.rest.pulls.list({
28+
owner: context.repo.owner,
29+
repo: context.repo.repo,
30+
head: `${context.payload.workflow_run.head_repository.owner.login}:${context.payload.workflow_run.head_branch}`,
31+
state: 'all',
32+
sort: 'updated',
33+
direction: 'desc',
34+
per_page: 1,
35+
})
36+
37+
if (prs.data.length > 0) {
38+
core.setOutput('pull_request_number', prs.data[0].number)
39+
}
2640
- name: Slack Notify
27-
uses: slackapi/slack-github-action@af78098f536edbc4de71162a307590698245be95 # version: v3.0.1
41+
uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # version: v3.0.3
2842
with:
2943
method: chat.postMessage
3044
payload: |

.kres.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ spec:
8989
toplevel: true
9090
- name: kernel-%
9191
toplevel: true
92+
- name: drbd-gen-compat
93+
toplevel: true
9294
- name: check-dirty
9395
toplevel: true
9496
---
@@ -119,6 +121,19 @@ spec:
119121
done
120122
---
121123
kind: custom.Step
124+
name: drbd-gen-compat
125+
spec:
126+
makefile:
127+
enabled: true
128+
phony: true
129+
script:
130+
- |
131+
@for platform in $(shell echo $(PLATFORM) | tr "," " "); do \
132+
arch=`basename $$platform` ; \
133+
ARCH=$$arch bash hack/drbd-gen-compat.sh ; \
134+
done
135+
---
136+
kind: custom.Step
122137
name: check-dirty
123138
spec:
124139
makefile:

Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
1+
# THIS FILE WAS AUTOMATICALLY GENERATED BY KRES, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2026-04-18T14:43:19Z by kres 4b58472.
3+
# Generated on 2026-05-25T11:02:32Z by kres 44d3d02.
44

55
# common variables
66

@@ -243,6 +243,13 @@ kernel-%:
243243
docker run --rm -it --entrypoint=/bin/bash -w /src -v $$PWD/kernel/build/config-$$arch:/host/.hostconfig $(REGISTRY)/$(USERNAME)/kernel:$(TAG)-$$arch -c 'cp /host/.hostconfig .config && make LLVM=1 $* && cp .config /host/.hostconfig'; \
244244
done
245245

246+
.PHONY: drbd-gen-compat
247+
drbd-gen-compat:
248+
@for platform in $(shell echo $(PLATFORM) | tr "," " "); do \
249+
arch=`basename $$platform` ; \
250+
ARCH=$$arch bash hack/drbd-gen-compat.sh ; \
251+
done
252+
246253
.PHONY: check-dirty
247254
check-dirty:
248255
@if test -n "`git status --porcelain`"; then echo "Source tree is dirty"; git status; git diff; exit 1 ; fi
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
alloc_obj_default_gfp__no_present
2+
kmap_local_page__no_present
3+
struct_sockaddr_unsized__no_present
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
#define COMPAT___VMALLOC_HAS_2_PARAMS
2+
#define COMPAT_ADD_DISK_RETURNS_INT
3+
/* #undef COMPAT_BEFORE_4_13_KERNEL_READ */
4+
#define COMPAT_BIO_ALLOC_HAS_4_PARAMS
5+
#define COMPAT_BLK_ALLOC_DISK_TAKES_QUEUE_LIMITS
6+
/* #undef COMPAT_BLKDEV_GET_BY_PATH_HAS_HOLDER_OPS */
7+
/* #undef COMPAT_BLKDEV_ISSUE_DISCARD_TAKES_FLAGS */
8+
#define COMPAT_BLKDEV_ISSUE_ZEROOUT_DISCARD
9+
/* #undef COMPAT_BLKDEV_PUT_HAS_HOLDER */
10+
#define COMPAT_BLOCK_DEVICE_OPERATIONS_OPEN_TAKES_GENDISK
11+
#define COMPAT_BLOCK_DEVICE_OPERATIONS_RELEASE_TAKES_SINGLE_ARGUMENT
12+
/* #undef COMPAT_CAN_INCLUDE_VERMAGIC_H */
13+
/* #undef COMPAT_DAX_DIRECT_ACCESS_TAKES_MODE */
14+
/* #undef COMPAT_FS_DAX_GET_BY_BDEV_TAKES_START_OFF */
15+
#define COMPAT_FS_DAX_GET_BY_BDEV_TAKES_START_OFF_AND_HOLDER
16+
#define COMPAT_GENL_POLICY_IN_OPS
17+
#define COMPAT_GENLMSG_MULTICAST_ALLNS_HAS_4_PARAMS
18+
#define COMPAT_HAVE_BIO_MAX_VECS
19+
#define COMPAT_HAVE_GENHD_FL_NO_PART
20+
#define COMPAT_HAVE___BIO_ADD_PAGE
21+
/* #undef COMPAT_HAVE_ALLOC_OBJ_DEFAULT_GFP */
22+
#define COMPAT_HAVE_ALLOW_KERNEL_SIGNAL
23+
#define COMPAT_HAVE_BDEV_DISCARD_GRANULARITY
24+
#define COMPAT_HAVE_BDEV_FILE_OPEN_BY_PATH
25+
#define COMPAT_HAVE_BDEV_FREEZE
26+
#define COMPAT_HAVE_BDEV_MAX_DISCARD_SECTORS
27+
#define COMPAT_HAVE_BDEV_NR_SECTORS
28+
/* #undef COMPAT_HAVE_BDEV_OPEN_BY_PATH */
29+
/* #undef COMPAT_HAVE_BDEVNAME */
30+
/* #undef COMPAT_HAVE_BDGRAB */
31+
/* #undef COMPAT_HAVE_BDI_CONGESTED */
32+
/* #undef COMPAT_HAVE_BDI_CONGESTED_FN */
33+
#define COMPAT_HAVE_BIO_ADVANCE_ITER_SINGLE
34+
#define COMPAT_HAVE_BIO_ALLOC_CLONE
35+
#define COMPAT_HAVE_BIO_BI_BDEV
36+
/* #undef COMPAT_HAVE_BIO_BI_ERROR */
37+
#define COMPAT_HAVE_BIO_FOR_EACH_BVEC
38+
#define COMPAT_HAVE_BIO_MAX_SEGS
39+
#define COMPAT_HAVE_BIO_SPLIT_TO_LIMITS
40+
#define COMPAT_HAVE_BIO_START_IO_ACCT
41+
#define COMPAT_HAVE_BIOSET_INIT
42+
/* #undef COMPAT_HAVE_BLK_ALLOC_DISK */
43+
/* #undef COMPAT_HAVE_BLK_ALLOC_QUEUE_RH */
44+
/* #undef COMPAT_HAVE_BLK_CLEANUP_DISK */
45+
#define COMPAT_HAVE_BLK_FEAT_STABLE_WRITES
46+
#define COMPAT_HAVE_BLK_MODE_T
47+
#define COMPAT_HAVE_BLK_OPF_T
48+
#define COMPAT_HAVE_BLK_QC_T_SUBMIT_BIO
49+
#define COMPAT_HAVE_BLK_QUEUE_FLAG_SET
50+
/* #undef COMPAT_HAVE_BLK_QUEUE_MAKE_REQUEST */
51+
/* #undef COMPAT_HAVE_BLK_QUEUE_MAX_WRITE_SAME_SECTORS */
52+
/* #undef COMPAT_HAVE_BLK_QUEUE_SPLIT_BIO */
53+
/* #undef COMPAT_HAVE_BLK_QUEUE_SPLIT_Q_BIO */
54+
/* #undef COMPAT_HAVE_BLK_QUEUE_UPDATE_READAHEAD */
55+
/* #undef COMPAT_HAVE_BLK_QUEUE_WRITE_CACHE */
56+
#define COMPAT_HAVE_BVEC_KMAP_LOCAL
57+
/* #undef COMPAT_HAVE_BVEC_NTH_PAGE */
58+
#define COMPAT_HAVE_BVEC_VIRT
59+
#define COMPAT_HAVE_COUNTED_BY
60+
#define COMPAT_HAVE_DEBUGFS_CHANGE_NAME
61+
/* #undef COMPAT_HAVE_DISK_UPDATE_READAHEAD */
62+
#define COMPAT_HAVE_ENUM_REQ_OP
63+
#define COMPAT_HAVE_FALLTHROUGH
64+
#define COMPAT_HAVE_FS_DAX_GET_BY_BDEV
65+
/* #undef COMPAT_HAVE_GENERIC_START_IO_ACCT_Q_RW_SECT_PART */
66+
/* #undef COMPAT_HAVE_GENERIC_START_IO_ACCT_RW_SECT_PART */
67+
#define COMPAT_HAVE_GENL_INFO_USERHDR
68+
#define COMPAT_HAVE_GENL_PRE_DOIT_SPLIT_OPS
69+
#define COMPAT_HAVE_GET_RANDOM_U32
70+
#define COMPAT_HAVE_GET_RANDOM_U32_BELOW
71+
/* #undef COMPAT_HAVE_HD_STRUCT */
72+
#define COMPAT_HAVE_IB_ALLOC_CQ_ANY
73+
#define COMPAT_HAVE_KMALLOC_OBJ
74+
/* #undef COMPAT_HAVE_KMAP_LOCAL_PAGE */
75+
/* #undef COMPAT_HAVE_KVFREE_RCU */
76+
#define COMPAT_HAVE_KVFREE_RCU_MIGHTSLEEP
77+
#define COMPAT_HAVE_LINUX_UNALIGNED_H
78+
#define COMPAT_HAVE_LIST_IS_FIRST
79+
#define COMPAT_HAVE_LOOKUP_USER_KEY
80+
#define COMPAT_HAVE_MAX_SEND_RECV_SGE
81+
#define COMPAT_HAVE_MEMPOOL_IS_SATURATED
82+
#define COMPAT_HAVE_NLA_NEST_START_NOFLAG
83+
#define COMPAT_HAVE_NLA_PARSE_DEPRECATED
84+
#define COMPAT_HAVE_NLA_STRSCPY
85+
#define COMPAT_HAVE_PART_STAT_H
86+
#define COMPAT_HAVE_PART_STAT_READ_ACCUM
87+
/* #undef COMPAT_HAVE_PFN_T */
88+
#define COMPAT_HAVE_PROC_CREATE_SINGLE
89+
/* #undef COMPAT_HAVE_QUEUE_FLAG_DISCARD */
90+
/* #undef COMPAT_HAVE_QUEUE_FLAG_STABLE_WRITES */
91+
#define COMPAT_HAVE_QUEUE_LIMITS_START_UPDATE
92+
#define COMPAT_HAVE_RB_DECLARE_CALLBACKS_MAX
93+
#define COMPAT_HAVE_REQ_OP_WRITE
94+
/* #undef COMPAT_HAVE_REVALIDATE_DISK_SIZE */
95+
#define COMPAT_HAVE_SANE_TEST_ENVIRONMENT
96+
/* #undef COMPAT_HAVE_SANE_TEST_ENVIRONMENT_ALWAYS_FAIL */
97+
#define COMPAT_HAVE_SCHED_SET_FIFO
98+
/* #undef COMPAT_HAVE_SENDPAGE */
99+
#define COMPAT_HAVE_SENDPAGE_OK
100+
#define COMPAT_HAVE_SET_CAPACITY_AND_NOTIFY
101+
#define COMPAT_HAVE_SK_USE_TASK_FRAG
102+
#define COMPAT_HAVE_SOCK_SET_KEEPALIVE
103+
#define COMPAT_HAVE_STRUCT_SIZE
104+
/* #undef COMPAT_HAVE_STRUCT_SOCKADDR_UNSIZED */
105+
#define COMPAT_HAVE_SUBMIT_BIO_NOACCT
106+
#define COMPAT_HAVE_TASKLET_SETUP
107+
#define COMPAT_HAVE_TCP_SOCK_SET_CORK
108+
#define COMPAT_HAVE_TCP_SOCK_SET_KEEPCNT
109+
#define COMPAT_HAVE_TCP_SOCK_SET_KEEPIDLE
110+
#define COMPAT_HAVE_TCP_SOCK_SET_NODELAY
111+
#define COMPAT_HAVE_TCP_SOCK_SET_QUICKACK
112+
#define COMPAT_HAVE_TIMER_CONTAINER_OF
113+
#define COMPAT_HAVE_TIMER_DELETE
114+
#define COMPAT_HAVE_TIMER_SHUTDOWN
115+
#define COMPAT_HAVE_TLS_GET_RECORD_TYPE
116+
#define COMPAT_HAVE_TLS_TX_RX
117+
#define COMPAT_HAVE_VOID_SUBMIT_BIO
118+
#define COMPAT_IB_DEVICE_HAS_OPS
119+
#define COMPAT_IB_POST_SEND_CONST_PARAMS
120+
/* #undef COMPAT_NEED_DRBD_WRAPPERS */
121+
/* #undef COMPAT_NEED_MAKE_REQUEST_RECURSION */
122+
/* #undef COMPAT_NEED_RECALC_SIGPENDING */
123+
#define COMPAT_PART_STAT_READ_TAKES_BLOCK_DEVICE
124+
#define COMPAT_QUEUE_LIMITS_HAS_FEATURES
125+
#define COMPAT_QUEUE_LIMITS_HAS_MAX_HW_DISCARD_SECTORS
126+
#define COMPAT_QUEUE_LIMITS_HAS_MAX_HW_WZEROES_UNMAP_SECTORS
127+
#define COMPAT_QUEUE_LIMITS_HAS_MAX_HW_ZONE_APPEND_SECTORS
128+
#define COMPAT_QUEUE_LIMITS_HAS_MAX_ZONE_APPEND_SECTORS
129+
#define COMPAT_RDMA_REJECT_HAS_REASON_ARG
130+
#define COMPAT_SOCK_OPS_RETURNS_ADDR_LEN
131+
#define COMPAT_STRUCT_GENDISK_HAS_BACKING_DEV_INFO
132+
/* #undef COMPAT_THAW_BDEV_TAKES_SUPER_BLOCK */

0 commit comments

Comments
 (0)