--- /dev/null
+RewriteEngine on
+
+ErrorDocument 403 /access_denied.html
+ErrorDocument 404 /not_found.html
+
+RewriteCond %{REQUEST_FILENAME} -f
+RewriteRule . - [L]
+
+RewriteBase "/"
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteCond %{REQUEST_FILENAME} ^(.*)/
+RewriteCond %1.html -f
+RewriteRule ^(.*)/ $1.html [R=301,L,QSA]
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Access Denied (403)</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="index.html" class="nav-text link back">News</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="distributions.html" class="nav-text link back">Distributions</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="fll.html" class="nav-text link back">FLL</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="projects.html" class="nav-text link back">Projects</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Documentation</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="licenses.html" class="nav-text link">Licenses</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Access Denied (403)</h1>
+ </header>
+
+ <div class="main-content">
+ <p>
+ Please go back or <a href="index.html" class="nav-text link">consider visiting to the News page</a>.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+.kevux > .content-block > .main-block .grid.expand.columns-4 {
+ grid-template-columns: auto auto auto auto;
+}
--- /dev/null
+.kevux > .content-block > .main-block .grid.expand.columns-4 {
+ grid-template-columns: auto auto auto;
+}
--- /dev/null
+.kevux > .header-block {
+ display: none;
+}
+
+.kevux > .content-block > .nav-block {
+ display: none;
+}
+
+.kevux > .content-block > .main-block > .main {
+ flex: auto;
+}
+
+.kevux > .content-block > .main-block .header.separate > .h,
+.kevux > .content-block > .main-block > .main .header > .h1 {
+ border-bottom: 1px solid;
+ padding-bottom: 1rem;
+ margin-bottom: 8px;
+}
--- /dev/null
+:root {
+ --width_side: 150px;
+}
+
+.kevux > .content-block {
+ display: flex;
+}
+
+.kevux > .content-block > .nav-block {
+ word-break: normal;
+
+ min-height: calc(var(--height_screen) - var(--height_header_site));
+
+ min-width: 150px;
+ max-width: 240px;
+
+ border-right: 1px dashed #556000;
+ border-bottom: 1px dashed #556000;
+ border-left: 1px dashed #556000;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item {
+ padding: 4px 0px;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item:not(:last-of-type) {
+ border-bottom: 1px dashed #556000;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item.ellipses {
+ display: none;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item.unlink {
+ border-left: 1px dashed #556000;
+ border-right: 1px dashed #556000;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item:first-of-type.unlink {
+ border-top: 1px dashed #556000;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item:last-of-type.unlink {
+ border-top: 1px dashed #556000;
+}
--- /dev/null
+.kevux {
+ font-size: 1.2rem;
+ line-height: 1.6rem;
+}
+
+.kevux > .header-block > .header-section > .header-site {
+ font-size: 1.3rem;
+ line-height: 1.7rem;
+ overflow: hidden;
+
+ min-width: 550px;
+}
+
+.kevux > .header-block > .nav-block {
+ font-size: 1.0rem;
+ line-height: 1.4rem;
+ overflow: hidden;
+
+ box-sizing: border-box;
+
+ min-width: 550px;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu {
+ margin: 10px 4px 10px 4px;
+
+ font-size: 1.0rem;
+ line-height: 1.4rem;
+}
+
+.kevux .header > .h1 {
+ font-size: 1.5rem;
+ line-height: 1.9rem;
+}
+
+.kevux .header > .h2 {
+ font-size: 1.4rem;
+ line-height: 1.8rem;
+}
+
+.kevux .header > .h3,
+.kevux .header > .h4,
+.kevux .header > .h5,
+.kevux .header > .h6 {
+ font-size: 1.3rem;
+ line-height: 1.7rem;
+}
+
+.kevux > .content-block > .main-block .grid.expand.columns-4 {
+ grid-template-columns: auto auto auto auto;
+}
--- /dev/null
+.kevux > .content-block > .nav-block {
+ position: fixed;
+ bottom: 0px;
+
+ box-sizing: border-box;
+
+ border-top: 1px dashed #556000;
+
+ width: 100%;
+ z-index: 1;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.link {
+ text-decoration: underline;
+
+ padding: 2px 0px;
+}
+
+.kevux > .content-block > .nav-block:target {
+ position: initial;
+
+ width: 100vw;
+
+ border-top: 0px;
+ border-bottom: 1px dashed #556000;
+}
+
+.kevux > .content-block > .nav-block:target > .nav-menu > .nav-item:not(:last-of-type) {
+ border-bottom: 1px dashed #556000;
+}
+
+.kevux > .content-block > .nav-block:not(:target) > .nav-menu {
+ padding-bottom: 10px;
+}
+
+.kevux > .content-block > .nav-block:not(:target) > .nav-menu > .nav-item > .nav-text {
+ display: none;
+}
+
+.kevux > .content-block > .nav-block:target > .nav-menu > .nav-item,
+.kevux > .content-block > .nav-block:target > .nav-menu > .nav-item.ellipses {
+ padding: 5px 0px;
+}
+
+.kevux > .content-block > .nav-block:target > .nav-menu > .nav-item > .nav-text,
+.kevux > .content-block > .nav-block:target > .nav-menu > .nav-item.ellipses > .nav-text.close,
+.kevux > .content-block > .nav-block:not(:target) > .nav-menu > .nav-item.ellipses > .nav-text.open {
+ display: block;
+}
+
+.kevux > .content-block > .nav-block:target > .nav-menu > .nav-item.ellipses > .nav-text.open,
+.kevux > .content-block > .nav-block:not(:target) > .nav-menu > .nav-item.ellipses > .nav-text.close {
+ display: none;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item,
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item.ellipses {
+ text-align: center;
+}
+
+.kevux > .content-block > .main-block {
+ margin-bottom: 35px;
+}
--- /dev/null
+.kevux {
+ font-size: 1.0rem;
+ line-height: 1.4rem;
+}
+
+.kevux > .header-block > .header-section > .header-site {
+ font-size: 1.1rem;
+ line-height: 1.5rem;
+ overflow: hidden;
+
+ min-width: 450px;
+}
+
+.kevux > .header-block > .nav-block {
+ font-size: 0.8rem;
+ line-height: 1.2rem;
+ overflow: hidden;
+
+ box-sizing: border-box;
+
+ min-width: 380px;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu {
+ margin: 10px 4px 10px 4px;
+
+ font-size: 0.8rem;
+ line-height: 1.2rem;
+}
+
+.kevux .header > .h1 {
+ font-size: 1.3rem;
+ line-height: 1.7rem;
+}
+
+.kevux .header > .h2 {
+ font-size: 1.2rem;
+ line-height: 1.6rem;
+}
+
+.kevux .header > .h3,
+.kevux .header > .h4,
+.kevux .header > .h5,
+.kevux .header > .h6 {
+ font-size: 1.1rem;
+ line-height: 1.5rem;
+}
+
+.kevux > .content-block > .main-block .grid.expand.columns-4 {
+ grid-template-columns: auto auto auto;
+}
--- /dev/null
+.kevux {
+ font-size: 0.9rem;
+ line-height: 1.3rem;
+}
+
+.kevux > .header-block {
+ min-height: 50px;
+ max-height: 50px;
+}
+
+.kevux > .header-block > .header-section > .header-site {
+ font-size: 0.8rem;
+ line-height: 1.2rem;
+ overflow: hidden;
+
+ min-width: 350px;
+}
+
+.kevux > .header-block > .nav-block {
+ font-size: 0.6rem;
+ line-height: 1.0rem;
+ overflow: hidden;
+
+ min-width: 350px;
+}
+
+.kevux .header > .h1 {
+ font-size: 1.2rem;
+ line-height: 1.6rem;
+}
+
+.kevux .header > .h2 {
+ font-size: 1.1rem;
+ line-height: 1.5rem;
+}
+
+.kevux .header > .h3,
+.kevux .header > .h4,
+.kevux .header > .h5,
+.kevux .header > .h6 {
+ font-size: 1.0rem;
+ line-height: 1.4rem;
+}
+
+.kevux > .content-block > .main-block .grid.expand.columns-4 {
+ grid-template-columns: auto auto;
+}
--- /dev/null
+.kevux {
+ font-size: 0.6rem;
+ line-height: 1.0rem;
+
+ min-width: 170px;
+}
+
+.kevux > .header-block {
+ min-height: 40px;
+ max-height: 40px;
+}
+
+.kevux > .header-block > .header-section > .header-site {
+ font-size: 0.7rem;
+ line-height: 1.1rem;
+ overflow: hidden;
+
+ min-width: 250px;
+}
+
+.kevux > .header-block > .nav-block {
+ font-size: 0.5rem;
+ line-height: 0.9rem;
+ overflow: hidden;
+
+ min-width: 250px;
+}
+
+.kevux .header > .h1 {
+ font-size: 0.9rem;
+ line-height: 1.3rem;
+}
+
+.kevux .header > .h2 {
+ font-size: 0.8rem;
+ line-height: 1.2rem;
+}
+
+.kevux .header > .h3,
+.kevux .header > .h4,
+.kevux .header > .h5,
+.kevux .header > .h6 {
+ font-size: 0.7rem;
+ line-height: 1.1rem;
+}
+
+.kevux > .content-block > .main-block .grid.expand.columns-4 {
+ grid-template-columns: auto;
+}
--- /dev/null
+.kevux {
+ box-sizing: border-box;
+}
+
+.kevux > .header-block {
+ position: relative;
+ box-sizing: border-box;
+
+ height: var(--height_header_site);
+ min-height: var(--height_header_site);
+ max-height: var(--height_header_site);
+
+ overflow: hidden;
+
+ border: 1px dashed #556000;
+
+ font-family: monospace;
+
+ color: #000000;
+ background-color: #a7c4a8;
+}
+
+.kevux > .header-block > .header-section > .header-site {
+ position: absolute;
+ top: 0px;
+
+ margin: 3px 6px;
+}
+
+.kevux > .header-block > .nav-block {
+ position: absolute;
+ bottom: 0px;
+
+ box-sizing: border-box;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu {
+ display: block;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item {
+ display: inline-block;
+ vertical-align: top;
+ box-sizing: border-box;
+
+ padding: 2px 4px;
+ border-width: 1px 1px 0px 1px;
+ border-color: #556000;
+ border-style: dashed;
+ border-radius: 4px 4px 0px 0px;
+
+ text-align: center;
+ word-wrap: break-word;
+
+ background-color: #87d686;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item.active {
+ background-color: #83e969;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item:first-of-type {
+ margin-left: 4px;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item:last-of-type {
+ margin-right: 4px;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item:focus-within,
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item:hover {
+ background-color: #d8e560;
+}
+
+.kevux > .content-block > .nav-block {
+ position: relative;
+ padding: 2px;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.notice {
+ font-weight: bold;
+}
+
+.kevux > .content-block > .main-block {
+ display: flex;
+ position: relative;
+
+ padding: 8px;
+
+ width: 100%;
+}
+
+.kevux > .content-block > .main-block > .main {
+ flex: auto;
+}
+
+.kevux > .content-block > .main-block > .main .header > .h1 {
+ border-bottom: 1px dashed #556000;
+ margin-bottom: 8px;
+}
+
+.kevux > .content-block .header {
+ margin-bottom: 4px;
+}
+
+.kevux .header > .h1,
+.kevux .header > .h2,
+.kevux .header > .h3,
+.kevux .header > .h4,
+.kevux .header > .h5,
+.kevux .header > .h6 {
+ display: block;
+
+ margin: 0px;
+ padding: 0px;
+}
--- /dev/null
+:root {
+ font-size: 13px;
+
+ --height_screen: 100vh;
+ --height_header_site: 65px;
+
+ --width_screen: 100vw;
+ --width_screen_90: 90vw;
+ --width_side: 0px;
+}
+
+.kevux {
+ box-sizing: border-box;
+
+ line-height: 1.4rem;
+
+ margin: 0px;
+ padding: 0px;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item > .nav-text.link,
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:visited {
+ color: #000000;
+ text-decoration: none;
+}
+
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:active,
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:focus,
+.kevux > .header-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:hover {
+ text-decoration: underline;
+}
+
+.kevux > .content-block {
+ box-sizing: border-box;
+}
+
+.kevux > .content-block > .nav-block {
+ box-sizing: border-box;
+
+ color: #000000;
+ background-color: #c5e6c4;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item {
+ box-sizing: border-box;
+
+ text-align: center;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text {
+ font-family: monospace;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.notice {
+ font-family: serif;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.link,
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:visited {
+ color: #000000;
+ text-decoration: none;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:active,
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:focus,
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.link:hover {
+ display: block;
+
+ font-weight: bold;
+ background-color: #e5f5c9;
+ text-decoration: underline;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item.unlink,
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text.unlink {
+ display: block;
+
+ font-weight: normal;
+ background-color: #e5f5c9;
+}
+
+.kevux > .content-block > .main-block {
+ box-sizing: border-box;
+}
+
+.kevux > .content-block > .main-block a,
+.kevux > .content-block > .main-block a:visited {
+ color: #0000ee;
+}
+
+.kevux > .content-block > .main-block a:active {
+ color: #ee0000;
+}
+
+.kevux > .content-block > .main-block .header.separate > .h {
+ border-bottom: 1px dashed #556000;
+ margin-bottom: 8px;
+}
+
+.kevux > .content-block > .main-block .grid {
+ column-gap: 1rem;
+}
+
+.kevux > .content-block > .main-block .grid.wide {
+ display: grid;
+}
+
+.kevux > .content-block > .main-block .grid.narrow {
+ display: inline-grid;
+}
+
+.kevux > .content-block > .main-block .table,
+.kevux > .content-block > .main-block .table > .set,
+.kevux > .content-block > .main-block .table > .set > .row
+.kevux > .content-block > .main-block .table > .set > .column {
+ box-sizing: border-box;
+}
+
+.kevux > .content-block > .main-block .center {
+ display: block;
+ box-sizing: border-box;
+
+ margin-left: auto;
+ margin-right: auto;
+
+ width: max-content;
+}
+
+.kevux > .content-block > .main-block .table {
+ border-collapse: collapse;
+ margin: 1rem;
+
+ max-width: calc(var(--width_screen_90) - var(--width_side));
+}
+
+.kevux > .content-block > .main-block .table > .head {
+ border-bottom: 1px solid black;
+}
+
+.kevux > .content-block > .main-block .table > .set > .row > .column {
+ padding: 2px 0.5rem;
+}
+
+.kevux > .content-block > .main-block .table > .set > .row > .column:not(:last-of-type) {
+ border-right: 1px dotted;
+}
+
+.kevux.documentation > .content-block > .main-block .dl {
+ border: 1px solid #e0e0e0;
+
+ width: fit-content;
+}
+
+.kevux.documentation > .content-block > .main-block .dl > .di {
+ padding: 4px;
+}
+
+.kevux.documentation > .content-block > .main-block .dl > .di > .dt {
+ font-weight: bold;
+
+ padding: 2px;
+}
+
+.kevux.documentation > .content-block > .main-block .dl > .di:nth-child(odd) {
+ background-color: #efefef;
+}
+
+
+.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even) {
+ background-color: #efefef;
+}
+
+.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1) {
+ text-align: center;
+}
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Distributions</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux, Linux based, Distributions.">
+ <meta name="keywords" content="Kevin Day, Kevux, Linux, Distribution, Open-Source, Turtle">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="distributions.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block">
+ <div class="nav-text notice">Turtle Kevux</div>
+ <div class="nav-text normal">0.9.X Release</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-turtle-0.9.5" class="nav-text link">0.9.5 Release</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-turtle-0.9.4" class="nav-text link">0.9.4 Release</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">TKIS</div>
+ <div class="nav-text normal">1.2.X Release</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-tkis-1.0.1" class="nav-text link">1.0.1 Release</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-this-1.0.0" class="nav-text link">1.0.0 Release</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="distributions/turtle/documentation.html" class="nav-text link">Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Change Log</div>
+ <a href="distributions/turtle/changelog.html" class="nav-text link">Turtle Kevux</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Distributions</h1>
+ </header>
+
+ <article id="turtle_kevux" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Turtle Kevux</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Turtle Kevux is a Linux system primarily based on GNU software, <abbr title="Featureless Linux Library">FLL</abbr> software, and a Linux kernel. Historically Turtle Kevux was compiled using <a href="https://uclibc.org/" class="link external">uClibc</a> as an alternative to <a href="https://www.gnu.org/software/libc/" class="link external">GLibc</a>. Turtle Kevux now uses <a href="https://musl.libc.org/" class="link external">Musl-Libc</a> in place of <a href="https://www.gnu.org/software/libc/" class="link external">GLibc</a>.
+ </p>
+ <p>
+ This Linux based distribution deviates from Linux and even utilizes modifications to the Linux kernel. Turtle Kevux does not comply with many of the standards that many Linux distributions follow. This is especially true when it comes to SystemD as many parts of the SystemD design is the direct opposite of how Turtle Kevux and its underlying software (<abbr title="Featureless Linux Library">FLL</abbr>) are designed.
+ </p>
+ <p>
+ Turtle Kevux is neither <abbr title="Filesystem Hierarchy Standard">FHS</abbr> nor <abbr title="Linux Standard Base ">LSB</abbr> compliant, which is seen as one of the many security enhancements. Turtle Kevux might closely follow these standards, but those standards are deviated from as desired.
+ </p>
+ </div>
+ </article>
+
+ <article id="turtle_kevux" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">About Releases and Scripts</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The Turtle Kevux Releases used to provide multiple CD-ROM and DVD-ROMs for different purposes. These have been reduced to the "everything" releases for the older Turtle Kevux releases (0.9.5 and earlier). The "everything" release contains all of the software specially configured to compile and install onto the system as well as all source code archives.
+ </p>
+ <p>
+ The Turtle Kevux Installation Scripts are also provided separately from the DVD-ROMs. These scripts can be used to compile the system entirely from source. Due to the complexity and potential problems with compiling entirely from source, the pre-compiled bootstrap files are also made available as the "tools" downloads.
+ </p>
+ </div>
+ </article>
+
+ <article id="release-turtle" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Turtle Kevux Releases</h2>
+ </header>
+ <div class="article-content">
+ <section id="release-turtle-0.9.X" class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Turtle Kevux 0.9.X Release (2022+)</h3>
+ </header>
+ <div class="section-content">
+ <ul>
+ <li>Not yet available.</li>
+ </ul>
+ </div>
+ </section>
+
+ <section id="release-turtle-0.9.5" class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Turtle Kevux 0.9.5 Release (2012/02/28)</h3>
+ </header>
+ <div class="section-content">
+ <ul>
+ <li><a href="release/turtle/0.9/5/everything/x86/turtle-0.9.5-everything_x86-live.iso" class="link download">Turtle 0.9.5 - Everything - 32-bit - CD-ROM</a> (<a href="release/turtle/0.9/5/everything/x86/turtle-0.9.5-everything_x86-live.iso.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/5/everything/x86_64/turtle-0.9.5-everything_x86_64-dvd.iso" class="link download">Turtle 0.9.5 - Everything - 64-bit - DVD-ROM</a> (<a href="release/turtle/0.9/5/everything/x86_64/turtle-0.9.5-everything_x86_64-dvd.iso.sha256" class="link download">SHA256</a>)</li>
+ </ul>
+ </div>
+ </section>
+
+ <section id="release-turtle-0.9.4" class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Turtle Kevux 0.9.4 Release (2011/12/11)</h3>
+ </header>
+ <div class="section-content">
+ <ul>
+ <li><a href="release/turtle/0.9/4/everything/x86/turtle-0.9.4-everything_x86-dvd.iso" class="link download">Turtle 0.9.4 - Everything - 32-bit - DVD-ROM</a> (<a href="release/turtle/0.9/4/everything/x86/turtle-0.9.4-everything_x86-dvd.iso.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/4/everything/x86_64/turtle-0.9.4-everything_x86_64-dvd.iso" class="link download">Turtle 0.9.4 - Everything - 64-bit - DVD-ROM</a> (<a href="release/turtle/0.9/4/everything/x86_64/turtle-0.9.4-everything_x86_64-dvd.iso.sha256" class="link download">SHA256</a>)</li>
+ </ul>
+ </div>
+ </section>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Turtle Kevux Installation Scripts</h2>
+ </header>
+ <div class="article-content">
+ <section id="release-tkis-1.0.1" class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">TKIS 1.2.X Release (2022+)</h3>
+ </header>
+ <div class="section-content">
+ <ul>
+ <li>Not yet available.</li>
+ </ul>
+ </div>
+ </section>
+
+ <section id="release-tkis-1.0.1" class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">TKIS 1.0.1 Release (2012/02/28)</h3>
+ </header>
+ <div class="section-content">
+ <ul>
+ <li><a href="release/turtle/0.9/5/common/tkis-1.0.1.txz" class="link download">TKIS 1.0.1</a> (<a href="release/turtle/0.9/5/common/tkis-1.0.1.txz.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86.txz" class="link download">Tools 1.0.1 - 32-bit</a> (<a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86.txz.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86_64.txz" class="link download">Tools 1.0.1 - 64-bit</a> (<a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86_64.txz.sha256" class="link download">SHA256</a>)</li>
+ </ul>
+ </div>
+ </section>
+
+ <section id="release-tkis-1.0.0" class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">TKIS 1.0.0 Release (2011/12/11)</h3>
+ </header>
+ <div class="section-content">
+ <ul>
+ <li><a href="release/turtle/0.9/4/common/tkis-1.0.0.txz" class="link download">TKIS 1.0.0</a> (<a href="release/turtle/0.9/4/common/tkis-1.0.0.txz.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/4/common/tkis-1.0.0-tools-x86.txz" class="link download">Tools 1.0.0 - 32-bit</a> (<a href="release/turtle/0.9/4/common/tkis-1.0.0-tools-x86.txz.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/4/common/tkis-1.0.0-tools-x86_64.txz" class="link download">Tools 1.0.0 - 64-bit</a> (<a href="release/turtle/0.9/4/common/tkis-1.0.0-tools-x86_64.txz.sha256" class="link download">SHA256</a>)</li>
+ </ul>
+ </div>
+ </section>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Change Log - Turtle Kevux</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux, Linux based, Distribution Change Log.">
+ <meta name="keywords" content="Kevin Day, Kevux, Linux, Distribution, Open-Source, Turtle, Change, Log">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="distributions/changelog.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Turtle Kevux</div>
+ <a href="distributions.html#release-turtle-0.9.5" class="nav-text link">0.9.5 Release</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-turtle-0.9.4" class="nav-text link">0.9.4 Release</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">TKIS</div>
+ <a href="distributions.html#release-tkis-1.0.1" class="nav-text link">1.0.1 Release</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-this-1.0.0" class="nav-text link">1.0.0 Release</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="distributions/turtle/documentation.html" class="nav-text link">Turtle Kevux</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Change Log</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/changelog.html#turtle-0.9.5" class="nav-text link">0.9.5</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/changelog.html#turtle-0.9.4" class="nav-text link">0.9.4</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Turtle Kevux Change Logs</h1>
+ </header>
+
+ <article class="article">
+ <header class="article-header header">
+ <h2 id="turtle-0.9.5" class="article-title h h2">0.9.5</h2>
+ </header>
+ <div class="article-content">
+
+ <div><strong>Fixes of Turtle 0.9.4 Problems:</strong></div>
+ <ul>
+ <li>A large number of kiwi installation problems have been fixed.</li>
+ <li>claws-mail now works.</li>
+ <li>The mpd music server now dmixes properly by default so you can now have more than one program use audio at the same time.</li>
+ <li>Fixed applications that did not look for the mixer device in /dev/snd/mixer.</li>
+ <li>/lib/libudev.so and /lib/libgudev-1.0.so had permissions that prevented desktop users from using any application that depended on either of those libraries.</li>
+ <li>Copy and paste on the desktop now works in xfce.</li>
+ <li>64-bit grub cdroms now boot properly.</li>
+ <li>Fixed boot problems when using software raid.</li>
+ </ul>
+
+ <div><strong>New Software:</strong></div>
+ <ul>
+ <li>Added libffi</li>
+ <li>Added vcdimager</li>
+ <li>Added libblueray</li>
+ <li>Added libaacs</li>
+ </ul>
+
+ <div><strong>Other Changes:</strong></div>
+ <ul>
+ <li>Now using xorg-server 1.11.* and Mesa 7.11.*.</li>
+ <li>Fixed webkit so that SoupSession is in the correct state to allow for pausing and unpausing.</li>
+ <li>The boot process was reworked.</li>
+ </ul>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 id="turtle-0.9.4" class="article-title h h2">0.9.4</h2>
+ </header>
+ <div class="article-content">
+
+ <div><strong>Fixes of Turtle 0.9.3 Problems:</strong></div>
+ <ul>
+ <li>Fix major networking problem in 0.9.3 where devices are improperly started</li>
+ <li>Once again attempt to solve the autologin relogin problem with qingy (this time completely strip out the code that does a timestamp check, if the file exists then do not re-login, period</li>
+ <li>When shutting down or rebooting, make sure to tell all sshd connections to close and turn off network devices</li>
+ <li>Network scripts did not stop dhcpclient, wpa_supplicant, and hostap if it was running when the network script was stopped</li>
+ <li>/etc/hosts was being used instead of /etc/network/hosts</li>
+ <li>Fixed initrd boot process problems</li>
+ <li>Removed floating_root parameter from squish and squash boot options, making floating_root unconditional for squash and squash booting</li>
+ </ul>
+
+ <div><strong>New Software:</strong></div>
+ <ul>
+ <li>Added joy2key</li>
+ <li>Added vala</li>
+ <li>Added gstreamer (which doesn't really work anyway..)</li>
+ <li>Added webkit</li>
+ <li>Added midori (replacing seamonkey)</li>
+ <li>Added libvpx</li>
+ <li>Added tunctl</li>
+ <li>Added bind (replacing maradns)</li>
+ <li>Added celt</li>
+ <li>Added links back now that it appears to be actively maintained once again</li>
+ <li>Added strace to the toolchain</li>
+ <li>Added libpki</li>
+ <li>Added openca-ocspd</li>
+ <li>Added libotr and pidgin-otr for encrypted chat support</li>
+ </ul>
+
+ <div><strong>Removed Software:</strong></div>
+ <ul>
+ <li>Removed seamonkey</li>
+ <li>Removed maradns (does not support dnssec, so it was replaced with bind)</li>
+ <li>Removed ps3-utils</li>
+ <li>Removed tcl/tk</li>
+ <li>Removed pidgin-encryption in favor of pidgin-otr</li>
+ </ul>
+
+ <div><strong>Network Changes:</strong></div>
+ <ul>
+ <li>Removed support for /etc/network/proc_settings</li>
+ <li>Added network device setting file auto-generation and auto-degeneration support</li>
+ <li>Prevent already started or stopped network devices from being re-started or re-stopped</li>
+ <li>Add extension support to dns resolver</li>
+ <li>Add non-standard port support for ipv4 dns resolver</li>
+ </ul>
+
+ <div><strong>Other Changes:</strong></div>
+ <ul>
+ <li>Shortened udev settle time to 4 seconds</li>
+ <li>Added support for /etc/sysctl.conf (this also replaces /etc/network/proc_settings)</li>
+ <li>Desktop build now adds fewer xorg video drivers</li>
+ <li>Now supports custom xorg.conf.d directories at /etc/X11/ (This helps enable KMS)</li>
+ </ul>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux, Linux based, Distribution Documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, Linux, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="distributions/documentation.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Turtle Kevux</div>
+ <a href="distributions.html#release-turtle-0.9.5" class="nav-text link">0.9.5 Release</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-turtle-0.9.4" class="nav-text link">0.9.4 Release</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">TKIS</div>
+ <a href="distributions.html#release-tkis-1.0.1" class="nav-text link">1.0.1 Release</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions.html#release-this-1.0.0" class="nav-text link">1.0.0 Release</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Change Log</div>
+ <a href="distributions/turtle/changelog.html" class="nav-text link">Turtle Kevux</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Turtle Kevux Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <div class="strong"><a href="distributions/turtle/documentation/software.html">Software Listing</a></div>
+ <div class="strong"><a href="distributions/turtle/documentation/running.html">Booting & Running</a></div>
+ <ul>
+ <li><a href="distributions/turtle/documentation/running.html#bootinglivesystem">Booting Live System</a></li>
+ <li><a href="distributions/turtle/documentation/running.html#whatshouldhappen">What Should Happen</a></li>
+ <li><a href="distributions/turtle/documentation/running.html#somethingwentwrong">Something Went Wrong</a></li>
+ <li><a href="distributions/turtle/documentation/running.html#loggingin">Logging In</a></li>
+ <li><a href="distributions/turtle/documentation/running.html#virtualmachines">Virtual Machines</a></li>
+ </ul>
+ <div class="strong"><a href="distributions/turtle/documentation/installing.html">Installing Turtle Kevux</a></div>
+ <ul>
+ <li><a href="distributions/turtle/documentation/installing.html#partitioningthesystem">Partitioning the System</a></li>
+ <li><a href="distributions/turtle/documentation/installing.html#mountingthecdrom">Mounting the CD-Rom</a></li>
+ <li><a href="distributions/turtle/documentation/installing.html#mountingthepartition">Mounting the Partition</a></li>
+ <li><a href="distributions/turtle/documentation/installing.html#extractingthesystem">Extracting the System</a></li>
+ <li><a href="distributions/turtle/documentation/installing.html#configuringthesystemtoboot">Configuring the System to Boot</a></li>
+ </ul>
+ <div class="strong"><a href="distributions/turtle/documentation/configuring.html">System Configuration</a></div>
+ <ul>
+ <li><a href="distributions/turtle/documentation/configuring.html#firsttimerunningconfiguration">First Time Running Configuration</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#settingupusernamesandpasswords">Setting Up Usernames and Passwords</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#settingupthenetwork">Setting Up the Network</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#settingupthexorgdisplay">Setting Up the Xorg Display</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#updatingtheclamavdatabase">Updating the ClamAV Database</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#tweakingthebootprocess">Tweaking the Boot Process</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#updatingpciusbids">PCI and USB ID Updating</a></li>
+ <li><a href="distributions/turtle/documentation/configuring.html#usingturtlekevuxontheolpc">Using Turtle Kevux on the OLPC</a></li>
+ </ul>
+ <div class="strong"><a href="distributions/turtle/documentation/servers.html">Server Configuration</a></div>
+ <ul>
+ <li><a href="distributions/turtle/documentation/servers.html#camsource">Configuring Camsource Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#lighttpd">Configuring Lighttpd Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#mpd">Configuring MPD Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#maradns">Configuring MaraDNS Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#ntp">Configuring NTP Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#postgres">Configuring Postgres Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#rsync">Configuring RSync Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#ssh">Configuring SSH Server</a></li>
+ <li><a href="distributions/turtle/documentation/servers.html#subversion">Configuring Subversion Server</a></li>
+ </ul>
+ <div class="strong"><a href="distributions/turtle/documentation/additional.html">Additional/Miscellaneous Notes</a></div>
+ <ul>
+ <li><a href="distributions/turtle/documentation/additional.html#spaceconsiderations">Space Considerations</a></li>
+ <li><a href="distributions/turtle/documentation/additional.html#sshhandshaking">SSH Handshaking</a></li>
+ <li><a href="distributions/turtle/documentation/additional.html#encryptedbooting">Encrypted Booting</a></li>
+ <li><a href="distributions/turtle/documentation/additional.html#encryptingadrive">Encrypting a Drive</a></li>
+ </ul>
+
+ <div class="strong"><a href="distributions/turtle/documentation/problems.html">Known Issues</a></div>
+ <ul>
+ <li><a href="distributions/turtle/documentation/problems.html#printingsupport">Printing Support</a></li>
+ <li><a href="distributions/turtle/documentation/problems.html#stackprotection">Stack Protection</a></li>
+ <li><a href="distributions/turtle/documentation/problems.html#miscellaneousissues">Miscellaneous Issues</a></li>
+ </ul>
+ <div class="strong"><a href="distributions/turtle/documentation/credits.html">Credits</a></div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Additional / Miscellaneous Notes</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation for additional or miscellaneous notes.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/additional.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Additional / Miscellaneous Notes</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/additional.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Additional / Miscellaneous Notes</h1>
+ </header>
+
+ <div class="main-content">
+ <div id="spaceconsiderations">
+ <header class="section-header header">
+ <h2 class="h h2">Space Considerations</h2>
+ </header>
+ <p>
+ <font size="2px"><i>Note: <span class="bold">Small Total</span> Represents the amount of space taken with only 1 set of kernel modules and without the documentation, toolchain and checksums.</i></font><br>
+ <table width="700px" border="0">
+ <tr>
+ <td valign="top">
+ <table width="350px" border="1" bgcolor="#efffef">
+ <tr align="center">
+ <td class="notice bold">Everything Build</td>
+ </tr>
+ </table>
+ <table width="350px" border="1">
+ <tr align="center" bgcolor="#efffef">
+ <td class="bold">Root Directory</td>
+ <td class="bold">Size (MB)</td>
+ </tr>
+ <tr>
+ <td>bin</td>
+ <td align="right">244</td>
+ </tr>
+ <tr>
+ <td>boot</td>
+ <td align="right">20</td>
+ </tr>
+ <tr>
+ <td>checksum</td>
+ <td align="right">84</td>
+ </tr>
+ <tr>
+ <td>documentation</td>
+ <td align="right">311</td>
+ </tr>
+ <tr>
+ <td>etc</td>
+ <td align="right">4.7</td>
+ </tr>
+ <tr>
+ <td>firmware</td>
+ <td align="right">40</td>
+ </tr>
+ <tr>
+ <td>home</td>
+ <td align="right">8</td>
+ </tr>
+ <tr>
+ <td>lib</td>
+ <td align="right">578</td>
+ </tr>
+ <tr>
+ <td>modules</td>
+ <td align="right">59</td>
+ </tr>
+ <tr>
+ <td>sbin</td>
+ <td align="right">50</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td align="right">371</td>
+ </tr>
+ <tr>
+ <td>toolchain</td>
+ <td align="right">221</td>
+ </tr>
+ <tr>
+ <td class="notice bold">Total</td>
+ <td align="right"><span class="notice">1986.46875<br>(1.93991 GB)</span></td>
+ </tr>
+ <tr>
+ <td class="notice bold">Small Total</td>
+ <td align="right" class="notice">1371.69531<br>(1.33954)</td>
+ </tr>
+ <tr>
+ <td><span class="notice bold">Squashed Total</td>
+ <td align="right" class="notice">588.82812</td>
+ </tr>
+ <tr>
+ <td class="notice bold">Squashed Small Total</td>
+ <td align="right" class="notice">485.13281</td>
+ </tr>
+ </table>
+ <br>
+ <table width="350px" border="1" bgcolor="#efffef">
+ <tr align="center">
+ <td class="notice bold">Key Space Consumers for "lib"</td>
+ </tr>
+ </table>
+ <table width="350px" border="1">
+ <tr align="center" bgcolor="#efffef">
+ <td class="bold">Directory</td>
+ <td class="bold">Size (MB)</td>
+ </tr>
+ <tr>
+ <td>Image Magick</td>
+ <td align="right">3.5</td>
+ </tr>
+ <tr>
+ <td>X11 (xorg)</td>
+ <td align="right">46</td>
+ </tr>
+ <tr>
+ <td>abiword-2.8</td>
+ <td align="right">2.2</td>
+ </tr>
+ <tr>
+ <td>avifile-0.7</td>
+ <td align="right">1.1</td>
+ </tr>
+ <tr>
+ <td>claws-mail</td>
+ <td align="right">1.3</td>
+ </tr>
+ <tr>
+ <td>gegl-0.0 (gimp)</td>
+ <td align="right">1.7</td>
+ </tr>
+ <tr>
+ <td>gimp</td>
+ <td align="right">6.3</td>
+ </tr>
+ <tr>
+ <td>git-core</td>
+ <td align="right">6.2</td>
+ </tr>
+ <tr>
+ <td>gtk-2.0</td>
+ <td align="right">1.3</td>
+ </tr>
+ <tr>
+ <td>libgphoto2</td>
+ <td align="right">2.1</td>
+ </tr>
+ <tr>
+ <td>mysql</td>
+ <td align="right">9.7</td>
+ </tr>
+ <tr>
+ <td>perl5</td>
+ <td align="right">56</td>
+ </tr>
+ <tr>
+ <td>php</td>
+ <td align="right">15</td>
+ </tr>
+ <tr>
+ <td>postgresql</td>
+ <td align="right">4.3</td>
+ </tr>
+ <tr>
+ <td>purple-2 (pidgin)</td>
+ <td align="right">4.2</td>
+ </tr>
+ <tr>
+ <td>python2.6</td>
+ <td align="right">66</td>
+ </tr>
+ <tr>
+ <td>sane</td>
+ <td align="right">6.1</td>
+ </tr>
+ <tr>
+ <td>seamonkey-2.0</td>
+ <td align="right">38</td>
+ </tr>
+ <tr>
+ <td>sox</td>
+ <td align="right">1.1</td>
+ </tr>
+ <tr>
+ <td>tcl8.5</td>
+ <td align="right">18</td>
+ </tr>
+ <tr>
+ <td>tk8.5</td>
+ <td align="right">9.6</td>
+ </tr>
+ <tr>
+ <td>transcode</td>
+ <td align="right">2.3</td>
+ </tr>
+ <tr>
+ <td>wireshark</td>
+ <td align="right">3.3</td>
+ </tr>
+ <tr>
+ <td>xfce4</td>
+ <td align="right">3.2</td>
+ </tr>
+ <tr>
+ <td>xine</td>
+ <td align="right">4.9</td>
+ </tr>
+ <tr>
+ <td>xtables</td>
+ <td align="right">1.0</td>
+ </tr>
+ </table>
+ </td>
+ <td valign="top">
+ <table width="350px" border="1" bgcolor="#efffef">
+ <tr align="center">
+ <td class="notice bold">Desktop Build</td>
+ </tr>
+ </table>
+ <table width="350px" border="1">
+ <tr align="center" bgcolor="#efffef">
+ <td class="bold">Root Directory</td>
+ <td class="bold">Size (MB)</td>
+ </tr>
+ <tr>
+ <td>bin</td>
+ <td align="right">85</td>
+ </tr>
+ <tr>
+ <td>boot</td>
+ <td align="right">21</td>
+ </tr>
+ <tr>
+ <td>checksum</td>
+ <td align="right">28</td>
+ </tr>
+ <tr>
+ <td>documentation</td>
+ <td align="right">66</td>
+ </tr>
+ <tr>
+ <td>etc</td>
+ <td align="right">3.7</td>
+ </tr>
+ <tr>
+ <td>firmware</td>
+ <td align="right">41</td>
+ </tr>
+ <tr>
+ <td>home</td>
+ <td align="right">0.90234</td>
+ </tr>
+ <tr>
+ <td>lib</td>
+ <td align="right">236</td>
+ </tr>
+ <tr>
+ <td>sbin</td>
+ <td align="right">17</td>
+ </tr>
+ <tr>
+ <td>share</td>
+ <td align="right">167</td>
+ </tr>
+ <tr>
+ <td>toolchain</td>
+ <td align="right">296</td>
+ </tr>
+ <tr>
+ <td>modules</td>
+ <td align="right">54</td>
+ </tr>
+ <tr>
+ <td class="notice bold">Total</td>
+ <td align="right"><span class="notice">1011.93359<br>(0.98821 GB)</td>
+ </tr>
+ <tr>
+ <td class="notice bold">Small Total</td>
+ <td align="right" class="notice">623.23437<br>(0.60862 GB)</td>
+ </tr>
+ <tr>
+ <td class="notice bold">Squashed Total</td>
+ <td align="right" class="notice">282.63281</td>
+ </tr>
+ <tr>
+ <td class="notice bold">Squashed Small Total</td>
+ <td align="right" class="notice">203.26953</td>
+ </tr>
+ </table>
+ <br>
+ <table width="350px" border="1" bgcolor="#efffef">
+ <tr align="center">
+ <td class="notice bold">Key Space Consumers for "share"</td>
+ </tr>
+ </table>
+ <table width="350px" border="1">
+ <tr align="center" bgcolor="#efffef">
+ <td class="bold">Directory</td>
+ <td class="bold">Size (MB)</td>
+ </tr>
+ <tr>
+ <td>abiword-2.8</td>
+ <td align="right">8.3</td>
+ </tr>
+ <tr>
+ <td>alsa</td>
+ <td align="right">5.2</td>
+ </tr>
+ <tr>
+ <td>aspell</td>
+ <td align="right">5.0</td>
+ </tr>
+ <tr>
+ <td>dvb</td>
+ <td align="right">3.6</td>
+ </tr>
+ <tr>
+ <td>fonts</td>
+ <td align="right">19</td>
+ </tr>
+ <tr>
+ <td>freedroidrpg</td>
+ <td align="right">178</td>
+ </tr>
+ <tr>
+ <td>gimp</td>
+ <td align="right">6.2</td>
+ </tr>
+ <tr>
+ <td>git-gui</td>
+ <td align="right">1.1</td>
+ </tr>
+ <tr>
+ <td>icons</td>
+ <td align="right">31</td>
+ </tr>
+ <tr>
+ <td>kbd</td>
+ <td align="right">2.8</td>
+ </tr>
+ <tr>
+ <td>lbreakout2</td>
+ <td align="right">4.4</td>
+ </tr>
+ <tr>
+ <td>link-grammar</td>
+ <td align="right">1.4</td>
+ </tr>
+ <tr>
+ <td>mime</td>
+ <td align="right">3.0</td>
+ </tr>
+ <tr>
+ <td>misc</td>
+ <td align="right">1.8</td>
+ </tr>
+ <tr>
+ <td>multitalk</td>
+ <td align="right">2.0</td>
+ </tr>
+ <tr>
+ <td>nmap</td>
+ <td align="right">5.8</td>
+ </tr>
+ <tr>
+ <td>orage</td>
+ <td align="right">4.0</td>
+ </tr>
+ <tr>
+ <td>poppler</td>
+ <td align="right">13</td>
+ </tr>
+ <tr>
+ <td>postgresql</td>
+ <td align="right">2.9</td>
+ </tr>
+ <tr>
+ <td>pygobject</td>
+ <td align="right">1.2</td>
+ </tr>
+ <tr>
+ <td>pygtk</td>
+ <td align="right">1.3</td>
+ </tr>
+ <tr>
+ <td>sane</td>
+ <td align="right">1.6</td>
+ </tr>
+ <tr>
+ <td>sounds</td>
+ <td align="right">1.8</td>
+ </tr>
+ <tr>
+ <td>themes (xfce)</td>
+ <td align="right">6</td>
+ </tr>
+ <tr>
+ <td>vim</td>
+ <td align="right">17</td>
+ </tr>
+ <tr>
+ <td>wireshark</td>
+ <td align="right">12</td>
+ </tr>
+ <tr>
+ <td>wv</td>
+ <td align="right">1.9</td>
+ </tr>
+ <tr>
+ <td>xfce4</td>
+ <td align="right">2.6</td>
+ </tr>
+ <tr>
+ <td>xine</td>
+ <td align="right">2.0</td>
+ </tr>
+ <tr>
+ <td>qemu</td>
+ <td align="right">4.0</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <br>
+ </div>
+
+ <hr>
+
+ <div id="sshhandshaking">
+ <header class="section-header header">
+ <h2 class="h h2">SSH Handshaking</h2>
+ </header>
+ <p>
+ This will assume that you are <span class="notice">on the client machine</span> and need to connect to a server and have working ssh access to the server.
+ </p>
+ <ul>
+ <br>
+ <li><span class="bold">Step 1</span>, generate the key (-d is for DSA, no -d is for RSA)<br>
+ <code> <span class="notice">ssh-keygen -d</span></code></li>
+ <br>
+ <li><span class="bold">Step 2</span>, Skipping password, just press enter on password prompt to leave it empty so that passwordless handshaking can work.<br>
+ This should create the .ssh/id_dsa and the .ssh/id_dsa.pub files, and this may take some time, depending on your hardware.</li>
+ <br>
+ <li><span class="bold">Step 3</span>, Put the necessary files on the remote server to do the handshaking with<br>
+ <span class="notice">username</span> = your username to connect to the server<br>
+ <span class="notice">remotehost</span> = the address used to connect to the server<br>
+ <span class="notice">/yourhome/directiry</span> = the path to your home directory<br>
+ <br>
+ <code> <span class="notice">scp .ssh/id_dsa.pub username@remotehost:/yourhome/directory/</span></code><br>
+ <code> <span class="notice">ssh username@remotehost</span></code><br>
+ <code> <span class="notice">mkdir -p ~/.ssh/</span></code><br>
+ <code> <span class="notice">cat ~/id_dsa.pub >> ~/.ssh/authorized_keys</span></code></li>
+ <br>
+ <li><span class="bold">Step 4</span>, now you can delete the id_dsa.pub file from the remote host and exit.<br>
+ <code> <span class="notice">rm id_dsa.pub</span></code><br>
+ <code> <span class="notice">exit</span></code></li>
+ <br>
+ <li><span class="bold">Step 5</span>, DONE<br>
+ You should be able to ssh to the remote host without a password now, given that the .ssh/id_dsa file and the .ssh/id_dsa.pub file exist on your client machine for the user you intend to connect with.</li>
+ <br>
+ <li><span class="bold">Adding SSHFS on top of the SSH Handshaking</span><br>
+ See the SSH Handshaking above first<br>
+ Now that you can handshake from the above example, you should now be able to run the sshfs command and even put it in a logon or boot script, without exposing your password</li>
+ <br>
+ <li>Mounting from sshfs<br>
+ <code> <span class="notice">sshfs username@remotehost:/remote/directory/ /local/directory/</span></code></li>
+ <br>
+ <li>Unmounting from sshfs<br>
+ <code> <span class="notice">fusermount -u /local/directory/</span></code></li>
+ <br>
+ <li>If you did not use the SSH Handshaking above, then you will be prompted for a password on the sshfs command</li>
+ <li>If you did use the SSH Handshaking above, and are still being asked for a password, then there is a problem with the RSA/DSA keys</li>
+ <li>This password will still be prompted for any other client you use that does NOT have the private .ssh/id_dsa key</li>
+ </ul>
+ </div>
+
+ <hr>
+
+ <div id="encryptedbooting">
+ <header class="section-header header">
+ <h2 class="h h2">Encrypted Booting</h2 class="h h2">
+ </header>
+ <p>
+ The encrypted boot process potentially requires additional files to exist on the boot device.<br>
+ This explains what those files are and how to configure these files.<br>
+ <br>
+ Inside of the effective <span class="notice">/boot/</span> directory of the boot device there needs to be a <span class="notice">/settings/</span> directory.<br>
+ Inside this directory there are currently only a few types of files searched for:<br>
+ <ol>
+ <li><span class="notice">Files that end in: .device</span></li>
+ <li><span class="notice">Files that end in: .key</span></li>
+ <li><span class="notice">Files that end in: .ask</span></li>
+ </ol>
+ At this time only a limited set of device files are supported and they are:<br>
+ <ul>
+ <li><span class="notice">rootfs.device</span></li>
+ <li><span class="notice">home.device</span></li>
+ <li><span class="notice">etc.device</span></li>
+ <li><span class="notice">var.device</span></li>
+ <li><span class="notice">tmp.device</span></li>
+ </ul>
+ The only thing allowed inside of these files are the name of device to be decrypted.<br>
+ Allowed names are anything allowed by the mount command, such as:<br>
+ <ul>
+ <li><span class="notice">/dev/sda1</span></li>
+ <li><span class="notice">my_encrypted_drive</span></li>
+ <li><span class="notice">98ff3608-7631-4381-a04a-27cc09f42ae1</span></li>
+ </ul>
+ There should be nothing else inside of these files.<br>
+ <br>
+ The <span class="notice">.key</span> and <span class="notice">.ask</span> files are optional and must have the same name as the particular device file they represent.<br>
+ For example, for rootfs.device an ask file would be: <span class="notice">rootfs.ask</span>.<br>
+ <br>
+ The <span class="notice">.key</span> and <span class="notice">.ask</span> files determine how a particular device is decrypted.<br>
+ If a <span class="notice">.ask</span> file exists for a particular device, then during the boot process a prompt for the password will be presented to the user.<br>
+ If a <span class="notice">.key</span> file exists then that file is expected to contain the key that will be used to decrypt the drive.<br>
+ This key will allow for automatic decryption during boot.<br>
+ If both a <span class="notice">.key</span> file and a <span class="notice">.ask</span> file exist, then the <span class="notice">.key</span> will be processed first.<br>
+ If that <span class="notice">.key</span> file fails to decrypt the drive, then the user will be asked to enter in the password to decrypt.<br>
+ <br>
+ Important boot commands to pay attention to when dealing with encrypted booting are:<br>
+ <ul>
+ <li><span class="notice">settings=</span></li>
+ <li><span class="notice">settingsname=</span></li>
+ <li><span class="notice">settingscdromsearch=</span></li>
+ <li><span class="notice">settingsmmcsearch=</span></li>
+ <li><span class="notice">etcdevice=</span></li>
+ <li><span class="notice">homedevice=</span></li>
+ <li><span class="notice">vardevice=</span></li>
+ <li><span class="notice">tmpdevice=</span></li>
+ <li><span class="notice">finalroot=</span></li>
+ </ul>
+ <br>
+ The only device encryption supported at this time is LUKS.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="encryptingadrive">
+ <header class="section-header header">
+ <h2 class="h h2">Encrypting a Drive</h2>
+ </header>
+ <p>
+ <span class="error bold">WARNING: Creating an encrypted drive requires formatting a device, which will delete all data on that device.</span><br>
+ <br>
+ Lets say you wanted to encrypt a partition (/dev/sda6) and use a key file.<br>
+ <ol>
+ <li>Fill the drive with random data <span class="error">(this will delete all data on the device /dev/sda6)</span>:<br>
+ <code><span class="notice">dd if=/dev/urandom of=/dev/sda6</span></code><br>
+ <br>
+ </li>
+ <li>Create a keyfile using randomly generated data:<br>
+ <code><span class="notice">dd if=/dev/urandom of=~/some.key bs=1c count=512</span></code><br>
+ <br>
+ </li>
+ <li>Use the keyfile to encrypt the device with LUKS encryption:<br>
+ <code><span class="notice">cryptsetup -c aes-xts-plain:sha512 -s 512 luksFormat /dev/sda6 ~/some.key</span></code><br>
+ <br>
+ Alternatively, try this encryption:<br>
+ <code><span class="notice">cryptsetup -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/sda6 ~/some.key</span></code><br>
+ <br>
+ </li>
+ <li>Now that the device is encrypted, decrypt the device so that the device can be properly formatted (calling the decrypted device: some_name_here):<br>
+ <code><span class="notice">cryptsetup luksOpen /dev/sda6 some_name_here -d ~/some-key</span></code><br>
+ <br>
+ </li>
+ <li>Format the decypted device (this example format creates an ext4 filesystem with a label of: some_fs_label):<br>
+ <code><span class="notice">mkfs.ext4 -L some_fs_label /dev/mapper/some_name_here</span></code><br>
+ <br>
+ </li>
+ </ol>
+ <br>
+ Lets say you wanted to encrypt a partition (/dev/sda6) and use a password.<br>
+ <ol>
+ <li>Fill the drive with random data <span class="error">(this will delete all data on the device /dev/sda6)</span>:<br>
+ <code><span class="notice">dd if=/dev/urandom of=/dev/sda6</span></code><br>
+ <br>
+ </li>
+ <li>Encrypt the device with LUKS encryption:<br>
+ <code><span class="notice">cryptsetup -c aes-xts-plain:sha512 -y -s 512 luksFormat /dev/sda6</span></code><br>
+ Then enter in your desired password when prompted.<br>
+ <br>
+ Alternatively, try this encryption:<br>
+ <code><span class="notice">cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sda6</span></code><br>
+ <br>
+ </li>
+ <li>Now that the device is encrypted, decrypt the device so that the device can be properly formatted (calling the decrypted device: some_name_here):<br>
+ <code><span class="notice">cryptsetup luksOpen /dev/sda6 some_name_here</span></code><br>
+ Enter in the password you used in the previous step when prompted.<br>
+ <br>
+ </li>
+ <li>Format the decypted device (this example format creates an ext4 filesystem with a label of: some_fs_label):<br>
+ <code><span class="notice">mkfs.ext4 -L some_fs_label /dev/mapper/some_name_here</span></code><br>
+ <br>
+ </li>
+ </ol>
+ <br>
+ Lets say you wanted add a new key to an existing encrypted device.<br>
+ <ol>
+ <li>If not already created, create a new key using random data:<br>
+ <code><span class="notice">dd if=/dev/urandom of=~/new.key bs=1c count=512</span></code><br>
+ <br>
+ </li>
+ <li>Add the new key (Assuming that the old key is called old.key and is stored in your home directory):<br>
+ <code><span class="notice">cryptsetup -d ~/old.key luksAddKey /dev/sda6 ~/new.key</span></code><br>
+ <br>
+ If the encrypted device did not use a key, then use the following command instead and enter in the appropriate password when prompted:<br>
+ <code><span class="notice">cryptsetup luksAddKey /dev/sda6 ~/new.key</span></code><br>
+ <br>
+ </li>
+ </ol>
+ <br>
+ Lets say you wanted add a new password to an existing encrypted device.<br>
+ <ol>
+ <li>Add the new key (Assuming that the old key is called old.key and is stored in your home directory):<br>
+ <code><span class="notice">cryptsetup -d ~/old.key luksAddKey /dev/sda6</span></code><br>
+ Then enter in your desired password when prompted.<br>
+ <br>
+ If the encrypted device did not use a key, then use the following command instead:<br>
+ <code><span class="notice">cryptsetup luksAddKey /dev/sda6</span></code><br>
+ You will first be prompted for the decryption password, enter in that first.<br>
+ Enter in the new password after the first password properly decrypts the device.<br>
+ <br>
+ </li>
+ </ol>
+ Lets say you wanted delete an existing password or key file from the drive.<br>
+ <ol>
+ <li>Both the password and the key file are stored in slots.<br>
+ In order to delete either of these, you will need to know which slot to delete.<br>
+ This information can be found by decrypting a device with the key or password you wish to delete.<br>
+ Whenever the device gets decrypted a message should be presented, stating which key slot was used.<br>
+ <br>
+ Once you have the propery slot identified (lets call this desired_slot), delete that slot (Assuming that the old key is called old.key and is stored in your home directory):
+ <code><span class="notice">cryptsetup -d ~/old.key luksDelKey /dev/sda6 desired_slot</span></code><br>
+ <br>
+ If the encrypted device did not use a key, then use the following command instead:<br>
+ <code><span class="notice">cryptsetup luksDelKey /dev/sda6 desired_slot</span></code><br>
+ Enter in the decryption password when prompted.<br>
+ <br>
+ </li>
+ </ol>
+ To learn how to encrypt using LUKS in detail, visit the <a href="https://gitlab.com/cryptsetup/cryptsetup/-/tree/master">LUKS website</a>.<br>
+ </p>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - System Configuration</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation for system configuration.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/configuring.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">System Configuration</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/configuring.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">System Configuration</h1>
+ </header>
+
+ <div class="main-content">
+ <div id="firsttimerunningconfiguration">
+ <header class="section-header header">
+ <h2 class="h h2">First Time Running Configuration</h2>
+ </header>
+ <p>
+ The very first time the system is run, there are some important things to do.<br>
+ Most important of all is changing the root password and adding users.<br>
+ If you do not change your root password immediately, your system is vulnerable to hacks.<br>
+ If you do not add users, then your users will not be able to use your system unless they run as the root user.<br>
+ <span class="bold error">WARNING: Running as the root user is dangerous, do so at your own lethal risk.</span><br>
+ <br>
+ <span class="bold">Changing the root user password is simple:</span><br>
+ - Login to your root user (by default this is <span class="notice">turtle</span>).<br>
+ - In a command-line prompt (or a terminal), run the command <span class="notice">passwd</span>.<br>
+ <span class="bold important">- NOTE: the command <span class="notice">passwd</span> must not contain the "or", passwd is exactly as the command should be spelled.</span><br>
+ - Follow the instructions and your done.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="settingupusernamesandpasswords">
+ <header class="section-header header">
+ <h2 class="h h2">Setting Up Usernames and Passwords</h2>
+ </header>
+ <p>
+ To add a user to the system, use the command line program called <span class="notice">adduser</span>, which requires root user access.<br>
+ <span class="bold important">NOTE: In previous versions the gadduser program was supplied as a graphical user interface to adding users, but this has been removed for the time being.</span>
+ </p>
+ <a href="distributions/turtle/documentation/images/Adding_Users-1.png"><img src="distributions/turtle/documentation/images_small/Adding_Users-1.png" alt="Screenshot of adding users step 1." align="top" border="0"></a><br>
+ <p>
+ To add a user, open up a terminal and switch to root access.<br>
+ Simply specify the username followed by the permissions group they should belong to.<br>
+ There are 3 major permissions groups: admin, power, and desktop.<br>
+ The admin user has the most priviledges on the system and can gain root access, there is little this user cannot do.<br>
+ The power user is a slightly weakened version of admin and the power user cannot gain root access.<br>
+ The desktop user has the standard permissions needed for standard desktop usage and has no heightened priviledges beyond that.<br>
+ </p>
+ <a href="distributions/turtle/documentation/images/Adding_Users-2.png"><img src="distributions/turtle/documentation/images_small/Adding_Users-2.png" alt="Screenshot of adding users step 2." align="top" border="0"></a><br>
+ <p>
+ After you begin the add user process you will be prompted for a password.<br>
+ Following this, if everything went well the user will have been added to the system.<br>
+ If you ever need to remove a user, the <span class="notice">deluser</span> program can be used and functions in an almost identical fassion.<br>
+ <br>
+ <span class="bold important">
+ NOTE: By default the deluser program will remove all files own by the deleted user, to prevent this from happing use the unsetup script called none.<br>
+ For example, normally to delete the user BOB the command would be 'deluser BOB'.<br>
+ To delete BOB without removing BOB's files, the command would be: 'deluser BOB none'.<br>
+ </span>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="settingupthenetwork">
+ <header class="section-header header">
+ <h2 class="h h2">Setting Up the Network</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Network.png"><img src="distributions/turtle/documentation/images_small/Network.png" alt="Screenshot of setting up network." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /etc/network/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>default-blacklist</li>
+ <li>default-firewall</li>
+ <li>default-device</li>
+ <li>example-device</li>
+ <li>example-device-firewall</li>
+ <li>example-device-wpa</li>
+ <li>example-wireless</li>
+ <li>example-bridge</li>
+ <li>hostname</li>
+ <li>hosts</li>
+ <li>proc_settings</li>
+ <li>resolution</li>
+ <li>protocols</li>
+ <li>services</li>
+ <li>gre0, tunl0</li>
+ </ol>
+ <br>
+ <ul>
+ <li><span class="notice bold">File 1, default-blacklist:</span><br>
+ This is a list of all ip-addresses that the firewall deny access to this machine.<br>
+ A single white space (space, tab, or new line) is all that is needed to setup the addresses.<br>
+ A default whitelist can be created and used as well.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 2, default-firewall:</span><br>
+ Defines all of the firewall rules.<br>
+ The firewall syntax is broken up into terms: direction, device, action, rule, ip_list.<br>
+ All of the terms reflect iptables syntax.<br>
+ Terms must all be lowercase.<br>
+ When one of the terms direction, device, and action are set, their data is applied to all rules below that line until another term of the same type is set.<br>
+ What this means is that if a direction of "input" is specified, every rule (or ip_list) following that direction command will apply the direction of "input" until the next direction command is specified.<br>
+ This file is broken up into two different sections: first and last.<br>
+ For each ethernet device on the system there may exist a single firewall rule for that device, such as: net0123456789ab-firewall.<br>
+ The firewall wall rules are applied in this order: default-firewall's section called first, then all ethernet device firewall sections called main, and finally default-firewall's section called last<br>
+ <br>
+ <span class="bold">Terminology breakdown:</span><br>
+ <br>
+ <span class="notice">direction</span>:
+ <ul>
+ <li>Valid directions are: input, output, forward, postrouting, prerouting</li>
+ <li>Direction specifies the direction in which the connection is coming from</li>
+ <li>The direction stays in effect until another direction is specified</li>
+ </ul>
+ <br>
+ <span class="notice">device</span>:
+ <ul>
+ <li>Valid devices are: all, this, and the name of any device</li>
+ <li>all is generally used within the default-firewall and applies to all network devices on the system</li>
+ <li>this can only be used in a device-specific firewall file and refers to the name of the device that the specified file belongs to (for the file net0123456789ab-firewall, 'this' would refer to the device called net0123456789ab)</li>
+ <li>instead of 'all' or 'this', one can explicitly use the name of a device</li>
+ <li>The device stays in effect until another device is specified</li>
+ </ul>
+ <br>
+ <span class="notice">action</span>:
+ <ul>
+ <li>Valid actions are: append, insert, and policy</li>
+ <li>Action specifies how a particular rule gets added to the firewall, see the iptables documentation on the details.</li>
+ <li>The action stays in effect until another action is specified</li>
+ </ul>
+ <br>
+ <span class="notice">rule</span>:
+ <ul>
+ <li>Rules are the raw iptable commands, minus the direction, device, and action</li>
+ <li>The rule is applied immediately and does not carry over to any line beyond its own.</li>
+ </ul>
+ <br>
+ <span class="notice">ip_list</span>:
+ <ul>
+ <li>IP Lists are the rules applied to multiple ip addresses</li>
+ <li>The ip_list is applied immediately and does not carry over to any line beyond its own.</li>
+ </ul>
+ <br>
+ <span class="bold">Example comparison between raw iptables command and the default-firewall syntax:</span><br>
+ <span class="notice">Raw Iptables Syntax</span>:<br>
+ <code>
+ /sbin/iptables -A INPUT -i eth0 -p tcp --dport 47288 -j ACCEPT<br>
+ /sbin/iptables -A INPUT -i eth0 -p udp --sport 47288:47544 -j ACCEPT<br>
+ /sbin/iptables -A INPUT -i eth0 -p udp --dport 47288:47544 -j ACCEPT<br>
+ /sbin/iptables -A OUTPUT -o eth0 -p udp --sport 123 --dport 123 -j ACCEPT<br>
+ </code><br>
+ <span class="notice">default-firewall Syntax</span>:<br>
+ <code>
+ direction input<br>
+ device eth0<br>
+ action append<br>
+ <br>
+ rule -p tcp --dport 47288 -j ACCEPT<br>
+ rule -p udp --sport 47288:47544 -j ACCEPT<br>
+ rule -p udp --dport 47288:47544 -j ACCEPT<br>
+ <br>
+ direction output<br>
+ rule -p udp --sport 123 --dport 123 -j ACCEPT<br>
+ </code>
+ <br>
+ </li>
+ <li><span class="notice bold">File 3, default-device:</span><br>
+ This supplies some default options for all devices.<br>
+ The term 'default' can be used to specify whether or not to attempt to obtain a dynamic address (DHCP) on all standard network devices if settings file for that device does not exist.<br>
+ The terms 'search', 'nameserver_1', 'nameserver_2', and 'nameserver_3' are used to enforce a search domain or nameserver.<br>
+ The enforced search domain and nameservers will override any device specific search domain or nameserver.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 4, example-device:</span><br>
+ This file is provided as an example on how to configure a particular network device.<br>
+ The actual device filename should be the name of the device.<br>
+ The core terms: type, signal, and master.<br>
+ The term 'type' has the following options: ignore, disable, static, and dynamic.<br>
+ The term type 'ignore' means that the networking tools will not touch that network device so that a user can manually configure without having the network tools change anything.<br>
+ The term type 'disable' means that under all circumstance that device should be disabled, if at any time the device is noticed as up it will be brought down.<br>
+ The term type 'static' means that the connection is a static connection (manually defined).<br>
+ The term type 'dynamic' means that the connection is a dynamic connection (DHCP/auto defined).<br>
+ The term 'signal' specifies whether or not the signal is 'wired' or 'wireless'.<br>
+ The term 'master' specifies whether or not this device is the master route, 'yes' or 'no'. If 'yes', then the terms 'search', 'nameserver_1', 'nameserver_2', and 'nameserver_3' will be processed and this device will be setup as the default route.<br>
+ The common terms are: bond tunnel mac search nameserver_1 nameserver_2 nameserver_3 firewall.<br>
+ The term 'bond' implies that this device should be bonded between multiple network devices.<br>
+ To syntax is: bond network_device_1 network_device_2<br>
+ Where the network_device_1 and network_device_2 are the names of the network devices to bond togethor.<br>
+ The term 'tunnel' is a works in progress, this could be removed in the future.<br>
+ The term 'mac' represents the devices mac address and provides the means to change the mac address to something different.<br>
+ In particular, you can specify random instead of a valid mac address to have the mac address be randomly generated every time the device gets enabled.<br>
+ For the terms 'search', 'nameserver_1', 'nameserver_2', 'nameserver_3', see the term 'master' above.<br>
+ The term 'firewall' can be either 'on' or 'off' and represents whether or not the device-specific firewall rules will be processed when the device gets enabled.<br>
+ The device-specific firewall rules are those specified in the file nameofdevice-firewall.<br>
+ The static terms are: ip, network, prefix, broadcast, metric, gateway, gtype, gmetric, and family.<br>
+ The gtype and gmetric represent the gateway type and gateway metric.<br>
+ The wireless terms are: essid, mode, channel, rate, enc, power, nick, nwid, ap, txpower, sens, retry, rts, frag, modulation, and wpa<br>
+ The term 'wpa' can be either 'yes' or 'no' and specifies whether or not the target wireless connection is using wpa.<br>
+ File 7 contains a small example on the using wireless.<br>
+ File 8 contains a small example on the using bridges.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 5, example-device-firewall:</span><br>
+ This is an example device-specific firewall rules file, see File 2 above for details.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 6, example-device-wpa:</span><br>
+ This is the wpa settings for a specific device, see the wpa_supplicant documentation on the web for how to configure this file (search for wpa_supplicant.conf).<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 7, example-wireless:</span><br>
+ This is an example wireless device, see File 4 above for details.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 8, example-bridge:</span><br>
+ This is an example bridged device, see File 4 above for details.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 9, hostname:</span><br>
+ This file contains only the hostname, no extra syntax.<br>
+ This file is the new location and name of the /etc/hostname file<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 10, hosts:</span><br>
+ This file is the new location and name of the /etc/hosts file<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 11, proc_settings:</span><br>
+ This file represents proc-specific network settings and get applied at system start.<br>
+ To reprocess this file, run the command <span class="notice">ngc -r net/network_proc</span>.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 12, resolution:</span><br>
+ This file is the new location and name of the /etc/resolv.conf file<br>
+ This file should probably not be edited directly, instead edit either the default-device or the appropriate network file and set the search, nameserver_1, nameserver_2, and nameserver_3 appropriately.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 13, protocols:</span><br>
+ This file is the new location and name of the /etc/protocols file<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 14, services:</span><br>
+ This file is the new location and name of the /etc/services file<br>
+ <br>
+ </li>
+ <li><span class="notice bold">File 15, gre0, tunl0:</span><br>
+ The gre0 and tunl0 are disabled by default and these files are doing the disabling.<br>
+ <br>
+ </li>
+ <li><span class="notice bold">Controlling the Network:</span><br>
+ To control the firewall you will need to use the console command: <span class="notice">firewall</span>.<br>
+ To control network devices you will need to use the console command: <span class="notice">network</span>.<br>
+ <br>
+ </li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="settingupthexorgdisplay">
+ <header class="section-header header">
+ <h2 class="h h2">Setting Up the Xorg Display</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_Xorg_Display-1.png"><img src="distributions/turtle/documentation/images_small/Configuring_Xorg_Display-1.png" alt="Screenshot of configuring Xorg Display step 1." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /etc/X11/<br>
+ <br>
+ The file to be configured is: <span class="notice">/etc/X11/xorg.conf</span><br>
+ The file <span class="notice">/etc/X11/xorg.conf</span> has examples and slight documentaton on how to configure the xorg display.<br>
+ You can also visit <a href="http://www.x.org/">http://www.x.org/</a> for details.<br>
+ Alternatively visit <a href="http://die.net/">http://die.net/</a> and search for xorg.conf.<br>
+ <br>
+ </p>
+ <a href="distributions/turtle/documentation/images/Configuring_Xorg_Display-2.png"><img src="distributions/turtle/documentation/images_small/Configuring_Xorg_Display-2.png" alt="Screenshot of configuring Xorg Display step 2." align="top" border="0"></a><br>
+ <p>
+ If you need to use a different video driver, edit the <span class="notice">/etc/X11/xorg.conf</span> file.<br>
+ Scroll to the bottom and uncomment and set the Driver to whatever you need it to be.<br>
+ <br>
+ If you are on an OLPC, you could copy the pre-created olpc xorg configuration file:<br>
+ <code><span class="notice">
+ cd /etc/X11/<br>
+ cp -v xorg.conf.olpc xorg.conf<br>
+ </span></code>
+ <br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="updatingtheclamavdatabase">
+ <header class="section-header header">
+ <h2 class="h h2">Updating the ClamAV Database</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Updating_Clamav_Database.png"><img src="distributions/turtle/documentation/images_small/Updating_Clamav_Database.png" alt="Screenshot of updating ClamAV." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/services/clamav/database/<br>
+ <br>
+ You will need to open a terminal and switch to the <span class="notice">clamav</span> user.<br>
+ Now execute the <span class="notice">freshclam</span> program.<br>
+ <span class="bold important">NOTE: This requires network access, so this will fail if you have no working network active.</span><br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="tweakingthebootprocess">
+ <header class="section-header header">
+ <h2 class="h h2">Tweaking the Boot Process</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Tweaking_Boot_Process.png"><img src="distributions/turtle/documentation/images_small/Tweaking_Boot_Process.png" alt="Screenshot of tweaking boot process." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /etc/initng/<br>
+ <br>
+ The file to be configured is: <span class="notice">/etc/initng/runlevel/default.runlevel</span><br>
+ The <span class="notice">default.runlevel</span> file specifies how the system boots, but not the order.<br>
+ The order is handled by the individual dependencies.<br>
+ <br>
+ Most of the available boot-time software have rules already created such that all you need to do is add them to the default runlevel.<br>
+ To add/remove anything to the boot process, the syntax of the file requires the directory and then the filename (without the extension) on a line by itself.<br>
+ <br>
+ If you wanted to add an <span class="notice">SSH server</span> to your boot process, then you would simple add <span class="notice">target/ssh</span> on any new line in the file.<br>
+ The directory <span class="notice">target/</span> can be found in the <span class="notice">/etc/initng/</span> directory.<br>
+ <br>
+ If you wish to boot using a runlevel other than default, look into the <a href="running.html#boot_option_runlevel">runlevel=</a> boot option.<br>
+ <br>
+ Once settings are changed, you can use the <span class="notice">ngc</span> program to start/stop and do other initng administrative commands.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="updatingpciusbids">
+ <header class="section-header header">
+ <h2 class="h h2">PCI and USB ID Updating</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Updating_Ids_Files.png"><img src="distributions/turtle/documentation/images_small/Updating_Ids_Files.png" alt="Screenshot of updating IDs." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /etc/<br>
+ <br>
+ The files to be configured are: <span class="notice">/etc/pci.ids</span> and <span class="notice">/etc/usb.ids</span><br>
+ The <span class="notice">/etc/pci.ids</span> and <span class="notice">/etc/usb.ids</span> files specify vender-specific information on what any particular hardware device is.<br>
+ In particular, the lspci and lsusb utilities read this information.<br>
+ <br>
+ To update <span class="notice">/etc/pci.ids</span> to the latest version, download: <a href="http://pciids.sourceforge.net/v2.2/pci.ids">http://pciids.sourceforge.net/v2.2/pci.ids</a><br>
+ To update <span class="notice">/etc/usb.ids</span> to the latest version, download: <a href="http://www.linux-usb.org/usb.ids">http://www.linux-usb.org/usb.ids</a><br>
+ <br>
+ Once this is done, make sure that the file permissions are correct:<br>
+ <code><span class="notice">
+ chgrp hardware_browse /etc/{pci,usb}.ids<br>
+ chmod g-wx+r,o-rwx /etc/{pci,usb}.ids<br>
+ </span></code>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="usingturtlekevuxontheolpc">
+ <header class="section-header header">
+ <h2 class="h h2">Using Turtle Kevux on the OLPC</h2>
+ </header>
+ <p>
+ The first step is to follow <a href="http://wiki.laptop.org/go/Activation_and_developer_keys">the instructions on the OLPC website</a> to obtain the developer key.<br>
+ This may take a while, so come back a few hours later.<br>
+ <br>
+ There are two possible ways to boot kevux without touching the original OLPC system.<br>
+ The first is to install Turtle Kevux onto a USB-Stick, whose partition should be labelled <span class="notice">turtle-usb-olpc</span><br>
+ The second is to install Turtle Kevux onto a MMC, whose partition should be labelled <span class="notice">turtle-sd-olpc</span><br>
+ If you do not know how to label or format the USB-Stick or MMC:
+ <ol>
+ <li><a href="installing.html#partitioningthesystem">Read the partitioning tutorial</a></li>
+ <li>Make sure to properly select the correct USB-Stick or MMC.</li>
+ <li>Create a single partition and set the label to either <span class="notice">turtle-usb-olpc</span> or <span class="notice">turtle-sd-olpc</span> for USB-Stick and MMC respectively.</li>
+ </ol>
+ <br>
+ The next step is to obtain the custom compiled OLPC kernels from the <a href="http://kevux.org/">kevux website</a>.<br>
+ Once you have the custom OLPC kernel and its appropriate kernel modules, put them on the system.<br>
+ Lets say you downloaded the custom compiled OLPC kernel from kevux.org and it is called <span class="notice">turtle-2.6.26.5-olpc</span> and the maintenance kernel is called <span class="notice">turtle-2.6.26.5-olpc-maintenance</span>.<br>
+ Lets say that you also dowloaded the appropriate kernel modules and it is called <span class="notice">2.6.26.5-olpc.tz2</span>.<br>
+ You will also need to extract the kernel modules to <span class="notice">modules/</span><br>
+ What you would do is:<br>
+ <code><span class="notice">
+ mv -v turtle-2.6.26.5-olpc boot/<br>
+ ln -vs turtle-2.6.26.5-olpc boot/turtle-olpc<br>
+ tar -xf 2.6.26.5-olpc.tz2 -C modules/<br>
+ mv -v turtle-2.6.26.5-olpc-maintenance boot/<br>
+ ln -vs turtle-2.6.26.5-olpc-maintenance boot/turtle-olpc-maintenance<br>
+ </span></code>
+ <br>
+ Replace the default <span class="notice">xorg.conf</span> file with the the <span class="notice">xorg.conf.olpc</span> file so that you can get a working graphical display:<br>
+ <code><span class="notice">
+ cp -v etc/X11/xorg.conf.olpc etc/X11/xorg.conf<br>
+ </span></code>
+ <br>
+ You are now ready to boot to the OLPC.<br>
+ Plug your device into the OLPC and reboot the OLPC.<br>
+ If all goes well, you should get a prompt where you can press a key to select the desired method of booting.<br>
+ <span class="bold important">NOTE: Don't select the Squash or Squish boot methods unless you know what you are doing.</span><br>
+ <br>
+ If all went well, you are sitting in a graphical environment.<br>
+ You now have one more step at tweaking the system.<br>
+ </p>
+ <a href="distributions/turtle/documentation/images/Setting_OLPC_DPI-1.png"><img src="distributions/turtle/documentation/images_small/Setting_OLPC_DPI-1.png" alt="Screenshot of setting up OLPC step 1." align="top" border="0"></a><br>
+ <p>
+ Open up the <span class="notice">Applications->Settings->Appearance</span>.<br>
+ </p>
+ <a href="distributions/turtle/documentation/images/Setting_OLPC_DPI-2.png"><img src="distributions/turtle/documentation/images_small/Setting_OLPC_DPI-2.png" alt="Screenshot of setting up OLPC step 2." align="top" border="0"></a><br>
+ <p>
+ Select the <span class="notice">Fonts</span> tab.<br>
+ </p>
+ <a href="distributions/turtle/documentation/images/Setting_OLPC_DPI-3.png"><img src="distributions/turtle/documentation/images_small/Setting_OLPC_DPI-3.png" alt="Screenshot of setting up OLPC step 3." align="top" border="0"></a><br>
+ <p>
+ Enable the <span class="notice">Custom DPI Settings</span> checkbox and set DPI to <span class="notice">140</span>.<br>
+ <br>
+ You should now be able to fully use OLPC.<br>
+ <span class="bold important">NOTE: Use the TVCard Player called <span class="notice">xawtv</span> to access the camera.</span><br>
+ </p>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Credits</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation for presenting credits.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/credits.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Credits</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/credits.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Credits</h1>
+ </header>
+
+ <div class="main-content">
+ <div class="strong">Linux Kernel Developers</div>
+ <div id="explain">
+ <a href="https://www.kernel.org/">www.kernel.org</a><br>
+ Without the Linux kernel, none of this would be possible.<br>
+ </div>
+ <br>
+ <div class="strong">All the other Open-Source Developers</div>
+ <div id="explain">
+ This system is comprised of a bunch of software released as open-source by numerous people.<br>
+ </div>
+ <br>
+ <div class="strong">Linux From Scratch</div>
+ <div id="explain">
+ <a href="https://www.linuxfromscratch.org/">www.linuxfromscratch.org</a><br>
+ I had to start from somewhere, this is where I learned.<br>
+ This includes the HLFS (Hardeneded LFS) project at <a href="http://www.linuxfromscratch.org/hlfs/">www.linuxfromscratch.org/hlfs</a><br>
+ </div>
+ <br>
+ <div class="strong">uClibc Developers</div>
+ <div id="explain">
+ <a href="https://www.uclibc.org/">www.uclibc.org</a><br>
+ They wrote a more efficient libc as opposed to glibc.<br>
+ </div>
+ <br>
+ <div class="strong">Richard Crichton</div>
+ <div id="explain">
+ An early tester and user of my system as it evolved into Turtle Kevux.<br>
+ </div>
+ <br>
+ <div class="strong">Declan Moriarty</div>
+ <div id="explain">
+ A tester who provided valuable feedback, particularly when building from a glibc host, and as regards to user friendliness.<br>
+ </div>
+ <br>
+ <div class="strong">Anonymous</div>
+ <div id="explain">
+ Thanks, Anonymous.<br>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+.kevux > .content-block > .main-block > .main > .main-content ul,
+.kevux > .content-block > .main-block > .main > .main-content ol {
+ margin: 0px;
+ padding-top: 1px;
+ padding-left: 26px;
+ padding-bottom: 5px;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content a {
+ color: #0009ff;
+
+ text-decoration: none;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .notice {
+ color: #1a5d03;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .important {
+ color: #707070;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .error {
+ color: #ee0000;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .center {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .block {
+ display: block;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .inline_block {
+ display: inline-block;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .inline {
+ display: inline;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .bold {
+ font-weight: bold;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .vertical_align-top {
+ vertical-align: top;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content hr.margined {
+ margin-top: 12px;
+ margin-bottom: 12px;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content p {
+ margin: 0;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .code {
+ background-color: #ffffff;
+ border: 1px dotted #000000;
+ padding: 0.5px 3px;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .code.inline-block,
+.kevux > .content-block > .main-block > .main > .main-content .code.block {
+ padding: 3px 6px;
+}
+
+.kevux > .content-block > .main-block > .main > .main-content .tab_over {
+ margin-left: 24px;
+}
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Installing Turtle Kevux</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation for installing the system.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/installing.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Installing Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/installing.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Installing Turtle Kevux</h1>
+ </header>
+
+ <div class="main-content">
+ <div id="partitioningthesystem">
+ <header class="section-header header">
+ <h2 class="h h2">Partitioning the System</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/HowTo_Partition-1.png"><img src="distributions/turtle/documentation/images_small/HowTo_Partition-1.png" alt="Screenshot of how to partition step 1." align="top" border="0"></a><br>
+ <p>
+ <span class="bold error"><i>WARNING: Partitioning a system can be dangerous, do not perform these operations on a system with important information on it.<br>
+ Get practice on a harddrive that you can afford to have it's data lost before doing this on a working system.</i></span><br>
+ <br>
+ Due to the complexity and risks of partitioning, this tutorial is mostly going to assume you have an entire harddrive to be formatted.<br>
+ The partitioner tool can be found on the effective <i>"Start Menu"</i> under <span class="notice">Utilities -> Disk Partitioner</span>.<br>
+ <span class="bold important">NOTE: For the more experienced users, fdisk and pdisk both exist on the system as well as the mke2fs and similar utilities.</span><br>
+ </p>
+ <a href="distributions/turtle/documentation/images/HowTo_Partition-2.png"><img src="distributions/turtle/documentation/images_small/HowTo_Partition-2.png" alt="Screenshot of how to partition step 2." align="top" border="0"></a><br>
+ <p>
+ The first thing you will have to figure out is which harddrive (if you have more than one) are you using.<br>
+ If you cannot figure out what harddrive to use, then <span class="bold error">do not continue</span> until you have properly identified your correct harddrive.<br>
+ On the top-right of the partitioner, there is a drop down box that has something like <span class="notice">/dev/sda</span>.<br>
+ This drop-down box is used to select the correct harddrive.<br>
+ </p>
+ <a href="distributions/turtle/documentation/images/HowTo_Partition-3.png"><img src="distributions/turtle/documentation/images_small/HowTo_Partition-3.png" alt="Screenshot of how to partition step 3." align="top" border="0"></a><br>
+ <p>
+ There are some important names and rules that must be learned at this point.<br>
+ Harddrives can be broken down into pieces that are called partitions.<br>
+ Harddrives can be broken down into <span class="notice">at most 4 partitions</span>.<br>
+ To increase the number of available partitions, an <span class="notice">extended partition</span> must be created.<br>
+ <span class="notice">Extended partitions</span> should be avoided unless you need them and then you usually want to place them as the last partition (sda4, for example).<br>
+ <br>
+ Now that you have the partitions taken care of, lets focus on the <span class="notice">filesystems</span>.<br>
+ The <span class="notice">filesystems</span> are pretty technical and specify how the data is stored and retrieved.<br>
+ What you need to worry about is what <span class="notice">Operating System</span> uses which partitions.<br>
+ <br>
+ In general, the <span class="notice">ntfs</span> filesystem is used by the Microsoft Windows Operating System.<br>
+ Standard usb memory sticks generally use the <span class="notice">vfat</span> filesystem, which is used by old Microsoft Windows Operating Systems (Windows 98 and older).<br>
+ Linux Operating Systems (like Kevux) use the <span class="notice">ext3</span>, <span class="notice">ext2</span>, and <span class="notice">linux swap</span> filesystems.<br>
+ If general, you want to use <span class="notice">ext3</span> for linux because it can handle large filesystems quickly.<br>
+ If you have a usb memory stick to run Kevux off of, then use <span class="notice">ext2</span> to increase the potential lifetime of the stick (for highly technical reasons).<br>
+ The <span class="notice">linux swap</span> filesystem is used to help extend memory, but because you are using a Kevux system, yuu will probably not need any swap.<br>
+ Of course, if you have an old system, say 128 or less MB of ram, then feel free to create a <span class="notice">linux swap</span> filesystem of perhaps 512MB.<br>
+ <br>
+ The grey space that has <span class="notice">unallocated</span> means that a partition is not created for that particular area.<br>
+ What this means is that the <span class="notice">unallocated</span> area will not be available for use.<br>
+ <br>
+ <span class="bold error">Don't use NTFS for any linux system.</span><br>
+ </p>
+ <a href="distributions/turtle/documentation/images/HowTo_Partition-4.png"><img src="distributions/turtle/documentation/images_small/HowTo_Partition-4.png" alt="Screenshot of how to partition step 4." align="top" border="0"></a><br>
+ <p>
+ Again, this example is assuming that you are going to use the entire harddrive.<br>
+ Make sure to delete any existing partitions by selecting each individual partition and deleting that partition (<span class="notice">partition -> delete</span>).<br>
+ Once everything is deleted, you should only see a single massive unallocated area.<br>
+ </p>
+ <a href="distributions/turtle/documentation/images/HowTo_Partition-5.png"><img src="distributions/turtle/documentation/images_small/HowTo_Partition-5.png" alt="Screenshot of how to partition step 5." align="top" border="0"></a><br>
+ <p>
+ Now you should be ready to create partitions.<br>
+ First you should create the <span class="notice">boot partition</span>.<br>
+ The <span class="notice">boot partition</span> should be of one of the following sizes: 16MB, 32MB, 64MB, 128MB, or 256MB.<br>
+ The latter is beyond more than enough space.<br>
+ The filesystem should be <span class="notice">ext2</span> but can safely be <span class="notice">ext3</span>.<br>
+ <br>
+ Next you need to create the <span class="notice">root partition</span>.<br>
+ The <span class="notice">root partition</span> should be of one of the following size: 2048MB, 4096MB, 8192MB, 16384MB, 32768MB, 65536MB.<br>
+ The latter is more than enough space, in fact, it is 64 Gigabytes.<br>
+ <br>
+ Now all the remaining space will be your <span class="notice">home partition</span>.<br>
+ Just fill up every last bit available.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="mountingthecdrom">
+ <header class="section-header header">
+ <h2 class="h h2">Mounting the CD-Rom</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Mounting_Cdrom.png"><img src="distributions/turtle/documentation/images_small/Mounting_Cdrom.png" alt="Screenshot of mounting CD-ROM." align="top" border="0"></a><br>
+ <p>
+ Okay, so you need to mount (use) the cdrom.<br>
+ If you have only 1 cdrom drive, then you can simply type in console: <span class="notice">mount /mnt/cdrom/01</span><br>
+ If you have more than one, then you can try mounting them until you get the correct one.<br>
+ In such a case, the next command following above might be <span class="notice">mount /mnt/cdrom/02</span><br>
+ Of course, you can almost guarantee getting the correct cdrom with the following command: <span class="notice">mount LABEL=Turtle-0.8.8-live /mnt/cdrom</span>, where 0.8.0 is the version of Turtle Kevux that you are mounting.<br>
+ <br>
+ Once the cdrom is mounted, you can access the contents at the location it was mounted on.<br>
+ This means that if you ran the command: <span class="notice">mount /mnt/cdrom/03</span>, then you will find the cdrom contents in the directory <span class="notice">/mnt/cdrom/03</span>.<br>
+ Another example is if you mounted the cdrom with <span class="notice">mount LABEL=Turtle-0.8.8-live /mnt/cdrom</span>, then you will find the contents of the cdrom in the directory <span class="notice">/mnt/cdrom</span><br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="mountingthepartition">
+ <header class="section-header header">
+ <h2 class="h h2">Mounting the Partition</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Mounting_Partition.png"><img src="distributions/turtle/documentation/images_small/Mounting_Partition.png" alt="Screenshot of mounting partition." align="top" border="0"></a><br>
+ <p>
+ This will be assuming that you correctly created the partitions and mounted the cdrom based on the tutorials above.<br>
+ Let us pretend that we only have one harddrive and therefore it's device name will be called <span class="notice">/dev/sda</span>.<br>
+ This means we have 3 partitions, a <span class="notice">boot partition</span> at <span class="notice">/dev/sda1</span>, a <span class="notice">root partition</span> at <span class="notice">/dev/sda2</span>, and a <span class="notice">home partition</span> at /dev/sda3.<br>
+ The order in which these are mounted <span class="notice">DOES</span> matter.<br>
+ <br>
+ Now, we need to mount the <span class="notice">root partition</span> first.<br>
+ This is done with the command: <span class="notice">mount /mnt/sda/02</span><br>
+ Once this is mounted, we need to create the directories that our other two directories will be mounted.<br>
+ This is done with the command: <span class="notice">mkdir /mnt/sda/02/{boot,home}</span><br>
+ <br>
+ Now, we need to mount the <span class="notice">boot partition</span>.<br>
+ This is done with the command: <span class="notice">mount /dev/sda1 /mnt/sda/02/boot</span><br>
+ This command will explicitly mount the /dev/sda1 partition to the location /mnt/sda/02/boot.<br>
+ <br>
+ Now, we need to mount the <span class="notice">home partition</span>.<br>
+ This is done with the command: <span class="notice">mount /dev/sda3 /mnt/sda/02/home</span><br>
+ This command will explicitly mount the /dev/sda3 partition to the location /mnt/sda/02/home.<br>
+ <br>
+ You should now be ready to extract the system.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="extractingthesystem">
+ <header class="section-header header">
+ <h2 class="h h2">Extracting the System</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Extracting_System-1.png"><img src="distributions/turtle/documentation/images_small/Extracting_System-1.png" alt="Screenshot of extracting system step 1." align="top" border="0"></a><br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Extracting_System-2.png"><img src="distributions/turtle/documentation/images_small/Extracting_System-2.png" alt="Screenshot of extracting system step 2." align="top" border="0"></a><br>
+ <p>
+ Let us assume that you mounted the cdrom on <span class="notice">/mnt/cdrom/</span>.<br>
+ If you have need to know how to do this, read the <a href="#mountingthecdrom">Mounting the CD-Rom</a>.<br>
+ <br>
+ Let us assume that you partitioned the harddrive as explained in <a href="#partitioningthesystem">Partitioning the System</a> and have mounted the partitions as explained in <a href="#mountingthepartition">Mounting the Partition</a> at the location <span class="notice">/mnt/sda/02</span>.<br>
+ <br>
+ There is a program designed to ease the process of the installer and set all permissions correctly.<br>
+ Do not install <span class="notice">without</span> this tool unless you know what you are doing.<br>
+ The program is called: <span class="notice">extract_system</span>.<br>
+ <br>
+ Change to the extraction point: <span class="notice">cd /mnt/sda/02/</span><br>
+ Run the extraction program, specifying the mounted cdrom as the source location: <span class="notice">extract_system -s /mnt/cdrom/</span><br>
+ Wait for the program to finish.<br>
+ You are now done extracting the system, the system is now effectively installed.<br>
+ The next step is to configure the system so that it may boot.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="configuringthesystemtoboot">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring the System to Boot</h2>
+ </header>
+ <p>
+ This is the very last step, aside from physically rebooting your computer.<br>
+ Therefore, you better have read and gone through every other portion of the page.<br>
+ This will be assuming that the system is properly extracted and mounted at: <span class="notice">/mnt/sda/02/</span>.<br>
+ This will be assuming that you have 3 partitions, a <span class="notice">boot</span>, a <span class="notice">root</span>, and a <span class="notice">home</span>.<br>
+ <br>
+ <span class="bold important">NOTE: If at any point during this you need to know what harddrive is what and has what partitions, the command <span class="notice">fdisk -l</span> should be used.<br>
+ You should use the output from <span class="notice">fdisk -l</span> to properly configure the <span class="notice">etc/fstab</span> file.</span><br>
+ <br>
+ Okay, there are two ways to boot your Turtle Kevux System, <span class="notice">dynamically</span> or <span class="notice">statically</span>.<br>
+ The <span class="notice">static method</span> is less adaptable and slightly more technical given that you have to specify the exact partition locations.<br>
+ The <span class="notice">dynamic method</span> is more adaptable but can under certain cases boot/mount the wrong partitions.<br>
+ The <span class="notice">dynamic method</span> is the preferred method because it can cope better with hardware changes.<br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Configuring_ToBoot-1.png"><img src="distributions/turtle/documentation/images_small/Configuring_ToBoot-1.png" alt="Screenshot of configuring boot step 1." align="top" border="0"></a><br>
+ <br>
+ <span class="bold">Static Method</span><br>
+ Edit the file <span class="notice">etc/fstab</span> on your new system, which is located at <span class="notice">/mnt/sda/02/etc/fstab</span><br>
+ Now look for the line that reads: <span class="notice"># Turtle-Kevux Basic Layout (Static)</span>.<br>
+ Below this are commented out commands, and a comment is any line that starts with the pound <span class="notice">#</span> symbol.<br>
+ There are two lines to pay attention to, the ones that begin with <span class="notice">#/dev/sda1</span> and <span class="notice">#/dev/sda3</span>.<br>
+ Uncomment these lines by deleting the leading pound <span class="notice">#</span> symbol.<br>
+ These are already pre-configured to work as is based on this documentation.<br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Configuring_ToBoot-2.png"><img src="distributions/turtle/documentation/images_small/Configuring_ToBoot-2.png" alt="Screenshot of configuring boot step 2." align="top" border="0"></a><br>
+ <br>
+ The next step is to edit the <span class="notice">boot/grub/menu.lst</span> file currently located at <span class="notice">/mnt/sda/02/boot/grub/menu.lst</span><br>
+ There are a lot of notes in this file, so you will need to search for the following lines:<br>
+ - The line: <span class="notice">splashimage=(hd0,0)/boot/grub/turtle_grub.xpm.gz</span><br>
+ - The line: <span class="notice">title Boot System</span><br>
+ <br>
+ The first thing to pay attention to are the lines with <span class="notice">(hd0,0)</span>.<br>
+ If you followed the instructions in this documentation, then you will not have to pay attention to these.<br>
+ However, the importance of these lines deem it necessary to at least make you take not of them for future reference.<br>
+ Now that that is out of the way, the only line you should have to pay attention is the second line below <span class="notice">title Boot System</span>.<br>
+ It is the line that begins with <span class="notice">kernel</span><br>
+ <br>
+ On this line, you need to scroll down that entire <span class="bold">long</span> line and change <span class="notice">finalroot=LABEL=turtle_/</span> to <span class="notice">/dev/sda2</span><br>
+ Notice how this information directly relates to what you did with the <span class="notice">etc/fstab</span> file that is currently located at <span class="notice">/mnt/sda/02/etc/fstab</span><br>
+ <br>
+ You are now done with the static configuration, skip below to the <span class="bold">grub/mbr installation</span> below.<br>
+ <br>
+ <span class="bold error">WARNING: When editing any and all files, don't forget to save them before quitting or all of the typing that you did will have to be repeated.</span><br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Configuring_ToBoot-1.png"><img src="distributions/turtle/documentation/images_small/Configuring_ToBoot-1.png" alt="Screenshot of configuring boot step 1." align="top" border="0"></a><br>
+ <br>
+ <span class="bold">Dynamic Method</span><br>
+ Edit the file <span class="notice">etc/fstab</span> on your new system, which is located at <span class="notice">/mnt/sda/02/etc/fstab</span><br>
+ Now at the very top of the file you should see: <span class="notice"># Turtle-Kevux Embedded Layout (Dynamic)</span><br>
+ There are two lines to pay attention to, the ones that begin with: <span class="notice">#LABEL=turtle_/boot</span> and <span class="notice">#LABEL=turtle_/home</span><br>
+ Uncomment these lines by deleting the leading pound <span class="notice">#</span> symbol.<br>
+ Notice that each of these lines start with <span class="notice">LABEL=</span>, this means that you are using the devices based on a name that you give them.<br>
+ These devices currently do not have names, so we need to create them.<br>
+ The names <span class="notice">MUST</span> be identical to the names define in the <span class="notice">etc/fstab</span> file located at <span class="notice">/mnt/sda/02/etc/fstab</span>.<br>
+ <br>
+ To create the name for the first one, the <span class="notice">boot partition</span> which is currently the partition defined at <span class="notice">/dev/sda1</span>, you need to type the following: <span class="notice">e2label /dev/sda1 turtle_/boot</span><br>
+ Notice that there is no <span class="notice">LABEL=</span> preceding the <span class="notice">turtle_/boot</span>.<br>
+ If you were to execute the command <span class="notice">e2label /dev/sda1 LABEL=turtle_/boot</span>, then your <span class="notice">etc/fstab</span> file would have to have the line: <span class="notice">LABEL=LABEL=turtle_/boot</span>.<br>
+ Repeat the process, this time for the <span class="notice">root partition</span> currently located at <span class="notice">/dev/sda2</span>: <span class="notice">e2label /dev/sda2 turtle_/</span><br>
+ repeat the process, this time for the <span class="notice">home partition</span> currently located at <span class="notice">/dev/sda3</span>: e2label /dev/sda3 turtle_/home</span><br>
+ If you change the names of these partitions to something else, make sure to reflect the changes in the <span class="notice">etc/fstab</span> file which is currently located at <span class="notice">/mnt/sda/02/etc/fstab</span>.<br>
+ <br>
+ <span class="bold error">WARNING: The command e2label will not work if you did not format the partitions with the ext2 or ext3 filesystems.</span><br>
+ <span class="bold error">WARNING: Because the dynamic method mounts based on names, if two partitions have the same name, then something will most likely go wrong.<br>
+ This is one of the few problems with the dynamic method.</span><br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Configuring_ToBoot-2.png"><img src="distributions/turtle/documentation/images_small/Configuring_ToBoot-2.png" alt="Screenshot of configuring boot step 2." align="top" border="0"></a><br>
+ <br>
+ The next step is to edit the <span class="notice">boot/grub/menu.lst</span> file currently located at <span class="notice">/mnt/sda/02/boot/grub/menu.lst</span><br>
+ There are a lot of notes in this file, so you will need to search for the following lines:<br>
+ - The line: <span class="notice">splashimage=(hd0,0)/boot/grub/turtle_grub.xpm.gz</span><br>
+ - The line: <span class="notice">title Boot System</span><br>
+ <br>
+ The first thing to pay attention to are the lines with <span class="notice">(hd0,0)</span>.<br>
+ If you followed the instructions in this documentation, then you will not have to pay attention to these.<br>
+ However, the importance of these lines deem it necessary to at least make you take not of them for future reference.<br>
+ Now that that is out of the way, the only line you should have to pay attention is the second line below <span class="notice">title Boot System</span>.<br>
+ It is the line that begins with <span class="notice">kernel</span><br>
+ <br>
+ On this line, you need to scroll down that entire <span class="bold">long</span> line and look at the part that has <span class="notice">finalroot=LABEL=turtle_/</span>.<br>
+ Notice how this information directly relates to what you did with the <span class="notice">etc/fstab</span> file that is currently located at <span class="notice">/mnt/sda/02/etc/fstab</span><br>
+ This is the line that tells the boot process which partition is the <span class="notice">root partition</span>.<br>
+ Because the file is pre-configured to use the <span class="notice">dynamic method</span> you will not have to change this unless you gave the <span class="notice">root partition</span> a name different from <span class="notice">turtle_/</span>.<br>
+ <br>
+ You are now done with the dynamic configuration, skip below to the <span class="bold">grub/mbr installation</span> below.<br>
+ <br>
+ <span class="bold error">WARNING: When editing any and all files, don't forget to save them before quitting or all of the typing that you did will have to be repeated.</span><br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Configuring_ToBoot-3.png"><img src="distributions/turtle/documentation/images_small/Configuring_ToBoot-3.png" alt="Screenshot of configuring boot step 3." align="top" border="0"></a><br>
+ <br>
+ <a href="distributions/turtle/documentation/images/Configuring_ToBoot-4.png"><img src="distributions/turtle/documentation/images_small/Configuring_ToBoot-4.png" alt="Screenshot of configuring boot step 4." align="top" border="0"></a><br>
+ <br>
+ <span class="bold">grub/mbr installation</span><br>
+ The grub file was configured, but it was not installed into what is called the <span class="notice">mbr</span> (master boot record).<br>
+ This <span class="notice">mbr</span> tells the system how to boot.<br>
+ Therefore it needs to be installed.<br>
+ <br>
+ The first step is to start the program by running: <span class="notice">grub</span>.<br>
+ Now, remember those <span class="notice">(hd0,0)</span> lines from the <span class="notice">boot/grub/menu.lst</span> file currently location at <span class="notice">/mnt/sda/02/boot/grub/menu.lst</span>?<br>
+ Well, now you have to type the following: <span class="notice">root (hd0,0)</span><br>
+ Don't forget to press the enter key.<br>
+ That line tells the <span class="notice">grub</span> program that you will install to the first harddrive <i>(the 0 to the left of the comma)</i> and to look for the <span class="notice">boot/grub/menu.lst</span> file on the first partition <i>(the 0 to the right of the comma)</i> of that harddrive.<br>
+ The next command installs the <span class="notice">grub</span> program to the <span class="notice">mbr</span>.<br>
+ The command to install <span class="notice">grub</span> is: <span class="notice">root (hd0)</span><br>
+ This will install <span class="notice">grub</span> to the <span class="notice">mbr</span> of the first harddrive.<br>
+ Now exit the program <i>(assuming everything worked)</i> with the quit command:<span class="notice">quit</span>.<br>
+ <br>
+ You should now be completely finished the installation process and can reboot your machine.<br>
+ an easy way to do this is type the command: <span class="notice">reboot</span> or press the <span class="notice">Control + Alt + Delete</span> key sequence.<br>
+ </p>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Known Issues</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation describing known issues.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/problems.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Known Issues</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/problems.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Known Issues</h1>
+ </header>
+
+ <div class="main-content">
+ <div id="printingsupport">
+ <header class="section-header header">
+ <h2 class="h h2">Printing Support</h2>
+ </header>
+ <ul>
+ <li>No real printer support, current printer support is experimental.</li>
+ <li>The only available printing software on linux in general is quite lacking, not well written, and very unstable.</li>
+ <li>LPR is available for anyone willing to learn how to use it.</li>
+ <li>Anyone willing to help get printing to work and work properly within the requirements of Kevux, your assistance is welcome.</li>
+ <li>Good Luck with printing.</li>
+ </ul>
+ </div>
+
+ <hr>
+
+ <div id="stackprotection">
+ <header class="section-header header">
+ <h2 class="h h2">Stack Protection</h2>
+ </header>
+ <ul>
+ <li>There are a large number of programs that might crash with "stack smashing attack" as the message.</li>
+ <li>This system has stack protection enabled in a number of programs, when a program tries to do something to harm the system (intentionally or accidentally) then "stack smashing attack" is present and the program exits.</li>
+ <li>This may happen a lot because the quality of software out there is quite poor and insecure programming is quite rampant.</li>
+ <li>Better to have the program quit than to allow the program to damage parts of the system and potentially grant system access to an attacker.</li>
+ </ul>
+ </div>
+
+ <hr>
+
+ <div id="miscellaneousissues">
+ <header class="section-header header">
+ <h2 class="h h2">Miscellaneous Issues</h2>
+ </header>
+
+ <div class="bold notice">Manpage Support</div>
+ <ul>
+ <li>Manpages exist on the system, but there is no tool available to parse and read them on this system.</li>
+ </ul>
+
+ <div class="bold notice">Remote Desktop sftp Support</div>
+ <ul>
+ <li>The remote desktop client, called Remmina, is currently failing to decrypt valid passwords while connected to an SSH server.</li>
+ </ul>
+
+ <div class="bold notice">IPV6 Issues</div>
+ <ul>
+ <li>There is no dhcp support for ipv6 at this time, but support is planned.</li>
+ </ul>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Booting and Running</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation describing booting and running the system.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/running.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Booting and Running</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/running.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Booting and Running</h1>
+ </header>
+
+ <div class="main-content">
+ <div id="BootingLiveSystem">
+ <header class="section-header header">
+ <h2 class="h h2">Booting Live System</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Startup.png"><img src="distributions/turtle/documentation/images_small/Startup.png" alt="Screenshot of system bootup." align="top" border="0"></a><br>
+ <p>
+ This tutorial is assuming that you have either a live-usb or a live-cdrom.<br>
+ In order to boot the Live system you need to have your computer boot the device by rebooting the computer.<br>
+ While booting your machine, you may have to press a key to select <span class="bold">boot options</span> or something of similar meaning.<br>
+ Note: live-usb's cannot be directly booted to on most machines that only support usb 1.1 or less.<br>
+ <i>To boot a live-usb on a usb 1.1 system, you will need a live cdrom that contains the appropriate grub.</i><br>
+ <br>
+ <span class="bold">Available Boot Options:</span><br>
+ <code><span class="notice">
+ Install Kevux System<br>
+ Boot Live System - Run From Memory<br>
+ Boot Live System - Run From CD-Rom<br>
+ Maintenance Mode<br>
+ Check Memory<br>
+ </span></code>
+ <br>
+ <ul>
+ <li><span class="bold notice">Install Kevux System:</span><br>
+ This boots to a live install system that runs either from memory or from the cdrom.<br>
+ The installation system is called KiWI and includes documentation on how to install the system.<br>
+ <br>
+ </li>
+ <li><span class="bold notice">Boot Live System - Run From Memory:</span><br>
+ This is the default boot option.<br>
+ This boot process will copy the compressed system into ram and run itself from ram.<br>
+ This boot process requires 384MB to 512MB of System Ram for the "everything" build.<br>
+ To calculate how much memory your particular build will require add the files sizes of the following files:<br>
+ <ul>
+ <li>bin.sfs</li>
+ <li>lib.sfs</li>
+ <li>sbin.sfs</li>
+ <li>share.sfs</li>
+ <li>home.sfs</li>
+ <li>etc.sfs</li>
+ </ul>
+ Once these file sizes are added up, add 70MB (for approximate runtime memory usage) to the results.<br>
+ Round the results to the nearest memory size; usually one of the following: 4, 8, 16, 32, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048<br>
+ This boot option will take some amount of time, ~20 seconds, to copy itself into memory.<br>
+ Once the system is booted, the cdrom or usb may be removed without causing any problems.<br>
+ Once the system is booted, most/all programs start instantly or within the first 1 to 6 seconds of waiting.<br>
+ <br>
+ </li>
+ <li><span class="bold notice">Boot Live System - Run From CD-Rom:</span><br>
+ This is the least flexible boot option.<br>
+ This will not copy itself into memory, saving boot time by not having to copy itself into memory.<br>
+ The downside is that much more time is lost because the system has to read the device every single time something is needed, slowing the execution process significantly.<br>
+ This boot process requires 64MB to 128MB or System Ram for the "everything" build.<br>
+ Once the system is booted, the cdrom or usb <span style="bold error">must NOT be removed</span> or problems will occur.<br>
+ Once the system is booted, most programs will start within the 5 to 30 seconds.<br>
+ <br>
+ </li>
+ <li><span class="bold notice">Maintenance Mode:</span><br>
+ This will immediately drop to the initrd bash environment.<br>
+ This allows you to manually and safely run fsck or similar commands for a particular system.<br>
+ When any of the boot options above fail, you will always be dropped into this mode.<br>
+ This is especially useful when the rootfs doesn't exist, the kernel will not lockup and you can still hit control+alt+delete<br>
+ <br>
+ </li>
+ <li><span class="bold notice">Check Memory:</span><br>
+ This will start a dedicated memory tester.<br>
+ Run this for a few hours to give a decently thorough memory check.<br>
+ Reboot the machine to get out of this mode.<br>
+ <br>
+ </li>
+ </ul>
+ <br>
+ <span class="bold">Advanced Kevux-Specific Boot Options</span><br>
+ <ul>
+ <li id="boot_option_finalroot"><span class="bold notice">finalroot=</span><br>
+ Specifies the what root device partition is to be used before starting the system.<br>
+ Unlike the standard root=, finalroot= allows for any device naming system that the mount command can use.<br>
+ The primary use of finalroot= is to boot to a device by name and not by the device's physical number.<br>
+ This is especially useful for livecd's, liveusb's, and other dynamic systems.<br>
+ Do not use root= to boot a root filesystem, if you are using a kevux initrd.<br>
+ The root= option tells the kernel to load the initrd as the first rootfs.<br>
+ <br>
+ </li>
+ <li id="boot_option_finalinit"><span class="bold notice">finalinit=</span><br>
+ Specifies what the init program is to be called after switching to the finalroot.<br>
+ Do not use init= to specify the init program, if you are using a kevux initrd.<br>
+ The init= option tells the kernel to load the initrd specific init program.<br>
+ <br>
+ </li>
+ <li id="boot_option_subroot"><span class="bold notice">subroot=</span><br>
+ Allows one to load a rootfs from a specific folder inside of the finalroot device.<br>
+ This should allow one to have multiple rootfs's on a single partition.<br>
+ This can be useful for having different versions of the same system on a single partition without having any conflicts.<br>
+ Because the system will be running from withing the subroot, the final system will not be able to directly see any of the other subroots or the / of the actual partition.<br>
+ <br>
+ </li>
+ <li id="boot_option_maintenance"><span class="bold notice">maintenance</span><br>
+ This tells the initrd to immediately drop to the initrd's /bin/bash.<br>
+ This normally loads the maintenance initrd.<br>
+ <br>
+ </li>
+ <li id="boot_option_settings"><span class="bold notice">settings=</span><br>
+ This specifies a device that contains additional settings information in the same way finalroot= specifies a device.<br>
+ The additional settings information currently only supports encrypted boot settings.<br>
+ In the future, this is expected to be expanded and will also be used to perform network booting.<br>
+ All settings data is expected to be stored in the /boot/settings/ directory within the settings device.<br>
+ <br>
+ </li>
+ <li id="boot_option_settingsname"><span class="bold notice">settingsname=</span><br>
+ The settings name represent a sub-directory within the /boot/settings/ directory.<br>
+ This allows for having multiple different settings data on a single settings device without conflicts.<br>
+ For example, lets say you have two sub-directories called: encrypted and network.<br>
+ By specifying the settingsname=network would mean that the network boot settings would be processed.<br>
+ By specifying the settingsname=encrypted would mean that the encrypted boot settings would be processed.<br>
+ If not settings name is passed, then the default is to use the files found within the /boot/settings/ directory and not some sub-directory.<br>
+ <br>
+ </li>
+ <li id="boot_option_settingscdromsearch"><span class="bold notice">settingscdromsearch=</span><br>
+ This is identical to the cdromsearch= option explained below but only for finding the settings device.<br>
+ <br>
+ </li>
+ <li id="boot_option_settingsmmcsearch"><span class="bold notice">settingsmmcsearch=</span><br>
+ This is identical to the mmcsearch= option explained below but only for finding the settings device.<br>
+ <br>
+ </li>
+ <li id="boot_option_runlevel"><span class="bold notice">runlevel=</span><br>
+ Use this to execute a specific set of init instructions during system boot.<br>
+ These instructions are defined in <span class="notice">/etc/initng/runlevel/</span>.<br>
+ The default runlevel is called: <span class="notice">/etc/initng/runlevel/default.runlevel</span>.<br>
+ The KiWI installer uses the runlevel called: <span class="notice">/etc/initng/runlevel/kiwi.runlevel</span>.<br>
+ <br>
+ Example:<br>
+ If you wish to boot to a runlevel called single (<span class="notice">/etc/initng/runlevel/single.runlevel</span>), you would use the boot command: <span class="notice">runlevel=single</span>.<br>
+ <br>
+ </li>
+ <li id="boot_option_squashboot"><span class="bold notice">squashboot=</span><br>
+ This tells the initrd to execute the live_init script using the squash compressed files.<br>
+ When this is specified, the finalroot= option is expected to be the partition, cdrom, or some device where the squash files are located.<br>
+ The squash files are expected to be in the directory <i>/boot/live/</i> of the finalroot device.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">device</span> - this means run the squash files directly from the finalroot device</li>
+ <li><span class="notice">memory</span> - this means copy the squash files into memory and run from memory</li>
+ <li><span class="notice">extract</span> - this means extract the squash files into memory and run from memory</li>
+ </ul>
+ The live_init defines an entirely new set of options explicitly useful for booting a livecdrom, a liveusb, or any system compressed into squash files<br>
+ <br>
+ <span class="bold">Squash Specific Boot Options</span><br>
+ <ul>
+ <li id="boot_option_squashpath"><span class="bold notice">squashpath=</span><br>
+ Specify a subdirectory or path on the finalroot= device that contains the squash files.<br>
+ This applies to both squashboot and squishboot boot modes.<br>
+ <br>
+ </li>
+ <li id="boot_option_filesystemlimit"><span class="bold notice">filesystemlimit=</span><br>
+ Specify a hard limit on how large the memory filesystem will be.<br>
+ By default, no limit is set.<br>
+ The <i>Boot Live System - Run From Memory (uncompressed)</i> boot option does set a size limit that is over a 1GB<br>
+ <br>
+ </li>
+ <li id="boot_option_etcdevice"><span class="bold notice">etcdevice=</span><br>
+ Specify the physical partition that contains the etc directory.<br>
+ This will be mounted to the /etc directory of the finalroot system.<br>
+ For using an ecrypted partition, this should be set to something like: <code>etcdevice=/dev/mapper/etc</code><br>
+ <br>
+ </li>
+ <li id="boot_option_homedevice"><span class="bold notice">homedevice=</span><br>
+ Specify the physical partition that contains the home directory.<br>
+ This will be mounted to the /home directory of the finalroot system.<br>
+ For using an ecrypted partition, this should be set to something like: <code>homedevice=/dev/mapper/home</code><br>
+ <br>
+ </li>
+ <li id="boot_option_vardevice"><span class="bold notice">vardevice=</span><br>
+ Specify the physical partition that contains the var directory.<br>
+ This will be mounted to the /var directory of the finalroot system.<br>
+ For using an ecrypted partition, this should be set to something like: <code>vardevice=/dev/mapper/var</code><br>
+ <br>
+ </li>
+ <li id="boot_option_tmpdevice"><span class="bold notice">tmpdevice=</span><br>
+ Specify the physical partition that contains the tmp directory.<br>
+ This will be mounted to the /tmp directory of the finalroot system.<br>
+ For using an ecrypted partition, this should be set to something like: <code>tmpdevice=/dev/mapper/tmp</code><br>
+ <br>
+ </li>
+ <li id="boot_option_xorg"><span class="bold notice">xorg=</span><br>
+ Manually specify whether or not xorg should be started on boot.<br>
+ Whether or not this works is explicitly dependent on whether or not any of the boot terminals are set to auto-start.<br>
+ The default action is to auto-start a terminal on tty1 and that terminal will start xorg.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to start xorg if terminal auto-start is enabled on the system. (this is the default)</li>
+ <li><span class="notice">no</span> - this means do not start xorg if terminal auto-start is enabled on the system and therefore only a terminal is started.</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_share"><span class="bold notice">share=</span><br>
+ Specify whether or not to make the share available on a live system.<br>
+ For the squashinit=extract and squashinit=memory commands, more memory than normal is needed to cope with the additional space needed for the share.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to include the share.sfs file when booting the live system. (this is the default)</li>
+ <li><span class="notice">no</span> - this means to not include the share.sfs file when booting the live system, saving memory.</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_toolchain"><span class="bold notice">toolchain=</span><br>
+ Specify whether or not to make the toolchain available on a live system.<br>
+ For the squashinit=extract and squashinit=memory commands, more memory than normal is needed to cope with the additional space needed for the toolchain.<br>
+ Use this for compilation software such as gcc.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to include the toolchain.sfs file when booting the live system.</li>
+ <li><span class="notice">no</span> - this means to not include the toolchain.sfs file when booting the live system, saving memory. (this is the default)</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_toolchain"><span class="bold notice">documentation=</span><br>
+ Specify whether or not to make the documentation available on a live system.<br>
+ For the squashinit=extract and squashinit=memory commands, more memory than normal is needed to cope with the additional space needed for the documentation.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to include the documentation.sfs file when booting the live system.</li>
+ <li><span class="notice">no</span> - this means to not include the documentation.sfs file when booting the live system, saving memory. (this is the default)</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_package"><span class="bold notice">package=</span><br>
+ Specify whether or not to make the package available on a live system.<br>
+ For the squashinit=extract and squashinit=memory commands, more memory than normal is needed to cope with the additional space needed for the package.<br>
+ Use this for package management (installing and uninstalling software).<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to include the package.sfs file when booting the live system.</li>
+ <li><span class="notice">no</span> - this means to not include the package.sfs file when booting the live system, saving memory. (this is the default)</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_python"><span class="bold notice">python=</span><br>
+ Specify whether or not to make the python available on a live system.<br>
+ For the squashinit=extract and squashinit=memory commands, more memory than normal is needed to cope with the additional space needed for the python.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to include the python.sfs file when booting the live system.</li>
+ <li><span class="notice">no</span> - this means to not include the python.sfs file when booting the live system, saving memory. (this is the default)</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_perl"><span class="bold notice">perl=</span><br>
+ Specify whether or not to make the perl available on a live system.<br>
+ For the squashinit=extract and squashinit=memory commands, more memory than normal is needed to cope with the additional space needed for the perl.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">yes</span> - this means to include the perl.sfs file when booting the live system.</li>
+ <li><span class="notice">no</span> - this means to not include the perl.sfs file when booting the live system, saving memory. (this is the default)</li>
+ </ul>
+ <br>
+ </li>
+ <li id="boot_option_installation"><span class="bold notice">install=</span><br>
+ Specify whether or not to make the installation files available on a live system so that installation may properly function.<br>
+ You should also specify <span class="notice">runlevel=kiwi</span> to boot to the installation program.<br>
+ There are the following parameters available:<br>
+ <ul>
+ <li><span class="notice">kiwi</span> - this means that the squash installation files are at the <span class="notice">/boot/live</span> directory of the final root device. (this is the default)</li>
+ <li><span class="notice">/path/to/installation/directory</span> - this means that the installation squash files are the specified path of the final root device. (this must begin with a leading slash)</li>
+ </ul>
+ <br>
+ </li>
+ </ul>
+ <span class="bold important"><i>
+ NOTE: Nothing can be written to the primary system files when squashinit=device and squashboot=memory are used.<br>
+ NOTE: When squashboot=extract is used, these files can be written to, but will be lost during reboots.<br>
+ </i></span>
+ <br>
+ </li>
+ <li id="boot_option_squishboot"><span class="bold notice">squishboot=</span><br>
+ This is a hybrid between booting with squashboot and normal boot.<br>
+ Instead of running the entire system from squash files, only the primary binaries /bin, /sbin, /lib, and /toolchain are mounted via squash.<br>
+ Everything else is expected to be on the final root fs, already extracted.<br>
+ This allows for having compressed binaries on a small device while maintaining normal write behavior for most things.<br>
+ This method requires much less ram than squashboot.<br>
+ The squash files are expected to be in /live/boot/ of the final root system by default.<br>
+ Most of the additionaly squashboot options are supported and are renamed from squash to squish accordingly.<br>
+ For parameter conflict resolution, squishboot will override squashboot.<br>
+ This is particularly useful for embedded devices and the OLPC-XO.<br>
+ <br>
+ </li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="whatshouldhappen">
+ <header class="section-header header">
+ <h2 class="h h2">What Should Happen</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Desktop.png"><img src="distributions/turtle/documentation/images_small/Desktop.png" alt="Screenshot of desktop." align="top" border="0"></a><br>
+ <p>
+ When all things work correctly, you should end up sitting on an XFCE desktop screen with a backgroup picture of a stream in a forest.<br>
+ This is the default desktop environment and the default layout.<br>
+ Enjoy.<br>
+ <br>
+ If you do not want a graphical display to appear on system startup, then you can append <span class="notice">xorg=no</span> as a kernel boot parameter.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="somethingwentwrong">
+ <header class="section-header header">
+ <h2 class="h h2">Something Went Wrong</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Startup_Failure.png"><img src="distributions/turtle/documentation/images_small/Startup_Failure.png" alt="Screenshot of boot failure." align="top" border="0"></a><br>
+ <p>
+ Unfortunately, not all things work all of the time.<br>
+ Whenever something goes wrong with the boot process, you will get stuck with a login prompt.<br>
+ In order to Login, see <a href="#loggingin">Logging In Below</a>.<br>
+ <br>
+ Okay, so the system started up but you are not sitting in a graphical <span class="notice">XFCE</span> desktop with the kevux logo in the background.<br>
+ In this situation, the most probably cause is that the <span class="notice">Xorg</span> (and therefore XFCE) failed to start.<br>
+ The most common cause of this is a video card problem.<br>
+ To fix this problem, you will need to manually tell xorg to use your particular video card or use <span class="notice">vesa</span>.<br>
+ <br>
+ <span class="bold error">WARNING: This may require some moderate to advanced knowledge of the linux command line and understanding of what your video card specifically is.</span><br>
+ <br>
+ If the system is not responding then you may need to be able to boot the system without xorg, so add the <span class="notice">xorg=no</span> boot parameter in the grub config at boot time.<br>
+ Once you find a way to login you need to edit the <span class="notice">/etc/X11/xorg.conf</span> file to work with your appropriate video card.<br>
+ To add your video card to the xorg.conf file, scroll to the bottom of that file looking for the part that begins with <span class="notice">Section "Device"</span><br>
+ Inside of this section, look for the part that begins with <span class="notice">#Driver</span><br>
+ Uncomment this line by removing the leading <span class="notice">#</span>.<br>
+ On the same line, to the immediate right, you should see something text surrounded in double quotes.<br>
+ Replace that text with the appropriate video card driver name.<br>
+ If you do not know the proper driver then you will have to do some researching or asking for assistance as determining this is advanced and may be complex.<br>
+ You may be able to identify your video card by running the command <span class="notice">lspci</span> and looking for a line that has <span class="notice">VGA Compatible controller</span> or <span class="notice">Display controller</span>.<br>
+ <br>
+ For the actual login process, see the <span class="notice">Logging In</span> below.<br>
+ <br>
+ If all else fails and you still cannot get into the system, try booting into maintenance mode by passing the grub command line option: <span class="notice">maintenance</span>.<br>
+ However, using maintenance mode almost definitely requires advanced to expert knowledge.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="loggingin">
+ <header class="section-header header">
+ <h2 class="h h2">Logging In</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Logging_On-1.png"><img src="distributions/turtle/documentation/images_small/Logging_On-1.png" alt="Screenshot of logging in step 1." align="top" border="0"></a><br>
+ <p>
+ The login screen is pretty straight-forward.<br>
+ Just type in your username and you will be prompted for a password.<br>
+ The default username is <span class="notice">turtle</span><br>
+ The default password is <span class="notice">kevux\</span><br>
+ <span class="bold important"><i>Do not forget the trailing slash: <span class="notice">\</span></i></span><br>
+ </p>
+ <br>
+ <a href="distributions/turtle/documentation/images/Logging_On-2.png"><img src="distributions/turtle/documentation/images_small/Logging_On-2.png" alt="Screenshot of logging in step 2." align="top" border="0"></a><br>
+ <p>
+ Immediately following a successful login, you will be prompted for the particular type of login.<br>
+ <br>
+ <span class="bold">Login Types:</span><br>
+ <span class="notice">Terminal</span> - Drop to a Terminal (Console).<br>
+ <span class="notice">Webbrowser</span> - Drop to a command-line webbrowser (Console).<br>
+ <span class="notice">Xorg</span> - Start Xorg (Graphical Display) using the manager defined in ~/.xinitrc (This is the default).<br>
+ </p>
+ <br>
+ <a href="distributions/turtle/documentation/images/Logging_On-3.png"><img src="distributions/turtle/documentation/images_small/Logging_On-3.png" alt="Screenshot of logging in step 3." align="top" border="0"></a><br>
+ <p>
+ If you selected <span class="notice">Terminal</span>, then you will see a login prompt where you can type in any console commands you desire.<br>
+ This console environment uses the <span class="notice">bash</span> shell.<br>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="virtualmachines">
+ <header class="section-header header">
+ <h2 class="h h2">Virtual Machines</h2>
+ </header>
+ <p>
+ Running Kevux on a virtual machine is pretty straight-foward and therefore only known issues will be listed here.<br>
+ <br>
+ Physical Address Extension, aka <span class="notice">PAE</span>, is used by this system.<br>
+ If the virtual machine does not have <span class="notice">PAE</span>, support enabled, then the system will not boot.<br>
+ <br>
+ Hardware Virtualization features such as <span class="notice">VT-z/AMD-V</span>, are know to prevent GRUB from booting properly.<br>
+ If for any reason your system does not boot, try disabling <span class="notice">VT-z/AMD-V</span>, support.<br>
+ </p>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Server Configuration</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation for system servers.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/servers.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Server Configuration</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/servers.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Server Configuration</h1>
+ </header>
+
+ <div class="main-content">
+ <div id="camsource">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring Camsource Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_Camsource_Server.png"><img src="distributions/turtle/documentation/images_small/Configuring_Camsource_Server.png" alt="Screenshot of configuring Camsource server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/webcam/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>camsource.conf</li>
+ <li>camsource.conf.v4l1</li>
+ <li>camsource.conf.v4l2</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the file processed by the camsource server, changes to this file will effect the server on restart.<br>
+ <br>
+ <span class="bold">File 2:</span><br>
+ This is an example camsource.conf using a Video4Linux 1 Device.<br>
+ <br>
+ <span class="bold">File 3:</span><br>
+ This is an example camsource.conf using a Video4Linux 2 Device.<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file is an XML file, XML syntax rules do apply.</li>
+ <li><code><span class="notice"><path>/dev/video0</path></span></code> specifies the Video Device to use</li>
+ <li><code><span class="notice"><input>0</input></span></code> specifies the particular capture port on the card</li>
+ <li><code><span class="notice"><norm>ntfs0</norm></span></code> specifies the media format the signal is transmitted as</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="lighttpd">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring Lighttpd Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_Lighttpd_Server.png"><img src="distributions/turtle/documentation/images_small/Configuring_Lighttpd_Server.png" alt="Screenshot of configuring Lighttpd server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/web/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>lighttpd.conf</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the configration file for the lighttpd server.<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ <li><code><span class="notice">server.document-root</span></code> specifies the system path where the website root exists, default is /home/websites/</li>
+ <li><code><span class="notice">server.port</span></code> specifies the port the server listens on, default is 80</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="mpd">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring MPD Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_MPD_Server.png"><img src="distributions/turtle/documentation/images_small/Configuring_MPD_Server.png" alt="Screenshot of configuring MPD server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/music/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>mpd.conf</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the configration file for the mpd server.<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ <li><code><span class="notice">music_directory</span></code> specifies where the available music exists, default is /home/music/</li>
+ <li><code><span class="notice">port</span></code> specifies where the port the server listens on, default is 6600</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="maradns">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring MaraDNS Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_Maradns_Server.png"><img src="distributions/turtle/documentation/images_small/Configuring_Maradns_Server.png" alt="Screenshot of configuring MaraDNS server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/dns/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>mararc</li>
+ <li>example_authoritative_mararc.txt</li>
+ <li>example_example_csv1</li>
+ <li>example_example_csv1.txt</li>
+ <li>example_example_csv2</li>
+ <li>example_full_mararc</li>
+ <li>example_mararc</li>
+ <li>example_recursive_mararc.txt</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the configuration file for the mararc server<br>
+ <br>
+ <span class="bold">Files 2-8:</span><br>
+ These are different examples of how to configure mararc<br>
+ <i>* Files 3 & 4 appear to be identical and one will be removed in the future</i><br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="ntp">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring NTP Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_NTP_Server-1.png"><img src="distributions/turtle/documentation/images_small/Configuring_NTP_Server-1.png" alt="Screenshot of configuring NTP server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/time/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>ntp.conf</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the configuration file for the ntp server<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ <li>This is easy to configure, just uncomment the servers you want to pull from and comment out all others</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="postgres">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring Postgres Server</h2>
+ </header>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/database/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>postgresql.conf</li>
+ <li>pg_hba.conf</li>
+ <li>pg_ident.conf</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the configuration file for the particular postgres database<br>
+ <br>
+ <span class="bold">File 2:</span><br>
+ This file manages what computers or ip blocks can access the postgres server at all<br>
+ Make sure to read the documentation present in this file<br>
+ <br>
+ <span class="bold">File 3:</span><br>
+ This file maps user names to postgresql database user names<br>
+ This is useful if the current username connects to the database under a different name<br>
+ Make sure to read the documentation present in this file<br>
+ <br>
+
+ <span class="bold">Initial Setup:</span><br>
+ Create the database:<br>
+ <code><span class="notice">su - t_database -c '/bin/initdb -D /home/targets/database/data -E UTF8 --locale=en_US.UTF-8'</span></code><br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ <li>The configuration files are specific to each database, such that if you were to change the <i>Create the database</i> path from /home/targets/database/data to /home/targets/database/somewhere then you would need to edit the configuration files at /home/targets/database/somewhere/.
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="rsync">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring RSync Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_Rsync_Server.png"><img src="distributions/turtle/documentation/images_small/Configuring_Rsync_Server.png" alt="Screenshot of configuring RSync server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/rsync/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>rsyncd.conf</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the configuration file for the rsync server<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file <span class="bold">Initial Setup:</span><br>
+ Create the database:<br>
+ <code><span class="notice">su - postgresd -c '/bin/initdb -D /home/targets/postgresd/database'</span></code><br>
+ <br>format is a bash-like syntax; bash comment rules apply.</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="ssh">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring SSH Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_SSH_Server-1.png"><img src="distributions/turtle/documentation/images_small/Configuring_SSH_Server-1.png" alt="Screenshot of configuring SSH server." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/ssh/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>sshd_config</li>
+ <li>banner</li>
+ <li>moduli</li>
+ <li>ssh_prng_cmds</li>
+ <li>ssh_host_dsa_key</li>
+ <li>ssh_host_dsa_key.pub</li>
+ <li>ssh_host_ecdsa_key</li>
+ <li>ssh_host_ecdsa_key.pub</li>
+ <li>ssh_host_key</li>
+ <li>ssh_host_key.pub</li>
+ <li>ssh_host_rsa_key</li>
+ <li>ssh_host_rsa_key.pub</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the ssh server configuration file<br>
+ <br>
+
+ <span class="bold">File 2:</span><br>
+ This will display information to a client making a connection attempt to the server<br>
+ This can expose information to an attacker that might be useful and therefore is disabled by default<br>
+ <br>
+
+ <span class="bold">Files 3 & 4:</span><br>
+ These files are not required and may not even be used anymore; you can safely ignore these.<br>
+ <br>
+
+ <span class="bold">Files 5 to 12:</span><br>
+ These files are auto-generated by the initng start script.<br>
+ You can create these manually by calling the <code><span class="notice">setup_ssh_host_keys</span></code> script.<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ <li>The setup_ssh_host_keys command will create more files in the /home/targets/ssh/settings/ directory. These files begin with ssh_host_.</li>
+ <li><code><span class="notice">Port</span></code> specifies where the port the server listens on, default is 22</li>
+ <li><code><span class="notice">Banner</span></code> specify a file to enable, comment out to disable</li>
+ </ul>
+ </p>
+ </div>
+
+ <hr>
+
+ <div id="subversion">
+ <header class="section-header header">
+ <h2 class="h h2">Configuring Subversion Server</h2>
+ </header>
+ <a href="distributions/turtle/documentation/images/Configuring_Subversion_Server-1.png"><img src="distributions/turtle/documentation/images_small/Configuring_Subversion_Server-1.png" alt="Screenshot of configuring Subversion server step 1." align="top" border="0"></a><br>
+ <p>
+ <span class="bold">Configuration Path:</span> /home/targets/subversion/settings/<br>
+ <br>
+ <span class="bold">The Files:</span>
+ <ol>
+ <li>servers</li>
+ </ol>
+
+ <span class="bold">File 1:</span><br>
+ This is the subversion server configuration file<br>
+ <br>
+
+ <span class="bold">Notes:</span>
+ <ul>
+ <li>The configuration file format is a bash-like syntax; bash comment rules apply.</li>
+ <li><span class="bold important"><i>NOTE: The subversion database should already be created at <span class="notice">/home/targets/subversion/data/</span></i></span></li>
+ <li><span class="bold important"><i>If the server already exists, then you will need to remove the existing one as shown in the example picture (<span class="notice">rm -Rf /home/targets/subversion/data</span>)</i></span></li>
+ <li><span class="bold error"><i>WARNING: The subversion server uses plaintext passwords in the configuration file</i></span></li>
+ </ul>
+ </p>
+ </div>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Turtle Kevux - Software Listing</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Turtle Kevux Documentation software listing.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, Turtle, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+ <link type="text/css" rel="stylesheet" media="all" href="distributions/turtle/documentation/css/documentation.css">
+
+ <link rel="canonical" href="documentation/turtle/software.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js distributions">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item active"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="distributions/turtle/documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Turtle Kevux</div>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text unlink">Software Listing</div>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
+ </div>
+ <div class="nav-item block">
+ <a href="distributions/turtle/documentation/credits.html" class="nav-text link">Credits</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="distributions/turtle/documentation/software.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header separate">
+ <h1 class="section-title h h1">Software Listing</h1>
+ </header>
+
+ <div class="main-content">
+ <div class="strong">Available Servers:</div>
+ <ul>
+ <li><a href="http://subversion.tigris.org/">Subversion</a></li>
+ <li><a href="http://www.postgresql.org/">PostgreSQL</a></li>
+ <li><a href="http://samba.org/">Samba</a></li>
+ <li><a href="http://www.oracle.com/technology/products/berkeley-db/index.html">Berkeley DB</a></li>
+ <li><a href="http://www.lighttpd.net/">Lighttpd</a></li>
+ <li><a href="http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki">Music Player Daemon</a></li>
+ <li><a href="http://camsource.sourceforge.net/">Camsource WebCam Server</a></li>
+ <li><a href="http://maradns.org/">MaraDNS</a></li>
+ <li><a href="http://openvpn.net/">OpenVPN</a></li>
+ <li><a href="https://www.isc.org/software/dhcp">DHCP Server</a></li>
+ <li><a href="http://openssh.org/">OpenSSH</a></li>
+ <li><a href="http://lpr.sourceforge.net/">Linux Printing</a></li>
+ <li><a href="http://www.sqlite.org/">SQLite Database</a></li>
+ <li><a href="http://git-scm.com/">Git</a></li>
+ <li><a href="http://iscsitarget.sourceforge.net/">I-SCSI Target (host)</a></li>
+ <li><a href="http://www.karlrunge.com/x11vnc/">X11 VNC</a></li>
+ <li><a href="http://synergy-foss.org/">Synergy</a></li>
+ <li><a href="http://hostap.epitest.fi/wpa_supplicant/">WPA Supplicant</a></li>
+ <li><a href="http://openca.org/projects/openca/">OpenCA PKI</a></li>
+ <li><a href="http://openca.org/projects/ocspd/">OCSPD Responder</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Internet Applications:</div>
+ <ul>
+ <li><a href="http://www.gftp.org/">Graphical FTP</a></li>
+ <li><a href="http://www.claws-mail.org/">Claws-Mail</a></li>
+ <li><a href="http://www.seamonkey-project.org/">Seamonkey</a></li>
+ <li><a href="http://nmap.org/">NMap</a></li>
+ <li><a href="http://pidgin.im/">Pidgin</a></li>
+ <li><a href="http://open-iscsi.org/">I-SCSI Initiator (client)</a></li>
+ <li><a href="http://www.transmissionbt.com/">Transmission</a></li>
+ <li><a href="http://remmina.sourceforge.net/">Remmina</a></li>
+ <li><a href="http://sourceforge.net/projects/freerdp/">FreeRDP</a></li>
+ <li><a href="http://www.wireshark.org/">Wireshark</a></li>
+ <li><a href="http://wireless.kernel.org/en/users/Documentation/iw">IW</a></li>
+ <li><a href="http://www.open-mesh.org/">B.A.T.M.A.N.</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Artistic Applications:</div>
+ <ul>
+ <li><a href="http://mtpaint.sourceforge.net/">MTPaint</a></li>
+ <li><a href="http://www.gimp.org/">GNU Image Manipulation Program</a></li>
+ <li><a href="http://www.imagemagick.org/script/index.php">ImageMagick</a></li>
+ <li><a href="http://gcolor2.sourceforge.net/">GColor2</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Document Editors/Viewers/Presenters:</div>
+ <ul>
+ <li><a href="http://www.srcf.ucam.org/~dmi1000/multitalk/index.html">Multitalk</a></li>
+ <li><a href="http://trac.emma-soft.com/epdfview/">Epdfview</a></li>
+ <li><a href="http://www.xfce.org/projects/mousepad/">Mousepad</a></li>
+ <li><a href="http://www.vim.org/">Vim</a></li>
+ <li><a href="http://www.nano-editor.org/">Nano</a></li>
+ <li><a href="http://aspell.net/">Aspell/Ispell Spellchecker</a></li>
+ <li><a href="http://www.geany.org/">Geany</a></li>
+ <li><a href="http://goodies.xfce.org/projects/applications/xfce4-dict">Xfce4 Dictionary</a></li>
+ <li><a href="http://abisource.com/">Abiword</a></li>
+ <li><a href="http://xsisqox.github.com/Viewnior/">Viewnior</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Utilities:</div>
+ <ul>
+ <li><a href="http://www.xfce.org/projects/xfburn/">Xfburn</a></li>
+ <li><a href="http://xarchiver.xfce.org/">Xarchiver</a></li>
+ <li><a href="http://www.gphoto.org/">GTKam</a></li>
+ <li><a href="http://www.xsane.org/">XSane</a></li>
+ <li><a href="http://wiki.hardinfo.org/HomePage">Hardinfo</a></li>
+ <li><a href="http://galculator.sourceforge.net/">Galculator</a></li>
+ <li><a href="http://www.kernel.org/pub/linux/bluetooth/">Bluetooth Utilities</a></li>
+ <li><a href="http://www.gnupg.org/related_software/gpgme/">GPG Me</a></li>
+ <li><a href="http://goodies.xfce.org/projects/applications/terminal">Terminal</a></li>
+ <li><a href="http://goodies.xfce.org/projects/applications/xfce4-taskmanager">Task Manager</a></li>
+ <li><a href="http://wiki.qemu.org/Index.html">QEMU</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Games:</div>
+ <ul>
+ <li><a href="http://lgames.sourceforge.net/">LBreakout2</a></li>
+ <!--<li><a href="http://www.parallelrealities.co.uk/projects/blobAndConquer.php">BlobAndConquer</a></li>-->
+ <li><a href="http://freedroid.sourceforge.net/">freedroidRPG</a></li>
+ <li><a href="http://www.scummvm.org/">ScummVM</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Multimedia Applications:</div>
+ <ul>
+ <li><a href="http://www.xine-project.org/home">Xine</a></li>
+ <li><a href="http://tvtime.sourceforge.net/">Tvtime</a></li>
+ <li><a href="http://easytag.sourceforge.net/">Easytag</a></li>
+ <li><a href="http://tcforge.berlios.de/">Transcode</a></li>
+ <li><a href="http://alsaplayer.sourceforge.net/">AlsaPlayer</a></li>
+ <li><a href="http://ario-player.sourceforge.net/">Ario</a></li>
+ <li><a href="http://dvdauthor.sourceforge.net/">DVDAuthor</a></li>
+ <li><a href="http://www.exit1.org/dvdrip/">DVDRip</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Desktop Environments:</div>
+ <ul>
+ <li><a href="http://www.xfce.org/">XFCE</a></li>
+ <li><a href="http://dwm.suckless.org/">Dynamic Window Manager</a></li>
+ </ul>
+ <br>
+ <div class="strong">Available Filesystem Utilities:</div>
+ <ul>
+ <li><a href="http://gparted.sourceforge.net/">GParted</a></li>
+ <li><a href="http://jfs.sourceforge.net/">JFS Utilities</a></li>
+ <li><a href="http://e2fsprogs.sourceforge.net/">E2fs Utilities</a></li>
+ <li><a href="http://fuse.sourceforge.net/">FUSE</a></li>
+ <li><a href="http://code.google.com/p/cryptsetup/">Cryptsetup</a></li>
+ <li><a href="http://www.daniel-baumann.ch/software/dosfstools/">Dosfstools</a></li>
+ <li><a href="http://www.partclone.org/">Partclone</a></li>
+ <li><a href="http://www.kernel.org/pub/linux/utils/raid/mdadm/">Raid Utilities</a></li>
+ <li><a href="http://sourceware.org/lvm2/">LVM Utilities</a></li>
+ <li><a href="http://squashfs.sourceforge.net/">SquashFS</a></li>
+ <li><a href="http://www.gnu.org/software/parted/parted.html">Parted</a></li>
+ <li><a href="http://www.linux-ntfs.org/">NTFS Utilities</a></li>
+ <li><a href="http://www.mars.org/home/rob/proj/hfs/">HFS Utilities</a></li>
+ <li><a href="http://fuse.sourceforge.net/sshfs.html">SSHFS Fuse Filesystem</a></li>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Documentation</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Documentation of numerous Kevux Systems projects and software.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-jSS Extended List Writes documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block">
+ <div class="nav-text notice">Projects</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html" class="nav-text link">Byte Dump</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html" class="nav-text link">Featureless Make</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html" class="nav-text link">Firewall</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html" class="nav-text link">FSS Identify</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html" class="nav-text link">FSS Basic Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html" class="nav-text link">FSS Basic Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_read.html" class="nav-text link">FSS Basic List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html" class="nav-text link">FSS Basic List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html" class="nav-text link">FSS Embedded List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html" class="nav-text link">FSS Embedded List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html" class="nav-text link">FSS Extended Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html" class="nav-text link">FSS Extended Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html" class="nav-text link">FSS Extended List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html" class="nav-text link">FSS Extended List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html" class="nav-text link">FSS Payload Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html" class="nav-text link">FSS Payload Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html" class="nav-text link">FSS Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html" class="nav-text link">Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html" class="nav-text link">IKI Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html" class="nav-text link">IKI Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html" class="nav-text link">UTF8</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Documentation</h1>
+ </header>
+
+ <article class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Projects</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Documentation for the following projects are provided within their own sub-pages.
+ </p>
+ <div class="grid wide expand columns-4">
+ <div class="grid-item"><a href="documentation/byte_dump.html" class="link">Byte Dump</a></div>
+ <div class="grid-item"><a href="documentation/control.html" class="link">Control</a></div>
+ <div class="grid-item"><a href="documentation/controller.html" class="link">Controller</a></div>
+ <div class="grid-item"><a href="documentation/fake.html" class="link">Featureless Make</a></div>
+ <div class="grid-item"><a href="documentation/firewall.html" class="link">Firewall</a></div>
+ <div class="grid-item"><a href="documentation/fss_identify.html" class="link">FSS Identify</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_read.html" class="link">FSS Basic Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_write.html" class="link">FSS Basic Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_list_read.html" class="link">FSS Basic List Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_list_write.html" class="link">FSS Basic List Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_embedded_list_read.html" class="link">FSS Embedded List Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_embedded_list_write.html" class="link">FSS Embedded List Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_read.html" class="link">FSS Extended Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_write.html" class="link">FSS Extended Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_list_read.html" class="link">FSS Extended List Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_list_write.html" class="link">FSS Extended List Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_payload_read.html" class="link">FSS Payload Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_payload_write.html" class="link">FSS Payload Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_status_code.html" class="link">FSS Status Code</a></div>
+ <div class="grid-item"><a href="documentation/status_code.html" class="link">Status Code</a></div>
+ <div class="grid-item"><a href="documentation/iki_read.html" class="link">IKI Read</a></div>
+ <div class="grid-item"><a href="documentation/iki_write.html" class="link">IKI Write</a></div>
+ <div class="grid-item"><a href="documentation/utf8.html" class="link">UTF8</a></div>
+ </div>
+ <ul>
+ </ul>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Specifications</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Projects like the Featureless Linux Library are focused entirely around provided standards for every aspect of the project. Numerous specifications are available describing these standards. At this time, the specifications have not been transcribed into a format for the web. They are stored in plain text within the source code repositories.
+ </p>
+ <p>
+ Many of these specifications may be found here:
+ </p>
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/control/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/control/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/controller/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/controller/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/utf8/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/utf8/specifications/</a></li>
+ </ul>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">APIs</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The <abbr title="Application Programming Interface">API</abbr>s have not yet been generated and are not available in an easy to consume form outside of the source code itself.
+ </p>
+ <p>
+ The <abbr title="Application Programming Interface">API</abbr> can be viewed by navigating the source code for the <abbr title="Featureless Linux Library">FLL</abbr> here:
+ </p>
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/</a></li>
+ </ul>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Terminology</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ One of the biggest problems with an <abbr title="Application Programming Interface">API</abbr> is the mis-use or misunderstanding of the meaning and purpose of one. The term itself is not the most accurate and is also not ideal. A more appropriate term would be a <strong>Library Interface</strong> or a <strong>Software Interface</strong>.
+ </p>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Standard</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ A set of rules and guidelines.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Specification</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ A specific interpretation, clarification, or description of a Standard, such as the documentation that describes how to use or follow a Standard.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Implementation</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ The applying of some Standard or Specification.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Application Programming Interface (API)</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ The <abbr title="Application Programming Interface">API</abbr> term is commonly mis-represented as Services or Protocols (such as "Web API"). An <abbr title="Application Programming Interface">API</abbr> instructs a programmer how to use a dependency when programming some software that utilizes said dependency. An <abbr title="Application Programming Interface">API</abbr> is a Specification of some Implementation of a Standard be it a formally defined standard or an informally defined standard. An <abbr title="Application Programming Interface">API</abbr> may be an Implementation of a Standard or a part of an Implementation of a Standard. An <abbr title="Application Programming Interface">API</abbr> is, in effect, documentation.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Application Binary Interface (ABI)</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ The <abbr title="Application Binary Interface">ABI</abbr> term refers to an Application Binary Interface and represents the compiled implementation of some <abbr title="Application Programming Interface">API</abbr>. An <abbr title="Application Binary Interface">ABI</abbr> may not always exist for some <abbr title="Application Programming Interface">API</abbr>, such as for pure scripting languages. An <abbr title="Application Binary Interface">ABI</abbr> is neither a Specification nor a Standard. An <abbr title="Application Binary Interface">ABI</abbr> is an Implementation of an <abbr title="Application Programming Interface">API</abbr> making it an Implementation of a Standard or Specification.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Service</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ Any action or labor performed by one party for another party (such as one person helping another person).
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Protocol</h3>
+ </header>
+ <div class="section-content">
+ <p>
+ In the context of computers and software, this is a Standard focused on communication between two parties (often referring to Internet communication).
+ </p>
+ </div>
+ </section>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Byte Dump</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Byte Dump program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/byte_dump.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Byte Dump</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/byte_dump.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/byte_dump.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Byte Dump Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>byte_dump</strong> program is a tool for parsing and printing the bytes of all data within one or more files.
+ </p>
+ <p>
+ This tool operates similar to the classic <strong>hexdump</strong> program and provides similar functionality. However, the <strong>byte_dump</strong> program is not intended to be a complete replacemenet. Unlike the <strong>hexdump</strong> program, the <strong>byte_dump</strong> program is fully <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> aware and even validates the Unicode sequences.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-b</code></td>
+ <td class="column"><code class="code">--binary</code></td>
+ <td class="column">Display binary representation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--decimal</code></td>
+ <td class="column">Display decimal representation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--duodecimal</code></td>
+ <td class="column">Display duodecimal representation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-x</code></td>
+ <td class="column"><code class="code">--hexidecimal</code></td>
+ <td class="column">Display hexadecimal representation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--octal</code></td>
+ <td class="column">Display octal representation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-U</code></td>
+ <td class="column"><code class="code">--unicode</code></td>
+ <td class="column">Display using Unicode representation for valid Unicode (like: U+0000).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--first</code></td>
+ <td class="column">Start reading at this byte offset.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--last</code></td>
+ <td class="column">Stop reading at this (inclusive) byte offset.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--narrow</code></td>
+ <td class="column">Use narrow display, resulting in 1*width reducing size of the text columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--placeholder</code></td>
+ <td class="column">Use a placeholder character instead of a space for placeholders.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--text</code></td>
+ <td class="column">Include a column of text when displaying the bytes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-W</code></td>
+ <td class="column"><code class="code">--wide</code></td>
+ <td class="column">Use wide display, resulting in 2*width allowing for space for wide characters in the text columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--width</code></td>
+ <td class="column">Set number of columns of Bytes to display.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The output is broken up into two or three parts.
+ </p>
+ <ol>
+ <li>The first part, on the left mode side of the output, contains 16 upper case hexidecimal digits representing the maximum length supported by the <strong>byte_dump</strong> program.</li>
+ <li>The second part displays the individual bytes in a numeric format or similar (depending on parameters). In the second part, the hexidecimal digits are never swapped based on endianness.</li>
+ <li>The third part, which only appears when using the <code>-t/--text<code> parameter, displays the character each digit or set of digits may represent. Any characters considered unsafe or improper are substituted with a replacement character.</li>
+ </ol>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Control</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Control program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/control.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Control</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/control.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/control.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Control Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>control</strong> program is a tool for sending commands to the <strong>controller</strong> program.
+ </p>
+ <p>
+ This tools is currently incomplete and is not guaranteed to work with the <strong>controller</strong> program. Further development will be made on this once the <strong>controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Specify the name of the controller socket file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--return</code></td>
+ <td class="column">Print a message about the response packet.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--settings</code></td>
+ <td class="column">Specify a directory path or a full path to the control settings file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-k</code></td>
+ <td class="column"><code class="code">--socket</code></td>
+ <td class="column">Specify a directory path or a full path to the controller socket file.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ When the <code>--socket</code> parameter represents a directory path then the file name is generated from either the <code>--name</code> parameter or from the control settings file.
+ </p>
+ <p>
+ A rule action allows for either the full rule path, such as '<code>boot/root</code>' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name '<code>root</code>'.
+ </p>
+ <p>
+ The <code>--return</code> parameter is intended to be used for scripting and is of the form "<code>response [type] [action] [status]</code>".
+ </p>
+ <p>
+ Be sure to use the <code>++quiet</code> parameter to suppress output when using this in scripting.
+ No response is returned on program errors, especially those errors that prevent communicating to the controller.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Controller</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>controller</strong> program is a tool for controller other programs.
+ </p>
+ <p>
+ This tool is designed to configured to perform and execute any tasks given across multiple languages and it also has support for operating as an <strong>init</strong> program. There are special compile-time configurations needed to make this properly operate as an <strong>init</strong> program.
+ </p>
+ <p>
+ This tool operates similar to the <strong>fake</strong> program and can even be seen as an evolution to the <strong>fake</strong> program. The <strong>controller</strong> program, however is not a replacement to the <strong>fake</strong> program as it is more generalized.
+ </p>
+ <p>
+ This tool also provides additional features for making it easierr to test and write controller instructions. These features include partial simulation and validation modes.
+ </p>
+ <p>
+ In partial simulation mode, anything that the <strong>controller</strong> program has full control over and can simulate is simulated. Actual programs and scripts themselves, therefore, cannot be simulated. However, it may be possible to use an environment variables or similar and pass settings to the called program or script if the called program or script is simulation and testing aware.
+ </p>
+ <p>
+ The validation mode is for making this tool more scriptable. By providing validation, the controller instructions can be validated, in which case a success or failure result is returned and any problems or warnings may be printed to the caller of this tool.
+ </p>
+ <p>
+ This tool is not currently fully functional as an <strong>init</strong> program replacement because the networking aspects are not yet written or fully hashed out. The <strong>contol</strong> program is also another key part to the <strong>contoller</strong> program in getting this to work as an <strong>init</strong> program. Ideally, once this support is complete, it should be possible to replace init programs, such as <strong>SystemD</strong>, with the <strong>controller</strong> program.
+ </p>
+ <p>
+ Further development will be made on this once the <strong>controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--cgroup</code></td>
+ <td class="column">Specify a custom control group file path, such as '/sys/fs/cgroup/'.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--daemon</code></td>
+ <td class="column">Run in daemon only mode (do not process the entry).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--init</code></td>
+ <td class="column">The program will run as an init replacement.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-i</code></td>
+ <td class="column"><code class="code">--interruptible</code></td>
+ <td class="column">Designate that this program can be interrupted by a signal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pid</code></td>
+ <td class="column">Specify a custom pid file path, such as 'controller/run/default.pid'.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--settings</code></td>
+ <td class="column">Specify a custom settings path, such as 'controller/'.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-S</code></td>
+ <td class="column"><code class="code">--simulate</code></td>
+ <td class="column">Run as a simulation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-k</code></td>
+ <td class="column"><code class="code">--socket</code></td>
+ <td class="column">Specify a custom socket file path, such as 'controller/run/default.socket'.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-U</code></td>
+ <td class="column"><code class="code">--uninterruptible</code></td>
+ <td class="column">Designate that this program cannot be interrupted by a signal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-v</code></td>
+ <td class="column"><code class="code">--validate</code></td>
+ <td class="column">Validate the settings (entry and rules) without running (does not simulate).</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ When both the <code>--simulate</code> parameter and the <code>--validate</code> parameter are specified, then additional information on each would be executed rule is printed but no simulation is performed.
+ </p>
+ <p>
+ The default interrupt behavior is to operate as if the <code>--interruptible</code> parameter is passed.
+ </p>
+ <p>
+ Specify an empty string for the <code>--pid</code> parameter to disable pid file creation for this program.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Featureless Make</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Featureless Make program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fake.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Featureless Make</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#operations" class="nav-text link">Operations</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fake.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fake.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Featureless Make Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fake</strong> program, also called <strong>Featureless Make</strong> is the flagship program of the <abbr title="Featureless Linux Library">FLL</abbr> project and provides the ability to compile source code and perform various actions not unlike how the <strong>GNU Make</strong> program operates.
+ </p>
+ <p>
+ This tools is directly intended to be a replacement to the <strong>GNU Make</strong> program but not as a replacement for all of the <strong>GNU Make</strong> functionality. Instead, the <strong>fake</strong> program follows the ideoligy that a build program should not involve itself with system-specific behavior, such as installing to a system.
+ </p>
+ <p>
+ Despite this non-standard ideology, the <strong>fake</strong> program is flexible enough to be used as an installer. In fact, this tool is used to not only build the entire <abbr title="Featureless Linux Library">FLL</abbr> but it can also compile and run unit tests for the project.
+ </p>
+ <p>
+ A bootstrap script is provided in all <abbr title="Featureless Linux Library">FLL</abbr> projects that operates with almost complete one-to-one functionality to this tool to allow for the system to build itself. A great example of this is the test script used to run unit tests on services like Github where this project must compile itself and then use itself to run unit tests against itself.
+ </p>
+ <p>
+ While most of the programs provided with the <abbr title="Featureless Linux Library">FLL</abbr> are young and not well tested, the <strong>fake</strong> program is considered mature.
+ </p>
+ <p>
+ There are two primary operations in which this tool executes:
+ </p>
+ <ol>
+ <li>The <strong>build</strong> operation.</li>
+ <li>The <strong>make</strong> operation.</li>
+ </ol>
+ <p>
+ The <strong>build</strong> mode is derived from the idea that most of the compilation process is redundant and can be simplified to a pre-define set of configuration settings. This reduces the amount of efforted needed to write and mainting a build system at the cost of flexibility.
+ </p>
+ <p>
+ The <strong>make</strong> mode is the mode for operating as a replacement to the <strong>GNU Make</strong> program. This provides scriptable ways to perform just about any task needed when building a system. Many of the <strong>build</strong> mode settings are available (but are not required) and this mode can even call the <strong>build</strong> mode itself.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--define</code></td>
+ <td class="column">Append an additional define after defines from settings file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--fakefile</code></td>
+ <td class="column">Use this fakefile.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-m</code></td>
+ <td class="column"><code class="code">--mode</code></td>
+ <td class="column">Use this mode when processing the build settings.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--process</code></td>
+ <td class="column">Process name for storing build states.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--settings</code></td>
+ <td class="column">Use this settings file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-b</code></td>
+ <td class="column"><code class="code">--build</code></td>
+ <td class="column">Specify a custom build directory.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--data</code></td>
+ <td class="column">Specify a custom path to the data files.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-S</code></td>
+ <td class="column"><code class="code">--sources</code></td>
+ <td class="column">Specify a custom path to the source files.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--work</code></td>
+ <td class="column">Use includes/libraries/programs from this directory instead of system.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ When using the <code>-d/--define</code> parameter the define structure must be passed as-is and may even need to be quoted if there is whitespace.
+ </p>
+ <p>
+ For example, in the <strong>C</strong> programming, passing a macro to the compiler might look like '<code>-DMY_MACRO=1</code>'. To do this using <code>-d/--define</code>, there would be two parameters passed like this: '<code>-d -DMY_MACRO=1</code>'. This works because the parameter after the <code>-d/--define</code> is not interpreted and is treated exactly as is without interpreting it as a parameter to the <strong>fake</strong> program.
+ </p>
+ <p>
+ Because of this, passing '<code>-d -h</code>' would not print the program help because the '<code>-h</code>' is considered a value associated with the '<code>-d</code>' parameter rather than a parameter itself.
+ </p>
+ </div>
+ </section>
+
+ <section id="operations" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Operations</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Operation</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">build</code></td>
+ <td class="column">Build or compile the code based on build settings file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">clean</code></td>
+ <td class="column">Delete all build files.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">make</code></td>
+ <td class="column">Build or compile the code based on fakefile.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">skeleton</code></td>
+ <td class="column">Build a skeleton directory structure.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ When performing the build operation, the <code>--mode</code> parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.
+ </p>
+ <p>
+ For example, when a mode of '<code>fll_monolithic</code>' is specified, build libraries from both '<code>build_libraries</code>' and '<code>build_libraries-fll_monolithic</code>' are used (but not '<code>build_libraries-fll_level</code>').
+ </p>
+ <p>
+ When specifying the <code>fakefile</code> or the settings parameters, the filenames are relative to the data build directory, unless a path is used.
+ </p>
+ <p>
+ For example, with '<code>--fakefile my_fakefile</code>' the fakefile at '<code>./data/build/my_fakefile</code>' would be used, however with '<code>--fakefile ./my_fakefile</code>' the fakefile at '<code>./my_fakefile</code>' would be used.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Firewall</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Firewall program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/firewall.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Firewall</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html#commands" class="nav-text link">Commands</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/firewall.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/firewall.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Firewall Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>firewall</strong> program is a tool for simplifying and automating the <strong>iptables</strong> program.
+ </p>
+ <p>
+ This tool is set to be replaced now that both the <strong>firewall</strong> and the <strong>iptables</strong> programs are outdated. The latest <strong>iptables</strong> program replacement (the <strong>nftables</strong> program) is superior and the <strong>firewall</strong> will need major rewrites to utilize the replacement.
+ </p>
+ <p>
+ This tools is one of the original two programs of the <abbr title="Featureless Linux Library">FLL</abbr> project and is designed to be a fully functional proof of concept for the <abbr title="Featureless Linux Library">FLL</abbr> project.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="commands" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Commands</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Command</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">start</code></td>
+ <td class="column">Turn on the firewall.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">stop</code></td>
+ <td class="column">Turn off the firewall.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">restart</code></td>
+ <td class="column">Turn off and then turn on the firewall.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">lock</code></td>
+ <td class="column">Prevent all communication.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">show</code></td>
+ <td class="column">Show active firewall settings.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic List Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic List Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_list_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Basic List Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_list_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic List Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_basic_list_read</strong> program is a tool for reading and processing strings that follow the FSS-0002 (Basic List) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--raw</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+ <p>
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+ <p>
+ When using the <code>--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+ <p>
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code>--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code>--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code><code>--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ </dl>
+ <p>
+ The parameter <code>--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+ <p>
+ The parameter <code>--select</code> selects a Content column.
+ </p>
+ <p>
+ Specify both <code>--object</code> and the --total parameters to get the total objects.
+ </p>
+ <p>
+ When both <code>--at</code> and <code>--name</code> parameters are specified (at the same depth), the <code>--at</code> parameter value will be treated as a position relative to the specified <code>--name</code> parameter value.
+ </p>
+ <p>
+ This program may support parameters, such as <code>--depth</code> or <code>--select</code>, even if not supported by the standard.
+ </p>
+ <p>
+ This is done to help ensure consistency for scripting.
+ </p>
+ <p>
+ For parameters like <code>--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+ <p>
+ For parameters like <code>--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+ <p>
+ The parameter <code>--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+ <p>
+ When specifying both the <code>--object</code> parameter and the <code>--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+ <p>
+ Both the Object and Content printed are already escaped.
+ </p>
+ <p>
+ Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
+ </p>
+ <p>
+ The parameter <code>--delimit</code> accepts the following:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+ <p>
+ The <code>--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+ <p>
+ The <code>--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+ <p>
+ The parameters <code>--columns</code> and <code>--select</code> refer to a Content column.
+ </p>
+ <p>
+ The word "<em>column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+ <p>
+ This is not to be confused with a depth.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic List Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic List Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_list_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Basic List Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_list_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic List Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_basic_list_write</strong> program is a tool for generating strings that follow the FSS-0002 (Basic List) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+ <p>
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+ <p>
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+ <p>
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+ <p>
+ For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
+ </p>
+ <p>
+ The FSS-0002 (Basic List) specification does not support quoted names, therefore the parameters <code>--single</code> and <code>--double</code> do nothing.
+ </p>
+ <p>
+ This program does not use the parameter <code>--ignore</code>, which therefore does nothing. This parameter requires two values.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Basic Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_basic_read</strong> program is a tool for reading and processing strings that follow the FSS-0000 (Basic) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--raw</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+ <p>
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+ <p>
+ When using the <code>--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+ <p>
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code>--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code>--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code><code>--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ </dl>
+ <p>
+ The parameter <code>--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+ <p>
+ The parameter <code>--select</code> selects a Content column.
+ </p>
+ <p>
+ Specify both <code>--object</code> and the --total parameters to get the total objects.
+ </p>
+ <p>
+ When both <code>--at</code> and <code>--name</code> parameters are specified (at the same depth), the <code>--at</code> parameter value will be treated as a position relative to the specified <code>--name</code> parameter value.
+ </p>
+ <p>
+ This program may support parameters, such as <code>--depth</code> or <code>--select</code>, even if not supported by the standard.
+ </p>
+ <p>
+ This is done to help ensure consistency for scripting.
+ </p>
+ <p>
+ For parameters like <code>--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+ <p>
+ For parameters like <code>--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+ <p>
+ The parameter <code>--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+ <p>
+ When specifying both the <code>--object</code> parameter and the <code>--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+ <p>
+ Both the Object and Content printed are already escaped.
+ </p>
+ <p>
+ Both the Object and Content are separated by a space.
+ </p>
+ <p>
+ The parameter <code>--delimit</code> accepts the following:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+ <p>
+ The <code>--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+ <p>
+ The <code>--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+ <p>
+ The parameters <code>--columns</code> and <code>--select</code> refer to a Content column.
+ </p>
+ <p>
+ The word "<em>column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+ <p>
+ This is not to be confused with a depth.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Basic Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_basic_write</strong> program is a tool for generating strings that follow the FSS-0000 (Basic) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+ <p>
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+ <p>
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+ <p>
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+ <p>
+ For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
+ </p>
+ <p>
+ The FSS-0000 (Basic) specification does not support multi-line Content, therefore the parameter <code>--prepend</code> does nothing.
+ </p>
+ <p>
+ This program does not use the parameter <code>--ignore</code>, which therefore does nothing. This parameter requires two values.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Embedded List Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Embedded List Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_embedded_list_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Embedded List Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_embedded_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_embedded_list_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Embedded List Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_embedded_list_read</strong> program is a tool for reading and processing strings that follow the FSS-0008 (Embedded List) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--raw</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+ <p>
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+ <p>
+ When using the <code>--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+ <p>
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code>--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code>--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code><code>--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ </dl>
+ <p>
+ The parameter <code>--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+ <p>
+ The parameter <code>--select</code> selects a Content column.
+ </p>
+ <p>
+ Specify both <code>--object</code> and the --total parameters to get the total objects.
+ </p>
+ <p>
+ When both <code>--at</code> and <code>--name</code> parameters are specified (at the same depth), the <code>--at</code> parameter value will be treated as a position relative to the specified <code>--name</code> parameter value.
+ </p>
+ <p>
+ This program may support parameters, such as <code>--depth</code> or <code>--select</code>, even if not supported by the standard.
+ </p>
+ <p>
+ This is done to help ensure consistency for scripting.
+ </p>
+ <p>
+ For parameters like <code>--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+ <p>
+ For parameters like <code>--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+ <p>
+ The parameter <code>--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+ <p>
+ When specifying both the <code>--object</code> parameter and the <code>--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+ <p>
+ Both the Object and Content printed are already escaped.
+ </p>
+ <p>
+ Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
+ </p>
+ <p>
+ The parameter <code>--delimit</code> accepts the following:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+ <p>
+ The <code>--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+ <p>
+ The <code>--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+ <p>
+ The parameters <code>--columns</code> and <code>--select</code> refer to a Content column.
+ </p>
+ <p>
+ The word "<em>column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+ <p>
+ This is not to be confused with a depth.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Embedded List Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Embedded List Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_embedded_list_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Embedded List Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_embedded_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_embedded_list_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Embedded List Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_embedded_list_write</strong> program is a tool for generating strings that follow the FSS-0008 (Embedded List) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+ <p>
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+ <p>
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+ <p>
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+ <p>
+ For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
+ </p>
+ <p>
+ The FSS-0008 (Embedded List) specification does not support quoted names, therefore the parameters <code>--single</code> and <code>--double</code> do nothing.
+ </p>
+ <p>
+ This program uses the parameter <code>--ignore</code>, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a <code>--content</code> parameter and this applies only to the Content represented by that specific <code>--content</code> parameter.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended List Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended List Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_list_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Extended List Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_list_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended List Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_extended_list_read</strong> program is a tool for reading and processing strings that follow the FSS-0003 (Extended List) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--raw</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+ <p>
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+ <p>
+ When using the <code>--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+ <p>
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code>--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code>--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code><code>--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ </dl>
+ <p>
+ The parameter <code>--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+ <p>
+ The parameter <code>--select</code> selects a Content column.
+ </p>
+ <p>
+ Specify both <code>--object</code> and the --total parameters to get the total objects.
+ </p>
+ <p>
+ When both <code>--at</code> and <code>--name</code> parameters are specified (at the same depth), the <code>--at</code> parameter value will be treated as a position relative to the specified <code>--name</code> parameter value.
+ </p>
+ <p>
+ This program may support parameters, such as <code>--depth</code> or <code>--select</code>, even if not supported by the standard.
+ </p>
+ <p>
+ This is done to help ensure consistency for scripting.
+ </p>
+ <p>
+ For parameters like <code>--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+ <p>
+ For parameters like <code>--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+ <p>
+ The parameter <code>--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+ <p>
+ When specifying both the <code>--object</code> parameter and the <code>--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+ <p>
+ Both the Object and Content printed are already escaped.
+ </p>
+ <p>
+ Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
+ </p>
+ <p>
+ The parameter <code>--delimit</code> accepts the following:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+ <p>
+ The <code>--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+ <p>
+ The <code>--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+ <p>
+ The parameters <code>--columns</code> and <code>--select</code> refer to a Content column.
+ </p>
+ <p>
+ The word "<em>column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+ <p>
+ This is not to be confused with a depth.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended List Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended List Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_list_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Extended List Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_list_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended List Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>fss_extended_list_write</strong> program is a tool for generating strings that follow the FSS-0003 (Extended List) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+ <p>
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+ <p>
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+ <p>
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+ <p>
+ For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
+ </p>
+ <p>
+ The FSS-0003 (Extended List) specification does not support quoted names, therefore the parameters <code>--single</code> and <code>--double</code> do nothing.
+ </p>
+ <p>
+ This program uses the parameter <code>--ignore</code>, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a <code>--content</code> parameter and this applies only to the Content represented by that specific <code>--content</code> parameter.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Extended Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>fss_extended_read</strong> program is a tool for reading and processing strings that follow the FSS-0001 (Extended) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--raw</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+ <p>
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+ <p>
+ When using the <code>--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+ <p>
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code>--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code>--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code><code>--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ <div class="di">
+ </dl>
+ <p>
+ The parameter <code>--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+ <p>
+ The parameter <code>--select</code> selects a Content column.
+ </p>
+ <p>
+ Specify both <code>--object</code> and the --total parameters to get the total objects.
+ </p>
+ <p>
+ When both <code>--at</code> and <code>--name</code> parameters are specified (at the same depth), the <code>--at</code> parameter value will be treated as a position relative to the specified <code>--name</code> parameter value.
+ </p>
+ <p>
+ This program may support parameters, such as <code>--depth</code> or <code>--select</code>, even if not supported by the standard.
+ </p>
+ <p>
+ This is done to help ensure consistency for scripting.
+ </p>
+ <p>
+ For parameters like <code>--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+ <p>
+ For parameters like <code>--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+ <p>
+ The parameter <code>--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+ <p>
+ When specifying both the <code>--object</code> parameter and the <code>--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+ <p>
+ Both the Object and Content printed are already escaped.
+ </p>
+ <p>
+ Both the Object and Content are separated by a space.
+ </p>
+ <p>
+ The parameter <code>--delimit</code> accepts the following:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+ <p>
+ The <code>--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+ <p>
+ The <code>--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+ <p>
+ The parameters <code>--columns</code> and <code>--select</code> refer to a Content column.
+ </p>
+ <p>
+ The word "<em>column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+ <p>
+ This is not to be confused with a depth.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Extended Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_extended_write</strong> program is a tool for generating strings that follow the FSS-0001 (Extended) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+ <p>
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+ <p>
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+ <p>
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+ <p>
+ For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
+ </p>
+ <p>
+ The FSS-0001 (Extended) specification does not support multi-line Content, therefore the parameter <code>--prepend</code> does nothing.
+ </p>
+ <p>
+ This program does not use the parameter <code>--ignore</code>, which therefore does nothing. This parameter requires two values.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Identify</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Identify program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_identify.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Identify</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_identify.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_identify.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Identify Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_identify</strong> program is a tool for processing strings in an attempt to identify the <abbr title="Featureless Settings Specification">FSS</abbr> file format based on <abbr title="Featureless Settings Specification">FSS</abbr> header comments.
+ </p>
+ <p>
+ This program doesn't perforrm any special heuristic. It only checks for the special <abbr title="Featureless Settings Specification">FSS</abbr> header and reports what it finds.
+ </p>
+ <p>
+ This tool is designed to be scriptable but does not accept piped input.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Identifier content (the 4-digit hexidecimal type code).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Identifier object (the name).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Identifier at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select FSS using this full or partial type name or code.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total Identifiers found.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>--line</code> parameter refers to the file lines and not the lines in a given file.
+ </p>
+ <p>
+ If neither the <code>--object</code> nor <code>--content</code> are specified, then the default behavior is to print both.
+ </p>
+ <p>
+ When specifying the <code>--total</code> parameter, neither the <code>--object</code> nor the <code>--content</code> parameter may be specified.
+ </p>
+ <p>
+ An FSS file is identified by the format "<code># Object-Content</code>" where the Object, is a machine-name representing the name and may only consist of "word" characters and the Content is a 4-digit hexidecimal number representing a particular variant of the Object. This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "<code>#</code>". White space must follow this pound character. There may be multiple Object and Content pairs, separated by white space, such as: "<code># fss-0002 fss-0000 iki-0002</code>".
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Payload Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Payload Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_payload_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Payload Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_payload_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_payload_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Payload Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>fss_payload_read</strong> program is a tool for reading and processing strings that follow the FSS-000E (Payload) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--raw</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+ <p>
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+ <p>
+ When using the <code>--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+ <p>
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code>--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code>--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt"><code><code>--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ </dl>
+ <p>
+ The parameter <code>--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+ <p>
+ The parameter <code>--select</code> selects a Content column.
+ </p>
+ <p>
+ Specify both <code>--object</code> and the --total parameters to get the total objects.
+ </p>
+ <p>
+ When both <code>--at</code> and <code>--name</code> parameters are specified (at the same depth), the <code>--at</code> parameter value will be treated as a position relative to the specified <code>--name</code> parameter value.
+ </p>
+ <p>
+ This program may support parameters, such as <code>--depth</code> or <code>--select</code>, even if not supported by the standard.
+ </p>
+ <p>
+ This is done to help ensure consistency for scripting.
+ </p>
+ <p>
+ For parameters like <code>--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+ <p>
+ For parameters like <code>--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+ <p>
+ The parameter <code>--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+ <p>
+ When specifying both the <code>--object</code> parameter and the <code>--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+ <p>
+ Both the Object and Content printed are already escaped.
+ </p>
+ <p>
+ Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
+ </p>
+ <p>
+ The parameter <code>--delimit</code> accepts the following:
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">A number, 0 or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+ <p>
+ The <code>--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+ <p>
+ The <code>--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+ <p>
+ The parameters <code>--columns</code> and <code>--select</code> refer to a Content column.
+ </p>
+ <p>
+ The word "<em>column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+ <p>
+ This is not to be confused with a depth.
+ </p>
+ <p>
+ As an exceptional case, a <code>--depth</code> of 1 applies only to the explicit Object of "<em>header</em>".
+ </p>
+ <p>
+ Content at this depth is processed as FSS-0001 (Extended).
+ </p>
+ <p>
+ The Content of the explicit Object of 'payload' will not contain any Content close pipe control codes when using <code>--pipe</code>.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Payload Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Payload Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_payload_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Payload Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_payload_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_payload_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Payload Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_payload_write</strong> program is a tool for generating strings that follow the FSS-000E (Payload) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p>
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+ <p>
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+ <p>
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+ <p>
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+ <p>
+ For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
+ </p>
+ <p>
+ The FSS-000E (Payload) specification does not support quoted names, therefore the parameters <code>--single</code> and <code>--double</code> do nothing.
+ </p>
+ <p>
+ This program does not use the parameter <code>--ignore</code>, which therefore does nothing. This parameter requires two values.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Status Code</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Status Code program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_status_code.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Status Code</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_status_code.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_status_code.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Status Code Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+ <div class="section-content">
+ <p>
+ The <strong>fss_status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
+ </p>
+ <p>
+ This program handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes as well as <abbr title="Featureless Settings Specifications">FSS</abbr> status codes. The max status code supported is represented by the code words <code>F_fss_status_code_last</code>.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--fine</code></td>
+ <td class="column">Print <code>F_true</code> or <code>F_false</code> if status code is neither an error nor a warning or print number with neither the error code nor the warning code bits set.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--warning</code></td>
+ <td class="column">Print <code>F_true</code> or <code>F_false</code> if status code is a warning or print number with warning code bit set.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--error</code></td>
+ <td class="column">Print <code>F_true</code> or <code>F_false</code> if status code is an error or print number with error code bit set.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--number</code></td>
+ <td class="column">Convert status code name to number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - IKI Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="IKI Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/iki_read.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">IKI Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/iki_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/iki_read.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">IKI Read Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>iki_read</strong> program is a tool for processing strings that follow the IKI standard, specifically IKI-0000 (Unrestricted).
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input.
+ </p>
+ <p>
+ Different ways of interpreting and printing strings are available.
+ </p>
+ <p>
+ The entire string can be printed, replacing all IKI Variables and even allowing for primitive substitution or only the IKI Variables (or their Content) can be printed.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select variable at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the variables at the given line within the file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select variables with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--whole</code></td>
+ <td class="column">Print all of the data instead of just the IKI variable data.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the variable content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-L</code></td>
+ <td class="column"><code class="code">--literal</code></td>
+ <td class="column">Print the entire variable (aka: object, content, and syntax).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the variable name (aka: object).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of variables.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--substitute</code></td>
+ <td class="column">Substitute the entire variable for the given name and content value with the given string.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This <code>-s/--substitute</code> option, requires 3 additional parameters: <code><vocabulary> <replace> <with></code>.
+ </p>
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">vocabulary</dt><dd class="dd">The name of the vocabulary whose content is to be substituted.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">replace</dt><dd class="dd">The content matching this exact string will be substituted.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">with</dt><dd class="dd">The new string to use as the substitute.</dd>
+ </div>
+ </dl>
+ <p>
+ The <em>vocabulary</em> and <em>replacement</em> are case-sensitive and must exactly match.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - IKI Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="IKI Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/iki_write.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">IKI Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/iki_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/iki_write.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">IKI Write Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>iki_write</strong> program is a tool for generating strings that follow the IKI standard, specifically the IKI-0000 (Unrestricted) standard.
+ </p>
+ <p>
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> form-feed character '<kbd>\f</kbd>' (U+000C) as a separator.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Status Code</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Status Code program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/status_code.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Status Code</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/status_code.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/status_code.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Status Code Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
+ </p>
+ <p>
+ This tool only handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes. The max status code supported is represented by the code words <code>F_status_code_last</code>.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--fine</code></td>
+ <td class="column">Print <code>F_true</code> or <code>F_false</code> if status code is neither an error nor a warning or print number with neither the error code nor the warning code bits set.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--warning</code></td>
+ <td class="column">Print <code>F_true</code> or <code>F_false</code> if status code is a warning or print number with warning code bit set.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--error</code></td>
+ <td class="column">Print <code>F_true</code> or <code>F_false</code> if status code is an error or print number with error code bit set.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--number</code></td>
+ <td class="column">Convert status code name to number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - UTF8</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="UTF8 program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/utf8.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">UTF8</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/utf8.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/utf8.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">UTF8 Documentation</h1>
+ </header>
+
+ <section id="about" class="section">
+ <header class="section-header header">
+ <h2 class="section-title h h2">About</h2>
+ </header>
+
+ <div class="section-content">
+ <p>
+ The <strong>UTF8</strong> program is a tool for converting from a <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code sequence to the Unicode code point. The byte code can also be referred to as the binary representation of the code even though the byte code is considered text. The term <em>"byte code"</em> here is used to refer to a sequence of bytes intended to represent something, which in this case is a Unicode character. The Unicode code point is the Unicode designation uniquely identifying that particular sequence. The Unicode code point persists across different Unicode encoding beyond <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr>, such as <abbr title="Unicode Transformation Format 16-bit">UTF-16</abbr>.
+ </p>
+ <p>
+ The idea behind the <strong>UTF8</strong> program is to provide the answer to the question of what some special <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> character is or to provide a way to create the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> character given the Unicode code point.
+ </p>
+ <p>
+ This tool is intended to be scriptable, should handle both piped data and files, and can convert entire files.
+ </p>
+ <p>
+ In addition, this tool can be used to validate a given byte code or can be used to get the character width of some byte code or code point.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ The <code>+q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong>utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code>+q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code>+q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+ <p>
+ The <code>+n/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-b</code></td>
+ <td class="column"><code class="code">--from_bytecode</code></td>
+ <td class="column">The expected input format is byte code (character data).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--from_codepoint</code></td>
+ <td class="column">The expected input format is code point (such as U+0000).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--from_file</code></td>
+ <td class="column">Use the given file as the input source.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-B</code></td>
+ <td class="column"><code class="code">--to_bytecode</code></td>
+ <td class="column">The output format is bytecode (character data).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--to_codepoint</code></td>
+ <td class="column">The output format is codepoint (such as U+0000).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--to_combining</code></td>
+ <td class="column">The output format is to print whether or not character is combining or not.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-F</code></td>
+ <td class="column"><code class="code">--to_file</code></td>
+ <td class="column">Use the given file as the output destination.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-W</code></td>
+ <td class="column"><code class="code">--to_width</code></td>
+ <td class="column">The output format is to print the width of a character (either 0, 1, or 2).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-H</code></td>
+ <td class="column"><code class="code">--headers</code></td>
+ <td class="column">Print headers for each section (pipe, file, or parameter).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-S</code></td>
+ <td class="column"><code class="code">--separate</code></td>
+ <td class="column">Separate characters by new lines (implied when printing headers).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--strip_invalid</code></td>
+ <td class="column">Strip invalid Unicode characters (do not print invalid sequences).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-v</code></td>
+ <td class="column"><code class="code">--verify</code></td>
+ <td class="column">Only perform verification of valid sequences.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>
+ This program establishes a pattern for some of the parameters. The parameters that represent a <em>"from"</em> use lower case short characters and the parameters that represent a <em>"to"</em> use upper case short characters. For short parameters that have both a <em>"from"</em> and a <em>"to"</em>, they use the same character with their case being different.
+ </p>
+ <p>
+ The default behavior is to assume the expected input is byte code from the command line to be output to the screen as codepoints.
+ </p>
+ <p>
+ Multiple input sources are allowed but only a single output destination is allowed.
+ </p>
+ <p>
+ When using the parameter <code>--verify</code>, no data is printed and 0 is returned if valid or 1 is returned if invalid.
+ </p>
+ <p>
+ When using the parameter <code>--to_combining</code> with the parameter <code>--to_width</code>, the 'C' character is printed to represent the combining and the digits are used to represent widths. The combining characters should be considered 1-width by themselves or 0-width when combined.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+# fss-0002
+
+Cygwin:
+ The following are a collection of informal notes on getting this to compile and run under Windows using Cygwin.
+ I may formalize this at a later point in time.
+
+ I have tested and was able to successfully (statically) compile and run FLL+Byte Dump under Cygwin.
+ The resulting binary could be transfered to another machine and runs if the cygwin.dll is copied with it (placed along the byte_dump.exe).
+
+ To compile the FLL, some functionality needs to be disabled.
+ Fortunately, FLL is specifically designed to be hackable so the process is easier than it might otherwise be.
+
+ For a monolithic build, compiled statically, add the following to "defines" in the "data/build/settings" file (of the packaged source).
+ "-D_di_libcap_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_ -D_di_compiler_attributes_ -DF_attribute_visibility_hidden_d -DF_attribute_visibility_internal_d -DF_attribute_visibility_protected_d -DF_attribute_visibility_public_d -DF_attribute_weak_d"
+
+ Before packaging "data/build/settings", the build settings files are either found inside the individual projects or under the build directory at the root of the source repository.
+
+ The file level_1/fl_control_group/c/control_group.c (for function fl_control_group_apply()) had to have the following changed from:
+ if (unshare(CLONE_NEWCGROUP) < 0) {
+ if (errno == EINVAL) return F_status_set_error(F_parameter);
+ if (errno == ENOMEM) return F_status_set_error(F_memory_not);
+ if (errno == ENOSPC) return F_status_set_error(F_space_not);
+ if (errno == EPERM) return F_status_set_error(F_prohibited);
+
+ return F_status_set_error(F_failure);
+ }
+ to:
+ return F_status_set_error(F_supported_not);
+
+ There may have been other things to disable that I forgot to document.
+
+ I do not believe I had to make any changes to compile byte_dump.
+
+ Compiling byte_dump statically against the FLL library is a bit inefficient in that it contains the entire FLL library.
+ The byte_dump program only needs a portion of it.
+ I may need to provide a list of everything that can be disabled to provide a smaller and more optimal byte_dump binary.
--- /dev/null
+# fss-0002
+
+Debugging:
+ There are various tools out there to assist in investigating for problems and debugging the compiled code.
+ This documentation briefly touches on a small set of these used by this project.
+
+ The following are notable tools to consider when debugging\:
+ - strace
+ - gdb
+ - valgrind
+ - GCC's -fanalyzer (and CLang's equivalent)
+ - massif-visualizer
+ - valkyrie
+
+Valgrind:
+ The "valgrind" program has three important tools:
+ 1) The default tool, which is to check for memory leaks.
+ 2) The thread anyalzing tool called "helgrind".
+ 3) The heap usage analyzing tool called "massif".
+
+ The default behavior shows memory leaks when run against a program (such as fake), a messages like the following are desired\:
+ - "in use at exit: 0 bytes in 0 blocks".
+ - "All heap blocks were freed -- no leaks are possible".
+
+ The "..total heap usage" is just that a total heap usage throughout the lifespan of the program.
+ This does not represent the total usage at any moment in time (for that look into massif).
+
+ Example execution\:
+ valgrind fake make
+
+ The thread analyzing tool called "helgrind" is described in the "threads.txt" documentation given that it is thread-focused.
+
+ The heap usage analyzing tool called "massif" is a helpful in identifying situations where the compiled code is using large amounts of memory.
+ A massif file is generated on exit and a good tool for visualizng this is called "massif-visualizer".
+
+ Example execution\:
+ valgrind --tool=massif fake make
+ massif-visualizer massif.out.1234
+
+ A GUI that is helpful in using valgrind is called "valkyrie".
+ The "valkyrie" program does not support massif at the time of this writing but it eventually may.
+ The "valkyrie" program does support the default valgrind tool and the helgrind tools.
+
+ When working with valgrind's massif tool, several libc functions (or other functions external to this project) may get in the way of the analysis.
+ These functions should be disabled.
+ Example valgrind massif execution disabling some common GLibc functions:
+ valgrind --tool=massif --ignore-fn=_IO_file_doallocate --ignore-fn=ftw_startup --ignore-fn=__alloc_dir fake clean build
+
+GCC's -fanalyzer (and CLang's equivalent):
+ The code analyzer provided by GCC (and also CLang, through similar means) attempts to determine insecure or otherwise bad coding practices.
+
+ This focuses on the GCC -fanalzyer.
+
+ The analzyer is easily enabled by just appending "-fanalyzer" to the "flags" in data/build/settings or directly passing "-fanalyzer" to the gcc command.o
--- /dev/null
+# fss-0002
+
+Private Functions:
+ One of the objectives of this project is to make as much, if not all, of the functions available for use.
+
+ Another of the objectives is to design each function to operate in isolation to another function.
+ There is some flexibility in regards to this when it comes to individual projects.
+
+ Such a design has advantages and disadvantages.
+
+ One of those disadvantages is possible redundant code.
+ The c-programming language does not have private functions by any normal means.
+ The use of the f_gcc_attribute_visibility_internal helps simulate private functions.
+ Such functionality only works in supporting GCC compilers.
+
+ These synthetic private functions are implemented as an exception to the objectives for maintainability and redundancy purposes.
+ Such implementations should be kept to a bare minimum.
+
+ Functions defined as private will not be normally exposed through the public headers files.
+ Such functions will be prefixed with 'private_'.
+
+ The header files and source files for these private functions will be prefixed with "private-".
+ Normally, this product uses underscores for names, but, as a special name, the dash "-" is used.
+ Normally, the names begin with the project name (such as directory_type.h instead of type_directory.h), but as a special case to further separate private files, this is prefixed onto source files (such as private-directory.h).
--- /dev/null
+# fss-0002
+#
+# This readme file is inteded to provide a basic introduction to the Featureless Linux Library (FLL).
+#
+
+Installation:
+ The FLL provides two installation types\:
+ - The management scripts.
+ - The Featureless Make program.
+
+ The management scripts provide a way to manage the source code, such as updating dependencies, constructing the souce code for release, and bootstrap compiling the system.
+
+ The bootstrap compiling provides a way to build and compile the entire FLL project, without the Featureless Make (Fake) program.
+ This bootstrap process solves the problem where if you don't already have Fake installed, then you cannot install Fake.
+ These bootstrap scripts are written in GNU Bash.
+
+ The source code needs to be packaged before it can be compiled by either the bootstrap scripts or by the Fake program.
+
+ The Fake program is neither intended nor designed to be used as an installer, so the bootstrap scripts also provide an install script written in GNU Bash.
+ This install script is intended to be used only by the FLL.
+ Future versions of the FLL may include an install equivalent to the Fake program (and there may possibly be a package generation equivalent as well).
+
+ The management scripts are as follows\:
+ - bootstrap.sh
+ - bootstrap-example.sh
+ - install.sh
+ - package.sh
+
+ The bootstrap.sh script is intended to take the FLL source code and compile it into appropriate binaries on the system, particularly when the Fake program is not installed.
+ This is analogous to the GNU Make program and the FLL Fake program.
+
+ The bootstrap-example.sh script is intended to be a functional example of the command line arguments that should be used to generate, compile, and install the entire FLL.
+
+ The install.sh script is intended to install the built and compiled FLL code onto the system.
+ This script very loosely follows a small amount of the logic of the standard configure scripts.
+
+ The package.sh script is intended to convert the FLL source code from the source code repository structure into a packaged or release.
+ Of particular note is that there are multiple ways to package the FLL, such as each package as its own individual project, each package by level, or each package as a monolithic library.
+ This script also provides management functions for ensuring the dependencies and configuration settings are accurate.
+
+Other Readmes:
+ Repository providers like Github and Gitlab utilize README.md, LICENSE, and other special files at the root project level.
+ This practice is not supported by the FLL project structure and is not normally used.
+
+ Instead, these are provided only on special branches intended exclusively to be used for the appropriate repository provider.
+ These readmes and related files are intended to document the project within the scope of the repository provider and usually a particular release version.
--- /dev/null
+# fss-0002
+
+Implicit Return Types for f_status_t:
+ When f_status_t is used as the return type, there are a common set of status codes that should always be expected as a possible return value.
+ These are implicit expectations even if they are not explicitly documented.
+ Any function that doesn't support these must document the exceptional state.
+
+ F_failure\:
+ This may be returned for any general error.
+ This is often used as the failsafe error code so that an error code of some sort is always returned on error.
+
+ F_parameter\:
+ This is always potentially returned for any function whose parameter requires a validity checked.
+ Much of this functionality can be optionally disabled, but the client using the API need not be aware.
+
+ F_implemented_not\:
+ This is used to designate that the function or some part of the function is not supported.
+ This is primarily used by individuals altering the project but maintaing API compatibility.
+ Any function must therefore support returning F_implemented_not.
+
+ There are some projects that can be enabled/disabled such as f_capability and f_threads.
+ These should explicitly document returning F_implemented_not.
+
+Common Return Types for f_status_t:
+ There are some f_status_t return types that are not required to be returned but are used quite often that they might seem required.
+
+ F_none\:
+ This general designates that no error occurred.
+ This is a generic status code used all over the place.
+
+ F_memory_not\:
+ This general designates that the operation ran out of memory.
+ This is a generic status code used all over the place.
--- /dev/null
+# fss-0002
+
+Style Guide:
+ The Featureless Linux Library uses a set of styles and practices designed in hopes to communicate both explicitly and implicitly multiple meanings and contexts.
+ The idea is that code should be readable like a story rather than be a mash of characters jumbled together into as few lines as possible.
+ This design has a tendency to go against the norm given that longer lines (such as 120 characters or more) may be common.
+
+ There are general style guides used in everything and there are more specific and context-explicit styles used in special cases.
+
+General Style Guides:
+ - Naming Structure.
+ - Commas in Sets.
+ - Loops and Newlines.
+ - Returns, Breaks, Continues, Gotos, and Newlines.
+
+Specific Style Guides:
+ - Return Code Names.
+ - Global String Constant Names.
+ - Enumeration Names.
+ - Define Names.
+ - Type Definition names.
+ - Function Names.
+ - File Names.
+ - Returns, Breaks, Continues, and Gotos Function Accessories.
+
+Naming Structure:
+ All files, programs, functions, and comments that have specific meaning follow this general naming structure.
+ This structure may be similar to camel-casing or snake-casing, but it is not nor is it intended to match them.
+
+ These special names may only contain word characters, underscore "_", and dash "-".
+
+ The underscore "_" and dash "-" are explicitly intended to communicate separation of context or not.
+ The underscore character represents a space separating multiple words, logic, concepts, or ideas represented by the previous words and should share meaning.
+ The dash character represents a break in the words, logic, concepts, or ideas.
+
+ Limitations in the software may restrict the use of these and the following also apply\:
+ - In the event that a dash cannot be used, fall back to an underscore.
+ - In the event that an underscore cannot be used, fall back to a dash.
+ - In the event that both underscore and dash cannot be used, it is fine to have neither.
+ - For software that uses plus "+", it may become necessary to replace the dash with the plus, but this should be avoided.
+ - Other language-specific (compiler languages, spoken languages, written languages, etc..) restrictions may apply that prevent or alter this style.
+
+ In general, these special names should always be lower case and this is encouraged.
+ The use of upper case is not forbidden and is encouraged to be used for special communication or language-specific purposes.
+
+ Consider the following to better understand how and when to use the underscore and dash to implicitly communicate context\:
+ Take the words "my", "red", "cat", "dog", and "apple".
+
+ If you wanted to communicate that the structure of a document is focused on "my red X", then you can use the following naming structure to communicate this\:
+ 1) my_red-cat, my_red-dog, my_red-apple.
+
+ If you wanted, instead, to communicate that the structure is focused on "my X", then you can use the following naming structure to communicate this\:
+ 2) my-red_cat, my-red_dog, my-red_apple.
+
+ By following this logic, another person can more easily identify your logic and make changes or fixes.
+ Let us say that somebody wants to add "happy" to the context\:
+
+ 1) This can become: my_red-happy_cat, my_red-happy_dog, my_red-apple.
+ 2) This can become: my-happy_cat, my-happy_dog, my-red_apple.
+
+ The person who added "happy" might have fixed a situation where there is no red cat or dog and while understanding that there is no happy apple.
+ However, in case (1) because "my_red" is grouped together by the underscore, it is clear that there is a "my_red" must be preserved and there is red cat and red dog, so happy is added to the cat and dog but not the apple without removing the "red".
+
+Commas in Sets:
+ In english, the more grammatically correct way to write lists is to have commas except for the last item in the set.
+ This makes hacking and patching more difficult, even if only slightly.
+
+ This project requires that, so long as it is allowed by the language (in terms of valid syntax, etc..), items in a list must always end in a comma.
+
+ Example Grammatically Correct Way\:
+ - char list[] = {
+ 'a',
+ 'b',
+ 'c'
+ };
+
+ Example FLL Correct Way\:
+ - char list[] = {
+ 'a',
+ 'b',
+ 'c',
+ };
+
+Loops and Newlines:
+ All loops, except loops with only 0 or 1 lines within it, add an extra new line after the loop condition part (or before the loop condition part for post-increment loops).
+
+ All pre-increment loops will have their loop type (such as "while", or "for") in a comment inline with the closing brace.
+
+ A for loop would like like\:
+ for (int x = 0; x < y; ++x) {
+
+ do_something();
+ do_something_else();
+ } // while
+
+ A do while loop would like like\:
+ do {
+ do_something();
+ do_something_else();
+
+ } while (true);
+
+Returns, Breaks, Continues, Gotos, and Newlines:
+ Operations that change the flow of a block or a function must have a newline before them, except in certain conditions.
+ This includes "return" statements, "break" statements, "continue" statements, and "goto" statements.
+
+ Exceptions to this includes one line flow change operations directly tied to a function called before it.
+ These are meant to be treated as an accessory to the function.
+
+ Any of these used in a switch statement to represent an action on a particular case is an exception to this rule.
+
+ As an exception, this newline requirement may also be disregarded when combined with a set of one-line if, then, and else conditions.
+
+Return Code Names:
+ The return code names are C-language specific names used by this project as the status or return codes for functions and programs.
+ To uniquely identify these, they follow the naming structure "(A)_(b)", where "(A)" is replaced with an upper-case character representing the project level (or name) and "(b)" is replaced with the lower-case status code name using words that are underscore separated.
+
+ These are enumerations but they do not follow the enumeration style guide and are an exception to it.
+
+ Examples\:
+ - F_none
+ - F_signal_file_size_limit
+
+Global String Constant Names:
+ The C-language specific global names are used in two ways\:
+ 1) Via a define (macro).
+ 2) As a variable at the global scope.
+
+ When used as a define, these follow the naming structure "(A)_(b)_s" or "(a)_(b)_s", where "(A)" is replaced with an upper-case character representing the project level, "(a)" is a lower-case alternative of "(A)" and "(b)" is replaced with the lower-case name using words that are underscore separated.
+
+ When used as a variable these follow the naming structure "(a)_(b)_s", where "(a)" is replaced with an lower-case character representing the project level (or name) and "(b)" is replaced with the lower-case name using words that are underscore separated.
+
+ The trailing "_s" designates that this is a string.
+
+ In general, the defines are always using the upper-case variant and the variable are always using the lower-case.
+ This separation allows for a define and a variable to both exist simultaneously without naming conflict.
+ This is used extensively to define strings in this practice such that a define exists while a variable is provided.
+
+ A special case define that describes the length of the string is of the forms: (A)_(b)_s_length or "(a)_(b)_s_length".
+
+ Examples\:
+ - F_file_open_mode_truncate_s: as a define, such as: #define F_file_open_mode_truncate_s "w".
+ - f_file_open_mode_truncate_s: as a variable, such as: extern const f_string_t f_file_open_mode_truncate_s;.
+ - FAKE_build_setting_name_build_compiler_s: as a define.
+ - fake_build_setting_name_build_compiler_s: as a variable.
+ - fake_build_setting_name_build_compiler_s_length: for describing the length of the string represented by fake_build_setting_name_build_compiler_s.
+
+Enumeration Names:
+ The C-language specific enumeration names follow the naming structure "(b)_e", where "(b)" is replaced with the lower-case name using words that are underscore separated.
+
+ The trailing "_e" designates that this is an enumeration.
+
+ Examples\:
+ - f_console_verbosity_quiet_e
+ - f_fss_basic_e
+ - fss_extended_list_read_parameter_at_e
+
+Define Names:
+ The C-language specific define names (also known as macro names) follow the naming structure "(A)_(b)_d", where "(A)" is replaced with an upper-case character representing the project level and "(b)" is replaced with the lower-case name using words that are underscore separated.
+
+ The trailing "_d" designates that this is a define (a macro).
+
+ Examples\:
+ - F_file_mode_special_sticky_d
+ - F_attribute_visibility_internal_d
+ - FL_diectory_recurse_depth_max_d
+
+Type Definition names:
+ The C-language specific type definition names follow the naming structure "(a)_(b)_t", where "(a)" is replaced with an lower-case character representing the project level and "(b)" is replaced with the lower-case name using words that are underscore separated.
+
+ The trailing "_t" designates that this is a type definition.
+
+ In addition to the type definition, special defines (macros) are provided that are specific to type definitions are an exception to the Define Names rules.
+ - Each type definition should have an initializer and that initializer name follows the naming structure "(a)_(b)_t_initialize" where "_initialize" is appended to the type definition name.
+
+ - Each type definition may have special defines (macros) used as functions for helping with special operations such as complex initialization, allocation, and deallocation.
+ These special case defines are an exception to the Define Name rules and follow the naming structure "macro_(a)_(b)_t_(c)" where "macro_" is prepended to the type definition name and the (c) is just like (b) but is used to communicate the special purpose.
+
+ Examples\:
+ - f_string_static_t
+ - f_status_t
+ - macro_f_account_t_clear
+ - macro_f_string_dynamic_t_resize
+
+Function Names:
+ The C-language specific function names follow the naming structure "(a)_(b)" or "private_(a)_(b)", where "(a)" is replaced with an lower-case character representing the project level (or name) and "(b)" is replaced with the lower-case name using words that are underscore separated.
+
+ The leading "private_" is used to designate that this is a private function.
+
+ In addition, special practices are followed.
+ - For FLL projects, each project has a level.
+ Each project within some level is prepended to functions with their level representation characters of: "F" (level 0), "FL" (level 1), and "FLL" (level 2).
+
+ - For programs, each program has a project name.
+ The program name, or a short alias of the program name, is prepended to functions.
+
+ - For programs, the "main" function does not do this and is always called "main" without modification.
+
+ Examples\:
+ - f_fss_basic_e
+ - fl_conversion_string_to_binary_signed
+ - fake_print_help
+
+File Names:
+ The C-language specific file names follow the naming structure "(c-)(b)(-c)" where "(b)" is replaced with the lower-case name using words that are underscore separated and "(c-)" and "(-c)" are just like "(b)" except there may be any number of these (or none at all) and the dash "-" is used to separate context as per the General Naming Structure.
+
+ In addition, special practices are followed:
+ - private-(c-)(b)(-c): "private-" is prepended to all source and header files intended to be private (aka: not intended to be exposed via the API or ABI).
+
+ - (c-)(b)(-c)-common: "-common" is appended to all files used as a common include for standard practice data such as global strings, define strings, type definitions, and memory allocation or deallocation functions.
+
+Returns, Breaks, Continues, and Gotos Function Accessories:
+ To avoid excessive newline spacing, certain one-line operations that are tightly coupled to a function are treated as an accessory to the function.
+ As an accessory to some function, these one-line operations must not have a line between them and the function that they are an accessory of unless there is an excessive amount.
+
+ These function accessories are operations that change the flow of a block or a function.
+ This includes "return" statements, "break" statements, "continue" statements, and "goto" statements.
--- /dev/null
+# fss-0002
+
+Threads Documentation:
+ With the inclusion of the f_thread project, the Featureless Linux Library supports and uses threads by default.
+ This essentially adds -pthread to all level and monolithic builds with all projects depending on f_thread requiring passing -pthread.
+
+ To compile without this thread support, remove all occurances of "-pthread" from each of the build settings files.
+ Be sure to remove f_thread project from the compile list as well (which can be found either in the individual projects build settings file or the appropriate level or monolithic build settings file).
+
+ Any project or library depending on f_thread must have -pthread passed to guarantee a correct and valid compilation.
+
+ Some projects that optionally support pthreads may support the macro _di_pthread_support_ for disabling threads.
+
+ Thread support is a very common functionality and there may be changes to the FLL scripts and fakefile to support the options "--disable-thread" and "--enable-thread" to make utilizing threads slightly easier.
+ Some libraries and programs in this project require threads to work and will not compile with threads disabled.
+
+GLIBC Problems:
+ Some versions of GLIBC butcher static linking in some way or another.
+ One of the problems encountered is that with compiling against threads (-pthread) some programs may get messages like\:
+ multiple definition of `__lll_lock_wait_private' ... libpthread.a(lowlevellock.o): in function `__lll_unlock_wake_private' ...
+
+ An immediate solution would be to fix the GLIBC and set __lll_lock_wait_private to a weak_function.
+ This is not practical for most users, so it may be that thread support in statically compiled libraries for GLIBC will not be possible.
+ An alternative could be to use a more sane libc instead of GLIBC (if you can find one, like musl-libc).
+
+ There needs to be more investigation into the cause of this.
+ Maybe there is some way to fix this during compile or link time without having to fix GLIBC or use a different libc for static linking.
+
+Valgrind Debugging:
+ The tool "helgrind" in valgrind allows for debugging threads (such as valgrind --tool=helgrrind controller).
+
+ The way in which the "active" lock is used will result in out of order locks.
+ This causes "helgrind" to produce a lot of warnings about locks being out of order.
+ Therefore, it is stongly recommended to use the parameter "--track-lockorders=no".
+
+Thread Cancellation Problems:
+ The POSIX standard designates thread cancellation via pthread_cancel() (which is provided via f_thread_cancel()).
+ This cancellation approach works such that when pthread_cancel() the thread is immediately terminated at a cancellation point.
+ The POSIX standard designates the detecting and acting on a cancellation point via pthread_testcancel() (which is provided via f_thread_cancel_test()).
+
+ The pthread_testcancel() operates such that if pthread_cancel() was ever used for some thread with pthread_testcancel() that thread immediately exits.
+ There is no opportunity for the thread calling pthread_testcancel() to do any cleanup.
+
+ The POSIX standard designates a way to perform exit tasks via pthread_cleanup_push() and pthread_cleanup_pop().
+ These are allowed to be implemented as macros.
+
+ The POSIX standard then provides a number of POSIX functions that must act as a cancellation point (essentially they call pthread_testcancel() at act as if they do).
+
+ What all of this means is that the POSIX cancellation system is unusable, useless, and dangerous (except in a very restricted set of project designs).
+
+ The Featureless Linux Library is designed to encourage everything to be functional and non-global.
+ The pthread_cleanup_push() and pthread_cleanup_pop() functions cannot be safely and reliable used because they not only may be macros but the Featureless Linux Library allows for the design to be in multiple scopes.
+ The pthread_testcancel() is incredibly dangerous and can very easily result in segmentation faults, memory leaks, dead locks, and other security concerns.
+
+ The cancellation functions, such as sleep(), may require being either interrupted through an interrupt signal or be cancelled via pthread_testcancel().
+ The pthread_testcancel() may need to be used in these cases.
+
+ Therefore, avoid using any design or functions that may force or require the use of pthread_testcancel() but when forced to be very careful to clear up resources and locks to make sure that if a cancellation occurs that nothing bad can happen.
+ A better approach would be to use timed checks on some variable shared between all affected functions and scopes that designates cancellation.
+ That way when a cancellation is reseived through the custom variable, the functions can actually handle the situation, safely and properly, before cancelling.
+
+C/C++ Standard:
+ Newer C/C++ standards provide thread support.
+ This is ideally much better than POSIX in that it will be more portable.
+ At this time, most C/C++ compilers do not implement this thread support.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0000 - Basic:
+ Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as part of the object.
+ Whitespace separates an Object from the Content.
+ An Object may be preceded by a newline, in which case means that the Object has no Content.
+ If only printing whitespace follows a valid Object, that Object is considered to have no Content.
+
+ Content exists on the same line as the Object.
+ Content is represented as a single Content column terminated by a newline.
+ Content column consists of everything following the first non-whitespace character until the newline.
+ Content column includes trailing whitespace before newline is reached.
+ Content column does not include any of the leading whitespace.
+ No delimits are supported in the Content.
+
+ Key\:
+ \s = whitespace, except newline.
+ \b = either whitespace or printable, except newline.
+ \q = non-whitespace or quoted whitespace with no whitespace outside of the quotes.
+ \n = newline.
+ * = zero or more occurrences.
+ + = one or more occurrences.
+
+ Before Structure\:
+
+ Structure\:
+ \s*\q+\s+\b*\n
+
+ After Structure\:
+
+ Example\:
+ # fss-0000
+ # valid comments are ignored.
+ "The Object" Content until newline.
+ Second object set.
+
+ Object would be\:
+ 1) The Object
+ 2) Second
+
+ Content would be\:
+ 1.1) Content until newline.
+ 2.1) object set.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0001 - Extended:
+ Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as an object.
+ Whitespace separates an Object from the Content.
+ An Object may be followed by a newline, in which case means that the Object has no Content.
+ If only printing whitespace follows a valid Object, that Object is considered to have no Content.
+
+ Content exists on the same line as the Object.
+ Content is represented as multiple Content columns.
+ Content columns are whitespace separated parts within the Content and terminated by a newline.
+ Any number of Content columns may exist in the Content until the newline is reached.
+
+ Key\:
+ \s = whitespace, except newline.
+ \b = either whitespace or printable, except newline.
+ \q = non-whitespace or quoteded whitespace, no whitespace outside of quotes.
+ \n = newline.
+ * = 0 or more occurrences.
+ + = one or more occurrences.
+ ()* = grouping that repeats 0 or more times.
+
+ Before Structure\:
+
+ Structure\:
+ \s*\q+\s+(\s*\q+)*\s*\n
+
+ After Structure\:
+
+ Example\:
+ # fss-0001
+ # valid comments are ignored.
+ "The Object" Content "content 2" content_3.
+ Second object set.
+
+ Objects would be\:
+ 1) The Object
+ 2) Second
+
+ Contents would be\:
+ 1.1) Content
+ 1.2) content 2
+ 1.3) content_3.
+
+ 2.1) object
+ 2.2) set.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+# Note: This file is in fss-0002 format and as a result the example below has to be escaped (can potentially be confusing when reading this raw).
+# The "This Does\\\:" below is actually "This Does\:" when processed by fss-0002.
+
+Featureless Settings Specification: 0002 - Basic List:
+ Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as an object.
+ A colon followed by any whitespace until a newline terminates a valid Object.
+ Non-whitespace may not follow the colon of a valid Object.
+
+ Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
+ Any Content that could be interpreted as a valid Object must have the colon delimited.
+
+ There is no single-quote or double-quote delimitation in this specification.
+ Only the colon that would result in a valid Object can be delimited.
+
+ Empty Objects are allowed, that is, the length of the object may be 0.
+
+ Key\:
+ \s = whitespace, except newline.
+ \o = any printable character, except unescaped ':'.
+ \l = any printable character or whitespace, except unescaped ':'.
+ \c = either whitespace or printable, including newline, that not interpretable as an Object.
+ \n = newline.
+ * = 0 or more occurrences.
+
+ Before Structure\:
+
+ Structure\:
+ \s*\o\l*:\s*\n\c*\n*
+
+ After Structure\:
+
+ Example\:
+ # fss-0002
+ # valid comments are ignored.
+ "The Object"\:
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\\\:
+ Second\:
+ Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
+ # Valid comments are still ignored.
+
+ Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Contents would be\:
+ 1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\:
+ 2.1) Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0003 - Extended List:
+ Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as an object.
+ An open-brace ({) followed by any whitespace until a newline terminates a possible valid Object.
+ An Object is not considered fully valid until a valid close-brace (}) is found, designating the end of the Content.
+ Non-whitespace may not follow the open-brace of a valid Object.
+
+ Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace (}).
+ Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
+ Whitespace may follow a valid close-brace but a terminating newline must be present to designate a valid end of Content.
+
+ There is no single-quote or double-quote delimitation in this specification.
+ Only the open-brace that would result in a valid Object or the close-brace that would terminate valid Content can be delimited.
+ When inside potentially valid Content (which follows a valid Object) the open-brace cannot be delimited because this standard is not-recursive.
+ When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited.
+ Likelwise, the close-brace may only be delimited if it is within any potentially valid Content.
+
+ Each delimit slash in a delimitable open-brace is treated as a potential delimit such that two slashes represents a single delimited slash ('\\{' would represent '\{').
+ Only the first delimit slash in a delimitable close-brace is treated as a potential delimit ('\\\}' would represent '\\}').
+
+ Empty Objects are allowed, that is, the length of the object may be 0.
+
+ Key\:
+ \s = whitespace, except newline.
+ \o = any printable character, except unescaped '{'.
+ \l = any printable character or whitespace, except unescaped '}'.
+ \c = either whitespace or printable, including newline, that is not interpretable as an Object.
+ \n = newline.
+ * = 0 or more occurrences.
+
+ Before Structure\:
+
+ Structure\:
+ \s*\o\l*{\s*\n\c*\n\s*}\s*\n
+
+ After Structure\:
+
+ Example\:
+ # fss-0003
+ # valid comments are ignored.
+ "The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+ }
+
+ Second {
+ Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
+ # Valid comments are still ignored.
+ }
+
+ Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Contents would be\:
+ 1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ }
+ 2.1) Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0004 - Very Basic List:
+ This is a fss-0002 Basic List whose Content is then processed as fss-0000 Basic.
+
+ All Basic List (fss-0002) escapes are applied before any Basic (fss-0000) is identified.
+
+ See the fss-0000.txt and fss-0002.txt specification files for details on the syntax rules.
+
+ Example\:
+ # fss-0004
+ # valid comments are ignored.
+ "The Object"\:
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\\\:
+ Second\:
+ Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
+ # Valid comments are still ignored.
+
+ Outer Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Inner Objects would be\:
+ 1.1) Does
+ 1.2) This:
+ 1.3) This
+
+ 2.1) Continues
+ 2.2) All
+
+ Inner Contents would be\:
+ 1.1.1) not need to be quoted.
+ 1.2.1) does not need to be delimited.
+ 1.3.1) Does\:
+
+ 2.1.1) until EOS/EOF.
+ 2.2.1) whitespace, including newline (and leading whitespace) is "part of content."
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0005 - Somewhat Basic List:
+ This is a fss-0002 Basic List whose Content is then processed as fss-0001 Extended.
+
+ All Basic List (fss-0002) escapes are applied before any Extended (fss-0001) is identified.
+
+ See the fss-0001.txt and fss-0002.txt specification files for details on the syntax rules.
+
+ Example\:
+ # fss-0005
+ # valid comments are ignored.
+ "The Object"\:
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\\\:
+ Second\:
+ Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
+ # Valid comments are still ignored.
+
+ Outer Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Inner Objects would be\:
+ 1.1) Does
+ 1.2) This:
+ 1.3) This
+
+ 2.1) Continues
+ 2.2) All
+
+ Inner Contents would be\:
+ 1.1.1) not
+ 1.1.2) need
+ 1.1.3) to
+ 1.1.4) be
+ 1.1.5) quoted.
+
+ 1.2.1) does
+ 1.2.2) not
+ 1.2.3) need
+ 1.2.4) to
+ 1.2.5) be
+ 1.2.6) delimited.
+
+ 1.3.1) Does\:
+
+ 2.1.1) until
+ 2.1.2) EOS/EOF.
+
+ 2.2.1) whitespace,
+ 2.2.2) including
+ 2.2.3) newline
+ 2.2.4) (and
+ 2.2.5) leading
+ 2.2.6) whitespace)
+ 2.2.7) is
+ 2.2.8) part of content.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0006 - Somewhat Extended List:
+ This is a fss-0003 Extended List whose Content is then processed as fss-0000 Basic.
+
+ All Extended List (fss-0003) escapes are applied before any Basic (fss-0000) is identified.
+
+ See the fss-0000.txt and fss-0003.txt specification files for details on the syntax rules.
+
+ Example\:
+ # fss-0006
+ # valid comments are ignored.
+ "The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+ }
+
+ Second {
+ Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
+ # Valid comments are still ignored.
+ }
+
+ Outer Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Inner Objects would be\:
+ 1.1) Does
+ 1.2) This\:
+ 1.3) }
+
+ 2.1) Continues
+ 2.2) All
+
+ Inner Contents would be\:
+ 1.1.1) not need to be quoted.
+ 1.2.1) does not need to be delimited.
+ 1.3.1)
+
+ 2.1.1) until EOS/EOF.
+ 2.2.1) whitespace, including newline (and leading whitespace) is "part of content."
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0007 - Very Extended List:
+ This is a fss-0003 Extended List whose Content is then processed as fss-0001 Extended.
+
+ All Extended List (fss-0003) escapes are applied before any Extended (fss-0001) is identified.
+
+ See the fss-0001.txt and fss-0003.txt specification files for details on the syntax rules.
+
+ Example\:
+ # fss-0007
+ # valid comments are ignored.
+ "The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+ }
+
+ Second {
+ Continues until EOS/EOF.
+ All whitespace, including newline (and leading whitespace) is "part of content."
+ # Valid comments are still ignored.
+ }
+
+ Outer Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Inner Objects would be\:
+ 1.1) Does
+ 1.2) This\:
+ 1.3) }
+
+ 2.1) Continues
+ 2.2) All
+
+ Inner Contents would be\:
+ 1.1.1) not
+ 1.1.2) need
+ 1.1.3) to
+ 1.1.4) be
+ 1.1.5) quoted.
+
+ 1.2.1) does
+ 1.2.2) not
+ 1.2.3) need
+ 1.2.4) to
+ 1.2.5) be
+ 1.2.6) delimited.
+
+ 1.3.1)
+
+ 2.1.1) until
+ 2.1.2) EOS/EOF.
+
+ 2.2.1) whitespace,
+ 2.2.2) including
+ 2.2.3) newline
+ 2.2.4) (and
+ 2.2.5) leading
+ 2.2.6) whitespace)
+ 2.2.7) is
+ 2.2.8) part of content.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0008 - Embedded List:
+ This is a fss-0003 Extended List whose Content is then recursively processed as fss-0003 Extended List.
+
+ See the fss-0003.txt specification file for details on the syntax rules.
+
+ Example\:
+ # fss-0008
+ # valid comments are ignored.
+ "The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+ }
+
+ Second {
+ Nested Example.
+
+ Third {
+ Fourth {
+ This is nested Content.
+ }
+ }
+ }
+
+ Outer Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Inner Objects (depth 1) would be\:
+ 2.1) Third
+
+ Inner Objects (depth 2) would be\:
+ 2.1.1) Fourth
+
+ Inner Contents (depth 0) would be\:
+ 1.1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ }
+
+ 2.1.1) Nested Example.
+
+ Third {
+ Fourth {
+ This is nested Content.
+ }
+ }
+
+ Inner Contents (depth 1) would be\:
+ 2.1.1.1) Fourth {
+ This is nested Content.
+ }
+
+ Inner Contents (depth 2) would be\:
+ 2.1.1.1.1) This is nested Content.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 0009 - Reverse Mapping:
+ This is based off of fss-0000 Basic, except the Object is at the end of the line.
+
+ Each Object starts at the end of a line and whitespace to the left of the Object is not treated as part of the object.
+ Whitespace separates an Object from the Content.
+ An Object may be preceded by a newline, in which case means that the Object has no Content.
+ If only printing whitespace precedes a valid Object, that Object is considered to have no Content.
+
+ Content exists on the same line as the Object.
+ Content is represented as a single Content column that begins at a newline.
+ Content column consists of everything following the first non-whitespace character at the start of the line until the Object is reached.
+ Content column includes trailing whitespace before newline is reached.
+ Content column does not include any of the whitespace between the last non-whitespace character and the start of the Object.
+ No delimits are supported in the Content.
+
+ Key\:
+ \s = whitespace, except newline.
+ \b = either whitespace or printable, except newline.
+ \q = non-whitespace or quoted whitespace with no whitespace outside of the quotes.
+ \n = newline.
+ * = zero or more occurrences.
+ + = one or more occurrences.
+
+ Before Structure\:
+
+ Structure\:
+ \s*\b*\s+\q+\s*\n
+
+ After Structure\:
+
+ Example\:
+ # fss-0009
+ # valid comments are ignored.
+ Content from newline. "The Object"
+ object set. Second
+
+ Object would be\:
+ 1) The Object
+ 2) Second
+
+ Content would be\:
+ 1.1) Content from newline.
+ 2.1) object set.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 000A - Extended Reverse Mapping:
+ This is based off of fss-0001 Extended, except the Object is at the end of the line.
+
+ Each Object starts at the end of a line and whitespace to the left of the Object is not treated as an object.
+ Whitespace separates an Object from the Content.
+ An Object may be followed by a newline, in which case means that the Object has no Content.
+ If only printing whitespace follows a valid Object, that Object is considered to have no Content.
+
+ Content exists on the same line as the Object.
+ Content is represented as multiple Content columns.
+ Content columns are whitespace separated parts within the Content is terminated by the start of the Object.
+ Any number of Content columns may exist in the Content until the Object is reached.
+
+ Key\:
+ \s = whitespace, except newline.
+ \b = either whitespace or printable, except newline.
+ \q = non-whitespace or quoteded whitespace, no whitespace outside of quotes.
+ \n = newline.
+ * = 0 or more occurrences.
+ + = one or more occurrences.
+ ()* = grouping that repeats 0 or more times.
+
+ Before Structure\:
+
+ Structure\:
+ \s*(\s*\q+)*\s+\q+\s*\n
+
+ After Structure\:
+
+ Example\:
+ # fss-000a
+ # valid comments are ignored.
+ Content "content 2" content_3. "The Object"
+ object set. Second
+
+ Objects would be\:
+ 1) The Object
+ 2) Second
+
+ Contents would be\:
+ 1.1) Content
+ 1.2) content 2
+ 1.3) content_3.
+
+ 2.1) object
+ 2.2) set.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 000B - Simple List:
+ This might be similar to fss-0008 - Embedded List, except it is an fss-0003 Extended List with a (non-recursive) fss-0002 Basic List inside the Content.
+
+ See the fss-0002.txt and fss-0003.txt specification files for details on the syntax rules.
+
+ Example\:
+ # fss-000b
+ # valid comments are ignored.
+ "The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+ }
+
+ Second {
+ Nested Example.
+
+ Third:
+ Fourth:
+ There is parallel to Second rather than nested within Second.
+ }
+
+ Outer Objects would be\:
+ 1) "The Object"
+ 2) Second
+
+ Inner Objects (depth 1) would be\:
+ 2.1) Third
+ 2.2) Fourth
+
+ Inner Contents (depth 0) would be\:
+ 1.1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ }
+
+ 2.1.1) Nested Example.
+
+ Third:
+ Fourth:
+ There is parallel to Second rather than nested within Second.
+
+ Inner Contents (depth 1) would be\:
+ 2.1.1.1)
+ 2.2.1.1) There is parallel to Second rather than nested within Second.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 000C - IKI Text:
+ The IKI specifications are separate specifications from the FSS specification.
+ This is simply a more formal way to designate that this format utilizes IKI syntax.
+
+ The IKI syntax may be used in any FSS specification.
+ The IKI format may be added to the.
+
+ See the iki.txt specification for details on the IKI specifications.
+
+ Example\:
+ # fss-000c iki-0000
+
+ This is a emphasis:"formal example" utilizing the FSS headers.
+
+ Example\:
+ # iki-0000
+
+ This is a emphasis:"informal example" utilizing the IKI headers.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 000D - Basic Rule:
+ This is a special case that follows fss-0002 (Basic List), and different FSS formats inside this Basic List.
+ This Basic List is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
+
+ The Inner Content may be any of the following FSS formats: fss-0000 (Basic), fss-0001 (Extended), and fss-0003 (Extended List).
+ The way in which each format is determined is first to see if the Inner Content Object would be a valid Extended List Object.
+ If the Inner Content Object is not a valid Extended List Object, then check to see if it is an Basic/Extended Object.
+
+ The FSS Basic and FSS Extended Objects have the same format for Object names but the FSS Extended List Object is slightly different.
+ Anything that would match an FSS Extended List Object must therefore be an FSS Extended List Object.
+
+ This supports the use of iki-0000 (Unrestricted) but only within the Content of the outermost Basic List.
+ That is to say, the IKI is only processed once.
+ Additional restrictions on the use of IKI syntax is allowed if explicitly defined in the implementing specification.
+ This additional restriction may also include using a more restrictive IKI syntax, such as "iki-0001 (Basic IKI)".
+
+ Anything implementing this specification may impose its own restrictions on when to determine if the Inner Content is what FSS format, based on Object names.
+
+ See the fss-0000.txt, fss-0001.txt and fss-0003.txt specification files for details on the syntax rules.
+
+ Example\:
+ # fss-000d
+ main:
+ name "Boot Devices"
+
+ script:
+ start {
+ ip addr add 127.0.0.1/8 label lo dev lo;
+ ip link set lo up;
+ }
+
+ stop {
+ ip link set lo down;
+ }
+
+ command:
+ start mount -a -O no_netdev
+ stop umount -arf -O no_netdev
+
+ Outer List Objects would be\:
+ 1) main
+ 2) script
+ 3) command
+
+ Outer List Contents would be\:
+ 1.1) name "Boot Devices"
+
+ 2.1) start {
+ ip addr add 127.0.0.1/8 label lo dev lo;
+ ip link set lo up;
+ }
+
+ stop {
+ ip link set lo down;
+ }
+
+ 3.1) begin mount -a -O no_netdev
+ end umount -arf -O no_netdev
+
+ Inner Content Objects would be\:
+ 1.1.1) name
+ 2.1.1) start
+ 2.1.2) stop
+ 3.1.1) begin
+ 3.1.2) end
+
+ Inner Content Contents would be (without breaking Content into its individual parts)\:
+ 1.1.1) Boot Devices
+ 2.1.1) ip addr add 127.0.0.1/8 label lo dev lo;
+ ip link set lo up;
+ 2.1.2) ip link set lo down;
+ 3.1.1) mount -a -O no_netdev
+ 3.1.2) umount -arf -O no_netdev
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+#
+# Note: This file is in fss-0002 format and as a result the example below has to be escaped (can potentially be confusing when reading this raw).
+# The "header\:" in the example below is actually "header:" when processed by fss-0002.
+
+Featureless Settings Specification: 000e - Payload:
+ This is a fss-0002 Basic List with two required objects\:
+ 1) "header".
+ 2) "payload".
+
+ The header's Content is of type fss-0001 Extended.
+ The payload's Content is of any type including raw binary data.
+
+ The payload is required to be the last list Object in the file.
+ The payload is recommended to have its size designated in some manner in the "header".
+ The designated size is recommended to use the fss-0001 Object "length".
+ The fss-0001 Content "part" is suggested to be used for fss-0001 Object "length" to represent a part of a set of packets intended to represent a single object spread across multiple payloads.
+ The fss-0001 Object "total" with the Content being a whole positive number is suggested to be used to represent the total number of packets that represent a whole.
+ The fss-0001 Object "part" with the Content being a whole positive number is suggested to be used to represent the number identifying which part of the whole it is.
+ The payload may contain anything, including NULL characters.
+ The payload is terminated by the EOF (end of file) character or when a some designated length is reached.
+ The length used to designate the payload size does not necessarily have to be defined in the 'header".
+ That is to say, if the payload is expected to be of some pre-defined or static length then a length does even if that length is not provided in the "header".
+ Nothing in the payload may be considered a valid list Object and therefore there will be no escaping allowed (No further fss-0002 Basic List Objects are allowed at this point).
+ Comments are not considered comments inside the payload and are instead considered part of the payload, as-is.
+ The payload may be empty (length may be zero), but the list Object "payload" must still exist.
+
+ The length and status may be in binary, octal, decimal, duodecimal, or hexidecimal numerical format.
+ The status may alternatively be represented as the status name string.
+ What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent FLL status codes.
+ The status, when representing an FLL status code as a number, may contain error and warning bit.
+ The status, when representing an FLL status code as a number, the status number is binary sensitive and may not be portable across binaries or systems.
+ For FLL status codes, consider using status as a name string to ensure cross-system or cross-binary compatibility.
+
+ Other than the reserved list Objects "header" and "payload" any other valid Object may be specified.
+
+ Example\:
+ # fss-000e
+ # valid comments are ignored.
+ header\:
+ type error
+ status 296
+ length 30
+
+ payload\:
+ The program is out of memory.
+
+ Outer Objects would be\:
+ 1) header
+ 2) payload
+
+ "header" Objects would be\:
+ 1.1) type
+ 1.2) status
+ 1.3) length
+
+ "header" Contents would be\:
+ 1.1.1) error
+ 1.2.1) 296
+ 1.3.1) 30
+
+ The payload would be\:
+ 2) The program is out of memory.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specification: 000f - Simple Packet:
+ This is a network packet format that contains FSS-000E (Payload) within it.
+
+ The Simple Packet structure is described in blocks, of which are structured in bytes.
+
+ There are only three blocks in this format\:
+ 1) Control Block.
+ 2) Size Block.
+ 3) Payload Block.
+
+ The Control Block is the first block in the packet and is considered endianless.
+ There exists only a single byte within the Control Block.
+ Regardless of the endianness of the packet, the leftmost bit is always the "string" or "binary" bit.
+ The second bit following that bit represents the endianness bit.
+
+ The "string" or "binary" bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in binary format.
+ While the packet might be considered to be in string format, it is technically always in binary format due to the Control Block and Size Block.
+ This means that the bit designating the packet as a "string" packet or a "binary" packet is referring to whether or not the Payload Block is in "string" format or is in "binary" format.
+
+ The endianness bit designates whether or not the packet is in big endian or little endian format.
+ A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
+ All binary data within this packet, following the Control Block, must respect this endianness bit (including the Size Block).
+
+ The remaining bits are not defined by this standard and are expected to be 0.
+ Non-formal or local uses may utilize these remaining 6 bits as desired.
+ However, there may be additional standards that expand upon this and utilize these remaining Control bits.
+ Anything that utilizes these unused Control bits may add or remove additional Blocks after the Control Block as they see fit.
+
+ The Size Block is an unsigned 32-bit integer representing the size of the entire packet, including the Control Block and Size Block.
+ This size must exactly match the packet to be a valid packet.
+ The size represents number of bytes in the file.
+ The Control Block is 1 byte long and the Size Block is 4 bytes long and so the maximum available size is (2^32)-6.
+
+ The Payload Block is not defined by this standard of that that it exists and should be in FSS-000E (Payload) format.
+ The FSS-000E (Payload) may be represented in either string format or binary format.
+ The FSS-000E (Payload) may contain multiple "header"s but may only contain a single "payload".
+ With this in mind, it is recommended that only a single "header" be supported in the Payload Block.
+
+ Example Packet Structure\:
+ [ Control Block ] [ Size Block ] [ Payload Block ]
+ [ 0b10000000 ] [ 0b00000000 0b00000000 0b00000100 0b11010010 ] [ size: 1229 (1234 - 5) ]
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+Featureless Settings Specifications:
+ A Keep It Simple Stupid specifications for configuration/settings files.
+
+ This specification defines the following\:
+ - Will consist of numerous different kinds of specification files, depending on the type of information stored.
+ - As with the practice of "#!/bin/bash", the setting files SHOULD have the following: "# fss-????" format, such as "# fss-0001".
+ - Multiple sub-standards may be appended to the FSS header, using the same format structure, such as supporting IKI: "# fss-0000 iki-0000" or HTML5: "# fss-0000 html-0005".
+ - With the ? representing the (hexadecimal/base-16) number that represents the particular specification structure.
+ - All settings specifications SHOULD avoid any form of noise, relative to the data being stored.
+ - XML would be considered anti-KISS due to the extreme level of noise generated by the XML language (not easy to read).
+ - The settings files are setup so that they should (reasonably) produce easy readability on both the console and in a GUI.
+
+ The most basic form of FSS specifications consist of two main parts: an "Object" and the "Content".
+ - Object: Considered the name or identifier of some particular data; Objects do not need an associated Content.
+ - Content: The data associated with a given Object; all Content MUST have an associated Object.
+
+ Objects and Contents can include any characters allowed by the specifications.
+ The specification may choose how a given Object or Content are represented and parsed.
+ For example, in fss-0000 (Basic), Content is treated as a single item whereas in fss-0001 (Extended), Content is broken apart in multiple sub parts.
+
+ Contents may be broken up into zero or more discrete sets of Content.
+ Each of these discrete sets of Content are referred to as a column.
+ These columns do not need to be setup in a column structure, the word "column" is simply used as a grouping terminology.
+ While a Content refers to the entire set, a column (more specifically, a Content column) refers to the individual discrete sets within the Content.
+ For example, in fss-000 (Basic) the entire Content may be further represented as a single column.
+ For example, in fss-001 (Extended) the entire Content may be further represented as multiple columns.
+
+ In all cases, specifications that separate Objects from Contents using white space, the first white space separating the Object and Content must not be considered part of the Object nor part of the Content.
+ All spaces after the first separating white space is generally ignored until the first non white space character is found, unless otherwise specified.
+
+ Unless otherwise specified, all specifications are newline sensitive ('\n' only).
+ Newline characters are only '\n' and are never anything else ('\r' is not considered newline in any manner).
+ Whitespaces characters that are printable, such as tabs and spaces, must be considered the same type for the purposes of parsing.
+ Non-printing white spaces characters (zero-width characters) are ignored, are treated as placeholders for processing, or are considered part of the appropriate character if they are Unicode combining characters (this includes zero-width punctutations characters and similar).
+ In terms of processing, it is recommended that the NULL character is not considered the end of a string, but this is only a suggestion.
+
+ Unless otherwise specified, newlines designate the potential start (or end) of an Object or Content.
+
+ Unless otherwise specified, white space may exist to the left of the start of Objects.
+ Unless otherwise specified, white space may exist to the right of the end of Objects, but only if that given Object is properly quoted and the white space is after the terminating quote but before any Content.
+
+ Unless otherwise specified, white space immediately both before (and after, outside of the terminating quote) an Object is not considered part of the Object.
+ This simplifies identifying the object, use quoted Objects to support white space before/after an object for styling purposes.
+
+ Unless otherwise specified, quotes may only be either a single quote (') or a double quote (") and only a backslash '\' may be used as a delimiter.
+ For example, fss-0000 (Basic)\:
+ \"Object 1" has content starting at the '1', with an Object named '"Object'.
+ \\"Object 1" has content starting at the '1', with an Object named '\"Object'.
+ "Object 1\" is an unterminated object due to the escaped closing quote.
+ "Object 1\\" has content starting at the 'has', with an Object named "Object 1\".
+
+ Unless otherwise specified, character/data delimits are performed only when required and not unilaterally.
+ In the case of Objects, delimits would only apply when that Object could be potentially identified as an Object.
+ For example, fss-0001 (Extended) needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data MUST NOT be delimited.
+ Such as these following three lines\:
+ "Object 1" "This is a single quoted Content." \"Additional unquoted Content."
+ Object_2 This is multiple" Contents and the trailing quote does not need to be delimited.
+ "Object \"3" 'Wouldn't require delimits if no white space or end of string after.'
+
+ Unlike this specification, a more traditional delimit process would have the above three lines instead represented as\:
+ "Object 1" "This is a single quoted Content." \"Additional unquoted Content.\"
+ Object_2 This is multiple\" Contents and the trailing quote does not need to be delimited.
+ "Object \\"3" 'Wouldn\'t require delimits if no white space or end of string after.'
+
+ These examples would resolve as follows\:
+ 1) Object\:
+ - Object 1
+ Content\:
+ - This is a single quoted Content.
+ - "Additional
+ - unquoted
+ - Content"
+ 2) Object\:
+ - Object_2
+ Content\:
+ - This
+ - is
+ - multiple"
+ - Contents
+ - and
+ - the
+ - trailing
+ - quote
+ - does
+ - not
+ - need
+ - to
+ - be
+ - delimited.
+ 3) Object\:
+ - Object \"3
+ Content\:
+ - Wouldn't require delimits if no white space or end of string after.
+
+ All specifications are expected to support or be of the character encoding UTF-8; however, there is no imposed restriction on supporting or using any other encoding.
+ Those encodings must only support the appropriate characters required by a given standard for differentiating Objects, Contents, and delimits.
+ All specifications do assume ASCII and Unicode support.
+
+ Unless otherwise specified, comments are designated by the pound symbol '#' but only if only white space is to the left of the pound or the pound '#' is at the start of the line.
+ There is no support for inline comments.
+ Unless otherwise specified, the start comment may be delimited by '\' in the same manner as Objects and Contents are.
+ This delimit only applies to the start of a comment (the pound '#' character) as there is no terminating character for a comment (other than a newline '\n').
+ A line containing a valid comment is in its entirety ignored.
+ This means that if there is white space before the designation symbol (the pound '#' character) then that white space is ignored.
+
+ Unless otherwise specified, all designation characters MUST represent ASCII codes.
+ With designation characters being any character code used to designate how to identify an Object or Content (such as a colon ':' at the end of a basic list).
+ This keeps the processing and logic simple and safe, for both UTF-8 and ASCII.
+ Whitespace used for designation characters MUST include support for UTF-8 white space characters, unless otherwise specified.
+ However, these white space used as a designation character, must be printing white space that are not combining white space characters.
+ Any visible/graph character that is considered a white space (such as U+1680 ' ') is not to be considered a white space, unless otherwise specified.
+
+ When used for syntax matching purposes, zero-width Unicode characters are only to be considered zero-width unless otherwise specified.
+ For example, the "invisible plus" character (U+2064) is not to be considered as a plus.
+
+ The UTF-8 BOM is not allowed as a Byte Order Mark; instead, it must always be treated as the character represented by its code (unless explicitly allowed to represent a BOM by a standard).
+
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011) (unless otherwise specified).
+
+ In any specification where security is intended, if there exists a Unicode character that matches an ASCII character, that Unicode character MAY be prohibited by that standard in favor of the ASCII equivalent.
+ One such example is in the case of a URL, where the name could be used to trick a person (http://this-site.com/ vs http://this‐site.com/).
+ This (potential insecure behavior) is allowed in general because a well written program would be able to detect and communicate the possible misunderstanding and thereby avoid mistakes without imposing any character restrictions.
+
+ This is a common behavior for security reasons, each character used for any special purposes must be visibly distinct, with white space and non-printing characters as the exception to the words "visibly distinct".
+
+ The follow specifications are defined in this project.
+ Each of these specifications has a common name associated with the specification number.
+ - fss-0000: Basic
+ - fss-0001: Extended
+ - fss-0002: Basic List
+ - fss-0003: Extended List
+ - fss-0004: Very Basic List
+ - fss-0005: Somewhat Basic List
+ - fss-0006: Somewhat Extended List
+ - fss-0007: Very Extended List
+ - fss-0008: Embedded List
+ - fss-0009: Reverse Mapping
+ - fss-000a: Extended Reverse Mapping
+ - fss-000b: Simple List
+ - fss-000c: Iki Text
+ - fss-000d: Basic Rule
+ - fss-000e: Payload
+ - fss-000f: Simple Packet
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+IKI Specification: 0000 - Unrestricted:
+ This specification provides no restrictions on the vocabulary.
+
+ See the iki.txt specification file for details on the syntax rules.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+IKI Specification: 0001 - Basic:
+ This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and URLs.
+
+ Vocabulary\:
+ - address: any mailing address, except for e-mail and URI.
+ - code: all text contained within represent code and should be presented as such.
+ - email: any valid e-mail address.
+ - phone: any valid phone number.
+ - quote: all text within represents some quote.
+ - uri: any valid URI (allows URL and URN).
+ - url: any valid URL.
+ - urn: any valid URN.
+ - var: all text contained within represents some sort of variable.
+
+ See the iki.txt specification file for details on the syntax rules.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+IKI Specification: 0002 - Simple Script:
+ This specification provides a small set of vocabulary names meant to be used for substitution in simple scripts.
+
+ This specification only loosely defines the vocabulary context.
+ This vocabulary may be further extended but must at least support the taxonomy defined here.
+ Flexibility on interpretation is intended so that the context can be more fine-tuned and customized.
+
+ The taxonomy for the "context", "define", and "parameter" are intentionally not defined here and left open.
+ One utilizing this should document the taxonomy for each of these as desired.
+
+ Vocabulary\:
+ - context: intended to be used for printing (or tagging) context codes before and after text, such as with color context.
+ - define: intended to be used for global properties, much like a C/C++ #define.
+ - parameter: intended to be used for parameters or variables.
+
+ See the iki.txt specification file for details on the syntax rules.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0
+#
+
+IKI Specifications:
+ IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
+
+ The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
+ The vocabulary represents a list of allowed object names that may also have specific contextual meaning defined by a given IKI specification.
+ The variable name is considered the "Object".
+ The variable variable is considered the "Content".
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+
+ A potential IKI variable name starts on word (or "_", "-", "+") characters.
+ Whitespace and non-word (and non "_", "-", "+") character punctuations may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+
+ Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash "\" before the colon ":" that is before the opening quote (single or double).
+
+ Unicode punctuation connector characters are supported just like "_", except when they connect outside the current line (such as U+FE33 "︳").
+ Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid '_', '-', or '+' Unicode equivalents.
+
+ Key\:
+ \o = any printable word character, including "_", "-", "+" (and Unicode equivalents).
+ \c = any character, including whitespace and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
+ \q = either a single quote (') or a double quote (").
+ \x = any character.
+ \W = any non-word character, discluding "_", "-", "+" (and Unicode equivalents).
+ \e = an optional escape sequence of any number of backslashes, such as "\".
+ * = 0 or more occurrences.
+ ~ = one or more occurrences, or 0 if at start of file.
+
+ Before Structure\:
+ \x*\W~\*:*
+
+ Structure\:
+ \o\e:\q\c\q
+
+ After Structure\:
+
+ Example\:
+ # fss-000c iki-0000
+
+ This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+
+ Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+
+ There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+
+ Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+ The following emphasis\:"is escaped to not be treated as IKI data".
+
+ Objects would be\:
+ 1) emphasis
+ 2) url
+ 3) code
+
+ Contents would be\:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) const char *string = "My \"quoted\" C string.";
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Featureless Linux Library</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="The Featureless Linux Library project.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="fll.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item active"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block">
+ <div class="nav-text notice">Featureless Linux Library</div>
+ <a href="fll.html#about" class="nav-text link">About</a>
+ </div>
+ <div class="nav-item block">
+ <a href="fll.html#release" class="nav-text link">Current Release</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="fll.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="fll.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Featureless Linux Library</h1>
+ </header>
+
+ <article id="about" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">About</h2>
+ </header>
+
+ <div class="article-content">
+ <p>
+ The Featureless Linux Library is a collection of standards, specifications, and software for providing a suite of Linux focused functionality. One of the main goal is to play on the word "feature" and provide a featureless library. That is, a library that is not always changing and being rewritten breaking API and ABI to introduce features. How this is achieved and to what extend this is achieved and followed is to be described in the documentation and specifications.
+ </p>
+ <p>
+ The project can be found in three locations.
+ </p>
+ <ol>
+ <li><a href="https://sourceforge.net/projects/fll/" class="link external">Sourceforge</a></li>
+ <li><a href="https://github.com/thekevinday/fll/" class="link external">Github</a></li>
+ <li><a href="https://gitlab.com/kevuxer/fll/" class="link external">Gitlab</a></li>
+ </ol>
+ <p>
+ The source code contains the plain text documentation describing the projects and specifications describing the standards. This website will be updated to present this material.
+ </p>
+ <p>
+ In addition to being a library, the <abbr title="Featureless Linux Library">FLL</abbr> also provides several programs. Some programs, such as Featureless Make (a build system similar to GNU Make), are forever part of the <abbr title="Featureless Linux Library">FLL</abbr>. Other programs, such as the Controller program, will eventually bud off into their own project space.
+ </p>
+ </div>
+ </article>
+
+ <article id="release" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Current Release</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The current stable release series of <abbr title="Featureless Linux Library">FLL</abbr> is <strong>0.6</strong>. At this time, the official stable release for the <strong>0.6</strong> series is not yet released but a release candidate is already out. The release candidate is version <strong>0.5.9</strong>.
+ </p>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - News</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux Systems, providing Featureless Linux Library and related programs as well as the Kevux Linux distributions.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Distribution, Open-Source, News">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="index.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js news">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item active"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block">
+ <div class="nav-text notice">2022 / 05 / 06</div>
+ <a href="news/2022_05_06-basic_program_documentation.html" class="nav-text link">Basic Program Documentation</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">2022 / 05 / 01</div>
+ <a href="news/2022_05_01-website_redesign.html" class="nav-text link">Website Redesign</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Other Content</div>
+ <a href="licenses.html" class="nav-text link">Licenses</a>
+ </div>
+ <div class="nav-item block">
+ <a href="sources.html" class="nav-text link">Source Code</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="index.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="index.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">News</h1>
+ </header>
+
+ <article class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">2022 / 05 / 06 - Basic Program Documentation</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Update the website, bringing in my initial pass at the documentation for each of the programs provided by the <abbr title="Featureless Linux Library">FLL</abbr> project. Most of this documentation is copied from the help of each program and any improvements or deviations are incidental.
+ </p>
+ <p>
+ While working on the documentation, I discovered and fixed random problems. In particular, the <strong>iki_read</strong> program in the release candidate has a major regression where it doesn't do anything. This is the result of a very minor mistake in passing the wrong size variable to the file read functions. Essentialy, the <strong>iki_read</strong> program is only processing files of length 0 and as a result never produces any output. This is now fixed upstream and I am even happier with the practice of using release candidates.
+ </p>
+ <p>
+ <a href="news/2022_05_06-basic_program_documentation.html" class="content link">Continue reading…</a>
+ </p>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">2022 / 05 / 01 - Website Redesign</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ With a stable release of the Featureless Linux Library around the corner and the resuming of development of the Turtle Kevux Distribution, it is now time to refresh the website.
+ </p>
+ <p>
+ The available functionality in the HTML standard has changed a decent amount since this website was last updated. This new design focuses on a very primitive look and feel utilizing a lot of the built in visual tools available to the <abbr title="Hyper Text Markup Language version 5">HTML5</abbr> and <abbr title="Cascading Style Sheets version 3">CSS3</abbr> languages. The website is being built in stages, to allow for prioritizing getting information out over getting information looking great. This website even actively uses <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr>.
+ </p>
+ <p>
+ <a href="news/2022_05_01-website_redesign.html" class="content link">Continue reading…</a>
+ </p>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Licenses</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Licenses associated with Kevux Systems and related software and standards.">
+ <meta name="keywords" content="Kevin Day, Kevux, Open-Source, License, LGPLv2.1+, OSLv1.0+, CCbySA4.0">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="licenses.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js licenses">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="index.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Licenses</div>
+ <a href="licenses.html#license-website" class="nav-text link">Website Licenses</a>
+ </div>
+ <div class="nav-item block">
+ <a href="licenses.html#license-distributions" class="nav-text link">Kevux Distribution Licenses</a>
+ </div>
+ <div class="nav-item block">
+ <a href="licenses.html#license-fll" class="nav-text link">Featureless Linux Library Licenses</a>
+ </div>
+ <div class="nav-item block">
+ <a href="licenses.html#license-projects" class="nav-text link">Individual Projects Licenses</a>
+ </div>
+ <div class="nav-item block">
+ <a href="licenses.html#license-documentation" class="nav-text link">Documentation Licenses</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="licenses.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="licenses.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Licenses</h1>
+ </header>
+
+ <article id="license-website" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Website Licenses</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ There are multiple licenses for content on this website and content served from this website (such as a Distribution). The website documentation covers only the parts of the website that are not already under an existing license. The specifications are under a different license. All files, be they binaries or text files, provided by the distributions have their own licenses. The Featureless Linux Library and all files provided along with it have their own licenses. Documentation associated with each of these projects are under a different license as defined by their associated project.
+ </p>
+ <p>
+ Everything else on this website, such as this news blog, that is content is under <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr> license.
+ </p>
+ <p>
+ Everything else on this website that is source code, including <abbr title="Hyper Text Markup Language">HTML</abbr> markup, <abbr title="Cascading Style Sheets">CSS</abbr>, and Javascript, is under <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license.
+ </p>
+ <p>
+ © 2022 Kevin Day
+ </p>
+ </div>
+ </article>
+
+ <article id="license-distributions" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Kevux Distribution Licenses</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ There is currently only a single Kevux distribution, called Turtle Kevux. This distribution is a collection of numerous software projects and their related files. Each of these is under their own respective license, which is provided with their respective source code. The Kevux-specific code, such as the Turtle Kevux Installation Scripts is under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license. The <abbr title="Turtle Kevux Installation Scripts">TKIS</abbr> also heavily utilizes the Featureless Make system as well as numerous Featureless Settings Specification processing programs that are also under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license.
+ </p>
+ <p>
+ Each project is copyrighted by their respective authors. The Kevux Distribution specific files are copyrighted by Kevin Day.
+ </p>
+ </div>
+ </article>
+
+ <article id="license-fll" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Featureless Linux Library Licenses</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The <abbr title="Featureless Linux Library">FLL</abbr> source code is © 2011-2022 Kevin Day under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license.
+ </p>
+ <p>
+ The <abbr title="Featureless Linux Library">FLL</abbr> standards and specifications are © 2011-2022 Kevin Day under the <abbr title="Open Standard License version 1 or greater">OSLv1+</abbr>. The <abbr title="Open Standard License version 1 or greater">OSLv1+</abbr> is under active development and may be of a lesser version, such as 0.5. For simplicity, these are being referred to as 1.0 as the goal and intent of the license grant is for version 1 or greater. Therefore any version less than 1 is implicitly assumed to be of version 1 or greater.
+ <p>
+ Documentation contained within the <abbr title="Featureless Linux Library">FLL</abbr> that is not under a specification license is © 2011-2022 Kevin Day under the <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr>.
+ </p>
+ </div>
+ </article>
+
+ <article id="license-projects" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Individual Projects Licenses</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ All of the projects listed on the Projects pages are either part of the <abbr title="Featureless Linux Library">FLL</abbr> or are based on the <abbr title="Featureless Linux Library">FLL</abbr>. As a result they are © 2011-2022 Kevin Day under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr>.
+ </p>
+ </div>
+ </article>
+
+ <article id="license-documentation" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Documentation Licenses</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Documentation that is used to described specifications (included Application Programming Interfaces) are © 2011-2022 Kevin Day under the <abbr title="Open Standard License version 1 or greater">OSLv1+</abbr>.
+ </p>
+ <p>
+ ALl remaining documentation that does not fall under the <abbr title="Open Standard License version 1 or greater">OSLv1+</abbr> are © 2011-2022 Kevin Day under the <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr>.
+ </p>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>News - 2022/05/01 Website Re-design</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="News post on 2022/05/01.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, News">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/2022_05_01-website_redesign.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js news">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item active"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="index.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">2022 / 05 / 01</div>
+ <div class="nav-text unlink">Website Redesign</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="news/2022_05_01-website_redesign.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="news/2022_05_01-website_redesign.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">2022 / 05 / 01 - Website Redesign</h1>
+ </header>
+
+ <div class="main-content">
+ <p>
+ With a stable release of the Featureless Linux Library around the corner and the resuming of development of the Turtle Kevux Distribution, it is now time to refresh the website.
+ </p>
+ <p>
+ The available functionality in the HTML standard has changed a decent amount since this website was last updated. This new design focuses on a very primitive look and feel utilizing a lot of the built in visual tools available to the <abbr title="Hyper Text Markup Language version 5">HTML5</abbr> and <abbr title="Cascading Style Sheets version 3">CSS3</abbr> languages. The website is being built in stages, to allow for prioritizing getting information out over getting information looking great. This website even actively uses <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr>.
+ </p>
+ <p>
+ The website is now built to be more "<i>responsive</i>" (as the buzz-word goes). I do not like the responsive design because it forces assumptions that may not be desirable for the end-user (which is generally what I plagues me). I took an approach to utilize the device with <abbr title="Cascading Style Sheets version 3">CSS3</abbr> properties to ensure that the website looks like a proper website even when your window size is small but when you are on a small device it uses the more mobile look and feel. This is implemented entirely without Javascript, including the mobile menu. The downside of this is that the page gets reloaded on these kinds of interactions. I will eventually write an optional Javascript file that will handle these kinds of interactions without page reloads. I have tested this mobile view on my <a href="https://pine64.org/pinephone/" class="content link external">Pinephone</a> but I do not have other devices to test and cannot guarantee the presentation is displayed as intended. This website is also intended to be automatically print-friendly.
+ </p>
+ <p>
+ The Turtle Kevux Distribution is having several of the less used files removed so that I can reclaim some of the much need disk space. There latest Turtle Kevux Distribution is undergoing heavy modification and revitalization. The Featureless Linux Library will be incorporated into the Turtle Kevux Distribution. Some of the concepts from Dragonfly Kevux Distribution are being merged into the Turtle Kevux Distribution. The Dragonfly Kevux Distribution is being put on hold until all other priorities are met.
+ </p>
+ <p>
+ The Featureless Linux Library itself has had major improvements and will ultimately be used to help generate this static website. For now, I am just manually creating the pages. This will quickly become hard to manage but hopefully I will write the processing scripts to generate this website before that happens.
+ </p>
+ <p>
+ I also plan on sending out more communications, but I have yet to figure out when and how often I shall do this.
+ <p>
+ <p>
+ <strong>Kevin Day</strong>
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>News - 2022/05/06 Basic Program Documentation</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="News post on 2022/05/01.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, News">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/2022_05_01-website_redesign.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js news">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item active"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="index.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">2022 / 05 / 06</div>
+ <div class="nav-text unlink">Basic Program Documentation</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="news/2022_05_01-website_redesign.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="news/2022_05_01-website_redesign.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">2022 / 05 / 06 - Basic Program Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p>
+ Update the website, bringing in my initial pass at the documentation for each of the programs provided by the <abbr title="Featureless Linux Library">FLL</abbr> project. Most of this documentation is copied from the help of each program and any improvements or deviations are incidental.
+ </p>
+ <p>
+ While working on the documentation, I discovered and fixed random problems. In particular, the <strong>iki_read</strong> program in the release candidate has a major regression where it doesn't do anything. This is the result of a very minor mistake in passing the wrong size variable to the file read functions. Essentialy, the <strong>iki_read</strong> program is only processing files of length 0 and as a result never produces any output. This is now fixed upstream and I am even happier with the practice of using release candidates.
+ </p>
+ <p>
+ The website has been updated with an appropriate <code>.htaccess</code> file to better handle paths. I even decided to further emphasize the retro-internet feel by redirecting directory paths to html files, if they exist. I imagine this may annoy some of the people out there. Minor problems here and there have been addressed as I discovered them.
+ </p>
+ <p>
+ This website is also designed to be fully downloadable and readable locally (and even offline). Whenever I have notable changes on the website, I will update the downloadable tarball of this website.
+ </p>
+ <p>
+ A <em>Source Code</em> link has been added on the index page (the main news page) as a way for people who just want a fast way to get to the latest code.
+ </p>
+ <p>
+ <strong>Kevin Day</strong>
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Page Not Found (404)</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="index.html" class="nav-text link back">News</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="distributions.html" class="nav-text link back">Distributions</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="fll.html" class="nav-text link back">FLL</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="projects.html" class="nav-text link back">Projects</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Documentation</a>
+ </div>
+ <div class="nav-item block back">
+ <a href="licenses.html" class="nav-text link">Licenses</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Page Not Found (404)</h1>
+ </header>
+
+ <div class="main-content">
+ <p>
+ No content found at the requested path. Please go back or <a href="index.html" class="nav-text link">consider visiting the News page</a>.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Projects</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux managed projects such as the Controller program, the Byte Dump program, and the Featureless Make program.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="projects.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js projects">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block">
+ <div class="nav-text notice">Projects</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#byte_dump" class="nav-text link">Byte Dump</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#control" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#controller" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fake" class="nav-text link">Featureless Make</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#firewall" class="nav-text link">Firewall</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_basic_list_read" class="nav-text link">FSS Basic List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_basic_list_write" class="nav-text link">FSS Basic List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_basic_read" class="nav-text link">FSS Basic Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_basic_write" class="nav-text link">FSS Basic Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_embedded_list_read" class="nav-text link">FSS Embedded List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_embedded_list_write" class="nav-text link">FSS Embedded List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_extended_list_read" class="nav-text link">FSS Extended List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_extended_list_write" class="nav-text link">FSS Extended List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_extended_read" class="nav-text link">FSS Extended Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_extended_write" class="nav-text link">FSS Extended Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_identify" class="nav-text link">FSS Identify</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_payload_read" class="nav-text link">FSS Payload Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_payload_write" class="nav-text link">FSS Payload Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#fss_status_code" class="nav-text link">FSS Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#iki_read" class="nav-text link">IKI Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#iki_write" class="nav-text link">IKI Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#status_code" class="nav-text link">Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects.html#utf8" class="nav-text link">UTF8</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Projects</h1>
+ </header>
+
+ <article id="programs" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Programs</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The Featureless Linux Library is a major project and has several sub-parts, including several programs. The <abbr title="Featureless Linux Library">FLL</abbr> is broken up into multiple sub-projects that are libraries themselves or programs. This page describes those programs from <abbr title="Featureless Linux Library">FLL</abbr> as well as any other programs and projects associated with Kevux Systems or Kevin Day.
+ </p>
+ <p>
+ Of particular note is that most, if not all, of the Kevux Systems programs are written to provide an <abbr title="Application Programming Interface">API</abbr> (and its respective <abbr title="Application Binary Interface">ABI</abbr>). This allows the programs themselves to be used as a library.
+ </p>
+ <p>
+ The programs themselves follow <abbr title="Featureless Linux Library">FLL</abbr> design principles on making the interface human-friendly. Software should be a tool for humans, and not a tool for machines.
+ </p>
+ </div>
+ </article>
+
+ <article id="byte_dump" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Byte Dump</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This tool is a nifty way to get a <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> friendly <code>hexdump</code> alternative.<br>
+ The output is intended to honor some of the feel of hexdump but do so in an <abbr title="Featureless Linux Library">FLL</abbr> way.
+ </p>
+ </div>
+ </article>
+
+ <article id="control" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Control</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This project is not complete and development is planned for the <abbr title="Featureless Linux Library">FLL</abbr> 0.7 development series.<br>
+ <br>
+ The goal of this is to communicate with the "Controller" program, such as starting or stopping services.
+ </p>
+ </div>
+ </article>
+
+ <article id="controller" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Controller</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This project is not complete and development is planned for the <abbr title="Featureless Linux Library">FLL</abbr> 0.7 development series.
+ </p>
+ <p>
+ The goal of this is to provide task and service management similar to sysvinit, initng, and systemd.<br>
+ This is designed to be used for booting the system as if it were <code>/sbin/init</code>.
+ </p>
+ <p>
+ This should be controllable from user-space via the "Control" program.
+ </p>
+ </div>
+ </article>
+
+ <article id="fake" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Featureless Make</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The Featureless Make is the original program and goal of the <abbr title="Featureless Linux Library">FLL</abbr>.<br>
+ The GNU Make, Autoconf, and all those build processes are unnecessarily complex.
+ </p>
+ <p>
+ A major problem with these build systems is that they try to manage installation as well as compilation.<br>
+ A build system should be just that a build system.<br>
+ Trying to handle how the built package gets installed should be done by system administrators or distributors.<br>
+ By avoiding this, the code becomes simpler, more "featureless", easier to maintain, and easier to hack.
+ </p>
+ <p>
+ The Featureless Make, also called Fake, provides two primary ways to compile C, C++, and possibly other compiled languages:
+ </p>
+ <ul>
+ <li>Using the "build" command.</li>
+ <li>Using the "make" command.</li>
+ </ul>
+ <p>
+ The build command is as simple as it can be and follows a Featureless Settings Specification (FSS).<br>
+ The make command (and its respective fakefile) provides a more advanced interface for handling complex build processes or compiling languages other than C/C++.
+ </p>
+ <p>
+ The build command (and subsequently the make command) currently provide some hard coded program settings, such as the indexer "ar" runs ar rcs.<br>
+ Eventually such things will be expanded into an FSS setting and made customizable.
+ </p>
+ <p>
+ Both the build and make commands support a small subset of make and autoconf functionality to make transitioning easier or make it easy to work alongside make and autoconf.
+ </p>
+ <p>
+ To help with understanding and using the Featureless Make program, fully functional example build settings and fakefiles are created for the program bzip (specifically version 1.0.8):
+ </p>
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover</a></li>
+ </ul>
+ <p>
+ There is also a fakefile pre-configured to run GNU Make within itself to compile the Linux kernel fom source:
+ </p>
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make</a></li>
+ </ul>
+ <p>
+ Bzip2 may be found here:
+ </p>
+ <ul>
+ <li><a href="https://sourceware.org/bzip2/" class="link external">https://sourceware.org/bzip2/</a></li>
+ </ul>
+ </div>
+ </article>
+
+ <article id="firewall" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Firewall</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is one of the earliest proof of concept and functional example of the FLL library.<br>
+ Now it is currently outdated, but it still remains operational as an iptables wrapper.<br>
+ This program is actively used on the Turtle Kevux distribution.<br>
+ This requires iptables to be installed and executable.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_identify" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Identify</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program reading a file and determining what Featureless Settings Specification.<br>
+ This only detects files that provide an <abbr title="Featureless Settings Specification">FSS</abbr> header.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_basic_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Basic Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0000 (Basic).<br>
+ This performs read operations related to the FSS-0000 (Basic) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_basic_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Basic Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0000 (Basic).<br>
+ This performs write operations related to the FSS-0002 (Basic) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_basic_list_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Basic List Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0002 (Basic List).<br>
+ This performs read operations related to the FSS-0002 (Basic List) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_basic_list_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Basic List Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0002 (Basic List).<br>
+ This performs write operations related to the FSS-0002 (Basic List) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_embedded_list_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Embedded List Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0008 (Embedded List).<br>
+ This performs read operations related to the FSS-0008 (Embedded List) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_embedded_list_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Embedded List Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0008 (Embedded List).<br>
+ This performs write operations related to the FSS-0008 (Embedded List) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_extended_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Extended Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0001 (Extended).<br>
+ This performs read operations related to the FSS-0001 (Extended) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_extended_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Extended Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0001 (Extended).<br>
+ This performs write operations related to the FSS-0001 (Extended) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_extended_list_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Extended List Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0003 (Extended List).<br>
+ This performs read operations related to the FSS-0003 (Extended List) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_extended_list_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Extended List Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-0003 (Extended List).<br>
+ This performs write operations related to the FSS-0003 (Extended List) standard.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_payload_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Payload Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-000E (Payload).<br>
+ This performs read operations related to the FSS-000E (Payload) standard.<br>
+ <p>
+ <p>
+ The FSS-000E (Payload) is focused on network communication and is intended to be used inside a network packet.<br>
+ This program can be used to manually read a network packet or data from the network.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_payload_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Payload Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This is a program implementing the Featureless Settings Specification FSS-000E (Payload).<br>
+ This performs write operations related to the FSS-000E (Payload) standard.<br>
+ <p>
+ <p>
+ The FSS-000E (Payload) is focused on network communication and is intended to be used inside a network packet.<br>
+ This program can be used to manually write the payload portion of a network packet.
+ </p>
+ </div>
+ </article>
+
+ <article id="fss_status_code" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">FSS Status Code</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This program is designed to interpret status codes returned by any <abbr title="Featureless Settings Specification">FSS</abbr> program.<br>
+ The status codes are converted to or from a code and a label.
+ </p>
+ <p>
+ This program handles more status codes that the <code>status_code</code> program.
+ </p>
+ </div>
+ </article>
+
+ <article id="status_code" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Status Code</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ This program is designed to interpret status codes returned by any <abbr title="Featureless Linux Libray">FLL</abbr> based program.<br>
+ The status codes are converted to or from a code and a label.
+ </p>
+ <p>
+ This program specifically handles only the core status codes provided by the <abbr title="Featureless Linux Library">FLL</abbr>.<br>
+ Other programs that utilize custom status codes should provide their own implementation of this program, such as is done with the <strong>FSS Status Code</strong> program.
+ </p>
+ </div>
+ </article>
+
+ <article id="iki_read" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">IKI Read</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Similar to the FSS Read programs, this is a program implementing the Featureless Settings Specification IKI-0000 (Unrestricted).<br>
+ This performs read operations related to the Unrestricted IKI standard (IKI-0000).<br>
+ <p>
+ <p>
+ The IKI settings specification plays on how it is simpler than a Wiki syntax.<br>
+ The IKI could be used for anything from e-mails and text-messages to word-processors.<br>
+ The goal with IKI is to be very easily readably by a human, such as: <code>iki:"example"</code> or <code>url:"https://sourceforge.net/projects/fll/"</code>.
+ </p>
+ <p>
+ This program is a swiss army knife for reading files that contain IKI syntax.
+ </p>
+ </div>
+ </article>
+
+ <article id="iki_write" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">IKI Write</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ Similar to the FSS Write programs, this is a program implementing the Featureless Settings Specification IKI-0000 (Unrestricted).<br>
+ This performs write operations related to the Unrestricted IKI standard (IKI-0000).<br>
+ <p>
+ <p>
+ The IKI settings specification plays on how it is simpler than a Wiki syntax.<br>
+ The IKI could be used for anything from e-mails and text-messages to word-processors.<br>
+ The goal with IKI is to be very easily readably by a human, such as: <code>iki:"example"</code> or <code>url:"https://sourceforge.net/projects/fll/"</code>.
+ </p>
+ <p>
+ This program is a swiss army knife for writing files that contain IKI syntax.
+ </p>
+ </div>
+ </article>
+
+ <article id="utf8" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">UTF8</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ A tool to convert one or more <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> characters from the codepoint representation to a binary representation and back.
+ </p>
+ <p>
+ This program can convert complete files into a text file of <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> bytecode values.<br>
+ This program can convert complete files into a text file of space separated codepoint values.
+ </p>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Source Code</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Licenses associated with Kevux Systems and related software and standards.">
+ <meta name="keywords" content="Kevin Day, Kevux, Open-Source, License, LGPLv2.1+, OSLv1.0+, CCbySA4.0">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="licenses.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="next" href="distributions.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js licenses">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="index.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="index.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Source Code</div>
+ <a href="sources.html#fll" class="nav-text link">Featureless Linux Library</a>
+ </div>
+ <div class="nav-item block">
+ <a href="sources.html#turtle_kevux" class="nav-text link">Turtle Kevux Distribution</a>
+ </div>
+ <div class="nav-item block">
+ <a href="sources.html#tkis" class="nav-text link">Turtle Kevux Installation Scripts</a>
+ </div>
+ <div class="nav-item block">
+ <a href="sources.html#website" class="nav-text link">Kevux Website</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="sources.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="sources.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Source Code</h1>
+ </header>
+
+ <article id="fll" class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Featureless Linux Library</h2>
+ </header>
+ <div class="article-content">
+ <p>
+ The source code for the <strong>Featureless Linux Library</strong> is released in several locations.
+ The <a href="fll.html" class="link">Featureless Linux Library</a> page contains the full range of links regarding the source code.
+ </p>
+ <p>
+ The following represent the primary source code locations as well as backup locations at external websites:
+ </p>
+ <ul>
+ <li>Primary Source: <a href="https://sourceforge.net/projects/fll/" class="link external">https://sourceforge.net/projects/fll/</a></li>
+ <li>Backup Source 1: <a href="https://github.com/thekevinday/fll/" class="link external">https://github.com/thekevinday/fll/</a></li>
+ <li>Backup Source 2: <a href="https://gitlab.com/kevuxer/fll/" class="link external">https://gitlab.com/kevuxer/fll/</a></li>
+ </ul>
+ </div>
+ </article>
+
+ <article id="turtle_kevux" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Turtle Kevux Distribution</h2>
+ </header>
+
+ <div class="article-content">
+ <p>
+ The source code for the <strong>Turtle Kevux Distribution</strong> is provided in the DVD-ROM for each individual release. There currently is no recent release available. The legacy releases may be found on the <a href="distributions.html" class="link">distributions</a> page.
+ </p>
+ <p>
+ The following represents the most recently available release:
+ </p>
+ <ul>
+ <li><a href="release/turtle/0.9/5/everything/x86/turtle-0.9.5-everything_x86-live.iso" class="link download">Turtle Turtle Kevux 0.9.5 (32-bit) (CD-ROM) (2012/02/28)</a> (<a href="release/turtle/0.9/5/everything/x86/turtle-0.9.5-everything_x86-live.iso.sha256" class="link download">checksum</a>)</li>
+ <li><a href="release/turtle/0.9/5/everything/x86_64/turtle-0.9.5-everything_x86_64-dvd.iso" class="link download">Turtle Kevux 0.9.5 (64-bit) (DVD-ROM) (2012/02/28)</a> (<a href="release/turtle/0.9/5/everything/x86_64/turtle-0.9.5-everything_x86_64-dvd.iso.sha256" class="link download">checksum</a>)</li>
+ </ul>
+ </div>
+ </article>
+
+ <article id="tkis" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Turtle Kevux Installation Scripts</h2>
+ </header>
+
+ <div class="article-content">
+ <p>
+ The source code for the <strong>Turtle Kevux Installation Scripts</strong> is provided both as separate downloads and in the DVD-ROM for each individual Turtle Kevux release. There currently is no recent release available. The legacy releases may be found on the <a href="distributions.html" class="link">distributions</a> page.
+ </p>
+ <p>
+ The following represents the most recently available release:
+ </p>
+ <ul>
+ <li><a href="release/turtle/0.9/5/common/tkis-1.0.1.txz" class="link download">TKIS 1.0.1 (2012/02/28)</a> (<a href="release/turtle/0.9/5/common/tkis-1.0.1.txz.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86.txz" class="link download">Tools 1.0.1 - 32-bit (2012/02/28)</a> (<a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86.txz.sha256" class="link download">SHA256</a>)</li>
+ <li><a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86_64.txz" class="link download">Tools 1.0.1 - 64-bit (2012/02/28)</a> (<a href="release/turtle/0.9/5/common/tkis-1.0.1-tools-x86_64.txz.sha256" class="link download">SHA256</a>)</li>
+ </ul>
+ </div>
+ </article>
+
+ <article id="website" class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Kevux Website</h2>
+ </header>
+
+ <div class="article-content">
+ <p>
+ The <strong>Kevux Website</strong> source code is also available for download. This website is designed to function even when downloaded, extracted, and viewed locally (without a web server hosting it). The downloaded version of this website will not contain the non-website related files nor will it contain the download website file itself. Such links will be broken on the downloaded website source. Check out the <a href="licenses.html" class="link">licenses</a> page for the license of the source code of this website.
+ </p>
+ <p>
+ The following is the link:
+ </p>
+ <ul>
+ <li><a href="documents/website/2022/kevux.org-2022_05_06.tar.gz" class="link download">kevux.org (2022/05/06)</a> (<a href="documents/website/2022/kevux.org-2022_05_06.tar.sha256" class="link download">SHA256</a>) (<a href="documents/website/2022/kevux.org-2022_05_06.tar.sign" class="link download">PGP</a>)</li>
+ </ul>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>