├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── docs ├── about │ ├── announcement.md │ ├── distro.md │ ├── faq.md │ ├── features.md │ ├── history.md │ ├── index.md │ ├── leadership.md │ ├── logo-1.md │ ├── logo-2.md │ ├── logo-3.md │ ├── logo-4.md │ ├── logo-5.md │ ├── logo.md │ └── who.md ├── community │ ├── conduct.md │ ├── events.md │ ├── index.md │ ├── lists.md │ └── videos.md ├── contributing │ ├── docs.md │ ├── gerrit.md │ ├── gerrit01.png │ ├── gerrit02.png │ ├── gerrit03.png │ ├── gerrit04.png │ ├── gerrit05.png │ ├── gerrit06.png │ ├── gerrit07.png │ ├── gerrit08.png │ ├── gerrit09.png │ ├── gerrit10.png │ ├── gerrit11.png │ ├── index.md │ ├── qds.md │ └── quality.md ├── developers │ ├── build.md │ └── flagdays.md ├── images │ ├── build-multibug-diagram.png │ ├── logo.png │ └── logo │ │ ├── BigHighResPhoenixLogotypeRGB.png │ │ ├── BigHighResPhoenixRGB.png │ │ ├── DarkBigHighResPhoenixLogotypeRGB.png │ │ ├── DarkLargePhoenixLogotypeRGB.eps │ │ ├── DarkLargePhoenixLogotypeRGB.svg │ │ ├── DarkMediumPhoenixLogotypeRGB.png │ │ ├── DarkSmallPhoenixLogotypeRGB.eps │ │ ├── DarkSmallPhoenixLogotypeRGB.png │ │ ├── DarkSmallPhoenixLogotypeRGB.svg │ │ ├── DarkSmallerPhoenixLogotypeRGB.png │ │ ├── DarkTinyPhoenixLogotypeRGB.png │ │ ├── Illumos-web-126px.png │ │ ├── Illumos-web-32px.png │ │ ├── Illumos-web-63px.png │ │ ├── Illumos-web-dark-32px.png │ │ ├── Illumos-web-dark-63px.png │ │ ├── Illumos_header.png │ │ ├── LargePhoenixLogotypeRGB.eps │ │ ├── LargePhoenixLogotypeRGB.svg │ │ ├── MediumPhoenixLogotypeRGB.png │ │ ├── Phoenix64x64-RGB.png │ │ ├── PhoenixRGB.eps │ │ ├── PhoenixRGB.png │ │ ├── PhoenixRGB.svg │ │ ├── SmallPhoenixLogotypeRGB.eps │ │ ├── SmallPhoenixLogotypeRGB.png │ │ ├── SmallPhoenixLogotypeRGB.svg │ │ ├── SmallerPhoenixLogotypeRGB.png │ │ └── TinyPhoenixLogotypeRGB.png ├── index.md ├── security │ └── index.md ├── stylesheets │ └── illumos.css └── user-guide │ ├── bugs.md │ ├── debug-apps.md │ ├── debug-systems.md │ └── index.md ├── mkdocs.yml ├── overrides ├── assets │ └── images │ │ ├── favicon.png │ │ └── illumos.svg └── partials │ ├── footer-orig.html │ ├── footer.html │ ├── header-orig.html │ ├── header.html │ ├── nav-orig.html │ └── nav.html └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | site/ 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | TOP = $(PWD) 2 | OUTDIR = $(PWD)/site 3 | 4 | all: 5 | mkdocs build -d "$(OUTDIR)" 6 | 7 | clean: 8 | rm -rf "$(OUTDIR)" 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # illumos.org 2 | 3 | This repository contains markdown for illumos.org. It is written in 4 | [mkdocs](http://www.mkdocs.org). 5 | 6 | We are using a customized version of the 7 | [material](https://squidfunk.github.io/mkdocs-material/) theme. 8 | 9 | ## Contributing 10 | 11 | If you're looking to help out but aren't sure where to start, please have a 12 | look at our [open issues](https://github.com/illumos/docs/issues). 13 | 14 | ## Markdown Formatting 15 | 16 | We have a number of Markdown extensions installed. See the 17 | [mkdocs.yml](https://github.com/illumos/docs/blob/master/mkdocs.yml) file's 18 | `markdown_extensions` section for a list. 19 | 20 | Their documentation can be found [here](https://facelessuser.github.io/pymdown-extensions/extensions/arithmatex/). 21 | 22 | ### Installing mkdocs 23 | 24 | `mkdocs` is written in Python. Please see their 25 | [instructions](http://www.mkdocs.org/#installation) for details, but the short 26 | of it is: 27 | 28 | ``` 29 | pip install mkdocs 30 | pip install mkdocs-material 31 | pip install markdown-include 32 | ``` 33 | 34 | ### Testing changes 35 | 36 | Clone this repo. Create a topic branch. Make your changes. 37 | 38 | Assuming you have `mkdocs` installed, you can simply do `mkdocs serve` to start 39 | a local test server. 40 | 41 | ``` 42 | 19:37:47 cronus:~/src/illumos/docs$ mkdocs serve 43 | INFO - Building documentation... 44 | INFO - Cleaning site directory 45 | [I 180302 19:37:52 server:283] Serving on http://127.0.0.1:8000 46 | [I 180302 19:37:52 handlers:60] Start watching changes 47 | [I 180302 19:37:52 handlers:62] Start detecting changes 48 | ``` 49 | 50 | ### Deploying changes 51 | 52 | Run `mkdocs gh-deploy` from the repository root to deploy to GitHub Pages. The 53 | mkdocs documentation on this command is [here](https://www.mkdocs.org/user-guide/deploying-your-docs/#github-pages). 54 | 55 | ### Submitting changes 56 | 57 | Additions or updates should be submitted via Pull Request. 58 | 59 | If you notice any problems, but don't feel like you want to fix them yourself, 60 | please open an [issue](https://github.com/illumos/docs/issues). 61 | 62 | -------------------------------------------------------------------------------- /docs/about/announcement.md: -------------------------------------------------------------------------------- 1 | # Project Announcement 2 | 3 | ## Introduction 4 | 5 | On August 3, 2010, Garrett D'Amore announced the illumos project, "a community 6 | effort of some core Solaris engineers to create a truly open source Solaris by 7 | swapping closed source bits of OpenSolaris with open implementations." 8 | 9 | In January, 2012, he reflected on [Experiences Starting an Open Source 10 | Operating 11 | System](http://smartos.org/2012/02/02/experiences-starting-an-open-source-operating-system/) 12 | in a talk at SCALE 10x. 13 | 14 | [Garrett's original slides](http://www.illumos.org/attachments/download/3/illumos.pdf) 15 | 16 | ## Transcript 17 | 18 | ``` 19 | OK, everybody. Thank you for joining us. My name is Garrett D'Amore. Hopefully 20 | everyone is hearing this. We had some technology challenges such as, such as it 21 | goes in our industry, and I apologise for the late start but here we are 22 | anyway. 23 | 24 | So Illumos. First off I do want to point out before we get started, that there 25 | is a Q & A window in the Go2 webinar screen and Anil who is helping me out 26 | here, is monitoring that. You can ask questions there and he will forward them 27 | to me. We also have a backchannel on IRC if you go to irc.freenode.net and the 28 | back channel is #illumos. I-L-L-U-M-O-S, and Anil's monitoring that as well, 29 | and he'll let me know if there's pertinent questions I should address. I will 30 | try to address those questions at the end, however. 31 | 32 | [Slide 1, 1:06] 33 | 34 | So, without further adieu, let's go ahead and continue. So, thanks for joining 35 | us. I think that the topic there on the first page slide, hopefully everybody 36 | sees it. By the way if you aren't able to see the slides now, we will be 37 | posting them up, excuse me Anil have you already posted those? Ok, so Anil with 38 | post them momentarily. So, hopefully you can get them, and they'll be on the 39 | website at www.illumos.org. Just looking at that font on the slide, and realize 40 | the "I" really doesn't stand out vary differently from the "L." I apologize for 41 | that, it's I-L-L. And our topic is "Hope and Light Springs Anew." 42 | 43 | So, the name... well first off I hope everyone understands that this 44 | presentation is targeted towards the OpenSolaris audience so I didn't really go 45 | into a lot of background there. It will become clear as we go on. If you are 46 | here asking about Windows or something else you're probably in the wrong 47 | conference call. 48 | 49 | [Slide 2, 2:19] 50 | 51 | So what's in a name? First "Illum" from Latin for "Light" and "OS" for 52 | "Operating System." However even though I printed it out this way on the slide, 53 | now we've been spelling it all one word with any unusual spellings, so 54 | I-L-L-U-M-O-S, with only the "I" capitalized. 55 | 56 | [Slide 3, 2:41] 57 | 58 | So, actually what is this project about? Well the first thing is that the 59 | project is designed here to solve a key problem, and that is that not all of 60 | OpenSolaris is really open source. And there's a lot of other potential 61 | concerns in the community, but this one is really kind of a core one, and from 62 | solving this, I think a lot of other issues can be solved. So the critical 63 | components of OpenSolaris. Well, first off I guess I should say that most of 64 | the important parts of OpenSolaris are, for booting at least and for building a 65 | foundation block for the OS/Net consolidation, out of that consolidation it's 66 | nearly completely open source, except for a few pieces. One of the most 67 | striking pieces is this part called "libc-i18n," which is a component you need 68 | to build a working C library. It's a substantial percentage of libc is tied up 69 | in that libc-i18n, in some cases because it's i18n code, in other cases because 70 | of dependencies and well dependencies is probably the best way to put it. 71 | 72 | The NFS lock manager, of course, there's the crypto framework, a number of 73 | really important drivers. mpt I listed here is a pretty famous one its for a 74 | pretty popular series of HBAs from LSI. But there's a lot of other drivers that 75 | are closed source, and in fact even some key platform code, although that's for 76 | the most port an issue for the SPARC port. Most of the critical platform code 77 | for x86 is open, in fact I can't think of anything critical that's closed. 78 | This list is by no means exhaustive, but it's a good start. 79 | 80 | So the problem with the fact that not all of this source is open is that it 81 | really does present some big challenges to anyone downstream or who depends on 82 | OS/Net or consequently OpenSolaris and of course this involves Nexenta, 83 | Belinux, Schillix these are all derivative distributions from the original 84 | source from Oracle. And this problem is not new to the industry; some years ago 85 | Apple had done the community a great favor by opening a bunch of their code in 86 | the form of Darwin. However I think you can Google around for MacOS X and 87 | Darwin and see the end result of that. And that is, the end result, I think, 88 | that we would all like to avoid. 89 | 90 | [Slide 4, 5:32] 91 | 92 | So there's a lot of good stuff, with all the other issues going on with the 93 | community that's built up around the code. First off there's technology in 94 | the code, zfs, dtrace, crossbow, zones, I think everyone who's familiar with 95 | OpenSolaris will recognize this stuff, and if you don't, Google will readily 96 | fill you in with lots and lots of detail on all of these technologies, and this 97 | is just a brief list of some of the big names. There's a lot of others beyond 98 | this. And of course the community behind these technologies is made up of a 99 | number of just incredible engineers, I've been fortunate to work with some of 100 | the brightest people on the planet, I believe, on Solaris and SunOS code. And 101 | we are also backed by an outstanding set of enthusiasts, and our eco-system 102 | really is quite vibrant, particularly in light of some of the other challenges 103 | it continues to be so vibrant. This I think says a lot. And of course the other 104 | thing is that it's not all closed. In fact, the vast majority of the code is 105 | indeed open. So the problem of, the problem faced to resolve this is actually 106 | quite tractable. 107 | 108 | [Slide 5, 7:06] 109 | 110 | Technology issues, there it goes, alright. I apologise. OK. So around this 111 | effort. I talked a little about the issue of the code. To elaborate a little 112 | bit further, what we've done is taken OS/Net, this consolidation which really 113 | makes up the kernel and a bunch of critical system utilities and made a child 114 | of it, and this is really a source code management type term but what it means 115 | is that it has an ancestry relationship with the upstream which in this case is 116 | the code from Oracle, and we track the upstream very closely, and we also have 117 | the goal of being 100% compatible with the code from Oracle. I say ABI 118 | compatible, what that means is that the idea is that you can take an 119 | application that is compiled and runs well on Solaris, and the same exact 120 | application compiles and runs on Illumos, so that is an important point. 121 | 122 | We also, the idea is no closed code. There's a fully open libc, I would want to 123 | have a fully open kernel, and fully open drivers. As you'll see we are not all 124 | the way there yet but we made really good progress, and continue to work on 125 | this. The other idea is that this project then becomes a repository where we 126 | can take changes from contributors that for a variety of reasons might be 127 | unacceptable to Oracle, and I can detail all those later, maybe in Q & A or 128 | maybe separately. There's a lot of potential possibilities here, and as long as 129 | we don't really break the idea of ABI compatibility with Solaris and we don't 130 | diverge needlessly from the upstream ON consolidation, there's a lot of room 131 | for innovation. 132 | 133 | [Slide 6, 9:19] 134 | 135 | So the focus of Illumos is really ON right now, OS/Net, that's that core 136 | consolidation that I talked about. But one of the ideas is that this also can 137 | then ultimately build a community that can act as an umbrella for these other 138 | projects, and other pieces, that become interesting, once you solve this 139 | critical problem of that core foundation. X11, which is basically the graphical 140 | windowing system. The desktop components. The C runtime. Some of the 141 | distributions. And there is potentially a lot of ways which people can 142 | innovate, and contribute. Which unfortunately, in the current community is 143 | quite difficult to do. We hope that we can become a lot more of a facilitator 144 | in that kind of development and collaboration. 145 | 146 | [Slide 7, 10:16] 147 | 148 | So, around this, we hope to build a community. And, I think we actually have 149 | really started one pretty strongly, from the people who have already either 150 | agreed to participate or are participating. And this community stands 151 | independently from the OpenSolaris community. What that means is that we own 152 | our own identity, and we can't be shut down, and we're not slaves to any 153 | corporate master. And even though Nexenta is a major sponsor, and I'm very 154 | grateful that Nexenta is. They're my employer, and they are funding my time on 155 | this. But the identity and the project, is owned by the community. And that 156 | means we're governed and run by the community. On that topic, I have a few 157 | bullet points there about our resources being distributed, the fact that we're 158 | going to basically run this as a Meritocracy, with a light hand on governance, 159 | which is one of the areas we think we can improve upon from the previous 160 | attempts. 161 | 162 | [Slide 8, 11:28] 163 | 164 | So there's a large number of people. I started the project, so I guess I'm the 165 | de facto "leader". But you know, there's actually quite a - it was a dozen when 166 | I wrote this, it's probably grown since then. This project started out with 167 | just a few developers, that I wanted have real focus on just getting the code 168 | done. Without engaging in a lot of conversation. Even with that small, focused 169 | group, it's already still growing. And now, today, as of right this minute, we 170 | hope to engage a much much broader audience. A we hope to invite, all of you - 171 | actually we do invite all of you. So come join us. In this presentation you'll 172 | see there's a website you can join, there's mailing lists you can join. A 173 | number of the community leaders, a lot of whom you will be familiar with, if 174 | you're already a part of this group. In fact, hang on just a minute. Some of 175 | them are on this call. And actually we have a couple who have agreed to speak. 176 | I'd like to tie in one. Anil's checking on it for me. Just a minute. 177 | 178 | [12:48] 179 | 180 | Simon, we're going to go ahead and un-mute your mic. Are you available to talk? 181 | Ok, great. So Simon Phipps is one of the - he didn't start out as an existing 182 | core member. But he's agreed to help us out, and as you'll see later, he's 183 | agreed to take a role in this, and I'm hoping that Simon has some good things 184 | to say. 185 | 186 | ** Hi Garrett. 187 | 188 | ** Simon Phipps, maybe not the best introduction. 189 | 190 | ** I'm very pleased that you're doing this, Garrett. You know I've seen a 191 | project like this before, when we started OpenJDK there was some concern, that 192 | Sun wasn't going to get around to opening all of the Java code, so some 193 | community members got together and formed a project called "IcedTea", which was 194 | downstream of OpenJDK, but to which people could innovate and could fix the 195 | non-free parts of OpenJDK. It was the existence of that project, that made 196 | OpenJDK a fully free project, and led to it having the existence beyond the 197 | sponsorship that Sun put into it. I'm looking at Illumos at the moment, and I 198 | think it's exactly the right step to take. It's good that it's downstream of 199 | Oracle. If they choose to use it, it could do a great deal of good to their 200 | Solaris products. If they choose not to use it, then it's a great place for the 201 | community to assemble, and give a future to Solaris. 202 | 203 | ** Ok. Great. And thanks for your support. That was Simon Phipps. Simon 204 | currently sits on the board for the Open Source Initiative. I think that's 205 | correct, is that correct, Simon? 206 | 207 | ** That's correct. I'm on the board of directors of OSI, the Open Source 208 | Initiative. At the moment, while we still have one, I'm a member of the 209 | OpenSolaris Governing Board, as well. 210 | 211 | ** Ok. And he also writes for Computer World UK. I'm sure you can find his 212 | blog pretty easily. Thank you very much Simon. Let's go ahead and move along. 213 | One of the points that's on there, before I switch to the next slide, is that I 214 | believe that we actually do already have critical mass to drive this project 215 | forward. That's one of the real challenges for a project like this. The 216 | codebase, when you look at the size of OS/Net, is quite enormous, but the 217 | number of people, and people who are actual do-ers rather than talk-ers, who 218 | are involved and interested and engaged, already, is - I'm actually astounded, 219 | and thrilled to have such a - frankly an illustrious group of contributors 220 | involved. I have great hope. Moving forward. 221 | 222 | [Slide 9, 15:50] 223 | 224 | We have quite a few community partners. Of course, Nexenta is one of these, and 225 | there's a number of these names that you will recognise, if you're familiar 226 | with the OpenSolaris community. Google is great at filling each one of these 227 | out. I'm not going to present all of them to you. But I'm really pleased that a 228 | former colleague of mine at Oracle, is with us, and he has taken a position as 229 | Vice President of Engineering at Joyent. Hopefully he's on the line. His name 230 | is Brian Cantrill. He's one of the co-creators of DTrace as I understand it. 231 | Can we un-mute his mic? We're having some technical issues here, hopefully 232 | we'll get Brian in, in a few minutes. In the meantime, I'm going to go ahead 233 | and move on. 234 | 235 | [Slide 10, 16:52] 236 | 237 | The 800 pound gorilla. This is the question that is probably on a lot of 238 | people's minds. The 800 pound gorilla being that company that bought former 239 | owner of the Intellectual Property behind most of OpenSolaris, Oracle. The 240 | interactions here, it's really important that we understand what these 241 | interactions are, and what they're intended to be. The first of these is that 242 | Illumos is not a competitor to Solaris. Neither to OpenSolaris. In fact, I have 243 | personally invited Oracle to participate as a peer, although they don't get to 244 | own it, we would love to have their participation. To the extent that they are 245 | allowed to, per whatever arrangements they have with Oracle, welcome the 246 | individual employees of Oracle, to participate here as well. We'd love to have 247 | a collaborative and cooperative relationship with Oracle. Just as with any of 248 | our other corporate partners. From that slide I just had, you can see a few. 249 | That slide, by the way, is by no means complete. I hope that it will not be the 250 | end statement, either. But we're not going to depend on them. I'm being told 251 | now that Brian is available, so I'm going to go ahead and switch back to Brian. 252 | 253 | [18:12] 254 | 255 | ** Hey Garrett. This is terrific news. A great development 256 | for the OpenSolaris community. Looking back, historically, I think we at Sun (I 257 | should say 'they' now I guess) - I think that Sun understood the importance of 258 | the right to fork the operating system, but I think we've underestimated the 259 | importance of the power to fork the operating system. As you know, as we all 260 | know, we never quite made it to 100% of the source. And what that, effectively, 261 | forbid - not explicitly, I mean we didn't do it by design - but because there 262 | were these encumbrances that didn't allow us to open source elements of the 263 | operating system, it effectively did not allow for a fork. A fork is a really 264 | important check against an open source project. A fork is what allows people to 265 | innovate. A fork is what allows people to not get hung up on governance models. 266 | It allows them to express their independence from a project. Whilst people had 267 | the right, strictly speaking, they didn't have the power, because it was not 268 | all open source. Today is a really critical development. It is giving all of 269 | us, in the community, the power to fork the system. Not that we want to 270 | actually exercise that power in a way that is divisive, but we need to be able 271 | to exercise that power in a way that is innovative. I think that is going to 272 | allow many of us - now speaking as Joyent - many of us in the community who 273 | depend on the innovations in this system for the value that we bring to our 274 | customers, it is going to allow all of us to begin to differentiate ourselves 275 | in the marketplace, it's going to allow all of us to be able to really innovate 276 | to the operating system, and allows us all to collaborate. I think that, 277 | speaking for Joyent, we have modifications to the system that we have not been 278 | able to integrate for a variety of reasons. We believe with Illumos - with the 279 | Illumos project - that we will be able to begin to integrate some of these 280 | modifications. Many of them, of course, are small - bugfixes and so on. But 281 | things that for a variety of reasons couldn't be taken further upstream. I, 282 | personally, and we, Joyent, are thrilled. This is a tremendous, tremendous 283 | development. Garrett, you and your team, are to be commended for some very 284 | difficult technical work. To be clear, we are not completely out of the woods 285 | yet. We boot. That's good. But we got work ahead of us. Collectively. As a 286 | community. To get to a vibrant base, that will allow for innovation. I'm much 287 | more confident now, than I have been at any time in the last five years, that 288 | we're going to get there as a community. So, very exciting development, and I 289 | think you see the number of people that are on Freenode. A lot of folks are 290 | interested in this. I think for us as a community it's a real reboot. We owe 291 | our debt of gratitude to Garrett and the Illumos project. 292 | 293 | [21:44] 294 | 295 | ** Thank you very much, Brian. I'm very, very pleased that you and the 296 | rest of the crew at Joyent are going to be able to join us, and collaborate to 297 | expand upon the great work that is already part of SunOS base. With that, I'm 298 | going to go ahead and switch back, because I want to keep moving ahead. On this 299 | one slide, the 800 pound gorilla. So I think that this idea that Brian really 300 | hit on, is that we have the power to fork. We are not a fork, but what we do is 301 | we represent the ability of the community to do that. That's key. 302 | 303 | [Slide 11, 22:30] 304 | 305 | In fact, here's my top slide on that. What if the tap is turned off? What if, 306 | the upstream, ceases to be cooperative, or just goes away. For a lot of 307 | reasons, I don't think that's going to happen. Even if the community around 308 | that code-base were to be abandoned, or shut down - or even change it's 309 | character in a way that it might be hard to recognise it, the code-base, I 310 | expect personally, for that to remain available. That code that is already 311 | available, and for it to continue to be updated, on some level of frequency. 312 | But in the event, that it were to go away, we believe that with the developers 313 | we have, and especially, the growing ecosystem that already just on day one 314 | here, seems to be exploding. I think we have critical mass to continue to 315 | sustain it. As I said, I'm thrilled that Joyent, and there is a bunch of other 316 | people, are a part of that. Of course, if this happens, then we - by definition 317 | - become a fork. We are not a fork today, because of the way we track OS/Net. 318 | In my mind, in a classical sense, a fork starts from the starting point, and 319 | moves away, and becomes something else. So we're more like a project that - 320 | we're going to continue to try to work closely with Oracle. As I think that 321 | Brian talked about, really the idea is that Illumos is the insurance that the 322 | entire community needs, against this sort of scenario of what happens if the 323 | tap is turned off. 324 | 325 | [Slide 12, 24:14] 326 | 327 | What are some of the major goals of this project. I think we've already talked 328 | about some of these. We want to be a self-hosting SunOS derivative. We're not 329 | quite there yet, but we're getting there. We've made good strides. Fully open 330 | source, of course. That's kind of, I think, a key thing. I already touched on 331 | the 100% ABI compatibility with Solaris. So, for those who are listening in, 332 | and aren't familiar with the acronym ABI, that's Application Binary 333 | Interface, and really what it means, is that your existing applications work 334 | without being recompiled. This next, fourth bullet point, I haven't touched on 335 | it today, and it's really key. Probably it deserves a little bit of discussion. 336 | That is, that we want the things that we put into Illumos to be usable by 337 | Oracle. To be able to be taken back into the upstream code from Oracle. This is 338 | part of the - we're not a fork today. Working and collaborate in a 339 | collaborative relationship with Oracle. So there's a bunch of other 340 | consequences that fall out of this. But the key thing is that the code that 341 | integrates into Illumos really should be - it should be reasonable for somebody 342 | to integrate that back into the Oracle code base. If whatever political or 343 | business goals, that were preventing that, were removed. Of course, we don't 344 | want to have any corporate dependencies on the Illumos project. I think I've 345 | already talked about this. This last bullet point, the basis for other 346 | distributions. For people not familiar with the way OpenSolaris distributions 347 | are built today, there is typically this bottom piece, called ON. And there is 348 | a bunch of other pieces, that are put together, and then these are all 349 | constructed together, to create a full operating system. And there's a number 350 | of distributions besides the one that Oracle creates, called OpenSolaris. 351 | There's Schillix, there's Belenix, and of course, my favourite, Nexenta. This 352 | is just a few of them. There's quite a few others. MilaX, EON, and we haven't 353 | talked to all of the people producing these distributions, but at least the 354 | ones that we have talked to are already engaged in looking at Illumos as their 355 | future base line. So they're participating. I'm going to make a brief note 356 | here, there is another individual who is a part of the Illumos developer 357 | community, who's also working on a completely open, community driven, version 358 | of the distribution, formerly known as Indiana. I'm not going to say anything 359 | more about that, because that would be stealing his thunder. Hopefully, you'll 360 | hear more from him in the coming days or weeks. 361 | 362 | [Slide 13, 27:10] 363 | 364 | A little bit here about how the project is organised. Basically, we're going to 365 | have two groups, one group is this notion of administrative council, that 366 | basically handles non-technical matters. So resource management. We do have 367 | servers, we have mailing lists. There is probably matters of evangelism and 368 | marketing and all these others things that happen. We wanted to separate the 369 | technical from the non-technical. So the people focused on the code, and 370 | getting things done, didn't have to be bothered by the day-to-day running of 371 | the details. Likewise, the people running the day-to-day details don't have to 372 | be all-star developers. Initially, I'm the chairman. It's a benevolent 373 | dictatorship until we come up with some other form of rule that works. The idea 374 | is to make this as much as possible, reasonable consensus driven, although 375 | there will be a smaller group, that actually runs the administrative council. I 376 | have already appointed a few members, that may change. Hopefully they will 377 | select some additional members, to fill out their own ranks. The idea is a 378 | meritocracy, the people who are actually helping to do things, rather than just 379 | people who want to stand up and claim credit. 380 | 381 | [Slide 14, 28:35] 382 | 383 | The other half of this is the developer council. I had a little tie-in from a 384 | joke here. A community member actually, had a nice tagline here, his name is 385 | Matthew, you'll see him on IRC as lewellyn. His line was "if you have a 386 | polarising issue, the first thing you have to work out if it's AC or DC". 387 | Thanks to lewellyn for that little tid-bit. It's, again a benevolent 388 | dictatorship, and I'm going to take the role as tech lead on the project. I'll 389 | probably keep that lead, longer than I will the leadership in the other side, 390 | because I really do view myself as a technical individual. Again, the initial 391 | members will be appointed. The idea is that this really made up of the 392 | developers who have the ability and - not just the ability - but the right to 393 | commit, and a consensus driven meritocracy. My hope is that as tech lead, I 394 | help define direction, but I only get involved in arbitration if no other 395 | alternative, solution can be arrived at via consensus. 396 | 397 | [29:55] 398 | 399 | I'm seeing something on my UI here that says that we may be having network 400 | trouble. Can somebody indicate on the IRC channel, am I coming across clearly? 401 | Ok. Anil's giving the thumbs up. So I'm going to keep going. Maybe it's not too 402 | bad. 403 | 404 | [Slide 15, 30:10] 405 | 406 | Rules for integration. This is getting down to the nuts and bolts of how we 407 | expect to operate. As I think I already mentioned, again ON here is OS/Net. 408 | That's that consolidation from the upstream. We have the same kind of 409 | guidelines. You still gotta pass your cstyle, lint, you know, test your code, 410 | have it reviewed, so forth. We do have some license restrictions, and really 411 | these have a lot to do with this goal of making it easy for Oracle to take our 412 | code and re-integrate it back into the upstream. 413 | ``` 414 | 415 | ## Credits 416 | 417 | * Brian Bienvenu (taemun) 418 | * A. Hettinger (oninoshiko) 419 | -------------------------------------------------------------------------------- /docs/about/distro.md: -------------------------------------------------------------------------------- 1 | # illumos Distributions 2 | 3 | ## Introduction 4 | 5 | Similar to other operating systems, there are many different OS distributions 6 | based on the common illumos ecosystem. 7 | 8 | Some distributions are maintained by enthusiasts, while others are primarily 9 | developed by companies with their own priorities and focus. 10 | 11 | ## Comparison 12 | 13 | All illumos-derived systems should include our [common 14 | technologies](features.md). 15 | 16 | Not all distributions have the latest features, or support all hardware 17 | platforms. 18 | 19 | For major feature differences, the following chart may be helpful. 20 | 21 | | Project | Provider | Focus | Linux Comparison | Open Source | Packaging | x86 | SPARC | KVM | LX | 22 | |------------------------------------------------|------------------------------------------------------------------|----------------------|------------------|-------------------------------------|-------------------------------------|-------------------------------------|-------------------------------------|-------------------------------------|-------------------------------------| 23 | | [OmniOS CE](https://www.omniosce.org/) | [OmniOS Community Association](https://omniosce.org/about/about) | Servers | Debian | check | IPS | check | | check | check | 24 | | [OpenIndiana](https://www.openindiana.org/) | [OpenIndiana](https://www.openindiana.org/) | Workstation, Servers | Ubuntu | check | IPS | check | | check | | 25 | | [SmartOS](https://smartos.org) | [MNX Solutions](https://mnxsolutions.com/) | Hypervisor | CoreOS | check | [pkgsrc](https://pkgsrc.smartos.org) | check | | check | check | 26 | | [NexenStor](https://community.nexenta.com/s/) | [Nexenta](https://nexenta.com/) | Storage | | | APT | check | | | | 27 | | [Tribblix](http://www.tribblix.org/) | Peter Tribble | Workstation, Servers | Slackware | check | SVR4 | check | check | | check | 28 | | [DilOS](http://www.dilos.org/) | igork | Workstation, Servers | | check | APT | check | check | check | check | 29 | | [XStreamOS](http://www.sonicle.com/xstreamos/) | [Sonicle](http://www.sonicle.com/) | Server | | check | | check | | | | 30 | | [v9os](http://www.milax.fi/v9os.html) | [MilaX](http://www.milax.fi/) | Server | | check | IPS | | check | | | 31 | | [Danube Cloud](https://danube.cloud) | [Danube Cloud Community](https://github.com/erigones/esdc-ce) | Hypervisor | Proxmox | check | [pkgsrc](https://pkgsrc.smartos.org) | check | | check | check | 32 | -------------------------------------------------------------------------------- /docs/about/faq.md: -------------------------------------------------------------------------------- 1 | ## Quick Links 2 | 3 | * [Manual pages](https://illumos.org/man) 4 | * [Mailing lists](../community/lists.md) 5 | * [Bug reporting](../user-guide/bugs.md) 6 | 7 | ## What is the objective of the illumos project? 8 | 9 | illumos is a fully open community project to develop a reliable and scalable 10 | operating system. It began as a fork of the former 11 | [OpenSolaris](https://en.wikipedia.org/wiki/OpenSolaris) operating system. 12 | 13 | Our goal is to foster open development of technologies for the 21st century 14 | while building on a twenty-year heritage, but free from the oversight of a 15 | single corporate entity and the resulting challenges thereof. 16 | 17 | While our code base has a long history and many engineering traditions attached 18 | to it, our development processes are being reinvented in an attempt to remove 19 | barriers while maintaining consistently high code quality. 20 | 21 | ## How do I download the software? 22 | 23 | The source code developed by the project is a fork of the Sun/Oracle code base 24 | referred to as "OS/Net" or "ON" (short for Operating System/Networking). It is 25 | the home of the technologies that previously defined OpenSolaris and Solaris, 26 | such as the kernel, network stack, filesystems, and device drivers, and all of 27 | the basic userland libraries and applications. 28 | 29 | The illumos code base forms the foundation of [distributions](distro.md). 30 | To use the operating system, just download and install one of the 31 | distributions. 32 | 33 | To download the source code, review [Building illumos](../developers/build.md). 34 | You can also [browse on GitHub](https://github.com/illumos/illumos-gate) or 35 | [search on OpenGrok](http://src.illumos.org). 36 | 37 | ## Is illumos free software (open source)? 38 | 39 | The bulk of the illumos source code is available under the [Common Development 40 | and Distribution License (CDDL)](https://illumos.org/license/CDDL), an 41 | OSI-approved free software license based on the Mozilla Public License (MPL). 42 | 43 | There are some components with other licenses including BSD and MIT. We also 44 | include some software with the GNU General Public License (GPL) or the 45 | Lesser/Library General Public License (LGPL). 46 | 47 | There still remain some binary-only, closed source components that we inherited 48 | from Oracle which we are working to replace. Unlike OpenSolaris, we do not 49 | require a closed source compiler. 50 | 51 | ## Is illumos a community project? 52 | 53 | Yes! 54 | 55 | Multiple community groups and interests (including people like you!) are 56 | stakeholders in the project, and anyone and everyone is welcome to 57 | [contribute](../contributing/index.md). 58 | 59 | illumos was initiated by then-employees of Nexenta in collaboration with former 60 | OpenSolaris community members and volunteers. While companies including 61 | Nexenta, Joyent, and Delphix sponsor some of the work in illumos, the project 62 | is independent of their business decisions. illumos exists as a common base for 63 | multiple commercial and community distributions. 64 | 65 | ## How do I start contributing? 66 | 67 | illumos thrives on the efforts of its contributors. Have a look at the guide on 68 | [How To Contribute](../contributing/index.md) if you want to submit code. 69 | 70 | If you want to help in other ways then have a look at the [Mailing 71 | Lists](../community/lists.md). 72 | 73 | Most of the developers can be found on [IRC](../community/index.md#irc-channels) 74 | and you're invited to drop in and say "hi!" 75 | 76 | ## How do I build illumos? 77 | 78 | See [Building illumos](../developers/build.md). 79 | 80 | ## How do I build a distribution based on illumos? 81 | 82 | OpenSolaris was historically difficult to build as a distribution because it 83 | was assembled by many separate teams at Sun. The illumos community 84 | distributions are working to make this easier. 85 | 86 | Some distributions have 87 | [documented](https://www.omniosce.org/dev/build_instructions.html) their build 88 | processes. 89 | 90 | ## Is illumos compatible with Solaris/OpenSolaris? 91 | 92 | illumos should run binaries and probably even kernel drivers from Solaris 10 93 | update 10 and earlier, reflecting our strong commitment to backwards 94 | compatibility and interface stability. 95 | 96 | More recent versions of Solaris, especially Solaris 11, are not considered 97 | compatible -- even if they sometimes seem to be! Oracle develops Solaris 11 as 98 | a proprietary fork of OpenSolaris, and has been diverging from illumos for 99 | nearly a decade at this point. 100 | 101 | If you're building and testing software for Oracle Solaris, you need to do that 102 | on a Solaris system. Oracle now make available a Common Build Environment 103 | (CBE) image of Solaris 11 specifically for use in open source continuous 104 | integration environments. 105 | 106 | ## What changes does illumos maintain? 107 | 108 | * Open internationalization libraries and data files. 109 | * Open replacements for closed binaries. 110 | * Community enhancements to critical technologies like DTrace and ZFS. 111 | * New open technologies. 112 | * Patches/bug-fixes we have independently developed, including security fixes. 113 | * Changes to ease community development. 114 | * ...and more! 115 | 116 | ## And the name illumos? 117 | 118 | We started off with the codename "FreeON", and later realized it is used by an 119 | existing project. We finally settled on illumos, after many hours of 120 | suggestions and counter-suggestions. illumos (pronounced i-llu-MOS and written 121 | in lowercase) ties in with Sun and light. It's the closest to ON we could get! 122 | -------------------------------------------------------------------------------- /docs/about/features.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | illumos provides a number of advanced features for downstream distributions and 4 | users to utilize. 5 | 6 | ### OpenZFS 7 | 8 | The illumos project is part of the community of operating system projects that 9 | ships [OpenZFS](http://open-zfs.org/). 10 | 11 | ZFS provides excellent data integrity, performance, flexibility and 12 | ease-of-use you simply can't find in other file systems. ZFS combines 13 | traditional concepts like volume management, and file systems with a pooled 14 | storage that does for disks what virtual memory did for RAM. 15 | 16 | ZFS was developed at Sun Microsystems in the early 2000s and released as open 17 | source in 2005 as part of the OpenSolaris project. OpenZFS was announced in 18 | 2013. For a more detailed history, please see [OpenZFS 19 | History](http://open-zfs.org/wiki/History). 20 | 21 | ZFS allows you to: 22 | 23 | * Group devices into a single storage pool with various redundancy characteristics 24 | * Create tiered storage with log and cache devices 25 | * Create read-only atomic file system snapshots 26 | * Create writable clones of snapshots 27 | * Send snapshots as a byte stream -- which you can redirect to a file, or send across the network! 28 | * Dynamically modify dataset (file system) attributes 29 | * Delegate dataset management to non-root users or groups 30 | 31 | ZFS includes online checksumming of every block, on-demand scrubbing of disks, 32 | and -- in redundant configurations -- self-healing of bad data with good. 33 | 34 | ZFS has been ported to [Linux](http://zfsonlinux.org/), 35 | [FreeBSD](https://www.freebsd.org/doc/handbook/zfs.html), [OS 36 | X](https://openzfsonosx.org/) -- and a [Windows 37 | port](https://github.com/openzfsonwindows/ZFSin) is in progress as of late 38 | 2017! 39 | 40 | ### Virtualization 41 | 42 | illumos includes a number of virtualization technologies, including: 43 | 44 | - Zones, a light weight operating system-level virtualization; analogous 45 | to "jails" or "containers" as provided by other systems 46 | - Hardware virtualization 47 | 48 | #### Native Zones 49 | 50 | Native zones provide an isolated illumos environment to run your applications 51 | in, like having a virtual machine without the hypervisor overhead. 52 | 53 | #### LX (Linux Emulation) 54 | 55 | LX-branded zones provide the Linux system call interface, allowing you to run 56 | most Linux application binaries without recompiling them for illumos. This 57 | facility is available in several illumos distributions, including SmartOS and 58 | OmniOS. 59 | 60 | #### KVM 61 | 62 | KVM and QEMU were ported to illumos in 2011, and can be used on Intel CPUs 63 | with VMX and EPT support. 64 | 65 | #### bhyve 66 | 67 | Joyent is in the process of porting the bhyve hypervisor from FreeBSD to 68 | illumos. The port is available in at least the SmartOS and OmniOS 69 | distributions. 70 | 71 | ### Introspection and Debugging 72 | 73 | #### DTrace 74 | 75 | DTrace allows for system-wide tracing of a kernel for debugging applications and 76 | the operating system, as well as gathering profiling data. DTrace along with MDB 77 | allows you to leverage [CTF data](https://illumos.org/man/4/ctf) to inspect 78 | userland and kernel structures. 79 | 80 | #### Modular Debugger (MDB) 81 | 82 | MDB, the illumos modular debugger, allows you to inspect running processes, 83 | core files, kernel state, and kernel crash dumps. 84 | [KMDB](https://illumos.org/man/1/kmdb) also allows controlling the execution of 85 | a running kernel. 86 | 87 | ### Service Management Facility (SMF) 88 | 89 | [SMF](https://illumos.org/man/5/smf) helps administrators manage services 90 | running on the system. SMF can take care of tracking service dependencies, 91 | supervising and restarting processes, disabling perpetually crashing 92 | applications, and more. 93 | 94 | ### Firewall 95 | 96 | illumos uses [ipfilter](https://illumos.org/man/5/ipfilter) for firewalling. 97 | Using ipfilter you can create firewalls not just for the host system, but also 98 | for zones and hardware virtualized systems. 99 | 100 | ### Virtual Networking 101 | 102 | [dladm(8)](https://illumos.org/man/8/dladm) allows users to create Virtual 103 | NICs, bridges, and in some distributions [overlay 104 | networks](https://smartos.org/man/7/overlay). 105 | -------------------------------------------------------------------------------- /docs/about/history.md: -------------------------------------------------------------------------------- 1 | # A Brief History of Everything^WUNIX 2 | 3 | In the Second Age of Computing, the UNIX operating system emerged, in pieces, 4 | from the minds of Ken Thompson, Dennis Ritchie, Doug McIllroy and bright sparks 5 | from AT&Ts Bell Labs. 6 | 7 | From there, the river 8 | [diverges](https://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg) 9 | almost as much as our metaphors. However, the forks we care about start with 10 | BSD and System V UNIX R4, which begat SunOS and Solaris. Other documents detail 11 | this history in greater depth (and to a large degree they do not necessarily 12 | concern us.) 13 | 14 | In 2005 Sun Microsystems released Solaris 10 which contains several truly 15 | innovative features we continue to rely on to this day. Just as importantly, 16 | however, Sun also open-sourced the operating system as OpenSolaris. While there 17 | were a few governance missteps along the way, it was a bold move. 18 | 19 | If you're interested in the history of OpenSolaris, Jim Grisanzio has [written 20 | an in-depth piece on it](https://jimgrisanzio.wordpress.com/opensolaris/). 21 | 22 | In 2010 Oracle acquired Sun, and [silently closed the 23 | gate](https://web.archive.org/web/20170904093634/http://sstallion.blogspot.nl/2010/08/opensolaris-is-dead.html). 24 | The source code was no longer updated, communications to the open source 25 | community stopped. OpenSolaris was effectively dead. 26 | 27 | From this, however, project founder Garrett D'Amore took the last drop of the 28 | gate and [announced illumos](announcement.md) in mid-2010. 29 | 30 | For a longer, more flavorful description of Solaris and illumos history, Bryan 31 | Cantrill's [Fork Yeah! The Rise and Development of 32 | illumos](https://www.youtube.com/watch?v=-zRN7XLCRhc) talk from USENIX LISA 33 | 2011 should be considered required viewing. (Note: Potentially not suitable for 34 | minors.) 35 | 36 | Since 2010, a number of companies have built their businesses around illumos, 37 | or are running on one of the distributions built from it. For a very incomplete 38 | list, please see [who is using illumos](who.md). 39 | -------------------------------------------------------------------------------- /docs/about/index.md: -------------------------------------------------------------------------------- 1 | # What is illumos? 2 | 3 | To quote the [illumos Developer's Guide](https://illumos.org/books/dev/): 4 | 5 | !!! note "" 6 | illumos is a consolidation of software that forms the core of an Operating 7 | System. It includes the kernel, device drivers, core system libraries, and 8 | utilities. It is the home of many technologies including ZFS, DTrace, Zones, 9 | CTF, FMA, and more. We pride ourselves on having a stable, highly 10 | observable, and technologically different system. In addition, illumos 11 | traces it roots back through Sun Microsystems to the original releases of 12 | UNIX and BSD. 13 | 14 | illumos itself does not offer an OS distribution -- rather, it is the core from 15 | which [distributions](distro.md) can be created. In this sense, illumos is 16 | similar to a BSD source tree, or Linux's kernel.org. 17 | 18 | Please see the [history page](history.md) for more information about the 19 | origins of illumos. 20 | 21 | ### License 22 | 23 | illumos is available under the [Common Development and Distribution License 24 | (CDDL)](https://illumos.org/license/CDDL). 25 | 26 | ### Community Values 27 | 28 | * Empathy for users as a core engineering value 29 | * Maintaining code quality through peer review 30 | 31 | ### Technology Features 32 | 33 | The following are shared development tenets and features for distributions 34 | utilizing illumos: 35 | 36 | * Stability 37 | * SMP support for many CPUs 38 | * Security facilities like Role-based Access Control (RBAC) and Privileges 39 | * Multi-tenancy with Zones 40 | * Deep system introspection with [DTrace](http://dtrace.org/guide/) 41 | * A unified Fault Management Architecture (FMA) for monitoring hardware 42 | * Network virtualization with Crossbow 43 | * Hardware virtualization with KVM 44 | * [Excellent manual pages](https://illumos.org/man/) 45 | * [Source code for the entire system](https://github.com/illumos/illumos-gate) 46 | 47 | For more in-depth descriptions, please see the [features page](features.md). 48 | 49 | ### Uses for illumos 50 | 51 | While it can be and is used in nearly any situation where a UNIX-type server is 52 | needed, illumos excels at storage applications, large multi-tenant systems, and 53 | other cloud-centric uses. 54 | 55 | Have a look at [who is using illumos](who.md) to see what illumos technologies 56 | are being used for! 57 | 58 | ### Supported hardware platforms 59 | 60 | illumos currently supports 64-bit x86 hardware from Intel and AMD. 61 | 62 | To determine if a specific piece of hardware will work with illumos, please 63 | refer to the [Hardware Compatibility List](https://illumos.org/hcl/). 64 | 65 | For pre-defined builds of server-grade hardware, you may also refer to the 66 | [Triton Engineering Manufacturing database](http://eng.tritondatacenter.com/manufacturing/bom.html). 67 | 68 | ### illumos Development Model 69 | 70 | Please refer to the [illumos Developer's 71 | Guide](https://illumos.org/books/dev/), as well as the [Building 72 | illumos](../developers/build.md) and [contribution](../contributing/index.md) 73 | sections of this documentation. 74 | 75 | ### Contributing to illumos 76 | 77 | Please see the [community](../community/index.md) and 78 | [contribution](../contributing/index.md) guides if you'd like to participate in 79 | the project. 80 | 81 | ### Third Party Software 82 | 83 | illumos does not itself ship third party software, or contain software like 84 | webservers and so forth. 85 | 86 | Distributions include their own package management. 87 | -------------------------------------------------------------------------------- /docs/about/leadership.md: -------------------------------------------------------------------------------- 1 | # Leadership 2 | 3 | ## Core Team 4 | 5 | The illumos core team has the ultimate say in what code is accepted for 6 | integration, and their most important job is to ensure quality and stability 7 | for all illumos users. Core team members also take responsibility for the 8 | provision of project infrastructure, including tools for code review, mailing 9 | lists, and other forms of collaboration. 10 | 11 | New core team members are appointed by the consensus of existing core team 12 | members. 13 | 14 | ### Current Members 15 | 16 | | Member | IRC Handle | Organization | Expertise | 17 | | ----------------- | ---------- | ---------------------- | --------- | 18 | | Dan McDonald | danmcd | MNX Cloud | Cryptography, Networking | 19 | | Gordon Ross | gwr | RackTop Systems | CIFS/SMB, VFS layer, ZFS ACLs, etc. | 20 | | Hans Rosenfeld | Woodstock | unaffiliated | Misc. | 21 | | Joshua M. Clulow | jclulow | Oxide Computer Company | Misc. | 22 | | Patrick Mooney | pmooney | Oxide Computer Company | Virtualization, etc. | 23 | | Rich Lowe | richlowe | unaffiliated | Misc. | 24 | | Robert Mustacchi | rmustacc | Oxide Computer Company | Virtualization, SMF, PCI, MDB, DTrace, x86 platform, etc. | 25 | 26 | ### Emeritus Members 27 | 28 | Some core team members have moved on to other things, and are no longer 29 | actively working on illumos. We thank them for their prior contributions! 30 | 31 | | Member | IRC Handle | Organization | Expertise | 32 | | ----------------- | ---------- | ---------------------- | --------- | 33 | | Albert Lee | trisk | RackTop Systems | Storage, drivers, userland. | 34 | | Chris Siden | csiden | formerly Delphix | ZFS | 35 | | Matt Ahrens | mahrens | Delphix | ZFS | 36 | | Garrett D'Amore | gdamore | RackTop Systems | Drivers, etc. | 37 | 38 | ## Life in the Core Team 39 | 40 | Contributors send you patches, build results, test results, check results, 41 | review results. If you're happy with all of this, you integrate the change on 42 | their behalf. 43 | 44 | You should have received a patch in `git format-patch` or similar format, 45 | including a full set of metadata (`Reviewed by:` lines, authorship, etc.). If 46 | you didn't, feel free to ask whoever submitted the patch to submit it in this 47 | format. You shouldn't have to go search the list archives for reviewers. 48 | 49 | While the core team role is fundamentally one of gate-keeping, it is expected 50 | that members are willing and able to help drive towards a positive result. Use 51 | your experience where you can to actively help contributors get to integration, 52 | rather than simply denying changes that aren't well-formed. 53 | 54 | ### Things Core Team Members Focus On 55 | 56 | * **Do you know the areas of the system affected well enough to even have an 57 | opinion?** If not, determine whether another core team member is better 58 | placed to make a decision. The codebase is large and our finite resources 59 | mean that we'll never have complete coverage; sometimes an absence of an 60 | obvious expert is a learning opportunity! 61 | 62 | * **Is the commit well-formed?** The `Author` field should include both a 63 | name and a well-formed e-mail address for the change contributor. Ensure 64 | that any non-Latin characters in names are correctly rendered in UTF-8. 65 | The same should be true of any `Reviewed by:` or `Portions contributed by:` 66 | lines in the commit message. 67 | 68 | * **Is the `git pbchk` output as clean as you want it to be?** In general 69 | there should be no noise from any check, however some areas are not 70 | clean for the various style checks. It will generally be quite obvious 71 | upon inspection when a file is not already free of issues. 72 | 73 | * **Is the user's build clean?** 74 | * The contributor should be using the current primary and shadow 75 | compilers (i.e., GCC 10.4.0-il-2 and GCC 14.2.0-il-1, along with smatch). 76 | Check the `mail_msg` file for the compilers used during the build. 77 | * The build should be free of compiler warnings and other post-build 78 | checks, including smatch. 79 | 80 | * **Did the submitter test their changes to your satisfaction?** 81 | * Can you think of anything else that should be tested? Ask for it! 82 | * Did the testing actually cover the area changed by the patch? Check! 83 | 84 | * **Inspect the diff!** Check that nothing stands out that reviewers may have 85 | missed. 86 | 87 | * If there are any open questions about possibly breaking the build, the core 88 | team member can always elect to run their own build once they have imported 89 | the patch. 90 | 91 | ### Integrating Changes 92 | 93 | The following is a basic checklist for those pushing to the gate, whether they 94 | are a member of the core team, or someone granted the right to push their own 95 | approved changes. 96 | 97 | * When importing a patch, record the approving core team member with an 98 | `Approved by:` line in the commit message after the existing 99 | `Reviewed by:` and `Portions contributed by:` lines. 100 | 101 | * Make sure when you import the patch that the `Author:` field reflects 102 | the submitter of the change and not you, the committer. 103 | 104 | * You can (and should) visually inspect outgoing commits prior to pushing 105 | (to ensure you have done all of the above) with something like: 106 | ``` 107 | $ git show --pretty=fuller origin/master.. 108 | commit 54a92aefa4a67c25d292cdc6f70533e6737db987 109 | Author: Harry Nilsson 110 | AuthorDate: Sat Jan 19 13:32:20 2019 +0200 111 | Commit: Joshua M. Clulow 112 | CommitDate: Thu Apr 11 21:20:14 2019 +0700 113 | 114 | 52034 put the lime in the coconut 115 | Portions contributed by: Fred Dagg 116 | Reviewed by: Gérard de Pamplemousse 117 | Reviewed by: Don Quixote 118 | Approved by: Joshua M. Clulow 119 | 120 | diff --git a/usr/src/uts/common/io/coconut/lime.c b/usr/src/uts/common/io/coconut/lime.c 121 | index adc83b19e79..54a92aefa4 100644 122 | --- a/usr/src/uts/common/io/coconut/lime.c 123 | +++ a/usr/src/uts/common/io/coconut/lime.c 124 | @@ -3134,7 +3134,7 @@ drink_them_both_up(void *state, 125 | ... 126 | ``` 127 | 128 | * If a push to the gate fails, you **MUST NOT** force push (i.e., `git push 129 | -f`). There will _always_ be a reason for the error, which you must fix 130 | before proceeding. 131 | 132 | * The remote for pushes is: `YOURUSER@code.illumos.org:illumos-gate.git`. This 133 | will be mirrored automatically to GitHub. Care must be taken to continue to 134 | push your Gerrit reviews to the right place (`refs/for/master`) 135 | and _not_ the live master branch (`refs/heads/master`). 136 | -------------------------------------------------------------------------------- /docs/about/logo-1.md: -------------------------------------------------------------------------------- 1 | Bare Logo:
svg [scalable](../images/logo/PhoenixRGB.svg)
eps [scalable](../images/logo/PhoenixRGB.eps)
png [64px](../images/logo/Phoenix64x64-RGB.png)
png [166px](../images/logo/PhoenixRGB.png)
png [2057px](../images/logo/BigHighResPhoenixRGB.png) 2 | -------------------------------------------------------------------------------- /docs/about/logo-2.md: -------------------------------------------------------------------------------- 1 | Logo with text, light background:
svg scalable optimized for [smaller](../images/logo/SmallPhoenixLogotypeRGB.svg) sizes
svg scalable optimized for [larger](../images/logo/LargePhoenixLogotypeRGB.svg) sizes
eps scalable optimized for [smaller](../images/logo/DarkSmallPhoenixLogotypeRGB.eps) sizes
eps scalable optimized for [larger](../images/logo/LargePhoenixLogotypeRGB.eps) sizes
png [90px wide](../images/logo/TinyPhoenixLogotypeRGB.png)
png [139px wide](../images/logo/SmallPhoenixLogotypeRGB.png)
png [267px wide](../images/logo/MediumPhoenixLogotypeRGB.png)
png [3320px wide](../images/logo/BigHighResPhoenixLogotypeRGB.png)
2 | -------------------------------------------------------------------------------- /docs/about/logo-3.md: -------------------------------------------------------------------------------- 1 | Logo with text, dark background:
svg scalable optimized for [smaller](../images/logo/DarkSmallPhoenixLogotypeRGB.svg) sizes
svg scalable optimized for [larger](../images/logo/DarkLargePhoenixLogotypeRGB.svg) sizes
eps scalable optimized for [smaller](../images/logo/DarkSmallPhoenixLogotypeRGB.eps) sizes
eps scalable optimized for [larger](../images/logo/DarkLargePhoenixLogotypeRGB.eps) sizes
png [90 px wide](../images/logo/DarkTinyPhoenixLogotypeRGB.png)
png [139 px wide](../images/logo/DarkSmallerPhoenixLogotypeRGB.png)
png [267 px wide](../images/logo/DarkMediumPhoenixLogotypeRGB.png)
png [3320 px wide](../images/logo/DarkBigHighResPhoenixLogotypeRGB.png)
2 | -------------------------------------------------------------------------------- /docs/about/logo-4.md: -------------------------------------------------------------------------------- 1 | Logo with Powered By text, light background:
png [32 px](../images/logo/Illumos-web-32px.png)
png [63 px](../images/logo/Illumos-web-63px.png)
png [26 px](../images/logo/Illumos-web-126px.png)
2 | -------------------------------------------------------------------------------- /docs/about/logo-5.md: -------------------------------------------------------------------------------- 1 | Logo with Powered By text, dark background:
png [32 px](../images/logo/Illumos-web-dark-32px.png)
png [63 px](../images/logo/Illumos-web-dark-63px.png)
2 | -------------------------------------------------------------------------------- /docs/about/logo.md: -------------------------------------------------------------------------------- 1 | # The illumos logo 2 | 3 | The illumos mark is a trademark, and it is important to note that there are 4 | some restrictions on its use. The logo itself was created by 5 | [Rowan](mailto:rown@roseviolet.net) for illumos. 6 | 7 | ## Usage 8 | 9 | * The "Powered by" versions may be used on websites, login banners, distribution media, or other situations to indicate that either a service is running on the illumos operating system, or that a distribution is based upon it. Other uses are unacceptable. 10 | * The other icons may be used for personal use (for example to print a T-shirt). 11 | * All other use must be approved by Garrett D'Amore. 12 | * For most uses, the full-color phoenix with the illumos name next to it is preferred. Use the "large phoenix" or "small phoenix" version according to how much space is available. The phoenix without the illumos name may be used where the name would be inappropriate. 13 | * Do not change the size or position of any parts of the logo relative to each other. Only use the whole logo as a unit, exactly as it is provided. You may scale the vector formats up or down as required. The PNG format should only be scaled down. In all cases, the proportions must be constrained so the logo is not squeezed or stretched. Do not make the logo so small that it becomes unreadable. 14 | * Do not alter the colors in the logo. 15 | * Do not use the logo at an angle, and do not distort or warp it. 16 | * Generally, maintain a clear space on all four sides of the logo. This space should be equal to approximately 25% of the height of the phoenix. The font used in the logo is Museo Sans. 17 | * There are two versions of the text, one which is optimized for smaller sizes (where the ratio of the word "illumos" to the logo is larger), and one for larger displays (where the text is a bit smaller in proportion). 18 | 19 | ## Examples 20 | 21 | | Logo | Formats | 22 | |---|---| 23 | | ![logo1](../images/logo/PhoenixRGB.png) | {!about/logo-1.md!} | 24 | | ![logo2](../images/logo/MediumPhoenixLogotypeRGB.png) | {!about/logo-2.md!} | 25 | | ![logo3](../images/logo/DarkMediumPhoenixLogotypeRGB.png) | {!about/logo-3.md!} | 26 | | ![logo4](../images/logo/Illumos-web-126px.png) | {!about/logo-4.md!} | 27 | | ![logo5](../images/logo/Illumos-web-dark-63px.png) | {!about/logo-5.md!} | 28 | 29 | These versions are optimized for screen display. If you need an alternate color 30 | space (CMYK, or single or two color only), please send an email to [Garrett 31 | D'Amore](mailto:garrett@damore.org). 32 | -------------------------------------------------------------------------------- /docs/about/who.md: -------------------------------------------------------------------------------- 1 | # Who uses illumos? 2 | 3 | Many communities and businesses base their products and services on illumos. In 4 | addition to providing the core for projects and products, components of illumos 5 | have been ported to other operating systems. 6 | 7 | If you'd like to be included in this list, please use the [documentation 8 | contribution process](../contributing/docs.md) to add details about your 9 | organization! 10 | 11 | ## Organizations 12 | 13 | | Organization | Description | 14 | | ------------ | ----------- | 15 | | [FreeBSD](https://www.freebsd.org/) | Incorporates ZFS, DTrace, mdb | 16 | | [Apple](https://github.com/opensource-apple/dtrace) | Incorporates DTrace | 17 | | [MNX](https://www.mnx.io/) | Public and on-prem cloud, object storage | 18 | | [Lucera](https://www.lucera.com/) | Financial infrastructure services | 19 | | [Delphix](https://www.delphix.com/) | Database virtualization | 20 | | [Nexenta](https://nexenta.com/) | Storage appliance | 21 | | [EveryCity](http://www.everycity.co.uk/) | Managed cloud services | 22 | | [Project FIFO](http://project-fifo.net/) | On-prem cloud | 23 | | [Circonus](https://www.circonus.com/) | Monitoring services | 24 | | [Pobox](https://www.pobox.com/) | Email services | 25 | | [Topicbox](https://www.topicbox.com/) | Mailing list services | 26 | | [DanubeCloud](https://danubecloud.org) | On-prem cloud | 27 | | [Cloudcontainers](https://cloudcontainers.net) | Public cloud | 28 | | [RackTop Systems](https://www.racktopsystems.com) | Cyberconverged storage | 29 | -------------------------------------------------------------------------------- /docs/community/conduct.md: -------------------------------------------------------------------------------- 1 | # illumos Project Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to make participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, 8 | body size, disability, ethnicity, sex characteristics, gender identity and 9 | expression, level of experience, education, socio-economic status, nationality, 10 | personal appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, mailing list posts, and 42 | other contributions that are not aligned to this Code of Conduct, or to ban 43 | temporarily or permanently any contributor for other behaviors that they deem 44 | inappropriate, threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies within all project spaces, including but not 49 | limited to: 50 | 51 | * The illumos [bug 52 | tracker](https://www.illumos.org/projects/illumos-gate/issues) 53 | * Code review feedback on the illumos [Review Board](https://illumos.org/rb) 54 | * Project [Mailing Lists and IRC Channels](https://illumos.org/docs/community/) 55 | * GitHub issues and pull requests on [illumos 56 | repositories](https://github.com/illumos) 57 | 58 | The Code of Conduct also applies when an individual is representing the project 59 | or its community in public spaces. Examples of representing a project or 60 | community include using an official project e-mail address, posting via an 61 | official social media account, or acting as an appointed representative at an 62 | online or offline event. Representation of a project may be further defined 63 | and clarified by project maintainers. 64 | 65 | ## Enforcement 66 | 67 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 68 | reported by contacting the moderation team at [conduct@illumos.org][mailto]. 69 | All complaints will be reviewed and investigated and will result in a response 70 | that is deemed necessary and appropriate to the circumstances. The project team 71 | is obligated to maintain confidentiality with regard to the reporter of an 72 | incident. 73 | 74 | Project maintainers who do not follow or enforce the Code of Conduct in good 75 | faith may face temporary or permanent repercussions as determined by other 76 | members of the project's leadership. 77 | 78 | ## Attribution 79 | 80 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 81 | version 1.4, available at 82 | https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 83 | 84 | [mailto]: mailto:conduct@illumos.org 85 | [homepage]: https://www.contributor-covenant.org 86 | -------------------------------------------------------------------------------- /docs/community/events.md: -------------------------------------------------------------------------------- 1 | # Events 2 | 3 | ## Upcoming 4 | 5 | If you are hosting, or know of an illumos-related event, please use the 6 | [documentation contribution process](../contributing/docs.md) to add it to this 7 | page! 8 | 9 | ## Past 10 | 11 | ### 2019 12 | 13 | #### FrOSCon 2019 14 | 15 | - Where: Sankt Augustin, Germany 16 | - When: 10th-11th August 2019 17 | - Details: 18 | 19 | #### FOSDEM 2019 20 | 21 | - Where: Brussels, Belgium 22 | - When: 2nd-3rd February 2019 23 | - Details: 24 | - Location: K/1/A table 8 25 | - Who: 26 | 27 | ### 2018 28 | 29 | #### FrOSCon 2018 30 | 31 | - Where: Sankt Augustin, Germany 32 | - When: 25 + 26 August 2018 33 | - Details: 34 | - Who: 35 | - Thomas Merkel 36 | - Sebastian Wiedenroth 37 | - *Add yourself!* 38 | 39 | #### CLT 2018 40 | 41 | - Where: Chemnitz, Germany 42 | - When: 10 + 11 March 2018 43 | - Details: 44 | - Who: 45 | - Hans Rosenfeld 46 | - Thomas Merkel 47 | - Sebastian Wiedenroth 48 | 49 | 50 | 51 | #### FOSDEM 2018 52 | 53 | - Where: Brussels, Belgium 54 | - When: 3 + 4 February 2018 55 | - Details: 56 | - Who: 57 | - Hans Rosenfeld 58 | - Thomas Merkel (SmartOS, pkgsrc) 59 | - Sebastian Wiedenroth (SmartOS, pkgsrc) 60 | - Jorge Schrauwen (SaltStack SmartOS/illumos support) 61 | - Thomas Wagner (SFE Project, SpecFiles Extra) 62 | - Peter Tribble 63 | - Andy Fiddaman (OmniOS Community Edition) 64 | - Dominik Hassler (OmniOS Community Edition) 65 | 66 | ### 2017 67 | 68 | #### FOSDEM 2017 69 | 70 | - Where: Brussels, Belgium 71 | - When: 4 + 5 February 2017 72 | - Details: 73 | - Who: 74 | - Hans Rosenfeld 75 | - Olaf Bohlen (OI/sparc, AI) 76 | - Jorge Schrauwen (SaltStack SmartOS/illumos support) 77 | - Sebastian Wiedenroth (pkgsrc, SmartOS) 78 | - Till Wegmüller (PXEBoot, NFSRoot, AI, Distro Constructor, pkg5, illumos/OpenPower) 79 | - Peter Tribble 80 | - Thomas Merkel 81 | - Adam Števko (OI/infrastructure, OI/CI, ansible illumos modules) 82 | - Alexander Pyhalov 83 | - Thomas Wagner (SFE, SpecFiles Extra) 84 | 85 | Our booth is in building K, Level 1, Group A Table 8 86 | 87 | ### 2016 88 | 89 | #### FOSDEM 2016 90 | 91 | - Where: Brussels, Belgium 92 | - When: 30 + 31 January 2016 93 | - Details: 94 | - Who: 95 | - Hans Rosenfeld 96 | - Jorge Schrauwen 97 | - Olaf Bohlen (sysidcfg toolset and oi-hipster for sparc) 98 | - Sebastian Wiedenroth 99 | - Thomas Merkel 100 | - Peter Tribble 101 | - Dan McDonald ([illumos at 5, 12 noon Sunday, Janson](https://archive.fosdem.org/2016/schedule/event/illumos_overview/)) 102 | - Thomas Wagner () 103 | 104 | 105 | We have our table in building K, Level 1, Group A, Table 7. 106 | -------------------------------------------------------------------------------- /docs/community/index.md: -------------------------------------------------------------------------------- 1 | # Community 2 | 3 | ## Introduction 4 | 5 | The illumos community is small but active. We welcome everybody who would like 6 | to use the software and participate in the community -- whether you've decades 7 | of experience in systems software, or you're just getting started; whether you 8 | work for a company that uses illumos, or you just find it personally 9 | interesting. 10 | 11 | We try to be helpful and inclusive! It's not uncommon to see folks on both IRC 12 | and the mailing lists discussing a range of issues, both simple and complex. 13 | Whether you're just getting started, or you're debugging a difficult problem, 14 | you should be able to find the help you need. 15 | 16 | !!! danger "The Golden Rule" 17 | Please be respectful and civil in your communications. 18 | Community participation is covered by a [code of 19 | conduct](../community/conduct.md), which all community members should read 20 | and follow. 21 | Harassment and other poor behavior will not be tolerated, and preventative 22 | action _will_ be taken by moderators. If you would like to report an 23 | incident, please contact the moderation team as laid out in [the code of 24 | conduct](../community/conduct.md#enforcement). 25 | 26 | ## Mailing Lists 27 | 28 | Please refer to [this page](lists.md) for both illumos project and related 29 | community mailing list information. 30 | 31 | ## IRC Channels 32 | 33 | | Project | Network | Channel | 34 | | ------- | ------------ | -------------- | 35 | | illumos | [Libera Chat](https://libera.chat) | `#illumos` | 36 | | SmartOS | [Libera Chat](https://libera.chat) | `#smartos` | 37 | | OmniOS | [Libera Chat](https://libera.chat) | `#omnios` | 38 | | OpenIndiana | [Libera Chat](https://libera.chat) | `#openindiana` | 39 | | OpenZFS | [Libera Chat](https://libera.chat) | `#openzfs` | 40 | -------------------------------------------------------------------------------- /docs/community/lists.md: -------------------------------------------------------------------------------- 1 | # Mailing Lists 2 | 3 | !!! danger "The Golden Rule" 4 | Please be respectful and civil in your communications. 5 | Community participation is covered by a [code of 6 | conduct](../community/conduct.md), which all community members should read 7 | and follow. 8 | Harassment and other poor behavior will not be tolerated, and preventative 9 | action _will_ be taken by moderators. If you would like to report an 10 | incident, please contact the moderation team as laid out in [the code of 11 | conduct](../community/conduct.md#enforcement). 12 | 13 | ## General Lists 14 | 15 | | Name | Description | 16 | |------|-------------| 17 | | [announce](https://illumos.topicbox.com/groups/announce) | Announcements including new releases, significant milestones, administrative and policy decisions and other news-worthy items. ([Old archives](http://lists.illumos.org/pipermail/announce)) | 18 | | [developer](https://illumos.topicbox.com/groups/developer) | Developers working on illumos code and those looking to become actively involved. ([Old archives](http://lists.illumos.org/pipermail/developer)) | 19 | | [discuss](https://illumos.topicbox.com/groups/discuss) | General discussion ([Old archives](http://lists.illumos.org/pipermail/discuss)) | 20 | 21 | ## Code Commits, Integration, Bug Tracking 22 | 23 | | Name | Description | 24 | |------|-------------| 25 | | [advocates](https://illumos.topicbox.com/groups/advocates) | Moderated list for illumos core team members and submitting RTIs only. ([Old archives](http://lists.illumos.org/pipermail/advocates/)) | 26 | | [commits](https://illumos.topicbox.com/groups/illumos-commits) | Notifications about each commit made to the illumos source code repository. ([Old archives](http://lists.illumos.org/pipermail/illumos-commits)) 27 | 28 | ## Related Communities 29 | 30 | | Name | Description | 31 | |------|-------------| 32 | | [dtrace-discuss](http://dtrace.org/blogs/mailing-list/) | All things DTrace | 33 | | [openzfs-developer](https://openzfs.topicbox.com/groups/developer/discussions) | Platform-independent mailing list for ZFS developers to review ZFS code and architecture changes from all platforms. | 34 | | [oi-dev](http://openindiana.org/mailman/listinfo/oi-dev) | OpenIndiana distro developer list | 35 | | [openindiana-discuss](http://openindiana.org/mailman/listinfo/openindiana-discuss) | OpenIndiana distro users list | 36 | | [OmniOS Contacts](https://omniosce.org/about/contact) | OmniOS mailing list and other contact details | 37 | | [smartos-discuss](https://smartos.topicbox.com/groups/smartos-discuss) | SmartOS distro | 38 | -------------------------------------------------------------------------------- /docs/community/videos.md: -------------------------------------------------------------------------------- 1 | | Year | Presenter | Venue | Link | 2 | |------|--------------------------|--------------|------| 3 | | 2022 | Thomas Merkel | May Contain Hackers | https://youtu.be/PaI4DAYYIu4 | 4 | | 2018 | Stephen's Machine Room | | [Thoughts on illumos distributions](https://www.youtube.com/watch?v=_7YSiwEdtjE) | 5 | | 2017 | Peter Tribble | flossUK | [illumos at 6](https://www.youtube.com/watch?v=29yGVdtaN_0) | 6 | | 2017 | Various | | [OpenZFS Dev Summit](https://www.youtube.com/watch?v=1LkHsofR_kc&list=PLaUVvul17xSfgoTmcgjC0MQPGC2fmljL6) | 7 | | 2016 | Bryan Cantrill | PapersWeLove | [Jails and Solaris Zones](https://www.youtube.com/watch?v=hgN8pCMLI2U) | 8 | | 2016 | Various | | [OpenZFS Dev Summit](https://www.youtube.com/watch?v=CIJGUNDZ9yE&list=PLaUVvul17xSfmOrhQ_f6gqMNNuJvnKEqZ) | 9 | | 2016 | Dan McDonald | FOSDEM | [An overview of illumos five years later](https://archive.fosdem.org/2016/schedule/event/illumos_overview/) | 10 | | 2015 | Various | Surge | [illumos Day](https://www.youtube.com/watch?v=Al2jqJ_8BcQ&list=PLPs2JDhxyVxPzEkUzQD2-cb-rhVFqX1UV) | 11 | | 2015 | Various | | [OpenZFS Dev Summit](https://www.youtube.com/watch?v=aV276yUfgK4&list=PLaUVvul17xSedlXipesHxfzDm74lXj0ab) | 12 | | 2014 | Matt Ahrens | AsiaBSDCon | [OpenZFS](https://www.youtube.com/watch?v=8T9Rh-46jhI) 13 | | 2014 | Various | | [OpenZFS Dev Summit](https://www.youtube.com/watch?v=XnTzbisLYzg&list=PLaUVvul17xSdOhJ-wDugoCAIPJZHloVoq) | 14 | | 2014 | Various | Surge | [illumos Day](https://www.youtube.com/watch?v=HRnGZYEBpFg&list=PLH8r-Scm3-2VmZhZ76tFPAhPOG0pvmjdA) | 15 | | 2014 | Peter Tribble | | [Tribblix: adventures with illumos](https://www.youtube.com/watch?v=W-gNd4cKrLc) | 16 | | 2013 | Various | | [OpenZFS Developer Summit](https://www.youtube.com/watch?v=U3dMhpmQTrU&list=PL3oXECC9Rpm3ui0Kwbh4tg9efqySwyv53) | 17 | | 2012 | Garrett D'Amore | SCALE 10x | [Developing for illumos](https://www.youtube.com/watch?v=AtAjPw5lUF8&list=PL38E9D8BB8E71A73C) | 18 | | 2012 | Robert Mustacchi | SCALE 10x | [Using SmartOS as a Hypervisor](https://www.youtube.com/watch?v=Z725D3SZYBY&list=PL164B1EF0A178574C) | 19 | | 2012 | Various | | [dtrace.conf](https://www.youtube.com/watch?v=l_7v7Fn7uMQ&list=PL973D48F273EB0360) | 20 | | 2012 | Brendan Gregg | | [DTracing the cloud](https://www.youtube.com/watch?v=uZTMuXXFG38&index=2&list=PL3oXECC9Rpm2iKqF4Kl3NIjlMNTKjI4T6) | 21 | | 2011 | Bryan Cantrill | LISA 25 | [Fork Yeah! The Rise and Development of illumos](https://www.youtube.com/watch?v=-zRN7XLCRhc) | 22 | | 2011 | Various | | [illumos meetup](https://www.youtube.com/watch?v=NArlja-RXVA&list=PLDCCD08516746DB82) | 23 | | 2011 | Bryan Cantrill | KVM Forum | [Porting KVM to illumos](https://www.youtube.com/watch?v=cwAfJywzk8o) | 24 | | 2009 | Brendan Gregg | KCA | [DTrace Crash Course](https://www.youtube.com/watch?v=DWwpzLgNhME&list=PL3oXECC9Rpm2--4vn3KIeCDMvQsv4exaO) 25 | | 2008 | Various | | [dtrace.conf](https://www.youtube.com/watch?v=RvyP61WeFdM&list=PL8516982CBF9FADCC) | 26 | | 2008 | Jeff Bonwick, Bill Moore | SNIA | [ZFS: The Last Word in Filesystems](https://www.youtube.com/watch?v=NRoUC9P1PmA&list=PL1622CB7988FDD9F5) | 27 | 28 | Many thanks to [Deirdré Straughan](http://www.beginningwithi.com/) for 29 | recording many of the early OpenSolaris and illumos videos! 30 | -------------------------------------------------------------------------------- /docs/contributing/docs.md: -------------------------------------------------------------------------------- 1 | # Contributing Documentation 2 | 3 | ## Introduction 4 | 5 | If you'd like to help expand our documentation, we'd love the assistance. 6 | 7 | This site is [hosted on GitHub](https://github.com/illumos/docs/) and uses 8 | [mkdocs](http://www.mkdocs.org/). 9 | 10 | ## Process 11 | 12 | If you notice an error or see something that can be improved, or you want to 13 | write a whole new section, you have a couple options: 14 | 15 | ### Local Development 16 | 17 | Fork the [illumos/docs](https://github.com/illumos/docs/) repo and submit a 18 | Pull Request. 19 | 20 | You'll need to [install mkdocs](http://www.mkdocs.org/#installation), and some 21 | of our dependencies on your workstation to help with development and testing. 22 | 23 | ``` 24 | pip install mkdocs 25 | pip install mkdocs-material 26 | pip install markdown-include 27 | ``` 28 | 29 | We enable a number of extensions. You might want to review the documentation 30 | for them. Some of the more useful ones are: 31 | 32 | * https://squidfunk.github.io/mkdocs-material/extensions/admonition/ 33 | * https://squidfunk.github.io/mkdocs-material/extensions/codehilite/ 34 | * https://squidfunk.github.io/mkdocs-material/extensions/pymdown/ 35 | 36 | ### Online Development 37 | 38 | Alternatively, you can edit the page directly in GitHub, and submit a Pull 39 | Request. 40 | 41 | ### Review 42 | 43 | Your changes will go through a review process and hopefully be merged in! 44 | 45 | ## Help Wanted! 46 | 47 | We've already identified some key pages where we need to improve documentation; 48 | have a look at the [open issues](https://github.com/illumos/docs/issues) for 49 | the doc repository to see if you can lend a hand. 50 | -------------------------------------------------------------------------------- /docs/contributing/gerrit.md: -------------------------------------------------------------------------------- 1 | # Code Review with Gerrit 2 | 3 | The illumos project provides a central service where you can upload changes for 4 | review, using the same [Gerrit Code Review](https://www.gerritcodereview.com/) 5 | software used by popular projects like Go and Android. 6 | 7 | ## Authentication 8 | 9 | Gerrit uses the same accounts as the illumos project bug tracker. The first 10 | step to using Gerrit is to ensure that you have an account! 11 | 12 | To register, navigate to: https://www.illumos.org/account/register 13 | 14 | Pick a username and password, and provide your SSH key which we'll use when 15 | pushing patches to Gerrit later. You'll get an e-mail that you'll need to use 16 | to confirm your account and then you can log in! 17 | 18 | ![Screenshot of registration](./gerrit01.png) 19 | 20 | ## Gerrit Web Interface 21 | 22 | Once you have an account in the bug tracker, navigate to Gerrit: 23 | https://code.illumos.org 24 | 25 | Before you log in, the default front page lists changes that are currently 26 | under review. Click **Sign In** in the top right: 27 | 28 | ![Screenshot of sign-in button](./gerrit02.png) 29 | 30 | Enter the same username and password as you use for the bug tracker: 31 | 32 | ![Screenshot of login form](./gerrit03.png) 33 | 34 | Now that you are logged in, you'll be taken to the dashboard of changes that 35 | are directly relevant to you: those you have posted, or are reviewing. 36 | Because you are a new user, you won't have any yet! 37 | 38 | If you'd like to change any preferences, like selecting your preferred diff 39 | view, or whether you want the dark or the light theme, click the gear wheel at 40 | the top right next to your name and you'll be taken to the preferences page. 41 | 42 | Because you added an SSH key when you created your bug tracker account, you 43 | should be able to use that key to get access to Gerrit via SSH! Let's check: 44 | 45 | ``` 46 | $ ssh walter@code.illumos.org 47 | 48 | **** Welcome to Gerrit Code Review **** 49 | 50 | Hi Walter Bishop, you have successfully connected over SSH. 51 | ... 52 | ``` 53 | 54 | If you get an authentication or key error, make sure your SSH agent is 55 | correctly configured, and that the key is correctly entered into the site. You 56 | can always ask for help [in IRC or on the mailing list](../../community/) if 57 | you're having trouble! 58 | 59 | ## Basic Workflow 60 | 61 | Gerrit focuses on making a single well-formed commit as the basic unit of 62 | change, which mirrors the way we work and [accept 63 | contributions](../#submitting-a-patch) in the illumos project. We generally 64 | expect that a bug or feature in the bug tracker will have one associated 65 | commit in the repository. 66 | 67 | ### 1. File a Bug 68 | 69 | Let's make sure we have a bug filed for our work, which we will use in the 70 | commit message to tie everything together. 71 | 72 | Navigate to the bug tracker: https://bugs.illumos.org 73 | 74 | Make sure you are logged in and click **New Issue**: 75 | 76 | ![Screenshot of new issue button](./gerrit04.png) 77 | 78 | Fill out your bug and assign it to yourself: 79 | 80 | ![Screenshot of new bug form](./gerrit05.png) 81 | 82 | We now have a bug number to work against! 83 | 84 | ![Screenshot of new bug](./gerrit06.png) 85 | 86 | ### 2. Clone the software and install the hook script 87 | 88 | Most of the time, people will clone the illumos repository from GitHub; e.g., 89 | 90 | ``` 91 | $ git clone https://github.com/illumos/illumos-gate.git ~/illumos 92 | $ cd ~/illumos 93 | ``` 94 | 95 | In order to interact with Gerrit, you'll need to add another [git 96 | remote](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes): 97 | 98 | ``` 99 | $ git remote add illumos walter@code.illumos.org:illumos-gate.git 100 | $ git remote -v 101 | illumos walter@code.illumos.org:illumos-gate.git (fetch) 102 | illumos walter@code.illumos.org:illumos-gate.git (push) 103 | origin https://github.com/illumos/illumos-gate.git (fetch) 104 | origin https://github.com/illumos/illumos-gate.git (push) 105 | ``` 106 | 107 | Gerrit uses a special `Change-Id:` footer in the commit message of your 108 | change to track new versions of your change. The easiest way to ensure 109 | you have the footer is to install the hook script that Gerrit supplies: 110 | 111 | ``` 112 | $ cd ~/illumos 113 | $ scp -O walter@code.illumos.org:hooks/commit-msg .git/hooks/ 114 | ``` 115 | 116 | You'll make your change in your local clone. It is generally easiest to start 117 | with a local branch; e.g., 118 | 119 | ``` 120 | $ cd ~/illumos 121 | $ git checkout -b my-change 122 | Switched to a new branch 'my-change' 123 | ``` 124 | 125 | Now, whenever you `git commit`, a `Change-Id:` footer will be added to your 126 | message by the hook script it does not already have one. For example: 127 | 128 | ``` 129 | $ git add stirtanks.sh 130 | $ git commit -m '12975 Main B bus undervolt prevents forward progress' 131 | [master ba979ab7bd] 12975 Main B bus undervolt prevents forward progress 132 | 1 file changed, 0 insertions(+), 0 deletions(-) 133 | create mode 100644 stirtanks.sh 134 | $ git show 135 | commit ba979ab7bd4e254e73b7539530e30f7d232bcfa1 136 | Author: Walter Bishop 137 | Date: Wed Jul 22 01:01:44 2020 -0700 138 | 139 | 12975 Main B bus undervolt prevents forward progress 140 | 141 | Change-Id: I6453e39cc12c5c6a1b6e77f0233833fa4895e0ab 142 | 143 | diff --git a/stirtanks.sh b/stirtanks.sh 144 | ... 145 | ``` 146 | 147 | You can start with as many commits in your branch as you like while you're 148 | working, but when you submit to Gerrit they need to be "squashed" down into one 149 | commit. The Git book has a good chapter on [rewriting 150 | history](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History) that has a 151 | lot more detail on how to squash commits. You can also just work with a single 152 | commit yourself and use `git commit --amend` each time you want to add to it. 153 | 154 | ### 3. Prepare your commit and push to Gerrit 155 | 156 | When you're happy with your change and you'd like to get review, you're ready 157 | to push it to Gerrit! It's always good to make sure your outgoing commit is 158 | exactly as you intend, with the bug number and synopsis matching what you put 159 | in the bug tracker: 160 | 161 | ``` 162 | $ git log --decorate --graph 163 | * commit 4741cbf8499c763f75e48ae302c990e1f58c2381 (HEAD -> my-change) 164 | | Author: Walter Bishop 165 | | Date: Wed Jul 22 01:05:27 2020 -0700 166 | | 167 | | 12975 Main B bus undervolt prevents forward progress 168 | | 169 | | Change-Id: I6453e39cc12c5c6a1b6e77f0233833fa4895e0ab 170 | | 171 | * commit 7d91603476b740ff8f4c917d71ee5884ab39cb60 (origin/master, origin/HEAD) 172 | | Author: Robert Mustacchi 173 | | Date: Thu Jul 9 18:33:59 2020 -0700 174 | | 175 | | 12966 imc driver blew up on missing channel 176 | | Reviewed by: Andy Fiddaman 177 | | Reviewed by: Igor Kozhukhov 178 | | Reviewed by: Paul Winder 179 | | Approved by: Dan McDonald 180 | ... 181 | ``` 182 | 183 | To push, we use a special syntax that tells Gerrit this is a change for review: 184 | 185 | ``` 186 | $ git push illumos HEAD:refs/for/master 187 | Enumerating objects: 4, done. 188 | Counting objects: 100% (4/4), done. 189 | Delta compression using up to 8 threads 190 | Compressing objects: 100% (2/2), done. 191 | Writing objects: 100% (3/3), 377 bytes | 188.00 KiB/s, done. 192 | Total 3 (delta 1), reused 0 (delta 0) 193 | remote: Resolving deltas: 100% (1/1) 194 | remote: Counting objects: 81707, done 195 | remote: Processing changes: refs: 1, new: 1, done 196 | remote: 197 | remote: SUCCESS 198 | remote: 199 | remote: https://code.illumos.org/c/illumos-gate/+/809 12975 Main B bus undervolt prevents forward progress [NEW] 200 | remote: 201 | To code.illumos.org:illumos-gate.git 202 | * [new branch] HEAD -> refs/for/master 203 | ``` 204 | 205 | Success! In the output, we can see the URL of the new change that Gerrit has 206 | created for us. You can navigate there to see what it looks like on the web: 207 | 208 | ![Screenshot of uploaded Gerrit change](./gerrit07.png) 209 | 210 | Once you see your change correctly uploaded, it's time to seek review from 211 | interested parties -- generally via the illumos developer mailing list, or in 212 | IRC. As people review your change, you will receive e-mail notifications with 213 | their feedback or their +1 votes. You can also see their comments in the web 214 | interface, which is particularly helpful when a contributor has left feedback 215 | on a particular line or set of lines in your change. 216 | 217 | ### 4. Update your change with new contents 218 | 219 | During the course of review, other contributors may leave feedback on areas 220 | that could use improvement; e.g., a comment that describes your design. Once 221 | you've addressed the feedback, you can update your existing change in Gerrit. 222 | 223 | Recall that Gerrit works in a unit of a single commit. As before, your 224 | changes must be squashed (e.g., using `git rebase -i`) or amended 225 | (e.g., using `git commit --amend`) so that they appear as a single commit. 226 | The easiest way is generally just to edit your files, add them, and amend 227 | your existing commit: 228 | 229 | ``` 230 | $ cd ~/illumos 231 | $ vim stirtanks.sh 232 | $ git add stirtanks.sh 233 | $ git commit --amend 234 | [my-change 3cc8bb230c] 12975 Main B bus undervolt prevents forward progress 235 | Date: Wed Jul 22 01:17:07 2020 -0700 236 | 1 file changed, 6 insertions(+) 237 | create mode 100755 stirtanks.sh 238 | ``` 239 | 240 | It is very important that you do not alter the `Change-Id:` footer while using 241 | `git commit --amend`. This footer is how Gerrit detects that you are updating 242 | an existing commit instead of starting a totally separate change. Assuming the 243 | `Change-Id:` is still intact, you can just push as you did before: 244 | 245 | ``` 246 | $ git push illumos HEAD:refs/for/master 247 | Enumerating objects: 4, done. 248 | Counting objects: 100% (4/4), done. 249 | Delta compression using up to 8 threads 250 | Compressing objects: 100% (2/2), done. 251 | Writing objects: 100% (3/3), 391 bytes | 195.00 KiB/s, done. 252 | Total 3 (delta 1), reused 0 (delta 0) 253 | remote: Resolving deltas: 100% (1/1) 254 | remote: Counting objects: 81700, done 255 | remote: Processing changes: refs: 1, updated: 1, done 256 | remote: 257 | remote: SUCCESS 258 | remote: 259 | remote: https://code.illumos.org/c/illumos-gate/+/809 12975 Main B bus undervolt prevents forward progress 260 | remote: 261 | To code.illumos.org:illumos-gate.git 262 | * [new branch] HEAD -> refs/for/master 263 | ``` 264 | 265 | You can see that we got the same URL as last time because Gerrit recognised our 266 | Change ID and updated our existing change. You can see a second patch set in 267 | the Gerrit web interface: 268 | 269 | ![Screenshot of amended Gerrit change](./gerrit08.png) 270 | 271 | Note that when you upload new versions of a commit, the old versions are 272 | still there. This enables reviewers (and you!) to see the progress you've 273 | made as you incrementally improve your change. You can see the delta between 274 | and old and a new version easily in the web interface: 275 | 276 | ![Screenshot of amended Gerrit patchset version list](./gerrit09.png) 277 | 278 | Assuming your commit message starts with the bug number as in the example 279 | above, the system will automatically link between the commit message in 280 | Gerrit and the bug tracker, making navigation a bit easier: 281 | 282 | ![Screenshot of link to bug](./gerrit10.png) 283 | 284 | The system will also link the bug back to the open Gerrit change: 285 | 286 | ![Screenshot of link to Gerrit](./gerrit11.png) 287 | 288 | 289 | ### 5. Interact with Gerrit using more advanced Git tools 290 | 291 | In addition to the web interface, Gerrit offers rich remote access using 292 | regular Git commands. This can be very handy when reviewing and testing large 293 | changes, or when needing to clone and build a Gerrit patchset on another 294 | system. With `git ls-remote`, you can see both of the patchsets we uploaded 295 | earlier (1 and 2): 296 | 297 | ``` 298 | $ git ls-remote illumos | grep -w 809 299 | 1fd7ee801782e3bb6dc07f91f236944dc062ac30 refs/changes/09/809/1 300 | 3cc8bb230cd30371d48e0bc7c928498e8a733483 refs/changes/09/809/2 301 | f5d33aea8fda859cac5d6694a3b250c8b1c70ae7 refs/changes/09/809/meta 302 | ``` 303 | 304 | You can also fetch them into a local clone and inspect the commit: 305 | 306 | ``` 307 | $ git fetch illumos refs/changes/09/809/1 308 | From code.illumos.org:illumos-gate 309 | * branch refs/changes/09/809/1 -> FETCH_HEAD 310 | 311 | $ git show FETCH_HEAD | cat 312 | commit 1fd7ee801782e3bb6dc07f91f236944dc062ac30 313 | Author: Walter Bishop 314 | Date: Wed Jul 22 01:17:07 2020 -0700 315 | 316 | 12975 Main B bus undervolt prevents forward progress 317 | 318 | Change-Id: I6453e39cc12c5c6a1b6e77f0233833fa4895e0ab 319 | 320 | diff --git a/stirtanks.sh b/stirtanks.sh 321 | new file mode 100755 322 | ... 323 | ``` 324 | -------------------------------------------------------------------------------- /docs/contributing/gerrit01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit01.png -------------------------------------------------------------------------------- /docs/contributing/gerrit02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit02.png -------------------------------------------------------------------------------- /docs/contributing/gerrit03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit03.png -------------------------------------------------------------------------------- /docs/contributing/gerrit04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit04.png -------------------------------------------------------------------------------- /docs/contributing/gerrit05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit05.png -------------------------------------------------------------------------------- /docs/contributing/gerrit06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit06.png -------------------------------------------------------------------------------- /docs/contributing/gerrit07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit07.png -------------------------------------------------------------------------------- /docs/contributing/gerrit08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit08.png -------------------------------------------------------------------------------- /docs/contributing/gerrit09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit09.png -------------------------------------------------------------------------------- /docs/contributing/gerrit10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit10.png -------------------------------------------------------------------------------- /docs/contributing/gerrit11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/contributing/gerrit11.png -------------------------------------------------------------------------------- /docs/contributing/index.md: -------------------------------------------------------------------------------- 1 | # Contributing to illumos 2 | 3 | ## Overview 4 | 5 | This document describes our contribution process in some detail. If you need 6 | guidance or assistance, especially if you are new to the project, you can 7 | always reach out to the [developer mailing list](../community/lists.md) or the 8 | [IRC channel](../community/#irc-channels) for help. 9 | 10 | Contributing to a large project with a long history like illumos can seem 11 | daunting! To get started, you might consider watching [Ryan 12 | Zezeski](https://zinascii.com/) going through fixing a bug in ZFS in this 13 | "illumos Day" talk, which includes submitting a patch for integration into 14 | `illumos-gate.git`: 15 | 16 | * [video](https://www.youtube.com/watch?v=HXjIz-RzhK8) 17 | * [slides](http://zinascii.com/pub/talks/fixing-bugs-in-illumos.pdf) 18 | 19 | !!! note "RTI Process" 20 | The Request To Integrate (RTI) process is also documented in the [illumos 21 | Developer's Guide](https://illumos.org/books/dev/integrating.html). 22 | 23 | ## Finding An Area To Contribute To 24 | 25 | If you're not sure what you want to work on, you can start by looking at our 26 | [list of bite-size 27 | bugs](https://www.illumos.org/projects/illumos-gate/issues?query_id=31) which 28 | should be easy for newcomers to pick up. You can also look at the entire list 29 | of issues and see if any with status "New" fit your skill set. 30 | 31 | If you are adding a new feature or addressing a problem not currently on our 32 | [list of issues](https://www.illumos.org/projects/illumos-gate/issues), please 33 | [create a new issue](https://www.illumos.org/projects/illumos-gate/issues/new) 34 | describing it. You need to create an account in the bug tracker in order to be 35 | able to file issues. 36 | 37 | Before you start working on the code, it is advisable to first ask on either 38 | the [developer mailing list](../community/lists.md) or the [IRC 39 | channel](../community/#irc-channels) for advice on the particular area you're 40 | interested in. For larger bodies of work, it is worth writing an [illumos 41 | Project Discussion (IPD)](https://github.com/illumos/ipd) document that 42 | describes your plan and seek feedback from core team members and others. 43 | 44 | ## Writing The Code 45 | 46 | Our guide to [building illumos](../developers/build.md) covers setting up a 47 | build environment and getting the source. To make sure you have a functional 48 | build environment, it helps to try at least one build without modifying 49 | anything. This also helps you to familiarize yourself with the build system 50 | and source tree layout. 51 | 52 | An unparalleled resource for understanding the operating system is the book, 53 | [Solaris Internals: Solaris 10 and OpenSolaris Kernel 54 | Architecture](http://www.amazon.com/Solaris-Internals-OpenSolaris-Kernel-Architecture/dp/0131482092). 55 | 56 | We have an [OpenGrok source browser and search engine](http://src.illumos.org/) 57 | which is very useful for development. 58 | 59 | Feel free to ask the [developer mailing list](../community/lists.md) or the 60 | [IRC channel](../community/#irc-channels) for help. 61 | 62 | We encourage you to "commit early, commit often" as you work, using your 63 | personal clone of illumos-gate.git. 64 | 65 | ## Testing 66 | 67 | The illumos gate is a core technology leveraged by several commercial vendors 68 | that rely on it to be a stable, well-tested platform. As such, changes to 69 | illumos require qualified code review from community peers. A reasonable 70 | effort must also be made to test each change, to ensure that the change is 71 | stable enough for others to rely upon. 72 | 73 | The [core team member](../about/leadership#core-team) looking at your 74 | integration request will discuss testing with you, and will ultimately decide 75 | when your testing is sufficient. 76 | 77 | The scope of required testing depends on the nature of the change and a 78 | discussion with the core team member looking at your change, but in general the 79 | core team adopts a "shrink to fit" mentality. Below are some examples of a 80 | reasonable level of testing based on the collective experience of the current 81 | core team. A core team member may ask for more testing depending on the 82 | nature of the change. 83 | 84 | ### All changes 85 | 86 | Make sure you test the results of the illumos-gate build with only your 87 | changesets applied. To do this, you will need to [build the illumos 88 | code](../developers/build.md). It is generally insufficient to test the build 89 | results of a downstream fork that contains other non-trivial changes as there 90 | may be implicit dependencies that break other consumers of the core illumos 91 | gate. 92 | 93 | If your code has been running in production as part of a downstream 94 | distribution of illumos, or has already gone through other testing, please 95 | include that information. The core team will determine if any additional 96 | testing is required for integration. 97 | 98 | ### Changing a single program 99 | 100 | If your change affects only a single binary (e.g., `/usr/bin/ls`), it is likely 101 | sufficient to copy the binary to a system running a distribution with a 102 | reasonable similarity to vanilla illumos-gate and running your tests there. 103 | These tests should cover enough functionality to demonstrate the correctness of 104 | your changes, and could involve stress tests in addition to functional tests 105 | depending on the nature of the change. This assumes that the binary has a 106 | trivial set of library dependencies that are reasonably standard across 107 | distros. 108 | 109 | ### Changing the implementation of a library 110 | 111 | If your change affects the implementation of a library, but does not change any 112 | externally visible interfaces, you should run tests against a reasonable subset 113 | of programs that exercise the code in question. As with a single binary, it is 114 | likely sufficient to copy this library to a system running a distribution which 115 | has identical interfaces to the vanilla illumos-gate. 116 | 117 | Some core libraries (most notably `libc`) are challenging to replace on a live 118 | system, so you will likely need to bootstrap a complete new image or boot 119 | environment of your distribution in order to be able to test your changes. How 120 | to do this depends on your distribution; e.g., OpenIndiana or OmniOS can use 121 | `onu` to update to new packages from a nightly build. 122 | 123 | ### Changing the implementation of a driver or adding a new driver 124 | 125 | If your change affects a single driver, you may or may not be able to get away 126 | with copying that driver to a system running an alternate distribution. On one 127 | hand, many of the kernel interfaces (e.g., the DDI) are likely identical, but 128 | if the core implementation of that distribution has diverged significantly from 129 | illumos-gate, you may be asked to bootstrap a complete environment from your 130 | vanilla illumos build. Driver tests should demonstrate a reasonable amount of 131 | functional and stress testing on appropriate hardware. 132 | 133 | ### Changing the core kernel or multiple interconnected binaries 134 | 135 | If you are making a change to the core kernel (e.g., `unix` or `genunix`), or 136 | have a series of changes across a number of libraries, commands, or kernel 137 | components, they need to be tested as a cohesive whole. You must bootstrap a 138 | usable environment from your illumos-gate build that is sufficient to 139 | demonstrate the correctness of your changes. 140 | 141 | Exactly what "bootstrapping" means is dependent on the distribution, but the 142 | goal is to run the entirety of the your illumos-gate build (not a combination 143 | of downstream and upstream illumos-gate bits) in a testable environment. Not 144 | all distros are capable of bootstrapping a vanilla illumos-gate build; check the 145 | [distribution list](../about/distro.md) and ask on the [developer 146 | list](../community/lists.md) if you are unsure of how to do this. 147 | 148 | For example, on OpenIndiana or OmniOS, you can use `onu` to install the 149 | packages produced by a nightly build. On a SmartOS system, you can build 150 | a wholly new "platform image" and boot a system using it. 151 | 152 | The scope of testing here will likely be more substantial, and should focus on 153 | stability of the system as well as the functionality of the changed 154 | component(s). 155 | 156 | As always, contact the core team member (or the core team mailing list if you 157 | don't yet have someone in mind) if you have more questions about what 158 | constitutes sufficient testing for a particular change. You are welcome to ask 159 | for help in creating a test plan well in advance of completing the work on you 160 | change, so that the core team can help set expectations and provide feedback 161 | throughout the process. 162 | 163 | ## Code Review 164 | 165 | At least one person (other than you, of course) should review your changes. 166 | These reviewers should have demonstrated expertise in the area in question or 167 | are trusted as knowledgeable by the illumos community at large. If you work for 168 | a commercial entity, it is best to include reviewers from outside your company, 169 | but this is not required. 170 | 171 | The [core team member](../about/leadership#core-team) looking at your 172 | integration request will discuss the review you have received with you, and 173 | will ultimately decide whether your change has undergone sufficient review. 174 | 175 | If you don't know how to find adequate review, you may post the changes to the 176 | developer mailing list to ask for feedback, or ask the core team if there is 177 | anyone in particular they'd like to see review the code. 178 | 179 | When seeking review, it is generally best to upload to some web-based review or 180 | source hosting system, rather than attach a patch to your list e-mail. The 181 | illumos project provides a [Gerrit instance](https://code.illumos.org) which 182 | you can use with your illumos bug tracker account credentials. For more 183 | information about using Gerrit, see [our documentation on Gerrit](./gerrit). 184 | Remember to mention the issue ID in the email -- if one does not yet exist, 185 | please [create one](https://www.illumos.org/projects/illumos-gate/issues/new)! 186 | 187 | ### Ensuring adequate review 188 | 189 | It is up to you as a contributor to gather reasonable review to satisfy a 190 | member of the core team that the code is correct and of high quality. Exactly 191 | what this means will vary based on the nature and scope of the change, but here 192 | are some guidelines that will give the core team confidence in your changes. 193 | 194 | * There should be at least one code reviewer (focused on the implementation 195 | details) that is different from the core team member (focused on ensuring 196 | overall quality of contributions). 197 | * For non-trivial changes to major technology areas (ZFS, DTrace, etc), at 198 | least one of the reviewers should be regarded as a subject matter expert by 199 | the community. 200 | * Changes with significant impact should participate in a public review when 201 | appropriate, or otherwise ensure that alternate opinions are represented. 202 | * When there are disagreements, every attempt should be made to adequately 203 | address reviewer's comments. In the event they cannot, it is acceptable to 204 | submit an RTI with known dissent. Such disagreements must be noted in the 205 | RTI submission with an explanation as to why the review comments were not 206 | addressed. 207 | 208 | When in doubt, more review is generally better. If anything is unclear, or 209 | you're stuck on something, you can always ask the core team for guidance. 210 | 211 | ## Submitting A Patch 212 | 213 | When you have adequate code review and test results for your proposed change, 214 | you prepare a "request to integrate" (RTI). 215 | 216 | First, in the issue(s) you created in the bug tracker, make sure you have: 217 | 218 | * Any analysis that lead to the fix; e.g., if you used DTrace or MDB to 219 | determine what went wrong it'd be good to include scripts and/or output 220 | from your debugging session 221 | * Your testing plan and results from your testing. This could be simple 222 | for simple changes; e.g., "I ran the updated `ls` binary and this is 223 | the new output". It could also be more detailed for a complicated bug. 224 | Providing the testing notes in the issue allows the core team to easily 225 | see what you did to test, and allows future engineers to better understand 226 | how to test _their_ changes in the same area of the system. 227 | 228 | You should have a full clean build of the gate with your changes applied. This 229 | currently means a successful build with GCC 10 as the primary compiler, and 230 | GCC 14 and smatch as shadow compilers, with no warnings or errors in the 231 | resulting `mail_msg`. Note that `mail_msg` includes a diff against the previous 232 | build, so your patch's clean build should come directly after a clean build of 233 | the previous commit. 234 | 235 | If your commit does not yet include "Reviewed by:" indicating your reviewers, 236 | this is when you should add those lines. We do not have a blank line between the 237 | first line of a commit message in illumos, and the following "Reviewed by:" 238 | lines. If you run `git format-patch` to get a patch to include, this will 239 | result in an oddly-formatted "Subject:" line - that is expected and OK. 240 | 241 | !!! note Assembling "Reviewed by:" lines 242 | If your review is not through Gerrit, you should have contact information 243 | for your reviewers that can be included when adding "Reviewed by:" lines. If 244 | your review is through Gerrit, you can use the Gerrit [/changes 245 | API](https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#get-change-detail) 246 | to get reviewer information and reduce the risk of a transcription error for 247 | your reviewers' names or e-mail addresses. This jq is an example of how you 248 | might want to assemble "Reviewed by:" lines: 249 | 250 | ``` 251 | curl -s "https://code.illumos.org/changes/$YOUR_CHANGE_NUMBER?o=LABELS&o=DETAILED_ACCOUNTS" | \ 252 | tail -n 1 | \ 253 | jq -r '.labels."Code-Review".all[] | 254 | select(.value==1) | 255 | "Reviewed by: \(.name) <\(.email)>"' 256 | ``` 257 | 258 | If your change has been reviewed on Gerrit, you (or `git pbchk`) may have found 259 | trivial changes such as whitespace nits, comment spelling, or copyright dates 260 | since the last round of review. Please ensure any changes at this point are 261 | also pushed to Gerrit. If your changes on Gerrit are the same as you would 262 | include as a patch for integration, you can omit the patch from your RTI e-mail 263 | entirely; the core team can fetch your change from Gerrit as well. 264 | 265 | Your RTI e-mail should include: 266 | 267 | * The link to the illumos issue(s) you're fixing, e.g., 268 | https://illumos.org/issues/10052 269 | * The changes that were reviewed; e.g., a link to your [Gerrit](./gerrit) 270 | review, or an attached patch otherwise. 271 | * The full "change set description" (i.e., `git whatchanged -v origin/master..`) 272 | including: 273 | * Issue number(s) and description(s) 274 | * `Reviewed by: First Last ` lines 275 | * List of files affected 276 | * Output of `git pbchk` (run under `bldenv` or have `/opt/onbld/bin` in `PATH`). 277 | This is optional if `git pbchk` prints nothing and exits with 0 278 | * An attached clean `mail_msg` from a full nightly build (including shadow 279 | compilers, as noted above) 280 | * Information about how the changes were tested (it's sufficient to 281 | mention that the testing notes appear in the bug tracker) 282 | 283 | Here is an example change description: 284 | 285 | ``` 286 | 123 Description of the issue in our tracker 287 | Reviewed by: Jack 288 | Reviewed by: Ohana Matsumae 289 | ``` 290 | 291 | Note this description does not include a "Change-ID:" line - it is the 292 | description the commit should have when integrated, minus "Approved by:". Since 293 | Gerrit identifies changes with the "Change-ID:" line, this will be a little 294 | different from the description in the associated Gerrit link. This is okay! If 295 | your RTI is approved, the core team member integrating your patch will remove 296 | this line from the description when they add an "Approved by:" recording their 297 | approval. 298 | 299 | !!! note Amending descriptions 300 | You can use `git commit --amend` to edit the commit message. 301 | 302 | A [core team member](../about/leadership#core-team) will need to judge whether 303 | your code review and testing are adequate for the scope of changes you propose. 304 | Note that the core team members's job as part of integration is not necessarily 305 | to review your code again, only to judge whether review and testing was 306 | adequate. 307 | 308 | When you are ready, send an email to the [illumos core team (formerly 309 | "advocates") mailing list](https://illumos.topicbox.com/groups/advocates). 310 | Though you are welcome to subscribe to the list, it is not required; you can 311 | just send mail to advocates@lists.illumos.org. If you're interested in what 312 | past RTIs looked like, you can [browse past 313 | messages](https://illumos.topicbox.com/groups/advocates). 314 | 315 | A reasonably complete example issue is `10052 "dladm 316 | show-ether" should pick one kstat snapshot and stick with 317 | it`: 318 | 319 | * [Bug #10052](https://www.illumos.org/issues/10052) in the bug tracker includes both analysis and testing notes 320 | * The [RTI mailing list thread](https://illumos.topicbox.com/groups/advocates/T3b948e263f1d5364-Maa6757c734745876ace18745) shows the sort of interaction you can expect 321 | 322 | !!! note 323 | Your email needs to be less than 2MB in size. If your change is 324 | large, compress the patch or make it available over HTTP. If your 325 | `mail_msg` is large, something is wrong. 326 | 327 | You should soon get a reply with additional feedback if needed, or a "thank 328 | you" for being part of the illumos developer community! 329 | 330 | If the change is accepted, the core team will take care of actually committing 331 | to master. Regular contributors may get commit rights: they follow the same 332 | system, but may push to master themselves after approval. 333 | 334 | If your review was through Gerrit, one last step is to "Abandon" your change - 335 | because the patch is intgrated through the RTI process, we don't use Gerrit to 336 | merge. "integrated" is a good message to indicate to future readers that the 337 | change was, in fact, integrated. 338 | -------------------------------------------------------------------------------- /docs/contributing/qds.md: -------------------------------------------------------------------------------- 1 | # The Quality Death Spiral 2 | 3 | !!! info "Terminology" 4 | | Term | Definition | 5 | | -----|-------------------------------------| 6 | | FCS | First Customer Ship | 7 | | gate | Source code repository | 8 | | Put [it] back | Committing code to the gate | 9 | 10 | ## Introduction 11 | 12 | [Jeff Bonwick](https://en.wikipedia.org/wiki/Jeff_Bonwick) was the gatekeeper 13 | for Solaris 2.5. He gave a talk on Solaris to the Sun Systems Group in 14 | September, 1994. It included a section on the Quality Death Spiral -- a 15 | timeless phenomenon that remains our omnipresent fear: 16 | 17 | The following is paraphrasing Jeff's talk. 18 | 19 | ## If it's broken, rip it out! 20 | 21 | * FCS quality all the time 22 | * Put it back today, 20 of your (current) friends will be running it tomorrow 23 | * Gate breakage grinds other development to a halt 24 | * The product, not any one project, is what matters 25 | * Mistakes will happen; negligence cannot 26 | 27 | ## FCS quality all the time 28 | 29 | Why is this so important? 30 | 31 | Only way to avoid the quality death spiral: 32 | 33 | * People hear the gate is broken 34 | * Decide not to risk a bringover 35 | * Fewer people run the latest stuff 36 | * Less real-life testing 37 | * New bugs not found 38 | * Quality drops further 39 | 40 | * Morale tracks quality 41 | * Downward spiral hard to break 42 | * Recovery time can be very long 43 | 44 | Originally sourced from [http://hub.opensolaris.org/bin/view/Community+Group+on/qual_death_spiral](https://web.archive.org/web/20110104044942/http://hub.opensolaris.org/bin/view/Community+Group+on/qual_death_spiral). 45 | -------------------------------------------------------------------------------- /docs/contributing/quality.md: -------------------------------------------------------------------------------- 1 | # So You Want to Develop on illumos 2 | 3 | Written by [Bryan Cantrill]() 4 | 5 | !!! info "Terminology" 6 | | Term | Definition | 7 | | --------------|---------------------------------------------------------------------| 8 | | FCS | First Customer Ship | 9 | | gate | Source code repository | 10 | | gatekeeper | Release Engineer responsible for ensuring the gate is working | 11 | | putback | Committing code to the gate | 12 | | jurassic | Server in the Sun Microsystems engineering dept. | 13 | 14 | ## Introduction 15 | 16 | So you're new to open source, and/or you're new to illumos. Maybe you have lots 17 | of experience developing mission-critical software, maybe you have none. But if 18 | you haven't already figured it out, we take quality very seriously around here. 19 | Developing illumos is very hard, and it's very important. This is good news, 20 | not bad news -- solving easy problems is boring and solving irrelevant problems 21 | is, well, irrelevant. But you should be prepared for the fact that you will 22 | need to push yourself to deliver the highest quality software. 23 | 24 | If you haven't already discovered it, illumos -- like any large software 25 | system -- has a complete range of software quality within its many subsystems. 26 | 27 | ## Immaculate 28 | 29 | Some illumos subsystems are beautiful works of engineering -- they are squeaky 30 | clean, well-designed and well-crafted. These subsystems are a joy to work in 31 | but (and here's the catch) by virtue of being well-designed and 32 | well-implemented, they generally don't need a whole lot of work. So you'll get 33 | to use them, appreciate them, and be inspired by them -- but you probably won't 34 | spend much time modifying them. (And because many of these subsystems have been 35 | implemented by engineers who are now part of the active illumos community, many 36 | of the changes will be done by the original implementer(s) anyway.) 37 | 38 | ## Fetid 39 | 40 | Other illumos subsystems are cobbled-together piles of junk -- reeking garbage 41 | barges that have been around longer than anyone remembers, floating from one 42 | release to the next. These subsystems have few-to-no comments (or what comments 43 | they have are clearly wrong), are poorly designed, needlessly complex, badly 44 | implemented and virtually undebuggable. There are often parts that work by 45 | accident, and unused or little-used parts that simply never worked at all. They 46 | manage to survive for one or more of the following reasons: 47 | 48 | * They work just well enough to not justify the cost of rewriting them 49 | * The problem they solve isn't important enough to justify the cost of rewriting them 50 | * The problem they solve is so nasty that the cost of a rewrite is enormous -- or at least it dwarfs the cost of ongoing maintenance 51 | 52 | If you find yourself having to do work in one of these subsystems, you must 53 | exercise extreme caution: you will need to write as many test cases as you can 54 | think of to beat the snot out of your modification, and you will need to 55 | perform extensive self-review. You can try asking for assistance, but you may 56 | quickly discover that no one is available who understands that particular 57 | subsystem. Your code reviewers may not be able to help much either -- maybe 58 | you'll find one or two people who have had the same misfortune that you find 59 | yourself experiencing, but it's more likely that you will have to explain most 60 | aspects of the subsystem to your reviewers. You may discover as you work in the 61 | subsystem that maintaining it is simply untenable -- it may be time to consider 62 | rewriting the subsystem from scratch. (After all, most of the subsystems that 63 | are in the first category replaced subsystems that were in the second.) One 64 | should not come to this decision too quickly: rewriting a subsystem from 65 | scratch is enormously difficult and time-consuming. Still, don't rule it out a 66 | priori. 67 | 68 | Even if you decide not to rewrite such a subsystem, you should improve it while 69 | you're there in ways that don't introduce excessive risk. For example, if 70 | something took you a while to figure out, don't hesitate to add a block comment 71 | to explain your discoveries. And if it was a pain in the ass to debug, you 72 | should add the debugging support that you found lacking. This will make it 73 | slightly easier on the next engineer -- and it will make it easier on you when 74 | you need to debug your own modifications. 75 | 76 | ## Grimy 77 | 78 | Most illumos subsystems, however, don't actually fall neatly into either of 79 | these categories -- they are somewhere in the middle. That is, they have parts 80 | that are well thought out, or design elements that are sound, but they are also 81 | littered with implicit intradependencies within the subsystem or implicit 82 | interdependencies with other subsystems. They may have debugging support, but 83 | perhaps it is incomplete or out of date. Perhaps the subsystem effectively met 84 | its original design goals, but it has been extended to solve a new problem in a 85 | way that has left it brittle or overly complex. Many of these subsystems have 86 | been fixed to the point that they work reliably -- but they are delicate and 87 | they must be modified with care. 88 | 89 | ## Due Diligence 90 | 91 | The majority of work that you will do on existing code will be to subsystems in 92 | this last category. You must be very cautious when making changes to these 93 | subsystems. Sometimes these subsystems have local experts, but many changes 94 | will go beyond their expertise. (After all, part of the problem with these 95 | subsystems is that they often weren't designed to accommodate the kind of 96 | change you might want to make.) You must extensively test your change to the 97 | subsystem. Run your change on your desktop, your laptop, your home machine and 98 | every kind of machine you can grab a tip line to. But you can't just be content 99 | with booting a machine with your change -- you must beat the hell out of it. 100 | Sometimes there is a stress test available that you may run, but this _is not a 101 | substitute for writing your own tests_. You should find any standards tests that 102 | might apply to the subsystem and run them. (If you don't know which standards 103 | tests might apply to your change, consult the gatekeepers or the C-team.) You 104 | should review your own changes extensively. Are you obeying all of the locking 105 | rules? What are the locking rules, anyway? Are you building new dependencies 106 | into the subsystem? (This can only be answered with extensive, laborious 107 | cscope'ing -- you cannot rely on code reviewers to pick up subtle new 108 | dependencies.) Review your changes again. Then, print your changes out, take 109 | them to a place where you can concentrate, and review them yet again. And when 110 | you review your own code, review it not as someone who believes that the code 111 | is right, but as someone who is certain that the code is wrong. As you perform 112 | your self-review, look for novel angles from which to test your code. Then test 113 | and test and test. 114 | 115 | It can all be summed up by asking yourself one question: have you reviewed and 116 | tested your change every way that you know how? _You should not even *contemplate* 117 | a putback until your answer to this is an unequivocal YES_.. Remember: you are 118 | always empowered as an engineer to take more time to test your work. You can -- 119 | always take time to do the Right Thing. This is important to avoid the [Quality 120 | Death Spiral](qds.md). You must do your part by delivering *FCS quality all the 121 | time*. 122 | 123 | Does this mean that you should contemplate ritual suicide if you introduce a 124 | serious bug? Of course not -- everyone who has made enough modifications to 125 | delicate, critical subsystems has introduced a change that has induced 126 | expensive downtime somewhere. We know that this will be so because writing 127 | system software is just so damned tricky and hard. Indeed, it is because of 128 | this truism that you _must demand of yourself_ that you not integrate a change 129 | until you are out of ideas of how to test it. Because you will one day 130 | introduce a bug of such subtlety that it will seem that no one could have 131 | caught it. 132 | 133 | And what do you do when that awful, black day arrives? Here's a quick coping 134 | manual from those of us who have been there: 135 | 136 | * Don't pretend it didn't happen -- you screwed up, but your mother still loves you (unless, of course, her home directory is on jurassic) 137 | * Don't minimize the problem, shrug it off or otherwise make light of it -- this is serious business, and we take it seriously 138 | * If someone spent time debugging your bug, thank them 139 | * If someone was inconvenienced by your bug, apologize to them 140 | * Take responsibility for your bug -- don't bother to blame other subsystems, the inherent complexity of illumos, your code reviewers, etc. 141 | 142 | But most importantly, you must ask yourself: _what could I have done 143 | differently_? If you honestly don't know, ask a community member to help you. 144 | We've all been there, and we want to make sure that you are able to learn from 145 | it. Once you have an answer, take solace in it; no matter how bad you feel for 146 | having introduced a problem, you can know that the experience has improved you 147 | as an engineer -- and that's the most anyone can ask for. 148 | -------------------------------------------------------------------------------- /docs/developers/build.md: -------------------------------------------------------------------------------- 1 | # Building illumos 2 | 3 | ## Introduction 4 | 5 | This document will help prepare you to build the source code for illumos. It 6 | assumes some familiarity with development on Unix-like systems. 7 | 8 | !!! note "" 9 | For more detail and background information, please also refer to the 10 | [illumos Developer's Guide](https://illumos.org/books/dev/intro.html). 11 | 12 | You need an illumos-based operating system to build illumos. Cross-compilation 13 | is not supported. 14 | 15 | If you don't have one installed, the quickest way to get started is to download 16 | either [OpenIndiana](https://openindiana.org) or 17 | [OmniOS](https://www.omniosce.org/). Both distributions can be installed in a 18 | VM (e.g., VMware Fusion on macOS) or on a physical machine, and can be used to 19 | build illumos. 20 | 21 | All commands in this guide assume you run them as an unprivileged user. `sudo` 22 | will be prepended to commands which need additional (i.e., `root`) privileges. 23 | On some systems `pfexec` can be used in place of `sudo`, provided your user has 24 | the correct [RBAC profiles](https://illumos.org/man/1/profiles). 25 | 26 | ## Make sure your system is up-to-date 27 | 28 | On a freshly installed system, it is a good idea to make sure you have the 29 | latest version of all operating system components. On both OmniOS and 30 | OpenIndiana, you can update your system by running: 31 | 32 | ``` 33 | sudo pkg update 34 | ``` 35 | 36 | Once the update is complete, you may need to reboot your machine to begin using 37 | the new kernel. 38 | 39 | ## Installing required packages 40 | 41 | Once you have an up-to-date illumos system installed and running, you will need 42 | to install the basic development tools needed to build illumos. The operating 43 | system is currently built with a 44 | [patched version of GCC 10](https://github.com/illumos/gcc/). Distributions may 45 | have their own particular versions of GCC 10 which work, however. 46 | 47 | In addition, GCC 14.2.0 is used as a "shadow" compiler. This improves the 48 | warnings and diagnostics that are found and lets us all work from a common base 49 | towards making it the next primary compiler. 50 | 51 | The list of packages to install depends on which distribution you have 52 | chosen: 53 | 54 | ### OpenIndiana 55 | 56 | On OpenIndiana, the `build-essential` package includes the GCC compilers 57 | and other tools required to build illumos. 58 | 59 | ``` 60 | sudo pkg install build-essential 61 | ``` 62 | 63 | The GCC versions to use can be found in `/usr/gcc/10` and `/usr/gcc/14`. 64 | 65 | ### OmniOS 66 | 67 | On OmniOS, the `illumos-tools` package includes everything you'll need to build 68 | illumos. Make sure you're running at least OmniOS version r151028 or higher. 69 | 70 | ``` 71 | sudo pkg install pkg:/developer/illumos-tools 72 | ``` 73 | 74 | The GCC versions to use can be found in `/opt/gcc-10` and `/opt/gcc-14`. 75 | 76 | ## Preparing your workspace 77 | 78 | You can build the software in any directory, but for the purposes of this guide 79 | we will assume that you have a directory `/code` on your system. This 80 | directory should be owned by the unprivileged user you will use to build 81 | illumos. 82 | 83 | ## Getting the source 84 | 85 | You may use the Git source code management system to retrieve the illumos 86 | source code. Git is installed with the other build tools in a previous 87 | section. Make sure you have about 6 gigabytes of free space for the source 88 | and binaries combined. 89 | 90 | The repository is available from GitHub using the Git source code control 91 | system. The Git repository URI is: 92 | `https//github.com/illumos/illumos-gate.git` 93 | 94 | To check out the source: 95 | 96 | ``` 97 | cd /code 98 | git clone https://github.com/illumos/illumos-gate.git 99 | ``` 100 | 101 | From here on we'll refer to this clone of the repository, i.e., 102 | `/code/illumos-gate`, as your "workspace". 103 | 104 | ## Getting the closed binaries 105 | 106 | There are a small handful of illumos components for which source code is not 107 | available. Over time, we have replaced most of the closed source components 108 | from the Sun era with new open source versions. This work is ongoing. 109 | 110 | ### OpenIndiana & OmniOS 111 | 112 | OmniOS (r151016 or later) and OpenIndiana users have the closed binary files 113 | installed in `/opt/onbld/closed`. The `ON_CLOSED_BINS` environment variable 114 | can be set to refer to this directory without copying it into your workspace. 115 | 116 | ### Other Distributions 117 | 118 | For systems where the closed binaries are not shipped as part of the 119 | development tools packages, you can download the closed binary tar files into 120 | your local illumos-gate workspace yourself: 121 | 122 | ``` 123 | cd /code/illumos-gate 124 | wget -c \ 125 | https://download.smartos.org/pub/build/illumos/on-closed-bins.i386.tar.bz2 \ 126 | https://download.smartos.org/pub/build/illumos/on-closed-bins-nd.i386.tar.bz2 127 | tar xjvpf on-closed-bins.i386.tar.bz2 128 | tar xjvpf on-closed-bins-nd.i386.tar.bz2 129 | ``` 130 | 131 | ## Configuring the build 132 | 133 | The build is configured using an "environment file", a shell script that works 134 | like your `.bashrc` or `.profile`. This script sets various environment 135 | variables that control the build. Some of the variables to set depend on which 136 | distribution of illumos you're using. 137 | 138 | An environment file template is included in `illumos-gate.git` and can thus be 139 | found in your workspace. Make a copy so that we can edit it for use on your 140 | particular build machine. 141 | 142 | ``` 143 | cd /code/illumos-gate 144 | cp usr/src/tools/env/illumos.sh . 145 | vi illumos.sh # use your favourite text editor! 146 | ``` 147 | 148 | The current version of the template is mostly complete, and written such that 149 | it tries to guess sensible defaults for most things. For example, 150 | 151 | - `git describe` is used to set `VERSION` based on the branch and commit 152 | to build 153 | - `git` is also used to set `CODEMGR_WS` to the workspace directory; i.e., 154 | `/code/illumos-gate` in this document. 155 | 156 | ### OpenIndiana 157 | 158 | On OpenIndiana systems, you'll need to add a few more variables to your 159 | environment file to get a complete build with packages you can install. Add 160 | the following to the bottom of your copy of `illumos.sh`: 161 | 162 | ``` 163 | # 164 | # Set a package version number which is greater than the current OpenIndiana 165 | # build number. 166 | # 167 | export PKGVERS_BRANCH=9999.99.0.0 168 | 169 | # 170 | # Set Perl related variables: 171 | # 172 | PERL='/usr/perl5/bin/perl' 173 | export PERL_VERSION="$($PERL -e 'print $^V =~ /^v(5\.[^\.]*).*$/')" 174 | export PERL_PKGVERS="$($PERL -e 'print "-", $^V =~ /^v(5)\.([^\.]*).*$/')" 175 | export PERL_ARCH="$($PERL -MConfig -e 'print $Config{archname}')" 176 | export PERL_ARCH64="$PERL_ARCH" 177 | export BUILDPERL32="$($PERL -MConfig -e 'print $Config{ptrsize} == 4 ? "" : "#"')" 178 | export BUILDPERL64="$($PERL -MConfig -e 'print $Config{ptrsize} == 8 ? "" : "#"')" 179 | ``` 180 | 181 | Note in particular that `PKGVERS_BRANCH` must be a higher number than the one 182 | currently in use on your OpenIndiana system, so that `pkg` and `onu` will 183 | prefer your locally built packages to those from the base distribution. You 184 | can find out the current branch version with `pkg info`: 185 | 186 | ``` 187 | $ pkg info osnet-incorporation | grep Branch: 188 | Branch: 2024.0.0.22411 189 | ``` 190 | 191 | ### OmniOS 192 | 193 | On OmniOS systems, you have the option of using a complete environment file 194 | provided in the developer tool packages. Those files reside in 195 | `/opt/onbld/env/omnios-*`; one for vanilla `illumos-gate.git`, and one for the 196 | OmniOS-specific downstream fork, `illumos-omnios.git`. 197 | 198 | Currently, you may need to set the compiler versions by hand, however. 199 | 200 | If instead you wish to start with the stock environment file template, you'll 201 | need to add the following at the end of your copy of `illumos.sh`: 202 | 203 | ``` 204 | # Set to the current perl version (this is correct for OmniOS r151028) 205 | export PERL_VERSION=5.28 206 | export PERL_ARCH=i86pc-solaris-thread-multi-64int 207 | export PERL_PKGVERS= 208 | 209 | # Set to current python3 version (this is correct for OmniOS r151028) 210 | export PYTHON3=/usr/bin/python3.5 211 | export TOOLS_PYTHON=$PYTHON3 212 | 213 | export SPRO_ROOT=/opt/sunstudio12.1 214 | export SPRO_VROOT="$SPRO_ROOT" 215 | export ONLY_LINT_DEFS="-I${SPRO_ROOT}/sunstudio12.1/prod/include/lint" 216 | export ON_CLOSED_BINS=/opt/onbld/closed 217 | 218 | export __GNUC= 219 | export GNUC_ROOT=/opt/gcc-10/ 220 | export PRIMARY_CC=gcc10,/opt/gcc-10/bin/gcc,gnu 221 | export PRIMARY_CCC=gcc10,/opt/gcc-10/bin/g++,gnu 222 | export SHADOW_CCS=gcc14,/opt/gcc-14/bin/gcc,gnu 223 | export SHADOW_CCCS=gcc14,/opt/gcc-14/bin/g++,gnu 224 | 225 | SMATCHBIN=$CODEMGR_WS/usr/src/tools/proto/root_$MACH-nd/opt/onbld/bin/$MACH/smatch 226 | export SHADOW_CCS="$SHADOW_CCS smatch,$SMATCHBIN,smatch" 227 | 228 | # This will set PKGVERS_BRANCH to match the release on which you are building, allowing ONU. 229 | export PKGVERS_BRANCH=$(grep '^VERSION=r' /etc/os-release | cut -c10-).0 230 | ``` 231 | 232 | You must also make sure you disable the (optional) IPP and SMB printing support 233 | by commenting out the following lines in the stock template: 234 | 235 | ``` 236 | # export ENABLE_IPP_PRINTING= 237 | # export ENABLE_SMB_PRINTING= 238 | ``` 239 | 240 | If you do need the optional IPP and SMB printing support, you must install and 241 | provide Apache, APR, and APR-util, as well as IPP or CUPS headers for SMB 242 | printing. 243 | 244 | ## Starting the build 245 | 246 | You are now ready to start the illumos build. 247 | 248 | The build itself may take anywhere from twenty minutes to a few hours, 249 | depending on the performance of your system. It is generally good advice to 250 | run the build under a session manager like `screen` or `tmux` so that you can 251 | detach and reattach without interrupting the build. 252 | 253 | Run the following command to start the full build: 254 | 255 | ``` 256 | cd /code/illumos-gate 257 | time ./usr/src/tools/scripts/nightly illumos.sh 258 | ``` 259 | 260 | The build creates a _lot_ of output, so rather than emit it directly to the 261 | terminal it is saved in a log file: `log/nightly.log` in your workspace. 262 | 263 | You can follow the log file with `tail` as the build progresses; e.g., 264 | 265 | ``` 266 | tail -F /code/illumos-gate/log/nightly.log 267 | ``` 268 | 269 | If you only want to see warning or error messages from the build, you might 270 | try: 271 | 272 | ``` 273 | tail -F /code/illumos-gate/log/nightly.log | grep -5 '(error|warning).*: ' 274 | ``` 275 | 276 | Once the build is complete, the log files (including `nightly.log`) are moved 277 | to a unique directory including the datestamp; e.g., 278 | `log/log.2019-02-08.17:50`. A `latest` symlink is also created, so 279 | `log/latest/nightly.log` always refers to the most recently completed build 280 | log. 281 | 282 | A summary of the build is saved in the `log/latest/mail_msg` file. If you see 283 | any errors in this file, you can find the full context by searching for the 284 | same message in the full `nightly.log`. 285 | 286 | The `mail_msg` file should be included when submitting a patch to demonstrate a 287 | successful build with no errors or warnings. 288 | 289 | ## Performing an incremental build 290 | 291 | Once you have completed a full `nightly` build, you can perform an incremental 292 | build without discarding files that are already built. This allows you to make 293 | some changes to the code and rebuild only the files to which you have made 294 | changes. 295 | 296 | The `-i` flag to `nightly` performs an incremental build: 297 | 298 | ``` 299 | cd /code/illumos-gate 300 | time ./usr/src/tools/scripts/nightly -i illumos.sh 301 | ``` 302 | 303 | !!! note 304 | Before submitting a patch, you must perform a full (i.e., not incremental) 305 | build. 306 | 307 | ## Installing your build 308 | 309 | The build process generates packages that you can install on your system with 310 | the developer system update tool, [onu](https://illumos.org/man/1ONBLD/onu). 311 | Depending on the `NIGHTLY_OPTIONS` you chose earlier, you will have packages in 312 | one of two locations within your workspace: 313 | 314 | - `packages/i386/nightly` for a DEBUG build 315 | - `packages/i386/nightly-nd` for a non-DEBUG build 316 | 317 | Once you locate your packages, you can install them with `onu`; e.g., for a 318 | DEBUG build: 319 | 320 | ``` 321 | sudo /code/illumos-gate/usr/src/tools/proto/root_i386-nd/opt/onbld/bin/onu \ 322 | -t "$(date -u +nightly-%Y%m%d-%H%MZ)" \ 323 | -d "/code/illumos-gate/packages/i386/nightly" 324 | ``` 325 | 326 | This creates a build environment with a name that includes the date and time in 327 | UTC; e.g., `nightly-20190415-0333Z`. If your installation was successful, you 328 | can `reboot` to try the new bits! You can use 329 | [beadm(8)](https://illumos.org/man/8/beadm) to list or modify the boot 330 | environments on your machine. 331 | 332 | !!! note 333 | For OpenIndiana and OmniOS it is critical that `PKGVERS_BRANCH` is set 334 | correctly in your `nightly` environment file, or `onu` will likely 335 | fail to correctly install packages. See above on [configuring your 336 | environment file](#configuring-the-build) 337 | 338 | ## In case of emergency 339 | 340 | The illumos project contains a _lot_ of software with a long history. The 341 | build system is quite complicated, and not always extremely robust in the face 342 | of unexpected changes on the build machine. 343 | 344 | If you're experiencing a problem with the build that you cannot immediately 345 | explain, here are a few things to try: 346 | 347 | ### Up-to-date build system 348 | 349 | Make sure you're running the latest version of your illumos distribution, [as 350 | described above](#make-sure-your-system-is-up-to-date). If you're hitting a 351 | bug in the build tools it might well have been fixed already. 352 | 353 | Even if this doesn't fix your problem, it's easiest for members of the 354 | community to help you out when you're running recent software. 355 | 356 | ### Missed Flag Day 357 | 358 | As people work on the system it is occasionally necessary to make a change that 359 | will impact other developers. We try to communicate those changes in "flag 360 | day" e-mail messages to the [developer mailing list](../community/lists.md). A 361 | list of these announcements also appears [here on the site](flagdays.md). 362 | 363 | ### Reach out for help 364 | 365 | If you're still having trouble, remember that you're not alone! Other members 366 | of the community may be hitting the same problem, or they may just know how to 367 | help. 368 | 369 | Members of the community are usually available [in IRC](../community/index.md) 370 | or [on the mailing lists](../community/lists.md). When asking for help, it's a 371 | good idea to have ready the contents of your `mail_msg` file, or any other 372 | build error output you see on your machine. 373 | -------------------------------------------------------------------------------- /docs/developers/flagdays.md: -------------------------------------------------------------------------------- 1 | # Flag Days 2 | 3 | The following are notices sent to the [developer@ mailing 4 | list](../community/lists.md) to attract attention for specific changes, or call 5 | out specific actions that developers may need to perform to continue working 6 | with the sources. Such messages should also be archived here, for future 7 | reference. 8 | 9 | ## 2024 10 | 11 | * [2024-09-03 Heads Up: Default VERSION now set in nightly, not env/illumos](https://illumos.topicbox.com/groups/developer/Tc3ad7b29c06f4cbb/heads-up-default-version-now-set-in-nightly-not-env-illumos) 12 | * [2024-03-14 FLAG DAY: once 16344 is on your build machine, your source trees must match](https://illumos.topicbox.com/groups/developer/T56cc2d3d142efefc-Mc73ff4dc1f47f5ee31c556cc/flag-day-once-16344-is-on-your-build-machine-your-source-trees-must-match) 13 | 14 | ## 2023 15 | 16 | * [2023-04-13 Heads Up: Moving to GCC 10 Primary](https://illumos.topicbox.com/groups/developer/Tc01851d253a5fd32-M7c815b3587c70b506af8de8f/heads-up-moving-to-gcc-10-primary) 17 | 18 | ## 2020 19 | 20 | * [2020-04-21 FLAG DAY: awk(1) is now nawk(1), oawk(1) is just oawk(1)](https://illumos.topicbox.com/groups/developer/T64ce92e0a7e33eaf-Mf53d4b01ac8a35bdc20db3b1) 21 | * [2020-01-27 Heads up: nightly script location change](https://illumos.topicbox.com/groups/developer/T5cfdb34398963924-Mcd0e6aa293ff3236da94d279) 22 | * [2020-01-07 HEADS-UP: Building illumos-gate on OmniOS bloody](https://illumos.topicbox.com/groups/developer/T9c1d1989fee2de8c-M0deec068f58bd59e1ff10998) 23 | 24 | ## 2019 25 | 26 | * [2019-09-28 Heads-up: 64-bit perl modules are now produced by default](https://illumos.topicbox.com/groups/developer/T344a3954156dcc3f-Ma5b9e0b51e04c72d705cb6b9/heads-up-64-bit-perl-modules-are-now-produced-by-default) 27 | * [2019-07-18 Flag day: smatch on by default](https://illumos.topicbox.com/groups/developer/T230eeec7670e9731/flag-day-smatch-on-by-default) 28 | * [2019-06-17 9996 use GCC 7 as default primary compiler](https://illumos.topicbox.com/groups/developer/Tb8fb5c3dbe5867d2/flag-day-9996-use-gcc-7-as-default-primary-compiler) 29 | * [2019-02-15 HEADSUP or something:)](https://illumos.topicbox.com/groups/developer/T97536ca6fe4642cf-M06a0b547f52f49dd36a36817) 30 | * [2019-02-11 Heads Up: 6885 CTF,Everywhere Part 1](https://illumos.topicbox.com/groups/developer/T6486c03f2141110b-Mf57519de2a281a19839fb9bb) 31 | * [2019-02-01 HEADS UP — git pbchk might erroneously complain about man pages](https://illumos.topicbox.com/groups/developer/T69c22312eb98826d-Mf831faf3e0f1897f02a4f752) 32 | * [2019-01-07 HEADS UP: loader FB console](https://illumos.topicbox.com/groups/developer/T911a78d635e5f1c2-M00e9a1373e8cfad037cabda1) 33 | 34 | ## 2018 35 | 36 | * [2018-12-08 heads up/flag day or like:)](https://illumos.topicbox.com/groups/developer/Tdf13bdc744649c5f-M4ee064264f0d974d07dfb0c6) 37 | * [2018-11-27 HEADS-UP GCC 7 shadow compiler; no more lint](https://illumos.topicbox.com/groups/developer/T6342764347f4dcef-Mf2b1afa24c9dd7fdb66f84f3) 38 | * [2018-10-29 Heads-up: Python3 module builds](https://illumos.topicbox.com/groups/developer/Tdb33e9c1d29c7304-M4ac03020d9f578164423a459) 39 | * [2018-10-17 Heads-up: libbe.so be_list() function change](https://illumos.topicbox.com/groups/developer/Te732a5648df5e62c-M76c17c85869ced3e2806f1a3) 40 | * [2018-10-13 HEADS-UP: Native demangling support](https://illumos.topicbox.com/groups/developer/Tc731cdb14c9773bd-M56c2145047fe78afa51c367a) 41 | * [Update](https://illumos.topicbox.com/groups/developer/Tdb33e9c1d29c7304-M26019538b67e99b7339fbcd5) 42 | * [2018-10-13 headsup/flag day or something:)](https://illumos.topicbox.com/groups/developer/Tfac258762db8be3d-M6b31819726d1b52f63c8ba75) 43 | * [2018-10-04 cw changes](https://illumos.topicbox.com/groups/developer/T3f8ef7ef260b45ca-Mae7d2e0e2d624ed89309c810) 44 | * [2018-08-29 Flag day for those building gate on OmniOS](https://illumos.topicbox.com/groups/developer/T1709fef345140a25-M86fa27124e7d01377eaf6070) 45 | * [2018-12-10 FLAG DAY - can't build gate post-9997 w/o idn headers](https://illumos.topicbox.com/groups/developer/T731e849574ce3775-Me2ed5d747fa73c67ffb25480) 46 | * [2018-04-04 Heads-up! re 1575 untangle libmlrpc](https://illumos.topicbox.com/groups/developer/Te1b815fee84f54b8-M704bcc1fe3265faa297c7112) 47 | * [Update](https://illumos.topicbox.com/groups/developer/Te1b815fee84f54b8-M91e6ecebc4b588ee5b82205ck) 48 | * [2018-01-25 HEADS UP: Removal of 32-bit x86 kernel](https://illumos.topicbox.com/groups/discuss/Tbe0c8f87eef5a3f2-M62fb2690bf9ab15b373ac252) 49 | 50 | ## 2017 51 | 52 | * [2017-03-02 Heads up: 7788 loader: zfs boot should check for provided fstype](https://illumos.topicbox.com/groups/developer/T777120f9722d29ec-Me682f918794422feb60d1026) 53 | * [2017-03-07 HEADS UP: Removal of on and rpc.rexd](https://illumos.topicbox.com/groups/developer/T5c717023124cd84c-Mcd82a9c21925d35e9f070fbf) 54 | * [2017-03-10 HEADSUP: updates 7720 & 7715](https://illumos.topicbox.com/groups/developer/T5742aa002fee01cd-Mc6b173e124870adfe3bb9ee0) 55 | * [2017-09-27 Heads Up: Build changes required for UEFI](https://illumos.topicbox.com/groups/developer/T5f37e8c8f0687062-Mcec43129fb017b70a035e5fd) 56 | 57 | ## 2016 58 | 59 | * [2016-02-23 HEADS UP: 3661 Sync mDNS with upstream](https://illumos.topicbox.com/groups/developer/T0fe7ccd83b52360f-M9e141539303b3d1d3387cea6) 60 | * [2016-07-14 Heads-up: 6950 ARC should cache compressed data](https://illumos.topicbox.com/groups/developer/T272cdf508b6b81a2-Mba1feca2ddb6166deb0543d2) 61 | * [2016-08-22 FLAG DAY: EOF of SunSSH](https://illumos.topicbox.com/groups/developer/T6f16eb21a4811986-Mfee532c0afe8129432f94e51) 62 | * [2016-08-31 HEADS UP: illumos-gate debug variant is available in hipster](https://illumos.topicbox.com/groups/developer/T2e8584d5a260331a-Mbf765d34a90938088a56a629) 63 | * [2016-09-23 Heads Up: Loader Project Phase 1 has Integrated](https://illumos.topicbox.com/groups/announce/T4d4a7c0c152dc84e-Mdcb9a5ed1e44c35c1be356a8) 64 | * [2016-09-30 FLAG DAY - 5969 update illumos-gate to use python2.7](https://illumos.topicbox.com/groups/developer/T542d1d90ca0109b5-Mc5dec471c16802a7f5786eb4) 65 | * [2016-10-15 HEADS-UP: illumos supports ASLR and other forms of exploit mitigation.](https://illumos.topicbox.com/groups/developer/Td7ae6bbc978e8749-M465db25d9ce78c5b783db628) 66 | * [2016-11-09 HEADS UP: new driver for Intel WifiLink 4965/100/1000/2000/5000/6000](https://illumos.topicbox.com/groups/developer/T5976a75d60e18043-Mc8857ebc6b888b514f3ba6c1) 67 | * [2016-12-02 headsup for shell setup and /etc/skel](https://illumos.topicbox.com/groups/developer/T53ac4bf762404687-M2dbb97c04b9ea5d0e671752b) 68 | * [2016-12-16 HEADS UP illumos GCC 4.4.4-il-4](https://illumos.topicbox.com/groups/developer/T1d32755bbf8f4877-M8cc1acbab4e643657df39b0f) 69 | 70 | ## 2015 71 | 72 | * [2015-02-20 Heads-up: Flag day for build machines that provided (only) Apache 1.3 headers.](https://illumos.topicbox.com/groups/developer/T7a6a76ed9cfbcc29-Meb99af0c9792c73ba1287fba) 73 | * [2015-02-25 HEADS UP: machid commands removed](https://illumos.topicbox.com/groups/developer/T7878bd671766e847-Me98b64861c0fe355be90fb64) 74 | * [2015-02-26 HEADS-UP: ctf tools no longer act like strip(1)](https://wiki.illumos.org/pages/viewpage.action?pageId=4456898) 75 | * [2015-02-26 HEADS UP: illumos supports booting from EFI-labeled disks now, including large disks and whole-disk vdevs](https://illumos.topicbox.com/groups/discuss/T5519706837295174-M748e6f7936f913362fa214b6) 76 | * [2015-03-23 FLAG DAY for Timezone](https://illumos.topicbox.com/groups/developer/T16f834439e822a91-M870beda295eb218393632f19) 77 | * [2015-05-05 FLAG DAY - 4719 affects nightly, package, and poold](https://illumos.topicbox.com/groups/developer/Teea8f3cfd748217f-M400a3ed3320b75363f292371) 78 | * [2015-05-05 HEADS UP -- illumos-gate can now be built on OmniOS r151014 or later](https://illumos.topicbox.com/groups/developer/Taaeaefa1cc396b5b-M3b193640c75060495c008327) 79 | * [2015-06-04 Head-up! 5917 User-mode SMB server](https://illumos.topicbox.com/groups/developer/Tb6cc18088fd358f1-M273fc1e984ba53e3d4ee8197) 80 | * [2015-07-13 FLAG DAY: make/dmake are now part of illumos](https://illumos.topicbox.com/groups/developer/Tff3185ad0ccac827-M6c0c6ef3eab14764747331fa) 81 | * [2015-10-17 Heads up: Impact of illumos 5876 (sys/regset.h pollutes name space)](https://illumos.topicbox.com/groups/developer/T67d5ea03da63f418-Mf62633e2d10aff0a79e23c51) 82 | * [Update](https://illumos.topicbox.com/groups/developer/T67d5ea03da63f418-Mdafaf96b7c5eaf5ecfe21f60) 83 | * [2015-10-30 HEADS UP: Java kerberos GUI (gkadmin) gone](https://illumos.topicbox.com/groups/discuss/T2d5fc8dea823ec2a-Mbcac113fa34ae738b1ed1cc7) 84 | 85 | ## 2014 86 | 87 | * [2014-01-28 HEADS-UP: GCC is now the default compiler](https://illumos.topicbox.com/groups/developer/T87bcf50a95d4efad-M164f2ceb9ebde4bf51c09bd8) 88 | * [2014-02-19 HEADS UP: Nightly will no longer bringover from Subversion, build SVR4 packages, or support the old SFW gate](https://illumos.topicbox.com/groups/developer/T6b028487e28cdc08-Mfaf15d66e9e5d71a945166ae) 89 | * [2014-02-19 HEADS UP: nightly now exits non-0 when pretty much anything goes wrong](https://illumos.topicbox.com/groups/developer/T9f43e3e5e905816a-M0eb03a04e26c8a789507d936) 90 | * [2014-06-09 HEADS UP: legacy interfaces removed](https://illumos.topicbox.com/groups/developer/Tbe78db381254ff48-M2f8b02d9193df45af26ababe) 91 | * [2014-07-21 HEADS UP: Mandoc integrated](https://illumos.topicbox.com/groups/developer/T670416d260669b5f-Mf6f7cf336b0f904daba610fe) 92 | * [2014-08-15 HEADS UP / FLAG DAY: legacy (K&R) prototypes are gone](https://illumos.topicbox.com/groups/developer/Tf847ae5cafc8c74a-M69b477bda4a1cc58ad92dd27) 93 | * [2014-08-16 HEADS-UP removal of ntfsprogs and parted](https://illumos.topicbox.com/groups/developer/T92767f286ea087ce-M0385a6c965c98cdc3a9fc18a) 94 | * [2014-10-18 HEADS UP: libm integrated](https://wiki.illumos.org/display/illumos/2014-10-18+HEADS+UP%3A+libm+integrated) 95 | 96 | ## 2013 97 | 98 | * [2013-08-16 heads up: 3915 build changes, C++](https://illumos.topicbox.com/groups/developer/Te6fe6a2ff3b0e823-M770db3cef8d9e331fe409472) 99 | 100 | ## 2012 101 | 102 | * [2012-06-15 Illumos will now build with GCC 4.4.4 + patches](https://wiki.illumos.org/pages/viewpage.action?pageId=1147747) 103 | * [2012-09-21 FLAG DAY: Default GCC version is now 4.4.4](https://wiki.illumos.org/display/illumos/2012-09-21+FLAG+DAY%3A+Default+GCC+version+is+now+4.4.4) 104 | * [2012-09-22 FLAG DAY: Many more GCC warnings now enabled](https://wiki.illumos.org/display/illumos/2012-09-22+FLAG+DAY%3A+Many+more+GCC+warnings+now+enabled) 105 | * [2012-10-18 HEADS UP: onbld has switched to Python 2.6](https://wiki.illumos.org/display/illumos/2012-10-18+HEADS+UP%3A+onbld+has+switched+to+Python+2.6) 106 | 107 | ## 2011 108 | 109 | * [2011-03-04 Heads up: iSCSI UNMAP support](http://lists.illumos.org/pipermail/developer/2011-March/001604.html) 110 | * [2011-05-14 Heads-up: Resurrect the ZFS "aclmode" property](http://lists.illumos.org/pipermail/developer/2011-May/002185.html) 111 | * [2011-09-08 HEADS UP: Mailing List Behaviour](https://illumos.topicbox.com/groups/discuss/Tba305a9c789e473f-M63b2d01c164101f24b5cd174) 112 | 113 | ## 2010 114 | 115 | * [2010-08-15 HEADS UP: Illumos no longer depends upon the 'extras' pkg repository](http://lists.illumos.org/pipermail/developer/2010-August/000169.html) 116 | * [2010-08-19 HEADS UP: opensolaris.sh updated & renamed](http://lists.illumos.org/pipermail/developer/2010-August/000241.html) 117 | * [2010-08-30 HEADS UP: English Locales Available](http://lists.illumos.org/pipermail/developer/2010-August/000337.html) 118 | * [2010-09-07 HEADS UP: use ssh for hg](http://lists.illumos.org/pipermail/developer/2010-September/000475.html) 119 | * [2010-09-12 FLAG DAY: signed crypto removed](http://lists.illumos.org/pipermail/developer/2010-September/000532.html) 120 | * [2010-09-16 HEADS UP: new process when nuking closed bits](http://lists.illumos.org/pipermail/developer/2010-September/000544.html) 121 | * [2010-09-20 HEADS UP: netservices is gone](http://lists.illumos.org/pipermail/developer/2010-September/000554.html) 122 | * [2010-10-08 HEADS UP: locale data pushed](http://lists.illumos.org/pipermail/developer/2010-October/000637.html) 123 | * [2010-11-08 Heads up: perl 5.8.4 removal](http://lists.illumos.org/pipermail/developer/2010-November/000884.html) 124 | * [2010-11-18 HEADS UP: solistice enterprise agent removed](http://lists.illumos.org/pipermail/developer/2010-November/001002.html) 125 | * [2010-11-19 HEADS UP: sparc build fixed, niagra crypto removed](http://lists.illumos.org/pipermail/developer/2010-November/001006.html) 126 | * [2010-12-04 HEADS UP: open source iprb](http://lists.illumos.org/pipermail/developer/2010-December/001060.html) 127 | * [2010-12-04 HEADS UP: new timegm() and strptime/strftime options](http://lists.illumos.org/pipermail/developer/2010-December/001061.html) 128 | * [2010-12-15 HEADS UP: new "sed" integrated](http://lists.illumos.org/pipermail/developer/2010-December/001152.html) 129 | -------------------------------------------------------------------------------- /docs/images/build-multibug-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/build-multibug-diagram.png -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo.png -------------------------------------------------------------------------------- /docs/images/logo/BigHighResPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/BigHighResPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/BigHighResPhoenixRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/BigHighResPhoenixRGB.png -------------------------------------------------------------------------------- /docs/images/logo/DarkBigHighResPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkBigHighResPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/DarkLargePhoenixLogotypeRGB.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkLargePhoenixLogotypeRGB.eps -------------------------------------------------------------------------------- /docs/images/logo/DarkMediumPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkMediumPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/DarkSmallPhoenixLogotypeRGB.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkSmallPhoenixLogotypeRGB.eps -------------------------------------------------------------------------------- /docs/images/logo/DarkSmallPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkSmallPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/DarkSmallerPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkSmallerPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/DarkTinyPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/DarkTinyPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/Illumos-web-126px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Illumos-web-126px.png -------------------------------------------------------------------------------- /docs/images/logo/Illumos-web-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Illumos-web-32px.png -------------------------------------------------------------------------------- /docs/images/logo/Illumos-web-63px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Illumos-web-63px.png -------------------------------------------------------------------------------- /docs/images/logo/Illumos-web-dark-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Illumos-web-dark-32px.png -------------------------------------------------------------------------------- /docs/images/logo/Illumos-web-dark-63px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Illumos-web-dark-63px.png -------------------------------------------------------------------------------- /docs/images/logo/Illumos_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Illumos_header.png -------------------------------------------------------------------------------- /docs/images/logo/LargePhoenixLogotypeRGB.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/LargePhoenixLogotypeRGB.eps -------------------------------------------------------------------------------- /docs/images/logo/MediumPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/MediumPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/Phoenix64x64-RGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/Phoenix64x64-RGB.png -------------------------------------------------------------------------------- /docs/images/logo/PhoenixRGB.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/PhoenixRGB.eps -------------------------------------------------------------------------------- /docs/images/logo/PhoenixRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/PhoenixRGB.png -------------------------------------------------------------------------------- /docs/images/logo/SmallPhoenixLogotypeRGB.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/SmallPhoenixLogotypeRGB.eps -------------------------------------------------------------------------------- /docs/images/logo/SmallPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/SmallPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/SmallerPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/SmallerPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/images/logo/TinyPhoenixLogotypeRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illumos/docs/741ac384cfe61d82b484d56990d784ca28579351/docs/images/logo/TinyPhoenixLogotypeRGB.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | ![logo](images/logo.png) illumos is a Unix operating system which provides 2 | next-generation features for downstream [distributions](about/distro.md), 3 | including [advanced system debugging](http://dtrace.org/guide/), [next 4 | generation filesystem](http://open-zfs.org/), networking, and virtualization 5 | options. 6 | 7 | Please see the [about](about/index.md) page to learn more about illumos! 8 | 9 |
10 | 11 | These documents are part of the illumos documentation project and replace the 12 | old illumos wiki. The source for the documentation is available on github, in 13 | the [illumos/docs](https://github.com/illumos/docs) repository. If you'd like 14 | to edit or expand the documentation, we [welcome 15 | contributions](./contributing/docs.md)! 16 | -------------------------------------------------------------------------------- /docs/security/index.md: -------------------------------------------------------------------------------- 1 | # illumos Security Information 2 | 3 | ## Introduction 4 | 5 | We take security issues seriously, and encourage users and developers alike 6 | to report them. 7 | 8 | ## Reporting security incidents 9 | 10 | Please send mail to [security@illumos.org](mailto:security@illumos.org) 11 | 12 | ``` 13 | pub 4096R/6CAD420D 2021-09-01 [expires: 2025-08-31] 14 | uid illumos security (For contacting the illumos security response team) 15 | 16 | -----BEGIN PGP PUBLIC KEY BLOCK----- 17 | 18 | mQINBGEviyMBEACyE3F2dgeSIHRN7eB8BTUsdbNX2ZaBjiBo0dqjdH49wFaYO57J 19 | B3oyhdCxwJEswY/pNPbTC7m6cWpHsMJCsDvztbxRwQvRi/jI8f9FcojoFY7nKRzA 20 | Tz/uJxCcxejHRw61MHCH2JplCK/ejYS/vbVT0mJ8XQYuMViVVJ+GmMNXXosAeq65 21 | GYWls0H0kzzaUQdvkehFhGVyLgxqv1CKovvIp8KRMyvT+fytEIrywCRYu9AdwNTt 22 | 2BxyCyg6HlJiTmzDYWD0Bp0vkQPWM33MdscQ1YF03iKhxhPHFCJKfklFF8GeqXun 23 | xazvvu2KOJrRYXd+yUT+b4jBermGGN8Ipwj5/kLZiEsAeYDOC+s+Sr5apuoMbFcO 24 | ygig0zDodBjLkA+Izsq+WViDPlSkJHhAf2fgruNWL52KxlMHjhWjP52+MSqriQw0 25 | tw2/9iA7PuYq51DLPIBFHg6SX75MNb8VixKneBvHZuftiv+lh8H+4hz0lnKo3VBA 26 | AJyem76Uwp5Co4/OL1UseQgop7dIUf0XupLTu4jJ2906HNp0kKYuLjdAB1v4//WB 27 | RSZQNirG5Zos6UpNl1vcjtKFfjQcsrzuPr8tN6rsbB/RSO2T+5UZiV2UfhQbx77d 28 | g3bN6uD8tqabWIcR2WTcPmsQ96nnumvPvE6PhrJCq8jq+gwzBiRHfeRDJwARAQAB 29 | tFtpbGx1bW9zIHNlY3VyaXR5IChGb3IgY29udGFjdGluZyB0aGUgaWxsdW1vcyBz 30 | ZWN1cml0eSByZXNwb25zZSB0ZWFtKSA8c2VjdXJpdHlAaWxsdW1vcy5vcmc+iQI+ 31 | BBMBAgAoBQJhL4sjAhsDBQkHhM4ABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK 32 | CRDW0anWbK1CDcPoEACuS3lOSjy7/qxF9vZATijAsI1SYo4ZHSYPULg/SNazQKJy 33 | k6ItzbLAc4rCiW027n9XlJb+E0BQ0amMoWiOQg7SFhxfin4C+/XDeOAZ20gVfkYA 34 | yAKd+9oEsh4uDbFE5BCQ9gEs5ayjozKFU/RebpopexGDa09FkE2pKzpnnmmr63mk 35 | 5qyzV4tlo85DR13w4ty6ssAm/juupl4LJ0GKPPAYokRUZ9hyuEMtQWiUGHKbQ+g6 36 | 4aOkN6WrIYQ2w0yQgjwAp78Wa19Bxo+QohCb715xEqxxLdpFZf8YnCenKP45JBaS 37 | uuxu+4OptfD28j5AiJucAoXd/cmFTlNjnz3/DBZw0IlIgKY98xjV2IXMQQwKhbVG 38 | nHMzpVvaytWS6oGYvm6vHB3CcWTBKMUEedyfnbnIT5XEKqBQ+jcW9eH8G9mOiZpq 39 | LZAwaJKAjdYx6BlKg0OURbVeStGIUygC4KPMgguKYbQzhwiep0JrR+bvlRRFpk6J 40 | s96CgFREs7fT/1gcpw+ydSzHDcCwojBK+zoGqm2Gubt+NowvadKLFD2nJytboVEc 41 | O/bchj0sv4/5Tn77Y16RY7D51x7CJ/uTKLEnCjMvb60VvvgnwXmT0n4WiMT0TIUU 42 | hjZZsmE3N8/58h0dhobUpCBfrpGQXiGZzjw1DpRscZzCHQIgD4f9UI2KIVStlrkC 43 | DQRhL4sjARAAubkDJQKuwGY6/Q3S1ixqJAJil7ANy0LLokt9NL/m0IWiCDPP/uPM 44 | zdMk+F82aw4H4qWGUpn3fs4jLh187q76f0Uz6PFdyoltULK0HGiOlHhYAXfGh5T4 45 | o92/m81fV66T4jI/b0doo525F7/6JK9gfBv4Kc/herGZdV9bMkgRf0rC86Aqj6Rg 46 | WcDSMv/eV0Uh2zjtA0qxynmI5R2itlF8dUn3TXsR+lQQUB9NYEsr3IeIYOaidFs6 47 | O4fjVH1DW12bz5pXz1ZZeWCJNgjNhy4AIK2tXLIirfHU7bd5nyXAOF+CQciY5lZT 48 | fYXCBH7x/aPMSHX69EnJEKwYjQ9AM2/MEmQXKziDMWYlXeGBfEEOVpxfHNJIpAVm 49 | yjp6zoNGEVepCATYG2/eQ4tEvfzu/bLmiTXQcZ9sF+1buOgAKzeC1A0BGXJ7a4Fv 50 | ckFR86LFNT+qodM5ioOCsjcX85dhk7DwWRM6mFwif/Oojg0yTJ+lsqf61/5+yvi1 51 | BJDXxECIT+5SdJSq5Emrj/mkRzo9XhjaeCRBGpgwTOInZGWmUmfMJfIVYaTd5I/9 52 | /xBKuRhLEokn9a0vf1CWjkbPrIXAiB2lfbQZJoZIFPa0fV1gdc8B0fzemcUYegBt 53 | FXW2a/LQz8lN929gDc9wK01OBYsGoDfSY8OdL8nrYU8VGKWe5wFLUpEAEQEAAYkC 54 | JQQYAQIADwUCYS+LIwIbDAUJB4TOAAAKCRDW0anWbK1CDUVCD/4y1r5WW4c4FzCR 55 | ZaYN5zdpkYKGyxreakFSnzoKjPfQ9DpRAw3XmkgpSofJ+hNqpUAJ03X6m7f4RHf1 56 | cOg69WxZF3XH+nXCO21cYQVn+zleFKCevF8M7UfSyDDi322T2j34yvSnnqGQfCwf 57 | iba61KNqEmPxpXjQcZUv2F/z8jxCXpEMNBRcKFUwHbqmjTJcPXCMzLAv6eYF2UTF 58 | Xsbk8VoSKKurIAV/RVTNsr9Oj3h+O0k2zfRFlpNdgeA3kURDsItLJc9K+JlN2kw7 59 | fYhQMmdZa1htkvfaUpVf7CK2twPmTx6tVhz+HHnkP+Q4ro7S+IsK07UZZAPtuK+D 60 | DzLQIDSg5OGHVEuB6DWOSgVxiACplWtQ98cuxVdvIeXrlpPK5VGIEfdtuSc+9GHo 61 | gHVj0l70Ca2la2oov88YWGseBhqljVbnLT6L32eF51eYK4mvbMIBsPTNNG1wM0ag 62 | qYF2HJWleacZbg4+JqKWo3ixvbZPsCS1lpt3ig0Wd10Zqm+4k0y66iHjYQJUsU3E 63 | baFOHzHy590Pyj2TQtxUrmkZPaUJ2FkkDDGo7oN0uZ8BTMsXfw3sZ+BF1bi/0o77 64 | 3gkEJurE/UoO7QRPF2nx7MVRqKzuu6whYHJq/vlri6UAhHNyq7usEI+fWJh550fv 65 | IPDPDJJdKnmWVKSTbKuiFW8yq8aMsg== 66 | =cdqg 67 | -----END PGP PUBLIC KEY BLOCK----- 68 | 69 | ``` 70 | 71 | ## Recent vulnerabilities 72 | 73 | - 74 | [CVE-2023-31284](https://nvd.nist.gov/vuln/detail/CVE-2023-31284) 75 | ddi_parse needs len [Bug 76 | 15586](https://illumos.org/issues/15586) 77 | 78 | - 79 | [CVE-2019-9579](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9579) 80 | Access problem with SMB server [Bug 81 | 10506](https://illumos.org/issues/10506) 82 | 83 | - `dls_unbind()` needs better checking [Bug 84 | 10543](https://illumos.org/issues/10543) 85 | 86 | ## Advisory information 87 | 88 | ## How to update your system 89 | 90 | Updating is distribution-dependent. Please consult your distribution's 91 | documentation for how best to update. 92 | -------------------------------------------------------------------------------- /docs/stylesheets/illumos.css: -------------------------------------------------------------------------------- 1 | .md-header { 2 | background-color: #544a58; 3 | } 4 | 5 | .md-logo img { 6 | height: 70px !important; 7 | width: 113px !important; 8 | } 9 | 10 | .md-sidebar--primary .md-nav__title { 11 | background-color: #544a58 !important; 12 | color: #fff !important; 13 | } 14 | 15 | a:hover, 16 | .md-nav__link:hover { 17 | color: #f42 !important; 18 | } 19 | 20 | .md-typeset h1:target:before, 21 | .md-typeset h2:target:before, 22 | .md-typeset h3:target:before, 23 | .md-typeset h4:target:before, 24 | .md-typeset h5:target:before, 25 | .md-typeset h6:target:before { 26 | margin-top: -116px !important; 27 | padding-top: 116px !important; 28 | } 29 | -------------------------------------------------------------------------------- /docs/user-guide/bugs.md: -------------------------------------------------------------------------------- 1 | # Bug Trackers 2 | 3 | | Project | Description | 4 | |---------|-------------| 5 | | [illumos-gate](https://www.illumos.org/projects/illumos-gate/issues) | Core. Kernel, userland, drivers, etc. | 6 | | [OpenIndiana](https://www.illumos.org/projects/openindiana) | Distribution-specific | 7 | | [SmartOS Bugview](https://smartos.org/bugview/) | Distribution-specific, read-only JIRA mirror | 8 | | [SmartOS GitHub](https://github.com/TritonDataCenter/smartos-live/issues/) | Distribution-specific, public issues | 9 | | [OmniOS](https://github.com/omniosorg/omnios-build/issues) | Distribution-specific | 10 | | [SmartOS pkgsrc](https://github.com/TritonDataCenter/pkgsrc/issues) | Cross-platform packages | 11 | 12 | # How to report problems 13 | 14 | Before creating new issues in the bug tracker, please perform a search to 15 | determine if the problem is already known, or resolved in a newer version of 16 | the software. 17 | 18 | You can [report a new 19 | issue](https://www.illumos.org/projects/illumos-gate/issues/new) using our 20 | issue tracker. 21 | 22 | A good issue report includes: 23 | 24 | * Steps for reproducing the problem, in as much detail as possible. 25 | * Information about your system software and hardware. 26 | * For crashes, the contents of the crash information file from the above 27 | section. 28 | 29 | Please paste any error messages, or the output of `::msgbuf` from `mdb -k`, 30 | directly in the bug description. 31 | 32 | # Examples of bug fixing 33 | 34 | [Ryan Zezeski](https://zinascii.com/) goes through fixing a bug in ZFS in this "illumos Day" talk. 35 | ([video](https://www.youtube.com/watch?v=HXjIz-RzhK8), [slides](http://zinascii.com/pub/talks/fixing-bugs-in-illumos.pdf)) 36 | -------------------------------------------------------------------------------- /docs/user-guide/debug-apps.md: -------------------------------------------------------------------------------- 1 | ### Inspecting An Application Crash 2 | 3 | Check your core file configuration: 4 | 5 | ``` 6 | # coreadm 7 | ``` 8 | 9 | This should print something like: 10 | 11 | ``` 12 | global core file pattern: 13 | global core file content: default 14 | init core file pattern: core 15 | init core file content: default 16 | global core dumps: disabled 17 | per-process core dumps: enabled 18 | global setid core dumps: disabled 19 | per-process setid core dumps: disabled 20 | global core dump logging: disabled 21 | ``` 22 | 23 | If the global core file pattern is empty and per-process core dumps are 24 | enabled, an application crash will save a core file named core in the working 25 | directory. To print the stack information from the crash: 26 | 27 | ``` 28 | pstack core 29 | ``` 30 | -------------------------------------------------------------------------------- /docs/user-guide/debug-systems.md: -------------------------------------------------------------------------------- 1 | !!! warning "Requires Review" 2 | This page contains incomplete content and needs to be reviewed. 3 | 4 | # Debugging broken systems 5 | 6 | This page is intended to help users of operating systems derived from the 7 | illumos gate to bring problems to the attention of the illumos gate developers. 8 | 9 | !!! note "" 10 | All commands in this guide is presumed to be run as a non-privileged 11 | user. pfexec will be prepended to commands which need additional privileges. On 12 | some systems, the sudo command is used for this purpose. 13 | 14 | ## Help! My System Crashed or Locked Up! 15 | 16 | You might be reading this because your system suddenly printed a panic message 17 | on the console, saved a crash dump, and then rebooted (or the popular 18 | alternative: suddenly locked up, showed some disk activity, and then rebooted). 19 | Or perhaps your system stopped responding and never recovered. Calm down. We 20 | want to know about this problem. 21 | 22 | When illumos crashes (kernel panics), a crash dump is automatically saved 23 | containing information from kernel memory. This can be copied to a file. A 24 | developer can use the crash dump to inspect the state of the system at the 25 | time of the crash. You can also generate a crash dump manually to debug a hang. 26 | 27 | If you are on a live session where no storage is available, you may have to 28 | manually copy down crash or hang information. A serial console is preferred for 29 | this. 30 | 31 | ### Gathering Information from a Crash Dump 32 | 33 | If you are on an installed system and a crash occurs, a crash dump will 34 | normally be saved. If you are on a live system, skip to the next section. 35 | Assuming the crash does not recur immediately after the reboot, you can 36 | retrieve information from the crash dump by following these instructions. 37 | 38 | Log in as a user with access to pfexec or sudo (typically the user you created 39 | at install) 40 | 41 | Check your crash dump configuration: 42 | ``` 43 | pfexec dumpadm 44 | ``` 45 | 46 | This should print something like: 47 | 48 | ``` 49 | Dump content: kernel pages 50 | Dump device: /dev/zvol/dsk/rpool/dump (dedicated) 51 | Savecore directory: /var/crash/kirin 52 | Savecore enabled: no 53 | Save compressed: on 54 | ``` 55 | 56 | To extract the crash dump from the dump volume: 57 | 58 | ``` 59 | pfexec mkdir -p /var/crash/`hostname` 60 | pfexec savecore 61 | cd /var/crash/`hostname` 62 | pfexec savecore -vf vmdump.0 63 | ``` 64 | 65 | With the crash dump extracted, you can now copy the kernel messages and stack 66 | information from the crash to a file: 67 | 68 | ``` 69 | echo '::panicinfo\n::cpuinfo -v\n::threadlist -v 10\n::msgbuf\n*panic_thread::findstack -v\n::stacks' | mdb 0 > ~/crash.0 70 | ``` 71 | 72 | Save the crash.0 file in your home directory for reporting the crash. If 73 | possible, keep the crash dump files on hand for future examination. If you have 74 | available bandwidth and disk space, making this full crash dump accessible to 75 | developers is invaluable. Note that due to the nature of the dump, it may 76 | contain information you consider confidential. Use your judgment when making 77 | it generally available. 78 | 79 | ### Notes 80 | 81 | Configuring your crash dump. The commands "dumpadm" and "coreadm" and be used 82 | to list and alter the location and/or the actual contents of the resulting 83 | crash dump. 84 | 85 | #### Ensuring a successful crash dump 86 | 87 | If you do not see a line like "100% done .... dump succeeded" on the console 88 | (if you have a console) or when you later try to analyze your crash dump via 89 | "savecore -vd" or "savecore" you see a message like "savecore: bad magic number 90 | 0". You are probably are hitting illumos Bug #1110 and Bug #1369 (disable 91 | multi-threaded dump). In this case in order to successfully force a crash dump 92 | (if you do not see "dump succeeded") you should modify your system to perform 93 | a non-threaded crash dump by adding the following line to your /etc/system file 94 | "set dump_plat_mincpu=0" and then performing a reconfiguration reboot. 95 | 96 | #### Forcing a crash dump. 97 | 98 | In order to force a crash dump form a working system that still has interactive capabilities you can do one of the following: 99 | 100 | * as below "Gathering Information from a Running System". 101 | * as below "Gathering Information from a Running System, using only NMI (x86)". 102 | * issue the command "savecore -L" from the command line, this is not be the "best" method for debugging an issue. 103 | * issue the command "reboot -d", this is not be the "best" method for debugging an issue. 104 | 105 | ## Gathering Information from a Running System 106 | 107 | If you can reproduce the hang or crash, enabling the kernel debugger beforehand 108 | is a way to get valuable information about it. The best option, if problem 109 | occurs after the system has access to storage, is to use the debugger to save a 110 | crash dump. Otherwise, you should record as much diagnostic information as 111 | possible from the debugger.. A serial console or some form of lights-out 112 | management (LOM) functionality is preferred for interacting with the debugger. 113 | 114 | To use a serial console, you need an onboard or USB serial port, a null modem 115 | cable, and another computer with a serial port, and to boot with the 116 | appropriate -B console=ttya or similar option. 117 | 118 | For a local console, you need a monitor and keyboard. On x86, this must be a 119 | PS/2 keyboard or a USB keyboard operating in USB legacy (PS/2 emulation) mode. 120 | 121 | ### Enabling verbose boot messages and the kernel debugger (kmdb) on x86 122 | 123 | * At the GRUB prompt, highlight the boot environment with the arrow keys and press 'e' to edit the commands. 124 | * Highlight the splashimage line, if it exists, and press 'd' to delete. 125 | * Highlight the kernel line and press 'e' to edit. 126 | * Append -kvd -m verbose to the end of the line (and remove console=graphics if it appears after -B) 127 | * Press 'Enter' when finished, and then press 'b' to boot. 128 | 129 | ### On all platforms 130 | 131 | * Wait for the kmdb> prompt to appear, then type moddebug/W 80000000 and press 'Enter'. 132 | * Type snooping/W 1 and press 'Enter'. 133 | * Type :c and press 'Enter'. 134 | 135 | If the system panics, copy down `::msgbuf`, `::status` and `::stack`. 136 | 137 | If the system hangs, copy down the last few lines regarding modules on screen, 138 | and do one of: 139 | 140 | * On a serial console, send a BREAK on the serial line using your serial communications program. 141 | * On a local keyboard on x86, press 'Shift-Pause'; or 'Esc-B'; or 'F1', then 'A'. 142 | * Generate an NMI if your system provides this capability (hardware button, service processor command). 143 | 144 | When you are successful the system should drop you into a kmdb prompt. 145 | 146 | * Use `$ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to 6 | deal in the Software without restriction, including without limitation the 7 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 8 | sell copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20 | IN THE SOFTWARE. 21 | --> 22 | 23 | {% import "partials/language.html" as lang with context %} 24 | 25 | 26 | 111 | -------------------------------------------------------------------------------- /overrides/partials/footer.html: -------------------------------------------------------------------------------- 1 | 22 | 23 | {% import "partials/language.html" as lang with context %} 24 | 25 | 26 |
27 | 28 | 29 | 55 |
56 | -------------------------------------------------------------------------------- /overrides/partials/header-orig.html: -------------------------------------------------------------------------------- 1 | {#- 2 | This file was automatically generated - do not edit 3 | -#} 4 |
5 | 77 |
78 | -------------------------------------------------------------------------------- /overrides/partials/header.html: -------------------------------------------------------------------------------- 1 | {#- 2 | This file was automatically generated - do not edit 3 | -#} 4 |
5 | 57 |
58 | -------------------------------------------------------------------------------- /overrides/partials/nav-orig.html: -------------------------------------------------------------------------------- 1 | 22 | 23 | 24 | {% set class = "md-nav md-nav--primary" %} 25 | {% if "navigation.tabs" in features %} 26 | {% set class = class ~ " md-nav--lifted" %} 27 | {% endif %} 28 | {% if "toc.integrate" in features %} 29 | {% set class = class ~ " md-nav--integrated" %} 30 | {% endif %} 31 | 32 | 33 | 69 | -------------------------------------------------------------------------------- /overrides/partials/nav.html: -------------------------------------------------------------------------------- 1 | 22 | 23 | 24 | {% set class = "md-nav md-nav--primary" %} 25 | {% if "navigation.tabs" in features %} 26 | {% set class = class ~ " md-nav--lifted" %} 27 | {% endif %} 28 | {% if "toc.integrate" in features %} 29 | {% set class = class ~ " md-nav--integrated" %} 30 | {% endif %} 31 | 32 | 33 | 61 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | markdown-include 2 | mkdocs 3 | pymdown-extensions 4 | mkdocs-material==7.3.2 5 | --------------------------------------------------------------------------------