Compare commits
	
		
			1022 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					12064291e9 | ||
| 
						 | 
					23f6ec028b | ||
| 
						 | 
					9d7f39603e | ||
| 
						 | 
					0b5cb3abcb | ||
| 
						 | 
					f6ed2c660c | ||
| 
						 | 
					002bcf0b67 | ||
| 
						 | 
					b9241988a7 | ||
| 
						 | 
					5ae4d4edb5 | ||
| 
						 | 
					95b2948e6e | ||
| 
						 | 
					b73d326387 | ||
| 
						 | 
					476272be0c | ||
| 
						 | 
					63a5ee3d8c | ||
| 
						 | 
					36cc40a9d6 | ||
| 
						 | 
					ae5e38dce5 | ||
| 
						 | 
					5858f980c8 | ||
| 
						 | 
					db96295e00 | ||
| 
						 | 
					f5ed484920 | ||
| 
						 | 
					00f90f2b0e | ||
| 
						 | 
					b405681926 | ||
| 
						 | 
					d5700d036a | ||
| 
						 | 
					616f756ca8 | ||
| 
						 | 
					17cfb41d81 | ||
| 
						 | 
					1bc87b7a7c | ||
| 
						 | 
					f3be11a00d | ||
| 
						 | 
					406ab2a4ca | ||
| 
						 | 
					7878a53542 | ||
| 
						 | 
					084e6b5e20 | ||
| 
						 | 
					a7bd13145b | ||
| 
						 | 
					28ecb38515 | ||
| 
						 | 
					91737be1ab | ||
| 
						 | 
					fb6ffc5713 | ||
| 
						 | 
					01acbe3c27 | ||
| 
						 | 
					aa5c3ccd0b | ||
| 
						 | 
					d795ea183f | ||
| 
						 | 
					5af3944440 | ||
| 
						 | 
					01bcdb43b6 | ||
| 
						 | 
					bcd1975fe7 | ||
| 
						 | 
					57e194df4f | ||
| 
						 | 
					dacd0ab189 | ||
| 
						 | 
					7cfe93d032 | ||
| 
						 | 
					893df75e30 | ||
| 
						 | 
					c80d6bb2ed | ||
| 
						 | 
					bfe38c98a8 | ||
| 
						 | 
					e8a76ad6e6 | ||
| 
						 | 
					7d63049adb | ||
| 
						 | 
					dc0b3157a9 | ||
| 
						 | 
					2f6b5b7ef4 | ||
| 
						 | 
					eb3635dd1f | ||
| 
						 | 
					459783bbad | ||
| 
						 | 
					a28bdc7e5c | ||
| 
						 | 
					bcae7d03b4 | ||
| 
						 | 
					ccc2b71145 | ||
| 
						 | 
					78c0693c50 | ||
| 
						 | 
					ddf4a3a7a0 | ||
| 
						 | 
					a6568c304f | ||
| 
						 | 
					d6a5264a9d | ||
| 
						 | 
					9f227e8b49 | ||
| 
						 | 
					3bb5450320 | ||
| 
						 | 
					a689fdb7be | ||
| 
						 | 
					fc4f15d6cd | ||
| 
						 | 
					19f329d2f4 | ||
| 
						 | 
					0b86c06c3c | ||
| 
						 | 
					fea9d9a7f0 | ||
| 
						 | 
					9dfd2b2737 | ||
| 
						 | 
					de295bd0c6 | ||
| 
						 | 
					6f44445958 | ||
| 
						 | 
					52dcb4aaa3 | ||
| 
						 | 
					c6d6ed0c9c | ||
| 
						 | 
					b778c72f81 | ||
| 
						 | 
					32715e1144 | ||
| 
						 | 
					ec04e08707 | ||
| 
						 | 
					dd05e60ced | ||
| 
						 | 
					9ef74594df | ||
| 
						 | 
					59e9637647 | ||
| 
						 | 
					35077afb68 | ||
| 
						 | 
					02b064a591 | ||
| 
						 | 
					839083bb52 | ||
| 
						 | 
					1364e6631c | ||
| 
						 | 
					953172c6c6 | ||
| 
						 | 
					0525de4f18 | ||
| 
						 | 
					9380347f04 | ||
| 
						 | 
					112b69860f | ||
| 
						 | 
					d21dde73ba | ||
| 
						 | 
					9b08de926b | ||
| 
						 | 
					f60d42e901 | ||
| 
						 | 
					9e5ce59a21 | ||
| 
						 | 
					95dc83bfbc | ||
| 
						 | 
					14b153c1a4 | ||
| 
						 | 
					3cc4c01485 | ||
| 
						 | 
					414f398498 | ||
| 
						 | 
					107b23819d | ||
| 
						 | 
					d2b3144070 | ||
| 
						 | 
					cddb29507d | ||
| 
						 | 
					399200e248 | ||
| 
						 | 
					ffa7443395 | ||
| 
						 | 
					6c773fb4d0 | ||
| 
						 | 
					98d2b43a7b | ||
| 
						 | 
					5ffa1c7fd7 | ||
| 
						 | 
					026472ce5e | ||
| 
						 | 
					e82baa17ca | ||
| 
						 | 
					adc1e33f7e | ||
| 
						 | 
					e7f45ce31f | ||
| 
						 | 
					d0a2e30137 | ||
| 
						 | 
					17496f3c2b | ||
| 
						 | 
					c47b37ea68 | ||
| 
						 | 
					7b2e8f9efd | ||
| 
						 | 
					000a2c19b4 | ||
| 
						 | 
					17de4e5dfd | ||
| 
						 | 
					1afcc37803 | ||
| 
						 | 
					c4f8b1559c | ||
| 
						 | 
					fbefd68b2d | ||
| 
						 | 
					14835a2262 | ||
| 
						 | 
					3054046e18 | ||
| 
						 | 
					f81bb7e2c4 | ||
| 
						 | 
					b5f713124b | ||
| 
						 | 
					c0f5586743 | ||
| 
						 | 
					9b16bfe0e7 | ||
| 
						 | 
					c3545b54f3 | ||
| 
						 | 
					fdfa6dbb0e | ||
| 
						 | 
					0b3f8750e7 | ||
| 
						 | 
					39eb3384f6 | ||
| 
						 | 
					82e5478d0e | ||
| 
						 | 
					391d12db48 | ||
| 
						 | 
					0efc1b133e | ||
| 
						 | 
					7b544b9866 | ||
| 
						 | 
					586d1c9af3 | ||
| 
						 | 
					96b0c695d9 | ||
| 
						 | 
					0fb11190fa | ||
| 
						 | 
					df18158e60 | ||
| 
						 | 
					5e1f180f0b | ||
| 
						 | 
					076c2552ae | ||
| 
						 | 
					270e5c6828 | ||
| 
						 | 
					d796310456 | ||
| 
						 | 
					5400dcc509 | ||
| 
						 | 
					6034866d1c | ||
| 
						 | 
					5e127608c3 | ||
| 
						 | 
					7c2e7e6df4 | ||
| 
						 | 
					219a231917 | ||
| 
						 | 
					8115f3274e | ||
| 
						 | 
					79e5edc1a3 | ||
| 
						 | 
					e045591845 | ||
| 
						 | 
					98feac173e | ||
| 
						 | 
					e6d48ea141 | ||
| 
						 | 
					0f8fe2a6cb | ||
| 
						 | 
					29477075c8 | ||
| 
						 | 
					5e9797035b | ||
| 
						 | 
					c045d33a40 | ||
| 
						 | 
					ffa2e06043 | ||
| 
						 | 
					21d81ea5a9 | ||
| 
						 | 
					fd70988587 | ||
| 
						 | 
					cab458e27a | ||
| 
						 | 
					6e214b2616 | ||
| 
						 | 
					fd1e4a384a | ||
| 
						 | 
					dd5a6fa60f | ||
| 
						 | 
					8b247dd5d8 | ||
| 
						 | 
					8ffc4162e2 | ||
| 
						 | 
					703bdbf88e | ||
| 
						 | 
					301161a7a4 | ||
| 
						 | 
					04d8234844 | ||
| 
						 | 
					d017d5af9c | ||
| 
						 | 
					32aeb7407b | ||
| 
						 | 
					e21b01b97e | ||
| 
						 | 
					a182f6e5f1 | ||
| 
						 | 
					0eb11e7db6 | ||
| 
						 | 
					331d6f14fd | ||
| 
						 | 
					cc0037e9ca | ||
| 
						 | 
					2ba16135cb | ||
| 
						 | 
					b94517376e | ||
| 
						 | 
					b868fc2c8d | ||
| 
						 | 
					f3f0fde861 | ||
| 
						 | 
					bd5cdaafad | ||
| 
						 | 
					015c83761d | ||
| 
						 | 
					0091a628c5 | ||
| 
						 | 
					bfb00e6a14 | ||
| 
						 | 
					d21fabca02 | ||
| 
						 | 
					9d4f11f726 | ||
| 
						 | 
					3908687559 | ||
| 
						 | 
					eaa42da9a6 | ||
| 
						 | 
					cd4bbdcd62 | ||
| 
						 | 
					2b55ac719a | ||
| 
						 | 
					c45e3361ee | ||
| 
						 | 
					785726d67d | ||
| 
						 | 
					1033909f0e | ||
| 
						 | 
					2085f31d9c | ||
| 
						 | 
					5a5ede3156 | ||
| 
						 | 
					bb8334104b | ||
| 
						 | 
					6b9a5b8271 | ||
| 
						 | 
					bfa634493d | ||
| 
						 | 
					a4d4d390be | ||
| 
						 | 
					d07572e1b7 | ||
| 
						 | 
					2ee9d92599 | ||
| 
						 | 
					b877ef24c4 | ||
| 
						 | 
					c6a037e9dd | ||
| 
						 | 
					7faa48ae04 | ||
| 
						 | 
					93d600c0a4 | ||
| 
						 | 
					6e24d33517 | ||
| 
						 | 
					d65e603acd | ||
| 
						 | 
					d87f5b2f24 | ||
| 
						 | 
					25d5de8fd9 | ||
| 
						 | 
					b5cf79f747 | ||
| 3f098817ef | |||
| 
						 | 
					a25ccbd8f2 | ||
| 
						 | 
					8807e954c4 | ||
| 
						 | 
					4aa5a89ee0 | ||
| 
						 | 
					46a0bfedd1 | ||
| 
						 | 
					803aa1c637 | ||
| 
						 | 
					fb186a3867 | ||
| 
						 | 
					c9b64b64fa | ||
| 
						 | 
					9cce9f8ce8 | ||
| 
						 | 
					5a41f1ef20 | ||
| 
						 | 
					6e3afc29f3 | ||
| 
						 | 
					7c29fbd36f | ||
| 
						 | 
					593be166d1 | ||
| 
						 | 
					ca0270967c | ||
| 
						 | 
					3a187f88f4 | ||
| 
						 | 
					f2362cc277 | ||
| 
						 | 
					444e44eb9d | ||
| 
						 | 
					c0f8313164 | ||
| 
						 | 
					d6622a1156 | ||
| 
						 | 
					92004a2ed6 | ||
| 
						 | 
					5f6d7ac028 | ||
| 
						 | 
					7cedc4942b | ||
| 
						 | 
					091cd8015f | ||
| 
						 | 
					63955056ec | ||
| 
						 | 
					1e975be896 | ||
| 
						 | 
					18e53f7fed | ||
| 
						 | 
					b5e4c2c2db | ||
| 
						 | 
					0a97bad6c9 | ||
| 
						 | 
					dec9ef200b | ||
| 
						 | 
					7f47539fb1 | ||
| 
						 | 
					9c7bedca9e | ||
| 
						 | 
					1d282ddc80 | ||
| 
						 | 
					0d86c4903b | ||
| 
						 | 
					791322d7fa | ||
| 
						 | 
					63db2d99e7 | ||
| 
						 | 
					8400e7d302 | ||
| 
						 | 
					533a8c70b3 | ||
| 
						 | 
					852a3c86f6 | ||
| 
						 | 
					b3e8072403 | ||
| 
						 | 
					b7c03dea27 | ||
| 
						 | 
					ee05403c50 | ||
| 
						 | 
					c1558abb0f | ||
| 
						 | 
					901b752463 | ||
| 
						 | 
					c88368b792 | ||
| 
						 | 
					bfffe2c585 | ||
| 
						 | 
					5f890ee8ab | ||
| 
						 | 
					ef76a663bc | ||
| 
						 | 
					fccd37c34c | ||
| 
						 | 
					5058b6668c | ||
| 
						 | 
					1878a74a12 | ||
| 
						 | 
					897c2c00ef | ||
| 
						 | 
					08d518b7fe | ||
| 
						 | 
					de77674663 | ||
| 
						 | 
					4fb4674374 | ||
| 
						 | 
					0ddab761be | ||
| 
						 | 
					f5dd2f5baf | ||
| 
						 | 
					b12c52d40f | ||
| 
						 | 
					bac71fce5b | ||
| 
						 | 
					12ee72a9b3 | ||
| 
						 | 
					170ce2624a | ||
| 
						 | 
					9a6698876a | ||
| 
						 | 
					bf9af1fb23 | ||
| 
						 | 
					5c9c2a1939 | ||
| 
						 | 
					4b2a61f1b8 | ||
| 
						 | 
					62bc463c63 | ||
| 
						 | 
					7019bfad3b | ||
| 
						 | 
					8346c985d5 | ||
| 
						 | 
					da30767353 | ||
| 
						 | 
					57d9528a0b | ||
| 
						 | 
					6ce48f124a | ||
| 
						 | 
					00ea216608 | ||
| 
						 | 
					ac7ca6d901 | ||
| 
						 | 
					47819f004c | ||
| 
						 | 
					0fab3e837b | ||
| 
						 | 
					38aaba28ee | ||
| 
						 | 
					3ed4126a31 | ||
| 
						 | 
					aa0fdf6d08 | ||
| 
						 | 
					b6fef599bf | ||
| 
						 | 
					aac1734a70 | ||
| 
						 | 
					2355f1a3f2 | ||
| 
						 | 
					fbec1eed51 | ||
| 
						 | 
					229692cc34 | ||
| 
						 | 
					375ef42393 | ||
| 
						 | 
					6deda13754 | ||
| eb61085951 | |||
| 
						 | 
					039845b742 | ||
| 
						 | 
					a7e7fd2b37 | ||
| 
						 | 
					12e147a107 | ||
| 
						 | 
					fd852865e0 | ||
| 
						 | 
					35ec935741 | ||
| 
						 | 
					19cfd82dad | ||
| 
						 | 
					87cfad3d6c | ||
| 
						 | 
					8e31614c4b | ||
| 
						 | 
					a177d15641 | ||
| 
						 | 
					2b4c486043 | ||
| 
						 | 
					ed24d28163 | ||
| 
						 | 
					1bc96141e6 | ||
| 
						 | 
					c7000aeaab | ||
| 
						 | 
					5c5129b534 | ||
| 
						 | 
					0dabda6f6f | ||
| 
						 | 
					92de9a693b | ||
| 
						 | 
					a71aebcae1 | ||
| 
						 | 
					61596b16d2 | ||
| 
						 | 
					104eb3420b | ||
| 
						 | 
					70b8df3e9c | ||
| 
						 | 
					cac41092e4 | ||
| 
						 | 
					7ddc281ab6 | ||
| 
						 | 
					c092ff6da1 | ||
| 
						 | 
					54780a4582 | ||
| 
						 | 
					44f5a72d1a | ||
| 
						 | 
					0d378974bf | ||
| 
						 | 
					028da5c2e3 | ||
| 
						 | 
					d8dbb890aa | ||
| 
						 | 
					56c006ebd6 | ||
| 
						 | 
					067088bbff | ||
| 
						 | 
					52d4e56674 | ||
| 
						 | 
					6e6902c28b | ||
| 
						 | 
					084823182a | ||
| 
						 | 
					7478c104fc | ||
| 
						 | 
					065b7ecc0d | ||
| 
						 | 
					b054aca50b | ||
| 
						 | 
					f9e7a00ba9 | ||
| 
						 | 
					f1f48011ac | ||
| 
						 | 
					427a1ce299 | ||
| 
						 | 
					f43cec34ca | ||
| 
						 | 
					d64c9d2050 | ||
| 
						 | 
					b2b2c57a38 | ||
| 
						 | 
					155b845194 | ||
| 
						 | 
					9b578808fb | ||
| 
						 | 
					03164dd38d | ||
| 
						 | 
					2b82766452 | ||
| 
						 | 
					3eef6e9127 | ||
| 
						 | 
					77f09900a2 | ||
| 
						 | 
					50d77a4e5d | ||
| 
						 | 
					2d31b0a3f8 | ||
| 
						 | 
					b84d0bac4d | ||
| 
						 | 
					1ff3a37c60 | ||
| 
						 | 
					7e95d924c9 | ||
| a15b532a02 | |||
| 
						 | 
					3e00fbc9b0 | ||
| 
						 | 
					846e460075 | ||
| 
						 | 
					a32b14bbb4 | ||
| 
						 | 
					084877eb52 | ||
| 
						 | 
					97e74f9734 | ||
| 
						 | 
					d328de198d | ||
| 
						 | 
					a9fc26ac13 | ||
| 
						 | 
					40f7046696 | ||
| 
						 | 
					894995176e | ||
| 
						 | 
					5246ea7b6f | ||
| 
						 | 
					ed8b768c4a | ||
| 
						 | 
					825caa14de | ||
| 
						 | 
					d5c396cbfc | ||
| 
						 | 
					5427783fdf | ||
| 
						 | 
					d95425b08a | ||
| 
						 | 
					76420d9849 | ||
| 
						 | 
					bebc604438 | ||
| 
						 | 
					9dae4f2e38 | ||
| 
						 | 
					d126542dc6 | ||
| 
						 | 
					ab6c8d56f1 | ||
| 
						 | 
					fb4dd351c7 | ||
| 
						 | 
					10dc65cc46 | ||
| 
						 | 
					9a2115f762 | ||
| 
						 | 
					eeba6df476 | ||
| 
						 | 
					ac42e81a64 | ||
| 
						 | 
					af70862a7a | ||
| 
						 | 
					fa6611b5af | ||
| 
						 | 
					db01442580 | ||
| 
						 | 
					ebf79db79e | ||
| 
						 | 
					1b5a3b4ef4 | ||
| 
						 | 
					77262c359c | ||
| 
						 | 
					7f23e0461d | ||
| 
						 | 
					ff4af908a5 | ||
| 
						 | 
					2af0cedd59 | ||
| 
						 | 
					ee41e444ad | ||
| 
						 | 
					b7828651ba | ||
| 
						 | 
					e96f7d5658 | ||
| 
						 | 
					28b73fc524 | ||
| 
						 | 
					7a00c63420 | ||
| 
						 | 
					f4597c546a | ||
| 
						 | 
					e10afc8e75 | ||
| 
						 | 
					0f704402a2 | ||
| 
						 | 
					2504a2c25b | ||
| 
						 | 
					7eb3975543 | ||
| 
						 | 
					60e60dc9bb | ||
| 
						 | 
					008c9d0036 | ||
| 
						 | 
					025c9693cc | ||
| 
						 | 
					ee3c4afdb7 | ||
| 
						 | 
					e2416d0893 | ||
| 
						 | 
					a2bcfeb428 | ||
| 
						 | 
					53f7afd3b3 | ||
| 
						 | 
					75e9b66f6f | ||
| 
						 | 
					d70b1c55b6 | ||
| 
						 | 
					c1e582586d | ||
| 
						 | 
					7a75bfb00c | ||
| 
						 | 
					aacf841de4 | ||
| 
						 | 
					3f918161aa | ||
| 
						 | 
					710c874e6e | ||
| 
						 | 
					07908be090 | ||
| 
						 | 
					02af093043 | ||
| 
						 | 
					67e2d6033d | ||
| 
						 | 
					eca4357892 | ||
| 
						 | 
					7ee3e5b2d6 | ||
| 
						 | 
					7cb8d94323 | ||
| 
						 | 
					84ed570eae | ||
| 
						 | 
					2eea73bfd5 | ||
| 
						 | 
					a571a42421 | ||
| 
						 | 
					79648ac1c6 | ||
| 
						 | 
					02af762e83 | ||
| 
						 | 
					01c34c28e6 | ||
| 
						 | 
					56ddda54b5 | ||
| 
						 | 
					3a803b3135 | ||
| 
						 | 
					72df51e17b | ||
| 
						 | 
					b2f5531194 | ||
| 
						 | 
					19bf49a710 | ||
| 
						 | 
					64354831da | ||
| 
						 | 
					e14edd765f | ||
| 
						 | 
					f9d41243d8 | ||
| 
						 | 
					be7ad06d4a | ||
| 
						 | 
					a616516895 | ||
| 
						 | 
					04721ece03 | ||
| 
						 | 
					c7e8f1133a | ||
| 
						 | 
					47e4bfae57 | ||
| 
						 | 
					8a945194af | ||
| 
						 | 
					aa4a004c29 | ||
| 
						 | 
					9ec5d36bdd | ||
| 
						 | 
					a097933eda | ||
| 
						 | 
					a6f5b1bb63 | ||
| 
						 | 
					e6d01471fe | ||
| 
						 | 
					d4501a9f06 | ||
| 
						 | 
					ec8abea460 | ||
| 
						 | 
					e4ddfa38e0 | ||
| 
						 | 
					21d30bc6d9 | ||
| 
						 | 
					2a1ff6e49c | ||
| 
						 | 
					6762cb875c | ||
| 
						 | 
					6edf516a1f | ||
| 
						 | 
					7e56a49e23 | ||
| 
						 | 
					fa5aea80c5 | ||
| 
						 | 
					0f4fa41574 | ||
| 
						 | 
					5d6dd97bba | ||
| 
						 | 
					37e2944272 | ||
| 
						 | 
					4e0eace837 | ||
| 
						 | 
					faa8318b3b | ||
| 
						 | 
					08da36149c | ||
| 
						 | 
					56870d0db1 | ||
| 
						 | 
					4d47ce440c | ||
| 
						 | 
					958f57d895 | ||
| 
						 | 
					04886efd85 | ||
| 
						 | 
					d980798d64 | ||
| 
						 | 
					414a9aae6c | ||
| 
						 | 
					a7f475ca04 | ||
| 
						 | 
					3c53680018 | ||
| 
						 | 
					f0ad647303 | ||
| 
						 | 
					b35e03b6b1 | ||
| 
						 | 
					2b1392af2f | ||
| 
						 | 
					a3d0e293ee | ||
| 
						 | 
					0200002b8c | ||
| 
						 | 
					f4e2142089 | ||
| 
						 | 
					49a90f27a8 | ||
| 
						 | 
					2ae60ca041 | ||
| 
						 | 
					6b475ab269 | ||
| 
						 | 
					b302b0c094 | ||
| 
						 | 
					40aa69cf3a | ||
| 
						 | 
					5346fbf2c9 | ||
| 
						 | 
					92e6bdee12 | ||
| 
						 | 
					71f275b2aa | ||
| 
						 | 
					6dc0d0af33 | ||
| 
						 | 
					59a9e53378 | ||
| 
						 | 
					122768d339 | ||
| 
						 | 
					fa3c60c0d8 | ||
| 
						 | 
					61905bfcf5 | ||
| 
						 | 
					3e68013631 | ||
| 
						 | 
					b46123f2e1 | ||
| 
						 | 
					109869641f | ||
| 
						 | 
					e8a2305de0 | ||
| 
						 | 
					f62975a1f8 | ||
| 
						 | 
					5bb6f9aa31 | ||
| 
						 | 
					1ab8541a6c | ||
| 
						 | 
					038c03bef3 | ||
| 
						 | 
					e51dc29e2f | ||
| 
						 | 
					c6047f887a | ||
| 
						 | 
					0506d68427 | ||
| 
						 | 
					c3d666acaf | ||
| 
						 | 
					e93b1d76d1 | ||
| 
						 | 
					acf1e43f81 | ||
| 
						 | 
					f383fd87b1 | ||
| 
						 | 
					cfded513cd | ||
| 
						 | 
					16ff3cd8df | ||
| 
						 | 
					38032626a6 | ||
| 
						 | 
					aa7d3a7911 | ||
| 
						 | 
					98262647a9 | ||
| 
						 | 
					5868abe97b | ||
| 
						 | 
					71aad16256 | ||
| 
						 | 
					e275da84de | ||
| 
						 | 
					a6cc7f06cf | ||
| 
						 | 
					c1178c8eeb | ||
| 
						 | 
					3c031ca978 | ||
| 
						 | 
					8e02406d8f | ||
| 
						 | 
					8dbdabcc5e | ||
| 
						 | 
					488d8989c5 | ||
| 
						 | 
					9e14b35da8 | ||
| 
						 | 
					7b4879cb72 | ||
| 
						 | 
					74cfb455c5 | ||
| 
						 | 
					0110487722 | ||
| 
						 | 
					68b9b0bc2a | ||
| 
						 | 
					4616f8f809 | ||
| 
						 | 
					287d71bd25 | ||
| 
						 | 
					c1ffe4d9f2 | ||
| 
						 | 
					4c517bdb2b | ||
| 
						 | 
					110582491f | ||
| 
						 | 
					5dd1d39d20 | ||
| 
						 | 
					1771bc2a83 | ||
| 
						 | 
					87c98ebb01 | ||
| 
						 | 
					4af5a80b0c | ||
| 
						 | 
					fee2ffe559 | ||
| 
						 | 
					8878f8916b | ||
| 
						 | 
					14e3359a9e | ||
| 
						 | 
					918d955fd2 | ||
| 
						 | 
					92cfa0e543 | ||
| 
						 | 
					c2bd33e483 | ||
| 
						 | 
					f42ec82f21 | ||
| 
						 | 
					7affff568a | ||
| 
						 | 
					4f750933fd | ||
| 
						 | 
					50b69d564a | ||
| 
						 | 
					eb18f4f348 | ||
| 
						 | 
					d5f3fe52c8 | ||
| 
						 | 
					bb1bc6eeb7 | ||
| 
						 | 
					53844fd0dc | ||
| 
						 | 
					14938c29ce | ||
| 
						 | 
					8bf501aaf2 | ||
| 
						 | 
					9d05f68b51 | ||
| 
						 | 
					ee2524cd1d | ||
| 
						 | 
					5c81661d47 | ||
| 
						 | 
					fb96c9c127 | ||
| 
						 | 
					6c456f9383 | ||
| 
						 | 
					d220fc2723 | ||
| 
						 | 
					a2447dfb42 | ||
| 
						 | 
					cee3919908 | ||
| 
						 | 
					0feadd2922 | ||
| 
						 | 
					a7c99506d9 | ||
| 
						 | 
					f012930775 | ||
| 
						 | 
					ddbdb69658 | ||
| 
						 | 
					c84ebb94d1 | ||
| 
						 | 
					3de6395ae3 | ||
| 
						 | 
					6bb7ebec48 | ||
| 
						 | 
					a192caf88f | ||
| 
						 | 
					e805c74d31 | ||
| 
						 | 
					318e873481 | ||
| 
						 | 
					0d15898f58 | ||
| 
						 | 
					971e82784c | ||
| 
						 | 
					90d9ea656f | ||
| 
						 | 
					a3d1c8a0e7 | ||
| 
						 | 
					913b2ca537 | ||
| 
						 | 
					3fe99c8b82 | ||
| 
						 | 
					27b8183de2 | ||
| 
						 | 
					f32d8e1bfe | ||
| 
						 | 
					d019f34a83 | ||
| 
						 | 
					bb9c481f02 | ||
| 
						 | 
					82da844b42 | ||
| 
						 | 
					667a09983c | ||
| 
						 | 
					cf429ee359 | ||
| 
						 | 
					6f3e2e2d7d | ||
| 
						 | 
					35b88fb42b | ||
| 
						 | 
					a428c325a9 | ||
| 
						 | 
					3219ecd608 | ||
| 
						 | 
					0d8dc4f798 | ||
| 
						 | 
					f3c70bf5b5 | ||
| 
						 | 
					f5acc66db7 | ||
| 
						 | 
					fdce4769f2 | ||
| 
						 | 
					35b1996704 | ||
| 
						 | 
					3c8e7ed255 | ||
| 
						 | 
					acaed1f910 | ||
| 
						 | 
					91109e31d8 | ||
| 
						 | 
					2b6eeea01d | ||
| 
						 | 
					a15de23e57 | ||
| 
						 | 
					efa9ba485d | ||
| d4ddd72701 | |||
| 
						 | 
					1e9af2cd42 | ||
| 
						 | 
					3c05db74f6 | ||
| 
						 | 
					edc54b0377 | ||
| 
						 | 
					8e53a3fa8a | ||
| 
						 | 
					7f3b413111 | ||
| 
						 | 
					1ccba05658 | ||
| 
						 | 
					c46adf1434 | ||
| 
						 | 
					1cac8b080c | ||
| 
						 | 
					b58194ef63 | ||
| 
						 | 
					b28c0d6f66 | ||
| 
						 | 
					3cf19b0f30 | ||
| 
						 | 
					0eb47b9af3 | ||
| 
						 | 
					4ab60ff109 | ||
| 
						 | 
					db4a578273 | ||
| 
						 | 
					b1c3422f45 | ||
| 
						 | 
					3fafd7a76e | ||
| 
						 | 
					cd5722aca5 | ||
| 
						 | 
					dcb4a4d261 | ||
| 
						 | 
					e312e56997 | ||
| 
						 | 
					2f60a959b4 | ||
| 
						 | 
					25b45a5a23 | ||
| 
						 | 
					4651b8c7e9 | ||
| 
						 | 
					50608b54ed | ||
| 
						 | 
					b0a077a35f | ||
| 
						 | 
					6a5ca2ab36 | ||
| 
						 | 
					2b0345165e | ||
| 
						 | 
					8885580986 | ||
| 
						 | 
					6d7713a758 | ||
| 
						 | 
					457f928e79 | ||
| 
						 | 
					a71a461e45 | ||
| 
						 | 
					a09b8af3f9 | ||
| 
						 | 
					382efdbfcb | ||
| 
						 | 
					17b5cc78d3 | ||
| 
						 | 
					36a0ab9054 | ||
| 
						 | 
					27c2bd997d | ||
| 
						 | 
					d7938f54f2 | ||
| 
						 | 
					cfbe9c2ede | ||
| 
						 | 
					df28002b72 | ||
| 
						 | 
					66ed8082d0 | ||
| 
						 | 
					c2d256bafb | ||
| 
						 | 
					f48d9c33a5 | ||
| 
						 | 
					6d4e843397 | ||
| 
						 | 
					0513cd3964 | ||
| 
						 | 
					72bb2e57de | ||
| 
						 | 
					84c5da3069 | ||
| 
						 | 
					b35099cb70 | ||
| 
						 | 
					3fd3bfc76d | ||
| 
						 | 
					492a6303cb | ||
| 
						 | 
					e7807b3136 | ||
| 
						 | 
					03a461ac0e | ||
| 
						 | 
					7e0f76e0ad | ||
| 
						 | 
					9812ce5b8d | ||
| 
						 | 
					12f75e4167 | ||
| 
						 | 
					260368e010 | ||
| 
						 | 
					f87a9eec3d | ||
| 
						 | 
					1e837d596e | ||
| 
						 | 
					dcc686e42b | ||
| 
						 | 
					2f81c100af | ||
| 
						 | 
					a511a48d77 | ||
| 
						 | 
					1e5322e5c5 | ||
| 
						 | 
					199a210d2f | ||
| 
						 | 
					5b7667af32 | ||
| 
						 | 
					11243f85b6 | ||
| 
						 | 
					3c40826d34 | ||
| 
						 | 
					560d874d2f | ||
| 
						 | 
					e84366fd23 | ||
| 
						 | 
					caacedc0a8 | ||
| 
						 | 
					84d140a1f6 | ||
| 
						 | 
					ee886c4482 | ||
| 
						 | 
					1801561c2d | ||
| 
						 | 
					7689106aa1 | ||
| 
						 | 
					1564e155b7 | ||
| 
						 | 
					44bac3c379 | ||
| 
						 | 
					0ddee9b7d2 | ||
| 
						 | 
					688566c535 | ||
| 
						 | 
					7185e242ff | ||
| 
						 | 
					ec27299f4b | ||
| 
						 | 
					1ece16bfcd | ||
| 
						 | 
					0cfd0dd9ef | ||
| 
						 | 
					a77ee2e941 | ||
| 
						 | 
					49b8a573a1 | ||
| 
						 | 
					a2055af900 | ||
| 
						 | 
					cbf96967f1 | ||
| 
						 | 
					f1013037b4 | ||
| 
						 | 
					e4bfb4530a | ||
| 
						 | 
					78e0042ecc | ||
| 
						 | 
					82e12e3092 | ||
| 
						 | 
					1ebef0d7a3 | ||
| 
						 | 
					6b4050ab9c | ||
| 
						 | 
					cf5e9aa2bb | ||
| 
						 | 
					a3250e77d4 | ||
| 
						 | 
					df027ca472 | ||
| 
						 | 
					4c89e3f5fa | ||
| 
						 | 
					3673040722 | ||
| 
						 | 
					96c8ba2fb5 | ||
| 
						 | 
					47cf1d0c70 | ||
| 
						 | 
					06a6a27e44 | ||
| 
						 | 
					5de3798afc | ||
| 
						 | 
					6ac094a59c | ||
| 
						 | 
					84c81ca02d | ||
| 
						 | 
					0e3f872098 | ||
| 
						 | 
					5fd3747b19 | ||
| 
						 | 
					4694900190 | ||
| 
						 | 
					05738bfce1 | ||
| 
						 | 
					6f88ee4ec6 | ||
| 
						 | 
					cc51bdca3b | ||
| 
						 | 
					13ca79856e | ||
| 
						 | 
					79a9edc730 | ||
| 
						 | 
					9eb669591e | ||
| 
						 | 
					55a87a30ec | ||
| 
						 | 
					a912029462 | ||
| 
						 | 
					1e90782797 | ||
| 
						 | 
					51a292e09b | ||
| 
						 | 
					50fccf47d4 | ||
| 
						 | 
					9bd63b5d4a | ||
| 
						 | 
					48db17a93f | ||
| 
						 | 
					c333707cba | ||
| 
						 | 
					5f5b1f7cbe | ||
| 
						 | 
					cfdf56475e | ||
| 
						 | 
					fde3902d06 | ||
| 
						 | 
					d7bbb0f583 | ||
| 
						 | 
					21ca2b746c | ||
| 
						 | 
					6a79aef015 | ||
| 
						 | 
					4a269674b7 | ||
| 
						 | 
					eea4decdd1 | ||
| 
						 | 
					d4d0f25a48 | ||
| 
						 | 
					1cb44092fc | ||
| 
						 | 
					4207e46622 | ||
| 
						 | 
					f6ea16159e | ||
| 
						 | 
					9047ea4cb0 | ||
| 
						 | 
					d7f5a696c1 | ||
| 
						 | 
					6f614cd3f3 | ||
| 
						 | 
					85c1930acf | ||
| 
						 | 
					96bd0c004c | ||
| 
						 | 
					b693af9055 | ||
| 
						 | 
					6dcb692986 | ||
| 
						 | 
					e2e652e469 | ||
| 
						 | 
					b73941f0c3 | ||
| 
						 | 
					c304522131 | ||
| 
						 | 
					92325b44ba | ||
| 
						 | 
					074d90f5a4 | ||
| 
						 | 
					7056b56b3c | ||
| 
						 | 
					d5c3b85e3f | ||
| 
						 | 
					1ab2249448 | ||
| 
						 | 
					a15cff21c6 | ||
| 
						 | 
					45aa36cc62 | ||
| 
						 | 
					d3f833179b | ||
| 
						 | 
					abe552b969 | ||
| 
						 | 
					856eafb006 | ||
| 
						 | 
					f27d60add9 | ||
| 
						 | 
					8ad460c54c | ||
| 
						 | 
					72c0824961 | ||
| 
						 | 
					5b7e3490ef | ||
| 
						 | 
					dd61e6bfc3 | ||
| 
						 | 
					204971c6e2 | ||
| 
						 | 
					3552f0ae54 | ||
| 
						 | 
					42cb848829 | ||
| 
						 | 
					e0ac661419 | ||
| 
						 | 
					6414c3bc39 | ||
| 
						 | 
					4f9bd7e4db | ||
| 
						 | 
					bf539f2196 | ||
| 
						 | 
					20b60ea904 | ||
| 
						 | 
					f53c8baef3 | ||
| 
						 | 
					be06cd250e | ||
| 
						 | 
					003657c973 | ||
| 
						 | 
					4fd144c0a6 | ||
| 
						 | 
					c44c904a61 | ||
| 
						 | 
					78146b0e14 | ||
| 
						 | 
					deaae7ab5c | ||
| 
						 | 
					3d2c2f0b87 | ||
| 
						 | 
					6a0c033a64 | ||
| 
						 | 
					6710316a18 | ||
| 
						 | 
					61882821e0 | ||
| 
						 | 
					969546bcf0 | ||
| 
						 | 
					d0ae7ffc25 | ||
| 
						 | 
					b71bcc2422 | ||
| 
						 | 
					24010dcb48 | ||
| 
						 | 
					0a76627345 | ||
| 
						 | 
					bbf98befb8 | ||
| 
						 | 
					316903fbf0 | ||
| 
						 | 
					66a9788435 | ||
| 
						 | 
					bf73363f22 | ||
| 
						 | 
					d6c30ab12a | ||
| 
						 | 
					0d1f1010c2 | ||
| 
						 | 
					83bb827edf | ||
| 
						 | 
					c146b96691 | ||
| 
						 | 
					6cabaf274d | ||
| 
						 | 
					1edb5f6fd9 | ||
| 
						 | 
					c4d7e02abd | ||
| 
						 | 
					a4e0d675e1 | ||
| 
						 | 
					8a8032478a | ||
| 
						 | 
					ac53c9a658 | ||
| 
						 | 
					b02ff466fa | ||
| 
						 | 
					6bd0f2d096 | ||
| 
						 | 
					63f8ae466f | ||
| 
						 | 
					841b883825 | ||
| 
						 | 
					ba10793b0b | ||
| 
						 | 
					d4d5593238 | ||
| 
						 | 
					d5db5489be | ||
| 
						 | 
					d06db93d59 | ||
| 
						 | 
					8c14d0c476 | ||
| 
						 | 
					04debf6f25 | ||
| 
						 | 
					c289774b00 | ||
| 
						 | 
					9dd8ee330d | ||
| 
						 | 
					5d5856c193 | ||
| 
						 | 
					686e172207 | ||
| 
						 | 
					fef6268f8d | ||
