aboutsummaryrefslogtreecommitdiff
path: root/man/kiss.1
blob: d017576f3220f59093e5190953dc1c725f4fe82d (plain)
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
.TH KISS "1" "2020-04-19" "CARBS LINUX" "General Commands Manual"
.SH NAME
kiss
.SH DESCRIPTION
Tiny and straightforward package manager for Carbs Linux
written in POSIX sh. Forked from KISS Linux.
.PP
.SH SYNOPSIS
.IP kiss
[a|b|c|d|e|f|i|l|r|s|u|v] [pkg] [pkg] [pkg]
.PP
.SH OPTIONS
.TP
\fBalternatives\fR List and swap to alternatives
.TP
\fBbuild\fR        Build a package
.TP
\fBchecksum\fR     Generate checksums
.TP
\fBdownload\fR     Download sources for the given package
.TP
\fBextension\fR    List available kiss extensions
.TP
\fBfetch\fR        Fetch repositories
.TP
\fBinstall\fR      Install a package
.TP
\fBlist\fR         List installed packages
.TP
\fBremove\fR       Remove a package
.TP
\fBsearch\fR       Search for a package
.TP
\fBupdate\fR       Check for updates
.TP
\fBversion\fR      Package manager version
.PP

.
.fi
.
.SH CUSTOMIZATION
.
The package manager is controlled through environment variables.

These can be set in your \fI~/.profile\fR or \fI/etc/profile.d\fR
to have the options apply all the time.

These can also be set in the current shell to have them apply
only for the current session.

\fBNOTE:\fR The values shown below are the defaults.

.SS MANAGING REPOSITORIES
.
This works exactly like \fI$PATH\fR (Colon seperated).

A list of repositories the package manager will use. You can
add your own repositories or remove the default ones.
.IP
.nf
export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg
.fi
.PP
.SS FORCE PACKAGE INSTALLATION OR REMOVAL
This can be used to bypass the dependency checks on installation
and removal of packages.

Set it to \fB'1'\fR to force.

.IP
.nf
export KISS_FORCE=0
.fi
.PP
.SS HOOK INTO KISS THROUGH A SCRIPT
This can be used set custom CFLAGS per package, modify builds,
etc. This environment variable must point to a shellscript.

The script will have the following environment variables set.

.TP
.B $PKG:
Name of the current package.
.TP
.B $TYPE:
The type of hook (pre-build, post-build, build-fail, pre-install, post-install).
.TP
.B $DEST:
The full path to where 'make install' will put the package.

.PP
.B SIMPLE EXAMPLE SCRIPT
.nf

case $TYPE in
    pre-build)
        case $PKG in
           zlib) export CFLAGS="-Os -static" ;;
           curl) export CFLAGS="-O3" ;;
        esac
    ;;

    post-build)
        : "${DEST:?DEST is unset}"

        rm -rf "$DEST/usr/share/doc"
        rm -rf "$DEST/usr/share/gettext"
    ;;
esac
.fi

export KISS_HOOK=/path/to/script
.SS ROOT DIRECTORY

Where installed packages will go. You won't ever need
to touch this during normal usage.

This can be used to have the package manager run in a "fake root".
.IP
export KISS_ROOT=/
.PP

.SS KEEPING LOGS
Keep build logs around for successful builds and not just failing ones.
Helpful when debugging.

Set it to \fB'1'\fR to enable.
.IP
export KISS_KEEPLOG=0
.PP
.SS KEEPING BUILD FILES
You can keep build, package and extraction cache directories for debugging
purposes.

Set it to \fB'1'\fR to enable.
.IP
export KISS_DEBUG=0
.PP
.SS CHANGING COMPRESSION METHOD
\fBKISS\fR by default uses gzip for packaging, but it can be changed. Valid
options are \fIbz2\fR, \fIgz\fR (default), \fIxz\fR, \fIzst\fR. If an unknown
compression method is specified, it fallbacks to \fIgz\fR.
.IP
export KISS_COMPRESS=gz
.PP
.SS SUDO UTILITIES
You can force the usage of a different \fB'sudo'\fR tool. Available options are
\fIsu\fR, \fIsudo\fR, \fIdoas\fR.
.IP
export KISS_SU=
.PP
.SS USE A REPRODUCIBLE CACHE NAMING SCHEME

The package manager builds packages inside \fIbuild-$PID/\fR with \fI$PID\fR
being the package manager's process ID. This allows for multiple
builds to happen at once.

You can override this and \fIknow\fR the location beforehand with the
below environment variable. \fIKISS_PID=test\fR will build the package
in \fIbuild-test\fR.

Unset by default.
.IP
export KISS_PID=
.PP
.SS ENABLING/DISABLING COLOUR

If run in a subshell, \fBKISS\fR disables colour output. However, this behaviour
can be overriden. If a user defines a \fIKISS_COLOUR\fR environment value, it will
be enabled or disabled globally
.IP
export KISS_COLOUR=1 # Enables globally
.IP
export KISS_COLOUR=0 # Disables globally
.PP
.SS DISABLING PROMPTS
User can disable prompts by setting a \fIKISS_NOPROMPT\fR environment value. This
can be useful for scripting purposes.

.IP
KISS_NOPROMPT=1 kiss b pkg1 pkg2
.PP
.SH ALTERNATIVES SYSTEM
When a package with conflicts is installed the conflicting
files will be added as "choices" to the alternatives system.

Afterwards, running kiss a/kiss alternatives will list all of
the choices you are able to make. Each line of output with this
command is also usable directly as input.

\fBNOTE:\fR To disable this functionality, set 'KISS_CHOICE=0'.

.SS EXAMPLE USAGE
.nf
# List alternatives.
-> kiss a
-> Alternatives:
ncurses /usr/bin/clear
ncurses /usr/bin/reset

# Swap to ncurses 'clear'.
-> kiss a ncurses /usr/bin/clear
-> Swapping '/usr/bin/clear' from 'busybox' to 'ncurses'
Password:

# New listing (busybox clear was swapped out).
-> kiss a
-> Alternatives:
busybox /usr/bin/clear
ncurses /usr/bin/reset

Example usage (complex):

-> kiss i sbase
# More lines...
-> sbase Found conflict (/usr/bin/renice), adding choice
-> sbase Found conflict (/usr/bin/logger), adding choice
-> sbase Found conflict (/usr/bin/flock), adding choice
-> sbase Found conflict (/usr/bin/cal), adding choice
-> sbase Installing package incrementally
-> sbase Installed successfully

# List alternatives.
-> kiss a
# More lines...
sbase /usr/bin/uuencode
sbase /usr/bin/wc
sbase /usr/bin/which
sbase /usr/bin/whoami
sbase /usr/bin/xargs
sbase /usr/bin/yes

# Swapping in bulk (all of sbase).
# The 'kiss a' command with '-' as an argument will read
# from stdin and use each line as arguments to 'kiss a'.
kiss a | grep ^sbase | kiss a -

# New listing, sbase has replaced busybox utilities.
-> kiss a
# More lines...
busybox /usr/bin/uuencode
busybox /usr/bin/wc
busybox /usr/bin/which
busybox /usr/bin/whoami
busybox /usr/bin/xargs
busybox /usr/bin/yes
.fi

.SH AUTHORS
Cem Keylan, Fork Maintainer, Carbs Linux
.br
<cem@ckyln.com>
.PP
Dylan Araps, Original Author, KISS Linux

.SH LICENSE
See LICENSE for copyright information
.SH SEE ALSO
kiss-contrib(1)