Subversion Repositories SvarDOS

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2 → Rev 3

/website/icon.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/website/index-tech.php
0,0 → 1,35
<?php
$arts = array(
'pkgincl'=>'Packages inclusion rules',
'pkgformat'=>'Package format'
);
 
natcasesort($arts);
 
if (isset($_GET['art'])) {
$art = $_GET['art'];
if (!array_key_exists($art, $arts)) {
echo "<p>invalid article!</p>";
return;
} else {
echo "<p class=\"title\">" . htmlentities($arts[$art]) . "</p>\n";
echo "<p class=\"copyr\">This is an article from the Svarog386 tech base</p>\n";
echo '<p class="tech">';
echo htmlentities(file_get_contents('tech/' . $art . '.txt'));
echo "</p>\n";
return;
}
}
?>
 
<p class="title">Svarog386 technical notes</p>
<p class="copyr">no documentation is perfect, this one's no exception</p>
<table style="margin: 0 auto;">
 
<?php
foreach ($arts as $file=>$title) {
echo "<tr><td><a href=\"?p=tech&art={$file}\">" . htmlentities($title) . "</a></td></tr>";
}
?>
 
</table>
/website/index-why.htm
0,0 → 1,16
<p class="title">Why would I want to use Svarog386</p>
<p class="copyr">...instead of simply sticking with vanilla FreeDOS?</p>
 
<p>The FreeDOS project is a free, open-source operating system that aims to be 100% compatible with MS-DOS. And it is awesome. So why would one need to use an alternative FreeDOS distribution, like Svarog386?</p>
 
<p class="chapt">Very long release cycle</p>
 
<p>The FreeDOS project began 29 June 1994. Version 1.0 came around in 2006. Version 1.1 has been released in 2012, and the version 1.2 is likely to be release somewhere at the end of 2016. This translates roughly to a 5-years release cycle. Granted, the DOS scene is not as active as it used to be, but still, many things happen during a few years.</p>
 
<p>Svarog386 is very different in this regard: there is no versions at all! Svarog386 is always up to date - this implies two things: first, whenever a new program is included into the distribution, or anything is updated, then the ISO release is immediately updated and available through the Svarog\'s website. Second, all existing systems can be easily kept up-to-date, thanks to the distribution\'s package manager. The package manager can keep your system up to date either by using internet repositories (if your system is connected to the internet), or you can feed it with new versions of the Svarog386 CD-ROM from time to time, and it will update whatever packages needs to be updated.</p>
 
<p class="chapt">Constraints of legal nature</p>
 
<p>The FreeDOS project is mimicking a proprietary operating system, with all its APIs and peculiarities. For this reason, the project always had to be extremely careful about what can and what cannot be included within the FreeDOS distribution. As a result, only "free software" (as in freedom, think GPL, BSD, and so on) can make its way into the official distribution. While such cautious approach is sane and legally safe, it is far from practical for users. Allowing exclusively free software means that a high number of very useful programs, tools and games are left behind. For example "freeware" tools (as in "gratis but no source included") are a no-go. Even open-source programs can be rejected, if they do not clearly state that they comply with an OSI-approved license.</p>
 
<p>Svarog386, on the other hand, takes a much more accepting approach to what can be included as part of the distribution. Basically, anything that is objectively useful, of reasonable quality, free/gratis and can be legally distributed in the form of a package, can be included in Svarog386. Read more about <a href="?p=tech&amp;art=pkgincl">Svarog386 package inclusion rules</a>.</p>
/website/index.php
0,0 → 1,77
<!DOCTYPE html>
<html lang="en">
<head>
<title>Svarog386 - a FreeDOS distribution for 386+</title>
<meta name="keywords" content="svarog386,freedos">
<meta name="author" content="Mateusz Viste">
<meta name="robots" content="index, follow">
<meta charset="UTF-8">
<link rel="icon" type="image/png" href="icon.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
 
<div style="background-color: #FAFAFA; width: 70%; min-width: 800px; margin: 0 auto; height: auto !important; min-height: 100%; box-shadow: 0 0 2em 0.25em #202020;"><div style="padding: 0.5em 0.5em 2em 0.5em;">
 
<p style="margin: 0 0 -1em auto; font-size: 0.9em; text-align: right;"><a href="/">Main page</a> I <a href="?p=why">Why Svarog386</a> I <a href="?p=tech">Tech</a></p>
 
<?php
 
$p = '';
if (! empty($_GET['p'])) $p = $_GET['p'];
 