| 
						 | 
					556dbff99d | ||
| 
						 | 
					69ac78d76a | ||
| 
						 | 
					4018dfc8de | ||
| 
						 | 
					353bb9bc9a | ||
| 
						 | 
					73cdf10f1f | ||
| 
						 | 
					1a55d46645 | ||
| 
						 | 
					cae3976ef1 | ||
| 
						 | 
					da28a3d367 | ||
| 
						 | 
					ca8c29ee60 | ||
| 
						 | 
					f62253b833 | ||
| 
						 | 
					f2c2e2dd5a | ||
| 
						 | 
					94b98430cb | ||
| 
						 | 
					b19d0a40d7 | ||
| 
						 | 
					0c229faf7e | ||
| 
						 | 
					3092e310ac | ||
| 
						 | 
					671911762d | ||
| 
						 | 
					7d68839e9e | ||
| 
						 | 
					5341a925c1 | ||
| 
						 | 
					3adb8fb389 | ||
| 
						 | 
					8927a37fb7 | ||
| 
						 | 
					b085b2cda5 | ||
| 
						 | 
					daf9397764 | ||
| 
						 | 
					2984504c88 | ||
| 
						 | 
					35e8386c24 | ||
| 
						 | 
					2108285d64 | ||
| 
						 | 
					a3133fec25 | ||
| 
						 | 
					314ae3dc78 | ||
| 
						 | 
					695be59083 | ||
| 
						 | 
					c962678dd6 | ||
| 
						 | 
					3a1262703f | ||
| 
						 | 
					20035210bd | ||
| 
						 | 
					7f84b5d741 | ||
| 
						 | 
					8bca2cd4b3 | ||
| 
						 | 
					ac8ad169ae | ||
| 
						 | 
					5537994002 | ||
| 
						 | 
					5af5d12f3e | ||
| 
						 | 
					b2c92b88cc | ||
| 
						 | 
					1b32af1722 | ||
| 
						 | 
					5bfb7d6c77 | ||
| 
						 | 
					12c8248b5f | ||
| 
						 | 
					820ef6dab6 | ||
| 
						 | 
					87884db667 | ||
| 
						 | 
					94077d264e | ||
| 
						 | 
					3351c8b4c3 | ||
| 
						 | 
					a8214af2fe | ||
| 
						 | 
					9a372812c7 | ||
| 
						 | 
					3fa9015b8e | ||
| 
						 | 
					3b5a8b331e | ||
| 
						 | 
					b3a04e797e | ||
| 
						 | 
					92e2f2c7cc | ||
| 
						 | 
					ad23d5b8db | ||
| 
						 | 
					62410eaf4b | ||
| 
						 | 
					fd80b6fc67 | ||
| 
						 | 
					5d130cc45c | ||
| 
						 | 
					1c3c2cf6d8 | ||
| 
						 | 
					171e856ec8 | ||
| 
						 | 
					beaa71df0a | ||
| 
						 | 
					7eaf71176b | ||
| 
						 | 
					2c1f6a16e1 | ||
| 
						 | 
					e82653782e | ||
| 
						 | 
					e52b5f59c2 | ||
| 
						 | 
					8a7e4d38a7 | ||
| 
						 | 
					47dd5e37cb | ||
| 
						 | 
					e277ae57ef | ||
| 
						 | 
					69f052b611 | ||
| 
						 | 
					e4eacf02ca | ||
| 
						 | 
					30c3561b6b | ||
| 
						 | 
					5f2850366e | ||
| 
						 | 
					1cb7eec31f | ||
| 
						 | 
					cd7883d25d | ||
| 
						 | 
					62b49b2a3a | ||
| 
						 | 
					4c814a0a28 | ||
| 
						 | 
					36dde4e7f2 | ||
| 
						 | 
					649f63d882 | ||
| 
						 | 
					55a28f5d25 | ||
| 
						 | 
					6c09421375 | ||
| 
						 | 
					79359f77cc | ||
| 
						 | 
					f79a7a7be1 | ||
| 
						 | 
					73482cf13a | ||
| 
						 | 
					0910c455d3 | ||
| 
						 | 
					f5e06bc55a | ||
| 
						 | 
					e7ae08c38d | ||
| 
						 | 
					6da0abc085 | ||
| 
						 | 
					b34df9dd81 | ||
| 
						 | 
					6f02069746 | ||
| 
						 | 
					d4c7207ef3 | ||
| 
						 | 
					04f05c30d1 | ||
| 
						 | 
					9473ac514c | ||
| 
						 | 
					bf2f40828e | ||
| 
						 | 
					fe485f4433 | ||
| 
						 | 
					53bc986ce5 | ||
| 
						 | 
					981d2b3308 | ||
| 
						 | 
					5d3e85bc31 | ||
| 
						 | 
					000503fad7 | ||
| 
						 | 
					065f034059 | ||
| 
						 | 
					fe32ef8e09 | ||
| 
						 | 
					c45313dfa9 | ||
| 
						 | 
					3ef2bbfb19 | ||
| 
						 | 
					cc9c23c848 | ||
| 
						 | 
					935252b115 | ||
| 
						 | 
					0d202b5711 | ||
| 
						 | 
					f9bdb072e8 | ||
| 
						 | 
					9f6e05671d | ||
| 
						 | 
					8addd7913a | ||
| 
						 | 
					83cd7145e3 | ||
| 
						 | 
					a67e3495d0 | ||
| 
						 | 
					a1acdeb92e | ||
| 
						 | 
					b810473e4f | ||
| 
						 | 
					627e925463 | ||
| 
						 | 
					f5cf1136e7 | ||
| 
						 | 
					a4038e1171 | ||
| 
						 | 
					a0cf8f9124 | ||
| 
						 | 
					9fedb3b40b | ||
| 
						 | 
					635e33cdc8 | ||
| 
						 | 
					bd9456ff31 | ||
| 
						 | 
					33d3f33b3c | ||
| 
						 | 
					ddb895b355 | ||
| 
						 | 
					085d77f17e | ||
| 
						 | 
					c831f1f994 | ||
| 
						 | 
					591aea2821 | ||
| 
						 | 
					c09eeca491 | ||
| 
						 | 
					4cf6b0ecf7 | ||
| 
						 | 
					ee944553a9 | ||
| 
						 | 
					6cae41a4e6 | ||
| 
						 | 
					960881fcfe | ||
| 
						 | 
					d26013494d | ||
| 
						 | 
					b29b2fb3cb | ||
| 
						 | 
					7da72ce487 | ||
| 
						 | 
					fc777aeaf3 | ||
| 
						 | 
					9d53d436ae | ||
| 
						 | 
					b81317bdf8 | ||
| 
						 | 
					29f7e33592 | ||
| 
						 | 
					850ca03077 | ||
| 
						 | 
					050ddfae4a | ||
| 
						 | 
					d5116cc697 | ||
| 
						 | 
					b86d170037 | ||
| 
						 | 
					6fa0d6318b | ||
| 
						 | 
					80d3928b0d | ||
| 
						 | 
					17ef205bc6 | ||
| 
						 | 
					b20a1951ad | ||
| 
						 | 
					bf0c0dd564 | ||
| 
						 | 
					1558ad2b9e | ||
| 
						 | 
					5f4f242036 | ||
| 
						 | 
					b3f7ff901f | ||
| 
						 | 
					a59365a582 | ||
| 
						 | 
					dac5966ca4 | ||
| 
						 | 
					3b6a6df4b5 | ||
| 
						 | 
					b047ea47e9 | ||
| 
						 | 
					b652752339 | ||
| 
						 | 
					2a439c85bd | ||
| 
						 | 
					7341cd882f | ||
| 
						 | 
					279f1e5d10 | ||
| 
						 | 
					c256a7aa80 | ||
| 
						 | 
					6a42298257 | ||
| 
						 | 
					f69833a1e1 | ||
| 
						 | 
					eeadca0b8a | ||
| 
						 | 
					dde339070b | ||
| 
						 | 
					1736be3bc3 | ||
| 
						 | 
					a36a635b01 | ||
| 
						 | 
					9310ccc06b | ||
| 
						 | 
					0c2e4eb3cd | ||
| 
						 | 
					d2ce07e227 | ||
| 
						 | 
					b209fe3859 | ||
| 
						 | 
					c94c8288cd | ||
| 
						 | 
					bcb9c44e73 | ||
| 
						 | 
					bbabf546f9 | ||
| 
						 | 
					a7fcc1e264 | ||
| 
						 | 
					b79d058f16 | ||
| 
						 | 
					ddce529c71 | ||
| 
						 | 
					e372f97beb | ||
| 
						 | 
					c2abf4b436 | ||
| 
						 | 
					d247ac4cbb | ||
| 
						 | 
					bb2d7becfd | ||
| 
						 | 
					0f9354becf | ||
| 
						 | 
					a15fa1a3b1 | ||
| 
						 | 
					0198affc74 | ||
| 
						 | 
					abef2fcb2d | ||
| 
						 | 
					0b435ddd83 | ||
| 
						 | 
					9f6427ea57 | ||
| 
						 | 
					60488069c0 | ||
| 
						 | 
					9225bfa691 | ||
| 
						 | 
					7bd456ed7b | ||
| 
						 | 
					c709e6077c | ||
| 
						 | 
					a27d577da8 | ||
| 
						 | 
					8b93492086 | ||
| 
						 | 
					4b1b457cd1 | ||
| 
						 | 
					1d6602bb8e | ||
| 
						 | 
					a6391f44ee | ||
| 
						 | 
					a8c6dbac96 | ||
| 
						 | 
					a7c0400177 | ||
| 
						 | 
					03803ae8e9 | ||
| 
						 | 
					1c2f7bf607 | ||
| 
						 | 
					1ebffa517f | ||
| 
						 | 
					e6dd26d185 | ||
| 
						 | 
					628b35e1be | ||
| 
						 | 
					ebc32aadad | ||
| 
						 | 
					362dfa3380 | ||
| 
						 | 
					dccc0a9129 | ||
| 
						 | 
					c2aa56a7c4 | ||
| 
						 | 
					23d806ca24 | ||
| 
						 | 
					de7d184909 | ||
| 
						 | 
					15ab3f39c6 | ||
| 
						 | 
					ee1768a419 | ||
| 
						 | 
					95ed066539 | ||
| 
						 | 
					4c5132421f | ||
| 
						 | 
					6d81d3be1b | ||
| 
						 | 
					8d307a6fad | ||
| 
						 | 
					62addf1180 | ||
| 
						 | 
					1eab656ca1 | ||
| 
						 | 
					731a3affdc | ||
| 
						 | 
					3e9bb3b021 | ||
| 
						 | 
					c068762c4c | ||
| 
						 | 
					b8ab99b5d3 | ||
| 
						 | 
					a4cf61e8bf | ||
| 
						 | 
					d38cc8f221 | ||
| 
						 | 
					f085ae400c | ||
| 
						 | 
					c1faafcad8 | ||
| 
						 | 
					de93587aff | ||
| 
						 | 
					be497229b6 | ||
| 
						 | 
					e16b7183e9 | ||
| 
						 | 
					ccd83a5e9c | ||
| 
						 | 
					7bbb73574b | ||
| 
						 | 
					a0378f3871 | ||
| 
						 | 
					423f82bae9 | ||
| 
						 | 
					9dfb85d5d2 | ||
| 
						 | 
					6781667641 | ||
| 
						 | 
					b17af3c85f | ||
| 
						 | 
					3100114bc1 | ||
| 
						 | 
					3f80f22e22 | ||
| 
						 | 
					8250ac94df | ||
| 
						 | 
					fbdd669ba7 | ||
| 
						 | 
					cddb4aad08 | ||
| 
						 | 
					3c5dc0ec77 | ||
| 
						 | 
					7e3a33c8f5 | ||
| 
						 | 
					74478830a8 | ||
| 
						 | 
					6a9679377f | ||
| 
						 | 
					72186ea3bb | ||
| 
						 | 
					3647db7a27 | ||
| 
						 | 
					7a92eb8887 | 
							
								
								
									
										15
									
								
								.cirrus.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.cirrus.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# Cirrus CI integration
 | 
			
		||||
# https://cirrus-ci.org
 | 
			
		||||
 | 
			
		||||
test_task:
 | 
			
		||||
  freebsd_instance:
 | 
			
		||||
    matrix:
 | 
			
		||||
      image: freebsd-13-1-release-amd64
 | 
			
		||||
      image: freebsd-12-4-release-amd64
 | 
			
		||||
  env:
 | 
			
		||||
    OS: FreeBSD
 | 
			
		||||
  procfs_script: >
 | 
			
		||||
    [ -f /proc/curproc ] || mount -t procfs proc /proc
 | 
			
		||||
  pkg_install_script: pkg install -y bash gawk gsed meson
 | 
			
		||||
  gsed_hack_script: rm /usr/bin/sed && ln -s /usr/local/bin/gsed /usr/bin/sed
 | 
			
		||||
  test_script: bash ci/cirrus.sh
 | 
			
		||||
							
								
								
									
										31
									
								
								.github/workflows/ci-alpine-linux.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								.github/workflows/ci-alpine-linux.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
name: ci_alpine_linux
 | 
			
		||||
 | 
			
		||||
