Compare commits

...

280 Commits

Author SHA1 Message Date
5b9f1f2f39 Re-add specific device config 2025-10-23 16:46:16 -04:00
c5bfc7907b Remove specific device config 2025-10-23 16:43:34 -04:00
533b0b5ffc Re-add specific device config 2025-10-23 16:34:37 -04:00
eba54804d3 Blank the seed file 2025-10-23 16:31:34 -04:00
09b62923a8 Re-add specific device config 2025-10-23 16:19:58 -04:00
960755e6a2 Use faster feeds mirror 2025-10-22 21:16:41 -04:00
0fa9b0d85a Streamling config options 2025-10-22 21:02:36 -04:00
4de18e6696 Add optional build clean arg to --source 2025-10-22 20:55:20 -04:00
3772d373bb Tune resource limits 2025-10-22 20:27:21 -04:00
b75597946d Improve worktree detection 2025-10-22 19:35:38 -04:00
018a91e216 Introduce reusable worktrees 2025-10-22 19:31:58 -04:00
0c61a27b06 Reorganize from_source() 2025-10-22 19:25:59 -04:00
675ed5eb39 Abandon upstream seed, untenable 2025-10-22 19:11:51 -04:00
94f60e30b1 Pass BIN_DIR to make and not .config 2025-10-22 15:46:06 -04:00
e8ccb76cc6 Remove more default buildbot configs 2025-10-21 23:58:35 -04:00
4274f876a7 Remove more default buildbot configs 2025-10-21 20:40:19 -04:00
4760c84bff Remove more default buildbot configs 2025-10-21 20:35:38 -04:00
20b3f7f4ec Strip CONFIG_ALL_KMODS 2025-10-21 10:45:18 -04:00
f178e39a28 Use CONFIG_ALL_KMODS=n in global profile 2025-10-20 16:31:48 -04:00
c7b954252d Fetch worktree branch instead of pull 2025-10-19 15:21:53 -04:00
18929109a2 Omit oldconfig step 2025-10-18 21:17:35 -04:00
8d24cb96a9 Switch to canonical make order 2025-10-18 12:27:40 -04:00
9be43af11a Make olddefconfig non-interactive 2025-10-18 11:33:04 -04:00
ce2e85d197 Attempt one step olddefconfig 2025-10-18 11:30:42 -04:00
aeead798c3 Test explicit branch 2025-09-23 16:12:57 -04:00
72355bb65a Use fetch --all to grab wt breanches 2025-09-23 15:37:13 -04:00
3053b24063 Update default release 2025-09-23 15:13:35 -04:00
186fe21d73 Update profiles 2025-09-10 19:29:56 -04:00
d63a909d54 Simplify script dir ID 2025-09-09 16:57:22 -04:00
9128c453f3 Move pfring exclusions to r4s 2025-08-19 16:54:27 -04:00
ffbd193b79 Clarify skipping lock files for --debug 2025-08-19 16:38:03 -04:00
5259c72de4 Exclude pfring kmods 2025-08-18 07:43:09 -04:00
045f43b51f Exclude more pfring packages 2025-08-15 16:53:59 -04:00
89cc3cddeb Exclude problematic packages 2025-08-13 17:34:37 -04:00
cd7449dd7c Re-disable multicore make 2025-08-11 17:44:04 -04:00
2b35e1e017 Re-enable multicore make 2025-08-11 17:10:20 -04:00
983f9ecb04 Exclude libpfring to fix compilation 2025-08-11 15:50:20 -04:00
b5f567ce2b Attempt to mix yes and execute() 2025-08-09 00:01:34 -04:00
a16e713895 Use canonincal method for now 2025-08-08 23:56:28 -04:00
70d24d7fae Replace defconfig with oldconfig 2025-08-08 22:33:30 -04:00
d5069d4c40 Add golang dependency 2025-08-08 22:24:39 -04:00
718b29cfe8 Try to omit oldconfig 2025-08-08 22:22:35 -04:00
e3ce0b6e57 Make oldconfig to prevent upstream clobbers 2025-08-08 20:50:07 -04:00
3ba76a4e8d Add early debugging 2025-08-08 19:48:53 -04:00
4f1f145a10 Fix comments 2025-08-08 14:33:50 -04:00
2123205ca0 Reformat profiles 2025-08-08 14:30:31 -04:00
e510f8ccb6 Don't build unecessary kmods 2025-08-08 14:20:50 -04:00
da398172e8 Workaround libpfring issue #26569 2025-08-06 21:10:36 -04:00
12067ac09b Disable cherrypicks by default since branch-specific 2025-08-06 21:06:25 -04:00
cf2c35b114 Specify fork with cherrypick 2025-08-06 21:01:08 -04:00
5629472aa3 Support cherrypicks 2025-08-06 20:55:59 -04:00
a7a85ee67a Use --detached worktrees 2025-08-05 14:14:16 -04:00
4890aa192d Cleanup some comments 2025-07-29 17:40:02 -04:00
819ff0add0 Update README 2025-07-29 02:13:55 -04:00
149da1be87 Update README 2025-07-29 02:12:03 -04:00
6f1bc4dd00 SHow more commit info 2025-07-29 02:01:52 -04:00
5d434f031d Remove extraneous normalize_and_ref output 2025-07-29 01:58:37 -04:00
25b5623a65 Add temp debug 2025-07-29 01:56:19 -04:00
20477c21ab Add temp debug 2025-07-29 01:54:34 -04:00
8ed85fff2b Add temp debug 2025-07-29 01:52:51 -04:00
ab8f58ca92 Add temp debug 2025-07-29 01:52:36 -04:00
20e11b7419 Add temp debug 2025-07-29 01:49:03 -04:00
11c28c7ab3 Add temp debug 2025-07-29 01:47:28 -04:00
908664b185 Resimplify worktrees 2025-07-29 01:43:53 -04:00
40ce9940ae Debug commit print 2025-07-29 01:15:10 -04:00
64ffeeca17 Fix git object 2025-07-29 01:06:01 -04:00
0106ac7eff Use full name for branch ref 2025-07-29 00:44:49 -04:00
86f5bf7e3f Skip fetch 2025-07-29 00:32:38 -04:00
a18d467c4f Hacky way to show latest commit 2025-07-29 00:25:06 -04:00
3a659b4798 Fix clashing worktrees 2025-07-29 00:05:26 -04:00
7f996e7724 Silence commond debug warning 2025-07-28 23:51:44 -04:00
3688539a90 Return early and add debug output for dependencies 2025-07-28 23:48:14 -04:00
c28d7683d8 Make BUILD_DIR worktree_dir 2025-07-28 23:44:19 -04:00
a5b559c59c Fix parsing in normalize_and_ref() 2025-07-28 23:29:46 -04:00
d22d21148c Implement per-profile modes 2025-07-28 23:24:16 -04:00
2b4dac7ef3 Hide openwrt src dir 2025-07-28 21:38:09 -04:00
498f8a7333 Use a global release object 2025-07-28 21:36:01 -04:00
d28f2e8c31 Only fetch if not checked out 2025-07-28 19:03:17 -04:00
ca3f1e82ed Use git fetch for branches 2025-07-28 19:00:44 -04:00
4b66de068b Refactor worktree code 2025-07-28 18:31:20 -04:00
1e88f1b912 Revert to serial debug 2025-07-28 17:45:51 -04:00
cbe7e0468d Use multicore debug 2025-07-28 01:02:49 -04:00
a664b70cf4 Update README 2025-07-28 00:36:14 -04:00
b5199d5682 Remove index update 2025-07-28 00:29:33 -04:00
35ec2993cc Remove worktree dir before add 2025-07-27 22:53:32 -04:00
e4838f361e Cleanup dependency arrays 2025-07-27 22:46:40 -04:00
f32b8c84b0 Update dependencies 2025-07-27 22:39:31 -04:00
f34953b3cc Fix for missing worktree metadata 2025-07-27 22:22:55 -04:00
e91394ee00 Add --depends to README 2025-07-27 21:29:26 -04:00
a40ac543e9 Use default CFLAGS 2025-07-27 00:05:03 -04:00
06a3209046 Use CFLAGS in make 2025-07-26 21:39:58 -04:00
5ef6d2dc0f Use CFLAGS var 2025-07-26 19:39:53 -04:00
36c0786255 Use -std=c17 for gcc15 2025-07-26 00:43:03 -04:00
25e66b3d19 Update openwrt default to 24.10.2 2025-07-25 19:25:30 -04:00
aa24a58aae Roll verbose into debug 2025-04-22 20:13:12 -04:00
7298fca349 User serial compilation for --debug 2025-04-22 16:58:06 -04:00
7191e10f91 Use n-1 cores 2025-04-22 16:55:43 -04:00
e80dddf9a7 Update default release 2025-04-21 16:48:51 -04:00
481e2e2277 Update print_help() 2025-02-22 17:21:03 -05:00
de84a404f0 Update default release 2025-02-22 17:06:32 -05:00
a5d57fdd3d Move from dirclean to distclean 2025-01-07 10:03:19 -05:00
732233df32 Update default release 2025-01-07 09:55:48 -05:00
93a962a008 Use zstd extension for IB too 2024-12-09 12:18:46 -05:00
ed13912034 Fix BIN_DIR bug 2024-12-09 12:10:06 -05:00
2ee0ed2a09 Add zstd package for new openwrt IB compression 2024-12-07 17:19:10 -05:00
f9f5f9a017 remove legacy python2 dependency 2024-12-07 17:03:54 -05:00
647f64c99e Move make clean options to beginning 2024-12-07 15:16:29 -05:00
e04a5a2de4 Use dirclean instead of distclean 2024-12-07 15:13:37 -05:00
395263ee66 Update feeds after distclean 2024-12-07 10:02:34 -05:00
bdc4ff67e7 Mke backup filenames human readable 2024-12-06 12:51:31 -05:00
1d078a30e0 Include target subdirs in sysupgrade filepath 2024-12-06 12:32:01 -05:00
0d8502bfac Add debugging to fix backup 2024-12-06 11:49:19 -05:00
a44254bcc9 FReformat case statements 2024-12-06 09:43:04 -05:00
dcf9aaee84 Add back partition size desc 2024-12-06 09:12:04 -05:00
8dc558a6d5 Do distclean before editing .config 2024-12-05 22:10:30 -05:00
ff275aa0ad Retry dirclean 2024-12-05 22:00:08 -05:00
0ead0af0b5 Remove kernel config overridden by defconfig 2024-12-05 21:56:59 -05:00
21899bb072 Remove tabs from profiles 2024-12-05 21:39:32 -05:00
84dc370d32 Separate debug output from verbose make 2024-12-05 21:37:15 -05:00
ab1569fced Remove unecessary element quoting 2024-12-05 21:25:11 -05:00
be5dfb2832 Reformat and simplify device profiles 2024-12-05 21:21:02 -05:00
7dbc7fc3ef Multicore --debug make 2024-11-30 20:57:50 -05:00
9efb42f944 Refactor image backup 2024-11-30 19:41:38 -05:00
6ba2335f8a Standardize var naming 2024-11-30 19:03:17 -05:00
114c9dfc68 Don't install zero dependencies 2024-11-30 18:28:34 -05:00
864756c815 Remove --skip-unavailable for dnf5 2024-11-29 22:20:31 -05:00
116636c9a3 Archive existing image builds 2024-11-29 22:17:09 -05:00
dc3ccef3fd Update comments 2024-11-26 11:13:35 -05:00
5ae94d72b4 Use make distclean 2024-11-25 17:23:59 -05:00
b245bffbc8 Disable buildbot 2024-11-20 11:41:10 -05:00
98c17f4ad7 Don't remove build dir 2024-11-19 20:01:52 -05:00
a75505f467 Reuse build dir 2024-11-18 09:55:48 -05:00
cabd3aca8b Add python3-devel to RHEL dependencies 2024-11-15 20:46:11 -05:00
75303a619e Use single-threaded make for --debug 2024-11-15 13:58:14 -05:00
60c73cac78 Don't pause on commit hash 2024-11-14 17:13:47 -05:00
3c8b230cc3 Skip unavailable dependencies 2024-11-12 13:10:57 -05:00
d22e0ead04 Additional execute() 2024-10-24 16:24:06 -04:00
e43971d3de Update profiles 2024-10-24 16:06:26 -04:00
81c16f674c More housekeeping 2024-10-24 15:58:05 -04:00
0dc3dc0d72 Housekeeping 2024-10-24 15:57:14 -04:00
6f6d92b659 Try to verify output file for stock builds 2024-10-24 15:41:21 -04:00
961a87fb6c Update README 2024-10-24 15:29:41 -04:00
63cd99cd4d Separate dependency lock files 2024-10-24 15:20:05 -04:00
d51c9e6359 Cleanup var declarations 2024-10-24 15:02:12 -04:00
a0afdfbd47 Fix image verification 2024-10-24 14:53:10 -04:00
2d97851c5b Add patch dependency 2024-10-24 14:44:47 -04:00
b00bd9f056 General code cleanup and refactoring 2024-10-24 14:39:28 -04:00
c061c18a8e Debug curl checksum issues 2024-10-24 13:32:21 -04:00
4d77b17269 Debug curl checksum issues 2024-10-24 13:22:32 -04:00
0de4af9bdb Debug curl checksum issues 2024-10-24 13:19:00 -04:00
78820d1058 workaround make bugs 2024-05-21 17:56:23 -04:00
8bea538b1f Improve execute() 2024-05-21 17:45:25 -04:00
8bb770bc3e Less destructive clean 2024-05-21 17:25:33 -04:00
6747571cf9 Workaround dirclean bug 2024-05-21 17:23:51 -04:00
6f793dddb9 Improve make debug 2024-05-21 17:12:03 -04:00
4d721f43c1 Simplify make 2024-05-21 17:05:13 -04:00
b2f2d34b27 Clean first 2024-05-21 16:12:57 -04:00
2d816f3b8a Overwrite worktree 2024-05-21 12:42:41 -04:00
1464cd93ba Update profiles, remove luci-app-wireguard 2024-05-21 12:38:42 -04:00
6dffe35f26 Overwrite worktree dir 2024-05-20 19:34:31 -04:00
157bb75907 Update copywrite 2024-05-20 18:39:45 -04:00
a2d72c218a Update profiles 2024-05-20 18:33:06 -04:00
3484c97fbf Use ionice for better host responsiveness 2024-04-24 13:02:19 -04:00
90700e9595 Make 'make' more resilient 2024-04-24 11:31:00 -04:00
b5d13f000e Make 'make' more resilient 2024-04-24 11:23:44 -04:00
fcf71c9d49 Make 'make' more resilient 2024-04-24 11:20:46 -04:00
7657759299 Update profiles 2024-04-24 11:20:10 -04:00
fd3cef6915 Try re-enabling multicore build 2024-04-23 15:10:06 -04:00
82c53029e0 Add additional depends packages 2024-04-23 15:03:01 -04:00
be53ed782c Fix derp 2024-04-22 15:27:31 -04:00
bc025c1c3d Try to keep worktree src 2024-04-22 15:15:29 -04:00
95f8d688cd Back to single thread 2024-04-18 15:12:41 -04:00
38c4bdc864 Try multicore 2024-04-18 13:58:14 -04:00
90b9a68bd3 Use upstream build direction 2024-04-18 13:55:41 -04:00
edf0cd7910 Add some build depends 2024-04-17 23:08:17 -04:00
8619045bbe Debug build 2024-04-17 22:09:45 -04:00
214bd46da4 Clarify prompt 2024-04-17 18:32:31 -04:00
b58093a243 Make prompt clearer 2024-04-17 17:48:41 -04:00
f251a19215 Free up a core 2024-04-17 17:20:58 -04:00
5a4f6e0988 Fix release compression 2024-04-17 17:13:40 -04:00
99146b1913 Switch to zstd imagebuilder 2024-04-17 15:23:31 -04:00
18fc3abcc9 Add perl-Time-Piece requirement 2024-04-17 12:43:09 -04:00
64c5b2bbc3 Make 23.05.3 default release 2024-04-17 12:11:46 -04:00
633356a6a3 Update to 23.05.0 2023-10-12 13:39:15 -04:00
d5bedbd09c Add luks support 2023-10-10 21:30:01 -04:00
8bd218c677 Switch n5100 to squashfs 2023-10-09 13:59:21 -04:00
d496a1670d Rework kopts 2023-10-09 12:13:15 -04:00
cd86dcffbc Rework kopts 2023-10-09 12:10:29 -04:00
254ca3b3ec Rework kopts 2023-10-09 12:05:48 -04:00
efe4666078 Add ax6000_ap profile 2023-09-05 10:51:18 -04:00
94da35b60e Profiles: reduce custom part sizes to speed up sysupgrade 2023-07-20 10:10:35 -04:00
433e4bf971 Profiles: increase boot part size 2023-07-20 09:38:12 -04:00
d2f17da948 Disable pager for --yes mode 2023-07-20 09:35:49 -04:00
3f4a3c7d7e Use a single git worktree command 2023-07-18 09:31:59 -04:00
764ffe11d1 Profiles: add x86 packages to n5100 2023-07-18 09:21:29 -04:00
43c5a632b1 Add --yes option 2023-07-18 09:20:40 -04:00
45009cc73f Add x86 profile 2023-07-17 11:50:41 -04:00
69f76bb290 Update profiles 2023-07-04 09:20:54 -04:00
e556d282d6 Update for 23.05.0-rc2 2023-07-03 08:25:16 -04:00
1f69eeb78d Cleanup 2023-06-29 14:25:12 -04:00
b9db1e303e Update profiles 2023-06-29 14:25:01 -04:00
bbf6f246df Silence warning 2023-06-27 19:02:50 -04:00
f609c72fc4 Add perl-IPC dependency 2023-06-27 16:52:29 -04:00
e349adeccf Pass TMPDIR 2023-06-27 16:48:02 -04:00
d44fdcc508 More commands to execute() 2023-06-27 15:53:21 -04:00
1cbea322d6 Fix version format 2023-06-27 15:34:43 -04:00
1a975bbe6f First stab at unified input versioning 2023-06-27 15:11:23 -04:00
58e5784313 Change nomenclature 2023-06-27 15:11:01 -04:00
ed198150b7 Normalize release commit-ish I 2023-06-02 09:50:25 -04:00
0e4496d2d4 Regenerate the feed index 2023-06-01 13:11:25 -04:00
1904d14773 Fix ax6000 array 2023-05-11 16:53:03 -04:00
5c6d589e0b Update profiles 2023-02-17 11:28:31 -05:00
80779c9f2d Skip dependency check for lockfile 2023-02-17 11:28:12 -05:00
ad76c9cc6b Fix derp 2023-02-16 15:20:16 -05:00
5867c8111e Fix commit hash reporting 2023-02-16 15:12:17 -05:00
128c141843 Make reset more specific 2023-02-16 14:59:44 -05:00
25c317c4d0 More reset fixes 2023-02-16 13:30:40 -05:00
42cbbd43c3 Improve askok 2023-02-16 13:16:27 -05:00
81cd5c0880 Improve reset 2023-02-16 13:13:47 -05:00
6953cdfc5e Move gitworktreedir to global 2023-02-16 13:04:56 -05:00
f1f7fca41e Revert package array 2023-02-16 12:14:09 -05:00
1d5b8c522a Fix packages 2023-02-16 12:09:13 -05:00
a9dd252ad6 Prettify package list 2023-02-15 14:32:45 -05:00
bf737644fb Fix conflicting worktrees 2023-02-15 14:22:13 -05:00
1f484d8bfc Avoid nullglob 2023-02-14 13:27:09 -05:00
f3aa4a0558 Update README 2023-02-14 13:26:47 -05:00
1ac5a8efaa Fix README typos 2023-02-14 10:48:14 -05:00
bff5d058b0 Cleanup global scope 2023-02-14 10:45:11 -05:00
498b491dc6 Add r4s stock profile for testing 2023-02-14 10:30:05 -05:00
16e677ed94 More global scope cleanup 2023-02-01 12:17:22 -05:00
5d5f74850f Reduce global vars 2023-02-01 11:42:16 -05:00
346094def6 Don't track output 2023-02-01 11:41:53 -05:00
6995284786 Fix funky whitespace for kopts 2023-01-31 18:22:10 -05:00
462593f523 Fix funky whitespace for kopts 2023-01-31 18:05:40 -05:00
335dd8e56f Fix funky whitespace for kopts 2023-01-31 18:02:02 -05:00
941b51da0f Make kopts respect whitespace 2023-01-31 17:53:35 -05:00
97f6e0a927 Fix track remote branch 2023-01-31 15:33:21 -05:00
03db94e20d Switch from tags to branch 2023-01-31 15:08:04 -05:00
07fc9e7953 Fix build order 2023-01-31 13:43:34 -05:00
cc42ef328c Force worktree 2023-01-31 13:25:30 -05:00
e06155527b Scale back r4s for testing 2023-01-31 13:08:13 -05:00
0243236b16 Remove tailscale 2023-01-31 12:01:07 -05:00
ebacce2f68 Temp revert commit hash 2023-01-31 10:04:52 -05:00
824c23901d r4s deployment testing 2023-01-31 10:03:42 -05:00
e61493239e Get git commit hash to address collisions 2023-01-30 14:49:55 -05:00
7bea684ecf Test dirclean for faster performance 2023-01-30 14:28:33 -05:00
d47f635133 Add debug 2023-01-30 13:36:38 -05:00
16e57cf094 Add debug 2023-01-30 12:44:23 -05:00
faccb7c619 Add debug 2023-01-30 12:31:01 -05:00
a7935e6888 Move --source output 2023-01-30 12:22:57 -05:00
847fd59e7c Fix bin dirs 2023-01-29 20:59:24 -05:00
c32971ebed Fix src dirs 2023-01-29 20:41:26 -05:00
0b05defeaf Fix sha256 check 2023-01-29 18:58:47 -05:00
63179bf7f2 Enable btrfs zstd support 2023-01-29 18:20:34 -05:00
66ff417333 More --source cleanup 2023-01-29 18:05:48 -05:00
f82e32f88a More --source cleanup 2023-01-29 18:01:10 -05:00
7370fb688d More --source cleanup 2023-01-29 17:53:37 -05:00
53a0a39af4 More --source cleanup 2023-01-29 17:37:04 -05:00
ce8a642658 Less debug 2023-01-29 17:17:50 -05:00
7431b22076 More work on --source 2023-01-29 17:16:12 -05:00
433b899ef0 More work on --source 2023-01-29 15:56:42 -05:00
afa6ea2abc More work on --source 2023-01-29 15:52:54 -05:00
5f55675193 More work on --source 2023-01-29 15:51:01 -05:00
5eb9aa3e99 More work on --source 2023-01-29 15:49:07 -05:00
c0a46f264a More work on --source 2023-01-29 15:45:17 -05:00
66639d832c More work on --source 2023-01-29 15:44:17 -05:00
489988c16d More debug output 2023-01-28 11:21:58 -05:00
63ce0122cf More debug output 2023-01-28 11:17:08 -05:00
f3bce0a6fe More debug output 2023-01-28 11:14:41 -05:00
e3a264d029 More debug output 2023-01-28 11:07:32 -05:00
194fd012fb Disable defconfig 2023-01-28 10:50:39 -05:00
37771a7b81 Write opts to .config 2023-01-27 16:46:45 -05:00
eaae9e8e9c Use .config instead of envs 2023-01-27 16:24:23 -05:00
dc6661572a Always recreate .config 2023-01-27 11:33:15 -05:00
f73ea6d5cf Refactor sshupgrade() 2023-01-27 11:12:24 -05:00
8823d70052 More work on --source 2023-01-26 23:32:34 -05:00
e3a92d444c More work on --source 2023-01-26 23:18:40 -05:00
dba19f1f09 Remove legacy code 2023-01-26 22:10:38 -05:00
0fe80c0a1c Add examples to --help 2023-01-26 21:47:46 -05:00
f4a87005a9 Update README 2023-01-26 21:44:14 -05:00
8 changed files with 926 additions and 1017 deletions