if ($p == 'why') {
readfile('index-why.htm');
} else if ($p == 'tech') {
include 'index-tech.php';
} else if ($p == 'pkgincl') { // this one should be removed soon, once the tech version is discovered by search engines -- 26 Aug 2016
echo '
<p class="title">Svarog386 package inclusion rules</p>
<p class="copyr"></p>
<p>Svarog386 is a FreeDOS&trade; distribution that comes with plenty of third-party packages. With time, packages gets updated and new packages are being added. However, Svarog386 is not a shareware distribution CD, nor it is a "warez" production of any kind! Every software that is distributed within Svarog386 must comply to a few common sense rules, as listed below.</p>
 
<p class="chapt">Objective usefulness</p>
<p>The distributed software must be useful. There is no point in distributing hundreds of "Hello World" programs for example. The software must be useable as a finished product and provide some features that are proven to be seeked by at least a subset of the user base. Games are considered useful, as long as they fulfill their goal of providing actual distraction.</p>
 
<p class="chapt">Reasonable quality</p>
<p>The packaged program must exhibit traits of reasonable quality. This means that it should have a deterministic behavior, and be free of undesirable side-effects to the user\'s computer (not crashing, freezing, resulting in unexpected loss of data, etc). It should also provide clear, non-ambiguous instructions to the user about how the program is meant to be used.</p>
 
<p class="chapt">Free (no cost)</p>
<p>The program must be free - that is, available at no financial cost. It doesn\'t have to comply to an OSI-approved license or be open-source (even if that would be prefered), but at the very least it must be free for personal, non-commercial use.</p>
 
<p class="chapt">Distribution allowed</p>
<p>The program must allow distribution without restrictions, and must not forbid being redistributed in a re-packaged form.</p>
';
} else { // else display the front page
echo '
<p class="title">Svarog386 - a FreeDOS distribution for 386+ computers</p>
<p class="copyr">brought to you by <a href="http://mateusz.viste.fr/" class="mateusz">Mateusz Viste</a></p>
<img src="svarog386.png" alt="logo" style="height: 10em; float: right; margin: 0 0 0.5em 0.5em;">
 
<p>Svarog386 is a DOS distribution based on FreeDOS. It\'s released in the form of a single bootable CD image (ISO) that contains the FreeDOS kernel, a command interpreter and a variety of third-party packages.<br>
Svarog386 is a "rolling release", meaning that it doesn\'t follow the concept of "versions". Svarog386 can be kept up-to-date either via online update repositories or by using the latest ISO image as your local package repository.</p>
 
<p>Svarog386 is <b>not</b> designed for strict 8086 compatibility. Many parts of it might require a 386-class CPU. If you look for a simple 8086 FreeDOS distribution, take a look at <a href="http://svarog86.sourceforge.net">Svarog86</a>.</p>
 
<p>Need to get in touch, or wish to contribute some packages? Feel free to drop a line to the usenet group <b>alt.os.free-dos</b>. Alternatively, you could also reach me directly via <a href="https://sourceforge.net/u/userid-1220451/">sourceforge</a>.
 
<p style="margin: 1.2em auto 0 auto; font-size: 1.2em; text-align: center; font-weight: bold;"><a href="http://svarog386.viste.fr/svarog386.iso">Download the latest Svarog386 ISO</a></p>
<p style="margin: 0 auto 1.4em auto; font-size: 1em; text-align: center; color: #333;">
';
 
// compute file size and date
$fsize = filesize("svarog386.iso") >> 20;
$ftime = date("d M Y", filemtime("svarog386.iso"));
echo "({$fsize}M, last update: {$ftime}, <a href=\"svarog386.iso.md5\" style=\"color: inherit;\">MD5</a>)";
 
echo '
</p>
 
<p>You might want to know what it is exactly that you are about to download, before fetching the 450M+ ISO file. Feel free to browse the <a href="http://svarog386.viste.fr/repos/listing.txt">listing</a> of all the packages that come with Svarog386.</p>';
 
}
?>
 