on: [push, pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
 | 
			
		||||
  alpine:
 | 
			
		||||
    name: Alpine Linux
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    container: alpine:latest
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        compiler:
 | 
			
		||||
          - gcc
 | 
			
		||||
    env:
 | 
			
		||||
      CC: ${{ matrix.compiler }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - run: >-
 | 
			
		||||
          apk --no-cache add \
 | 
			
		||||
            build-base \
 | 
			
		||||
            meson \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            linux-pam \
 | 
			
		||||
            linux-pam-dev \
 | 
			
		||||
            libcap \
 | 
			
		||||
            libcap-dev
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - run: meson setup builddir/
 | 
			
		||||
      - run: meson compile -C builddir
 | 
			
		||||
      - run: meson test --verbose -C builddir
 | 
			
		||||
							
								
								
									
										24
									
								
								.github/workflows/ci-ubuntu.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/ci-ubuntu.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
name: ci_ubuntu
 | 
			
		||||
 | 
			
		||||
on: [push, pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
 | 
			
		||||
  ubuntu:
 | 
			
		||||
    name: Ubuntu
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        compiler:
 | 
			
		||||
          - gcc
 | 
			
		||||
          - clang
 | 
			
		||||
    env:
 | 
			
		||||
      CC: ${{ matrix.compiler }}
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - run: sudo apt-get update -q
 | 
			
		||||
    - run: sudo apt-get install -q -y build-essential libpam-dev meson libcap-dev ${CC}
 | 
			
		||||
    - run: meson setup builddir/
 | 
			
		||||
    - run: ninja -C builddir
 | 
			
		||||
    - run: ninja test --verbose -C builddir
 | 
			
		||||
							
								
								
									
										25
									
								
								.github/workflows/coverity.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/coverity.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# GitHub actions workflow.
 | 
			
		||||
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
 | 
			
		||||
 | 
			
		||||
# https://scan.coverity.com/projects/openrc-openrc
 | 
			
		||||
name: Coverity Scan
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches: [master]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  coverity:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - run: sudo apt-get update -q
 | 
			
		||||
    - run: sudo apt-get install -q -y build-essential libpam-dev meson libcap-dev
 | 
			
		||||
    - run: meson setup builddir/
 | 
			
		||||
      env:
 | 
			
		||||
        CC: gcc
 | 
			
		||||
    - uses: vapier/coverity-scan-action@v1
 | 
			
		||||
      with:
 | 
			
		||||
        command: ninja -C builddir
 | 
			
		||||
        email: ${{ secrets.COVERITY_SCAN_EMAIL }}
 | 
			
		||||
        token: ${{ secrets.COVERITY_SCAN_TOKEN }}
 | 
			
		||||
							
								
								
									
										12
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
*.gz
 | 
			
		||||
 | 
			
		||||
*.diff
 | 
			
		||||
*.patch
 | 
			
		||||
*.orig
 | 
			
		||||
*.rej
 | 
			
		||||
 | 
			
		||||
core
 | 
			
		||||
.gdb_history
 | 
			
		||||
.gdbinit
 | 
			
		||||
 | 
			
		||||
build
 | 
			
		||||
							
								
								
									
										32
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
# Travis build integration.
 | 
			
		||||
# https://docs.travis-ci.com/
 | 
			
		||||
 | 
			
		||||
language: c
 | 
			
		||||
 | 
			
		||||
os:
 | 
			
		||||
  - linux
 | 
			
		||||
 | 
			
		||||
compiler:
 | 
			
		||||
  - gcc
 | 
			
		||||
  - clang
 | 
			
		||||
  - musl-gcc
 | 
			
		||||
 | 
			
		||||
addons:
 | 
			
		||||
  apt:
 | 
			
		||||
    packages:
 | 
			
		||||
    - musl-tools
 | 
			
		||||
 | 
			
		||||
notifications:
 | 
			
		||||
  irc:
 | 
			
		||||
    channels:
 | 
			
		||||
      - "irc.libera.chat#openrc"
 | 
			
		||||
    on_success: always  # options: [always|never|change] default: always
 | 
			
		||||
    on_failure: always  # options: [always|never|change] default: always
 | 
			
		||||
    on_start: false     # default: false
 | 
			
		||||
 | 
			
		||||
before_install:
 | 
			
		||||
  - sudo apt-get update
 | 
			
		||||
  - sudo apt-get install -y shellcheck
 | 
			
		||||
 | 
			
		||||
script:
 | 
			
		||||
  - ./ci/travis.sh
 | 
			
		||||
							
								
								
									
										101
									
								
								AUTHORS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								AUTHORS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
Alessio Ababilov <ilovedevlinux@gmail.com>
 | 
			
		||||
Alexander Berntsen <alexander@plaimi.net>
 | 
			
		||||
Alexander Mezin <mezin.alexander@gmail.com>
 | 
			
		||||
Alexander Tsoy <alexander@tsoy.me>
 | 
			
		||||
Alexander Vershilov <alexander.vershilov@gmail.com>
 | 
			
		||||
Alexander Vershilov <qnikst@gentoo.org>
 | 
			
		||||
Alexander V Vershilov <qnikst@gentoo.org>
 | 
			
		||||
Alexey Shvetsov <alexxy@gentoo.org>
 | 
			
		||||
Alon Bar-Lev <alon.barlev@gmail.com>
 | 
			
		||||
Amadeusz Żołnowski <aidecoe@aidecoe.name>
 | 
			
		||||
Andrew Gregory <andrew.gregory.8@gmail.com>
 | 
			
		||||
Anthony Donnelly <Amzo@archbsd.com>
 | 
			
		||||
Anthony G. Basile <basile@opensource.dyc.edu>
 | 
			
		||||
Anthony G. Basile <blueness@gentoo.org>
 | 
			
		||||
Austin S. Hemmelgarn <ahferroin7@gmail.com>
 | 
			
		||||
Benda Xu <heroxbd@gentoo.org>
 | 
			
		||||
Björn Baumbach <bb@sernet.de>
 | 
			
		||||
Charlie <root@uberlaptop.development.ltl>
 | 
			
		||||
Chris Richards <gizmo@giz-works.com>
 | 
			
		||||
Christian <christian@ch-sc.de>
 | 
			
		||||
Christian Ruppert <idl0r@gentoo.org>
 | 
			
		||||
Christian Wetzig <gentoo@wetzig.de>
 | 
			
		||||
Christopher Head <chead@telus.net>
 | 
			
		||||
Consus <consus@gmx.com>
 | 
			
		||||
Daniel Mierswa <impulze@impulze.org>
 | 
			
		||||
Daniel Robbins <drobbins@funtoo.org>
 | 
			
		||||
Diego Elio Pettenò <flameeyes@flameeyes.eu>
 | 
			
		||||
Diego Elio Pettenò <flameeyes@gmail.com>
 | 
			
		||||
Diego <flameeyes@gentoo.org>
 | 
			
		||||
Dirk Sondermann <ds-gentoo@dyximaq.de>
 | 
			
		||||
Doug Freed <dwfreed@mtu.edu>
 | 
			
		||||
Doug Goldstein <cardoe@cardoe.com>
 | 
			
		||||
Ed Wildgoose <gentoo@wildgooses.com>
 | 
			
		||||
Eray Aslan <eras@gentoo.org>
 | 
			
		||||
Eugeny Shkrigunov <eshkrig@gmail.com>
 | 
			
		||||
Fedja Beader <specing@contact.me.on.irc.freenode.net>
 | 
			
		||||
Flex <frostynova@gmail.com>
 | 
			
		||||
Gabriele Giacone <1o5g4r8o@gmail.com>
 | 
			
		||||
Gary <admin@garyshood.com>
 | 
			
		||||
Gilles Oivier <g.olivier@wanadoo.fr>
 | 
			
		||||
Hank Leininger <hlein@korelogic.com>
 | 
			
		||||
Ian Stakenvicius <axs@gentoo.org>
 | 
			
		||||
Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
 | 
			
		||||
James Le Cuirot <chewi@aura-online.co.uk>
 | 
			
		||||
Jan Psota <jasiu@belsznica.pl>
 | 
			
		||||
Jason A. Donenfeld <Jason@zx2c4.com>
 | 
			
		||||
Jason Zaman <jason@perfinion.com>
 | 
			
		||||
Joe Harvell <jharvell@dogpad.net>
 | 
			
		||||
Joe M <joe9mail@gmail.com>
 | 
			
		||||
Johan Bergström <bugs@bergstroem.nu>
 | 
			
		||||
Jory A. Pratt <anarchy@gentoo.org>
 | 
			
		||||
Juan RP <xtraeme@gmail.com>
 | 
			
		||||
Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
 | 
			
		||||
Kfir Lavi <lavi.kfir@gmail.com>
 | 
			
		||||
Kirill Elagin <kirelagin@gmail.com>
 | 
			
		||||
Lars Wendler <polynomial-c@gentoo.org>
 | 
			
		||||
Lorand Kelemen <lorand.kelemen@indgroup.eu>
 | 
			
		||||
Marc Joliet <marcec@gmx.de>
 | 
			
		||||
Marien Zwart <marienz@gentoo.org>
 | 
			
		||||
Michal Gorny <gentoo@mgorny.alt.pl>
 | 
			
		||||
Mihai Moldovan <ionic@ionic.de>
 | 
			
		||||
Mike Frysinger <vapier@gentoo.org>
 | 
			
		||||
Mike Gilbert <floppym@gentoo.org>
 | 
			
		||||
Nao Nakashima <nao.nakashima@gmail.com>
 | 
			
		||||
Natanael Copa <natanael.copa@gmail.com>
 | 
			
		||||
Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
 | 
			
		||||
Ned Ludd <solar@gentoo.org>
 | 
			
		||||
Olivier Huber <oli.huber@gmail.com>
 | 
			
		||||
Patrick Lauer <patrick@gentoo.org>
 | 
			
		||||
Petre Rodan <petre.rodan@simplex.ro>
 | 
			
		||||
Piotr Karbowski <piotr.karbowski@gmail.com>
 | 
			
		||||
Ralph Sennhauser <sera@gentoo.org>
 | 
			
		||||
Richard Yao <ryao@cs.stonybrook.edu>
 | 
			
		||||
Rick Farina (ZeroChaos) <sidhayn@gmail.com>
 | 
			
		||||
Rick Farina (Zero_Chaos) <zerochaos@gentoo.org>
 | 
			
		||||
Robin H. Johnson <robbat2@gentoo.org>
 | 
			
		||||
Robin H. Johnson <robbat2@orbis-terrarum.net>
 | 
			
		||||
Robin Johnson <robbat2@gentoo.org>
 | 
			
		||||
Roy Marples <roy@marples.name>
 | 
			
		||||
Salah Coronya <salah.coronya@gmail.com>
 | 
			
		||||
Sebastian Thorarensen <indigo176@blinkenshell.org>
 | 
			
		||||
Semen Maryasin <marsoft@ya.ru>
 | 
			
		||||
Sergei Trofimovich <slyfox@gentoo.org>
 | 
			
		||||
Seth Robertson <in-gentoo@baka.org>
 | 
			
		||||
S. Gilles <sgilles@umd.edu>
 | 
			
		||||
Sony Interactive Entertainment, llc.
 | 
			
		||||
Stefan Knoblich <s.knoblich@axsentis.de>
 | 
			
		||||
Stef Simoens <stef.simoens@scarlet.be>
 | 
			
		||||
Steve L <slong@rathaus.eclipse.co.uk>
 | 
			
		||||
Steven Chamberlain <steven@pyro.eu.org>
 | 
			
		||||
Svante Signell <svante.signell@gmail.com>
 | 
			
		||||
Sven Vermeulen <sven.vermeulen@siphos.be>
 | 
			
		||||
Thomas D <whissi@whissi.de>
 | 
			
		||||
Thomas Pfaff <tpfaff@gmx.net>
 | 
			
		||||
Trevor Summers Smith <trevorsummerssmith@gmail.com>
 | 
			
		||||
Walter <walter@pratyeka.org>
 | 
			
		||||
William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
William Hubbs <williamh@gentoo.org>
 | 
			
		||||
Will Miles <wmiles@sgl.com>
 | 
			
		||||
Yun Zheng Hu <hu@fox-it.com>
 | 
			
		||||
Yuta SATOH <nigoro.gentoo@0x100.com>
 | 
			
		||||
							
								
								
									
										30
									
								
								BUSYBOX.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								BUSYBOX.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
Using Busybox as your Default Shell with OpenRC
 | 
			
		||||
===============================================
 | 
			
		||||
 | 
			
		||||
If you have/bin/sh linked to busybox, you need to be aware of several
 | 
			
		||||
incompatibilities between busybox's applets and the standalone
 | 
			
		||||
counterparts. Since it is possible to configure busybox to not include
 | 
			
		||||
these applets or to prefer the standalone counterparts, OpenRC does not
 | 
			
		||||
attempt to support the busybox applets.
 | 
			
		||||
 | 
			
		||||
For now, it is recommended that you disable the following busybox
 | 
			
		||||
configuration settings for best results with OpenRC.
 | 
			
		||||
 | 
			
		||||
CONFIG_START_STOP_DAEMON -- The start-stop-daemon applet is not compatible with
 | 
			
		||||
start-stop-daemon in OpenRC.
 | 
			
		||||
 | 
			
		||||
CONFIG_MOUNT -- The mount applet does not support the -O [no]_netdev options to
 | 
			
		||||
skip over or include network file systems when the -a option is present.
 | 
			
		||||
 | 
			
		||||
CONFIG_UMOUNT -- The umount applet does not support the -O option along with -a.
 | 
			
		||||
 | 
			
		||||
CONFIG_SWAPONOFF -- The swapon applet does not support the -e option
 | 
			
		||||
or recognize the nofail option in fstab.
 | 
			
		||||
 | 
			
		||||
CONFIG_SETFONT -- The setfont applet does not support the -u option from kbd.
 | 
			
		||||
 | 
			
		||||
CONFIG_BB_SYSCTL -- The sysctl applet does not support the --system command
 | 
			
		||||
line switch.
 | 
			
		||||
 | 
			
		||||
There is work to get most of these supported by busybox, so this file
 | 
			
		||||
will be updated as things change.
 | 
			
		||||
							
								
								
									
										142
									
								
								CODE_OF_CONDUCT.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								CODE_OF_CONDUCT.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,142 @@
 | 
			
		||||
# OpenRC Code of Conduct
 | 
			
		||||
 | 
			
		||||
This code of conduct outlines our expectations for participants within the
 | 
			
		||||
community, as well as steps for reporting unacceptable behavior. We are
 | 
			
		||||
committed to providing a welcoming and inspiring community for all and
 | 
			
		||||
expect our code of conduct to be honored. Anyone who violates this code
 | 
			
		||||
of conduct may be banned from the community.
 | 
			
		||||
 | 
			
		||||
## Our Pledge
 | 
			
		||||
 | 
			
		||||
We as members, contributors, and leaders pledge to make participation in our
 | 
			
		||||
community a harassment-free experience for everyone, regardless of age, body
 | 
			
		||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
 | 
			
		||||
identity and expression, level of experience, education, socio-economic status,
 | 
			
		||||
nationality, personal appearance, race, caste, color, religion, or sexual
 | 
			
		||||
identity and orientation.
 | 
			
		||||
 | 
			
		||||
We pledge to act and interact in ways that contribute to an open, welcoming,
 | 
			
		||||
diverse, inclusive, and healthy community.
 | 
			
		||||
 | 
			
		||||
## Our Standards
 | 
			
		||||
 | 
			
		||||
Examples of behavior that contributes to a positive environment for our
 | 
			
		||||
community include:
 | 
			
		||||
 | 
			
		||||
* Demonstrating empathy and kindness toward other people
 | 
			
		||||
* Being respectful of differing opinions, viewpoints, and experiences
 | 
			
		||||
* Giving and gracefully accepting constructive feedback
 | 
			
		||||
* Accepting responsibility and apologizing to those affected by our mistakes,
 | 
			
		||||
  and learning from the experience
 | 
			
		||||
* Focusing on what is best not just for us as individuals, but for the overall
 | 
			
		||||
  community
 | 
			
		||||
 | 
			
		||||
Examples of unacceptable behavior include:
 | 
			
		||||
 | 
			
		||||
* The use of sexualized language or imagery, and sexual attention or advances of
 | 
			
		||||
  any kind
 | 
			
		||||
* Trolling, insulting or derogatory comments, and personal or political attacks
 | 
			
		||||
* Public or private harassment
 | 
			
		||||
* Publishing others' private information, such as a physical or email address,
 | 
			
		||||
  without their explicit permission
 | 
			
		||||
* Other conduct which could reasonably be considered inappropriate in a
 | 
			
		||||
  professional setting
 | 
			
		||||
 | 
			
		||||
## Enforcement Responsibilities
 | 
			
		||||
 | 
			
		||||
Community leaders are responsible for clarifying and enforcing our standards of
 | 
			
		||||
acceptable behavior and will take appropriate and fair corrective action in
 | 
			
		||||
response to any behavior that they deem inappropriate, threatening, offensive,
 | 
			
		||||
or harmful.
 | 
			
		||||
 | 
			
		||||
Community leaders have the right and responsibility to remove, edit, or reject
 | 
			
		||||
comments, commits, code, wiki edits, issues, and other contributions that are
 | 
			
		||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
 | 
			
		||||
decisions when appropriate.
 | 
			
		||||
 | 
			
		||||
## Scope
 | 
			
		||||
 | 
			
		||||
This Code of Conduct applies within all community spaces, and also applies when
 | 
			
		||||
an individual is officially representing the community in public spaces.
 | 
			
		||||
Examples of representing our community include using an official e-mail address,
 | 
			
		||||
posting via an official social media account, or acting as an appointed
 | 
			
		||||
representative at an online or offline event.
 | 
			
		||||
 | 
			
		||||
## Enforcement
 | 
			
		||||
 | 
			
		||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
 | 
			
		||||
reported to the community leaders responsible for enforcement via integrated
 | 
			
		||||
"Report Content" functionality.
 | 
			
		||||
See the GitHub documentation for more details:
 | 
			
		||||
https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam
 | 
			
		||||
 | 
			
		||||
All complaints will be reviewed and investigated promptly and fairly.
 | 
			
		||||
 | 
			
		||||
All community leaders are obligated to respect the privacy and security of the
 | 
			
		||||
reporter of any incident.
 | 
			
		||||
 | 
			
		||||
## Enforcement Guidelines
 | 
			
		||||
 | 
			
		||||
Community leaders will follow these Community Impact Guidelines in determining
 | 
			
		||||
the consequences for any action they deem in violation of this Code of Conduct:
 | 
			
		||||
 | 
			
		||||
### 1. Correction
 | 
			
		||||
 | 
			
		||||
**Community Impact**: Use of inappropriate language or other behavior deemed
 | 
			
		||||
unprofessional or unwelcome in the community.
 | 
			
		||||
 | 
			
		||||
**Consequence**: A private, written warning from community leaders, providing
 | 
			
		||||
clarity around the nature of the violation and an explanation of why the
 | 
			
		||||
behavior was inappropriate. A public apology may be requested.
 | 
			
		||||
 | 
			
		||||
### 2. Warning
 | 
			
		||||
 | 
			
		||||
**Community Impact**: A violation through a single incident or series of
 | 
			
		||||
actions.
 | 
			
		||||
 | 
			
		||||
**Consequence**: A warning with consequences for continued behavior. No
 | 
			
		||||
interaction with the people involved, including unsolicited interaction with
 | 
			
		||||
those enforcing the Code of Conduct, for a specified period of time. This
 | 
			
		||||
includes avoiding interactions in community spaces as well as external channels
 | 
			
		||||
like social media. Violating these terms may lead to a temporary or permanent
 | 
			
		||||
ban.
 | 
			
		||||
 | 
			
		||||
### 3. Temporary Ban
 | 
			
		||||
 | 
			
		||||
**Community Impact**: A serious violation of community standards, including
 | 
			
		||||
sustained inappropriate behavior.
 | 
			
		||||
 | 
			
		||||
**Consequence**: A temporary ban from any sort of interaction or public
 | 
			
		||||
communication with the community for a specified period of time. No public or
 | 
			
		||||
private interaction with the people involved, including unsolicited interaction
 | 
			
		||||
with those enforcing the Code of Conduct, is allowed during this period.
 | 
			
		||||
Violating these terms may lead to a permanent ban.
 | 
			
		||||
 | 
			
		||||
### 4. Permanent Ban
 | 
			
		||||
 | 
			
		||||
**Community Impact**: Demonstrating a pattern of violation of community
 | 
			
		||||
standards, including sustained inappropriate behavior, harassment of an
 | 
			
		||||
individual, or aggression toward or disparagement of classes of individuals.
 | 
			
		||||
 | 
			
		||||
**Consequence**: A permanent ban from any sort of public interaction within the
 | 
			
		||||
community.
 | 
			
		||||
 | 
			
		||||
## Attribution
 | 
			
		||||
 | 
			
		||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
 | 
			
		||||
version 2.1, available at
 | 
			
		||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
 | 
			
		||||
 | 
			
		||||
Community Impact Guidelines were inspired by
 | 
			
		||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
 | 
			
		||||
 | 
			
		||||
For answers to common questions about this code of conduct, see the FAQ at
 | 
			
		||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
 | 
			
		||||
[https://www.contributor-covenant.org/translations][translations].
 | 
			
		||||
 | 
			
		||||
[homepage]: https://www.contributor-covenant.org
 | 
			
		||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
 | 
			
		||||
[Mozilla CoC]: https://github.com/mozilla/diversity
 | 
			
		||||
[FAQ]: https://www.contributor-covenant.org/faq
 | 
			
		||||
[translations]: https://www.contributor-covenant.org/translations
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										79
									
								
								FEATURE-REMOVAL-SCHEDULE.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								FEATURE-REMOVAL-SCHEDULE.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
Features Scheduled for Removal
 | 
			
		||||
==============================
 | 
			
		||||
 | 
			
		||||
The following is a list of files and features that are going to be removed in
 | 
			
		||||
the source tree.  Every entry should contain what exactly is going away, why it
 | 
			
		||||
is happening, and who is going to be doing the work.  When the feature is
 | 
			
		||||
removed, it should also be removed from this file.
 | 
			
		||||
 | 
			
		||||
# Service pause action
 | 
			
		||||
 | 
			
		||||
When: 1.0
 | 
			
		||||
 | 
			
		||||
Why: The same affect can be obtained with the --nodeps option to stop.
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
# start-stop-daemon options --startas, --chuid , --oknodo
 | 
			
		||||
 | 
			
		||||
When: 1.0
 | 
			
		||||
 | 
			
		||||
Why: Obsolete or replaced by other options.
 | 
			
		||||
 | 
			
		||||
* --startas => use --name or --exec
 | 
			
		||||
* --chuid => use --user
 | 
			
		||||
* --oknodo => ignore return code instead
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
# runscript and rc symbolic links
 | 
			
		||||
 | 
			
		||||
When: 1.0
 | 
			
		||||
 | 
			
		||||
Why: Deprecated in favor of openrc-run and openrc due to naming
 | 
			
		||||
	 conflicts with other software.
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
# support for the opts variable in service scripts
 | 
			
		||||
 | 
			
		||||
When: 1.0
 | 
			
		||||
 | 
			
		||||
Why: Deprecated in favor of extra_commands, extra_started_commands
 | 
			
		||||
	 and extra_stopped_commands.
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
# support for local_start and local_stop
 | 
			
		||||
 | 
			
		||||
When: 1.0
 | 
			
		||||
 | 
			
		||||
Why: Deprecated in favor of executable scripts in @SYSCONFDIR@/local.d
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
# the mtab service script
 | 
			
		||||
 | 
			
		||||
When: force /etc/mtab to link to /proc/self/mounts in 1.0, remove
 | 
			
		||||
	  service in 2.0
 | 
			
		||||
 | 
			
		||||
Why: /etc/mtab should be a symbolic link to /proc/self/mounts on modern
 | 
			
		||||
	 Linux systems
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
# C API Functions in rc.h
 | 
			
		||||
 | 
			
		||||
If you have a c program that links to librc and uses functions from
 | 
			
		||||
there, this section will list API functions which are deprecated and
 | 
			
		||||
will be removed along with the reason they are being removed.
 | 
			
		||||
 | 
			
		||||
## rc_getline()
 | 
			
		||||
 | 
			
		||||
When: 1.0
 | 
			
		||||
 | 
			
		||||
Why: The getline() function was standardized in POSIX.1-2008, so it
 | 
			
		||||
	 should be available on POSIX systems.
 | 
			
		||||
 | 
			
		||||
Who:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										63
									
								
								HISTORY.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								HISTORY.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
OpenRC History
 | 
			
		||||
==============
 | 
			
		||||
 | 
			
		||||
This history of OpenRC was written by Daniel Robbins, Roy Marples, William
 | 
			
		||||
Hubbs and others.
 | 
			
		||||
 | 
			
		||||
The Gentoo modular init scripts were developed by Daniel Robbins for Gentoo
 | 
			
		||||
Linux 1.0_rc6 during most of 2001 and released in September 2001. After their
 | 
			
		||||
development, the dependency-based init script system was maintained by a
 | 
			
		||||
number of senior developers, starting with Azarah (Martin Schlemmer), with
 | 
			
		||||
migration to the new init system assisted by Woodchip (Donnie Davies) who
 | 
			
		||||
converted all ebuild init scripts to work with the new system. As Grant
 | 
			
		||||
Goodyear notes: 
 | 
			
		||||
 | 
			
		||||
"My recollection is that one of woodchip's more impressive early feats
 | 
			
		||||
was the complete replacement of all of the init scripts in Portage
 | 
			
		||||
for Gentoo Linux 1.0_rc6. Through 1.0_rc5 Gentoo had used fairly
 | 
			
		||||
standard rc scripts modified from Stampede Linux, but for 1.0_rc6 Daniel
 | 
			
		||||
Robbins (drobbins) and Martin Schlemmer (azarah) had created a new
 | 
			
		||||
dependency-based init script system that is still used today. Within a
 | 
			
		||||
span of days Donny rewrote every single init script in the Portage tree
 | 
			
		||||
and committed new masked packages to await the release of 1.0_rc6. Thanks to
 | 
			
		||||
woodchip (and drobbins and azarah, of course) the
 | 
			
		||||
transition to the new init scripts was nearly painless." [1] 
 | 
			
		||||
 | 
			
		||||
Roy Marples became a Gentoo/Linux developer in 2004 and wrote the modular
 | 
			
		||||
network scripts for the Gentoo baselayout package. Towards the end of 2005,
 | 
			
		||||
he became the primary maintainer for baselayout and the init scripts. 
 | 
			
		||||
 | 
			
		||||
At the start of 2007, He announced the ongoing development of
 | 
			
		||||
baselayout-2, containing a rewritten core coded in C and allowing POSIX sh
 | 
			
		||||
init scripts instead of forcing the use of bash. By mid 2007, He had
 | 
			
		||||
re-implemented the Gentoo init script design created by Daniel Robbins,
 | 
			
		||||
using an entirely new code base. Alpha and pre-release baselayout-2
 | 
			
		||||
snapshots were added to Gentoo's Portage tree as an optional component.
 | 
			
		||||
 | 
			
		||||
Toward the end of 2007, Roy retired as a Gentoo developer.
 | 
			
		||||
Baselayout-2 was still in the pre stage, and aside from the gentoo-fbsd
 | 
			
		||||
users, it was masked. However, He desired to keep the baselayout-2
 | 
			
		||||
project moving forward as an independent project. The Gentoo Council
 | 
			
		||||
permitted Him to release OpenRC under the 2-clause BSD license,
 | 
			
		||||
managed by him as an external project. 
 | 
			
		||||
 | 
			
		||||
Around mid-2010, Roy decided to no longer maintain OpenRC. At this
 | 
			
		||||
point, he transferred development back to Gentoo.
 | 
			
		||||
 | 
			
		||||
William Hubbs, and several other Gentoo developers,  started working on
 | 
			
		||||
OpenRC around this point and brought OpenRC-0.8.x to Gentoo Linux's stable
 | 
			
		||||
tree in 2011.
 | 
			
		||||
 | 
			
		||||
In 2013 the OpenRC team became independent from Gentoo again and moved primary
 | 
			
		||||
development to github.
 | 
			
		||||
 | 
			
		||||
Daniel Robbins continues to maintain an independent, forked
 | 
			
		||||
version of OpenRC for Funtoo Linux, which includes a Funtoo-specific network
 | 
			
		||||
configuration system. 
 | 
			
		||||
 | 
			
		||||
On 17-Dec-2015 utc, Roy gave the OpenRC developers permission to replace his
 | 
			
		||||
copyrights in all source files with a generic Copyright assertion for
 | 
			
		||||
the OpenRC developers as long as we keep the original copyright in the
 | 
			
		||||
binaries and  LICENSE file.
 | 
			
		||||
 | 
			
		||||
[1] http://www.gentoo.org/news/en/gwn/20040426-newsletter.xml
 | 
			
		||||
							
								
								
									
										24
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
Copyright (c) 2007-2008, Roy Marples <roy@marples.name>
 | 
			
		||||
Copyright (c) 2007-2023, the OpenRC authors
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
1. Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
   this list of conditions and the following disclaimer.
 | 
			
		||||
2. Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
   notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
   documentation and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 | 
			
		||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | 
			
		||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | 
			
		||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | 
			
		||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | 
			
		||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
			
		||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
			
		||||
POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
							
								
								
									
										36
									
								
								NEWNET.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								NEWNET.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
OpenRC Network Ideals
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
The new style networking for OpenRC is very simplistic - provide a basic means
 | 
			
		||||
of configuring static interface address and routes whilst allowing the
 | 
			
		||||
possibility to run any command at any point.
 | 
			
		||||
 | 
			
		||||
In a nutshell, init.d/network is a wrapper around ifconfig(8) and
 | 
			
		||||
init.d/staticroute is wrapper around route(8).
 | 
			
		||||
 | 
			
		||||
In the Perfect World (TM) ifconfig should be able to configure everything
 | 
			
		||||
about the interface easily * . The BSD family almost get this right and Linux
 | 
			
		||||
epically fails.
 | 
			
		||||
 | 
			
		||||
* Only static configuration, including link setup.
 | 
			
		||||
For dynamic, static, IPv4LL, arping and per ssid IPv4 setup dhcpcd-5.x
 | 
			
		||||
provides your needs.
 | 
			
		||||
 | 
			
		||||
It fails because there are many tools to do the same job and often have
 | 
			
		||||
vastly different syntax where they could be similar. In other words, there
 | 
			
		||||
is no coherence.
 | 
			
		||||
 | 
			
		||||
OpenRC-0.4.x and older (inc Gentoo baselayout-1) had a collection of scripts
 | 
			
		||||
for each tool and allowed a script per interface. Over the years, this design
 | 
			
		||||
has proven very hard to maintain as each user has their own idea of how
 | 
			
		||||
things should work. Also, there were (and still are) race conditions.
 | 
			
		||||
 | 
			
		||||
So where do we go from here?
 | 
			
		||||
Well, it's possible to use the new network scripts using the tools
 | 
			
		||||
currently available. It's just harder as you have to know them and their
 | 
			
		||||
documentation can be lacking at times.
 | 
			
		||||
The correct end goal is a BSD style ifconfig tool.
 | 
			
		||||
I've started work on it, but the project has stalled somewhat.
 | 
			
		||||
It's display only right now and the source is not yet publicly available.
 | 
			
		||||
If you have the skills and share the vision then contact me privately and
 | 
			
		||||
we'll take it from there.
 | 
			
		||||
							
								
								
									
										418
									
								
								NEWS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										418
									
								
								NEWS.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,418 @@
 | 
			
		||||
OpenRC NEWS
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
This file will contain a list of notable changes for each release. Note
 | 
			
		||||
the information in this file is in reverse order.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.47
 | 
			
		||||
 | 
			
		||||
This release is primarily an internal cleanup release.
 | 
			
		||||
The only user-visible difference is that unicode is now on by default.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.46
 | 
			
		||||
 | 
			
		||||
The path for the reference file for the swclock service is now
 | 
			
		||||
configurable in conf.d/swclock.
 | 
			
		||||
 | 
			
		||||
In the past, if supervise_daemon_args was not set *or empty*, it defaulted to
 | 
			
		||||
`start_stop_daemon_args`. This was bad because supervise-daemon doesn't
 | 
			
		||||
accept the same options as `start-stop-daemon`. So if we set e.g.
 | 
			
		||||
`start_stop_daemon_args="--wait 50"`, but not `supervise_daemon_args`,
 | 
			
		||||
and the user adds `supervisor=supervise-daemon` to the corresponding
 | 
			
		||||
conf.d/<service> file, the service will fail to start due to
 | 
			
		||||
unrecognized option "wait".
 | 
			
		||||
It would be best to remove this fallback, but that might break some
 | 
			
		||||
existing scripts that depend on it. So we are changing it to
 | 
			
		||||
use `start_stop_daemon_args` as the default for `supervise_daemon_args`
 | 
			
		||||
only if `supervise_daemon_args` is not set at all, but not if it's
 | 
			
		||||
empty.
 | 
			
		||||
 | 
			
		||||
This fallback will be dropped in a future release.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.45
 | 
			
		||||
 | 
			
		||||
The old make-based build system is removed in this release.
 | 
			
		||||
 | 
			
		||||
The killprocs service now has a KILL_DELAY setting to allow OpenRC based
 | 
			
		||||
containers to close all TCP/IP connections before they are shut down.
 | 
			
		||||
 | 
			
		||||
The --oom-score-adj option has been added to start-stop-daemon and
 | 
			
		||||
supervise-daemon. This sets the appropriate setting for the Linux
 | 
			
		||||
kernel. for more info, see the man pages.
 | 
			
		||||
 | 
			
		||||
Support for Linux capabilities has been added to both supervise-daemon
 | 
			
		||||
and start-stop-daemon using the --capabilities option.
 | 
			
		||||
As a result, the user can specify the inheritable, ambient and bounding set
 | 
			
		||||
by defining capabilities in the service script.
 | 
			
		||||
 | 
			
		||||
noexec has been added to the default mount options for /dev. If you need
 | 
			
		||||
to remove this option, add an entry to fstab.
 | 
			
		||||
 | 
			
		||||
A --secbits option has been added to start-stop-daemon and
 | 
			
		||||
supervise-daemon. This sets the security bits option which should be
 | 
			
		||||
applied to the daemon.
 | 
			
		||||
 | 
			
		||||
A no-new-privs option has been added to start-stop-daemon and
 | 
			
		||||
supervise-daemon. This sets the NO_NEW_PRIVS flag to apply to the
 | 
			
		||||
daemon.
 | 
			
		||||
 | 
			
		||||
On Linux, the service that seeds the random number generator has been
 | 
			
		||||
renamed from urandom to seedrng. This means that when  you upgrade to
 | 
			
		||||
this version, if urandom is in your boot runlevel, you must add seedrng.
 | 
			
		||||
This can be done by issuing the following commands:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# rc-update add seedrng boot
 | 
			
		||||
# rc-update del urandom boot
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.44
 | 
			
		||||
 | 
			
		||||
This version is the first to use a meson-based build system.
 | 
			
		||||
The gnu make build system should now be considered deprecated; it will
 | 
			
		||||
be removed sometime after 0.44.x.
 | 
			
		||||
 | 
			
		||||
I have opened a [discussion](https://github.com/OpenRC/openrc/discussions/441)
 | 
			
		||||
where you can voice concerns about removing it.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.43
 | 
			
		||||
 | 
			
		||||
This version changes the behavior of the checkpath helper to address
 | 
			
		||||
CVE-2018-21269. on Linux systems, We require  non-terminal symbolic links
 | 
			
		||||
to be owned by root. Since we can't do this on non-linux systems, we do
 | 
			
		||||
not dereference non-terminal symbolic links by default. If you need them
 | 
			
		||||
dereferenced, you should add the "-s" switch to the appropriate
 | 
			
		||||
checkpath calls.
 | 
			
		||||
For more information, see http://github.com/openrc/openrc/issues/201.
 | 
			
		||||
 | 
			
		||||
The SHLIBDIR variable has been removed from the makefiles to make them
 | 
			
		||||
more consistent with most common makefiles. All libraries are now in
 | 
			
		||||
LIBDIR, so if you need to put them in /, override the LIBDIR variable
 | 
			
		||||
when you run make.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.42
 | 
			
		||||
 | 
			
		||||
openrc-shutdown now has the ability to shut down sysvinit-based systems.
 | 
			
		||||
 | 
			
		||||
A guide has been added for migrating systems using another init system
 | 
			
		||||
to openrc-init.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.41.
 | 
			
		||||
 | 
			
		||||
This version adds the ability to format the output of rc-status when
 | 
			
		||||
showing the status of services in a runlevel so that it may be parsed.
 | 
			
		||||
Currently, the -f switch only accepts ini as an argument which
 | 
			
		||||
causes the output to be in the .ini format.
 | 
			
		||||
 | 
			
		||||
This version adds an experimental build time switch to allow setting the
 | 
			
		||||
default shell to use for service scripts.
 | 
			
		||||
By default, this is set to /bin/sh if it is changed, the new shell must
 | 
			
		||||
be able to understand posix-compatible syntax.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.40
 | 
			
		||||
 | 
			
		||||
In this version, the keymaps and termencoding services on Linux needed
 | 
			
		||||
to be modified so they do not write to the root file system. This was
 | 
			
		||||
done so they can run earlier in the boot sequence. AS a result, you will
 | 
			
		||||
need to add save-termencoding and save-keymaps to your boot runlevel.
 | 
			
		||||
This can be done as follows:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# rc-update add save-keymaps boot
 | 
			
		||||
# rc-update add save-termencoding boot
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.39
 | 
			
		||||
 | 
			
		||||
This version removes the support for addons.
 | 
			
		||||
The only place I know that this was used was Gentoo Baselayout 1.x, so
 | 
			
		||||
it shouldn't affect anyone since baselayout-1 has been dead for a few
 | 
			
		||||
years.
 | 
			
		||||
 | 
			
		||||
Since all supported Linux kernel versions now make efivarfs immutable
 | 
			
		||||
and all of the tools that access efivarfs are aware of this, we no
 | 
			
		||||
longer mount efivarfs read-only. See the following github issue for more
 | 
			
		||||
information:
 | 
			
		||||
 | 
			
		||||
https://github.com/openrc/openrc/issues/238
 | 
			
		||||
 | 
			
		||||
This version adds timed shutdown and cancelation of shutdown to
 | 
			
		||||
openrc-shutdown. Shutdowns can now be delayed for a certain amount of
 | 
			
		||||
time or scheduled for an exact time.
 | 
			
		||||
 | 
			
		||||
supervise-daemon supports health checks, which are a periodic way to make sure a
 | 
			
		||||
service is healthy. For more information on setting this up, please see
 | 
			
		||||
supervise-daemon-guide.md.
 | 
			
		||||
 | 
			
		||||
The --first-time switch has been added to all modprobe commands in the
 | 
			
		||||
modules service. This means that, on Linux, you will see failures if a
 | 
			
		||||
module was loaded by an initramfs or device manager before this service
 | 
			
		||||
runs. These messages are harmless, but to clean them up, you should adjust your
 | 
			
		||||
modules autoload configuration.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.37
 | 
			
		||||
 | 
			
		||||
start-stop-daemon now supports logging stdout and stderr of daemons to
 | 
			
		||||
processes instead of files. These processes are defined by the
 | 
			
		||||
output_logger and error_logger variables in standard service scripts, or
 | 
			
		||||
by the  -3/--output-logger or -4/--error-logger switches if you use
 | 
			
		||||
start-stop-daemon directly. For more information on this, see the
 | 
			
		||||
start-stop-daemon man page.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.36
 | 
			
		||||
 | 
			
		||||
In this release, the modules-load service has been combined into the
 | 
			
		||||
modules service since there is no reason I know of to keep them
 | 
			
		||||
separate. However, modules also provides modules-load in case you were
 | 
			
		||||
using modules-load in  your dependencies.
 | 
			
		||||
 | 
			
		||||
The consolefont, keymaps, numlock and procfs service scripts no longer
 | 
			
		||||
have a dependency on localmount.
 | 
			
		||||
If you are a linux user and are still separating / from /usr,
 | 
			
		||||
you will need to add the following line to the appropriate conf.d files:
 | 
			
		||||
 | 
			
		||||
rc_need="localmount"
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.35
 | 
			
		||||
 | 
			
		||||
In this version, the cgroups mounting logic has been moved from the
 | 
			
		||||
sysfs service to the cgroups service. This was done so cgroups can be
 | 
			
		||||
mounted inside an lxc/lxd container without using the other parts of the
 | 
			
		||||
sysfs service.
 | 
			
		||||
 | 
			
		||||
?As a result of this change, if you are upgrading, you need to add
 | 
			
		||||
cgroups to your sysinit runlevel by running the following command as
 | 
			
		||||
root:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# rc-update add cgroups sysinit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
For more information, see the following issue:
 | 
			
		||||
 | 
			
		||||
https://github.com/openrc/openrc/issues/187
 | 
			
		||||
 | 
			
		||||
Consider this your second notification with regard to /etc/mtab being a
 | 
			
		||||
file instead of a symbolic link.
 | 
			
		||||
 | 
			
		||||
In this version, the mtab service will complain loudly if you have
 | 
			
		||||
mtab_is_file set to yes and recommend that you change this to no and
 | 
			
		||||
restart the mtab service to migrate /etc/mtab to a symbolic link.
 | 
			
		||||
 | 
			
		||||
If there is a valid technical reason to keep /etc/mtab as a flat file
 | 
			
		||||
instead of a symbolic link to /proc/self/mounts, we are interested and
 | 
			
		||||
we will keep the support in that case. Please open an issue and let us
 | 
			
		||||
know however. Otherwise, consider this your final notice that the mtab
 | 
			
		||||
service will be removed in the future.
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.33
 | 
			
		||||
 | 
			
		||||
This version removes the "service" binary which was just a copy of
 | 
			
		||||
"rc-service" provided for compatibility.
 | 
			
		||||
 | 
			
		||||
If you still need the "service" binary, as opposed to "rc-service", it is
 | 
			
		||||
recommended that you use something like Debian's init-system-helpers.
 | 
			
		||||
Otherwise, just use "rc-service" in place of "service".
 | 
			
		||||
 | 
			
		||||
## OpenRC 0.31
 | 
			
		||||
 | 
			
		||||
This version adds support for Control Groups version 2, which is
 | 
			
		||||
considered stable as of Linux-4.13. Please see /etc/rc.conf for
 | 
			
		||||
documentation on how to configure control groups.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.28
 | 
			
		||||
 | 
			
		||||
This version mounts efivars read only due to concerns about changes in
 | 
			
		||||
this file system making systems unbootable.  If you need to change something
 | 
			
		||||
in this path, you will need to re-mount it read-write, make the change
 | 
			
		||||
and re-mount it read-only.
 | 
			
		||||
 | 
			
		||||
Also, you can override this behavior by adding a line for efivars to
 | 
			
		||||
fstab if you want efivars mounted read-write.
 | 
			
		||||
 | 
			
		||||
For more information on this issue, see the following url:
 | 
			
		||||
 | 
			
		||||
https://github.com/openrc/openrc/issues/134
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.25
 | 
			
		||||
 | 
			
		||||
This version contains an OpenRC-specific implementation of init for
 | 
			
		||||
Linux which can be used in place of sysvinit or any other init process.
 | 
			
		||||
For information on its usage, see the man pages for openrc-init (8) and
 | 
			
		||||
openrc-shutdown (8).
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.24.1
 | 
			
		||||
 | 
			
		||||
This version starts cleaning up the dependencies so that rc_parallel
 | 
			
		||||
will work correctly.
 | 
			
		||||
 | 
			
		||||
The first step in this process is to remove the 'before *' from the
 | 
			
		||||
depend functions in the clock services. This means some  services not
 | 
			
		||||
controlled by OpenRC may now start before instead of after the clock
 | 
			
		||||
service. If it is important for these services to start after the clock
 | 
			
		||||
service, they need to have 'after clock' added to their depend
 | 
			
		||||
functions.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.24
 | 
			
		||||
 | 
			
		||||
Since the deptree2dot tool and the perl requirement are completely
 | 
			
		||||
optional, the deptree2dot tool has been moved to the support directory.
 | 
			
		||||
As a result, the MKTOOLS=yes/no switch has been removed from the makefiles.
 | 
			
		||||
 | 
			
		||||
This version adds the agetty service which can be used to spawn
 | 
			
		||||
agetty on a specific terminal. This is currently documented in the
 | 
			
		||||
agetty-guide.md file at the top level of this distribution.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.23
 | 
			
		||||
 | 
			
		||||
The tmpfiles.d processing code, which was part of previous versions of
 | 
			
		||||
OpenRC, has been separated into its own package [1]. If you need to
 | 
			
		||||
process systemd style tmpfiles.d files, please install this package.
 | 
			
		||||
 | 
			
		||||
[1] https://github.com/openrc/opentmpfiles
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.22
 | 
			
		||||
 | 
			
		||||
In previous versions of OpenRC, configuration information was processed
 | 
			
		||||
so that service-specific configuration stored in /etc/conf.d/* was
 | 
			
		||||
overridden by global configuration stored in /etc/rc.conf. This release
 | 
			
		||||
reverses that. Global configuration is now overridden by
 | 
			
		||||
service-specific configuration.
 | 
			
		||||
 | 
			
		||||
The swapfiles service, which was basically a copy of the swap service,
 | 
			
		||||
has been removed. If you are only using swap partitions, this change
 | 
			
		||||
will not affect you. If you are using swap files, please adjust the
 | 
			
		||||
dependencies of the swap service as shown in /etc/conf.d/swap.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.21
 | 
			
		||||
 | 
			
		||||
This version adds a daemon supervisor which can start daemons and
 | 
			
		||||
restart them if they crash. See supervise-daemon-guide.md in the
 | 
			
		||||
distribution for details on its use.
 | 
			
		||||
 | 
			
		||||
It is now possible to mark certain mount points as critical. If these
 | 
			
		||||
mount points are unable to be mounted, localmount or netmount will fail.
 | 
			
		||||
This is handled in /etc/conf.d/localmount and /etc/conf.d/netmount. See
 | 
			
		||||
these files for the setup.
 | 
			
		||||
 | 
			
		||||
The deprecation messages in 0.13.x for runscript and rc are now
 | 
			
		||||
made visible in preparation for the removal of these binaries in 1.0.
 | 
			
		||||
 | 
			
		||||
The steps you should take to get rid of these warnings is to run openrc
 | 
			
		||||
in initialization steps instead of rc and change the shebang lines in
 | 
			
		||||
service scripts to refer to "openrc-run" instead of "runscript".
 | 
			
		||||
 | 
			
		||||
In 0.21.4, a modules-load service was added. This works like the
 | 
			
		||||
equivalent service in systemd. It looks for files named *.conf first in
 | 
			
		||||
/usr/lib/modules-load.d, then /run/modules-load.d, then
 | 
			
		||||
/etc/modules-load.d. These files contain a list of modules, one per
 | 
			
		||||
line, which should be loaded into the kernel. If a file name appears in
 | 
			
		||||
/run/modules-load.d, it overrides a file of the same name in
 | 
			
		||||
/usr/lib/modules-load.d. A file appearing in /etc/modules-load.d
 | 
			
		||||
overrides a file of the same name in both previous directories.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.19
 | 
			
		||||
 | 
			
		||||
This version adds a net-online service. By default, this
 | 
			
		||||
service will check all known network interfaces for a configured
 | 
			
		||||
interface or a carrier. It will register as started only when all
 | 
			
		||||
interfaces are configured and there is at least a carrier on one
 | 
			
		||||
interface. The behaviour of this service can be modified in
 | 
			
		||||
/etc/conf.d/net-online.
 | 
			
		||||
 | 
			
		||||
Currently, this only works on Linux, but if anyone wants to port to
 | 
			
		||||
*bsd, that would be welcomed.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.18.3
 | 
			
		||||
 | 
			
		||||
Modern Linux systems expect /etc/mtab to be a symbolic link to
 | 
			
		||||
/proc/self/mounts. Reasons for this change include support for mount
 | 
			
		||||
namespaces, which will not work if /etc/mtab is a file.
 | 
			
		||||
By default, the mtab service enforces this on each reboot.
 | 
			
		||||
 | 
			
		||||
If you find that this breaks your system in some way, please do the
 | 
			
		||||
following:
 | 
			
		||||
 | 
			
		||||
- Set mtab_is_file=yes in /etc/conf.d/mtab.
 | 
			
		||||
 | 
			
		||||
- Restart mtab. This will recreate the /etc/mtab file.
 | 
			
		||||
 | 
			
		||||
- Check for an issue on https://github.com/openrc/openrc/issues
 | 
			
		||||
  explaining why you need /etc/mtab to be a file. If there isn't one,
 | 
			
		||||
  please open one and explain in detail why you need this to be a file.
 | 
			
		||||
  If there is one, please add your comments to it. Please give concrete
 | 
			
		||||
  examples of why  it is important that /etc/mtab be a file instead of a
 | 
			
		||||
  symbolic link. Those comments will be taken into consideration for how
 | 
			
		||||
  long to keep supporting mtab as a file or when the support can be
 | 
			
		||||
  removed.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.18
 | 
			
		||||
 | 
			
		||||
The behaviour of localmount and netmount in this version is changing. In
 | 
			
		||||
the past, these services always started successfully. In this version,
 | 
			
		||||
they will be able to fail if file systems they mount fail to mount. If
 | 
			
		||||
you have file systems listed in fstab which should not be mounted at
 | 
			
		||||
boot time, make sure to add noauto to the mount options. If you have
 | 
			
		||||
file systems that you want to attempt to mount at boot time but failure
 | 
			
		||||
should be allowed, add nofail to the mount options for these file
 | 
			
		||||
systems in fstab.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.14
 | 
			
		||||
 | 
			
		||||
The binfmt service, which registers misc binary formats with the Linux
 | 
			
		||||
kernel, has been separated from the procfs service. This service will be
 | 
			
		||||
automatically added to the boot runlevel for new Linux installs. When
 | 
			
		||||
you upgrade, you will need to use rc-update to add it to your boot
 | 
			
		||||
runlevel.
 | 
			
		||||
 | 
			
		||||
The procfs service no longer automounts the deprecated usbfs and
 | 
			
		||||
usbdevfs file systems. Nothing should be using usbdevfs any longer, and
 | 
			
		||||
if you still need usbfs it can be added to fstab.
 | 
			
		||||
 | 
			
		||||
Related to the above change, the procfs service no longer attempts to
 | 
			
		||||
modprobe the usbcore module. If your device manager does not load it,
 | 
			
		||||
you will need to configure the modules service to do so.
 | 
			
		||||
 | 
			
		||||
The override order of binfmt.d and tmpfiles.d directories has been
 | 
			
		||||
changed to match systemd. Files in /run/binfmt.d and /run/tmpfiles.d
 | 
			
		||||
override their /usr/lib counterparts, and files in the /etc counterparts
 | 
			
		||||
override both /usr/lib and /run.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.13.2
 | 
			
		||||
 | 
			
		||||
A chroot variable has been added to the service script variables.
 | 
			
		||||
This fixes the support for running a service in a chroot.
 | 
			
		||||
This is documented in man 8 openrc-run.
 | 
			
		||||
 | 
			
		||||
The netmount service now mounts nfs file systems.
 | 
			
		||||
This change was made to correct a fix for an earlier bug.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.13
 | 
			
		||||
 | 
			
		||||
/sbin/rc was renamed to /sbin/openrc and /sbin/runscript was renamed to
 | 
			
		||||
/sbin/openrc-run due to naming conflicts with other software.
 | 
			
		||||
 | 
			
		||||
Backward compatible symbolic links are currently in place so your
 | 
			
		||||
system will keep working if you are using the old names; however, it is
 | 
			
		||||
strongly advised that you migrate to the new names because the symbolic
 | 
			
		||||
links will be removed in the future.
 | 
			
		||||
Warnings have been added to assist with this migration; however, due to the
 | 
			
		||||
level of noise they produce, they only appear in verbose mode in this release.
 | 
			
		||||
 | 
			
		||||
The devfs script now handles the initial mounting and setup of the
 | 
			
		||||
/dev directory. If /dev has already been mounted by the kernel or an
 | 
			
		||||
initramfs, devfs will remount /dev with the correct mount options
 | 
			
		||||
instead of mounting a second /dev over the existing mount point.
 | 
			
		||||
 | 
			
		||||
It attempts to mount /dev from fstab first if an entry exists there. If
 | 
			
		||||
it doesn't it attempts to mount devtmpfs if it is configured in the
 | 
			
		||||
kernel. If not, it attempts to mount tmpfs.
 | 
			
		||||
If none of these is available, an error message is displayed and static
 | 
			
		||||
/dev is assumed.
 | 
			
		||||
 | 
			
		||||
## OpenRC-0.12
 | 
			
		||||
 | 
			
		||||
The net.* scripts, originally from Gentoo Linux, have
 | 
			
		||||
been removed. If you need these scripts, look for a package called
 | 
			
		||||
netifrc, which is maintained by them.
 | 
			
		||||
							
								
								
									
										52
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
OpenRC README
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
OpenRC is a dependency-based init system that works with the
 | 
			
		||||
system-provided init program, normally `/sbin/init`.
 | 
			
		||||
 | 
			
		||||
## building and installing
 | 
			
		||||
 | 
			
		||||
OpenRC uses the  [meson](http://mesonbuild.com) build system, so use the
 | 
			
		||||
usual methods for this build system to build and install.
 | 
			
		||||
 | 
			
		||||
## Notes
 | 
			
		||||
 | 
			
		||||
We don't support building a static OpenRC with PAM.
 | 
			
		||||
 | 
			
		||||
`PKG_PREFIX` should be set to where packages install to by default.
 | 
			
		||||
 | 
			
		||||
`LOCAL_PREFIX` should be set to where user maintained packages are.
 | 
			
		||||
Only set `LOCAL_PREFIX` if different from `PKG_PREFIX`.
 | 
			
		||||
 | 
			
		||||
`ROOTPREFIX` should be set when the root path is different from '/'.
 | 
			
		||||
 | 
			
		||||
`rc` and `rc.shutdown` are the hooks from the BSD init into OpenRC.
 | 
			
		||||
 | 
			
		||||
`devd.conf` is modified from FreeBSD to call `/etc/rc.devd` which is a
 | 
			
		||||
generic hook into OpenRC.
 | 
			
		||||
 | 
			
		||||
`inittab` is the same, but for SysVInit as used by most Linux distributions.
 | 
			
		||||
This can be found in the support folder.
 | 
			
		||||
 | 
			
		||||
Obviously, if you're installing this onto a system that does not use
 | 
			
		||||
OpenRC by default then you may wish to backup the above listed files,
 | 
			
		||||
remove them and then install so that the OS hooks into OpenRC.
 | 
			
		||||
 | 
			
		||||
## Discussions
 | 
			
		||||
 | 
			
		||||
We are testing [discussions](https://github.com/OpenRC/openrc/discussions), so
 | 
			
		||||
feel free to open topics there.
 | 
			
		||||
 | 
			
		||||
## Reporting Bugs
 | 
			
		||||
 | 
			
		||||
Please report bugs on our [bug tracker](http://github.com/OpenRC/openrc/issues).
 | 
			
		||||
 | 
			
		||||
If you can contribute code , please feel free to do so by opening
 | 
			
		||||
[pull requests](https://github.com/OpenRC/openrc/pulls).
 | 
			
		||||
 | 
			
		||||
## IRC Channel
 | 
			
		||||
 | 
			
		||||
We have an official irc channel, #openrc on the libera network.
 | 
			
		||||
Please connect your irc client to irc.libera.chat and join #openrc on
 | 
			
		||||
that network.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										85
									
								
								STYLE-GUIDE.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								STYLE-GUIDE.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
OpenRC Coding Style Guide
 | 
			
		||||
=========================
 | 
			
		||||
 | 
			
		||||
This is the openrc style manual.  It governs the coding style of all code
 | 
			
		||||
in this repository.  Follow it.  Contact openrc@gentoo.org for any questions
 | 
			
		||||
or fixes you might notice.
 | 
			
		||||
 | 
			
		||||
## C CODE
 | 
			
		||||
 | 
			
		||||
The BSD Kernel Normal Form (KNF) style is used [1]. Basically, it is like
 | 
			
		||||
K&R/LKML, but wrapped lines that are indented use 4 spaces. Here are the
 | 
			
		||||
highlights.
 | 
			
		||||
 | 
			
		||||
- no trailing whitespace
 | 
			
		||||
- indented code use tabs (not line wrapped)
 | 
			
		||||
- cuddle the braces (except for functions)
 | 
			
		||||
- space after native statements and before paren (for/if/while/...)
 | 
			
		||||
- no space between function and paren
 | 
			
		||||
- pointer asterisk cuddles the variable, not the type
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
void foo(int c)
 | 
			
		||||
{
 | 
			
		||||
	int ret = 0;
 | 
			
		||||
 | 
			
		||||
	if (c > 1000)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	while (c--) {
 | 
			
		||||
		bar(c);
 | 
			
		||||
		ret++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## COMMIT MESSAGES
 | 
			
		||||
 | 
			
		||||
The following is an example of a correctly formatted git commit message
 | 
			
		||||
for this repository. Most of this information came from this blog post
 | 
			
		||||
[2], so I would like to thank the author.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
Capitalized, short (50 chars or less) summary
 | 
			
		||||
 | 
			
		||||
More detailed explanatory text, if necessary.  Wrap it to about 72
 | 
			
		||||
characters or so.  In some contexts, the first line is treated as the
 | 
			
		||||
subject of an email and the rest of the text as the body.  The blank
 | 
			
		||||
line separating the summary from the body is critical (unless you omit
 | 
			
		||||
the body entirely); tools like rebase can get confused if you run the
 | 
			
		||||
two together.
 | 
			
		||||
 | 
			
		||||
Write your commit message in the imperative: "Fix bug" and not "Fixed
 | 
			
		||||
bug."  This convention matches up with commit messages generated by
 | 
			
		||||
commands like git merge and git revert.
 | 
			
		||||
 | 
			
		||||
Further paragraphs come after blank lines.
 | 
			
		||||
 | 
			
		||||
- Bullet points are okay, too
 | 
			
		||||
 | 
			
		||||
- Typically a hyphen or asterisk is used for the bullet, preceded by a
 | 
			
		||||
  single space, with blank lines in between, but conventions vary here
 | 
			
		||||
 | 
			
		||||
- Use a hanging indent
 | 
			
		||||
 | 
			
		||||
Reported-by: User Name <email>
 | 
			
		||||
X-[Distro]-Bug: BugID
 | 
			
		||||
X-[Distro]-Bug-URL: URL for the bug (on the distribution's web site typically)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you did not write the code and the patch does not include authorship
 | 
			
		||||
information in a format git can use, please use the --author option of the
 | 
			
		||||
git commit command to make the authorship correct.
 | 
			
		||||
 | 
			
		||||
The Reported-by tag is required if the person who reported the bug is
 | 
			
		||||
different from the author and committer.
 | 
			
		||||
 | 
			
		||||
  The X-[Distro]-Bug/Bug-URL tags are required if this commit is related
 | 
			
		||||
  to a bug reported to us by a specific distribution   of linux or a
 | 
			
		||||
  *BSD. Also, [Distro] should be replaced with the name of the
 | 
			
		||||
  distribution, e.g. X-Gentoo-Bug.
 | 
			
		||||
 | 
			
		||||
[1]	http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style
 | 
			
		||||
[2] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
 | 
			
		||||
							
								
								
									
										21
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
- ensure all forks block, restore and unblock signals. needs review
 | 
			
		||||
 | 
			
		||||
- add support somehow for optional translations
 | 
			
		||||
 | 
			
		||||
- oldnet[bridging]: Review setting of bridge configuration on dynamic interface add
 | 
			
		||||
 | 
			
		||||
- Document rc-depend binary.
 | 
			
		||||
 | 
			
		||||
- _ifindex is not a reliable means of calculating metrics:
 | 
			
		||||
	_ifindex is used for calculating metrics for new devices but has a major
 | 
			
		||||
	problem: Since it's only the nth entry in /proc/net/dev
 | 
			
		||||
	And devices may be removed from that file, and reordered, you won't always
 | 
			
		||||
	get the same result.
 | 
			
		||||
	If you do:
 | 
			
		||||
	- add eth0 - _ifindex (eth0=0)
 | 
			
		||||
	- add vlan1 - _ifindex (eth0=0,vlan1=1)
 | 
			
		||||
	- add vlan2 - _ifindex (eth0=0,vlan1=1,vlan2=2)
 | 
			
		||||
	- rem vlan1 - _ifindex (eth0=0,vlan2=1)
 | 
			
		||||
	- add vlan3 - _ifindex (eth0=0,vlan2=1,vlan3=2)
 | 
			
		||||
	Now your routing table has entries for both vlan2 and vlan3 with a metric of 2.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								agetty-guide.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								agetty-guide.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
Setting up the agetty service in OpenRC
 | 
			
		||||
=================================xxxxxx
 | 
			
		||||
 | 
			
		||||
The agetty service is an OpenRC specific way to monitor and respawn a
 | 
			
		||||
getty, using agetty, on Linux. To use this method, make sure you aren't
 | 
			
		||||
spawning a getty manager for this port some other way (such as through
 | 
			
		||||
sysvinit/inittab), then run the following commands as root.
 | 
			
		||||
 | 
			
		||||
Note that [port] refers to the port you are spawning the getty on, for
 | 
			
		||||
example, tty1 or ttyS0. The full path to it, for example, /dev/tty1
 | 
			
		||||
should not be used.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# cd /etc/init.d
 | 
			
		||||
# ln -s agetty agetty.[port]
 | 
			
		||||
# cd /etc/conf.d
 | 
			
		||||
# cp agetty agetty.[port]
 | 
			
		||||
#rc-update add agetty.[port] [runlevel]
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										12
									
								
								bash-completion/meson.build
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								bash-completion/meson.build
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
if get_option('bash-completions')
 | 
			
		||||
bash_completions = [
 | 
			
		||||
  'openrc',
 | 
			
		||||
  'openrc-service-script',
 | 
			
		||||
  'rc-service',
 | 
			
		||||
  'rc-status',
 | 
			
		||||
  'rc-update',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
install_data(bash_completions,
 | 
			
		||||
  install_dir : get_option('datadir') / 'bash-completion/completions')
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										24
									
								
								bash-completion/openrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								bash-completion/openrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# openrc completion command
 | 
			
		||||
#
 | 
			
		||||
_openrc()
 | 
			
		||||
{
 | 
			
		||||
	local cur
 | 
			
		||||
	COMPREPLY=()
 | 
			
		||||
	cur="${COMP_WORDS[COMP_CWORD]}"
 | 
			
		||||
	if [[ ${#COMP_WORDS[*]} -le 2 ]]; then
 | 
			
		||||
		COMPREPLY=($(compgen -W "$(rc-status --list)" -- $cur))
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
} &&
 | 
			
		||||
complete -F _openrc openrc
 | 
			
		||||
							
								
								
									
										29
									
								
								bash-completion/openrc-service-script
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								bash-completion/openrc-service-script
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
_openrc_service_script()
 | 
			
		||||
{
 | 
			
		||||
	local script="${COMP_WORDS[0]}"
 | 
			
		||||
	local cur="${COMP_WORDS[$COMP_CWORD]}"
 | 
			
		||||
 | 
			
		||||
	if [[ ( -f "${script}" || -h "${script}" ) && -r "${script}" ]] \
 | 
			
		||||
	&& [[ "$(head -n 1 "${script}")" =~ \#\!.*/openrc-run ]]
 | 
			
		||||
	then
 | 
			
		||||
		[[ $COMP_CWORD -gt 1 ]] && return 1
 | 
			
		||||
		COMPREPLY=($(opts="start stop status restart pause zap ineed needsme iuse usesme broken"; \
 | 
			
		||||
			eval "$(grep '^opts=' "${script}")"; echo "${opts}"))
 | 
			
		||||
		[[ -n "$COMPREPLY" ]] || COMPREPLY=(start stop restart zap)
 | 
			
		||||
		COMPREPLY=($(compgen -W "${COMPREPLY[*]}" -- "${cur}"))
 | 
			
		||||
	else
 | 
			
		||||
		COMPREPLY=($(compgen -o default -- "${cur}"))
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
complete -F _openrc_service_script */etc/init.d/*
 | 
			
		||||
							
								
								
									
										115
									
								
								bash-completion/rc-service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								bash-completion/rc-service
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,115 @@
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# rc-service completion command
 | 
			
		||||
#
 | 
			
		||||
_rc_service()
 | 
			
		||||
{
 | 
			
		||||
	local cur prev numwords opts
 | 
			
		||||
	local words i x filename
 | 
			
		||||
	local action actionpos
 | 
			
		||||
	COMPREPLY=()
 | 
			
		||||
	cur="${COMP_WORDS[COMP_CWORD]}"
 | 
			
		||||
	prev="${COMP_WORDS[COMP_CWORD-1]}"
 | 
			
		||||
	numwords=${#COMP_WORDS[*]}
 | 
			
		||||
 | 
			
		||||
	if [[ ${prev} == '>' || ${prev} == '<' ]] ; then
 | 
			
		||||
		COMPREPLY=($(compgen -f -- ${cur}))
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# find action
 | 
			
		||||
	for x in ${COMP_LINE} ; do
 | 
			
		||||
		if [[ ${x} =~ --(list|exists|resolve) ]] || [[ ${x} =~ -(l|e|r) ]]
 | 
			
		||||
		then
 | 
			
		||||
			action=${x}
 | 
			
		||||
			break
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	if [[ -n ${action} ]]; then
 | 
			
		||||
		for ((i = 0; i < ${numwords}; i++ )); do
 | 
			
		||||
			if [[ ${COMP_WORDS[${i}]} == "${action}" ]]; then
 | 
			
		||||
				actionpos=${i}
 | 
			
		||||
				break
 | 
			
		||||
			fi
 | 
			
		||||
		done
 | 
			
		||||
 | 
			
		||||
		for ((i = 1; i < ${numwords}; i++ )); do
 | 
			
		||||
			if [[ ! ${COMP_WORDS[$i]} == -* ]]; then
 | 
			
		||||
				break
 | 
			
		||||
			fi
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [[ ${COMP_CWORD} -eq 3 ]]; then
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# check if an option was typed
 | 
			
		||||
	if [[ ${cur} == -* ]]; then
 | 
			
		||||
		if [[ ${cur} == --* ]]; then
 | 
			
		||||
			opts="--list --exists --resolve"
 | 
			
		||||
			COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
 | 
			
		||||
			return 0
 | 
			
		||||
		elif [[ ${cur} == -* ]]; then
 | 
			
		||||
			opts="-l -e -r"
 | 
			
		||||
			COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
 | 
			
		||||
			return 0
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		# NOTE: This slows things down!
 | 
			
		||||
		# (Adapted from bash_completion by Ian Macdonald <ian@caliban.org>)
 | 
			
		||||
		# This removes any options from the list of completions that have
 | 
			
		||||
		# already been specified on the command line.
 | 
			
		||||
		COMPREPLY=($(echo "${COMP_WORDS[@]}" | \
 | 
			
		||||
		(while read -d ' ' i; do
 | 
			
		||||
			[[ -z ${i} ]] && continue
 | 
			
		||||
			# flatten array with spaces on either side,
 | 
			
		||||
			# otherwise we cannot grep on word boundaries of
 | 
			
		||||
			# first and last word
 | 
			
		||||
			COMPREPLY=" ${COMPREPLY[@]} "
 | 
			
		||||
			# remove word from list of completions
 | 
			
		||||
			COMPREPLY=(${COMPREPLY/ ${i%% *} / })
 | 
			
		||||
		done
 | 
			
		||||
		echo ${COMPREPLY[@]})))
 | 
			
		||||
 | 
			
		||||
		return 0
 | 
			
		||||
	else
 | 
			
		||||
		# no option was typed
 | 
			
		||||
		if [[ ${COMP_CWORD} -eq 1 ]]; then			  # if first word typed
 | 
			
		||||
			# complete for init scripts
 | 
			
		||||
			COMPREPLY=($(for i in $(rc-service --list) ; do \
 | 
			
		||||
				[[ ${i} == "${cur}"* ]] && echo ${i} ; \
 | 
			
		||||
			done))
 | 
			
		||||
			return 0
 | 
			
		||||
		elif [[ ${COMP_CWORD} -eq 2 ]] && [[ ${prev} != -* ]]; then # if second word typed and we didn't type in a function
 | 
			
		||||
			rc-service --exists "$prev" || return
 | 
			
		||||
			shopt -s extglob
 | 
			
		||||
			while read -r _ line; do
 | 
			
		||||
				if [[ $line == +([[:alnum:]_]):* ]]; then
 | 
			
		||||
					opts+="${line%%:*} "
 | 
			
		||||
				fi
 | 
			
		||||
			done < <(rc-service "$prev" describe 2>&1)
 | 
			
		||||
			shopt -u extglob
 | 
			
		||||
			COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
 | 
			
		||||
			return 0
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	if [[ ${action} == '--exists' ]] || [[ ${action} == '-e' ]] || \
 | 
			
		||||
		[[ ${action} == '--resolve' ]]  || [[ ${action} == '-r' ]]; then
 | 
			
		||||
		COMPREPLY=($(for i in $(rc-service --list) ; do \
 | 
			
		||||
			[[ ${i} == "${cur}"* ]] && echo ${i} ; \
 | 
			
		||||
		done))
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
} &&
 | 
			
		||||
complete -F _rc_service rc-service
 | 
			
		||||
							
								
								
									
										31
									
								
								bash-completion/rc-status
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								bash-completion/rc-status
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# rc-status completion command
 | 
			
		||||
#
 | 
			
		||||
_rcstatus()
 | 
			
		||||
{
 | 
			
		||||
	local cur
 | 
			
		||||
	cur="${COMP_WORDS[COMP_CWORD]}"
 | 
			
		||||
	if [[ $COMP_CWORD -eq 1 ]]; then
 | 
			
		||||
		if [[ "${cur}" == --* ]]; then
 | 
			
		||||
			COMPREPLY=($(compgen -W '--all --list --unused' -- ${cur}))
 | 
			
		||||
		elif [[ "${cur}" == -* ]]; then
 | 
			
		||||
			COMPREPLY=($(compgen -W '-a -l -u' -- ${cur}))
 | 
			
		||||
		else
 | 
			
		||||
			COMPREPLY=($(compgen -W "$(rc-status --list)" -- ${cur}))
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		unset COMPREPLY
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
} &&
 | 
			
		||||
complete -F _rcstatus rc-status
 | 
			
		||||
							
								
								
									
										42
									
								
								bash-completion/rc-update
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								bash-completion/rc-update
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# rc-update completion command
 | 
			
		||||
#
 | 
			
		||||
_rc_update()
 | 
			
		||||
{
 | 
			
		||||
	local cur show
 | 
			
		||||
	COMPREPLY=()
 | 
			
		||||
	cur="${COMP_WORDS[COMP_CWORD]}"
 | 
			
		||||
	if [[ $COMP_CWORD -eq 1 ]]; then
 | 
			
		||||
		if [[ "${cur}" == -* ]]; then
 | 
			
		||||
			COMPREPLY=($(compgen -W '-a -d -s' -- ${cur}))
 | 
			
		||||
		else
 | 
			
		||||
			COMPREPLY=($(compgen -W 'add del show' ${cur}))
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		if [[ "${COMP_WORDS[1]}" == "show" ]] || [[ "${COMP_WORDS[1]}" == "-s" ]]; then
 | 
			
		||||
			show="TRUE"
 | 
			
		||||
		fi
 | 
			
		||||
		if ([[ $COMP_CWORD -eq 3 ]] && [[ -z "$show" ]]) || \
 | 
			
		||||
			([[ $COMP_CWORD -eq 2 ]] && [[ -n "$show" ]]); then
 | 
			
		||||
		COMPREPLY=($(compgen -W "$(rc-status --list)" -- $cur))
 | 
			
		||||
		elif [[ $COMP_CWORD -eq 2 ]]; then
 | 
			
		||||
			COMPREPLY=($(compgen -W "$(rc-service --list)" $cur))
 | 
			
		||||
		elif [[ ${#COMP_WORDS[*]} -gt 2 ]] ; then
 | 
			
		||||
			COMPREPLY=($(compgen -W "$(rc-status --list)" -- $cur))
 | 
			
		||||
		else
 | 
			
		||||
			unset COMPREPLY
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
} &&
 | 
			
		||||
complete -F _rc_update rc-update
 | 
			
		||||
							
								
								
									
										21
									
								
								ci/cirrus.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								ci/cirrus.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# Copyright (c) 2007-2018 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
set -u
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
# These are steps to run on Cirrus CI under a jailed FreeBSD system.
 | 
			
		||||
# See $TOP/.cirrus.yml for more info about the Cirrus CI setup.
 | 
			
		||||
 | 
			
		||||
meson build
 | 
			
		||||
meson compile -C build
 | 
			
		||||
meson test --verbose -C build
 | 
			
		||||
							
								
								
									
										40
									
								
								ci/travis.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								ci/travis.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# Copyright (c) 2007-2018 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
set -u
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
# These are steps to run on TravisCI under a containerized Ubuntu system.
 | 
			
		||||
# See $TOP/.travis.yml for more info about the TravisCI setup.
 | 
			
		||||
 | 
			
		||||
# Run shellcheck, but don't fail (yet):
 | 
			
		||||
shellcheck --version
 | 
			
		||||
for shellscript in $(git ls-files); do
 | 
			
		||||
	case $shellscript in
 | 
			
		||||
		init.d/*.in) ;;
 | 
			
		||||
		sh/*.in) ;;
 | 
			
		||||
		sh/*.sh) ;;
 | 
			
		||||
		support/init.d.examples/*.in) ;;
 | 
			
		||||
		support/openvpn/*.sh) ;;
 | 
			
		||||
		support/sysvinit/halt.sh) ;;
 | 
			
		||||
		test/*.sh) ;;
 | 
			
		||||
		*) continue ;;
 | 
			
		||||
	esac
 | 
			
		||||
	echo "Checking ${shellscript} with shellcheck:"
 | 
			
		||||
	shellcheck -s sh "${shellscript}" || true
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
cpus=$(getconf _NPROCESSORS_CONF || echo 1)
 | 
			
		||||
# make on TravisCI doesn't support -O yet
 | 
			
		||||
make -j"${cpus}"
 | 
			
		||||
 | 
			
		||||
make test
 | 
			
		||||
							
								
								
									
										10
									
								
								conf.d/adjkerntz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								conf.d/adjkerntz
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
# Set CLOCK to "UTC" if your system clock is set to UTC (also known as
 | 
			
		||||
# Greenwich Mean Time).  If your clock is set to the local time, then
 | 
			
		||||
# set CLOCK to "local".  Note that if you dual boot with Windows, then
 | 
			
		||||
# you should set it to "local".
 | 
			
		||||
clock="UTC"
 | 
			
		||||
 | 
			
		||||
# If you want to set the Hardware Clock to the current System Time
 | 
			
		||||
# during shutdown, then say "YES" here.
 | 
			
		||||
# You normally don't need to do this if you run a ntp daemon.
 | 
			
		||||
clock_systohc="NO"
 | 
			
		||||
							
								
								
									
										11
									
								
								conf.d/agetty
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								conf.d/agetty
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
# make agetty quiet
 | 
			
		||||
#quiet="yes"
 | 
			
		||||
 | 
			
		||||
# Set the baud rate of the terminal line
 | 
			
		||||
#baud=""
 | 
			
		||||
 | 
			
		||||
# set the terminal type
 | 
			
		||||
#term_type="linux"
 | 
			
		||||
 | 
			
		||||
# extra options to pass to agetty for this port
 | 
			
		||||
#agetty_options=""
 | 
			
		||||
							
								
								
									
										15
									
								
								conf.d/bootmisc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								conf.d/bootmisc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# List of /tmp directories we should clean up
 | 
			
		||||
clean_tmp_dirs="/tmp"
 | 
			
		||||
 | 
			
		||||
# Should we wipe the tmp paths completely or just selectively remove known
 | 
			
		||||
# locks / files / etc... ?
 | 
			
		||||
wipe_tmp="YES"
 | 
			
		||||
 | 
			
		||||
# Write the initial dmesg log into /var/log/dmesg after boot
 | 
			
		||||
# This may be useful if you need the kernel boot log afterwards
 | 
			
		||||
log_dmesg="YES"
 | 
			
		||||
 | 
			
		||||
# Save the previous dmesg log to dmesg.old
 | 
			
		||||
# This may be useful if you need to compare the current boot to the
 | 
			
		||||
# previous one.
 | 
			
		||||
#previous_dmesg=no
 | 
			
		||||
							
								
								
									
										18
									
								
								conf.d/consolefont
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								conf.d/consolefont
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
# The consolefont service is not activated by default. If you need to
 | 
			
		||||
# use it, you should run "rc-update add consolefont boot" as root.
 | 
			
		||||
#
 | 
			
		||||
# consolefont specifies the default font that you'd like Linux to use on the
 | 
			
		||||
# console.  You can find a good selection of fonts in /usr/share/consolefonts;
 | 
			
		||||
# you shouldn't specify the trailing ".psf.gz", just the font name below.
 | 
			
		||||
# To use the default console font, comment out the CONSOLEFONT setting below.
 | 
			
		||||
consolefont="default8x16"
 | 
			
		||||
 | 
			
		||||
# consoletranslation is the charset map file to use.  Leave commented to use
 | 
			
		||||
# the default one.  Have a look in /usr/share/consoletrans for a selection of
 | 
			
		||||
# map files you can use.
 | 
			
		||||
#consoletranslation="8859-1_to_uni"
 | 
			
		||||
 | 
			
		||||
# unicodemap is the unicode map file to use. Leave commented to use the
 | 
			
		||||
# default one. Have a look in /usr/share/unimaps for a selection of map files
 | 
			
		||||
# you can use.
 | 
			
		||||
#unicodemap="iso01"
 | 
			
		||||
							
								
								
									
										8
									
								
								conf.d/devfs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								conf.d/devfs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# OpenRC will attempt each of the following in succession to mount /dev.
 | 
			
		||||
#
 | 
			
		||||
# 1. If there is an entry for /dev in fstab, it will be used.
 | 
			
		||||
# 2. If devtmpfs is defined in the kernel, it will be used.
 | 
			
		||||
# 3. If tmpfs is defined in the kernel, it will be used.
 | 
			
		||||
#
 | 
			
		||||
# Set this to yes if you do not want OpenRC to attempt to mount /dev.
 | 
			
		||||
# skip_mount_dev="NO"
 | 
			
		||||
							
								
								
									
										3
									
								
								conf.d/dmesg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								conf.d/dmesg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# Sets the level at which logging of messages is done to the
 | 
			
		||||
# console.  See dmesg(1) for more info.
 | 
			
		||||
dmesg_level="1"
 | 
			
		||||
							
								
								
									
										40
									
								
								conf.d/fsck
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								conf.d/fsck
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
# Pass any arguments to fsck.
 | 
			
		||||
# By default we preen.
 | 
			
		||||
# Linux systems also force -C0 and -T.
 | 
			
		||||
# If fsck_args is not specified then Linux systems also use -A
 | 
			
		||||
# (and -R if / is rw)
 | 
			
		||||
#fsck_args="-p"
 | 
			
		||||
 | 
			
		||||
# We can also specify the passno in /etc/fstab to check
 | 
			
		||||
# If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can
 | 
			
		||||
# do an fsck outside of the normal scope, say for /home.
 | 
			
		||||
# Here are some examples:-
 | 
			
		||||
#fsck_passno="=1 =2"
 | 
			
		||||
#fsck_passno=">1"
 | 
			
		||||
#fsck_passno="<2"
 | 
			
		||||
 | 
			
		||||
# If passno is not enough granularity, you can also specify mountpoints to
 | 
			
		||||
# check. This should NOT be used for the default non-multiplexed fsck, or your
 | 
			
		||||
# system might not be checked. Additionally, it is mutually exclusive with
 | 
			
		||||
# the fsck_passno setting.
 | 
			
		||||
#fsck_mnt=""
 | 
			
		||||
#fsck_mnt="/home"
 | 
			
		||||
 | 
			
		||||
# Most modern fs's don't require a full fsck on boot, but for those that do
 | 
			
		||||
# it may be advisable to skip this when running on battery.
 | 
			
		||||
# WARNING: Do not turn this off if you have any JFS partitions.
 | 
			
		||||
fsck_on_battery="YES"
 | 
			
		||||
 | 
			
		||||
# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
 | 
			
		||||
# The end result of this is that if any periodic non-root filesystem checks are
 | 
			
		||||
# scheduled, under normal circumstances the actual check will happen during
 | 
			
		||||
# shutdown rather than at next boot.
 | 
			
		||||
# This is useful when periodic filesystem checks are causing undesirable
 | 
			
		||||
# delays at startup, but such delays at shutdown are acceptable.
 | 
			
		||||
fsck_shutdown="NO"
 | 
			
		||||
 | 
			
		||||
# fsck_abort_on_errors can be set to no to cause fsck to not abort on
 | 
			
		||||
# errors.
 | 
			
		||||
# This is useful when periodic filesystem checks are causing undesirable
 | 
			
		||||
# aborts.
 | 
			
		||||
fsck_abort_on_errors="YES"
 | 
			
		||||
							
								
								
									
										2
									
								
								conf.d/hostname
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								conf.d/hostname
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
# Hostname fallback if /etc/hostname does not exist
 | 
			
		||||
hostname="localhost"
 | 
			
		||||
							
								
								
									
										20
									
								
								conf.d/hwclock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								conf.d/hwclock
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as
 | 
			
		||||
# Greenwich Mean Time).  If that clock is set to the local time, then
 | 
			
		||||
# set CLOCK to "local".  Note that if you dual boot with Windows, then
 | 
			
		||||
# you should set it to "local".
 | 
			
		||||
clock="UTC"
 | 
			
		||||
 | 
			
		||||
# If you want the hwclock script to set the system time (software clock)
 | 
			
		||||
# to match the current hardware clock during bootup, leave this
 | 
			
		||||
# commented out.
 | 
			
		||||
# However, you can set this to "NO" if you are running a modern kernel
 | 
			
		||||
# and using NTP to synchronize your system clock.
 | 
			
		||||
#clock_hctosys="YES"
 | 
			
		||||
 | 
			
		||||
# If you do not want to set the hardware clock to the current system
 | 
			
		||||
# time (software clock) during shutdown, set this to no.
 | 
			
		||||
#clock_systohc="YES"
 | 
			
		||||
 | 
			
		||||
# If you wish to pass any other arguments to hwclock during bootup,
 | 
			
		||||
# you may do so here. Alpha users may wish to use --arc or --srm here.
 | 
			
		||||
clock_args=""
 | 
			
		||||
							
								
								
									
										14
									
								
								conf.d/ipfw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								conf.d/ipfw
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
# ipfw provides a stateful firewall.
 | 
			
		||||
# This means we allow everything out, and if we have a connection we allow it
 | 
			
		||||
# back in. This is very flexible and quite secure.
 | 
			
		||||
 | 
			
		||||
# For ease of use, we allow auth and ssh ports through as well.
 | 
			
		||||
# To override the list of allowed ports
 | 
			
		||||
#ipfw_ports_in="auth ssh"
 | 
			
		||||
 | 
			
		||||
# You may want to enable logging of denied connections
 | 
			
		||||
#ipfw_log_deny="YES"
 | 
			
		||||
 | 
			
		||||
# This ports not logged
 | 
			
		||||
#ipfw_ports_nolog="135-139,445 1026,1027 1433,1434"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								conf.d/keymaps
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								conf.d/keymaps
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
# Use keymap to specify the default console keymap.  There is a complete tree
 | 
			
		||||
# of keymaps in /usr/share/keymaps to choose from.
 | 
			
		||||
keymap="us"
 | 
			
		||||
 | 
			
		||||
# Should we first load the 'windowkeys' console keymap?  Most x86 users will
 | 
			
		||||
# say "yes" here.  Note that non-x86 users should leave it as "no".
 | 
			
		||||
# Loading this keymap will enable VT switching (like ALT+Left/Right)
 | 
			
		||||
# using the special windows keys on the linux console.
 | 
			
		||||
windowkeys="NO"
 | 
			
		||||
 | 
			
		||||
# The maps to load for extended keyboards.  Most users will leave this as is.
 | 
			
		||||
extended_keymaps=""
 | 
			
		||||
#extended_keymaps="backspace keypad euro2"
 | 
			
		||||
 | 
			
		||||
# Tell dumpkeys(1) to interpret character action codes to be
 | 
			
		||||
# from the specified character set.
 | 
			
		||||
# This only matters if you set unicode="yes" in /etc/rc.conf.
 | 
			
		||||
# For a list of valid sets, run `dumpkeys --help`
 | 
			
		||||
dumpkeys_charset=""
 | 
			
		||||
 | 
			
		||||
# Some fonts map AltGr-E to the currency symbol instead of the Euro.
 | 
			
		||||
# To fix this, set to "yes"
 | 
			
		||||
fix_euro="NO"
 | 
			
		||||
							
								
								
									
										11
									
								
								conf.d/killprocs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								conf.d/killprocs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
# If you wish to pass any options to kill_all during shutdown,
 | 
			
		||||
# you should do so here.
 | 
			
		||||
#
 | 
			
		||||
# The setting is called killall5_opts because the options here are meant
 | 
			
		||||
# to be identical to those you could pass to killall5.
 | 
			
		||||
killall5_opts=""
 | 
			
		||||
 | 
			
		||||
# If you need to delay after each kill attempt during shutdown, set the amount
 | 
			
		||||
# of time you need to delay here. This gets passed directly to sleep in
 | 
			
		||||
# the shell.
 | 
			
		||||
# kill_delay=0
 | 
			
		||||
							
								
								
									
										10
									
								
								conf.d/localmount
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								conf.d/localmount
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
# Stop the unmounting of certain points.
 | 
			
		||||
# This could be useful for some NFS related work.
 | 
			
		||||
#no_umounts="/dir1:/var/dir2"
 | 
			
		||||
#
 | 
			
		||||
# Mark certain mount points as critical.
 | 
			
		||||
# This contains a space separated list of mount points which should be
 | 
			
		||||
# considered critical. If one of these mount points cannot be mounted,
 | 
			
		||||
# localmount will fail.
 | 
			
		||||
# By default, this is empty.
 | 
			
		||||
#critical_mounts="/home /var"
 | 
			
		||||
							
								
								
									
										62
									
								
								conf.d/meson.build
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								conf.d/meson.build
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
conf_d_dir = get_option('sysconfdir') / 'conf.d'
 | 
			
		||||
 | 
			
		||||
conf_common = [
 | 
			
		||||
  'bootmisc',
 | 
			
		||||
  'fsck',
 | 
			
		||||
  'hostname',
 | 
			
		||||
  'localmount',
 | 
			
		||||
  'netmount',
 | 
			
		||||
  'swap',
 | 
			
		||||
  'swclock',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
conf_net = [
 | 
			
		||||
  'network',
 | 
			
		||||
  'staticroute',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
conf_FreeBSD = [
 | 
			
		||||
  'ipfw',
 | 
			
		||||
  'modules',
 | 
			
		||||
  'moused',
 | 
			
		||||
  'powerd',
 | 
			
		||||
  'rarpd',
 | 
			
		||||
  'savecore',
 | 
			
		||||
  'syscons',
 | 
			
		||||
  'urandom',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
conf_Linux = [
 | 
			
		||||
  'agetty',
 | 
			
		||||
  'consolefont',
 | 
			
		||||
  'devfs',
 | 
			
		||||
  'dmesg',
 | 
			
		||||
  'hwclock',
 | 
			
		||||
  'keymaps',
 | 
			
		||||
  'killprocs',
 | 
			
		||||
  'modules',
 | 
			
		||||
  'mtab',
 | 
			
		||||
  'net-online',
 | 
			
		||||
  'seedrng',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
conf_NetBSD =  [
 | 
			
		||||
  'moused',
 | 
			
		||||
  'rarpd',
 | 
			
		||||
  'savecore',
 | 
			
		||||
  'urandom',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
conf_data = conf_common
 | 
			
		||||
if get_option('newnet')
 | 
			
		||||
  conf_data = conf_data + conf_net
 | 
			
		||||
endif
 | 
			
		||||
if os == 'FreeBSD'
 | 
			
		||||
  conf_data = conf_data + conf_FreeBSD
 | 
			
		||||
elif os == 'Linux'
 | 
			
		||||
  conf_data = conf_data + conf_Linux
 | 
			
		||||
elif os == 'NetBSD'
 | 
			
		||||
  conf_data = conf_data + conf_NetBSD
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
install_data(conf_data, install_dir : conf_d_dir)
 | 
			
		||||
							
								
								
									
										22
									
								
								conf.d/modules
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								conf.d/modules
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
# Linux users can define a list of modules for a specific kernel version,
 | 
			
		||||
# a released kernel version, a main kernel version or all kernel versions.
 | 
			
		||||
# The most specific versioned variable will take precedence.
 | 
			
		||||
# FreeBSD users can only use the modules="foo bar" setting.
 | 
			
		||||
#modules_2_6_23_gentoo_r5="ieee1394 ohci1394"
 | 
			
		||||
#modules_2_6_23="tun ieee1394"
 | 
			
		||||
#modules_2_6="tun"
 | 
			
		||||
#modules_2="ipv6"
 | 
			
		||||
#modules="ohci1394"
 | 
			
		||||
 | 
			
		||||
# Linux users can give the modules some arguments if needed, per version
 | 
			
		||||
# if necessary.
 | 
			
		||||
# Again, the most specific versioned variable will take precedence.
 | 
			
		||||
# This is not supported on FreeBSD.
 | 
			
		||||
#module_ieee1394_args="debug"
 | 
			
		||||
#module_ieee1394_args_2_6_23_gentoo_r5="debug2"
 | 
			
		||||
#module_ieee1394_args_2_6_23="debug3"
 | 
			
		||||
#module_ieee1394_args_2_6="debug4"
 | 
			
		||||
#module_ieee1394_args_2="debug5"
 | 
			
		||||
 | 
			
		||||
# You should consult your kernel documentation and configuration
 | 
			
		||||
# for a list of modules and their options.
 | 
			
		||||
							
								
								
									
										16
									
								
								conf.d/moused
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								conf.d/moused
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
# See the moused man page for available settings.
 | 
			
		||||
 | 
			
		||||
# Set to your mouse device psm[0-9] for PS/2 ports, ums[0-9] for USB ports
 | 
			
		||||
# Leave blank to try to autodetect it
 | 
			
		||||
#moused_device="/dev/psm0"
 | 
			
		||||
 | 
			
		||||
# Any additional arguments required for a specific port
 | 
			
		||||
#moused_args_psm0=""
 | 
			
		||||
# or for all mice
 | 
			
		||||
#moused_args=""
 | 
			
		||||
 | 
			
		||||
# You can also multiplex the init script for each device like so
 | 
			
		||||
#   ln -s moused /etc/init.d/moused.ums0
 | 
			
		||||
# This enables you to have a config file per mouse (forces moused_device
 | 
			
		||||
# to ums0 in this case) and control each mouse.
 | 
			
		||||
# devd can also start and stop these mice, which laptop users will find handy.
 | 
			
		||||
							
								
								
									
										13
									
								
								conf.d/mtab
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								conf.d/mtab
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
# As far as we are aware, there are no modern linux tools or use cases
 | 
			
		||||
# which require /etc/mtab to be a separate file from /proc/self/mounts,
 | 
			
		||||
# so this setting should be commented out.
 | 
			
		||||
# If it is set to yes, please comment it out and run this command:
 | 
			
		||||
# # rc-service mtab restart
 | 
			
		||||
# In the future, the mtab service will be removed since we are not aware
 | 
			
		||||
# of any need to manipulate /etc/mtab as a separate file from
 | 
			
		||||
# /proc/self/mounts.
 | 
			
		||||
# If you have a technical reason we should keep this support, please
 | 
			
		||||
# open an issue at https://github.com/openrc/openrc/issues and let us
 | 
			
		||||
# know about your situation.
 | 
			
		||||
# This setting controls whether /etc/mtab is a file or symbolic link.
 | 
			
		||||
# mtab_is_file=no
 | 
			
		||||
							
								
								
									
										18
									
								
								conf.d/net-online
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								conf.d/net-online
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
# The interfaces setting controls which interfaces the net-online
 | 
			
		||||
# service considers in deciding whether the network is active. The
 | 
			
		||||
# default is all interfaces that support ethernet.
 | 
			
		||||
#interfaces=""
 | 
			
		||||
 | 
			
		||||
# This setting controls whether a ping test is included in the test for
 | 
			
		||||
# network connectivity after all interfaces are active.
 | 
			
		||||
#include_ping_test=no
 | 
			
		||||
 | 
			
		||||
# This setting is the host to attempt to ping if the above is yes.
 | 
			
		||||
# The default is google.com.
 | 
			
		||||
#ping_test_host=some.host.name
 | 
			
		||||
 | 
			
		||||
# The timeout setting controls how long the net-online service waits
 | 
			
		||||
# for the network to be configured.
 | 
			
		||||
# The default is 120 seconds.
 | 
			
		||||
# if this is set to 0, the wait is infinite.
 | 
			
		||||
#timeout=120
 | 
			
		||||
							
								
								
									
										47
									
								
								conf.d/netmount
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								conf.d/netmount
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
# You will need to set the dependencies in the netmount script to match
 | 
			
		||||
# the network configuration tools you are using. This should be done in
 | 
			
		||||
# this file by following the examples below, and not by changing the
 | 
			
		||||
# service script itself.
 | 
			
		||||
#
 | 
			
		||||
# Each of these examples is meant to be used separately. So, for
 | 
			
		||||
# example, do not set rc_need to something like "net.eth0 dhcpcd".
 | 
			
		||||
#
 | 
			
		||||
# If you are using newnet and configuring your interfaces with static
 | 
			
		||||
# addresses with the network script, you  should use this setting.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="network"
 | 
			
		||||
#
 | 
			
		||||
# If you are using oldnet, you must list the specific net.* services you
 | 
			
		||||
# need.
 | 
			
		||||
#
 | 
			
		||||
# This example assumes all of your netmounts can be reached on
 | 
			
		||||
# eth0.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="net.eth0"
 | 
			
		||||
#
 | 
			
		||||
# This example assumes some of your netmounts are on eth1 and some
 | 
			
		||||
# are on eth2.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="net.eth1 net.eth2"
 | 
			
		||||
#
 | 
			
		||||
# If you are using a dynamic network management tool like
 | 
			
		||||
# NetworkManager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to
 | 
			
		||||
# manage the network interfaces with the routes to your netmounts, you
 | 
			
		||||
# should list that tool.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="NetworkManager"
 | 
			
		||||
#rc_need="dhcpcd"
 | 
			
		||||
#rc_need="wicd"
 | 
			
		||||
#
 | 
			
		||||
# The default setting is designed to be backward compatible with our
 | 
			
		||||
# current setup, but you are highly discouraged from using this. In
 | 
			
		||||
# other words, please change it to be more suited to your system.
 | 
			
		||||
#
 | 
			
		||||
rc_need="net"
 | 
			
		||||
#
 | 
			
		||||
# Mark certain mount points as critical.
 | 
			
		||||
# This contains aspace separated list of mount points which should be
 | 
			
		||||
# considered critical. If one of these mount points cannot be mounted,
 | 
			
		||||
# netmount will fail.
 | 
			
		||||
# By default, this is empty.
 | 
			
		||||
#critical_mounts="/home /var"
 | 
			
		||||
							
								
								
									
										80
									
								
								conf.d/network
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								conf.d/network
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
# Assign static IP addresses and run custom scripts per interface.
 | 
			
		||||
# Separate commands with ;
 | 
			
		||||
# Prefix with ! to run a shell script.
 | 
			
		||||
# Use \$int to represent the interface
 | 
			
		||||
#ifconfig_eth0="192.168.0.10 netmask 255.255.255.0"
 | 
			
		||||
 | 
			
		||||
# You also have ifup_eth0 and ifdown_eth0 to run other commands when
 | 
			
		||||
# eth0 is started and stopped.
 | 
			
		||||
# You should note that we don't stop the network at system shutdown by default.
 | 
			
		||||
# If you really need this, then set keep_network=NO
 | 
			
		||||
 | 
			
		||||
# Lastly, the interfaces variable pulls in virtual interfaces that cannot
 | 
			
		||||
# be automatically detected.
 | 
			
		||||
#interfaces="br0 bond0 vlan0"
 | 
			
		||||
 | 
			
		||||
# You can also use files instead of variables here if you like:
 | 
			
		||||
# /etc/ifconfig.eth0 is equivalent to ifconfig_eth0
 | 
			
		||||
# /etc/ip.eth0 is equivalent to ifconfig_eth0
 | 
			
		||||
# /etc/ifup.eth0 is equivalent to ifup_eth0
 | 
			
		||||
# /etc/ifdown.eth0 is equivalent to ifdown_eth0
 | 
			
		||||
# Any files found will automatically be put into the interfaces variable.
 | 
			
		||||
# You don't need to escape variables in files, so use $int instead of \$int.
 | 
			
		||||
 | 
			
		||||
# If you require DHCP, you should install dhcpcd and add it to the boot or
 | 
			
		||||
# default runlevel.
 | 
			
		||||
 | 
			
		||||
# NIS users can set the domain name here
 | 
			
		||||
#domainname="foobar"
 | 
			
		||||
 | 
			
		||||
# You can add a default route.
 | 
			
		||||
# The way this is done is slightly different depending on the operating system.
 | 
			
		||||
#
 | 
			
		||||
# *BSD:
 | 
			
		||||
#defaultroute="192.168.0.1"
 | 
			
		||||
#defaultroute6="2001:a:b:c"
 | 
			
		||||
#Hurd/Linux (ifconfig):
 | 
			
		||||
#defaultroute="gw 192.168.0.1"
 | 
			
		||||
#defaultroute6="gw 2001:a:b:c"
 | 
			
		||||
 | 
			
		||||
# The remainder of this file applies to Linux only and shows how
 | 
			
		||||
# iproute2 is supported along with other examples.
 | 
			
		||||
 | 
			
		||||
# ifconfig under Linux is not that powerful and doesn't easily handle
 | 
			
		||||
# multiple addresses
 | 
			
		||||
# On the other hand, iproute2 is quite powerful and is also supported
 | 
			
		||||
#ip_eth0="192.168.0.10/24; 192.168.10.10/24"
 | 
			
		||||
 | 
			
		||||
# You can also use iproute2 to add the default route.
 | 
			
		||||
#defaultiproute="via 192.168.0.1"
 | 
			
		||||
#defaultiproute6="via 2001:a:b:c"
 | 
			
		||||
 | 
			
		||||
# ip doesn't handle MTU like ifconfig, but we can do it like so
 | 
			
		||||
#ifup_eth0="ip link set \$int mtu 1500"
 | 
			
		||||
 | 
			
		||||
# Create a bonded interface
 | 
			
		||||
#interfaces="bond0"
 | 
			
		||||
#ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0"
 | 
			
		||||
#ifconfig_bond0="192.168.0.10 netmask 255.255.255.0"
 | 
			
		||||
#ifdown_bond0="rmmod bonding"
 | 
			
		||||
 | 
			
		||||
# Create tap interface and a bridge interface.
 | 
			
		||||
# We add the tap to the bridge.
 | 
			
		||||
# An external program, like dhcpcd, will configure the IP on the bridge
 | 
			
		||||
#interfaces="tun0 br0"
 | 
			
		||||
#ifup_tun0="tunctl -t \$int"
 | 
			
		||||
#ifdown_tun0="tunctl -d \$int"
 | 
			
		||||
#ifup_br0="brctl addbr \$int; brctl add \$int eth1; brtctl add \$int eth2"
 | 
			
		||||
#ifdown_br0="ifconfig \$int down; btctl delbr \$int"
 | 
			
		||||
 | 
			
		||||
# Create VLAN
 | 
			
		||||
#interfaces="eth0_2 eth0_3 eth0_4"
 | 
			
		||||
#ifup_eth0="vconfig add \$int 2; vconfig add \$int 3; vconfig add \$int 4"
 | 
			
		||||
#ifconfig_eth0_2="192.168.2.10 netmask 255.255.255.0"
 | 
			
		||||
#ifconfig_eth0_3="192.168.3.10 netmask 255.255.255.0"
 | 
			
		||||
#ifconfig_eth0_4="192.168.4.10 netmask 255.255.255.0"
 | 
			
		||||
#ifdown_eth0="vconfig rem \$int.2; vconfig rem \$int.3; vconfig rem \$int.4"
 | 
			
		||||
 | 
			
		||||
# Normally you would use wpa_supplicant to configure wireless, but you can
 | 
			
		||||
# use iwconfig also
 | 
			
		||||
#ifup_wlan0="iwconfig \$int key s:secretkey enc open essid foobar"
 | 
			
		||||
							
								
								
									
										7
									
								
								conf.d/powerd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								conf.d/powerd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
# Mode allowed: maximum, minimum, adaptive
 | 
			
		||||
# Default unless specified is adaptive
 | 
			
		||||
powerd_ac_mode="maximum"
 | 
			
		||||
#powerd_battery_mode="minimum"
 | 
			
		||||
 | 
			
		||||
# Additional arguments for powerd - see the man page for details
 | 
			
		||||
powerd_args=""
 | 
			
		||||
							
								
								
									
										3
									
								
								conf.d/rarpd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								conf.d/rarpd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# To start rarpd only for a given interface, set the
 | 
			
		||||
# following variable. Otherwise we listen on all interfaces.
 | 
			
		||||
#rarpd_interface="rl0"
 | 
			
		||||
							
								
								
									
										25
									
								
								conf.d/savecore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								conf.d/savecore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# Unless you're a kernel developer or driver writer then this won't
 | 
			
		||||
# be of any interest to you at all.
 | 
			
		||||
# The following options allow to configure the kernel's core dump
 | 
			
		||||
# facilities.
 | 
			
		||||
 | 
			
		||||
# The dump_device variable is used to specify which device will be
 | 
			
		||||
# used by the kernel to write the dump down. This has to be a swap
 | 
			
		||||
# partition, and has to be at least big enough to contain the whole
 | 
			
		||||
# physical memory (see hw.physmem sysctl(8) variable).
 | 
			
		||||
# When the variable is commented out, no core dump will be enabled for
 | 
			
		||||
# the kernel.
 | 
			
		||||
#dump_device=/dev/ad0s1b
 | 
			
		||||
 | 
			
		||||
# The dump_dir variable is used to tell savecore(8) utility where
 | 
			
		||||
# to save the kernel core dump once it's restored from the dump
 | 
			
		||||
# device. If unset, /var/crash will be used, as the default of
 | 
			
		||||
# FreeBSD.
 | 
			
		||||
#dump_dir=/var/crash
 | 
			
		||||
 | 
			
		||||
# The dump_compress variable decide whether to compress with
 | 
			
		||||
# gzip(1) the dump or leave it of its original size (the size of the
 | 
			
		||||
# physical memory present on the system). If set to yes, the -z option
 | 
			
		||||
# will be passed to savecore(8) that will proceed on compressing the
 | 
			
		||||
# dump.
 | 
			
		||||
#dump_compress=NO
 | 
			
		||||
							
								
								
									
										14
									
								
								conf.d/seedrng
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								conf.d/seedrng
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
# The convention in this file is to show the default settings commented out.
 | 
			
		||||
#
 | 
			
		||||
# Sometimes you want to have urandom start before "localmount" (say for crypt
 | 
			
		||||
# swap), so you will need to customize this behavior.  If you have /var on a
 | 
			
		||||
# separate partition, make sure paths under /var are adjusted to point to
 | 
			
		||||
# locations on your root device.
 | 
			
		||||
#
 | 
			
		||||
# Set skip_credit to yes or true if you do not want seed files to actually
 | 
			
		||||
# credit the random number generator. For example, you should set this if you
 | 
			
		||||
# plan to replicate the file system image without removing the contents of
 | 
			
		||||
# ${seed_dir}.
 | 
			
		||||
#
 | 
			
		||||
# seed_dir=/var/lib/seedrng
 | 
			
		||||
# skip_credit=no
 | 
			
		||||
							
								
								
									
										26
									
								
								conf.d/staticroute
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								conf.d/staticroute
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
# Static routes are defined differently depending on your operating
 | 
			
		||||
# system, so please be sure to use the correct syntax.
 | 
			
		||||
# Do not use this file to define the default route.
 | 
			
		||||
# In all settings, multiple routes should be separated using ; or new lines.
 | 
			
		||||
 | 
			
		||||
# Define static routes on Linux using route. See route(8) for syntax.
 | 
			
		||||
#staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1
 | 
			
		||||
#net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1"
 | 
			
		||||
 | 
			
		||||
# Define static routes on Linux using iproute2. See ip(8) for syntax.
 | 
			
		||||
#staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1"
 | 
			
		||||
 | 
			
		||||
# Define static routes on GNU/Hurd. See route(8) for syntax.
 | 
			
		||||
# /etc/route.conf(5) takes precedence over this configuration.
 | 
			
		||||
# FIXME: "net ..." not supported
 | 
			
		||||
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 --address 10.73.1.1
 | 
			
		||||
#net 192.168.1.0 -netmask 255.255.255.0 --address 10.73.1.1"
 | 
			
		||||
 | 
			
		||||
# Define static routes on GNU/KFreeBSD. See route(8) for syntax.
 | 
			
		||||
#staticroute="net 192.168.0.0 10.73.1.1 netmask 255.255.255.0
 | 
			
		||||
#net 192.168.1.0 10.73.1.1 netmask 255.255.255.0"
 | 
			
		||||
 | 
			
		||||
# Define static routes on other BSD systems. See route(8) for syntax.
 | 
			
		||||
# /etc/route.conf(5) takes precedence over this configuration.
 | 
			
		||||
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 10.73.1.1
 | 
			
		||||
#net 192.168.1.0 -netmask 255.255.255.0 10.73.1.1"
 | 
			
		||||
							
								
								
									
										13
									
								
								conf.d/swap
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								conf.d/swap
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
# If you are only using local swap partitions, you should not change
 | 
			
		||||
# this file. Otherwise, you need to uncomment the below rc_before line
 | 
			
		||||
# followed by the appropriate rc_need line.
 | 
			
		||||
#rc_before="!localmount"
 | 
			
		||||
#
 | 
			
		||||
# If you are using swap files stored on local file systems, uncomment
 | 
			
		||||
# this line.
 | 
			
		||||
#rc_need="localmount"
 | 
			
		||||
#
 | 
			
		||||
# If you are using swap files stored on network file systems or swap
 | 
			
		||||
# partitions stored on network block devices such as iSCSI, uncomment
 | 
			
		||||
# this line.
 | 
			
		||||
#rc_need="netmount"
 | 
			
		||||
							
								
								
									
										6
									
								
								conf.d/swclock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								conf.d/swclock
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
# This is the location of the reference file swclock uses to set the
 | 
			
		||||
# system date and time.
 | 
			
		||||
# This is the default path. If you are using it, you do not need to
 | 
			
		||||
# uncomment it. If you are using the default and have /var on its own
 | 
			
		||||
# file system, you need to add the appropriate rc_after setting.
 | 
			
		||||
# swclock_file=/var/lib/misc/openrc-shutdowntime
 | 
			
		||||
							
								
								
									
										19
									
								
								conf.d/syscons
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								conf.d/syscons
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
# Example syscons config file. This is the place to set things like keymap, etc.
 | 
			
		||||
 | 
			
		||||
# Set the video mode - you should check the vidcontrol man page for valid modes
 | 
			
		||||
# NOTE:- This will blank the screen after this command is run
 | 
			
		||||
# NOTE:- You can get more modes if you load the vesa kernel module, but this
 | 
			
		||||
# may require the SC_PIXEL_MODE kernel option
 | 
			
		||||
#allscreen_flags="VGA_80x30"
 | 
			
		||||
 | 
			
		||||
# Set the keymap to "uk.iso".
 | 
			
		||||
#keymap="uk.iso"
 | 
			
		||||
 | 
			
		||||
# Set the keyboard rate to 250ms delay, and 34 repeat rate.
 | 
			
		||||
#keyrate="250.34"
 | 
			
		||||
 | 
			
		||||
# Change the behaviour of F-unction keys (see kbdcontrol(1)).
 | 
			
		||||
#keychange="10 'ssh myhost'"
 | 
			
		||||
 | 
			
		||||
# See vidcontrol(1) -t
 | 
			
		||||
#blanktime="off"
 | 
			
		||||
							
								
								
									
										5
									
								
								conf.d/urandom
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								conf.d/urandom
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
# Sometimes you want to have urandom start before "localmount"
 | 
			
		||||
# (say for crypt swap), so you will need to customize this
 | 
			
		||||
# behavior.  If you have /var on a separate partition, then
 | 
			
		||||
# make sure this path lives on your root device somewhere.
 | 
			
		||||
urandom_seed="/var/lib/misc/random-seed"
 | 
			
		||||
							
								
								
									
										315
									
								
								etc/devd.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										315
									
								
								etc/devd.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,315 @@
 | 
			
		||||
# $FreeBSD: src/etc/devd.conf,v 1.38 2007/06/21 22:50:36 njl Exp $
 | 
			
		||||
#
 | 
			
		||||
# Refer to devd.conf(5) and devd(8) man pages for the details on how to
 | 
			
		||||
# run and configure devd.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# NB: All regular expressions have an implicit ^$ around them.
 | 
			
		||||
# NB: device-name is shorthand for 'match device-name'
 | 
			
		||||
 | 
			
		||||
options {
 | 
			
		||||
	# Each directory directive adds a directory the list of directories
 | 
			
		||||
	# that we scan for files.  Files are read-in in the order that they
 | 
			
		||||
	# are returned from readdir(3).  The rule-sets are combined to
 | 
			
		||||
	# create a DFA that's used to match events to actions.
 | 
			
		||||
	directory "/etc/devd";
 | 
			
		||||
	directory "/usr/local/etc/devd";
 | 
			
		||||
	pid-file "/var/run/devd.pid";
 | 
			
		||||
 | 
			
		||||
	# Setup some shorthand for regex that we use later in the file.
 | 
			
		||||
	#XXX Yes, these are gross -- imp
 | 
			
		||||
	set scsi-controller-regex
 | 
			
		||||
		"(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\
 | 
			
		||||
		esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\
 | 
			
		||||
		[0-9]+";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Note that the attach/detach with the highest value wins, so that one can
 | 
			
		||||
# override these general rules.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Configure the interface on attach.  Due to a historical accident, this
 | 
			
		||||
# script is called pccard_ether.
 | 
			
		||||
#
 | 
			
		||||
notify 0 {
 | 
			
		||||
	match "system"		"IFNET";
 | 
			
		||||
	match "type"		"ATTACH";
 | 
			
		||||
	action "/etc/rc.devd net.$subsystem start";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
notify 0 {
 | 
			
		||||
	match "system"		"IFNET";
 | 
			
		||||
	match "type"		"DETACH";
 | 
			
		||||
	action "/etc/rc.devd net.$subsystem stop";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Try to configure the interface when the network comes up and deconfigure
 | 
			
		||||
# when it goes down
 | 
			
		||||
#
 | 
			
		||||
notify 0 {
 | 
			
		||||
	match "system"		"IFNET";
 | 
			
		||||
	match "type"		"LINK_UP";
 | 
			
		||||
	media-type		"ethernet";
 | 
			
		||||
	action "/etc/rc.devd net.$subsystem start";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
notify 0 {
 | 
			
		||||
	match "system"		"IFNET";
 | 
			
		||||
	match "type"		"LINK_DOWN";
 | 
			
		||||
	media-type		"ethernet";
 | 
			
		||||
	action "/etc/rc.devd net.$subsystem stop";
 | 
			
		||||
};
 | 
			
		||||
#
 | 
			
		||||
# Like Ethernet devices, but separate because
 | 
			
		||||
# they have a different media type.  We may want
 | 
			
		||||
# to exploit this later.
 | 
			
		||||
#
 | 
			
		||||
detach 0 {
 | 
			
		||||
	media-type "802.11";
 | 
			
		||||
	action "/etc/rc.devd net.$device-name stop";
 | 
			
		||||
};
 | 
			
		||||
attach 0 {
 | 
			
		||||
	media-type "802.11";
 | 
			
		||||
	action "/etc/rc.devd net.$device-name start";
 | 
			
		||||
};
 | 
			
		||||
notify 0 {
 | 
			
		||||
	match "system"		"IFNET";
 | 
			
		||||
	match "type"		"LINK_UP";
 | 
			
		||||
	media-type		"802.11";
 | 
			
		||||
	action "/etc/rc.devd net.$subsystem start";
 | 
			
		||||
};
 | 
			
		||||
notify 0 {
 | 
			
		||||
	match "system"		"IFNET";
 | 
			
		||||
	match "type"		"LINK_DOWN";
 | 
			
		||||
	media-type		"802.11";
 | 
			
		||||
	action "/etc/rc.devd net.$subsystem stop";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# An entry like this might be in a different file, but is included here
 | 
			
		||||
# as an example of how to override things.  Normally 'ed50' would match
 | 
			
		||||
# the above attach/detach stuff, but the value of 100 makes it
 | 
			
		||||
# hard wired to 1.2.3.4.
 | 
			
		||||
attach 100 {
 | 
			
		||||
	device-name "ed50";
 | 
			
		||||
	action "ifconfig $device-name inet 1.2.3.4 netmask 0xffff0000";
 | 
			
		||||
};
 | 
			
		||||
detach 100 {
 | 
			
		||||
	device-name "ed50";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# When a USB Bluetooth dongle appears activate it
 | 
			
		||||
attach 100 {
 | 
			
		||||
	device-name "ubt[0-9]+";
 | 
			
		||||
	action "/etc/rc.d/bluetooth start $device-name";
 | 
			
		||||
};
 | 
			
		||||
detach 100 {
 | 
			
		||||
	device-name "ubt[0-9]+";
 | 
			
		||||
	action "/etc/rc.d/bluetooth stop $device-name";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# When a USB keyboard arrives, attach it as the console keyboard.
 | 
			
		||||
attach 100 {
 | 
			
		||||
	device-name "ukbd0";
 | 
			
		||||
	action "/etc/rc.d/syscons setkeyboard /dev/ukbd0";
 | 
			
		||||
};
 | 
			
		||||
detach 100 {
 | 
			
		||||
	device-name "ukbd0";
 | 
			
		||||
	action "/etc/rc.d/syscons setkeyboard /dev/kbd0";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# The entry below starts moused when a mouse is plugged in. Moused
 | 
			
		||||
# stops automatically (actually it bombs :) when the device disappears.
 | 
			
		||||
attach 100 {
 | 
			
		||||
	device-name "ums[0-9]+";
 | 
			
		||||
	action "/etc/rc.devd moused.$device-name start";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Firmware download into the ActiveWire board. After the firmware download is
 | 
			
		||||
# done the device detaches and reappears as something new and shiny
 | 
			
		||||
# automatically.
 | 
			
		||||
attach 100 {
 | 
			
		||||
	match "vendor"	"0x0854";
 | 
			
		||||
	match "product"	"0x0100";
 | 
			
		||||
	match "release"	"0x0000";
 | 
			
		||||
	action "/usr/local/bin/ezdownload -f /usr/local/share/usb/firmware/0854.0100.0_01.hex $device-name";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Firmware download for Entrega Serial DB25 adapter.
 | 
			
		||||
attach 100 {
 | 
			
		||||
	match "vendor"	"0x1645";
 | 
			
		||||
	match "product"	"0x8001";
 | 
			
		||||
	match "release"	"0x0101";
 | 
			
		||||
	action "if ! kldstat -n usio > /dev/null 2>&1 ; then kldload usio; fi /usr/sbin/ezdownload -v -f /usr/share/usb/firmware/1645.8001.0101 /dev/$device-name";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# This entry starts the ColdSync tool in daemon mode. Make sure you have an up
 | 
			
		||||
# to date /usr/local/etc/palms. We override the 'listen' settings for port and
 | 
			
		||||
# type in /usr/local/etc/coldsync.conf.
 | 
			
		||||
attach 100 {
 | 
			
		||||
	device-name "ugen[0-9]+";
 | 
			
		||||
	match "vendor" "0x082d";
 | 
			
		||||
	match "product" "0x0100";
 | 
			
		||||
	match "release" "0x0100";
 | 
			
		||||
	action "/usr/local/bin/coldsync -md -p /dev/$device-name -t usb";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Rescan scsi device-names on attach, but not detach.  However, it is
 | 
			
		||||
# disabled by default due to reports of problems.
 | 
			
		||||
#
 | 
			
		||||
attach 0 {
 | 
			
		||||
	device-name "$scsi-controller-regex";
 | 
			
		||||
//	action "camcontrol rescan all";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Don't even try to second guess what to do about drivers that don't
 | 
			
		||||
# match here.  Instead, pass it off to syslog.  Commented out for the
 | 
			
		||||
# moment, as the pnpinfo variable isn't set in devd yet.  Individual
 | 
			
		||||
# variables within the bus supplied pnpinfo are set.
 | 
			
		||||
nomatch 0 {
 | 
			
		||||
#	action "logger Unknown device: $pnpinfo $location $bus";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Various logging of unknown devices.
 | 
			
		||||
nomatch 10 {
 | 
			
		||||
	match "bus" "uhub[0-9]+";
 | 
			
		||||
	action "logger Unknown USB device: vendor $vendor product $product \
 | 
			
		||||
		bus $bus";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Some PC-CARDs don't offer numerical manufacturer/product IDs, just
 | 
			
		||||
# show the CIS info there.
 | 
			
		||||
nomatch 20 {
 | 
			
		||||
	match "bus" "pccard[0-9]+";
 | 
			
		||||
	match "manufacturer" "0xffffffff";
 | 
			
		||||
	match "product" "0xffffffff";
 | 
			
		||||
	action "logger Unknown PCCARD device: CISproduct $cisproduct \
 | 
			
		||||
		CIS-vendor $cisvendor bus $bus";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
nomatch 10 {
 | 
			
		||||
	match "bus" "pccard[0-9]+";
 | 
			
		||||
	action "logger Unknown PCCARD device: manufacturer $manufacturer \
 | 
			
		||||
		product $product CISproduct $cisproduct CIS-vendor \
 | 
			
		||||
		$cisvendor bus $bus";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
nomatch 10 {
 | 
			
		||||
	match "bus" "cardbus[0-9]+";
 | 
			
		||||
	action "logger Unknown Cardbus device: device $device class $class \
 | 
			
		||||
		vendor $vendor bus $bus";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Switch power profiles when the AC line state changes.
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ACPI";
 | 
			
		||||
	match "subsystem"	"ACAD";
 | 
			
		||||
	action "/etc/rc.d/power_profile $notify";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Notify all users before beginning emergency shutdown when we get
 | 
			
		||||
# a _CRT or _HOT thermal event and we're going to power down the system
 | 
			
		||||
# very soon.
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ACPI";
 | 
			
		||||
	match "subsystem"	"Thermal";
 | 
			
		||||
	match "notify"		"0xcc";
 | 
			
		||||
	action "logger -p kern.emerg 'WARNING: system temperature too high, shutting down soon!'";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Sample ZFS problem reports handling.
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ZFS";
 | 
			
		||||
	match "type"		"zpool";
 | 
			
		||||
	action "logger -p kern.err 'ZFS: failed to load zpool $pool'";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ZFS";
 | 
			
		||||
	match "type"		"vdev";
 | 
			
		||||
	action "logger -p kern.err 'ZFS: vdev failure, zpool=$pool type=$type'";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ZFS";
 | 
			
		||||
	match "type"		"data";
 | 
			
		||||
	action "logger -p kern.warn 'ZFS: zpool I/O failure, zpool=$pool error=$zio_err'";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ZFS";
 | 
			
		||||
	match "type"		"io";
 | 
			
		||||
	action "logger -p kern.warn 'ZFS: vdev I/O failure, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size error=$zio_err'";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ZFS";
 | 
			
		||||
	match "type"		"checksum";
 | 
			
		||||
	action "logger -p kern.warn 'ZFS: checksum mismatch, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size'";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# User requested suspend, so perform preparation steps and then execute
 | 
			
		||||
# the actual suspend process.
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ACPI";
 | 
			
		||||
	match "subsystem"	"Suspend";
 | 
			
		||||
	action "/etc/rc.suspend acpi $notify";
 | 
			
		||||
};
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ACPI";
 | 
			
		||||
	match "subsystem"	"Resume";
 | 
			
		||||
	action "/etc/rc.resume acpi $notify";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* EXAMPLES TO END OF FILE
 | 
			
		||||
 | 
			
		||||
# The following might be an example of something that a vendor might
 | 
			
		||||
# install if you were to add their device.  This might reside in
 | 
			
		||||
# /usr/local/etc/devd/deqna.conf.  A deqna is, in this hypothetical
 | 
			
		||||
# example, a pccard ethernet-like device.  Students of history may
 | 
			
		||||
# know other devices by this name, and will get the in-jokes in this
 | 
			
		||||
# entry.
 | 
			
		||||
nomatch 10 {
 | 
			
		||||
	match "bus" "pccard[0-9]+";
 | 
			
		||||
	match "manufacturer" "0x1234";
 | 
			
		||||
	match "product" "0x2323";
 | 
			
		||||
	action "kldload if_deqna";
 | 
			
		||||
};
 | 
			
		||||
attach 10 {
 | 
			
		||||
	device-name "deqna[0-9]+";
 | 
			
		||||
	action "/etc/pccard_ether $device-name start";
 | 
			
		||||
};
 | 
			
		||||
detach 10 {
 | 
			
		||||
	device-name "deqna[0-9]+";
 | 
			
		||||
	action "/etc/pccard_ether $device-name stop";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Examples of notify hooks.  A notify is a generic way for a kernel
 | 
			
		||||
# subsystem to send event notification to userland.
 | 
			
		||||
#
 | 
			
		||||
# Here are some examples of ACPI notify handlers.  ACPI subsystems that
 | 
			
		||||
# generate notifies include the AC adapter, power/sleep buttons,
 | 
			
		||||
# control method batteries, lid switch, and thermal zones.
 | 
			
		||||
#
 | 
			
		||||
# Information returned is not always the same as the ACPI notify
 | 
			
		||||
# events.  See the ACPI specification for more information about
 | 
			
		||||
# notifies.  Here is the information returned for each subsystem:
 | 
			
		||||
#
 | 
			
		||||
# ACAD:		AC line state (0 is offline, 1 is online)
 | 
			
		||||
# Button:	Button pressed (0 for power, 1 for sleep)
 | 
			
		||||
# CMBAT:	ACPI battery events
 | 
			
		||||
# Lid:		Lid state (0 is closed, 1 is open)
 | 
			
		||||
# Suspend, Resume: Suspend and resume notification
 | 
			
		||||
# Thermal:	ACPI thermal zone events
 | 
			
		||||
#
 | 
			
		||||
# This example calls a script when the AC state changes, passing the
 | 
			
		||||
# notify value as the first argument.  If the state is 0x00, it might
 | 
			
		||||
# call some sysctls to implement economy mode.  If 0x01, it might set
 | 
			
		||||
# the mode to performance.
 | 
			
		||||
notify 10 {
 | 
			
		||||
	match "system"		"ACPI";
 | 
			
		||||
	match "subsystem"	"ACAD";
 | 
			
		||||
	action			"/etc/acpi_ac $notify";
 | 
			
		||||
};
 | 
			
		||||
*/
 | 
			
		||||
							
								
								
									
										44
									
								
								etc/meson.build
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								etc/meson.build
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
etc_conf_data = configuration_data()
 | 
			
		||||
if os == 'FreeBSD'
 | 
			
		||||
  etc_conf_data.set('TERM', 'cons25')
 | 
			
		||||
elif os == 'Linux'
 | 
			
		||||
  etc_conf_data.set('TERM', 'wsvt25')
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
etc_conf_common = [
 | 
			
		||||
  'rc.conf',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
etc_bin_FreeBSD = [
 | 
			
		||||
  'rc.devd',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
etc_conf_FreeBSD = [
 | 
			
		||||
  'devd.conf',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
etc_bin_NetBSD =  [
 | 
			
		||||
  'rc.in',
 | 
			
		||||
  'rc.shutdown.in',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
install_data(etc_conf_common,
 | 
			
		||||
  install_dir : get_option('sysconfdir'))
 | 
			
		||||
 | 
			
		||||
  if os == 'FreeBSD'
 | 
			
		||||
  install_data(etc_bin_FreeBSD,
 | 
			
		||||
    install_dir : get_option('sysconfdir'),
 | 
			
		||||
    install_mode: 'rwxr-xr-x')
 | 
			
		||||
  install_data(etc_conf_FreeBSD,
 | 
			
		||||
    install_dir : get_option('sysconfdir'))
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if os == 'FreeBSD' or os == 'NetBSD'
 | 
			
		||||
  foreach file : etc_bin_NetBSD
 | 
			
		||||
    configure_file(input : file,
 | 
			
		||||
      output : '@BASENAME@',
 | 
			
		||||
      configuration : etc_conf_data,
 | 
			
		||||
      install_dir: get_option('sysconfdir'),
 | 
			
		||||
      install_mode: 'rwxr-xr-x')
 | 
			
		||||
  endforeach
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										318
									
								
								etc/rc.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										318
									
								
								etc/rc.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,318 @@
 | 
			
		||||
# Global OpenRC configuration settings
 | 
			
		||||
 | 
			
		||||
# Set to "YES" if you want the rc system to try and start services
 | 
			
		||||
# in parallel for a slight speed improvement. When running in parallel we
 | 
			
		||||
# prefix the service output with its name as the output will get
 | 
			
		||||
# jumbled up.
 | 
			
		||||
# WARNING: whilst we have improved parallel, it can still potentially lock
 | 
			
		||||
# the boot process. Don't file bugs about this unless you can supply
 | 
			
		||||
# patches that fix it without breaking other things!
 | 
			
		||||
#rc_parallel="NO"
 | 
			
		||||
 | 
			
		||||
# Set rc_interactive to "YES" and you'll be able to press the I key during
 | 
			
		||||
# boot so you can choose to start specific services. Set to "NO" to disable
 | 
			
		||||
# this feature. This feature is automatically disabled if rc_parallel is
 | 
			
		||||
# set to YES.
 | 
			
		||||
#rc_interactive="YES"
 | 
			
		||||
 | 
			
		||||
# If we need to drop to a shell, you can specify it here.
 | 
			
		||||
# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
 | 
			
		||||
# otherwise /bin/sh
 | 
			
		||||
# Linux users could specify /sbin/sulogin
 | 
			
		||||
#rc_shell=/bin/sh
 | 
			
		||||
 | 
			
		||||
# Do we allow any started service in the runlevel to satisfy the dependency
 | 
			
		||||
# or do we want all of them regardless of state? For example, if net.eth0
 | 
			
		||||
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
 | 
			
		||||
# both will be started, but services that depend on 'net' will work if either
 | 
			
		||||
# one comes up. With rc_depend_strict="YES" we would require them both to
 | 
			
		||||
# come up.
 | 
			
		||||
#rc_depend_strict="YES"
 | 
			
		||||
 | 
			
		||||
# rc_hotplug controls which services we allow to be hotplugged.
 | 
			
		||||
# A hotplugged service is one started by a dynamic dev manager when a matching
 | 
			
		||||
# hardware device is found.
 | 
			
		||||
# Hotplugged services appear in the "hotplugged" runlevel.
 | 
			
		||||
# If rc_hotplug is set to any value, we compare the name of this service
 | 
			
		||||
# to every pattern in the value, from left to right, and we allow the
 | 
			
		||||
# service to be hotplugged if it matches a pattern, or if it matches no
 | 
			
		||||
# patterns. Patterns can include shell wildcards.
 | 
			
		||||
# To disable services from being hotplugged, prefix patterns with "!".
 | 
			
		||||
#If rc_hotplug is not set or is empty, all hotplugging is disabled.
 | 
			
		||||
# Example - rc_hotplug="net.wlan !net.*"
 | 
			
		||||
# This allows net.wlan and any service not matching net.* to be hotplugged.
 | 
			
		||||
# Example - rc_hotplug="!net.*"
 | 
			
		||||
# This allows services that do not match "net.*" to be hotplugged.
 | 
			
		||||
 | 
			
		||||
# rc_logger launches a logging daemon to log the entire rc process to
 | 
			
		||||
# /var/log/rc.log
 | 
			
		||||
# NOTE: Linux systems require the devfs service to be started before
 | 
			
		||||
# logging can take place and as such cannot log the sysinit runlevel.
 | 
			
		||||
#rc_logger="NO"
 | 
			
		||||
 | 
			
		||||
# Through rc_log_path you can specify a custom log file.
 | 
			
		||||
# The default value is: /var/log/rc.log
 | 
			
		||||
#rc_log_path="/var/log/rc.log"
 | 
			
		||||
 | 
			
		||||
# If you want verbose output for OpenRC, set this to yes. If you want
 | 
			
		||||
# verbose output for service foo only, set it to yes in /etc/conf.d/foo.
 | 
			
		||||
#rc_verbose=no
 | 
			
		||||
 | 
			
		||||
# By default we filter the environment for our running scripts. To allow other
 | 
			
		||||
# variables through, add them here. Use a * to allow all variables through.
 | 
			
		||||
#rc_env_allow="VAR1 VAR2"
 | 
			
		||||
 | 
			
		||||
# By default we assume that all daemons will start correctly.
 | 
			
		||||
# However, some do not - a classic example is that they fork and return 0 AND
 | 
			
		||||
# then child barfs on a configuration error. Or the daemon has a bug and the
 | 
			
		||||
# child crashes. You can set the number of milliseconds start-stop-daemon
 | 
			
		||||
# waits to check that the daemon is still running after starting here.
 | 
			
		||||
# The default is 0 - no checking.
 | 
			
		||||
#rc_start_wait=100
 | 
			
		||||
 | 
			
		||||
# rc_nostop is a list of services which will not stop when changing runlevels.
 | 
			
		||||
# This still allows the service itself to be stopped when called directly.
 | 
			
		||||
#rc_nostop=""
 | 
			
		||||
 | 
			
		||||
# rc will attempt to start crashed services by default.
 | 
			
		||||
# However, it will not stop them by default as that could bring down other
 | 
			
		||||
# critical services.
 | 
			
		||||
#rc_crashed_stop=NO
 | 
			
		||||
#rc_crashed_start=YES
 | 
			
		||||
 | 
			
		||||
# Set rc_nocolor to yes if you do not want colors displayed in OpenRC
 | 
			
		||||
# output.
 | 
			
		||||
#rc_nocolor=NO
 | 
			
		||||
 | 
			
		||||
##############################################################################
 | 
			
		||||
# MISC CONFIGURATION VARIABLES
 | 
			
		||||
# There variables are shared between many init scripts
 | 
			
		||||
 | 
			
		||||
# Set unicode to NO to turn off unicode support for keyboards and screens.
 | 
			
		||||
#unicode="YES"
 | 
			
		||||
 | 
			
		||||
# This is how long fuser should wait for a remote server to respond. The
 | 
			
		||||
# default is 60 seconds, but  it can be adjusted here.
 | 
			
		||||
#rc_fuser_timeout=60
 | 
			
		||||
 | 
			
		||||
# Below is the default list of network fstypes.
 | 
			
		||||
#
 | 
			
		||||
# afs ceph cifs coda davfs fuse fuse.glusterfs fuse.sshfs gfs glusterfs lustre
 | 
			
		||||
# ncpfs nfs nfs4 ocfs2 shfs smbfs
 | 
			
		||||
#
 | 
			
		||||
# If you would like to add to this list, you can do so by adding your
 | 
			
		||||
# own fstypes to the following variable.
 | 
			
		||||
#extra_net_fs_list=""
 | 
			
		||||
 | 
			
		||||
##############################################################################
 | 
			
		||||
# SERVICE CONFIGURATION VARIABLES
 | 
			
		||||
# These variables are documented here, but should be configured in
 | 
			
		||||
# /etc/conf.d/foo for service foo and NOT enabled here unless you
 | 
			
		||||
# really want them to work on a global basis.
 | 
			
		||||
# If your service has characters in its name which are not legal in
 | 
			
		||||
# shell variable names and you configure the variables for it in this
 | 
			
		||||
# file, those characters should be replaced with underscores in the
 | 
			
		||||
# variable names as shown below.
 | 
			
		||||
 | 
			
		||||
# Some daemons are started and stopped via start-stop-daemon.
 | 
			
		||||
# We can set some things on a per service basis, like the nicelevel.
 | 
			
		||||
# These need to be exported
 | 
			
		||||
#export SSD_NICELEVEL="0"
 | 
			
		||||
# Or the ionice level. The format is class[:data] , just like the
 | 
			
		||||
# --ionice start-stop-daemon parameter.
 | 
			
		||||
#export SSD_IONICELEVEL="0:0"
 | 
			
		||||
# Or the OOM score adjustment.
 | 
			
		||||
#export SSD_OOM_SCORE_ADJ="0"
 | 
			
		||||
 | 
			
		||||
# Pass ulimit parameters
 | 
			
		||||
# If you are using bash in POSIX mode for your shell, note that the
 | 
			
		||||
# ulimit command uses a block size of 512 bytes for the -c and -f
 | 
			
		||||
# options
 | 
			
		||||
#rc_ulimit="-u 30"
 | 
			
		||||
 | 
			
		||||
# It's possible to define extra dependencies for services like so
 | 
			
		||||
#rc_config="/etc/foo"
 | 
			
		||||
#rc_need="openvpn"
 | 
			
		||||
#rc_use="net.eth0"
 | 
			
		||||
#rc_after="clock"
 | 
			
		||||
#rc_before="local"
 | 
			
		||||
#rc_provide="!net"
 | 
			
		||||
 | 
			
		||||
# You can also enable the above commands here for each service. Below is an
 | 
			
		||||
# example for service foo.
 | 
			
		||||
#rc_foo_config="/etc/foo"
 | 
			
		||||
#rc_foo_need="openvpn"
 | 
			
		||||
#rc_foo_after="clock"
 | 
			
		||||
 | 
			
		||||
# Below is an example for service foo-bar. Note that the '-' is illegal
 | 
			
		||||
# in a shell variable name, so we convert it to an underscore.
 | 
			
		||||
# example for service foo-bar.
 | 
			
		||||
#rc_foo_bar_config="/etc/foo-bar"
 | 
			
		||||
#rc_foo_bar_need="openvpn"
 | 
			
		||||
#rc_foo_bar_after="clock"
 | 
			
		||||
 | 
			
		||||
# You can also remove dependencies.
 | 
			
		||||
# This is mainly used for saying which services do NOT provide net.
 | 
			
		||||
#rc_net_tap0_provide="!net"
 | 
			
		||||
 | 
			
		||||
# This is the subsystem type.
 | 
			
		||||
# It is used to match against keywords set by the keyword call in the
 | 
			
		||||
# depend function of service scripts.
 | 
			
		||||
#
 | 
			
		||||
# It should be set to the value representing the environment this file is
 | 
			
		||||
# PRESENTLY in, not the virtualization the environment is capable of.
 | 
			
		||||
# If it is commented out, automatic detection will be used.
 | 
			
		||||
#
 | 
			
		||||
# The list below shows all possible settings as well as the host
 | 
			
		||||
# operating systems where they can be used and autodetected.
 | 
			
		||||
#
 | 
			
		||||
# ""               - nothing special
 | 
			
		||||
# "docker"         - Docker container manager (Linux)
 | 
			
		||||
# "jail"           - Jail (DragonflyBSD or FreeBSD)
 | 
			
		||||
# "lxc"            - Linux Containers
 | 
			
		||||
# "openvz"         - Linux OpenVZ
 | 
			
		||||
# "prefix"         - Prefix
 | 
			
		||||
# "rkt"            - CoreOS container management system (Linux)
 | 
			
		||||
# "subhurd"        - Hurd subhurds (to be checked)
 | 
			
		||||
# "systemd-nspawn" - Container created by systemd-nspawn (Linux)
 | 
			
		||||
# "uml"            - Usermode Linux
 | 
			
		||||
# "vserver"        - Linux vserver
 | 
			
		||||
# "xen0"           - Xen0 Domain (Linux and NetBSD)
 | 
			
		||||
# "xenU"           - XenU Domain (Linux and NetBSD)
 | 
			
		||||
#rc_sys=""
 | 
			
		||||
 | 
			
		||||
# if  you use openrc-init, which is currently only available on Linux,
 | 
			
		||||
# this is the default runlevel to activate after "sysinit" and "boot"
 | 
			
		||||
# when booting.
 | 
			
		||||
#rc_default_runlevel="default"
 | 
			
		||||
 | 
			
		||||
# on Linux and Hurd, this is the number of ttys allocated for logins
 | 
			
		||||
# It is used in the consolefont, keymaps, numlock and termencoding
 | 
			
		||||
# service scripts.
 | 
			
		||||
rc_tty_number=12
 | 
			
		||||
 | 
			
		||||
##############################################################################
 | 
			
		||||
# LINUX CGROUPS RESOURCE MANAGEMENT
 | 
			
		||||
 | 
			
		||||
# This sets the mode used to mount cgroups.
 | 
			
		||||
# "hybrid" mounts cgroups version 2 on /sys/fs/cgroup/unified and
 | 
			
		||||
# cgroups version 1 on /sys/fs/cgroup.
 | 
			
		||||
# "legacy" mounts cgroups version 1 on /sys/fs/cgroup
 | 
			
		||||
# "unified" mounts cgroups version 2 on /sys/fs/cgroup
 | 
			
		||||
#rc_cgroup_mode="hybrid"
 | 
			
		||||
 | 
			
		||||
# This is a list of controllers which should be enabled for cgroups version 2
 | 
			
		||||
# when hybrid mode is being used.
 | 
			
		||||
# Controllers listed here will not be available for cgroups version 1.
 | 
			
		||||
#rc_cgroup_controllers=""
 | 
			
		||||
 | 
			
		||||
# This variable contains the cgroups version 2 settings for your services.
 | 
			
		||||
# If this is set in this file, the settings will apply to all services.
 | 
			
		||||
# If you want different settings for each service, place the settings in
 | 
			
		||||
# /etc/conf.d/foo for service foo.
 | 
			
		||||
# The format is to specify the setting and value followed by a newline.
 | 
			
		||||
# Multiple settings and values can be specified.
 | 
			
		||||
# For example, you would use this to set the maximum memory and maximum
 | 
			
		||||
# number of pids for a service.
 | 
			
		||||
#rc_cgroup_settings="
 | 
			
		||||
#memory.max 10485760
 | 
			
		||||
#pids.max max
 | 
			
		||||
#"
 | 
			
		||||
#
 | 
			
		||||
# For more information about the adjustments that can be made with
 | 
			
		||||
# cgroups version 2, see Documentation/cgroups-v2.txt in the linux kernel
 | 
			
		||||
# source tree.
 | 
			
		||||
#rc_cgroup_settings=""
 | 
			
		||||
 | 
			
		||||
# This switch controls whether or not cgroups version 1 controllers are
 | 
			
		||||
# individually mounted under
 | 
			
		||||
# /sys/fs/cgroup in hybrid or legacy mode.
 | 
			
		||||
#rc_controller_cgroups="YES"
 | 
			
		||||
 | 
			
		||||
# The following setting turns on the memory.use_hierarchy setting in the
 | 
			
		||||
# root memory cgroup for cgroups v1.
 | 
			
		||||
# It must be set to yes in this file if you want this functionality.
 | 
			
		||||
#rc_cgroup_memory_use_hierarchy="NO"
 | 
			
		||||
 | 
			
		||||
# The following settings allow you to set up values for the cgroups version 1
 | 
			
		||||
# controllers for your services.
 | 
			
		||||
# They can be set in this file;, however, if you do this, the settings
 | 
			
		||||
# will apply to all of your services.
 | 
			
		||||
# If you want different settings for each service, place the settings in
 | 
			
		||||
# /etc/conf.d/foo for service foo.
 | 
			
		||||
# The format is to specify the names of the settings followed by their
 | 
			
		||||
# values. Each variable can hold multiple settings.
 | 
			
		||||
# For example, you would use this to set the cpu.shares setting in the
 | 
			
		||||
# cpu controller to 512 for your service.
 | 
			
		||||
# rc_cgroup_cpu="
 | 
			
		||||
# cpu.shares 512
 | 
			
		||||
# "
 | 
			
		||||
#
 | 
			
		||||
# For more information about the adjustments that can be made with
 | 
			
		||||
# cgroups version 1, see Documentation/cgroups-v1/* in the linux kernel
 | 
			
		||||
# source tree.
 | 
			
		||||
 | 
			
		||||
# Set the blkio controller settings for this service.
 | 
			
		||||
#rc_cgroup_blkio=""
 | 
			
		||||
 | 
			
		||||
# Set the cpu controller settings for this service.
 | 
			
		||||
#rc_cgroup_cpu=""
 | 
			
		||||
 | 
			
		||||
# Add this service to the cpuacct controller (any value means yes).
 | 
			
		||||
#rc_cgroup_cpuacct=""
 | 
			
		||||
 | 
			
		||||
# Set the cpuset controller settings for this service.
 | 
			
		||||
#rc_cgroup_cpuset=""
 | 
			
		||||
 | 
			
		||||
# Set the devices controller settings for this service.
 | 
			
		||||
#rc_cgroup_devices=""
 | 
			
		||||
 | 
			
		||||
# Set the hugetlb controller settings for this service.
 | 
			
		||||
#rc_cgroup_hugetlb=""
 | 
			
		||||
 | 
			
		||||
# Set the memory controller settings for this service.
 | 
			
		||||
#rc_cgroup_memory=""
 | 
			
		||||
 | 
			
		||||
# Set the net_cls controller settings for this service.
 | 
			
		||||
#rc_cgroup_net_cls=""
 | 
			
		||||
 | 
			
		||||
# Set the net_prio controller settings for this service.
 | 
			
		||||
#rc_cgroup_net_prio=""
 | 
			
		||||
 | 
			
		||||
# Set the pids controller settings for this service.
 | 
			
		||||
#rc_cgroup_pids=""
 | 
			
		||||
 | 
			
		||||
# Set this to YES if you want all of the processes in a service's cgroup
 | 
			
		||||
# killed when the service is stopped or restarted.
 | 
			
		||||
# Be aware that setting this to yes means all of a service's
 | 
			
		||||
# child processes will be killed. Keep this in mind if you set this to
 | 
			
		||||
# yes here instead of for the individual services in
 | 
			
		||||
# /etc/conf.d/<service>.
 | 
			
		||||
# To perform this cleanup manually for a stopped service, you can
 | 
			
		||||
# execute cgroup_cleanup with /etc/init.d/<service> cgroup_cleanup or
 | 
			
		||||
# rc-service <service> cgroup_cleanup.
 | 
			
		||||
# If the kernel includes support for cgroup2's cgroup.kill, this is used
 | 
			
		||||
# to reliably teardown the cgroup.
 | 
			
		||||
# If this fails, the process followed in this cleanup is the following:
 | 
			
		||||
# 1. send stopsig (sigterm if it isn't set) to all processes left in the
 | 
			
		||||
# cgroup immediately followed by sigcont.
 | 
			
		||||
# 2. Send sighup to all processes in the cgroup if rc_send_sighup is
 | 
			
		||||
# yes.
 | 
			
		||||
# 3. delay for rc_timeout_stopsec seconds.
 | 
			
		||||
# 4. send sigkill to all processes in the cgroup unless disabled by
 | 
			
		||||
# setting rc_send_sigkill to no.
 | 
			
		||||
# rc_cgroup_cleanup="NO"
 | 
			
		||||
 | 
			
		||||
# If this is yes, we will send sighup to the processes in the cgroup
 | 
			
		||||
# immediately after stopsig and sigcont.
 | 
			
		||||
#rc_send_sighup="NO"
 | 
			
		||||
 | 
			
		||||
# This is the amount of time in seconds that we delay after sending sigcont
 | 
			
		||||
# and optionally sighup, before we optionally send sigkill to all
 | 
			
		||||
# processes in the # cgroup.
 | 
			
		||||
# The default is 90 seconds.
 | 
			
		||||
#rc_timeout_stopsec="90"
 | 
			
		||||
 | 
			
		||||
# If this is set to no, we do not send sigkill to all processes in the
 | 
			
		||||
# cgroup.
 | 
			
		||||
#rc_send_sigkill="YES"
 | 
			
		||||
							
								
								
									
										39
									
								
								etc/rc.devd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								etc/rc.devd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
#    except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# Inform RC that we are in the background and hotplugged
 | 
			
		||||
IN_BACKGROUND=yes
 | 
			
		||||
IN_HOTPLUG=yes
 | 
			
		||||
export IN_BACKGROUND IN_HOTPLUG
 | 
			
		||||
 | 
			
		||||
getmedia() {
 | 
			
		||||
	ifconfig "$1" | while read line; do
 | 
			
		||||
		case "${line}" in
 | 
			
		||||
			media:" "*) echo "${line}"; return;;
 | 
			
		||||
		esac
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Try and create an init script for network interfaces
 | 
			
		||||
if [ ! -e /etc/init.d/"$1" -a ! -e /usr/local/init.d/"$1" ]; then
 | 
			
		||||
	base=${1%%.*}
 | 
			
		||||
	if [ "${base}" = "net" ]; then
 | 
			
		||||
		# We only create links for physical interfaces
 | 
			
		||||
		[ -n "$(getmedia ${1#*.})" ] || exit 1
 | 
			
		||||
		base="net.lo0"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ -e /etc/init.d/"${base}" -a "${base}" != "$1" ]; then
 | 
			
		||||
		ln -s "${base}" /etc/init.d/"$1"
 | 
			
		||||
	fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Run the init script
 | 
			
		||||
exec /etc/init.d/"$1" "$2"
 | 
			
		||||
							
								
								
									
										26
									
								
								etc/rc.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								etc/rc.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
#    except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# If $TERM is not set then assume default of @TERM@
 | 
			
		||||
# This gives us a nice colour boot :)
 | 
			
		||||
[ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM
 | 
			
		||||
 | 
			
		||||
# Handle interrupts
 | 
			
		||||
trap : SIGINT
 | 
			
		||||
trap "echo 'Boot interrupted'; exit 1" SIGQUIT
 | 
			
		||||
 | 
			
		||||
/sbin/openrc sysinit || exit 1
 | 
			
		||||
/sbin/openrc boot || exit 1
 | 
			
		||||
/sbin/openrc default
 | 
			
		||||
 | 
			
		||||
# We don't actually care if rc default worked or not, we should exit 0
 | 
			
		||||
# to allow logins
 | 
			
		||||
exit 0
 | 
			
		||||
							
								
								
									
										24
									
								
								etc/rc.shutdown.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								etc/rc.shutdown.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
#    except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# Handle interrupts
 | 
			
		||||
trap : SIGINT SIGQUIT
 | 
			
		||||
 | 
			
		||||
# Try and use stuff in /lib over anywhere else so we can shutdown
 | 
			
		||||
# local mounts correctly.
 | 
			
		||||
LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" ; export LD_LIBRARY_PATH
 | 
			
		||||
 | 
			
		||||
# If $TERM is not set then assume default of @TERM@
 | 
			
		||||
# This gives us a nice colour boot :)
 | 
			
		||||
[ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM
 | 
			
		||||
 | 
			
		||||
action=${1:-shutdown}
 | 
			
		||||
exec /sbin/openrc "${action}"
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
<p>
 | 
			
		||||
This site is under construction. There will be much more information
 | 
			
		||||
posted here soon, so come back often.
 | 
			
		||||
</p>
 | 
			
		||||
							
								
								
									
										47
									
								
								init-guide.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								init-guide.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
# OpenRC init process guide
 | 
			
		||||
 | 
			
		||||
OpenRC now includes an init process which can be used on Linux systems
 | 
			
		||||
in place of sysvinit.
 | 
			
		||||
 | 
			
		||||
## migrating a live system to openrc-init
 | 
			
		||||
 | 
			
		||||
Configuring a live system to use this init process is very
 | 
			
		||||
straight-forward, but the steps must be completed in this order.
 | 
			
		||||
 | 
			
		||||
* have your boot loader add "init=/sbin/openrc-init" to the kernel command line
 | 
			
		||||
 | 
			
		||||
The details of how to do this will vary from distro to distro, so they are
 | 
			
		||||
out of scope for this document.
 | 
			
		||||
 | 
			
		||||
* Install gettys into the runlevels where you need them.
 | 
			
		||||
 | 
			
		||||
If you are using the provided /etc/init.d/agetty script,, you should
 | 
			
		||||
first create symlinks in /etc/init.d to it for the ports where you
 | 
			
		||||
want gettys to run, e.g. the following will work if you want gettys on
 | 
			
		||||
tty1-tty6.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# cd /etc/init.d
 | 
			
		||||
# for x in tty1 tty2 tty3 tty4 tty5 tty6; do
 | 
			
		||||
  ln -snf agetty agetty.$x
 | 
			
		||||
  done
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Once this is done, use ```rc-update``` as normal to install the agetty
 | 
			
		||||
services in the appropriate runlevels.
 | 
			
		||||
 | 
			
		||||
* Reboot your system.
 | 
			
		||||
 | 
			
		||||
At this point you are running under openrc-init, and you should use
 | 
			
		||||
openrc-shutdown to handle shutting down, powering off, rebooting etc.
 | 
			
		||||
 | 
			
		||||
## optional sysvinit compatibility
 | 
			
		||||
 | 
			
		||||
If you build and install OpenRC with MKSYSVINIT=yes, you will build and install
 | 
			
		||||
wrappers that make openrc-init compatible with sysvinit -- you will have
 | 
			
		||||
commands like "halt" "shutdown" "reboot" and "poweroff".
 | 
			
		||||
 | 
			
		||||
If you want this functionality on a live system, you should first
 | 
			
		||||
migrate the system to openrc-init, remove sysvinit, then rebuild and
 | 
			
		||||
install this package with MKSYSVINIT=yes.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										70
									
								
								init.d/adjkerntz.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								init.d/adjkerntz.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
extra_commands="save"
 | 
			
		||||
 | 
			
		||||
description="Sets the local clock to UTC or Local Time."
 | 
			
		||||
description_save="Saves the current time in the BIOS."
 | 
			
		||||
 | 
			
		||||
: ${clock:=${CLOCK:-UTC}}
 | 
			
		||||
if [ "$clock" = "UTC" ]; then
 | 
			
		||||
	utc="UTC"
 | 
			
		||||
else
 | 
			
		||||
	utc="Local Time"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after swclock
 | 
			
		||||
	provide clock
 | 
			
		||||
	# BSD adjkerntz needs to be able to write to /etc
 | 
			
		||||
	if [ "$clock" = "UTC" -a -e /etc/wall_cmos_clock ] ||
 | 
			
		||||
	   [ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
 | 
			
		||||
		need root
 | 
			
		||||
	fi
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Starting the System Clock Adjuster [${utc}]"
 | 
			
		||||
	if [ "$clock" != "UTC" ]; then
 | 
			
		||||
		echo >/etc/wall_cmos_clock
 | 
			
		||||
		start-stop-daemon --start --exec /sbin/adjkerntz -- -i
 | 
			
		||||
	else
 | 
			
		||||
		rm -f /etc/wall_cmos_clock
 | 
			
		||||
		/sbin/adjkerntz -i
 | 
			
		||||
	fi
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
save()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Setting hardware clock using the system clock [${utc}]"
 | 
			
		||||
	adjkerntz -a
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	# Don't tweak the hardware clock on LiveCD halt.
 | 
			
		||||
	if yesno "${clock_systohc:-$CLOCK_SYSTOHC}"; then
 | 
			
		||||
	   [ -z "$CDBOOT" ] && save
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	ebegin "Stopping the System Clock Adjuster"
 | 
			
		||||
	if start-stop-daemon --test --quiet --stop --exec /sbin/adjkerntz; then
 | 
			
		||||
		start-stop-daemon --stop --exec /sbin/adjkerntz
 | 
			
		||||
		eend $?
 | 
			
		||||
	else
 | 
			
		||||
		eend 0
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								init.d/agetty.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								init.d/agetty.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="start agetty on a terminal line"
 | 
			
		||||
supervisor=supervise-daemon
 | 
			
		||||
port="${RC_SVCNAME#*.}"
 | 
			
		||||
respawn_period="${respawn_period:-60}"
 | 
			
		||||
term_type="${term_type:-linux}"
 | 
			
		||||
command=/sbin/agetty
 | 
			
		||||
command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}"
 | 
			
		||||
pidfile="/run/${RC_SVCNAME}.pid"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	after local
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
	provide getty
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start_pre() {
 | 
			
		||||
	if [ "$port" = "$RC_SVCNAME" ]; then
 | 
			
		||||
		eerror "${RC_SVCNAME} cannot be started directly. You must create"
 | 
			
		||||
		eerror "symbolic links to it for the ports you want to start"
 | 
			
		||||
		eerror "agetty on and add those to the appropriate runlevels."
 | 
			
		||||
		return 1
 | 
			
		||||
	else
 | 
			
		||||
		export EINFO_QUIET="${quiet:-yes}"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop_pre()
 | 
			
		||||
{
 | 
			
		||||
	export EINFO_QUIET="${quiet:-yes}"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								init.d/binfmt.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								init.d/binfmt.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Register misc binary format handlers"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock procfs
 | 
			
		||||
	use modules devfs
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Loading custom binary format handlers"
 | 
			
		||||
	"$RC_LIBEXECDIR"/sh/binfmt.sh
 | 
			
		||||
	eend $?
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										261
									
								
								init.d/bootmisc.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										261
									
								
								init.d/bootmisc.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,261 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	before logger
 | 
			
		||||
	after clock root sysctl
 | 
			
		||||
	keyword -prefix -timeout
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
: ${wipe_tmp:=${WIPE_TMP:-yes}}
 | 
			
		||||
: ${log_dmesg:=${LOG_DMESG:-yes}}
 | 
			
		||||
 | 
			
		||||
cleanup_tmp_dir()
 | 
			
		||||
{
 | 
			
		||||
	local dir="$1"
 | 
			
		||||
 | 
			
		||||
	if ! [ -d "$dir" ]; then
 | 
			
		||||
		mkdir -p "$dir" || return $?
 | 
			
		||||
	fi
 | 
			
		||||
	checkpath -W "$dir" || return 1
 | 
			
		||||
	chmod a+rwt "$dir" 2> /dev/null
 | 
			
		||||
	cd "$dir" || return 1
 | 
			
		||||
	if yesno $wipe_tmp; then
 | 
			
		||||
		ebegin "Wiping $dir directory"
 | 
			
		||||
 | 
			
		||||
		# Faster than raw find
 | 
			
		||||
		if ! rm -rf -- [!ajlq\.]* 2>/dev/null ; then
 | 
			
		||||
			# Blah, too many files
 | 
			
		||||
			find . -maxdepth 1 -name '[!ajlq\.]*' -exec rm -rf -- {} +
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		# pam_mktemp creates a .private directory within which
 | 
			
		||||
		# each user gets a private directory with immutable
 | 
			
		||||
		# bit set; remove the immutable bit before trying to
 | 
			
		||||
		# remove it.
 | 
			
		||||
		[ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null
 | 
			
		||||
 | 
			
		||||
		# Prune the paths that are left
 | 
			
		||||
		find . -maxdepth 1 \
 | 
			
		||||
			! -name . \
 | 
			
		||||
			! -name lost+found \
 | 
			
		||||
			! -name quota.user \
 | 
			
		||||
			! -name aquota.user \
 | 
			
		||||
			! -name quota.group \
 | 
			
		||||
			! -name aquota.group \
 | 
			
		||||
			! -name journal \
 | 
			
		||||
			-exec rm -rf -- {} +
 | 
			
		||||
		eend 0
 | 
			
		||||
	else
 | 
			
		||||
		ebegin "Cleaning $dir directory"
 | 
			
		||||
		rm -rf -- .X*-lock esrv* kio* \
 | 
			
		||||
			jpsock.* .fam* .esd* \
 | 
			
		||||
			orbit-* ssh-* ksocket-* \
 | 
			
		||||
			.*-unix
 | 
			
		||||
		eend 0
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanup_var_run_dir()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Cleaning /var/run"
 | 
			
		||||
	for x in $(find /var/run ! -type d ! -name utmp \
 | 
			
		||||
		! -name random-seed ! -name dev.db \
 | 
			
		||||
		! -name ld-elf.so.hints ! -name ld-elf32.so.hints \
 | 
			
		||||
		! -name ld.so.hints);
 | 
			
		||||
	do
 | 
			
		||||
		# Clean stale sockets
 | 
			
		||||
		if [ -S "$x" ]; then
 | 
			
		||||
			if command -v fuser >/dev/null 2>&1; then
 | 
			
		||||
				fuser "$x" >/dev/null 2>&1 || rm -- "$x"
 | 
			
		||||
			else
 | 
			
		||||
				rm -- "$x"
 | 
			
		||||
			fi
 | 
			
		||||
		fi
 | 
			
		||||
		[ ! -f "$x" ] && continue
 | 
			
		||||
		# Do not remove pidfiles of already running daemons
 | 
			
		||||
		case "$x" in
 | 
			
		||||
			*.pid)
 | 
			
		||||
				start-stop-daemon --test --quiet \
 | 
			
		||||
				--stop --pidfile "$x" && continue
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
		rm -f -- "$x"
 | 
			
		||||
	done
 | 
			
		||||
	eend 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mkutmp()
 | 
			
		||||
{
 | 
			
		||||
	: >"$1"
 | 
			
		||||
	# Not all systems have the utmp group
 | 
			
		||||
	chgrp utmp "$1" 2>/dev/null
 | 
			
		||||
	chmod 0664 "$1"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
migrate_to_run()
 | 
			
		||||
{
 | 
			
		||||
	src="$1"
 | 
			
		||||
	dst="$2"
 | 
			
		||||
 	if [ -L $src -a "$(readlink -f $src)" != $dst ]; then
 | 
			
		||||
 		ewarn "$src does not point to $dst."
 | 
			
		||||
 		ewarn "Setting $src to point to $dst."
 | 
			
		||||
 		rm $src
 | 
			
		||||
 	elif [ ! -L $src -a -d $src ]; then
 | 
			
		||||
 		ebegin "Migrating $src to $dst"
 | 
			
		||||
 		if ! rmdir $src 2>/dev/null; then
 | 
			
		||||
 			cp -a $src/* $dst/
 | 
			
		||||
 			rm -rf $src
 | 
			
		||||
 		fi
 | 
			
		||||
 		eend $?
 | 
			
		||||
 	fi
 | 
			
		||||
 	# If $src doesn't exist at all, just run this
 | 
			
		||||
 	if [ ! -e $src ]; then
 | 
			
		||||
 		ln -s $dst $src
 | 
			
		||||
 	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
clean_run()
 | 
			
		||||
{
 | 
			
		||||
	[ "$RC_SYS" = VSERVER -o "$RC_SYS" = LXC ] && return 0
 | 
			
		||||
	local dir
 | 
			
		||||
	# If / is still read-only due to a problem, this will fail!
 | 
			
		||||
	if ! checkpath -W /; then
 | 
			
		||||
		ewarn "/ is not writable; unable to clean up underlying /run"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
	if ! checkpath -W /tmp; then
 | 
			
		||||
		ewarn "/tmp is not writable; unable to clean up underlying /run"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
	# Now we know that we can modify /tmp and /
 | 
			
		||||
	# if mktemp -d fails, it returns an EMPTY string
 | 
			
		||||
	# STDERR: mktemp: failed to create directory via template ‘/tmp/tmp.XXXXXXXXXX’: Read-only file system
 | 
			
		||||
	# STDOUT: ''
 | 
			
		||||
	rc=0
 | 
			
		||||
	dir=$(mktemp -d)
 | 
			
		||||
	if [ -n "$dir" -a -d $dir -a -w $dir ]; then
 | 
			
		||||
		mount --bind / $dir && rm -rf $dir/run/* || rc=1
 | 
			
		||||
		umount $dir && rmdir $dir
 | 
			
		||||
	else
 | 
			
		||||
		rc=1
 | 
			
		||||
	fi
 | 
			
		||||
	if [ $rc -ne 0 ]; then
 | 
			
		||||
		ewarn "Could not clean up underlying /run on /"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	# Remove any added console dirs
 | 
			
		||||
	if checkpath -W "$RC_LIBEXECDIR"; then
 | 
			
		||||
		rm -rf "$RC_LIBEXECDIR"/console/*
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	local logw=false runw=false extra=
 | 
			
		||||
	# Ensure that our basic dirs exist
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		# Satisfy Linux FHS
 | 
			
		||||
		extra=/var/lib/misc
 | 
			
		||||
		if [ ! -d /run ]; then
 | 
			
		||||
			extra="/var/run $extra"
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		extra=/var/run
 | 
			
		||||
	fi
 | 
			
		||||
	for x in /var/log /tmp $extra; do
 | 
			
		||||
		if ! [ -d $x ]; then
 | 
			
		||||
			if ! mkdir -p $x; then
 | 
			
		||||
				eend 1 "failed to create needed directory $x"
 | 
			
		||||
				return 1
 | 
			
		||||
			fi
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux -a -d /run ]; then
 | 
			
		||||
		migrate_to_run	/var/lock /run/lock
 | 
			
		||||
		migrate_to_run	/var/run /run
 | 
			
		||||
		clean_run
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if checkpath -W /var/run; then
 | 
			
		||||
		ebegin "Creating user login records"
 | 
			
		||||
		local xtra=
 | 
			
		||||
		[ "$RC_UNAME" = NetBSD ] && xtra=x
 | 
			
		||||
		for x in "" $xtra; do
 | 
			
		||||
			mkutmp /var/run/utmp$x
 | 
			
		||||
		done
 | 
			
		||||
		[ -e /var/log/wtmp ] || mkutmp /var/log/wtmp
 | 
			
		||||
		eend 0
 | 
			
		||||
 | 
			
		||||
		mountinfo -q -f tmpfs /var/run || cleanup_var_run_dir
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Clean up /tmp directories
 | 
			
		||||
	local tmp=
 | 
			
		||||
	for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do
 | 
			
		||||
		mountinfo -q -f tmpfs "$tmp" || cleanup_tmp_dir "$tmp"
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if checkpath -W /tmp; then
 | 
			
		||||
		# Make sure our X11 stuff have the correct permissions
 | 
			
		||||
		# Omit the chown as bootmisc is run before network is up
 | 
			
		||||
		# and users may be using lame LDAP auth #139411
 | 
			
		||||
		rm -rf /tmp/.ICE-unix /tmp/.X11-unix
 | 
			
		||||
		mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
 | 
			
		||||
		chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
 | 
			
		||||
		if [ -x /sbin/restorecon ]; then
 | 
			
		||||
			restorecon /tmp/.ICE-unix /tmp/.X11-unix
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if yesno $log_dmesg; then
 | 
			
		||||
		if $logw || checkpath -W /var/log; then
 | 
			
		||||
			# Create an 'after-boot' dmesg log
 | 
			
		||||
			case "$RC_SYS" in
 | 
			
		||||
				VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;;
 | 
			
		||||
				*)
 | 
			
		||||
					if yesno ${previous_dmesg:-no} && [ -e /var/log/dmesg ]; then
 | 
			
		||||
						mv /var/log/dmesg /var/log/dmesg.old
 | 
			
		||||
					fi
 | 
			
		||||
					dmesg > /var/log/dmesg
 | 
			
		||||
					chmod 640 /var/log/dmesg
 | 
			
		||||
					;;
 | 
			
		||||
			esac
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	# Write a halt record if we're shutting down
 | 
			
		||||
	if [ "$RC_RUNLEVEL" = shutdown ]; then
 | 
			
		||||
		if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
			if [ -x /sbin/halt ]; then
 | 
			
		||||
				halt -w
 | 
			
		||||
			else
 | 
			
		||||
				openrc-shutdown -w
 | 
			
		||||
			fi
 | 
			
		||||
		fi
 | 
			
		||||
		if [ "$RC_SYS" = OPENVZ ]; then
 | 
			
		||||
			yesno $RC_REBOOT && printf "" >/reboot
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# vim: ft=sh
 | 
			
		||||
							
								
								
									
										157
									
								
								init.d/cgroups.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										157
									
								
								init.d/cgroups.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,157 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2017 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Mount the control groups."
 | 
			
		||||
 | 
			
		||||
cgroup_opts=nodev,noexec,nosuid
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	keyword -docker -prefix -systemd-nspawn -vserver
 | 
			
		||||
	after sysfs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroup1_base()
 | 
			
		||||
{
 | 
			
		||||
	grep -qw cgroup /proc/filesystems || return 0
 | 
			
		||||
	if ! mountinfo -q /sys/fs/cgroup; then
 | 
			
		||||
		ebegin "Mounting cgroup filesystem"
 | 
			
		||||
		local opts="${cgroup_opts},mode=755,size=${rc_cgroupsize:-10m}"
 | 
			
		||||
		mount -n -t tmpfs -o "${opts}" cgroup_root /sys/fs/cgroup
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if ! mountinfo -q /sys/fs/cgroup/openrc; then
 | 
			
		||||
		local agent="${RC_LIBEXECDIR}/sh/cgroup-release-agent.sh"
 | 
			
		||||
		mkdir /sys/fs/cgroup/openrc
 | 
			
		||||
		mount -n -t cgroup \
 | 
			
		||||
			-o none,${cgroup_opts},name=openrc,release_agent="$agent" \
 | 
			
		||||
			openrc /sys/fs/cgroup/openrc
 | 
			
		||||
		printf 1 > /sys/fs/cgroup/openrc/notify_on_release
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroup1_controllers()
 | 
			
		||||
{
 | 
			
		||||
	yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ]  &&
 | 
			
		||||
	grep -qw cgroup /proc/filesystems || return 0
 | 
			
		||||
	while read -r name _ _ enabled _; do
 | 
			
		||||
		case "${enabled}" in
 | 
			
		||||
			1)	mountinfo -q "/sys/fs/cgroup/${name}" && continue
 | 
			
		||||
				local x
 | 
			
		||||
				for x in $rc_cgroup_controllers; do
 | 
			
		||||
				[ "${name}" = "blkio" ] && [ "${x}" = "io" ] &&
 | 
			
		||||
					continue 2
 | 
			
		||||
				[ "${name}" = "${x}" ] &&
 | 
			
		||||
				continue 2
 | 
			
		||||
				done
 | 
			
		||||
				mkdir "/sys/fs/cgroup/${name}"
 | 
			
		||||
				mount -n -t cgroup -o "${cgroup_opts},${name}" \
 | 
			
		||||
					"${name}" "/sys/fs/cgroup/${name}"
 | 
			
		||||
				yesno "${rc_cgroup_memory_use_hierarchy:-no}" &&
 | 
			
		||||
					[ "${name}" = memory ] &&
 | 
			
		||||
					echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy
 | 
			
		||||
				;;
 | 
			
		||||
		esac
 | 
			
		||||
	done < /proc/cgroups
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroup2_base()
 | 
			
		||||
{
 | 
			
		||||
	grep -qw cgroup2 /proc/filesystems || return 0
 | 
			
		||||
	local base
 | 
			
		||||
	base="$(cgroup2_find_path)"
 | 
			
		||||
	mkdir -p "${base}"
 | 
			
		||||
	mount -t cgroup2 none -o "${cgroup_opts},nsdelegate" "${base}" 2> /dev/null ||
 | 
			
		||||
		mount -t cgroup2 none -o "${cgroup_opts}" "${base}"
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroup2_controllers()
 | 
			
		||||
{
 | 
			
		||||
	grep -qw cgroup2 /proc/filesystems || return 0
 | 
			
		||||
	local active cgroup_path x y
 | 
			
		||||
	cgroup_path="$(cgroup2_find_path)"
 | 
			
		||||
	[ -z "${cgroup_path}" ] && return 0
 | 
			
		||||
	[ ! -e "${cgroup_path}/cgroup.controllers" ] && return 0
 | 
			
		||||
	[ ! -e "${cgroup_path}/cgroup.subtree_control" ]&& return 0
 | 
			
		||||
	read -r active < "${cgroup_path}/cgroup.controllers"
 | 
			
		||||
	for x in ${active}; do
 | 
			
		||||
	case "$rc_cgroup_mode" in
 | 
			
		||||
		unified)
 | 
			
		||||
			echo "+${x}"  > "${cgroup_path}/cgroup.subtree_control"
 | 
			
		||||
			;;
 | 
			
		||||
		hybrid)
 | 
			
		||||
			for y in ${rc_cgroup_controllers}; do
 | 
			
		||||
				if [ "$x" = "$y" ]; then
 | 
			
		||||
					echo "+${x}"  > "${cgroup_path}/cgroup.subtree_control"
 | 
			
		||||
				fi
 | 
			
		||||
			done
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
	done
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroups_hybrid()
 | 
			
		||||
{
 | 
			
		||||
	cgroup1_base
 | 
			
		||||
	cgroup2_base
 | 
			
		||||
	cgroup2_controllers
 | 
			
		||||
	cgroup1_controllers
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroups_legacy()
 | 
			
		||||
{
 | 
			
		||||
	cgroup1_base
 | 
			
		||||
	cgroup1_controllers
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cgroups_unified()
 | 
			
		||||
{
 | 
			
		||||
	cgroup2_base
 | 
			
		||||
	cgroup2_controllers
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mount_cgroups()
 | 
			
		||||
{
 | 
			
		||||
	case "${rc_cgroup_mode:-hybrid}" in
 | 
			
		||||
	hybrid) cgroups_hybrid ;;
 | 
			
		||||
	legacy) cgroups_legacy ;;
 | 
			
		||||
	unified) cgroups_unified ;;
 | 
			
		||||
	esac
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
restorecon_cgroups()
 | 
			
		||||
{
 | 
			
		||||
	if [ -x /sbin/restorecon ]; then
 | 
			
		||||
		ebegin "Restoring SELinux contexts in /sys/fs/cgroup"
 | 
			
		||||
		restorecon -rF /sys/fs/cgroup >/dev/null 2>&1
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	# set up kernel support for cgroups
 | 
			
		||||
	if [ -d /sys/fs/cgroup ]; then
 | 
			
		||||
		mount_cgroups
 | 
			
		||||
		restorecon_cgroups
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								init.d/consolefont.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								init.d/consolefont.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Sets a font for the consoles."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need termencoding
 | 
			
		||||
	after hotplug bootmisc modules
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
 | 
			
		||||
	consolefont=${consolefont:-${CONSOLEFONT}}
 | 
			
		||||
	unicodemap=${unicodemap:-${UNICODEMAP}}
 | 
			
		||||
	consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}}
 | 
			
		||||
 | 
			
		||||
	if [ -z "$consolefont" ]; then
 | 
			
		||||
		ebegin "Using the default console font"
 | 
			
		||||
		eend 0
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ "$ttyn" = 0 ]; then
 | 
			
		||||
		ebegin "Skipping font setup (rc_tty_number == 0)"
 | 
			
		||||
		eend 0
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	local x= param= sf_param= retval=0 ttydev=/dev/tty
 | 
			
		||||
 | 
			
		||||
	# Get additional parameters
 | 
			
		||||
	if [ -n "$consoletranslation" ]; then
 | 
			
		||||
		param="$param -m $consoletranslation"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ -n "${unicodemap}" ]; then
 | 
			
		||||
		param="$param -u $unicodemap"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Set the console font
 | 
			
		||||
	ebegin "Setting console font [$consolefont]"
 | 
			
		||||
	[ -d /dev/vc ] && ttydev=/dev/vc/
 | 
			
		||||
	x=1
 | 
			
		||||
	while [ $x -le $ttyn ]; do
 | 
			
		||||
		if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then
 | 
			
		||||
			retval=1
 | 
			
		||||
			break
 | 
			
		||||
		fi
 | 
			
		||||
		: $(( x += 1 ))
 | 
			
		||||
	done
 | 
			
		||||
	eend $retval
 | 
			
		||||
 | 
			
		||||
	# Store the font so we can use it ASAP on boot
 | 
			
		||||
	if [ $retval -eq 0 ] && checkpath -W "$RC_LIBEXECDIR"; then
 | 
			
		||||
		mkdir -p "$RC_LIBEXECDIR"/console
 | 
			
		||||
		setfont -O "$RC_LIBEXECDIR"/console/font
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return $retval
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								init.d/devd.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								init.d/devd.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
command=/sbin/devd
 | 
			
		||||
command_args=$devd_args
 | 
			
		||||
name="Device State Change Daemon"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	before net.lo0
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start_pre() {
 | 
			
		||||
	sysctl hw.bus.devctl_disable=0 >/dev/null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop_post() {
 | 
			
		||||
	sysctl hw.bus.devctl_disable=1 >/dev/null
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								init.d/devdb.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								init.d/devdb.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2008-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Creates the dev database"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock
 | 
			
		||||
	need localmount
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Building the dev database"
 | 
			
		||||
	if [ /var/run/dev.db -nt /dev ]; then
 | 
			
		||||
		:
 | 
			
		||||
	else
 | 
			
		||||
		dev_mkdb
 | 
			
		||||
	fi
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										134
									
								
								init.d/devfs.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								init.d/devfs.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,134 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Set up the /dev directory"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	provide dev-mount
 | 
			
		||||
	before dev
 | 
			
		||||
	keyword -docker -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mount_dev()
 | 
			
		||||
{
 | 
			
		||||
	local action conf_d_dir devfstype msg mountopts
 | 
			
		||||
	action=--mount
 | 
			
		||||
	conf_d_dir="${RC_SERVICE%/*/*}/conf.d"
 | 
			
		||||
	msg=Mounting
 | 
			
		||||
	# Some devices require exec, https://bugs.gentoo.org/92921
 | 
			
		||||
	# Users with such requirements can use an fstab entry for /dev
 | 
			
		||||
	mountopts="noexec,nosuid,mode=0755"
 | 
			
		||||
	if yesno ${skip_mount_dev:-no} ; then
 | 
			
		||||
		einfo "/dev will not be mounted due to user request"
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	if mountinfo -q /dev; then
 | 
			
		||||
		action=--remount
 | 
			
		||||
		mountopts="remount,$mountopts"
 | 
			
		||||
		msg=Remounting
 | 
			
		||||
	fi
 | 
			
		||||
	if fstabinfo -q /dev; then
 | 
			
		||||
		ebegin "$msg /dev according to fstab"
 | 
			
		||||
		fstabinfo -q $action /dev
 | 
			
		||||
		eend $?
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	if grep -q devtmpfs /proc/filesystems; then
 | 
			
		||||
		devfstype=devtmpfs
 | 
			
		||||
		mountopts="$mountopts,size=10M"
 | 
			
		||||
	elif grep -q tmpfs /proc/filesystems; then
 | 
			
		||||
		devfstype=tmpfs
 | 
			
		||||
		mountopts="$mountopts,size=10M"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ -n "$devfstype" ]; then
 | 
			
		||||
		ebegin "$msg $devfstype on /dev"
 | 
			
		||||
		mount -n -t $devfstype -o $mountopts dev /dev
 | 
			
		||||
		eend $?
 | 
			
		||||
	else
 | 
			
		||||
		ewarn "This kernel does not have devtmpfs or tmpfs support, and there"
 | 
			
		||||
		ewarn "is no entry for /dev in fstab."
 | 
			
		||||
		ewarn "This means /dev will not be mounted."
 | 
			
		||||
		ewarn "To avoid this message, set CONFIG_DEVTMPFS or CONFIG_TMPFS to y"
 | 
			
		||||
		ewarn "in your kernel configuration or see ${conf_d_dir}/${RC_SVCNAME}"
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
seed_dev()
 | 
			
		||||
{
 | 
			
		||||
	# Seed /dev with some things that we know we need
 | 
			
		||||
 | 
			
		||||
	if [ "${RC_SYS}" != LXC ]; then
 | 
			
		||||
		# creating /dev/console, /dev/tty and /dev/tty1 to be able to write
 | 
			
		||||
		# to $CONSOLE with/without bootsplash before udevd creates it
 | 
			
		||||
		[ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
 | 
			
		||||
		[ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
 | 
			
		||||
		[ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
 | 
			
		||||
 | 
			
		||||
		# udevd will dup its stdin/stdout/stderr to /dev/null
 | 
			
		||||
		# and we do not want a file which gets buffered in ram
 | 
			
		||||
		[ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
 | 
			
		||||
 | 
			
		||||
		# so udev can add its start-message to dmesg
 | 
			
		||||
		[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# extra symbolic links not provided by default
 | 
			
		||||
	[ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd
 | 
			
		||||
	[ -e /dev/stdin ] || ln -snf /proc/self/fd/0 /dev/stdin
 | 
			
		||||
	[ -e /dev/stdout ] || ln -snf /proc/self/fd/1 /dev/stdout
 | 
			
		||||
	[ -e /dev/stderr ] || ln -snf /proc/self/fd/2 /dev/stderr
 | 
			
		||||
	[ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core
 | 
			
		||||
 | 
			
		||||
	# Mount required directories as user may not have them in /etc/fstab
 | 
			
		||||
	for x in \
 | 
			
		||||
		"mqueue /dev/mqueue 1777 ,nodev mqueue" \
 | 
			
		||||
		"devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \
 | 
			
		||||
		"tmpfs /dev/shm 1777 ,nodev,mode=1777 shm" \
 | 
			
		||||
	; do
 | 
			
		||||
		set -- $x
 | 
			
		||||
		grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
 | 
			
		||||
		mountinfo -q $2 && continue
 | 
			
		||||
 | 
			
		||||
		if [ ! -d $2 ]; then
 | 
			
		||||
			mkdir -m $3 -p $2 >/dev/null 2>&1 || \
 | 
			
		||||
				ewarn "Could not create $2!"
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		if [ -d $2 ]; then
 | 
			
		||||
			ebegin "Mounting $2"
 | 
			
		||||
			if ! fstabinfo --mount $2; then
 | 
			
		||||
				mount -n -t $1 -o noexec,nosuid$4 $5 $2
 | 
			
		||||
			fi
 | 
			
		||||
			eend $?
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
restorecon_dev()
 | 
			
		||||
{
 | 
			
		||||
	if [ -x /sbin/restorecon ]; then
 | 
			
		||||
		ebegin "Restoring SELinux contexts in /dev"
 | 
			
		||||
		restorecon -rF /dev >/dev/null 2>&1
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	mount_dev
 | 
			
		||||
	seed_dev
 | 
			
		||||
	restorecon_dev
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								init.d/dmesg.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								init.d/dmesg.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Set the dmesg level for a cleaner boot"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before dev modules
 | 
			
		||||
	keyword -docker -lxc -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	if [ -n "$dmesg_level" ]; then
 | 
			
		||||
		dmesg -n$dmesg_level
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								init.d/dumpon.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								init.d/dumpon.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Configures a specific kernel dump device."
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	after clock
 | 
			
		||||
	need swap
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
	# Setup any user requested dump device
 | 
			
		||||
	if [ -n "$dump_device" ]; then
 | 
			
		||||
		ebegin "Activating kernel core dump device ($dump_device)"
 | 
			
		||||
		dumpon ${dump_device}
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop() {
 | 
			
		||||
	ebegin "Deactivating kernel core dump device"
 | 
			
		||||
	dumpon off
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								init.d/encswap.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								init.d/encswap.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright 1992-2012 FreeBSD Project
 | 
			
		||||
# Released under the 2-clause BSD license
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	before swap
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
	while read device mountpoint type options rest ; do
 | 
			
		||||
		case ":${device}:${type}:${options}" in
 | 
			
		||||
		:#*)
 | 
			
		||||
			;;
 | 
			
		||||
		*.bde:swap:sw)
 | 
			
		||||
			passphrase=$(dd if=/dev/random count=1 2>/dev/null | md5 -q)
 | 
			
		||||
			device="${device%.bde}"
 | 
			
		||||
			gbde init "${device}" -P "${passphrase}" || return 1
 | 
			
		||||
			gbde attach "${device}" -p "${passphrase}" || return 1
 | 
			
		||||
			;;
 | 
			
		||||
		*.eli:swap:sw)
 | 
			
		||||
			device="${device%.eli}"
 | 
			
		||||
			geli onetime ${geli_swap_flags} "${device}" || return 1
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
	done < /etc/fstab
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop() {
 | 
			
		||||
	while read device mountpoint type options rest ; do
 | 
			
		||||
		case ":${device}:${type}:${options}" in
 | 
			
		||||
		:#*)
 | 
			
		||||
			;;
 | 
			
		||||
		*.bde:swap:sw)
 | 
			
		||||
			device="${device%.bde}"
 | 
			
		||||
			gbde detach "${device}"
 | 
			
		||||
			;;
 | 
			
		||||
		*.eli:swap:sw)
 | 
			
		||||
			# Nothing here, because geli swap devices should be
 | 
			
		||||
			# created with the auto-detach-on-last-close option.
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
	done < /etc/fstab
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										131
									
								
								init.d/fsck.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								init.d/fsck.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,131 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Check and repair filesystems according to /etc/fstab"
 | 
			
		||||
_IFS="
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock
 | 
			
		||||
	use dev clock modules
 | 
			
		||||
	keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -timeout -vserver -uml
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_abort() {
 | 
			
		||||
	yesno ${fsck_abort_on_errors:-yes} && rc-abort
 | 
			
		||||
	return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# We should only reboot when first booting
 | 
			
		||||
_reboot() {
 | 
			
		||||
	if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then
 | 
			
		||||
		reboot "$@"
 | 
			
		||||
		_abort || return 1
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_forcefsck()
 | 
			
		||||
{
 | 
			
		||||
	[ -e /forcefsck ] || get_bootparam forcefsck
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local fsck_opts= p= check_extra=
 | 
			
		||||
 | 
			
		||||
	if [ -e /fastboot ]; then
 | 
			
		||||
		ewarn "Skipping fsck due to /fastboot"
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	if _forcefsck; then
 | 
			
		||||
		fsck_opts="$fsck_opts -f"
 | 
			
		||||
		check_extra="(check forced)"
 | 
			
		||||
	elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then
 | 
			
		||||
		ewarn "Skipping fsck due to not being on AC power"
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ -n "$fsck_passno" ]; then
 | 
			
		||||
		check_extra="[passno $fsck_passno] $check_extra"
 | 
			
		||||
		if [ -n "$fsck_mnt" ]; then
 | 
			
		||||
			eerror "Only 1 of fsck_passno and fsck_mnt must be set!"
 | 
			
		||||
			return 1
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	ebegin "Checking local filesystems $check_extra"
 | 
			
		||||
	# Append passno mounts
 | 
			
		||||
	for p in $fsck_passno; do
 | 
			
		||||
		local IFS="$_IFS"
 | 
			
		||||
		case "$p" in
 | 
			
		||||
			[0-9]*) p="=$p";;
 | 
			
		||||
		esac
 | 
			
		||||
		set -- "$@" $(fstabinfo --passno "$p")
 | 
			
		||||
		unset IFS
 | 
			
		||||
	done
 | 
			
		||||
	# Append custom mounts
 | 
			
		||||
	for m in $fsck_mnt ; do
 | 
			
		||||
		local IFS="$_IFS"
 | 
			
		||||
		set -- "$@" "$m"
 | 
			
		||||
		unset IFS
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		local skiptypes
 | 
			
		||||
		skiptypes=$(printf 'no%s,' ${net_fs_list} ${extra_net_fs_list})
 | 
			
		||||
		[ "${skiptypes}" = "no," ] && skiptypes=""
 | 
			
		||||
		fsck_opts="$fsck_opts -C0 -T -t ${skiptypes}noopts=_netdev"
 | 
			
		||||
		if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
 | 
			
		||||
			fsck_args=${fsck_args:--A -p}
 | 
			
		||||
			if echo 2>/dev/null >/.test.$$; then
 | 
			
		||||
				rm -f /.test.$$
 | 
			
		||||
				fsck_opts="$fsck_opts -R"
 | 
			
		||||
			fi
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	trap : INT QUIT
 | 
			
		||||
	fsck ${fsck_args:--p} $fsck_opts "$@"
 | 
			
		||||
	case $? in
 | 
			
		||||
	0)	eend 0; return 0;;
 | 
			
		||||
	1)	ewend 1 "Filesystems repaired"; return 0;;
 | 
			
		||||
	2|3)	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		 	ewend 1 "Filesystems repaired, but reboot needed"
 | 
			
		||||
	         	_reboot -f
 | 
			
		||||
		else
 | 
			
		||||
			ewend 1 "Filesystems still have errors;" \
 | 
			
		||||
				"manual fsck required"
 | 
			
		||||
			_abort
 | 
			
		||||
		fi;;
 | 
			
		||||
	4)	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
			ewend 1 "Filesystem errors left uncorrected, aborting"
 | 
			
		||||
			_abort
 | 
			
		||||
		else
 | 
			
		||||
		 	ewend 1 "Filesystems repaired, but reboot needed"
 | 
			
		||||
			_reboot
 | 
			
		||||
		fi;;
 | 
			
		||||
	8)	ewend 1 "Operational error"; return 0;;
 | 
			
		||||
	12)	ewend 1 "fsck interrupted";;
 | 
			
		||||
	*)	eend 2 "Filesystems couldn't be fixed";;
 | 
			
		||||
	esac
 | 
			
		||||
	_abort || return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	# Fake function so we always shutdown correctly.
 | 
			
		||||
	_abort() { return 0; }
 | 
			
		||||
	_reboot() { return 0; }
 | 
			
		||||
	_forcefsck() { return 1; }
 | 
			
		||||
 | 
			
		||||
	yesno $fsck_shutdown && start
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										88
									
								
								init.d/hostid.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								init.d/hostid.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
extra_commands="reset"
 | 
			
		||||
: ${hostid_file:=/etc/hostid}
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	use root
 | 
			
		||||
	after clock
 | 
			
		||||
	before devd net
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_set()
 | 
			
		||||
{
 | 
			
		||||
	local id=0
 | 
			
		||||
 | 
			
		||||
	if [ -n "$1" ]; then
 | 
			
		||||
		id=$(echo "$1" | md5)
 | 
			
		||||
		id="0x${id%????????????????????????}"
 | 
			
		||||
	fi
 | 
			
		||||
	ebegin "Setting Host ID: $id"
 | 
			
		||||
	sysctl -w kern.hostid="$id" >/dev/null
 | 
			
		||||
	eend $? || return 1
 | 
			
		||||
 | 
			
		||||
	if sysctl -n kern.hostuuid >/dev/null 2>&1; then
 | 
			
		||||
		[ -n "$1" ] && id=$1
 | 
			
		||||
		ebegin "Setting Host UUID: $id"
 | 
			
		||||
		sysctl kern.hostuuid="$id" >/dev/null
 | 
			
		||||
		eend $? || return 1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# First we check to see if there is a system UUID
 | 
			
		||||
# If so then we use that and erase the hostid file,
 | 
			
		||||
# otherwise we generate a random UUID.
 | 
			
		||||
reset()
 | 
			
		||||
{
 | 
			
		||||
	local uuid= x="[0-9a-f]" y="$x$x$x$x"
 | 
			
		||||
 | 
			
		||||
	if command -v kenv >/dev/null 2>&1; then
 | 
			
		||||
		uuid=$(kenv smbios.system.uuid 2>/dev/null)
 | 
			
		||||
	fi
 | 
			
		||||
	case "$uuid" in
 | 
			
		||||
		$y$y-$y-$y-$y-$y$y$y);;
 | 
			
		||||
		*) uuid=;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	if [ -n "$uuid" ]; then
 | 
			
		||||
		rm -f "$hostid_file"
 | 
			
		||||
	else
 | 
			
		||||
		uuid=$(uuidgen)
 | 
			
		||||
		if [ -z "$uuid" ]; then
 | 
			
		||||
			eerror "Unable to generate a UUID"
 | 
			
		||||
			return 1
 | 
			
		||||
		fi
 | 
			
		||||
		if ! echo "$uuid" >"$hostid_file"; then
 | 
			
		||||
			eerror "Failed to store UUID in \`$hostid_file'"
 | 
			
		||||
			return 1
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	_set "$uuid"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	if [ -r "$hostid_file" ]; then
 | 
			
		||||
		_set $(cat "$hostid_file")
 | 
			
		||||
	else
 | 
			
		||||
		reset
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	_set
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								init.d/hostname.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								init.d/hostname.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Sets the hostname of the machine."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock
 | 
			
		||||
	keyword -docker -lxc -prefix -systemd-nspawn
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local h source
 | 
			
		||||
	if read -r h _ 2> /dev/null < @SYSCONFDIR@/hostname; then
 | 
			
		||||
		source="@SYSCONFDIR@/hostname"
 | 
			
		||||
	elif [ -n "${hostname}" ]; then
 | 
			
		||||
		h=${hostname}
 | 
			
		||||
		source="@SYSCONFDIR@/conf.d/${RC_SVCNAME}"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ -z "$h" ]; then
 | 
			
		||||
		einfo "Using default system hostname"
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	ebegin "Setting hostname to $h from $source"
 | 
			
		||||
	hostname "$h"
 | 
			
		||||
	eend $? "Failed to set the hostname"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										160
									
								
								init.d/hwclock.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								init.d/hwclock.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,160 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
extra_commands="save show"
 | 
			
		||||
 | 
			
		||||
description="Sets the local clock to UTC or Local Time."
 | 
			
		||||
description_save="Saves the current time in the BIOS."
 | 
			
		||||
description_show="Displays the current time in the BIOS."
 | 
			
		||||
 | 
			
		||||
: ${clock_adjfile:=${CLOCK_ADJFILE}}
 | 
			
		||||
: ${clock_args:=${CLOCK_OPTS}}
 | 
			
		||||
: ${clock_systohc:=${CLOCK_SYSTOHC}}
 | 
			
		||||
: ${clock:=${CLOCK:-UTC}}
 | 
			
		||||
if [ "$clock" = "UTC" ]; then
 | 
			
		||||
	utc="UTC"
 | 
			
		||||
	utc_cmd="--utc"
 | 
			
		||||
else
 | 
			
		||||
	utc="Local Time"
 | 
			
		||||
	utc_cmd="--localtime"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	provide clock
 | 
			
		||||
	want modules
 | 
			
		||||
	if yesno $clock_adjfile; then
 | 
			
		||||
		use root
 | 
			
		||||
	fi
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
setupopts()
 | 
			
		||||
{
 | 
			
		||||
	case "$(uname -m)" in
 | 
			
		||||
		s390*)
 | 
			
		||||
			utc="s390"
 | 
			
		||||
			;;
 | 
			
		||||
		*)
 | 
			
		||||
			if [ -e /proc/devices ] && \
 | 
			
		||||
				grep -q " cobd$" /proc/devices
 | 
			
		||||
			then
 | 
			
		||||
				utc="coLinux"
 | 
			
		||||
			fi
 | 
			
		||||
			;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	case "$utc" in
 | 
			
		||||
		UTC|Local" "Time);;
 | 
			
		||||
		*) unset utc_cmd;;
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# hwclock doesn't always return non zero on error
 | 
			
		||||
_hwclock()
 | 
			
		||||
{
 | 
			
		||||
	local err="$(hwclock "$@" 2>&1 >/dev/null)"
 | 
			
		||||
 | 
			
		||||
	[ -z "$err" ] && return 0
 | 
			
		||||
	echo "${err}" >&2
 | 
			
		||||
	return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_noadjfile()
 | 
			
		||||
{
 | 
			
		||||
	if ! yesno $clock_adjfile; then
 | 
			
		||||
		# Some implementations don't handle adjustments
 | 
			
		||||
		if LC_ALL=C hwclock --help 2>&1 | grep -q -e "--noadjfile"; then
 | 
			
		||||
			echo --noadjfile
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rtc_exists()
 | 
			
		||||
{
 | 
			
		||||
	local rtc=
 | 
			
		||||
	for rtc in /dev/rtc /dev/rtc[0-9]*; do
 | 
			
		||||
		[ -e "$rtc" ] && break
 | 
			
		||||
	done
 | 
			
		||||
	[ -e "$rtc" ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local retval=0 errstr="" modname
 | 
			
		||||
	setupopts
 | 
			
		||||
 | 
			
		||||
	if [ -z "$utc_cmd" ]; then
 | 
			
		||||
		ewarn "Not setting clock for $utc system"
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	ebegin "Setting system clock using the hardware clock [$utc]"
 | 
			
		||||
	if [ -e /proc/modules ]; then
 | 
			
		||||
		if ! rtc_exists; then
 | 
			
		||||
			for x in rtc-cmos rtc genrtc; do
 | 
			
		||||
				modprobe -q $x && rtc_exists && modname="$x" && break
 | 
			
		||||
			done
 | 
			
		||||
			[ -n "$modname" ] &&
 | 
			
		||||
				ewarn "The $modname module needs to be configured in" \
 | 
			
		||||
					"${RC_SERVICE%/*/*}/conf.d/modules or built in."
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Always set the kernel's time zone.
 | 
			
		||||
	_hwclock --systz $utc_cmd $(get_noadjfile) $clock_args
 | 
			
		||||
	: $(( retval += $? ))
 | 
			
		||||
 | 
			
		||||
	if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
 | 
			
		||||
		_hwclock --adjust $utc_cmd $(get_noadjfile)
 | 
			
		||||
		: $(( retval += $? ))
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if yesno ${clock_hctosys:-YES}; then
 | 
			
		||||
		_hwclock --hctosys $utc_cmd $(get_noadjfile) $clock_args
 | 
			
		||||
		: $(( retval += $? ))
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	eend $retval "Failed to set the system clock"
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	# Don't tweak the hardware clock on LiveCD halt.
 | 
			
		||||
	[ -n "$CDBOOT" ] && return 0
 | 
			
		||||
	yesno ${clock_systohc:-YES} || return 0
 | 
			
		||||
 | 
			
		||||
	local retval=0 errstr=""
 | 
			
		||||
	setupopts
 | 
			
		||||
 | 
			
		||||
	[ -z "$utc_cmd" ] && return 0
 | 
			
		||||
 | 
			
		||||
	ebegin "Setting hardware clock using the system clock" "[$utc]"
 | 
			
		||||
 | 
			
		||||
	_hwclock --systohc $utc_cmd $(get_noadjfile) $clock_args
 | 
			
		||||
	retval=$?
 | 
			
		||||
 | 
			
		||||
	eend $retval "Failed to sync clocks"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
save()
 | 
			
		||||
{
 | 
			
		||||
	clock_systohc=yes
 | 
			
		||||
	stop
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
show()
 | 
			
		||||
{
 | 
			
		||||
	setupopts
 | 
			
		||||
	hwclock --show "$utc_cmd" $(get_noadjfile) $clock_args
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										166
									
								
								init.d/ipfw.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								init.d/ipfw.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,166 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD
 | 
			
		||||
 | 
			
		||||
ipfw_ip_in=${ipfw_ip_in-any}
 | 
			
		||||
ipfw_ports_in=${ipfw_ports_in-auth ssh}
 | 
			
		||||
ipfw_ports_nolog=${ipfw_ports_nolog-135-139,445 1026,1027 1433,1434}
 | 
			
		||||
 | 
			
		||||
extra_commands="panic showstatus"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	before net
 | 
			
		||||
	provide firewall
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ipfw() {
 | 
			
		||||
	/sbin/ipfw -f -q "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
have_ip6() {
 | 
			
		||||
	sysctl net.ipv6 2>/dev/null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
init() {
 | 
			
		||||
	# Load the kernel module
 | 
			
		||||
	if ! sysctl net.inet.ip.fw.enable=1 >/dev/null 2>&1; then
 | 
			
		||||
		if ! kldload ipfw; then
 | 
			
		||||
			eend 1 "Unable to load firewall module"
 | 
			
		||||
			return 1
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Now all rules and give a good base
 | 
			
		||||
	ipfw flush
 | 
			
		||||
 | 
			
		||||
	ipfw add pass all from any to any via lo0
 | 
			
		||||
	ipfw add deny all from any to 127.0.0.0/8
 | 
			
		||||
	ipfw add deny ip from 127.0.0.0/8 to any
 | 
			
		||||
 | 
			
		||||
	if have_ip6; then
 | 
			
		||||
		ipfw add pass ip6 from any to any via lo0
 | 
			
		||||
		ipfw add deny ip6 from any to ::1
 | 
			
		||||
		ipfw add deny ip6 from ::1 to any
 | 
			
		||||
 | 
			
		||||
		ipfw add pass ip6 from :: to ff02::/16 proto ipv6-icmp
 | 
			
		||||
		ipfw add pass ip6 from fe80::/10 to fe80::/10 proto ipv6-icmp
 | 
			
		||||
		ipfw add pass ip6 from fe80::/10 to ff02::/16 proto ipv6-icmp
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
	local i= p= log=
 | 
			
		||||
	ebegin "Starting firewall rules"
 | 
			
		||||
	if ! init; then
 | 
			
		||||
		eend 1 "Failed to flush firewall ruleset"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Use a stateful firewall
 | 
			
		||||
	ipfw add check-state
 | 
			
		||||
	ipfw add pass tcp from me to any established
 | 
			
		||||
 | 
			
		||||
	# Allow any connection out, adding state for each.
 | 
			
		||||
	ipfw add pass tcp  from me  to any setup keep-state
 | 
			
		||||
	ipfw add pass udp  from me  to any       keep-state
 | 
			
		||||
	ipfw add pass icmp from me  to any       keep-state
 | 
			
		||||
 | 
			
		||||
	if have_ip6; then
 | 
			
		||||
		ipfw add pass tcp  from me6 to any setup keep-state
 | 
			
		||||
		ipfw add pass udp  from me6 to any       keep-state
 | 
			
		||||
		ipfw add pass icmp from me6 to any       keep-state
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Allow DHCP.
 | 
			
		||||
	ipfw add pass udp  from 0.0.0.0 68 to 255.255.255.255 67 out
 | 
			
		||||
	ipfw add pass udp  from any 67     to me 68 in
 | 
			
		||||
	ipfw add pass udp  from any 67     to 255.255.255.255 68 in
 | 
			
		||||
	# Some servers will ping the IP while trying to decide if it's
 | 
			
		||||
	# still in use.
 | 
			
		||||
	ipfw add pass icmp from any to any icmptype 8
 | 
			
		||||
 | 
			
		||||
	# Allow "mandatory" ICMP in.
 | 
			
		||||
	ipfw add pass icmp from any to any icmptype 3,4,11
 | 
			
		||||
 | 
			
		||||
	if have_ip6; then
 | 
			
		||||
		# Allow ICMPv6 destination unreach
 | 
			
		||||
		ipfw add pass ip6 from any to any icmp6types 1 proto ipv6-icmp
 | 
			
		||||
 | 
			
		||||
		# Allow NS/NA/toobig (don't filter it out)
 | 
			
		||||
		ipfw add pass ip6 from any to any icmp6types 2,135,136 proto ipv6-icmp
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Add permits for this workstations published services below
 | 
			
		||||
	# Only IPs and nets in firewall_allowservices is allowed in.
 | 
			
		||||
	for i in $ipfw_ip_in; do
 | 
			
		||||
		for p in $ipfw_ports_in; do
 | 
			
		||||
			ipfw add pass tcp from $i to me $p
 | 
			
		||||
		done
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	# Allow all connections from trusted IPs.
 | 
			
		||||
	# Playing with the content of firewall_trusted could seriously
 | 
			
		||||
	# degrade the level of protection provided by the firewall.
 | 
			
		||||
	for i in $ipfw_ip_trust; do
 | 
			
		||||
		ipfw add pass ip from $i to me
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	ipfw add 65000 count ip from any to any
 | 
			
		||||
 | 
			
		||||
	# Drop packets to ports where we don't want logging
 | 
			
		||||
	for p in $ipfw_ports_nolog; do
 | 
			
		||||
		ipfw add deny { tcp or udp } from any to any $p in
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	# Broadcasts and multicasts
 | 
			
		||||
	ipfw add deny ip from any to 255.255.255.255
 | 
			
		||||
	ipfw add deny ip from any to 224.0.0.0/24
 | 
			
		||||
 | 
			
		||||
	# Noise from routers
 | 
			
		||||
	ipfw add deny udp from any to any 520 in
 | 
			
		||||
 | 
			
		||||
	# Noise from webbrowsing.
 | 
			
		||||
	# The stateful filter is a bit aggressive, and will cause some
 | 
			
		||||
	# connection teardowns to be logged.
 | 
			
		||||
	ipfw add deny tcp from any 80,443 to any 1024-65535 in
 | 
			
		||||
 | 
			
		||||
	# Deny and (if wanted) log the rest unconditionally.
 | 
			
		||||
	if yesno ${ipfw_log_deny:-no}; then
 | 
			
		||||
		log=log
 | 
			
		||||
		sysctl net.inet.ip.fw.verbose=1 >/dev/null
 | 
			
		||||
	fi
 | 
			
		||||
	ipfw add deny $log ip from any to any
 | 
			
		||||
 | 
			
		||||
	eend 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop() {
 | 
			
		||||
	ebegin "Stopping firewall rules"
 | 
			
		||||
	# We don't unload the kernel module as that action
 | 
			
		||||
	# can cause memory leaks as of FreeBSD 6.x
 | 
			
		||||
	sysctl net.inet.ip.fw.enable=0 >/dev/null
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
panic() {
 | 
			
		||||
	ebegin "Stopping firewall rules - hard"
 | 
			
		||||
	if ! init; then
 | 
			
		||||
		eend 1 "Failed to flush firewall ruleset"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
	eend 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
showstatus() {
 | 
			
		||||
	ipfw show
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								init.d/keymaps.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								init.d/keymaps.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Applies a keymap for the consoles."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need termencoding
 | 
			
		||||
	after devfs
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
 | 
			
		||||
	: ${unicode:=$UNICODE}
 | 
			
		||||
	: ${keymap:=$KEYMAP}
 | 
			
		||||
	: ${extended_keymaps:=$EXTENDED_KEYMAPS}
 | 
			
		||||
	: ${windowkeys:=$SET_WINDOWSKEYS}
 | 
			
		||||
	: ${fix_euro:=$FIX_EURO}
 | 
			
		||||
	: ${dumpkeys_charset:=${DUMPKEYS_CHARSET}}
 | 
			
		||||
 | 
			
		||||
	if [ -z "$keymap" ]; then
 | 
			
		||||
		eerror "You need to setup keymap in /etc/conf.d/keymaps first"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	local ttydev=/dev/tty n=
 | 
			
		||||
	[ -d /dev/vc ] && ttydev=/dev/vc/
 | 
			
		||||
 | 
			
		||||
	# Force linux keycodes for PPC.
 | 
			
		||||
	if [ -f /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes ]; then
 | 
			
		||||
		echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	local wkeys= kmode="-a" msg="ASCII"
 | 
			
		||||
	if yesno ${unicode:-yes}; then
 | 
			
		||||
		kmode="-u"
 | 
			
		||||
		msg="UTF-8"
 | 
			
		||||
	fi
 | 
			
		||||
	yesno $windowkeys && wkeys="windowkeys"
 | 
			
		||||
 | 
			
		||||
	# Set terminal encoding to either ASCII or UNICODE.
 | 
			
		||||
	# See utf-8(7) for more information.
 | 
			
		||||
	ebegin "Setting keyboard mode [$msg]"
 | 
			
		||||
	n=1
 | 
			
		||||
	while [ $n -le $ttyn ]; do
 | 
			
		||||
		kbd_mode $kmode -C $ttydev$n
 | 
			
		||||
		: $(( n += 1 ))
 | 
			
		||||
	done
 | 
			
		||||
	eend 0
 | 
			
		||||
 | 
			
		||||
	ebegin "Loading key mappings [$keymap]"
 | 
			
		||||
	loadkeys -q $wkeys $keymap $extended_keymaps
 | 
			
		||||
	eend $? "Error loading key mappings" || return $?
 | 
			
		||||
 | 
			
		||||
	if yesno $fix_euro; then
 | 
			
		||||
		ebegin "Fixing font for euro symbol"
 | 
			
		||||
		# Fix some fonts displaying the Euro, #173528.
 | 
			
		||||
		echo "altgr keycode 18 = U+20AC" | loadkeys -q -
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								init.d/killprocs.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								init.d/killprocs.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Kill all processes so we can unmount disks cleanly."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Terminating remaining processes"
 | 
			
		||||
	kill_all 15 ${killall5_opts}
 | 
			
		||||
	sleep ${kill_delay:-0}
 | 
			
		||||
	eend 0
 | 
			
		||||
	ebegin "Killing remaining processes"
 | 
			
		||||
	sleep ${kill_delay:-0}
 | 
			
		||||
	kill_all 9 ${killall5_opts}
 | 
			
		||||
	eend 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										96
									
								
								init.d/local.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								init.d/local.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
conf_d_dir="${RC_SERVICE%/*/*}/conf.d"
 | 
			
		||||
local_d_dir="${RC_SERVICE%/*/*}/local.d"
 | 
			
		||||
 | 
			
		||||
description="Executes user programs in ${local_d_dir}"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after *
 | 
			
		||||
	keyword -timeout
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local file has_errors redirect retval
 | 
			
		||||
	has_errors=0
 | 
			
		||||
	yesno $rc_verbose || redirect='> /dev/null 2>&1'
 | 
			
		||||
	ebegin "Starting local"
 | 
			
		||||
	eindent
 | 
			
		||||
	for file in "${local_d_dir}"/*.start; do
 | 
			
		||||
		if [ -x "${file}" ]; then
 | 
			
		||||
			vebegin "Executing \"${file}\""
 | 
			
		||||
			eval "${file}" $redirect
 | 
			
		||||
			retval=$?
 | 
			
		||||
			if [ ${retval} -ne 0 ]; then
 | 
			
		||||
				has_errors=1
 | 
			
		||||
			fi
 | 
			
		||||
			veend ${retval} "Execution of \"${file}\" failed."
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	eoutdent
 | 
			
		||||
 | 
			
		||||
	if command -v local_start >/dev/null 2>&1; then
 | 
			
		||||
		ewarn "\"${conf_d_dir}/local\" should be removed."
 | 
			
		||||
		ewarn "Please move the code from the local_start function"
 | 
			
		||||
		ewarn "to executable scripts with an .start extension"
 | 
			
		||||
		ewarn "in \"${local_d_dir}\""
 | 
			
		||||
		local_start
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	eend ${has_errors}
 | 
			
		||||
 | 
			
		||||
	# We have to end with a zero exit code, because a failed execution
 | 
			
		||||
	# of an executable ${local_d_dir}/*.start file shouldn't result in
 | 
			
		||||
	# marking the local service as failed. Otherwise we are unable to
 | 
			
		||||
	# execute any executable ${local_d_dir}/*.stop file, because a failed
 | 
			
		||||
	# marked service cannot be stopped (and the stop function would
 | 
			
		||||
	# actually call the executable ${local_d_dir}/*.stop file(s)).
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	local file has_errors redirect retval
 | 
			
		||||
	has_errors=0
 | 
			
		||||
	yesno $rc_verbose || redirect='> /dev/null 2>&1'
 | 
			
		||||
	ebegin "Stopping local"
 | 
			
		||||
	eindent
 | 
			
		||||
	for file in "${local_d_dir}"/*.stop; do
 | 
			
		||||
		if [ -x "${file}" ]; then
 | 
			
		||||
			vebegin "Executing \"${file}\""
 | 
			
		||||
			eval "${file}" $redirect
 | 
			
		||||
			retval=$?
 | 
			
		||||
			if [ ${retval} -ne 0 ]; then
 | 
			
		||||
				has_errors=1
 | 
			
		||||
			fi
 | 
			
		||||
			veend ${retval} "Execution of \"${file}\" failed."
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	eoutdent
 | 
			
		||||
 | 
			
		||||
	if command -v local_stop >/dev/null 2>&1; then
 | 
			
		||||
		ewarn "\"${conf_d_dir}/local\" should be removed."
 | 
			
		||||
		ewarn "Please move the code from the local_stop function"
 | 
			
		||||
		ewarn "to executable scripts with an .stop extension"
 | 
			
		||||
		ewarn "in \"${local_d_dir}\""
 | 
			
		||||
		local_stop
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	eend ${has_errors}
 | 
			
		||||
 | 
			
		||||
	# An executable ${local_d_dir}/*.stop file which failed with a
 | 
			
		||||
	# non-zero exit status is not a reason to mark this service
 | 
			
		||||
	# as failed, therefore we have to end with a zero exit code.
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										133
									
								
								init.d/localmount.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								init.d/localmount.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,133 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Mounts disks and swap according to /etc/fstab."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need fsck root
 | 
			
		||||
	use lvm modules
 | 
			
		||||
	after clock lvm modules
 | 
			
		||||
	keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	# Mount local filesystems in /etc/fstab.
 | 
			
		||||
	# The types variable must start with no, and must be a type
 | 
			
		||||
	local critical= types="noproc" x= no_netdev= rc=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		types="${types},${x}"
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		no_netdev="-O no_netdev"
 | 
			
		||||
		if mountinfo -q /usr; then
 | 
			
		||||
			touch "$RC_SVCDIR"/usr_premounted
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	ebegin "Mounting local filesystems"
 | 
			
		||||
	mount -at "$types" $no_netdev
 | 
			
		||||
	eend $? "Some local filesystem failed to mount"
 | 
			
		||||
	rc=$?
 | 
			
		||||
	if [ -z "$critical_mounts" ]; then
 | 
			
		||||
		rc=0
 | 
			
		||||
	else
 | 
			
		||||
		for x in ${critical_mounts}; do
 | 
			
		||||
		fstabinfo -q $x || continue
 | 
			
		||||
		if ! mountinfo -q $x; then
 | 
			
		||||
			critical=x
 | 
			
		||||
			eerror "Failed to mount $x"
 | 
			
		||||
		fi
 | 
			
		||||
		done
 | 
			
		||||
		[ -z "$critical" ] && rc=0
 | 
			
		||||
	fi
 | 
			
		||||
	return $rc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	yesno $RC_GOINGDOWN || return 0
 | 
			
		||||
	# We never unmount / or /dev or $RC_SVCDIR
 | 
			
		||||
 | 
			
		||||
	# Bug 381783
 | 
			
		||||
	local rc_svcdir=$(printf '%s\n' "$RC_SVCDIR" | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
 | 
			
		||||
 | 
			
		||||
	local x= no_umounts_r="/|/dev|/dev/.*|${rc_svcdir}"
 | 
			
		||||
	no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib(32|64)?|/libexec"
 | 
			
		||||
	# RC_NO_UMOUNTS is an env var that can be set by plugins
 | 
			
		||||
	local IFS="$IFS:"
 | 
			
		||||
	for x in $no_umounts $RC_NO_UMOUNTS; do
 | 
			
		||||
		no_umounts_r="$no_umounts_r|$x"
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*"
 | 
			
		||||
		if [ -e "$rc_svcdir"/usr_premounted ]; then
 | 
			
		||||
			no_umounts_r="$no_umounts_r|/usr"
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	no_umounts_r="^($no_umounts_r)$"
 | 
			
		||||
 | 
			
		||||
	# Flush all pending disk writes now
 | 
			
		||||
	sync
 | 
			
		||||
 | 
			
		||||
	. "$RC_LIBEXECDIR"/sh/rc-mount.sh
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ] && [ -d /sys/fs/aufs ] ; then
 | 
			
		||||
		#if / is aufs we remount it noxino during shutdown
 | 
			
		||||
		if mountinfo -q -f '^aufs$' / ; then
 | 
			
		||||
			mount -o remount,noxino,rw /
 | 
			
		||||
			sync
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		local aufs_branch aufs_mount_point aufs_si_id aufs_br_id branches
 | 
			
		||||
		for aufs_si_dir in /sys/fs/aufs/si*; do
 | 
			
		||||
			[ -d "${aufs_si_dir}" ] || continue
 | 
			
		||||
			aufs_si_id="si=${aufs_si_dir#/sys/fs/aufs/si_}"
 | 
			
		||||
			aufs_mount_point="$(mountinfo -o ${aufs_si_id})"
 | 
			
		||||
			branches="$aufs_si_dir/br[0-9] $aufs_si_dir/br[0-9][0-9] $aufs_si_dir/br[0-9][0-9][0-9]"
 | 
			
		||||
			for x in $branches; do
 | 
			
		||||
				[ -e "${x}" ] || continue
 | 
			
		||||
				aufs_branch=$(sed 's/=.*//g' $x)
 | 
			
		||||
				eindent
 | 
			
		||||
				if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then
 | 
			
		||||
					ewarn "Failed to remove branch $aufs_branch from aufs" \
 | 
			
		||||
					"$aufs_mount_point"
 | 
			
		||||
				fi
 | 
			
		||||
				eoutdent
 | 
			
		||||
				sync
 | 
			
		||||
			done
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Umount loop devices
 | 
			
		||||
	einfo "Unmounting loop devices"
 | 
			
		||||
	eindent
 | 
			
		||||
	do_unmount "umount -d" --skip-point-regex "$no_umounts_r" \
 | 
			
		||||
		--node-regex "^/dev/loop"
 | 
			
		||||
	eoutdent
 | 
			
		||||
 | 
			
		||||
	# Now everything else, except network filesystems as the
 | 
			
		||||
	# network should be down by this point.
 | 
			
		||||
	einfo "Unmounting filesystems"
 | 
			
		||||
	eindent
 | 
			
		||||
	local fs=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		fs="$fs${fs:+|}$x"
 | 
			
		||||
	done
 | 
			
		||||
	[ -n "$fs" ] && fs="^($fs)$"
 | 
			
		||||
	do_unmount umount --skip-point-regex "$no_umounts_r" \
 | 
			
		||||
		"${fs:+--skip-fstype-regex}" $fs --nonetdev
 | 
			
		||||
	eoutdent
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								init.d/loopback.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								init.d/loopback.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2013-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Configures the loopback interface."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock
 | 
			
		||||
	keyword -jail -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		ebegin "Bringing up network interface lo"
 | 
			
		||||
		if command -v ip > /dev/null 2>&1; then
 | 
			
		||||
			ip addr add 127.0.0.1/8 dev lo brd +
 | 
			
		||||
			ip link set lo up
 | 
			
		||||
		else
 | 
			
		||||
			ifconfig lo 127.0.0.1 netmask 255.0.0.0
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		ebegin "Bringing up network interface lo0"
 | 
			
		||||
		ifconfig lo0 127.0.0.1 netmask 255.0.0.0
 | 
			
		||||
	fi
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										101
									
								
								init.d/meson.build
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								init.d/meson.build
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
init_d_dir = get_option('sysconfdir') / 'init.d'
 | 
			
		||||
 | 
			
		||||
init_common =  [
 | 
			
		||||
  'bootmisc.in',
 | 
			
		||||
  'fsck.in',
 | 
			
		||||
  'hostname.in',
 | 
			
		||||
  'local.in',
 | 
			
		||||
  'localmount.in',
 | 
			
		||||
  'loopback.in',
 | 
			
		||||
  'netmount.in',
 | 
			
		||||
  'osclock.in',
 | 
			
		||||
  'root.in',
 | 
			
		||||
  'savecache.in',
 | 
			
		||||
  'swap.in',
 | 
			
		||||
  'swclock.in',
 | 
			
		||||
  'sysctl.in',
 | 
			
		||||
  'runsvdir.in',
 | 
			
		||||
  's6-svscan.in',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
if get_option('newnet')
 | 
			
		||||
  init_common = init_common + [
 | 
			
		||||
    'network.in',
 | 
			
		||||
    'staticroute.in',
 | 
			
		||||
    ]
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
init_Linux =  [
 | 
			
		||||
  'agetty.in',
 | 
			
		||||
  'binfmt.in',
 | 
			
		||||
  'cgroups.in',
 | 
			
		||||
  'consolefont.in',
 | 
			
		||||
  'devfs.in',
 | 
			
		||||
  'dmesg.in',
 | 
			
		||||
  'hwclock.in',
 | 
			
		||||
  'keymaps.in',
 | 
			
		||||
  'killprocs.in',
 | 
			
		||||
  'modules.in',
 | 
			
		||||
  'mount-ro.in',
 | 
			
		||||
  'mtab.in',
 | 
			
		||||
  'numlock.in',
 | 
			
		||||
  'procfs.in',
 | 
			
		||||
  'net-online.in',
 | 
			
		||||
  'save-keymaps.in',
 | 
			
		||||
  'save-termencoding.in',
 | 
			
		||||
  'seedrng.in',
 | 
			
		||||
  'sysfs.in',
 | 
			
		||||
  'termencoding.in',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
init_BSD =  [
 | 
			
		||||
  'hostid.in',
 | 
			
		||||
  'moused.in',
 | 
			
		||||
  'newsyslog.in',
 | 
			
		||||
  'pf.in',
 | 
			
		||||
  'rarpd.in',
 | 
			
		||||
  'rc-enabled.in',
 | 
			
		||||
  'rpcbind.in',
 | 
			
		||||
  'savecore.in',
 | 
			
		||||
  'syslogd.in',
 | 
			
		||||
  'urandom.in',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
init_FreeBSD =  [
 | 
			
		||||
  'adjkerntz.in',
 | 
			
		||||
  'devd.in',
 | 
			
		||||
  'dumpon.in',
 | 
			
		||||
  'encswap.in',
 | 
			
		||||
  'ipfw.in',
 | 
			
		||||
  'modules.in',
 | 
			
		||||
  'mixer.in',
 | 
			
		||||
  'nscd.in',
 | 
			
		||||
  'powerd.in',
 | 
			
		||||
  'syscons.in',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
init_NetBSD =  [
 | 
			
		||||
  'devdb.in',
 | 
			
		||||
  'swap-blk.in',
 | 
			
		||||
  'ttys.in',
 | 
			
		||||
  'wscons.in',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
init_data = init_common
 | 
			
		||||
if os == 'Dragonfly'
 | 
			
		||||
  init_data = init_data + init_BSD
 | 
			
		||||
elif os == 'FreeBSD' or os == 'Gnu-kFreeBSD'
 | 
			
		||||
  init_data = init_data + init_BSD + init_FreeBSD
 | 
			
		||||
elif os == 'Linux'
 | 
			
		||||
  init_data = init_data + init_Linux
 | 
			
		||||
elif os == 'NetBSD'
 | 
			
		||||
  init_data = init_data + init_BSD + init_NetBSD
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
foreach init_d_file : init_data
 | 
			
		||||
  configure_file(input : init_d_file,
 | 
			
		||||
    output : '@BASENAME@',
 | 
			
		||||
    configuration : init_d_conf_data,
 | 
			
		||||
    install_dir: init_d_dir,
 | 
			
		||||
    install_mode: 'rwxr-xr-x')
 | 
			
		||||
endforeach
 | 
			
		||||
							
								
								
									
										54
									
								
								init.d/mixer.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								init.d/mixer.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
extra_commands="restore"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
restore()
 | 
			
		||||
{
 | 
			
		||||
	local mixer= retval=0
 | 
			
		||||
	ebegin "Restoring mixer settings"
 | 
			
		||||
	eindent
 | 
			
		||||
	for mixer in /dev/mixer*; do
 | 
			
		||||
		if [ -r "/var/db/${mixer#/dev/}-state" ]; then
 | 
			
		||||
			vebegin "$mixer"
 | 
			
		||||
			mixer -f "$mixer" \
 | 
			
		||||
			$(cat "/var/db/${mixer#/dev/}-state") >/dev/null
 | 
			
		||||
			veend $?
 | 
			
		||||
			: $(( retval += $? ))
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	restore
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	local mixer= retval=0
 | 
			
		||||
	ebegin "Saving mixer settings"
 | 
			
		||||
	eindent
 | 
			
		||||
	for mixer in /dev/mixer*; do
 | 
			
		||||
		vebegin "$mixer"
 | 
			
		||||
		mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state
 | 
			
		||||
		veend $?
 | 
			
		||||
		: $(( retval += $? ))
 | 
			
		||||
	done
 | 
			
		||||
	eoutdent
 | 
			
		||||
	eend $retval
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										139
									
								
								init.d/modules.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								init.d/modules.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,139 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Loads a user defined list of kernel modules."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	use isapnp
 | 
			
		||||
	provide modules-load
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
find_modfiles()
 | 
			
		||||
{
 | 
			
		||||
	local dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d"
 | 
			
		||||
	local basenames files fn x y
 | 
			
		||||
	for x in $dirs; do
 | 
			
		||||
		[ ! -d $x ] && continue
 | 
			
		||||
		for y in $x/*.conf; do
 | 
			
		||||
			[ -f $y ] && basenames="${basenames}\n${y##*/}"
 | 
			
		||||
		done
 | 
			
		||||
	done
 | 
			
		||||
	basenames=$(printf "$basenames" | sort -u)
 | 
			
		||||
	for x in $basenames; do
 | 
			
		||||
		for y in $dirs; do
 | 
			
		||||
			[ -r $y/$x ] &&
 | 
			
		||||
				fn=$y/$x
 | 
			
		||||
		done
 | 
			
		||||
		files="$files $fn"
 | 
			
		||||
	done
 | 
			
		||||
	echo $files
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
load_modules()
 | 
			
		||||
{
 | 
			
		||||
	local file m _modules rc x
 | 
			
		||||
	file=$1
 | 
			
		||||
	[ -z "$file" ] && return 0
 | 
			
		||||
	while read m x; do
 | 
			
		||||
		case $m in
 | 
			
		||||
			\;*) continue ;;
 | 
			
		||||
			\#*) continue ;;
 | 
			
		||||
			*) _modules="$_modules $m"
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
	done < $file
 | 
			
		||||
	for x in $_modules; do
 | 
			
		||||
		ebegin "Loading module $x"
 | 
			
		||||
		case "$RC_UNAME" in
 | 
			
		||||
			FreeBSD) kldload "$x"; rc=$? ;;
 | 
			
		||||
			Linux) modprobe --first-time --use-blacklist --verbose "$x"; rc=$? ;;
 | 
			
		||||
			*) ;;
 | 
			
		||||
		esac
 | 
			
		||||
		eend
 | 
			
		||||
	done
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
modules_load_d()
 | 
			
		||||
{
 | 
			
		||||
	local x
 | 
			
		||||
	files=$(find_modfiles)
 | 
			
		||||
	for x in $files; do
 | 
			
		||||
		load_modules $x
 | 
			
		||||
	done
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FreeBSD_modules()
 | 
			
		||||
{
 | 
			
		||||
	local cnt=0 x
 | 
			
		||||
	for x in $modules; do
 | 
			
		||||
		ebegin "Loading module $x"
 | 
			
		||||
		kldload "$x"
 | 
			
		||||
		eend && : $(( cnt += 1 ))
 | 
			
		||||
	done
 | 
			
		||||
	einfo "Autoloaded $cnt module(s)"
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Linux_modules()
 | 
			
		||||
{
 | 
			
		||||
	# Should not fail if kernel does not have module
 | 
			
		||||
	# support compiled in ...
 | 
			
		||||
	[ ! -f /proc/modules ] && return 0
 | 
			
		||||
 | 
			
		||||
	local KV x y kv_variant_list
 | 
			
		||||
	KV=$(uname -r)
 | 
			
		||||
	# full $KV
 | 
			
		||||
	kv_variant_list="${KV}"
 | 
			
		||||
	# remove any KV_EXTRA options to just get the full version
 | 
			
		||||
	x=${KV%%-*}
 | 
			
		||||
	# now slowly strip them
 | 
			
		||||
	while [ -n "$x" ] && [ "$x" != "$y" ]; do
 | 
			
		||||
		kv_variant_list="${kv_variant_list} $x"
 | 
			
		||||
		y=$x
 | 
			
		||||
		x=${x%.*}
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	local list= x= xx= y= args=
 | 
			
		||||
	for x in $kv_variant_list ; do
 | 
			
		||||
		eval list=\$modules_$(shell_var "$x")
 | 
			
		||||
		[ -n "$list" ] && break
 | 
			
		||||
	done
 | 
			
		||||
	[ -z "$list" ] && list=$modules
 | 
			
		||||
 | 
			
		||||
	[ -n "$list" ] && ebegin "Loading kernel modules"
 | 
			
		||||
	for x in $list; do
 | 
			
		||||
		xx=$(shell_var "$x")
 | 
			
		||||
		for y in $kv_variant_list ; do
 | 
			
		||||
			eval args=\$module_${xx}_args_$(shell_var "$y")
 | 
			
		||||
			[ -n "${args}" ] && break
 | 
			
		||||
		done
 | 
			
		||||
		[ -z "$args" ] && eval args=\$module_${xx}_args
 | 
			
		||||
		eval modprobe --first-time --use-blacklist --verbose "$x" "$args"
 | 
			
		||||
	done
 | 
			
		||||
	[ -n "$list" ] && eend
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	case "$RC_UNAME" in
 | 
			
		||||
		FreeBSD|Linux)
 | 
			
		||||
			modules_load_d
 | 
			
		||||
			${RC_UNAME}_modules
 | 
			
		||||
			;;
 | 
			
		||||
		*) ;;
 | 
			
		||||
	esac
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										59
									
								
								init.d/mount-ro.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								init.d/mount-ro.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Re-mount filesystems read-only for a clean reboot."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after killprocs savecache
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local ret=0
 | 
			
		||||
 | 
			
		||||
	# Flush all pending disk writes now
 | 
			
		||||
	sync
 | 
			
		||||
 | 
			
		||||
	ebegin "Remounting remaining filesystems read-only"
 | 
			
		||||
	# We need the do_unmount function
 | 
			
		||||
	. "$RC_LIBEXECDIR"/sh/rc-mount.sh
 | 
			
		||||
	eindent
 | 
			
		||||
 | 
			
		||||
	# Bug 381783
 | 
			
		||||
	local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
 | 
			
		||||
 | 
			
		||||
	local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs=
 | 
			
		||||
	m="$m|/bin|/sbin|/lib(32|64)?|/libexec"
 | 
			
		||||
	if [ -e "$rc_svcdir"/usr_premounted ]; then
 | 
			
		||||
		m="$m|/usr"
 | 
			
		||||
	fi
 | 
			
		||||
	# RC_NO_UMOUNTS is an env var that can be set by plugins
 | 
			
		||||
	local IFS="$IFS:"
 | 
			
		||||
	for x in $no_umounts $RC_NO_UMOUNTS; do
 | 
			
		||||
		m="$m|$x"
 | 
			
		||||
	done
 | 
			
		||||
	m="^($m)$"
 | 
			
		||||
	fs=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		fs="$fs${fs:+|}$x"
 | 
			
		||||
	done
 | 
			
		||||
	[ -n "$fs" ] && fs="^($fs)$"
 | 
			
		||||
	do_unmount "umount -r" \
 | 
			
		||||
		--skip-point-regex "$m" \
 | 
			
		||||
		"${fs:+--skip-fstype-regex}" $fs --nonetdev
 | 
			
		||||
	ret=$?
 | 
			
		||||
 | 
			
		||||
	eoutdent
 | 
			
		||||
 | 
			
		||||
	eend $ret
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										69
									
								
								init.d/moused.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								init.d/moused.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
mouse=${RC_SVCNAME##*.}
 | 
			
		||||
if [ -n "$mouse" -a "$mouse" != "moused" ]; then
 | 
			
		||||
	moused_device=/dev/"$mouse"
 | 
			
		||||
	pidfile=/var/run/moused-"$mouse".pid
 | 
			
		||||
else
 | 
			
		||||
	pidfile=/var/run/moused.pid
 | 
			
		||||
fi
 | 
			
		||||
name="Console Mouse Daemon"
 | 
			
		||||
[ -n "$moused_device" ] && name="$name ($moused_device)"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Starting $name"
 | 
			
		||||
 | 
			
		||||
	if [ -z "$moused_device" ]; then
 | 
			
		||||
		local dev=
 | 
			
		||||
		for dev in /dev/psm[0-9]* /dev/ums[0-9]*; do
 | 
			
		||||
			[ -c "$dev" ] || continue
 | 
			
		||||
			[ -e /var/run/moused-"${dev##*/}".pid ] && continue
 | 
			
		||||
			moused_device=$dev
 | 
			
		||||
			eindent
 | 
			
		||||
			einfo "Using mouse on $moused_device"
 | 
			
		||||
			eoutdent
 | 
			
		||||
			break
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ -z "$moused_device" ]; then
 | 
			
		||||
		eend 1 "No mouse device found"
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	local args=
 | 
			
		||||
	eval args=\$moused_args_${moused_device##*/}
 | 
			
		||||
	[ -z "$args" ] && args=$moused_args
 | 
			
		||||
 | 
			
		||||
	start-stop-daemon --start --exec /usr/sbin/moused \
 | 
			
		||||
		--pidfile "$pidfile" \
 | 
			
		||||
		-- $args -p "$moused_device" -I "$pidfile"
 | 
			
		||||
	local retval=$?
 | 
			
		||||
 | 
			
		||||
	if [ $retval = 0 ]; then
 | 
			
		||||
		local ttyv=
 | 
			
		||||
		for ttyv in /dev/ttyv*; do
 | 
			
		||||
			vidcontrol < "$ttyv" -m on
 | 
			
		||||
			: $(( retval += $? ))
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	eend $retval "Failed to start moused"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										52
									
								
								init.d/mtab.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								init.d/mtab.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Update /etc/mtab to match what the kernel knows about"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock
 | 
			
		||||
	before localmount
 | 
			
		||||
	need root
 | 
			
		||||
	keyword -prefix -systemd-nspawn
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local rc=0
 | 
			
		||||
	ebegin "Updating /etc/mtab"
 | 
			
		||||
	if ! checkpath -W /etc; then
 | 
			
		||||
		rc=1
 | 
			
		||||
	elif ! yesno ${mtab_is_file:-no}; then
 | 
			
		||||
		[ ! -L /etc/mtab ] && [ -f /etc/mtab ] &&
 | 
			
		||||
			ewarn "Removing /etc/mtab file"
 | 
			
		||||
		einfo "Creating mtab symbolic link"
 | 
			
		||||
		ln -snf /proc/self/mounts /etc/mtab
 | 
			
		||||
	else
 | 
			
		||||
		ewarn "The ${RC_SVCNAME} service will be removed in the future."
 | 
			
		||||
		ewarn "Please change the mtab_is_file setting to no and run"
 | 
			
		||||
		ewarn "# rc-service mtab restart"
 | 
			
		||||
		ewarn "to create the mtab symbolic link."
 | 
			
		||||
		[ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link"
 | 
			
		||||
		rm -f /etc/mtab
 | 
			
		||||
		einfo "Creating mtab file"
 | 
			
		||||
		# With / as tmpfs we cannot umount -at tmpfs in localmount as that
 | 
			
		||||
		# makes / readonly and dismounts all tmpfs even if in use which is
 | 
			
		||||
		# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts
 | 
			
		||||
		# which allows this hack to work.
 | 
			
		||||
		grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab
 | 
			
		||||
 | 
			
		||||
		# Remove stale backups
 | 
			
		||||
		rm -f /etc/mtab~ /etc/mtab~~
 | 
			
		||||
	fi
 | 
			
		||||
	eend $rc "/etc is not writable; unable to create /etc/mtab"
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								init.d/net-online.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								init.d/net-online.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Delays until the network is online or a specific timeout"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after modules net
 | 
			
		||||
	need sysfs
 | 
			
		||||
	provide network-online
 | 
			
		||||
	keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_interfaces()
 | 
			
		||||
{
 | 
			
		||||
	local ifname iftype
 | 
			
		||||
	for ifname in /sys/class/net/*; do
 | 
			
		||||
		[ -h "${ifname}" ] || continue
 | 
			
		||||
		read iftype < ${ifname}/type
 | 
			
		||||
		[ "$iftype" = "1" ] && printf "%s " ${ifname##*/}
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start ()
 | 
			
		||||
{
 | 
			
		||||
	local carriers configured dev gateway ifcount infinite
 | 
			
		||||
	local carrier operstate rc
 | 
			
		||||
 | 
			
		||||
	ebegin "Checking to see if the network is online"
 | 
			
		||||
	rc=0
 | 
			
		||||
	interfaces=${interfaces:-$(get_interfaces)}
 | 
			
		||||
	timeout=${timeout:-120}
 | 
			
		||||
 [ $timeout -eq 0 ] && infinite=true || infinite=false
 | 
			
		||||
 while $infinite || [ $timeout -gt 0 ]; do
 | 
			
		||||
	carriers=0
 | 
			
		||||
	configured=0
 | 
			
		||||
	ifcount=0
 | 
			
		||||
 	for dev in ${interfaces}; do
 | 
			
		||||
		: $((ifcount += 1))
 | 
			
		||||
		read carrier < /sys/class/net/$dev/carrier 2> /dev/null ||
 | 
			
		||||
			carrier=
 | 
			
		||||
		[ "$carrier" = 1 ] && : $((carriers += 1))
 | 
			
		||||
		read operstate < /sys/class/net/$dev/operstate 2> /dev/null ||
 | 
			
		||||
			operstate=
 | 
			
		||||
		[ "$operstate" = up ] && : $((configured += 1))
 | 
			
		||||
	done
 | 
			
		||||
	[ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break
 | 
			
		||||
	sleep 1
 | 
			
		||||
	: $((timeout -= 1))
 | 
			
		||||
 done
 | 
			
		||||
 ! $infinite && [ $timeout -eq 0 ] && rc=1
 | 
			
		||||
 include_ping_test=${include_ping_test:-${ping_default_gateway}}
 | 
			
		||||
 if [ -n "${ping_default_gateway}" ]; then
 | 
			
		||||
 ewarn "ping_default_gateway is deprecated, please use include_ping_test"
 | 
			
		||||
 fi
 | 
			
		||||
 if [ $rc -eq 0 ] && yesno ${include_ping_test:-no}; then
 | 
			
		||||
 	ping_test_host="${ping_test_host:-google.com}"
 | 
			
		||||
 	if [ -n "$ping_test_host" ]; then
 | 
			
		||||
		while $infinite || [ $timeout -gt 0 ]; do
 | 
			
		||||
			ping -c 1 $ping_test_host > /dev/null 2>&1
 | 
			
		||||
			rc=$?
 | 
			
		||||
			[ $rc -eq 0 ] && break
 | 
			
		||||
			sleep 1
 | 
			
		||||
			: $((timeout -= 1))
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
 fi
 | 
			
		||||
 eend $rc "The network is offline"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										91
									
								
								init.d/netmount.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								init.d/netmount.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Mounts network shares according to /etc/fstab."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	local opts mywant=""
 | 
			
		||||
	for opts in $(fstabinfo -o -t nfs,nfs4); do
 | 
			
		||||
		case $opts in
 | 
			
		||||
			noauto) ;;
 | 
			
		||||
			*) mywant="$mywant nfsclient"; break ;;
 | 
			
		||||
		esac
 | 
			
		||||
	done
 | 
			
		||||
	after root
 | 
			
		||||
 	config /etc/fstab
 | 
			
		||||
	want $mywant
 | 
			
		||||
	use afc-client amd openvpn
 | 
			
		||||
	use dns
 | 
			
		||||
	use root
 | 
			
		||||
	keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local x= fs= rc=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		fs="$fs${fs:+,}$x"
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	ebegin "Mounting network filesystems"
 | 
			
		||||
	mount -at $fs
 | 
			
		||||
	rc=$?
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ] && [ $rc = 0 ]; then
 | 
			
		||||
		mount -a -O _netdev
 | 
			
		||||
		rc=$?
 | 
			
		||||
	fi
 | 
			
		||||
	ewend $rc "Could not mount all network filesystems"
 | 
			
		||||
	if [ -z "$critical_mounts" ]; then
 | 
			
		||||
		rc=0
 | 
			
		||||
	else
 | 
			
		||||
		for x in ${critical_mounts}; do
 | 
			
		||||
		fstabinfo -q $x || continue
 | 
			
		||||
		if ! mountinfo -q $x; then
 | 
			
		||||
			critical=x
 | 
			
		||||
			eerror "Failed to mount $x"
 | 
			
		||||
		fi
 | 
			
		||||
		done
 | 
			
		||||
		[ -z "$critical" ] && rc=0
 | 
			
		||||
	fi
 | 
			
		||||
	return $rc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	local x= fs=
 | 
			
		||||
 | 
			
		||||
	ebegin "Unmounting network filesystems"
 | 
			
		||||
	. "$RC_LIBEXECDIR"/sh/rc-mount.sh
 | 
			
		||||
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		fs="$fs${fs:+,}$x"
 | 
			
		||||
	done
 | 
			
		||||
	if [ -n "$fs" ]; then
 | 
			
		||||
		umount -at $fs || eerror "Failed to simply unmount filesystems"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	eindent
 | 
			
		||||
	fs=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		fs="$fs${fs:+|}$x"
 | 
			
		||||
	done
 | 
			
		||||
	[ -n "$fs" ] && fs="^($fs)$"
 | 
			
		||||
	do_unmount umount ${fs:+--fstype-regex} $fs --netdev
 | 
			
		||||
	retval=$?
 | 
			
		||||
 | 
			
		||||
	eoutdent
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ] && [ $retval = 0 ]; then
 | 
			
		||||
		umount -a -O _netdev
 | 
			
		||||
		retval=$?
 | 
			
		||||
	fi
 | 
			
		||||
	eend $retval "Failed to unmount network filesystems"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										360
									
								
								init.d/network.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										360
									
								
								init.d/network.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,360 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2009-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# This script was inspired by the equivalent rc.d network from NetBSD.
 | 
			
		||||
 | 
			
		||||
description="Configures network interfaces."
 | 
			
		||||
__nl="
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc clock
 | 
			
		||||
	if [ -n "$(interfaces)" ]; then
 | 
			
		||||
		provide net
 | 
			
		||||
	fi
 | 
			
		||||
	keyword -jail -prefix -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uniqify()
 | 
			
		||||
{
 | 
			
		||||
	local result= i=
 | 
			
		||||
	for i; do
 | 
			
		||||
		case " $result " in
 | 
			
		||||
		*" $i "*);;
 | 
			
		||||
		*) result="$result $i";;
 | 
			
		||||
		esac
 | 
			
		||||
	done
 | 
			
		||||
	echo "${result# *}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
reverse()
 | 
			
		||||
{
 | 
			
		||||
	local result= i=
 | 
			
		||||
	for i; do
 | 
			
		||||
		result="$i $result"
 | 
			
		||||
	done
 | 
			
		||||
	echo "${result# *}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sys_interfaces()
 | 
			
		||||
{
 | 
			
		||||
	case "$RC_UNAME" in
 | 
			
		||||
	Linux)
 | 
			
		||||
		local w= rest= i= cmd=$1
 | 
			
		||||
		while read w rest; do
 | 
			
		||||
			i=${w%%:*}
 | 
			
		||||
			case "$i" in
 | 
			
		||||
				"$w") continue ;;
 | 
			
		||||
				lo|lo0) continue ;;
 | 
			
		||||
				*) ;;
 | 
			
		||||
			esac
 | 
			
		||||
			if [ "$cmd" = u ]; then
 | 
			
		||||
				ifconfig "$i" | grep -q "[ ]*UP" || continue
 | 
			
		||||
			fi
 | 
			
		||||
			printf "%s " "$i"
 | 
			
		||||
		done </proc/net/dev
 | 
			
		||||
		;;
 | 
			
		||||
	*)
 | 
			
		||||
		ifconfig -l$1
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tentative()
 | 
			
		||||
{
 | 
			
		||||
	local inet= address= rest=
 | 
			
		||||
 | 
			
		||||
	case "$RC_UNAME" in
 | 
			
		||||
	Linux)
 | 
			
		||||
		[ -n "$(command -v ip)" ] || return 1
 | 
			
		||||
		[ -n "$(ip -f inet6 addr show tentative)" ]
 | 
			
		||||
		;;
 | 
			
		||||
	*)
 | 
			
		||||
		local inet= address= rest=
 | 
			
		||||
		LC_ALL=C ifconfig -a | while read inet address rest; do
 | 
			
		||||
	 		case "${inet}" in
 | 
			
		||||
			inet6)
 | 
			
		||||
				case "${rest}" in
 | 
			
		||||
				*" "tentative*) return 2;;
 | 
			
		||||
				esac
 | 
			
		||||
				;;
 | 
			
		||||
			esac
 | 
			
		||||
		done
 | 
			
		||||
		[ $? = 2 ]
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
auto_interfaces()
 | 
			
		||||
{
 | 
			
		||||
	local ifs= c= f=
 | 
			
		||||
 | 
			
		||||
	case "$RC_UNAME" in
 | 
			
		||||
	NetBSD)
 | 
			
		||||
		for c in $(ifconfig -C 2>/dev/null); do
 | 
			
		||||
			for f in /etc/ifconfig.${c}[0-9]*; do
 | 
			
		||||
				[ -f "$f" ] && printf "%s" "$f{##*.} "
 | 
			
		||||
			done
 | 
			
		||||
		done
 | 
			
		||||
		;;
 | 
			
		||||
	*)
 | 
			
		||||
		for f in /etc/ifconfig.*; do
 | 
			
		||||
			[ -f "$f" ] && printf "%s" "${f##*.} "
 | 
			
		||||
		done
 | 
			
		||||
		for f in /etc/ip.*; do
 | 
			
		||||
			[ -f "$f" ] && printf "%s" "${f##*.} "
 | 
			
		||||
		done
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
	echo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interfaces()
 | 
			
		||||
{
 | 
			
		||||
	uniqify $(sys_interfaces "$@") $interfaces $(auto_interfaces)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dumpargs()
 | 
			
		||||
{
 | 
			
		||||
	local f="$1"
 | 
			
		||||
 | 
			
		||||
	shift
 | 
			
		||||
	case "$@" in
 | 
			
		||||
	'')		[ -f "$f" ] && cat "$f";;
 | 
			
		||||
	*"$__nl"*)	echo "$@";;
 | 
			
		||||
	*)
 | 
			
		||||
		(
 | 
			
		||||
		 	set -o noglob
 | 
			
		||||
			IFS=';'; set -- $@
 | 
			
		||||
			IFS="$__nl"; echo "$*"
 | 
			
		||||
		);;
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
intup=false
 | 
			
		||||
runip()
 | 
			
		||||
{
 | 
			
		||||
	local int="$1" err=
 | 
			
		||||
	shift
 | 
			
		||||
 | 
			
		||||
	# Ensure we have a valid broadcast address
 | 
			
		||||
	case "$@" in
 | 
			
		||||
	*" broadcast "*|*" brd "*) ;;
 | 
			
		||||
	*:*) ;; # Ignore IPv6
 | 
			
		||||
	*) set -- "$@" brd +;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
 | 
			
		||||
	if [ -z "$err" ]; then
 | 
			
		||||
		# ip does not bring up the interface when adding addresses
 | 
			
		||||
		if ! $intup; then
 | 
			
		||||
			ip link set "$int" up
 | 
			
		||||
			intup=true
 | 
			
		||||
		fi
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$err" = "RTNETLINK answers: File exists" ]; then
 | 
			
		||||
		ip address del "$@" dev "$int" 2>/dev/null
 | 
			
		||||
	fi
 | 
			
		||||
	# Localise the error
 | 
			
		||||
	ip address add "$@" dev "$int"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
routeflush()
 | 
			
		||||
{
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		if [ -n "$(command -v ip)"  ]; then
 | 
			
		||||
			ip route flush scope global
 | 
			
		||||
			ip route delete default 2>/dev/null
 | 
			
		||||
		else
 | 
			
		||||
			# Sadly we also delete some link routes, but
 | 
			
		||||
			# this cannot be helped
 | 
			
		||||
			local dest= gate= net= flags= rest=
 | 
			
		||||
			route -n | while read dest gate net flags rest; do
 | 
			
		||||
				[ -z "$net" ] && continue
 | 
			
		||||
				case "$dest" in
 | 
			
		||||
				[0-9]*)	;;
 | 
			
		||||
				*)	continue;;
 | 
			
		||||
				esac
 | 
			
		||||
				local xtra= netmask="netmask $net"
 | 
			
		||||
				case "$flags" in
 | 
			
		||||
				U)	continue;;
 | 
			
		||||
				*H*)	flags=-host; netmask=;;
 | 
			
		||||
				*!*)	flags=-net; xtra=reject;;
 | 
			
		||||
				*)	flags=-net;;
 | 
			
		||||
				esac
 | 
			
		||||
				route del $flags $dest $netmask $xtra
 | 
			
		||||
			done
 | 
			
		||||
			# Erase any default dev eth0 routes
 | 
			
		||||
			route del default 2>/dev/null
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		route -qn flush
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
runargs()
 | 
			
		||||
{
 | 
			
		||||
	dumpargs "$@" | while read -r args; do
 | 
			
		||||
		case "$args" in
 | 
			
		||||
		''|"#"*)	;;
 | 
			
		||||
		*)
 | 
			
		||||
				(
 | 
			
		||||
				 	eval vebegin "${args#*!}"
 | 
			
		||||
					eval "${args#*!}"
 | 
			
		||||
					veend $?
 | 
			
		||||
				);;
 | 
			
		||||
		esac
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local cr=0 r= int= intv= cmd= args= upcmd=
 | 
			
		||||
 | 
			
		||||
	if [ -z "$domainname" -a -s /etc/defaultdomain ]; then
 | 
			
		||||
		domainname=$(cat /etc/defaultdomain)
 | 
			
		||||
	fi
 | 
			
		||||
	if [ -n "$domainname" ]; then
 | 
			
		||||
		ebegin "Setting NIS domainname: $domainname"
 | 
			
		||||
		domainname "$domainname"
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	einfo "Starting network"
 | 
			
		||||
	routeflush
 | 
			
		||||
	eindent
 | 
			
		||||
	for int in $(interfaces); do
 | 
			
		||||
		local func= cf=
 | 
			
		||||
		intv=$(shell_var "$int")
 | 
			
		||||
		eval upcmd=\$ifup_$intv
 | 
			
		||||
		for func in ip ifconfig; do
 | 
			
		||||
			eval cmd=\$${func}_$intv
 | 
			
		||||
			if [ -n "$cmd" -o -f /etc/"$func.$int" ]; then
 | 
			
		||||
				cf=/etc/"$func.$int"
 | 
			
		||||
				break
 | 
			
		||||
			fi
 | 
			
		||||
		done
 | 
			
		||||
		[ -n "$cf" -o -n "$upcmd" -o \
 | 
			
		||||
			-f /etc/ifup."$int" -o -f "$cf" ] || continue
 | 
			
		||||
		veinfo "$int"
 | 
			
		||||
		case "$func" in
 | 
			
		||||
		ip)	func=runip; intup=false;;
 | 
			
		||||
		esac
 | 
			
		||||
		eindent
 | 
			
		||||
		runargs /etc/ifup."$int" "$upcmd"
 | 
			
		||||
		r=0
 | 
			
		||||
		dumpargs "$cf" "$cmd" | while read -r args; do
 | 
			
		||||
			case "$args" in
 | 
			
		||||
			''|"#"*)	;;
 | 
			
		||||
			"!"*)
 | 
			
		||||
					(
 | 
			
		||||
					 	eval vebegin "${args#*!}"
 | 
			
		||||
						eval "${args#*!}"
 | 
			
		||||
						veend $?
 | 
			
		||||
					);;
 | 
			
		||||
			*)
 | 
			
		||||
					(
 | 
			
		||||
					 	set -o noglob
 | 
			
		||||
						eval set -- "$args"
 | 
			
		||||
						vebegin "$@"
 | 
			
		||||
						$func "$int" "$@"
 | 
			
		||||
						veend $?
 | 
			
		||||
					);;
 | 
			
		||||
			esac
 | 
			
		||||
		done
 | 
			
		||||
		eoutdent
 | 
			
		||||
	done
 | 
			
		||||
	eoutdent
 | 
			
		||||
	eend $cr
 | 
			
		||||
 | 
			
		||||
	# Wait for any inet6 tentative addresses
 | 
			
		||||
	r=5
 | 
			
		||||
	while [ $r -gt 0 ]; do
 | 
			
		||||
		tentative || break
 | 
			
		||||
		[ $r = 5 ] && vebegin "Waiting for tentative addresses"
 | 
			
		||||
		sleep 1
 | 
			
		||||
		: $(( r -= 1 ))
 | 
			
		||||
	done
 | 
			
		||||
	if [ $r != 5 ]; then
 | 
			
		||||
		[ $r != 0 ]
 | 
			
		||||
		veend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ -n "$defaultroute" ]; then
 | 
			
		||||
		ebegin "Setting default route $defaultroute"
 | 
			
		||||
		route add default $defaultroute
 | 
			
		||||
		eend $?
 | 
			
		||||
	elif [ -n "$defaultiproute" ]; then
 | 
			
		||||
		ebegin "Setting default route $defaultiproute"
 | 
			
		||||
		ip route add default $defaultiproute
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ -n "$defaultroute6" ]; then
 | 
			
		||||
		ebegin "Setting default route $defaultroute6"
 | 
			
		||||
		if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
			routecmd="route -A inet6 add"
 | 
			
		||||
		else
 | 
			
		||||
			routecmd="route -inet6 add"
 | 
			
		||||
		fi
 | 
			
		||||
		$routecmd default $defaultroute6
 | 
			
		||||
		eend $?
 | 
			
		||||
	elif [ -n "$defaultiproute6" ]; then
 | 
			
		||||
		ebegin "Setting default route $defaultiproute6"
 | 
			
		||||
		ip -f inet6 route add default $defaultiproute6
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	# Don't stop the network at shutdown.
 | 
			
		||||
 	# We don't use the noshutdown keyword so that we are started again
 | 
			
		||||
	# correctly if we go back to multiuser.
 | 
			
		||||
	yesno ${keep_network:-YES} && yesno $RC_GOINGDOWN && return 0
 | 
			
		||||
 | 
			
		||||
	local int= intv= cmd= downcmd= r=
 | 
			
		||||
	einfo "Stopping network"
 | 
			
		||||
	routeflush
 | 
			
		||||
	eindent
 | 
			
		||||
	for int in $(reverse $(interfaces u)); do
 | 
			
		||||
		case "$int" in
 | 
			
		||||
			lo|lo0) continue ;;
 | 
			
		||||
			*) ;;
 | 
			
		||||
		esac
 | 
			
		||||
		intv=$(shell_var "$int")
 | 
			
		||||
		eval downcmd=\$ifdown_$intv
 | 
			
		||||
		eval cmd=\$ip_$intv
 | 
			
		||||
		[ -z "$cmd" ] && eval cmd=\$ifconfig_$intv
 | 
			
		||||
		if [ -n "$cmd" -o -f /etc/ip."$int" -o \
 | 
			
		||||
			-f /etc/ifconfig."$int" -o \
 | 
			
		||||
			-n "$downcmd" -o -f /etc/ifdown."$int" ];
 | 
			
		||||
		then
 | 
			
		||||
			veinfo "$int"
 | 
			
		||||
			runargs /etc/ifdown."$int" "$downcmd"
 | 
			
		||||
			if [ -n "$(command -v ip)" ]; then
 | 
			
		||||
				# We need to do this, otherwise we may
 | 
			
		||||
				# fail to add things correctly on restart
 | 
			
		||||
				ip address flush dev "$int" 2>/dev/null
 | 
			
		||||
			fi
 | 
			
		||||
			ifconfig "$int" down 2>/dev/null
 | 
			
		||||
			ifconfig "$int" destroy 2>/dev/null
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	eoutdent
 | 
			
		||||
	eend 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								init.d/newsyslog.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								init.d/newsyslog.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
required_files="/etc/newsyslog.conf"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after clock
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Creating and/or trimming log files"
 | 
			
		||||
	newsyslog -s $newsyslog_args
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								init.d/nscd.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								init.d/nscd.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
command=/usr/sbin/nscd
 | 
			
		||||
command_args=$nscd_args
 | 
			
		||||
pidfile=/var/run/nscd.pid
 | 
			
		||||
name="Name Service Cache Daemon"
 | 
			
		||||
 | 
			
		||||
extra_started_commands="flush"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need localmount
 | 
			
		||||
	use net dns ldap ypbind
 | 
			
		||||
	after bootmisc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
flush() {
 | 
			
		||||
	ebegin "Flushing $name"
 | 
			
		||||
	nscd -I all >/dev/null
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										50
									
								
								init.d/numlock.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								init.d/numlock.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
description="Turns numlock on for the consoles."
 | 
			
		||||
 | 
			
		||||
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_setleds()
 | 
			
		||||
{
 | 
			
		||||
	[ -z "$1" ] && return 1
 | 
			
		||||
 | 
			
		||||
	local dev=/dev/tty t= i=1 retval=0
 | 
			
		||||
	[ -d /dev/vc ] && dev=/dev/vc/
 | 
			
		||||
 | 
			
		||||
	while [ $i -le $ttyn ]; do
 | 
			
		||||
		setleds -D "$1"num < $dev$i || retval=1
 | 
			
		||||
		: $(( i += 1 ))
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	return $retval
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Enabling numlock on ttys"
 | 
			
		||||
	_setleds +
 | 
			
		||||
	eend $? "Failed to enable numlock"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	yesno $RC_GOINGDOWN && return 0
 | 
			
		||||
 | 
			
		||||
	ebegin "Disabling numlock on ttys"
 | 
			
		||||
	_setleds -
 | 
			
		||||
	eend $? "Failed to disable numlock"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								init.d/osclock.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								init.d/osclock.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2014-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# Can be used on OSs that take care of the clock.
 | 
			
		||||
 | 
			
		||||
description="Provides clock"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	provide clock
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	# This stub function is required to avoid OpenRC warning at boot:
 | 
			
		||||
	#
 | 
			
		||||
	#  * The command variable is undefined.
 | 
			
		||||
	#  * There is nothing for osclock to start.
 | 
			
		||||
	#  * If this is what you intend, please write a start function.
 | 
			
		||||
	#  * This will become a failure in a future release.
 | 
			
		||||
	#
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										66
									
								
								init.d/pf.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								init.d/pf.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
#!@SBINDIR@/openrc-run
 | 
			
		||||
# Copyright (c) 2007-2015 The OpenRC Authors.
 | 
			
		||||
# See the Authors file at the top-level directory of this distribution and
 | 
			
		||||
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
 | 
			
		||||
#
 | 
			
		||||
# This file is part of OpenRC. It is subject to the license terms in
 | 
			
		||||
# the LICENSE file found in the top-level directory of this
 | 
			
		||||
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
 | 
			
		||||
# This file may not be copied, modified, propagated, or distributed
 | 
			
		||||
# except according to the terms contained in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
name="Packet Filter"
 | 
			
		||||
: ${pf_conf:=${pf_rules:-/etc/pf.conf}}
 | 
			
		||||
required_files=$pf_conf
 | 
			
		||||
 | 
			
		||||
extra_commands="checkconfig showstatus"
 | 
			
		||||
extra_started_commands="reload"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Starting $name"
 | 
			
		||||
	if command -v kldload >/dev/null 2>&1; then
 | 
			
		||||
		kldload pf 2>/dev/null
 | 
			
		||||
	fi
 | 
			
		||||
	pfctl -q -F all
 | 
			
		||||
	pfctl -q -f "$pf_conf" $pf_args
 | 
			
		||||
	pfctl -q -e
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Stopping $name"
 | 
			
		||||
	pfctl -q -d
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
checkconfig()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Checking $name configuration"
 | 
			
		||||
	pfctl -n -f "$pf_conf"
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
reload()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Reloading $name rules."
 | 
			
		||||
	pfctl -q -n -f "$pf_conf" && \
 | 
			
		||||
	{
 | 
			
		||||
		# Flush everything but existing state entries that way when
 | 
			
		||||
		# rules are read in, it doesn't break established connections.
 | 
			
		||||
		pfctl -q -Fnat -Fqueue -Frules -FSources -Finfo -FTables -Fosfp
 | 
			
		||||
		pfctl -q -f "$pf_conf" $pf_args
 | 
			
		||||
	}
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
showstatus()
 | 
			
		||||
{
 | 
			
		||||
	pfctl -s info
 | 
			
		||||
}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user