summaryrefslogtreecommitdiff
path: root/docs/_locale/en/LC_MESSAGES/contributing.mo
blob: ef064a92eb688f6d09af074311f4f4fa72adcc82 (plain)
ofshex dumpascii
0000 de 12 04 95 00 00 00 00 b2 01 00 00 1c 00 00 00 ac 0d 00 00 4b 02 00 00 3c 1b 00 00 00 00 00 00 ....................K...<.......
0020 68 24 00 00 77 00 00 00 69 24 00 00 03 00 00 00 e1 24 00 00 35 00 00 00 e5 24 00 00 1c 00 00 00 h$..w...i$.......$..5....$......
0040 1b 25 00 00 34 00 00 00 38 25 00 00 44 00 00 00 6d 25 00 00 44 00 00 00 b2 25 00 00 25 00 00 00 .%..4...8%..D...m%..D....%..%...
0060 f7 25 00 00 42 00 00 00 1d 26 00 00 21 00 00 00 60 26 00 00 15 00 00 00 82 26 00 00 25 00 00 00 .%..B....&..!...`&.......&..%...
0080 98 26 00 00 5b 00 00 00 be 26 00 00 1e 00 00 00 1a 27 00 00 50 00 00 00 39 27 00 00 87 00 00 00 .&..[....&.......'..P...9'......
00a0 8a 27 00 00 9c 00 00 00 12 28 00 00 3b 01 00 00 af 28 00 00 33 00 00 00 eb 29 00 00 09 00 00 00 .'.......(..;....(..3....)......
00c0 1f 2a 00 00 55 00 00 00 29 2a 00 00 5f 00 00 00 7f 2a 00 00 1c 00 00 00 df 2a 00 00 07 00 00 00 .*..U...)*.._....*.......*......
00e0 fc 2a 00 00 64 00 00 00 04 2b 00 00 e7 00 00 00 69 2b 00 00 8b 00 00 00 51 2c 00 00 75 00 00 00 .*..d....+......i+......Q,..u...
0100 dd 2c 00 00 47 00 00 00 53 2d 00 00 39 01 00 00 9b 2d 00 00 cd 00 00 00 d5 2e 00 00 22 00 00 00 .,..G...S-..9....-.........."...
0120 a3 2f 00 00 b8 00 00 00 c6 2f 00 00 0d 01 00 00 7f 30 00 00 a0 00 00 00 8d 31 00 00 92 00 00 00 ./......./.......0.......1......
0140 2e 32 00 00 f4 00 00 00 c1 32 00 00 7b 00 00 00 b6 33 00 00 ab 00 00 00 32 34 00 00 85 00 00 00 .2.......2..{....3......24......
0160 de 34 00 00 20 00 00 00 64 35 00 00 1f 00 00 00 85 35 00 00 1e 00 00 00 a5 35 00 00 21 00 00 00 .4......d5.......5.......5..!...
0180 c4 35 00 00 1d 00 00 00 e6 35 00 00 1d 00 00 00 04 36 00 00 11 00 00 00 22 36 00 00 11 00 00 00 .5.......5.......6......"6......
01a0 34 36 00 00 5f 00 00 00 46 36 00 00 7f 01 00 00 a6 36 00 00 0b 00 00 00 26 38 00 00 10 00 00 00 46.._...F6.......6......&8......
01c0 32 38 00 00 05 00 00 00 43 38 00 00 0f 00 00 00 49 38 00 00 09 00 00 00 59 38 00 00 0a 00 00 00 28......C8......I8......Y8......
01e0 63 38 00 00 11 00 00 00 6e 38 00 00 1c 00 00 00 80 38 00 00 13 00 00 00 9d 38 00 00 74 00 00 00 c8......n8.......8.......8..t...
0200 b1 38 00 00 2d 01 00 00 26 39 00 00 66 01 00 00 54 3a 00 00 a7 00 00 00 bb 3b 00 00 d9 00 00 00 .8..-...&9..f...T:.......;......
0220 63 3c 00 00 8f 01 00 00 3d 3d 00 00 10 00 00 00 cd 3e 00 00 1e 00 00 00 de 3e 00 00 72 00 00 00 c<......==.......>.......>..r...
0240 fd 3e 00 00 3f 00 00 00 70 3f 00 00 3a 00 00 00 b0 3f 00 00 11 00 00 00 eb 3f 00 00 d7 00 00 00 .>..?...p?..:....?.......?......
0260 fd 3f 00 00 95 00 00 00 d5 40 00 00 11 00 00 00 6b 41 00 00 18 00 00 00 7d 41 00 00 22 00 00 00 .?.......@......kA......}A.."...
0280 96 41 00 00 2c 00 00 00 b9 41 00 00 53 00 00 00 e6 41 00 00 16 00 00 00 3a 42 00 00 09 00 00 00 .A..,....A..S....A......:B......
02a0 51 42 00 00 28 00 00 00 5b 42 00 00 74 00 00 00 84 42 00 00 fa 00 00 00 f9 42 00 00 26 00 00 00 QB..(...[B..t....B.......B..&...
02c0 f4 43 00 00 68 00 00 00 1b 44 00 00 26 00 00 00 84 44 00 00 49 00 00 00 ab 44 00 00 25 00 00 00 .C..h....D..&....D..I....D..%...
02e0 f5 44 00 00 21 00 00 00 1b 45 00 00 1b 01 00 00 3d 45 00 00 09 00 00 00 59 46 00 00 1e 00 00 00 .D..!....E......=E......YF......
0300 63 46 00 00 0b 00 00 00 82 46 00 00 1a 00 00 00 8e 46 00 00 0b 00 00 00 a9 46 00 00 50 00 00 00 cF.......F.......F.......F..P...
0320 b5 46 00 00 06 00 00 00 06 47 00 00 09 00 00 00 0d 47 00 00 c0 00 00 00 17 47 00 00 65 00 00 00 .F.......G.......G.......G..e...
0340 d8 47 00 00 50 00 00 00 3e 48 00 00 28 01 00 00 8f 48 00 00 14 01 00 00 b8 49 00 00 8b 00 00 00 .G..P...>H..(....H.......I......
0360 cd 4a 00 00 10 00 00 00 59 4b 00 00 22 00 00 00 6a 4b 00 00 fc 00 00 00 8d 4b 00 00 08 00 00 00 .J......YK.."...jK.......K......
0380 8a 4c 00 00 09 00 00 00 93 4c 00 00 9b 01 00 00 9d 4c 00 00 8f 00 00 00 39 4e 00 00 76 00 00 00 .L.......L.......L......9N..v...
03a0 c9 4e 00 00 03 00 00 00 40 4f 00 00 0f 00 00 00 44 4f 00 00 08 00 00 00 54 4f 00 00 4e 00 00 00 .N......@O......DO......TO..N...
03c0 5d 4f 00 00 fb 00 00 00 ac 4f 00 00 3b 00 00 00 a8 50 00 00 ae 00 00 00 e4 50 00 00 b2 00 00 00 ]O.......O..;....P.......P......
03e0 93 51 00 00 86 00 00 00 46 52 00 00 57 00 00 00 cd 52 00 00 b4 00 00 00 25 53 00 00 20 00 00 00 .Q......FR..W....R......%S......
0400 da 53 00 00 45 00 00 00 fb 53 00 00 74 01 00 00 41 54 00 00 0a 00 00 00 b6 55 00 00 10 00 00 00 .S..E....S..t...AT.......U......
0420 c1 55 00 00 2e 00 00 00 d2 55 00 00 0a 00 00 00 01 56 00 00 1f 00 00 00 0c 56 00 00 1e 00 00 00 .U.......U.......V.......V......
0440 2c 56 00 00 1e 00 00 00 4b 56 00 00 12 00 00 00 6a 56 00 00 44 00 00 00 7d 56 00 00 0a 00 00 00 ,V......KV......jV..D...}V......
0460 c2 56 00 00 0b 00 00 00 cd 56 00 00 9b 00 00 00 d9 56 00 00 22 00 00 00 75 57 00 00 23 00 00 00 .V.......V.......V.."...uW..#...
0480 98 57 00 00 1e 00 00 00 bc 57 00 00 25 00 00 00 db 57 00 00 13 00 00 00 01 58 00 00 10 00 00 00 .W.......W..%....W.......X......
04a0 15 58 00 00 0f 00 00 00 26 58 00 00 b7 00 00 00 36 58 00 00 fb 00 00 00 ee 58 00 00 9f 00 00 00 .X......&X......6X.......X......
04c0 ea 59 00 00 8e 00 00 00 8a 5a 00 00 9a 00 00 00 19 5b 00 00 11 01 00 00 b4 5b 00 00 77 00 00 00 .Y.......Z.......[.......[..w...
04e0 c6 5c 00 00 f1 00 00 00 3e 5d 00 00 e4 00 00 00 30 5e 00 00 08 01 00 00 15 5f 00 00 11 01 00 00 .\......>]......0^......._......
0500 1e 60 00 00 0a 01 00 00 30 61 00 00 76 00 00 00 3b 62 00 00 0e 00 00 00 b2 62 00 00 23 01 00 00 .`......0a..v...;b.......b..#...
0520 c1 62 00 00 07 00 00 00 e5 63 00 00 27 00 00 00 ed 63 00 00 25 00 00 00 15 64 00 00 7d 00 00 00 .b.......c..'....c..%....d..}...
0540 3b 64 00 00 09 00 00 00 b9 64 00 00 11 00 00 00 c3 64 00 00 09 00 00 00 d5 64 00 00 09 00 00 00 ;d.......d.......d.......d......
0560 df 64 00 00 15 00 00 00 e9 64 00 00 4b 00 00 00 ff 64 00 00 17 00 00 00 4b 65 00 00 8a 00 00 00 .d.......d..K....d......Ke......
0580 63 65 00 00 8a 00 00 00 ee 65 00 00 0a 00 00 00 79 66 00 00 2a 00 00 00 84 66 00 00 61 00 00 00 ce.......e......yf..*....f..a...
05a0 af 66 00 00 77 00 00 00 11 67 00 00 06 00 00 00 89 67 00 00 29 00 00 00 90 67 00 00 39 00 00 00 .f..w....g.......g..)....g..9...
05c0 ba 67 00 00 fb 00 00 00 f4 67 00 00 9b 00 00 00 f0 68 00 00 5a 01 00 00 8c 69 00 00 07 00 00 00 .g.......g.......h..Z....i......
05e0 e7 6a 00 00 0c 00 00 00 ef 6a 00 00 0b 00 00 00 fc 6a 00 00 08 00 00 00 08 6b 00 00 72 00 00 00 .j.......j.......j.......k..r...
0600 11 6b 00 00 14 00 00 00 84 6b 00 00 17 00 00 00 99 6b 00 00 74 00 00 00 b1 6b 00 00 11 00 00 00 .k.......k.......k..t....k......
0620 26 6c 00 00 1e 00 00 00 38 6c 00 00 0c 00 00 00 57 6c 00 00 0a 00 00 00 64 6c 00 00 21 00 00 00 &l......8l......Wl......dl..!...
0640 6f 6c 00 00 17 00 00 00 91 6c 00 00 20 00 00 00 a9 6c 00 00 27 00 00 00 ca 6c 00 00 04 00 00 00 ol.......l.......l..'....l......
0660 f2 6c 00 00 05 00 00 00 f7 6c 00 00 66 00 00 00 fd 6c 00 00 d9 00 00 00 64 6d 00 00 6e 00 00 00 .l.......l..f....l......dm..n...
0680 3e 6e 00 00 2d 01 00 00 ad 6e 00 00 8e 00 00 00 db 6f 00 00 12 00 00 00 6a 70 00 00 9a 00 00 00 >n..-....n.......o......jp......
06a0 7d 70 00 00 70 00 00 00 18 71 00 00 69 00 00 00 89 71 00 00 7a 00 00 00 f3 71 00 00 37 01 00 00 }p..p....q..i....q..z....q..7...
06c0 6e 72 00 00 38 01 00 00 a6 73 00 00 1d 00 00 00 df 74 00 00 2b 01 00 00 fd 74 00 00 2f 00 00 00 nr..8....s.......t..+....t../...
06e0 29 76 00 00 fe 00 00 00 59 76 00 00 43 02 00 00 58 77 00 00 d5 00 00 00 9c 79 00 00 fe 00 00 00 )v......Yv..C...Xw.......y......
0700 72 7a 00 00 08 00 00 00 71 7b 00 00 cb 00 00 00 7a 7b 00 00 1f 00 00 00 46 7c 00 00 66 00 00 00 rz......q{......z{......F|..f...
0720 66 7c 00 00 9d 00 00 00 cd 7c 00 00 a0 00 00 00 6b 7d 00 00 10 00 00 00 0c 7e 00 00 0c 00 00 00 f|.......|......k}.......~......
0740 1d 7e 00 00 12 00 00 00 2a 7e 00 00 14 00 00 00 3d 7e 00 00 2b 00 00 00 52 7e 00 00 0d 00 00 00 .~......*~......=~..+...R~......
0760 7e 7e 00 00 0a 00 00 00 8c 7e 00 00 26 00 00 00 97 7e 00 00 06 00 00 00 be 7e 00 00 d2 00 00 00 ~~.......~..&....~.......~......
0780 c5 7e 00 00 95 00 00 00 98 7f 00 00 4e 00 00 00 2e 80 00 00 04 00 00 00 7d 80 00 00 6b 00 00 00 .~..........N...........}...k...
07a0 82 80 00 00 c9 00 00 00 ee 80 00 00 0c 00 00 00 b8 81 00 00 37 00 00 00 c5 81 00 00 38 00 00 00 ....................7.......8...
07c0 fd 81 00 00 41 00 00 00 36 82 00 00 9d 00 00 00 78 82 00 00 0a 00 00 00 16 83 00 00 93 00 00 00 ....A...6.......x...............
07e0 21 83 00 00 9a 00 00 00 b5 83 00 00 b4 01 00 00 50 84 00 00 04 01 00 00 05 86 00 00 51 01 00 00 !...............P...........Q...
0800 0a 87 00 00 85 00 00 00 5c 88 00 00 10 00 00 00 e2 88 00 00 24 01 00 00 f3 88 00 00 0e 00 00 00 ........\...........$...........
0820 18 8a 00 00 41 00 00 00 27 8a 00 00 07 00 00 00 69 8a 00 00 fd 00 00 00 71 8a 00 00 0e 00 00 00 ....A...'.......i.......q.......
0840 6f 8b 00 00 32 01 00 00 7e 8b 00 00 07 00 00 00 b1 8c 00 00 0f 00 00 00 b9 8c 00 00 f7 00 00 00 o...2...~.......................
0860 c9 8c 00 00 7d 00 00 00 c1 8d 00 00 9f 00 00 00 3f 8e 00 00 40 01 00 00 df 8e 00 00 47 00 00 00 ....}...........?...@.......G...
0880 20 90 00 00 ab 01 00 00 68 90 00 00 d2 02 00 00 14 92 00 00 49 00 00 00 e7 94 00 00 11 02 00 00 ........h...........I...........
08a0 31 95 00 00 97 00 00 00 43 97 00 00 3b 02 00 00 db 97 00 00 96 01 00 00 17 9a 00 00 18 01 00 00 1.......C...;...................
08c0 ae 9b 00 00 02 01 00 00 c7 9c 00 00 35 00 00 00 ca 9d 00 00 54 01 00 00 00 9e 00 00 38 00 00 00 ............5.......T.......8...
08e0 55 9f 00 00 a7 00 00 00 8e 9f 00 00 f8 00 00 00 36 a0 00 00 8d 00 00 00 2f a1 00 00 77 00 00 00 U...............6......./...w...
0900 bd a1 00 00 4c 00 00 00 35 a2 00 00 8e 00 00 00 82 a2 00 00 00 02 00 00 11 a3 00 00 26 00 00 00 ....L...5...................&...
0920 12 a5 00 00 a0 00 00 00 39 a5 00 00 22 00 00 00 da a5 00 00 3b 00 00 00 fd a5 00 00 26 01 00 00 ........9...".......;.......&...
0940 39 a6 00 00 78 01 00 00 60 a7 00 00 24 00 00 00 d9 a8 00 00 15 01 00 00 fe a8 00 00 5d 00 00 00 9...x...`...$...............]...
0960 14 aa 00 00 7f 00 00 00 72 aa 00 00 62 00 00 00 f2 aa 00 00 38 00 00 00 55 ab 00 00 3d 00 00 00 ........r...b.......8...U...=...
0980 8e ab 00 00 a0 00 00 00 cc ab 00 00 b4 00 00 00 6d ac 00 00 10 01 00 00 22 ad 00 00 2c 00 00 00 ................m......."...,...
09a0 33 ae 00 00 19 01 00 00 60 ae 00 00 b6 00 00 00 7a af 00 00 97 00 00 00 31 b0 00 00 46 00 00 00 3.......`.......z.......1...F...
09c0 c9 b0 00 00 f6 00 00 00 10 b1 00 00 07 01 00 00 07 b2 00 00 bf 00 00 00 0f b3 00 00 68 00 00 00 ............................h...
09e0 cf b3 00 00 6e 00 00 00 38 b4 00 00 dd 00 00 00 a7 b4 00 00 a6 00 00 00 85 b5 00 00 a3 00 00 00 ....n...8.......................
0a00 2c b6 00 00 60 00 00 00 d0 b6 00 00 23 00 00 00 31 b7 00 00 0f 00 00 00 55 b7 00 00 a1 00 00 00 ,...`.......#...1.......U.......
0a20 65 b7 00 00 71 00 00 00 07 b8 00 00 5f 01 00 00 79 b8 00 00 b8 00 00 00 d9 b9 00 00 d2 00 00 00 e...q......._...y...............
0a40 92 ba 00 00 83 00 00 00 65 bb 00 00 3d 00 00 00 e9 bb 00 00 6c 00 00 00 27 bc 00 00 60 01 00 00 ........e...=.......l...'...`...
0a60 94 bc 00 00 37 00 00 00 f5 bd 00 00 35 00 00 00 2d be 00 00 a5 00 00 00 63 be 00 00 0f 00 00 00 ....7.......5...-.......c.......
0a80 09 bf 00 00 0a 02 00 00 19 bf 00 00 11 00 00 00 24 c1 00 00 21 00 00 00 36 c1 00 00 0e 00 00 00 ................$...!...6.......
0aa0 58 c1 00 00 d5 00 00 00 67 c1 00 00 0c 00 00 00 3d c2 00 00 09 00 00 00 4a c2 00 00 14 00 00 00 X.......g.......=.......J.......
0ac0 54 c2 00 00 17 00 00 00 69 c2 00 00 1f 00 00 00 81 c2 00 00 06 00 00 00 a1 c2 00 00 3f 00 00 00 T.......i...................?...
0ae0 a8 c2 00 00 47 00 00 00 e8 c2 00 00 18 00 00 00 30 c3 00 00 67 01 00 00 49 c3 00 00 af 00 00 00 ....G...........0...g...I.......
0b00 b1 c4 00 00 09 01 00 00 61 c5 00 00 dd 00 00 00 6b c6 00 00 6d 00 00 00 49 c7 00 00 c8 00 00 00 ........a.......k...m...I.......
0b20 b7 c7 00 00 8b 00 00 00 80 c8 00 00 38 00 00 00 0c c9 00 00 db 00 00 00 45 c9 00 00 47 00 00 00 ............8...........E...G...
0b40 21 ca 00 00 2f 00 00 00 69 ca 00 00 24 00 00 00 99 ca 00 00 64 00 00 00 be ca 00 00 b5 00 00 00 !.../...i...$.......d...........
0b60 23 cb 00 00 81 00 00 00 d9 cb 00 00 58 00 00 00 5b cc 00 00 88 00 00 00 b4 cc 00 00 a4 00 00 00 #...........X...[...............
0b80 3d cd 00 00 94 00 00 00 e2 cd 00 00 9f 01 00 00 77 ce 00 00 73 00 00 00 17 d0 00 00 47 01 00 00 =...............w...s.......G...
0ba0 8b d0 00 00 39 00 00 00 d3 d1 00 00 09 00 00 00 0d d2 00 00 1c 00 00 00 17 d2 00 00 1e 00 00 00 ....9...........................
0bc0 34 d2 00 00 ba 00 00 00 53 d2 00 00 14 01 00 00 0e d3 00 00 4b 00 00 00 23 d4 00 00 9e 00 00 00 4.......S...........K...#.......
0be0 6f d4 00 00 b4 00 00 00 0e d5 00 00 81 00 00 00 c3 d5 00 00 5d 01 00 00 45 d6 00 00 b1 00 00 00 o...................]...E.......
0c00 a3 d7 00 00 b2 00 00 00 55 d8 00 00 78 00 00 00 08 d9 00 00 59 00 00 00 81 d9 00 00 19 01 00 00 ........U...x.......Y...........
0c20 db d9 00 00 22 00 00 00 f5 da 00 00 2d 00 00 00 18 db 00 00 20 00 00 00 46 db 00 00 19 00 00 00 ....".......-...........F.......
0c40 67 db 00 00 18 00 00 00 81 db 00 00 3b 00 00 00 9a db 00 00 84 00 00 00 d6 db 00 00 0a 00 00 00 g...........;...................
0c60 5b dc 00 00 34 00 00 00 66 dc 00 00 ac 01 00 00 9b dc 00 00 85 00 00 00 48 de 00 00 d6 00 00 00 [...4...f...............H.......
0c80 ce de 00 00 07 00 00 00 a5 df 00 00 6c 00 00 00 ad df 00 00 b2 01 00 00 1a e0 00 00 72 01 00 00 ............l...............r...
0ca0 cd e1 00 00 26 00 00 00 40 e3 00 00 14 00 00 00 67 e3 00 00 06 00 00 00 7c e3 00 00 3d 00 00 00 ....&...@.......g.......|...=...
0cc0 83 e3 00 00 18 00 00 00 c1 e3 00 00 34 00 00 00 da e3 00 00 15 00 00 00 0f e4 00 00 16 00 00 00 ............4...................
0ce0 25 e4 00 00 12 00 00 00 3c e4 00 00 20 00 00 00 4f e4 00 00 08 00 00 00 70 e4 00 00 23 00 00 00 %.......<.......O.......p...#...
0d00 79 e4 00 00 1c 00 00 00 9d e4 00 00 0d 00 00 00 ba e4 00 00 59 00 00 00 c8 e4 00 00 4f 00 00 00 y...................Y.......O...
0d20 22 e5 00 00 4e 00 00 00 72 e5 00 00 06 00 00 00 c1 e5 00 00 0a 00 00 00 c8 e5 00 00 0d 00 00 00 "...N...r.......................
0d40 d3 e5 00 00 06 00 00 00 e1 e5 00 00 0f 00 00 00 e8 e5 00 00 16 00 00 00 f8 e5 00 00 0d 00 00 00 ................................
0d60 0f e6 00 00 0a 00 00 00 1d e6 00 00 49 00 00 00 28 e6 00 00 31 00 00 00 72 e6 00 00 2a 00 00 00 ............I...(...1...r...*...
0d80 a4 e6 00 00 1b 00 00 00 cf e6 00 00 1a 00 00 00 eb e6 00 00 13 00 00 00 06 e7 00 00 1f 00 00 00 ................................
0da0 1a e7 00 00 0c 00 00 00 3a e7 00 00 da 00 00 00 47 e7 00 00 77 00 00 00 22 e8 00 00 03 00 00 00 ........:.......G...w...".......
0dc0 9a e8 00 00 35 00 00 00 9e e8 00 00 1c 00 00 00 d4 e8 00 00 34 00 00 00 f1 e8 00 00 44 00 00 00 ....5...............4.......D...
0de0 26 e9 00 00 44 00 00 00 6b e9 00 00 25 00 00 00 b0 e9 00 00 42 00 00 00 d6 e9 00 00 21 00 00 00 &...D...k...%.......B.......!...
0e00 19 ea 00 00 15 00 00 00 3b ea 00 00 25 00 00 00 51 ea 00 00 5b 00 00 00 77 ea 00 00 1e 00 00 00 ........;...%...Q...[...w.......
0e20 d3 ea 00 00 50 00 00 00 f2 ea 00 00 87 00 00 00 43 eb 00 00 9c 00 00 00 cb eb 00 00 3b 01 00 00 ....P...........C...........;...
0e40 68 ec 00 00 33 00 00 00 a4 ed 00 00 09 00 00 00 d8 ed 00 00 55 00 00 00 e2 ed 00 00 5f 00 00 00 h...3...............U......._...
0e60 38 ee 00 00 1c 00 00 00 98 ee 00 00 07 00 00 00 b5 ee 00 00 64 00 00 00 bd ee 00 00 e7 00 00 00 8...................d...........
0e80 22 ef 00 00 8b 00 00 00 0a f0 00 00 75 00 00 00 96 f0 00 00 47 00 00 00 0c f1 00 00 39 01 00 00 "...........u.......G.......9...
0ea0 54 f1 00 00 cd 00 00 00 8e f2 00 00 22 00 00 00 5c f3 00 00 b8 00 00 00 7f f3 00 00 0d 01 00 00 T..........."...\...............
0ec0 38 f4 00 00 a0 00 00 00 46 f5 00 00 92 00 00 00 e7 f5 00 00 f4 00 00 00 7a f6 00 00 7b 00 00 00 8.......F...............z...{...
0ee0 6f f7 00 00 ab 00 00 00 eb f7 00 00 85 00 00 00 97 f8 00 00 20 00 00 00 1d f9 00 00 1f 00 00 00 o...............................
0f00 3e f9 00 00 1e 00 00 00 5e f9 00 00 21 00 00 00 7d f9 00 00 1d 00 00 00 9f f9 00 00 1d 00 00 00 >.......^...!...}...............
0f20 bd f9 00 00 11 00 00 00 db f9 00 00 11 00 00 00 ed f9 00 00 5f 00 00 00 ff f9 00 00 7f 01 00 00 ...................._...........
0f40 5f fa 00 00 0b 00 00 00 df fb 00 00 10 00 00 00 eb fb 00 00 05 00 00 00 fc fb 00 00 0f 00 00 00 _...............................
0f60 02 fc 00 00 09 00 00 00 12 fc 00 00 0a 00 00 00 1c fc 00 00 11 00 00 00 27 fc 00 00 1c 00 00 00 ........................'.......
0f80 39 fc 00 00 13 00 00 00 56 fc 00 00 74 00 00 00 6a fc 00 00 2d 01 00 00 df fc 00 00 66 01 00 00 9.......V...t...j...-.......f...
0fa0 0d fe 00 00 a7 00 00 00 74 ff 00 00 d9 00 00 00 1c 00 01 00 8f 01 00 00 f6 00 01 00 10 00 00 00 ........t.......................
0fc0 86 02 01 00 1e 00 00 00 97 02 01 00 72 00 00 00 b6 02 01 00 3f 00 00 00 29 03 01 00 3a 00 00 00 ............r.......?...)...:...
0fe0 69 03 01 00 11 00 00 00 a4 03 01 00 d7 00 00 00 b6 03 01 00 95 00 00 00 8e 04 01 00 11 00 00 00 i...............................
1000 24 05 01 00 18 00 00 00 36 05 01 00 22 00 00 00 4f 05 01 00 2c 00 00 00 72 05 01 00 53 00 00 00 $.......6..."...O...,...r...S...
1020 9f 05 01 00 16 00 00 00 f3 05 01 00 09 00 00 00 0a 06 01 00 28 00 00 00 14 06 01 00 74 00 00 00 ....................(.......t...
1040 3d 06 01 00 fa 00 00 00 b2 06 01 00 26 00 00 00 ad 07 01 00 68 00 00 00 d4 07 01 00 26 00 00 00 =...........&.......h.......&...
1060 3d 08 01 00 49 00 00 00 64 08 01 00 25 00 00 00 ae 08 01 00 21 00 00 00 d4 08 01 00 1b 01 00 00 =...I...d...%.......!...........
1080 f6 08 01 00 09 00 00 00 12 0a 01 00 1e 00 00 00 1c 0a 01 00 0b 00 00 00 3b 0a 01 00 1a 00 00 00 ........................;.......
10a0 47 0a 01 00 0b 00 00 00 62 0a 01 00 50 00 00 00 6e 0a 01 00 06 00 00 00 bf 0a 01 00 09 00 00 00 G.......b...P...n...............
10c0 c6 0a 01 00 c0 00 00 00 d0 0a 01 00 65 00 00 00 91 0b 01 00 50 00 00 00 f7 0b 01 00 28 01 00 00 ............e.......P.......(...
10e0 48 0c 01 00 14 01 00 00 71 0d 01 00 8b 00 00 00 86 0e 01 00 10 00 00 00 12 0f 01 00 22 00 00 00 H.......q..................."...
1100 23 0f 01 00 fc 00 00 00 46 0f 01 00 08 00 00 00 43 10 01 00 09 00 00 00 4c 10 01 00 9b 01 00 00 #.......F.......C.......L.......
1120 56 10 01 00 8f 00 00 00 f2 11 01 00 76 00 00 00 82 12 01 00 03 00 00 00 f9 12 01 00 0f 00 00 00 V...........v...................
1140 fd 12 01 00 08 00 00 00 0d 13 01 00 4e 00 00 00 16 13 01 00 fb 00 00 00 65 13 01 00 3b 00 00 00 ............N...........e...;...
1160 61 14 01 00 ae 00 00 00 9d 14 01 00 b2 00 00 00 4c 15 01 00 86 00 00 00 ff 15 01 00 57 00 00 00 a...............L...........W...
1180 86 16 01 00 b4 00 00 00 de 16 01 00 20 00 00 00 93 17 01 00 45 00 00 00 b4 17 01 00 74 01 00 00 ....................E.......t...
11a0 fa 17 01 00 0a 00 00 00 6f 19 01 00 10 00 00 00 7a 19 01 00 2e 00 00 00 8b 19 01 00 0a 00 00 00 ........o.......z...............
11c0 ba 19 01 00 1f 00 00 00 c5 19 01 00 1e 00 00 00 e5 19 01 00 1e 00 00 00 04 1a 01 00 12 00 00 00 ................................
11e0 23 1a 01 00 44 00 00 00 36 1a 01 00 0a 00 00 00 7b 1a 01 00 0b 00 00 00 86 1a 01 00 9b 00 00 00 #...D...6.......{...............
1200 92 1a 01 00 22 00 00 00 2e 1b 01 00 23 00 00 00 51 1b 01 00 1e 00 00 00 75 1b 01 00 25 00 00 00 ....".......#...Q.......u...%...
1220 94 1b 01 00 13 00 00 00 ba 1b 01 00 10 00 00 00 ce 1b 01 00 0f 00 00 00 df 1b 01 00 b7 00 00 00 ................................
1240 ef 1b 01 00 fb 00 00 00 a7 1c 01 00 9f 00 00 00 a3 1d 01 00 8e 00 00 00 43 1e 01 00 9a 00 00 00 ........................C.......
1260 d2 1e 01 00 11 01 00 00 6d 1f 01 00 77 00 00 00 7f 20 01 00 f1 00 00 00 f7 20 01 00 e4 00 00 00 ........m...w...................
1280 e9 21 01 00 08 01 00 00 ce 22 01 00 11 01 00 00 d7 23 01 00 0a 01 00 00 e9 24 01 00 76 00 00 00 .!.......".......#.......$..v...
12a0 f4 25 01 00 0e 00 00 00 6b 26 01 00 23 01 00 00 7a 26 01 00 07 00 00 00 9e 27 01 00 27 00 00 00 .%......k&..#...z&.......'..'...
12c0 a6 27 01 00 25 00 00 00 ce 27 01 00 7d 00 00 00 f4 27 01 00 09 00 00 00 72 28 01 00 11 00 00 00 .'..%....'..}....'......r(......
12e0 7c 28 01 00 09 00 00 00 8e 28 01 00 09 00 00 00 98 28 01 00 15 00 00 00 a2 28 01 00 4b 00 00 00 |(.......(.......(.......(..K...
1300 b8 28 01 00 17 00 00 00 04 29 01 00 8a 00 00 00 1c 29 01 00 8a 00 00 00 a7 29 01 00 0a 00 00 00 .(.......).......).......)......
1320 32 2a 01 00 2a 00 00 00 3d 2a 01 00 61 00 00 00 68 2a 01 00 77 00 00 00 ca 2a 01 00 06 00 00 00 2*..*...=*..a...h*..w....*......
1340 42 2b 01 00 29 00 00 00 49 2b 01 00 39 00 00 00 73 2b 01 00 fb 00 00 00 ad 2b 01 00 9b 00 00 00 B+..)...I+..9...s+.......+......
1360 a9 2c 01 00 5a 01 00 00 45 2d 01 00 07 00 00 00 a0 2e 01 00 0c 00 00 00 a8 2e 01 00 0b 00 00 00 .,..Z...E-......................
1380 b5 2e 01 00 08 00 00 00 c1 2e 01 00 72 00 00 00 ca 2e 01 00 14 00 00 00 3d 2f 01 00 17 00 00 00 ............r...........=/......
13a0 52 2f 01 00 74 00 00 00 6a 2f 01 00 11 00 00 00 df 2f 01 00 1e 00 00 00 f1 2f 01 00 0c 00 00 00 R/..t...j/......./......./......
13c0 10 30 01 00 0a 00 00 00 1d 30 01 00 21 00 00 00 28 30 01 00 17 00 00 00 4a 30 01 00 20 00 00 00 .0.......0..!...(0......J0......
13e0 62 30 01 00 27 00 00 00 83 30 01 00 04 00 00 00 ab 30 01 00 05 00 00 00 b0 30 01 00 66 00 00 00 b0..'....0.......0.......0..f...
1400 b6 30 01 00 d9 00 00 00 1d 31 01 00 6e 00 00 00 f7 31 01 00 2d 01 00 00 66 32 01 00 8e 00 00 00 .0.......1..n....1..-...f2......
1420 94 33 01 00 12 00 00 00 23 34 01 00 9a 00 00 00 36 34 01 00 70 00 00 00 d1 34 01 00 69 00 00 00 .3......#4......64..p....4..i...
1440 42 35 01 00 7a 00 00 00 ac 35 01 00 37 01 00 00 27 36 01 00 38 01 00 00 5f 37 01 00 1d 00 00 00 B5..z....5..7...'6..8..._7......
1460 98 38 01 00 2b 01 00 00 b6 38 01 00 2f 00 00 00 e2 39 01 00 fe 00 00 00 12 3a 01 00 43 02 00 00 .8..+....8../....9.......:..C...
1480 11 3b 01 00 d5 00 00 00 55 3d 01 00 fe 00 00 00 2b 3e 01 00 08 00 00 00 2a 3f 01 00 cb 00 00 00 .;......U=......+>......*?......
14a0 33 3f 01 00 1f 00 00 00 ff 3f 01 00 66 00 00 00 1f 40 01 00 9d 00 00 00 86 40 01 00 a0 00 00 00 3?.......?..f....@.......@......
14c0 24 41 01 00 10 00 00 00 c5 41 01 00 0c 00 00 00 d6 41 01 00 12 00 00 00 e3 41 01 00 14 00 00 00 $A.......A.......A.......A......
14e0 f6 41 01 00 2b 00 00 00 0b 42 01 00 0d 00 00 00 37 42 01 00 0a 00 00 00 45 42 01 00 26 00 00 00 .A..+....B......7B......EB..&...
1500 50 42 01 00 06 00 00 00 77 42 01 00 d2 00 00 00 7e 42 01 00 95 00 00 00 51 43 01 00 4e 00 00 00 PB......wB......~B......QC..N...
1520 e7 43 01 00 04 00 00 00 36 44 01 00 6b 00 00 00 3b 44 01 00 c9 00 00 00 a7 44 01 00 0c 00 00 00 .C......6D..k...;D.......D......
1540 71 45 01 00 37 00 00 00 7e 45 01 00 38 00 00 00 b6 45 01 00 41 00 00 00 ef 45 01 00 9d 00 00 00 qE..7...~E..8....E..A....E......
1560 31 46 01 00 0a 00 00 00 cf 46 01 00 93 00 00 00 da 46 01 00 9a 00 00 00 6e 47 01 00 b4 01 00 00 1F.......F.......F......nG......
1580 09 48 01 00 04 01 00 00 be 49 01 00 51 01 00 00 c3 4a 01 00 85 00 00 00 15 4c 01 00 10 00 00 00 .H.......I..Q....J.......L......
15a0 9b 4c 01 00 24 01 00 00 ac 4c 01 00 0e 00 00 00 d1 4d 01 00 41 00 00 00 e0 4d 01 00 07 00 00 00 .L..$....L.......M..A....M......
15c0 22 4e 01 00 fd 00 00 00 2a 4e 01 00 0e 00 00 00 28 4f 01 00 32 01 00 00 37 4f 01 00 07 00 00 00 "N......*N......(O..2...7O......
15e0 6a 50 01 00 0f 00 00 00 72 50 01 00 f7 00 00 00 82 50 01 00 7d 00 00 00 7a 51 01 00 9f 00 00 00 jP......rP.......P..}...zQ......
1600 f8 51 01 00 40 01 00 00 98 52 01 00 47 00 00 00 d9 53 01 00 ab 01 00 00 21 54 01 00 d2 02 00 00 .Q..@....R..G....S......!T......
1620 cd 55 01 00 49 00 00 00 a0 58 01 00 11 02 00 00 ea 58 01 00 97 00 00 00 fc 5a 01 00 3b 02 00 00 .U..I....X.......X.......Z..;...
1640 94 5b 01 00 96 01 00 00 d0 5d 01 00 18 01 00 00 67 5f 01 00 02 01 00 00 80 60 01 00 35 00 00 00 .[.......]......g_.......`..5...
1660 83 61 01 00 54 01 00 00 b9 61 01 00 38 00 00 00 0e 63 01 00 a7 00 00 00 47 63 01 00 f8 00 00 00 .a..T....a..8....c......Gc......
1680 ef 63 01 00 8d 00 00 00 e8 64 01 00 77 00 00 00 76 65 01 00 4c 00 00 00 ee 65 01 00 8e 00 00 00 .c.......d..w...ve..L....e......
16a0 3b 66 01 00 00 02 00 00 ca 66 01 00 26 00 00 00 cb 68 01 00 a0 00 00 00 f2 68 01 00 22 00 00 00 ;f.......f..&....h.......h.."...
16c0 93 69 01 00 3b 00 00 00 b6 69 01 00 26 01 00 00 f2 69 01 00 78 01 00 00 19 6b 01 00 24 00 00 00 .i..;....i..&....i..x....k..$...
16e0 92 6c 01 00 15 01 00 00 b7 6c 01 00 5d 00 00 00 cd 6d 01 00 7f 00 00 00 2b 6e 01 00 62 00 00 00 .l.......l..]....m......+n..b...
1700 ab 6e 01 00 38 00 00 00 0e 6f 01 00 3d 00 00 00 47 6f 01 00 a0 00 00 00 85 6f 01 00 b4 00 00 00 .n..8....o..=...Go.......o......
1720 26 70 01 00 10 01 00 00 db 70 01 00 2c 00 00 00 ec 71 01 00 19 01 00 00 19 72 01 00 b6 00 00 00 &p.......p..,....q.......r......
1740 33 73 01 00 97 00 00 00 ea 73 01 00 46 00 00 00 82 74 01 00 f6 00 00 00 c9 74 01 00 07 01 00 00 3s.......s..F....t.......t......
1760 c0 75 01 00 bf 00 00 00 c8 76 01 00 68 00 00 00 88 77 01 00 6e 00 00 00 f1 77 01 00 dd 00 00 00 .u.......v..h....w..n....w......
1780 60 78 01 00 a6 00 00 00 3e 79 01 00 a3 00 00 00 e5 79 01 00 60 00 00 00 89 7a 01 00 23 00 00 00 `x......>y.......y..`....z..#...
17a0 ea 7a 01 00 0f 00 00 00 0e 7b 01 00 a1 00 00 00 1e 7b 01 00 71 00 00 00 c0 7b 01 00 5f 01 00 00 .z.......{.......{..q....{.._...
17c0 32 7c 01 00 b8 00 00 00 92 7d 01 00 d2 00 00 00 4b 7e 01 00 83 00 00 00 1e 7f 01 00 3d 00 00 00 2|.......}......K~..........=...
17e0 a2 7f 01 00 6c 00 00 00 e0 7f 01 00 60 01 00 00 4d 80 01 00 37 00 00 00 ae 81 01 00 35 00 00 00 ....l.......`...M...7.......5...
1800 e6 81 01 00 a5 00 00 00 1c 82 01 00 0f 00 00 00 c2 82 01 00 0a 02 00 00 d2 82 01 00 11 00 00 00 ................................
1820 dd 84 01 00 21 00 00 00 ef 84 01 00 0e 00 00 00 11 85 01 00 d5 00 00 00 20 85 01 00 0c 00 00 00 ....!...........................
1840 f6 85 01 00 09 00 00 00 03 86 01 00 14 00 00 00 0d 86 01 00 17 00 00 00 22 86 01 00 1f 00 00 00 ........................".......
1860 3a 86 01 00 06 00 00 00 5a 86 01 00 3f 00 00 00 61 86 01 00 47 00 00 00 a1 86 01 00 18 00 00 00 :.......Z...?...a...G...........
1880 e9 86 01 00 67 01 00 00 02 87 01 00 af 00 00 00 6a 88 01 00 09 01 00 00 1a 89 01 00 dd 00 00 00 ....g...........j...............
18a0 24 8a 01 00 6d 00 00 00 02 8b 01 00 c8 00 00 00 70 8b 01 00 8b 00 00 00 39 8c 01 00 38 00 00 00 $...m...........p.......9...8...
18c0 c5 8c 01 00 db 00 00 00 fe 8c 01 00 47 00 00 00 da 8d 01 00 2f 00 00 00 22 8e 01 00 24 00 00 00 ............G......./..."...$...
18e0 52 8e 01 00 64 00 00 00 77 8e 01 00 b5 00 00 00 dc 8e 01 00 81 00 00 00 92 8f 01 00 58 00 00 00 R...d...w...................X...
1900 14 90 01 00 88 00 00 00 6d 90 01 00 a4 00 00 00 f6 90 01 00 94 00 00 00 9b 91 01 00 9f 01 00 00 ........m.......................
1920 30 92 01 00 73 00 00 00 d0 93 01 00 47 01 00 00 44 94 01 00 39 00 00 00 8c 95 01 00 09 00 00 00 0...s.......G...D...9...........
1940 c6 95 01 00 1c 00 00 00 d0 95 01 00 1e 00 00 00 ed 95 01 00 ba 00 00 00 0c 96 01 00 14 01 00 00 ................................
1960 c7 96 01 00 4b 00 00 00 dc 97 01 00 9e 00 00 00 28 98 01 00 b4 00 00 00 c7 98 01 00 81 00 00 00 ....K...........(...............
1980 7c 99 01 00 5d 01 00 00 fe 99 01 00 b1 00 00 00 5c 9b 01 00 b2 00 00 00 0e 9c 01 00 78 00 00 00 |...]...........\...........x...
19a0 c1 9c 01 00 59 00 00 00 3a 9d 01 00 19 01 00 00 94 9d 01 00 22 00 00 00 ae 9e 01 00 2d 00 00 00 ....Y...:...........".......-...
19c0 d1 9e 01 00 20 00 00 00 ff 9e 01 00 19 00 00 00 20 9f 01 00 18 00 00 00 3a 9f 01 00 3b 00 00 00 ........................:...;...
19e0 53 9f 01 00 84 00 00 00 8f 9f 01 00 0a 00 00 00 14 a0 01 00 34 00 00 00 1f a0 01 00 ac 01 00 00 S...................4...........
1a00 54 a0 01 00 85 00 00 00 01 a2 01 00 d6 00 00 00 87 a2 01 00 07 00 00 00 5e a3 01 00 6c 00 00 00 T.......................^...l...
1a20 66 a3 01 00 b2 01 00 00 d3 a3 01 00 72 01 00 00 86 a5 01 00 26 00 00 00 f9 a6 01 00 14 00 00 00 f...........r.......&...........
1a40 20 a7 01 00 06 00 00 00 35 a7 01 00 3d 00 00 00 3c a7 01 00 18 00 00 00 7a a7 01 00 34 00 00 00 ........5...=...<.......z...4...
1a60 93 a7 01 00 15 00 00 00 c8 a7 01 00 16 00 00 00 de a7 01 00 12 00 00 00 f5 a7 01 00 20 00 00 00 ................................
1a80 08 a8 01 00 08 00 00 00 29 a8 01 00 23 00 00 00 32 a8 01 00 1c 00 00 00 56 a8 01 00 0d 00 00 00 ........)...#...2.......V.......
1aa0 73 a8 01 00 59 00 00 00 81 a8 01 00 4f 00 00 00 db a8 01 00 4e 00 00 00 2b a9 01 00 06 00 00 00 s...Y.......O.......N...+.......
1ac0 7a a9 01 00 0a 00 00 00 81 a9 01 00 0d 00 00 00 8c a9 01 00 06 00 00 00 9a a9 01 00 0f 00 00 00 z...............................
1ae0 a1 a9 01 00 16 00 00 00 b1 a9 01 00 0d 00 00 00 c8 a9 01 00 0a 00 00 00 d6 a9 01 00 49 00 00 00 ............................I...
1b00 e1 a9 01 00 31 00 00 00 2b aa 01 00 2a 00 00 00 5d aa 01 00 1b 00 00 00 88 aa 01 00 1a 00 00 00 ....1...+...*...]...............
1b20 a4 aa 01 00 13 00 00 00 bf aa 01 00 1f 00 00 00 d3 aa 01 00 0c 00 00 00 f3 aa 01 00 01 00 00 00 ................................
1b40 36 01 00 00 00 00 00 00 78 00 00 00 00 00 00 00 4b 01 00 00 3c 00 00 00 00 00 00 00 00 00 00 00 6.......x.......K...<...........
1b60 02 01 00 00 ae 00 00 00 7c 00 00 00 6a 01 00 00 9e 00 00 00 af 00 00 00 ad 01 00 00 a0 01 00 00 ........|...j...................
1b80 50 00 00 00 00 00 00 00 0e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 77 00 00 00 00 00 00 00 P.......................w.......
1ba0 0b 01 00 00 6f 00 00 00 aa 01 00 00 95 01 00 00 00 00 00 00 8a 00 00 00 00 00 00 00 91 00 00 00 ....o...........................
1bc0 84 00 00 00 c4 00 00 00 00 00 00 00 69 00 00 00 00 00 00 00 00 00 00 00 4b 00 00 00 35 00 00 00 ............i...........K...5...
1be0 50 01 00 00 b5 00 00 00 b0 00 00 00 eb 00 00 00 00 00 00 00 3d 00 00 00 00 00 00 00 0d 01 00 00 P...................=...........
1c00 f9 00 00 00 58 01 00 00 59 00 00 00 00 00 00 00 00 00 00 00 14 01 00 00 4c 00 00 00 87 01 00 00 ....X...Y...............L.......
1c20 d9 00 00 00 24 00 00 00 38 01 00 00 30 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 e1 00 00 00 ....$...8...0...................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e2 00 00 00 e6 00 00 00 00 00 00 00 7d 01 00 00 ............................}...
1c60 53 01 00 00 33 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 1b 01 00 00 57 01 00 00 S...3...............:.......W...
1c80 8d 00 00 00 00 00 00 00 00 00 00 00 40 01 00 00 19 01 00 00 7e 01 00 00 00 00 00 00 41 00 00 00 ............@.......~.......A...
1ca0 61 01 00 00 44 01 00 00 6f 01 00 00 39 01 00 00 00 00 00 00 42 00 00 00 86 00 00 00 00 00 00 00 a...D...o...9.......B...........
1cc0 a1 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 9a 01 00 00 00 00 00 00 3f 01 00 00 8b 00 00 00 ........................?.......
1ce0 66 00 00 00 5a 01 00 00 80 01 00 00 2b 00 00 00 00 00 00 00 98 01 00 00 f7 00 00 00 2f 00 00 00 f...Z.......+.............../...
1d00 03 01 00 00 00 00 00 00 bd 00 00 00 fa 00 00 00 6b 00 00 00 1f 01 00 00 cb 00 00 00 82 01 00 00 ................k...............
1d20 45 00 00 00 00 00 00 00 66 01 00 00 83 00 00 00 7c 01 00 00 00 00 00 00 da 00 00 00 00 00 00 00 E.......f.......|...............
1d40 51 01 00 00 82 00 00 00 76 00 00 00 00 00 00 00 53 00 00 00 b6 00 00 00 00 00 00 00 85 01 00 00 Q.......v.......S...............
1d60 22 01 00 00 00 00 00 00 fd 00 00 00 2c 01 00 00 32 01 00 00 49 00 00 00 6d 00 00 00 81 00 00 00 "...........,...2...I...m.......
1d80 6e 00 00 00 2e 01 00 00 00 00 00 00 74 01 00 00 77 01 00 00 4f 00 00 00 00 00 00 00 5e 01 00 00 n...........t...w...O.......^...
1da0 5a 00 00 00 c8 00 00 00 72 01 00 00 97 00 00 00 00 00 00 00 57 00 00 00 f8 00 00 00 79 00 00 00 Z.......r...........W.......y...
1dc0 d8 00 00 00 00 00 00 00 87 00 00 00 3c 01 00 00 00 00 00 00 a3 01 00 00 24 01 00 00 34 01 00 00 ............<...........$...4...
1de0 fc 00 00 00 00 00 00 00 59 01 00 00 00 00 00 00 0f 01 00 00 b7 00 00 00 00 00 00 00 00 00 00 00 ........Y.......................
1e00 95 00 00 00 89 00 00 00 6e 01 00 00 00 00 00 00 06 01 00 00 a0 00 00 00 2f 01 00 00 4a 01 00 00 ........n.............../...J...
1e20 25 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 00 00 00 4c 01 00 00 60 00 00 00 %...................C...L...`...
1e40 56 01 00 00 a4 00 00 00 98 00 00 00 3e 00 00 00 00 00 00 00 ae 01 00 00 26 01 00 00 3b 01 00 00 V...........>...........&...;...
1e60 b9 00 00 00 23 00 00 00 75 00 00 00 1d 01 00 00 8b 01 00 00 89 01 00 00 a2 01 00 00 00 00 00 00 ....#...u.......................
1e80 55 01 00 00 00 00 00 00 71 01 00 00 00 00 00 00 47 01 00 00 00 00 00 00 3e 01 00 00 d7 00 00 00 U.......q.......G.......>.......
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 e5 00 00 00 dc 00 00 00 00 00 00 00 b8 00 00 00 bf 00 00 00 ................................
1ec0 2c 00 00 00 8a 01 00 00 00 00 00 00 9b 01 00 00 10 00 00 00 be 00 00 00 03 00 00 00 00 00 00 00 ,...............................
1ee0 47 00 00 00 00 00 00 00 7b 00 00 00 35 01 00 00 c6 00 00 00 21 01 00 00 22 00 00 00 94 00 00 00 G.......{...5.......!...".......
1f00 a4 01 00 00 d4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 00 00 00 9f 01 00 00 ........................a.......
1f20 75 01 00 00 56 00 00 00 ab 01 00 00 2b 01 00 00 9c 00 00 00 c3 00 00 00 5b 00 00 00 8d 01 00 00 u...V.......+...........[.......
1f40 86 01 00 00 90 01 00 00 c2 00 00 00 7e 00 00 00 a9 01 00 00 f6 00 00 00 18 01 00 00 00 00 00 00 ............~...................
1f60 00 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 5c 00 00 00 a1 01 00 00 ac 01 00 00 4a 00 00 00 ................\...........J...
1f80 00 00 00 00 5d 01 00 00 55 00 00 00 d1 00 00 00 00 00 00 00 fb 00 00 00 00 00 00 00 1e 00 00 00 ....]...U.......................
1fa0 2a 01 00 00 84 01 00 00 2d 00 00 00 9d 01 00 00 67 01 00 00 ca 00 00 00 00 00 00 00 96 00 00 00 *.......-.......g...............
1fc0 00 00 00 00 00 00 00 00 bb 00 00 00 43 01 00 00 00 00 00 00 6c 00 00 00 d0 00 00 00 51 00 00 00 ............C.......l.......Q...
1fe0 8f 00 00 00 00 00 00 00 0d 00 00 00 27 00 00 00 e7 00 00 00 68 01 00 00 c5 00 00 00 09 01 00 00 ............'.......h...........
2000 99 01 00 00 00 00 00 00 99 00 00 00 f5 00 00 00 02 00 00 00 00 00 00 00 76 01 00 00 42 01 00 00 ........................v...B...
2020 d2 00 00 00 58 00 00 00 94 01 00 00 ad 00 00 00 a5 01 00 00 f0 00 00 00 2d 01 00 00 00 00 00 00 ....X...................-.......
2040 00 00 00 00 15 01 00 00 7f 01 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 ................................
2060 62 00 00 00 dd 00 00 00 ec 00 00 00 e4 00 00 00 d3 00 00 00 8c 01 00 00 df 00 00 00 cc 00 00 00 b...............................
2080 00 00 00 00 17 01 00 00 de 00 00 00 52 00 00 00 db 00 00 00 00 00 00 00 ff 00 00 00 1c 00 00 00 ............R...................
20a0 a2 00 00 00 c0 00 00 00 26 00 00 00 00 00 00 00 5f 01 00 00 00 00 00 00 3f 00 00 00 6c 01 00 00 ........&......._.......?...l...
20c0 8e 00 00 00 3b 00 00 00 a6 00 00 00 d6 00 00 00 ab 00 00 00 00 00 00 00 7a 00 00 00 00 00 00 00 ....;...................z.......
20e0 00 00 00 00 05 01 00 00 1a 01 00 00 00 00 00 00 00 00 00 00 9f 00 00 00 8c 00 00 00 6a 00 00 00 ............................j...
2100 e3 00 00 00 28 01 00 00 c7 00 00 00 92 01 00 00 11 01 00 00 4d 00 00 00 00 00 00 00 5f 00 00 00 ....(...............M......._...
2120 12 01 00 00 00 00 00 00 00 00 00 00 74 00 00 00 6b 01 00 00 2a 00 00 00 70 00 00 00 00 00 00 00 ............t...k...*...p.......
2140 14 00 00 00 13 00 00 00 5e 00 00 00 1c 01 00 00 8e 01 00 00 00 00 00 00 37 01 00 00 00 00 00 00 ........^...............7.......
2160 00 00 00 00 00 00 00 00 5b 01 00 00 54 01 00 00 9a 00 00 00 88 01 00 00 3a 01 00 00 00 00 00 00 ........[...T...........:.......
2180 3d 01 00 00 96 01 00 00 67 00 00 00 54 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =.......g...T...................
21a0 a9 00 00 00 00 00 00 00 a7 00 00 00 44 00 00 00 00 00 00 00 e8 00 00 00 00 00 00 00 aa 00 00 00 ............D...................
21c0 65 01 00 00 46 01 00 00 7b 01 00 00 0f 00 00 00 f3 00 00 00 00 00 00 00 00 00 00 00 37 00 00 00 e...F...{...................7...
21e0 a6 01 00 00 1b 00 00 00 ea 00 00 00 a7 01 00 00 1d 00 00 00 e9 00 00 00 83 01 00 00 00 00 00 00 ................................
2200 33 00 00 00 c9 00 00 00 08 00 00 00 2e 00 00 00 ed 00 00 00 91 01 00 00 65 00 00 00 41 01 00 00 3.......................e...A...
2220 32 00 00 00 00 00 00 00 39 00 00 00 17 00 00 00 00 00 00 00 4e 01 00 00 88 00 00 00 a3 00 00 00 2.......9...........N...........
2240 80 00 00 00 00 00 00 00 90 00 00 00 ac 00 00 00 16 01 00 00 00 00 00 00 f1 00 00 00 13 01 00 00 ................................
2260 04 01 00 00 00 00 00 00 29 01 00 00 7f 00 00 00 7a 01 00 00 93 01 00 00 78 01 00 00 b2 01 00 00 ........).......z.......x.......
2280 30 01 00 00 70 01 00 00 1e 01 00 00 00 00 00 00 0b 00 00 00 1a 00 00 00 49 01 00 00 00 00 00 00 0...p...................I.......
22a0 04 00 00 00 00 00 00 00 64 01 00 00 9e 01 00 00 48 00 00 00 00 00 00 00 fe 00 00 00 ce 00 00 00 ........d.......H...............
22c0 b1 01 00 00 63 00 00 00 a8 00 00 00 5d 00 00 00 48 01 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 ....c.......]...H...............
22e0 18 00 00 00 29 00 00 00 45 01 00 00 b2 00 00 00 00 01 00 00 93 00 00 00 0a 01 00 00 28 00 00 00 ....)...E...................(...
2300 4e 00 00 00 73 01 00 00 00 00 00 00 25 00 00 00 92 00 00 00 ee 00 00 00 00 00 00 00 c1 00 00 00 N...s.......%...................
2320 20 00 00 00 b1 00 00 00 10 01 00 00 19 00 00 00 00 00 00 00 a5 00 00 00 9c 01 00 00 27 01 00 00 ............................'...
2340 d5 00 00 00 7d 00 00 00 00 00 00 00 f2 00 00 00 01 01 00 00 bc 00 00 00 ef 00 00 00 00 00 00 00 ....}...........................
2360 0c 01 00 00 b4 00 00 00 af 01 00 00 cd 00 00 00 64 00 00 00 07 01 00 00 00 00 00 00 97 01 00 00 ................d...............
2380 79 01 00 00 34 00 00 00 69 01 00 00 b0 01 00 00 00 00 00 00 73 00 00 00 00 00 00 00 38 00 00 00 y...4...i...........s.......8...
23a0 31 01 00 00 6d 01 00 00 40 00 00 00 72 00 00 00 8f 01 00 00 9d 00 00 00 e0 00 00 00 00 00 00 00 1...m...@...r...................
23c0 36 00 00 00 62 01 00 00 5c 01 00 00 00 00 00 00 07 00 00 00 a8 01 00 00 00 00 00 00 21 00 00 00 6...b...\...................!...
23e0 cf 00 00 00 00 00 00 00 60 01 00 00 9b 00 00 00 46 00 00 00 31 00 00 00 23 01 00 00 00 00 00 00 ........`.......F...1...#.......
2400 00 00 00 00 0e 00 00 00 81 01 00 00 00 00 00 00 00 00 00 00 b3 00 00 00 11 00 00 00 71 00 00 00 ............................q...
2420 f4 00 00 00 68 00 00 00 63 01 00 00 06 00 00 00 4f 01 00 00 15 00 00 00 00 00 00 00 00 00 00 00 ....h...c.......O...............
2440 00 00 00 00 00 00 00 00 20 01 00 00 00 00 00 00 ba 00 00 00 4d 01 00 00 00 00 00 00 08 01 00 00 ....................M...........
2460 52 01 00 00 0c 00 00 00 00 22 24 7b 76 79 6f 73 5f 6c 69 62 65 78 65 63 64 69 72 7d 2f 76 61 6c R........"${vyos_libexecdir}/val
2480 69 64 61 74 6f 72 73 2f 66 6f 6f 20 62 61 72 20 24 56 41 52 28 40 29 22 20 77 69 6c 6c 20 62 65 idators/foo.bar.$VAR(@)".will.be
24a0 20 65 78 65 63 75 74 65 64 2c 20 3c 63 6f 6e 73 74 72 61 69 6e 74 45 72 72 6f 72 4d 65 73 73 61 .executed,.<constraintErrorMessa
24c0 67 65 3e 20 77 69 6c 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 ge>.will.be.displayed.on.failure
24e0 00 2e 2e 2e 00 3c 63 6f 6e 73 74 72 61 69 6e 74 45 72 72 6f 72 4d 65 73 73 61 67 65 3e 20 77 69 .....<constraintErrorMessage>.wi
2500 6c 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 00 3c 6e 6f 64 65 ll.be.displayed.on.failure.<node
2520 20 6e 61 6d 65 3d 22 6d 79 6e 6f 64 65 22 3e 20 3c 2f 6e 6f 64 65 3e 00 3c 70 72 6f 70 65 72 74 .name="mynode">.</node>.<propert
2540 69 65 73 3e 20 3c 63 6f 6d 70 6c 65 74 69 6f 6e 48 65 6c 70 3e 20 3c 6c 69 73 74 3e 20 66 6f 6f ies>.<completionHelp>.<list>.foo
2560 20 62 61 72 20 3c 2f 6c 69 73 74 3e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 63 6f 6d 70 6c .bar.</list>.<properties>.<compl
2580 65 74 69 6f 6e 48 65 6c 70 3e 20 3c 70 61 74 68 3e 20 76 70 6e 20 69 70 73 65 63 20 65 73 70 2d etionHelp>.<path>.vpn.ipsec.esp-
25a0 67 72 6f 75 70 20 3c 2f 70 61 74 68 3e 20 2e 2e 2e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c group.</path>.....<properties>.<
25c0 63 6f 6d 70 6c 65 74 69 6f 6e 48 65 6c 70 3e 20 3c 73 63 72 69 70 74 3e 20 2f 70 61 74 68 2f 74 completionHelp>.<script>./path/t
25e0 6f 2f 73 63 72 69 70 74 20 3c 2f 73 63 72 69 70 74 3e 20 2e 2e 2e 00 3c 70 72 6f 70 65 72 74 69 o/script.</script>.....<properti
2600 65 73 3e 20 3c 63 6f 6e 73 74 72 61 69 6e 74 3e 20 3c 72 65 67 65 78 3e 20 2e 2e 2e 00 3c 70 72 es>.<constraint>.<regex>.....<pr
2620 6f 70 65 72 74 69 65 73 3e 20 3c 63 6f 6e 73 74 72 61 69 6e 74 3e 20 3c 76 61 6c 69 64 61 74 6f operties>.<constraint>.<validato
2640 72 3e 20 3c 6e 61 6d 65 20 3d 22 66 6f 6f 22 20 61 72 67 75 6d 65 6e 74 3d 22 62 61 72 22 3e 00 r>.<name.="foo".argument="bar">.
2660 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 68 65 6c 70 3e 4d 79 20 6e 6f 64 65 3c 2f 68 65 6c 70 <properties>.<help>My.node</help
2680 3e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 6d 75 6c 74 69 2f 3e 00 3c 70 72 6f 70 65 72 74 >.<properties>.<multi/>.<propert
26a0 69 65 73 3e 20 3c 70 72 69 6f 72 69 74 79 3e 39 39 39 3c 2f 70 72 69 6f 72 69 74 79 3e 00 3c 70 ies>.<priority>999</priority>.<p
26c0 72 6f 70 65 72 74 69 65 73 3e 20 3c 76 61 6c 75 65 48 65 6c 70 3e 20 3c 66 6f 72 6d 61 74 3e 20 roperties>.<valueHelp>.<format>.
26e0 66 6f 72 6d 61 74 20 3c 2f 66 6f 72 6d 61 74 3e 20 3c 64 65 73 63 72 69 70 74 69 6f 6e 3e 20 73 format.</format>.<description>.s
2700 6f 6d 65 20 73 74 72 69 6e 67 20 3c 2f 64 65 73 63 72 69 70 74 69 6f 6e 3e 00 3c 74 61 67 4e 6f ome.string.</description>.<tagNo
2720 64 65 20 6e 61 6d 65 3d 22 6d 79 6e 6f 64 65 3e 20 3c 2f 6e 6f 64 65 3e 00 41 20 66 6f 72 6b 20 de.name="mynode>.</node>.A.fork.
2740 77 69 74 68 20 70 61 63 6b 61 67 69 6e 67 20 63 68 61 6e 67 65 73 20 66 6f 72 20 56 79 4f 53 20 with.packaging.changes.for.VyOS.
2760 69 73 20 6b 65 70 74 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 is.kept.at.https://github.com/vy
2780 6f 73 2f 68 76 69 6e 66 6f 00 41 20 67 6f 6f 64 20 61 70 70 72 6f 61 63 68 20 66 6f 72 20 77 72 os/hvinfo.A.good.approach.for.wr
27a0 69 74 69 6e 67 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 20 69 73 20 61 63 74 75 61 6c 6c iting.commit.messages.is.actuall
27c0 79 20 74 6f 20 68 61 76 65 20 61 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 66 69 6c 65 28 73 29 20 y.to.have.a.look.at.the.file(s).
27e0 68 69 73 74 6f 72 79 20 62 79 20 69 6e 76 6f 6b 69 6e 67 20 60 60 67 69 74 20 6c 6f 67 20 70 61 history.by.invoking.``git.log.pa
2800 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 60 60 2e 00 41 20 6e 75 6d 62 65 72 20 6f 66 20 66 6c th/to/file.txt``..A.number.of.fl
2820 61 67 73 20 63 61 6e 20 62 65 20 73 65 74 20 75 70 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 ags.can.be.set.up.to.change.the.
2840 62 65 68 61 76 69 6f 75 72 20 6f 66 20 56 79 4f 53 20 61 74 20 72 75 6e 74 69 6d 65 2e 20 54 68 behaviour.of.VyOS.at.runtime..Th
2860 65 73 65 20 66 6c 61 67 73 20 63 61 6e 20 62 65 20 74 6f 67 67 6c 65 64 20 75 73 69 6e 67 20 65 ese.flags.can.be.toggled.using.e
2880 69 74 68 65 72 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 6f 72 20 63 ither.environment.variables.or.c
28a0 72 65 61 74 69 6e 67 20 66 69 6c 65 73 2e 00 41 20 73 69 6e 67 6c 65 2c 20 73 68 6f 72 74 2c 20 reating.files..A.single,.short,.
28c0 73 75 6d 6d 61 72 79 20 6f 66 20 74 68 65 20 63 6f 6d 6d 69 74 20 28 72 65 63 6f 6d 6d 65 6e 64 summary.of.the.commit.(recommend
28e0 65 64 20 35 30 20 63 68 61 72 61 63 74 65 72 73 20 6f 72 20 6c 65 73 73 2c 20 6e 6f 74 20 65 78 ed.50.characters.or.less,.not.ex
2900 63 65 65 64 69 6e 67 20 38 30 20 63 68 61 72 61 63 74 65 72 73 29 20 63 6f 6e 74 61 69 6e 69 6e ceeding.80.characters).containin
2920 67 20 61 20 70 72 65 66 69 78 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65 64 20 63 6f 6d 70 6f 6e g.a.prefix.of.the.changed.compon
2940 65 6e 74 20 61 6e 64 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 50 68 61 62 72 69 ent.and.the.corresponding.Phabri
2960 63 61 74 6f 72 5f 20 72 65 66 65 72 65 6e 63 65 20 65 2e 67 2e 20 60 60 73 6e 6d 70 3a 20 54 31 cator_.reference.e.g..``snmp:.T1
2980 31 31 31 3a 60 60 20 6f 72 20 60 60 65 74 68 65 72 6e 65 74 3a 20 54 32 32 32 32 3a 60 60 20 2d 111:``.or.``ethernet:.T2222:``.-
29a0 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 63 6f 75 6c 64 20 62 65 20 63 6f .multiple.components.could.be.co
29c0 6e 63 61 74 65 6e 61 74 65 64 20 61 73 20 69 6e 20 60 60 73 6e 6d 70 3a 20 65 74 68 65 72 6e 65 ncatenated.as.in.``snmp:.etherne
29e0 74 3a 20 54 33 33 33 33 60 60 00 41 62 62 72 65 76 69 61 74 69 6f 6e 73 20 61 6e 64 20 61 63 72 t:.T3333``.Abbreviations.and.acr
2a00 6f 6e 79 6d 73 20 2a 2a 6d 75 73 74 2a 2a 20 62 65 20 63 61 70 69 74 61 6c 69 7a 65 64 2e 00 41 onyms.**must**.be.capitalized..A
2a20 63 63 65 6c 2d 50 50 50 00 41 63 72 6f 6e 79 6d 73 20 61 6c 73 6f 20 2a 2a 6d 75 73 74 2a 2a 20 ccel-PPP.Acronyms.also.**must**.
2a40 62 65 20 63 61 70 69 74 61 6c 69 7a 65 64 20 74 6f 20 76 69 73 75 61 6c 6c 79 20 64 69 73 74 69 be.capitalized.to.visually.disti
2a60 6e 67 75 69 73 68 20 74 68 65 6d 20 66 72 6f 6d 20 6e 6f 72 6d 61 6c 20 77 6f 72 64 73 3a 00 41 nguish.them.from.normal.words:.A
2a80 64 64 20 66 69 6c 65 20 74 6f 20 47 69 74 20 69 6e 64 65 78 20 75 73 69 6e 67 20 60 60 67 69 74 dd.file.to.Git.index.using.``git
2aa0 20 61 64 64 20 6d 79 66 69 6c 65 60 60 2c 20 6f 72 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 .add.myfile``,.or.for.a.whole.di
2ac0 72 65 63 74 6f 72 79 3a 20 60 60 67 69 74 20 61 64 64 20 73 6f 6d 65 64 69 72 2f 2a 60 60 00 41 rectory:.``git.add.somedir/*``.A
2ae0 64 64 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 49 50 20 61 64 64 72 65 73 73 65 73 00 41 64 64 72 dd.one.or.more.IP.addresses.Addr
2b00 65 73 73 00 41 66 74 65 72 20 61 20 6d 69 6e 75 74 65 20 6f 72 20 74 77 6f 20 79 6f 75 20 77 69 ess.After.a.minute.or.two.you.wi
2b20 6c 6c 20 66 69 6e 64 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 44 45 42 20 70 61 63 6b 61 67 ll.find.the.generated.DEB.packag
2b40 65 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 76 79 6f 73 2d 31 78 20 73 6f 75 72 63 65 20 64 69 es.next.to.the.vyos-1x.source.di
2b60 72 65 63 74 6f 72 79 3a 00 41 66 74 65 72 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68 65 20 70 61 63 rectory:.After.compiling.the.pac
2b80 6b 61 67 65 73 20 79 6f 75 20 77 69 6c 6c 20 66 69 6e 64 20 79 6f 75 72 73 65 6c 66 20 74 68 65 kages.you.will.find.yourself.the
2ba0 20 6e 65 77 6c 79 20 67 65 6e 65 72 61 74 65 64 20 60 2a 2e 64 65 62 60 20 62 69 6e 61 72 69 65 .newly.generated.`*.deb`.binarie
2bc0 73 20 69 6e 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 s.in.``vyos-build/packages/linux
2be0 2d 6b 65 72 6e 65 6c 60 60 20 66 72 6f 6d 20 77 68 69 63 68 20 79 6f 75 20 63 61 6e 20 63 6f 70 -kernel``.from.which.you.can.cop
2c00 79 20 74 68 65 6d 20 74 6f 20 74 68 65 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 y.them.to.the.``vyos-build/packa
2c20 67 65 73 60 60 20 66 6f 6c 64 65 72 20 66 6f 72 20 69 6e 63 6c 75 73 69 6f 6e 20 64 75 72 69 6e ges``.folder.for.inclusion.durin
2c40 67 20 74 68 65 20 49 53 4f 20 62 75 69 6c 64 2e 00 41 66 74 65 72 20 69 74 73 20 66 69 72 73 74 g.the.ISO.build..After.its.first
2c60 20 62 6f 6f 74 20 69 6e 74 6f 20 74 68 65 20 6e 65 77 6c 79 20 69 6e 73 74 61 6c 6c 65 64 20 73 .boot.into.the.newly.installed.s
2c80 79 73 74 65 6d 20 74 68 65 20 6d 61 69 6e 20 53 6d 6f 6b 65 74 65 73 74 20 73 63 72 69 70 74 20 ystem.the.main.Smoketest.script.
2ca0 69 73 20 65 78 65 63 75 74 65 64 2c 20 69 74 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 68 65 72 is.executed,.it.can.be.found.her
2cc0 65 3a 20 60 2f 75 73 72 2f 62 69 6e 2f 76 79 6f 73 2d 73 6d 6f 6b 65 74 65 73 74 60 00 41 6c 6c e:.`/usr/bin/vyos-smoketest`.All
2ce0 20 56 79 4f 53 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 68 6f 73 74 65 64 20 6f 6e 20 47 .VyOS.source.code.is.hosted.on.G
2d00 69 74 48 75 62 20 75 6e 64 65 72 20 74 68 65 20 56 79 4f 53 20 6f 72 67 61 6e 69 7a 61 74 69 6f itHub.under.the.VyOS.organizatio
2d20 6e 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 68 65 72 65 3a 20 68 74 74 70 73 n.which.can.be.found.here:.https
2d40 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 00 41 6c 6c 20 63 6f 6d 6d 69 74 20 74 69 ://github.com/vyos.All.commit.ti
2d60 6d 65 20 63 68 65 63 6b 73 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 74 68 65 20 76 65 72 69 66 me.checks.should.be.in.the.verif
2d80 79 28 29 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 63 72 69 70 74 00 41 6c 6c 20 69 y().function.of.the.script.All.i
2da0 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 58 4d 4c 20 69 6e 70 75 74 20 66 69 nterface.definition.XML.input.fi
2dc0 6c 65 73 20 28 2e 69 6e 20 73 75 66 66 69 78 29 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 74 6f les.(.in.suffix).will.be.sent.to
2de0 20 74 68 65 20 47 43 43 20 70 72 65 70 72 6f 63 65 73 73 20 61 6e 64 20 74 68 65 20 6f 75 74 70 .the.GCC.preprocess.and.the.outp
2e00 75 74 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 60 62 75 69 6c 64 2f 69 6e 74 65 72 ut.is.stored.in.the.`build/inter
2e20 66 61 63 65 2d 64 65 66 69 6e 69 74 69 6f 6e 73 60 20 66 6f 6c 64 65 72 2e 20 54 68 65 20 70 72 face-definitions`.folder..The.pr
2e40 65 76 69 6f 75 73 6c 79 20 6d 65 6e 74 69 6f 6e 65 64 20 60 73 63 72 69 70 74 73 2f 62 75 69 6c eviously.mentioned.`scripts/buil
2e60 64 2d 63 6f 6d 6d 61 6e 64 2d 74 65 6d 70 6c 61 74 65 73 60 20 73 63 72 69 70 74 20 6f 70 65 72 d-command-templates`.script.oper
2e80 61 74 65 73 20 6f 6e 20 74 68 65 20 60 62 75 69 6c 64 2f 69 6e 74 65 72 66 61 63 65 2d 64 65 66 ates.on.the.`build/interface-def
2ea0 69 6e 69 74 69 6f 6e 73 60 20 66 6f 6c 64 65 72 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 6c 6c initions`.folder.to.generate.all
2ec0 20 72 65 71 75 69 72 65 64 20 43 4c 49 20 6e 6f 64 65 73 2e 00 41 6c 6c 20 69 73 73 75 65 73 20 .required.CLI.nodes..All.issues.
2ee0 73 68 6f 75 6c 64 20 62 65 20 72 65 70 6f 72 74 65 64 20 74 6f 20 74 68 65 20 64 65 76 65 6c 6f should.be.reported.to.the.develo
2f00 70 65 72 73 2e 20 54 68 69 73 20 6c 65 74 73 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 20 6b pers..This.lets.the.developers.k
2f20 6e 6f 77 20 77 68 61 74 20 69 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 70 72 6f 70 65 72 6c 79 now.what.is.not.working.properly
2f40 2e 20 57 69 74 68 6f 75 74 20 74 68 69 73 20 73 6f 72 74 20 6f 66 20 66 65 65 64 62 61 63 6b 20 ..Without.this.sort.of.feedback.
2f60 65 76 65 72 79 20 64 65 76 65 6c 6f 70 65 72 20 77 69 6c 6c 20 62 65 6c 69 65 76 65 20 74 68 61 every.developer.will.believe.tha
2f80 74 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 77 6f 72 6b 69 6e 67 20 63 6f 72 72 65 63 74 6c t.everything.is.working.correctl
2fa0 79 2e 00 41 6c 6c 20 6c 6f 67 69 63 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 74 68 65 20 73 63 y..All.logic.should.be.in.the.sc
2fc0 72 69 70 74 73 00 41 6c 6c 20 74 65 78 74 20 6f 66 20 74 68 65 20 63 6f 6d 6d 69 74 20 6d 65 73 ripts.All.text.of.the.commit.mes
2fe0 73 61 67 65 20 73 68 6f 75 6c 64 20 62 65 20 77 72 61 70 70 65 64 20 61 74 20 37 32 20 63 68 61 sage.should.be.wrapped.at.72.cha
3000 72 61 63 74 65 72 73 20 69 66 20 70 6f 73 73 69 62 6c 65 20 77 68 69 63 68 20 6d 61 6b 65 73 20 racters.if.possible.which.makes.
3020 72 65 61 64 69 6e 67 20 63 6f 6d 6d 69 74 20 6c 6f 67 73 20 65 61 73 69 65 72 20 77 69 74 68 20 reading.commit.logs.easier.with.
3040 60 60 67 69 74 20 6c 6f 67 60 60 20 6f 6e 20 61 20 73 74 61 6e 64 61 72 64 20 74 65 72 6d 69 6e ``git.log``.on.a.standard.termin
3060 61 6c 20 28 77 68 69 63 68 20 68 61 70 70 65 6e 73 20 74 6f 20 62 65 20 38 30 78 32 35 29 00 41 al.(which.happens.to.be.80x25).A
3080 6c 77 61 79 73 20 75 73 65 20 74 68 65 20 60 60 2d 78 60 60 20 6f 70 74 69 6f 6e 20 74 6f 20 74 lways.use.the.``-x``.option.to.t
30a0 68 65 20 60 60 67 69 74 20 63 68 65 72 72 79 2d 70 69 63 6b 60 60 20 63 6f 6d 6d 61 6e 64 20 77 he.``git.cherry-pick``.command.w
30c0 68 65 6e 20 62 61 63 6b 20 6f 72 20 66 6f 72 77 61 72 64 20 70 6f 72 74 69 6e 67 20 61 6e 20 69 hen.back.or.forward.porting.an.i
30e0 6e 64 69 76 69 64 75 61 6c 20 63 6f 6d 6d 69 74 2e 20 54 68 69 73 20 61 75 74 6f 6d 61 74 69 63 ndividual.commit..This.automatic
3100 61 6c 6c 79 20 61 70 70 65 6e 64 73 20 74 68 65 20 6c 69 6e 65 3a 20 60 60 28 63 68 65 72 72 79 ally.appends.the.line:.``(cherry
3120 20 70 69 63 6b 65 64 20 66 72 6f 6d 20 63 6f 6d 6d 69 74 20 3c 49 44 3e 29 60 60 20 74 6f 20 74 .picked.from.commit.<ID>)``.to.t
3140 68 65 20 6f 72 69 67 69 6e 61 6c 20 61 75 74 68 6f 72 73 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 he.original.authors.commit.messa
3160 67 65 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 69 65 72 20 77 68 65 6e 20 62 69 73 65 63 74 69 ge.making.it.easier.when.bisecti
3180 6e 67 20 70 72 6f 62 6c 65 6d 73 2e 00 41 6e 6f 74 68 65 72 20 61 64 76 61 6e 74 61 67 65 20 69 ng.problems..Another.advantage.i
31a0 73 20 74 65 73 74 61 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 63 6f 64 65 2e 20 4d 6f 63 6b 69 s.testability.of.the.code..Mocki
31c0 6e 67 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6e 66 69 67 20 73 75 62 73 79 73 74 65 6d 20 69 ng.the.entire.config.subsystem.i
31e0 73 20 68 61 72 64 2c 20 77 68 69 6c 65 20 63 6f 6e 73 74 72 75 63 74 69 6e 67 20 61 6e 20 69 6e s.hard,.while.constructing.an.in
3200 74 65 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 62 79 20 68 61 6e 64 20 69 73 ternal.representation.by.hand.is
3220 20 77 61 79 20 73 69 6d 70 6c 65 72 2e 00 41 6e 79 20 22 6d 6f 64 69 66 69 65 64 22 20 70 61 63 .way.simpler..Any."modified".pac
3240 6b 61 67 65 20 6d 61 79 20 72 65 66 65 72 20 74 6f 20 61 6e 20 61 6c 74 65 72 65 64 20 76 65 72 kage.may.refer.to.an.altered.ver
3260 73 69 6f 6e 20 6f 66 20 65 2e 67 2e 20 76 79 6f 73 2d 31 78 20 70 61 63 6b 61 67 65 20 74 68 61 sion.of.e.g..vyos-1x.package.tha
3280 74 20 79 6f 75 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 74 65 73 74 20 62 65 66 6f 72 65 20 t.you.would.like.to.test.before.
32a0 66 69 6c 69 6e 67 20 61 20 70 75 6c 6c 20 72 65 71 75 65 73 74 20 6f 6e 20 47 69 74 48 75 62 2e filing.a.pull.request.on.GitHub.
32c0 00 41 6e 79 20 70 61 63 6b 61 67 65 73 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 64 69 .Any.packages.in.the.packages.di
32e0 72 65 63 74 6f 72 79 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 69 73 6f rectory.will.be.added.to.the.iso
3300 20 64 75 72 69 6e 67 20 62 75 69 6c 64 2c 20 72 65 70 6c 61 63 69 6e 67 20 74 68 65 20 75 70 73 .during.build,.replacing.the.ups
3320 74 72 65 61 6d 20 6f 6e 65 73 2e 20 4d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 64 65 6c 65 74 65 tream.ones..Make.sure.you.delete
3340 20 74 68 65 6d 20 28 62 6f 74 68 20 74 68 65 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 69 .them.(both.the.source.directori
3360 65 73 20 61 6e 64 20 62 75 69 6c 74 20 64 65 62 20 70 61 63 6b 61 67 65 73 29 20 69 66 20 79 6f es.and.built.deb.packages).if.yo
3380 75 20 77 61 6e 74 20 74 6f 20 62 75 69 6c 64 20 61 6e 20 69 73 6f 20 66 72 6f 6d 20 70 75 72 65 u.want.to.build.an.iso.from.pure
33a0 6c 79 20 75 70 73 74 72 65 61 6d 20 70 61 63 6b 61 67 65 73 2e 00 41 73 20 53 6d 6f 6b 65 74 65 ly.upstream.packages..As.Smokete
33c0 73 74 73 20 77 69 6c 6c 20 61 6c 74 65 72 20 74 68 65 20 73 79 73 74 65 6d 20 63 6f 6e 66 69 67 sts.will.alter.the.system.config
33e0 75 72 61 74 69 6f 6e 20 61 6e 64 20 79 6f 75 20 61 72 65 20 6c 6f 67 67 65 64 20 69 6e 20 72 65 uration.and.you.are.logged.in.re
3400 6d 6f 74 65 20 79 6f 75 20 6d 61 79 20 6c 6f 6f 73 65 20 79 6f 75 72 20 63 6f 6e 6e 65 63 74 69 mote.you.may.loose.your.connecti
3420 6f 6e 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d 2e 00 41 73 20 74 68 65 20 56 79 4f 53 20 64 6f on.to.the.system..As.the.VyOS.do
3440 63 75 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 6e 6f 74 20 6f 6e 6c 79 20 66 6f 72 20 75 73 65 72 cumentation.is.not.only.for.user
3460 73 20 62 75 74 20 61 6c 73 6f 20 66 6f 72 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 20 2d 20 s.but.also.for.the.developers.-.
3480 61 6e 64 20 77 65 20 6b 65 65 70 20 6e 6f 20 73 65 63 72 65 74 20 64 6f 63 75 6d 65 6e 74 61 74 and.we.keep.no.secret.documentat
34a0 69 6f 6e 20 2d 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 73 20 68 6f 77 ion.-.this.section.describes.how
34c0 20 74 68 65 20 61 75 74 6f 6d 61 74 65 64 20 74 65 73 74 69 6e 67 20 77 6f 72 6b 73 2e 00 41 73 .the.automated.testing.works..As
34e0 73 75 6d 65 20 77 65 20 77 61 6e 74 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 76 79 6f 73 2d 31 sume.we.want.to.build.the.vyos-1
3500 78 20 70 61 63 6b 61 67 65 20 6f 6e 20 6f 75 72 20 6f 77 6e 20 61 6e 64 20 6d 6f 64 69 66 79 20 x.package.on.our.own.and.modify.
3520 69 74 20 74 6f 20 6f 75 72 20 6e 65 65 64 73 2e 20 57 65 20 66 69 72 73 74 20 6e 65 65 64 20 74 it.to.our.needs..We.first.need.t
3540 6f 20 63 6c 6f 6e 65 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 66 72 6f 6d 20 47 69 74 48 o.clone.the.repository.from.GitH
3560 75 62 2e 00 41 74 74 61 63 68 20 70 61 74 63 68 20 74 6f 20 50 68 61 62 72 69 63 61 74 6f 72 20 ub..Attach.patch.to.Phabricator.
3580 74 61 73 6b 00 42 61 64 3a 20 22 44 69 73 61 62 6c 65 73 20 49 50 76 36 20 66 6f 72 77 61 72 64 task.Bad:."Disables.IPv6.forward
35a0 69 6e 67 22 00 42 61 64 3a 20 22 46 72 6f 62 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 ing".Bad:."Frobnication.algorith
35c0 6d 2e 22 00 42 61 64 3a 20 22 53 65 74 20 54 43 50 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 69 6d m.".Bad:."Set.TCP.connection.tim
35e0 65 6f 75 74 22 00 42 61 64 3a 20 22 66 72 6f 62 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 eout".Bad:."frobnication.algorit
3600 68 6d 22 00 42 61 64 3a 20 22 74 63 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 69 6d 65 6f 75 74 hm".Bad:."tcp.connection.timeout
3620 22 00 42 61 64 3a 20 50 50 50 4f 45 2c 20 49 50 53 45 43 00 42 61 64 3a 20 70 70 70 6f 65 2c 20 ".Bad:.PPPOE,.IPSEC.Bad:.pppoe,.
3640 69 70 73 65 63 00 42 61 64 3a 20 72 61 64 69 75 73 20 28 75 6e 6c 65 73 73 20 69 74 27 73 20 61 ipsec.Bad:.radius.(unless.it's.a
3660 62 6f 75 74 20 74 68 65 20 64 69 73 74 61 6e 63 65 20 62 65 74 77 65 65 6e 20 61 20 63 65 6e 74 bout.the.distance.between.a.cent
3680 65 72 20 6f 66 20 61 20 63 69 72 63 6c 65 20 61 6e 64 20 61 6e 79 20 6f 66 20 69 74 73 20 70 6f er.of.a.circle.and.any.of.its.po
36a0 69 6e 74 73 29 00 42 65 65 69 6e 67 20 62 72 61 76 65 20 61 6e 64 20 72 75 6e 6e 69 6e 67 20 74 ints).Beeing.brave.and.running.t
36c0 68 65 20 6c 61 74 65 73 74 20 72 6f 6c 6c 69 6e 67 20 72 65 6c 65 61 73 65 73 20 77 69 6c 6c 20 he.latest.rolling.releases.will.
36e0 73 6f 6d 65 74 69 6d 65 73 20 74 72 69 67 67 65 72 20 62 75 67 73 20 64 75 65 20 74 6f 20 63 6f sometimes.trigger.bugs.due.to.co
3700 72 6e 65 72 20 63 61 73 65 73 20 77 65 20 6d 69 73 73 65 64 20 69 6e 20 6f 75 72 20 64 65 73 69 rner.cases.we.missed.in.our.desi
3720 67 6e 2e 20 54 68 6f 73 65 20 62 75 67 73 20 73 68 6f 75 6c 64 20 62 65 20 66 69 6c 65 64 20 76 gn..Those.bugs.should.be.filed.v
3740 69 61 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 62 75 74 20 79 6f 75 20 63 61 6e 20 68 65 6c 70 ia.Phabricator_.but.you.can.help
3760 20 75 73 20 74 6f 20 6e 61 72 72 6f 77 20 64 6f 65 6e 20 74 68 65 20 69 73 73 75 65 2e 20 4c 6f .us.to.narrow.doen.the.issue..Lo
3780 67 69 6e 20 74 6f 20 79 6f 75 72 20 56 79 4f 53 20 73 79 73 74 65 6d 20 61 6e 64 20 63 68 61 6e gin.to.your.VyOS.system.and.chan
37a0 67 65 20 69 6e 74 6f 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 6f 64 65 20 62 79 20 74 79 ge.into.configuration.mode.by.ty
37c0 70 69 6e 67 20 60 60 63 6f 6e 66 69 67 75 72 65 60 60 2e 20 4e 6f 77 20 72 65 2d 6c 6f 61 64 20 ping.``configure``..Now.re-load.
37e0 79 6f 75 72 20 62 6f 6f 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 62 79 20 73 69 6d 70 6c your.boot.configuration.by.simpl
3800 79 20 74 79 70 69 6e 67 20 60 60 6c 6f 61 64 60 60 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 72 65 y.typing.``load``.followed.by.re
3820 74 75 72 6e 2e 00 42 6f 6f 74 20 54 69 6d 69 6e 67 00 42 75 67 20 52 65 70 6f 72 74 2f 49 73 73 turn..Boot.Timing.Bug.Report/Iss
3840 75 65 00 42 75 69 6c 64 00 42 75 69 6c 64 20 43 6f 6e 74 61 69 6e 65 72 00 42 75 69 6c 64 20 49 ue.Build.Build.Container.Build.I
3860 53 4f 00 42 75 69 6c 64 20 56 79 4f 53 00 42 75 69 6c 64 20 66 72 6f 6d 20 73 6f 75 72 63 65 00 SO.Build.VyOS.Build.from.source.
3880 42 75 69 6c 64 69 6e 67 20 4f 75 74 2d 4f 66 2d 54 72 65 65 20 4d 6f 64 75 6c 65 73 00 42 75 69 Building.Out-Of-Tree.Modules.Bui
38a0 6c 64 69 6e 67 20 54 68 65 20 4b 65 72 6e 65 6c 00 42 75 69 6c 64 69 6e 67 20 56 79 4f 53 20 6f lding.The.Kernel.Building.VyOS.o
38c0 6e 20 57 69 6e 64 6f 77 73 20 57 53 4c 32 20 77 69 74 68 20 44 6f 63 6b 65 72 20 69 6e 74 65 67 n.Windows.WSL2.with.Docker.integ
38e0 72 61 74 65 64 20 69 6e 74 6f 20 57 53 4c 32 20 77 69 6c 6c 20 77 6f 72 6b 20 6c 69 6b 65 20 61 rated.into.WSL2.will.work.like.a
3900 20 63 68 61 72 6d 2e 20 4e 6f 20 70 72 6f 62 6c 65 6d 73 20 61 72 65 20 6b 6e 6f 77 6e 20 73 6f .charm..No.problems.are.known.so
3920 20 66 61 72 21 00 42 75 69 6c 64 69 6e 67 20 61 6e 20 49 53 4f 20 77 69 74 68 20 61 6e 79 20 63 .far!.Building.an.ISO.with.any.c
3940 75 73 74 6f 6d 69 7a 65 64 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 20 6e 6f 20 77 61 79 20 64 ustomized.package.is.in.no.way.d
3960 69 66 66 65 72 65 6e 74 20 74 68 61 6e 20 62 75 69 6c 64 69 6e 67 20 61 20 72 65 67 75 6c 61 72 ifferent.than.building.a.regular
3980 20 28 63 75 73 74 6f 6d 69 7a 65 64 20 6f 72 20 6e 6f 74 29 20 49 53 4f 20 69 6d 61 67 65 2e 20 .(customized.or.not).ISO.image..
39a0 53 69 6d 70 6c 79 20 70 6c 61 63 65 20 79 6f 75 72 20 6d 6f 64 69 66 69 65 64 20 60 2a 2e 64 65 Simply.place.your.modified.`*.de
39c0 62 60 20 70 61 63 6b 61 67 65 20 69 6e 73 69 64 65 20 74 68 65 20 60 70 61 63 6b 61 67 65 73 60 b`.package.inside.the.`packages`
39e0 20 66 6f 6c 64 65 72 20 77 69 74 68 69 6e 20 60 76 79 6f 73 2d 62 75 69 6c 64 60 2e 20 54 68 65 .folder.within.`vyos-build`..The
3a00 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 20 77 69 6c 6c 20 74 68 65 6e 20 70 69 63 6b 75 70 20 .build.process.will.then.pickup.
3a20 79 6f 75 72 20 63 75 73 74 6f 6d 20 70 61 63 6b 61 67 65 20 61 6e 64 20 69 6e 74 65 67 72 61 74 your.custom.package.and.integrat
3a40 65 20 69 74 20 69 6e 74 6f 20 79 6f 75 72 20 49 53 4f 2e 00 42 75 69 6c 64 69 6e 67 20 74 68 65 e.it.into.your.ISO..Building.the
3a60 20 6b 65 72 6e 65 6c 20 69 73 20 6f 6e 65 20 70 61 72 74 2c 20 62 75 74 20 6e 6f 77 20 79 6f 75 .kernel.is.one.part,.but.now.you
3a80 20 61 6c 73 6f 20 6e 65 65 64 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 72 65 71 75 69 72 65 64 .also.need.to.build.the.required
3aa0 20 6f 75 74 2d 6f 66 2d 74 72 65 65 20 6d 6f 64 75 6c 65 73 20 73 6f 20 65 76 65 72 79 74 68 69 .out-of-tree.modules.so.everythi
3ac0 6e 67 20 69 73 20 6c 69 6e 65 64 20 75 70 20 61 6e 64 20 74 68 65 20 41 42 49 73 20 6d 61 74 63 ng.is.lined.up.and.the.ABIs.matc
3ae0 68 2e 20 54 6f 20 64 6f 20 73 6f 2c 20 79 6f 75 20 63 61 6e 20 61 67 61 69 6e 20 74 61 6b 65 20 h..To.do.so,.you.can.again.take.
3b00 61 20 6c 6f 6f 6b 20 61 74 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f a.look.at.``vyos-build/packages/
3b20 6c 69 6e 75 78 2d 6b 65 72 6e 65 6c 2f 4a 65 6e 6b 69 6e 73 66 69 6c 65 60 60 20 74 6f 20 73 65 linux-kernel/Jenkinsfile``.to.se
3b40 65 20 61 6c 6c 20 6f 66 20 74 68 65 20 72 65 71 75 69 72 65 64 20 6d 6f 64 75 6c 65 73 20 61 6e e.all.of.the.required.modules.an
3b60 64 20 74 68 65 69 72 20 73 65 6c 65 63 74 65 64 20 76 65 72 73 69 6f 6e 73 2e 20 57 65 20 77 69 d.their.selected.versions..We.wi
3b80 6c 6c 20 73 68 6f 77 20 79 6f 75 20 68 6f 77 20 74 6f 20 62 75 69 6c 64 20 61 6c 6c 20 74 68 65 ll.show.you.how.to.build.all.the
3ba0 20 63 75 72 72 65 6e 74 20 72 65 71 75 69 72 65 64 20 6d 6f 64 75 6c 65 73 2e 00 42 75 69 6c 64 .current.required.modules..Build
3bc0 69 6e 67 20 74 68 65 20 6b 65 72 6e 65 6c 20 77 69 6c 6c 20 74 61 6b 65 20 73 6f 6d 65 20 74 69 ing.the.kernel.will.take.some.ti
3be0 6d 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 70 65 65 64 20 61 6e 64 20 71 75 me.depending.on.the.speed.and.qu
3c00 61 6e 74 69 74 79 20 6f 66 20 79 6f 75 72 20 43 50 55 2f 63 6f 72 65 73 20 61 6e 64 20 64 69 73 antity.of.your.CPU/cores.and.dis
3c20 6b 20 73 70 65 65 64 2e 20 45 78 70 65 63 74 20 32 30 20 6d 69 6e 75 74 65 73 20 28 6f 72 20 65 k.speed..Expect.20.minutes.(or.e
3c40 76 65 6e 20 6c 6f 6e 67 65 72 29 20 6f 6e 20 6c 6f 77 65 72 20 65 6e 64 20 68 61 72 64 77 61 72 ven.longer).on.lower.end.hardwar
3c60 65 2e 00 42 75 69 6c 64 69 6e 67 20 75 73 69 6e 67 20 61 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f e..Building.using.a.:ref:`build_
3c80 64 6f 63 6b 65 72 60 20 63 6f 6e 74 61 69 6e 65 72 2c 20 61 6c 74 68 6f 75 67 68 20 6e 6f 74 20 docker`.container,.although.not.
3ca0 74 68 65 20 6f 6e 6c 79 20 77 61 79 2c 20 69 73 20 74 68 65 20 65 61 73 69 65 73 74 20 77 61 79 the.only.way,.is.the.easiest.way
3cc0 20 61 73 20 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20 6d 61 6e 61 67 65 64 .as.all.dependencies.are.managed
3ce0 20 66 6f 72 20 79 6f 75 2e 20 48 6f 77 65 76 65 72 2c 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 .for.you..However,.you.can.also.
3d00 73 65 74 20 75 70 20 79 6f 75 72 20 6f 77 6e 20 62 75 69 6c 64 20 6d 61 63 68 69 6e 65 20 61 6e set.up.your.own.build.machine.an
3d20 64 20 72 75 6e 20 61 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 6e 61 74 69 76 65 60 2e 00 42 75 74 d.run.a.:ref:`build_native`..But
3d40 20 77 65 20 61 72 65 20 68 65 72 65 20 74 6f 20 61 73 73 69 73 74 20 79 6f 75 20 61 6e 64 20 77 .we.are.here.to.assist.you.and.w
3d60 61 6e 74 20 74 6f 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 68 6f 77 20 79 6f 75 ant.to.guide.you.through.how.you
3d80 20 63 61 6e 20 62 65 63 6f 6d 65 20 61 20 67 6f 6f 64 20 56 79 4f 53 20 63 6f 6e 74 72 69 62 75 .can.become.a.good.VyOS.contribu
3da0 74 6f 72 2e 20 54 68 65 20 72 75 6c 65 73 20 77 65 20 68 61 76 65 20 61 72 65 20 6e 6f 74 20 74 tor..The.rules.we.have.are.not.t
3dc0 68 65 72 65 20 74 6f 20 70 75 6e 69 73 68 20 79 6f 75 20 2d 20 74 68 65 20 72 75 6c 65 73 20 61 here.to.punish.you.-.the.rules.a
3de0 72 65 20 69 6e 20 70 6c 61 63 65 20 74 6f 20 68 65 6c 70 20 75 73 20 61 6c 6c 2e 20 57 68 61 74 re.in.place.to.help.us.all..What
3e00 20 64 6f 65 73 20 69 74 20 6d 65 61 6e 3f 20 42 79 20 68 61 76 69 6e 67 20 61 20 63 6f 6e 73 69 .does.it.mean?.By.having.a.consi
3e20 73 74 65 6e 74 20 63 6f 64 69 6e 67 20 73 74 79 6c 65 20 69 74 20 62 65 63 6f 6d 65 73 20 76 65 stent.coding.style.it.becomes.ve
3e40 72 79 20 65 61 73 79 20 66 6f 72 20 6e 65 77 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 61 6e 64 ry.easy.for.new.contributors.and
3e60 20 61 6c 73 6f 20 6c 6f 6e 67 74 69 6d 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 74 6f 20 6e .also.longtime.contributors.to.n
3e80 61 76 69 67 61 74 65 20 74 68 72 6f 75 67 68 20 74 68 65 20 73 6f 75 72 63 65 73 20 61 6e 64 20 avigate.through.the.sources.and.
3ea0 61 6c 6c 20 74 68 65 20 69 6d 70 6c 69 65 64 20 6c 6f 67 69 63 20 6f 66 20 74 68 65 20 73 70 61 all.the.implied.logic.of.the.spa
3ec0 67 68 65 74 74 69 20 63 6f 64 65 2e 00 43 2b 2b 20 42 61 63 6b 65 6e 64 20 43 6f 64 65 00 43 61 ghetti.code..C++.Backend.Code.Ca
3ee0 70 69 74 61 6c 69 7a 61 74 69 6f 6e 20 61 6e 64 20 70 75 6e 63 74 75 61 74 69 6f 6e 00 43 68 65 pitalization.and.punctuation.Che
3f00 63 6b 20 6f 75 74 20 74 68 65 20 72 65 71 75 69 72 65 64 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 ck.out.the.required.kernel.versi
3f20 6f 6e 20 2d 20 73 65 65 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 64 61 74 61 2f 64 65 66 61 75 on.-.see.``vyos-build/data/defau
3f40 6c 74 73 2e 6a 73 6f 6e 60 60 20 66 69 6c 65 20 28 65 78 61 6d 70 6c 65 20 75 73 65 73 20 6b 65 lts.json``.file.(example.uses.ke
3f60 72 6e 65 6c 20 34 2e 31 39 2e 31 34 36 29 3a 00 43 6c 6f 6e 65 20 74 68 65 20 6b 65 72 6e 65 6c rnel.4.19.146):.Clone.the.kernel
3f80 20 73 6f 75 72 63 65 20 74 6f 20 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f .source.to.`vyos-build/packages/
3fa0 6c 69 6e 75 78 2d 6b 65 72 6e 65 6c 2f 60 3a 00 43 6c 6f 6e 65 3a 20 60 60 67 69 74 20 63 6c 6f linux-kernel/`:.Clone:.``git.clo
3fc0 6e 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 3c 75 73 65 72 3e 2f 76 79 6f ne.https://github.com/<user>/vyo
3fe0 73 2d 31 78 2e 67 69 74 60 60 00 43 6f 64 69 6e 67 20 47 75 69 64 65 6c 69 6e 65 73 00 43 6f 6d s-1x.git``.Coding.Guidelines.Com
4000 6d 61 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 61 72 65 20 70 75 72 65 6c 79 20 64 65 63 6c mand.definitions.are.purely.decl
4020 61 72 61 74 69 76 65 2c 20 61 6e 64 20 63 61 6e 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 arative,.and.cannot.contain.any.
4040 6c 6f 67 69 63 2e 20 41 6c 6c 20 6c 6f 67 69 63 20 66 6f 72 20 67 65 6e 65 72 61 74 69 6e 67 20 logic..All.logic.for.generating.
4060 63 6f 6e 66 69 67 20 66 69 6c 65 73 20 66 6f 72 20 74 61 72 67 65 74 20 61 70 70 6c 69 63 61 74 config.files.for.target.applicat
4080 69 6f 6e 73 2c 20 72 65 73 74 61 72 74 69 6e 67 20 73 65 72 76 69 63 65 73 20 61 6e 64 20 73 6f ions,.restarting.services.and.so
40a0 20 6f 6e 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20 63 6f 6e 66 69 67 75 72 61 74 .on.is.implemented.in.configurat
40c0 69 6f 6e 20 73 63 72 69 70 74 73 20 69 6e 73 74 65 61 64 2e 00 43 6f 6d 6d 69 74 20 74 68 65 20 ion.scripts.instead..Commit.the.
40e0 63 68 61 6e 67 65 73 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 60 67 69 74 20 63 6f 6d 6d 69 74 60 changes.by.calling.``git.commit`
4100 60 2e 20 50 6c 65 61 73 65 20 75 73 65 20 61 20 6d 65 61 6e 69 6e 67 66 75 6c 20 63 6f 6d 6d 69 `..Please.use.a.meaningful.commi
4120 74 20 68 65 61 64 6c 69 6e 65 20 28 72 65 61 64 20 61 62 6f 76 65 29 20 61 6e 64 20 64 6f 6e 27 t.headline.(read.above).and.don'
4140 74 20 66 6f 72 67 65 74 20 74 6f 20 72 65 66 65 72 65 6e 63 65 20 74 68 65 20 50 68 61 62 72 69 t.forget.to.reference.the.Phabri
4160 63 61 74 6f 72 5f 20 49 44 2e 00 43 6f 6e 66 69 67 20 4c 6f 61 64 20 54 65 73 74 73 00 43 6f 6e cator_.ID..Config.Load.Tests.Con
4180 66 69 67 20 4d 69 67 72 61 74 69 6f 6e 20 53 63 72 69 70 74 73 00 43 6f 6e 66 69 67 75 72 61 74 fig.Migration.Scripts.Configurat
41a0 69 6f 6e 20 45 72 72 6f 72 20 6f 6e 20 53 79 73 74 65 6d 20 42 6f 6f 74 00 43 6f 6e 66 69 67 75 ion.Error.on.System.Boot.Configu
41c0 72 61 74 69 6f 6e 20 53 63 72 69 70 74 20 53 74 72 75 63 74 75 72 65 20 61 6e 64 20 42 65 68 61 ration.Script.Structure.and.Beha
41e0 76 69 6f 75 72 00 43 6f 6e 73 75 6c 74 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5f viour.Consult.the.documentation_
4200 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 63 6f 6e 66 69 67 75 .to.ensure.that.you.have.configu
4220 72 65 64 20 79 6f 75 72 20 73 79 73 74 65 6d 20 63 6f 72 72 65 63 74 6c 79 00 43 6f 6e 74 69 6e red.your.system.correctly.Contin
4240 75 6f 75 73 20 49 6e 74 65 67 72 61 74 69 6f 6e 00 43 75 73 74 6f 6d 69 7a 65 00 44 48 43 50 20 uous.Integration.Customize.DHCP.
4260 63 6c 69 65 6e 74 20 61 6e 64 20 44 48 43 50 76 36 20 70 72 65 66 69 78 20 64 65 6c 65 67 61 74 client.and.DHCPv6.prefix.delegat
4280 69 6f 6e 00 44 4d 56 50 4e 20 70 61 74 63 68 65 73 20 61 72 65 20 61 64 64 65 64 20 62 79 20 74 ion.DMVPN.patches.are.added.by.t
42a0 68 69 73 20 63 6f 6d 6d 69 74 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 his.commit:.https://github.com/v
42c0 79 6f 73 2f 76 79 6f 73 2d 73 74 72 6f 6e 67 73 77 61 6e 2f 63 6f 6d 6d 69 74 2f 31 63 66 31 32 yos/vyos-strongswan/commit/1cf12
42e0 62 30 66 32 66 39 32 31 62 66 63 35 31 61 66 66 61 33 62 38 31 32 32 36 00 44 65 62 69 61 6e 20 b0f2f921bfc51affa3b81226.Debian.
4300 41 50 54 20 69 73 20 6e 6f 74 20 76 65 72 79 20 76 65 72 62 6f 73 65 20 77 68 65 6e 20 69 74 20 APT.is.not.very.verbose.when.it.
4320 63 6f 6d 65 73 20 74 6f 20 65 72 72 6f 72 73 2e 20 49 66 20 79 6f 75 72 20 49 53 4f 20 62 75 69 comes.to.errors..If.your.ISO.bui
4340 6c 64 20 62 72 65 61 6b 73 20 66 6f 72 20 77 68 61 74 65 76 65 72 20 72 65 61 73 6f 6e 20 61 6e ld.breaks.for.whatever.reason.an
4360 64 20 79 6f 75 20 73 75 73 70 65 63 74 20 69 74 27 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 d.you.suspect.it's.a.problem.wit
4380 68 20 41 50 54 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 61 74 69 h.APT.dependencies.or.installati
43a0 6f 6e 20 79 6f 75 20 63 61 6e 20 61 64 64 20 74 68 69 73 20 73 6d 61 6c 6c 20 70 61 74 63 68 20 on.you.can.add.this.small.patch.
43c0 77 68 69 63 68 20 69 6e 63 72 65 61 73 65 73 20 74 68 65 20 41 50 54 20 76 65 72 62 6f 73 69 74 which.increases.the.APT.verbosit
43e0 79 20 64 75 72 69 6e 67 20 49 53 4f 20 62 75 69 6c 64 2e 00 44 65 62 69 61 6e 20 42 6f 6f 6b 77 y.during.ISO.build..Debian.Bookw
4400 6f 72 6d 20 66 6f 72 20 56 79 4f 53 20 31 2e 34 20 28 73 61 67 69 74 74 61 29 00 44 65 62 69 61 orm.for.VyOS.1.4.(sagitta).Debia
4420 6e 20 42 6f 6f 6b 77 6f 72 6d 20 66 6f 72 20 74 68 65 20 75 70 63 6f 6d 69 6e 67 20 56 79 4f 53 n.Bookworm.for.the.upcoming.VyOS
4440 20 31 2e 35 2f 63 69 72 63 69 6e 75 73 2f 63 75 72 72 65 6e 74 20 28 73 75 62 6a 65 63 74 20 74 .1.5/circinus/current.(subject.t
4460 6f 20 63 68 61 6e 67 65 29 20 2d 20 61 6b 61 20 74 68 65 20 72 6f 6c 6c 69 6e 67 20 72 65 6c 65 o.change).-.aka.the.rolling.rele
4480 61 73 65 00 44 65 62 69 61 6e 20 42 75 6c 6c 73 65 79 65 20 66 6f 72 20 56 79 4f 53 20 31 2e 34 ase.Debian.Bullseye.for.VyOS.1.4
44a0 20 28 73 61 67 69 74 74 61 29 00 44 65 62 69 61 6e 20 42 75 6c 6c 73 65 79 65 20 66 6f 72 20 56 .(sagitta).Debian.Bullseye.for.V
44c0 79 4f 53 20 31 2e 34 20 28 73 61 67 69 74 74 61 2c 20 63 75 72 72 65 6e 74 29 20 2d 20 61 6b 61 yOS.1.4.(sagitta,.current).-.aka
44e0 20 74 68 65 20 72 6f 6c 6c 69 6e 67 20 72 65 6c 65 61 73 65 00 44 65 62 69 61 6e 20 42 75 73 74 .the.rolling.release.Debian.Bust
4500 65 72 20 66 6f 72 20 56 79 4f 53 20 31 2e 33 20 28 65 71 75 75 6c 65 75 73 29 00 44 65 62 69 61 er.for.VyOS.1.3.(equuleus).Debia
4520 6e 20 4a 65 73 73 69 65 20 66 6f 72 20 56 79 4f 53 20 31 2e 32 20 28 63 72 75 78 29 00 44 65 62 n.Jessie.for.VyOS.1.2.(crux).Deb
4540 69 61 6e 20 64 6f 65 73 20 6b 65 65 70 20 74 68 65 69 72 20 70 61 63 6b 61 67 65 20 69 6e 20 67 ian.does.keep.their.package.in.g
4560 69 74 2c 20 62 75 74 20 69 74 27 73 20 75 70 73 74 72 65 61 6d 20 74 61 72 62 61 6c 6c 20 69 6d it,.but.it's.upstream.tarball.im
4580 70 6f 72 74 65 64 20 69 6e 74 6f 20 67 69 74 20 77 69 74 68 6f 75 74 20 69 74 73 20 6f 72 69 67 ported.into.git.without.its.orig
45a0 69 6e 61 6c 20 63 6f 6d 6d 69 74 20 68 69 73 74 6f 72 79 2e 20 54 6f 20 62 65 20 61 62 6c 65 20 inal.commit.history..To.be.able.
45c0 74 6f 20 6d 65 72 67 65 20 6e 65 77 20 74 61 67 73 20 69 6e 2c 20 77 65 20 6b 65 65 70 20 61 20 to.merge.new.tags.in,.we.keep.a.
45e0 66 6f 72 6b 20 6f 66 20 74 68 65 20 75 70 73 74 72 65 61 6d 20 72 65 70 6f 73 69 74 6f 72 79 20 fork.of.the.upstream.repository.
4600 77 69 74 68 20 70 61 63 6b 61 67 69 6e 67 20 66 69 6c 65 73 20 69 6d 70 6f 72 74 65 64 20 66 72 with.packaging.files.imported.fr
4620 6f 6d 20 44 65 62 69 61 6e 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f om.Debian.at.https://github.com/
4640 76 79 6f 73 2f 6b 65 65 70 61 6c 69 76 65 64 2d 75 70 73 74 72 65 61 6d 00 44 65 62 75 67 67 69 vyos/keepalived-upstream.Debuggi
4660 6e 67 00 44 65 62 75 67 67 69 6e 67 20 50 79 74 68 6f 6e 20 43 6f 64 65 20 77 69 74 68 20 50 44 ng.Debugging.Python.Code.with.PD
4680 42 00 44 65 73 63 72 69 70 74 69 6f 6e 00 44 65 74 65 72 6d 69 6e 69 6e 65 20 73 6f 75 72 63 65 B.Description.Determinine.source
46a0 20 70 61 63 6b 61 67 65 00 44 65 76 65 6c 6f 70 6d 65 6e 74 00 44 6f 20 6e 6f 74 20 61 64 64 20 .package.Development.Do.not.add.
46c0 61 6e 67 6c 65 20 62 72 61 63 6b 65 74 73 20 61 72 6f 75 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 angle.brackets.around.the.format
46e0 2c 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 61 75 74 6f 6d 61 74 69 ,.they.will.be.inserted.automati
4700 63 61 6c 6c 79 00 44 6f 63 6b 65 72 00 44 6f 63 6b 65 72 68 75 62 00 44 6f 69 6e 67 20 73 6f 20 cally.Docker.Dockerhub.Doing.so.
4720 67 72 61 6e 74 73 20 70 72 69 76 69 6c 65 67 65 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 grants.privileges.equivalent.to.
4740 74 68 65 20 60 60 72 6f 6f 74 60 60 20 75 73 65 72 21 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 the.``root``.user!.It.is.recomme
4760 6e 64 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 6e 6f 6e 2d 72 6f 6f 74 20 75 73 65 72 nded.to.remove.the.non-root.user
4780 20 66 72 6f 6d 20 74 68 65 20 60 60 64 6f 63 6b 65 72 60 60 20 67 72 6f 75 70 20 61 66 74 65 72 .from.the.``docker``.group.after
47a0 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20 56 79 4f 53 20 49 53 4f 2e 20 53 65 65 20 61 6c 73 6f .building.the.VyOS.ISO..See.also
47c0 20 60 44 6f 63 6b 65 72 20 61 73 20 6e 6f 6e 2d 72 6f 6f 74 60 5f 2e 00 44 75 65 20 74 6f 20 69 .`Docker.as.non-root`_..Due.to.i
47e0 73 73 75 65 73 20 69 6e 20 74 68 65 20 75 70 73 74 72 65 61 6d 20 76 65 72 73 69 6f 6e 20 74 68 ssues.in.the.upstream.version.th
4800 61 74 20 73 6f 6d 65 74 69 6d 65 73 20 73 65 74 20 69 6e 74 65 72 66 61 63 65 73 20 64 6f 77 6e at.sometimes.set.interfaces.down
4820 2c 20 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 69 73 20 75 73 65 64 2e 00 44 75 ,.a.modified.version.is.used..Du
4840 65 20 74 6f 20 74 68 65 20 75 70 64 61 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 44 6f 63 6b e.to.the.updated.version.of.Dock
4860 65 72 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 73 20 6d 61 79 20 62 er,.the.following.examples.may.b
4880 65 63 6f 6d 65 20 69 6e 76 61 6c 69 64 2e 00 44 75 72 69 6e 67 20 74 68 65 20 6d 69 67 72 61 74 ecome.invalid..During.the.migrat
48a0 69 6f 6e 20 61 6e 64 20 65 78 74 65 6e 73 69 76 65 20 72 65 77 72 69 74 65 20 6f 66 20 66 75 6e ion.and.extensive.rewrite.of.fun
48c0 63 74 69 6f 6e 61 6c 69 74 79 20 66 72 6f 6d 20 50 65 72 6c 20 69 6e 74 6f 20 50 79 74 68 6f 6e ctionality.from.Perl.into.Python
48e0 20 61 20 73 69 67 6e 69 66 69 63 61 6e 74 20 69 6e 63 72 65 61 73 65 20 69 6e 20 74 68 65 20 6f .a.significant.increase.in.the.o
4900 76 65 72 61 6c 6c 20 73 79 73 74 65 6d 20 62 6f 6f 74 74 69 6d 65 20 77 61 73 20 6e 6f 74 69 63 verall.system.boottime.was.notic
4920 65 64 2e 20 54 68 65 20 73 79 73 74 65 6d 20 62 6f 6f 74 20 74 69 6d 65 20 63 61 6e 20 62 65 20 ed..The.system.boot.time.can.be.
4940 61 6e 61 6c 79 73 65 64 20 61 6e 64 20 61 20 67 72 61 70 68 20 63 61 6e 20 62 65 20 67 65 6e 65 analysed.and.a.graph.can.be.gene
4960 72 61 74 65 64 20 69 6e 20 74 68 65 20 65 6e 64 20 77 68 69 63 68 20 73 68 6f 77 73 20 69 6e 20 rated.in.the.end.which.shows.in.
4980 64 65 74 61 69 6c 20 77 68 6f 20 63 61 6c 6c 65 64 20 77 68 6f 6d 20 64 75 72 69 6e 67 20 74 68 detail.who.called.whom.during.th
49a0 65 20 73 79 73 74 65 6d 20 73 74 61 72 74 75 70 20 70 68 61 73 65 2e 00 45 61 63 68 20 6d 6f 64 e.system.startup.phase..Each.mod
49c0 75 6c 65 20 69 73 20 62 75 69 6c 64 20 6f 6e 20 64 65 6d 61 6e 64 20 69 66 20 61 20 6e 65 77 20 ule.is.build.on.demand.if.a.new.
49e0 63 6f 6d 6d 69 74 20 6f 6e 20 74 68 65 20 62 72 61 6e 63 68 20 69 6e 20 71 75 65 73 74 69 6f 6e commit.on.the.branch.in.question
4a00 20 69 73 20 66 6f 75 6e 64 2e 20 41 66 74 65 72 20 61 20 73 75 63 63 65 73 73 66 75 6c 20 72 75 .is.found..After.a.successful.ru
4a20 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 44 65 62 69 61 6e 20 50 61 63 6b 61 67 65 28 73 n.the.resulting.Debian.Package(s
4a40 29 20 77 69 6c 6c 20 62 65 20 64 65 70 6c 6f 79 65 64 20 74 6f 20 6f 75 72 20 44 65 62 69 61 6e ).will.be.deployed.to.our.Debian
4a60 20 72 65 70 6f 73 69 74 6f 72 79 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 64 75 72 69 6e 67 .repository.which.is.used.during
4a80 20 62 75 69 6c 64 20 74 69 6d 65 2e 20 49 74 20 69 73 20 6c 6f 63 61 74 65 64 20 68 65 72 65 3a .build.time..It.is.located.here:
4aa0 20 68 74 74 70 3a 2f 2f 64 65 76 2e 70 61 63 6b 61 67 65 73 2e 76 79 6f 73 2e 6e 65 74 2f 72 65 .http://dev.packages.vyos.net/re
4ac0 70 6f 73 69 74 6f 72 69 65 73 2f 2e 00 45 61 63 68 20 6f 66 20 74 68 6f 73 65 20 6d 6f 64 75 6c positories/..Each.of.those.modul
4ae0 65 73 20 68 6f 6c 64 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 6f 6e 20 74 68 65 20 6b 65 72 es.holds.a.dependency.on.the.ker
4b00 6e 65 6c 20 76 65 72 73 69 6f 6e 20 61 6e 64 20 69 66 20 79 6f 75 20 61 72 65 20 6c 75 63 6b 79 nel.version.and.if.you.are.lucky
4b20 20 65 6e 6f 75 67 68 20 74 6f 20 72 65 63 65 69 76 65 20 61 6e 20 49 53 4f 20 62 75 69 6c 64 20 .enough.to.receive.an.ISO.build.
4b40 65 72 72 6f 72 20 77 68 69 63 68 20 73 6f 75 6e 64 73 20 6c 69 6b 65 3a 00 45 6e 61 62 6c 65 64 error.which.sounds.like:.Enabled
4b60 2f 44 69 73 61 62 6c 65 64 00 45 6e 73 75 72 65 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 69 73 20 /Disabled.Ensure.the.problem.is.
4b80 72 65 70 72 6f 64 75 63 69 62 6c 65 00 45 76 65 72 79 20 63 68 61 6e 67 65 20 73 65 74 20 6d 75 reproducible.Every.change.set.mu
4ba0 73 74 20 62 65 20 63 6f 6e 73 69 73 74 65 6e 74 20 28 73 65 6c 66 20 63 6f 6e 74 61 69 6e 69 6e st.be.consistent.(self.containin
4bc0 67 29 21 20 44 6f 20 6e 6f 74 20 66 69 78 20 6d 75 6c 74 69 70 6c 65 20 62 75 67 73 20 69 6e 20 g)!.Do.not.fix.multiple.bugs.in.
4be0 61 20 73 69 6e 67 6c 65 20 63 6f 6d 6d 69 74 2e 20 49 66 20 79 6f 75 20 61 6c 72 65 61 64 79 20 a.single.commit..If.you.already.
4c00 77 6f 72 6b 65 64 20 6f 6e 20 6d 75 6c 74 69 70 6c 65 20 66 69 78 65 73 20 69 6e 20 74 68 65 20 worked.on.multiple.fixes.in.the.
4c20 73 61 6d 65 20 66 69 6c 65 20 75 73 65 20 60 67 69 74 20 61 64 64 20 2d 2d 70 61 74 63 68 60 20 same.file.use.`git.add.--patch`.
4c40 74 6f 20 6f 6e 6c 79 20 61 64 64 20 74 68 65 20 70 61 72 74 73 20 72 65 6c 61 74 65 64 20 74 6f to.only.add.the.parts.related.to
4c60 20 74 68 65 20 6f 6e 65 20 69 73 73 75 65 20 69 6e 74 6f 20 79 6f 75 72 20 75 70 63 6f 6d 69 6e .the.one.issue.into.your.upcomin
4c80 67 20 63 6f 6d 6d 69 74 2e 00 45 78 61 6d 70 6c 65 3a 00 45 78 61 6d 70 6c 65 73 3a 00 45 78 63 g.commit..Example:.Examples:.Exc
4ca0 65 70 74 69 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 20 60 60 56 79 4f 53 45 72 72 6f 72 60 60 eptions,.including.``VyOSError``
4cc0 20 28 77 68 69 63 68 20 69 73 20 72 61 69 73 65 64 20 62 79 20 60 60 76 79 6f 73 2e 63 6f 6e 66 .(which.is.raised.by.``vyos.conf
4ce0 69 67 2e 43 6f 6e 66 69 67 60 60 20 6f 6e 20 69 6d 70 72 6f 70 65 72 20 63 6f 6e 66 69 67 20 6f ig.Config``.on.improper.config.o
4d00 70 65 72 61 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 74 72 79 69 6e 67 20 74 6f 20 75 73 65 perations,.such.as.trying.to.use
4d20 20 60 60 6c 69 73 74 5f 6e 6f 64 65 73 28 29 60 60 20 6f 6e 20 61 20 6e 6f 6e 2d 74 61 67 20 6e .``list_nodes()``.on.a.non-tag.n
4d40 6f 64 65 29 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 69 6c 65 6e 63 65 64 20 6f 72 20 63 ode).should.not.be.silenced.or.c
4d60 61 75 67 68 74 20 61 6e 64 20 72 65 2d 72 61 69 73 65 64 20 61 73 20 63 6f 6e 66 69 67 20 65 72 aught.and.re-raised.as.config.er
4d80 72 6f 72 2e 20 53 75 72 65 20 74 68 69 73 20 77 69 6c 6c 20 6e 6f 74 20 6c 6f 6f 6b 20 70 72 65 ror..Sure.this.will.not.look.pre
4da0 74 74 79 20 6f 6e 20 75 73 65 72 27 73 20 73 63 72 65 65 6e 2c 20 62 75 74 20 69 74 20 77 69 6c tty.on.user's.screen,.but.it.wil
4dc0 6c 20 6d 61 6b 65 20 77 61 79 20 62 65 74 74 65 72 20 62 75 67 20 72 65 70 6f 72 74 73 2c 20 61 l.make.way.better.bug.reports,.a
4de0 6e 64 20 68 65 6c 70 20 75 73 65 72 73 20 28 61 6e 64 20 6d 6f 73 74 20 56 79 4f 53 20 75 73 65 nd.help.users.(and.most.VyOS.use
4e00 72 73 20 61 72 65 20 49 54 20 70 72 6f 66 65 73 73 69 6f 6e 61 6c 73 29 20 64 6f 20 74 68 65 69 rs.are.IT.professionals).do.thei
4e20 72 20 6f 77 6e 20 64 65 62 75 67 67 69 6e 67 20 61 73 20 77 65 6c 6c 2e 00 45 78 70 6f 72 74 20 r.own.debugging.as.well..Export.
4e40 6c 61 73 74 20 63 6f 6d 6d 69 74 20 74 6f 20 70 61 74 63 68 20 66 69 6c 65 3a 20 60 60 67 69 74 last.commit.to.patch.file:.``git
4e60 20 66 6f 72 6d 61 74 2d 70 61 74 63 68 60 60 20 6f 72 20 65 78 70 6f 72 74 20 74 68 65 20 6c 61 .format-patch``.or.export.the.la
4e80 73 74 20 74 77 6f 20 63 6f 6d 6d 69 74 73 20 69 6e 74 6f 20 69 74 73 20 61 70 70 72 6f 70 72 69 st.two.commits.into.its.appropri
4ea0 61 74 65 20 70 61 74 63 68 20 66 69 6c 65 73 3a 20 60 60 67 69 74 20 66 6f 72 6d 61 74 2d 70 61 ate.patch.files:.``git.format-pa
4ec0 74 63 68 20 2d 32 60 60 00 45 78 74 65 72 6e 61 6c 20 61 72 69 74 68 6d 65 74 69 63 20 76 61 6c tch.-2``.External.arithmetic.val
4ee0 69 64 61 74 6f 72 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 69 66 20 74 68 65 72 65 27 73 20 64 idator.may.be.added.if.there's.d
4f00 65 6d 61 6e 64 2c 20 63 6f 6d 70 6c 65 78 20 76 61 6c 69 64 61 74 69 6f 6e 20 69 73 20 62 65 74 emand,.complex.validation.is.bet
4f20 74 65 72 20 6c 65 66 74 20 74 6f 20 63 6f 6d 6d 69 74 2d 74 69 6d 65 20 73 63 72 69 70 74 73 00 ter.left.to.commit-time.scripts.
4f40 46 52 52 00 46 65 61 74 75 72 65 20 52 65 71 75 65 73 74 00 46 69 72 6d 77 61 72 65 00 46 69 72 FRR.Feature.Request.Firmware.Fir
4f60 73 74 2c 20 63 6c 6f 6e 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 6e 64 20 63 68 st,.clone.the.source.code.and.ch
4f80 65 63 6b 20 6f 75 74 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 76 65 72 73 69 6f 6e 20 eck.out.the.appropriate.version.
4fa0 62 79 20 72 75 6e 6e 69 6e 67 3a 00 46 6f 6c 6c 6f 77 20 74 68 65 20 61 62 6f 76 65 20 73 74 65 by.running:.Follow.the.above.ste
4fc0 70 73 20 6f 6e 20 68 6f 77 20 74 6f 20 22 46 6f 72 6b 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f ps.on.how.to."Fork.repository.to
4fe0 20 73 75 62 6d 69 74 20 61 20 50 61 74 63 68 22 2e 20 49 6e 73 74 65 61 64 20 6f 66 20 75 70 6c .submit.a.Patch"..Instead.of.upl
5000 6f 61 64 69 6e 67 20 22 70 75 73 68 69 6e 67 22 20 79 6f 75 72 20 63 68 61 6e 67 65 73 20 74 6f oading."pushing".your.changes.to
5020 20 47 69 74 48 75 62 20 79 6f 75 20 63 61 6e 20 65 78 70 6f 72 74 20 74 68 65 20 70 61 74 63 68 .GitHub.you.can.export.the.patch
5040 65 73 2f 20 63 6f 6d 6d 69 74 73 20 61 6e 64 20 73 65 6e 64 20 69 74 20 74 6f 20 6d 61 69 6e 74 es/.commits.and.send.it.to.maint
5060 61 69 6e 65 72 73 40 76 79 6f 73 2e 6e 65 74 20 6f 72 20 61 74 74 61 63 68 20 69 74 20 64 69 72 ainers@vyos.net.or.attach.it.dir
5080 65 63 74 6c 79 20 74 6f 20 74 68 65 20 62 75 67 20 28 70 72 65 66 65 72 72 65 64 20 6f 76 65 72 ectly.to.the.bug.(preferred.over
50a0 20 65 6d 61 69 6c 29 00 46 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 6d 65 73 73 61 67 65 20 77 68 .email).Followed.by.a.message.wh
50c0 69 63 68 20 64 65 73 63 72 69 62 65 73 20 61 6c 6c 20 74 68 65 20 64 65 74 61 69 6c 73 20 6c 69 ich.describes.all.the.details.li
50e0 6b 65 3a 00 46 6f 72 20 65 61 63 68 20 66 65 61 74 75 72 65 2c 20 61 20 66 69 6c 65 20 63 61 6c ke:.For.each.feature,.a.file.cal
5100 6c 65 64 20 60 60 76 79 6f 73 2e 66 65 61 74 75 72 65 2e 64 65 62 75 67 60 60 20 63 61 6e 20 62 led.``vyos.feature.debug``.can.b
5120 65 20 63 72 65 61 74 65 64 20 74 6f 20 74 6f 67 67 6c 65 20 74 68 65 20 66 65 61 74 75 72 65 20 e.created.to.toggle.the.feature.
5140 6f 6e 2e 20 49 66 20 61 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 72 65 71 75 69 72 65 64 20 69 on..If.a.parameter.is.required.i
5160 74 20 63 61 6e 20 62 65 20 70 6c 61 63 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 66 69 6c 65 20 t.can.be.placed.inside.the.file.
5180 61 73 20 69 74 73 20 66 69 72 73 74 20 6c 69 6e 65 2e 00 46 6f 72 20 65 61 73 79 20 6f 72 69 65 as.its.first.line..For.easy.orie
51a0 6e 74 61 74 69 6f 6e 20 77 65 20 73 75 67 67 65 73 74 20 79 6f 75 20 74 61 6b 65 20 61 20 6c 6f ntation.we.suggest.you.take.a.lo
51c0 6f 6b 20 6f 6e 20 74 68 65 20 60 60 6e 74 70 2e 70 79 60 60 20 6f 72 20 60 60 69 6e 74 65 72 66 ok.on.the.``ntp.py``.or.``interf
51e0 61 63 65 73 2d 62 6f 6e 64 69 6e 67 2e 70 79 60 60 20 28 66 6f 72 20 74 61 67 20 6e 6f 64 65 73 aces-bonding.py``.(for.tag.nodes
5200 29 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e 20 42 6f 74 68 20 66 69 6c 65 73 20 63 61 6e ).implementation..Both.files.can
5220 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 76 79 6f 73 2d 31 78 5f 20 72 65 70 6f 73 69 .be.found.in.the.vyos-1x_.reposi
5240 74 6f 72 79 2e 00 46 6f 72 20 65 78 61 6d 70 6c 65 20 72 75 6e 6e 69 6e 67 2c 20 60 60 65 78 70 tory..For.example.running,.``exp
5260 6f 72 74 20 56 59 4f 53 5f 49 46 43 4f 4e 46 49 47 5f 44 45 42 55 47 3d 22 22 60 60 20 6f 6e 20 ort.VYOS_IFCONFIG_DEBUG=""``.on.
5280 79 6f 75 72 20 76 62 61 73 68 2c 20 77 69 6c 6c 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 65 your.vbash,.will.have.the.same.e
52a0 66 66 65 63 74 20 61 73 20 60 60 74 6f 75 63 68 20 2f 74 6d 70 2f 76 79 6f 73 2e 69 66 63 6f 6e ffect.as.``touch./tmp/vyos.ifcon
52c0 66 69 67 2e 64 65 62 75 67 60 60 2e 00 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 60 60 2f 74 6d 70 fig.debug``..For.example,.``/tmp
52e0 2f 76 79 6f 73 2e 69 66 63 6f 6e 66 69 67 2e 64 65 62 75 67 60 60 20 63 61 6e 20 62 65 20 63 72 /vyos.ifconfig.debug``.can.be.cr
5300 65 61 74 65 64 20 74 6f 20 65 6e 61 62 6c 65 20 69 6e 74 65 72 66 61 63 65 20 64 65 62 75 67 67 eated.to.enable.interface.debugg
5320 69 6e 67 2e 00 46 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 72 65 71 75 69 72 65 64 2c 20 ing..For.the.packages.required,.
5340 79 6f 75 20 63 61 6e 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 60 60 64 6f 63 6b 65 72 2f 44 6f you.can.refer.to.the.``docker/Do
5360 63 6b 65 72 66 69 6c 65 60 60 20 66 69 6c 65 20 69 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 ckerfile``.file.in.the.repositor
5380 79 5f 2e 20 54 68 65 20 60 60 2e 2f 62 75 69 6c 64 2d 76 79 6f 73 2d 69 6d 61 67 65 60 60 20 73 y_..The.``./build-vyos-image``.s
53a0 63 72 69 70 74 20 77 69 6c 6c 20 61 6c 73 6f 20 77 61 72 6e 20 79 6f 75 20 69 66 20 61 6e 79 20 cript.will.also.warn.you.if.any.
53c0 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20 6d 69 73 73 69 6e 67 2e 00 46 6f 72 6b 20 52 dependencies.are.missing..Fork.R
53e0 65 70 6f 73 69 74 6f 72 79 20 61 6e 64 20 73 75 62 6d 69 74 20 50 61 74 63 68 00 46 6f 72 6b 3a epository.and.submit.Patch.Fork:
5400 20 60 60 67 69 74 20 72 65 6d 6f 74 65 20 61 64 64 20 6d 79 66 6f 72 6b 20 68 74 74 70 73 3a 2f .``git.remote.add.myfork.https:/
5420 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 3c 75 73 65 72 3e 2f 76 79 6f 73 2d 31 78 2e 67 69 74 60 60 /github.com/<user>/vyos-1x.git``
5440 00 46 6f 72 6b 69 6e 67 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 61 6e 64 20 73 75 62 6d .Forking.the.repository.and.subm
5460 69 74 74 69 6e 67 20 61 20 47 69 74 48 75 62 20 70 75 6c 6c 2d 72 65 71 75 65 73 74 20 69 73 20 itting.a.GitHub.pull-request.is.
5480 74 68 65 20 70 72 65 66 65 72 72 65 64 20 77 61 79 20 6f 66 20 73 75 62 6d 69 74 74 69 6e 67 20 the.preferred.way.of.submitting.
54a0 79 6f 75 72 20 63 68 61 6e 67 65 73 20 74 6f 20 56 79 4f 53 2e 20 59 6f 75 20 63 61 6e 20 66 6f your.changes.to.VyOS..You.can.fo
54c0 72 6b 20 61 6e 79 20 56 79 4f 53 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 79 6f 75 72 20 76 rk.any.VyOS.repository.to.your.v
54e0 65 72 79 20 6f 77 6e 20 47 69 74 48 75 62 20 61 63 63 6f 75 6e 74 20 62 79 20 6a 75 73 74 20 61 ery.own.GitHub.account.by.just.a
5500 70 70 65 6e 64 69 6e 67 20 60 60 2f 66 6f 72 6b 60 60 20 74 6f 20 61 6e 79 20 72 65 70 6f 73 69 ppending.``/fork``.to.any.reposi
5520 74 6f 72 79 27 73 20 55 52 4c 20 6f 6e 20 47 69 74 48 75 62 2e 20 54 6f 20 65 2e 67 2e 20 66 6f tory's.URL.on.GitHub..To.e.g..fo
5540 72 6b 20 74 68 65 20 60 60 76 79 6f 73 2d 31 78 60 60 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 6f rk.the.``vyos-1x``.repository,.o
5560 70 65 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 55 52 4c 20 69 6e 20 79 6f 75 72 20 66 61 pen.the.following.URL.in.your.fa
5580 76 6f 75 72 69 74 65 20 62 72 6f 77 73 65 72 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e vourite.browser:.https://github.
55a0 63 6f 6d 2f 76 79 6f 73 2f 76 79 6f 73 2d 31 78 2f 66 6f 72 6b 00 46 6f 72 6d 61 74 74 69 6e 67 com/vyos/vyos-1x/fork.Formatting
55c0 00 47 4e 55 20 50 72 65 70 72 6f 63 65 73 73 6f 72 00 47 65 74 20 63 6f 6d 6d 75 6e 69 74 79 20 .GNU.Preprocessor.Get.community.
55e0 73 75 70 70 6f 72 74 20 76 69 61 20 53 6c 61 63 6b 5f 20 6f 72 20 6f 75 72 20 46 6f 72 75 6d 5f support.via.Slack_.or.our.Forum_
5600 00 47 6f 6f 64 20 6c 75 63 6b 21 00 47 6f 6f 64 3a 20 22 44 69 73 61 62 6c 65 20 49 50 76 36 20 .Good.luck!.Good:."Disable.IPv6.
5620 66 6f 72 77 61 72 64 69 6e 67 22 00 47 6f 6f 64 3a 20 22 46 72 6f 62 6e 69 63 61 74 69 6f 6e 20 forwarding".Good:."Frobnication.
5640 61 6c 67 6f 72 69 74 68 6d 22 00 47 6f 6f 64 3a 20 22 54 43 50 20 63 6f 6e 6e 65 63 74 69 6f 6e algorithm".Good:."TCP.connection
5660 20 74 69 6d 65 6f 75 74 22 00 47 6f 6f 64 3a 20 50 50 50 6f 45 2c 20 49 50 73 65 63 00 47 6f 6f .timeout".Good:.PPPoE,.IPsec.Goo
5680 64 3a 20 52 41 44 49 55 53 20 28 61 73 20 69 6e 20 72 65 6d 6f 74 65 20 61 75 74 68 65 6e 74 69 d:.RADIUS.(as.in.remote.authenti
56a0 63 61 74 69 6f 6e 20 66 6f 72 20 64 69 61 6c 2d 69 6e 20 75 73 65 72 20 73 65 72 76 69 63 65 73 cation.for.dial-in.user.services
56c0 29 00 47 75 69 64 65 6c 69 6e 65 73 00 48 65 6c 70 20 53 74 72 69 6e 67 00 48 65 6c 70 20 66 75 ).Guidelines.Help.String.Help.fu
56e0 74 75 72 65 20 6d 61 69 6e 74 61 69 6e 65 72 73 20 6f 66 20 56 79 4f 53 20 28 69 74 20 63 6f 75 ture.maintainers.of.VyOS.(it.cou
5700 6c 64 20 62 65 20 79 6f 75 21 29 20 74 6f 20 66 69 6e 64 20 6f 75 74 20 77 68 79 20 63 65 72 74 ld.be.you!).to.find.out.why.cert
5720 61 69 6e 20 74 68 69 6e 67 73 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 69 6e 20 ain.things.have.been.changed.in.
5740 74 68 65 20 63 6f 64 65 62 61 73 65 20 6f 72 20 77 68 79 20 63 65 72 74 61 69 6e 20 66 65 61 74 the.codebase.or.why.certain.feat
5760 75 72 65 73 20 68 61 76 65 20 62 65 65 6e 20 61 64 64 65 64 00 48 6f 72 72 69 62 6c 65 3a 20 22 ures.have.been.added.Horrible:."
5780 54 63 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 69 6d 65 6f 75 74 22 00 48 6f 72 72 69 62 6c 65 Tcp.connection.timeout".Horrible
57a0 3a 20 22 66 72 6f 62 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 2e 22 00 48 6f 77 20 :."frobnication.algorithm.".How.
57c0 63 61 6e 20 77 65 20 72 65 70 72 6f 64 75 63 65 20 74 68 69 73 20 42 75 67 3f 00 49 20 68 61 76 can.we.reproduce.this.Bug?.I.hav
57e0 65 20 66 6f 75 6e 64 20 61 20 62 75 67 2c 20 77 68 61 74 20 73 68 6f 75 6c 64 20 49 20 64 6f 3f e.found.a.bug,.what.should.I.do?
5800 00 49 50 20 61 6e 64 20 49 50 76 36 20 6f 70 74 69 6f 6e 73 00 49 53 4f 20 42 75 69 6c 64 20 49 .IP.and.IPv6.options.ISO.Build.I
5820 73 73 75 65 73 00 49 53 4f 20 69 6d 61 67 65 20 62 75 69 6c 64 00 49 66 20 61 20 76 65 72 62 20 ssues.ISO.image.build.If.a.verb.
5840 69 73 20 65 73 73 65 6e 74 69 61 6c 2c 20 6b 65 65 70 20 69 74 2e 20 46 6f 72 20 65 78 61 6d 70 is.essential,.keep.it..For.examp
5860 6c 65 2c 20 69 6e 20 74 68 65 20 68 65 6c 70 20 74 65 78 74 20 6f 66 20 60 60 73 65 74 20 73 79 le,.in.the.help.text.of.``set.sy
5880 73 74 65 6d 20 69 70 76 36 20 64 69 73 61 62 6c 65 2d 66 6f 72 77 61 72 64 69 6e 67 60 60 2c 20 stem.ipv6.disable-forwarding``,.
58a0 22 44 69 73 61 62 6c 65 20 49 50 76 36 20 66 6f 72 77 61 72 64 69 6e 67 20 6f 6e 20 61 6c 6c 20 "Disable.IPv6.forwarding.on.all.
58c0 69 6e 74 65 72 66 61 63 65 73 22 20 69 73 20 61 20 70 65 72 66 65 63 74 6c 79 20 6a 75 73 74 69 interfaces".is.a.perfectly.justi
58e0 66 69 65 64 20 77 6f 72 64 69 6e 67 2e 00 49 66 20 61 70 70 6c 69 63 61 62 6c 65 20 61 20 72 65 fied.wording..If.applicable.a.re
5900 66 65 72 65 6e 63 65 20 74 6f 20 61 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 69 74 20 73 68 6f ference.to.a.previous.commit.sho
5920 75 6c 64 20 62 65 20 6d 61 64 65 20 6c 69 6e 6b 69 6e 67 20 74 68 6f 73 65 20 63 6f 6d 6d 69 74 uld.be.made.linking.those.commit
5940 73 20 6e 69 63 65 6c 79 20 77 68 65 6e 20 62 72 6f 77 73 69 6e 67 20 74 68 65 20 68 69 73 74 6f s.nicely.when.browsing.the.histo
5960 72 79 3a 20 60 60 41 66 74 65 72 20 63 6f 6d 6d 69 74 20 61 62 63 64 31 32 65 66 20 28 22 73 6e ry:.``After.commit.abcd12ef.("sn
5980 6d 70 3a 20 74 68 69 73 20 69 73 20 61 20 68 65 61 64 6c 69 6e 65 22 29 20 61 20 50 79 74 68 6f mp:.this.is.a.headline").a.Pytho
59a0 6e 20 69 6d 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 6d 69 73 73 69 6e 67 2c 20 74 n.import.statement.is.missing,.t
59c0 68 72 6f 77 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 3a hrowing.the.following.exception:
59e0 20 41 42 43 44 45 46 60 60 00 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 50 68 61 62 72 69 63 .ABCDEF``.If.there.is.no.Phabric
5a00 61 74 6f 72 5f 20 72 65 66 65 72 65 6e 63 65 20 69 6e 20 74 68 65 20 63 6f 6d 6d 69 74 73 20 6f ator_.reference.in.the.commits.o
5a20 66 20 79 6f 75 72 20 70 75 6c 6c 20 72 65 71 75 65 73 74 2c 20 77 65 20 68 61 76 65 20 74 6f 20 f.your.pull.request,.we.have.to.
5a40 61 73 6b 20 79 6f 75 20 74 6f 20 61 6d 65 6e 64 20 74 68 65 20 63 6f 6d 6d 69 74 20 6d 65 73 73 ask.you.to.amend.the.commit.mess
5a60 61 67 65 2e 20 4f 74 68 65 72 77 69 73 65 20 77 65 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 72 age..Otherwise.we.will.have.to.r
5a80 65 6a 65 63 74 20 69 74 2e 00 49 66 20 79 6f 75 20 61 72 65 20 62 72 61 76 65 20 65 6e 6f 75 67 eject.it..If.you.are.brave.enoug
5aa0 68 20 74 6f 20 62 75 69 6c 64 20 79 6f 75 72 73 65 6c 66 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 h.to.build.yourself.an.ISO.image
5ac0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 67 65 .containing.any.modified.package
5ae0 20 66 72 6f 6d 20 6f 75 72 20 47 69 74 48 75 62 20 6f 72 67 61 6e 69 73 61 74 69 6f 6e 20 2d 20 .from.our.GitHub.organisation.-.
5b00 74 68 69 73 20 69 73 20 74 68 65 20 70 6c 61 63 65 20 74 6f 20 62 65 2e 00 49 66 20 79 6f 75 20 this.is.the.place.to.be..If.you.
5b20 75 70 67 72 61 64 65 20 79 6f 75 72 20 6b 65 72 6e 65 6c 20 6f 72 20 69 6e 63 6c 75 64 65 20 6e upgrade.your.kernel.or.include.n
5b40 65 77 20 64 72 69 76 65 72 73 20 79 6f 75 20 6d 61 79 20 6e 65 65 64 20 6e 65 77 20 66 69 72 6d ew.drivers.you.may.need.new.firm
5b60 77 61 72 65 2e 20 42 75 69 6c 64 20 61 20 6e 65 77 20 60 60 76 79 6f 73 2d 6c 69 6e 75 78 2d 66 ware..Build.a.new.``vyos-linux-f
5b80 69 72 6d 77 61 72 65 60 60 20 70 61 63 6b 61 67 65 20 77 69 74 68 20 74 68 65 20 69 6e 63 6c 75 irmware``.package.with.the.inclu
5ba0 64 65 64 20 68 65 6c 70 65 72 20 73 63 72 69 70 74 73 2e 00 49 6e 20 61 20 62 69 67 20 73 79 73 ded.helper.scripts..In.a.big.sys
5bc0 74 65 6d 2c 20 73 75 63 68 20 61 73 20 56 79 4f 53 2c 20 74 68 61 74 20 69 73 20 63 6f 6d 70 72 tem,.such.as.VyOS,.that.is.compr
5be0 69 73 65 64 20 6f 66 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 2c 20 69 74 27 ised.of.multiple.components,.it'
5c00 73 20 69 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 61 6c s.impossible.to.keep.track.of.al
5c20 6c 20 74 68 65 20 63 68 61 6e 67 65 73 20 61 6e 64 20 62 75 67 73 2f 66 65 61 74 75 72 65 20 72 l.the.changes.and.bugs/feature.r
5c40 65 71 75 65 73 74 73 20 69 6e 20 6f 6e 65 27 73 20 68 65 61 64 2e 20 57 65 20 75 73 65 20 61 20 equests.in.one's.head..We.use.a.
5c60 62 75 67 74 72 61 63 6b 65 72 20 6b 6e 6f 77 6e 20 61 73 20 50 68 61 62 72 69 63 61 74 6f 72 5f bugtracker.known.as.Phabricator_
5c80 20 66 6f 72 20 69 74 20 28 22 69 73 73 75 65 20 74 72 61 63 6b 65 72 22 20 77 6f 75 6c 64 20 62 .for.it.("issue.tracker".would.b
5ca0 65 20 61 20 62 65 74 74 65 72 20 74 65 72 6d 2c 20 62 75 74 20 74 68 69 73 20 6f 6e 65 20 73 74 e.a.better.term,.but.this.one.st
5cc0 75 63 6b 29 2e 00 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 68 69 73 20 61 6c 73 6f 20 68 65 6c 70 uck)..In.addition.this.also.help
5ce0 73 20 77 68 65 6e 20 62 72 6f 77 73 69 6e 67 20 74 68 65 20 47 69 74 48 75 62 20 63 6f 64 65 62 s.when.browsing.the.GitHub.codeb
5d00 61 73 65 20 6f 6e 20 61 20 6d 6f 62 69 6c 65 20 64 65 76 69 63 65 20 69 66 20 79 6f 75 20 68 61 ase.on.a.mobile.device.if.you.ha
5d20 70 70 65 6e 20 74 6f 20 62 65 20 61 20 63 72 61 7a 79 20 73 63 69 65 6e 74 69 73 74 2e 00 49 6e ppen.to.be.a.crazy.scientist..In
5d40 20 6f 72 64 65 72 20 74 6f 20 6f 70 65 6e 20 75 70 20 61 20 62 75 67 2d 72 65 70 6f 72 74 2f 66 .order.to.open.up.a.bug-report/f
5d60 65 61 74 75 72 65 20 72 65 71 75 65 73 74 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 eature.request.you.need.to.creat
5d80 65 20 79 6f 75 72 73 65 6c 66 20 61 6e 20 61 63 63 6f 75 6e 74 20 6f 6e 20 56 79 4f 53 20 50 68 e.yourself.an.account.on.VyOS.Ph
5da0 61 62 72 69 63 61 74 6f 72 5f 2e 20 4f 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20 6f 66 20 abricator_..On.the.left.side.of.
5dc0 74 68 65 20 73 70 65 63 69 66 69 63 20 70 72 6f 6a 65 63 74 20 28 56 79 4f 53 20 31 2e 32 20 6f the.specific.project.(VyOS.1.2.o
5de0 72 20 56 79 4f 53 20 31 2e 33 29 20 79 6f 75 20 77 69 6c 6c 20 66 69 6e 64 20 71 75 69 63 6b 2d r.VyOS.1.3).you.will.find.quick-
5e00 6c 69 6e 6b 73 20 66 6f 72 20 6f 70 65 6e 69 6e 67 20 61 20 62 75 67 2d 72 65 70 6f 72 74 2f 66 links.for.opening.a.bug-report/f
5e20 65 61 74 75 72 65 20 72 65 71 75 65 73 74 2e 00 49 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 6f eature.request..In.order.to.reco
5e40 72 64 20 79 6f 75 20 61 73 20 74 68 65 20 61 75 74 68 6f 72 20 6f 66 20 74 68 65 20 66 69 78 20 rd.you.as.the.author.of.the.fix.
5e60 70 6c 65 61 73 65 20 69 64 65 6e 74 69 66 79 20 79 6f 75 72 73 65 6c 66 20 74 6f 20 47 69 74 20 please.identify.yourself.to.Git.
5e80 62 79 20 73 65 74 74 69 6e 67 20 75 70 20 79 6f 75 72 20 6e 61 6d 65 20 61 6e 64 20 65 6d 61 69 by.setting.up.your.name.and.emai
5ea0 6c 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 6c 6f 63 61 6c 20 66 6f 72 20 74 68 l..This.can.be.done.local.for.th
5ec0 69 73 20 6f 6e 65 20 61 6e 64 20 6f 6e 6c 79 20 72 65 70 6f 73 69 74 6f 72 79 20 60 60 67 69 74 is.one.and.only.repository.``git
5ee0 20 63 6f 6e 66 69 67 60 60 20 6f 72 20 67 6c 6f 62 61 6c 6c 79 20 75 73 69 6e 67 20 60 60 67 69 .config``.or.globally.using.``gi
5f00 74 20 63 6f 6e 66 69 67 20 2d 2d 67 6c 6f 62 61 6c 60 60 2e 00 49 6e 20 6f 72 64 65 72 20 74 6f t.config.--global``..In.order.to
5f20 20 72 65 74 72 69 65 76 65 20 74 68 65 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 6f 6e 20 74 68 .retrieve.the.debug.output.on.th
5f40 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 64 69 73 61 62 e.command-line.you.need.to.disab
5f60 6c 65 20 60 60 76 79 6f 73 2d 63 6f 6e 66 69 67 64 60 60 20 69 6e 20 61 64 64 69 74 69 6f 6e 2e le.``vyos-configd``.in.addition.
5f80 20 54 68 69 73 20 63 61 6e 20 62 65 20 72 75 6e 20 65 69 74 68 65 72 20 6f 6e 65 2d 74 69 6d 65 .This.can.be.run.either.one-time
5fa0 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 60 73 75 64 6f 20 73 79 73 74 65 6d 63 74 6c 20 73 74 6f .by.calling.``sudo.systemctl.sto
5fc0 70 20 76 79 6f 73 2d 63 6f 6e 66 69 67 64 60 60 20 6f 72 20 6d 61 6b 65 20 74 68 69 73 20 72 65 p.vyos-configd``.or.make.this.re
5fe0 62 6f 6f 74 2d 73 61 66 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 60 73 75 64 6f 20 73 79 73 74 boot-safe.by.calling.``sudo.syst
6000 65 6d 63 74 6c 20 64 69 73 61 62 6c 65 20 76 79 6f 73 2d 63 6f 6e 66 69 67 64 60 60 2e 00 49 6e emctl.disable.vyos-configd``..In
6020 20 73 6f 6d 65 20 63 6f 6e 74 65 78 74 73 2c 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 69 .some.contexts,.the.first.line.i
6040 73 20 74 72 65 61 74 65 64 20 61 73 20 74 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20 61 6e 20 65 s.treated.as.the.subject.of.an.e
6060 6d 61 69 6c 20 61 6e 64 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 74 65 78 74 20 61 73 mail.and.the.rest.of.the.text.as
6080 20 74 68 65 20 62 6f 64 79 2e 20 54 68 65 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 73 65 70 61 72 61 .the.body..The.blank.line.separa
60a0 74 69 6e 67 20 74 68 65 20 73 75 6d 6d 61 72 79 20 66 72 6f 6d 20 74 68 65 20 62 6f 64 79 20 69 ting.the.summary.from.the.body.i
60c0 73 20 63 72 69 74 69 63 61 6c 20 28 75 6e 6c 65 73 73 20 79 6f 75 20 6f 6d 69 74 20 74 68 65 20 s.critical.(unless.you.omit.the.
60e0 62 6f 64 79 20 65 6e 74 69 72 65 6c 79 29 3b 20 74 6f 6f 6c 73 20 6c 69 6b 65 20 72 65 62 61 73 body.entirely);.tools.like.rebas
6100 65 20 63 61 6e 20 67 65 74 20 63 6f 6e 66 75 73 65 64 20 69 66 20 79 6f 75 20 72 75 6e 20 74 68 e.can.get.confused.if.you.run.th
6120 65 20 74 77 6f 20 74 6f 67 65 74 68 65 72 2e 00 49 6e 20 74 68 65 20 65 6e 64 20 79 6f 75 20 77 e.two.together..In.the.end.you.w
6140 69 6c 6c 20 62 65 20 70 72 65 73 65 6e 74 65 64 20 77 69 74 68 20 74 68 65 20 6b 65 72 6e 65 6c ill.be.presented.with.the.kernel
6160 20 62 69 6e 61 72 79 20 70 61 63 6b 61 67 65 73 20 77 68 69 63 68 20 79 6f 75 20 63 61 6e 20 74 .binary.packages.which.you.can.t
6180 68 65 6e 20 75 73 65 20 69 6e 20 79 6f 75 72 20 63 75 73 74 6f 6d 20 49 53 4f 20 62 75 69 6c 64 hen.use.in.your.custom.ISO.build
61a0 20 70 72 6f 63 65 73 73 2c 20 62 79 20 70 6c 61 63 69 6e 67 20 61 6c 6c 20 74 68 65 20 60 2a 2e .process,.by.placing.all.the.`*.
61c0 64 65 62 60 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 deb`.files.in.the.vyos-build/pac
61e0 6b 61 67 65 73 20 66 6f 6c 64 65 72 20 77 68 65 72 65 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 kages.folder.where.they.will.be.
6200 75 73 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 20 62 75 69 6c 64 69 6e 67 used.automatically.when.building
6220 20 56 79 4f 53 20 61 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 61 62 6f 76 65 2e 00 49 6e 20 74 68 .VyOS.as.documented.above..In.th
6240 65 20 66 75 74 75 72 65 2c 20 77 65 20 6d 61 79 20 73 77 69 74 63 68 20 74 6f 20 75 73 69 6e 67 e.future,.we.may.switch.to.using
6260 20 73 79 73 74 65 6d 64 20 69 6e 66 72 61 73 74 72 75 63 74 75 72 65 20 69 6e 73 74 65 61 64 2e .systemd.infrastructure.instead.
6280 20 42 75 69 6c 64 69 6e 67 20 69 74 20 64 6f 65 73 6e 27 74 20 72 65 71 75 69 72 65 20 61 20 73 .Building.it.doesn't.require.a.s
62a0 70 65 63 69 61 6c 20 70 72 6f 63 65 64 75 72 65 2e 00 49 6e 63 6c 75 64 65 20 6f 75 74 70 75 74 pecial.procedure..Include.output
62c0 00 49 6e 73 65 72 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 61 74 65 6d 65 6e 74 20 .Insert.the.following.statement.
62e0 72 69 67 68 74 20 62 65 66 6f 72 65 20 74 68 65 20 73 65 63 74 69 6f 6e 20 77 68 65 72 65 20 79 right.before.the.section.where.y
6300 6f 75 20 77 61 6e 74 20 74 6f 20 69 6e 76 65 73 74 69 67 61 74 65 20 61 20 70 72 6f 62 6c 65 6d ou.want.to.investigate.a.problem
6320 20 28 65 2e 67 2e 20 61 20 73 74 61 74 65 6d 65 6e 74 20 79 6f 75 20 73 65 65 20 69 6e 20 61 20 .(e.g..a.statement.you.see.in.a.
6340 62 61 63 6b 74 72 61 63 65 29 3a 20 60 60 69 6d 70 6f 72 74 20 70 64 62 3b 20 70 64 62 2e 73 65 backtrace):.``import.pdb;.pdb.se
6360 74 5f 74 72 61 63 65 28 29 60 60 20 4f 70 74 69 6f 6e 61 6c 6c 79 20 79 6f 75 20 63 61 6e 20 73 t_trace()``.Optionally.you.can.s
6380 75 72 72 6f 75 6e 64 65 64 20 74 68 69 73 20 73 74 61 74 65 6d 65 6e 74 20 62 79 20 61 6e 20 60 urrounded.this.statement.by.an.`
63a0 60 69 66 60 60 20 77 68 69 63 68 20 6f 6e 6c 79 20 74 72 69 67 67 65 72 73 20 75 6e 64 65 72 20 `if``.which.only.triggers.under.
63c0 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 79 6f 75 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 the.condition.you.are.interested
63e0 20 69 6e 2e 00 49 6e 73 74 61 6c 6c 00 49 6e 73 74 61 6c 6c 20 68 74 74 70 73 3a 2f 2f 70 79 70 .in..Install.Install.https://pyp
6400 69 2e 6f 72 67 2f 70 72 6f 6a 65 63 74 2f 73 74 64 65 62 2f 00 49 6e 73 74 61 6c 6c 69 6e 67 20 i.org/project/stdeb/.Installing.
6420 44 6f 63 6b 65 72 5f 20 61 6e 64 20 70 72 65 72 65 71 75 69 73 69 74 65 73 3a 00 49 6e 73 74 65 Docker_.and.prerequisites:.Inste
6440 61 64 20 6f 66 20 73 75 70 70 6c 79 69 6e 67 20 61 6c 6c 20 74 68 6f 73 65 20 58 4d 4c 20 6e 6f ad.of.supplying.all.those.XML.no
6460 64 65 73 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 20 74 68 65 72 65 20 61 72 65 20 6e 6f 77 des.multiple.times.there.are.now
6480 20 69 6e 63 6c 75 64 65 20 66 69 6c 65 73 20 77 69 74 68 20 70 72 65 64 65 66 69 6e 65 64 20 66 .include.files.with.predefined.f
64a0 65 61 74 75 72 65 73 2e 20 42 72 69 65 66 20 6f 76 65 72 76 69 65 77 3a 00 49 6e 74 65 6c 20 4e eatures..Brief.overview:.Intel.N
64c0 49 43 00 49 6e 74 65 6c 20 4e 49 43 20 64 72 69 76 65 72 73 00 49 6e 74 65 6c 20 51 41 54 00 49 IC.Intel.NIC.drivers.Intel.QAT.I
64e0 6e 74 65 72 20 51 41 54 00 49 6e 74 65 72 66 61 63 65 20 62 61 73 65 64 20 74 65 73 74 73 00 49 nter.QAT.Interface.based.tests.I
6500 73 73 75 65 73 20 6f 72 20 62 75 67 73 20 61 72 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 73 ssues.or.bugs.are.found.in.any.s
6520 6f 66 74 77 61 72 65 20 70 72 6f 6a 65 63 74 2e 20 56 79 4f 53 20 69 73 20 6e 6f 74 20 61 6e 20 oftware.project..VyOS.is.not.an.
6540 65 78 63 65 70 74 69 6f 6e 2e 00 49 73 73 75 65 73 2f 46 65 61 74 75 72 65 20 72 65 71 75 65 73 exception..Issues/Feature.reques
6560 74 73 00 49 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 73 65 74 20 75 70 ts.It.is.also.possible.to.set.up
6580 20 74 68 65 20 64 65 62 75 67 67 69 6e 67 20 75 73 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 .the.debugging.using.environment
65a0 20 76 61 72 69 61 62 6c 65 73 2e 20 49 6e 20 74 68 61 74 20 63 61 73 65 2c 20 74 68 65 20 6e 61 .variables..In.that.case,.the.na
65c0 6d 65 20 77 69 6c 6c 20 62 65 20 28 69 6e 20 75 70 70 65 72 63 61 73 65 29 20 56 59 4f 53 5f 46 me.will.be.(in.uppercase).VYOS_F
65e0 45 41 54 55 52 45 5f 44 45 42 55 47 2e 00 49 74 27 73 20 61 6e 20 41 64 61 20 70 72 6f 67 72 61 EATURE_DEBUG..It's.an.Ada.progra
6600 6d 20 61 6e 64 20 72 65 71 75 69 72 65 73 20 47 4e 41 54 20 61 6e 64 20 67 70 72 62 75 69 6c 64 m.and.requires.GNAT.and.gprbuild
6620 20 66 6f 72 20 62 75 69 6c 64 69 6e 67 2c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20 .for.building,.dependencies.are.
6640 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 73 6f 20 6a 75 73 74 20 66 6f 6c 6c 6f properly.specified.so.just.follo
6660 77 20 64 65 62 75 69 6c 64 27 73 20 73 75 67 67 65 73 74 69 6f 6e 73 2e 00 4a 65 6e 6b 69 6e 73 w.debuild's.suggestions..Jenkins
6680 20 43 49 00 4a 75 73 74 20 69 6e 73 74 61 6c 6c 20 75 73 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f .CI.Just.install.using.the.follo
66a0 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 00 4b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 74 68 65 wing.commands:.Keep.track.of.the
66c0 20 70 72 6f 67 72 65 73 73 20 28 77 68 61 74 20 77 65 27 76 65 20 61 6c 72 65 61 64 79 20 64 6f .progress.(what.we've.already.do
66e0 6e 65 20 69 6e 20 74 68 69 73 20 62 72 61 6e 63 68 20 61 6e 64 20 77 68 61 74 20 77 65 20 73 74 ne.in.this.branch.and.what.we.st
6700 69 6c 6c 20 6e 65 65 64 20 74 6f 20 64 6f 29 2e 00 4b 65 65 70 61 6c 69 76 65 64 20 6e 6f 72 6d ill.need.to.do)..Keepalived.norm
6720 61 6c 6c 79 20 69 73 6e 27 74 20 75 70 64 61 74 65 64 20 74 6f 20 6e 65 77 65 72 20 66 65 61 74 ally.isn't.updated.to.newer.feat
6740 75 72 65 20 72 65 6c 65 61 73 65 73 20 62 65 74 77 65 65 6e 20 44 65 62 69 61 6e 20 76 65 72 73 ure.releases.between.Debian.vers
6760 69 6f 6e 73 2c 20 73 6f 20 77 65 20 61 72 65 20 62 75 69 6c 64 69 6e 67 20 69 74 20 66 72 6f 6d ions,.so.we.are.building.it.from
6780 20 73 6f 75 72 63 65 2e 00 4b 65 72 6e 65 6c 00 4c 61 75 6e 63 68 20 44 6f 63 6b 65 72 20 63 6f .source..Kernel.Launch.Docker.co
67a0 6e 74 61 69 6e 65 72 20 61 6e 64 20 62 75 69 6c 64 20 70 61 63 6b 61 67 65 00 4c 65 61 66 20 6e ntainer.and.build.package.Leaf.n
67c0 6f 64 65 73 20 28 6e 6f 64 65 73 20 77 69 74 68 20 76 61 6c 75 65 73 29 20 75 73 65 20 3c 6c 65 odes.(nodes.with.values).use.<le
67e0 61 66 4e 6f 64 65 3e 20 74 61 67 20 69 6e 73 74 65 61 64 00 4c 65 74 20 75 73 20 61 73 73 75 6d afNode>.tag.instead.Let.us.assum
6800 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 65 62 75 67 20 61 20 50 79 74 68 6f 6e 20 73 63 72 e.you.want.to.debug.a.Python.scr
6820 69 70 74 20 74 68 61 74 20 69 73 20 63 61 6c 6c 65 64 20 62 79 20 61 6e 20 6f 70 2d 6d 6f 64 65 ipt.that.is.called.by.an.op-mode
6840 20 63 6f 6d 6d 61 6e 64 2e 20 41 66 74 65 72 20 79 6f 75 20 66 6f 75 6e 64 20 74 68 65 20 73 63 .command..After.you.found.the.sc
6860 72 69 70 74 20 62 79 20 6c 6f 6f 6b 69 6e 67 20 75 70 20 74 68 65 20 6f 70 2d 6d 6f 64 65 2d 64 ript.by.looking.up.the.op-mode-d
6880 65 66 69 74 69 6f 6e 73 20 79 6f 75 20 63 61 6e 20 65 64 69 74 20 74 68 65 20 73 63 72 69 70 74 efitions.you.can.edit.the.script
68a0 20 69 6e 20 74 68 65 20 6c 69 76 65 20 73 79 73 74 65 6d 20 75 73 69 6e 67 20 65 2e 67 2e 20 76 .in.the.live.system.using.e.g..v
68c0 69 3a 20 60 60 76 69 20 2f 75 73 72 2f 6c 69 62 65 78 65 63 2f 76 79 6f 73 2f 6f 70 5f 6d 6f 64 i:.``vi./usr/libexec/vyos/op_mod
68e0 65 2f 73 68 6f 77 5f 78 79 7a 2e 70 79 60 60 00 4c 65 74 27 73 20 66 61 63 65 20 69 74 3a 20 56 e/show_xyz.py``.Let's.face.it:.V
6900 79 4f 53 20 69 73 20 66 75 6c 6c 20 6f 66 20 73 70 61 67 68 65 74 74 69 20 63 6f 64 65 20 77 68 yOS.is.full.of.spaghetti.code.wh
6920 65 72 65 20 6c 6f 67 69 63 20 66 6f 72 20 72 65 61 64 69 6e 67 20 74 68 65 20 56 79 4f 53 20 63 ere.logic.for.reading.the.VyOS.c
6940 6f 6e 66 69 67 2c 20 67 65 6e 65 72 61 74 69 6e 67 20 64 61 65 6d 6f 6e 20 63 6f 6e 66 69 67 73 onfig,.generating.daemon.configs
6960 2c 20 61 6e 64 20 72 65 73 74 61 72 74 69 6e 67 20 70 72 6f 63 65 73 73 65 73 20 69 73 20 61 6c ,.and.restarting.processes.is.al
6980 6c 20 6d 69 78 65 64 20 75 70 2e 00 4c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 6a 65 l.mixed.up..Like.any.other.proje
69a0 63 74 20 77 65 20 68 61 76 65 20 73 6f 6d 65 20 73 6d 61 6c 6c 20 67 75 69 64 65 6c 69 6e 65 73 ct.we.have.some.small.guidelines
69c0 20 61 62 6f 75 74 20 6f 75 72 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 74 6f 6f 2e 20 54 68 65 .about.our.source.code,.too..The
69e0 20 72 75 6c 65 73 20 77 65 20 68 61 76 65 20 61 72 65 20 6e 6f 74 20 74 68 65 72 65 20 74 6f 20 .rules.we.have.are.not.there.to.
6a00 70 75 6e 69 73 68 20 79 6f 75 20 2d 20 74 68 65 20 72 75 6c 65 73 20 61 72 65 20 69 6e 20 70 6c punish.you.-.the.rules.are.in.pl
6a20 61 63 65 20 74 6f 20 68 65 6c 70 20 75 73 20 61 6c 6c 2e 20 42 79 20 68 61 76 69 6e 67 20 61 20 ace.to.help.us.all..By.having.a.
6a40 63 6f 6e 73 69 73 74 65 6e 74 20 63 6f 64 69 6e 67 20 73 74 79 6c 65 20 69 74 20 62 65 63 6f 6d consistent.coding.style.it.becom
6a60 65 73 20 76 65 72 79 20 65 61 73 79 20 66 6f 72 20 6e 65 77 20 61 6e 64 20 61 6c 73 6f 20 6c 6f es.very.easy.for.new.and.also.lo
6a80 6e 67 74 69 6d 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 74 6f 20 6e 61 76 69 67 61 74 65 20 ngtime.contributors.to.navigate.
6aa0 74 68 72 6f 75 67 68 20 74 68 65 20 73 6f 75 72 63 65 73 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 through.the.sources.and.all.the.
6ac0 69 6d 70 6c 69 65 64 20 6c 6f 67 69 63 20 6f 66 20 61 6e 79 20 6f 6e 65 20 73 6f 75 72 63 65 20 implied.logic.of.any.one.source.
6ae0 66 69 6c 65 2e 2e 00 4c 69 6d 69 74 73 3a 00 4c 69 6e 75 78 20 4b 65 72 6e 65 6c 00 4c 69 76 65 file...Limits:.Linux.Kernel.Live
6b00 20 53 79 73 74 65 6d 00 4d 54 55 20 73 69 7a 65 00 4d 61 6b 65 20 79 6f 75 72 20 63 68 61 6e 67 .System.MTU.size.Make.your.chang
6b20 65 73 20 61 6e 64 20 73 61 76 65 20 74 68 65 6d 2e 20 44 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 es.and.save.them..Do.the.followi
6b40 6e 67 20 66 6f 72 20 61 6c 6c 20 63 68 61 6e 67 65 73 20 66 69 6c 65 73 20 74 6f 20 72 65 63 6f ng.for.all.changes.files.to.reco
6b60 72 64 20 74 68 65 6d 20 69 6e 20 79 6f 75 72 20 63 72 65 61 74 65 64 20 47 69 74 20 63 6f 6d 6d rd.them.in.your.created.Git.comm
6b80 69 74 3a 00 4d 61 6e 75 61 6c 20 53 6d 6f 6b 65 74 65 73 74 20 52 75 6e 00 4d 61 6e 75 61 6c 20 it:.Manual.Smoketest.Run.Manual.
6ba0 63 6f 6e 66 69 67 20 6c 6f 61 64 20 74 65 73 74 00 4d 61 6e 79 20 62 61 73 65 20 73 79 73 74 65 config.load.test.Many.base.syste
6bc0 6d 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 70 75 6c 6c 65 64 20 73 74 72 61 69 67 68 74 20 66 m.packages.are.pulled.straight.f
6be0 72 6f 6d 20 44 65 62 69 61 6e 27 73 20 6d 61 69 6e 20 61 6e 64 20 63 6f 6e 74 72 69 62 20 72 65 rom.Debian's.main.and.contrib.re
6c00 70 6f 73 69 74 6f 72 69 65 73 2c 20 62 75 74 20 74 68 65 72 65 20 61 72 65 20 65 78 63 65 70 74 positories,.but.there.are.except
6c20 69 6f 6e 73 2e 00 4d 69 67 72 61 74 69 6e 67 20 6f 6c 64 20 43 4c 49 00 4d 6f 76 65 20 64 65 66 ions..Migrating.old.CLI.Move.def
6c40 61 75 6c 74 20 76 61 6c 75 65 73 20 74 6f 20 73 63 72 69 70 74 73 00 4e 61 74 69 76 65 20 42 75 ault.values.to.scripts.Native.Bu
6c60 69 6c 64 00 4e 65 77 20 73 79 6e 74 61 78 00 4e 6f 20 63 6f 64 65 20 69 6e 63 6f 6d 70 61 74 69 ild.New.syntax.No.code.incompati
6c80 62 6c 65 20 77 69 74 68 20 50 79 74 68 6f 6e 33 00 4e 6f 20 6e 65 77 20 66 65 61 74 75 72 65 73 ble.with.Python3.No.new.features
6ca0 20 69 6e 20 50 65 72 6c 00 4e 6f 20 6f 6c 64 20 73 74 79 6c 65 20 63 6f 6d 6d 61 6e 64 20 64 65 .in.Perl.No.old.style.command.de
6cc0 66 69 6e 69 74 69 6f 6e 73 00 4e 6f 20 73 70 65 63 69 61 6c 20 62 75 69 6c 64 20 70 72 6f 63 65 finitions.No.special.build.proce
6ce0 64 75 72 65 20 69 73 20 72 65 71 75 69 72 65 64 2e 00 4e 6f 6e 65 00 4e 6f 74 65 73 00 4e 6f 77 dure.is.required..None.Notes.Now
6d00 20 61 20 66 72 65 73 68 20 62 75 69 6c 64 20 6f 66 20 74 68 65 20 56 79 4f 53 20 49 53 4f 20 63 .a.fresh.build.of.the.VyOS.ISO.c
6d20 61 6e 20 62 65 67 69 6e 2e 20 43 68 61 6e 67 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 74 68 an.begin..Change.directory.to.th
6d40 65 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 60 60 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 72 e.``vyos-build``.directory.and.r
6d60 75 6e 3a 00 4e 6f 77 20 61 73 20 79 6f 75 20 61 72 65 20 61 77 61 72 65 20 6f 66 20 74 68 65 20 un:.Now.as.you.are.aware.of.the.
6d80 70 72 65 72 65 71 75 69 73 69 74 65 73 20 77 65 20 63 61 6e 20 63 6f 6e 74 69 6e 75 65 20 61 6e prerequisites.we.can.continue.an
6da0 64 20 62 75 69 6c 64 20 6f 75 72 20 6f 77 6e 20 49 53 4f 20 66 72 6f 6d 20 73 6f 75 72 63 65 2e d.build.our.own.ISO.from.source.
6dc0 20 46 6f 72 20 74 68 69 73 20 77 65 20 68 61 76 65 20 74 6f 20 66 65 74 63 68 20 74 68 65 20 6c .For.this.we.have.to.fetch.the.l
6de0 61 74 65 73 74 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 72 6f 6d 20 47 69 74 48 75 62 2e 20 50 atest.source.code.from.GitHub..P
6e00 6c 65 61 73 65 20 6e 6f 74 65 20 61 73 20 74 68 69 73 20 77 69 6c 6c 20 64 69 66 66 65 72 20 66 lease.note.as.this.will.differ.f
6e20 6f 72 20 62 6f 74 68 20 60 63 75 72 72 65 6e 74 60 20 61 6e 64 20 60 63 72 75 78 60 2e 00 4e 6f or.both.`current`.and.`crux`..No
6e40 77 20 69 74 27 73 20 74 69 6d 65 20 74 6f 20 66 69 78 20 74 68 65 20 70 61 63 6b 61 67 65 20 6d w.it's.time.to.fix.the.package.m
6e60 69 72 72 6f 72 20 61 6e 64 20 72 65 72 75 6e 20 74 68 65 20 6c 61 73 74 20 73 74 65 70 20 75 6e irror.and.rerun.the.last.step.un
6e80 74 69 6c 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 73 75 63 til.the.package.installation.suc
6ea0 63 65 65 64 73 20 61 67 61 69 6e 21 00 4e 6f 77 20 77 65 20 63 61 6e 20 75 73 65 20 74 68 65 20 ceeds.again!.Now.we.can.use.the.
6ec0 68 65 6c 70 65 72 20 73 63 72 69 70 74 20 60 60 62 75 69 6c 64 2d 6b 65 72 6e 65 6c 2e 73 68 60 helper.script.``build-kernel.sh`
6ee0 60 20 77 68 69 63 68 20 64 6f 65 73 20 61 6c 6c 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 76 `.which.does.all.the.necessary.v
6f00 6f 6f 64 6f 6f 20 62 79 20 61 70 70 6c 79 69 6e 67 20 72 65 71 75 69 72 65 64 20 70 61 74 63 68 oodoo.by.applying.required.patch
6f20 65 73 20 66 72 6f 6d 20 74 68 65 20 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 es.from.the.`vyos-build/packages
6f40 2f 6c 69 6e 75 78 2d 6b 65 72 6e 65 6c 2f 70 61 74 63 68 65 73 60 20 66 6f 6c 64 65 72 2c 20 63 /linux-kernel/patches`.folder,.c
6f60 6f 70 79 69 6e 67 20 6f 75 72 20 6b 65 72 6e 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 opying.our.kernel.configuration.
6f80 60 60 78 38 36 5f 36 34 5f 76 79 6f 73 5f 64 65 66 63 6f 6e 66 69 67 60 60 20 74 6f 20 74 68 65 ``x86_64_vyos_defconfig``.to.the
6fa0 20 72 69 67 68 74 20 6c 6f 63 61 74 69 6f 6e 2c 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 62 75 69 .right.location,.and.finally.bui
6fc0 6c 64 69 6e 67 20 74 68 65 20 44 65 62 69 61 6e 20 70 61 63 6b 61 67 65 73 2e 00 4e 6f 77 20 79 lding.the.Debian.packages..Now.y
6fe0 6f 75 20 61 72 65 20 70 72 65 70 61 72 65 64 20 77 69 74 68 20 74 77 6f 20 6e 65 77 20 61 6c 69 ou.are.prepared.with.two.new.ali
7000 61 73 65 73 20 60 60 76 79 62 6c 64 60 60 20 61 6e 64 20 60 60 76 79 62 6c 64 5f 63 72 75 78 60 ases.``vybld``.and.``vybld_crux`
7020 60 20 74 6f 20 73 70 61 77 6e 20 79 6f 75 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63 6f 6e 74 `.to.spawn.your.development.cont
7040 61 69 6e 65 72 73 20 69 6e 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 77 6f 72 6b 69 6e 67 20 64 ainers.in.your.current.working.d
7060 69 72 65 63 74 6f 72 79 2e 00 4f 6c 64 20 63 6f 6e 63 65 70 74 2f 73 79 6e 74 61 78 00 4f 6e 20 irectory..Old.concept/syntax.On.
7080 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 20 2d 20 61 73 20 65 61 63 68 20 74 65 73 74 20 69 73 the.other.hand.-.as.each.test.is
70a0 20 63 6f 6e 74 61 69 6e 20 69 6e 20 69 74 73 20 6f 77 6e 20 66 69 6c 65 20 2d 20 6f 6e 65 20 63 .contain.in.its.own.file.-.one.c
70c0 61 6e 20 61 6c 77 61 79 73 20 65 78 65 63 75 74 65 20 61 20 73 69 6e 67 6c 65 20 53 6d 6f 6b 65 an.always.execute.a.single.Smoke
70e0 74 65 73 74 20 62 79 20 68 61 6e 64 20 62 79 20 73 69 6d 70 6c 79 20 72 75 6e 6e 69 6e 67 20 74 test.by.hand.by.simply.running.t
7100 68 65 20 50 79 74 68 6f 6e 20 74 65 73 74 20 73 63 72 69 70 74 73 2e 00 4f 6e 63 65 20 79 6f 75 he.Python.test.scripts..Once.you
7120 20 68 61 76 65 20 74 68 65 20 72 65 71 75 69 72 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 .have.the.required.dependencies.
7140 69 6e 73 74 61 6c 6c 65 64 2c 20 79 6f 75 20 6d 61 79 20 70 72 6f 63 65 65 64 20 77 69 74 68 20 installed,.you.may.proceed.with.
7160 74 68 65 20 73 74 65 70 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 3a 72 65 66 3a 60 62 75 69 the.steps.described.in.:ref:`bui
7180 6c 64 5f 69 73 6f 60 2e 00 4f 6e 63 65 20 79 6f 75 20 72 75 6e 20 60 60 73 68 6f 77 20 78 79 7a ld_iso`..Once.you.run.``show.xyz
71a0 60 60 20 61 6e 64 20 79 6f 75 72 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 74 72 69 67 67 65 72 ``.and.your.condition.is.trigger
71c0 65 64 20 79 6f 75 20 73 68 6f 75 6c 64 20 62 65 20 64 72 6f 70 70 65 64 20 69 6e 74 6f 20 74 68 ed.you.should.be.dropped.into.th
71e0 65 20 70 79 74 68 6f 6e 20 64 65 62 75 67 67 65 72 3a 00 4f 6e 65 20 69 73 20 6e 6f 74 20 62 6f e.python.debugger:.One.is.not.bo
7200 75 6e 64 20 74 6f 20 6c 6f 61 64 20 61 6c 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 6f und.to.load.all.configurations.o
7220 6e 65 20 61 66 74 65 72 20 61 6e 6f 74 68 65 72 20 62 75 74 20 63 61 6e 20 61 6c 73 6f 20 6c 6f ne.after.another.but.can.also.lo
7240 61 64 20 69 6e 64 69 76 69 64 75 61 6c 20 74 65 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e ad.individual.test.configuration
7260 73 20 6f 6e 20 68 69 73 20 6f 77 6e 2e 00 4f 6e 65 20 6f 66 20 74 68 65 20 6d 61 6a 6f 72 20 61 s.on.his.own..One.of.the.major.a
7280 64 76 61 6e 74 61 67 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 56 79 4f 53 20 31 2e 33 dvantages.introduced.in.VyOS.1.3
72a0 20 69 73 20 61 6e 20 61 75 74 6d 61 74 65 64 20 74 65 73 74 20 66 72 61 6d 65 77 6f 72 6b 2e 20 .is.an.autmated.test.framework..
72c0 57 68 65 6e 20 61 73 73 65 6d 62 6c 69 6e 67 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 6d 75 6c When.assembling.an.ISO.image.mul
72e0 74 69 70 6c 65 20 74 68 69 6e 67 73 20 63 61 6e 20 67 6f 20 77 72 6f 6e 67 20 62 61 64 6c 79 20 tiple.things.can.go.wrong.badly.
7300 61 6e 64 20 70 75 62 6c 69 73 68 69 6e 67 20 61 20 66 61 75 6c 74 79 20 49 53 4f 20 6d 61 6b 65 and.publishing.a.faulty.ISO.make
7320 73 20 6e 6f 20 73 65 6e 73 65 2e 20 54 68 65 20 75 73 65 72 20 69 73 20 64 69 73 61 70 70 6f 69 s.no.sense..The.user.is.disappoi
7340 6e 74 65 64 20 62 79 20 74 68 65 20 71 75 61 6c 69 74 79 20 6f 66 20 74 68 65 20 69 6d 61 67 65 nted.by.the.quality.of.the.image
7360 20 61 6e 64 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 20 67 65 74 20 66 6c 6f 64 64 65 64 20 .and.the.developers.get.flodded.
7380 77 69 74 68 20 62 75 67 20 72 65 70 6f 72 74 73 20 6f 76 65 72 20 61 6e 64 20 6f 76 65 72 20 61 with.bug.reports.over.and.over.a
73a0 67 61 69 6e 2e 00 4f 6e 65 20 6f 66 20 74 68 65 20 6d 61 6a 6f 72 20 61 64 76 61 6e 74 61 67 65 gain..One.of.the.major.advantage
73c0 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 56 79 4f 53 20 31 2e 33 20 69 73 20 61 6e 20 61 s.introduced.in.VyOS.1.3.is.an.a
73e0 75 74 6f 6d 61 74 65 64 20 74 65 73 74 20 66 72 61 6d 65 77 6f 72 6b 2e 20 57 68 65 6e 20 61 73 utomated.test.framework..When.as
7400 73 65 6d 62 6c 69 6e 67 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 6d 75 6c 74 69 70 6c 65 20 74 sembling.an.ISO.image.multiple.t
7420 68 69 6e 67 73 20 63 61 6e 20 67 6f 20 77 72 6f 6e 67 20 62 61 64 6c 79 20 61 6e 64 20 70 75 62 hings.can.go.wrong.badly.and.pub
7440 6c 69 73 68 69 6e 67 20 61 20 66 61 75 6c 74 79 20 49 53 4f 20 6d 61 6b 65 73 20 6e 6f 20 73 65 lishing.a.faulty.ISO.makes.no.se
7460 6e 73 65 2e 20 54 68 65 20 75 73 65 72 20 69 73 20 64 69 73 61 70 70 6f 69 6e 74 65 64 20 62 79 nse..The.user.is.disappointed.by
7480 20 74 68 65 20 71 75 61 6c 69 74 79 20 6f 66 20 74 68 65 20 69 6d 61 67 65 20 61 6e 64 20 74 68 .the.quality.of.the.image.and.th
74a0 65 20 64 65 76 65 6c 6f 70 65 72 73 20 67 65 74 20 66 6c 6f 64 64 65 64 20 77 69 74 68 20 62 75 e.developers.get.flodded.with.bu
74c0 67 20 72 65 70 6f 72 74 73 20 6f 76 65 72 20 61 6e 64 20 6f 76 65 72 20 61 67 61 69 6e 2e 00 4f g.reports.over.and.over.again..O
74e0 6e 6c 79 20 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 6c 65 61 66 20 6e 6f 64 65 73 00 4f 74 68 nly.applicable.to.leaf.nodes.Oth
7500 65 72 20 70 61 63 6b 61 67 65 73 20 28 65 2e 67 2e 20 76 79 6f 73 2d 31 78 29 20 61 64 64 20 64 er.packages.(e.g..vyos-1x).add.d
7520 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 20 49 53 4f 20 62 75 69 6c 64 20 70 72 6f ependencies.to.the.ISO.build.pro
7540 63 65 64 75 72 65 20 6f 6e 20 65 2e 67 2e 20 74 68 65 20 77 69 72 65 67 75 61 72 64 2d 6d 6f 64 cedure.on.e.g..the.wireguard-mod
7560 75 6c 65 73 20 70 61 63 6b 61 67 65 20 77 68 69 63 68 20 69 74 73 65 6c 66 20 61 64 64 73 20 61 ules.package.which.itself.adds.a
7580 20 64 65 70 65 6e 64 65 6e 63 79 20 6f 6e 20 74 68 65 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 6f .dependency.on.the.kernel.versio
75a0 6e 20 75 73 65 64 20 64 75 65 20 74 6f 20 74 68 65 20 6d 6f 64 75 6c 65 20 69 74 20 73 68 69 70 n.used.due.to.the.module.it.ship
75c0 73 2e 20 54 68 69 73 20 6d 61 79 20 63 68 61 6e 67 65 20 28 66 6f 72 20 57 69 72 65 47 75 61 72 s..This.may.change.(for.WireGuar
75e0 64 29 20 69 6e 20 66 75 74 75 72 65 20 6b 65 72 6e 65 6c 20 72 65 6c 65 61 73 65 73 20 62 75 74 d).in.future.kernel.releases.but
7600 20 61 73 20 6c 6f 6e 67 20 61 73 20 77 65 20 68 61 76 65 20 6f 75 74 2d 6f 66 2d 74 72 65 65 20 .as.long.as.we.have.out-of-tree.
7620 6d 6f 64 75 6c 65 73 2e 00 4f 75 72 20 53 74 72 6f 6e 67 53 57 41 4e 20 62 75 69 6c 64 20 64 69 modules..Our.StrongSWAN.build.di
7640 66 66 65 72 73 20 66 72 6f 6d 20 74 68 65 20 75 70 73 74 72 65 61 6d 3a 00 4f 75 72 20 60 56 79 ffers.from.the.upstream:.Our.`Vy
7660 4f 53 20 43 49 60 5f 20 73 79 73 74 65 6d 20 69 73 20 62 61 73 65 64 20 6f 6e 20 4a 65 6e 6b 69 OS.CI`_.system.is.based.on.Jenki
7680 6e 73 20 61 6e 64 20 62 75 69 6c 64 73 20 61 6c 6c 20 6f 75 72 20 72 65 71 75 69 72 65 64 20 70 ns.and.builds.all.our.required.p
76a0 61 63 6b 61 67 65 73 20 66 6f 72 20 56 79 4f 53 20 31 2e 32 20 74 6f 20 31 2e 34 2e 20 49 6e 20 ackages.for.VyOS.1.2.to.1.4..In.
76c0 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 20 62 75 69 6c 64 2c 20 74 addition.to.the.package.build,.t
76e0 68 65 72 65 20 69 73 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 20 4a 6f 62 20 77 68 69 63 68 here.is.the.vyos-build.Job.which
7700 20 62 75 69 6c 64 73 20 61 6e 64 20 74 65 73 74 73 20 74 68 65 20 56 79 4f 53 20 49 53 4f 20 69 .builds.and.tests.the.VyOS.ISO.i
7720 6d 61 67 65 20 77 68 69 63 68 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 61 66 74 65 72 20 61 20 mage.which.is.published.after.a.
7740 73 75 63 63 65 73 73 66 75 6c 6c 20 74 65 73 74 20 64 72 69 76 65 2e 00 4f 75 72 20 63 6f 64 65 successfull.test.drive..Our.code
7760 20 69 73 20 73 70 6c 69 74 20 69 6e 74 6f 20 73 65 76 65 72 61 6c 20 6d 6f 64 75 6c 65 73 2e 20 .is.split.into.several.modules..
7780 56 79 4f 53 20 69 73 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 6d 75 6c 74 69 70 6c 65 20 69 6e 64 VyOS.is.composed.of.multiple.ind
77a0 69 76 69 64 75 61 6c 20 70 61 63 6b 61 67 65 73 2c 20 73 6f 6d 65 20 6f 66 20 74 68 65 6d 20 61 ividual.packages,.some.of.them.a
77c0 72 65 20 66 6f 72 6b 73 20 6f 66 20 75 70 73 74 72 65 61 6d 20 70 61 63 6b 61 67 65 73 20 61 6e re.forks.of.upstream.packages.an
77e0 64 20 61 72 65 20 70 65 72 69 6f 64 69 63 61 6c 6c 79 20 73 79 6e 63 65 64 20 77 69 74 68 20 75 d.are.periodically.synced.with.u
7800 70 73 74 72 65 61 6d 2c 20 73 6f 20 6b 65 65 70 69 6e 67 20 74 68 65 20 77 68 6f 6c 65 20 73 6f pstream,.so.keeping.the.whole.so
7820 75 72 63 65 20 75 6e 64 65 72 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 urce.under.a.single.repository.w
7840 6f 75 6c 64 20 62 65 20 76 65 72 79 20 69 6e 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 73 6c ould.be.very.inconvenient.and.sl
7860 6f 77 2e 20 54 68 65 72 65 20 69 73 20 6e 6f 77 20 61 6e 20 6f 6e 67 6f 69 6e 67 20 65 66 66 6f ow..There.is.now.an.ongoing.effo
7880 72 74 20 74 6f 20 63 6f 6e 73 6f 6c 69 64 61 74 65 20 61 6c 6c 20 56 79 4f 53 2d 73 70 65 63 69 rt.to.consolidate.all.VyOS-speci
78a0 66 69 63 20 66 72 61 6d 65 77 6f 72 6b 2f 63 6f 6e 66 69 67 20 70 61 63 6b 61 67 65 73 20 69 6e fic.framework/config.packages.in
78c0 74 6f 20 76 79 6f 73 2d 31 78 20 70 61 63 6b 61 67 65 2c 20 62 75 74 20 74 68 65 20 62 61 73 69 to.vyos-1x.package,.but.the.basi
78e0 63 20 73 74 72 75 63 74 75 72 65 20 69 73 20 67 6f 69 6e 67 20 74 6f 20 73 74 61 79 20 74 68 65 c.structure.is.going.to.stay.the
7900 20 73 61 6d 65 2c 20 6a 75 73 74 20 77 69 74 68 20 66 65 77 65 72 20 61 6e 64 20 66 65 77 65 72 .same,.just.with.fewer.and.fewer
7920 20 70 61 63 6b 61 67 65 73 20 77 68 69 6c 65 20 74 68 65 20 62 61 73 65 20 63 6f 64 65 20 69 73 .packages.while.the.base.code.is
7940 20 72 65 77 72 69 74 74 65 6e 20 66 72 6f 6d 20 50 65 72 6c 2f 42 41 53 48 20 69 6e 74 6f 20 50 .rewritten.from.Perl/BASH.into.P
7960 79 74 68 6f 6e 20 75 73 69 6e 67 20 61 6e 64 20 58 4d 4c 20 62 61 73 65 64 20 69 6e 74 65 72 66 ython.using.and.XML.based.interf
7980 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 43 4c 49 2e 00 4f 75 72 20 ace.definition.for.the.CLI..Our.
79a0 6f 70 20 6d 6f 64 65 20 73 63 72 69 70 74 73 20 75 73 65 20 74 68 65 20 70 79 74 68 6f 6e 2d 76 op.mode.scripts.use.the.python-v
79c0 69 63 69 20 6d 6f 64 75 6c 65 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 ici.module,.which.is.not.include
79e0 64 20 69 6e 20 44 65 62 69 61 6e 27 73 20 62 75 69 6c 64 2c 20 61 6e 64 20 69 73 6e 27 74 20 71 d.in.Debian's.build,.and.isn't.q
7a00 75 69 74 65 20 65 61 73 79 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 69 6e 20 74 68 61 74 20 62 uite.easy.to.integrate.in.that.b
7a20 75 69 6c 64 2e 20 46 6f 72 20 74 68 69 73 20 72 65 61 73 6f 6e 20 77 65 20 64 65 62 69 61 6e 69 uild..For.this.reason.we.debiani
7a40 7a 65 20 74 68 61 74 20 6d 6f 64 75 6c 65 20 62 79 20 68 61 6e 64 20 6e 6f 77 2c 20 75 73 69 6e ze.that.module.by.hand.now,.usin
7a60 67 20 74 68 69 73 20 70 72 6f 63 65 64 75 72 65 3a 00 4f 75 72 20 73 6d 6f 6b 65 74 65 73 74 73 g.this.procedure:.Our.smoketests
7a80 20 6e 6f 74 20 6f 6e 6c 79 20 74 65 73 74 20 64 61 65 6d 6f 6e 73 20 61 6e 64 20 73 65 72 69 76 .not.only.test.daemons.and.seriv
7aa0 65 73 2c 20 62 75 74 20 61 6c 73 6f 20 63 68 65 63 6b 20 69 66 20 77 68 61 74 20 77 65 20 63 6f es,.but.also.check.if.what.we.co
7ac0 6e 66 69 67 75 72 65 20 66 6f 72 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 77 6f 72 6b 73 2e 20 nfigure.for.an.interface.works..
7ae0 54 68 75 73 20 74 68 65 72 65 20 69 73 20 61 20 63 6f 6d 6d 6f 6e 20 62 61 73 65 20 63 6c 61 73 Thus.there.is.a.common.base.clas
7b00 73 65 64 20 6e 61 6d 65 64 3a 20 60 60 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 73 5f 74 65 73 sed.named:.``base_interfaces_tes
7b20 74 2e 70 79 60 60 20 77 68 69 63 68 20 68 6f 6c 64 73 20 61 6c 6c 20 74 68 65 20 63 6f 6d 6d 6f t.py``.which.holds.all.the.commo
7b40 6e 20 63 6f 64 65 20 74 68 61 74 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 73 75 70 70 6f 72 74 n.code.that.an.interface.support
7b60 73 20 61 6e 64 20 69 73 20 74 65 73 74 65 64 2e 00 50 61 63 6b 61 67 65 73 00 50 61 74 63 68 65 s.and.is.tested..Packages.Patche
7b80 73 20 61 72 65 20 61 6c 77 61 79 73 20 6d 6f 72 65 20 74 68 61 6e 20 77 65 6c 63 6f 6d 65 2e 20 s.are.always.more.than.welcome..
7ba0 54 6f 20 68 61 76 65 20 61 20 63 6c 65 61 6e 20 61 6e 64 20 65 61 73 79 20 74 6f 20 6d 61 69 6e To.have.a.clean.and.easy.to.main
7bc0 74 61 69 6e 20 72 65 70 6f 73 69 74 6f 72 79 20 77 65 20 68 61 76 65 20 73 6f 6d 65 20 67 75 69 tain.repository.we.have.some.gui
7be0 64 65 6c 69 6e 65 73 20 77 68 65 6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 47 69 74 2e 20 41 delines.when.working.with.Git..A
7c00 20 63 6c 65 61 6e 20 72 65 70 6f 73 69 74 6f 72 79 20 65 61 73 65 73 20 74 68 65 20 61 75 74 6f .clean.repository.eases.the.auto
7c20 6d 61 74 69 63 20 67 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 61 20 63 68 61 6e 67 65 6c 6f 67 20 matic.generation.of.a.changelog.
7c40 66 69 6c 65 2e 00 50 61 74 63 68 65 73 20 66 6f 72 20 44 4d 56 50 4e 20 61 72 65 20 6d 65 72 67 file..Patches.for.DMVPN.are.merg
7c60 65 64 20 69 6e 00 50 6c 65 61 73 65 20 6c 65 61 76 65 20 61 20 63 6f 6d 6d 65 6e 74 20 65 78 70 ed.in.Please.leave.a.comment.exp
7c80 6c 61 69 6e 69 6e 67 20 77 68 79 20 74 68 65 20 70 72 69 6f 72 69 74 79 20 77 61 73 20 63 68 6f laining.why.the.priority.was.cho
7ca0 73 65 6e 20 28 65 2e 67 2e 20 22 61 66 74 65 72 20 69 6e 74 65 72 66 61 63 65 73 20 61 72 65 20 sen.(e.g.."after.interfaces.are.
7cc0 63 6f 6e 66 69 67 75 72 65 64 22 29 00 50 6c 65 61 73 65 20 73 75 62 6d 69 74 20 79 6f 75 72 20 configured").Please.submit.your.
7ce0 70 61 74 63 68 65 73 20 75 73 69 6e 67 20 74 68 65 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 47 69 74 patches.using.the.well-known.Git
7d00 48 75 62 20 70 75 6c 6c 2d 72 65 71 75 65 73 74 20 61 67 61 69 6e 73 74 20 6f 75 72 20 72 65 70 Hub.pull-request.against.our.rep
7d20 6f 73 69 74 6f 72 69 65 73 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 56 79 4f 53 20 47 69 74 48 ositories.found.in.the.VyOS.GitH
7d40 75 62 20 6f 72 67 61 6e 69 73 61 74 69 6f 6e 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 ub.organisation.at.https://githu
7d60 62 2e 63 6f 6d 2f 76 79 6f 73 00 50 6c 65 61 73 65 20 75 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 b.com/vyos.Please.use.the.follow
7d80 69 6e 67 20 74 65 6d 70 6c 61 74 65 20 61 73 20 67 6f 6f 64 20 73 74 61 72 74 69 6e 67 20 70 6f ing.template.as.good.starting.po
7da0 69 6e 74 20 77 68 65 6e 20 64 65 76 65 6c 6f 70 69 6e 67 20 6e 65 77 20 6d 6f 64 75 6c 65 73 20 int.when.developing.new.modules.
7dc0 6f 72 20 65 76 65 6e 20 72 65 77 72 69 74 65 20 61 20 77 68 6f 6c 65 20 62 75 6e 63 68 20 6f 66 or.even.rewrite.a.whole.bunch.of
7de0 20 63 6f 64 65 20 69 6e 20 74 68 65 20 6e 65 77 20 73 74 79 6c 65 20 58 4d 4c 2f 50 79 68 6f 6e .code.in.the.new.style.XML/Pyhon
7e00 20 69 6e 74 65 72 66 61 63 65 2e 00 50 6f 72 74 20 64 65 73 63 72 69 70 74 69 6f 6e 00 50 6f 72 .interface..Port.description.Por
7e20 74 20 64 69 73 61 62 6c 65 00 50 72 65 66 65 72 20 69 6e 66 69 6e 69 74 69 76 65 73 00 50 72 65 t.disable.Prefer.infinitives.Pre
7e40 70 61 72 65 20 70 61 74 63 68 2f 63 6f 6d 6d 69 74 00 50 72 65 70 61 72 65 20 72 65 6c 65 61 73 pare.patch/commit.Prepare.releas
7e60 65 20 6e 6f 74 65 73 20 66 6f 72 20 75 70 63 6f 6d 69 6e 67 20 72 65 6c 65 61 73 65 73 00 50 72 e.notes.for.upcoming.releases.Pr
7e80 65 72 65 71 75 69 73 69 74 65 73 00 50 72 69 6f 72 69 74 69 65 73 00 50 72 6f 76 69 64 65 20 61 erequisites.Priorities.Provide.a
7ea0 73 20 6d 75 63 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 73 20 79 6f 75 20 63 61 6e 00 50 79 s.much.information.as.you.can.Py
7ec0 74 68 6f 6e 00 50 79 74 68 6f 6e 20 28 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 thon.Python.(or.any.other.langua
7ee0 67 65 2c 20 66 6f 72 20 74 68 61 74 20 6d 61 74 74 65 72 29 20 64 6f 65 73 20 6e 6f 74 20 70 72 ge,.for.that.matter).does.not.pr
7f00 6f 76 69 64 65 20 61 75 74 6f 6d 61 74 69 63 20 70 72 6f 74 65 63 74 69 6f 6e 20 66 72 6f 6d 20 ovide.automatic.protection.from.
7f20 62 61 64 20 64 65 73 69 67 6e 2c 20 73 6f 20 77 65 20 6e 65 65 64 20 74 6f 20 61 6c 73 6f 20 64 bad.design,.so.we.need.to.also.d
7f40 65 76 69 73 65 20 64 65 73 69 67 6e 20 67 75 69 64 65 6c 69 6e 65 73 20 61 6e 64 20 66 6f 6c 6c evise.design.guidelines.and.foll
7f60 6f 77 20 74 68 65 6d 20 74 6f 20 6b 65 65 70 20 74 68 65 20 73 79 73 74 65 6d 20 65 78 74 65 6e ow.them.to.keep.the.system.exten
7f80 73 69 62 6c 65 20 61 6e 64 20 6d 61 69 6e 74 61 69 6e 61 62 6c 65 2e 00 50 79 74 68 6f 6e 20 33 sible.and.maintainable..Python.3
7fa0 20 2a 2a 73 68 61 6c 6c 2a 2a 20 62 65 20 75 73 65 64 2e 20 48 6f 77 20 6c 6f 6e 67 20 63 61 6e .**shall**.be.used..How.long.can
7fc0 20 77 65 20 6b 65 65 70 20 50 79 74 68 6f 6e 20 32 20 61 6c 69 76 65 20 61 6e 79 77 61 79 3f 20 .we.keep.Python.2.alive.anyway?.
7fe0 4e 6f 20 63 6f 6e 73 69 64 65 72 61 74 69 6f 6e 73 20 66 6f 72 20 50 79 74 68 6f 6e 20 32 20 63 No.considerations.for.Python.2.c
8000 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 74 61 6b 65 6e ompatibility.**should**.be.taken
8020 20 61 74 20 61 6e 79 20 74 69 6d 65 2e 00 50 79 74 68 6f 6e 3a 20 54 61 62 73 20 2a 2a 73 68 61 .at.any.time..Python:.Tabs.**sha
8040 6c 6c 20 6e 6f 74 2a 2a 20 62 65 20 75 73 65 64 2e 20 45 76 65 72 79 20 69 6e 64 65 6e 74 61 74 ll.not**.be.used..Every.indentat
8060 69 6f 6e 20 6c 65 76 65 6c 20 73 68 6f 75 6c 64 20 62 65 20 34 20 73 70 61 63 65 73 00 51 45 4d ion.level.should.be.4.spaces.QEM
8080 55 00 52 61 74 69 6f 6e 61 6c 65 3a 20 74 68 69 73 20 73 65 65 6d 73 20 74 6f 20 62 65 20 74 68 U.Rationale:.this.seems.to.be.th
80a0 65 20 75 6e 77 72 69 74 74 65 6e 20 73 74 61 6e 64 61 72 64 20 69 6e 20 6e 65 74 77 6f 72 6b 20 e.unwritten.standard.in.network.
80c0 64 65 76 69 63 65 20 43 4c 49 73 2c 20 61 6e 64 20 61 20 67 6f 6f 64 20 61 65 73 74 68 65 74 69 device.CLIs,.and.a.good.aestheti
80e0 63 20 63 6f 6d 70 72 6f 6d 69 73 65 2e 00 52 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 73 20 75 73 c.compromise..Recent.versions.us
8100 65 20 74 68 65 20 60 60 76 79 6f 73 2e 66 72 72 60 60 20 66 72 61 6d 65 77 6f 72 6b 2e 20 54 68 e.the.``vyos.frr``.framework..Th
8120 65 20 50 79 74 68 6f 6e 20 63 6c 61 73 73 20 69 73 20 6c 6f 63 61 74 65 64 20 69 6e 73 69 64 65 e.Python.class.is.located.inside
8140 20 6f 75 72 20 60 60 76 79 6f 73 2d 31 78 3a 70 79 74 68 6f 6e 2f 76 79 6f 73 2f 66 72 72 2e 70 .our.``vyos-1x:python/vyos/frr.p
8160 79 60 60 2e 20 49 74 20 63 6f 6d 65 73 20 77 69 74 68 20 61 6e 20 65 6d 62 65 64 64 65 64 20 64 y``..It.comes.with.an.embedded.d
8180 65 62 75 67 67 69 6e 67 2f 20 28 70 72 69 6e 74 20 73 74 79 6c 65 29 20 64 65 62 75 67 67 65 72 ebugging/.(print.style).debugger
81a0 20 61 73 20 76 79 6f 73 2e 69 66 63 6f 6e 66 69 67 20 64 6f 65 73 2e 00 52 65 70 6f 72 74 20 61 .as.vyos.ifconfig.does..Report.a
81c0 20 42 75 67 00 52 75 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 61 .Bug.Run.the.following.command.a
81e0 66 74 65 72 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20 49 53 4f 20 69 6d 61 67 65 2e 00 52 75 6e fter.building.the.ISO.image..Run
8200 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 61 66 74 65 72 20 62 75 69 .the.following.command.after.bui
8220 6c 64 69 6e 67 20 74 68 65 20 51 45 4d 55 20 69 6d 61 67 65 2e 00 53 69 6d 70 6c 79 20 75 73 65 lding.the.QEMU.image..Simply.use
8240 20 6f 75 72 20 77 72 61 70 70 65 72 20 73 63 72 69 70 74 20 74 6f 20 62 75 69 6c 64 20 61 6c 6c .our.wrapper.script.to.build.all
8260 20 6f 66 20 74 68 65 20 64 72 69 76 65 72 20 6d 6f 64 75 6c 65 73 2e 00 53 69 6e 63 65 20 56 79 .of.the.driver.modules..Since.Vy
8280 4f 53 20 68 61 73 20 73 77 69 74 63 68 65 64 20 74 6f 20 44 65 62 69 61 6e 20 28 31 31 29 20 42 OS.has.switched.to.Debian.(11).B
82a0 75 6c 6c 73 65 79 65 20 69 6e 20 69 74 73 20 60 60 63 75 72 72 65 6e 74 60 60 20 62 72 61 6e 63 ullseye.in.its.``current``.branc
82c0 68 2c 20 79 6f 75 20 77 69 6c 6c 20 72 65 71 75 69 72 65 20 69 6e 64 69 76 69 64 75 61 6c 20 63 h,.you.will.require.individual.c
82e0 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 60 63 75 72 72 65 6e 74 60 2c 20 60 65 71 75 75 6c 65 75 ontainer.for.`current`,.`equuleu
8300 73 60 20 61 6e 64 20 60 63 72 75 78 60 20 62 75 69 6c 64 73 2e 00 53 6d 6f 6b 65 74 65 73 74 73 s`.and.`crux`.builds..Smoketests
8320 00 53 6d 6f 6b 65 74 65 73 74 73 20 65 78 65 63 75 74 65 73 20 70 72 65 64 65 66 69 6e 65 64 20 .Smoketests.executes.predefined.
8340 56 79 4f 53 20 43 4c 49 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 63 68 65 63 6b 73 20 69 66 20 VyOS.CLI.commands.and.checks.if.
8360 74 68 65 20 64 65 73 69 72 65 64 20 64 61 65 6d 6f 6e 2f 73 65 72 76 69 63 65 20 63 6f 6e 66 69 the.desired.daemon/service.confi
8380 67 75 72 61 74 69 6f 6e 20 69 73 20 72 65 6e 64 65 72 74 20 2d 20 74 68 61 74 20 69 73 20 68 6f guration.is.rendert.-.that.is.ho
83a0 77 20 74 6f 20 70 75 74 20 69 74 20 22 73 68 6f 72 74 22 2e 00 53 6f 20 69 66 20 79 6f 75 20 70 w.to.put.it."short"..So.if.you.p
83c0 6c 61 6e 20 74 6f 20 62 75 69 6c 64 20 79 6f 75 72 20 6f 77 6e 20 63 75 73 74 6f 6d 20 49 53 4f lan.to.build.your.own.custom.ISO
83e0 20 69 6d 61 67 65 20 61 6e 64 20 77 61 6e 27 74 20 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 .image.and.wan't.to.make.use.of.
8400 6f 75 72 20 73 6d 6f 6b 65 74 65 73 74 73 2c 20 65 6e 73 75 72 65 20 74 68 61 74 20 79 6f 75 20 our.smoketests,.ensure.that.you.
8420 68 61 76 65 20 74 68 65 20 60 76 79 6f 73 2d 31 78 2d 73 6d 6f 6b 65 74 65 73 74 60 20 70 61 63 have.the.`vyos-1x-smoketest`.pac
8440 6b 61 67 65 20 69 6e 73 74 61 6c 6c 65 64 2e 00 53 6f 6d 65 20 56 79 4f 53 20 70 61 63 6b 61 67 kage.installed..Some.VyOS.packag
8460 65 73 20 28 6e 61 6d 65 6c 79 20 76 79 6f 73 2d 31 78 29 20 63 6f 6d 65 20 77 69 74 68 20 62 75 es.(namely.vyos-1x).come.with.bu
8480 69 6c 64 2d 74 69 6d 65 20 74 65 73 74 73 20 77 68 69 63 68 20 76 65 72 69 66 79 20 73 6f 6d 65 ild-time.tests.which.verify.some
84a0 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 6c 69 62 72 61 72 79 20 63 61 6c 6c 73 20 74 .of.the.internal.library.calls.t
84c0 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 61 73 20 65 78 70 65 63 74 65 64 2e 20 54 68 6f 73 65 hat.they.work.as.expected..Those
84e0 20 74 65 73 74 73 20 61 72 65 20 63 61 72 72 69 65 64 20 6f 75 74 20 74 68 72 6f 75 67 68 20 74 .tests.are.carried.out.through.t
8500 68 65 20 50 79 74 68 6f 6e 20 55 6e 69 74 74 65 73 74 20 6d 6f 64 75 6c 65 2e 20 49 66 20 79 6f he.Python.Unittest.module..If.yo
8520 75 20 77 61 6e 74 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 60 60 76 79 6f 73 2d 31 78 60 60 20 u.want.to.build.the.``vyos-1x``.
8540 70 61 63 6b 61 67 65 20 28 77 68 69 63 68 20 69 73 20 6f 75 72 20 6d 61 69 6e 20 64 65 76 65 6c package.(which.is.our.main.devel
8560 6f 70 6d 65 6e 74 20 70 61 63 6b 61 67 65 29 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 74 61 72 opment.package).you.need.to.star
8580 74 20 79 6f 75 72 20 44 6f 63 6b 65 72 20 63 6f 6e 74 61 69 6e 65 72 20 75 73 69 6e 67 20 74 68 t.your.Docker.container.using.th
85a0 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 67 75 6d 65 6e 74 3a 20 60 60 2d 2d 73 79 73 63 74 6c e.following.argument:.``--sysctl
85c0 20 6e 65 74 2e 69 70 76 36 2e 63 6f 6e 66 2e 6c 6f 2e 64 69 73 61 62 6c 65 5f 69 70 76 36 3d 30 .net.ipv6.conf.lo.disable_ipv6=0
85e0 60 60 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 6f 73 65 20 74 65 73 74 73 20 77 69 6c 6c 20 66 ``,.otherwise.those.tests.will.f
8600 61 69 6c 2e 00 53 6f 6d 65 20 61 62 62 72 65 76 69 61 74 69 6f 6e 73 20 61 72 65 20 74 72 61 64 ail..Some.abbreviations.are.trad
8620 69 74 69 6f 6e 61 6c 6c 79 20 77 72 69 74 74 65 6e 20 69 6e 20 6d 69 78 65 64 20 63 61 73 65 2e itionally.written.in.mixed.case.
8640 20 47 65 6e 65 72 61 6c 6c 79 2c 20 69 66 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 77 6f 72 64 73 .Generally,.if.it.contains.words
8660 20 22 6f 76 65 72 22 20 6f 72 20 22 76 65 72 73 69 6f 6e 22 2c 20 74 68 65 20 6c 65 74 74 65 72 ."over".or."version",.the.letter
8680 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 6c 6f 77 65 72 63 61 73 65 2e 20 49 66 20 74 68 65 .**should**.be.lowercase..If.the
86a0 72 65 27 73 20 61 6e 20 61 63 63 65 70 74 65 64 20 73 70 65 6c 6c 69 6e 67 20 28 65 73 70 65 63 re's.an.accepted.spelling.(espec
86c0 69 61 6c 6c 79 20 69 66 20 64 65 66 69 6e 65 64 20 62 79 20 61 6e 20 52 46 43 20 6f 72 20 61 6e ially.if.defined.by.an.RFC.or.an
86e0 6f 74 68 65 72 20 73 74 61 6e 64 61 72 64 29 2c 20 69 74 20 2a 2a 6d 75 73 74 2a 2a 20 62 65 20 other.standard),.it.**must**.be.
8700 66 6f 6c 6c 6f 77 65 64 2e 00 53 6f 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 followed..Some.of.the.configurat
8720 69 6f 6e 73 20 68 61 76 65 20 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 20 77 68 69 63 68 20 6e 65 ions.have.preconditions.which.ne
8740 65 64 20 74 6f 20 62 65 20 6d 65 74 2e 20 54 68 6f 73 65 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 ed.to.be.met..Those.most.likely.
8760 69 6e 63 6c 75 64 65 20 67 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 63 72 79 70 6f 67 72 61 70 68 include.generation.of.crypograph
8780 69 63 20 6b 65 79 73 20 62 65 66 6f 72 65 20 74 68 65 20 63 6f 6e 66 69 67 20 63 61 6e 20 62 65 ic.keys.before.the.config.can.be
87a0 20 61 70 70 6c 69 65 64 20 2d 20 79 6f 75 20 77 69 6c 6c 20 67 65 74 20 61 20 63 6f 6d 6d 69 74 .applied.-.you.will.get.a.commit
87c0 20 65 72 72 6f 72 20 6f 74 68 65 72 77 69 73 65 2e 20 49 66 20 79 6f 75 20 61 72 65 20 69 6e 74 .error.otherwise..If.you.are.int
87e0 65 72 65 73 74 65 64 20 68 6f 77 20 74 68 6f 73 65 20 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 20 erested.how.those.preconditions.
8800 61 72 65 20 66 75 6c 66 69 6c 6c 65 64 20 63 68 65 63 6b 20 74 68 65 20 76 79 6f 73 2d 62 75 69 are.fulfilled.check.the.vyos-bui
8820 6c 64 5f 20 72 65 70 6f 73 69 74 6f 72 79 20 61 6e 64 20 74 68 65 20 60 60 73 63 72 69 70 74 73 ld_.repository.and.the.``scripts
8840 2f 63 68 65 63 6b 2d 71 65 6d 75 2d 69 6e 73 74 61 6c 6c 60 60 20 66 69 6c 65 2e 00 53 6f 6d 65 /check-qemu-install``.file..Some
8860 74 69 6d 65 73 20 69 74 20 6d 69 67 68 74 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 64 65 62 75 times.it.might.be.useful.to.debu
8880 67 20 50 79 74 68 6f 6e 20 63 6f 64 65 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6f 6e 20 74 g.Python.code.interactively.on.t
88a0 68 65 20 6c 69 76 65 20 73 79 73 74 65 6d 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 49 44 45 he.live.system.rather.than.a.IDE
88c0 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 61 63 68 69 65 76 65 64 20 75 73 69 6e 67 20 70 64 62 ..This.can.be.achieved.using.pdb
88e0 2e 00 53 74 61 72 74 20 74 68 65 20 62 75 69 6c 64 3a 00 53 74 61 72 74 69 6e 67 20 77 69 74 68 ..Start.the.build:.Starting.with
8900 20 56 79 4f 53 20 31 2e 32 20 74 68 65 20 72 65 6c 65 61 73 65 20 6d 6f 64 65 6c 20 6f 66 20 56 .VyOS.1.2.the.release.model.of.V
8920 79 4f 53 20 68 61 73 20 63 68 61 6e 67 65 64 2e 20 56 79 4f 53 20 69 73 20 6e 6f 77 20 2a 2a 66 yOS.has.changed..VyOS.is.now.**f
8940 72 65 65 20 61 73 20 69 6e 20 73 70 65 65 63 68 2c 20 62 75 74 20 6e 6f 74 20 61 73 20 69 6e 20 ree.as.in.speech,.but.not.as.in.
8960 62 65 65 72 2a 2a 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 68 69 6c 65 20 56 79 beer**..This.means.that.while.Vy
8980 4f 53 20 69 73 20 73 74 69 6c 6c 20 61 6e 20 6f 70 65 6e 20 73 6f 75 72 63 65 20 70 72 6f 6a 65 OS.is.still.an.open.source.proje
89a0 63 74 2c 20 74 68 65 20 72 65 6c 65 61 73 65 20 49 53 4f 73 20 61 72 65 20 6e 6f 20 6c 6f 6e 67 ct,.the.release.ISOs.are.no.long
89c0 65 72 20 66 72 65 65 20 61 6e 64 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 6f 62 74 61 69 6e 65 64 er.free.and.can.only.be.obtained
89e0 20 76 69 61 20 73 75 62 73 63 72 69 70 74 69 6f 6e 2c 20 6f 72 20 62 79 20 63 6f 6e 74 72 69 62 .via.subscription,.or.by.contrib
8a00 75 74 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6d 6d 75 6e 69 74 79 2e 00 53 75 62 6d 69 74 20 61 uting.to.the.community..Submit.a
8a20 20 50 61 74 63 68 00 53 75 62 6d 69 74 20 74 68 65 20 70 61 74 63 68 20 60 60 67 69 74 20 70 75 .Patch.Submit.the.patch.``git.pu
8a40 73 68 60 60 20 61 6e 64 20 63 72 65 61 74 65 20 74 68 65 20 47 69 74 48 75 62 20 70 75 6c 6c 2d sh``.and.create.the.GitHub.pull-
8a60 72 65 71 75 65 73 74 2e 00 53 75 6d 6d 61 72 79 00 53 75 70 70 6f 73 65 20 79 6f 75 20 77 61 6e request..Summary.Suppose.you.wan
8a80 74 20 74 6f 20 6d 61 6b 65 20 61 20 63 68 61 6e 67 65 20 69 6e 20 74 68 65 20 77 65 62 70 72 6f t.to.make.a.change.in.the.webpro
8aa0 78 79 20 73 63 72 69 70 74 20 62 75 74 20 79 65 74 20 79 6f 75 20 64 6f 20 6e 6f 74 20 6b 6e 6f xy.script.but.yet.you.do.not.kno
8ac0 77 20 77 68 69 63 68 20 6f 66 20 74 68 65 20 6d 61 6e 79 20 56 79 4f 53 20 70 61 63 6b 61 67 65 w.which.of.the.many.VyOS.package
8ae0 73 20 73 68 69 70 20 74 68 69 73 20 66 69 6c 65 2e 20 59 6f 75 20 63 61 6e 20 64 65 74 65 72 6d s.ship.this.file..You.can.determ
8b00 69 6e 65 20 74 68 65 20 56 79 4f 53 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 69 6e 20 71 75 65 ine.the.VyOS.package.name.in.que
8b20 73 74 69 6f 6e 20 62 79 20 75 73 69 6e 67 20 44 65 62 69 61 6e 27 73 20 60 60 64 70 6b 67 20 2d stion.by.using.Debian's.``dpkg.-
8b40 53 60 60 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 79 6f 75 72 20 72 75 6e 6e 69 6e 67 20 56 79 4f 53 S``.command.of.your.running.VyOS
8b60 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 00 53 79 73 74 65 6d 20 53 74 61 72 74 75 70 00 54 65 .installation..System.Startup.Te
8b80 6d 70 6c 61 74 65 20 70 72 6f 63 65 73 73 6f 72 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 75 mplate.processor.**should**.be.u
8ba0 73 65 64 20 66 6f 72 20 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 73 2e sed.for.generating.config.files.
8bc0 20 42 75 69 6c 74 2d 69 6e 20 73 74 72 69 6e 67 20 66 6f 72 6d 61 74 74 69 6e 67 20 2a 2a 6d 61 .Built-in.string.formatting.**ma
8be0 79 2a 2a 20 62 65 20 75 73 65 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 6c 69 6e 65 2d 6f 72 69 65 y**.be.used.for.simple.line-orie
8c00 6e 74 65 64 20 66 6f 72 6d 61 74 73 20 77 68 65 72 65 20 65 76 65 72 79 20 6c 69 6e 65 20 69 73 nted.formats.where.every.line.is
8c20 20 73 65 6c 66 2d 63 6f 6e 74 61 69 6e 65 64 2c 20 73 75 63 68 20 61 73 20 69 70 74 61 62 6c 65 .self-contained,.such.as.iptable
8c40 73 20 72 75 6c 65 73 2e 20 54 65 6d 70 6c 61 74 65 20 70 72 6f 63 65 73 73 6f 72 20 2a 2a 6d 75 s.rules..Template.processor.**mu
8c60 73 74 2a 2a 20 62 65 20 75 73 65 64 20 66 6f 72 20 73 74 72 75 63 74 75 72 65 64 2c 20 6d 75 6c st**.be.used.for.structured,.mul
8c80 74 69 2d 6c 69 6e 65 20 66 6f 72 6d 61 74 73 20 73 75 63 68 20 61 73 20 74 68 6f 73 65 20 75 73 ti-line.formats.such.as.those.us
8ca0 65 64 20 62 79 20 49 53 43 20 44 48 43 50 64 2e 00 54 65 73 74 69 6e 67 00 54 65 78 74 20 67 65 ed.by.ISC.DHCPd..Testing.Text.ge
8cc0 6e 65 72 61 74 69 6f 6e 00 54 68 65 20 43 4c 49 20 70 61 72 73 65 72 20 75 73 65 64 20 69 6e 20 neration.The.CLI.parser.used.in.
8ce0 56 79 4f 53 20 69 73 20 61 20 6d 69 78 20 6f 66 20 62 61 73 68 2c 20 62 61 73 68 2d 63 6f 6d 70 VyOS.is.a.mix.of.bash,.bash-comp
8d00 6c 65 74 69 6f 6e 20 68 65 6c 70 65 72 20 61 6e 64 20 74 68 65 20 43 2b 2b 20 62 61 63 6b 65 6e letion.helper.and.the.C++.backen
8d20 64 20 6c 69 62 72 61 72 79 20 5b 76 79 61 74 74 61 2d 63 66 67 5d 28 68 74 74 70 73 3a 2f 2f 67 d.library.[vyatta-cfg](https://g
8d40 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2d 63 66 67 29 2e 20 54 68 69 73 ithub.com/vyos/vyatta-cfg)..This
8d60 20 73 65 63 74 69 6f 6e 20 69 73 20 61 20 72 65 66 65 72 65 6e 63 65 20 6f 66 20 63 6f 6d 6d 6f .section.is.a.reference.of.commo
8d80 6e 20 43 4c 49 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 74 68 65 20 72 65 73 70 65 63 74 69 76 n.CLI.commands.and.the.respectiv
8da0 65 20 65 6e 74 72 79 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 43 2f 43 2b 2b 20 63 6f 64 65 2e e.entry.point.in.the.C/C++.code.
8dc0 00 54 68 65 20 49 6e 74 65 6c 20 4e 49 43 20 64 72 69 76 65 72 73 20 64 6f 20 6e 6f 74 20 63 6f .The.Intel.NIC.drivers.do.not.co
8de0 6d 65 20 66 72 6f 6d 20 61 20 47 69 74 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 69 6e 73 74 65 61 me.from.a.Git.repository,.instea
8e00 64 20 77 65 20 6a 75 73 74 20 66 65 74 63 68 20 74 68 65 20 74 61 72 62 61 6c 6c 73 20 66 72 6f d.we.just.fetch.the.tarballs.fro
8e20 6d 20 6f 75 72 20 6d 69 72 72 6f 72 20 61 6e 64 20 63 6f 6d 70 69 6c 65 20 74 68 65 6d 2e 00 54 m.our.mirror.and.compile.them..T
8e40 68 65 20 49 6e 74 65 6c 20 51 41 54 20 28 51 75 69 63 6b 20 41 73 73 69 73 74 20 54 65 63 68 6e he.Intel.QAT.(Quick.Assist.Techn
8e60 6f 6c 6f 67 79 29 20 64 72 69 76 65 72 73 20 64 6f 20 6e 6f 74 20 63 6f 6d 65 20 66 72 6f 6d 20 ology).drivers.do.not.come.from.
8e80 61 20 47 69 74 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 69 6e 73 74 65 61 64 20 77 65 20 6a 75 73 a.Git.repository,.instead.we.jus
8ea0 74 20 66 65 74 63 68 20 74 68 65 20 74 61 72 62 61 6c 6c 73 20 66 72 6f 6d 20 30 31 2e 6f 72 67 t.fetch.the.tarballs.from.01.org
8ec0 2c 20 49 6e 74 65 6c 27 73 20 6f 70 65 6e 2d 73 6f 75 72 63 65 20 77 65 62 73 69 74 65 2e 00 54 ,.Intel's.open-source.website..T
8ee0 68 65 20 4c 69 6e 75 78 20 6b 65 72 6e 65 6c 20 75 73 65 64 20 62 79 20 56 79 4f 53 20 69 73 20 he.Linux.kernel.used.by.VyOS.is.
8f00 68 65 61 76 69 6c 79 20 74 69 65 64 20 74 6f 20 74 68 65 20 49 53 4f 20 62 75 69 6c 64 20 70 72 heavily.tied.to.the.ISO.build.pr
8f20 6f 63 65 73 73 2e 20 54 68 65 20 66 69 6c 65 20 60 60 64 61 74 61 2f 64 65 66 61 75 6c 74 73 2e ocess..The.file.``data/defaults.
8f40 6a 73 6f 6e 60 60 20 68 6f 73 74 73 20 61 20 4a 53 4f 4e 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f json``.hosts.a.JSON.definition.o
8f60 66 20 74 68 65 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e 20 75 73 65 64 20 60 60 6b 65 72 6e f.the.kernel.version.used.``kern
8f80 65 6c 5f 76 65 72 73 69 6f 6e 60 60 20 61 6e 64 20 74 68 65 20 60 60 6b 65 72 6e 65 6c 5f 66 6c el_version``.and.the.``kernel_fl
8fa0 61 76 6f 72 60 60 20 6f 66 20 74 68 65 20 6b 65 72 6e 65 6c 20 77 68 69 63 68 20 72 65 70 72 65 avor``.of.the.kernel.which.repre
8fc0 73 65 6e 74 73 20 74 68 65 20 6b 65 72 6e 65 6c 27 73 20 4c 4f 43 41 4c 5f 56 45 52 53 49 4f 4e sents.the.kernel's.LOCAL_VERSION
8fe0 2e 20 42 6f 74 68 20 74 6f 67 65 74 68 65 72 20 66 6f 72 6d 20 74 68 65 20 6b 65 72 6e 65 6c 20 ..Both.together.form.the.kernel.
9000 76 65 72 73 69 6f 6e 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 73 79 73 74 65 6d 3a 00 version.variable.in.the.system:.
9020 54 68 65 20 52 45 41 44 4d 45 2e 6d 64 20 66 69 6c 65 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f The.README.md.file.will.guide.yo
9040 75 20 74 6f 20 75 73 65 20 74 68 65 20 74 68 69 73 20 74 6f 70 20 6c 65 76 65 6c 20 72 65 70 6f u.to.use.the.this.top.level.repo
9060 73 69 74 6f 72 79 2e 00 54 68 65 20 60 60 61 70 70 6c 79 28 29 60 60 20 61 6e 64 20 60 60 67 65 sitory..The.``apply()``.and.``ge
9080 6e 65 72 61 74 65 28 29 60 60 20 66 75 6e 63 74 69 6f 6e 73 20 6d 61 79 20 60 60 72 61 69 73 65 nerate()``.functions.may.``raise
90a0 20 43 6f 6e 66 69 67 45 72 72 6f 72 60 60 20 69 66 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 .ConfigError``.if,.for.example,.
90c0 74 68 65 20 64 61 65 6d 6f 6e 20 66 61 69 6c 65 64 20 74 6f 20 73 74 61 72 74 20 77 69 74 68 20 the.daemon.failed.to.start.with.
90e0 74 68 65 20 75 70 64 61 74 65 64 20 63 6f 6e 66 69 67 2e 20 49 74 20 73 68 6f 75 6c 64 6e 27 74 the.updated.config..It.shouldn't
9100 20 62 65 20 61 20 73 75 62 73 74 69 74 75 74 65 20 66 6f 72 20 70 72 6f 70 65 72 20 63 6f 6e 66 .be.a.substitute.for.proper.conf
9120 69 67 20 63 68 65 63 6b 69 6e 67 20 69 6e 20 74 68 65 20 60 60 76 65 72 69 66 79 28 29 60 60 20 ig.checking.in.the.``verify()``.
9140 66 75 6e 63 74 69 6f 6e 2e 20 41 6c 6c 20 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 20 function..All.reasonable.effort.
9160 73 68 6f 75 6c 64 20 62 65 20 6d 61 64 65 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 20 67 65 should.be.made.to.verify.that.ge
9180 6e 65 72 61 74 65 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 76 61 6c 69 64 20 61 nerated.configuration.is.valid.a
91a0 6e 64 20 77 69 6c 6c 20 62 65 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68 65 20 64 61 65 6d 6f nd.will.be.accepted.by.the.daemo
91c0 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 2c 20 77 68 65 6e 20 6e 65 63 65 73 73 61 72 79 2c 20 63 72 n,.including,.when.necessary,.cr
91e0 6f 73 73 2d 20 63 68 65 63 6b 73 20 77 69 74 68 20 6f 74 68 65 72 20 56 79 4f 53 20 63 6f 6e 66 oss-.checks.with.other.VyOS.conf
9200 69 67 75 72 61 74 69 6f 6e 20 73 75 62 74 72 65 65 73 2e 00 54 68 65 20 60 60 61 70 70 6c 79 28 iguration.subtrees..The.``apply(
9220 29 60 60 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 69 65 73 20 74 68 65 20 67 65 6e 65 72 61 74 )``.function.applies.the.generat
9240 65 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 6f 20 74 68 65 20 6c 69 76 65 20 73 79 73 ed.configuration.to.the.live.sys
9260 74 65 6d 2e 20 49 74 20 73 68 6f 75 6c 64 20 75 73 65 20 6e 6f 6e 2d 64 69 73 72 75 70 74 69 76 tem..It.should.use.non-disruptiv
9280 65 20 72 65 6c 6f 61 64 20 77 68 65 6e 65 76 65 72 20 70 6f 73 73 69 62 6c 65 2e 20 49 74 20 6d e.reload.whenever.possible..It.m
92a0 61 79 20 65 78 65 63 75 74 65 20 64 69 73 72 75 70 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 ay.execute.disruptive.operations
92c0 20 73 75 63 68 20 61 73 20 64 61 65 6d 6f 6e 20 70 72 6f 63 65 73 73 20 72 65 73 74 61 72 74 20 .such.as.daemon.process.restart.
92e0 69 66 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 64 6f 65 73 20 6e if.a.particular.component.does.n
9300 6f 74 20 73 75 70 70 6f 72 74 20 6e 6f 6e 2d 64 69 73 72 75 70 74 69 76 65 20 72 65 6c 6f 61 64 ot.support.non-disruptive.reload
9320 2c 20 6f 72 20 77 68 65 6e 20 74 68 65 20 65 78 70 65 63 74 65 64 20 73 65 72 76 69 63 65 20 64 ,.or.when.the.expected.service.d
9340 65 67 72 61 64 61 74 69 6f 6e 20 69 73 20 6d 69 6e 69 6d 61 6c 20 28 66 6f 72 20 65 78 61 6d 70 egradation.is.minimal.(for.examp
9360 6c 65 2c 20 69 6e 20 63 61 73 65 20 6f 66 20 61 75 78 69 6c 69 61 72 79 20 73 65 72 76 69 63 65 le,.in.case.of.auxiliary.service
9380 73 20 73 75 63 68 20 61 73 20 4c 4c 44 50 64 29 2e 20 49 6e 20 63 61 73 65 20 6f 66 20 68 69 67 s.such.as.LLDPd)..In.case.of.hig
93a0 68 20 69 6d 70 61 63 74 20 73 65 72 76 69 63 65 73 20 73 75 63 68 20 61 73 20 56 50 4e 20 64 61 h.impact.services.such.as.VPN.da
93c0 65 6d 6f 6e 20 61 6e 64 20 72 6f 75 74 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 77 68 65 6e emon.and.routing.protocols,.when
93e0 20 6e 6f 6e 2d 20 64 69 73 72 75 70 74 69 76 65 20 72 65 6c 6f 61 64 20 69 73 20 73 75 70 70 6f .non-.disruptive.reload.is.suppo
9400 72 74 65 64 20 66 6f 72 20 73 6f 6d 65 20 62 75 74 20 6e 6f 74 20 61 6c 6c 20 74 79 70 65 73 20 rted.for.some.but.not.all.types.
9420 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 68 61 6e 67 65 73 2c 20 73 63 72 69 70 74 of.configuration.changes,.script
9440 73 20 61 75 74 68 6f 72 73 20 73 68 6f 75 6c 64 20 6d 61 6b 65 20 65 66 66 6f 72 74 20 74 6f 20 s.authors.should.make.effort.to.
9460 64 65 74 65 72 6d 69 6e 65 20 69 66 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 68 61 determine.if.a.configuration.cha
9480 6e 67 65 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 69 6e 20 61 20 6e 6f 6e 2d 64 69 73 72 75 70 74 nge.can.be.done.in.a.non-disrupt
94a0 69 76 65 20 77 61 79 20 61 6e 64 20 6f 6e 6c 79 20 72 65 73 6f 72 74 20 74 6f 20 64 69 73 72 75 ive.way.and.only.resort.to.disru
94c0 70 74 69 76 65 20 72 65 73 74 61 72 74 20 69 66 20 69 74 20 63 61 6e 6e 6f 74 20 62 65 20 61 76 ptive.restart.if.it.cannot.be.av
94e0 6f 69 64 65 64 2e 00 54 68 65 20 60 60 67 65 6e 65 72 61 74 65 28 29 60 60 20 66 75 6e 63 74 69 oided..The.``generate()``.functi
9500 6f 6e 20 67 65 6e 65 72 61 74 65 73 20 63 6f 6e 66 69 67 20 66 69 6c 65 73 20 66 6f 72 20 73 79 on.generates.config.files.for.sy
9520 73 74 65 6d 20 63 6f 6d 70 6f 6e 65 6e 74 73 2e 00 54 68 65 20 60 60 67 65 74 5f 63 6f 6e 66 69 stem.components..The.``get_confi
9540 67 28 29 60 60 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 63 6f 6e 76 65 72 74 20 74 68 65 20 g()``.function.must.convert.the.
9560 56 79 4f 53 20 63 6f 6e 66 69 67 20 74 6f 20 61 6e 20 61 62 73 74 72 61 63 74 2c 20 69 6e 74 65 VyOS.config.to.an.abstract,.inte
9580 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 20 4e 6f 20 6f 74 68 65 72 20 66 75 rnal.representation..No.other.fu
95a0 6e 63 74 69 6f 6e 20 69 73 20 61 6c 6c 6f 77 65 64 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 60 60 nction.is.allowed.to.call.the.``
95c0 76 79 6f 73 2e 63 6f 6e 66 69 67 2e 20 43 6f 6e 66 69 67 60 60 20 6f 62 6a 65 63 74 20 6d 65 74 vyos.config..Config``.object.met
95e0 68 6f 64 20 64 69 72 65 63 74 6c 79 2e 20 54 68 65 20 72 61 74 69 6f 6e 61 6c 65 20 66 6f 72 20 hod.directly..The.rationale.for.
9600 69 74 20 69 73 20 74 68 61 74 20 77 68 65 6e 20 63 6f 6e 66 69 67 20 72 65 61 64 73 20 61 72 65 it.is.that.when.config.reads.are
9620 20 6d 69 78 65 64 20 77 69 74 68 20 6f 74 68 65 72 20 6c 6f 67 69 63 2c 20 69 74 27 73 20 76 65 .mixed.with.other.logic,.it's.ve
9640 72 79 20 68 61 72 64 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 63 6f 6e 66 69 67 20 73 79 6e ry.hard.to.change.the.config.syn
9660 74 61 78 20 73 69 6e 63 65 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 77 65 65 64 20 6f 75 74 20 65 tax.since.you.need.to.weed.out.e
9680 76 65 72 79 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 74 68 65 20 6f 6c 64 20 73 79 6e 74 61 very.occurrence.of.the.old.synta
96a0 78 2e 20 49 66 20 73 79 6e 74 61 78 2d 73 70 65 63 69 66 69 63 20 63 6f 64 65 20 69 73 20 63 6f x..If.syntax-specific.code.is.co
96c0 6e 66 69 6e 65 64 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 66 75 6e 63 74 69 6f 6e 2c 20 74 68 65 nfined.to.a.single.function,.the
96e0 20 72 65 73 74 20 6f 66 20 74 68 65 20 63 6f 64 65 20 63 61 6e 20 62 65 20 6c 65 66 74 20 75 6e .rest.of.the.code.can.be.left.un
9700 74 6f 75 63 68 65 64 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 touched.as.long.as.the.internal.
9720 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 72 65 6d 61 69 6e 73 20 63 6f 6d 70 61 74 69 62 6c representation.remains.compatibl
9740 65 2e 00 54 68 65 20 60 60 6d 61 6b 65 20 74 65 73 74 60 60 20 63 6f 6d 6d 61 6e 64 20 66 72 6f e..The.``make.test``.command.fro
9760 6d 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 5f 20 72 65 70 6f 73 69 74 6f 72 79 20 77 69 6c m.the.vyos-build_.repository.wil
9780 6c 20 6c 61 75 6e 63 68 20 61 20 6e 65 77 20 51 45 6d 75 20 69 6e 73 74 61 6e 63 65 20 61 6e 64 l.launch.a.new.QEmu.instance.and
97a0 20 74 68 65 20 49 53 4f 20 69 6d 61 67 65 20 69 73 20 66 69 72 73 74 20 69 6e 73 74 61 6c 6c 65 .the.ISO.image.is.first.installe
97c0 64 20 74 6f 20 74 68 65 20 76 69 72 74 75 61 6c 20 68 61 72 64 64 69 73 6b 2e 00 54 68 65 20 60 d.to.the.virtual.harddisk..The.`
97e0 60 76 65 72 69 66 79 28 29 60 60 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 79 6f 75 72 20 `verify()``.function.takes.your.
9800 69 6e 74 65 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 internal.representation.of.the.c
9820 6f 6e 66 69 67 20 61 6e 64 20 63 68 65 63 6b 73 20 69 66 20 69 74 27 73 20 76 61 6c 69 64 2c 20 onfig.and.checks.if.it's.valid,.
9840 6f 74 68 65 72 77 69 73 65 20 69 74 20 6d 75 73 74 20 72 61 69 73 65 20 60 60 43 6f 6e 66 69 67 otherwise.it.must.raise.``Config
9860 45 72 72 6f 72 60 60 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 74 68 Error``.with.an.error.message.th
9880 61 74 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 61 6e 64 20 70 6f 73 at.describes.the.problem.and.pos
98a0 73 69 62 6c 79 20 73 75 67 67 65 73 74 73 20 68 6f 77 20 74 6f 20 66 69 78 20 69 74 2e 20 49 74 sibly.suggests.how.to.fix.it..It
98c0 20 6d 75 73 74 20 6e 6f 74 20 6d 61 6b 65 20 61 6e 79 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 .must.not.make.any.changes.to.th
98e0 65 20 73 79 73 74 65 6d 2e 20 54 68 65 20 72 61 74 69 6f 6e 61 6c 65 20 66 6f 72 20 69 74 20 69 e.system..The.rationale.for.it.i
9900 73 20 61 67 61 69 6e 20 74 65 73 74 61 62 69 6c 69 74 79 20 61 6e 64 2c 20 69 6e 20 74 68 65 20 s.again.testability.and,.in.the.
9920 66 75 74 75 72 65 20 77 68 65 6e 20 74 68 65 20 63 6f 6e 66 69 67 20 62 61 63 6b 65 6e 64 20 69 future.when.the.config.backend.i
9940 73 20 72 65 61 64 79 20 61 6e 64 20 65 76 65 72 79 20 73 63 72 69 70 74 20 69 73 20 72 65 77 72 s.ready.and.every.script.is.rewr
9960 69 74 74 65 6e 20 69 6e 20 74 68 69 73 20 66 61 73 68 69 6f 6e 2c 20 61 62 69 6c 69 74 79 20 74 itten.in.this.fashion,.ability.t
9980 6f 20 65 78 65 63 75 74 65 20 63 6f 6d 6d 69 74 20 64 72 79 20 72 75 6e 20 28 22 63 6f 6d 6d 69 o.execute.commit.dry.run.("commi
99a0 74 20 74 65 73 74 22 20 6c 69 6b 65 20 69 6e 20 4a 75 6e 4f 53 29 20 61 6e 64 20 61 62 6f 72 74 t.test".like.in.JunOS).and.abort
99c0 20 63 6f 6d 6d 69 74 20 62 65 66 6f 72 65 20 6d 61 6b 69 6e 67 20 61 6e 79 20 63 68 61 6e 67 65 .commit.before.making.any.change
99e0 73 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d 20 69 66 20 61 6e 20 65 72 72 6f 72 20 69 73 20 66 s.to.the.system.if.an.error.is.f
9a00 6f 75 6e 64 20 69 6e 20 61 6e 79 20 63 6f 6d 70 6f 6e 65 6e 74 2e 00 54 68 65 20 62 61 73 68 20 ound.in.any.component..The.bash.
9a20 28 6f 72 20 62 65 74 74 65 72 20 76 62 61 73 68 29 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 69 6e 20 (or.better.vbash).completion.in.
9a40 56 79 4f 53 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 2a 74 65 6d 70 6c 61 74 65 73 2a 2e 20 VyOS.is.defined.in.*templates*..
9a60 54 65 6d 70 6c 61 74 65 73 20 61 72 65 20 74 65 78 74 20 66 69 6c 65 73 20 28 63 61 6c 6c 65 64 Templates.are.text.files.(called
9a80 20 60 60 6e 6f 64 65 2e 64 65 66 60 60 29 20 73 74 6f 72 65 64 20 69 6e 20 61 20 64 69 72 65 63 .``node.def``).stored.in.a.direc
9aa0 74 6f 72 79 20 74 72 65 65 2e 20 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 20 64 tory.tree..The.directory.names.d
9ac0 65 66 69 6e 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 73 2c 20 61 6e 64 20 74 65 6d efine.the.command.names,.and.tem
9ae0 70 6c 61 74 65 20 66 69 6c 65 73 20 64 65 66 69 6e 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 62 plate.files.define.the.command.b
9b00 65 68 61 76 69 6f 75 72 2e 20 42 65 66 6f 72 65 20 56 79 4f 53 20 31 2e 32 20 28 63 72 75 78 29 ehaviour..Before.VyOS.1.2.(crux)
9b20 20 74 68 69 73 20 66 69 6c 65 73 20 77 65 72 65 20 63 72 65 61 74 65 64 20 62 79 20 68 61 6e 64 .this.files.were.created.by.hand
9b40 2e 20 41 66 74 65 72 20 61 20 63 6f 6d 70 6c 65 78 20 72 65 64 65 73 69 67 6e 20 70 72 6f 63 65 ..After.a.complex.redesign.proce
9b60 73 73 5f 20 74 68 65 20 6e 65 77 20 73 74 79 6c 65 20 74 65 6d 70 6c 61 74 65 20 61 72 65 20 61 ss_.the.new.style.template.are.a
9b80 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 20 61 20 58 4d utomatically.generated.from.a.XM
9ba0 4c 20 69 6e 70 75 74 20 66 69 6c 65 2e 00 54 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 20 L.input.file..The.build.process.
9bc0 6e 65 65 64 73 20 74 6f 20 62 65 20 62 75 69 6c 74 20 6f 6e 20 61 20 6c 6f 63 61 6c 20 66 69 6c needs.to.be.built.on.a.local.fil
9be0 65 20 73 79 73 74 65 6d 2c 20 62 75 69 6c 64 69 6e 67 20 6f 6e 20 53 4d 42 20 6f 72 20 4e 46 53 e.system,.building.on.SMB.or.NFS
9c00 20 73 68 61 72 65 73 20 77 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 74 68 65 20 63 6f 6e 74 61 .shares.will.result.in.the.conta
9c20 69 6e 65 72 20 66 61 69 6c 69 6e 67 20 74 6f 20 62 75 69 6c 64 20 70 72 6f 70 65 72 6c 79 21 20 iner.failing.to.build.properly!.
9c40 56 69 72 74 75 61 6c 42 6f 78 20 44 72 69 76 65 20 53 68 61 72 65 20 69 73 20 61 6c 73 6f 20 6e VirtualBox.Drive.Share.is.also.n
9c60 6f 74 20 61 6e 20 6f 70 74 69 6f 6e 20 61 73 20 62 6c 6f 63 6b 20 64 65 76 69 63 65 20 6f 70 65 ot.an.option.as.block.device.ope
9c80 72 61 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 6e 64 20 rations.are.not.implemented.and.
9ca0 74 68 65 20 64 72 69 76 65 20 69 73 20 61 6c 77 61 79 73 20 6d 6f 75 6e 74 65 64 20 61 73 20 22 the.drive.is.always.mounted.as."
9cc0 6e 6f 64 65 76 22 00 54 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 61 72 65 20 61 6c nodev".The.configurations.are.al
9ce0 6c 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 70 72 6f 64 75 63 74 69 6f 6e 20 73 79 73 74 65 6d l.derived.from.production.system
9d00 73 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 6f 6e 6c 79 20 61 63 74 20 61 73 20 61 20 74 65 73 74 s.and.can.not.only.act.as.a.test
9d20 63 61 73 65 20 62 75 74 20 61 6c 73 6f 20 61 73 20 72 65 66 65 72 65 6e 63 65 20 69 66 20 6f 6e case.but.also.as.reference.if.on
9d40 65 20 77 61 6e 74 73 20 74 6f 20 65 6e 61 62 6c 65 20 61 20 63 65 72 74 61 69 6e 20 66 65 61 74 e.wants.to.enable.a.certain.feat
9d60 75 72 65 2e 20 54 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 66 ure..The.configurations.can.be.f
9d80 6f 75 6e 64 20 68 65 72 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 ound.here:.https://github.com/vy
9da0 6f 73 2f 76 79 6f 73 2d 31 78 2f 74 72 65 65 2f 63 75 72 72 65 6e 74 2f 73 6d 6f 6b 65 74 65 73 os/vyos-1x/tree/current/smoketes
9dc0 74 2f 63 6f 6e 66 69 67 73 00 54 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 63 61 6e 20 61 6c 73 6f t/configs.The.container.can.also
9de0 20 62 65 20 62 75 69 6c 74 20 64 69 72 65 63 74 6c 79 20 66 72 6f 6d 20 73 6f 75 72 63 65 3a 00 .be.built.directly.from.source:.
9e00 54 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 63 61 6e 20 62 65 20 62 75 69 6c 74 20 62 79 20 68 61 The.container.can.be.built.by.ha
9e20 6e 64 20 6f 72 20 62 79 20 66 65 74 63 68 69 6e 67 20 74 68 65 20 70 72 65 2d 62 75 69 6c 74 20 nd.or.by.fetching.the.pre-built.
9e40 6f 6e 65 20 66 72 6f 6d 20 44 6f 63 6b 65 72 48 75 62 2e 20 55 73 69 6e 67 20 74 68 65 20 70 72 one.from.DockerHub..Using.the.pr
9e60 65 2d 62 75 69 6c 74 20 63 6f 6e 74 61 69 6e 65 72 73 20 66 72 6f 6d 20 74 68 65 20 60 56 79 4f e-built.containers.from.the.`VyO
9e80 53 20 44 6f 63 6b 65 72 48 75 62 20 6f 72 67 61 6e 69 73 61 74 69 6f 6e 60 5f 20 77 69 6c 6c 20 S.DockerHub.organisation`_.will.
9ea0 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 69 73 20 61 6c 77 ensure.that.the.container.is.alw
9ec0 61 79 73 20 75 70 2d 74 6f 2d 64 61 74 65 2e 20 41 20 72 65 62 75 69 6c 64 20 69 73 20 74 72 69 ays.up-to-date..A.rebuild.is.tri
9ee0 67 67 65 72 65 64 20 6f 6e 63 65 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 63 68 61 6e 67 65 ggered.once.the.container.change
9f00 73 20 28 70 6c 65 61 73 65 20 6e 6f 74 65 20 74 68 69 73 20 77 69 6c 6c 20 74 61 6b 65 20 32 2d s.(please.note.this.will.take.2-
9f20 33 20 68 6f 75 72 73 20 61 66 74 65 72 20 70 75 73 68 69 6e 67 20 74 6f 20 74 68 65 20 76 79 6f 3.hours.after.pushing.to.the.vyo
9f40 73 2d 62 75 69 6c 64 20 72 65 70 6f 73 69 74 6f 72 79 29 2e 00 54 68 65 20 64 65 66 61 75 6c 74 s-build.repository)..The.default
9f60 20 74 65 6d 70 6c 61 74 65 20 70 72 6f 63 65 73 73 6f 72 20 66 6f 72 20 56 79 4f 53 20 63 6f 64 .template.processor.for.VyOS.cod
9f80 65 20 69 73 20 4a 69 6e 6a 61 32 5f 2e 00 54 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f e.is.Jinja2_..The.easiest.way.to
9fa0 20 63 6f 6d 70 69 6c 65 20 79 6f 75 72 20 70 61 63 6b 61 67 65 20 69 73 20 77 69 74 68 20 74 68 .compile.your.package.is.with.th
9fc0 65 20 61 62 6f 76 65 20 6d 65 6e 74 69 6f 6e 65 64 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 64 6f e.above.mentioned.:ref:`build_do
9fe0 63 6b 65 72 60 20 63 6f 6e 74 61 69 6e 65 72 2c 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61 6c 6c cker`.container,.it.includes.all
a000 20 72 65 71 75 69 72 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 61 6c 6c 20 56 .required.dependencies.for.all.V
a020 79 4f 53 20 72 65 6c 61 74 65 64 20 70 61 63 6b 61 67 65 73 2e 00 54 68 65 20 65 6e 74 69 72 65 yOS.related.packages..The.entire
a040 20 74 65 73 74 20 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 65 20 6d 61 69 6e 20 .test.is.controlled.by.the.main.
a060 77 72 61 70 70 65 72 20 73 63 72 69 70 74 20 60 60 2f 75 73 72 2f 62 69 6e 2f 76 79 6f 73 2d 63 wrapper.script.``/usr/bin/vyos-c
a080 6f 6e 66 69 67 74 65 73 74 60 60 20 77 68 69 63 68 20 62 65 68 61 76 65 73 20 69 6e 20 74 68 65 onfigtest``.which.behaves.in.the
a0a0 20 73 61 6d 65 20 77 61 79 20 61 73 20 74 68 65 20 6d 61 69 6e 20 73 6d 6f 6b 65 74 65 73 74 20 .same.way.as.the.main.smoketest.
a0c0 73 63 72 69 70 74 2e 20 49 74 20 73 63 61 6e 73 20 74 68 65 20 66 6f 6c 64 65 72 20 66 6f 72 20 script..It.scans.the.folder.for.
a0e0 70 6f 74 65 6e 74 69 61 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 73 20 61 6e potential.configuration.files.an
a100 64 20 69 73 73 75 65 73 20 61 20 60 60 6c 6f 61 64 60 60 20 63 6f 6d 6d 61 6e 64 20 6f 6e 65 20 d.issues.a.``load``.command.one.
a120 61 66 74 65 72 20 61 6e 6f 74 68 65 72 2e 00 54 68 65 20 66 69 6c 65 20 63 61 6e 20 62 65 20 70 after.another..The.file.can.be.p
a140 6c 61 63 65 64 20 69 6e 20 60 60 2f 74 6d 70 60 60 20 66 6f 72 20 6f 6e 65 20 74 69 6d 65 20 64 laced.in.``/tmp``.for.one.time.d
a160 65 62 75 67 67 69 6e 67 20 28 61 73 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 20 72 65 ebugging.(as.the.file.will.be.re
a180 6d 6f 76 65 64 20 6f 6e 20 72 65 62 6f 6f 74 29 20 6f 72 20 70 6c 61 63 65 64 20 69 6e 20 27 2f moved.on.reboot).or.placed.in.'/
a1a0 63 6f 6e 66 69 67 27 20 74 6f 20 73 74 61 79 20 70 65 72 6d 61 6e 65 6e 74 6c 79 2e 00 54 68 65 config'.to.stay.permanently..The
a1c0 20 66 69 72 73 74 20 77 6f 72 64 20 6f 66 20 65 76 65 72 79 20 68 65 6c 70 20 73 74 72 69 6e 67 .first.word.of.every.help.string
a1e0 20 2a 2a 6d 75 73 74 2a 2a 20 62 65 20 63 61 70 69 74 61 6c 69 7a 65 64 2e 20 54 68 65 72 65 20 .**must**.be.capitalized..There.
a200 2a 2a 6d 75 73 74 20 6e 6f 74 2a 2a 20 62 65 20 61 20 70 65 72 69 6f 64 20 61 74 20 74 68 65 20 **must.not**.be.a.period.at.the.
a220 65 6e 64 20 6f 66 20 68 65 6c 70 20 73 74 72 69 6e 67 73 2e 00 54 68 65 20 66 6f 6c 6c 6f 77 69 end.of.help.strings..The.followi
a240 6e 67 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 20 66 6f ng.includes.the.build.process.fo
a260 72 20 56 79 4f 53 20 31 2e 32 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e r.VyOS.1.2.to.the.latest.version
a280 2e 00 54 68 65 20 66 6f 72 6d 61 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 64 20 69 73 20 69 6e ..The.format.should.be.and.is.in
a2a0 73 70 69 72 65 64 20 62 79 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 2d 73 63 6d 2e 63 6f 6d 2f 62 spired.by:.https://git-scm.com/b
a2c0 6f 6f 6b 2f 63 68 35 2d 32 2e 68 74 6d 6c 20 49 74 20 69 73 20 61 6c 73 6f 20 77 6f 72 74 68 20 ook/ch5-2.html.It.is.also.worth.
a2e0 72 65 61 64 69 6e 67 20 68 74 74 70 73 3a 2f 2f 63 68 72 69 73 2e 62 65 61 6d 73 2e 69 6f 2f 70 reading.https://chris.beams.io/p
a300 6f 73 74 73 2f 67 69 74 2d 63 6f 6d 6d 69 74 2f 00 54 68 65 20 67 72 65 61 74 20 74 68 69 6e 67 osts/git-commit/.The.great.thing
a320 20 61 62 6f 75 74 20 73 63 68 65 6d 61 73 20 69 73 20 6e 6f 74 20 6f 6e 6c 79 20 74 68 61 74 20 .about.schemas.is.not.only.that.
a340 70 65 6f 70 6c 65 20 63 61 6e 20 6b 6e 6f 77 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 67 72 61 people.can.know.the.complete.gra
a360 6d 6d 61 72 20 66 6f 72 20 63 65 72 74 61 69 6e 2c 20 62 75 74 20 61 6c 73 6f 20 74 68 61 74 20 mmar.for.certain,.but.also.that.
a380 69 74 20 63 61 6e 20 62 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 76 65 72 69 66 69 65 64 it.can.be.automatically.verified
a3a0 2e 20 54 68 65 20 60 73 63 72 69 70 74 73 2f 62 75 69 6c 64 2d 63 6f 6d 6d 61 6e 64 2d 74 65 6d ..The.`scripts/build-command-tem
a3c0 70 6c 61 74 65 73 60 20 73 63 72 69 70 74 20 74 68 61 74 20 63 6f 6e 76 65 72 74 73 20 74 68 65 plates`.script.that.converts.the
a3e0 20 58 4d 4c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 74 6f 20 6f 6c 64 20 73 74 79 6c 65 20 74 65 .XML.definitions.to.old.style.te
a400 6d 70 6c 61 74 65 73 20 61 6c 73 6f 20 76 65 72 69 66 69 65 73 20 74 68 65 6d 20 61 67 61 69 6e mplates.also.verifies.them.again
a420 73 74 20 74 68 65 20 73 63 68 65 6d 61 2c 20 73 6f 20 61 20 62 61 64 20 64 65 66 69 6e 69 74 69 st.the.schema,.so.a.bad.definiti
a440 6f 6e 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 62 75 69 6c 64 20 on.will.cause.the.package.build.
a460 74 6f 20 66 61 69 6c 2e 20 49 20 64 6f 20 61 67 72 65 65 20 74 68 61 74 20 74 68 65 20 66 6f 72 to.fail..I.do.agree.that.the.for
a480 6d 61 74 20 69 73 20 76 65 72 62 6f 73 65 2c 20 62 75 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 mat.is.verbose,.but.there.is.no.
a4a0 6f 74 68 65 72 20 66 6f 72 6d 61 74 20 6e 6f 77 20 74 68 61 74 20 77 6f 75 6c 64 20 61 6c 6c 6f other.format.now.that.would.allo
a4c0 77 20 74 68 69 73 2e 20 42 65 73 69 64 65 73 2c 20 61 20 73 70 65 63 69 61 6c 69 7a 65 64 20 58 w.this..Besides,.a.specialized.X
a4e0 4d 4c 20 65 64 69 74 6f 72 20 63 61 6e 20 61 6c 6c 65 76 69 61 74 65 20 74 68 65 20 69 73 73 75 ML.editor.can.alleviate.the.issu
a500 65 20 77 69 74 68 20 76 65 72 62 6f 73 69 74 79 2e 00 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f e.with.verbosity..The.informatio
a520 6e 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 72 65 65 20 77 61 79 73 3a 00 54 68 65 20 6b 65 72 n.is.used.in.three.ways:.The.ker
a540 6e 65 6c 20 62 75 69 6c 64 20 69 73 20 71 75 69 74 65 20 65 61 73 79 2c 20 6d 6f 73 74 20 6f 66 nel.build.is.quite.easy,.most.of
a560 20 74 68 65 20 72 65 71 75 69 72 65 64 20 73 74 65 70 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 .the.required.steps.can.be.found
a580 20 69 6e 20 74 68 65 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 .in.the.``vyos-build/packages/li
a5a0 6e 75 78 2d 6b 65 72 6e 65 6c 2f 4a 65 6e 6b 69 6e 73 66 69 6c 65 60 60 20 62 75 74 20 77 65 20 nux-kernel/Jenkinsfile``.but.we.
a5c0 77 69 6c 6c 20 77 61 6c 6b 20 79 6f 75 20 74 68 72 6f 75 67 68 20 69 74 2e 00 54 68 65 20 6d 6f will.walk.you.through.it..The.mo
a5e0 73 74 20 6f 62 76 69 6f 75 73 20 72 65 61 73 6f 6e 73 20 63 6f 75 6c 64 20 62 65 3a 00 54 68 65 st.obvious.reasons.could.be:.The
a600 20 6f 72 69 67 69 6e 61 6c 20 72 65 70 6f 20 69 73 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 .original.repo.is.at.https://git
a620 68 75 62 2e 63 6f 6d 2f 64 6d 62 61 74 75 72 69 6e 2f 68 76 69 6e 66 6f 00 54 68 65 20 6f 74 68 hub.com/dmbaturin/hvinfo.The.oth
a640 65 72 20 70 61 72 74 20 6f 66 20 6f 75 72 20 74 65 73 74 73 20 61 72 65 20 63 61 6c 6c 65 64 20 er.part.of.our.tests.are.called.
a660 22 63 6f 6e 66 69 67 20 6c 6f 61 64 20 74 65 73 74 73 22 2e 20 54 68 65 20 63 6f 6e 66 69 67 20 "config.load.tests"..The.config.
a680 6c 6f 61 64 20 74 65 73 74 73 20 77 69 6c 6c 20 6c 6f 61 64 20 2d 20 6f 6e 65 20 61 66 74 65 72 load.tests.will.load.-.one.after
a6a0 20 61 6e 6f 74 68 65 72 20 2d 20 61 72 62 69 74 72 61 72 79 20 63 6f 6e 66 69 67 75 72 61 74 69 .another.-.arbitrary.configurati
a6c0 6f 6e 20 66 69 6c 65 73 20 74 6f 20 74 65 73 74 20 69 66 20 74 68 65 20 63 6f 6e 66 69 67 75 72 on.files.to.test.if.the.configur
a6e0 61 74 69 6f 6e 20 6d 69 67 72 61 74 69 6f 6e 20 73 63 72 69 70 74 73 20 77 6f 72 6b 20 61 73 20 ation.migration.scripts.work.as.
a700 64 65 73 69 67 6e 65 64 20 61 6e 64 20 74 68 61 74 20 61 20 67 69 76 65 6e 20 73 65 74 20 6f 66 designed.and.that.a.given.set.of
a720 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 73 74 69 6c 6c 20 63 61 6e 20 62 65 20 6c 6f 61 64 .functionality.still.can.be.load
a740 65 64 20 77 69 74 68 20 61 20 66 72 65 73 68 20 56 79 4f 53 20 49 53 4f 20 69 6d 61 67 65 2e 00 ed.with.a.fresh.VyOS.ISO.image..
a760 54 68 65 20 6f 75 74 70 75 74 20 79 6f 75 20 67 65 74 20 77 68 65 6e 20 79 6f 75 20 66 69 6e 64 The.output.you.get.when.you.find
a780 20 61 20 62 75 67 20 63 61 6e 20 70 72 6f 76 69 64 65 20 6c 6f 74 73 20 6f 66 20 69 6e 66 6f 72 .a.bug.can.provide.lots.of.infor
a7a0 6d 61 74 69 6f 6e 2e 20 49 66 20 79 6f 75 20 67 65 74 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 mation..If.you.get.an.error.mess
a7c0 61 67 65 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 2c 20 63 6f 70 79 20 69 74 20 65 78 61 63 74 age.on.the.screen,.copy.it.exact
a7e0 6c 79 2e 20 48 61 76 69 6e 67 20 74 68 65 20 65 78 61 63 74 20 6d 65 73 73 61 67 65 20 63 61 6e ly..Having.the.exact.message.can
a800 20 70 72 6f 76 69 64 65 20 64 65 74 61 69 6c 20 74 68 61 74 20 74 68 65 20 64 65 76 65 6c 6f 70 .provide.detail.that.the.develop
a820 65 72 73 20 63 61 6e 20 75 73 65 2e 20 4c 69 6b 65 20 77 69 73 65 20 69 66 20 79 6f 75 20 68 61 ers.can.use..Like.wise.if.you.ha
a840 76 65 20 61 6e 79 20 6c 6f 67 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 61 6c 73 6f 20 61 72 ve.any.log.messages.that.also.ar
a860 65 20 66 72 6f 6d 20 74 68 65 20 74 69 6d 65 20 6f 66 20 74 68 65 20 69 73 73 75 65 2c 20 69 6e e.from.the.time.of.the.issue,.in
a880 63 6c 75 64 65 20 74 68 6f 73 65 2e 20 54 68 65 79 20 6d 61 79 20 61 6c 73 6f 20 63 6f 6e 74 61 clude.those..They.may.also.conta
a8a0 69 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 68 61 74 20 69 73 20 68 65 6c 70 66 75 6c 20 66 in.information.that.is.helpful.f
a8c0 6f 72 20 74 68 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 74 65 61 6d 2e 00 54 68 65 20 70 61 63 or.the.development.team..The.pac
a8e0 6b 61 67 65 20 65 6e 64 73 20 75 70 20 69 6e 20 64 65 62 5f 64 69 73 74 20 64 69 72 2e 00 54 68 kage.ends.up.in.deb_dist.dir..Th
a900 65 20 72 65 61 73 6f 6e 20 69 73 20 74 68 61 74 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 e.reason.is.that.the.configurati
a920 6f 6e 20 6d 69 67 72 61 74 69 6f 6e 20 62 61 63 6b 65 6e 64 20 69 73 20 72 65 77 72 69 74 74 65 on.migration.backend.is.rewritte
a940 6e 20 61 6e 64 20 75 73 65 73 20 61 20 6e 65 77 20 66 6f 72 6d 20 6f 66 20 22 6d 61 67 69 63 20 n.and.uses.a.new.form.of."magic.
a960 73 74 72 69 6e 67 22 20 77 68 69 63 68 20 69 73 20 61 70 70 6c 69 65 64 20 6f 6e 20 64 65 6d 61 string".which.is.applied.on.dema
a980 6e 64 20 77 68 65 6e 20 72 65 61 6c 20 63 6f 6e 66 69 67 20 6d 69 67 72 61 74 69 6f 6e 20 69 73 nd.when.real.config.migration.is
a9a0 20 72 75 6e 20 6f 6e 20 62 6f 6f 74 2e 20 57 68 65 6e 20 72 75 6e 6e 69 6e 74 20 69 6e 64 69 76 .run.on.boot..When.runnint.indiv
a9c0 69 64 75 61 6c 20 6d 69 67 72 61 74 6f 72 73 20 66 6f 72 20 74 65 73 74 69 6e 67 2c 20 79 6f 75 idual.migrators.for.testing,.you
a9e0 20 6e 65 65 64 20 74 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 22 6d 61 67 69 63 20 73 74 72 69 .need.to.convert.the."magic.stri
aa00 6e 67 22 20 6f 6e 20 79 6f 75 72 20 6f 77 6e 20 62 79 3a 00 54 68 65 20 72 65 70 6f 73 69 74 6f ng".on.your.own.by:.The.reposito
aa20 72 79 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 74 68 65 20 49 53 4f 20 62 75 69 ry.that.contains.all.the.ISO.bui
aa40 6c 64 20 73 63 72 69 70 74 73 20 69 73 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f ld.scripts.is:.https://github.co
aa60 6d 2f 76 79 6f 73 2f 76 79 6f 73 2d 62 75 69 6c 64 00 54 68 65 20 73 63 72 69 70 74 20 6f 6e 6c m/vyos/vyos-build.The.script.onl
aa80 79 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 65 78 65 63 75 74 61 62 6c 65 20 22 74 65 73 74 2d y.searches.for.executable."test-
aaa0 63 61 73 65 73 22 20 75 6e 64 65 72 20 60 60 2f 75 73 72 2f 6c 69 62 65 78 65 63 2f 76 79 6f 73 cases".under.``/usr/libexec/vyos
aac0 2f 74 65 73 74 73 2f 73 6d 6f 6b 65 2f 63 6c 69 2f 60 60 20 61 6e 64 20 65 78 65 63 75 74 65 73 /tests/smoke/cli/``.and.executes
aae0 20 74 68 65 6d 20 6f 6e 65 20 62 79 20 6f 6e 65 2e 00 54 68 65 20 73 6f 75 72 63 65 20 63 6f 64 .them.one.by.one..The.source.cod
ab00 65 20 72 65 6d 61 69 6e 73 20 70 75 62 6c 69 63 20 61 6e 64 20 61 6e 20 49 53 4f 20 63 61 6e 20 e.remains.public.and.an.ISO.can.
ab20 62 65 20 62 75 69 6c 74 20 75 73 69 6e 67 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 75 74 6c 69 be.built.using.the.process.outli
ab40 6e 65 64 20 69 6e 20 74 68 69 73 20 63 68 61 70 74 65 72 2e 00 54 68 65 20 73 6f 75 72 63 65 20 ned.in.this.chapter..The.source.
ab60 69 73 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 is.at.https://github.com/vyos/vy
ab80 6f 73 2d 73 74 72 6f 6e 67 73 77 61 6e 00 54 68 65 20 73 6f 75 72 63 65 20 69 73 20 6c 6f 63 61 os-strongswan.The.source.is.loca
aba0 74 65 64 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 ted.at.https://github.com/vyos/v
abc0 79 6f 73 2d 6e 65 74 70 6c 75 67 00 54 68 65 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 50 79 yos-netplug.The.switch.to.the.Py
abe0 74 68 6f 6e 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 66 6f 72 20 6e 65 thon.programming.language.for.ne
ac00 77 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 6d 65 72 65 6c 79 20 61 20 63 68 61 6e 67 65 20 6f 66 w.code.is.not.merely.a.change.of
ac20 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2c 20 62 75 74 20 61 20 63 68 61 6e 63 65 20 74 6f 20 72 .the.language,.but.a.chance.to.r
ac40 65 74 68 69 6e 6b 20 61 6e 64 20 69 6d 70 72 6f 76 65 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 69 ethink.and.improve.the.programmi
ac60 6e 67 20 61 70 70 72 6f 61 63 68 2e 00 54 68 65 20 73 79 73 74 65 6d 20 73 74 61 72 74 75 70 20 ng.approach..The.system.startup.
ac80 63 61 6e 20 62 65 20 64 65 62 75 67 67 65 64 20 28 6c 69 6b 65 20 6c 6f 61 64 69 6e 67 20 69 6e can.be.debugged.(like.loading.in
aca0 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 60 60 2f .the.configuration.file.from.``/
acc0 63 6f 6e 66 69 67 2f 63 6f 6e 66 69 67 2e 62 6f 6f 74 60 60 2e 20 54 68 69 73 20 63 61 6e 20 62 config/config.boot``..This.can.b
ace0 65 20 61 63 68 69 65 76 65 20 62 79 20 65 78 74 65 6e 64 69 6e 67 20 74 68 65 20 4b 65 72 6e 65 e.achieve.by.extending.the.Kerne
ad00 6c 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 69 6e 20 74 68 65 20 62 6f 6f 74 6c 6f 61 64 65 72 l.command-line.in.the.bootloader
ad20 2e 00 54 68 65 72 65 20 61 72 65 20 28 72 61 72 65 29 20 73 69 74 75 61 74 69 6f 6e 73 20 77 68 ..There.are.(rare).situations.wh
ad40 65 72 65 20 62 75 69 6c 64 69 6e 67 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 69 73 20 6e 6f 74 ere.building.an.ISO.image.is.not
ad60 20 70 6f 73 73 69 62 6c 65 20 61 74 20 61 6c 6c 20 64 75 65 20 74 6f 20 61 20 62 72 6f 6b 65 6e .possible.at.all.due.to.a.broken
ad80 20 70 61 63 6b 61 67 65 20 66 65 65 64 20 69 6e 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 2e .package.feed.in.the.background.
ada0 20 41 50 54 20 69 73 20 6e 6f 74 20 76 65 72 79 20 67 6f 6f 64 20 61 74 20 72 65 70 6f 72 74 69 .APT.is.not.very.good.at.reporti
adc0 6e 67 20 74 68 65 20 72 6f 6f 74 20 63 61 75 73 65 20 6f 66 20 74 68 65 20 69 73 73 75 65 2e 20 ng.the.root.cause.of.the.issue..
ade0 59 6f 75 72 20 49 53 4f 20 62 75 69 6c 64 20 77 69 6c 6c 20 6c 69 6b 65 6c 79 20 66 61 69 6c 20 Your.ISO.build.will.likely.fail.
ae00 77 69 74 68 20 61 20 6d 6f 72 65 20 6f 72 20 6c 65 73 73 20 73 69 6d 69 6c 61 72 20 6c 6f 6f 6b with.a.more.or.less.similar.look
ae20 69 6e 67 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 3a 00 54 68 65 72 65 20 61 72 65 20 64 69 66 ing.error.message:.There.are.dif
ae40 66 65 72 65 6e 74 20 77 61 79 73 20 79 6f 75 20 63 61 6e 20 62 75 69 6c 64 20 56 79 4f 53 2e 00 ferent.ways.you.can.build.VyOS..
ae60 54 68 65 72 65 20 61 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 65 2e 67 2e 20 56 49 4d There.are.extensions.to.e.g..VIM
ae80 20 28 78 6d 6c 6c 69 6e 74 29 20 77 68 69 63 68 20 77 69 6c 6c 20 68 65 6c 70 20 79 6f 75 20 74 .(xmllint).which.will.help.you.t
aea0 6f 20 67 65 74 20 79 6f 75 72 20 69 6e 64 65 6e 74 69 6f 6e 20 6c 65 76 65 6c 73 20 63 6f 72 72 o.get.your.indention.levels.corr
aec0 65 63 74 2e 20 41 64 64 20 74 6f 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 2e 76 ect..Add.to.following.to.your..v
aee0 69 6d 72 63 20 66 69 6c 65 3a 20 60 60 61 75 20 46 69 6c 65 54 79 70 65 20 78 6d 6c 20 73 65 74 imrc.file:.``au.FileType.xml.set
af00 6c 6f 63 61 6c 20 65 71 75 61 6c 70 72 67 3d 78 6d 6c 6c 69 6e 74 5c 20 2d 2d 66 6f 72 6d 61 74 local.equalprg=xmllint\.--format
af20 5c 20 2d 2d 72 65 63 6f 76 65 72 5c 20 2d 5c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 60 20 6e 6f \.--recover\.-\.2>/dev/null``.no
af40 77 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 74 68 65 20 6c 69 6e 74 65 72 20 75 73 69 6e 67 20 w.you.can.call.the.linter.using.
af60 60 60 67 67 3d 47 60 60 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65 2e 00 54 68 65 72 65 20 ``gg=G``.in.command.mode..There.
af80 61 72 65 20 74 77 6f 20 66 6c 61 67 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 61 69 64 20 69 are.two.flags.available.to.aid.i
afa0 6e 20 64 65 62 75 67 67 69 6e 67 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 69 70 74 n.debugging.configuration.script
afc0 73 2e 20 53 69 6e 63 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6c 6f 61 64 69 6e 67 20 69 s..Since.configuration.loading.i
afe0 73 73 75 65 73 20 77 69 6c 6c 20 6d 61 6e 69 66 65 73 74 20 64 75 72 69 6e 67 20 62 6f 6f 74 2c ssues.will.manifest.during.boot,
b000 20 74 68 65 20 66 6c 61 67 73 20 61 72 65 20 70 61 73 73 65 64 20 61 73 20 6b 65 72 6e 65 6c 20 .the.flags.are.passed.as.kernel.
b020 62 6f 6f 74 20 70 61 72 61 6d 65 74 65 72 73 2e 00 54 68 69 73 20 49 53 4f 20 63 61 6e 20 62 65 boot.parameters..This.ISO.can.be
b040 20 63 75 73 74 6f 6d 69 7a 65 64 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c .customized.with.the.following.l
b060 69 73 74 20 6f 66 20 63 6f 6e 66 69 67 75 72 65 20 6f 70 74 69 6f 6e 73 2e 20 54 68 65 20 66 75 ist.of.configure.options..The.fu
b080 6c 6c 20 61 6e 64 20 63 75 72 72 65 6e 74 20 6c 69 73 74 20 63 61 6e 20 62 65 20 67 65 6e 65 72 ll.and.current.list.can.be.gener
b0a0 61 74 65 64 20 77 69 74 68 20 60 60 2e 2f 62 75 69 6c 64 2d 76 79 6f 73 2d 69 6d 61 67 65 20 2d ated.with.``./build-vyos-image.-
b0c0 2d 68 65 6c 70 60 60 3a 00 54 68 69 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 64 6f 6e 65 20 70 -help``:.This.can.also.be.done.p
b0e0 65 72 6d 61 6e 65 6e 74 6c 79 20 62 79 20 63 68 61 6e 67 69 6e 67 20 60 60 2f 62 6f 6f 74 2f 67 ermanently.by.changing.``/boot/g
b100 72 75 62 2f 67 72 75 62 2e 63 66 67 60 60 2e 00 54 68 69 73 20 63 68 61 70 74 65 72 20 6c 69 73 rub/grub.cfg``..This.chapter.lis
b120 74 73 20 74 68 6f 73 65 20 65 78 63 65 70 74 69 6f 6e 73 20 61 6e 64 20 67 69 76 65 73 20 79 6f ts.those.exceptions.and.gives.yo
b140 75 20 61 20 62 72 69 65 66 20 6f 76 65 72 76 69 65 77 20 77 68 61 74 20 77 65 20 68 61 76 65 20 u.a.brief.overview.what.we.have.
b160 64 6f 6e 65 20 6f 6e 20 74 68 6f 73 65 20 70 61 63 6b 61 67 65 73 2e 20 49 66 20 79 6f 75 20 6f done.on.those.packages..If.you.o
b180 6e 6c 79 20 77 61 6e 74 20 74 6f 20 62 75 69 6c 64 20 79 6f 75 72 73 65 6c 66 20 61 20 66 72 65 nly.want.to.build.yourself.a.fre
b1a0 73 68 20 49 53 4f 20 79 6f 75 20 63 61 6e 20 63 6f 6d 70 6c 65 74 65 6c 79 20 73 6b 69 70 20 74 sh.ISO.you.can.completely.skip.t
b1c0 68 69 73 20 63 68 61 70 74 65 72 2e 20 49 74 20 6d 61 79 20 62 65 63 6f 6d 65 20 69 6e 74 65 72 his.chapter..It.may.become.inter
b1e0 65 73 74 69 6e 67 20 6f 6e 63 65 20 79 6f 75 20 68 61 76 65 20 61 20 56 79 4f 53 20 64 65 65 70 esting.once.you.have.a.VyOS.deep
b200 20 64 69 76 65 2e 00 54 68 69 73 20 69 73 20 64 6f 6e 65 20 62 79 20 75 74 69 6c 69 7a 69 6e 67 .dive..This.is.done.by.utilizing
b220 20 74 68 65 20 60 60 73 79 73 74 65 6d 64 2d 62 6f 6f 74 63 68 61 72 74 60 60 20 70 61 63 6b 61 .the.``systemd-bootchart``.packa
b240 67 65 20 77 68 69 63 68 20 69 73 20 6e 6f 77 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 64 65 66 ge.which.is.now.installed.by.def
b260 61 75 6c 74 20 6f 6e 20 74 68 65 20 56 79 4f 53 20 31 2e 33 20 28 65 71 75 75 6c 65 75 73 29 20 ault.on.the.VyOS.1.3.(equuleus).
b280 62 72 61 6e 63 68 2e 20 54 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 61 6c 73 branch..The.configuration.is.als
b2a0 6f 20 76 65 72 73 69 6f 6e 65 64 20 73 6f 20 77 65 20 67 65 74 20 63 6f 6d 70 61 72 61 62 6c 65 o.versioned.so.we.get.comparable
b2c0 20 72 65 73 75 6c 74 73 2e 20 60 60 73 79 73 74 65 6d 64 2d 62 6f 6f 74 63 68 61 72 74 60 60 20 .results..``systemd-bootchart``.
b2e0 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 75 73 69 6e 67 20 74 68 69 73 20 66 69 6c 65 3a 20 62 is.configured.using.this.file:.b
b300 6f 6f 74 63 68 61 72 74 2e 63 6f 6e 66 5f 00 54 68 69 73 20 6d 65 61 6e 73 20 74 68 65 20 66 69 ootchart.conf_.This.means.the.fi
b320 6c 65 20 69 6e 20 71 75 65 73 74 69 6f 6e 20 28 60 60 2f 6f 70 74 2f 76 79 61 74 74 61 2f 73 62 le.in.question.(``/opt/vyatta/sb
b340 69 6e 2f 76 79 61 74 74 61 2d 75 70 64 61 74 65 2d 77 65 62 70 72 6f 78 79 2e 70 6c 60 60 29 20 in/vyatta-update-webproxy.pl``).
b360 69 73 20 6c 6f 63 61 74 65 64 20 69 6e 20 74 68 65 20 60 60 76 79 61 74 74 61 2d 77 65 62 70 72 is.located.in.the.``vyatta-webpr
b380 6f 78 79 60 60 20 70 61 63 6b 61 67 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 oxy``.package.which.can.be.found
b3a0 20 68 65 72 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 .here:.https://github.com/vyos/v
b3c0 79 61 74 74 61 2d 77 65 62 70 72 6f 78 79 00 54 68 69 73 20 70 61 63 6b 61 67 65 20 64 6f 65 73 yatta-webproxy.This.package.does
b3e0 6e 27 74 20 65 78 69 73 74 20 69 6e 20 44 65 62 69 61 6e 2e 20 41 20 64 65 62 69 61 6e 69 7a 65 n't.exist.in.Debian..A.debianize
b400 64 20 66 6f 72 6b 20 69 73 20 6b 65 70 74 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 d.fork.is.kept.at.https://github
b420 2e 63 6f 6d 2f 76 79 6f 73 2f 6d 64 6e 73 2d 72 65 70 65 61 74 65 72 00 54 68 69 73 20 70 61 63 .com/vyos/mdns-repeater.This.pac
b440 6b 61 67 65 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 69 6e 20 44 65 62 69 61 6e 2e 20 41 20 kage.doesn't.exist.in.Debian..A.
b460 64 65 62 69 61 6e 69 7a 65 64 20 66 6f 72 6b 20 69 73 20 6b 65 70 74 20 61 74 20 68 74 74 70 73 debianized.fork.is.kept.at.https
b480 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 75 64 70 2d 62 72 6f 61 64 63 61 73 74 ://github.com/vyos/udp-broadcast
b4a0 2d 72 65 6c 61 79 00 54 68 69 73 20 74 72 69 65 73 20 74 6f 20 61 75 74 6f 6d 61 74 69 63 61 6c -relay.This.tries.to.automatical
b4c0 6c 79 20 64 65 74 65 63 74 20 77 68 69 63 68 20 62 6c 6f 62 73 20 61 72 65 20 6e 65 65 64 65 64 ly.detect.which.blobs.are.needed
b4e0 20 62 61 73 65 64 20 6f 6e 20 77 68 69 63 68 20 64 72 69 76 65 72 73 20 77 65 72 65 20 62 75 69 .based.on.which.drivers.were.bui
b500 6c 74 2e 20 49 66 20 69 74 20 66 61 69 6c 73 20 74 6f 20 66 69 6e 64 20 74 68 65 20 63 6f 72 72 lt..If.it.fails.to.find.the.corr
b520 65 63 74 20 66 69 6c 65 73 20 79 6f 75 20 63 61 6e 20 61 64 64 20 74 68 65 6d 20 6d 61 6e 75 61 ect.files.you.can.add.them.manua
b540 6c 6c 79 20 74 6f 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e lly.to.``vyos-build/packages/lin
b560 75 78 2d 6b 65 72 6e 65 6c 2f 62 75 69 6c 64 2d 6c 69 6e 75 78 2d 66 69 72 6d 77 61 72 65 2e 73 ux-kernel/build-linux-firmware.s
b580 68 60 60 3a 00 54 68 69 73 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 h``:.This.will.guide.you.through
b5a0 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 61 20 56 79 4f 53 20 .the.process.of.building.a.VyOS.
b5c0 49 53 4f 20 75 73 69 6e 67 20 44 6f 63 6b 65 72 2e 20 54 68 69 73 20 70 72 6f 63 65 73 73 20 68 ISO.using.Docker..This.process.h
b5e0 61 73 20 62 65 65 6e 20 74 65 73 74 65 64 20 6f 6e 20 63 6c 65 61 6e 20 69 6e 73 74 61 6c 6c 73 as.been.tested.on.clean.installs
b600 20 6f 66 20 44 65 62 69 61 6e 20 42 75 6c 6c 73 65 79 65 20 28 31 31 29 20 61 6e 64 20 42 6f 6f .of.Debian.Bullseye.(11).and.Boo
b620 6b 77 6f 72 6d 20 28 31 32 29 2e 00 54 68 69 73 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 kworm.(12)..This.will.guide.you.
b640 74 68 72 6f 75 67 68 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 through.the.process.of.building.
b660 61 20 56 79 4f 53 20 49 53 4f 20 75 73 69 6e 67 20 44 6f 63 6b 65 72 5f 2e 20 54 68 69 73 20 70 a.VyOS.ISO.using.Docker_..This.p
b680 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 74 65 73 74 65 64 20 6f 6e 20 63 6c 65 61 6e 20 rocess.has.been.tested.on.clean.
b6a0 69 6e 73 74 61 6c 6c 73 20 6f 66 20 44 65 62 69 61 6e 20 4a 65 73 73 69 65 2c 20 53 74 72 65 74 installs.of.Debian.Jessie,.Stret
b6c0 63 68 2c 20 61 6e 64 20 42 75 73 74 65 72 2e 00 54 68 69 73 20 77 69 6c 6c 20 6c 69 6d 69 74 20 ch,.and.Buster..This.will.limit.
b6e0 74 68 65 20 60 62 6f 6e 64 60 20 69 6e 74 65 72 66 61 63 65 20 74 65 73 74 20 74 6f 20 6f 6e 6c the.`bond`.interface.test.to.onl
b700 79 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 60 65 74 68 31 60 20 61 6e 64 20 60 65 74 68 32 60 20 y.make.use.of.`eth1`.and.`eth2`.
b720 61 73 20 6d 65 6d 62 65 72 20 70 6f 72 74 73 2e 00 54 68 6f 73 65 20 63 6f 6d 6d 6f 6e 20 74 65 as.member.ports..Those.common.te
b740 73 74 73 20 63 6f 6e 73 69 73 74 73 20 6f 75 74 20 6f 66 3a 00 54 69 70 73 20 61 6e 64 20 54 72 sts.consists.out.of:.Tips.and.Tr
b760 69 63 6b 73 00 54 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 75 73 65 20 44 6f 63 6b 65 72 5f 20 77 icks.To.be.able.to.use.Docker_.w
b780 69 74 68 6f 75 74 20 60 60 73 75 64 6f 60 60 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 6e ithout.``sudo``,.the.current.non
b7a0 2d 72 6f 6f 74 20 75 73 65 72 20 6d 75 73 74 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 -root.user.must.be.added.to.the.
b7c0 60 60 64 6f 63 6b 65 72 60 60 20 67 72 6f 75 70 20 62 79 20 63 61 6c 6c 69 6e 67 3a 20 60 60 73 ``docker``.group.by.calling:.``s
b7e0 75 64 6f 20 75 73 65 72 6d 6f 64 20 2d 61 47 20 64 6f 63 6b 65 72 20 79 6f 75 72 75 73 65 72 6e udo.usermod.-aG.docker.yourusern
b800 61 6d 65 60 60 2e 00 54 6f 20 62 75 69 6c 64 20 56 79 4f 53 20 6e 61 74 69 76 65 6c 79 20 79 6f ame``..To.build.VyOS.natively.yo
b820 75 20 72 65 71 75 69 72 65 20 61 20 70 72 6f 70 65 72 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 20 u.require.a.properly.configured.
b840 62 75 69 6c 64 20 68 6f 73 74 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 44 65 build.host.with.the.following.De
b860 62 69 61 6e 20 76 65 72 73 69 6f 6e 73 20 69 6e 73 74 61 6c 6c 65 64 3a 00 54 6f 20 62 75 69 6c bian.versions.installed:.To.buil
b880 64 20 6f 75 72 20 6d 6f 64 75 6c 65 73 20 77 65 20 75 74 69 6c 69 7a 65 20 61 20 43 49 2f 43 44 d.our.modules.we.utilize.a.CI/CD
b8a0 20 50 69 70 65 6c 69 6e 65 20 73 63 72 69 70 74 2e 20 45 61 63 68 20 61 6e 64 20 65 76 65 72 79 .Pipeline.script..Each.and.every
b8c0 20 56 79 4f 53 20 63 6f 6d 70 6f 6e 65 6e 74 20 63 6f 6d 65 73 20 77 69 74 68 20 69 74 27 73 20 .VyOS.component.comes.with.it's.
b8e0 6f 77 6e 20 60 60 4a 65 6e 6b 69 6e 73 66 69 6c 65 60 60 20 77 68 69 63 68 20 69 73 20 28 6d 6f own.``Jenkinsfile``.which.is.(mo
b900 72 65 20 6f 72 20 6c 65 73 73 29 20 61 20 63 6f 70 79 2e 20 54 68 65 20 50 69 70 65 6c 69 6e 65 re.or.less).a.copy..The.Pipeline
b920 20 75 74 69 6c 69 7a 65 73 20 74 68 65 20 44 6f 63 6b 65 72 20 63 6f 6e 74 61 69 6e 65 72 20 66 .utilizes.the.Docker.container.f
b940 72 6f 6d 20 74 68 65 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 69 73 6f 60 20 73 65 63 74 69 6f 6e rom.the.:ref:`build_iso`.section
b960 20 2d 20 62 75 74 20 69 6e 73 74 65 61 64 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 69 74 20 66 72 .-.but.instead.of.building.it.fr
b980 6f 6d 20 73 6f 75 72 63 65 20 6f 6e 20 65 76 65 72 79 20 72 75 6e 2c 20 77 65 20 72 61 74 68 65 om.source.on.every.run,.we.rathe
b9a0 72 20 61 6c 77 61 79 73 20 66 65 74 63 68 20 61 20 66 72 65 73 68 20 63 6f 70 79 20 28 69 66 20 r.always.fetch.a.fresh.copy.(if.
b9c0 6e 65 65 64 65 64 29 20 66 72 6f 6d 20 44 6f 63 6b 65 72 68 75 62 5f 2e 00 54 6f 20 64 65 62 75 needed).from.Dockerhub_..To.debu
b9e0 67 20 69 73 73 75 65 73 20 69 6e 20 70 72 69 6f 72 69 74 69 65 73 20 6f 72 20 74 6f 20 73 65 65 g.issues.in.priorities.or.to.see
ba00 20 77 68 61 74 27 73 20 67 6f 69 6e 67 20 6f 6e 20 69 6e 20 74 68 65 20 62 61 63 6b 67 72 6f 75 .what's.going.on.in.the.backgrou
ba20 6e 64 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 20 60 60 2f 6f 70 74 2f 76 79 61 74 74 61 nd.you.can.use.the.``/opt/vyatta
ba40 2f 73 62 69 6e 2f 70 72 69 6f 72 69 74 79 2e 70 6c 60 60 20 73 63 72 69 70 74 20 77 68 69 63 68 /sbin/priority.pl``.script.which
ba60 20 6c 69 73 74 73 20 74 6f 20 79 6f 75 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 72 64 65 .lists.to.you.the.execution.orde
ba80 72 20 6f 66 20 74 68 65 20 73 63 72 69 70 74 73 2e 00 54 6f 20 64 65 62 75 67 20 74 68 65 20 62 r.of.the.scripts..To.debug.the.b
baa0 75 69 6c 64 20 70 72 6f 63 65 73 73 20 61 6e 64 20 67 61 69 6e 20 61 64 64 69 74 69 6f 6e 61 6c uild.process.and.gain.additional
bac0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 20 77 68 61 74 20 63 6f 75 6c 64 20 62 65 20 74 68 .information.of.what.could.be.th
bae0 65 20 72 6f 6f 74 20 63 61 75 73 65 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 75 73 65 20 60 63 e.root.cause,.you.need.to.use.`c
bb00 68 72 6f 6f 74 60 20 74 6f 20 63 68 61 6e 67 65 20 69 6e 74 6f 20 74 68 65 20 62 75 69 6c 64 20 hroot`.to.change.into.the.build.
bb20 64 69 72 65 63 74 72 79 2e 20 54 68 69 73 20 69 73 20 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 74 directry..This.is.explained.in.t
bb40 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 65 70 20 62 79 20 73 74 65 70 20 70 72 6f 63 65 64 he.following.step.by.step.proced
bb60 75 72 65 3a 00 54 6f 20 65 6e 61 62 6c 65 20 62 6f 6f 74 20 74 69 6d 65 20 67 72 61 70 68 69 6e ure:.To.enable.boot.time.graphin
bb80 67 20 63 68 61 6e 67 65 20 74 68 65 20 4b 65 72 6e 65 6c 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 g.change.the.Kernel.commandline.
bba0 61 6e 64 20 61 64 64 20 74 68 65 20 66 6f 6c 6f 77 69 6e 67 20 73 74 72 69 6e 67 3a 20 60 60 69 and.add.the.folowing.string:.``i
bbc0 6e 69 74 3d 2f 75 73 72 2f 6c 69 62 2f 73 79 73 74 65 6d 64 2f 73 79 73 74 65 6d 64 2d 62 6f 6f nit=/usr/lib/systemd/systemd-boo
bbe0 74 63 68 61 72 74 60 60 00 54 6f 20 65 6e 61 62 6c 65 20 64 65 62 75 67 67 69 6e 67 20 6a 75 73 tchart``.To.enable.debugging.jus
bc00 74 20 72 75 6e 3a 20 60 60 24 20 74 6f 75 63 68 20 2f 74 6d 70 2f 76 79 6f 73 2e 66 72 72 2e 64 t.run:.``$.touch./tmp/vyos.frr.d
bc20 65 62 75 67 60 60 00 54 6f 20 65 6e 73 75 72 65 20 75 6e 69 66 6f 72 6d 20 6c 6f 6f 6b 20 61 6e ebug``.To.ensure.uniform.look.an
bc40 64 20 66 65 65 6c 2c 20 61 6e 64 20 69 6d 70 72 6f 76 65 20 72 65 61 64 61 62 69 6c 69 74 79 2c d.feel,.and.improve.readability,
bc60 20 77 65 20 73 68 6f 75 6c 64 20 66 6f 6c 6c 6f 77 20 61 20 73 65 74 20 6f 66 20 67 75 69 64 65 .we.should.follow.a.set.of.guide
bc80 6c 69 6e 65 73 20 63 6f 6e 73 69 73 74 65 6e 74 6c 79 2e 00 54 6f 20 6d 61 6b 65 20 74 68 69 73 lines.consistently..To.make.this
bca0 20 61 70 70 72 6f 61 63 68 20 77 6f 72 6b 2c 20 65 76 65 72 79 20 63 68 61 6e 67 65 20 6d 75 73 .approach.work,.every.change.mus
bcc0 74 20 62 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 74 61 73 6b 20 6e 75 6d 62 t.be.associated.with.a.task.numb
bce0 65 72 20 28 70 72 65 66 69 78 65 64 20 77 69 74 68 20 2a 2a 54 2a 2a 29 20 61 6e 64 20 61 20 63 er.(prefixed.with.**T**).and.a.c
bd00 6f 6d 70 6f 6e 65 6e 74 2e 20 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 62 75 67 20 72 65 70 omponent..If.there.is.no.bug.rep
bd20 6f 72 74 2f 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 74 68 65 20 63 68 61 6e ort/feature.request.for.the.chan
bd40 67 65 73 20 79 6f 75 20 61 72 65 20 67 6f 69 6e 67 20 74 6f 20 6d 61 6b 65 2c 20 79 6f 75 20 68 ges.you.are.going.to.make,.you.h
bd60 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 74 61 73 ave.to.create.a.Phabricator_.tas
bd80 6b 20 66 69 72 73 74 2e 20 4f 6e 63 65 20 74 68 65 72 65 20 69 73 20 61 6e 20 65 6e 74 72 79 20 k.first..Once.there.is.an.entry.
bda0 69 6e 20 50 68 61 62 72 69 63 61 74 6f 72 5f 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 72 65 66 65 in.Phabricator_,.you.should.refe
bdc0 72 65 6e 63 65 20 69 74 73 20 69 64 20 69 6e 20 79 6f 75 72 20 63 6f 6d 6d 69 74 20 6d 65 73 73 rence.its.id.in.your.commit.mess
bde0 61 67 65 2c 20 61 73 20 73 68 6f 77 6e 20 62 65 6c 6f 77 3a 00 54 6f 20 6d 61 6e 75 61 6c 6c 79 age,.as.shown.below:.To.manually
be00 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 66 72 6f 6d 20 44 6f 63 .download.the.container.from.Doc
be20 6b 65 72 48 75 62 2c 20 72 75 6e 3a 00 54 6f 20 73 74 61 72 74 2c 20 63 6c 6f 6e 65 20 74 68 65 kerHub,.run:.To.start,.clone.the
be40 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 79 6f 75 72 20 6c 6f 63 61 6c 20 6d 61 63 68 69 6e .repository.to.your.local.machin
be60 65 3a 00 54 6f 20 74 61 6b 65 20 79 6f 75 72 20 6e 65 77 6c 79 20 63 72 65 61 74 65 64 20 70 61 e:.To.take.your.newly.created.pa
be80 63 6b 61 67 65 20 6f 6e 20 61 20 74 65 73 74 20 64 72 69 76 65 20 79 6f 75 20 63 61 6e 20 73 69 ckage.on.a.test.drive.you.can.si
bea0 6d 70 6c 79 20 53 43 50 20 69 74 20 74 6f 20 61 20 72 75 6e 6e 69 6e 67 20 56 79 4f 53 20 69 6e mply.SCP.it.to.a.running.VyOS.in
bec0 73 74 61 6e 63 65 20 61 6e 64 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 60 2a 2e 64 65 stance.and.install.the.new.`*.de
bee0 62 60 20 70 61 63 6b 61 67 65 20 6f 76 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 75 6e 6e b`.package.over.the.current.runn
bf00 69 6e 67 20 6f 6e 65 2e 00 54 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 00 55 6e 6c 65 73 73 20 ing.one..Troubleshooting.Unless.
bf20 61 62 73 6f 6c 75 74 65 6c 79 20 6e 65 63 65 73 73 61 72 79 2c 20 63 6f 6e 66 69 67 75 72 61 74 absolutely.necessary,.configurat
bf40 69 6f 6e 20 73 63 72 69 70 74 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 ion.scripts.should.not.modify.th
bf60 65 20 61 63 74 69 76 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f 66 20 73 79 73 74 65 6d e.active.configuration.of.system
bf80 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 64 69 72 65 63 74 6c 79 2e 20 57 68 65 6e 65 76 65 72 20 61 .components.directly..Whenever.a
bfa0 74 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 2c 20 73 63 72 69 70 74 73 20 73 68 6f 75 6c 64 20 67 t.all.possible,.scripts.should.g
bfc0 65 6e 65 72 61 74 65 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 20 6f 72 20 enerate.a.configuration.file.or.
bfe0 66 69 6c 65 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 77 69 74 68 20 61 files.that.can.be.applied.with.a
c000 20 73 69 6e 67 6c 65 20 63 6f 6d 6d 61 6e 64 20 73 75 63 68 20 61 73 20 72 65 6c 6f 61 64 69 6e .single.command.such.as.reloadin
c020 67 20 61 20 73 65 72 76 69 63 65 20 74 68 72 6f 75 67 68 20 73 79 73 74 65 6d 64 20 69 6e 69 74 g.a.service.through.systemd.init
c040 2e 20 49 6e 73 65 72 74 69 6e 67 20 73 74 61 74 65 6d 65 6e 74 73 20 6f 6e 65 20 62 79 20 6f 6e ..Inserting.statements.one.by.on
c060 65 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 64 69 73 63 6f 75 72 61 67 65 64 2c 20 66 e.is.particularly.discouraged,.f
c080 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 68 65 6e 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 6e 65 74 or.example,.when.configuring.net
c0a0 66 69 6c 74 65 72 20 72 75 6c 65 73 2c 20 73 61 76 69 6e 67 20 74 68 65 6d 20 74 6f 20 61 20 66 filter.rules,.saving.them.to.a.f
c0c0 69 6c 65 20 61 6e 64 20 6c 6f 61 64 69 6e 67 20 69 74 20 77 69 74 68 20 69 70 74 61 62 6c 65 73 ile.and.loading.it.with.iptables
c0e0 2d 72 65 73 74 6f 72 65 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 65 20 70 72 65 66 65 72 -restore.should.always.be.prefer
c100 72 65 64 20 74 6f 20 65 78 65 63 75 74 69 6e 67 20 69 70 74 61 62 6c 65 73 20 64 69 72 65 63 74 red.to.executing.iptables.direct
c120 6c 79 2e 00 55 70 73 74 72 65 61 6d 20 70 61 63 6b 61 67 65 73 00 55 73 65 20 6f 66 20 61 62 62 ly..Upstream.packages.Use.of.abb
c140 72 65 76 69 61 74 69 6f 6e 73 20 61 6e 64 20 61 63 72 6f 6e 79 6d 73 00 55 73 65 20 6f 66 20 6e reviations.and.acronyms.Use.of.n
c160 75 6d 62 65 72 73 00 55 73 65 20 6f 66 20 6e 75 6d 62 65 72 73 20 69 6e 20 63 6f 6d 6d 61 6e 64 umbers.Use.of.numbers.in.command
c180 20 6e 61 6d 65 73 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 61 76 6f 69 64 65 64 20 75 6e 6c .names.**should**.be.avoided.unl
c1a0 65 73 73 20 61 20 6e 75 6d 62 65 72 20 69 73 20 61 20 70 61 72 74 20 6f 66 20 61 20 70 72 6f 74 ess.a.number.is.a.part.of.a.prot
c1c0 6f 63 6f 6c 20 6e 61 6d 65 20 6f 72 20 73 69 6d 69 6c 61 72 2e 20 54 68 75 73 2c 20 60 60 70 72 ocol.name.or.similar..Thus,.``pr
c1e0 6f 74 6f 63 6f 6c 73 20 6f 73 70 66 76 33 60 60 20 69 73 20 70 65 72 66 65 63 74 6c 79 20 66 69 otocols.ospfv3``.is.perfectly.fi
c200 6e 65 2c 20 62 75 74 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 60 60 73 65 72 76 65 72 2d ne,.but.something.like.``server-
c220 31 60 60 20 69 73 20 71 75 65 73 74 69 6f 6e 61 62 6c 65 20 61 74 20 62 65 73 74 2e 00 55 73 65 1``.is.questionable.at.best..Use
c240 20 6f 66 20 76 65 72 62 73 00 55 73 65 20 72 65 67 65 78 00 55 73 65 66 75 6c 20 63 6f 6d 6d 61 .of.verbs.Use.regex.Useful.comma
c260 6e 64 73 20 61 72 65 3a 00 56 49 46 20 28 69 6e 63 6c 2e 20 56 49 46 2d 53 2f 56 49 46 2d 43 29 nds.are:.VIF.(incl..VIF-S/VIF-C)
c280 00 56 4c 41 4e 73 20 28 51 69 6e 51 20 61 6e 64 20 72 65 67 75 6c 61 72 20 38 30 32 2e 31 71 29 .VLANs.(QinQ.and.regular.802.1q)
c2a0 00 56 4d 77 61 72 65 00 56 65 72 62 73 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 61 76 6f 69 .VMware.Verbs.**should**.be.avoi
c2c0 64 65 64 2e 20 49 66 20 61 20 76 65 72 62 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 2c 20 6f ded..If.a.verb.can.be.omitted,.o
c2e0 6d 69 74 20 69 74 2e 00 56 65 72 62 73 2c 20 77 68 65 6e 20 74 68 65 79 20 61 72 65 20 6e 65 63 mit.it..Verbs,.when.they.are.nec
c300 65 73 73 61 72 79 2c 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 69 6e 20 74 68 65 69 72 20 69 essary,.**should**.be.in.their.i
c320 6e 66 69 6e 69 74 69 76 65 20 66 6f 72 6d 2e 00 56 69 72 74 75 61 6c 69 7a 61 74 69 6f 6e 20 50 nfinitive.form..Virtualization.P
c340 6c 61 74 66 6f 72 6d 73 00 56 79 4f 53 20 43 4c 49 20 69 73 20 61 6c 6c 20 61 62 6f 75 74 20 70 latforms.VyOS.CLI.is.all.about.p
c360 72 69 6f 72 69 74 69 65 73 2e 20 45 76 65 72 79 20 43 4c 49 20 6e 6f 64 65 20 68 61 73 20 61 20 riorities..Every.CLI.node.has.a.
c380 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 60 60 6e 6f 64 65 2e 64 65 66 60 60 20 66 69 6c 65 20 corresponding.``node.def``.file.
c3a0 61 6e 64 20 70 6f 73 73 69 62 6c 79 20 61 6e 20 61 74 74 61 63 68 65 64 20 73 63 72 69 70 74 20 and.possibly.an.attached.script.
c3c0 74 68 61 74 20 69 73 20 65 78 65 63 75 74 65 64 20 77 68 65 6e 20 74 68 65 20 6e 6f 64 65 20 69 that.is.executed.when.the.node.i
c3e0 73 20 70 72 65 73 65 6e 74 2e 20 4e 6f 64 65 73 20 63 61 6e 20 68 61 76 65 20 61 20 70 72 69 6f s.present..Nodes.can.have.a.prio
c400 72 69 74 79 2c 20 61 6e 64 20 6f 6e 20 73 79 73 74 65 6d 20 62 6f 6f 74 75 70 20 2d 20 6f 72 20 rity,.and.on.system.bootup.-.or.
c420 61 6e 79 20 6f 74 68 65 72 20 60 60 63 6f 6d 6d 69 74 60 60 20 74 6f 20 74 68 65 20 63 6f 6e 66 any.other.``commit``.to.the.conf
c440 69 67 20 61 6c 6c 20 73 63 72 69 70 74 73 20 61 72 65 20 65 78 65 63 75 74 65 64 20 66 72 6f 6d ig.all.scripts.are.executed.from
c460 20 6c 6f 77 65 73 74 20 74 6f 20 68 69 67 65 73 74 20 70 72 69 6f 72 69 74 79 2e 20 54 68 69 73 .lowest.to.higest.priority..This
c480 20 69 73 20 67 6f 6f 64 20 61 73 20 74 68 69 73 20 67 69 76 65 73 20 61 20 64 65 74 65 72 6d 69 .is.good.as.this.gives.a.determi
c4a0 6e 69 73 74 69 63 20 62 65 68 61 76 69 6f 72 2e 00 56 79 4f 53 20 68 61 73 20 73 77 69 74 63 68 nistic.behavior..VyOS.has.switch
c4c0 65 64 20 74 6f 20 44 65 62 69 61 6e 20 28 31 32 29 20 42 6f 6f 6b 77 6f 72 6d 20 69 6e 20 69 74 ed.to.Debian.(12).Bookworm.in.it
c4e0 73 20 60 60 63 75 72 72 65 6e 74 60 60 20 62 72 61 6e 63 68 2c 20 44 75 65 20 74 6f 20 73 6f 66 s.``current``.branch,.Due.to.sof
c500 74 77 61 72 65 20 76 65 72 73 69 6f 6e 20 75 70 64 61 74 65 73 2c 20 69 74 20 69 73 20 72 65 63 tware.version.updates,.it.is.rec
c520 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20 44 6f 63 ommended.to.use.the.official.Doc
c540 6b 65 72 20 48 75 62 20 69 6d 61 67 65 20 74 6f 20 62 75 69 6c 64 20 56 79 4f 53 20 49 53 4f 2e ker.Hub.image.to.build.VyOS.ISO.
c560 00 56 79 4f 53 20 69 74 73 65 6c 66 20 63 6f 6d 65 73 20 77 69 74 68 20 61 20 62 75 6e 63 68 20 .VyOS.itself.comes.with.a.bunch.
c580 6f 66 20 70 61 63 6b 61 67 65 73 20 74 68 61 74 20 61 72 65 20 73 70 65 63 69 66 69 63 20 74 6f of.packages.that.are.specific.to
c5a0 20 6f 75 72 20 73 79 73 74 65 6d 20 61 6e 64 20 74 68 75 73 20 63 61 6e 6e 6f 74 20 62 65 20 66 .our.system.and.thus.cannot.be.f
c5c0 6f 75 6e 64 20 69 6e 20 61 6e 79 20 44 65 62 69 61 6e 20 6d 69 72 72 6f 72 2e 20 54 68 6f 73 65 ound.in.any.Debian.mirror..Those
c5e0 20 70 61 63 6b 61 67 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 20 74 68 65 20 60 56 .packages.can.be.found.at.the.`V
c600 79 4f 53 20 47 69 74 48 75 62 20 70 72 6f 6a 65 63 74 60 5f 20 69 6e 20 74 68 65 69 72 20 73 6f yOS.GitHub.project`_.in.their.so
c620 75 72 63 65 20 66 6f 72 6d 61 74 20 63 61 6e 20 65 61 73 69 6c 79 20 62 65 20 63 6f 6d 70 69 6c urce.format.can.easily.be.compil
c640 65 64 20 69 6e 74 6f 20 61 20 63 75 73 74 6f 6d 20 44 65 62 69 61 6e 20 28 60 2a 2e 64 65 62 60 ed.into.a.custom.Debian.(`*.deb`
c660 29 20 70 61 63 6b 61 67 65 2e 00 56 79 4f 53 20 6d 61 6b 65 73 20 75 73 65 20 6f 66 20 4a 65 6e ).package..VyOS.makes.use.of.Jen
c680 6b 69 6e 73 5f 20 61 73 20 6f 75 72 20 43 6f 6e 74 69 6e 75 6f 75 73 20 49 6e 74 65 67 72 61 74 kins_.as.our.Continuous.Integrat
c6a0 69 6f 6e 20 28 43 49 29 20 73 65 72 76 69 63 65 2e 20 4f 75 72 20 60 56 79 4f 53 20 43 49 60 5f ion.(CI).service..Our.`VyOS.CI`_
c6c0 20 73 65 72 76 65 72 20 69 73 20 70 75 62 6c 69 63 6c 79 20 61 63 63 65 73 73 69 62 6c 65 20 68 .server.is.publicly.accessible.h
c6e0 65 72 65 3a 20 68 74 74 70 73 3a 2f 2f 63 69 2e 76 79 6f 73 2e 6e 65 74 2e 20 59 6f 75 20 63 61 ere:.https://ci.vyos.net..You.ca
c700 6e 20 67 65 74 20 61 20 62 72 69 65 66 20 6f 76 65 72 76 69 65 77 20 6f 66 20 61 6c 6c 20 72 65 n.get.a.brief.overview.of.all.re
c720 71 75 69 72 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 73 68 69 70 70 65 64 20 69 6e 20 61 20 56 quired.components.shipped.in.a.V
c740 79 4f 53 20 49 53 4f 2e 00 57 65 20 61 67 61 69 6e 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 61 20 yOS.ISO..We.again.make.use.of.a.
c760 68 65 6c 70 65 72 20 73 63 72 69 70 74 20 61 6e 64 20 73 6f 6d 65 20 70 61 74 63 68 65 73 20 74 helper.script.and.some.patches.t
c780 6f 20 6d 61 6b 65 20 74 68 65 20 62 75 69 6c 64 20 77 6f 72 6b 2e 20 4a 75 73 74 20 72 75 6e 20 o.make.the.build.work..Just.run.
c7a0 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 3a 00 57 65 20 64 69 66 66 65 72 the.following.command:.We.differ
c7c0 65 6e 74 69 61 74 65 20 69 6e 20 74 77 6f 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 74 65 73 74 73 entiate.in.two.independent.tests
c7e0 2c 20 77 68 69 63 68 20 61 72 65 20 62 6f 74 68 20 72 75 6e 20 69 6e 20 70 61 72 61 6c 6c 65 6c ,.which.are.both.run.in.parallel
c800 20 62 79 20 74 77 6f 20 73 65 70 61 72 61 74 65 20 51 45 6d 75 20 69 6e 73 74 61 6e 63 65 73 20 .by.two.separate.QEmu.instances.
c820 77 68 69 63 68 20 61 72 65 20 6c 61 75 6e 63 68 65 64 20 76 69 61 20 60 60 6d 61 6b 65 20 74 65 which.are.launched.via.``make.te
c840 73 74 60 60 20 61 6e 64 20 60 60 6d 61 6b 65 20 74 65 73 74 63 60 60 20 66 72 6f 6d 20 77 69 74 st``.and.``make.testc``.from.wit
c860 68 69 6e 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 5f 20 72 65 70 6f 73 69 74 6f 72 79 2e 00 hin.the.vyos-build_.repository..
c880 57 65 20 6e 6f 77 20 61 72 65 20 66 72 65 65 20 74 6f 20 72 75 6e 20 61 6e 79 20 63 6f 6d 6d 61 We.now.are.free.to.run.any.comma
c8a0 6e 64 20 77 65 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 75 73 65 20 66 6f 72 20 64 65 62 75 nd.we.would.like.to.use.for.debu
c8c0 67 67 69 6e 67 2c 20 65 2e 67 2e 20 72 65 2d 69 6e 73 74 61 6c 6c 69 6e 67 20 74 68 65 20 66 61 gging,.e.g..re-installing.the.fa
c8e0 69 6c 65 64 20 70 61 63 6b 61 67 65 20 61 66 74 65 72 20 75 70 64 61 74 69 6e 67 20 74 68 65 20 iled.package.after.updating.the.
c900 72 65 70 6f 73 69 74 6f 72 79 2e 00 57 65 20 6e 6f 77 20 6e 65 65 64 20 74 6f 20 6d 6f 75 6e 74 repository..We.now.need.to.mount
c920 20 73 6f 6d 65 20 72 65 71 75 69 72 65 64 2c 20 76 6f 6c 61 74 69 6c 65 20 66 69 6c 65 73 79 73 .some.required,.volatile.filesys
c940 74 65 6d 73 00 57 65 20 6f 6e 6c 79 20 61 63 63 65 70 74 20 62 75 67 66 69 78 65 73 20 69 6e 20 tems.We.only.accept.bugfixes.in.
c960 70 61 63 6b 61 67 65 73 20 6f 74 68 65 72 20 74 68 61 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 packages.other.than.https://gith
c980 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 6f 73 2d 31 78 20 61 73 20 6e 6f 20 6e 65 77 20 66 75 ub.com/vyos/vyos-1x.as.no.new.fu
c9a0 6e 63 74 69 6f 6e 61 6c 69 74 79 20 73 68 6f 75 6c 64 20 75 73 65 20 74 68 65 20 6f 6c 64 20 73 nctionality.should.use.the.old.s
c9c0 74 79 6c 65 20 74 65 6d 70 6c 61 74 65 73 20 28 60 60 6e 6f 64 65 2e 64 65 66 60 60 20 61 6e 64 tyle.templates.(``node.def``.and
c9e0 20 50 65 72 6c 2f 42 41 53 48 20 63 6f 64 65 2e 20 55 73 65 20 74 68 65 20 6e 65 77 20 73 74 79 .Perl/BASH.code..Use.the.new.sty
ca00 6c 65 20 58 4d 4c 2f 50 79 74 68 6f 6e 20 69 6e 74 65 72 66 61 63 65 20 69 6e 73 74 65 61 64 2e le.XML/Python.interface.instead.
ca20 00 57 68 61 74 20 63 6f 6d 6d 61 6e 64 73 20 64 69 64 20 79 6f 75 20 75 73 65 3f 20 55 73 65 20 .What.commands.did.you.use?.Use.
ca40 65 2e 67 2e 20 60 60 72 75 6e 20 73 68 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 6f e.g..``run.show.configuration.co
ca60 6d 6d 61 6e 64 73 60 60 00 57 68 61 74 20 77 61 73 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 mmands``.What.was.the.configurat
ca80 69 6f 6e 20 70 72 69 6f 72 20 74 6f 20 74 68 65 20 63 68 61 6e 67 65 3f 00 57 68 61 74 20 77 65 ion.prior.to.the.change?.What.we
caa0 72 65 20 79 6f 75 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 61 63 68 69 65 76 65 3f 00 57 68 re.you.attempting.to.achieve?.Wh
cac0 61 74 2f 77 68 79 2f 68 6f 77 20 73 6f 6d 65 74 68 69 6e 67 20 68 61 73 20 62 65 65 6e 20 63 68 at/why/how.something.has.been.ch
cae0 61 6e 67 65 64 2c 20 6d 61 6b 65 73 20 65 76 65 72 79 6f 6e 65 27 73 20 6c 69 66 65 20 65 61 73 anged,.makes.everyone's.life.eas
cb00 69 65 72 20 77 68 65 6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 60 67 69 74 20 62 69 73 65 63 ier.when.working.with.`git.bisec
cb20 74 60 00 57 68 65 6e 20 61 6e 64 20 49 53 4f 20 69 6d 61 67 65 20 69 73 20 61 73 73 65 6d 62 6c t`.When.and.ISO.image.is.assembl
cb40 65 64 20 62 79 20 74 68 65 20 60 56 79 4f 53 20 43 49 60 5f 2c 20 74 68 65 20 60 60 42 55 49 4c ed.by.the.`VyOS.CI`_,.the.``BUIL
cb60 44 5f 53 4d 4f 4b 45 54 45 53 54 60 60 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 65 6e 61 62 6c D_SMOKETEST``.parameter.is.enabl
cb80 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 65 78 74 65 6e 64 ed.by.default,.which.will.extend
cba0 20 74 68 65 20 49 53 4f 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6c 69 6e 65 20 77 69 74 68 .the.ISO.configuration.line.with
cbc0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 3a 00 57 68 65 6e 20 68 61 .the.following.packages:.When.ha
cbe0 76 69 6e 67 20 74 72 6f 75 62 6c 65 20 63 6f 6d 70 69 6c 69 6e 67 20 79 6f 75 72 20 6f 77 6e 20 ving.trouble.compiling.your.own.
cc00 49 53 4f 20 69 6d 61 67 65 20 6f 72 20 64 65 62 75 67 67 69 6e 67 20 4a 65 6e 6b 69 6e 73 20 69 ISO.image.or.debugging.Jenkins.i
cc20 73 73 75 65 73 20 79 6f 75 20 63 61 6e 20 66 6f 6c 6c 6f 77 20 74 68 65 20 73 74 65 70 73 20 61 ssues.you.can.follow.the.steps.a
cc40 74 20 3a 72 65 66 3a 60 69 73 6f 5f 62 75 69 6c 64 5f 69 73 73 75 65 73 60 2e 00 57 68 65 6e 20 t.:ref:`iso_build_issues`..When.
cc60 6d 6f 64 69 66 79 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 72 65 6d 65 6d modifying.the.source.code,.remem
cc80 62 65 72 20 74 68 65 73 65 20 72 75 6c 65 73 20 6f 66 20 74 68 65 20 6c 65 67 61 63 79 20 65 6c ber.these.rules.of.the.legacy.el
cca0 69 6d 69 6e 61 74 69 6f 6e 20 63 61 6d 70 61 69 67 6e 3a 00 57 68 65 6e 20 74 68 65 20 62 75 69 imination.campaign:.When.the.bui
ccc0 6c 64 20 69 73 20 73 75 63 63 65 73 73 66 75 6c 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 ld.is.successful,.the.resulting.
cce0 69 73 6f 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 73 69 64 65 20 74 68 65 20 60 60 62 75 iso.can.be.found.inside.the.``bu
cd00 69 6c 64 60 60 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 60 60 6c 69 76 65 2d 69 6d 61 67 65 2d ild``.directory.as.``live-image-
cd20 5b 61 72 63 68 69 74 65 63 74 75 72 65 5d 2e 68 79 62 72 69 64 2e 69 73 6f 60 60 2e 00 57 68 65 [architecture].hybrid.iso``..Whe
cd40 6e 20 77 72 69 74 69 6e 67 20 61 20 6e 65 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 69 n.writing.a.new.configuration.mi
cd60 67 72 61 74 6f 72 20 69 74 20 6d 61 79 20 68 61 70 70 65 6e 20 74 68 61 74 20 79 6f 75 20 73 65 grator.it.may.happen.that.you.se
cd80 65 20 61 6e 20 65 72 72 6f 72 20 77 68 65 6e 20 79 6f 75 20 74 72 79 20 74 6f 20 69 6e 76 6f 6b e.an.error.when.you.try.to.invok
cda0 65 20 69 74 20 6d 61 6e 75 61 6c 6c 79 20 6f 6e 20 61 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 73 e.it.manually.on.a.development.s
cdc0 79 73 74 65 6d 2e 20 54 68 69 73 20 65 72 72 6f 72 20 77 69 6c 6c 20 6c 6f 6f 6b 20 6c 69 6b 65 ystem..This.error.will.look.like
cde0 3a 00 57 68 65 6e 20 79 6f 75 20 61 72 65 20 61 62 6c 65 20 74 6f 20 76 65 72 69 66 79 20 74 68 :.When.you.are.able.to.verify.th
ce00 61 74 20 69 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 61 20 62 75 67 2c 20 73 70 65 6e 64 20 73 at.it.is.actually.a.bug,.spend.s
ce20 6f 6d 65 20 74 69 6d 65 20 74 6f 20 64 6f 63 75 6d 65 6e 74 20 68 6f 77 20 74 6f 20 72 65 70 72 ome.time.to.document.how.to.repr
ce40 6f 64 75 63 65 20 74 68 65 20 69 73 73 75 65 2e 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 oduce.the.issue..This.documentat
ce60 69 6f 6e 20 63 61 6e 20 62 65 20 69 6e 76 61 6c 75 61 62 6c 65 2e 00 57 68 65 6e 20 79 6f 75 20 ion.can.be.invaluable..When.you.
ce80 61 72 65 20 77 6f 72 6b 69 6e 67 20 6f 6e 20 69 6e 74 65 72 66 61 63 65 20 63 6f 6e 66 69 67 75 are.working.on.interface.configu
cea0 72 61 74 69 6f 6e 20 61 6e 64 20 79 6f 75 20 61 6c 73 6f 20 77 61 6e 27 74 20 74 6f 20 74 65 73 ration.and.you.also.wan't.to.tes
cec0 74 20 69 66 20 74 68 65 20 53 6d 6f 6b 65 74 65 73 74 73 20 70 61 73 73 20 79 6f 75 20 77 6f 75 t.if.the.Smoketests.pass.you.wou
cee0 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20 6c 6f 6f 73 65 20 74 68 65 20 72 65 6d 6f 74 65 20 53 53 48 ld.normally.loose.the.remote.SSH
cf00 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 79 6f 75 72 20 3a 61 62 62 72 3a 60 44 55 54 20 28 .connection.to.your.:abbr:`DUT.(
cf20 44 65 76 69 63 65 20 55 6e 64 65 72 20 54 65 73 74 29 60 2e 20 54 6f 20 68 61 6e 64 6c 65 20 74 Device.Under.Test)`..To.handle.t
cf40 68 69 73 20 69 73 73 75 65 2c 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 his.issue,.some.of.the.interface
cf60 20 62 61 73 65 64 20 74 65 73 74 73 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 .based.tests.can.be.called.with.
cf80 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 62 65 66 6f 72 65 68 61 an.environment.variable.beforeha
cfa0 6e 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 74 65 72 66 nd.to.limit.the.number.of.interf
cfc0 61 63 65 73 20 75 73 65 64 20 69 6e 20 74 68 65 20 74 65 73 74 2e 20 42 79 20 64 65 66 61 75 6c aces.used.in.the.test..By.defaul
cfe0 74 20 61 6c 6c 20 69 6e 74 65 72 66 61 63 65 20 65 2e 67 2e 20 61 6c 6c 20 45 74 68 65 72 6e 65 t.all.interface.e.g..all.Etherne
d000 74 20 69 6e 74 65 72 66 61 63 65 73 20 61 72 65 20 75 73 65 64 2e 00 57 68 65 6e 20 79 6f 75 20 t.interfaces.are.used..When.you.
d020 62 65 6c 69 65 76 65 20 79 6f 75 20 68 61 76 65 20 66 6f 75 6e 64 20 61 20 62 75 67 2c 20 69 74 believe.you.have.found.a.bug,.it
d040 20 69 73 20 61 6c 77 61 79 73 20 61 20 67 6f 6f 64 20 69 64 65 61 20 74 6f 20 76 65 72 69 66 79 .is.always.a.good.idea.to.verify
d060 20 74 68 65 20 69 73 73 75 65 20 70 72 69 6f 72 20 74 6f 20 6f 70 65 6e 69 6e 67 20 61 20 62 75 .the.issue.prior.to.opening.a.bu
d080 67 20 72 65 71 75 65 73 74 2e 00 57 68 65 6e 20 79 6f 75 20 77 69 73 68 20 74 6f 20 68 61 76 65 g.request..When.you.wish.to.have
d0a0 20 61 20 64 65 76 65 6c 6f 70 65 72 20 66 69 78 20 61 20 62 75 67 20 74 68 61 74 20 79 6f 75 20 .a.developer.fix.a.bug.that.you.
d0c0 66 6f 75 6e 64 2c 20 68 65 6c 70 69 6e 67 20 74 68 65 6d 20 72 65 70 72 6f 64 75 63 65 20 74 68 found,.helping.them.reproduce.th
d0e0 65 20 69 73 73 75 65 20 69 73 20 62 65 6e 65 66 69 63 69 61 6c 20 74 6f 20 65 76 65 72 79 6f 6e e.issue.is.beneficial.to.everyon
d100 65 2e 20 42 65 20 73 75 72 65 20 74 6f 20 69 6e 63 6c 75 64 65 20 69 6e 66 6f 72 6d 61 74 69 6f e..Be.sure.to.include.informatio
d120 6e 20 61 62 6f 75 74 20 74 68 65 20 68 61 72 64 77 61 72 65 20 79 6f 75 20 61 72 65 20 75 73 69 n.about.the.hardware.you.are.usi
d140 6e 67 2c 20 63 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 79 6f 75 20 77 65 72 65 20 72 75 6e 6e 69 ng,.commands.that.you.were.runni
d160 6e 67 2c 20 61 6e 79 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 74 68 61 74 20 79 6f ng,.any.other.activities.that.yo
d180 75 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 64 6f 69 6e 67 20 61 74 20 74 68 65 20 74 69 6d u.may.have.been.doing.at.the.tim
d1a0 65 2e 20 54 68 69 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 63 e..This.additional.information.c
d1c0 61 6e 20 62 65 20 76 65 72 79 20 75 73 65 66 75 6c 2e 00 57 68 69 63 68 20 76 65 72 73 69 6f 6e an.be.very.useful..Which.version
d1e0 20 6f 66 20 56 79 4f 53 20 61 72 65 20 79 6f 75 20 75 73 69 6e 67 3f 20 60 60 72 75 6e 20 73 68 .of.VyOS.are.you.using?.``run.sh
d200 6f 77 20 76 65 72 73 69 6f 6e 60 60 00 57 69 72 65 47 75 61 72 64 00 57 72 69 74 69 6e 67 20 67 ow.version``.WireGuard.Writing.g
d220 6f 6f 64 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 00 58 4d 4c 20 28 75 73 65 64 20 66 6f ood.commit.messages.XML.(used.fo
d240 72 20 43 4c 49 20 64 65 66 69 6e 69 74 69 6f 6e 73 29 00 58 4d 4c 20 69 6e 74 65 72 66 61 63 65 r.CLI.definitions).XML.interface
d260 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 75 73 65 20 74 68 65 20 60 78 6d 6c 2e 69 .definition.files.use.the.`xml.i
d280 6e 60 20 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 77 68 69 63 68 20 77 61 73 20 69 6d 70 6c n`.file.extension.which.was.impl
d2a0 65 6d 65 6e 74 65 64 20 69 6e 20 3a 76 79 74 61 73 6b 3a 60 54 31 38 34 33 60 2e 20 58 4d 4c 20 emented.in.:vytask:`T1843`..XML.
d2c0 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 74 65 6e 64 20 74 6f 20 68 61 interface.definitions.tend.to.ha
d2e0 76 65 20 61 20 6c 6f 74 20 6f 66 20 64 75 70 6c 69 63 61 74 65 64 20 63 6f 64 65 20 69 6e 20 61 ve.a.lot.of.duplicated.code.in.a
d300 72 65 61 73 20 73 75 63 68 20 61 73 3a 00 58 4d 4c 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 reas.such.as:.XML.interface.defi
d320 6e 69 74 69 6f 6e 73 20 66 6f 72 20 56 79 4f 53 20 63 6f 6d 65 20 77 69 74 68 20 61 20 52 65 6c nitions.for.VyOS.come.with.a.Rel
d340 61 78 4e 47 20 73 63 68 65 6d 61 20 61 6e 64 20 61 72 65 20 6c 6f 63 61 74 65 64 20 69 6e 20 74 axNG.schema.and.are.located.in.t
d360 68 65 20 76 79 6f 73 2d 31 78 5f 20 6d 6f 64 75 6c 65 2e 20 54 68 69 73 20 73 63 68 65 6d 61 20 he.vyos-1x_.module..This.schema.
d380 69 73 20 61 20 73 6c 69 67 68 74 6c 79 20 6d 6f 64 69 66 69 65 64 20 73 63 68 65 6d 61 20 66 72 is.a.slightly.modified.schema.fr
d3a0 6f 6d 20 56 79 43 6f 6e 66 5f 20 61 6c 69 61 73 20 56 79 4f 53 20 32 2e 30 20 53 6f 20 56 79 4f om.VyConf_.alias.VyOS.2.0.So.VyO
d3c0 53 20 31 2e 32 2e 78 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 69 S.1.2.x.interface.definitions.wi
d3e0 6c 6c 20 62 65 20 72 65 75 73 61 62 6c 65 20 69 6e 20 4e 65 78 74 67 65 6e 20 56 79 4f 53 20 56 ll.be.reusable.in.Nextgen.VyOS.V
d400 65 72 73 69 6f 6e 73 20 77 69 74 68 20 76 65 72 79 20 6d 69 6e 69 6d 61 6c 20 63 68 61 6e 67 65 ersions.with.very.minimal.change
d420 73 2e 00 58 4d 4c 3a 20 54 61 62 73 20 2a 2a 73 68 61 6c 6c 20 6e 6f 74 2a 2a 20 62 65 20 75 73 s..XML:.Tabs.**shall.not**.be.us
d440 65 64 2e 20 45 76 65 72 79 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6c 65 76 65 6c 20 73 68 6f 75 ed..Every.indentation.level.shou
d460 6c 64 20 62 65 20 32 20 73 70 61 63 65 73 00 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 70 6c 61 63 ld.be.2.spaces.You.can.also.plac
d480 65 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 60 2a 2e 64 65 62 60 20 69 6e 74 6f 20 79 6f 75 e.the.generated.`*.deb`.into.you
d4a0 72 20 49 53 4f 20 62 75 69 6c 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 6f 20 69 6e 63 6c 75 r.ISO.build.environment.to.inclu
d4c0 64 65 20 69 74 20 69 6e 20 61 20 63 75 73 74 6f 6d 20 69 73 6f 2c 20 73 65 65 20 3a 72 65 66 3a de.it.in.a.custom.iso,.see.:ref:
d4e0 60 62 75 69 6c 64 5f 63 75 73 74 6f 6d 5f 70 61 63 6b 61 67 65 73 60 20 66 6f 72 20 6d 6f 72 65 `build_custom_packages`.for.more
d500 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 00 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 79 6f 75 .information..You.can.create.you
d520 72 73 65 6c 66 20 73 6f 6d 65 20 68 61 6e 64 79 20 42 61 73 68 20 61 6c 69 61 73 65 73 20 74 6f rself.some.handy.Bash.aliases.to
d540 20 61 6c 77 61 79 73 20 6c 61 75 6e 63 68 20 74 68 65 20 6c 61 74 65 73 74 20 2d 20 70 65 72 20 .always.launch.the.latest.-.per.
d560 72 65 6c 65 61 73 65 20 74 72 61 69 6e 20 28 60 63 75 72 72 65 6e 74 60 20 6f 72 20 60 63 72 75 release.train.(`current`.or.`cru
d580 78 60 29 20 2d 20 63 6f 6e 74 61 69 6e 65 72 2e 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 x`).-.container..Add.the.followi
d5a0 6e 67 20 74 6f 20 79 6f 75 72 20 60 60 2e 62 61 73 68 5f 61 6c 69 61 73 65 73 60 60 20 66 69 6c ng.to.your.``.bash_aliases``.fil
d5c0 65 3a 00 59 6f 75 20 63 61 6e 20 74 79 70 65 20 60 60 68 65 6c 70 60 60 20 74 6f 20 67 65 74 20 e:.You.can.type.``help``.to.get.
d5e0 61 6e 20 6f 76 65 72 76 69 65 77 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d an.overview.of.the.available.com
d600 6d 61 6e 64 73 2c 20 61 6e 64 20 60 60 68 65 6c 70 20 63 6f 6d 6d 61 6e 64 60 60 20 74 6f 20 67 mands,.and.``help.command``.to.g
d620 65 74 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 65 61 63 68 20 63 6f 6d 6d et.more.information.on.each.comm
d640 61 6e 64 2e 00 59 6f 75 20 68 61 76 65 20 61 6e 20 69 64 65 61 20 6f 66 20 68 6f 77 20 74 6f 20 and..You.have.an.idea.of.how.to.
d660 6d 61 6b 65 20 56 79 4f 53 20 62 65 74 74 65 72 20 6f 72 20 79 6f 75 20 61 72 65 20 69 6e 20 6e make.VyOS.better.or.you.are.in.n
d680 65 65 64 20 6f 66 20 61 20 73 70 65 63 69 66 69 63 20 66 65 61 74 75 72 65 20 77 68 69 63 68 20 eed.of.a.specific.feature.which.
d6a0 61 6c 6c 20 75 73 65 72 73 20 6f 66 20 56 79 4f 53 20 77 6f 75 6c 64 20 62 65 6e 65 66 69 74 20 all.users.of.VyOS.would.benefit.
d6c0 66 72 6f 6d 3f 20 54 6f 20 73 65 6e 64 20 61 20 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 20 from?.To.send.a.feature.request.
d6e0 70 6c 65 61 73 65 20 73 65 61 72 63 68 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 69 66 20 74 68 please.search.Phabricator_.if.th
d700 65 72 65 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 72 65 71 75 65 73 74 20 70 65 6e 64 69 6e 67 ere.is.already.a.request.pending
d720 2e 20 59 6f 75 20 63 61 6e 20 65 6e 68 61 6e 63 65 20 69 74 20 6f 72 20 69 66 20 79 6f 75 20 64 ..You.can.enhance.it.or.if.you.d
d740 6f 6e 27 74 20 66 69 6e 64 20 6f 6e 65 2c 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 20 on't.find.one,.create.a.new.one.
d760 62 79 20 75 73 65 20 74 68 65 20 71 75 69 63 6b 20 6c 69 6e 6b 20 69 6e 20 74 68 65 20 6c 65 66 by.use.the.quick.link.in.the.lef
d780 74 20 73 69 64 65 20 75 6e 64 65 72 20 74 68 65 20 73 70 65 63 69 66 69 63 20 70 72 6f 6a 65 63 t.side.under.the.specific.projec
d7a0 74 2e 00 59 6f 75 20 68 61 76 65 20 79 6f 75 72 20 6f 77 6e 20 63 75 73 74 6f 6d 20 6b 65 72 6e t..You.have.your.own.custom.kern
d7c0 65 6c 20 60 2a 2e 64 65 62 60 20 70 61 63 6b 61 67 65 73 20 69 6e 20 74 68 65 20 60 70 61 63 6b el.`*.deb`.packages.in.the.`pack
d7e0 61 67 65 73 60 20 66 6f 6c 64 65 72 20 62 75 74 20 6e 65 67 6c 65 63 74 65 64 20 74 6f 20 63 72 ages`.folder.but.neglected.to.cr
d800 65 61 74 65 20 61 6c 6c 20 72 65 71 75 69 72 65 64 20 6f 75 74 2d 6f 66 20 74 72 65 65 20 6d 6f eate.all.required.out-of.tree.mo
d820 64 75 6c 65 73 20 6c 69 6b 65 20 41 63 63 65 6c 2d 50 50 50 2c 20 49 6e 74 65 6c 20 51 41 54 20 dules.like.Accel-PPP,.Intel.QAT.
d840 6f 72 20 49 6e 74 65 6c 20 4e 49 43 20 64 72 69 76 65 72 73 00 59 6f 75 20 68 61 76 65 20 79 6f or.Intel.NIC.drivers.You.have.yo
d860 75 72 20 6f 77 6e 20 63 75 73 74 6f 6d 20 6b 65 72 6e 65 6c 20 60 2a 2e 64 65 62 60 20 70 61 63 ur.own.custom.kernel.`*.deb`.pac
d880 6b 61 67 65 73 20 69 6e 20 74 68 65 20 60 70 61 63 6b 61 67 65 73 60 20 66 6f 6c 64 65 72 20 62 kages.in.the.`packages`.folder.b
d8a0 75 74 20 6e 65 67 6c 65 63 74 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 6c 6c 20 72 65 71 75 69 ut.neglected.to.create.all.requi
d8c0 72 65 64 20 6f 75 74 2d 6f 66 20 74 72 65 65 20 6d 6f 64 75 6c 65 73 20 6c 69 6b 65 20 41 63 63 red.out-of.tree.modules.like.Acc
d8e0 65 6c 2d 50 50 50 2c 20 57 69 72 65 47 75 61 72 64 2c 20 49 6e 74 65 6c 20 51 41 54 2c 20 49 6e el-PPP,.WireGuard,.Intel.QAT,.In
d900 74 65 6c 20 4e 49 43 00 59 6f 75 20 73 68 6f 75 64 6c 20 6e 6f 77 20 73 65 65 20 61 20 50 79 74 tel.NIC.You.shoudl.now.see.a.Pyt
d920 68 6f 6e 20 62 61 63 6b 74 72 61 63 65 20 77 68 69 63 68 20 77 69 6c 6c 20 68 65 6c 70 20 75 73 hon.backtrace.which.will.help.us
d940 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 69 73 73 75 65 2c 20 70 6c 65 61 73 65 20 61 74 74 .to.handle.the.issue,.please.att
d960 61 63 68 20 69 74 20 74 6f 20 74 68 65 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 74 61 73 6b 2e ach.it.to.the.Phabricator_.task.
d980 00 59 6f 75 20 74 68 65 6e 20 63 61 6e 20 70 72 6f 63 65 65 64 20 77 69 74 68 20 63 6c 6f 6e 69 .You.then.can.proceed.with.cloni
d9a0 6e 67 20 79 6f 75 72 20 66 6f 72 6b 20 6f 72 20 61 64 64 20 61 20 6e 65 77 20 72 65 6d 6f 74 65 ng.your.fork.or.add.a.new.remote
d9c0 20 74 6f 20 79 6f 75 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 3a 00 59 6f 75 72 20 .to.your.local.repository:.Your.
d9e0 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 69 70 74 20 6f 72 20 6f 70 65 72 61 74 69 6f configuration.script.or.operatio
da00 6e 20 6d 6f 64 65 20 73 63 72 69 70 74 20 77 68 69 63 68 20 69 73 20 61 6c 73 6f 20 77 72 69 74 n.mode.script.which.is.also.writ
da20 74 65 6e 20 69 6e 20 50 79 74 68 6f 6e 33 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 6c 69 6e ten.in.Python3.should.have.a.lin
da40 65 20 62 72 65 61 6b 20 6f 6e 20 38 30 20 63 68 61 72 61 63 74 65 72 73 2e 20 54 68 69 73 20 73 e.break.on.80.characters..This.s
da60 65 65 6d 73 20 74 6f 20 62 65 20 61 20 62 69 74 20 6f 64 64 20 6e 6f 77 61 64 61 79 73 20 62 75 eems.to.be.a.bit.odd.nowadays.bu
da80 74 20 61 73 20 73 6f 6d 65 20 70 65 6f 70 6c 65 20 61 6c 73 6f 20 77 6f 72 6b 20 72 65 6d 6f 74 t.as.some.people.also.work.remot
daa0 65 6c 79 20 6f 72 20 70 72 6f 67 72 61 6d 20 75 73 69 6e 67 20 76 69 28 6d 29 20 74 68 69 73 20 ely.or.program.using.vi(m).this.
dac0 69 73 20 61 20 66 61 69 72 20 67 6f 6f 64 20 73 74 61 6e 64 61 72 64 20 77 68 69 63 68 20 49 20 is.a.fair.good.standard.which.I.
dae0 68 6f 70 65 20 77 65 20 63 61 6e 20 72 65 6c 79 20 6f 6e 2e 00 60 2e 2f 63 6f 6e 66 69 67 75 72 hope.we.can.rely.on..`./configur
db00 65 20 2d 2d 65 6e 61 62 6c 65 2d 70 79 74 68 6f 6e 2d 65 67 67 73 60 00 60 49 50 76 34 2c 20 49 e.--enable-python-eggs`.`IPv4,.I
db20 50 76 36 20 61 6e 64 20 44 48 43 50 28 76 36 29 60 5f 20 61 64 64 72 65 73 73 20 61 73 73 69 67 Pv6.and.DHCP(v6)`_.address.assig
db40 6e 6d 65 6e 74 00 60 49 50 76 34 2c 20 49 50 76 36 60 5f 20 61 64 64 72 65 73 73 20 61 73 73 69 nment.`IPv4,.IPv6`_.address.assi
db60 67 6e 6d 65 6e 74 00 60 4d 41 43 20 61 64 64 72 65 73 73 60 5f 20 61 73 73 69 67 6e 6d 65 6e 74 gnment.`MAC.address`_.assignment
db80 00 60 56 4c 41 4e 20 28 56 49 46 29 60 5f 20 64 65 66 69 6e 69 74 69 6f 6e 00 60 60 4a 65 6e 6b .`VLAN.(VIF)`_.definition.``Jenk
dba0 69 6e 73 3a 20 61 64 64 20 63 75 72 72 65 6e 74 20 47 69 74 20 63 6f 6d 6d 69 74 20 49 44 20 74 ins:.add.current.Git.commit.ID.t
dbc0 6f 20 62 75 69 6c 64 20 64 65 73 63 72 69 70 74 69 6f 6e 60 60 00 60 60 63 6f 6d 6d 61 6e 64 60 o.build.description``.``command`
dbe0 60 20 2d 20 4f 6e 63 65 20 73 65 74 2c 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 75 73 65 64 2c `.-.Once.set,.all.commands.used,
dc00 20 61 6e 64 20 74 68 65 69 72 20 72 65 73 70 6f 6e 73 65 73 20 72 65 63 65 69 76 65 64 20 66 72 .and.their.responses.received.fr
dc20 6f 6d 20 74 68 65 20 4f 53 2c 20 77 69 6c 6c 20 62 65 20 70 72 65 73 65 6e 74 65 64 20 6f 6e 20 om.the.OS,.will.be.presented.on.
dc40 74 68 65 20 73 63 72 65 65 6e 20 66 6f 72 20 69 6e 73 70 65 63 74 69 6f 6e 2e 00 60 60 63 6f 6d the.screen.for.inspection..``com
dc60 6d 69 74 60 60 00 60 60 64 64 63 6c 69 65 6e 74 3a 20 54 31 30 33 30 3a 20 61 75 74 6f 20 63 72 mit``.``ddclient:.T1030:.auto.cr
dc80 65 61 74 65 20 72 75 6e 74 69 6d 65 20 64 69 72 65 63 74 6f 72 69 65 73 60 60 00 60 60 64 65 76 eate.runtime.directories``.``dev
dca0 65 6c 6f 70 65 72 60 60 20 2d 20 53 68 6f 75 6c 64 20 61 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c eloper``.-.Should.a.command.fail
dcc0 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 70 72 69 6e 74 69 6e 67 20 61 20 6d 65 73 73 61 67 65 20 ,.instead.of.printing.a.message.
dce0 74 6f 20 74 68 65 20 75 73 65 72 20 65 78 70 6c 61 69 6e 69 6e 67 20 68 6f 77 20 74 6f 20 72 65 to.the.user.explaining.how.to.re
dd00 70 6f 72 74 20 69 73 73 75 65 73 2c 20 74 68 65 20 70 79 74 68 6f 6e 20 69 6e 74 65 72 70 72 65 port.issues,.the.python.interpre
dd20 74 65 72 20 77 69 6c 6c 20 73 74 61 72 74 20 61 20 50 42 44 20 70 6f 73 74 2d 6d 6f 72 74 65 6d ter.will.start.a.PBD.post-mortem
dd40 20 73 65 73 73 69 6f 6e 20 74 6f 20 61 6c 6c 6f 77 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 20 .session.to.allow.the.developer.
dd60 74 6f 20 64 65 62 75 67 20 74 68 65 20 69 73 73 75 65 2e 20 41 73 20 74 68 65 20 64 65 62 75 67 to.debug.the.issue..As.the.debug
dd80 67 65 72 20 77 69 6c 6c 20 77 61 69 74 20 66 72 6f 6d 20 69 6e 70 75 74 20 66 72 6f 6d 20 74 68 ger.will.wait.from.input.from.th
dda0 65 20 64 65 76 65 6c 6f 70 65 72 2c 20 69 74 20 68 61 73 20 74 68 65 20 63 61 70 61 63 69 74 79 e.developer,.it.has.the.capacity
ddc0 20 74 6f 20 70 72 65 76 65 6e 74 20 61 20 72 6f 75 74 65 72 20 74 6f 20 62 6f 6f 74 20 61 6e 64 .to.prevent.a.router.to.boot.and
dde0 20 74 68 65 72 65 66 6f 72 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 70 65 72 6d 61 6e .therefore.should.only.be.perman
de00 65 6e 74 6c 79 20 73 65 74 20 75 70 20 6f 6e 20 70 72 6f 64 75 63 74 69 6f 6e 20 69 66 20 79 6f ently.set.up.on.production.if.yo
de20 75 20 61 72 65 20 72 65 61 64 79 20 74 6f 20 73 65 65 20 74 68 65 20 4f 53 20 66 61 69 6c 20 74 u.are.ready.to.see.the.OS.fail.t
de40 6f 20 62 6f 6f 74 2e 00 60 60 69 66 63 6f 6e 66 69 67 60 60 20 2d 20 4f 6e 63 65 20 73 65 74 2c o.boot..``ifconfig``.-.Once.set,
de60 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 75 73 65 64 2c 20 61 6e 64 20 74 68 65 69 72 20 72 65 .all.commands.used,.and.their.re
de80 73 70 6f 6e 73 65 73 20 72 65 63 65 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 4f 53 2c 20 77 69 sponses.received.from.the.OS,.wi
dea0 6c 6c 20 62 65 20 70 72 65 73 65 6e 74 65 64 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 20 66 6f ll.be.presented.on.the.screen.fo
dec0 72 20 69 6e 73 70 65 63 74 69 6f 6e 2e 00 60 60 6c 6f 67 60 60 20 2d 20 49 6e 20 73 6f 6d 65 20 r.inspection..``log``.-.In.some.
dee0 72 61 72 65 20 63 61 73 65 73 2c 20 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 rare.cases,.it.may.be.useful.to.
df00 73 65 65 20 77 68 61 74 20 74 68 65 20 4f 53 20 69 73 20 64 6f 69 6e 67 2c 20 69 6e 63 6c 75 64 see.what.the.OS.is.doing,.includ
df20 69 6e 67 20 64 75 72 69 6e 67 20 62 6f 6f 74 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 73 65 6e ing.during.boot..This.option.sen
df40 64 73 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 75 73 65 64 20 62 79 20 56 79 4f 53 20 74 6f 20 ds.all.commands.used.by.VyOS.to.
df60 61 20 66 69 6c 65 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c 65 20 69 73 20 60 60 2f 74 a.file..The.default.file.is.``/t
df80 6d 70 2f 66 75 6c 6c 2d 6c 6f 67 60 60 20 62 75 74 20 69 74 20 63 61 6e 20 62 65 20 63 68 61 6e mp/full-log``.but.it.can.be.chan
dfa0 67 65 64 2e 00 60 60 73 65 74 60 60 00 60 60 76 79 6f 73 2d 62 75 69 6c 64 60 60 20 72 65 70 6f ged..``set``.``vyos-build``.repo
dfc0 20 69 73 20 6f 75 74 64 61 74 65 64 2c 20 70 6c 65 61 73 65 20 60 60 67 69 74 20 70 75 6c 6c 60 .is.outdated,.please.``git.pull`
dfe0 60 20 74 6f 20 75 70 64 61 74 65 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 72 65 6c 65 61 73 `.to.update.to.the.latest.releas
e000 65 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 75 73 2e 00 60 60 76 79 6f 73 e.kernel.version.from.us..``vyos
e020 2d 63 6f 6e 66 69 67 2d 64 65 62 75 67 60 60 20 2d 20 44 75 72 69 6e 67 20 64 65 76 65 6c 6f 70 -config-debug``.-.During.develop
e040 6d 65 6e 74 2c 20 63 6f 64 69 6e 67 20 65 72 72 6f 72 73 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 ment,.coding.errors.can.lead.to.
e060 61 20 63 6f 6d 6d 69 74 20 66 61 69 6c 75 72 65 20 6f 6e 20 62 6f 6f 74 2c 20 70 6f 73 73 69 62 a.commit.failure.on.boot,.possib
e080 6c 79 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 61 20 66 61 69 6c 65 64 20 69 6e 69 74 69 61 6c ly.resulting.in.a.failed.initial
e0a0 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 43 4c 49 2e 20 49 6e 20 74 68 69 73 20 63 69 72 63 ization.of.the.CLI..In.this.circ
e0c0 75 6d 73 74 61 6e 63 65 2c 20 74 68 65 20 6b 65 72 6e 65 6c 20 62 6f 6f 74 20 70 61 72 61 6d 65 umstance,.the.kernel.boot.parame
e0e0 74 65 72 20 60 60 76 79 6f 73 2d 63 6f 6e 66 69 67 2d 64 65 62 75 67 60 60 20 77 69 6c 6c 20 65 ter.``vyos-config-debug``.will.e
e100 6e 73 75 72 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d 20 61 73 20 75 73 nsure.access.to.the.system.as.us
e120 65 72 20 60 60 76 79 6f 73 60 60 2c 20 61 6e 64 20 77 69 6c 6c 20 6c 6f 67 20 61 20 50 79 74 68 er.``vyos``,.and.will.log.a.Pyth
e140 6f 6e 20 73 74 61 63 6b 20 74 72 61 63 65 20 74 6f 20 74 68 65 20 66 69 6c 65 20 60 60 2f 74 6d on.stack.trace.to.the.file.``/tm
e160 70 2f 62 6f 6f 74 2d 63 6f 6e 66 69 67 2d 74 72 61 63 65 60 60 2e 20 46 69 6c 65 20 60 60 62 6f p/boot-config-trace``..File.``bo
e180 6f 74 2d 63 6f 6e 66 69 67 2d 74 72 61 63 65 60 60 20 77 69 6c 6c 20 67 65 6e 65 72 61 74 65 20 ot-config-trace``.will.generate.
e1a0 6f 6e 6c 79 20 69 66 20 63 6f 6e 66 69 67 20 6c 6f 61 64 65 64 20 77 69 74 68 20 61 20 66 61 69 only.if.config.loaded.with.a.fai
e1c0 6c 75 72 65 20 73 74 61 74 75 73 2e 00 60 60 76 79 6f 73 2d 64 65 62 75 67 60 60 20 2d 20 41 64 lure.status..``vyos-debug``.-.Ad
e1e0 64 69 6e 67 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 74 68 65 20 6c 69 6e 75 78 20 ding.the.parameter.to.the.linux.
e200 62 6f 6f 74 20 6c 69 6e 65 20 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 74 69 6d 69 6e 67 20 72 65 boot.line.will.produce.timing.re
e220 73 75 6c 74 73 20 66 6f 72 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 73 63 72 69 70 sults.for.the.execution.of.scrip
e240 74 73 20 64 75 72 69 6e 67 20 63 6f 6d 6d 69 74 2e 20 49 66 20 6f 6e 65 20 69 73 20 73 65 65 69 ts.during.commit..If.one.is.seei
e260 6e 67 20 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 64 65 6c 61 79 20 64 75 72 69 6e 67 20 6d 61 ng.an.unexpected.delay.during.ma
e280 6e 75 61 6c 20 6f 72 20 62 6f 6f 74 20 63 6f 6d 6d 69 74 2c 20 74 68 69 73 20 6d 61 79 20 62 65 nual.or.boot.commit,.this.may.be
e2a0 20 75 73 65 66 75 6c 20 69 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 62 6f 74 74 6c 65 6e 65 63 .useful.in.identifying.bottlenec
e2c0 6b 73 2e 20 54 68 65 20 69 6e 74 65 72 6e 61 6c 20 66 6c 61 67 20 69 73 20 60 60 56 59 4f 53 5f ks..The.internal.flag.is.``VYOS_
e2e0 44 45 42 55 47 60 60 2c 20 61 6e 64 20 69 73 20 66 6f 75 6e 64 20 69 6e 20 76 79 61 74 74 61 2d DEBUG``,.and.is.found.in.vyatta-
e300 63 66 67 5f 2e 20 4f 75 74 70 75 74 20 69 73 20 64 69 72 65 63 74 65 64 20 74 6f 20 60 60 2f 76 cfg_..Output.is.directed.to.``/v
e320 61 72 2f 6c 6f 67 2f 76 79 61 74 74 61 2f 63 66 67 2d 73 74 64 6f 75 74 2e 6c 6f 67 60 60 2e 00 ar/log/vyatta/cfg-stdout.log``..
e340 60 63 64 20 73 72 63 2f 6c 69 62 63 68 61 72 6f 6e 2f 70 6c 75 67 69 6e 73 2f 76 69 63 69 2f 70 `cd.src/libcharon/plugins/vici/p
e360 79 74 68 6f 6e 60 00 60 63 64 20 76 79 6f 73 2d 73 74 72 6f 6e 67 73 77 61 6e 60 00 60 6d 61 6b ython`.`cd.vyos-strongswan`.`mak
e380 65 60 00 60 70 79 74 68 6f 6e 33 20 73 65 74 75 70 2e 70 79 20 2d 2d 63 6f 6d 6d 61 6e 64 2d 70 e`.`python3.setup.py.--command-p
e3a0 61 63 6b 61 67 65 73 3d 73 74 64 65 62 2e 63 6f 6d 6d 61 6e 64 20 62 64 69 73 74 5f 64 65 62 60 ackages=stdeb.command.bdist_deb`
e3c0 00 61 6c 6c 6f 77 65 64 3a 20 2f 70 61 74 68 2f 74 6f 2f 73 63 72 69 70 74 00 61 6c 6c 6f 77 65 .allowed:./path/to/script.allowe
e3e0 64 3a 20 63 6c 69 2d 73 68 65 6c 6c 2d 61 70 69 20 6c 69 73 74 4e 6f 64 65 73 20 76 70 6e 20 69 d:.cli-shell-api.listNodes.vpn.i
e400 70 73 65 63 20 65 73 70 2d 67 72 6f 75 70 00 61 6c 6c 6f 77 65 64 3a 20 65 63 68 6f 20 66 6f 6f psec.esp-group.allowed:.echo.foo
e420 20 62 61 72 00 62 65 67 69 6e 3a 2f 63 72 65 61 74 65 3a 2f 64 65 6c 65 74 65 3a 00 63 6f 6d 6d .bar.begin:/create:/delete:.comm
e440 69 74 3a 65 78 70 72 65 73 73 69 6f 6e 3a 00 63 6f 6e 74 69 6e 65 20 65 78 65 63 75 74 69 6f 6e it:expression:.contine.execution
e460 20 75 73 69 6e 67 20 60 60 63 6f 6e 74 60 60 00 64 65 66 61 75 6c 74 3a 00 65 78 61 6d 69 6e 65 .using.``cont``.default:.examine
e480 20 76 61 72 69 61 62 6c 65 73 20 75 73 69 6e 67 20 60 60 70 70 28 76 61 72 29 60 60 00 67 65 74 .variables.using.``pp(var)``.get
e4a0 20 61 20 62 61 63 6b 74 72 61 63 65 20 75 73 69 6e 67 20 60 60 62 74 60 60 00 68 65 6c 70 3a 20 .a.backtrace.using.``bt``.help:.
e4c0 4d 79 20 6e 6f 64 65 00 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f My.node.https://github.com/vyos/
e4e0 76 79 61 74 74 61 2d 63 66 67 2f 62 6c 6f 62 2f 30 66 34 32 37 38 36 61 30 62 33 2f 73 72 63 2f vyatta-cfg/blob/0f42786a0b3/src/
e500 63 6f 6d 6d 69 74 2f 63 6f 6d 6d 69 74 2d 61 6c 67 6f 72 69 74 68 6d 2e 63 70 70 23 4c 31 32 35 commit/commit-algorithm.cpp#L125
e520 32 00 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2.https://github.com/vyos/vyatta
e540 2d 63 66 67 2f 62 6c 6f 62 2f 30 66 34 32 37 38 36 61 30 62 33 2f 73 72 63 2f 63 73 74 6f 72 65 -cfg/blob/0f42786a0b3/src/cstore
e560 2f 63 73 74 6f 72 65 2e 63 70 70 23 4c 32 35 34 39 00 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 /cstore.cpp#L2549.https://github
e580 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2d 63 66 67 2f 62 6c 6f 62 2f 30 66 34 32 37 38 .com/vyos/vyatta-cfg/blob/0f4278
e5a0 36 61 30 62 33 2f 73 72 63 2f 63 73 74 6f 72 65 2f 63 73 74 6f 72 65 2e 63 70 70 23 4c 33 35 32 6a0b3/src/cstore/cstore.cpp#L352
e5c0 00 68 76 69 6e 66 6f 00 6b 65 65 70 61 6c 69 76 65 64 00 6d 64 6e 73 2d 72 65 70 65 61 74 65 72 .hvinfo.keepalived.mdns-repeater
e5e0 00 6d 75 6c 74 69 3a 00 6d 79 6e 6f 64 65 2f 6e 6f 64 65 2e 64 65 66 00 6d 79 6e 6f 64 65 2f 6e .multi:.mynode/node.def.mynode/n
e600 6f 64 65 2e 74 61 67 20 2c 20 74 61 67 3a 00 70 72 69 6f 72 69 74 79 3a 20 39 39 39 00 73 74 72 ode.tag.,.tag:.priority:.999.str
e620 6f 6e 67 73 77 61 6e 00 73 74 72 6f 6e 67 73 77 61 6e 2d 6e 6d 20 70 61 63 6b 61 67 65 20 62 75 ongswan.strongswan-nm.package.bu
e640 69 6c 64 20 69 73 20 64 69 73 61 62 6c 65 64 20 73 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 75 ild.is.disabled.since.we.don't.u
e660 73 65 20 4e 65 74 77 6f 72 6b 4d 61 6e 61 67 65 72 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 se.NetworkManager.syntax:express
e680 69 6f 6e 3a 20 24 56 41 52 28 40 29 20 69 6e 20 22 66 6f 6f 22 2c 20 22 62 61 72 22 2c 20 22 62 ion:.$VAR(@).in."foo",."bar",."b
e6a0 61 7a 22 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e 3a 20 28 61 72 69 74 68 6d 65 74 az".syntax:expression:.(arithmet
e6c0 69 63 20 65 78 70 72 65 73 73 69 6f 6e 29 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e ic.expression).syntax:expression
e6e0 3a 20 65 78 65 63 20 2e 2e 2e 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e 3a 20 70 61 :.exec.....syntax:expression:.pa
e700 74 74 65 72 6e 00 75 64 70 2d 62 72 6f 61 64 63 61 73 74 2d 72 65 6c 61 79 00 76 61 6c 5f 68 65 ttern.udp-broadcast-relay.val_he
e720 6c 70 3a 20 3c 66 6f 72 6d 61 74 3e 3b 20 73 6f 6d 65 20 73 74 72 69 6e 67 00 76 79 6f 73 2d 6e lp:.<format>;.some.string.vyos-n
e740 65 74 70 6c 75 67 00 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 etplug.MIME-Version:.1.0.Content
e760 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 -Type:.text/plain;.charset=UTF-8
e780 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 .Content-Transfer-Encoding:.8bit
e7a0 0a 58 2d 47 65 6e 65 72 61 74 6f 72 3a 20 4c 6f 63 61 6c 61 7a 79 20 28 68 74 74 70 73 3a 2f 2f .X-Generator:.Localazy.(https://
e7c0 6c 6f 63 61 6c 61 7a 79 2e 63 6f 6d 29 0a 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e localazy.com).Project-Id-Version
e7e0 3a 20 0a 4c 61 6e 67 75 61 67 65 3a 20 65 6e 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 :..Language:.en.Plural-Forms:.np
e800 6c 75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 3d 3d 31 29 20 3f 20 30 20 3a 20 31 3b lurals=2;.plural=(n==1).?.0.:.1;
e820 0a 00 22 24 7b 76 79 6f 73 5f 6c 69 62 65 78 65 63 64 69 72 7d 2f 76 61 6c 69 64 61 74 6f 72 73 .."${vyos_libexecdir}/validators
e840 2f 66 6f 6f 20 62 61 72 20 24 56 41 52 28 40 29 22 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 /foo.bar.$VAR(@)".will.be.execut
e860 65 64 2c 20 3c 63 6f 6e 73 74 72 61 69 6e 74 45 72 72 6f 72 4d 65 73 73 61 67 65 3e 20 77 69 6c ed,.<constraintErrorMessage>.wil
e880 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 00 2e 2e 2e 00 3c 63 l.be.displayed.on.failure.....<c
e8a0 6f 6e 73 74 72 61 69 6e 74 45 72 72 6f 72 4d 65 73 73 61 67 65 3e 20 77 69 6c 6c 20 62 65 20 64 onstraintErrorMessage>.will.be.d
e8c0 69 73 70 6c 61 79 65 64 20 6f 6e 20 66 61 69 6c 75 72 65 00 3c 6e 6f 64 65 20 6e 61 6d 65 3d 22 isplayed.on.failure.<node.name="
e8e0 6d 79 6e 6f 64 65 22 3e 20 3c 2f 6e 6f 64 65 3e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 63 mynode">.</node>.<properties>.<c
e900 6f 6d 70 6c 65 74 69 6f 6e 48 65 6c 70 3e 20 3c 6c 69 73 74 3e 20 66 6f 6f 20 62 61 72 20 3c 2f ompletionHelp>.<list>.foo.bar.</
e920 6c 69 73 74 3e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 63 6f 6d 70 6c 65 74 69 6f 6e 48 65 list>.<properties>.<completionHe
e940 6c 70 3e 20 3c 70 61 74 68 3e 20 76 70 6e 20 69 70 73 65 63 20 65 73 70 2d 67 72 6f 75 70 20 3c lp>.<path>.vpn.ipsec.esp-group.<
e960 2f 70 61 74 68 3e 20 2e 2e 2e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 63 6f 6d 70 6c 65 74 /path>.....<properties>.<complet
e980 69 6f 6e 48 65 6c 70 3e 20 3c 73 63 72 69 70 74 3e 20 2f 70 61 74 68 2f 74 6f 2f 73 63 72 69 70 ionHelp>.<script>./path/to/scrip
e9a0 74 20 3c 2f 73 63 72 69 70 74 3e 20 2e 2e 2e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 63 6f t.</script>.....<properties>.<co
e9c0 6e 73 74 72 61 69 6e 74 3e 20 3c 72 65 67 65 78 3e 20 2e 2e 2e 00 3c 70 72 6f 70 65 72 74 69 65 nstraint>.<regex>.....<propertie
e9e0 73 3e 20 3c 63 6f 6e 73 74 72 61 69 6e 74 3e 20 3c 76 61 6c 69 64 61 74 6f 72 3e 20 3c 6e 61 6d s>.<constraint>.<validator>.<nam
ea00 65 20 3d 22 66 6f 6f 22 20 61 72 67 75 6d 65 6e 74 3d 22 62 61 72 22 3e 00 3c 70 72 6f 70 65 72 e.="foo".argument="bar">.<proper
ea20 74 69 65 73 3e 20 3c 68 65 6c 70 3e 4d 79 20 6e 6f 64 65 3c 2f 68 65 6c 70 3e 00 3c 70 72 6f 70 ties>.<help>My.node</help>.<prop
ea40 65 72 74 69 65 73 3e 20 3c 6d 75 6c 74 69 2f 3e 00 3c 70 72 6f 70 65 72 74 69 65 73 3e 20 3c 70 erties>.<multi/>.<properties>.<p
ea60 72 69 6f 72 69 74 79 3e 39 39 39 3c 2f 70 72 69 6f 72 69 74 79 3e 00 3c 70 72 6f 70 65 72 74 69 riority>999</priority>.<properti
ea80 65 73 3e 20 3c 76 61 6c 75 65 48 65 6c 70 3e 20 3c 66 6f 72 6d 61 74 3e 20 66 6f 72 6d 61 74 20 es>.<valueHelp>.<format>.format.
eaa0 3c 2f 66 6f 72 6d 61 74 3e 20 3c 64 65 73 63 72 69 70 74 69 6f 6e 3e 20 73 6f 6d 65 20 73 74 72 </format>.<description>.some.str
eac0 69 6e 67 20 3c 2f 64 65 73 63 72 69 70 74 69 6f 6e 3e 00 3c 74 61 67 4e 6f 64 65 20 6e 61 6d 65 ing.</description>.<tagNode.name
eae0 3d 22 6d 79 6e 6f 64 65 3e 20 3c 2f 6e 6f 64 65 3e 00 41 20 66 6f 72 6b 20 77 69 74 68 20 70 61 ="mynode>.</node>.A.fork.with.pa
eb00 63 6b 61 67 69 6e 67 20 63 68 61 6e 67 65 73 20 66 6f 72 20 56 79 4f 53 20 69 73 20 6b 65 70 74 ckaging.changes.for.VyOS.is.kept
eb20 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 68 76 69 6e .at.https://github.com/vyos/hvin
eb40 66 6f 00 41 20 67 6f 6f 64 20 61 70 70 72 6f 61 63 68 20 66 6f 72 20 77 72 69 74 69 6e 67 20 63 fo.A.good.approach.for.writing.c
eb60 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 20 69 73 20 61 63 74 75 61 6c 6c 79 20 74 6f 20 68 61 ommit.messages.is.actually.to.ha
eb80 76 65 20 61 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 66 69 6c 65 28 73 29 20 68 69 73 74 6f 72 79 ve.a.look.at.the.file(s).history
eba0 20 62 79 20 69 6e 76 6f 6b 69 6e 67 20 60 60 67 69 74 20 6c 6f 67 20 70 61 74 68 2f 74 6f 2f 66 .by.invoking.``git.log.path/to/f
ebc0 69 6c 65 2e 74 78 74 60 60 2e 00 41 20 6e 75 6d 62 65 72 20 6f 66 20 66 6c 61 67 73 20 63 61 6e ile.txt``..A.number.of.flags.can
ebe0 20 62 65 20 73 65 74 20 75 70 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 62 65 68 61 76 69 6f .be.set.up.to.change.the.behavio
ec00 75 72 20 6f 66 20 56 79 4f 53 20 61 74 20 72 75 6e 74 69 6d 65 2e 20 54 68 65 73 65 20 66 6c 61 ur.of.VyOS.at.runtime..These.fla
ec20 67 73 20 63 61 6e 20 62 65 20 74 6f 67 67 6c 65 64 20 75 73 69 6e 67 20 65 69 74 68 65 72 20 65 gs.can.be.toggled.using.either.e
ec40 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 6f 72 20 63 72 65 61 74 69 6e 67 nvironment.variables.or.creating
ec60 20 66 69 6c 65 73 2e 00 41 20 73 69 6e 67 6c 65 2c 20 73 68 6f 72 74 2c 20 73 75 6d 6d 61 72 79 .files..A.single,.short,.summary
ec80 20 6f 66 20 74 68 65 20 63 6f 6d 6d 69 74 20 28 72 65 63 6f 6d 6d 65 6e 64 65 64 20 35 30 20 63 .of.the.commit.(recommended.50.c
eca0 68 61 72 61 63 74 65 72 73 20 6f 72 20 6c 65 73 73 2c 20 6e 6f 74 20 65 78 63 65 65 64 69 6e 67 haracters.or.less,.not.exceeding
ecc0 20 38 30 20 63 68 61 72 61 63 74 65 72 73 29 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 70 72 65 .80.characters).containing.a.pre
ece0 66 69 78 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 61 6e 64 fix.of.the.changed.component.and
ed00 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 .the.corresponding.Phabricator_.
ed20 72 65 66 65 72 65 6e 63 65 20 65 2e 67 2e 20 60 60 73 6e 6d 70 3a 20 54 31 31 31 31 3a 60 60 20 reference.e.g..``snmp:.T1111:``.
ed40 6f 72 20 60 60 65 74 68 65 72 6e 65 74 3a 20 54 32 32 32 32 3a 60 60 20 2d 20 6d 75 6c 74 69 70 or.``ethernet:.T2222:``.-.multip
ed60 6c 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 63 6f 75 6c 64 20 62 65 20 63 6f 6e 63 61 74 65 6e 61 le.components.could.be.concatena
ed80 74 65 64 20 61 73 20 69 6e 20 60 60 73 6e 6d 70 3a 20 65 74 68 65 72 6e 65 74 3a 20 54 33 33 33 ted.as.in.``snmp:.ethernet:.T333
eda0 33 60 60 00 41 62 62 72 65 76 69 61 74 69 6f 6e 73 20 61 6e 64 20 61 63 72 6f 6e 79 6d 73 20 2a 3``.Abbreviations.and.acronyms.*
edc0 2a 6d 75 73 74 2a 2a 20 62 65 20 63 61 70 69 74 61 6c 69 7a 65 64 2e 00 41 63 63 65 6c 2d 50 50 *must**.be.capitalized..Accel-PP
ede0 50 00 41 63 72 6f 6e 79 6d 73 20 61 6c 73 6f 20 2a 2a 6d 75 73 74 2a 2a 20 62 65 20 63 61 70 69 P.Acronyms.also.**must**.be.capi
ee00 74 61 6c 69 7a 65 64 20 74 6f 20 76 69 73 75 61 6c 6c 79 20 64 69 73 74 69 6e 67 75 69 73 68 20 talized.to.visually.distinguish.
ee20 74 68 65 6d 20 66 72 6f 6d 20 6e 6f 72 6d 61 6c 20 77 6f 72 64 73 3a 00 41 64 64 20 66 69 6c 65 them.from.normal.words:.Add.file
ee40 20 74 6f 20 47 69 74 20 69 6e 64 65 78 20 75 73 69 6e 67 20 60 60 67 69 74 20 61 64 64 20 6d 79 .to.Git.index.using.``git.add.my
ee60 66 69 6c 65 60 60 2c 20 6f 72 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 6f 72 79 file``,.or.for.a.whole.directory
ee80 3a 20 60 60 67 69 74 20 61 64 64 20 73 6f 6d 65 64 69 72 2f 2a 60 60 00 41 64 64 20 6f 6e 65 20 :.``git.add.somedir/*``.Add.one.
eea0 6f 72 20 6d 6f 72 65 20 49 50 20 61 64 64 72 65 73 73 65 73 00 41 64 64 72 65 73 73 00 41 66 74 or.more.IP.addresses.Address.Aft
eec0 65 72 20 61 20 6d 69 6e 75 74 65 20 6f 72 20 74 77 6f 20 79 6f 75 20 77 69 6c 6c 20 66 69 6e 64 er.a.minute.or.two.you.will.find
eee0 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 44 45 42 20 70 61 63 6b 61 67 65 73 20 6e 65 78 74 .the.generated.DEB.packages.next
ef00 20 74 6f 20 74 68 65 20 76 79 6f 73 2d 31 78 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 .to.the.vyos-1x.source.directory
ef20 3a 00 41 66 74 65 72 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 79 :.After.compiling.the.packages.y
ef40 6f 75 20 77 69 6c 6c 20 66 69 6e 64 20 79 6f 75 72 73 65 6c 66 20 74 68 65 20 6e 65 77 6c 79 20 ou.will.find.yourself.the.newly.
ef60 67 65 6e 65 72 61 74 65 64 20 60 2a 2e 64 65 62 60 20 62 69 6e 61 72 69 65 73 20 69 6e 20 60 60 generated.`*.deb`.binaries.in.``
ef80 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 2d 6b 65 72 6e 65 6c vyos-build/packages/linux-kernel
efa0 60 60 20 66 72 6f 6d 20 77 68 69 63 68 20 79 6f 75 20 63 61 6e 20 63 6f 70 79 20 74 68 65 6d 20 ``.from.which.you.can.copy.them.
efc0 74 6f 20 74 68 65 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 60 60 20 66 to.the.``vyos-build/packages``.f
efe0 6f 6c 64 65 72 20 66 6f 72 20 69 6e 63 6c 75 73 69 6f 6e 20 64 75 72 69 6e 67 20 74 68 65 20 49 older.for.inclusion.during.the.I
f000 53 4f 20 62 75 69 6c 64 2e 00 41 66 74 65 72 20 69 74 73 20 66 69 72 73 74 20 62 6f 6f 74 20 69 SO.build..After.its.first.boot.i
f020 6e 74 6f 20 74 68 65 20 6e 65 77 6c 79 20 69 6e 73 74 61 6c 6c 65 64 20 73 79 73 74 65 6d 20 74 nto.the.newly.installed.system.t
f040 68 65 20 6d 61 69 6e 20 53 6d 6f 6b 65 74 65 73 74 20 73 63 72 69 70 74 20 69 73 20 65 78 65 63 he.main.Smoketest.script.is.exec
f060 75 74 65 64 2c 20 69 74 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 68 65 72 65 3a 20 60 2f 75 73 uted,.it.can.be.found.here:.`/us
f080 72 2f 62 69 6e 2f 76 79 6f 73 2d 73 6d 6f 6b 65 74 65 73 74 60 00 41 6c 6c 20 56 79 4f 53 20 73 r/bin/vyos-smoketest`.All.VyOS.s
f0a0 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 68 6f 73 74 65 64 20 6f 6e 20 47 69 74 48 75 62 20 75 ource.code.is.hosted.on.GitHub.u
f0c0 6e 64 65 72 20 74 68 65 20 56 79 4f 53 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 20 77 68 69 63 68 nder.the.VyOS.organization.which
f0e0 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 68 65 72 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 .can.be.found.here:.https://gith
f100 75 62 2e 63 6f 6d 2f 76 79 6f 73 00 41 6c 6c 20 63 6f 6d 6d 69 74 20 74 69 6d 65 20 63 68 65 63 ub.com/vyos.All.commit.time.chec
f120 6b 73 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 74 68 65 20 76 65 72 69 66 79 28 29 20 66 75 6e ks.should.be.in.the.verify().fun
f140 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 63 72 69 70 74 00 41 6c 6c 20 69 6e 74 65 72 66 61 63 ction.of.the.script.All.interfac
f160 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 58 4d 4c 20 69 6e 70 75 74 20 66 69 6c 65 73 20 28 2e 69 e.definition.XML.input.files.(.i
f180 6e 20 73 75 66 66 69 78 29 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 74 6f 20 74 68 65 20 47 43 n.suffix).will.be.sent.to.the.GC
f1a0 43 20 70 72 65 70 72 6f 63 65 73 73 20 61 6e 64 20 74 68 65 20 6f 75 74 70 75 74 20 69 73 20 73 C.preprocess.and.the.output.is.s
f1c0 74 6f 72 65 64 20 69 6e 20 74 68 65 20 60 62 75 69 6c 64 2f 69 6e 74 65 72 66 61 63 65 2d 64 65 tored.in.the.`build/interface-de
f1e0 66 69 6e 69 74 69 6f 6e 73 60 20 66 6f 6c 64 65 72 2e 20 54 68 65 20 70 72 65 76 69 6f 75 73 6c finitions`.folder..The.previousl
f200 79 20 6d 65 6e 74 69 6f 6e 65 64 20 60 73 63 72 69 70 74 73 2f 62 75 69 6c 64 2d 63 6f 6d 6d 61 y.mentioned.`scripts/build-comma
f220 6e 64 2d 74 65 6d 70 6c 61 74 65 73 60 20 73 63 72 69 70 74 20 6f 70 65 72 61 74 65 73 20 6f 6e nd-templates`.script.operates.on
f240 20 74 68 65 20 60 62 75 69 6c 64 2f 69 6e 74 65 72 66 61 63 65 2d 64 65 66 69 6e 69 74 69 6f 6e .the.`build/interface-definition
f260 73 60 20 66 6f 6c 64 65 72 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 6c 6c 20 72 65 71 75 69 72 s`.folder.to.generate.all.requir
f280 65 64 20 43 4c 49 20 6e 6f 64 65 73 2e 00 41 6c 6c 20 69 73 73 75 65 73 20 73 68 6f 75 6c 64 20 ed.CLI.nodes..All.issues.should.
f2a0 62 65 20 72 65 70 6f 72 74 65 64 20 74 6f 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 2e 20 54 be.reported.to.the.developers..T
f2c0 68 69 73 20 6c 65 74 73 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 20 6b 6e 6f 77 20 77 68 61 his.lets.the.developers.know.wha
f2e0 74 20 69 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 70 72 6f 70 65 72 6c 79 2e 20 57 69 74 68 6f t.is.not.working.properly..Witho
f300 75 74 20 74 68 69 73 20 73 6f 72 74 20 6f 66 20 66 65 65 64 62 61 63 6b 20 65 76 65 72 79 20 64 ut.this.sort.of.feedback.every.d
f320 65 76 65 6c 6f 70 65 72 20 77 69 6c 6c 20 62 65 6c 69 65 76 65 20 74 68 61 74 20 65 76 65 72 79 eveloper.will.believe.that.every
f340 74 68 69 6e 67 20 69 73 20 77 6f 72 6b 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 2e 00 41 6c 6c 20 thing.is.working.correctly..All.
f360 6c 6f 67 69 63 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 74 68 65 20 73 63 72 69 70 74 73 00 41 logic.should.be.in.the.scripts.A
f380 6c 6c 20 74 65 78 74 20 6f 66 20 74 68 65 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 20 73 68 ll.text.of.the.commit.message.sh
f3a0 6f 75 6c 64 20 62 65 20 77 72 61 70 70 65 64 20 61 74 20 37 32 20 63 68 61 72 61 63 74 65 72 73 ould.be.wrapped.at.72.characters
f3c0 20 69 66 20 70 6f 73 73 69 62 6c 65 20 77 68 69 63 68 20 6d 61 6b 65 73 20 72 65 61 64 69 6e 67 .if.possible.which.makes.reading
f3e0 20 63 6f 6d 6d 69 74 20 6c 6f 67 73 20 65 61 73 69 65 72 20 77 69 74 68 20 60 60 67 69 74 20 6c .commit.logs.easier.with.``git.l
f400 6f 67 60 60 20 6f 6e 20 61 20 73 74 61 6e 64 61 72 64 20 74 65 72 6d 69 6e 61 6c 20 28 77 68 69 og``.on.a.standard.terminal.(whi
f420 63 68 20 68 61 70 70 65 6e 73 20 74 6f 20 62 65 20 38 30 78 32 35 29 00 41 6c 77 61 79 73 20 75 ch.happens.to.be.80x25).Always.u
f440 73 65 20 74 68 65 20 60 60 2d 78 60 60 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 60 60 67 69 se.the.``-x``.option.to.the.``gi
f460 74 20 63 68 65 72 72 79 2d 70 69 63 6b 60 60 20 63 6f 6d 6d 61 6e 64 20 77 68 65 6e 20 62 61 63 t.cherry-pick``.command.when.bac
f480 6b 20 6f 72 20 66 6f 72 77 61 72 64 20 70 6f 72 74 69 6e 67 20 61 6e 20 69 6e 64 69 76 69 64 75 k.or.forward.porting.an.individu
f4a0 61 6c 20 63 6f 6d 6d 69 74 2e 20 54 68 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 70 al.commit..This.automatically.ap
f4c0 70 65 6e 64 73 20 74 68 65 20 6c 69 6e 65 3a 20 60 60 28 63 68 65 72 72 79 20 70 69 63 6b 65 64 pends.the.line:.``(cherry.picked
f4e0 20 66 72 6f 6d 20 63 6f 6d 6d 69 74 20 3c 49 44 3e 29 60 60 20 74 6f 20 74 68 65 20 6f 72 69 67 .from.commit.<ID>)``.to.the.orig
f500 69 6e 61 6c 20 61 75 74 68 6f 72 73 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 20 6d 61 6b 69 inal.authors.commit.message.maki
f520 6e 67 20 69 74 20 65 61 73 69 65 72 20 77 68 65 6e 20 62 69 73 65 63 74 69 6e 67 20 70 72 6f 62 ng.it.easier.when.bisecting.prob
f540 6c 65 6d 73 2e 00 41 6e 6f 74 68 65 72 20 61 64 76 61 6e 74 61 67 65 20 69 73 20 74 65 73 74 61 lems..Another.advantage.is.testa
f560 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 63 6f 64 65 2e 20 4d 6f 63 6b 69 6e 67 20 74 68 65 20 bility.of.the.code..Mocking.the.
f580 65 6e 74 69 72 65 20 63 6f 6e 66 69 67 20 73 75 62 73 79 73 74 65 6d 20 69 73 20 68 61 72 64 2c entire.config.subsystem.is.hard,
f5a0 20 77 68 69 6c 65 20 63 6f 6e 73 74 72 75 63 74 69 6e 67 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 .while.constructing.an.internal.
f5c0 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 62 79 20 68 61 6e 64 20 69 73 20 77 61 79 20 73 69 representation.by.hand.is.way.si
f5e0 6d 70 6c 65 72 2e 00 41 6e 79 20 22 6d 6f 64 69 66 69 65 64 22 20 70 61 63 6b 61 67 65 20 6d 61 mpler..Any."modified".package.ma
f600 79 20 72 65 66 65 72 20 74 6f 20 61 6e 20 61 6c 74 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 y.refer.to.an.altered.version.of
f620 20 65 2e 67 2e 20 76 79 6f 73 2d 31 78 20 70 61 63 6b 61 67 65 20 74 68 61 74 20 79 6f 75 20 77 .e.g..vyos-1x.package.that.you.w
f640 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 74 65 73 74 20 62 65 66 6f 72 65 20 66 69 6c 69 6e 67 20 ould.like.to.test.before.filing.
f660 61 20 70 75 6c 6c 20 72 65 71 75 65 73 74 20 6f 6e 20 47 69 74 48 75 62 2e 00 41 6e 79 20 70 61 a.pull.request.on.GitHub..Any.pa
f680 63 6b 61 67 65 73 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 64 69 72 65 63 74 6f 72 79 ckages.in.the.packages.directory
f6a0 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 69 73 6f 20 64 75 72 69 6e 67 .will.be.added.to.the.iso.during
f6c0 20 62 75 69 6c 64 2c 20 72 65 70 6c 61 63 69 6e 67 20 74 68 65 20 75 70 73 74 72 65 61 6d 20 6f .build,.replacing.the.upstream.o
f6e0 6e 65 73 2e 20 4d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 64 65 6c 65 74 65 20 74 68 65 6d 20 28 nes..Make.sure.you.delete.them.(
f700 62 6f 74 68 20 74 68 65 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 6e 64 20 both.the.source.directories.and.
f720 62 75 69 6c 74 20 64 65 62 20 70 61 63 6b 61 67 65 73 29 20 69 66 20 79 6f 75 20 77 61 6e 74 20 built.deb.packages).if.you.want.
f740 74 6f 20 62 75 69 6c 64 20 61 6e 20 69 73 6f 20 66 72 6f 6d 20 70 75 72 65 6c 79 20 75 70 73 74 to.build.an.iso.from.purely.upst
f760 72 65 61 6d 20 70 61 63 6b 61 67 65 73 2e 00 41 73 20 53 6d 6f 6b 65 74 65 73 74 73 20 77 69 6c ream.packages..As.Smoketests.wil
f780 6c 20 61 6c 74 65 72 20 74 68 65 20 73 79 73 74 65 6d 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e l.alter.the.system.configuration
f7a0 20 61 6e 64 20 79 6f 75 20 61 72 65 20 6c 6f 67 67 65 64 20 69 6e 20 72 65 6d 6f 74 65 20 79 6f .and.you.are.logged.in.remote.yo
f7c0 75 20 6d 61 79 20 6c 6f 6f 73 65 20 79 6f 75 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 74 u.may.loose.your.connection.to.t
f7e0 68 65 20 73 79 73 74 65 6d 2e 00 41 73 20 74 68 65 20 56 79 4f 53 20 64 6f 63 75 6d 65 6e 74 61 he.system..As.the.VyOS.documenta
f800 74 69 6f 6e 20 69 73 20 6e 6f 74 20 6f 6e 6c 79 20 66 6f 72 20 75 73 65 72 73 20 62 75 74 20 61 tion.is.not.only.for.users.but.a
f820 6c 73 6f 20 66 6f 72 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 20 2d 20 61 6e 64 20 77 65 20 lso.for.the.developers.-.and.we.
f840 6b 65 65 70 20 6e 6f 20 73 65 63 72 65 74 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 2d 20 74 keep.no.secret.documentation.-.t
f860 68 69 73 20 73 65 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 73 20 68 6f 77 20 74 68 65 20 61 75 his.section.describes.how.the.au
f880 74 6f 6d 61 74 65 64 20 74 65 73 74 69 6e 67 20 77 6f 72 6b 73 2e 00 41 73 73 75 6d 65 20 77 65 tomated.testing.works..Assume.we
f8a0 20 77 61 6e 74 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 76 79 6f 73 2d 31 78 20 70 61 63 6b 61 .want.to.build.the.vyos-1x.packa
f8c0 67 65 20 6f 6e 20 6f 75 72 20 6f 77 6e 20 61 6e 64 20 6d 6f 64 69 66 79 20 69 74 20 74 6f 20 6f ge.on.our.own.and.modify.it.to.o
f8e0 75 72 20 6e 65 65 64 73 2e 20 57 65 20 66 69 72 73 74 20 6e 65 65 64 20 74 6f 20 63 6c 6f 6e 65 ur.needs..We.first.need.to.clone
f900 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 66 72 6f 6d 20 47 69 74 48 75 62 2e 00 41 74 74 .the.repository.from.GitHub..Att
f920 61 63 68 20 70 61 74 63 68 20 74 6f 20 50 68 61 62 72 69 63 61 74 6f 72 20 74 61 73 6b 00 42 61 ach.patch.to.Phabricator.task.Ba
f940 64 3a 20 22 44 69 73 61 62 6c 65 73 20 49 50 76 36 20 66 6f 72 77 61 72 64 69 6e 67 22 00 42 61 d:."Disables.IPv6.forwarding".Ba
f960 64 3a 20 22 46 72 6f 62 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 2e 22 00 42 61 64 d:."Frobnication.algorithm.".Bad
f980 3a 20 22 53 65 74 20 54 43 50 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 69 6d 65 6f 75 74 22 00 42 :."Set.TCP.connection.timeout".B
f9a0 61 64 3a 20 22 66 72 6f 62 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 22 00 42 61 64 ad:."frobnication.algorithm".Bad
f9c0 3a 20 22 74 63 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 69 6d 65 6f 75 74 22 00 42 61 64 3a 20 :."tcp.connection.timeout".Bad:.
f9e0 50 50 50 4f 45 2c 20 49 50 53 45 43 00 42 61 64 3a 20 70 70 70 6f 65 2c 20 69 70 73 65 63 00 42 PPPOE,.IPSEC.Bad:.pppoe,.ipsec.B
fa00 61 64 3a 20 72 61 64 69 75 73 20 28 75 6e 6c 65 73 73 20 69 74 27 73 20 61 62 6f 75 74 20 74 68 ad:.radius.(unless.it's.about.th
fa20 65 20 64 69 73 74 61 6e 63 65 20 62 65 74 77 65 65 6e 20 61 20 63 65 6e 74 65 72 20 6f 66 20 61 e.distance.between.a.center.of.a
fa40 20 63 69 72 63 6c 65 20 61 6e 64 20 61 6e 79 20 6f 66 20 69 74 73 20 70 6f 69 6e 74 73 29 00 42 .circle.and.any.of.its.points).B
fa60 65 65 69 6e 67 20 62 72 61 76 65 20 61 6e 64 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 6c 61 74 65 eeing.brave.and.running.the.late
fa80 73 74 20 72 6f 6c 6c 69 6e 67 20 72 65 6c 65 61 73 65 73 20 77 69 6c 6c 20 73 6f 6d 65 74 69 6d st.rolling.releases.will.sometim
faa0 65 73 20 74 72 69 67 67 65 72 20 62 75 67 73 20 64 75 65 20 74 6f 20 63 6f 72 6e 65 72 20 63 61 es.trigger.bugs.due.to.corner.ca
fac0 73 65 73 20 77 65 20 6d 69 73 73 65 64 20 69 6e 20 6f 75 72 20 64 65 73 69 67 6e 2e 20 54 68 6f ses.we.missed.in.our.design..Tho
fae0 73 65 20 62 75 67 73 20 73 68 6f 75 6c 64 20 62 65 20 66 69 6c 65 64 20 76 69 61 20 50 68 61 62 se.bugs.should.be.filed.via.Phab
fb00 72 69 63 61 74 6f 72 5f 20 62 75 74 20 79 6f 75 20 63 61 6e 20 68 65 6c 70 20 75 73 20 74 6f 20 ricator_.but.you.can.help.us.to.
fb20 6e 61 72 72 6f 77 20 64 6f 65 6e 20 74 68 65 20 69 73 73 75 65 2e 20 4c 6f 67 69 6e 20 74 6f 20 narrow.doen.the.issue..Login.to.
fb40 79 6f 75 72 20 56 79 4f 53 20 73 79 73 74 65 6d 20 61 6e 64 20 63 68 61 6e 67 65 20 69 6e 74 6f your.VyOS.system.and.change.into
fb60 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 6f 64 65 20 62 79 20 74 79 70 69 6e 67 20 60 60 .configuration.mode.by.typing.``
fb80 63 6f 6e 66 69 67 75 72 65 60 60 2e 20 4e 6f 77 20 72 65 2d 6c 6f 61 64 20 79 6f 75 72 20 62 6f configure``..Now.re-load.your.bo
fba0 6f 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 62 79 20 73 69 6d 70 6c 79 20 74 79 70 69 6e ot.configuration.by.simply.typin
fbc0 67 20 60 60 6c 6f 61 64 60 60 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 72 65 74 75 72 6e 2e 00 42 g.``load``.followed.by.return..B
fbe0 6f 6f 74 20 54 69 6d 69 6e 67 00 42 75 67 20 52 65 70 6f 72 74 2f 49 73 73 75 65 00 42 75 69 6c oot.Timing.Bug.Report/Issue.Buil
fc00 64 00 42 75 69 6c 64 20 43 6f 6e 74 61 69 6e 65 72 00 42 75 69 6c 64 20 49 53 4f 00 42 75 69 6c d.Build.Container.Build.ISO.Buil
fc20 64 20 56 79 4f 53 00 42 75 69 6c 64 20 66 72 6f 6d 20 73 6f 75 72 63 65 00 42 75 69 6c 64 69 6e d.VyOS.Build.from.source.Buildin
fc40 67 20 4f 75 74 2d 4f 66 2d 54 72 65 65 20 4d 6f 64 75 6c 65 73 00 42 75 69 6c 64 69 6e 67 20 54 g.Out-Of-Tree.Modules.Building.T
fc60 68 65 20 4b 65 72 6e 65 6c 00 42 75 69 6c 64 69 6e 67 20 56 79 4f 53 20 6f 6e 20 57 69 6e 64 6f he.Kernel.Building.VyOS.on.Windo
fc80 77 73 20 57 53 4c 32 20 77 69 74 68 20 44 6f 63 6b 65 72 20 69 6e 74 65 67 72 61 74 65 64 20 69 ws.WSL2.with.Docker.integrated.i
fca0 6e 74 6f 20 57 53 4c 32 20 77 69 6c 6c 20 77 6f 72 6b 20 6c 69 6b 65 20 61 20 63 68 61 72 6d 2e nto.WSL2.will.work.like.a.charm.
fcc0 20 4e 6f 20 70 72 6f 62 6c 65 6d 73 20 61 72 65 20 6b 6e 6f 77 6e 20 73 6f 20 66 61 72 21 00 42 .No.problems.are.known.so.far!.B
fce0 75 69 6c 64 69 6e 67 20 61 6e 20 49 53 4f 20 77 69 74 68 20 61 6e 79 20 63 75 73 74 6f 6d 69 7a uilding.an.ISO.with.any.customiz
fd00 65 64 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 20 6e 6f 20 77 61 79 20 64 69 66 66 65 72 65 6e ed.package.is.in.no.way.differen
fd20 74 20 74 68 61 6e 20 62 75 69 6c 64 69 6e 67 20 61 20 72 65 67 75 6c 61 72 20 28 63 75 73 74 6f t.than.building.a.regular.(custo
fd40 6d 69 7a 65 64 20 6f 72 20 6e 6f 74 29 20 49 53 4f 20 69 6d 61 67 65 2e 20 53 69 6d 70 6c 79 20 mized.or.not).ISO.image..Simply.
fd60 70 6c 61 63 65 20 79 6f 75 72 20 6d 6f 64 69 66 69 65 64 20 60 2a 2e 64 65 62 60 20 70 61 63 6b place.your.modified.`*.deb`.pack
fd80 61 67 65 20 69 6e 73 69 64 65 20 74 68 65 20 60 70 61 63 6b 61 67 65 73 60 20 66 6f 6c 64 65 72 age.inside.the.`packages`.folder
fda0 20 77 69 74 68 69 6e 20 60 76 79 6f 73 2d 62 75 69 6c 64 60 2e 20 54 68 65 20 62 75 69 6c 64 20 .within.`vyos-build`..The.build.
fdc0 70 72 6f 63 65 73 73 20 77 69 6c 6c 20 74 68 65 6e 20 70 69 63 6b 75 70 20 79 6f 75 72 20 63 75 process.will.then.pickup.your.cu
fde0 73 74 6f 6d 20 70 61 63 6b 61 67 65 20 61 6e 64 20 69 6e 74 65 67 72 61 74 65 20 69 74 20 69 6e stom.package.and.integrate.it.in
fe00 74 6f 20 79 6f 75 72 20 49 53 4f 2e 00 42 75 69 6c 64 69 6e 67 20 74 68 65 20 6b 65 72 6e 65 6c to.your.ISO..Building.the.kernel
fe20 20 69 73 20 6f 6e 65 20 70 61 72 74 2c 20 62 75 74 20 6e 6f 77 20 79 6f 75 20 61 6c 73 6f 20 6e .is.one.part,.but.now.you.also.n
fe40 65 65 64 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 72 65 71 75 69 72 65 64 20 6f 75 74 2d 6f 66 eed.to.build.the.required.out-of
fe60 2d 74 72 65 65 20 6d 6f 64 75 6c 65 73 20 73 6f 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 6c -tree.modules.so.everything.is.l
fe80 69 6e 65 64 20 75 70 20 61 6e 64 20 74 68 65 20 41 42 49 73 20 6d 61 74 63 68 2e 20 54 6f 20 64 ined.up.and.the.ABIs.match..To.d
fea0 6f 20 73 6f 2c 20 79 6f 75 20 63 61 6e 20 61 67 61 69 6e 20 74 61 6b 65 20 61 20 6c 6f 6f 6b 20 o.so,.you.can.again.take.a.look.
fec0 61 74 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 2d 6b at.``vyos-build/packages/linux-k
fee0 65 72 6e 65 6c 2f 4a 65 6e 6b 69 6e 73 66 69 6c 65 60 60 20 74 6f 20 73 65 65 20 61 6c 6c 20 6f ernel/Jenkinsfile``.to.see.all.o
ff00 66 20 74 68 65 20 72 65 71 75 69 72 65 64 20 6d 6f 64 75 6c 65 73 20 61 6e 64 20 74 68 65 69 72 f.the.required.modules.and.their
ff20 20 73 65 6c 65 63 74 65 64 20 76 65 72 73 69 6f 6e 73 2e 20 57 65 20 77 69 6c 6c 20 73 68 6f 77 .selected.versions..We.will.show
ff40 20 79 6f 75 20 68 6f 77 20 74 6f 20 62 75 69 6c 64 20 61 6c 6c 20 74 68 65 20 63 75 72 72 65 6e .you.how.to.build.all.the.curren
ff60 74 20 72 65 71 75 69 72 65 64 20 6d 6f 64 75 6c 65 73 2e 00 42 75 69 6c 64 69 6e 67 20 74 68 65 t.required.modules..Building.the
ff80 20 6b 65 72 6e 65 6c 20 77 69 6c 6c 20 74 61 6b 65 20 73 6f 6d 65 20 74 69 6d 65 20 64 65 70 65 .kernel.will.take.some.time.depe
ffa0 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 70 65 65 64 20 61 6e 64 20 71 75 61 6e 74 69 74 79 20 nding.on.the.speed.and.quantity.
ffc0 6f 66 20 79 6f 75 72 20 43 50 55 2f 63 6f 72 65 73 20 61 6e 64 20 64 69 73 6b 20 73 70 65 65 64 of.your.CPU/cores.and.disk.speed
ffe0 2e 20 45 78 70 65 63 74 20 32 30 20 6d 69 6e 75 74 65 73 20 28 6f 72 20 65 76 65 6e 20 6c 6f 6e ..Expect.20.minutes.(or.even.lon
10000 67 65 72 29 20 6f 6e 20 6c 6f 77 65 72 20 65 6e 64 20 68 61 72 64 77 61 72 65 2e 00 42 75 69 6c ger).on.lower.end.hardware..Buil
10020 64 69 6e 67 20 75 73 69 6e 67 20 61 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 64 6f 63 6b 65 72 60 ding.using.a.:ref:`build_docker`
10040 20 63 6f 6e 74 61 69 6e 65 72 2c 20 61 6c 74 68 6f 75 67 68 20 6e 6f 74 20 74 68 65 20 6f 6e 6c .container,.although.not.the.onl
10060 79 20 77 61 79 2c 20 69 73 20 74 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 61 73 20 61 6c 6c y.way,.is.the.easiest.way.as.all
10080 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20 6d 61 6e 61 67 65 64 20 66 6f 72 20 79 6f .dependencies.are.managed.for.yo
100a0 75 2e 20 48 6f 77 65 76 65 72 2c 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 65 74 20 75 70 20 u..However,.you.can.also.set.up.
100c0 79 6f 75 72 20 6f 77 6e 20 62 75 69 6c 64 20 6d 61 63 68 69 6e 65 20 61 6e 64 20 72 75 6e 20 61 your.own.build.machine.and.run.a
100e0 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 6e 61 74 69 76 65 60 2e 00 42 75 74 20 77 65 20 61 72 65 .:ref:`build_native`..But.we.are
10100 20 68 65 72 65 20 74 6f 20 61 73 73 69 73 74 20 79 6f 75 20 61 6e 64 20 77 61 6e 74 20 74 6f 20 .here.to.assist.you.and.want.to.
10120 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 68 6f 77 20 79 6f 75 20 63 61 6e 20 62 65 guide.you.through.how.you.can.be
10140 63 6f 6d 65 20 61 20 67 6f 6f 64 20 56 79 4f 53 20 63 6f 6e 74 72 69 62 75 74 6f 72 2e 20 54 68 come.a.good.VyOS.contributor..Th
10160 65 20 72 75 6c 65 73 20 77 65 20 68 61 76 65 20 61 72 65 20 6e 6f 74 20 74 68 65 72 65 20 74 6f e.rules.we.have.are.not.there.to
10180 20 70 75 6e 69 73 68 20 79 6f 75 20 2d 20 74 68 65 20 72 75 6c 65 73 20 61 72 65 20 69 6e 20 70 .punish.you.-.the.rules.are.in.p
101a0 6c 61 63 65 20 74 6f 20 68 65 6c 70 20 75 73 20 61 6c 6c 2e 20 57 68 61 74 20 64 6f 65 73 20 69 lace.to.help.us.all..What.does.i
101c0 74 20 6d 65 61 6e 3f 20 42 79 20 68 61 76 69 6e 67 20 61 20 63 6f 6e 73 69 73 74 65 6e 74 20 63 t.mean?.By.having.a.consistent.c
101e0 6f 64 69 6e 67 20 73 74 79 6c 65 20 69 74 20 62 65 63 6f 6d 65 73 20 76 65 72 79 20 65 61 73 79 oding.style.it.becomes.very.easy
10200 20 66 6f 72 20 6e 65 77 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 61 6e 64 20 61 6c 73 6f 20 6c .for.new.contributors.and.also.l
10220 6f 6e 67 74 69 6d 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 74 6f 20 6e 61 76 69 67 61 74 65 ongtime.contributors.to.navigate
10240 20 74 68 72 6f 75 67 68 20 74 68 65 20 73 6f 75 72 63 65 73 20 61 6e 64 20 61 6c 6c 20 74 68 65 .through.the.sources.and.all.the
10260 20 69 6d 70 6c 69 65 64 20 6c 6f 67 69 63 20 6f 66 20 74 68 65 20 73 70 61 67 68 65 74 74 69 20 .implied.logic.of.the.spaghetti.
10280 63 6f 64 65 2e 00 43 2b 2b 20 42 61 63 6b 65 6e 64 20 43 6f 64 65 00 43 61 70 69 74 61 6c 69 7a code..C++.Backend.Code.Capitaliz
102a0 61 74 69 6f 6e 20 61 6e 64 20 70 75 6e 63 74 75 61 74 69 6f 6e 00 43 68 65 63 6b 20 6f 75 74 20 ation.and.punctuation.Check.out.
102c0 74 68 65 20 72 65 71 75 69 72 65 64 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e 20 2d 20 73 65 the.required.kernel.version.-.se
102e0 65 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 64 61 74 61 2f 64 65 66 61 75 6c 74 73 2e 6a 73 6f e.``vyos-build/data/defaults.jso
10300 6e 60 60 20 66 69 6c 65 20 28 65 78 61 6d 70 6c 65 20 75 73 65 73 20 6b 65 72 6e 65 6c 20 34 2e n``.file.(example.uses.kernel.4.
10320 31 39 2e 31 34 36 29 3a 00 43 6c 6f 6e 65 20 74 68 65 20 6b 65 72 6e 65 6c 20 73 6f 75 72 63 65 19.146):.Clone.the.kernel.source
10340 20 74 6f 20 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 2d 6b .to.`vyos-build/packages/linux-k
10360 65 72 6e 65 6c 2f 60 3a 00 43 6c 6f 6e 65 3a 20 60 60 67 69 74 20 63 6c 6f 6e 65 20 68 74 74 70 ernel/`:.Clone:.``git.clone.http
10380 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 3c 75 73 65 72 3e 2f 76 79 6f 73 2d 31 78 2e 67 69 s://github.com/<user>/vyos-1x.gi
103a0 74 60 60 00 43 6f 64 69 6e 67 20 47 75 69 64 65 6c 69 6e 65 73 00 43 6f 6d 6d 61 6e 64 20 64 65 t``.Coding.Guidelines.Command.de
103c0 66 69 6e 69 74 69 6f 6e 73 20 61 72 65 20 70 75 72 65 6c 79 20 64 65 63 6c 61 72 61 74 69 76 65 finitions.are.purely.declarative
103e0 2c 20 61 6e 64 20 63 61 6e 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 6c 6f 67 69 63 2e 20 ,.and.cannot.contain.any.logic..
10400 41 6c 6c 20 6c 6f 67 69 63 20 66 6f 72 20 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 6e 66 69 67 20 All.logic.for.generating.config.
10420 66 69 6c 65 73 20 66 6f 72 20 74 61 72 67 65 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2c 20 72 files.for.target.applications,.r
10440 65 73 74 61 72 74 69 6e 67 20 73 65 72 76 69 63 65 73 20 61 6e 64 20 73 6f 20 6f 6e 20 69 73 20 estarting.services.and.so.on.is.
10460 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 implemented.in.configuration.scr
10480 69 70 74 73 20 69 6e 73 74 65 61 64 2e 00 43 6f 6d 6d 69 74 20 74 68 65 20 63 68 61 6e 67 65 73 ipts.instead..Commit.the.changes
104a0 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 60 67 69 74 20 63 6f 6d 6d 69 74 60 60 2e 20 50 6c 65 61 .by.calling.``git.commit``..Plea
104c0 73 65 20 75 73 65 20 61 20 6d 65 61 6e 69 6e 67 66 75 6c 20 63 6f 6d 6d 69 74 20 68 65 61 64 6c se.use.a.meaningful.commit.headl
104e0 69 6e 65 20 28 72 65 61 64 20 61 62 6f 76 65 29 20 61 6e 64 20 64 6f 6e 27 74 20 66 6f 72 67 65 ine.(read.above).and.don't.forge
10500 74 20 74 6f 20 72 65 66 65 72 65 6e 63 65 20 74 68 65 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 t.to.reference.the.Phabricator_.
10520 49 44 2e 00 43 6f 6e 66 69 67 20 4c 6f 61 64 20 54 65 73 74 73 00 43 6f 6e 66 69 67 20 4d 69 67 ID..Config.Load.Tests.Config.Mig
10540 72 61 74 69 6f 6e 20 53 63 72 69 70 74 73 00 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 45 72 72 ration.Scripts.Configuration.Err
10560 6f 72 20 6f 6e 20 53 79 73 74 65 6d 20 42 6f 6f 74 00 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 or.on.System.Boot.Configuration.
10580 53 63 72 69 70 74 20 53 74 72 75 63 74 75 72 65 20 61 6e 64 20 42 65 68 61 76 69 6f 75 72 00 43 Script.Structure.and.Behaviour.C
105a0 6f 6e 73 75 6c 74 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5f 20 74 6f 20 65 6e 73 onsult.the.documentation_.to.ens
105c0 75 72 65 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 63 6f 6e 66 69 67 75 72 65 64 20 79 6f 75 ure.that.you.have.configured.you
105e0 72 20 73 79 73 74 65 6d 20 63 6f 72 72 65 63 74 6c 79 00 43 6f 6e 74 69 6e 75 6f 75 73 20 49 6e r.system.correctly.Continuous.In
10600 74 65 67 72 61 74 69 6f 6e 00 43 75 73 74 6f 6d 69 7a 65 00 44 48 43 50 20 63 6c 69 65 6e 74 20 tegration.Customize.DHCP.client.
10620 61 6e 64 20 44 48 43 50 76 36 20 70 72 65 66 69 78 20 64 65 6c 65 67 61 74 69 6f 6e 00 44 4d 56 and.DHCPv6.prefix.delegation.DMV
10640 50 4e 20 70 61 74 63 68 65 73 20 61 72 65 20 61 64 64 65 64 20 62 79 20 74 68 69 73 20 63 6f 6d PN.patches.are.added.by.this.com
10660 6d 69 74 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 6f mit:.https://github.com/vyos/vyo
10680 73 2d 73 74 72 6f 6e 67 73 77 61 6e 2f 63 6f 6d 6d 69 74 2f 31 63 66 31 32 62 30 66 32 66 39 32 s-strongswan/commit/1cf12b0f2f92
106a0 31 62 66 63 35 31 61 66 66 61 33 62 38 31 32 32 36 00 44 65 62 69 61 6e 20 41 50 54 20 69 73 20 1bfc51affa3b81226.Debian.APT.is.
106c0 6e 6f 74 20 76 65 72 79 20 76 65 72 62 6f 73 65 20 77 68 65 6e 20 69 74 20 63 6f 6d 65 73 20 74 not.very.verbose.when.it.comes.t
106e0 6f 20 65 72 72 6f 72 73 2e 20 49 66 20 79 6f 75 72 20 49 53 4f 20 62 75 69 6c 64 20 62 72 65 61 o.errors..If.your.ISO.build.brea
10700 6b 73 20 66 6f 72 20 77 68 61 74 65 76 65 72 20 72 65 61 73 6f 6e 20 61 6e 64 20 79 6f 75 20 73 ks.for.whatever.reason.and.you.s
10720 75 73 70 65 63 74 20 69 74 27 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 41 50 54 20 64 uspect.it's.a.problem.with.APT.d
10740 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 79 6f 75 20 ependencies.or.installation.you.
10760 63 61 6e 20 61 64 64 20 74 68 69 73 20 73 6d 61 6c 6c 20 70 61 74 63 68 20 77 68 69 63 68 20 69 can.add.this.small.patch.which.i
10780 6e 63 72 65 61 73 65 73 20 74 68 65 20 41 50 54 20 76 65 72 62 6f 73 69 74 79 20 64 75 72 69 6e ncreases.the.APT.verbosity.durin
107a0 67 20 49 53 4f 20 62 75 69 6c 64 2e 00 44 65 62 69 61 6e 20 42 6f 6f 6b 77 6f 72 6d 20 66 6f 72 g.ISO.build..Debian.Bookworm.for
107c0 20 56 79 4f 53 20 31 2e 34 20 28 73 61 67 69 74 74 61 29 00 44 65 62 69 61 6e 20 42 6f 6f 6b 77 .VyOS.1.4.(sagitta).Debian.Bookw
107e0 6f 72 6d 20 66 6f 72 20 74 68 65 20 75 70 63 6f 6d 69 6e 67 20 56 79 4f 53 20 31 2e 35 2f 63 69 orm.for.the.upcoming.VyOS.1.5/ci
10800 72 63 69 6e 75 73 2f 63 75 72 72 65 6e 74 20 28 73 75 62 6a 65 63 74 20 74 6f 20 63 68 61 6e 67 rcinus/current.(subject.to.chang
10820 65 29 20 2d 20 61 6b 61 20 74 68 65 20 72 6f 6c 6c 69 6e 67 20 72 65 6c 65 61 73 65 00 44 65 62 e).-.aka.the.rolling.release.Deb
10840 69 61 6e 20 42 75 6c 6c 73 65 79 65 20 66 6f 72 20 56 79 4f 53 20 31 2e 34 20 28 73 61 67 69 74 ian.Bullseye.for.VyOS.1.4.(sagit
10860 74 61 29 00 44 65 62 69 61 6e 20 42 75 6c 6c 73 65 79 65 20 66 6f 72 20 56 79 4f 53 20 31 2e 34 ta).Debian.Bullseye.for.VyOS.1.4
10880 20 28 73 61 67 69 74 74 61 2c 20 63 75 72 72 65 6e 74 29 20 2d 20 61 6b 61 20 74 68 65 20 72 6f .(sagitta,.current).-.aka.the.ro
108a0 6c 6c 69 6e 67 20 72 65 6c 65 61 73 65 00 44 65 62 69 61 6e 20 42 75 73 74 65 72 20 66 6f 72 20 lling.release.Debian.Buster.for.
108c0 56 79 4f 53 20 31 2e 33 20 28 65 71 75 75 6c 65 75 73 29 00 44 65 62 69 61 6e 20 4a 65 73 73 69 VyOS.1.3.(equuleus).Debian.Jessi
108e0 65 20 66 6f 72 20 56 79 4f 53 20 31 2e 32 20 28 63 72 75 78 29 00 44 65 62 69 61 6e 20 64 6f 65 e.for.VyOS.1.2.(crux).Debian.doe
10900 73 20 6b 65 65 70 20 74 68 65 69 72 20 70 61 63 6b 61 67 65 20 69 6e 20 67 69 74 2c 20 62 75 74 s.keep.their.package.in.git,.but
10920 20 69 74 27 73 20 75 70 73 74 72 65 61 6d 20 74 61 72 62 61 6c 6c 20 69 6d 70 6f 72 74 65 64 20 .it's.upstream.tarball.imported.
10940 69 6e 74 6f 20 67 69 74 20 77 69 74 68 6f 75 74 20 69 74 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f into.git.without.its.original.co
10960 6d 6d 69 74 20 68 69 73 74 6f 72 79 2e 20 54 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 6d 65 72 67 mmit.history..To.be.able.to.merg
10980 65 20 6e 65 77 20 74 61 67 73 20 69 6e 2c 20 77 65 20 6b 65 65 70 20 61 20 66 6f 72 6b 20 6f 66 e.new.tags.in,.we.keep.a.fork.of
109a0 20 74 68 65 20 75 70 73 74 72 65 61 6d 20 72 65 70 6f 73 69 74 6f 72 79 20 77 69 74 68 20 70 61 .the.upstream.repository.with.pa
109c0 63 6b 61 67 69 6e 67 20 66 69 6c 65 73 20 69 6d 70 6f 72 74 65 64 20 66 72 6f 6d 20 44 65 62 69 ckaging.files.imported.from.Debi
109e0 61 6e 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 6b 65 an.at.https://github.com/vyos/ke
10a00 65 70 61 6c 69 76 65 64 2d 75 70 73 74 72 65 61 6d 00 44 65 62 75 67 67 69 6e 67 00 44 65 62 75 epalived-upstream.Debugging.Debu
10a20 67 67 69 6e 67 20 50 79 74 68 6f 6e 20 43 6f 64 65 20 77 69 74 68 20 50 44 42 00 44 65 73 63 72 gging.Python.Code.with.PDB.Descr
10a40 69 70 74 69 6f 6e 00 44 65 74 65 72 6d 69 6e 69 6e 65 20 73 6f 75 72 63 65 20 70 61 63 6b 61 67 iption.Determinine.source.packag
10a60 65 00 44 65 76 65 6c 6f 70 6d 65 6e 74 00 44 6f 20 6e 6f 74 20 61 64 64 20 61 6e 67 6c 65 20 62 e.Development.Do.not.add.angle.b
10a80 72 61 63 6b 65 74 73 20 61 72 6f 75 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 2c 20 74 68 65 79 20 rackets.around.the.format,.they.
10aa0 77 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 00 44 will.be.inserted.automatically.D
10ac0 6f 63 6b 65 72 00 44 6f 63 6b 65 72 68 75 62 00 44 6f 69 6e 67 20 73 6f 20 67 72 61 6e 74 73 20 ocker.Dockerhub.Doing.so.grants.
10ae0 70 72 69 76 69 6c 65 67 65 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 60 60 72 privileges.equivalent.to.the.``r
10b00 6f 6f 74 60 60 20 75 73 65 72 21 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f oot``.user!.It.is.recommended.to
10b20 20 72 65 6d 6f 76 65 20 74 68 65 20 6e 6f 6e 2d 72 6f 6f 74 20 75 73 65 72 20 66 72 6f 6d 20 74 .remove.the.non-root.user.from.t
10b40 68 65 20 60 60 64 6f 63 6b 65 72 60 60 20 67 72 6f 75 70 20 61 66 74 65 72 20 62 75 69 6c 64 69 he.``docker``.group.after.buildi
10b60 6e 67 20 74 68 65 20 56 79 4f 53 20 49 53 4f 2e 20 53 65 65 20 61 6c 73 6f 20 60 44 6f 63 6b 65 ng.the.VyOS.ISO..See.also.`Docke
10b80 72 20 61 73 20 6e 6f 6e 2d 72 6f 6f 74 60 5f 2e 00 44 75 65 20 74 6f 20 69 73 73 75 65 73 20 69 r.as.non-root`_..Due.to.issues.i
10ba0 6e 20 74 68 65 20 75 70 73 74 72 65 61 6d 20 76 65 72 73 69 6f 6e 20 74 68 61 74 20 73 6f 6d 65 n.the.upstream.version.that.some
10bc0 74 69 6d 65 73 20 73 65 74 20 69 6e 74 65 72 66 61 63 65 73 20 64 6f 77 6e 2c 20 61 20 6d 6f 64 times.set.interfaces.down,.a.mod
10be0 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 69 73 20 75 73 65 64 2e 00 44 75 65 20 74 6f 20 74 68 ified.version.is.used..Due.to.th
10c00 65 20 75 70 64 61 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 44 6f 63 6b 65 72 2c 20 74 68 65 e.updated.version.of.Docker,.the
10c20 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 73 20 6d 61 79 20 62 65 63 6f 6d 65 20 69 .following.examples.may.become.i
10c40 6e 76 61 6c 69 64 2e 00 44 75 72 69 6e 67 20 74 68 65 20 6d 69 67 72 61 74 69 6f 6e 20 61 6e 64 nvalid..During.the.migration.and
10c60 20 65 78 74 65 6e 73 69 76 65 20 72 65 77 72 69 74 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 61 6c .extensive.rewrite.of.functional
10c80 69 74 79 20 66 72 6f 6d 20 50 65 72 6c 20 69 6e 74 6f 20 50 79 74 68 6f 6e 20 61 20 73 69 67 6e ity.from.Perl.into.Python.a.sign
10ca0 69 66 69 63 61 6e 74 20 69 6e 63 72 65 61 73 65 20 69 6e 20 74 68 65 20 6f 76 65 72 61 6c 6c 20 ificant.increase.in.the.overall.
10cc0 73 79 73 74 65 6d 20 62 6f 6f 74 74 69 6d 65 20 77 61 73 20 6e 6f 74 69 63 65 64 2e 20 54 68 65 system.boottime.was.noticed..The
10ce0 20 73 79 73 74 65 6d 20 62 6f 6f 74 20 74 69 6d 65 20 63 61 6e 20 62 65 20 61 6e 61 6c 79 73 65 .system.boot.time.can.be.analyse
10d00 64 20 61 6e 64 20 61 20 67 72 61 70 68 20 63 61 6e 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 69 d.and.a.graph.can.be.generated.i
10d20 6e 20 74 68 65 20 65 6e 64 20 77 68 69 63 68 20 73 68 6f 77 73 20 69 6e 20 64 65 74 61 69 6c 20 n.the.end.which.shows.in.detail.
10d40 77 68 6f 20 63 61 6c 6c 65 64 20 77 68 6f 6d 20 64 75 72 69 6e 67 20 74 68 65 20 73 79 73 74 65 who.called.whom.during.the.syste
10d60 6d 20 73 74 61 72 74 75 70 20 70 68 61 73 65 2e 00 45 61 63 68 20 6d 6f 64 75 6c 65 20 69 73 20 m.startup.phase..Each.module.is.
10d80 62 75 69 6c 64 20 6f 6e 20 64 65 6d 61 6e 64 20 69 66 20 61 20 6e 65 77 20 63 6f 6d 6d 69 74 20 build.on.demand.if.a.new.commit.
10da0 6f 6e 20 74 68 65 20 62 72 61 6e 63 68 20 69 6e 20 71 75 65 73 74 69 6f 6e 20 69 73 20 66 6f 75 on.the.branch.in.question.is.fou
10dc0 6e 64 2e 20 41 66 74 65 72 20 61 20 73 75 63 63 65 73 73 66 75 6c 20 72 75 6e 20 74 68 65 20 72 nd..After.a.successful.run.the.r
10de0 65 73 75 6c 74 69 6e 67 20 44 65 62 69 61 6e 20 50 61 63 6b 61 67 65 28 73 29 20 77 69 6c 6c 20 esulting.Debian.Package(s).will.
10e00 62 65 20 64 65 70 6c 6f 79 65 64 20 74 6f 20 6f 75 72 20 44 65 62 69 61 6e 20 72 65 70 6f 73 69 be.deployed.to.our.Debian.reposi
10e20 74 6f 72 79 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 64 75 72 69 6e 67 20 62 75 69 6c 64 20 tory.which.is.used.during.build.
10e40 74 69 6d 65 2e 20 49 74 20 69 73 20 6c 6f 63 61 74 65 64 20 68 65 72 65 3a 20 68 74 74 70 3a 2f time..It.is.located.here:.http:/
10e60 2f 64 65 76 2e 70 61 63 6b 61 67 65 73 2e 76 79 6f 73 2e 6e 65 74 2f 72 65 70 6f 73 69 74 6f 72 /dev.packages.vyos.net/repositor
10e80 69 65 73 2f 2e 00 45 61 63 68 20 6f 66 20 74 68 6f 73 65 20 6d 6f 64 75 6c 65 73 20 68 6f 6c 64 ies/..Each.of.those.modules.hold
10ea0 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 6f 6e 20 74 68 65 20 6b 65 72 6e 65 6c 20 76 65 72 s.a.dependency.on.the.kernel.ver
10ec0 73 69 6f 6e 20 61 6e 64 20 69 66 20 79 6f 75 20 61 72 65 20 6c 75 63 6b 79 20 65 6e 6f 75 67 68 sion.and.if.you.are.lucky.enough
10ee0 20 74 6f 20 72 65 63 65 69 76 65 20 61 6e 20 49 53 4f 20 62 75 69 6c 64 20 65 72 72 6f 72 20 77 .to.receive.an.ISO.build.error.w
10f00 68 69 63 68 20 73 6f 75 6e 64 73 20 6c 69 6b 65 3a 00 45 6e 61 62 6c 65 64 2f 44 69 73 61 62 6c hich.sounds.like:.Enabled/Disabl
10f20 65 64 00 45 6e 73 75 72 65 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 69 73 20 72 65 70 72 6f 64 75 ed.Ensure.the.problem.is.reprodu
10f40 63 69 62 6c 65 00 45 76 65 72 79 20 63 68 61 6e 67 65 20 73 65 74 20 6d 75 73 74 20 62 65 20 63 cible.Every.change.set.must.be.c
10f60 6f 6e 73 69 73 74 65 6e 74 20 28 73 65 6c 66 20 63 6f 6e 74 61 69 6e 69 6e 67 29 21 20 44 6f 20 onsistent.(self.containing)!.Do.
10f80 6e 6f 74 20 66 69 78 20 6d 75 6c 74 69 70 6c 65 20 62 75 67 73 20 69 6e 20 61 20 73 69 6e 67 6c not.fix.multiple.bugs.in.a.singl
10fa0 65 20 63 6f 6d 6d 69 74 2e 20 49 66 20 79 6f 75 20 61 6c 72 65 61 64 79 20 77 6f 72 6b 65 64 20 e.commit..If.you.already.worked.
10fc0 6f 6e 20 6d 75 6c 74 69 70 6c 65 20 66 69 78 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 69 on.multiple.fixes.in.the.same.fi
10fe0 6c 65 20 75 73 65 20 60 67 69 74 20 61 64 64 20 2d 2d 70 61 74 63 68 60 20 74 6f 20 6f 6e 6c 79 le.use.`git.add.--patch`.to.only
11000 20 61 64 64 20 74 68 65 20 70 61 72 74 73 20 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20 6f 6e .add.the.parts.related.to.the.on
11020 65 20 69 73 73 75 65 20 69 6e 74 6f 20 79 6f 75 72 20 75 70 63 6f 6d 69 6e 67 20 63 6f 6d 6d 69 e.issue.into.your.upcoming.commi
11040 74 2e 00 45 78 61 6d 70 6c 65 3a 00 45 78 61 6d 70 6c 65 73 3a 00 45 78 63 65 70 74 69 6f 6e 73 t..Example:.Examples:.Exceptions
11060 2c 20 69 6e 63 6c 75 64 69 6e 67 20 60 60 56 79 4f 53 45 72 72 6f 72 60 60 20 28 77 68 69 63 68 ,.including.``VyOSError``.(which
11080 20 69 73 20 72 61 69 73 65 64 20 62 79 20 60 60 76 79 6f 73 2e 63 6f 6e 66 69 67 2e 43 6f 6e 66 .is.raised.by.``vyos.config.Conf
110a0 69 67 60 60 20 6f 6e 20 69 6d 70 72 6f 70 65 72 20 63 6f 6e 66 69 67 20 6f 70 65 72 61 74 69 6f ig``.on.improper.config.operatio
110c0 6e 73 2c 20 73 75 63 68 20 61 73 20 74 72 79 69 6e 67 20 74 6f 20 75 73 65 20 60 60 6c 69 73 74 ns,.such.as.trying.to.use.``list
110e0 5f 6e 6f 64 65 73 28 29 60 60 20 6f 6e 20 61 20 6e 6f 6e 2d 74 61 67 20 6e 6f 64 65 29 20 73 68 _nodes()``.on.a.non-tag.node).sh
11100 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 69 6c 65 6e 63 65 64 20 6f 72 20 63 61 75 67 68 74 20 61 ould.not.be.silenced.or.caught.a
11120 6e 64 20 72 65 2d 72 61 69 73 65 64 20 61 73 20 63 6f 6e 66 69 67 20 65 72 72 6f 72 2e 20 53 75 nd.re-raised.as.config.error..Su
11140 72 65 20 74 68 69 73 20 77 69 6c 6c 20 6e 6f 74 20 6c 6f 6f 6b 20 70 72 65 74 74 79 20 6f 6e 20 re.this.will.not.look.pretty.on.
11160 75 73 65 72 27 73 20 73 63 72 65 65 6e 2c 20 62 75 74 20 69 74 20 77 69 6c 6c 20 6d 61 6b 65 20 user's.screen,.but.it.will.make.
11180 77 61 79 20 62 65 74 74 65 72 20 62 75 67 20 72 65 70 6f 72 74 73 2c 20 61 6e 64 20 68 65 6c 70 way.better.bug.reports,.and.help
111a0 20 75 73 65 72 73 20 28 61 6e 64 20 6d 6f 73 74 20 56 79 4f 53 20 75 73 65 72 73 20 61 72 65 20 .users.(and.most.VyOS.users.are.
111c0 49 54 20 70 72 6f 66 65 73 73 69 6f 6e 61 6c 73 29 20 64 6f 20 74 68 65 69 72 20 6f 77 6e 20 64 IT.professionals).do.their.own.d
111e0 65 62 75 67 67 69 6e 67 20 61 73 20 77 65 6c 6c 2e 00 45 78 70 6f 72 74 20 6c 61 73 74 20 63 6f ebugging.as.well..Export.last.co
11200 6d 6d 69 74 20 74 6f 20 70 61 74 63 68 20 66 69 6c 65 3a 20 60 60 67 69 74 20 66 6f 72 6d 61 74 mmit.to.patch.file:.``git.format
11220 2d 70 61 74 63 68 60 60 20 6f 72 20 65 78 70 6f 72 74 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 -patch``.or.export.the.last.two.
11240 63 6f 6d 6d 69 74 73 20 69 6e 74 6f 20 69 74 73 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 61 74 commits.into.its.appropriate.pat
11260 63 68 20 66 69 6c 65 73 3a 20 60 60 67 69 74 20 66 6f 72 6d 61 74 2d 70 61 74 63 68 20 2d 32 60 ch.files:.``git.format-patch.-2`
11280 60 00 45 78 74 65 72 6e 61 6c 20 61 72 69 74 68 6d 65 74 69 63 20 76 61 6c 69 64 61 74 6f 72 20 `.External.arithmetic.validator.
112a0 6d 61 79 20 62 65 20 61 64 64 65 64 20 69 66 20 74 68 65 72 65 27 73 20 64 65 6d 61 6e 64 2c 20 may.be.added.if.there's.demand,.
112c0 63 6f 6d 70 6c 65 78 20 76 61 6c 69 64 61 74 69 6f 6e 20 69 73 20 62 65 74 74 65 72 20 6c 65 66 complex.validation.is.better.lef
112e0 74 20 74 6f 20 63 6f 6d 6d 69 74 2d 74 69 6d 65 20 73 63 72 69 70 74 73 00 46 52 52 00 46 65 61 t.to.commit-time.scripts.FRR.Fea
11300 74 75 72 65 20 52 65 71 75 65 73 74 00 46 69 72 6d 77 61 72 65 00 46 69 72 73 74 2c 20 63 6c 6f ture.Request.Firmware.First,.clo
11320 6e 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 6e 64 20 63 68 65 63 6b 20 6f 75 74 ne.the.source.code.and.check.out
11340 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 76 65 72 73 69 6f 6e 20 62 79 20 72 75 6e 6e .the.appropriate.version.by.runn
11360 69 6e 67 3a 00 46 6f 6c 6c 6f 77 20 74 68 65 20 61 62 6f 76 65 20 73 74 65 70 73 20 6f 6e 20 68 ing:.Follow.the.above.steps.on.h
11380 6f 77 20 74 6f 20 22 46 6f 72 6b 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 73 75 62 6d 69 74 ow.to."Fork.repository.to.submit
113a0 20 61 20 50 61 74 63 68 22 2e 20 49 6e 73 74 65 61 64 20 6f 66 20 75 70 6c 6f 61 64 69 6e 67 20 .a.Patch"..Instead.of.uploading.
113c0 22 70 75 73 68 69 6e 67 22 20 79 6f 75 72 20 63 68 61 6e 67 65 73 20 74 6f 20 47 69 74 48 75 62 "pushing".your.changes.to.GitHub
113e0 20 79 6f 75 20 63 61 6e 20 65 78 70 6f 72 74 20 74 68 65 20 70 61 74 63 68 65 73 2f 20 63 6f 6d .you.can.export.the.patches/.com
11400 6d 69 74 73 20 61 6e 64 20 73 65 6e 64 20 69 74 20 74 6f 20 6d 61 69 6e 74 61 69 6e 65 72 73 40 mits.and.send.it.to.maintainers@
11420 76 79 6f 73 2e 6e 65 74 20 6f 72 20 61 74 74 61 63 68 20 69 74 20 64 69 72 65 63 74 6c 79 20 74 vyos.net.or.attach.it.directly.t
11440 6f 20 74 68 65 20 62 75 67 20 28 70 72 65 66 65 72 72 65 64 20 6f 76 65 72 20 65 6d 61 69 6c 29 o.the.bug.(preferred.over.email)
11460 00 46 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 6d 65 73 73 61 67 65 20 77 68 69 63 68 20 64 65 73 .Followed.by.a.message.which.des
11480 63 72 69 62 65 73 20 61 6c 6c 20 74 68 65 20 64 65 74 61 69 6c 73 20 6c 69 6b 65 3a 00 46 6f 72 cribes.all.the.details.like:.For
114a0 20 65 61 63 68 20 66 65 61 74 75 72 65 2c 20 61 20 66 69 6c 65 20 63 61 6c 6c 65 64 20 60 60 76 .each.feature,.a.file.called.``v
114c0 79 6f 73 2e 66 65 61 74 75 72 65 2e 64 65 62 75 67 60 60 20 63 61 6e 20 62 65 20 63 72 65 61 74 yos.feature.debug``.can.be.creat
114e0 65 64 20 74 6f 20 74 6f 67 67 6c 65 20 74 68 65 20 66 65 61 74 75 72 65 20 6f 6e 2e 20 49 66 20 ed.to.toggle.the.feature.on..If.
11500 61 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 72 65 71 75 69 72 65 64 20 69 74 20 63 61 6e 20 62 a.parameter.is.required.it.can.b
11520 65 20 70 6c 61 63 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 66 69 6c 65 20 61 73 20 69 74 73 20 e.placed.inside.the.file.as.its.
11540 66 69 72 73 74 20 6c 69 6e 65 2e 00 46 6f 72 20 65 61 73 79 20 6f 72 69 65 6e 74 61 74 69 6f 6e first.line..For.easy.orientation
11560 20 77 65 20 73 75 67 67 65 73 74 20 79 6f 75 20 74 61 6b 65 20 61 20 6c 6f 6f 6b 20 6f 6e 20 74 .we.suggest.you.take.a.look.on.t
11580 68 65 20 60 60 6e 74 70 2e 70 79 60 60 20 6f 72 20 60 60 69 6e 74 65 72 66 61 63 65 73 2d 62 6f he.``ntp.py``.or.``interfaces-bo
115a0 6e 64 69 6e 67 2e 70 79 60 60 20 28 66 6f 72 20 74 61 67 20 6e 6f 64 65 73 29 20 69 6d 70 6c 65 nding.py``.(for.tag.nodes).imple
115c0 6d 65 6e 74 61 74 69 6f 6e 2e 20 42 6f 74 68 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 66 6f 75 mentation..Both.files.can.be.fou
115e0 6e 64 20 69 6e 20 74 68 65 20 76 79 6f 73 2d 31 78 5f 20 72 65 70 6f 73 69 74 6f 72 79 2e 00 46 nd.in.the.vyos-1x_.repository..F
11600 6f 72 20 65 78 61 6d 70 6c 65 20 72 75 6e 6e 69 6e 67 2c 20 60 60 65 78 70 6f 72 74 20 56 59 4f or.example.running,.``export.VYO
11620 53 5f 49 46 43 4f 4e 46 49 47 5f 44 45 42 55 47 3d 22 22 60 60 20 6f 6e 20 79 6f 75 72 20 76 62 S_IFCONFIG_DEBUG=""``.on.your.vb
11640 61 73 68 2c 20 77 69 6c 6c 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 65 66 66 65 63 74 20 61 ash,.will.have.the.same.effect.a
11660 73 20 60 60 74 6f 75 63 68 20 2f 74 6d 70 2f 76 79 6f 73 2e 69 66 63 6f 6e 66 69 67 2e 64 65 62 s.``touch./tmp/vyos.ifconfig.deb
11680 75 67 60 60 2e 00 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 60 60 2f 74 6d 70 2f 76 79 6f 73 2e 69 ug``..For.example,.``/tmp/vyos.i
116a0 66 63 6f 6e 66 69 67 2e 64 65 62 75 67 60 60 20 63 61 6e 20 62 65 20 63 72 65 61 74 65 64 20 74 fconfig.debug``.can.be.created.t
116c0 6f 20 65 6e 61 62 6c 65 20 69 6e 74 65 72 66 61 63 65 20 64 65 62 75 67 67 69 6e 67 2e 00 46 6f o.enable.interface.debugging..Fo
116e0 72 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 72 65 71 75 69 72 65 64 2c 20 79 6f 75 20 63 61 6e r.the.packages.required,.you.can
11700 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 60 60 64 6f 63 6b 65 72 2f 44 6f 63 6b 65 72 66 69 6c .refer.to.the.``docker/Dockerfil
11720 65 60 60 20 66 69 6c 65 20 69 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 5f 2e 20 54 68 65 e``.file.in.the.repository_..The
11740 20 60 60 2e 2f 62 75 69 6c 64 2d 76 79 6f 73 2d 69 6d 61 67 65 60 60 20 73 63 72 69 70 74 20 77 .``./build-vyos-image``.script.w
11760 69 6c 6c 20 61 6c 73 6f 20 77 61 72 6e 20 79 6f 75 20 69 66 20 61 6e 79 20 64 65 70 65 6e 64 65 ill.also.warn.you.if.any.depende
11780 6e 63 69 65 73 20 61 72 65 20 6d 69 73 73 69 6e 67 2e 00 46 6f 72 6b 20 52 65 70 6f 73 69 74 6f ncies.are.missing..Fork.Reposito
117a0 72 79 20 61 6e 64 20 73 75 62 6d 69 74 20 50 61 74 63 68 00 46 6f 72 6b 3a 20 60 60 67 69 74 20 ry.and.submit.Patch.Fork:.``git.
117c0 72 65 6d 6f 74 65 20 61 64 64 20 6d 79 66 6f 72 6b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 remote.add.myfork.https://github
117e0 2e 63 6f 6d 2f 3c 75 73 65 72 3e 2f 76 79 6f 73 2d 31 78 2e 67 69 74 60 60 00 46 6f 72 6b 69 6e .com/<user>/vyos-1x.git``.Forkin
11800 67 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 61 6e 64 20 73 75 62 6d 69 74 74 69 6e 67 20 g.the.repository.and.submitting.
11820 61 20 47 69 74 48 75 62 20 70 75 6c 6c 2d 72 65 71 75 65 73 74 20 69 73 20 74 68 65 20 70 72 65 a.GitHub.pull-request.is.the.pre
11840 66 65 72 72 65 64 20 77 61 79 20 6f 66 20 73 75 62 6d 69 74 74 69 6e 67 20 79 6f 75 72 20 63 68 ferred.way.of.submitting.your.ch
11860 61 6e 67 65 73 20 74 6f 20 56 79 4f 53 2e 20 59 6f 75 20 63 61 6e 20 66 6f 72 6b 20 61 6e 79 20 anges.to.VyOS..You.can.fork.any.
11880 56 79 4f 53 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 79 6f 75 72 20 76 65 72 79 20 6f 77 6e VyOS.repository.to.your.very.own
118a0 20 47 69 74 48 75 62 20 61 63 63 6f 75 6e 74 20 62 79 20 6a 75 73 74 20 61 70 70 65 6e 64 69 6e .GitHub.account.by.just.appendin
118c0 67 20 60 60 2f 66 6f 72 6b 60 60 20 74 6f 20 61 6e 79 20 72 65 70 6f 73 69 74 6f 72 79 27 73 20 g.``/fork``.to.any.repository's.
118e0 55 52 4c 20 6f 6e 20 47 69 74 48 75 62 2e 20 54 6f 20 65 2e 67 2e 20 66 6f 72 6b 20 74 68 65 20 URL.on.GitHub..To.e.g..fork.the.
11900 60 60 76 79 6f 73 2d 31 78 60 60 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 6f 70 65 6e 20 74 68 65 ``vyos-1x``.repository,.open.the
11920 20 66 6f 6c 6c 6f 77 69 6e 67 20 55 52 4c 20 69 6e 20 79 6f 75 72 20 66 61 76 6f 75 72 69 74 65 .following.URL.in.your.favourite
11940 20 62 72 6f 77 73 65 72 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f .browser:.https://github.com/vyo
11960 73 2f 76 79 6f 73 2d 31 78 2f 66 6f 72 6b 00 46 6f 72 6d 61 74 74 69 6e 67 00 47 4e 55 20 50 72 s/vyos-1x/fork.Formatting.GNU.Pr
11980 65 70 72 6f 63 65 73 73 6f 72 00 47 65 74 20 63 6f 6d 6d 75 6e 69 74 79 20 73 75 70 70 6f 72 74 eprocessor.Get.community.support
119a0 20 76 69 61 20 53 6c 61 63 6b 5f 20 6f 72 20 6f 75 72 20 46 6f 72 75 6d 5f 00 47 6f 6f 64 20 6c .via.Slack_.or.our.Forum_.Good.l
119c0 75 63 6b 21 00 47 6f 6f 64 3a 20 22 44 69 73 61 62 6c 65 20 49 50 76 36 20 66 6f 72 77 61 72 64 uck!.Good:."Disable.IPv6.forward
119e0 69 6e 67 22 00 47 6f 6f 64 3a 20 22 46 72 6f 62 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 ing".Good:."Frobnication.algorit
11a00 68 6d 22 00 47 6f 6f 64 3a 20 22 54 43 50 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 69 6d 65 6f 75 hm".Good:."TCP.connection.timeou
11a20 74 22 00 47 6f 6f 64 3a 20 50 50 50 6f 45 2c 20 49 50 73 65 63 00 47 6f 6f 64 3a 20 52 41 44 49 t".Good:.PPPoE,.IPsec.Good:.RADI
11a40 55 53 20 28 61 73 20 69 6e 20 72 65 6d 6f 74 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 US.(as.in.remote.authentication.
11a60 66 6f 72 20 64 69 61 6c 2d 69 6e 20 75 73 65 72 20 73 65 72 76 69 63 65 73 29 00 47 75 69 64 65 for.dial-in.user.services).Guide
11a80 6c 69 6e 65 73 00 48 65 6c 70 20 53 74 72 69 6e 67 00 48 65 6c 70 20 66 75 74 75 72 65 20 6d 61 lines.Help.String.Help.future.ma
11aa0 69 6e 74 61 69 6e 65 72 73 20 6f 66 20 56 79 4f 53 20 28 69 74 20 63 6f 75 6c 64 20 62 65 20 79 intainers.of.VyOS.(it.could.be.y
11ac0 6f 75 21 29 20 74 6f 20 66 69 6e 64 20 6f 75 74 20 77 68 79 20 63 65 72 74 61 69 6e 20 74 68 69 ou!).to.find.out.why.certain.thi
11ae0 6e 67 73 20 68 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 69 6e 20 74 68 65 20 63 6f 64 ngs.have.been.changed.in.the.cod
11b00 65 62 61 73 65 20 6f 72 20 77 68 79 20 63 65 72 74 61 69 6e 20 66 65 61 74 75 72 65 73 20 68 61 ebase.or.why.certain.features.ha
11b20 76 65 20 62 65 65 6e 20 61 64 64 65 64 00 48 6f 72 72 69 62 6c 65 3a 20 22 54 63 70 20 63 6f 6e ve.been.added.Horrible:."Tcp.con
11b40 6e 65 63 74 69 6f 6e 20 74 69 6d 65 6f 75 74 22 00 48 6f 72 72 69 62 6c 65 3a 20 22 66 72 6f 62 nection.timeout".Horrible:."frob
11b60 6e 69 63 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 2e 22 00 48 6f 77 20 63 61 6e 20 77 65 20 nication.algorithm.".How.can.we.
11b80 72 65 70 72 6f 64 75 63 65 20 74 68 69 73 20 42 75 67 3f 00 49 20 68 61 76 65 20 66 6f 75 6e 64 reproduce.this.Bug?.I.have.found
11ba0 20 61 20 62 75 67 2c 20 77 68 61 74 20 73 68 6f 75 6c 64 20 49 20 64 6f 3f 00 49 50 20 61 6e 64 .a.bug,.what.should.I.do?.IP.and
11bc0 20 49 50 76 36 20 6f 70 74 69 6f 6e 73 00 49 53 4f 20 42 75 69 6c 64 20 49 73 73 75 65 73 00 49 .IPv6.options.ISO.Build.Issues.I
11be0 53 4f 20 69 6d 61 67 65 20 62 75 69 6c 64 00 49 66 20 61 20 76 65 72 62 20 69 73 20 65 73 73 65 SO.image.build.If.a.verb.is.esse
11c00 6e 74 69 61 6c 2c 20 6b 65 65 70 20 69 74 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 6e 20 ntial,.keep.it..For.example,.in.
11c20 74 68 65 20 68 65 6c 70 20 74 65 78 74 20 6f 66 20 60 60 73 65 74 20 73 79 73 74 65 6d 20 69 70 the.help.text.of.``set.system.ip
11c40 76 36 20 64 69 73 61 62 6c 65 2d 66 6f 72 77 61 72 64 69 6e 67 60 60 2c 20 22 44 69 73 61 62 6c v6.disable-forwarding``,."Disabl
11c60 65 20 49 50 76 36 20 66 6f 72 77 61 72 64 69 6e 67 20 6f 6e 20 61 6c 6c 20 69 6e 74 65 72 66 61 e.IPv6.forwarding.on.all.interfa
11c80 63 65 73 22 20 69 73 20 61 20 70 65 72 66 65 63 74 6c 79 20 6a 75 73 74 69 66 69 65 64 20 77 6f ces".is.a.perfectly.justified.wo
11ca0 72 64 69 6e 67 2e 00 49 66 20 61 70 70 6c 69 63 61 62 6c 65 20 61 20 72 65 66 65 72 65 6e 63 65 rding..If.applicable.a.reference
11cc0 20 74 6f 20 61 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 69 74 20 73 68 6f 75 6c 64 20 62 65 20 .to.a.previous.commit.should.be.
11ce0 6d 61 64 65 20 6c 69 6e 6b 69 6e 67 20 74 68 6f 73 65 20 63 6f 6d 6d 69 74 73 20 6e 69 63 65 6c made.linking.those.commits.nicel
11d00 79 20 77 68 65 6e 20 62 72 6f 77 73 69 6e 67 20 74 68 65 20 68 69 73 74 6f 72 79 3a 20 60 60 41 y.when.browsing.the.history:.``A
11d20 66 74 65 72 20 63 6f 6d 6d 69 74 20 61 62 63 64 31 32 65 66 20 28 22 73 6e 6d 70 3a 20 74 68 69 fter.commit.abcd12ef.("snmp:.thi
11d40 73 20 69 73 20 61 20 68 65 61 64 6c 69 6e 65 22 29 20 61 20 50 79 74 68 6f 6e 20 69 6d 70 6f 72 s.is.a.headline").a.Python.impor
11d60 74 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 6d 69 73 73 69 6e 67 2c 20 74 68 72 6f 77 69 6e 67 t.statement.is.missing,.throwing
11d80 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 3a 20 41 42 43 44 45 46 .the.following.exception:.ABCDEF
11da0 60 60 00 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 72 ``.If.there.is.no.Phabricator_.r
11dc0 65 66 65 72 65 6e 63 65 20 69 6e 20 74 68 65 20 63 6f 6d 6d 69 74 73 20 6f 66 20 79 6f 75 72 20 eference.in.the.commits.of.your.
11de0 70 75 6c 6c 20 72 65 71 75 65 73 74 2c 20 77 65 20 68 61 76 65 20 74 6f 20 61 73 6b 20 79 6f 75 pull.request,.we.have.to.ask.you
11e00 20 74 6f 20 61 6d 65 6e 64 20 74 68 65 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 2e 20 4f 74 .to.amend.the.commit.message..Ot
11e20 68 65 72 77 69 73 65 20 77 65 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 72 65 6a 65 63 74 20 69 herwise.we.will.have.to.reject.i
11e40 74 2e 00 49 66 20 79 6f 75 20 61 72 65 20 62 72 61 76 65 20 65 6e 6f 75 67 68 20 74 6f 20 62 75 t..If.you.are.brave.enough.to.bu
11e60 69 6c 64 20 79 6f 75 72 73 65 6c 66 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 63 6f 6e 74 61 69 ild.yourself.an.ISO.image.contai
11e80 6e 69 6e 67 20 61 6e 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 6f ning.any.modified.package.from.o
11ea0 75 72 20 47 69 74 48 75 62 20 6f 72 67 61 6e 69 73 61 74 69 6f 6e 20 2d 20 74 68 69 73 20 69 73 ur.GitHub.organisation.-.this.is
11ec0 20 74 68 65 20 70 6c 61 63 65 20 74 6f 20 62 65 2e 00 49 66 20 79 6f 75 20 75 70 67 72 61 64 65 .the.place.to.be..If.you.upgrade
11ee0 20 79 6f 75 72 20 6b 65 72 6e 65 6c 20 6f 72 20 69 6e 63 6c 75 64 65 20 6e 65 77 20 64 72 69 76 .your.kernel.or.include.new.driv
11f00 65 72 73 20 79 6f 75 20 6d 61 79 20 6e 65 65 64 20 6e 65 77 20 66 69 72 6d 77 61 72 65 2e 20 42 ers.you.may.need.new.firmware..B
11f20 75 69 6c 64 20 61 20 6e 65 77 20 60 60 76 79 6f 73 2d 6c 69 6e 75 78 2d 66 69 72 6d 77 61 72 65 uild.a.new.``vyos-linux-firmware
11f40 60 60 20 70 61 63 6b 61 67 65 20 77 69 74 68 20 74 68 65 20 69 6e 63 6c 75 64 65 64 20 68 65 6c ``.package.with.the.included.hel
11f60 70 65 72 20 73 63 72 69 70 74 73 2e 00 49 6e 20 61 20 62 69 67 20 73 79 73 74 65 6d 2c 20 73 75 per.scripts..In.a.big.system,.su
11f80 63 68 20 61 73 20 56 79 4f 53 2c 20 74 68 61 74 20 69 73 20 63 6f 6d 70 72 69 73 65 64 20 6f 66 ch.as.VyOS,.that.is.comprised.of
11fa0 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 2c 20 69 74 27 73 20 69 6d 70 6f 73 .multiple.components,.it's.impos
11fc0 73 69 62 6c 65 20 74 6f 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 61 6c 6c 20 74 68 65 20 63 sible.to.keep.track.of.all.the.c
11fe0 68 61 6e 67 65 73 20 61 6e 64 20 62 75 67 73 2f 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 73 hanges.and.bugs/feature.requests
12000 20 69 6e 20 6f 6e 65 27 73 20 68 65 61 64 2e 20 57 65 20 75 73 65 20 61 20 62 75 67 74 72 61 63 .in.one's.head..We.use.a.bugtrac
12020 6b 65 72 20 6b 6e 6f 77 6e 20 61 73 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 66 6f 72 20 69 74 ker.known.as.Phabricator_.for.it
12040 20 28 22 69 73 73 75 65 20 74 72 61 63 6b 65 72 22 20 77 6f 75 6c 64 20 62 65 20 61 20 62 65 74 .("issue.tracker".would.be.a.bet
12060 74 65 72 20 74 65 72 6d 2c 20 62 75 74 20 74 68 69 73 20 6f 6e 65 20 73 74 75 63 6b 29 2e 00 49 ter.term,.but.this.one.stuck)..I
12080 6e 20 61 64 64 69 74 69 6f 6e 20 74 68 69 73 20 61 6c 73 6f 20 68 65 6c 70 73 20 77 68 65 6e 20 n.addition.this.also.helps.when.
120a0 62 72 6f 77 73 69 6e 67 20 74 68 65 20 47 69 74 48 75 62 20 63 6f 64 65 62 61 73 65 20 6f 6e 20 browsing.the.GitHub.codebase.on.
120c0 61 20 6d 6f 62 69 6c 65 20 64 65 76 69 63 65 20 69 66 20 79 6f 75 20 68 61 70 70 65 6e 20 74 6f a.mobile.device.if.you.happen.to
120e0 20 62 65 20 61 20 63 72 61 7a 79 20 73 63 69 65 6e 74 69 73 74 2e 00 49 6e 20 6f 72 64 65 72 20 .be.a.crazy.scientist..In.order.
12100 74 6f 20 6f 70 65 6e 20 75 70 20 61 20 62 75 67 2d 72 65 70 6f 72 74 2f 66 65 61 74 75 72 65 20 to.open.up.a.bug-report/feature.
12120 72 65 71 75 65 73 74 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20 79 6f 75 72 73 request.you.need.to.create.yours
12140 65 6c 66 20 61 6e 20 61 63 63 6f 75 6e 74 20 6f 6e 20 56 79 4f 53 20 50 68 61 62 72 69 63 61 74 elf.an.account.on.VyOS.Phabricat
12160 6f 72 5f 2e 20 4f 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20 6f 66 20 74 68 65 20 73 70 65 or_..On.the.left.side.of.the.spe
12180 63 69 66 69 63 20 70 72 6f 6a 65 63 74 20 28 56 79 4f 53 20 31 2e 32 20 6f 72 20 56 79 4f 53 20 cific.project.(VyOS.1.2.or.VyOS.
121a0 31 2e 33 29 20 79 6f 75 20 77 69 6c 6c 20 66 69 6e 64 20 71 75 69 63 6b 2d 6c 69 6e 6b 73 20 66 1.3).you.will.find.quick-links.f
121c0 6f 72 20 6f 70 65 6e 69 6e 67 20 61 20 62 75 67 2d 72 65 70 6f 72 74 2f 66 65 61 74 75 72 65 20 or.opening.a.bug-report/feature.
121e0 72 65 71 75 65 73 74 2e 00 49 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 6f 72 64 20 79 6f 75 20 request..In.order.to.record.you.
12200 61 73 20 74 68 65 20 61 75 74 68 6f 72 20 6f 66 20 74 68 65 20 66 69 78 20 70 6c 65 61 73 65 20 as.the.author.of.the.fix.please.
12220 69 64 65 6e 74 69 66 79 20 79 6f 75 72 73 65 6c 66 20 74 6f 20 47 69 74 20 62 79 20 73 65 74 74 identify.yourself.to.Git.by.sett
12240 69 6e 67 20 75 70 20 79 6f 75 72 20 6e 61 6d 65 20 61 6e 64 20 65 6d 61 69 6c 2e 20 54 68 69 73 ing.up.your.name.and.email..This
12260 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 6c 6f 63 61 6c 20 66 6f 72 20 74 68 69 73 20 6f 6e 65 20 .can.be.done.local.for.this.one.
12280 61 6e 64 20 6f 6e 6c 79 20 72 65 70 6f 73 69 74 6f 72 79 20 60 60 67 69 74 20 63 6f 6e 66 69 67 and.only.repository.``git.config
122a0 60 60 20 6f 72 20 67 6c 6f 62 61 6c 6c 79 20 75 73 69 6e 67 20 60 60 67 69 74 20 63 6f 6e 66 69 ``.or.globally.using.``git.confi
122c0 67 20 2d 2d 67 6c 6f 62 61 6c 60 60 2e 00 49 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 74 72 69 65 g.--global``..In.order.to.retrie
122e0 76 65 20 74 68 65 20 64 65 62 75 67 20 6f 75 74 70 75 74 20 6f 6e 20 74 68 65 20 63 6f 6d 6d 61 ve.the.debug.output.on.the.comma
12300 6e 64 2d 6c 69 6e 65 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 64 69 73 61 62 6c 65 20 60 60 76 79 nd-line.you.need.to.disable.``vy
12320 6f 73 2d 63 6f 6e 66 69 67 64 60 60 20 69 6e 20 61 64 64 69 74 69 6f 6e 2e 20 54 68 69 73 20 63 os-configd``.in.addition..This.c
12340 61 6e 20 62 65 20 72 75 6e 20 65 69 74 68 65 72 20 6f 6e 65 2d 74 69 6d 65 20 62 79 20 63 61 6c an.be.run.either.one-time.by.cal
12360 6c 69 6e 67 20 60 60 73 75 64 6f 20 73 79 73 74 65 6d 63 74 6c 20 73 74 6f 70 20 76 79 6f 73 2d ling.``sudo.systemctl.stop.vyos-
12380 63 6f 6e 66 69 67 64 60 60 20 6f 72 20 6d 61 6b 65 20 74 68 69 73 20 72 65 62 6f 6f 74 2d 73 61 configd``.or.make.this.reboot-sa
123a0 66 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 60 73 75 64 6f 20 73 79 73 74 65 6d 63 74 6c 20 64 fe.by.calling.``sudo.systemctl.d
123c0 69 73 61 62 6c 65 20 76 79 6f 73 2d 63 6f 6e 66 69 67 64 60 60 2e 00 49 6e 20 73 6f 6d 65 20 63 isable.vyos-configd``..In.some.c
123e0 6f 6e 74 65 78 74 73 2c 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 69 73 20 74 72 65 61 74 ontexts,.the.first.line.is.treat
12400 65 64 20 61 73 20 74 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20 61 6e 20 65 6d 61 69 6c 20 61 6e ed.as.the.subject.of.an.email.an
12420 64 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 74 65 78 74 20 61 73 20 74 68 65 20 62 6f d.the.rest.of.the.text.as.the.bo
12440 64 79 2e 20 54 68 65 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 73 65 70 61 72 61 74 69 6e 67 20 74 68 dy..The.blank.line.separating.th
12460 65 20 73 75 6d 6d 61 72 79 20 66 72 6f 6d 20 74 68 65 20 62 6f 64 79 20 69 73 20 63 72 69 74 69 e.summary.from.the.body.is.criti
12480 63 61 6c 20 28 75 6e 6c 65 73 73 20 79 6f 75 20 6f 6d 69 74 20 74 68 65 20 62 6f 64 79 20 65 6e cal.(unless.you.omit.the.body.en
124a0 74 69 72 65 6c 79 29 3b 20 74 6f 6f 6c 73 20 6c 69 6b 65 20 72 65 62 61 73 65 20 63 61 6e 20 67 tirely);.tools.like.rebase.can.g
124c0 65 74 20 63 6f 6e 66 75 73 65 64 20 69 66 20 79 6f 75 20 72 75 6e 20 74 68 65 20 74 77 6f 20 74 et.confused.if.you.run.the.two.t
124e0 6f 67 65 74 68 65 72 2e 00 49 6e 20 74 68 65 20 65 6e 64 20 79 6f 75 20 77 69 6c 6c 20 62 65 20 ogether..In.the.end.you.will.be.
12500 70 72 65 73 65 6e 74 65 64 20 77 69 74 68 20 74 68 65 20 6b 65 72 6e 65 6c 20 62 69 6e 61 72 79 presented.with.the.kernel.binary
12520 20 70 61 63 6b 61 67 65 73 20 77 68 69 63 68 20 79 6f 75 20 63 61 6e 20 74 68 65 6e 20 75 73 65 .packages.which.you.can.then.use
12540 20 69 6e 20 79 6f 75 72 20 63 75 73 74 6f 6d 20 49 53 4f 20 62 75 69 6c 64 20 70 72 6f 63 65 73 .in.your.custom.ISO.build.proces
12560 73 2c 20 62 79 20 70 6c 61 63 69 6e 67 20 61 6c 6c 20 74 68 65 20 60 2a 2e 64 65 62 60 20 66 69 s,.by.placing.all.the.`*.deb`.fi
12580 6c 65 73 20 69 6e 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 20 66 les.in.the.vyos-build/packages.f
125a0 6f 6c 64 65 72 20 77 68 65 72 65 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 61 75 older.where.they.will.be.used.au
125c0 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 20 62 75 69 6c 64 69 6e 67 20 56 79 4f 53 20 61 tomatically.when.building.VyOS.a
125e0 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 61 62 6f 76 65 2e 00 49 6e 20 74 68 65 20 66 75 74 75 72 s.documented.above..In.the.futur
12600 65 2c 20 77 65 20 6d 61 79 20 73 77 69 74 63 68 20 74 6f 20 75 73 69 6e 67 20 73 79 73 74 65 6d e,.we.may.switch.to.using.system
12620 64 20 69 6e 66 72 61 73 74 72 75 63 74 75 72 65 20 69 6e 73 74 65 61 64 2e 20 42 75 69 6c 64 69 d.infrastructure.instead..Buildi
12640 6e 67 20 69 74 20 64 6f 65 73 6e 27 74 20 72 65 71 75 69 72 65 20 61 20 73 70 65 63 69 61 6c 20 ng.it.doesn't.require.a.special.
12660 70 72 6f 63 65 64 75 72 65 2e 00 49 6e 63 6c 75 64 65 20 6f 75 74 70 75 74 00 49 6e 73 65 72 74 procedure..Include.output.Insert
12680 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 61 74 65 6d 65 6e 74 20 72 69 67 68 74 20 62 .the.following.statement.right.b
126a0 65 66 6f 72 65 20 74 68 65 20 73 65 63 74 69 6f 6e 20 77 68 65 72 65 20 79 6f 75 20 77 61 6e 74 efore.the.section.where.you.want
126c0 20 74 6f 20 69 6e 76 65 73 74 69 67 61 74 65 20 61 20 70 72 6f 62 6c 65 6d 20 28 65 2e 67 2e 20 .to.investigate.a.problem.(e.g..
126e0 61 20 73 74 61 74 65 6d 65 6e 74 20 79 6f 75 20 73 65 65 20 69 6e 20 61 20 62 61 63 6b 74 72 61 a.statement.you.see.in.a.backtra
12700 63 65 29 3a 20 60 60 69 6d 70 6f 72 74 20 70 64 62 3b 20 70 64 62 2e 73 65 74 5f 74 72 61 63 65 ce):.``import.pdb;.pdb.set_trace
12720 28 29 60 60 20 4f 70 74 69 6f 6e 61 6c 6c 79 20 79 6f 75 20 63 61 6e 20 73 75 72 72 6f 75 6e 64 ()``.Optionally.you.can.surround
12740 65 64 20 74 68 69 73 20 73 74 61 74 65 6d 65 6e 74 20 62 79 20 61 6e 20 60 60 69 66 60 60 20 77 ed.this.statement.by.an.``if``.w
12760 68 69 63 68 20 6f 6e 6c 79 20 74 72 69 67 67 65 72 73 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e hich.only.triggers.under.the.con
12780 64 69 74 69 6f 6e 20 79 6f 75 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 2e 00 49 6e dition.you.are.interested.in..In
127a0 73 74 61 6c 6c 00 49 6e 73 74 61 6c 6c 20 68 74 74 70 73 3a 2f 2f 70 79 70 69 2e 6f 72 67 2f 70 stall.Install.https://pypi.org/p
127c0 72 6f 6a 65 63 74 2f 73 74 64 65 62 2f 00 49 6e 73 74 61 6c 6c 69 6e 67 20 44 6f 63 6b 65 72 5f roject/stdeb/.Installing.Docker_
127e0 20 61 6e 64 20 70 72 65 72 65 71 75 69 73 69 74 65 73 3a 00 49 6e 73 74 65 61 64 20 6f 66 20 73 .and.prerequisites:.Instead.of.s
12800 75 70 70 6c 79 69 6e 67 20 61 6c 6c 20 74 68 6f 73 65 20 58 4d 4c 20 6e 6f 64 65 73 20 6d 75 6c upplying.all.those.XML.nodes.mul
12820 74 69 70 6c 65 20 74 69 6d 65 73 20 74 68 65 72 65 20 61 72 65 20 6e 6f 77 20 69 6e 63 6c 75 64 tiple.times.there.are.now.includ
12840 65 20 66 69 6c 65 73 20 77 69 74 68 20 70 72 65 64 65 66 69 6e 65 64 20 66 65 61 74 75 72 65 73 e.files.with.predefined.features
12860 2e 20 42 72 69 65 66 20 6f 76 65 72 76 69 65 77 3a 00 49 6e 74 65 6c 20 4e 49 43 00 49 6e 74 65 ..Brief.overview:.Intel.NIC.Inte
12880 6c 20 4e 49 43 20 64 72 69 76 65 72 73 00 49 6e 74 65 6c 20 51 41 54 00 49 6e 74 65 72 20 51 41 l.NIC.drivers.Intel.QAT.Inter.QA
128a0 54 00 49 6e 74 65 72 66 61 63 65 20 62 61 73 65 64 20 74 65 73 74 73 00 49 73 73 75 65 73 20 6f T.Interface.based.tests.Issues.o
128c0 72 20 62 75 67 73 20 61 72 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 73 6f 66 74 77 61 72 65 r.bugs.are.found.in.any.software
128e0 20 70 72 6f 6a 65 63 74 2e 20 56 79 4f 53 20 69 73 20 6e 6f 74 20 61 6e 20 65 78 63 65 70 74 69 .project..VyOS.is.not.an.excepti
12900 6f 6e 2e 00 49 73 73 75 65 73 2f 46 65 61 74 75 72 65 20 72 65 71 75 65 73 74 73 00 49 74 20 69 on..Issues/Feature.requests.It.i
12920 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 73 65 74 20 75 70 20 74 68 65 20 64 65 s.also.possible.to.set.up.the.de
12940 62 75 67 67 69 6e 67 20 75 73 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 bugging.using.environment.variab
12960 6c 65 73 2e 20 49 6e 20 74 68 61 74 20 63 61 73 65 2c 20 74 68 65 20 6e 61 6d 65 20 77 69 6c 6c les..In.that.case,.the.name.will
12980 20 62 65 20 28 69 6e 20 75 70 70 65 72 63 61 73 65 29 20 56 59 4f 53 5f 46 45 41 54 55 52 45 5f .be.(in.uppercase).VYOS_FEATURE_
129a0 44 45 42 55 47 2e 00 49 74 27 73 20 61 6e 20 41 64 61 20 70 72 6f 67 72 61 6d 20 61 6e 64 20 72 DEBUG..It's.an.Ada.program.and.r
129c0 65 71 75 69 72 65 73 20 47 4e 41 54 20 61 6e 64 20 67 70 72 62 75 69 6c 64 20 66 6f 72 20 62 75 equires.GNAT.and.gprbuild.for.bu
129e0 69 6c 64 69 6e 67 2c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20 70 72 6f 70 65 72 6c ilding,.dependencies.are.properl
12a00 79 20 73 70 65 63 69 66 69 65 64 20 73 6f 20 6a 75 73 74 20 66 6f 6c 6c 6f 77 20 64 65 62 75 69 y.specified.so.just.follow.debui
12a20 6c 64 27 73 20 73 75 67 67 65 73 74 69 6f 6e 73 2e 00 4a 65 6e 6b 69 6e 73 20 43 49 00 4a 75 73 ld's.suggestions..Jenkins.CI.Jus
12a40 74 20 69 6e 73 74 61 6c 6c 20 75 73 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f t.install.using.the.following.co
12a60 6d 6d 61 6e 64 73 3a 00 4b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 74 68 65 20 70 72 6f 67 72 65 mmands:.Keep.track.of.the.progre
12a80 73 73 20 28 77 68 61 74 20 77 65 27 76 65 20 61 6c 72 65 61 64 79 20 64 6f 6e 65 20 69 6e 20 74 ss.(what.we've.already.done.in.t
12aa0 68 69 73 20 62 72 61 6e 63 68 20 61 6e 64 20 77 68 61 74 20 77 65 20 73 74 69 6c 6c 20 6e 65 65 his.branch.and.what.we.still.nee
12ac0 64 20 74 6f 20 64 6f 29 2e 00 4b 65 65 70 61 6c 69 76 65 64 20 6e 6f 72 6d 61 6c 6c 79 20 69 73 d.to.do)..Keepalived.normally.is
12ae0 6e 27 74 20 75 70 64 61 74 65 64 20 74 6f 20 6e 65 77 65 72 20 66 65 61 74 75 72 65 20 72 65 6c n't.updated.to.newer.feature.rel
12b00 65 61 73 65 73 20 62 65 74 77 65 65 6e 20 44 65 62 69 61 6e 20 76 65 72 73 69 6f 6e 73 2c 20 73 eases.between.Debian.versions,.s
12b20 6f 20 77 65 20 61 72 65 20 62 75 69 6c 64 69 6e 67 20 69 74 20 66 72 6f 6d 20 73 6f 75 72 63 65 o.we.are.building.it.from.source
12b40 2e 00 4b 65 72 6e 65 6c 00 4c 61 75 6e 63 68 20 44 6f 63 6b 65 72 20 63 6f 6e 74 61 69 6e 65 72 ..Kernel.Launch.Docker.container
12b60 20 61 6e 64 20 62 75 69 6c 64 20 70 61 63 6b 61 67 65 00 4c 65 61 66 20 6e 6f 64 65 73 20 28 6e .and.build.package.Leaf.nodes.(n
12b80 6f 64 65 73 20 77 69 74 68 20 76 61 6c 75 65 73 29 20 75 73 65 20 3c 6c 65 61 66 4e 6f 64 65 3e odes.with.values).use.<leafNode>
12ba0 20 74 61 67 20 69 6e 73 74 65 61 64 00 4c 65 74 20 75 73 20 61 73 73 75 6d 65 20 79 6f 75 20 77 .tag.instead.Let.us.assume.you.w
12bc0 61 6e 74 20 74 6f 20 64 65 62 75 67 20 61 20 50 79 74 68 6f 6e 20 73 63 72 69 70 74 20 74 68 61 ant.to.debug.a.Python.script.tha
12be0 74 20 69 73 20 63 61 6c 6c 65 64 20 62 79 20 61 6e 20 6f 70 2d 6d 6f 64 65 20 63 6f 6d 6d 61 6e t.is.called.by.an.op-mode.comman
12c00 64 2e 20 41 66 74 65 72 20 79 6f 75 20 66 6f 75 6e 64 20 74 68 65 20 73 63 72 69 70 74 20 62 79 d..After.you.found.the.script.by
12c20 20 6c 6f 6f 6b 69 6e 67 20 75 70 20 74 68 65 20 6f 70 2d 6d 6f 64 65 2d 64 65 66 69 74 69 6f 6e .looking.up.the.op-mode-defition
12c40 73 20 79 6f 75 20 63 61 6e 20 65 64 69 74 20 74 68 65 20 73 63 72 69 70 74 20 69 6e 20 74 68 65 s.you.can.edit.the.script.in.the
12c60 20 6c 69 76 65 20 73 79 73 74 65 6d 20 75 73 69 6e 67 20 65 2e 67 2e 20 76 69 3a 20 60 60 76 69 .live.system.using.e.g..vi:.``vi
12c80 20 2f 75 73 72 2f 6c 69 62 65 78 65 63 2f 76 79 6f 73 2f 6f 70 5f 6d 6f 64 65 2f 73 68 6f 77 5f ./usr/libexec/vyos/op_mode/show_
12ca0 78 79 7a 2e 70 79 60 60 00 4c 65 74 27 73 20 66 61 63 65 20 69 74 3a 20 56 79 4f 53 20 69 73 20 xyz.py``.Let's.face.it:.VyOS.is.
12cc0 66 75 6c 6c 20 6f 66 20 73 70 61 67 68 65 74 74 69 20 63 6f 64 65 20 77 68 65 72 65 20 6c 6f 67 full.of.spaghetti.code.where.log
12ce0 69 63 20 66 6f 72 20 72 65 61 64 69 6e 67 20 74 68 65 20 56 79 4f 53 20 63 6f 6e 66 69 67 2c 20 ic.for.reading.the.VyOS.config,.
12d00 67 65 6e 65 72 61 74 69 6e 67 20 64 61 65 6d 6f 6e 20 63 6f 6e 66 69 67 73 2c 20 61 6e 64 20 72 generating.daemon.configs,.and.r
12d20 65 73 74 61 72 74 69 6e 67 20 70 72 6f 63 65 73 73 65 73 20 69 73 20 61 6c 6c 20 6d 69 78 65 64 estarting.processes.is.all.mixed
12d40 20 75 70 2e 00 4c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 6a 65 63 74 20 77 65 20 68 .up..Like.any.other.project.we.h
12d60 61 76 65 20 73 6f 6d 65 20 73 6d 61 6c 6c 20 67 75 69 64 65 6c 69 6e 65 73 20 61 62 6f 75 74 20 ave.some.small.guidelines.about.
12d80 6f 75 72 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 74 6f 6f 2e 20 54 68 65 20 72 75 6c 65 73 20 our.source.code,.too..The.rules.
12da0 77 65 20 68 61 76 65 20 61 72 65 20 6e 6f 74 20 74 68 65 72 65 20 74 6f 20 70 75 6e 69 73 68 20 we.have.are.not.there.to.punish.
12dc0 79 6f 75 20 2d 20 74 68 65 20 72 75 6c 65 73 20 61 72 65 20 69 6e 20 70 6c 61 63 65 20 74 6f 20 you.-.the.rules.are.in.place.to.
12de0 68 65 6c 70 20 75 73 20 61 6c 6c 2e 20 42 79 20 68 61 76 69 6e 67 20 61 20 63 6f 6e 73 69 73 74 help.us.all..By.having.a.consist
12e00 65 6e 74 20 63 6f 64 69 6e 67 20 73 74 79 6c 65 20 69 74 20 62 65 63 6f 6d 65 73 20 76 65 72 79 ent.coding.style.it.becomes.very
12e20 20 65 61 73 79 20 66 6f 72 20 6e 65 77 20 61 6e 64 20 61 6c 73 6f 20 6c 6f 6e 67 74 69 6d 65 20 .easy.for.new.and.also.longtime.
12e40 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 74 6f 20 6e 61 76 69 67 61 74 65 20 74 68 72 6f 75 67 68 contributors.to.navigate.through
12e60 20 74 68 65 20 73 6f 75 72 63 65 73 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 69 6d 70 6c 69 65 64 .the.sources.and.all.the.implied
12e80 20 6c 6f 67 69 63 20 6f 66 20 61 6e 79 20 6f 6e 65 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 2e 00 .logic.of.any.one.source.file...
12ea0 4c 69 6d 69 74 73 3a 00 4c 69 6e 75 78 20 4b 65 72 6e 65 6c 00 4c 69 76 65 20 53 79 73 74 65 6d Limits:.Linux.Kernel.Live.System
12ec0 00 4d 54 55 20 73 69 7a 65 00 4d 61 6b 65 20 79 6f 75 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20 .MTU.size.Make.your.changes.and.
12ee0 73 61 76 65 20 74 68 65 6d 2e 20 44 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 6f 72 20 save.them..Do.the.following.for.
12f00 61 6c 6c 20 63 68 61 6e 67 65 73 20 66 69 6c 65 73 20 74 6f 20 72 65 63 6f 72 64 20 74 68 65 6d all.changes.files.to.record.them
12f20 20 69 6e 20 79 6f 75 72 20 63 72 65 61 74 65 64 20 47 69 74 20 63 6f 6d 6d 69 74 3a 00 4d 61 6e .in.your.created.Git.commit:.Man
12f40 75 61 6c 20 53 6d 6f 6b 65 74 65 73 74 20 52 75 6e 00 4d 61 6e 75 61 6c 20 63 6f 6e 66 69 67 20 ual.Smoketest.Run.Manual.config.
12f60 6c 6f 61 64 20 74 65 73 74 00 4d 61 6e 79 20 62 61 73 65 20 73 79 73 74 65 6d 20 70 61 63 6b 61 load.test.Many.base.system.packa
12f80 67 65 73 20 61 72 65 20 70 75 6c 6c 65 64 20 73 74 72 61 69 67 68 74 20 66 72 6f 6d 20 44 65 62 ges.are.pulled.straight.from.Deb
12fa0 69 61 6e 27 73 20 6d 61 69 6e 20 61 6e 64 20 63 6f 6e 74 72 69 62 20 72 65 70 6f 73 69 74 6f 72 ian's.main.and.contrib.repositor
12fc0 69 65 73 2c 20 62 75 74 20 74 68 65 72 65 20 61 72 65 20 65 78 63 65 70 74 69 6f 6e 73 2e 00 4d ies,.but.there.are.exceptions..M
12fe0 69 67 72 61 74 69 6e 67 20 6f 6c 64 20 43 4c 49 00 4d 6f 76 65 20 64 65 66 61 75 6c 74 20 76 61 igrating.old.CLI.Move.default.va
13000 6c 75 65 73 20 74 6f 20 73 63 72 69 70 74 73 00 4e 61 74 69 76 65 20 42 75 69 6c 64 00 4e 65 77 lues.to.scripts.Native.Build.New
13020 20 73 79 6e 74 61 78 00 4e 6f 20 63 6f 64 65 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 .syntax.No.code.incompatible.wit
13040 68 20 50 79 74 68 6f 6e 33 00 4e 6f 20 6e 65 77 20 66 65 61 74 75 72 65 73 20 69 6e 20 50 65 72 h.Python3.No.new.features.in.Per
13060 6c 00 4e 6f 20 6f 6c 64 20 73 74 79 6c 65 20 63 6f 6d 6d 61 6e 64 20 64 65 66 69 6e 69 74 69 6f l.No.old.style.command.definitio
13080 6e 73 00 4e 6f 20 73 70 65 63 69 61 6c 20 62 75 69 6c 64 20 70 72 6f 63 65 64 75 72 65 20 69 73 ns.No.special.build.procedure.is
130a0 20 72 65 71 75 69 72 65 64 2e 00 4e 6f 6e 65 00 4e 6f 74 65 73 00 4e 6f 77 20 61 20 66 72 65 73 .required..None.Notes.Now.a.fres
130c0 68 20 62 75 69 6c 64 20 6f 66 20 74 68 65 20 56 79 4f 53 20 49 53 4f 20 63 61 6e 20 62 65 67 69 h.build.of.the.VyOS.ISO.can.begi
130e0 6e 2e 20 43 68 61 6e 67 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 74 68 65 20 60 60 76 79 6f n..Change.directory.to.the.``vyo
13100 73 2d 62 75 69 6c 64 60 60 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 72 75 6e 3a 00 4e 6f 77 s-build``.directory.and.run:.Now
13120 20 61 73 20 79 6f 75 20 61 72 65 20 61 77 61 72 65 20 6f 66 20 74 68 65 20 70 72 65 72 65 71 75 .as.you.are.aware.of.the.prerequ
13140 69 73 69 74 65 73 20 77 65 20 63 61 6e 20 63 6f 6e 74 69 6e 75 65 20 61 6e 64 20 62 75 69 6c 64 isites.we.can.continue.and.build
13160 20 6f 75 72 20 6f 77 6e 20 49 53 4f 20 66 72 6f 6d 20 73 6f 75 72 63 65 2e 20 46 6f 72 20 74 68 .our.own.ISO.from.source..For.th
13180 69 73 20 77 65 20 68 61 76 65 20 74 6f 20 66 65 74 63 68 20 74 68 65 20 6c 61 74 65 73 74 20 73 is.we.have.to.fetch.the.latest.s
131a0 6f 75 72 63 65 20 63 6f 64 65 20 66 72 6f 6d 20 47 69 74 48 75 62 2e 20 50 6c 65 61 73 65 20 6e ource.code.from.GitHub..Please.n
131c0 6f 74 65 20 61 73 20 74 68 69 73 20 77 69 6c 6c 20 64 69 66 66 65 72 20 66 6f 72 20 62 6f 74 68 ote.as.this.will.differ.for.both
131e0 20 60 63 75 72 72 65 6e 74 60 20 61 6e 64 20 60 63 72 75 78 60 2e 00 4e 6f 77 20 69 74 27 73 20 .`current`.and.`crux`..Now.it's.
13200 74 69 6d 65 20 74 6f 20 66 69 78 20 74 68 65 20 70 61 63 6b 61 67 65 20 6d 69 72 72 6f 72 20 61 time.to.fix.the.package.mirror.a
13220 6e 64 20 72 65 72 75 6e 20 74 68 65 20 6c 61 73 74 20 73 74 65 70 20 75 6e 74 69 6c 20 74 68 65 nd.rerun.the.last.step.until.the
13240 20 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 73 75 63 63 65 65 64 73 20 61 .package.installation.succeeds.a
13260 67 61 69 6e 21 00 4e 6f 77 20 77 65 20 63 61 6e 20 75 73 65 20 74 68 65 20 68 65 6c 70 65 72 20 gain!.Now.we.can.use.the.helper.
13280 73 63 72 69 70 74 20 60 60 62 75 69 6c 64 2d 6b 65 72 6e 65 6c 2e 73 68 60 60 20 77 68 69 63 68 script.``build-kernel.sh``.which
132a0 20 64 6f 65 73 20 61 6c 6c 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 76 6f 6f 64 6f 6f 20 62 .does.all.the.necessary.voodoo.b
132c0 79 20 61 70 70 6c 79 69 6e 67 20 72 65 71 75 69 72 65 64 20 70 61 74 63 68 65 73 20 66 72 6f 6d y.applying.required.patches.from
132e0 20 74 68 65 20 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 2d .the.`vyos-build/packages/linux-
13300 6b 65 72 6e 65 6c 2f 70 61 74 63 68 65 73 60 20 66 6f 6c 64 65 72 2c 20 63 6f 70 79 69 6e 67 20 kernel/patches`.folder,.copying.
13320 6f 75 72 20 6b 65 72 6e 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 60 60 78 38 36 5f 36 our.kernel.configuration.``x86_6
13340 34 5f 76 79 6f 73 5f 64 65 66 63 6f 6e 66 69 67 60 60 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 4_vyos_defconfig``.to.the.right.
13360 6c 6f 63 61 74 69 6f 6e 2c 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 62 75 69 6c 64 69 6e 67 20 74 location,.and.finally.building.t
13380 68 65 20 44 65 62 69 61 6e 20 70 61 63 6b 61 67 65 73 2e 00 4e 6f 77 20 79 6f 75 20 61 72 65 20 he.Debian.packages..Now.you.are.
133a0 70 72 65 70 61 72 65 64 20 77 69 74 68 20 74 77 6f 20 6e 65 77 20 61 6c 69 61 73 65 73 20 60 60 prepared.with.two.new.aliases.``
133c0 76 79 62 6c 64 60 60 20 61 6e 64 20 60 60 76 79 62 6c 64 5f 63 72 75 78 60 60 20 74 6f 20 73 70 vybld``.and.``vybld_crux``.to.sp
133e0 61 77 6e 20 79 6f 75 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 65 72 73 20 awn.your.development.containers.
13400 69 6e 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 in.your.current.working.director
13420 79 2e 00 4f 6c 64 20 63 6f 6e 63 65 70 74 2f 73 79 6e 74 61 78 00 4f 6e 20 74 68 65 20 6f 74 68 y..Old.concept/syntax.On.the.oth
13440 65 72 20 68 61 6e 64 20 2d 20 61 73 20 65 61 63 68 20 74 65 73 74 20 69 73 20 63 6f 6e 74 61 69 er.hand.-.as.each.test.is.contai
13460 6e 20 69 6e 20 69 74 73 20 6f 77 6e 20 66 69 6c 65 20 2d 20 6f 6e 65 20 63 61 6e 20 61 6c 77 61 n.in.its.own.file.-.one.can.alwa
13480 79 73 20 65 78 65 63 75 74 65 20 61 20 73 69 6e 67 6c 65 20 53 6d 6f 6b 65 74 65 73 74 20 62 79 ys.execute.a.single.Smoketest.by
134a0 20 68 61 6e 64 20 62 79 20 73 69 6d 70 6c 79 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 50 79 74 68 .hand.by.simply.running.the.Pyth
134c0 6f 6e 20 74 65 73 74 20 73 63 72 69 70 74 73 2e 00 4f 6e 63 65 20 79 6f 75 20 68 61 76 65 20 74 on.test.scripts..Once.you.have.t
134e0 68 65 20 72 65 71 75 69 72 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6e 73 74 61 6c 6c he.required.dependencies.install
13500 65 64 2c 20 79 6f 75 20 6d 61 79 20 70 72 6f 63 65 65 64 20 77 69 74 68 20 74 68 65 20 73 74 65 ed,.you.may.proceed.with.the.ste
13520 70 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 69 73 6f 60 ps.described.in.:ref:`build_iso`
13540 2e 00 4f 6e 63 65 20 79 6f 75 20 72 75 6e 20 60 60 73 68 6f 77 20 78 79 7a 60 60 20 61 6e 64 20 ..Once.you.run.``show.xyz``.and.
13560 79 6f 75 72 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 74 72 69 67 67 65 72 65 64 20 79 6f 75 20 your.condition.is.triggered.you.
13580 73 68 6f 75 6c 64 20 62 65 20 64 72 6f 70 70 65 64 20 69 6e 74 6f 20 74 68 65 20 70 79 74 68 6f should.be.dropped.into.the.pytho
135a0 6e 20 64 65 62 75 67 67 65 72 3a 00 4f 6e 65 20 69 73 20 6e 6f 74 20 62 6f 75 6e 64 20 74 6f 20 n.debugger:.One.is.not.bound.to.
135c0 6c 6f 61 64 20 61 6c 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 6f 6e 65 20 61 66 74 65 load.all.configurations.one.afte
135e0 72 20 61 6e 6f 74 68 65 72 20 62 75 74 20 63 61 6e 20 61 6c 73 6f 20 6c 6f 61 64 20 69 6e 64 69 r.another.but.can.also.load.indi
13600 76 69 64 75 61 6c 20 74 65 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 6f 6e 20 68 69 vidual.test.configurations.on.hi
13620 73 20 6f 77 6e 2e 00 4f 6e 65 20 6f 66 20 74 68 65 20 6d 61 6a 6f 72 20 61 64 76 61 6e 74 61 67 s.own..One.of.the.major.advantag
13640 65 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 56 79 4f 53 20 31 2e 33 20 69 73 20 61 6e 20 es.introduced.in.VyOS.1.3.is.an.
13660 61 75 74 6d 61 74 65 64 20 74 65 73 74 20 66 72 61 6d 65 77 6f 72 6b 2e 20 57 68 65 6e 20 61 73 autmated.test.framework..When.as
13680 73 65 6d 62 6c 69 6e 67 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 6d 75 6c 74 69 70 6c 65 20 74 sembling.an.ISO.image.multiple.t
136a0 68 69 6e 67 73 20 63 61 6e 20 67 6f 20 77 72 6f 6e 67 20 62 61 64 6c 79 20 61 6e 64 20 70 75 62 hings.can.go.wrong.badly.and.pub
136c0 6c 69 73 68 69 6e 67 20 61 20 66 61 75 6c 74 79 20 49 53 4f 20 6d 61 6b 65 73 20 6e 6f 20 73 65 lishing.a.faulty.ISO.makes.no.se
136e0 6e 73 65 2e 20 54 68 65 20 75 73 65 72 20 69 73 20 64 69 73 61 70 70 6f 69 6e 74 65 64 20 62 79 nse..The.user.is.disappointed.by
13700 20 74 68 65 20 71 75 61 6c 69 74 79 20 6f 66 20 74 68 65 20 69 6d 61 67 65 20 61 6e 64 20 74 68 .the.quality.of.the.image.and.th
13720 65 20 64 65 76 65 6c 6f 70 65 72 73 20 67 65 74 20 66 6c 6f 64 64 65 64 20 77 69 74 68 20 62 75 e.developers.get.flodded.with.bu
13740 67 20 72 65 70 6f 72 74 73 20 6f 76 65 72 20 61 6e 64 20 6f 76 65 72 20 61 67 61 69 6e 2e 00 4f g.reports.over.and.over.again..O
13760 6e 65 20 6f 66 20 74 68 65 20 6d 61 6a 6f 72 20 61 64 76 61 6e 74 61 67 65 73 20 69 6e 74 72 6f ne.of.the.major.advantages.intro
13780 64 75 63 65 64 20 69 6e 20 56 79 4f 53 20 31 2e 33 20 69 73 20 61 6e 20 61 75 74 6f 6d 61 74 65 duced.in.VyOS.1.3.is.an.automate
137a0 64 20 74 65 73 74 20 66 72 61 6d 65 77 6f 72 6b 2e 20 57 68 65 6e 20 61 73 73 65 6d 62 6c 69 6e d.test.framework..When.assemblin
137c0 67 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 6d 75 6c 74 69 70 6c 65 20 74 68 69 6e 67 73 20 63 g.an.ISO.image.multiple.things.c
137e0 61 6e 20 67 6f 20 77 72 6f 6e 67 20 62 61 64 6c 79 20 61 6e 64 20 70 75 62 6c 69 73 68 69 6e 67 an.go.wrong.badly.and.publishing
13800 20 61 20 66 61 75 6c 74 79 20 49 53 4f 20 6d 61 6b 65 73 20 6e 6f 20 73 65 6e 73 65 2e 20 54 68 .a.faulty.ISO.makes.no.sense..Th
13820 65 20 75 73 65 72 20 69 73 20 64 69 73 61 70 70 6f 69 6e 74 65 64 20 62 79 20 74 68 65 20 71 75 e.user.is.disappointed.by.the.qu
13840 61 6c 69 74 79 20 6f 66 20 74 68 65 20 69 6d 61 67 65 20 61 6e 64 20 74 68 65 20 64 65 76 65 6c ality.of.the.image.and.the.devel
13860 6f 70 65 72 73 20 67 65 74 20 66 6c 6f 64 64 65 64 20 77 69 74 68 20 62 75 67 20 72 65 70 6f 72 opers.get.flodded.with.bug.repor
13880 74 73 20 6f 76 65 72 20 61 6e 64 20 6f 76 65 72 20 61 67 61 69 6e 2e 00 4f 6e 6c 79 20 61 70 70 ts.over.and.over.again..Only.app
138a0 6c 69 63 61 62 6c 65 20 74 6f 20 6c 65 61 66 20 6e 6f 64 65 73 00 4f 74 68 65 72 20 70 61 63 6b licable.to.leaf.nodes.Other.pack
138c0 61 67 65 73 20 28 65 2e 67 2e 20 76 79 6f 73 2d 31 78 29 20 61 64 64 20 64 65 70 65 6e 64 65 6e ages.(e.g..vyos-1x).add.dependen
138e0 63 69 65 73 20 74 6f 20 74 68 65 20 49 53 4f 20 62 75 69 6c 64 20 70 72 6f 63 65 64 75 72 65 20 cies.to.the.ISO.build.procedure.
13900 6f 6e 20 65 2e 67 2e 20 74 68 65 20 77 69 72 65 67 75 61 72 64 2d 6d 6f 64 75 6c 65 73 20 70 61 on.e.g..the.wireguard-modules.pa
13920 63 6b 61 67 65 20 77 68 69 63 68 20 69 74 73 65 6c 66 20 61 64 64 73 20 61 20 64 65 70 65 6e 64 ckage.which.itself.adds.a.depend
13940 65 6e 63 79 20 6f 6e 20 74 68 65 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e 20 75 73 65 64 20 ency.on.the.kernel.version.used.
13960 64 75 65 20 74 6f 20 74 68 65 20 6d 6f 64 75 6c 65 20 69 74 20 73 68 69 70 73 2e 20 54 68 69 73 due.to.the.module.it.ships..This
13980 20 6d 61 79 20 63 68 61 6e 67 65 20 28 66 6f 72 20 57 69 72 65 47 75 61 72 64 29 20 69 6e 20 66 .may.change.(for.WireGuard).in.f
139a0 75 74 75 72 65 20 6b 65 72 6e 65 6c 20 72 65 6c 65 61 73 65 73 20 62 75 74 20 61 73 20 6c 6f 6e uture.kernel.releases.but.as.lon
139c0 67 20 61 73 20 77 65 20 68 61 76 65 20 6f 75 74 2d 6f 66 2d 74 72 65 65 20 6d 6f 64 75 6c 65 73 g.as.we.have.out-of-tree.modules
139e0 2e 00 4f 75 72 20 53 74 72 6f 6e 67 53 57 41 4e 20 62 75 69 6c 64 20 64 69 66 66 65 72 73 20 66 ..Our.StrongSWAN.build.differs.f
13a00 72 6f 6d 20 74 68 65 20 75 70 73 74 72 65 61 6d 3a 00 4f 75 72 20 60 56 79 4f 53 20 43 49 60 5f rom.the.upstream:.Our.`VyOS.CI`_
13a20 20 73 79 73 74 65 6d 20 69 73 20 62 61 73 65 64 20 6f 6e 20 4a 65 6e 6b 69 6e 73 20 61 6e 64 20 .system.is.based.on.Jenkins.and.
13a40 62 75 69 6c 64 73 20 61 6c 6c 20 6f 75 72 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 builds.all.our.required.packages
13a60 20 66 6f 72 20 56 79 4f 53 20 31 2e 32 20 74 6f 20 31 2e 34 2e 20 49 6e 20 61 64 64 69 74 69 6f .for.VyOS.1.2.to.1.4..In.additio
13a80 6e 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 20 62 75 69 6c 64 2c 20 74 68 65 72 65 20 69 73 n.to.the.package.build,.there.is
13aa0 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 20 4a 6f 62 20 77 68 69 63 68 20 62 75 69 6c 64 73 .the.vyos-build.Job.which.builds
13ac0 20 61 6e 64 20 74 65 73 74 73 20 74 68 65 20 56 79 4f 53 20 49 53 4f 20 69 6d 61 67 65 20 77 68 .and.tests.the.VyOS.ISO.image.wh
13ae0 69 63 68 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 61 66 74 65 72 20 61 20 73 75 63 63 65 73 73 ich.is.published.after.a.success
13b00 66 75 6c 6c 20 74 65 73 74 20 64 72 69 76 65 2e 00 4f 75 72 20 63 6f 64 65 20 69 73 20 73 70 6c full.test.drive..Our.code.is.spl
13b20 69 74 20 69 6e 74 6f 20 73 65 76 65 72 61 6c 20 6d 6f 64 75 6c 65 73 2e 20 56 79 4f 53 20 69 73 it.into.several.modules..VyOS.is
13b40 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 6d 75 6c 74 69 70 6c 65 20 69 6e 64 69 76 69 64 75 61 6c .composed.of.multiple.individual
13b60 20 70 61 63 6b 61 67 65 73 2c 20 73 6f 6d 65 20 6f 66 20 74 68 65 6d 20 61 72 65 20 66 6f 72 6b .packages,.some.of.them.are.fork
13b80 73 20 6f 66 20 75 70 73 74 72 65 61 6d 20 70 61 63 6b 61 67 65 73 20 61 6e 64 20 61 72 65 20 70 s.of.upstream.packages.and.are.p
13ba0 65 72 69 6f 64 69 63 61 6c 6c 79 20 73 79 6e 63 65 64 20 77 69 74 68 20 75 70 73 74 72 65 61 6d eriodically.synced.with.upstream
13bc0 2c 20 73 6f 20 6b 65 65 70 69 6e 67 20 74 68 65 20 77 68 6f 6c 65 20 73 6f 75 72 63 65 20 75 6e ,.so.keeping.the.whole.source.un
13be0 64 65 72 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 6f 75 6c 64 20 62 65 der.a.single.repository.would.be
13c00 20 76 65 72 79 20 69 6e 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 73 6c 6f 77 2e 20 54 68 65 .very.inconvenient.and.slow..The
13c20 72 65 20 69 73 20 6e 6f 77 20 61 6e 20 6f 6e 67 6f 69 6e 67 20 65 66 66 6f 72 74 20 74 6f 20 63 re.is.now.an.ongoing.effort.to.c
13c40 6f 6e 73 6f 6c 69 64 61 74 65 20 61 6c 6c 20 56 79 4f 53 2d 73 70 65 63 69 66 69 63 20 66 72 61 onsolidate.all.VyOS-specific.fra
13c60 6d 65 77 6f 72 6b 2f 63 6f 6e 66 69 67 20 70 61 63 6b 61 67 65 73 20 69 6e 74 6f 20 76 79 6f 73 mework/config.packages.into.vyos
13c80 2d 31 78 20 70 61 63 6b 61 67 65 2c 20 62 75 74 20 74 68 65 20 62 61 73 69 63 20 73 74 72 75 63 -1x.package,.but.the.basic.struc
13ca0 74 75 72 65 20 69 73 20 67 6f 69 6e 67 20 74 6f 20 73 74 61 79 20 74 68 65 20 73 61 6d 65 2c 20 ture.is.going.to.stay.the.same,.
13cc0 6a 75 73 74 20 77 69 74 68 20 66 65 77 65 72 20 61 6e 64 20 66 65 77 65 72 20 70 61 63 6b 61 67 just.with.fewer.and.fewer.packag
13ce0 65 73 20 77 68 69 6c 65 20 74 68 65 20 62 61 73 65 20 63 6f 64 65 20 69 73 20 72 65 77 72 69 74 es.while.the.base.code.is.rewrit
13d00 74 65 6e 20 66 72 6f 6d 20 50 65 72 6c 2f 42 41 53 48 20 69 6e 74 6f 20 50 79 74 68 6f 6e 20 75 ten.from.Perl/BASH.into.Python.u
13d20 73 69 6e 67 20 61 6e 64 20 58 4d 4c 20 62 61 73 65 64 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 sing.and.XML.based.interface.def
13d40 69 6e 69 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 43 4c 49 2e 00 4f 75 72 20 6f 70 20 6d 6f 64 65 inition.for.the.CLI..Our.op.mode
13d60 20 73 63 72 69 70 74 73 20 75 73 65 20 74 68 65 20 70 79 74 68 6f 6e 2d 76 69 63 69 20 6d 6f 64 .scripts.use.the.python-vici.mod
13d80 75 6c 65 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 44 65 ule,.which.is.not.included.in.De
13da0 62 69 61 6e 27 73 20 62 75 69 6c 64 2c 20 61 6e 64 20 69 73 6e 27 74 20 71 75 69 74 65 20 65 61 bian's.build,.and.isn't.quite.ea
13dc0 73 79 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 69 6e 20 74 68 61 74 20 62 75 69 6c 64 2e 20 46 sy.to.integrate.in.that.build..F
13de0 6f 72 20 74 68 69 73 20 72 65 61 73 6f 6e 20 77 65 20 64 65 62 69 61 6e 69 7a 65 20 74 68 61 74 or.this.reason.we.debianize.that
13e00 20 6d 6f 64 75 6c 65 20 62 79 20 68 61 6e 64 20 6e 6f 77 2c 20 75 73 69 6e 67 20 74 68 69 73 20 .module.by.hand.now,.using.this.
13e20 70 72 6f 63 65 64 75 72 65 3a 00 4f 75 72 20 73 6d 6f 6b 65 74 65 73 74 73 20 6e 6f 74 20 6f 6e procedure:.Our.smoketests.not.on
13e40 6c 79 20 74 65 73 74 20 64 61 65 6d 6f 6e 73 20 61 6e 64 20 73 65 72 69 76 65 73 2c 20 62 75 74 ly.test.daemons.and.serives,.but
13e60 20 61 6c 73 6f 20 63 68 65 63 6b 20 69 66 20 77 68 61 74 20 77 65 20 63 6f 6e 66 69 67 75 72 65 .also.check.if.what.we.configure
13e80 20 66 6f 72 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 77 6f 72 6b 73 2e 20 54 68 75 73 20 74 68 .for.an.interface.works..Thus.th
13ea0 65 72 65 20 69 73 20 61 20 63 6f 6d 6d 6f 6e 20 62 61 73 65 20 63 6c 61 73 73 65 64 20 6e 61 6d ere.is.a.common.base.classed.nam
13ec0 65 64 3a 20 60 60 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 73 5f 74 65 73 74 2e 70 79 60 60 20 ed:.``base_interfaces_test.py``.
13ee0 77 68 69 63 68 20 68 6f 6c 64 73 20 61 6c 6c 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 63 6f 64 65 20 which.holds.all.the.common.code.
13f00 74 68 61 74 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 73 75 70 70 6f 72 74 73 20 61 6e 64 20 69 that.an.interface.supports.and.i
13f20 73 20 74 65 73 74 65 64 2e 00 50 61 63 6b 61 67 65 73 00 50 61 74 63 68 65 73 20 61 72 65 20 61 s.tested..Packages.Patches.are.a
13f40 6c 77 61 79 73 20 6d 6f 72 65 20 74 68 61 6e 20 77 65 6c 63 6f 6d 65 2e 20 54 6f 20 68 61 76 65 lways.more.than.welcome..To.have
13f60 20 61 20 63 6c 65 61 6e 20 61 6e 64 20 65 61 73 79 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 72 65 .a.clean.and.easy.to.maintain.re
13f80 70 6f 73 69 74 6f 72 79 20 77 65 20 68 61 76 65 20 73 6f 6d 65 20 67 75 69 64 65 6c 69 6e 65 73 pository.we.have.some.guidelines
13fa0 20 77 68 65 6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 47 69 74 2e 20 41 20 63 6c 65 61 6e 20 .when.working.with.Git..A.clean.
13fc0 72 65 70 6f 73 69 74 6f 72 79 20 65 61 73 65 73 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 67 repository.eases.the.automatic.g
13fe0 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 61 20 63 68 61 6e 67 65 6c 6f 67 20 66 69 6c 65 2e 00 50 eneration.of.a.changelog.file..P
14000 61 74 63 68 65 73 20 66 6f 72 20 44 4d 56 50 4e 20 61 72 65 20 6d 65 72 67 65 64 20 69 6e 00 50 atches.for.DMVPN.are.merged.in.P
14020 6c 65 61 73 65 20 6c 65 61 76 65 20 61 20 63 6f 6d 6d 65 6e 74 20 65 78 70 6c 61 69 6e 69 6e 67 lease.leave.a.comment.explaining
14040 20 77 68 79 20 74 68 65 20 70 72 69 6f 72 69 74 79 20 77 61 73 20 63 68 6f 73 65 6e 20 28 65 2e .why.the.priority.was.chosen.(e.
14060 67 2e 20 22 61 66 74 65 72 20 69 6e 74 65 72 66 61 63 65 73 20 61 72 65 20 63 6f 6e 66 69 67 75 g.."after.interfaces.are.configu
14080 72 65 64 22 29 00 50 6c 65 61 73 65 20 73 75 62 6d 69 74 20 79 6f 75 72 20 70 61 74 63 68 65 73 red").Please.submit.your.patches
140a0 20 75 73 69 6e 67 20 74 68 65 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 47 69 74 48 75 62 20 70 75 6c .using.the.well-known.GitHub.pul
140c0 6c 2d 72 65 71 75 65 73 74 20 61 67 61 69 6e 73 74 20 6f 75 72 20 72 65 70 6f 73 69 74 6f 72 69 l-request.against.our.repositori
140e0 65 73 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 56 79 4f 53 20 47 69 74 48 75 62 20 6f 72 67 61 es.found.in.the.VyOS.GitHub.orga
14100 6e 69 73 61 74 69 6f 6e 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 nisation.at.https://github.com/v
14120 79 6f 73 00 50 6c 65 61 73 65 20 75 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 6d yos.Please.use.the.following.tem
14140 70 6c 61 74 65 20 61 73 20 67 6f 6f 64 20 73 74 61 72 74 69 6e 67 20 70 6f 69 6e 74 20 77 68 65 plate.as.good.starting.point.whe
14160 6e 20 64 65 76 65 6c 6f 70 69 6e 67 20 6e 65 77 20 6d 6f 64 75 6c 65 73 20 6f 72 20 65 76 65 6e n.developing.new.modules.or.even
14180 20 72 65 77 72 69 74 65 20 61 20 77 68 6f 6c 65 20 62 75 6e 63 68 20 6f 66 20 63 6f 64 65 20 69 .rewrite.a.whole.bunch.of.code.i
141a0 6e 20 74 68 65 20 6e 65 77 20 73 74 79 6c 65 20 58 4d 4c 2f 50 79 68 6f 6e 20 69 6e 74 65 72 66 n.the.new.style.XML/Pyhon.interf
141c0 61 63 65 2e 00 50 6f 72 74 20 64 65 73 63 72 69 70 74 69 6f 6e 00 50 6f 72 74 20 64 69 73 61 62 ace..Port.description.Port.disab
141e0 6c 65 00 50 72 65 66 65 72 20 69 6e 66 69 6e 69 74 69 76 65 73 00 50 72 65 70 61 72 65 20 70 61 le.Prefer.infinitives.Prepare.pa
14200 74 63 68 2f 63 6f 6d 6d 69 74 00 50 72 65 70 61 72 65 20 72 65 6c 65 61 73 65 20 6e 6f 74 65 73 tch/commit.Prepare.release.notes
14220 20 66 6f 72 20 75 70 63 6f 6d 69 6e 67 20 72 65 6c 65 61 73 65 73 00 50 72 65 72 65 71 75 69 73 .for.upcoming.releases.Prerequis
14240 69 74 65 73 00 50 72 69 6f 72 69 74 69 65 73 00 50 72 6f 76 69 64 65 20 61 73 20 6d 75 63 68 20 ites.Priorities.Provide.as.much.
14260 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 73 20 79 6f 75 20 63 61 6e 00 50 79 74 68 6f 6e 00 50 79 information.as.you.can.Python.Py
14280 74 68 6f 6e 20 28 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 2c 20 66 6f 72 thon.(or.any.other.language,.for
142a0 20 74 68 61 74 20 6d 61 74 74 65 72 29 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 61 .that.matter).does.not.provide.a
142c0 75 74 6f 6d 61 74 69 63 20 70 72 6f 74 65 63 74 69 6f 6e 20 66 72 6f 6d 20 62 61 64 20 64 65 73 utomatic.protection.from.bad.des
142e0 69 67 6e 2c 20 73 6f 20 77 65 20 6e 65 65 64 20 74 6f 20 61 6c 73 6f 20 64 65 76 69 73 65 20 64 ign,.so.we.need.to.also.devise.d
14300 65 73 69 67 6e 20 67 75 69 64 65 6c 69 6e 65 73 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 6d esign.guidelines.and.follow.them
14320 20 74 6f 20 6b 65 65 70 20 74 68 65 20 73 79 73 74 65 6d 20 65 78 74 65 6e 73 69 62 6c 65 20 61 .to.keep.the.system.extensible.a
14340 6e 64 20 6d 61 69 6e 74 61 69 6e 61 62 6c 65 2e 00 50 79 74 68 6f 6e 20 33 20 2a 2a 73 68 61 6c nd.maintainable..Python.3.**shal
14360 6c 2a 2a 20 62 65 20 75 73 65 64 2e 20 48 6f 77 20 6c 6f 6e 67 20 63 61 6e 20 77 65 20 6b 65 65 l**.be.used..How.long.can.we.kee
14380 70 20 50 79 74 68 6f 6e 20 32 20 61 6c 69 76 65 20 61 6e 79 77 61 79 3f 20 4e 6f 20 63 6f 6e 73 p.Python.2.alive.anyway?.No.cons
143a0 69 64 65 72 61 74 69 6f 6e 73 20 66 6f 72 20 50 79 74 68 6f 6e 20 32 20 63 6f 6d 70 61 74 69 62 iderations.for.Python.2.compatib
143c0 69 6c 69 74 79 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 74 61 6b 65 6e 20 61 74 20 61 6e 79 ility.**should**.be.taken.at.any
143e0 20 74 69 6d 65 2e 00 50 79 74 68 6f 6e 3a 20 54 61 62 73 20 2a 2a 73 68 61 6c 6c 20 6e 6f 74 2a .time..Python:.Tabs.**shall.not*
14400 2a 20 62 65 20 75 73 65 64 2e 20 45 76 65 72 79 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6c 65 76 *.be.used..Every.indentation.lev
14420 65 6c 20 73 68 6f 75 6c 64 20 62 65 20 34 20 73 70 61 63 65 73 00 51 45 4d 55 00 52 61 74 69 6f el.should.be.4.spaces.QEMU.Ratio
14440 6e 61 6c 65 3a 20 74 68 69 73 20 73 65 65 6d 73 20 74 6f 20 62 65 20 74 68 65 20 75 6e 77 72 69 nale:.this.seems.to.be.the.unwri
14460 74 74 65 6e 20 73 74 61 6e 64 61 72 64 20 69 6e 20 6e 65 74 77 6f 72 6b 20 64 65 76 69 63 65 20 tten.standard.in.network.device.
14480 43 4c 49 73 2c 20 61 6e 64 20 61 20 67 6f 6f 64 20 61 65 73 74 68 65 74 69 63 20 63 6f 6d 70 72 CLIs,.and.a.good.aesthetic.compr
144a0 6f 6d 69 73 65 2e 00 52 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 73 20 75 73 65 20 74 68 65 20 60 omise..Recent.versions.use.the.`
144c0 60 76 79 6f 73 2e 66 72 72 60 60 20 66 72 61 6d 65 77 6f 72 6b 2e 20 54 68 65 20 50 79 74 68 6f `vyos.frr``.framework..The.Pytho
144e0 6e 20 63 6c 61 73 73 20 69 73 20 6c 6f 63 61 74 65 64 20 69 6e 73 69 64 65 20 6f 75 72 20 60 60 n.class.is.located.inside.our.``
14500 76 79 6f 73 2d 31 78 3a 70 79 74 68 6f 6e 2f 76 79 6f 73 2f 66 72 72 2e 70 79 60 60 2e 20 49 74 vyos-1x:python/vyos/frr.py``..It
14520 20 63 6f 6d 65 73 20 77 69 74 68 20 61 6e 20 65 6d 62 65 64 64 65 64 20 64 65 62 75 67 67 69 6e .comes.with.an.embedded.debuggin
14540 67 2f 20 28 70 72 69 6e 74 20 73 74 79 6c 65 29 20 64 65 62 75 67 67 65 72 20 61 73 20 76 79 6f g/.(print.style).debugger.as.vyo
14560 73 2e 69 66 63 6f 6e 66 69 67 20 64 6f 65 73 2e 00 52 65 70 6f 72 74 20 61 20 42 75 67 00 52 75 s.ifconfig.does..Report.a.Bug.Ru
14580 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 61 66 74 65 72 20 62 75 n.the.following.command.after.bu
145a0 69 6c 64 69 6e 67 20 74 68 65 20 49 53 4f 20 69 6d 61 67 65 2e 00 52 75 6e 20 74 68 65 20 66 6f ilding.the.ISO.image..Run.the.fo
145c0 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 61 66 74 65 72 20 62 75 69 6c 64 69 6e 67 20 74 llowing.command.after.building.t
145e0 68 65 20 51 45 4d 55 20 69 6d 61 67 65 2e 00 53 69 6d 70 6c 79 20 75 73 65 20 6f 75 72 20 77 72 he.QEMU.image..Simply.use.our.wr
14600 61 70 70 65 72 20 73 63 72 69 70 74 20 74 6f 20 62 75 69 6c 64 20 61 6c 6c 20 6f 66 20 74 68 65 apper.script.to.build.all.of.the
14620 20 64 72 69 76 65 72 20 6d 6f 64 75 6c 65 73 2e 00 53 69 6e 63 65 20 56 79 4f 53 20 68 61 73 20 .driver.modules..Since.VyOS.has.
14640 73 77 69 74 63 68 65 64 20 74 6f 20 44 65 62 69 61 6e 20 28 31 31 29 20 42 75 6c 6c 73 65 79 65 switched.to.Debian.(11).Bullseye
14660 20 69 6e 20 69 74 73 20 60 60 63 75 72 72 65 6e 74 60 60 20 62 72 61 6e 63 68 2c 20 79 6f 75 20 .in.its.``current``.branch,.you.
14680 77 69 6c 6c 20 72 65 71 75 69 72 65 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 6e 74 61 69 6e 65 will.require.individual.containe
146a0 72 20 66 6f 72 20 60 63 75 72 72 65 6e 74 60 2c 20 60 65 71 75 75 6c 65 75 73 60 20 61 6e 64 20 r.for.`current`,.`equuleus`.and.
146c0 60 63 72 75 78 60 20 62 75 69 6c 64 73 2e 00 53 6d 6f 6b 65 74 65 73 74 73 00 53 6d 6f 6b 65 74 `crux`.builds..Smoketests.Smoket
146e0 65 73 74 73 20 65 78 65 63 75 74 65 73 20 70 72 65 64 65 66 69 6e 65 64 20 56 79 4f 53 20 43 4c ests.executes.predefined.VyOS.CL
14700 49 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 63 68 65 63 6b 73 20 69 66 20 74 68 65 20 64 65 73 I.commands.and.checks.if.the.des
14720 69 72 65 64 20 64 61 65 6d 6f 6e 2f 73 65 72 76 69 63 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f ired.daemon/service.configuratio
14740 6e 20 69 73 20 72 65 6e 64 65 72 74 20 2d 20 74 68 61 74 20 69 73 20 68 6f 77 20 74 6f 20 70 75 n.is.rendert.-.that.is.how.to.pu
14760 74 20 69 74 20 22 73 68 6f 72 74 22 2e 00 53 6f 20 69 66 20 79 6f 75 20 70 6c 61 6e 20 74 6f 20 t.it."short"..So.if.you.plan.to.
14780 62 75 69 6c 64 20 79 6f 75 72 20 6f 77 6e 20 63 75 73 74 6f 6d 20 49 53 4f 20 69 6d 61 67 65 20 build.your.own.custom.ISO.image.
147a0 61 6e 64 20 77 61 6e 27 74 20 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 6f 75 72 20 73 6d 6f and.wan't.to.make.use.of.our.smo
147c0 6b 65 74 65 73 74 73 2c 20 65 6e 73 75 72 65 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 74 68 ketests,.ensure.that.you.have.th
147e0 65 20 60 76 79 6f 73 2d 31 78 2d 73 6d 6f 6b 65 74 65 73 74 60 20 70 61 63 6b 61 67 65 20 69 6e e.`vyos-1x-smoketest`.package.in
14800 73 74 61 6c 6c 65 64 2e 00 53 6f 6d 65 20 56 79 4f 53 20 70 61 63 6b 61 67 65 73 20 28 6e 61 6d stalled..Some.VyOS.packages.(nam
14820 65 6c 79 20 76 79 6f 73 2d 31 78 29 20 63 6f 6d 65 20 77 69 74 68 20 62 75 69 6c 64 2d 74 69 6d ely.vyos-1x).come.with.build-tim
14840 65 20 74 65 73 74 73 20 77 68 69 63 68 20 76 65 72 69 66 79 20 73 6f 6d 65 20 6f 66 20 74 68 65 e.tests.which.verify.some.of.the
14860 20 69 6e 74 65 72 6e 61 6c 20 6c 69 62 72 61 72 79 20 63 61 6c 6c 73 20 74 68 61 74 20 74 68 65 .internal.library.calls.that.the
14880 79 20 77 6f 72 6b 20 61 73 20 65 78 70 65 63 74 65 64 2e 20 54 68 6f 73 65 20 74 65 73 74 73 20 y.work.as.expected..Those.tests.
148a0 61 72 65 20 63 61 72 72 69 65 64 20 6f 75 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 50 79 74 68 are.carried.out.through.the.Pyth
148c0 6f 6e 20 55 6e 69 74 74 65 73 74 20 6d 6f 64 75 6c 65 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 20 on.Unittest.module..If.you.want.
148e0 74 6f 20 62 75 69 6c 64 20 74 68 65 20 60 60 76 79 6f 73 2d 31 78 60 60 20 70 61 63 6b 61 67 65 to.build.the.``vyos-1x``.package
14900 20 28 77 68 69 63 68 20 69 73 20 6f 75 72 20 6d 61 69 6e 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 .(which.is.our.main.development.
14920 70 61 63 6b 61 67 65 29 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 74 61 72 74 20 79 6f 75 72 20 package).you.need.to.start.your.
14940 44 6f 63 6b 65 72 20 63 6f 6e 74 61 69 6e 65 72 20 75 73 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f Docker.container.using.the.follo
14960 77 69 6e 67 20 61 72 67 75 6d 65 6e 74 3a 20 60 60 2d 2d 73 79 73 63 74 6c 20 6e 65 74 2e 69 70 wing.argument:.``--sysctl.net.ip
14980 76 36 2e 63 6f 6e 66 2e 6c 6f 2e 64 69 73 61 62 6c 65 5f 69 70 76 36 3d 30 60 60 2c 20 6f 74 68 v6.conf.lo.disable_ipv6=0``,.oth
149a0 65 72 77 69 73 65 20 74 68 6f 73 65 20 74 65 73 74 73 20 77 69 6c 6c 20 66 61 69 6c 2e 00 53 6f erwise.those.tests.will.fail..So
149c0 6d 65 20 61 62 62 72 65 76 69 61 74 69 6f 6e 73 20 61 72 65 20 74 72 61 64 69 74 69 6f 6e 61 6c me.abbreviations.are.traditional
149e0 6c 79 20 77 72 69 74 74 65 6e 20 69 6e 20 6d 69 78 65 64 20 63 61 73 65 2e 20 47 65 6e 65 72 61 ly.written.in.mixed.case..Genera
14a00 6c 6c 79 2c 20 69 66 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 77 6f 72 64 73 20 22 6f 76 65 72 22 lly,.if.it.contains.words."over"
14a20 20 6f 72 20 22 76 65 72 73 69 6f 6e 22 2c 20 74 68 65 20 6c 65 74 74 65 72 20 2a 2a 73 68 6f 75 .or."version",.the.letter.**shou
14a40 6c 64 2a 2a 20 62 65 20 6c 6f 77 65 72 63 61 73 65 2e 20 49 66 20 74 68 65 72 65 27 73 20 61 6e ld**.be.lowercase..If.there's.an
14a60 20 61 63 63 65 70 74 65 64 20 73 70 65 6c 6c 69 6e 67 20 28 65 73 70 65 63 69 61 6c 6c 79 20 69 .accepted.spelling.(especially.i
14a80 66 20 64 65 66 69 6e 65 64 20 62 79 20 61 6e 20 52 46 43 20 6f 72 20 61 6e 6f 74 68 65 72 20 73 f.defined.by.an.RFC.or.another.s
14aa0 74 61 6e 64 61 72 64 29 2c 20 69 74 20 2a 2a 6d 75 73 74 2a 2a 20 62 65 20 66 6f 6c 6c 6f 77 65 tandard),.it.**must**.be.followe
14ac0 64 2e 00 53 6f 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 68 61 d..Some.of.the.configurations.ha
14ae0 76 65 20 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 20 77 68 69 63 68 20 6e 65 65 64 20 74 6f 20 62 ve.preconditions.which.need.to.b
14b00 65 20 6d 65 74 2e 20 54 68 6f 73 65 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 69 6e 63 6c 75 64 65 e.met..Those.most.likely.include
14b20 20 67 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 63 72 79 70 6f 67 72 61 70 68 69 63 20 6b 65 79 73 .generation.of.crypographic.keys
14b40 20 62 65 66 6f 72 65 20 74 68 65 20 63 6f 6e 66 69 67 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 .before.the.config.can.be.applie
14b60 64 20 2d 20 79 6f 75 20 77 69 6c 6c 20 67 65 74 20 61 20 63 6f 6d 6d 69 74 20 65 72 72 6f 72 20 d.-.you.will.get.a.commit.error.
14b80 6f 74 68 65 72 77 69 73 65 2e 20 49 66 20 79 6f 75 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 otherwise..If.you.are.interested
14ba0 20 68 6f 77 20 74 68 6f 73 65 20 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 66 75 6c .how.those.preconditions.are.ful
14bc0 66 69 6c 6c 65 64 20 63 68 65 63 6b 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 5f 20 72 65 70 filled.check.the.vyos-build_.rep
14be0 6f 73 69 74 6f 72 79 20 61 6e 64 20 74 68 65 20 60 60 73 63 72 69 70 74 73 2f 63 68 65 63 6b 2d ository.and.the.``scripts/check-
14c00 71 65 6d 75 2d 69 6e 73 74 61 6c 6c 60 60 20 66 69 6c 65 2e 00 53 6f 6d 65 74 69 6d 65 73 20 69 qemu-install``.file..Sometimes.i
14c20 74 20 6d 69 67 68 74 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 64 65 62 75 67 20 50 79 74 68 6f t.might.be.useful.to.debug.Pytho
14c40 6e 20 63 6f 64 65 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6f 6e 20 74 68 65 20 6c 69 76 65 n.code.interactively.on.the.live
14c60 20 73 79 73 74 65 6d 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 49 44 45 2e 20 54 68 69 73 20 .system.rather.than.a.IDE..This.
14c80 63 61 6e 20 62 65 20 61 63 68 69 65 76 65 64 20 75 73 69 6e 67 20 70 64 62 2e 00 53 74 61 72 74 can.be.achieved.using.pdb..Start
14ca0 20 74 68 65 20 62 75 69 6c 64 3a 00 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 56 79 4f 53 20 31 .the.build:.Starting.with.VyOS.1
14cc0 2e 32 20 74 68 65 20 72 65 6c 65 61 73 65 20 6d 6f 64 65 6c 20 6f 66 20 56 79 4f 53 20 68 61 73 .2.the.release.model.of.VyOS.has
14ce0 20 63 68 61 6e 67 65 64 2e 20 56 79 4f 53 20 69 73 20 6e 6f 77 20 2a 2a 66 72 65 65 20 61 73 20 .changed..VyOS.is.now.**free.as.
14d00 69 6e 20 73 70 65 65 63 68 2c 20 62 75 74 20 6e 6f 74 20 61 73 20 69 6e 20 62 65 65 72 2a 2a 2e in.speech,.but.not.as.in.beer**.
14d20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 68 69 6c 65 20 56 79 4f 53 20 69 73 20 73 .This.means.that.while.VyOS.is.s
14d40 74 69 6c 6c 20 61 6e 20 6f 70 65 6e 20 73 6f 75 72 63 65 20 70 72 6f 6a 65 63 74 2c 20 74 68 65 till.an.open.source.project,.the
14d60 20 72 65 6c 65 61 73 65 20 49 53 4f 73 20 61 72 65 20 6e 6f 20 6c 6f 6e 67 65 72 20 66 72 65 65 .release.ISOs.are.no.longer.free
14d80 20 61 6e 64 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 6f 62 74 61 69 6e 65 64 20 76 69 61 20 73 75 .and.can.only.be.obtained.via.su
14da0 62 73 63 72 69 70 74 69 6f 6e 2c 20 6f 72 20 62 79 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 74 bscription,.or.by.contributing.t
14dc0 6f 20 74 68 65 20 63 6f 6d 6d 75 6e 69 74 79 2e 00 53 75 62 6d 69 74 20 61 20 50 61 74 63 68 00 o.the.community..Submit.a.Patch.
14de0 53 75 62 6d 69 74 20 74 68 65 20 70 61 74 63 68 20 60 60 67 69 74 20 70 75 73 68 60 60 20 61 6e Submit.the.patch.``git.push``.an
14e00 64 20 63 72 65 61 74 65 20 74 68 65 20 47 69 74 48 75 62 20 70 75 6c 6c 2d 72 65 71 75 65 73 74 d.create.the.GitHub.pull-request
14e20 2e 00 53 75 6d 6d 61 72 79 00 53 75 70 70 6f 73 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6d 61 ..Summary.Suppose.you.want.to.ma
14e40 6b 65 20 61 20 63 68 61 6e 67 65 20 69 6e 20 74 68 65 20 77 65 62 70 72 6f 78 79 20 73 63 72 69 ke.a.change.in.the.webproxy.scri
14e60 70 74 20 62 75 74 20 79 65 74 20 79 6f 75 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68 69 63 68 pt.but.yet.you.do.not.know.which
14e80 20 6f 66 20 74 68 65 20 6d 61 6e 79 20 56 79 4f 53 20 70 61 63 6b 61 67 65 73 20 73 68 69 70 20 .of.the.many.VyOS.packages.ship.
14ea0 74 68 69 73 20 66 69 6c 65 2e 20 59 6f 75 20 63 61 6e 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 this.file..You.can.determine.the
14ec0 20 56 79 4f 53 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 69 6e 20 71 75 65 73 74 69 6f 6e 20 62 .VyOS.package.name.in.question.b
14ee0 79 20 75 73 69 6e 67 20 44 65 62 69 61 6e 27 73 20 60 60 64 70 6b 67 20 2d 53 60 60 20 63 6f 6d y.using.Debian's.``dpkg.-S``.com
14f00 6d 61 6e 64 20 6f 66 20 79 6f 75 72 20 72 75 6e 6e 69 6e 67 20 56 79 4f 53 20 69 6e 73 74 61 6c mand.of.your.running.VyOS.instal
14f20 6c 61 74 69 6f 6e 2e 00 53 79 73 74 65 6d 20 53 74 61 72 74 75 70 00 54 65 6d 70 6c 61 74 65 20 lation..System.Startup.Template.
14f40 70 72 6f 63 65 73 73 6f 72 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 75 73 65 64 20 66 6f 72 processor.**should**.be.used.for
14f60 20 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 73 2e 20 42 75 69 6c 74 2d .generating.config.files..Built-
14f80 69 6e 20 73 74 72 69 6e 67 20 66 6f 72 6d 61 74 74 69 6e 67 20 2a 2a 6d 61 79 2a 2a 20 62 65 20 in.string.formatting.**may**.be.
14fa0 75 73 65 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 6c 69 6e 65 2d 6f 72 69 65 6e 74 65 64 20 66 6f used.for.simple.line-oriented.fo
14fc0 72 6d 61 74 73 20 77 68 65 72 65 20 65 76 65 72 79 20 6c 69 6e 65 20 69 73 20 73 65 6c 66 2d 63 rmats.where.every.line.is.self-c
14fe0 6f 6e 74 61 69 6e 65 64 2c 20 73 75 63 68 20 61 73 20 69 70 74 61 62 6c 65 73 20 72 75 6c 65 73 ontained,.such.as.iptables.rules
15000 2e 20 54 65 6d 70 6c 61 74 65 20 70 72 6f 63 65 73 73 6f 72 20 2a 2a 6d 75 73 74 2a 2a 20 62 65 ..Template.processor.**must**.be
15020 20 75 73 65 64 20 66 6f 72 20 73 74 72 75 63 74 75 72 65 64 2c 20 6d 75 6c 74 69 2d 6c 69 6e 65 .used.for.structured,.multi-line
15040 20 66 6f 72 6d 61 74 73 20 73 75 63 68 20 61 73 20 74 68 6f 73 65 20 75 73 65 64 20 62 79 20 49 .formats.such.as.those.used.by.I
15060 53 43 20 44 48 43 50 64 2e 00 54 65 73 74 69 6e 67 00 54 65 78 74 20 67 65 6e 65 72 61 74 69 6f SC.DHCPd..Testing.Text.generatio
15080 6e 00 54 68 65 20 43 4c 49 20 70 61 72 73 65 72 20 75 73 65 64 20 69 6e 20 56 79 4f 53 20 69 73 n.The.CLI.parser.used.in.VyOS.is
150a0 20 61 20 6d 69 78 20 6f 66 20 62 61 73 68 2c 20 62 61 73 68 2d 63 6f 6d 70 6c 65 74 69 6f 6e 20 .a.mix.of.bash,.bash-completion.
150c0 68 65 6c 70 65 72 20 61 6e 64 20 74 68 65 20 43 2b 2b 20 62 61 63 6b 65 6e 64 20 6c 69 62 72 61 helper.and.the.C++.backend.libra
150e0 72 79 20 5b 76 79 61 74 74 61 2d 63 66 67 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 ry.[vyatta-cfg](https://github.c
15100 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2d 63 66 67 29 2e 20 54 68 69 73 20 73 65 63 74 69 6f om/vyos/vyatta-cfg)..This.sectio
15120 6e 20 69 73 20 61 20 72 65 66 65 72 65 6e 63 65 20 6f 66 20 63 6f 6d 6d 6f 6e 20 43 4c 49 20 63 n.is.a.reference.of.common.CLI.c
15140 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 74 68 65 20 72 65 73 70 65 63 74 69 76 65 20 65 6e 74 72 79 ommands.and.the.respective.entry
15160 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 43 2f 43 2b 2b 20 63 6f 64 65 2e 00 54 68 65 20 49 6e .point.in.the.C/C++.code..The.In
15180 74 65 6c 20 4e 49 43 20 64 72 69 76 65 72 73 20 64 6f 20 6e 6f 74 20 63 6f 6d 65 20 66 72 6f 6d tel.NIC.drivers.do.not.come.from
151a0 20 61 20 47 69 74 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 69 6e 73 74 65 61 64 20 77 65 20 6a 75 .a.Git.repository,.instead.we.ju
151c0 73 74 20 66 65 74 63 68 20 74 68 65 20 74 61 72 62 61 6c 6c 73 20 66 72 6f 6d 20 6f 75 72 20 6d st.fetch.the.tarballs.from.our.m
151e0 69 72 72 6f 72 20 61 6e 64 20 63 6f 6d 70 69 6c 65 20 74 68 65 6d 2e 00 54 68 65 20 49 6e 74 65 irror.and.compile.them..The.Inte
15200 6c 20 51 41 54 20 28 51 75 69 63 6b 20 41 73 73 69 73 74 20 54 65 63 68 6e 6f 6c 6f 67 79 29 20 l.QAT.(Quick.Assist.Technology).
15220 64 72 69 76 65 72 73 20 64 6f 20 6e 6f 74 20 63 6f 6d 65 20 66 72 6f 6d 20 61 20 47 69 74 20 72 drivers.do.not.come.from.a.Git.r
15240 65 70 6f 73 69 74 6f 72 79 2c 20 69 6e 73 74 65 61 64 20 77 65 20 6a 75 73 74 20 66 65 74 63 68 epository,.instead.we.just.fetch
15260 20 74 68 65 20 74 61 72 62 61 6c 6c 73 20 66 72 6f 6d 20 30 31 2e 6f 72 67 2c 20 49 6e 74 65 6c .the.tarballs.from.01.org,.Intel
15280 27 73 20 6f 70 65 6e 2d 73 6f 75 72 63 65 20 77 65 62 73 69 74 65 2e 00 54 68 65 20 4c 69 6e 75 's.open-source.website..The.Linu
152a0 78 20 6b 65 72 6e 65 6c 20 75 73 65 64 20 62 79 20 56 79 4f 53 20 69 73 20 68 65 61 76 69 6c 79 x.kernel.used.by.VyOS.is.heavily
152c0 20 74 69 65 64 20 74 6f 20 74 68 65 20 49 53 4f 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 2e 20 .tied.to.the.ISO.build.process..
152e0 54 68 65 20 66 69 6c 65 20 60 60 64 61 74 61 2f 64 65 66 61 75 6c 74 73 2e 6a 73 6f 6e 60 60 20 The.file.``data/defaults.json``.
15300 68 6f 73 74 73 20 61 20 4a 53 4f 4e 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6b hosts.a.JSON.definition.of.the.k
15320 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e 20 75 73 65 64 20 60 60 6b 65 72 6e 65 6c 5f 76 65 72 73 ernel.version.used.``kernel_vers
15340 69 6f 6e 60 60 20 61 6e 64 20 74 68 65 20 60 60 6b 65 72 6e 65 6c 5f 66 6c 61 76 6f 72 60 60 20 ion``.and.the.``kernel_flavor``.
15360 6f 66 20 74 68 65 20 6b 65 72 6e 65 6c 20 77 68 69 63 68 20 72 65 70 72 65 73 65 6e 74 73 20 74 of.the.kernel.which.represents.t
15380 68 65 20 6b 65 72 6e 65 6c 27 73 20 4c 4f 43 41 4c 5f 56 45 52 53 49 4f 4e 2e 20 42 6f 74 68 20 he.kernel's.LOCAL_VERSION..Both.
153a0 74 6f 67 65 74 68 65 72 20 66 6f 72 6d 20 74 68 65 20 6b 65 72 6e 65 6c 20 76 65 72 73 69 6f 6e together.form.the.kernel.version
153c0 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 73 79 73 74 65 6d 3a 00 54 68 65 20 52 45 41 .variable.in.the.system:.The.REA
153e0 44 4d 45 2e 6d 64 20 66 69 6c 65 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 6f 20 75 73 DME.md.file.will.guide.you.to.us
15400 65 20 74 68 65 20 74 68 69 73 20 74 6f 70 20 6c 65 76 65 6c 20 72 65 70 6f 73 69 74 6f 72 79 2e e.the.this.top.level.repository.
15420 00 54 68 65 20 60 60 61 70 70 6c 79 28 29 60 60 20 61 6e 64 20 60 60 67 65 6e 65 72 61 74 65 28 .The.``apply()``.and.``generate(
15440 29 60 60 20 66 75 6e 63 74 69 6f 6e 73 20 6d 61 79 20 60 60 72 61 69 73 65 20 43 6f 6e 66 69 67 )``.functions.may.``raise.Config
15460 45 72 72 6f 72 60 60 20 69 66 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 64 61 65 Error``.if,.for.example,.the.dae
15480 6d 6f 6e 20 66 61 69 6c 65 64 20 74 6f 20 73 74 61 72 74 20 77 69 74 68 20 74 68 65 20 75 70 64 mon.failed.to.start.with.the.upd
154a0 61 74 65 64 20 63 6f 6e 66 69 67 2e 20 49 74 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 20 61 20 73 ated.config..It.shouldn't.be.a.s
154c0 75 62 73 74 69 74 75 74 65 20 66 6f 72 20 70 72 6f 70 65 72 20 63 6f 6e 66 69 67 20 63 68 65 63 ubstitute.for.proper.config.chec
154e0 6b 69 6e 67 20 69 6e 20 74 68 65 20 60 60 76 65 72 69 66 79 28 29 60 60 20 66 75 6e 63 74 69 6f king.in.the.``verify()``.functio
15500 6e 2e 20 41 6c 6c 20 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 20 73 68 6f 75 6c 64 20 n..All.reasonable.effort.should.
15520 62 65 20 6d 61 64 65 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 20 67 65 6e 65 72 61 74 65 64 be.made.to.verify.that.generated
15540 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 76 61 6c 69 64 20 61 6e 64 20 77 69 6c 6c .configuration.is.valid.and.will
15560 20 62 65 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68 65 20 64 61 65 6d 6f 6e 2c 20 69 6e 63 6c .be.accepted.by.the.daemon,.incl
15580 75 64 69 6e 67 2c 20 77 68 65 6e 20 6e 65 63 65 73 73 61 72 79 2c 20 63 72 6f 73 73 2d 20 63 68 uding,.when.necessary,.cross-.ch
155a0 65 63 6b 73 20 77 69 74 68 20 6f 74 68 65 72 20 56 79 4f 53 20 63 6f 6e 66 69 67 75 72 61 74 69 ecks.with.other.VyOS.configurati
155c0 6f 6e 20 73 75 62 74 72 65 65 73 2e 00 54 68 65 20 60 60 61 70 70 6c 79 28 29 60 60 20 66 75 6e on.subtrees..The.``apply()``.fun
155e0 63 74 69 6f 6e 20 61 70 70 6c 69 65 73 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 63 6f 6e 66 ction.applies.the.generated.conf
15600 69 67 75 72 61 74 69 6f 6e 20 74 6f 20 74 68 65 20 6c 69 76 65 20 73 79 73 74 65 6d 2e 20 49 74 iguration.to.the.live.system..It
15620 20 73 68 6f 75 6c 64 20 75 73 65 20 6e 6f 6e 2d 64 69 73 72 75 70 74 69 76 65 20 72 65 6c 6f 61 .should.use.non-disruptive.reloa
15640 64 20 77 68 65 6e 65 76 65 72 20 70 6f 73 73 69 62 6c 65 2e 20 49 74 20 6d 61 79 20 65 78 65 63 d.whenever.possible..It.may.exec
15660 75 74 65 20 64 69 73 72 75 70 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 73 75 63 68 20 61 ute.disruptive.operations.such.a
15680 73 20 64 61 65 6d 6f 6e 20 70 72 6f 63 65 73 73 20 72 65 73 74 61 72 74 20 69 66 20 61 20 70 61 s.daemon.process.restart.if.a.pa
156a0 72 74 69 63 75 6c 61 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 rticular.component.does.not.supp
156c0 6f 72 74 20 6e 6f 6e 2d 64 69 73 72 75 70 74 69 76 65 20 72 65 6c 6f 61 64 2c 20 6f 72 20 77 68 ort.non-disruptive.reload,.or.wh
156e0 65 6e 20 74 68 65 20 65 78 70 65 63 74 65 64 20 73 65 72 76 69 63 65 20 64 65 67 72 61 64 61 74 en.the.expected.service.degradat
15700 69 6f 6e 20 69 73 20 6d 69 6e 69 6d 61 6c 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 6e 20 ion.is.minimal.(for.example,.in.
15720 63 61 73 65 20 6f 66 20 61 75 78 69 6c 69 61 72 79 20 73 65 72 76 69 63 65 73 20 73 75 63 68 20 case.of.auxiliary.services.such.
15740 61 73 20 4c 4c 44 50 64 29 2e 20 49 6e 20 63 61 73 65 20 6f 66 20 68 69 67 68 20 69 6d 70 61 63 as.LLDPd)..In.case.of.high.impac
15760 74 20 73 65 72 76 69 63 65 73 20 73 75 63 68 20 61 73 20 56 50 4e 20 64 61 65 6d 6f 6e 20 61 6e t.services.such.as.VPN.daemon.an
15780 64 20 72 6f 75 74 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 77 68 65 6e 20 6e 6f 6e 2d 20 64 d.routing.protocols,.when.non-.d
157a0 69 73 72 75 70 74 69 76 65 20 72 65 6c 6f 61 64 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 66 6f isruptive.reload.is.supported.fo
157c0 72 20 73 6f 6d 65 20 62 75 74 20 6e 6f 74 20 61 6c 6c 20 74 79 70 65 73 20 6f 66 20 63 6f 6e 66 r.some.but.not.all.types.of.conf
157e0 69 67 75 72 61 74 69 6f 6e 20 63 68 61 6e 67 65 73 2c 20 73 63 72 69 70 74 73 20 61 75 74 68 6f iguration.changes,.scripts.autho
15800 72 73 20 73 68 6f 75 6c 64 20 6d 61 6b 65 20 65 66 66 6f 72 74 20 74 6f 20 64 65 74 65 72 6d 69 rs.should.make.effort.to.determi
15820 6e 65 20 69 66 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 68 61 6e 67 65 20 63 61 6e ne.if.a.configuration.change.can
15840 20 62 65 20 64 6f 6e 65 20 69 6e 20 61 20 6e 6f 6e 2d 64 69 73 72 75 70 74 69 76 65 20 77 61 79 .be.done.in.a.non-disruptive.way
15860 20 61 6e 64 20 6f 6e 6c 79 20 72 65 73 6f 72 74 20 74 6f 20 64 69 73 72 75 70 74 69 76 65 20 72 .and.only.resort.to.disruptive.r
15880 65 73 74 61 72 74 20 69 66 20 69 74 20 63 61 6e 6e 6f 74 20 62 65 20 61 76 6f 69 64 65 64 2e 00 estart.if.it.cannot.be.avoided..
158a0 54 68 65 20 60 60 67 65 6e 65 72 61 74 65 28 29 60 60 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 The.``generate()``.function.gene
158c0 72 61 74 65 73 20 63 6f 6e 66 69 67 20 66 69 6c 65 73 20 66 6f 72 20 73 79 73 74 65 6d 20 63 6f rates.config.files.for.system.co
158e0 6d 70 6f 6e 65 6e 74 73 2e 00 54 68 65 20 60 60 67 65 74 5f 63 6f 6e 66 69 67 28 29 60 60 20 66 mponents..The.``get_config()``.f
15900 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 63 6f 6e 76 65 72 74 20 74 68 65 20 56 79 4f 53 20 63 6f unction.must.convert.the.VyOS.co
15920 6e 66 69 67 20 74 6f 20 61 6e 20 61 62 73 74 72 61 63 74 2c 20 69 6e 74 65 72 6e 61 6c 20 72 65 nfig.to.an.abstract,.internal.re
15940 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 20 4e 6f 20 6f 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 presentation..No.other.function.
15960 69 73 20 61 6c 6c 6f 77 65 64 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 60 60 76 79 6f 73 2e 63 6f is.allowed.to.call.the.``vyos.co
15980 6e 66 69 67 2e 20 43 6f 6e 66 69 67 60 60 20 6f 62 6a 65 63 74 20 6d 65 74 68 6f 64 20 64 69 72 nfig..Config``.object.method.dir
159a0 65 63 74 6c 79 2e 20 54 68 65 20 72 61 74 69 6f 6e 61 6c 65 20 66 6f 72 20 69 74 20 69 73 20 74 ectly..The.rationale.for.it.is.t
159c0 68 61 74 20 77 68 65 6e 20 63 6f 6e 66 69 67 20 72 65 61 64 73 20 61 72 65 20 6d 69 78 65 64 20 hat.when.config.reads.are.mixed.
159e0 77 69 74 68 20 6f 74 68 65 72 20 6c 6f 67 69 63 2c 20 69 74 27 73 20 76 65 72 79 20 68 61 72 64 with.other.logic,.it's.very.hard
15a00 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 63 6f 6e 66 69 67 20 73 79 6e 74 61 78 20 73 69 6e .to.change.the.config.syntax.sin
15a20 63 65 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 77 65 65 64 20 6f 75 74 20 65 76 65 72 79 20 6f 63 ce.you.need.to.weed.out.every.oc
15a40 63 75 72 72 65 6e 63 65 20 6f 66 20 74 68 65 20 6f 6c 64 20 73 79 6e 74 61 78 2e 20 49 66 20 73 currence.of.the.old.syntax..If.s
15a60 79 6e 74 61 78 2d 73 70 65 63 69 66 69 63 20 63 6f 64 65 20 69 73 20 63 6f 6e 66 69 6e 65 64 20 yntax-specific.code.is.confined.
15a80 74 6f 20 61 20 73 69 6e 67 6c 65 20 66 75 6e 63 74 69 6f 6e 2c 20 74 68 65 20 72 65 73 74 20 6f to.a.single.function,.the.rest.o
15aa0 66 20 74 68 65 20 63 6f 64 65 20 63 61 6e 20 62 65 20 6c 65 66 74 20 75 6e 74 6f 75 63 68 65 64 f.the.code.can.be.left.untouched
15ac0 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72 65 70 72 65 73 65 .as.long.as.the.internal.represe
15ae0 6e 74 61 74 69 6f 6e 20 72 65 6d 61 69 6e 73 20 63 6f 6d 70 61 74 69 62 6c 65 2e 00 54 68 65 20 ntation.remains.compatible..The.
15b00 60 60 6d 61 6b 65 20 74 65 73 74 60 60 20 63 6f 6d 6d 61 6e 64 20 66 72 6f 6d 20 74 68 65 20 76 ``make.test``.command.from.the.v
15b20 79 6f 73 2d 62 75 69 6c 64 5f 20 72 65 70 6f 73 69 74 6f 72 79 20 77 69 6c 6c 20 6c 61 75 6e 63 yos-build_.repository.will.launc
15b40 68 20 61 20 6e 65 77 20 51 45 6d 75 20 69 6e 73 74 61 6e 63 65 20 61 6e 64 20 74 68 65 20 49 53 h.a.new.QEmu.instance.and.the.IS
15b60 4f 20 69 6d 61 67 65 20 69 73 20 66 69 72 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 74 6f 20 74 68 O.image.is.first.installed.to.th
15b80 65 20 76 69 72 74 75 61 6c 20 68 61 72 64 64 69 73 6b 2e 00 54 68 65 20 60 60 76 65 72 69 66 79 e.virtual.harddisk..The.``verify
15ba0 28 29 60 60 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 79 6f 75 72 20 69 6e 74 65 72 6e 61 ()``.function.takes.your.interna
15bc0 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6e 66 69 67 20 61 l.representation.of.the.config.a
15be0 6e 64 20 63 68 65 63 6b 73 20 69 66 20 69 74 27 73 20 76 61 6c 69 64 2c 20 6f 74 68 65 72 77 69 nd.checks.if.it's.valid,.otherwi
15c00 73 65 20 69 74 20 6d 75 73 74 20 72 61 69 73 65 20 60 60 43 6f 6e 66 69 67 45 72 72 6f 72 60 60 se.it.must.raise.``ConfigError``
15c20 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 74 68 61 74 20 64 65 73 63 .with.an.error.message.that.desc
15c40 72 69 62 65 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 61 6e 64 20 70 6f 73 73 69 62 6c 79 20 73 ribes.the.problem.and.possibly.s
15c60 75 67 67 65 73 74 73 20 68 6f 77 20 74 6f 20 66 69 78 20 69 74 2e 20 49 74 20 6d 75 73 74 20 6e uggests.how.to.fix.it..It.must.n
15c80 6f 74 20 6d 61 6b 65 20 61 6e 79 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 73 79 73 74 65 ot.make.any.changes.to.the.syste
15ca0 6d 2e 20 54 68 65 20 72 61 74 69 6f 6e 61 6c 65 20 66 6f 72 20 69 74 20 69 73 20 61 67 61 69 6e m..The.rationale.for.it.is.again
15cc0 20 74 65 73 74 61 62 69 6c 69 74 79 20 61 6e 64 2c 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 20 .testability.and,.in.the.future.
15ce0 77 68 65 6e 20 74 68 65 20 63 6f 6e 66 69 67 20 62 61 63 6b 65 6e 64 20 69 73 20 72 65 61 64 79 when.the.config.backend.is.ready
15d00 20 61 6e 64 20 65 76 65 72 79 20 73 63 72 69 70 74 20 69 73 20 72 65 77 72 69 74 74 65 6e 20 69 .and.every.script.is.rewritten.i
15d20 6e 20 74 68 69 73 20 66 61 73 68 69 6f 6e 2c 20 61 62 69 6c 69 74 79 20 74 6f 20 65 78 65 63 75 n.this.fashion,.ability.to.execu
15d40 74 65 20 63 6f 6d 6d 69 74 20 64 72 79 20 72 75 6e 20 28 22 63 6f 6d 6d 69 74 20 74 65 73 74 22 te.commit.dry.run.("commit.test"
15d60 20 6c 69 6b 65 20 69 6e 20 4a 75 6e 4f 53 29 20 61 6e 64 20 61 62 6f 72 74 20 63 6f 6d 6d 69 74 .like.in.JunOS).and.abort.commit
15d80 20 62 65 66 6f 72 65 20 6d 61 6b 69 6e 67 20 61 6e 79 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 .before.making.any.changes.to.th
15da0 65 20 73 79 73 74 65 6d 20 69 66 20 61 6e 20 65 72 72 6f 72 20 69 73 20 66 6f 75 6e 64 20 69 6e e.system.if.an.error.is.found.in
15dc0 20 61 6e 79 20 63 6f 6d 70 6f 6e 65 6e 74 2e 00 54 68 65 20 62 61 73 68 20 28 6f 72 20 62 65 74 .any.component..The.bash.(or.bet
15de0 74 65 72 20 76 62 61 73 68 29 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 69 6e 20 56 79 4f 53 20 69 73 ter.vbash).completion.in.VyOS.is
15e00 20 64 65 66 69 6e 65 64 20 69 6e 20 2a 74 65 6d 70 6c 61 74 65 73 2a 2e 20 54 65 6d 70 6c 61 74 .defined.in.*templates*..Templat
15e20 65 73 20 61 72 65 20 74 65 78 74 20 66 69 6c 65 73 20 28 63 61 6c 6c 65 64 20 60 60 6e 6f 64 65 es.are.text.files.(called.``node
15e40 2e 64 65 66 60 60 29 20 73 74 6f 72 65 64 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 74 72 .def``).stored.in.a.directory.tr
15e60 65 65 2e 20 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 20 64 65 66 69 6e 65 20 74 ee..The.directory.names.define.t
15e80 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 73 2c 20 61 6e 64 20 74 65 6d 70 6c 61 74 65 20 66 he.command.names,.and.template.f
15ea0 69 6c 65 73 20 64 65 66 69 6e 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 62 65 68 61 76 69 6f 75 iles.define.the.command.behaviou
15ec0 72 2e 20 42 65 66 6f 72 65 20 56 79 4f 53 20 31 2e 32 20 28 63 72 75 78 29 20 74 68 69 73 20 66 r..Before.VyOS.1.2.(crux).this.f
15ee0 69 6c 65 73 20 77 65 72 65 20 63 72 65 61 74 65 64 20 62 79 20 68 61 6e 64 2e 20 41 66 74 65 72 iles.were.created.by.hand..After
15f00 20 61 20 63 6f 6d 70 6c 65 78 20 72 65 64 65 73 69 67 6e 20 70 72 6f 63 65 73 73 5f 20 74 68 65 .a.complex.redesign.process_.the
15f20 20 6e 65 77 20 73 74 79 6c 65 20 74 65 6d 70 6c 61 74 65 20 61 72 65 20 61 75 74 6f 6d 61 74 69 .new.style.template.are.automati
15f40 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 20 61 20 58 4d 4c 20 69 6e 70 75 74 cally.generated.from.a.XML.input
15f60 20 66 69 6c 65 2e 00 54 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 20 6e 65 65 64 73 20 74 .file..The.build.process.needs.t
15f80 6f 20 62 65 20 62 75 69 6c 74 20 6f 6e 20 61 20 6c 6f 63 61 6c 20 66 69 6c 65 20 73 79 73 74 65 o.be.built.on.a.local.file.syste
15fa0 6d 2c 20 62 75 69 6c 64 69 6e 67 20 6f 6e 20 53 4d 42 20 6f 72 20 4e 46 53 20 73 68 61 72 65 73 m,.building.on.SMB.or.NFS.shares
15fc0 20 77 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 66 61 .will.result.in.the.container.fa
15fe0 69 6c 69 6e 67 20 74 6f 20 62 75 69 6c 64 20 70 72 6f 70 65 72 6c 79 21 20 56 69 72 74 75 61 6c iling.to.build.properly!.Virtual
16000 42 6f 78 20 44 72 69 76 65 20 53 68 61 72 65 20 69 73 20 61 6c 73 6f 20 6e 6f 74 20 61 6e 20 6f Box.Drive.Share.is.also.not.an.o
16020 70 74 69 6f 6e 20 61 73 20 62 6c 6f 63 6b 20 64 65 76 69 63 65 20 6f 70 65 72 61 74 69 6f 6e 73 ption.as.block.device.operations
16040 20 61 72 65 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 6e 64 20 74 68 65 20 64 72 69 .are.not.implemented.and.the.dri
16060 76 65 20 69 73 20 61 6c 77 61 79 73 20 6d 6f 75 6e 74 65 64 20 61 73 20 22 6e 6f 64 65 76 22 00 ve.is.always.mounted.as."nodev".
16080 54 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 61 72 65 20 61 6c 6c 20 64 65 72 69 76 The.configurations.are.all.deriv
160a0 65 64 20 66 72 6f 6d 20 70 72 6f 64 75 63 74 69 6f 6e 20 73 79 73 74 65 6d 73 20 61 6e 64 20 63 ed.from.production.systems.and.c
160c0 61 6e 20 6e 6f 74 20 6f 6e 6c 79 20 61 63 74 20 61 73 20 61 20 74 65 73 74 63 61 73 65 20 62 75 an.not.only.act.as.a.testcase.bu
160e0 74 20 61 6c 73 6f 20 61 73 20 72 65 66 65 72 65 6e 63 65 20 69 66 20 6f 6e 65 20 77 61 6e 74 73 t.also.as.reference.if.one.wants
16100 20 74 6f 20 65 6e 61 62 6c 65 20 61 20 63 65 72 74 61 69 6e 20 66 65 61 74 75 72 65 2e 20 54 68 .to.enable.a.certain.feature..Th
16120 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 68 65 e.configurations.can.be.found.he
16140 72 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 6f 73 re:.https://github.com/vyos/vyos
16160 2d 31 78 2f 74 72 65 65 2f 63 75 72 72 65 6e 74 2f 73 6d 6f 6b 65 74 65 73 74 2f 63 6f 6e 66 69 -1x/tree/current/smoketest/confi
16180 67 73 00 54 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 62 75 69 gs.The.container.can.also.be.bui
161a0 6c 74 20 64 69 72 65 63 74 6c 79 20 66 72 6f 6d 20 73 6f 75 72 63 65 3a 00 54 68 65 20 63 6f 6e lt.directly.from.source:.The.con
161c0 74 61 69 6e 65 72 20 63 61 6e 20 62 65 20 62 75 69 6c 74 20 62 79 20 68 61 6e 64 20 6f 72 20 62 tainer.can.be.built.by.hand.or.b
161e0 79 20 66 65 74 63 68 69 6e 67 20 74 68 65 20 70 72 65 2d 62 75 69 6c 74 20 6f 6e 65 20 66 72 6f y.fetching.the.pre-built.one.fro
16200 6d 20 44 6f 63 6b 65 72 48 75 62 2e 20 55 73 69 6e 67 20 74 68 65 20 70 72 65 2d 62 75 69 6c 74 m.DockerHub..Using.the.pre-built
16220 20 63 6f 6e 74 61 69 6e 65 72 73 20 66 72 6f 6d 20 74 68 65 20 60 56 79 4f 53 20 44 6f 63 6b 65 .containers.from.the.`VyOS.Docke
16240 72 48 75 62 20 6f 72 67 61 6e 69 73 61 74 69 6f 6e 60 5f 20 77 69 6c 6c 20 65 6e 73 75 72 65 20 rHub.organisation`_.will.ensure.
16260 74 68 61 74 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 69 73 20 61 6c 77 61 79 73 20 75 70 2d that.the.container.is.always.up-
16280 74 6f 2d 64 61 74 65 2e 20 41 20 72 65 62 75 69 6c 64 20 69 73 20 74 72 69 67 67 65 72 65 64 20 to-date..A.rebuild.is.triggered.
162a0 6f 6e 63 65 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 63 68 61 6e 67 65 73 20 28 70 6c 65 61 once.the.container.changes.(plea
162c0 73 65 20 6e 6f 74 65 20 74 68 69 73 20 77 69 6c 6c 20 74 61 6b 65 20 32 2d 33 20 68 6f 75 72 73 se.note.this.will.take.2-3.hours
162e0 20 61 66 74 65 72 20 70 75 73 68 69 6e 67 20 74 6f 20 74 68 65 20 76 79 6f 73 2d 62 75 69 6c 64 .after.pushing.to.the.vyos-build
16300 20 72 65 70 6f 73 69 74 6f 72 79 29 2e 00 54 68 65 20 64 65 66 61 75 6c 74 20 74 65 6d 70 6c 61 .repository)..The.default.templa
16320 74 65 20 70 72 6f 63 65 73 73 6f 72 20 66 6f 72 20 56 79 4f 53 20 63 6f 64 65 20 69 73 20 4a 69 te.processor.for.VyOS.code.is.Ji
16340 6e 6a 61 32 5f 2e 00 54 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f 20 63 6f 6d 70 69 6c nja2_..The.easiest.way.to.compil
16360 65 20 79 6f 75 72 20 70 61 63 6b 61 67 65 20 69 73 20 77 69 74 68 20 74 68 65 20 61 62 6f 76 65 e.your.package.is.with.the.above
16380 20 6d 65 6e 74 69 6f 6e 65 64 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 64 6f 63 6b 65 72 60 20 63 .mentioned.:ref:`build_docker`.c
163a0 6f 6e 74 61 69 6e 65 72 2c 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61 6c 6c 20 72 65 71 75 69 72 ontainer,.it.includes.all.requir
163c0 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 61 6c 6c 20 56 79 4f 53 20 72 65 6c ed.dependencies.for.all.VyOS.rel
163e0 61 74 65 64 20 70 61 63 6b 61 67 65 73 2e 00 54 68 65 20 65 6e 74 69 72 65 20 74 65 73 74 20 69 ated.packages..The.entire.test.i
16400 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 65 20 6d 61 69 6e 20 77 72 61 70 70 65 72 s.controlled.by.the.main.wrapper
16420 20 73 63 72 69 70 74 20 60 60 2f 75 73 72 2f 62 69 6e 2f 76 79 6f 73 2d 63 6f 6e 66 69 67 74 65 .script.``/usr/bin/vyos-configte
16440 73 74 60 60 20 77 68 69 63 68 20 62 65 68 61 76 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 st``.which.behaves.in.the.same.w
16460 61 79 20 61 73 20 74 68 65 20 6d 61 69 6e 20 73 6d 6f 6b 65 74 65 73 74 20 73 63 72 69 70 74 2e ay.as.the.main.smoketest.script.
16480 20 49 74 20 73 63 61 6e 73 20 74 68 65 20 66 6f 6c 64 65 72 20 66 6f 72 20 70 6f 74 65 6e 74 69 .It.scans.the.folder.for.potenti
164a0 61 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 73 20 61 6e 64 20 69 73 73 75 65 al.configuration.files.and.issue
164c0 73 20 61 20 60 60 6c 6f 61 64 60 60 20 63 6f 6d 6d 61 6e 64 20 6f 6e 65 20 61 66 74 65 72 20 61 s.a.``load``.command.one.after.a
164e0 6e 6f 74 68 65 72 2e 00 54 68 65 20 66 69 6c 65 20 63 61 6e 20 62 65 20 70 6c 61 63 65 64 20 69 nother..The.file.can.be.placed.i
16500 6e 20 60 60 2f 74 6d 70 60 60 20 66 6f 72 20 6f 6e 65 20 74 69 6d 65 20 64 65 62 75 67 67 69 6e n.``/tmp``.for.one.time.debuggin
16520 67 20 28 61 73 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 6f g.(as.the.file.will.be.removed.o
16540 6e 20 72 65 62 6f 6f 74 29 20 6f 72 20 70 6c 61 63 65 64 20 69 6e 20 27 2f 63 6f 6e 66 69 67 27 n.reboot).or.placed.in.'/config'
16560 20 74 6f 20 73 74 61 79 20 70 65 72 6d 61 6e 65 6e 74 6c 79 2e 00 54 68 65 20 66 69 72 73 74 20 .to.stay.permanently..The.first.
16580 77 6f 72 64 20 6f 66 20 65 76 65 72 79 20 68 65 6c 70 20 73 74 72 69 6e 67 20 2a 2a 6d 75 73 74 word.of.every.help.string.**must
165a0 2a 2a 20 62 65 20 63 61 70 69 74 61 6c 69 7a 65 64 2e 20 54 68 65 72 65 20 2a 2a 6d 75 73 74 20 **.be.capitalized..There.**must.
165c0 6e 6f 74 2a 2a 20 62 65 20 61 20 70 65 72 69 6f 64 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 not**.be.a.period.at.the.end.of.
165e0 68 65 6c 70 20 73 74 72 69 6e 67 73 2e 00 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 63 6c help.strings..The.following.incl
16600 75 64 65 73 20 74 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 20 66 6f 72 20 56 79 4f 53 20 udes.the.build.process.for.VyOS.
16620 31 2e 32 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 00 54 68 65 20 66 1.2.to.the.latest.version..The.f
16640 6f 72 6d 61 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 64 20 69 73 20 69 6e 73 70 69 72 65 64 20 ormat.should.be.and.is.inspired.
16660 62 79 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 2d 73 63 6d 2e 63 6f 6d 2f 62 6f 6f 6b 2f 63 68 35 by:.https://git-scm.com/book/ch5
16680 2d 32 2e 68 74 6d 6c 20 49 74 20 69 73 20 61 6c 73 6f 20 77 6f 72 74 68 20 72 65 61 64 69 6e 67 -2.html.It.is.also.worth.reading
166a0 20 68 74 74 70 73 3a 2f 2f 63 68 72 69 73 2e 62 65 61 6d 73 2e 69 6f 2f 70 6f 73 74 73 2f 67 69 .https://chris.beams.io/posts/gi
166c0 74 2d 63 6f 6d 6d 69 74 2f 00 54 68 65 20 67 72 65 61 74 20 74 68 69 6e 67 20 61 62 6f 75 74 20 t-commit/.The.great.thing.about.
166e0 73 63 68 65 6d 61 73 20 69 73 20 6e 6f 74 20 6f 6e 6c 79 20 74 68 61 74 20 70 65 6f 70 6c 65 20 schemas.is.not.only.that.people.
16700 63 61 6e 20 6b 6e 6f 77 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 67 72 61 6d 6d 61 72 20 66 6f can.know.the.complete.grammar.fo
16720 72 20 63 65 72 74 61 69 6e 2c 20 62 75 74 20 61 6c 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e 20 r.certain,.but.also.that.it.can.
16740 62 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 76 65 72 69 66 69 65 64 2e 20 54 68 65 20 60 be.automatically.verified..The.`
16760 73 63 72 69 70 74 73 2f 62 75 69 6c 64 2d 63 6f 6d 6d 61 6e 64 2d 74 65 6d 70 6c 61 74 65 73 60 scripts/build-command-templates`
16780 20 73 63 72 69 70 74 20 74 68 61 74 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 58 4d 4c 20 64 65 .script.that.converts.the.XML.de
167a0 66 69 6e 69 74 69 6f 6e 73 20 74 6f 20 6f 6c 64 20 73 74 79 6c 65 20 74 65 6d 70 6c 61 74 65 73 finitions.to.old.style.templates
167c0 20 61 6c 73 6f 20 76 65 72 69 66 69 65 73 20 74 68 65 6d 20 61 67 61 69 6e 73 74 20 74 68 65 20 .also.verifies.them.against.the.
167e0 73 63 68 65 6d 61 2c 20 73 6f 20 61 20 62 61 64 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 6c 6c schema,.so.a.bad.definition.will
16800 20 63 61 75 73 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 62 75 69 6c 64 20 74 6f 20 66 61 69 6c .cause.the.package.build.to.fail
16820 2e 20 49 20 64 6f 20 61 67 72 65 65 20 74 68 61 74 20 74 68 65 20 66 6f 72 6d 61 74 20 69 73 20 ..I.do.agree.that.the.format.is.
16840 76 65 72 62 6f 73 65 2c 20 62 75 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6f 74 68 65 72 20 66 verbose,.but.there.is.no.other.f
16860 6f 72 6d 61 74 20 6e 6f 77 20 74 68 61 74 20 77 6f 75 6c 64 20 61 6c 6c 6f 77 20 74 68 69 73 2e ormat.now.that.would.allow.this.
16880 20 42 65 73 69 64 65 73 2c 20 61 20 73 70 65 63 69 61 6c 69 7a 65 64 20 58 4d 4c 20 65 64 69 74 .Besides,.a.specialized.XML.edit
168a0 6f 72 20 63 61 6e 20 61 6c 6c 65 76 69 61 74 65 20 74 68 65 20 69 73 73 75 65 20 77 69 74 68 20 or.can.alleviate.the.issue.with.
168c0 76 65 72 62 6f 73 69 74 79 2e 00 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 75 73 verbosity..The.information.is.us
168e0 65 64 20 69 6e 20 74 68 72 65 65 20 77 61 79 73 3a 00 54 68 65 20 6b 65 72 6e 65 6c 20 62 75 69 ed.in.three.ways:.The.kernel.bui
16900 6c 64 20 69 73 20 71 75 69 74 65 20 65 61 73 79 2c 20 6d 6f 73 74 20 6f 66 20 74 68 65 20 72 65 ld.is.quite.easy,.most.of.the.re
16920 71 75 69 72 65 64 20 73 74 65 70 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 quired.steps.can.be.found.in.the
16940 20 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 2d 6b 65 72 .``vyos-build/packages/linux-ker
16960 6e 65 6c 2f 4a 65 6e 6b 69 6e 73 66 69 6c 65 60 60 20 62 75 74 20 77 65 20 77 69 6c 6c 20 77 61 nel/Jenkinsfile``.but.we.will.wa
16980 6c 6b 20 79 6f 75 20 74 68 72 6f 75 67 68 20 69 74 2e 00 54 68 65 20 6d 6f 73 74 20 6f 62 76 69 lk.you.through.it..The.most.obvi
169a0 6f 75 73 20 72 65 61 73 6f 6e 73 20 63 6f 75 6c 64 20 62 65 3a 00 54 68 65 20 6f 72 69 67 69 6e ous.reasons.could.be:.The.origin
169c0 61 6c 20 72 65 70 6f 20 69 73 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d al.repo.is.at.https://github.com
169e0 2f 64 6d 62 61 74 75 72 69 6e 2f 68 76 69 6e 66 6f 00 54 68 65 20 6f 74 68 65 72 20 70 61 72 74 /dmbaturin/hvinfo.The.other.part
16a00 20 6f 66 20 6f 75 72 20 74 65 73 74 73 20 61 72 65 20 63 61 6c 6c 65 64 20 22 63 6f 6e 66 69 67 .of.our.tests.are.called."config
16a20 20 6c 6f 61 64 20 74 65 73 74 73 22 2e 20 54 68 65 20 63 6f 6e 66 69 67 20 6c 6f 61 64 20 74 65 .load.tests"..The.config.load.te
16a40 73 74 73 20 77 69 6c 6c 20 6c 6f 61 64 20 2d 20 6f 6e 65 20 61 66 74 65 72 20 61 6e 6f 74 68 65 sts.will.load.-.one.after.anothe
16a60 72 20 2d 20 61 72 62 69 74 72 61 72 79 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 r.-.arbitrary.configuration.file
16a80 73 20 74 6f 20 74 65 73 74 20 69 66 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d s.to.test.if.the.configuration.m
16aa0 69 67 72 61 74 69 6f 6e 20 73 63 72 69 70 74 73 20 77 6f 72 6b 20 61 73 20 64 65 73 69 67 6e 65 igration.scripts.work.as.designe
16ac0 64 20 61 6e 64 20 74 68 61 74 20 61 20 67 69 76 65 6e 20 73 65 74 20 6f 66 20 66 75 6e 63 74 69 d.and.that.a.given.set.of.functi
16ae0 6f 6e 61 6c 69 74 79 20 73 74 69 6c 6c 20 63 61 6e 20 62 65 20 6c 6f 61 64 65 64 20 77 69 74 68 onality.still.can.be.loaded.with
16b00 20 61 20 66 72 65 73 68 20 56 79 4f 53 20 49 53 4f 20 69 6d 61 67 65 2e 00 54 68 65 20 6f 75 74 .a.fresh.VyOS.ISO.image..The.out
16b20 70 75 74 20 79 6f 75 20 67 65 74 20 77 68 65 6e 20 79 6f 75 20 66 69 6e 64 20 61 20 62 75 67 20 put.you.get.when.you.find.a.bug.
16b40 63 61 6e 20 70 72 6f 76 69 64 65 20 6c 6f 74 73 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e can.provide.lots.of.information.
16b60 20 49 66 20 79 6f 75 20 67 65 74 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 .If.you.get.an.error.message.on.
16b80 74 68 65 20 73 63 72 65 65 6e 2c 20 63 6f 70 79 20 69 74 20 65 78 61 63 74 6c 79 2e 20 48 61 76 the.screen,.copy.it.exactly..Hav
16ba0 69 6e 67 20 74 68 65 20 65 78 61 63 74 20 6d 65 73 73 61 67 65 20 63 61 6e 20 70 72 6f 76 69 64 ing.the.exact.message.can.provid
16bc0 65 20 64 65 74 61 69 6c 20 74 68 61 74 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 20 63 61 6e e.detail.that.the.developers.can
16be0 20 75 73 65 2e 20 4c 69 6b 65 20 77 69 73 65 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 6e 79 20 .use..Like.wise.if.you.have.any.
16c00 6c 6f 67 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 61 6c 73 6f 20 61 72 65 20 66 72 6f 6d 20 log.messages.that.also.are.from.
16c20 74 68 65 20 74 69 6d 65 20 6f 66 20 74 68 65 20 69 73 73 75 65 2c 20 69 6e 63 6c 75 64 65 20 74 the.time.of.the.issue,.include.t
16c40 68 6f 73 65 2e 20 54 68 65 79 20 6d 61 79 20 61 6c 73 6f 20 63 6f 6e 74 61 69 6e 20 69 6e 66 6f hose..They.may.also.contain.info
16c60 72 6d 61 74 69 6f 6e 20 74 68 61 74 20 69 73 20 68 65 6c 70 66 75 6c 20 66 6f 72 20 74 68 65 20 rmation.that.is.helpful.for.the.
16c80 64 65 76 65 6c 6f 70 6d 65 6e 74 20 74 65 61 6d 2e 00 54 68 65 20 70 61 63 6b 61 67 65 20 65 6e development.team..The.package.en
16ca0 64 73 20 75 70 20 69 6e 20 64 65 62 5f 64 69 73 74 20 64 69 72 2e 00 54 68 65 20 72 65 61 73 6f ds.up.in.deb_dist.dir..The.reaso
16cc0 6e 20 69 73 20 74 68 61 74 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 69 67 72 n.is.that.the.configuration.migr
16ce0 61 74 69 6f 6e 20 62 61 63 6b 65 6e 64 20 69 73 20 72 65 77 72 69 74 74 65 6e 20 61 6e 64 20 75 ation.backend.is.rewritten.and.u
16d00 73 65 73 20 61 20 6e 65 77 20 66 6f 72 6d 20 6f 66 20 22 6d 61 67 69 63 20 73 74 72 69 6e 67 22 ses.a.new.form.of."magic.string"
16d20 20 77 68 69 63 68 20 69 73 20 61 70 70 6c 69 65 64 20 6f 6e 20 64 65 6d 61 6e 64 20 77 68 65 6e .which.is.applied.on.demand.when
16d40 20 72 65 61 6c 20 63 6f 6e 66 69 67 20 6d 69 67 72 61 74 69 6f 6e 20 69 73 20 72 75 6e 20 6f 6e .real.config.migration.is.run.on
16d60 20 62 6f 6f 74 2e 20 57 68 65 6e 20 72 75 6e 6e 69 6e 74 20 69 6e 64 69 76 69 64 75 61 6c 20 6d .boot..When.runnint.individual.m
16d80 69 67 72 61 74 6f 72 73 20 66 6f 72 20 74 65 73 74 69 6e 67 2c 20 79 6f 75 20 6e 65 65 64 20 74 igrators.for.testing,.you.need.t
16da0 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 22 6d 61 67 69 63 20 73 74 72 69 6e 67 22 20 6f 6e 20 o.convert.the."magic.string".on.
16dc0 79 6f 75 72 20 6f 77 6e 20 62 79 3a 00 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 61 74 your.own.by:.The.repository.that
16de0 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 74 68 65 20 49 53 4f 20 62 75 69 6c 64 20 73 63 72 69 .contains.all.the.ISO.build.scri
16e00 70 74 73 20 69 73 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f pts.is:.https://github.com/vyos/
16e20 76 79 6f 73 2d 62 75 69 6c 64 00 54 68 65 20 73 63 72 69 70 74 20 6f 6e 6c 79 20 73 65 61 72 63 vyos-build.The.script.only.searc
16e40 68 65 73 20 66 6f 72 20 65 78 65 63 75 74 61 62 6c 65 20 22 74 65 73 74 2d 63 61 73 65 73 22 20 hes.for.executable."test-cases".
16e60 75 6e 64 65 72 20 60 60 2f 75 73 72 2f 6c 69 62 65 78 65 63 2f 76 79 6f 73 2f 74 65 73 74 73 2f under.``/usr/libexec/vyos/tests/
16e80 73 6d 6f 6b 65 2f 63 6c 69 2f 60 60 20 61 6e 64 20 65 78 65 63 75 74 65 73 20 74 68 65 6d 20 6f smoke/cli/``.and.executes.them.o
16ea0 6e 65 20 62 79 20 6f 6e 65 2e 00 54 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 72 65 6d 61 69 ne.by.one..The.source.code.remai
16ec0 6e 73 20 70 75 62 6c 69 63 20 61 6e 64 20 61 6e 20 49 53 4f 20 63 61 6e 20 62 65 20 62 75 69 6c ns.public.and.an.ISO.can.be.buil
16ee0 74 20 75 73 69 6e 67 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 t.using.the.process.outlined.in.
16f00 74 68 69 73 20 63 68 61 70 74 65 72 2e 00 54 68 65 20 73 6f 75 72 63 65 20 69 73 20 61 74 20 68 this.chapter..The.source.is.at.h
16f20 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 6f 73 2d 73 74 72 6f ttps://github.com/vyos/vyos-stro
16f40 6e 67 73 77 61 6e 00 54 68 65 20 73 6f 75 72 63 65 20 69 73 20 6c 6f 63 61 74 65 64 20 61 74 20 ngswan.The.source.is.located.at.
16f60 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 6f 73 2d 6e 65 74 https://github.com/vyos/vyos-net
16f80 70 6c 75 67 00 54 68 65 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 50 79 74 68 6f 6e 20 70 72 plug.The.switch.to.the.Python.pr
16fa0 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 66 6f 72 20 6e 65 77 20 63 6f 64 65 20 ogramming.language.for.new.code.
16fc0 69 73 20 6e 6f 74 20 6d 65 72 65 6c 79 20 61 20 63 68 61 6e 67 65 20 6f 66 20 74 68 65 20 6c 61 is.not.merely.a.change.of.the.la
16fe0 6e 67 75 61 67 65 2c 20 62 75 74 20 61 20 63 68 61 6e 63 65 20 74 6f 20 72 65 74 68 69 6e 6b 20 nguage,.but.a.chance.to.rethink.
17000 61 6e 64 20 69 6d 70 72 6f 76 65 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 61 70 70 72 and.improve.the.programming.appr
17020 6f 61 63 68 2e 00 54 68 65 20 73 79 73 74 65 6d 20 73 74 61 72 74 75 70 20 63 61 6e 20 62 65 20 oach..The.system.startup.can.be.
17040 64 65 62 75 67 67 65 64 20 28 6c 69 6b 65 20 6c 6f 61 64 69 6e 67 20 69 6e 20 74 68 65 20 63 6f debugged.(like.loading.in.the.co
17060 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 60 60 2f 63 6f 6e 66 69 67 2f nfiguration.file.from.``/config/
17080 63 6f 6e 66 69 67 2e 62 6f 6f 74 60 60 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 61 63 68 69 65 config.boot``..This.can.be.achie
170a0 76 65 20 62 79 20 65 78 74 65 6e 64 69 6e 67 20 74 68 65 20 4b 65 72 6e 65 6c 20 63 6f 6d 6d 61 ve.by.extending.the.Kernel.comma
170c0 6e 64 2d 6c 69 6e 65 20 69 6e 20 74 68 65 20 62 6f 6f 74 6c 6f 61 64 65 72 2e 00 54 68 65 72 65 nd-line.in.the.bootloader..There
170e0 20 61 72 65 20 28 72 61 72 65 29 20 73 69 74 75 61 74 69 6f 6e 73 20 77 68 65 72 65 20 62 75 69 .are.(rare).situations.where.bui
17100 6c 64 69 6e 67 20 61 6e 20 49 53 4f 20 69 6d 61 67 65 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 lding.an.ISO.image.is.not.possib
17120 6c 65 20 61 74 20 61 6c 6c 20 64 75 65 20 74 6f 20 61 20 62 72 6f 6b 65 6e 20 70 61 63 6b 61 67 le.at.all.due.to.a.broken.packag
17140 65 20 66 65 65 64 20 69 6e 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 2e 20 41 50 54 20 69 73 e.feed.in.the.background..APT.is
17160 20 6e 6f 74 20 76 65 72 79 20 67 6f 6f 64 20 61 74 20 72 65 70 6f 72 74 69 6e 67 20 74 68 65 20 .not.very.good.at.reporting.the.
17180 72 6f 6f 74 20 63 61 75 73 65 20 6f 66 20 74 68 65 20 69 73 73 75 65 2e 20 59 6f 75 72 20 49 53 root.cause.of.the.issue..Your.IS
171a0 4f 20 62 75 69 6c 64 20 77 69 6c 6c 20 6c 69 6b 65 6c 79 20 66 61 69 6c 20 77 69 74 68 20 61 20 O.build.will.likely.fail.with.a.
171c0 6d 6f 72 65 20 6f 72 20 6c 65 73 73 20 73 69 6d 69 6c 61 72 20 6c 6f 6f 6b 69 6e 67 20 65 72 72 more.or.less.similar.looking.err
171e0 6f 72 20 6d 65 73 73 61 67 65 3a 00 54 68 65 72 65 20 61 72 65 20 64 69 66 66 65 72 65 6e 74 20 or.message:.There.are.different.
17200 77 61 79 73 20 79 6f 75 20 63 61 6e 20 62 75 69 6c 64 20 56 79 4f 53 2e 00 54 68 65 72 65 20 61 ways.you.can.build.VyOS..There.a
17220 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 65 2e 67 2e 20 56 49 4d 20 28 78 6d 6c 6c 69 re.extensions.to.e.g..VIM.(xmlli
17240 6e 74 29 20 77 68 69 63 68 20 77 69 6c 6c 20 68 65 6c 70 20 79 6f 75 20 74 6f 20 67 65 74 20 79 nt).which.will.help.you.to.get.y
17260 6f 75 72 20 69 6e 64 65 6e 74 69 6f 6e 20 6c 65 76 65 6c 73 20 63 6f 72 72 65 63 74 2e 20 41 64 our.indention.levels.correct..Ad
17280 64 20 74 6f 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 2e 76 69 6d 72 63 20 66 69 d.to.following.to.your..vimrc.fi
172a0 6c 65 3a 20 60 60 61 75 20 46 69 6c 65 54 79 70 65 20 78 6d 6c 20 73 65 74 6c 6f 63 61 6c 20 65 le:.``au.FileType.xml.setlocal.e
172c0 71 75 61 6c 70 72 67 3d 78 6d 6c 6c 69 6e 74 5c 20 2d 2d 66 6f 72 6d 61 74 5c 20 2d 2d 72 65 63 qualprg=xmllint\.--format\.--rec
172e0 6f 76 65 72 5c 20 2d 5c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 60 20 6e 6f 77 20 79 6f 75 20 63 over\.-\.2>/dev/null``.now.you.c
17300 61 6e 20 63 61 6c 6c 20 74 68 65 20 6c 69 6e 74 65 72 20 75 73 69 6e 67 20 60 60 67 67 3d 47 60 an.call.the.linter.using.``gg=G`
17320 60 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 6d 6f 64 65 2e 00 54 68 65 72 65 20 61 72 65 20 74 77 6f `.in.command.mode..There.are.two
17340 20 66 6c 61 67 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 61 69 64 20 69 6e 20 64 65 62 75 67 .flags.available.to.aid.in.debug
17360 67 69 6e 67 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 69 70 74 73 2e 20 53 69 6e 63 ging.configuration.scripts..Sinc
17380 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6c 6f 61 64 69 6e 67 20 69 73 73 75 65 73 20 77 e.configuration.loading.issues.w
173a0 69 6c 6c 20 6d 61 6e 69 66 65 73 74 20 64 75 72 69 6e 67 20 62 6f 6f 74 2c 20 74 68 65 20 66 6c ill.manifest.during.boot,.the.fl
173c0 61 67 73 20 61 72 65 20 70 61 73 73 65 64 20 61 73 20 6b 65 72 6e 65 6c 20 62 6f 6f 74 20 70 61 ags.are.passed.as.kernel.boot.pa
173e0 72 61 6d 65 74 65 72 73 2e 00 54 68 69 73 20 49 53 4f 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d rameters..This.ISO.can.be.custom
17400 69 7a 65 64 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 73 74 20 6f 66 20 ized.with.the.following.list.of.
17420 63 6f 6e 66 69 67 75 72 65 20 6f 70 74 69 6f 6e 73 2e 20 54 68 65 20 66 75 6c 6c 20 61 6e 64 20 configure.options..The.full.and.
17440 63 75 72 72 65 6e 74 20 6c 69 73 74 20 63 61 6e 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 77 69 current.list.can.be.generated.wi
17460 74 68 20 60 60 2e 2f 62 75 69 6c 64 2d 76 79 6f 73 2d 69 6d 61 67 65 20 2d 2d 68 65 6c 70 60 60 th.``./build-vyos-image.--help``
17480 3a 00 54 68 69 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 64 6f 6e 65 20 70 65 72 6d 61 6e 65 6e :.This.can.also.be.done.permanen
174a0 74 6c 79 20 62 79 20 63 68 61 6e 67 69 6e 67 20 60 60 2f 62 6f 6f 74 2f 67 72 75 62 2f 67 72 75 tly.by.changing.``/boot/grub/gru
174c0 62 2e 63 66 67 60 60 2e 00 54 68 69 73 20 63 68 61 70 74 65 72 20 6c 69 73 74 73 20 74 68 6f 73 b.cfg``..This.chapter.lists.thos
174e0 65 20 65 78 63 65 70 74 69 6f 6e 73 20 61 6e 64 20 67 69 76 65 73 20 79 6f 75 20 61 20 62 72 69 e.exceptions.and.gives.you.a.bri
17500 65 66 20 6f 76 65 72 76 69 65 77 20 77 68 61 74 20 77 65 20 68 61 76 65 20 64 6f 6e 65 20 6f 6e ef.overview.what.we.have.done.on
17520 20 74 68 6f 73 65 20 70 61 63 6b 61 67 65 73 2e 20 49 66 20 79 6f 75 20 6f 6e 6c 79 20 77 61 6e .those.packages..If.you.only.wan
17540 74 20 74 6f 20 62 75 69 6c 64 20 79 6f 75 72 73 65 6c 66 20 61 20 66 72 65 73 68 20 49 53 4f 20 t.to.build.yourself.a.fresh.ISO.
17560 79 6f 75 20 63 61 6e 20 63 6f 6d 70 6c 65 74 65 6c 79 20 73 6b 69 70 20 74 68 69 73 20 63 68 61 you.can.completely.skip.this.cha
17580 70 74 65 72 2e 20 49 74 20 6d 61 79 20 62 65 63 6f 6d 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 pter..It.may.become.interesting.
175a0 6f 6e 63 65 20 79 6f 75 20 68 61 76 65 20 61 20 56 79 4f 53 20 64 65 65 70 20 64 69 76 65 2e 00 once.you.have.a.VyOS.deep.dive..
175c0 54 68 69 73 20 69 73 20 64 6f 6e 65 20 62 79 20 75 74 69 6c 69 7a 69 6e 67 20 74 68 65 20 60 60 This.is.done.by.utilizing.the.``
175e0 73 79 73 74 65 6d 64 2d 62 6f 6f 74 63 68 61 72 74 60 60 20 70 61 63 6b 61 67 65 20 77 68 69 63 systemd-bootchart``.package.whic
17600 68 20 69 73 20 6e 6f 77 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 6f 6e h.is.now.installed.by.default.on
17620 20 74 68 65 20 56 79 4f 53 20 31 2e 33 20 28 65 71 75 75 6c 65 75 73 29 20 62 72 61 6e 63 68 2e .the.VyOS.1.3.(equuleus).branch.
17640 20 54 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 61 6c 73 6f 20 76 65 72 73 69 .The.configuration.is.also.versi
17660 6f 6e 65 64 20 73 6f 20 77 65 20 67 65 74 20 63 6f 6d 70 61 72 61 62 6c 65 20 72 65 73 75 6c 74 oned.so.we.get.comparable.result
17680 73 2e 20 60 60 73 79 73 74 65 6d 64 2d 62 6f 6f 74 63 68 61 72 74 60 60 20 69 73 20 63 6f 6e 66 s..``systemd-bootchart``.is.conf
176a0 69 67 75 72 65 64 20 75 73 69 6e 67 20 74 68 69 73 20 66 69 6c 65 3a 20 62 6f 6f 74 63 68 61 72 igured.using.this.file:.bootchar
176c0 74 2e 63 6f 6e 66 5f 00 54 68 69 73 20 6d 65 61 6e 73 20 74 68 65 20 66 69 6c 65 20 69 6e 20 71 t.conf_.This.means.the.file.in.q
176e0 75 65 73 74 69 6f 6e 20 28 60 60 2f 6f 70 74 2f 76 79 61 74 74 61 2f 73 62 69 6e 2f 76 79 61 74 uestion.(``/opt/vyatta/sbin/vyat
17700 74 61 2d 75 70 64 61 74 65 2d 77 65 62 70 72 6f 78 79 2e 70 6c 60 60 29 20 69 73 20 6c 6f 63 61 ta-update-webproxy.pl``).is.loca
17720 74 65 64 20 69 6e 20 74 68 65 20 60 60 76 79 61 74 74 61 2d 77 65 62 70 72 6f 78 79 60 60 20 70 ted.in.the.``vyatta-webproxy``.p
17740 61 63 6b 61 67 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 68 65 72 65 3a 20 ackage.which.can.be.found.here:.
17760 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2d 77 https://github.com/vyos/vyatta-w
17780 65 62 70 72 6f 78 79 00 54 68 69 73 20 70 61 63 6b 61 67 65 20 64 6f 65 73 6e 27 74 20 65 78 69 ebproxy.This.package.doesn't.exi
177a0 73 74 20 69 6e 20 44 65 62 69 61 6e 2e 20 41 20 64 65 62 69 61 6e 69 7a 65 64 20 66 6f 72 6b 20 st.in.Debian..A.debianized.fork.
177c0 69 73 20 6b 65 70 74 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 is.kept.at.https://github.com/vy
177e0 6f 73 2f 6d 64 6e 73 2d 72 65 70 65 61 74 65 72 00 54 68 69 73 20 70 61 63 6b 61 67 65 20 64 6f os/mdns-repeater.This.package.do
17800 65 73 6e 27 74 20 65 78 69 73 74 20 69 6e 20 44 65 62 69 61 6e 2e 20 41 20 64 65 62 69 61 6e 69 esn't.exist.in.Debian..A.debiani
17820 7a 65 64 20 66 6f 72 6b 20 69 73 20 6b 65 70 74 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 zed.fork.is.kept.at.https://gith
17840 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 75 64 70 2d 62 72 6f 61 64 63 61 73 74 2d 72 65 6c 61 79 00 ub.com/vyos/udp-broadcast-relay.
17860 54 68 69 73 20 74 72 69 65 73 20 74 6f 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 74 65 This.tries.to.automatically.dete
17880 63 74 20 77 68 69 63 68 20 62 6c 6f 62 73 20 61 72 65 20 6e 65 65 64 65 64 20 62 61 73 65 64 20 ct.which.blobs.are.needed.based.
178a0 6f 6e 20 77 68 69 63 68 20 64 72 69 76 65 72 73 20 77 65 72 65 20 62 75 69 6c 74 2e 20 49 66 20 on.which.drivers.were.built..If.
178c0 69 74 20 66 61 69 6c 73 20 74 6f 20 66 69 6e 64 20 74 68 65 20 63 6f 72 72 65 63 74 20 66 69 6c it.fails.to.find.the.correct.fil
178e0 65 73 20 79 6f 75 20 63 61 6e 20 61 64 64 20 74 68 65 6d 20 6d 61 6e 75 61 6c 6c 79 20 74 6f 20 es.you.can.add.them.manually.to.
17900 60 60 76 79 6f 73 2d 62 75 69 6c 64 2f 70 61 63 6b 61 67 65 73 2f 6c 69 6e 75 78 2d 6b 65 72 6e ``vyos-build/packages/linux-kern
17920 65 6c 2f 62 75 69 6c 64 2d 6c 69 6e 75 78 2d 66 69 72 6d 77 61 72 65 2e 73 68 60 60 3a 00 54 68 el/build-linux-firmware.sh``:.Th
17940 69 73 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 74 68 65 20 70 72 is.will.guide.you.through.the.pr
17960 6f 63 65 73 73 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 61 20 56 79 4f 53 20 49 53 4f 20 75 73 69 ocess.of.building.a.VyOS.ISO.usi
17980 6e 67 20 44 6f 63 6b 65 72 2e 20 54 68 69 73 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e ng.Docker..This.process.has.been
179a0 20 74 65 73 74 65 64 20 6f 6e 20 63 6c 65 61 6e 20 69 6e 73 74 61 6c 6c 73 20 6f 66 20 44 65 62 .tested.on.clean.installs.of.Deb
179c0 69 61 6e 20 42 75 6c 6c 73 65 79 65 20 28 31 31 29 20 61 6e 64 20 42 6f 6f 6b 77 6f 72 6d 20 28 ian.Bullseye.(11).and.Bookworm.(
179e0 31 32 29 2e 00 54 68 69 73 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 12)..This.will.guide.you.through
17a00 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 61 20 56 79 4f 53 20 .the.process.of.building.a.VyOS.
17a20 49 53 4f 20 75 73 69 6e 67 20 44 6f 63 6b 65 72 5f 2e 20 54 68 69 73 20 70 72 6f 63 65 73 73 20 ISO.using.Docker_..This.process.
17a40 68 61 73 20 62 65 65 6e 20 74 65 73 74 65 64 20 6f 6e 20 63 6c 65 61 6e 20 69 6e 73 74 61 6c 6c has.been.tested.on.clean.install
17a60 73 20 6f 66 20 44 65 62 69 61 6e 20 4a 65 73 73 69 65 2c 20 53 74 72 65 74 63 68 2c 20 61 6e 64 s.of.Debian.Jessie,.Stretch,.and
17a80 20 42 75 73 74 65 72 2e 00 54 68 69 73 20 77 69 6c 6c 20 6c 69 6d 69 74 20 74 68 65 20 60 62 6f .Buster..This.will.limit.the.`bo
17aa0 6e 64 60 20 69 6e 74 65 72 66 61 63 65 20 74 65 73 74 20 74 6f 20 6f 6e 6c 79 20 6d 61 6b 65 20 nd`.interface.test.to.only.make.
17ac0 75 73 65 20 6f 66 20 60 65 74 68 31 60 20 61 6e 64 20 60 65 74 68 32 60 20 61 73 20 6d 65 6d 62 use.of.`eth1`.and.`eth2`.as.memb
17ae0 65 72 20 70 6f 72 74 73 2e 00 54 68 6f 73 65 20 63 6f 6d 6d 6f 6e 20 74 65 73 74 73 20 63 6f 6e er.ports..Those.common.tests.con
17b00 73 69 73 74 73 20 6f 75 74 20 6f 66 3a 00 54 69 70 73 20 61 6e 64 20 54 72 69 63 6b 73 00 54 6f sists.out.of:.Tips.and.Tricks.To
17b20 20 62 65 20 61 62 6c 65 20 74 6f 20 75 73 65 20 44 6f 63 6b 65 72 5f 20 77 69 74 68 6f 75 74 20 .be.able.to.use.Docker_.without.
17b40 60 60 73 75 64 6f 60 60 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 6e 2d 72 6f 6f 74 20 75 ``sudo``,.the.current.non-root.u
17b60 73 65 72 20 6d 75 73 74 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 60 60 64 6f 63 6b 65 ser.must.be.added.to.the.``docke
17b80 72 60 60 20 67 72 6f 75 70 20 62 79 20 63 61 6c 6c 69 6e 67 3a 20 60 60 73 75 64 6f 20 75 73 65 r``.group.by.calling:.``sudo.use
17ba0 72 6d 6f 64 20 2d 61 47 20 64 6f 63 6b 65 72 20 79 6f 75 72 75 73 65 72 6e 61 6d 65 60 60 2e 00 rmod.-aG.docker.yourusername``..
17bc0 54 6f 20 62 75 69 6c 64 20 56 79 4f 53 20 6e 61 74 69 76 65 6c 79 20 79 6f 75 20 72 65 71 75 69 To.build.VyOS.natively.you.requi
17be0 72 65 20 61 20 70 72 6f 70 65 72 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 20 62 75 69 6c 64 20 68 re.a.properly.configured.build.h
17c00 6f 73 74 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 44 65 62 69 61 6e 20 76 65 ost.with.the.following.Debian.ve
17c20 72 73 69 6f 6e 73 20 69 6e 73 74 61 6c 6c 65 64 3a 00 54 6f 20 62 75 69 6c 64 20 6f 75 72 20 6d rsions.installed:.To.build.our.m
17c40 6f 64 75 6c 65 73 20 77 65 20 75 74 69 6c 69 7a 65 20 61 20 43 49 2f 43 44 20 50 69 70 65 6c 69 odules.we.utilize.a.CI/CD.Pipeli
17c60 6e 65 20 73 63 72 69 70 74 2e 20 45 61 63 68 20 61 6e 64 20 65 76 65 72 79 20 56 79 4f 53 20 63 ne.script..Each.and.every.VyOS.c
17c80 6f 6d 70 6f 6e 65 6e 74 20 63 6f 6d 65 73 20 77 69 74 68 20 69 74 27 73 20 6f 77 6e 20 60 60 4a omponent.comes.with.it's.own.``J
17ca0 65 6e 6b 69 6e 73 66 69 6c 65 60 60 20 77 68 69 63 68 20 69 73 20 28 6d 6f 72 65 20 6f 72 20 6c enkinsfile``.which.is.(more.or.l
17cc0 65 73 73 29 20 61 20 63 6f 70 79 2e 20 54 68 65 20 50 69 70 65 6c 69 6e 65 20 75 74 69 6c 69 7a ess).a.copy..The.Pipeline.utiliz
17ce0 65 73 20 74 68 65 20 44 6f 63 6b 65 72 20 63 6f 6e 74 61 69 6e 65 72 20 66 72 6f 6d 20 74 68 65 es.the.Docker.container.from.the
17d00 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f 69 73 6f 60 20 73 65 63 74 69 6f 6e 20 2d 20 62 75 74 20 .:ref:`build_iso`.section.-.but.
17d20 69 6e 73 74 65 61 64 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 69 74 20 66 72 6f 6d 20 73 6f 75 72 instead.of.building.it.from.sour
17d40 63 65 20 6f 6e 20 65 76 65 72 79 20 72 75 6e 2c 20 77 65 20 72 61 74 68 65 72 20 61 6c 77 61 79 ce.on.every.run,.we.rather.alway
17d60 73 20 66 65 74 63 68 20 61 20 66 72 65 73 68 20 63 6f 70 79 20 28 69 66 20 6e 65 65 64 65 64 29 s.fetch.a.fresh.copy.(if.needed)
17d80 20 66 72 6f 6d 20 44 6f 63 6b 65 72 68 75 62 5f 2e 00 54 6f 20 64 65 62 75 67 20 69 73 73 75 65 .from.Dockerhub_..To.debug.issue
17da0 73 20 69 6e 20 70 72 69 6f 72 69 74 69 65 73 20 6f 72 20 74 6f 20 73 65 65 20 77 68 61 74 27 73 s.in.priorities.or.to.see.what's
17dc0 20 67 6f 69 6e 67 20 6f 6e 20 69 6e 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 79 6f 75 20 .going.on.in.the.background.you.
17de0 63 61 6e 20 75 73 65 20 74 68 65 20 60 60 2f 6f 70 74 2f 76 79 61 74 74 61 2f 73 62 69 6e 2f 70 can.use.the.``/opt/vyatta/sbin/p
17e00 72 69 6f 72 69 74 79 2e 70 6c 60 60 20 73 63 72 69 70 74 20 77 68 69 63 68 20 6c 69 73 74 73 20 riority.pl``.script.which.lists.
17e20 74 6f 20 79 6f 75 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 72 64 65 72 20 6f 66 20 74 68 to.you.the.execution.order.of.th
17e40 65 20 73 63 72 69 70 74 73 2e 00 54 6f 20 64 65 62 75 67 20 74 68 65 20 62 75 69 6c 64 20 70 72 e.scripts..To.debug.the.build.pr
17e60 6f 63 65 73 73 20 61 6e 64 20 67 61 69 6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d ocess.and.gain.additional.inform
17e80 61 74 69 6f 6e 20 6f 66 20 77 68 61 74 20 63 6f 75 6c 64 20 62 65 20 74 68 65 20 72 6f 6f 74 20 ation.of.what.could.be.the.root.
17ea0 63 61 75 73 65 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 75 73 65 20 60 63 68 72 6f 6f 74 60 20 cause,.you.need.to.use.`chroot`.
17ec0 74 6f 20 63 68 61 6e 67 65 20 69 6e 74 6f 20 74 68 65 20 62 75 69 6c 64 20 64 69 72 65 63 74 72 to.change.into.the.build.directr
17ee0 79 2e 20 54 68 69 73 20 69 73 20 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 74 68 65 20 66 6f 6c 6c y..This.is.explained.in.the.foll
17f00 6f 77 69 6e 67 20 73 74 65 70 20 62 79 20 73 74 65 70 20 70 72 6f 63 65 64 75 72 65 3a 00 54 6f owing.step.by.step.procedure:.To
17f20 20 65 6e 61 62 6c 65 20 62 6f 6f 74 20 74 69 6d 65 20 67 72 61 70 68 69 6e 67 20 63 68 61 6e 67 .enable.boot.time.graphing.chang
17f40 65 20 74 68 65 20 4b 65 72 6e 65 6c 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 61 6e 64 20 61 64 64 e.the.Kernel.commandline.and.add
17f60 20 74 68 65 20 66 6f 6c 6f 77 69 6e 67 20 73 74 72 69 6e 67 3a 20 60 60 69 6e 69 74 3d 2f 75 73 .the.folowing.string:.``init=/us
17f80 72 2f 6c 69 62 2f 73 79 73 74 65 6d 64 2f 73 79 73 74 65 6d 64 2d 62 6f 6f 74 63 68 61 72 74 60 r/lib/systemd/systemd-bootchart`
17fa0 60 00 54 6f 20 65 6e 61 62 6c 65 20 64 65 62 75 67 67 69 6e 67 20 6a 75 73 74 20 72 75 6e 3a 20 `.To.enable.debugging.just.run:.
17fc0 60 60 24 20 74 6f 75 63 68 20 2f 74 6d 70 2f 76 79 6f 73 2e 66 72 72 2e 64 65 62 75 67 60 60 00 ``$.touch./tmp/vyos.frr.debug``.
17fe0 54 6f 20 65 6e 73 75 72 65 20 75 6e 69 66 6f 72 6d 20 6c 6f 6f 6b 20 61 6e 64 20 66 65 65 6c 2c To.ensure.uniform.look.and.feel,
18000 20 61 6e 64 20 69 6d 70 72 6f 76 65 20 72 65 61 64 61 62 69 6c 69 74 79 2c 20 77 65 20 73 68 6f .and.improve.readability,.we.sho
18020 75 6c 64 20 66 6f 6c 6c 6f 77 20 61 20 73 65 74 20 6f 66 20 67 75 69 64 65 6c 69 6e 65 73 20 63 uld.follow.a.set.of.guidelines.c
18040 6f 6e 73 69 73 74 65 6e 74 6c 79 2e 00 54 6f 20 6d 61 6b 65 20 74 68 69 73 20 61 70 70 72 6f 61 onsistently..To.make.this.approa
18060 63 68 20 77 6f 72 6b 2c 20 65 76 65 72 79 20 63 68 61 6e 67 65 20 6d 75 73 74 20 62 65 20 61 73 ch.work,.every.change.must.be.as
18080 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 74 61 73 6b 20 6e 75 6d 62 65 72 20 28 70 72 65 sociated.with.a.task.number.(pre
180a0 66 69 78 65 64 20 77 69 74 68 20 2a 2a 54 2a 2a 29 20 61 6e 64 20 61 20 63 6f 6d 70 6f 6e 65 6e fixed.with.**T**).and.a.componen
180c0 74 2e 20 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 62 75 67 20 72 65 70 6f 72 74 2f 66 65 61 t..If.there.is.no.bug.report/fea
180e0 74 75 72 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 74 68 65 20 63 68 61 6e 67 65 73 20 79 6f 75 ture.request.for.the.changes.you
18100 20 61 72 65 20 67 6f 69 6e 67 20 74 6f 20 6d 61 6b 65 2c 20 79 6f 75 20 68 61 76 65 20 74 6f 20 .are.going.to.make,.you.have.to.
18120 63 72 65 61 74 65 20 61 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 74 61 73 6b 20 66 69 72 73 74 create.a.Phabricator_.task.first
18140 2e 20 4f 6e 63 65 20 74 68 65 72 65 20 69 73 20 61 6e 20 65 6e 74 72 79 20 69 6e 20 50 68 61 62 ..Once.there.is.an.entry.in.Phab
18160 72 69 63 61 74 6f 72 5f 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 72 65 66 65 72 65 6e 63 65 20 69 ricator_,.you.should.reference.i
18180 74 73 20 69 64 20 69 6e 20 79 6f 75 72 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 2c 20 61 73 ts.id.in.your.commit.message,.as
181a0 20 73 68 6f 77 6e 20 62 65 6c 6f 77 3a 00 54 6f 20 6d 61 6e 75 61 6c 6c 79 20 64 6f 77 6e 6c 6f .shown.below:.To.manually.downlo
181c0 61 64 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 72 20 66 72 6f 6d 20 44 6f 63 6b 65 72 48 75 62 2c ad.the.container.from.DockerHub,
181e0 20 72 75 6e 3a 00 54 6f 20 73 74 61 72 74 2c 20 63 6c 6f 6e 65 20 74 68 65 20 72 65 70 6f 73 69 .run:.To.start,.clone.the.reposi
18200 74 6f 72 79 20 74 6f 20 79 6f 75 72 20 6c 6f 63 61 6c 20 6d 61 63 68 69 6e 65 3a 00 54 6f 20 74 tory.to.your.local.machine:.To.t
18220 61 6b 65 20 79 6f 75 72 20 6e 65 77 6c 79 20 63 72 65 61 74 65 64 20 70 61 63 6b 61 67 65 20 6f ake.your.newly.created.package.o
18240 6e 20 61 20 74 65 73 74 20 64 72 69 76 65 20 79 6f 75 20 63 61 6e 20 73 69 6d 70 6c 79 20 53 43 n.a.test.drive.you.can.simply.SC
18260 50 20 69 74 20 74 6f 20 61 20 72 75 6e 6e 69 6e 67 20 56 79 4f 53 20 69 6e 73 74 61 6e 63 65 20 P.it.to.a.running.VyOS.instance.
18280 61 6e 64 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 60 2a 2e 64 65 62 60 20 70 61 63 6b and.install.the.new.`*.deb`.pack
182a0 61 67 65 20 6f 76 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 75 6e 6e 69 6e 67 20 6f 6e 65 age.over.the.current.running.one
182c0 2e 00 54 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 00 55 6e 6c 65 73 73 20 61 62 73 6f 6c 75 74 ..Troubleshooting.Unless.absolut
182e0 65 6c 79 20 6e 65 63 65 73 73 61 72 79 2c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 ely.necessary,.configuration.scr
18300 69 70 74 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 65 20 61 63 74 69 76 ipts.should.not.modify.the.activ
18320 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f 66 20 73 79 73 74 65 6d 20 63 6f 6d 70 6f 6e e.configuration.of.system.compon
18340 65 6e 74 73 20 64 69 72 65 63 74 6c 79 2e 20 57 68 65 6e 65 76 65 72 20 61 74 20 61 6c 6c 20 70 ents.directly..Whenever.at.all.p
18360 6f 73 73 69 62 6c 65 2c 20 73 63 72 69 70 74 73 20 73 68 6f 75 6c 64 20 67 65 6e 65 72 61 74 65 ossible,.scripts.should.generate
18380 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 20 6f 72 20 66 69 6c 65 73 20 74 .a.configuration.file.or.files.t
183a0 68 61 74 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 hat.can.be.applied.with.a.single
183c0 20 63 6f 6d 6d 61 6e 64 20 73 75 63 68 20 61 73 20 72 65 6c 6f 61 64 69 6e 67 20 61 20 73 65 72 .command.such.as.reloading.a.ser
183e0 76 69 63 65 20 74 68 72 6f 75 67 68 20 73 79 73 74 65 6d 64 20 69 6e 69 74 2e 20 49 6e 73 65 72 vice.through.systemd.init..Inser
18400 74 69 6e 67 20 73 74 61 74 65 6d 65 6e 74 73 20 6f 6e 65 20 62 79 20 6f 6e 65 20 69 73 20 70 61 ting.statements.one.by.one.is.pa
18420 72 74 69 63 75 6c 61 72 6c 79 20 64 69 73 63 6f 75 72 61 67 65 64 2c 20 66 6f 72 20 65 78 61 6d rticularly.discouraged,.for.exam
18440 70 6c 65 2c 20 77 68 65 6e 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 6e 65 74 66 69 6c 74 65 72 20 ple,.when.configuring.netfilter.
18460 72 75 6c 65 73 2c 20 73 61 76 69 6e 67 20 74 68 65 6d 20 74 6f 20 61 20 66 69 6c 65 20 61 6e 64 rules,.saving.them.to.a.file.and
18480 20 6c 6f 61 64 69 6e 67 20 69 74 20 77 69 74 68 20 69 70 74 61 62 6c 65 73 2d 72 65 73 74 6f 72 .loading.it.with.iptables-restor
184a0 65 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 65 20 70 72 65 66 65 72 72 65 64 20 74 6f 20 e.should.always.be.preferred.to.
184c0 65 78 65 63 75 74 69 6e 67 20 69 70 74 61 62 6c 65 73 20 64 69 72 65 63 74 6c 79 2e 00 55 70 73 executing.iptables.directly..Ups
184e0 74 72 65 61 6d 20 70 61 63 6b 61 67 65 73 00 55 73 65 20 6f 66 20 61 62 62 72 65 76 69 61 74 69 tream.packages.Use.of.abbreviati
18500 6f 6e 73 20 61 6e 64 20 61 63 72 6f 6e 79 6d 73 00 55 73 65 20 6f 66 20 6e 75 6d 62 65 72 73 00 ons.and.acronyms.Use.of.numbers.
18520 55 73 65 20 6f 66 20 6e 75 6d 62 65 72 73 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 73 20 Use.of.numbers.in.command.names.
18540 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 61 76 6f 69 64 65 64 20 75 6e 6c 65 73 73 20 61 20 6e **should**.be.avoided.unless.a.n
18560 75 6d 62 65 72 20 69 73 20 61 20 70 61 72 74 20 6f 66 20 61 20 70 72 6f 74 6f 63 6f 6c 20 6e 61 umber.is.a.part.of.a.protocol.na
18580 6d 65 20 6f 72 20 73 69 6d 69 6c 61 72 2e 20 54 68 75 73 2c 20 60 60 70 72 6f 74 6f 63 6f 6c 73 me.or.similar..Thus,.``protocols
185a0 20 6f 73 70 66 76 33 60 60 20 69 73 20 70 65 72 66 65 63 74 6c 79 20 66 69 6e 65 2c 20 62 75 74 .ospfv3``.is.perfectly.fine,.but
185c0 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 60 60 73 65 72 76 65 72 2d 31 60 60 20 69 73 20 .something.like.``server-1``.is.
185e0 71 75 65 73 74 69 6f 6e 61 62 6c 65 20 61 74 20 62 65 73 74 2e 00 55 73 65 20 6f 66 20 76 65 72 questionable.at.best..Use.of.ver
18600 62 73 00 55 73 65 20 72 65 67 65 78 00 55 73 65 66 75 6c 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 bs.Use.regex.Useful.commands.are
18620 3a 00 56 49 46 20 28 69 6e 63 6c 2e 20 56 49 46 2d 53 2f 56 49 46 2d 43 29 00 56 4c 41 4e 73 20 :.VIF.(incl..VIF-S/VIF-C).VLANs.
18640 28 51 69 6e 51 20 61 6e 64 20 72 65 67 75 6c 61 72 20 38 30 32 2e 31 71 29 00 56 4d 77 61 72 65 (QinQ.and.regular.802.1q).VMware
18660 00 56 65 72 62 73 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 61 76 6f 69 64 65 64 2e 20 49 66 .Verbs.**should**.be.avoided..If
18680 20 61 20 76 65 72 62 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 2c 20 6f 6d 69 74 20 69 74 2e .a.verb.can.be.omitted,.omit.it.
186a0 00 56 65 72 62 73 2c 20 77 68 65 6e 20 74 68 65 79 20 61 72 65 20 6e 65 63 65 73 73 61 72 79 2c .Verbs,.when.they.are.necessary,
186c0 20 2a 2a 73 68 6f 75 6c 64 2a 2a 20 62 65 20 69 6e 20 74 68 65 69 72 20 69 6e 66 69 6e 69 74 69 .**should**.be.in.their.infiniti
186e0 76 65 20 66 6f 72 6d 2e 00 56 69 72 74 75 61 6c 69 7a 61 74 69 6f 6e 20 50 6c 61 74 66 6f 72 6d ve.form..Virtualization.Platform
18700 73 00 56 79 4f 53 20 43 4c 49 20 69 73 20 61 6c 6c 20 61 62 6f 75 74 20 70 72 69 6f 72 69 74 69 s.VyOS.CLI.is.all.about.prioriti
18720 65 73 2e 20 45 76 65 72 79 20 43 4c 49 20 6e 6f 64 65 20 68 61 73 20 61 20 63 6f 72 72 65 73 70 es..Every.CLI.node.has.a.corresp
18740 6f 6e 64 69 6e 67 20 60 60 6e 6f 64 65 2e 64 65 66 60 60 20 66 69 6c 65 20 61 6e 64 20 70 6f 73 onding.``node.def``.file.and.pos
18760 73 69 62 6c 79 20 61 6e 20 61 74 74 61 63 68 65 64 20 73 63 72 69 70 74 20 74 68 61 74 20 69 73 sibly.an.attached.script.that.is
18780 20 65 78 65 63 75 74 65 64 20 77 68 65 6e 20 74 68 65 20 6e 6f 64 65 20 69 73 20 70 72 65 73 65 .executed.when.the.node.is.prese
187a0 6e 74 2e 20 4e 6f 64 65 73 20 63 61 6e 20 68 61 76 65 20 61 20 70 72 69 6f 72 69 74 79 2c 20 61 nt..Nodes.can.have.a.priority,.a
187c0 6e 64 20 6f 6e 20 73 79 73 74 65 6d 20 62 6f 6f 74 75 70 20 2d 20 6f 72 20 61 6e 79 20 6f 74 68 nd.on.system.bootup.-.or.any.oth
187e0 65 72 20 60 60 63 6f 6d 6d 69 74 60 60 20 74 6f 20 74 68 65 20 63 6f 6e 66 69 67 20 61 6c 6c 20 er.``commit``.to.the.config.all.
18800 73 63 72 69 70 74 73 20 61 72 65 20 65 78 65 63 75 74 65 64 20 66 72 6f 6d 20 6c 6f 77 65 73 74 scripts.are.executed.from.lowest
18820 20 74 6f 20 68 69 67 65 73 74 20 70 72 69 6f 72 69 74 79 2e 20 54 68 69 73 20 69 73 20 67 6f 6f .to.higest.priority..This.is.goo
18840 64 20 61 73 20 74 68 69 73 20 67 69 76 65 73 20 61 20 64 65 74 65 72 6d 69 6e 69 73 74 69 63 20 d.as.this.gives.a.deterministic.
18860 62 65 68 61 76 69 6f 72 2e 00 56 79 4f 53 20 68 61 73 20 73 77 69 74 63 68 65 64 20 74 6f 20 44 behavior..VyOS.has.switched.to.D
18880 65 62 69 61 6e 20 28 31 32 29 20 42 6f 6f 6b 77 6f 72 6d 20 69 6e 20 69 74 73 20 60 60 63 75 72 ebian.(12).Bookworm.in.its.``cur
188a0 72 65 6e 74 60 60 20 62 72 61 6e 63 68 2c 20 44 75 65 20 74 6f 20 73 6f 66 74 77 61 72 65 20 76 rent``.branch,.Due.to.software.v
188c0 65 72 73 69 6f 6e 20 75 70 64 61 74 65 73 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 ersion.updates,.it.is.recommende
188e0 64 20 74 6f 20 75 73 65 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20 44 6f 63 6b 65 72 20 48 75 62 d.to.use.the.official.Docker.Hub
18900 20 69 6d 61 67 65 20 74 6f 20 62 75 69 6c 64 20 56 79 4f 53 20 49 53 4f 2e 00 56 79 4f 53 20 69 .image.to.build.VyOS.ISO..VyOS.i
18920 74 73 65 6c 66 20 63 6f 6d 65 73 20 77 69 74 68 20 61 20 62 75 6e 63 68 20 6f 66 20 70 61 63 6b tself.comes.with.a.bunch.of.pack
18940 61 67 65 73 20 74 68 61 74 20 61 72 65 20 73 70 65 63 69 66 69 63 20 74 6f 20 6f 75 72 20 73 79 ages.that.are.specific.to.our.sy
18960 73 74 65 6d 20 61 6e 64 20 74 68 75 73 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e stem.and.thus.cannot.be.found.in
18980 20 61 6e 79 20 44 65 62 69 61 6e 20 6d 69 72 72 6f 72 2e 20 54 68 6f 73 65 20 70 61 63 6b 61 67 .any.Debian.mirror..Those.packag
189a0 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 20 74 68 65 20 60 56 79 4f 53 20 47 69 74 es.can.be.found.at.the.`VyOS.Git
189c0 48 75 62 20 70 72 6f 6a 65 63 74 60 5f 20 69 6e 20 74 68 65 69 72 20 73 6f 75 72 63 65 20 66 6f Hub.project`_.in.their.source.fo
189e0 72 6d 61 74 20 63 61 6e 20 65 61 73 69 6c 79 20 62 65 20 63 6f 6d 70 69 6c 65 64 20 69 6e 74 6f rmat.can.easily.be.compiled.into
18a00 20 61 20 63 75 73 74 6f 6d 20 44 65 62 69 61 6e 20 28 60 2a 2e 64 65 62 60 29 20 70 61 63 6b 61 .a.custom.Debian.(`*.deb`).packa
18a20 67 65 2e 00 56 79 4f 53 20 6d 61 6b 65 73 20 75 73 65 20 6f 66 20 4a 65 6e 6b 69 6e 73 5f 20 61 ge..VyOS.makes.use.of.Jenkins_.a
18a40 73 20 6f 75 72 20 43 6f 6e 74 69 6e 75 6f 75 73 20 49 6e 74 65 67 72 61 74 69 6f 6e 20 28 43 49 s.our.Continuous.Integration.(CI
18a60 29 20 73 65 72 76 69 63 65 2e 20 4f 75 72 20 60 56 79 4f 53 20 43 49 60 5f 20 73 65 72 76 65 72 ).service..Our.`VyOS.CI`_.server
18a80 20 69 73 20 70 75 62 6c 69 63 6c 79 20 61 63 63 65 73 73 69 62 6c 65 20 68 65 72 65 3a 20 68 74 .is.publicly.accessible.here:.ht
18aa0 74 70 73 3a 2f 2f 63 69 2e 76 79 6f 73 2e 6e 65 74 2e 20 59 6f 75 20 63 61 6e 20 67 65 74 20 61 tps://ci.vyos.net..You.can.get.a
18ac0 20 62 72 69 65 66 20 6f 76 65 72 76 69 65 77 20 6f 66 20 61 6c 6c 20 72 65 71 75 69 72 65 64 20 .brief.overview.of.all.required.
18ae0 63 6f 6d 70 6f 6e 65 6e 74 73 20 73 68 69 70 70 65 64 20 69 6e 20 61 20 56 79 4f 53 20 49 53 4f components.shipped.in.a.VyOS.ISO
18b00 2e 00 57 65 20 61 67 61 69 6e 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 61 20 68 65 6c 70 65 72 20 ..We.again.make.use.of.a.helper.
18b20 73 63 72 69 70 74 20 61 6e 64 20 73 6f 6d 65 20 70 61 74 63 68 65 73 20 74 6f 20 6d 61 6b 65 20 script.and.some.patches.to.make.
18b40 74 68 65 20 62 75 69 6c 64 20 77 6f 72 6b 2e 20 4a 75 73 74 20 72 75 6e 20 74 68 65 20 66 6f 6c the.build.work..Just.run.the.fol
18b60 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 3a 00 57 65 20 64 69 66 66 65 72 65 6e 74 69 61 74 65 lowing.command:.We.differentiate
18b80 20 69 6e 20 74 77 6f 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 74 65 73 74 73 2c 20 77 68 69 63 68 .in.two.independent.tests,.which
18ba0 20 61 72 65 20 62 6f 74 68 20 72 75 6e 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 62 79 20 74 77 6f .are.both.run.in.parallel.by.two
18bc0 20 73 65 70 61 72 61 74 65 20 51 45 6d 75 20 69 6e 73 74 61 6e 63 65 73 20 77 68 69 63 68 20 61 .separate.QEmu.instances.which.a
18be0 72 65 20 6c 61 75 6e 63 68 65 64 20 76 69 61 20 60 60 6d 61 6b 65 20 74 65 73 74 60 60 20 61 6e re.launched.via.``make.test``.an
18c00 64 20 60 60 6d 61 6b 65 20 74 65 73 74 63 60 60 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 74 68 65 d.``make.testc``.from.within.the
18c20 20 76 79 6f 73 2d 62 75 69 6c 64 5f 20 72 65 70 6f 73 69 74 6f 72 79 2e 00 57 65 20 6e 6f 77 20 .vyos-build_.repository..We.now.
18c40 61 72 65 20 66 72 65 65 20 74 6f 20 72 75 6e 20 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 77 65 20 77 are.free.to.run.any.command.we.w
18c60 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 75 73 65 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 2c 20 ould.like.to.use.for.debugging,.
18c80 65 2e 67 2e 20 72 65 2d 69 6e 73 74 61 6c 6c 69 6e 67 20 74 68 65 20 66 61 69 6c 65 64 20 70 61 e.g..re-installing.the.failed.pa
18ca0 63 6b 61 67 65 20 61 66 74 65 72 20 75 70 64 61 74 69 6e 67 20 74 68 65 20 72 65 70 6f 73 69 74 ckage.after.updating.the.reposit
18cc0 6f 72 79 2e 00 57 65 20 6e 6f 77 20 6e 65 65 64 20 74 6f 20 6d 6f 75 6e 74 20 73 6f 6d 65 20 72 ory..We.now.need.to.mount.some.r
18ce0 65 71 75 69 72 65 64 2c 20 76 6f 6c 61 74 69 6c 65 20 66 69 6c 65 73 79 73 74 65 6d 73 00 57 65 equired,.volatile.filesystems.We
18d00 20 6f 6e 6c 79 20 61 63 63 65 70 74 20 62 75 67 66 69 78 65 73 20 69 6e 20 70 61 63 6b 61 67 65 .only.accept.bugfixes.in.package
18d20 73 20 6f 74 68 65 72 20 74 68 61 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f s.other.than.https://github.com/
18d40 76 79 6f 73 2f 76 79 6f 73 2d 31 78 20 61 73 20 6e 6f 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 61 vyos/vyos-1x.as.no.new.functiona
18d60 6c 69 74 79 20 73 68 6f 75 6c 64 20 75 73 65 20 74 68 65 20 6f 6c 64 20 73 74 79 6c 65 20 74 65 lity.should.use.the.old.style.te
18d80 6d 70 6c 61 74 65 73 20 28 60 60 6e 6f 64 65 2e 64 65 66 60 60 20 61 6e 64 20 50 65 72 6c 2f 42 mplates.(``node.def``.and.Perl/B
18da0 41 53 48 20 63 6f 64 65 2e 20 55 73 65 20 74 68 65 20 6e 65 77 20 73 74 79 6c 65 20 58 4d 4c 2f ASH.code..Use.the.new.style.XML/
18dc0 50 79 74 68 6f 6e 20 69 6e 74 65 72 66 61 63 65 20 69 6e 73 74 65 61 64 2e 00 57 68 61 74 20 63 Python.interface.instead..What.c
18de0 6f 6d 6d 61 6e 64 73 20 64 69 64 20 79 6f 75 20 75 73 65 3f 20 55 73 65 20 65 2e 67 2e 20 60 60 ommands.did.you.use?.Use.e.g..``
18e00 72 75 6e 20 73 68 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 73 60 run.show.configuration.commands`
18e20 60 00 57 68 61 74 20 77 61 73 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 69 `.What.was.the.configuration.pri
18e40 6f 72 20 74 6f 20 74 68 65 20 63 68 61 6e 67 65 3f 00 57 68 61 74 20 77 65 72 65 20 79 6f 75 20 or.to.the.change?.What.were.you.
18e60 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 61 63 68 69 65 76 65 3f 00 57 68 61 74 2f 77 68 79 2f attempting.to.achieve?.What/why/
18e80 68 6f 77 20 73 6f 6d 65 74 68 69 6e 67 20 68 61 73 20 62 65 65 6e 20 63 68 61 6e 67 65 64 2c 20 how.something.has.been.changed,.
18ea0 6d 61 6b 65 73 20 65 76 65 72 79 6f 6e 65 27 73 20 6c 69 66 65 20 65 61 73 69 65 72 20 77 68 65 makes.everyone's.life.easier.whe
18ec0 6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 60 67 69 74 20 62 69 73 65 63 74 60 00 57 68 65 6e n.working.with.`git.bisect`.When
18ee0 20 61 6e 64 20 49 53 4f 20 69 6d 61 67 65 20 69 73 20 61 73 73 65 6d 62 6c 65 64 20 62 79 20 74 .and.ISO.image.is.assembled.by.t
18f00 68 65 20 60 56 79 4f 53 20 43 49 60 5f 2c 20 74 68 65 20 60 60 42 55 49 4c 44 5f 53 4d 4f 4b 45 he.`VyOS.CI`_,.the.``BUILD_SMOKE
18f20 54 45 53 54 60 60 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 65 6e 61 62 6c 65 64 20 62 79 20 64 TEST``.parameter.is.enabled.by.d
18f40 65 66 61 75 6c 74 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 65 78 74 65 6e 64 20 74 68 65 20 49 53 efault,.which.will.extend.the.IS
18f60 4f 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6c 69 6e 65 20 77 69 74 68 20 74 68 65 20 66 6f O.configuration.line.with.the.fo
18f80 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 3a 00 57 68 65 6e 20 68 61 76 69 6e 67 20 74 72 llowing.packages:.When.having.tr
18fa0 6f 75 62 6c 65 20 63 6f 6d 70 69 6c 69 6e 67 20 79 6f 75 72 20 6f 77 6e 20 49 53 4f 20 69 6d 61 ouble.compiling.your.own.ISO.ima
18fc0 67 65 20 6f 72 20 64 65 62 75 67 67 69 6e 67 20 4a 65 6e 6b 69 6e 73 20 69 73 73 75 65 73 20 79 ge.or.debugging.Jenkins.issues.y
18fe0 6f 75 20 63 61 6e 20 66 6f 6c 6c 6f 77 20 74 68 65 20 73 74 65 70 73 20 61 74 20 3a 72 65 66 3a ou.can.follow.the.steps.at.:ref:
19000 60 69 73 6f 5f 62 75 69 6c 64 5f 69 73 73 75 65 73 60 2e 00 57 68 65 6e 20 6d 6f 64 69 66 79 69 `iso_build_issues`..When.modifyi
19020 6e 67 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 72 65 6d 65 6d 62 65 72 20 74 68 65 ng.the.source.code,.remember.the
19040 73 65 20 72 75 6c 65 73 20 6f 66 20 74 68 65 20 6c 65 67 61 63 79 20 65 6c 69 6d 69 6e 61 74 69 se.rules.of.the.legacy.eliminati
19060 6f 6e 20 63 61 6d 70 61 69 67 6e 3a 00 57 68 65 6e 20 74 68 65 20 62 75 69 6c 64 20 69 73 20 73 on.campaign:.When.the.build.is.s
19080 75 63 63 65 73 73 66 75 6c 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 69 73 6f 20 63 61 6e uccessful,.the.resulting.iso.can
190a0 20 62 65 20 66 6f 75 6e 64 20 69 6e 73 69 64 65 20 74 68 65 20 60 60 62 75 69 6c 64 60 60 20 64 .be.found.inside.the.``build``.d
190c0 69 72 65 63 74 6f 72 79 20 61 73 20 60 60 6c 69 76 65 2d 69 6d 61 67 65 2d 5b 61 72 63 68 69 74 irectory.as.``live-image-[archit
190e0 65 63 74 75 72 65 5d 2e 68 79 62 72 69 64 2e 69 73 6f 60 60 2e 00 57 68 65 6e 20 77 72 69 74 69 ecture].hybrid.iso``..When.writi
19100 6e 67 20 61 20 6e 65 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 69 67 72 61 74 6f 72 20 ng.a.new.configuration.migrator.
19120 69 74 20 6d 61 79 20 68 61 70 70 65 6e 20 74 68 61 74 20 79 6f 75 20 73 65 65 20 61 6e 20 65 72 it.may.happen.that.you.see.an.er
19140 72 6f 72 20 77 68 65 6e 20 79 6f 75 20 74 72 79 20 74 6f 20 69 6e 76 6f 6b 65 20 69 74 20 6d 61 ror.when.you.try.to.invoke.it.ma
19160 6e 75 61 6c 6c 79 20 6f 6e 20 61 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 73 79 73 74 65 6d 2e 20 nually.on.a.development.system..
19180 54 68 69 73 20 65 72 72 6f 72 20 77 69 6c 6c 20 6c 6f 6f 6b 20 6c 69 6b 65 3a 00 57 68 65 6e 20 This.error.will.look.like:.When.
191a0 79 6f 75 20 61 72 65 20 61 62 6c 65 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 20 69 74 20 69 you.are.able.to.verify.that.it.i
191c0 73 20 61 63 74 75 61 6c 6c 79 20 61 20 62 75 67 2c 20 73 70 65 6e 64 20 73 6f 6d 65 20 74 69 6d s.actually.a.bug,.spend.some.tim
191e0 65 20 74 6f 20 64 6f 63 75 6d 65 6e 74 20 68 6f 77 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 e.to.document.how.to.reproduce.t
19200 68 65 20 69 73 73 75 65 2e 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 63 61 6e he.issue..This.documentation.can
19220 20 62 65 20 69 6e 76 61 6c 75 61 62 6c 65 2e 00 57 68 65 6e 20 79 6f 75 20 61 72 65 20 77 6f 72 .be.invaluable..When.you.are.wor
19240 6b 69 6e 67 20 6f 6e 20 69 6e 74 65 72 66 61 63 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 king.on.interface.configuration.
19260 61 6e 64 20 79 6f 75 20 61 6c 73 6f 20 77 61 6e 27 74 20 74 6f 20 74 65 73 74 20 69 66 20 74 68 and.you.also.wan't.to.test.if.th
19280 65 20 53 6d 6f 6b 65 74 65 73 74 73 20 70 61 73 73 20 79 6f 75 20 77 6f 75 6c 64 20 6e 6f 72 6d e.Smoketests.pass.you.would.norm
192a0 61 6c 6c 79 20 6c 6f 6f 73 65 20 74 68 65 20 72 65 6d 6f 74 65 20 53 53 48 20 63 6f 6e 6e 65 63 ally.loose.the.remote.SSH.connec
192c0 74 69 6f 6e 20 74 6f 20 79 6f 75 72 20 3a 61 62 62 72 3a 60 44 55 54 20 28 44 65 76 69 63 65 20 tion.to.your.:abbr:`DUT.(Device.
192e0 55 6e 64 65 72 20 54 65 73 74 29 60 2e 20 54 6f 20 68 61 6e 64 6c 65 20 74 68 69 73 20 69 73 73 Under.Test)`..To.handle.this.iss
19300 75 65 2c 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 62 61 73 65 64 20 ue,.some.of.the.interface.based.
19320 74 65 73 74 73 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 6e 20 65 6e 76 69 tests.can.be.called.with.an.envi
19340 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 62 65 66 6f 72 65 68 61 6e 64 20 74 6f 20 6c ronment.variable.beforehand.to.l
19360 69 6d 69 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 74 65 72 66 61 63 65 73 20 75 73 imit.the.number.of.interfaces.us
19380 65 64 20 69 6e 20 74 68 65 20 74 65 73 74 2e 20 42 79 20 64 65 66 61 75 6c 74 20 61 6c 6c 20 69 ed.in.the.test..By.default.all.i
193a0 6e 74 65 72 66 61 63 65 20 65 2e 67 2e 20 61 6c 6c 20 45 74 68 65 72 6e 65 74 20 69 6e 74 65 72 nterface.e.g..all.Ethernet.inter
193c0 66 61 63 65 73 20 61 72 65 20 75 73 65 64 2e 00 57 68 65 6e 20 79 6f 75 20 62 65 6c 69 65 76 65 faces.are.used..When.you.believe
193e0 20 79 6f 75 20 68 61 76 65 20 66 6f 75 6e 64 20 61 20 62 75 67 2c 20 69 74 20 69 73 20 61 6c 77 .you.have.found.a.bug,.it.is.alw
19400 61 79 73 20 61 20 67 6f 6f 64 20 69 64 65 61 20 74 6f 20 76 65 72 69 66 79 20 74 68 65 20 69 73 ays.a.good.idea.to.verify.the.is
19420 73 75 65 20 70 72 69 6f 72 20 74 6f 20 6f 70 65 6e 69 6e 67 20 61 20 62 75 67 20 72 65 71 75 65 sue.prior.to.opening.a.bug.reque
19440 73 74 2e 00 57 68 65 6e 20 79 6f 75 20 77 69 73 68 20 74 6f 20 68 61 76 65 20 61 20 64 65 76 65 st..When.you.wish.to.have.a.deve
19460 6c 6f 70 65 72 20 66 69 78 20 61 20 62 75 67 20 74 68 61 74 20 79 6f 75 20 66 6f 75 6e 64 2c 20 loper.fix.a.bug.that.you.found,.
19480 68 65 6c 70 69 6e 67 20 74 68 65 6d 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 69 73 73 75 65 helping.them.reproduce.the.issue
194a0 20 69 73 20 62 65 6e 65 66 69 63 69 61 6c 20 74 6f 20 65 76 65 72 79 6f 6e 65 2e 20 42 65 20 73 .is.beneficial.to.everyone..Be.s
194c0 75 72 65 20 74 6f 20 69 6e 63 6c 75 64 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 ure.to.include.information.about
194e0 20 74 68 65 20 68 61 72 64 77 61 72 65 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 2c 20 63 6f 6d .the.hardware.you.are.using,.com
19500 6d 61 6e 64 73 20 74 68 61 74 20 79 6f 75 20 77 65 72 65 20 72 75 6e 6e 69 6e 67 2c 20 61 6e 79 mands.that.you.were.running,.any
19520 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 74 68 61 74 20 79 6f 75 20 6d 61 79 20 68 .other.activities.that.you.may.h
19540 61 76 65 20 62 65 65 6e 20 64 6f 69 6e 67 20 61 74 20 74 68 65 20 74 69 6d 65 2e 20 54 68 69 73 ave.been.doing.at.the.time..This
19560 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 76 .additional.information.can.be.v
19580 65 72 79 20 75 73 65 66 75 6c 2e 00 57 68 69 63 68 20 76 65 72 73 69 6f 6e 20 6f 66 20 56 79 4f ery.useful..Which.version.of.VyO
195a0 53 20 61 72 65 20 79 6f 75 20 75 73 69 6e 67 3f 20 60 60 72 75 6e 20 73 68 6f 77 20 76 65 72 73 S.are.you.using?.``run.show.vers
195c0 69 6f 6e 60 60 00 57 69 72 65 47 75 61 72 64 00 57 72 69 74 69 6e 67 20 67 6f 6f 64 20 63 6f 6d ion``.WireGuard.Writing.good.com
195e0 6d 69 74 20 6d 65 73 73 61 67 65 73 00 58 4d 4c 20 28 75 73 65 64 20 66 6f 72 20 43 4c 49 20 64 mit.messages.XML.(used.for.CLI.d
19600 65 66 69 6e 69 74 69 6f 6e 73 29 00 58 4d 4c 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 efinitions).XML.interface.defini
19620 74 69 6f 6e 20 66 69 6c 65 73 20 75 73 65 20 74 68 65 20 60 78 6d 6c 2e 69 6e 60 20 66 69 6c 65 tion.files.use.the.`xml.in`.file
19640 20 65 78 74 65 6e 73 69 6f 6e 20 77 68 69 63 68 20 77 61 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 .extension.which.was.implemented
19660 20 69 6e 20 3a 76 79 74 61 73 6b 3a 60 54 31 38 34 33 60 2e 20 58 4d 4c 20 69 6e 74 65 72 66 61 .in.:vytask:`T1843`..XML.interfa
19680 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 74 65 6e 64 20 74 6f 20 68 61 76 65 20 61 20 6c 6f ce.definitions.tend.to.have.a.lo
196a0 74 20 6f 66 20 64 75 70 6c 69 63 61 74 65 64 20 63 6f 64 65 20 69 6e 20 61 72 65 61 73 20 73 75 t.of.duplicated.code.in.areas.su
196c0 63 68 20 61 73 3a 00 58 4d 4c 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 ch.as:.XML.interface.definitions
196e0 20 66 6f 72 20 56 79 4f 53 20 63 6f 6d 65 20 77 69 74 68 20 61 20 52 65 6c 61 78 4e 47 20 73 63 .for.VyOS.come.with.a.RelaxNG.sc
19700 68 65 6d 61 20 61 6e 64 20 61 72 65 20 6c 6f 63 61 74 65 64 20 69 6e 20 74 68 65 20 76 79 6f 73 hema.and.are.located.in.the.vyos
19720 2d 31 78 5f 20 6d 6f 64 75 6c 65 2e 20 54 68 69 73 20 73 63 68 65 6d 61 20 69 73 20 61 20 73 6c -1x_.module..This.schema.is.a.sl
19740 69 67 68 74 6c 79 20 6d 6f 64 69 66 69 65 64 20 73 63 68 65 6d 61 20 66 72 6f 6d 20 56 79 43 6f ightly.modified.schema.from.VyCo
19760 6e 66 5f 20 61 6c 69 61 73 20 56 79 4f 53 20 32 2e 30 20 53 6f 20 56 79 4f 53 20 31 2e 32 2e 78 nf_.alias.VyOS.2.0.So.VyOS.1.2.x
19780 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 72 .interface.definitions.will.be.r
197a0 65 75 73 61 62 6c 65 20 69 6e 20 4e 65 78 74 67 65 6e 20 56 79 4f 53 20 56 65 72 73 69 6f 6e 73 eusable.in.Nextgen.VyOS.Versions
197c0 20 77 69 74 68 20 76 65 72 79 20 6d 69 6e 69 6d 61 6c 20 63 68 61 6e 67 65 73 2e 00 58 4d 4c 3a .with.very.minimal.changes..XML:
197e0 20 54 61 62 73 20 2a 2a 73 68 61 6c 6c 20 6e 6f 74 2a 2a 20 62 65 20 75 73 65 64 2e 20 45 76 65 .Tabs.**shall.not**.be.used..Eve
19800 72 79 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6c 65 76 65 6c 20 73 68 6f 75 6c 64 20 62 65 20 32 ry.indentation.level.should.be.2
19820 20 73 70 61 63 65 73 00 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 70 6c 61 63 65 20 74 68 65 20 67 .spaces.You.can.also.place.the.g
19840 65 6e 65 72 61 74 65 64 20 60 2a 2e 64 65 62 60 20 69 6e 74 6f 20 79 6f 75 72 20 49 53 4f 20 62 enerated.`*.deb`.into.your.ISO.b
19860 75 69 6c 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 69 74 20 69 uild.environment.to.include.it.i
19880 6e 20 61 20 63 75 73 74 6f 6d 20 69 73 6f 2c 20 73 65 65 20 3a 72 65 66 3a 60 62 75 69 6c 64 5f n.a.custom.iso,.see.:ref:`build_
198a0 63 75 73 74 6f 6d 5f 70 61 63 6b 61 67 65 73 60 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d custom_packages`.for.more.inform
198c0 61 74 69 6f 6e 2e 00 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 79 6f 75 72 73 65 6c 66 20 73 ation..You.can.create.yourself.s
198e0 6f 6d 65 20 68 61 6e 64 79 20 42 61 73 68 20 61 6c 69 61 73 65 73 20 74 6f 20 61 6c 77 61 79 73 ome.handy.Bash.aliases.to.always
19900 20 6c 61 75 6e 63 68 20 74 68 65 20 6c 61 74 65 73 74 20 2d 20 70 65 72 20 72 65 6c 65 61 73 65 .launch.the.latest.-.per.release
19920 20 74 72 61 69 6e 20 28 60 63 75 72 72 65 6e 74 60 20 6f 72 20 60 63 72 75 78 60 29 20 2d 20 63 .train.(`current`.or.`crux`).-.c
19940 6f 6e 74 61 69 6e 65 72 2e 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 ontainer..Add.the.following.to.y
19960 6f 75 72 20 60 60 2e 62 61 73 68 5f 61 6c 69 61 73 65 73 60 60 20 66 69 6c 65 3a 00 59 6f 75 20 our.``.bash_aliases``.file:.You.
19980 63 61 6e 20 74 79 70 65 20 60 60 68 65 6c 70 60 60 20 74 6f 20 67 65 74 20 61 6e 20 6f 76 65 72 can.type.``help``.to.get.an.over
199a0 76 69 65 77 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 view.of.the.available.commands,.
199c0 61 6e 64 20 60 60 68 65 6c 70 20 63 6f 6d 6d 61 6e 64 60 60 20 74 6f 20 67 65 74 20 6d 6f 72 65 and.``help.command``.to.get.more
199e0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 2e 00 59 6f .information.on.each.command..Yo
19a00 75 20 68 61 76 65 20 61 6e 20 69 64 65 61 20 6f 66 20 68 6f 77 20 74 6f 20 6d 61 6b 65 20 56 79 u.have.an.idea.of.how.to.make.Vy
19a20 4f 53 20 62 65 74 74 65 72 20 6f 72 20 79 6f 75 20 61 72 65 20 69 6e 20 6e 65 65 64 20 6f 66 20 OS.better.or.you.are.in.need.of.
19a40 61 20 73 70 65 63 69 66 69 63 20 66 65 61 74 75 72 65 20 77 68 69 63 68 20 61 6c 6c 20 75 73 65 a.specific.feature.which.all.use
19a60 72 73 20 6f 66 20 56 79 4f 53 20 77 6f 75 6c 64 20 62 65 6e 65 66 69 74 20 66 72 6f 6d 3f 20 54 rs.of.VyOS.would.benefit.from?.T
19a80 6f 20 73 65 6e 64 20 61 20 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 20 70 6c 65 61 73 65 20 o.send.a.feature.request.please.
19aa0 73 65 61 72 63 68 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 69 66 20 74 68 65 72 65 20 69 73 20 search.Phabricator_.if.there.is.
19ac0 61 6c 72 65 61 64 79 20 61 20 72 65 71 75 65 73 74 20 70 65 6e 64 69 6e 67 2e 20 59 6f 75 20 63 already.a.request.pending..You.c
19ae0 61 6e 20 65 6e 68 61 6e 63 65 20 69 74 20 6f 72 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 66 69 an.enhance.it.or.if.you.don't.fi
19b00 6e 64 20 6f 6e 65 2c 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 20 62 79 20 75 73 65 20 nd.one,.create.a.new.one.by.use.
19b20 74 68 65 20 71 75 69 63 6b 20 6c 69 6e 6b 20 69 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20 the.quick.link.in.the.left.side.
19b40 75 6e 64 65 72 20 74 68 65 20 73 70 65 63 69 66 69 63 20 70 72 6f 6a 65 63 74 2e 00 59 6f 75 20 under.the.specific.project..You.
19b60 68 61 76 65 20 79 6f 75 72 20 6f 77 6e 20 63 75 73 74 6f 6d 20 6b 65 72 6e 65 6c 20 60 2a 2e 64 have.your.own.custom.kernel.`*.d
19b80 65 62 60 20 70 61 63 6b 61 67 65 73 20 69 6e 20 74 68 65 20 60 70 61 63 6b 61 67 65 73 60 20 66 eb`.packages.in.the.`packages`.f
19ba0 6f 6c 64 65 72 20 62 75 74 20 6e 65 67 6c 65 63 74 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 6c older.but.neglected.to.create.al
19bc0 6c 20 72 65 71 75 69 72 65 64 20 6f 75 74 2d 6f 66 20 74 72 65 65 20 6d 6f 64 75 6c 65 73 20 6c l.required.out-of.tree.modules.l
19be0 69 6b 65 20 41 63 63 65 6c 2d 50 50 50 2c 20 49 6e 74 65 6c 20 51 41 54 20 6f 72 20 49 6e 74 65 ike.Accel-PPP,.Intel.QAT.or.Inte
19c00 6c 20 4e 49 43 20 64 72 69 76 65 72 73 00 59 6f 75 20 68 61 76 65 20 79 6f 75 72 20 6f 77 6e 20 l.NIC.drivers.You.have.your.own.
19c20 63 75 73 74 6f 6d 20 6b 65 72 6e 65 6c 20 60 2a 2e 64 65 62 60 20 70 61 63 6b 61 67 65 73 20 69 custom.kernel.`*.deb`.packages.i
19c40 6e 20 74 68 65 20 60 70 61 63 6b 61 67 65 73 60 20 66 6f 6c 64 65 72 20 62 75 74 20 6e 65 67 6c n.the.`packages`.folder.but.negl
19c60 65 63 74 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 6c 6c 20 72 65 71 75 69 72 65 64 20 6f 75 74 ected.to.create.all.required.out
19c80 2d 6f 66 20 74 72 65 65 20 6d 6f 64 75 6c 65 73 20 6c 69 6b 65 20 41 63 63 65 6c 2d 50 50 50 2c -of.tree.modules.like.Accel-PPP,
19ca0 20 57 69 72 65 47 75 61 72 64 2c 20 49 6e 74 65 6c 20 51 41 54 2c 20 49 6e 74 65 6c 20 4e 49 43 .WireGuard,.Intel.QAT,.Intel.NIC
19cc0 00 59 6f 75 20 73 68 6f 75 64 6c 20 6e 6f 77 20 73 65 65 20 61 20 50 79 74 68 6f 6e 20 62 61 63 .You.shoudl.now.see.a.Python.bac
19ce0 6b 74 72 61 63 65 20 77 68 69 63 68 20 77 69 6c 6c 20 68 65 6c 70 20 75 73 20 74 6f 20 68 61 6e ktrace.which.will.help.us.to.han
19d00 64 6c 65 20 74 68 65 20 69 73 73 75 65 2c 20 70 6c 65 61 73 65 20 61 74 74 61 63 68 20 69 74 20 dle.the.issue,.please.attach.it.
19d20 74 6f 20 74 68 65 20 50 68 61 62 72 69 63 61 74 6f 72 5f 20 74 61 73 6b 2e 00 59 6f 75 20 74 68 to.the.Phabricator_.task..You.th
19d40 65 6e 20 63 61 6e 20 70 72 6f 63 65 65 64 20 77 69 74 68 20 63 6c 6f 6e 69 6e 67 20 79 6f 75 72 en.can.proceed.with.cloning.your
19d60 20 66 6f 72 6b 20 6f 72 20 61 64 64 20 61 20 6e 65 77 20 72 65 6d 6f 74 65 20 74 6f 20 79 6f 75 .fork.or.add.a.new.remote.to.you
19d80 72 20 6c 6f 63 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 3a 00 59 6f 75 72 20 63 6f 6e 66 69 67 75 r.local.repository:.Your.configu
19da0 72 61 74 69 6f 6e 20 73 63 72 69 70 74 20 6f 72 20 6f 70 65 72 61 74 69 6f 6e 20 6d 6f 64 65 20 ration.script.or.operation.mode.
19dc0 73 63 72 69 70 74 20 77 68 69 63 68 20 69 73 20 61 6c 73 6f 20 77 72 69 74 74 65 6e 20 69 6e 20 script.which.is.also.written.in.
19de0 50 79 74 68 6f 6e 33 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 6c 69 6e 65 20 62 72 65 61 6b Python3.should.have.a.line.break
19e00 20 6f 6e 20 38 30 20 63 68 61 72 61 63 74 65 72 73 2e 20 54 68 69 73 20 73 65 65 6d 73 20 74 6f .on.80.characters..This.seems.to
19e20 20 62 65 20 61 20 62 69 74 20 6f 64 64 20 6e 6f 77 61 64 61 79 73 20 62 75 74 20 61 73 20 73 6f .be.a.bit.odd.nowadays.but.as.so
19e40 6d 65 20 70 65 6f 70 6c 65 20 61 6c 73 6f 20 77 6f 72 6b 20 72 65 6d 6f 74 65 6c 79 20 6f 72 20 me.people.also.work.remotely.or.
19e60 70 72 6f 67 72 61 6d 20 75 73 69 6e 67 20 76 69 28 6d 29 20 74 68 69 73 20 69 73 20 61 20 66 61 program.using.vi(m).this.is.a.fa
19e80 69 72 20 67 6f 6f 64 20 73 74 61 6e 64 61 72 64 20 77 68 69 63 68 20 49 20 68 6f 70 65 20 77 65 ir.good.standard.which.I.hope.we
19ea0 20 63 61 6e 20 72 65 6c 79 20 6f 6e 2e 00 60 2e 2f 63 6f 6e 66 69 67 75 72 65 20 2d 2d 65 6e 61 .can.rely.on..`./configure.--ena
19ec0 62 6c 65 2d 70 79 74 68 6f 6e 2d 65 67 67 73 60 00 60 49 50 76 34 2c 20 49 50 76 36 20 61 6e 64 ble-python-eggs`.`IPv4,.IPv6.and
19ee0 20 44 48 43 50 28 76 36 29 60 5f 20 61 64 64 72 65 73 73 20 61 73 73 69 67 6e 6d 65 6e 74 00 60 .DHCP(v6)`_.address.assignment.`
19f00 49 50 76 34 2c 20 49 50 76 36 60 5f 20 61 64 64 72 65 73 73 20 61 73 73 69 67 6e 6d 65 6e 74 00 IPv4,.IPv6`_.address.assignment.
19f20 60 4d 41 43 20 61 64 64 72 65 73 73 60 5f 20 61 73 73 69 67 6e 6d 65 6e 74 00 60 56 4c 41 4e 20 `MAC.address`_.assignment.`VLAN.
19f40 28 56 49 46 29 60 5f 20 64 65 66 69 6e 69 74 69 6f 6e 00 60 60 4a 65 6e 6b 69 6e 73 3a 20 61 64 (VIF)`_.definition.``Jenkins:.ad
19f60 64 20 63 75 72 72 65 6e 74 20 47 69 74 20 63 6f 6d 6d 69 74 20 49 44 20 74 6f 20 62 75 69 6c 64 d.current.Git.commit.ID.to.build
19f80 20 64 65 73 63 72 69 70 74 69 6f 6e 60 60 00 60 60 63 6f 6d 6d 61 6e 64 60 60 20 2d 20 4f 6e 63 .description``.``command``.-.Onc
19fa0 65 20 73 65 74 2c 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 75 73 65 64 2c 20 61 6e 64 20 74 68 e.set,.all.commands.used,.and.th
19fc0 65 69 72 20 72 65 73 70 6f 6e 73 65 73 20 72 65 63 65 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 eir.responses.received.from.the.
19fe0 4f 53 2c 20 77 69 6c 6c 20 62 65 20 70 72 65 73 65 6e 74 65 64 20 6f 6e 20 74 68 65 20 73 63 72 OS,.will.be.presented.on.the.scr
1a000 65 65 6e 20 66 6f 72 20 69 6e 73 70 65 63 74 69 6f 6e 2e 00 60 60 63 6f 6d 6d 69 74 60 60 00 60 een.for.inspection..``commit``.`
1a020 60 64 64 63 6c 69 65 6e 74 3a 20 54 31 30 33 30 3a 20 61 75 74 6f 20 63 72 65 61 74 65 20 72 75 `ddclient:.T1030:.auto.create.ru
1a040 6e 74 69 6d 65 20 64 69 72 65 63 74 6f 72 69 65 73 60 60 00 60 60 64 65 76 65 6c 6f 70 65 72 60 ntime.directories``.``developer`
1a060 60 20 2d 20 53 68 6f 75 6c 64 20 61 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c 2c 20 69 6e 73 74 65 `.-.Should.a.command.fail,.inste
1a080 61 64 20 6f 66 20 70 72 69 6e 74 69 6e 67 20 61 20 6d 65 73 73 61 67 65 20 74 6f 20 74 68 65 20 ad.of.printing.a.message.to.the.
1a0a0 75 73 65 72 20 65 78 70 6c 61 69 6e 69 6e 67 20 68 6f 77 20 74 6f 20 72 65 70 6f 72 74 20 69 73 user.explaining.how.to.report.is
1a0c0 73 75 65 73 2c 20 74 68 65 20 70 79 74 68 6f 6e 20 69 6e 74 65 72 70 72 65 74 65 72 20 77 69 6c sues,.the.python.interpreter.wil
1a0e0 6c 20 73 74 61 72 74 20 61 20 50 42 44 20 70 6f 73 74 2d 6d 6f 72 74 65 6d 20 73 65 73 73 69 6f l.start.a.PBD.post-mortem.sessio
1a100 6e 20 74 6f 20 61 6c 6c 6f 77 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 20 74 6f 20 64 65 62 75 n.to.allow.the.developer.to.debu
1a120 67 20 74 68 65 20 69 73 73 75 65 2e 20 41 73 20 74 68 65 20 64 65 62 75 67 67 65 72 20 77 69 6c g.the.issue..As.the.debugger.wil
1a140 6c 20 77 61 69 74 20 66 72 6f 6d 20 69 6e 70 75 74 20 66 72 6f 6d 20 74 68 65 20 64 65 76 65 6c l.wait.from.input.from.the.devel
1a160 6f 70 65 72 2c 20 69 74 20 68 61 73 20 74 68 65 20 63 61 70 61 63 69 74 79 20 74 6f 20 70 72 65 oper,.it.has.the.capacity.to.pre
1a180 76 65 6e 74 20 61 20 72 6f 75 74 65 72 20 74 6f 20 62 6f 6f 74 20 61 6e 64 20 74 68 65 72 65 66 vent.a.router.to.boot.and.theref
1a1a0 6f 72 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 73 ore.should.only.be.permanently.s
1a1c0 65 74 20 75 70 20 6f 6e 20 70 72 6f 64 75 63 74 69 6f 6e 20 69 66 20 79 6f 75 20 61 72 65 20 72 et.up.on.production.if.you.are.r
1a1e0 65 61 64 79 20 74 6f 20 73 65 65 20 74 68 65 20 4f 53 20 66 61 69 6c 20 74 6f 20 62 6f 6f 74 2e eady.to.see.the.OS.fail.to.boot.
1a200 00 60 60 69 66 63 6f 6e 66 69 67 60 60 20 2d 20 4f 6e 63 65 20 73 65 74 2c 20 61 6c 6c 20 63 6f .``ifconfig``.-.Once.set,.all.co
1a220 6d 6d 61 6e 64 73 20 75 73 65 64 2c 20 61 6e 64 20 74 68 65 69 72 20 72 65 73 70 6f 6e 73 65 73 mmands.used,.and.their.responses
1a240 20 72 65 63 65 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 4f 53 2c 20 77 69 6c 6c 20 62 65 20 70 .received.from.the.OS,.will.be.p
1a260 72 65 73 65 6e 74 65 64 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 20 66 6f 72 20 69 6e 73 70 65 resented.on.the.screen.for.inspe
1a280 63 74 69 6f 6e 2e 00 60 60 6c 6f 67 60 60 20 2d 20 49 6e 20 73 6f 6d 65 20 72 61 72 65 20 63 61 ction..``log``.-.In.some.rare.ca
1a2a0 73 65 73 2c 20 69 74 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 73 65 65 20 77 68 61 ses,.it.may.be.useful.to.see.wha
1a2c0 74 20 74 68 65 20 4f 53 20 69 73 20 64 6f 69 6e 67 2c 20 69 6e 63 6c 75 64 69 6e 67 20 64 75 72 t.the.OS.is.doing,.including.dur
1a2e0 69 6e 67 20 62 6f 6f 74 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 73 65 6e 64 73 20 61 6c 6c 20 ing.boot..This.option.sends.all.
1a300 63 6f 6d 6d 61 6e 64 73 20 75 73 65 64 20 62 79 20 56 79 4f 53 20 74 6f 20 61 20 66 69 6c 65 2e commands.used.by.VyOS.to.a.file.
1a320 20 54 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c 65 20 69 73 20 60 60 2f 74 6d 70 2f 66 75 6c 6c .The.default.file.is.``/tmp/full
1a340 2d 6c 6f 67 60 60 20 62 75 74 20 69 74 20 63 61 6e 20 62 65 20 63 68 61 6e 67 65 64 2e 00 60 60 -log``.but.it.can.be.changed..``
1a360 73 65 74 60 60 00 60 60 76 79 6f 73 2d 62 75 69 6c 64 60 60 20 72 65 70 6f 20 69 73 20 6f 75 74 set``.``vyos-build``.repo.is.out
1a380 64 61 74 65 64 2c 20 70 6c 65 61 73 65 20 60 60 67 69 74 20 70 75 6c 6c 60 60 20 74 6f 20 75 70 dated,.please.``git.pull``.to.up
1a3a0 64 61 74 65 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 72 65 6c 65 61 73 65 20 6b 65 72 6e 65 date.to.the.latest.release.kerne
1a3c0 6c 20 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 75 73 2e 00 60 60 76 79 6f 73 2d 63 6f 6e 66 69 67 l.version.from.us..``vyos-config
1a3e0 2d 64 65 62 75 67 60 60 20 2d 20 44 75 72 69 6e 67 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2c 20 63 -debug``.-.During.development,.c
1a400 6f 64 69 6e 67 20 65 72 72 6f 72 73 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 61 20 63 6f 6d 6d 69 oding.errors.can.lead.to.a.commi
1a420 74 20 66 61 69 6c 75 72 65 20 6f 6e 20 62 6f 6f 74 2c 20 70 6f 73 73 69 62 6c 79 20 72 65 73 75 t.failure.on.boot,.possibly.resu
1a440 6c 74 69 6e 67 20 69 6e 20 61 20 66 61 69 6c 65 64 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e lting.in.a.failed.initialization
1a460 20 6f 66 20 74 68 65 20 43 4c 49 2e 20 49 6e 20 74 68 69 73 20 63 69 72 63 75 6d 73 74 61 6e 63 .of.the.CLI..In.this.circumstanc
1a480 65 2c 20 74 68 65 20 6b 65 72 6e 65 6c 20 62 6f 6f 74 20 70 61 72 61 6d 65 74 65 72 20 60 60 76 e,.the.kernel.boot.parameter.``v
1a4a0 79 6f 73 2d 63 6f 6e 66 69 67 2d 64 65 62 75 67 60 60 20 77 69 6c 6c 20 65 6e 73 75 72 65 20 61 yos-config-debug``.will.ensure.a
1a4c0 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d 20 61 73 20 75 73 65 72 20 60 60 76 79 ccess.to.the.system.as.user.``vy
1a4e0 6f 73 60 60 2c 20 61 6e 64 20 77 69 6c 6c 20 6c 6f 67 20 61 20 50 79 74 68 6f 6e 20 73 74 61 63 os``,.and.will.log.a.Python.stac
1a500 6b 20 74 72 61 63 65 20 74 6f 20 74 68 65 20 66 69 6c 65 20 60 60 2f 74 6d 70 2f 62 6f 6f 74 2d k.trace.to.the.file.``/tmp/boot-
1a520 63 6f 6e 66 69 67 2d 74 72 61 63 65 60 60 2e 20 46 69 6c 65 20 60 60 62 6f 6f 74 2d 63 6f 6e 66 config-trace``..File.``boot-conf
1a540 69 67 2d 74 72 61 63 65 60 60 20 77 69 6c 6c 20 67 65 6e 65 72 61 74 65 20 6f 6e 6c 79 20 69 66 ig-trace``.will.generate.only.if
1a560 20 63 6f 6e 66 69 67 20 6c 6f 61 64 65 64 20 77 69 74 68 20 61 20 66 61 69 6c 75 72 65 20 73 74 .config.loaded.with.a.failure.st
1a580 61 74 75 73 2e 00 60 60 76 79 6f 73 2d 64 65 62 75 67 60 60 20 2d 20 41 64 64 69 6e 67 20 74 68 atus..``vyos-debug``.-.Adding.th
1a5a0 65 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 74 68 65 20 6c 69 6e 75 78 20 62 6f 6f 74 20 6c 69 e.parameter.to.the.linux.boot.li
1a5c0 6e 65 20 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 74 69 6d 69 6e 67 20 72 65 73 75 6c 74 73 20 66 ne.will.produce.timing.results.f
1a5e0 6f 72 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 73 63 72 69 70 74 73 20 64 75 72 69 or.the.execution.of.scripts.duri
1a600 6e 67 20 63 6f 6d 6d 69 74 2e 20 49 66 20 6f 6e 65 20 69 73 20 73 65 65 69 6e 67 20 61 6e 20 75 ng.commit..If.one.is.seeing.an.u
1a620 6e 65 78 70 65 63 74 65 64 20 64 65 6c 61 79 20 64 75 72 69 6e 67 20 6d 61 6e 75 61 6c 20 6f 72 nexpected.delay.during.manual.or
1a640 20 62 6f 6f 74 20 63 6f 6d 6d 69 74 2c 20 74 68 69 73 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c .boot.commit,.this.may.be.useful
1a660 20 69 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 62 6f 74 74 6c 65 6e 65 63 6b 73 2e 20 54 68 65 .in.identifying.bottlenecks..The
1a680 20 69 6e 74 65 72 6e 61 6c 20 66 6c 61 67 20 69 73 20 60 60 56 59 4f 53 5f 44 45 42 55 47 60 60 .internal.flag.is.``VYOS_DEBUG``
1a6a0 2c 20 61 6e 64 20 69 73 20 66 6f 75 6e 64 20 69 6e 20 76 79 61 74 74 61 2d 63 66 67 5f 2e 20 4f ,.and.is.found.in.vyatta-cfg_..O
1a6c0 75 74 70 75 74 20 69 73 20 64 69 72 65 63 74 65 64 20 74 6f 20 60 60 2f 76 61 72 2f 6c 6f 67 2f utput.is.directed.to.``/var/log/
1a6e0 76 79 61 74 74 61 2f 63 66 67 2d 73 74 64 6f 75 74 2e 6c 6f 67 60 60 2e 00 60 63 64 20 73 72 63 vyatta/cfg-stdout.log``..`cd.src
1a700 2f 6c 69 62 63 68 61 72 6f 6e 2f 70 6c 75 67 69 6e 73 2f 76 69 63 69 2f 70 79 74 68 6f 6e 60 00 /libcharon/plugins/vici/python`.
1a720 60 63 64 20 76 79 6f 73 2d 73 74 72 6f 6e 67 73 77 61 6e 60 00 60 6d 61 6b 65 60 00 60 70 79 74 `cd.vyos-strongswan`.`make`.`pyt
1a740 68 6f 6e 33 20 73 65 74 75 70 2e 70 79 20 2d 2d 63 6f 6d 6d 61 6e 64 2d 70 61 63 6b 61 67 65 73 hon3.setup.py.--command-packages
1a760 3d 73 74 64 65 62 2e 63 6f 6d 6d 61 6e 64 20 62 64 69 73 74 5f 64 65 62 60 00 61 6c 6c 6f 77 65 =stdeb.command.bdist_deb`.allowe
1a780 64 3a 20 2f 70 61 74 68 2f 74 6f 2f 73 63 72 69 70 74 00 61 6c 6c 6f 77 65 64 3a 20 63 6c 69 2d d:./path/to/script.allowed:.cli-
1a7a0 73 68 65 6c 6c 2d 61 70 69 20 6c 69 73 74 4e 6f 64 65 73 20 76 70 6e 20 69 70 73 65 63 20 65 73 shell-api.listNodes.vpn.ipsec.es
1a7c0 70 2d 67 72 6f 75 70 00 61 6c 6c 6f 77 65 64 3a 20 65 63 68 6f 20 66 6f 6f 20 62 61 72 00 62 65 p-group.allowed:.echo.foo.bar.be
1a7e0 67 69 6e 3a 2f 63 72 65 61 74 65 3a 2f 64 65 6c 65 74 65 3a 00 63 6f 6d 6d 69 74 3a 65 78 70 72 gin:/create:/delete:.commit:expr
1a800 65 73 73 69 6f 6e 3a 00 63 6f 6e 74 69 6e 65 20 65 78 65 63 75 74 69 6f 6e 20 75 73 69 6e 67 20 ession:.contine.execution.using.
1a820 60 60 63 6f 6e 74 60 60 00 64 65 66 61 75 6c 74 3a 00 65 78 61 6d 69 6e 65 20 76 61 72 69 61 62 ``cont``.default:.examine.variab
1a840 6c 65 73 20 75 73 69 6e 67 20 60 60 70 70 28 76 61 72 29 60 60 00 67 65 74 20 61 20 62 61 63 6b les.using.``pp(var)``.get.a.back
1a860 74 72 61 63 65 20 75 73 69 6e 67 20 60 60 62 74 60 60 00 68 65 6c 70 3a 20 4d 79 20 6e 6f 64 65 trace.using.``bt``.help:.My.node
1a880 00 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2d .https://github.com/vyos/vyatta-
1a8a0 63 66 67 2f 62 6c 6f 62 2f 30 66 34 32 37 38 36 61 30 62 33 2f 73 72 63 2f 63 6f 6d 6d 69 74 2f cfg/blob/0f42786a0b3/src/commit/
1a8c0 63 6f 6d 6d 69 74 2d 61 6c 67 6f 72 69 74 68 6d 2e 63 70 70 23 4c 31 32 35 32 00 68 74 74 70 73 commit-algorithm.cpp#L1252.https
1a8e0 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 6f 73 2f 76 79 61 74 74 61 2d 63 66 67 2f 62 6c ://github.com/vyos/vyatta-cfg/bl
1a900 6f 62 2f 30 66 34 32 37 38 36 61 30 62 33 2f 73 72 63 2f 63 73 74 6f 72 65 2f 63 73 74 6f 72 65 ob/0f42786a0b3/src/cstore/cstore
1a920 2e 63 70 70 23 4c 32 35 34 39 00 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 79 .cpp#L2549.https://github.com/vy
1a940 6f 73 2f 76 79 61 74 74 61 2d 63 66 67 2f 62 6c 6f 62 2f 30 66 34 32 37 38 36 61 30 62 33 2f 73 os/vyatta-cfg/blob/0f42786a0b3/s
1a960 72 63 2f 63 73 74 6f 72 65 2f 63 73 74 6f 72 65 2e 63 70 70 23 4c 33 35 32 00 68 76 69 6e 66 6f rc/cstore/cstore.cpp#L352.hvinfo
1a980 00 6b 65 65 70 61 6c 69 76 65 64 00 6d 64 6e 73 2d 72 65 70 65 61 74 65 72 00 6d 75 6c 74 69 3a .keepalived.mdns-repeater.multi:
1a9a0 00 6d 79 6e 6f 64 65 2f 6e 6f 64 65 2e 64 65 66 00 6d 79 6e 6f 64 65 2f 6e 6f 64 65 2e 74 61 67 .mynode/node.def.mynode/node.tag
1a9c0 20 2c 20 74 61 67 3a 00 70 72 69 6f 72 69 74 79 3a 20 39 39 39 00 73 74 72 6f 6e 67 73 77 61 6e .,.tag:.priority:.999.strongswan
1a9e0 00 73 74 72 6f 6e 67 73 77 61 6e 2d 6e 6d 20 70 61 63 6b 61 67 65 20 62 75 69 6c 64 20 69 73 20 .strongswan-nm.package.build.is.
1aa00 64 69 73 61 62 6c 65 64 20 73 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 75 73 65 20 4e 65 74 77 disabled.since.we.don't.use.Netw
1aa20 6f 72 6b 4d 61 6e 61 67 65 72 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e 3a 20 24 56 orkManager.syntax:expression:.$V
1aa40 41 52 28 40 29 20 69 6e 20 22 66 6f 6f 22 2c 20 22 62 61 72 22 2c 20 22 62 61 7a 22 00 73 79 6e AR(@).in."foo",."bar",."baz".syn
1aa60 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e 3a 20 28 61 72 69 74 68 6d 65 74 69 63 20 65 78 70 72 tax:expression:.(arithmetic.expr
1aa80 65 73 73 69 6f 6e 29 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e 3a 20 65 78 65 63 20 ession).syntax:expression:.exec.
1aaa0 2e 2e 2e 00 73 79 6e 74 61 78 3a 65 78 70 72 65 73 73 69 6f 6e 3a 20 70 61 74 74 65 72 6e 00 75 ....syntax:expression:.pattern.u
1aac0 64 70 2d 62 72 6f 61 64 63 61 73 74 2d 72 65 6c 61 79 00 76 61 6c 5f 68 65 6c 70 3a 20 3c 66 6f dp-broadcast-relay.val_help:.<fo
1aae0 72 6d 61 74 3e 3b 20 73 6f 6d 65 20 73 74 72 69 6e 67 00 76 79 6f 73 2d 6e 65 74 70 6c 75 67 00 rmat>;.some.string.vyos-netplug.