-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
563 lines (425 loc) · 22.9 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
NOVELL NETWARE SMP CONSOLE SCREENSAVER FOR X11, GNOME, AND KDE DESKTOPS
Table of Contents
- Description
- Quick Start Guide
- Configuring XScreensaver and Obtaining Older Versions
- Netware SMP Screensaver Options
- Command Line Options
- Building the Screensaver from Source
- Building the Screensaver as an RPM Package (Redhat/CentOS/SuSe)
- Building the Screensaver as a Debian Package (Debian/Ubuntu)
- Copyright
- Authors
- Issues / Problems / Help
Description
The _netwaresmp_ screensaver written by Jeffrey Merkey
<jeffmerkey@gmail.com> and Cosimo Streppone <cosimo@cpan.org>, based on
PopSquares, Deco hacks, loadsnake, and Novell’s Netware SMP. The
original Netware SMP screensaver was written by Jeffrey Merkey at Novell
in 1994. This version is a rewrite of the original which functions
exactly the same way as it did in Netware SMP. Each worm represents a
running system cpu processor. As system utilization increases for each
cpu, the corresponding worm for that processor gets longer and moves
more quicky across the screen. As overall system load increases, all the
worms slightly increase in speed. This screensaver is very useful for
monitoring cpu loading in a system since you can visually see processor
utilization and loading by simply observing the worms.
Quick Start Guide
You can download precompiled Red Hat Package Manager (RPM) and Debian
(DEB) packages which contain the entire XScreensaver program with
netwaresmp integrated from the release page for this project, or you can
build the program from the git sources. The current netwaresmp
xscreensaver module is compiled against the XScreensaver v6.08 base and
you may have to deinstall any older version of the Xscreensaver program
you are running and then reinstall with the RPM or DEB packages listed
in the releases section.
Most Linux distributions use an outdated xscreensaver program which
lacks current bug fixes and new capabilities.
It’s a good idea to upgrade to the xscreensaver 6.08 release since there
have been many bug fixes and enhanced features in the most current
maintained version of XScreensaver.
If you want to build the program from scratch with the git sources
rather than use the pre-compiled RPMS and DEB packages, then please skip
to the section Building the Screensaver from Source for instructions on
how to do this.
Packages are provided in binary and source versions, and can be
downloaded and installed directly or rebuilt for a different target
architecture such as ARM64. Package types are Red Hat Package Manager
(RPM) packages and Debian (DEB) packages for binary installation and
Source RPM packages (SRPMS) and Debbuild SDEB packages for source code
installation.
RPM and DEB packages for each release include a binary architecture
specific package and a source package which can be downloaded and
built/rebuilt and which contains the source code.
For example, the release v6.08-6 contains the following packages in the
release section:
RPM BASED PACKAGES (REDHAT, CENTOS, SUSE)
- xscreensaver-netwaresmp-6.08-6.src.rpm
- xscreensaver-netwaresmp-6.08-6.x86_64.rpm
DEBIAN BASED PACKAGES (DEBIAN, UBUNTU)
- xscreensaver-netwaresmp-1.6.08-6.sdeb
- xscreensaver_netwaresmp_1.6.08-6_amd64.deb
REMOVING A PREVIOUS INSTALLATION OF OUTDATED VERSIONS OF XSCREENSAVER
Most of the XScreensaver packages shipped or distributed by RedHat,
Debian, and many Distros of Linux are quite old and outdated and do not
contain current bug fixes or support and should be upgraded in any
event.
To remove a previously installed or outdated version of XScreensaver
with the RPM package manager:
rpm -e xscreensaver
To remove a previously installed or outdated version of XScreensaver and
all package dependencies with the dnf or yum RPM package manager for RPM
based Linux Distributions:
dnf remove xscreensaver
To remove a previously installed or outdated version of XScreensaver
with the DEB package manager for Debian based Linux distributions:
dpkg -r xscreensaver
To remove a previously installed or outdated version of XScreensaver and
all package dependencies with the apt DEB package manager for Debian
based Linux Distributions:
apt autoremove xscreensaver
or
apt-get autoremove xscreensaver
INSTALLING BINARY PACKAGES
To install the binary package with the RPM package manager:
rpm -i xscreensaver-netwaresmp-6.08-6.x86_64.rpm
To deinstall the RPM binary package:
rpm -e xscreensaver
To install the binary package with the Debian dpkg package manager for
amd64:
dpkg -i xscreensaver_netwaresmp_1.6.08-6_amd64.deb
To deinstall the Debian dpkg binary package:
dpkg -r xscreensaver
INSTALLING SOURCE PACKAGES
To install the source package with the RPM package manager:
rpm -i xscreensaver-netwaresmp-6.08-6.src.rpm
_(Note: rpm installs the source code files in /root/rpmbuild/ as top
directory for RedHat and CentOS platforms. SuSe platforms install the
source code files in /usr/src/packages/)_
To install the source package with the Debbuild package tool:
debbuild -i xscreensaver-netwaresmp-1.6.08-6.sdeb
_(Note: Debbuild installs the source code files in /root/debbuild/ as
top directory)_
For building or rebuilding RPMS or DEB Packages after you have installed
the associated source packages on your platform, refer to the following:
- Building the Screensaver as an RPM Package (Redhat/CentOS/SuSe)
- Building the Screensaver as a Debian Package (Debian/Ubuntu)
CONFIGURING XSCREENSAVER AND OBTAINING OLDER VERSIONS
For detailed instructions on how to install and configure the
XScreensaver base program, please refer to the online Documentation and
Manuals for XScreensaver. You should also review the Frequently Asked
Questions for information about common integration and installation
questions and detailed information about the XScreensaver program
itself.
You can report any bugs you encounter regarding the XScreensaver program
and utilities by opening a bug report at the main XScreensaver support
website at www.jwz.org.
You can download other versions of XScreensaver, including the most
recent versions at the XScreensaver Download Page.
There are several online archives of XScreensaver releases which contain
both current and older released versions of the software. Open Source
Labs publishes a mirror of XScreensaver versions.
_NETWARESMP_ OPTIONS
netwaresmp [-cpus number of cpus] [-speedup divisor] [-wormsize pixels]
[-display host:display.screen] [-foreground color] [-background color]
[-window] [-root] [-mono] [-shape <0-6>] [-install] [-visual visual]
COMMAND LINE OPTIONS
_netwaresmp_ accepts the following options:
- –CPUS
Number of cpus to start. The default is the actual number of cpus
detected from /proc/cpuinfo. If you specify more cpus than are
installed in your system, only the worms that are mapped to an
actual processor will grow longer and faster when cpu load increases
for that processor. If you specify less cpus than are installed in
your system, the program will default the display to the actual
detected cpus.
- –SPEEDUP
speedup divisor to increase worm speed. functions as powers of 2
i.e. speedup=4 runs at 4 times the speed, etc. Default value is 1.
- –WORMSIZE
size of the worm head in pixels in a range between 10 and 80.
Default value is 30. Can be any value but works best if you use
multiples of 2 to map to graphics screen dimensions (which are
typically numbers which are multiples of 2 or 10).
- –WINDOW
Draw on a newly-created window. This is the default.
- –ROOT
Draw on the root window.
- –MONO
If on a color display, pretend we’re on a monochrome display.
- –SHAPE
Specify worm drawing mode:
0 for squares, 1 for circles, 2 for snipes (from the NetWare game
“Snipes”, the first distributed network game run over a local area
network), 3 for triangles, 4 for classic (retro text-based
screensaver from NetWare SMP), 5 for trees, 6 for 3D balls,
- –INSTALL
Install a private colormap for the window.
- –VISUAL _VISUAL_
Specify which visual to use. Legal values are the name of a visual
class, or the id number (decimal or hex) of a specific visual.
ENVIRONMENT
- DISPLAY
to get the default host and display number.
- XENVIRONMENT
to get the name of a resource file that overrides the global
resources stored in the RESOURCE_MANAGER property.
BUILDING THE SCREENSAVER FROM SOURCE
It should be noted that since the xscreensaver-netwaresmp code base is
provided as a Source RPM and DEB packages, it’s very simple and straight
forward to rebuild the RPM or DEB packages without needing to resort to
a manual rebuild. However, users on ARM64 systems and Debian users may
need to build the program manually. You are encouraged to use the RPM
method to rebuild the code but in the event you need to do so manually,
the following section describes the steps for accomplishing this.
In order to build the xscreensaver with netwaresmp fully integrated, you
should first clone the xscreensaver-6.08-netwaresmp repository. This
repository is a generic xscreensaver-6.08 code base with the X11
netwaresmp screensaver included as a patch series. This approach is
implemented with a patch series in this manner for two reasons. First,
it is necessary to re-run the autoreconf automake program after
downloading the sources and applying the patch series in order to
integrate the netwaresmp screensaver into the xscreensaver-settings
configuration tool. The build for xscreensaver-settings setup utility
uses a static file to list integrated screensavers and this file is only
updated by running autoreconf against the code base. Second, this
approach allows the netwaresmp patch series to be applied to previous
versions of xscreensaver package prior to the 6.08 release.
Most Linux distributions use an outdated xscreensaver program which
lacks current bug fixes and new capabilities. It should be noted that
there are subtle programming differences between many of these earlier
versions. I have not fully tested the Netware SMP screensaver on all of
these earlier distributions, however, in most cases the existing
netwaresmp patch series should work on most of them. If you have
problems trying to apply the patch series to an xscreensaver release,
please feel free to post an Issue to Issues and I will look into it and
get back to you and provide an updated patch for that xscreensaver
distribution. It’s actually a lot better if you just choose to upgrade
to the xscreensaver 6.08 release since there have been many bug fixes
and enhanced features in the newer code base. It’s also a lot less
complicated since the newer release is a single RPM for the entire
xscreensaver distribution, instead of xscreensaver being provided as
dozens of packages for each xscreensaver distro such as RedHat provides,
which is difficult for end users to a manage and navigate.
Installing the xscreensaver-6.08 Code Base
You can clone the screensaver-6.08-netwaresmp code base from github as
follows using the ‘git clone’ command, or you can download the
netware-xscreensaver-6.08-6.tar.gz archive directly from github, then
untar and extract the files.
Cloning from Github
git clone https://github.com/jeffmerkey/xscreensaver-6.08-netwaresmp
After running the ‘git clone’ command, you should see something similiar
to:
Cloning into xscreensaver-6.08-netwaresmp ...
remote: Enumerating objects: 2199, done.
remote: Counting objects: 100% (2199/2199), done.
remote: Compressing objects: 100% (1366/1366), done.
remote: Total 2199 (delta 796), reused 2192 (delta 789), pack-reused 0
Receiving objects: 100% (2199/2199), 18.37 MiB | 30.94 MiB/s, done.
Resolving deltas: 100% (796/796), done.
Downloading
You can also download the xscreensaver-6.08-netwaresmp-6.08-6.tar.gz
archive directly from github from the releases section for the
xscreensaver-6.08-netwaresmp code base:
- xscreensaver-6.08-netwaresmp-6.08-6.tar.gz
After you download the code base, untar the package into a directory:
tar -xf xscreensaver-6.08-netwaresmp-6.08-6.tar.gz
The tar program should extract the files into the following directory.
Use ls -ld to list the directory and archive to verify it was untarred
correctly:
[root@localhost Downloads]# ls -ld xscreensaver-\*
drwxrwxr-x. 9 root root 4096 Feb 18 22:25 xscreensaver-6.08-netwaresmp-6.08-6
-rw-rw-r--. 1 jmerkey jmerkey 20024886 Feb 20 20:56 xscreensaver-6.08-netwaresmp-6.08-6.tar.gz
Applying the patch and running autoreconf
After you have either git cloned the code base or downloaded and
installed the code base manually, you must apply the patch series then
run autoreconf. Change directory into the code base directory and apply
the patch.
If you cloned the repository:
[root@localhost]# cd xscreensaver-6.08-netwaresmp
[root@localhost xscreensaver-6.08-netwaresmp]#
If you have downloaded and untarred the repository with the tar -xf
command manually:
[root@localhost]# cd xscreensaver-6.08-netwaresmp-6.08-6
[root@localhost xscreensaver-6.08-netwaresmp-6.08-6]#
The patch is named netwaresmp-xscreensaver-6.08.patch. You should see a
file listing similiar to the following in the base source code
directory:
[root@localhost xscreensaver-6.08-netwaresmp]# ll
total 1396
-rw-r--r--. 1 root root 137286 Feb 20 20:33 aclocal.m4
drwxr-xr-x. 4 root root 175 Feb 20 20:33 android
-rw-r--r--. 1 root root 22566 Feb 20 20:33 ax_pthread.m4
-rwxr-xr-x. 1 root root 49035 Feb 20 20:33 config.guess
-rw-r--r--. 1 root root 11315 Feb 20 20:33 config.h.in
-rwxr-xr-x. 1 root root 18574 Feb 20 20:33 config.rpath
-rwxr-xr-x. 1 root root 34212 Feb 20 20:33 config.sub
-rwxr-xr-x. 1 root root 689143 Feb 20 20:33 configure
-rw-r--r--. 1 root root 159261 Feb 20 20:33 configure.ac
-rw-r--r--. 1 root root 1554 Feb 20 20:33 COPYING
drwxr-xr-x. 2 root root 4096 Feb 20 20:33 driver
drwxr-xr-x. 6 root root 12288 Feb 20 20:33 hacks
-rw-r--r--. 1 root root 8527 Feb 20 20:33 INSTALL
-rwxr-xr-x. 1 root root 15358 Feb 20 20:33 install-sh
-rw-r--r--. 1 root root 7269 Feb 20 20:33 intltool-extract.in
-rw-r--r--. 1 root root 13658 Feb 20 20:33 intltool-merge.in
-rwxr-xr-x. 1 root root 15635 Feb 20 20:33 intltool-update.in
drwxr-xr-x. 2 root root 4096 Feb 20 20:33 jwxyz
-rw-r--r--. 1 root root 15344 Feb 20 20:33 Makefile.in
-rw-r--r--. 1 root root 42160 Feb 20 20:33 netwaresmp-xscreensaver-6.08.patch
drwxr-xr-x. 9 root root 4096 Feb 20 20:33 OSX
drwxr-xr-x. 2 root root 4096 Feb 20 20:33 po
-rw-r--r--. 1 root root 82109 Feb 20 20:33 README
-rw-r--r--. 1 root root 11156 Feb 20 20:33 README.hacking
-rw-r--r--. 1 root root 8694 Feb 20 20:33 README.md
drwxr-xr-x. 3 root root 4096 Feb 20 20:33 utils
-rw-r--r--. 1 root root 4147 Feb 20 20:33 xscreensaver-6.8.spec
-rw-r--r--. 1 root root 3426 Feb 20 20:33 xscreensaver.spec
[root@localhost xscreensaver-6.08-netwaresmp]#
Apply the patch with the following command:
[root@localhost xscreensaver-6.08-netwaresmp]# patch -p1 < netwaresmp-xscreensaver-6.08.patch
The patching process should produde the following output:
[root@localhost xscreensaver-6.08-netwaresmp]# patch -p1 < netwaresmp-xscreensaver-6.08.patch
patching file driver/XScreenSaver.ad.in
patching file hacks/config/netwaresmp.xml
patching file hacks/Makefile.in
patching file hacks/netwaresmp.c
patching file hacks/netwaresmp.man
patching file xscreensaver.spec
[root@localhost xscreensaver-6.08-netwaresmp]#
If you see a printout indicating the patch was successfully applied,
then you can now run autoreconf program and start the build. You can
apply this patch in a similiar manner to most of the xscreensaver code
bases prior to 6.08 and it will work on most of the distros. If you run
into trouble, post an Issues report on github at Issues / Problems /
Help .
Now run autoreconf to re-create the Makefiles and Configuration scripts:
[root@localhost xscreensaver-6.08-netwaresmp]# autoreconf -f -v
You should see the followning output if autoreconf completed
successfully:
autoreconf: Entering directory `.
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: configure.ac: not using Automake
autoreconf: Leaving directory `.
[root@localhost xscreensaver-6.08-netwaresmp]#
Now type ‘configure’ and then type ‘make’ to build the
xscreensaver-netwaresmp-6.08 package. If the make process succeeds, then
perform ‘make install’ to install the xscreensaver package to your
system:
[root@localhost xscreensaver-6.08-netwaresmp]# ./configure;
Check to make certain the ./configure script completes with no errors.
If there were no errors the ./configure program returns a final listing
of created Makefiles and updated includes at the very end of the
configure script similiar to the following:
current directory: /work/xscreensaver-6.08-netwaresmp
command line was: ./configure
...
... <snip>
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating utils/Makefile
config.status: creating jwxyz/Makefile
config.status: creating hacks/Makefile
config.status: creating hacks/fonts/Makefile
config.status: creating hacks/images/Makefile
config.status: creating hacks/glx/Makefile
config.status: creating po/Makefile.in
config.status: creating driver/Makefile
config.status: creating driver/xscreensaver.pam
config.status: creating driver/XScreenSaver.ad
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing po/stamp-it commands
#################################################################
XScreenSaver will be installed in these directories:
User programs: /usr/local/bin/ (DIFFERS)
Screen savers: /usr/local/libexec/xscreensaver/ (DIFFERS)
Configuration: /usr/local/share/xscreensaver/config/ (DIFFERS)
Extra Fonts: /usr/local/share/fonts/xscreensaver/ (DIFFERS)
App Defaults: /usr/share/X11/app-defaults/
Now type make from the base directory to make and compile the
xscreensaver-netwaresmp package.
[root@localhost xscreensaver-6.08-netwaresmp]# make
If make succeeds without any errors, you can install the newly built
packages on your system with ‘make install’.
[root@localhost xscreensaver-6.08-netwaresmp]# make install
BUILDING AS AN RPM PACKAGE
In order to build the screensaver as an RPM, the program must be
compressed into a tar.gz file and the tar.gz file named to match the
versioning information contained in the associated .spec file.
Spec files are special files which contain instructions on how to build
a particular package from a source code archive. On Red Hat and CentOS
systems, RPMS are built in the /root/rpmbuild/ top directory. SuSe
systems build RPMS in the /usr/src/packages/ as top directory. These
“top directories” will contain BUILD, BUILDROOT, SPECS, RPMS, SRPMS, and
SOURCES subdirectories.
The SPECS directory contains the *.spec files used to build RPMS and
SRPMS packages. The SOURCES subdirectory will contain the soure code
archive file referred to in the *.spec file used to build the RPM
package.
See the Quick Start Guide on instructions for installing the source rpm
which installs both the .spec file and source archive file (tar.gz) into
the rpm build top directory (i.e. /root/rpmbuild/). You should have
previously installed the src.rpm file before attempting to build the
rpm. You can also manually install the .spec file into the <top
directory>/SPECS/ directory and the source code tarball in the <top
directory/SOURCES/ directory, then attempt to build the rpm package.
To build the XScreensaver using the rpm tool, change directories (cd)
into the /root/rpmbuild/SPECS/ directory (/usr/src/packages/SPECS/ for
SuSe) and enter the following command:
rpmbuild -ba xscreensaver-6.8.spec <enter>
BUILDING AS A DEBIAN PACKAGE
In order to build the screensaver as a Debian package, the program must
be compressed into a tar.gz file and the tar.gz file named to match the
versioning information contained in the associated .spec file. Spec
files are special files which contain instructions on how to build a
particular package from a source code archive.
Debian Packages can be built using a utility called “debbuild” and use a
top directory structure which is similar to that used by the RPM tool
but using /root/debbuild/ as the “top directory”. These “top
directories” will contain BUILD, BUILDROOT, SPECS, DEBS, SDEBS, and
SOURCES subdirectories and follows a similar layout that is used for RPM
files.
The SPECS directory contains the *.spec files used to build DEB and SDEB
packages. The SOURCES subdirectory will contain the soure code archive
file referred to in the *.spec file used to build the DEB and SDEB
packages.
See the Quick Start Guide on instructions for installing the source SDEB
which installs both the .spec file and source archive file (tar.gz) into
the debbuild top directory (i.e. /root/debbuild/). You should have
previously installed the SDEB file before attempting to build the DEB
package. You can also manually install the .spec file into the <top
directory>/SPECS/ directory and the source code tarball in the <top
directory/SOURCES/ directory, then attempt to build the DEB package.
To build the XScreensaver using debbuild, change directories (cd) into
the /root/debbuild/SPECS/ directory and enter the following command:
debbuild -vv -ba xscreensaver-6.08.spec <enter>
COPYRIGHT
Copyright © 1994-2024 by Jamie Zawinski, Jeffrey Merkey, Cosimo
Streppone, and others. Permission to use, copy, modify, distribute, and
sell this software and its documentation for any purpose is hereby
granted without fee, provided that the above copyright notice appear in
all copies and that both that copyright notice and this permission
notice appear in supporting documentation. No representations are made
about the suitability of this software for any purpose. It is provided
“as is” without express or implied warranty.
AUTHORS
Jeffrey Merkey <jeffmerkey@gmail.com>, Cosimo Streppone
<cosimo@cpan.org> and Jamie Zawinski <jwz@jwz.org> based on PopSquares,
Deco hacks, loadsnake, and Novell’s Netware SMP. The original Netware
SMP screensaver was written by Jeffrey Merkey at Novell in 1994.
ISSUES / PROBLEMS / HELP
If you have any issues, please log them at
https://github.com/jeffmerkey/netware-xscreensaver/issues
If you have any suggestions for improvements then pull requests are
welcomed, or raise an issue.