################################################################## # # # FDNPKG16 - a 16-bit network-enabled package manager for DOS # # Copyright (C)2012-2021 Mateusz Viste # # Copyright (C)2025-2026 Victoria Crenshaw & Katheryn Northwood # # # # http://4ch.su/fdnpkg16.htm # # https://github.com/sparky4/fdnpkg16 # # https://gitlab.com/sparky4/fdnpkg16 # # https://git.gay/sparky4/fdnpkg16 # # # ################################################################## *** What is FDNPKG16? *** FDNPKG16 is network-enabled package manager for FreeDOS, based on the FDNPKG project by Mateusz Viste. FDNPKG16 fixes numerous bugs and adds support for x86-16bit (8086/8088, 186, 286 class) systems. FDNPKG16 is released under the MIT license. It allows to install/remove/update software on a compatible DOS system using remote or local repositories. Remote (online) repositories can be either http or gopher URLs. FDNPKG16 is primarily for the FreeDOS (tm) Project, but it can be used on other DOS systems as well. FDNPKG16 comes with a lightweight tool called FDINST16 that is suitable for low-memory systems and does not provide network support, only supporting local packages. FDNPKG16 stands for "FreeDOS Network Package manager 16-bit". *** FDNPKG16 vs FDNPKG *** As mentioned earlier, FDNPKG16 is based on the code of FDNPKG. However, keep in mind that this program introduces a lot of changes to make the program more simple and compatible with older computers, namely 16-bit x86 systems. Several features have been added, and less commonly-used features such as LZMA compression have been removed. FDNPKG originally required an 80386 class processor so it only worked on 32-bit x86 computers. Also mentioned earlier, FDNPKG16 fixes numerous bugs that were in FDNPKG which has since been left abandoned in 2021. FDNPKG16 supports more than one package installation at the same time. As in you can install more than a single package in one command. ex. fdnpkg16 in pkg1 pkg2 pkg3 *** Configuration *** The FDNPKG16 configuration file is a text file that contains various directives, like repositories declarations, cache time, etc. I won't describe the configuration file here, because it's pretty well commented itself. FDNPKG16 looks for its configuration file into %DOSDIR%\BIN\FDNPKG16.CFG by default, but you can make FDNPKG16 use a configuration file at any other location by setting the FDNPKG16.CFG environnement variable. Example: SET FDNPKG16.CFG=C:\MYDIR\FDNPKG16.CFG *** Requirements *** To use FDNPKG16, your system will need to fullfill following conditions: - IBM PC Compatible, 8086/8088 or better - 480 KiB of free memory (640K or higher recommended) - at least as much free disk space in your %TEMP% directory as the size of the biggest package you wish to be able to install, and, if you'd like to use online repositories: - a loaded packet driver (NE2000, Crynwr, or compatible) - a working WatTCP environnement (that is, a proper wattcp.cfg file) *** Usage *** Syntax: FDNPKG16 action [parameters] Where action is one of the following: search [str] - search net repositories for package containing 'str' vsearch [str] - same as 'search', but prints also source repositories install pkg - install the package 'pkg' (or local zip file) install-nosrc pkg - install the package 'pkg' (or local zip file) w/o sources install-wsrc pkg - install the package 'pkg' (or local zip file) with sources reinstall pkg - reinstall the package 'pkg' (or local zip file) remove pkg - remove the package 'pkg' listlocal [str] - list all local (installed) packages containing 'str' listfiles pkg - list files owned by the package 'pkg' checkupdates - check for available updates of packages and display them update [pkg] - update 'pkg' to last version (or all packages if no arg) holdlist [str] - list held all packages or packages containing 'str' hold pkg - hold 'pkg' at current version unhold pkg - unhold 'pkg' for updates notinstalled - show avalible packages from repositories vnotinstalled - same as 'notinstalled', but prints also source repositories download pkg - just download the package. do not install downloadup - download updates. do not install them dumpcfg - print out the configuration loaded from the cfg file clearcache - clear FDNPKG16's local cache license - print out the license of this program ** Short-hand commands ** FDNPKG16 adds short-hand commands much like you'd see in NetBSD's pkgin. Syntax: FDNPKG16 action [parameters] Where action is one of the following: se [str] - search net repositories for package containing 'str' vs [str] - same as 'search', but prints also source repositories in pkg - install the package 'pkg' (or local zip file) in-nosrc pkg - install the package 'pkg' (or local zip file) w/o sources in-wsrc pkg - install the package 'pkg' (or local zip file) with sources ri pkg - reinstall the package 'pkg' (or local zip file) rm pkg - remove the package 'pkg' ll [str] - list all local (installed) packages containing 'str' lf pkg - list files owned by the package 'pkg' cu - check for available updates of packages and display them up [pkg] - update 'pkg' to last version (or all packages if no arg) hl [str] - list held all packages or packages containing 'str' ho pkg - hold 'pkg' at current version uh pkg - unhold 'pkg' for updates ni - show avalible packages from repositories vn - same as 'notinstalled', but prints also source repositories dl pkg - just download the package. do not install du - download updates. do not install them dc - print out the configuration loaded from the cfg file cc - clear FDNPKG16's local cache li - print out the license of this program ** 4 new actions here are now located in the program's help ** notinstalled - show avalible packages from repositories vnotinstalled - same as 'notinstalled', but prints also source repositories download pkg - just download the package. do not install downloadup - download updates. do not install them short hand version: ni - show avalible packages from repositories vn - same as 'notinstalled', but prints also source repositories dl pkg - just download the package. do not install. du - download updates. do not install them. *** Some details about what a "package" is *** FDNPKG16 is handling FreeDOS packages. A "package" is an archive containing software in its binary and/or source code form. FreeDOS packages are in fact standard ZIP files that contain a predefined directory tree (eg. BIN/, SOURCE/, DOC/...). FDNPKG16 performs a set of tests on the package before trying to install it, and refuses to install packages that seem to be invalid. FDNPKG16 supports local or remote packages with ZIP compression. *** Bulding from source *** If you wish to build FDNPKG16 from sources, you will have to use Open Watcom 2.0 and have it in your PATH. It is recommended to use this version over 1.9 due to a floating point bug in 1.9 versions that breaks non-8087 compatibility, however Watt32 needs to be compiled using 1.9. You should have a full install of Open Watcom including wmake and upx. The whole build procedure is automated via a makefile file, therefore building it requires only to type 'wmake', and then the required magic should happen. The source for Watt32 and other needed dependencies is already present in the FDNPKG16 source. Microsoft Windows and Mac OS X/macOS is not supported, only Linux distributions, BSDs, and DOSes can compile FDNPKG16. It may be possible to support Windows and Mac OS X/macOS compiling in the future. *** License (MIT) *** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.