/
INSTALL
241 lines (169 loc) · 11.1 KB
/
INSTALL
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
= INSTALL for Fluxbox
== antiX-specific "debfile build and install" instructions:
=== EXPLANATORY NOTES
The separately packaged "desktop-defaults-fluxbox-antix" repository package
typically provides a "distro default" copy of the fluxbox init, menu,
keys, et al. It installs these to /etc/skel/.fluxbox
and auto-copies these to the ~/.fluxbox/ directory of each user account
-=-
A further (separate) package provides the antiX "desktop-menu" executable used to
populate/refresh the Applications submenu content presented within the fluxbox menu.
So that this custom "1.3.8" fluxbox build can, once compiled, be served from
repository and easily installed from a ".deb" package, this source tree includes
a "debian" subdirectory containing dpkg rules and debian-specific install scripts.
FOR antiX (AND OTHER DEBIAN -DERIVED DISTROS), BUILD+INSTALLATION BEGS USE OF
`dpkg-buildpackage` RATHER THAN `configure...make...make install`
-=-
In this source tree, which is intended for (tested with) antiX 16,
various scripted operations of the debian/* installer/helpers have been outcommented.
The actions of some of the debian-provided installation scripts/directives
are COUNTERPRODUCTIVE e.g. the debian-provided "update-menus"
( debian/update-init.pl and debian/system.fluxbox-menu )
would produce a system-wide default fluxbox init (and menu) which are
devoid of antiX-specific content.
=== CREATING THE DEBFILE
1) If not already present, install the debian package "build-essential"
2) The spiffy command "apt-get build-dep fluxbox" can (if your sources.list contains a "src" entry)
retrieve and install all the library packages needed to build fluxbox
but
you might find it quicker to just refer to the "debian/control" file in this source tree, and install
the packages listed therein (build-dep just retrieves/parses a control file retrieved from debian src repo)
Build-Depends: autoconf, automake, autotools-dev, bzip2, debhelper (>= 9),
dh-autoreconf, libfribidi-dev, libgtk2.0-dev, libimlib2-dev, libtool,
libx11-dev, libxext-dev, libxft-dev, libxinerama-dev, libxpm-dev, libxrandr-dev, libxt-dev
3) cd into the top-level directory of the source tree
dpkg-buildpackage -j13 -b -d -us -uc -tc
NOTE: (observed when attempting to build under antiX 17.2)
building this package now fails unless sudo is used
sudo dpkg-buildpackage -j13 -b -d -us -uc -tc
Apparently the implicit "fakeroot" helper mechanism employed by dpkg-buildpackage is not working,
or some squiggle within my debian/rules content (authored back in 2016) is now "deprecated".
Yes, manually invoking "make" is absent from the process.
The "dpkg-buildpackage" utility automates the chroot, configure, make, and interim steps.
Refer to the dpkg-buildpackage manpage to check which commandline options you might prefer (instead of those show here, above)
Explanation of the dpkg-buildpackage commandline options, above:
instruct how compiler many concurrent threads to use
rule of thumb: number of CPU cores, x2 (if CPU is hyperthreading-capable), plus 1
binaries only (skip creating deb-src)
skip checking dependencies USE THIS DIRECTIVE ONLY AFTER FIRST SUCCESSFUL BUILD
skip signing (src+pkg)
"tellito cleanup" deb/rules dir afterward
NOTE:
the dpkg-buildpackage cleanup step over-aggressively removes
./build-aux/install-sh
SO (COMPILE FROM WITHIN A THROWAWAY WORKING DIRECTORY OR) ENSURE YOU HAVE A BACKUP COPY OF THE SOURCE FILES
When dpkg-buildpackage has successfully completed (expect 2-3 minutes),
the debfile it created will be located in the parent dir of the source directory.
=== BACKUP YOUR PRE-EXISTING FLUXBOX CONFIGS, AND INSTALL THE DEBFILE
As explained above, some of the antiX fluxbox configfiles are pre-installed by other debfiles.
Installing this "fluxbox v1.3.8-ski" debfile to an existing antiX system necessitates some
preparatory steps:
1) FOR TESTING (and in case you wish to rollback) prior to installing the newly-created fluxbgox package:
sudo cp -R /usr/share/fluxbox /usr/share/fluxbox_bak
2) cp ~/.fluxbox ~/.fluxbox_bak
3) By design, your existing "~/.fluxbox/startup" file will be preserved.
FOR TESTING, we want to ensure fluxbox uses "fresh, new version configfiles, so
rm ~/.fluxbox/init && rm ~/.fluxbox/keys && rm ~/.fluxbox/menu
rm ~/.fluxbox/overlay && rm ~/.fluxbox/windowmenu
================
THIS PORTION, DRAFTED EARLIER, IS CURRENTLY NOT NECESSARY
mv /etc/X11/fluxbox/system.fluxbox-menu /etc/X11/fluxbox/system.fluxbox-menu_PRIOR
mv /etc/X11/fluxbox/fluxbox.menu-user /etc/X11/fluxbox/fluxbox.menu-user_PRIOR
mv /etc/X11/fluxbox/init /etc/X11/fluxbox/init_PRIOR
NOTE: DURING TESTING, FLUXBOX DEFAULT INIT IS PRECONFIGURED TO LOAD
~/.fluxbox/fluxbox-menu RATHER THAN ~/.fluxbox/menu
YOU ARE FREE TO RENAME THE MENU FILE (AND EDIT INIT TO REFERENCE THE NEW NAME)
================
4) Install the package by issuing the following command:
sudo dpkg -i /path/to/_name_of_the_new_fluxbox_debfile.deb
5) If a desktop session is currently running, logout/exit the session.
Start a new fluxbox session and inspect the new menu entries (and newly-installed styles)
Recommended followup: view the notes/tips within the freshly installed ~/.fluxbox/keys file
NOTE: (mentioning this in order to preclude bug reports)
INSTALLING THIS DEBFILE DOES NOT UPDATE THE "SYSTEM-WIDE DEFAULT" /etc/fluxbox CONFIG FILES
These system-wide defaults, applied when a new user acccount is created,
are provided by a separate .deb package ("desktop-defaults-fluxbox").
If/when a future antiX iso release preinstalls this new fluxbox version, the iso will also contain
an upgraded version of the separately-authored "desktop-defaults-fluxbox" package.
SO, UNDERSTAND THAT AFTER INSTALLING THE NEW "fluxbox" PACKAGE ONTO AN EXISTING SYSTEM,
A NEWLY-CREATED USER ACCOUNT WILL STILL RECEIVE "OLD VERSION" CONFIGFILES.
The "other user(s)" scenario is beyond the current scope of testing.
If you decide to "create a new user account and test", you can expect:
the new user does receive a "Menu" toolbar button, yet some "new" items are (still) absent
from the RootMenu menu, "new" items are absent from windowmenu.
== TL;DR Instructions (GENERIC) (antiX users, DISREGARD THE FOLLOWING):
$ ./configure
$ make
and then as root
$ make install
== Compilation and Installation
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory in the Fluxbox source tree.
Finally, it creates a shell script `config.status' that you can run
in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile Fluxbox, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to fluxbox-developers list (see www.fluxbox.org)
so they can be considered for the next release. If at some point
`config.cache' contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute `configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Type `make install' to install the programs and any data files and documentation.
4. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'.
== Compilers and Options
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the commandline like this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
=== Cross-Compiler for Microsoft Windows:
You'll want mingw-cross-env installed, with libX11 and mingw-catgets built.
A configure line that works is:
$ ./configure \
--prefix=/ \
--host=i686-pc-mingw32 \
--disable-imlib2 \
--disable-xmb \
--disable-slit \
--disable-remember \
--disable-toolbar \
--disable-fribidi \
--disable-nls \
--disable-xft \
LIBS="-lxcb -lXdmcp -lXau -lpthread -lws2_32"
Then, build and install with
$ make install DESTDIR=$(pwd)/stage
You can then copy the whole "stage" directory to a Windows machine and run it on your choice of X server.
== Optional Features
Fluxbox supports the XShape extension of X11R6. This support is enabled by default,
but may be overridden by specifying `--disable-shape' on the configure script's commandline.
Fluxbox supports Window Maker dockapps
(warning: restarts from wmaker to fluxbox don't always handle dockapps correctly) with a gadget called the Slit.
The Slit is compiled into Fluxbox by default,
but may be overridden by specifying `--disable-slit' on the configure script's commandline.
Fluxbox supports a rendering effect called "faked interlacing" which darkens every other line in rendered images.
This support works only for gradient images. It is compiled in by default,
but may be overridden by specifying `--disable-interlace' on the configure script's commandline.
Fluxbox uses a timer which allows it to periodically flush its pixmap cache.
It is enabled by default,
but may be overridden by specifying `--disable-timed-cache' on the configure script's commandline.
Also, `configure' can usually find the X include and library files automatically,
but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations.