Files
2020-04-11 22:05:53 -07:00

161 lines
4.8 KiB
Groff

.Dd January 27, 2018
.Dt SB 1
.Os
.
.Sh NAME
.Nm sb
.Nd generate serial numbers, activation keys and registration keys
.
.Sh SYNOPSIS
.Nm
.Ar product_id
.Ar major_ver
.Ar minor_ver
.Op Ar license_data
.Nm
.Fl r
.Ar serial_number
.Ar host_id
.Nm
.Fl r
.Ar registration_lock
.
.Sh DESCRIPTION
.Nm
generates serial numbers, activation keys and registration keys for SCO
products.
SCO products from 1992 and earlier may not be compatible with the licensing
information generated by
.Nm .
.Pp
During installation of an SCO product, you will be prompted for at least a
serial number and an activation key.
This information can be generated by calling
.Nm
.Em without
.Fl r .
In order to generate a serial number and activation key
.Dq ( SNAK ) ,
you need the correct
product ID, major version and minor version.
The product ID is an SCO-internal integer that denotes the licensed product.
The major and minor versions denote the version of the licensed product.
.Sy This may not be the same as the version the product is marketed as .
For example, UnixWare 7.1.4 has major version 71 and minor version 4.
The distinction between 7.1.4, 7.1.4+ and 7.1.4 Definitive is made through the
product ID, rather than the version fields.
.Pp
On an SCO UNIX installation, you can use
.Cm /etc/brand -d
to list all known product IDs for that installation.
Usually, there is also a pre-installation and post-installation script bundled
with the SCO product that shows the specific expectations for product ID and
version values;
search those scripts for
.Dq Cm brand -Q .
.Pp
Optionally, you can supply
.Em license data .
License data is a semicolon-delimited list of fields that specify various
aspects about the license in question.
Each field consists of a character and then a value, e.g.
.Dq c4;u100
denotes a license for four CPUs and 100 users.
License data may also only consist of a single field.
The following characters are known:
.Bl -tag -width Ds
.It Cm c
Number of CPUs.
.It Cm d
Expiry time of the license in days.
This is used for evaluation licenses.
.It Cm k
If no argument or a non-zero argument is given, registration is required, but
more than one user can access the system.
If the argument is zero, no registration is required, but only one user can
access the system and possibly the network stack is gimped.
.It Cm u
Number of users.
.It Cm m
Checksum over the other fields.
.Sy You must not supply this value .
.El
.Pp
The characters g, q and x have also been observed, but their effect is
unknown.
.Sy This program does not check license data is not checked for validity .
.Sy You must order the license data alphabetically .
.Pp
After installation, you may also be asked for a
.Em registration key
for continued operation.
.Nm
will generate a registration key if the
.Fl r
flag is passed.
You need to supply either the serial number of the product and the host ID, or
a valid registration lock.
The host ID differs for every installation, even for the same product and
serial number.
If you have forgotten the serial number of the product, it can be found with
.Cm /etc/brand -L .
The host ID can be found with
.Pa /etc/brand Fl I .
If you supply a registration lock, please be aware that it contains semicolons
(;).
You will have to quote it to prevent the shell from parsing the semicolons as
command delimiters.
.
.Sh EXIT STATUS
.Ex -std
.
.Sh EXAMPLES
Generate a new serial number and activation key for UnixWare 7.1.4 Definitive
2018 (product ID 203, version major 71, version minor 4) with no license data:
.Bd -literal -offset indent
$ sb 203 71 4
.Ed
.Pp
Register a product for your host:
.Bd -literal -offset indent
$ /etc/brand -I
orxrrwjwxz
$ sb -r SCO539702 orxrrwjwxz
.Ed
.
.Sh DIAGNOSTICS
.Bl -diag
.It "%s not a number"
The supplied product ID, major version or minor version is not actually a
number.
.It "%s out of range (max %u)"
The supplied product ID, major version or minor version is out of range.
If you are
.Em absolutely certain
that you have the correct parameters, please contact the author to fix the
limit.
The limits are theoretical maximum limits, not ones observed in use by SCO.
.It "malloc"
Memory allocation has failed.
If you had enough memory to display this manual page, you can probably just
try again.
You may need to check
.Pa /etc/malloc.conf
if the issue persists.
.It "internal: limit > UINT16_MAX"
You should never see this.
If you do, your platform is almost certainly clinically insane.
Please stop trying to run
.Nm
on a literal Game Boy.
.El
.
.Sh CAVEATS
While this code appears to work, it may be possible that the product
nonetheless phones home over IP.
No efforts have been made to try and observe such activity.
It may prove advantageous to first strictly firewall an SCO UNIX installation.
If the outgoing connections look okay for approximately 24 hours, it may be
safe to let loose on the Internet.
More cautious users may wish to wait up to 31 days.