12
.gitignore vendored
View File

@@ -1,6 +1,8 @@
sources/
src/
bin/
files/
patches/
.lock
make.log
.vscode/
*.code-workspace
backups/
.dependencies_source
.dependencies_ib

19
.vscode/launch.json vendored
View File

@@ -1,19 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "bashdb",
"request": "launch",
"terminalKind": "integrated",
"name": "Bash-Debug (simplest configuration)",
"program": "${file}",
"args": [
"-d",
"-p", "r4s"
]
}
]
}

10
.vscode/settings.json vendored
View File

@@ -1,10 +0,0 @@
{
"window.title": "openwrtbuilder",
"cSpell.words": [
"infile",
"isfile",
"openwrt",
"regen",
"sysbackup"
]
}

13
.vscode/tasks.json vendored
View File

@@ -1,13 +0,0 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build RPi4 snapshot in toolbox",
"type": "shell",
"command": "toolbox run ${file} -p r4s -d",
"problemMatcher": []
}
]
}

View File

@@ -1,33 +1,56 @@
# openwrtbuilder
Sanely build and deploy OpenWRT images using the Image Builder (or git source)
Build and deploy OpenWRT images using shell-style device profiles, via source code or the official Image Builder.
## Usage
`openwrtbuilder [--option [VALUE]]... -p PROFILE [-p PROFILE]...`
`openwrtbuilder [OPTION [VALUE]]... -p PROFILE [-p PROFILE]...`
## Options
```(text)
--profile,-p PROFILE
--release,-r,--version,-v RELEASE ("snapshot", "22.03.3")
--buildroot,-b PATH
Default: location of openwrtbuilder script
--buildroot,-b PATH (Default: script directory)
--source
Build image from source, not from Image Builder
Build image from source code, not from Image Builder.
Allows make config options to be passed in profile.
Uses git worktree for multi-profile deduplication.
--ssh-upgrade HOST
Example: root@192.168.1.1
Example: root@192.168.1.1
--ssh-backup SSH_PATH
(Enabled by default for --ssh-upgrade)
Enabled by default for --ssh-upgrade
--flash,-f DEVICE
Example: /dev/sdX
Example: /dev/sdX
--reset
Cleanup all source and output files
Can be combined with -p to reset a specific profile
Cleanup all source and output files
Can be combined with -p to reset a specific profile
--depends
Force dependency installation
--yes,-y
Assume yes for all questions (automatic mode)
--debug,-d
--help,-h
```
## Profiles
See `profiles` for example device profile definitions. Multiple `--profile` can be passed at once.
The default build mode is `imagebuilder` unless `--source` is passed. Default profile modes can be set individually in `profiles`.
## Examples
* `openwrtbuilder -p r4s -p ax6000`
* `openwrtbuilder -p r4s -r snapshot --debug`
* `openwrtbuilder -p ax6000 -r 23.05.5 --source --debug`
* `openwrtbuilder -p rpi4 -r 23.05.5 --flash /dev/sdX`
* `openwrtbuilder -p linksys -r snapshot --ssh-upgrade root@192.168.1.1`
## Additional Info
Did you find `openwrtbuilder` useful? [Buy me a coffee!](https://paypal.me/bryanroessler?locale.x=en_US)
Find `openwrtbuilder` useful? [Paypal me a coffee!](https://paypal.me/bryanroessler)
[↓ ↓ ↓ Bitcoin ↓ ↓ ↓](bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a)
[![Bitcoin](https://repos.bryanroessler.com/files/bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a.png)](bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a)

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +0,0 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"window.title": "openwrtbuilder",
"cSpell.words": [
"openwrtbuilder",
"padx"
],
"cSpell.ignoreWords": [
"openwrtbuilder"
]
}
}

259
profiles
View File

@@ -1,155 +1,130 @@
#!/usr/bin/env bash
# Device profiles for openwrtbuilder
# shellcheck disable=SC2034
# This file contains a set of device profiles for openwrtbuilder
# bash doesn't like nested arrays so we use strings instead
# Packages to install for all profiles
default_packages="\
luci \
luci-ssl \
nano \
htop \
diffutils \
tar \
iperf \
bash \
rsync \
openssh-sftp-server \
luci-app-statistics \
collectd-mod-sensors \
collectd-mod-thermal \
collectd-mod-conntrack \
collectd-mod-cpu " # Leave trailing whitespace
# Default (but optional) packages (precede with "-" to exclude)
default_packages=(nano htop diffutils tar iperf3 zsh rsync curl tcpdump
openssh-sftp-server luci luci-ssl luci-proto-wireguard luci-app-statistics
collectd-mod-sensors collectd-mod-thermal collectd-mod-conntrack collectd-mod-cpu
)
# Default (but optional) kernel configs
default_configs=(
)
declare -Ag archer
archer['profile']="tplink_archer-c7-v2"
archer['target']="ath79/generic"
archer['filesystem']="squashfs"
archer['packages']="\
$default_packages \
-dnsmasq \
-odhcpd \
-iptables \
-ath10k-firmware-qca988x-ct \
ath10k-firmware-qca988x-ct-full-htt"
# Current devices
declare -Ag r4s=(
[mode]="source"
[device]="friendlyarm_nanopi-r4s"
[target]="rockchip/armv8"
[filesystem]="ext4"
[packages]="${default_packages[*]} \
luci-app-ddns luci-app-sqm \
adblock luci-app-adblock \
collectd-mod-df usbutils kmod-usb-storage kmod-usb-storage-uas \
kmod-fs-btrfs btrfs-progs block-mount smcroute avahi-daemon \
ethtool ca-bundle tailscale"
[config]="${default_configs[*]} \
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y CONFIG_BTRFS_PROGS_ZSTD=y \
CONFIG_TARGET_ROOTFS_PARTSIZE=512 CONFIG_TARGET_KERNEL_PARTSIZE=32"
[files]="/mnt/backup"
# For 24.10 branch (Linux 6.6)
# [cherrypicks]="wurzerj:59d6e31 wurzerj:bb251b8" # fix inconsistent reboot
)
declare -Ag linksys
linksys['profile']="linksys_ea8300"
linksys['target']="ipq40xx/generic"
linksys['filesystem']="squashfs"
linksys['packages']="\
$default_packages \
-dnsmasq \
-odhcpd \
-iptables"
declare -Ag ax6000=(
[mode]="imagebuilder"
[device]="xiaomi_redmi-router-ax6000-stock"
[target]="mediatek/filogic"
[release]="snapshot"
[filesystem]="squashfs"
[packages]="${default_packages[*]} \
-dnsmasq -odhcpd-ipv6only -nftables -firewall4 tailscale"
)
declare -Ag rpi4
rpi4['profile']="rpi-4"
rpi4['target']="bcm27xx/bcm2711"
rpi4['filesystem']="ext4"
rpi4['packages']="\
$default_packages \
kmod-usb-net-asix-ax88179 \
kmod-usb-net-rtl8152 \
luci-app-upnp \
luci-app-wireguard \
luci-app-vpn-policy-routing \
-dnsmasq \
dnsmasq-full \
luci-app-ddns \
luci-app-sqm"
declare -Ag ax6000_uboot=(
[mode]="imagebuilder"
[device]="xiaomi_redmi-router-ax6000-ubootmod"
[target]="mediatek/filogic"
[release]="snapshot"
[filesystem]="squashfs"
[packages]="${default_packages[*]} \
-dnsmasq -odhcpd-ipv6only -nftables -firewall4"
)
declare -Ag r2s
r2s['profile']="friendlyarm_nanopi-r2s"
r2s['target']="rockchip/armv8"
r2s['filesystem']="ext4"
r2s['packages']="\
$default_packages \
luci-app-upnp \
luci-app-wireguard \
luci-app-vpn-policy-routing \
-dnsmasq \
dnsmasq-full \
luci-app-ddns \
luci-app-sqm \
luci-app-statistics \
collectd-mod-sensors \
collectd-mod-thermal \
collectd-mod-conntrack \
smcroute \
curl \
ethtool"
declare -Ag n5100=(
[device]="generic"
[target]="x86/64"
[filesystem]="squashfs"
[packages]="${default_packages[*]} \
luci-app-ddns irqbalance collectd-mod-df \
usbutils kmod-usb-storage kmod-usb-storage-uas kmod-fs-btrfs \
btrfs-progs block-mount cryptsetup kmod-crypto-xts smcroute \
avahi-daemon curl ethtool ca-bundle smartmontools intel-microcode \
lm-sensors samba4-server luci-app-samba4 tailscale shadow-useradd"
[config]="${default_configs[*]} \
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y CONFIG_BTRFS_PROGS_ZSTD=y \
CONFIG_TARGET_ROOTFS_PARTSIZE=512 CONFIG_TARGET_KERNEL_PARTSIZE=32"
# [files]="/mnt/backup"
)
declare -Ag r4s
r4s['profile']="friendlyarm_nanopi-r4s"
r4s['target']="rockchip/armv8"
r4s['filesystem']="ext4"
r4s['packages']="\
$default_packages \
luci-app-upnp \
luci-app-wireguard \
luci-proto-wireguard \
luci-app-ddns \
luci-app-sqm \
irqbalance \
collectd-mod-sqm \
collectd-mod-df \
pbr \
luci-app-pbr \
usbutils \
kmod-usb-storage \
kmod-usb-storage-uas \
kmod-fs-btrfs \
btrfs-progs \
block-mount \
smcroute \
curl \
ethtool \
ca-bundle \
tailscale"
r4s['kopts']="\
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y \
"
declare -Ag rpi4=(
[device]="rpi-4"
[target]="bcm27xx/bcm2711"
[filesystem]="ext4"
[packages]="${default_packages[*]} \
luci-app-upnp luci-app-pbr -dnsmasq dnsmasq-full luci-app-ddns luci-app-sqm \
kmod-usb-net-asix-ax88179 kmod-usb-net-rtl8152"
)
declare -Ag r4s_stock=(
[device]="friendlyarm_nanopi-r4s"
[target]="rockchip/armv8"
[filesystem]="ext4"
[release]="snapshot"
)
declare -Ag ax6000_stock
ax6000_stock['profile']="xiaomi_redmi-router-ax6000-stock"
ax6000_stock['target']="mediatek/filogic"
ax6000_stock['release']="snapshot"
ax6000_stock['filesystem']="squashfs"
ax6000_stock['packages']="\
$default_packages \
-dnsmasq \
-odhcpd-ipv6only \
-nftables \
-firewall4 \
-kmod-nft-offload \
collectd-mod-iwinfo"
declare -Ag totolink=(
[device]="totolink_x5000r"
[target]="ramips/mt7621"
[filesystem]="squashfs"
[packages]="${default_packages[*]} \
-dnsmasq -odhcpd-ipv6only -nftables -firewall4 \
-kmod-nft-offload collectd-mod-iwinfo"
)
declare -Ag ax6000_uboot
ax6000_uboot['profile']="xiaomi_redmi-router-ax6000-ubootmod"
ax6000_uboot['target']="mediatek/filogic"
ax6000_uboot['release']="snapshot"
ax6000_uboot['filesystem']="squashfs"
ax6000_uboot['packages']="\
$default_packages \
-dnsmasq \
-odhcpd-ipv6only \
-nftables \
-firewall4 \
-kmod-nft-offload \
collectd-mod-iwinfo"
declare -Ag archer=(
[device]="tplink_archer-c7-v2"
[target]="ath79/generic"
[filesystem]="squashfs"
[packages]="${default_packages[*]} -dnsmasq -odhcpd -iptables \
-ath10k-firmware-qca988x-ct ath10k-firmware-qca988x-ct-full-htt"
)
declare -Ag totolink
totolink['profile']="totolink_x5000r"
totolink['target']="ramips/mt7621"
totolink['filesystem']="squashfs"
totolink['packages']="\
$default_packages \
-dnsmasq \
-odhcpd-ipv6only \
-nftables \
-firewall4 \
-kmod-nft-offload \
collectd-mod-iwinfo"
declare -Ag linksys=(
[device]="linksys_ea8300"
[target]="ipq40xx/generic"
[filesystem]="squashfs"
[packages]="${default_packages[*]} \
-dnsmasq -odhcpd -iptables"
)
declare -Ag r2s=(
[device]="friendlyarm_nanopi-r2s"
[target]="rockchip/armv8"
[filesystem]="ext4"
[packages]="${default_packages[*]} \
luci-app-upnp luci-app-pbr -dnsmasq dnsmasq-full \
luci-app-ddns luci-app-sqm luci-app-statistics collectd-mod-sensors \
collectd-mod-thermal collectd-mod-conntrack smcroute curl ethtool"
)
declare -Ag r2s_tr=(
[device]="friendlyarm_nanopi-r2s"
[target]="rockchip/armv8"
[filesystem]="ext4"
[packages]="${default_packages[*]} \
luci-app-upnp luci-app-pbr luci-app-ddns \
luci-app-statistics collectd-mod-sensors collectd-mod-thermal \
collectd-mod-conntrack curl ethtool travelmate"
)