</div></div>
</body>
</html>
/website/style.css
0,0 → 1,53
@import url(https://fonts.googleapis.com/css?Oxygen+Mono|Open+Sans:400,700,400italic);
 
p.title {
font-size: 1.35em; margin: 3em auto 0 auto; text-align: center;
}
 
p.copyr {
font-size: 1.00em; margin: 0 auto 4.5em auto; color: #959595; text-align: center;
}
 
p.chapt {
font-size: 1.05em; font-weight: bold; margin: 1.75em 0 0 0; text-align: left;
}
 
p {
font-size: 1.00em; margin: 0.5em 0 0 0; text-align: justify;
}
 
p.tech {
white-space: pre-wrap;
font-size: 1.1em;
text-align: left;
font-family: 'Oxygen Mono', monospace;
}
 
html,body {
font-size: 1.0em;
margin: 0;
padding: 0;
background-color: #B0B0B0;
height: 100%;
font-family: "open sans", sans-serif;
}
 
a:link { /* unvisited link */
color: #000080; text-decoration: none;
}
 
a:visited { /* visited link */
color: #000080; text-decoration: none;
}
 
a:hover { /* mouse over link */
color: #0000FF; text-decoration: none;
}
 
a:active { /* selected link */
color: #000080; text-decoration: none;
}
 
a.mateusz {
color: inherit; text-decoration: none;
}
/website/svarog386.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/website/svarog386.svg
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Property changes:
Added: svn:mime-type
+image/svg+xml
\ No newline at end of property
/website/tech/pkgformat.txt
0,0 → 1,63
Package files provide an easy way to manage software on Svarog386.
 
 
*** Package filenames ***
 
Packages names must follow some basic rules. They shall be max. 8 letters long (but should not be too short either, since a 1 or 2-letters package name might be confusing), and must not be composed of characters other than a-b, 0-9 and '_'. This for backward compatibility with short file names (8+3) and ISO 9660 file systems (used on CDROMs). The package filename is always followed by the .ZIP extension.
 
 
*** Package files ***
 
Svarog386 uses ZIP files as its package file format. This format has been chosen because ZIP files under DOS have become the de facto way to distribute collections of files. Also, the ZIP file format is well documented, well supported, and in the public domain.
 
Here below is the RECOMENDED command line that can be used to create a package for a program named EXAMPLE using info-zip:
 
ZIP −9 -r -k EXAMPLE.ZIP subdir1 subdir2 ... subdirN
 
If you are using 7za to create your packages, then use this:
 
7za a -mm=deflate -mx=9 -tzip EXAMPLE.ZIP subdir1 subdir2 ... subdirN
 
Note, that 7za allows to use different compression algorithms. The Svarog386 package manager (FDNPKG) supports two compression methods: Deflate and LZMA. Usually LZMA provides better compression than Deflate, however it is not recommended for general use because LZMA decompression requires much more memory than Deflate. LZMA decompression needs about 24MiB of memory, which is more than the total available memory on most DOS systems. LZMA might be used for specific packages that assume high-end systems (for example: 3D games, etc). In any case, it's always safer to stick with Deflate.
 
Nevertheless, if you wish to create a package using LZMA, use this:
 
7za a -mm=lzma -tzip EXAMPLE.ZIP subdir1 subdir2 ... subdirN
 
 
*** Package directory structure ***
 
A package archive includes both binary and source code. The installer can choose to not unpack sources at install time.
 
The directory structure of a package depends on the type of packages. For "core" packages, we have this:
 
APPINFO Put the program's LSM file here
BIN Binaries, such as exe and com files
DOC\%PKGNAME% Package documentation
HELP The help files
NLS\%PKGNAME% Localizations (NLS language files) of the package
SOURCE\%PKGNAME% The complete source code
 
Non-core packages use a slightly different directory organization. For example, if we were to consider a package FOO, we might end up with the following structure:
 
APPINFO\FOO.LSM Package meta file for the FOO program
PROGS\FOO\FOO.EXE The program's executable
PROGS\FOO\FOO.TXT Some documentation
PROGS\FOO\FILE.DAT Data file used by the FOO program
LINKS\FOO.BAT A "Link" file, see the "links" section for details
SOURCE\FOO\* here would be stored all foo's source files
 
Note the 'PROGS' directory above. This is a category to which the package belong. The package installer might change this directory at install time, depending on the user's preferences. Possible categories are listed below:
 
Category | Description
DEVEL | Development tools (mostly compilers)
DRIVERS | Drivers
GAMES | Games
PROGS | User programs, tools...
 
Note: "DOC", "NLS", "BIN" and "HELP" directories are strictly reserved to "core" packages.
 
 
*** Links ***
 
Many utilities are meant to be used from the command line to work on files. Such tools are often expected to be somewhere in the %PATH%, so one do not need to switch to the directory where the said utility is stored to use it. A good example of such tools are archivers (like zip, unrar...), but there are others, too. For such tools, the package format provides a "linking" provision. A package that wishes to put one or more of its executable in the %PATH%, will have to contain a LINKS directory, and in this directory a batch file for every executable that needs to be linked to %PATH%. The batch file must contain ONLY the path and filename to the target executable (as stored in the zip package). During installation, the package manager will substitute these batch files with proper content.
/website/tech/pkgincl.txt
0,0 → 1,17
Svarog386 is a FreeDOS(tm) distribution that comes with plenty of third-party packages. With time, packages get updated and new packages are being added. However, Svarog386 is not a shareware distribution CD, nor it is a "warez" production of any kind! Every software that is distributed within Svarog386 must comply to a few common sense rules, as listed below.
 
*** Objective usefulness ***
 
The distributed software must be useful. There is no point in distributing hundreds of "Hello World" programs for example. The software must be useable as a finished product and provide some features that are proven to be seeked by at least a subset of the user base. Games are considered useful, as long as they fulfill their goal of providing actual distraction.
 
*** Reasonable quality ***
 
The packaged program must exhibit traits of reasonable quality. This means that it should have a deterministic behavior, and be free of undesirable side-effects to the user's computer (not crashing, freezing, resulting in unexpected loss of data, etc). It should also provide clear, non-ambiguous instructions to the user about how the program is meant to be used.
 
*** Free (no cost) ***
 
The program must be free - that is, available at no financial cost. It doesn't have to comply to an OSI-approved license or be open-source (even if that would be preferred), but at the very least it must be free for personal, non-commercial use.
 
*** Distribution allowed ***
 
The program must allow distribution without restrictions, and must not forbid being redistributed in a re-packaged form.