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
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
|
CHANGELOG
================================================================================
This is the CHANGELOG for the Carbs Packaging Tools, initially a customized fork
of the `kiss` package manager. The format is based on [Keep a Changelog], and
this project _somewhat_ adheres to [Semantic Versioning].
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html
3.3.0 - 2020-08-22
--------------------------------------------------------------------------------
### Added
- Added `trap_set()` in order to manage traps.
### Changed
- Moved from `getopt` to a shell implementation of option parsing. This ensures
portability, and doesn't depend on a C program with GNU extensions. That was
a mistake. The new implementation is taken from the public domain library,
`getoptions`.
- `warn()` function was modified to use `log "$1" "$2" "${3:-WARNING}"` instead.
- Made `cpt` checksum method compatible with the KISS Community repository.
3.2.0 - 2020-08-22
--------------------------------------------------------------------------------
### Added
- A `.build.cpt` file can be edited during the pre-build hook, so that a build
script can be modified. If the build is modified, a diff file will be
generated to the package database.
- Some of the tools now use getopt. Since getopt isn't a POSIX utility,
util-linux implementation has been added to the `getopt-ul` directory. It
consists only of files required for the tool to be built.
- Added `pre-chroot` hook for the `cpt-chbuild` utility.
### Changed
- `cpt-chbuild` now uses library functions such `sh256()`, and `as_root()`.
- `cpt` programs no longer exit if `$CPT_PATH` is unset.
3.1.1 - 2020-08-11
--------------------------------------------------------------------------------
### Changed
- `as_root()` now sets package manager variables with env.
3.1.0 - 2020-08-07
--------------------------------------------------------------------------------
### Changed
- `cpt-lib` no longer creates temporary directories. This will need manual
adjustments for scripts that make use of the cache directories. Those
directories can now be created by calling the `create_cache()` function.
- Dropping libtool's `*.la` library files from packages.
3.0.0 - 2020-07-24
--------------------------------------------------------------------------------
This is the 3.0.0 release. This will make `kiss` (now renamed as `cpt`) a
toolchain for package management rather than a single script program. The main
functionality is moved into a `lib.sh` file which the tools will source. This
comes with nice benefits such as:
- Easier option parsing for each tool.
- Easier to extend the package manager as it is only a library. It no longer
requires dirty hacks to source the package manager functions and variables.
- Clearer usage information is outputted, so the user doesn't have to delve into
documents to see the syntax/options of a tool.
### Added
- `$CPT_CACHE` to change the cache directory.
- Added a bunch of flags, here is a table:
| Flag | Function | Added tool |
|------------|-------------------------------------------|------------------------|
| --force | Force removal/installation | cpt-remove/cpt-install |
| --root | Specify root directory | lots of tools |
| --download | Only download packages | cpt-update |
| --no-fetch | Do not fetch repositories before update | cpt-update |
| --single | Only show the first instance of a package | cpt-search |
### Changed
- Renamed all variables from `KISS-*` to `CPT-*`
- Moved database to `/var/db/cpt`
- Changed the code style and did some minor nitpicks for the C programs.
### Removed
- Removed the ability to control color output (for now).
- Removed `kiss-outdated` and `kiss-which`.
2.3.0 - 2020-07-16
--------------------------------------------------------------------------------
### Added
- Added `KISS_FETCH` to optionally disable repository fetches while performing
a system update. You can now run `KISS_FETCH=0 kiss u` in order to update
your system without syncing repositories.
### Changed
- Changed usage outputs for kiss and contrib utilities.
- `rsync` repositories are now synced based on checksums rather than timestamps.
- `kiss-chroot` now uses system flags if available.
- `kiss-chbuild` now installs extra packages if specified.
- hooks now default to `null` if no arguments are given
- `*-pull` hooks have been renamed to `*-fetch` and is run only once instead of
for every single git repository.
### Fixed
- Fixed an issue where using `su` to install packages resulted in a wrong
package ownership.
2.2.1 - 2020-06-11
--------------------------------------------------------------------------------
### Fixed
- Fixed directory checking on package removal
2.2.0 - 2020-06-10
--------------------------------------------------------------------------------
### Added
- Makefile configurations were moved to config.mk.
### Changed
- `kiss` no longer ignores musl and gcc on `fixdeps()`. This will result in an
influx of musl dependencies. But you will be needing the C library to be
installed anyway if you want your programs to work. If your program links
to `libgcc`, you will need the gcc package for that given program to function.
- Makefile now properly accepts `LIBS`, `LDFLAGS`, and `CFLAGS`.
- Updated documentation.
### Fixed
- `C89` compatibility on C programs.
- Fixed an alternatives issue where a file containing special regular expression
characters (such as `/usr/bin/[`) would result in a manifest deletion.
2.1.2 - 2020-06-03
--------------------------------------------------------------------------------
### Fixed
- Fixed a segmentation fault on `kiss-stat` when a file didn't have on owner on
the `passwd` database.
2.1.1 - 2020-06-03
--------------------------------------------------------------------------------
### Fixed
- Fixed 'No message in queue' message being outputted for every single package.
- Fixed CFLAGS for x86_64 on `kiss-chroot`.
- Fixed setting binary packages as dependencies.
2.1.0 - 2020-05-29
--------------------------------------------------------------------------------
### Added
- Added '$2' '$3' for build scripts which specifies version and architecture
information.
### Changed
- `kiss-chroot` now sets architecture based on the system
- Updated documentation
### Removed
- Removed strip messages
2.0.0 - 2020-05-28
--------------------------------------------------------------------------------
### Added
- Rsync repository support.
- pre/post hooks for package removal (pre-remove, post-remove).
- pre/post hooks for git pulls (pre-pull, post-pull).
### Changed
- `kiss` no longer removes empty directories if they are defined on a different
package.
- `$KISS_NOPROMPT` has been renamed to `$KISS_PROMPT` and must be set to 0 in
order to disable prompts.
- `kiss-chbuild` now checks tarball digest.
- `kiss-chbuild` now downloads tarballs according to arch (x86_64 or i686
currently).
- Submodule repository fetching has been modified to match compatibility.
### Removed
- Removed `kiss-maintainer` and moved it to [kiss-extra]
[kiss-extra]: https://github.com/carbslinux/kiss-extra
1.22.4 - 2020-05-26
--------------------------------------------------------------------------------
**NOTE:** `1.22.x` is the last minor version before `2.0.0`, meaning I will not
be doing any releases except for patches and fixes. My attention is now on
implementing binary repositories. I will be doing some 'release candidates'
before release, as binary repositories will need user feedback.
### Added
- Added new documents.
- Added `post-package` hook.
### Changed
- Renamed the `hashcheck` function to `sh256` for compatibility.
- Enabled the usage of glob characters for `kiss-bin`.
1.22.3 - 2020-05-18
--------------------------------------------------------------------------------
### SECURITY
- Fixed a bug regarding privilege escalation using `$KISS_HOOK`. `kiss` will now
use `$KISS_ROOT/etc/kiss-hook` on installation operations (which are run by
root) so that the hooks are defined by the system administrator rather than the
user. See [related proof-of-concept]
[related proof-of-concept]: https://github.com/kisslinux/kiss/pull/157#issuecomment-629880775
1.22.2 - 2020-05-16
--------------------------------------------------------------------------------
### Fixed
- Fixed an issue where `pkg_conflicts` would abort if `kiss-readlink` failed due
to missing components. It now fallbacks to the original directory name.
1.22.1 - 2020-05-15
--------------------------------------------------------------------------------
### REMOVED
- Removed some contrib scripts and moved them to [kiss-extra]
- `kiss-cargo-urlgen`
- `kiss-cargolock-urlgen`
- `kiss-changelog`
- `kiss-depends-finder`
- `kiss-exec`
- `kiss-message`
- `kiss-orphans`
- `kiss-reporevdepends`
### Fixed
- Fixed a `kiss-owns` typo that caused it to fail.
- Fixed a `kiss-readlink` bug where it would fail if the last component wouldn't
exist.
- Fixed an error on tarball extraction where a file name containing spaces would
be parsed as two files.
[kiss-extra]: https://github.com/carbslinux/kiss-extra
1.22.0 - 2020-05-14
--------------------------------------------------------------------------------
### Added
- Added `kiss-exec`, a tool to execute commands inside the alternatives system.
### Changed
- Replaced `KISS_COLOUR` with `KISS_COLOR` to match upstream.
- Renamed `colour` variable to `color` for consistency.
- The package manager no longer needs root privileges if the `KISS_ROOT` is
writable by the user.
- `kiss` now uses the host cache regardless of `KISS_ROOT`.
### Fixed
- Fixed an issue where `kiss-owns` would output the wrong package because of
symbolic links. The script now reads the link of the directory instead of the
full file.
1.21.1 - 2020-05-14
--------------------------------------------------------------------------------
### Changed
- All contrib messages now output usage information when called with `--help`
and `-h`.
- `hashcheck` function now uses `$1` instead of `${file#\*}`.
### Fixed
- Fixed a non-POSIX `find` call. Thanks to @illiliti.
1.21.0 - 2020-05-12
--------------------------------------------------------------------------------
### Added
- Added a `d|download` option to acquire the sources of given packages. If no
packages are given, it acquires the sources of outdated packages. This can be
used to acquire a package's sources to build it later, or periodically
downloading outdated package sources, so the user doesn't wait for the download
when updating the system.
- kiss now understands `.txz` tarballs. (BSD `src.txz` wink wink)
- `KISS_TMPDIR` can now be used to specify a temporary build directory. This
will be useful for those of you who would want to build on ram or a different
file system.
### Changed
- Simplified tarball extraction method.
- Removed the 'esc' function inside kiss.
- Added a 'warn' function to standardise warnings inside kiss
### Fixed
- Removed the `sys_db` usage on `pkg_find()` where directories could clash with
external utilities.
1.20.3 - 2020-05-09
--------------------------------------------------------------------------------
### Fixed
- Fixed an alternatives bug caused by the previous patch, where the package
moving to `/var/db/kiss/choices` would take the name of the preferred package.
1.20.2 - 2020-05-09
--------------------------------------------------------------------------------
### Fixed
- Fixed an issue regarding manifest format when using pkg_swap (alternatives).
1.20.1 - 2020-05-08
--------------------------------------------------------------------------------
### Changed
- Faster conflict resolution by using a conflict cache file.
- Standardised `kiss-readlink` usage output.
1.20.0 - 2020-05-07
--------------------------------------------------------------------------------
### Added
- `KISS_NOPROMPT` can be specified in order to skip prompts.
1.19.1 - 2020-05-07
--------------------------------------------------------------------------------
### Added
- Added `e|extension` to `kiss` which can be used to output kiss-extensions.
### Changed
- `kiss` no longer outputs the extensions when called with `kiss help`. The
output was too large for an average terminal, and a user had to scroll up
for actual package manager options. These can now be retrieved with `kiss e`.
- When called from a subshell, `kiss` disables colour escape sequences. This
behaviour can be overridden by setting `KISS_COLOUR` environment variable.
If set to 1, it will be enabled globally, if set to 0 it will be disabled
globally.
1.19.0 - 2020-05-06
--------------------------------------------------------------------------------
### Added
- Added `kiss-reporevdepends` for finding all the packages on the repository
that depends on the specified package.
### Changed
- Removed the `-p` flag from tar while installing packages. busybox ignores it
and we don't need it.
- Replaced tar flags with keys for historical compatibility.
- `kiss` now decompresses a tarball once and uses the decompressed tarball for
listing and extraction.
### Fixed
- Fixed the output of doc-strings in contrib scripts.
- `kiss` now ignores the binary programs in the repository for
`kiss extensions`.
1.18.0 - 2020-05-04
--------------------------------------------------------------------------------
### Added
- Added editorconfig file since we now have 4 languages (roff, Makefile, sh, C)
in the repository.
- Added `kiss-readlink` as a `readlink -f` replacement.
- Added `kiss-message` for checking package messages.
- Added this CHANGELOG
### Changed
- Made tar calls portable. `kiss` is no longer limited to busybox, bsdtar, or
gnu tar!
### Removed
- Dropped the usage of `readlink` in `kiss`.
1.17.0 - 2020-05-03
--------------------------------------------------------------------------------
### Added
- Added `kiss-stat`, a simple C program for getting the owner name of a
file/directory.
### Removed
- Removed the usage of `stat` calls, as they are not standardised.
### Changed
- `kiss` now doesn't report `Generating etcsums` if there isn't an `/etc`
directory in the package
### Fixed
- `kiss` now uses `sys_db` instead of `pkg_db` when removing packages from the
system.
- `kiss` now explicitly exits if prompt returns with a status of 1. This is for
`ksh` compatibility.
1.16.3 - 2020-05-03
--------------------------------------------------------------------------------
### Fixed
- Fixed etcsum location.
1.16.2 - 2020-05-03
--------------------------------------------------------------------------------
### Added
- Added fallbacks for sha256sum. `kiss` now fallbacks to `sha256`, and `openssl`
for hash checking, respectively.
- Added `kiss-changelog` and `kiss-which` entries to the `kiss-contrib.1` manual
page.
### Fixed
- Fixed `kiss` not using the preferred `tar` program on decompression.
- Fixed `pkg_conflicts()` getting stuck when you reinstall the same single
package on a system.
- Fixed `pkg_conflicts()` giving an error if no packages are installed on a
system.
1.16.1 - 2020-05-01
--------------------------------------------------------------------------------
### Fixed
- Fixed `ksh` Ctrl+C interrupt signals.
1.16.0 - 2020-05-01
--------------------------------------------------------------------------------
### Added
- New message queue system implementation. If a package includes a file named
`message` it will output its contents in a pretty way.
- Added `kiss-which`, a tool like `which` but for `kiss` packages.
- Added `kiss-changelog`, a tool for outputting the git log of a given package.
### Fixed
- Fixed colour outputting on `OpenBSD ksh`.
- Made compatibility fixes on the Makefile
- Fixed an installation issue where `kiss` would look for the manifest with the
`$KISS_ROOT` variable
1.15.0 - 2020-04-30
--------------------------------------------------------------------------------
I have decided to revert to rsync installation method as it is faster and safer.
Now, rsync is not a huge dependency. Saving 500Kb is not worth it when you look
at the trade-off.
### REMOVED
- Removed the new installation method.
### Changed
- Reverted to `rsync` for installation.
- We are now forcing decompression to standard output while using `decompress()`
- `kiss` now accepts decompressed tar archives for package installation as well.
1.14.2/1.14.3 - 2020-04-27
--------------------------------------------------------------------------------
### Fixed
- The new installation method now complies to the `$KISS_ROOT` value.
1.14.1 - 2020-04-27
--------------------------------------------------------------------------------
### Removed
- Removed the unnecessary `[ -d ]` from the path query.
### Fixed
- Fixed directory permissions in the new installation method.
- Added support for `$KISS_ROOT` to the new installation method.
- Added a check for symlinks that could overwrite a directory during
installation.
- Whitespace cleanup.
1.14.0 - 2020-04-25
--------------------------------------------------------------------------------
This release removes `rsync` from `kiss` and implements its own installation
method.
### Added
- `kiss` now implements user scripts available in the `$PATH`. This can be used
to call `kiss manifest` from `kiss` itself.
- `kiss` now displays a warning if the user has a `$KISS_ROOT` that ends with
a `/`.
- `kiss` now uses its own new package installation method.
### Removed
- usage of rsync as an installation method.
- usage of `old_ifs`
1.13.1 - 2020-04-19
--------------------------------------------------------------------------------
### Removed
- Reverted and removed `kiss ss` changes.
1.13.0 - 2020-04-19
--------------------------------------------------------------------------------
### Added
- `kiss ss` for outputting a single location for scripting.
### Changed
- `kiss` now elevates permissions during checksum if the file isn't owned by us.
- Hide read error messages when `version` file cannot be found.
- Made the `pkg_fixdeps()` usage of `diff` portable.
### Fixed
- Fixed a shellcheck error.
1.12.3 - 2020-04-17
--------------------------------------------------------------------------------
### Changed
- Changed indentation style on decompression.
### Fixed
- `kiss-export` fallbacks to gzip if the compression method is unknown.
- `kiss-repodepends` now outputs the proper depends file.
1.12.2 - 2020-04-15
--------------------------------------------------------------------------------
### Added
- `kiss` can now decompress zip files.
### Changed
- `checksum`, `build`, `install`, and `remove` operations can now be done on the
current package directory without arguments. So you can `cd` into a package an
type `kiss b` to build that package.
### Fixed
- `kiss-export` now honours your `KISS_COMPRESS` value
1.12.1 - 2020-04-12
--------------------------------------------------------------------------------
### Fixed
- Fixed printing empty arguments in `kiss-outdated`.
1.12.0 - 2020-04-05
--------------------------------------------------------------------------------
### Added
- `kiss-cargolock-urlgen`: a tool that can read a Cargo.lock file to generate a
list of urls.
- `kiss-cat`: a tool to concatenate package build files.
- Manual page for `kiss-contrib`.
### Changed
- `kiss-owns` now gives an error on directories.
- `kiss-link` can now take multiple file names and will create symbolic links
of them all.
- Simplified `kiss-link`
### Fixed
- `kiss-cargo-urlgen`: Fixed an issue where if a package version contained a '-'
it could lead to wrong url generation.
1.9.0 - 1.11.2 - 2020-04-04
--------------------------------------------------------------------------------
### Added
- `kiss f` to fetch repositories without an update prompt.
- Support for submodules in the repository.
- Added a Makefile to standardise the installation.
- Zstd compression method.
### Changed
- Modified `kiss-chbuild` to fit Carbs Linux.
- Changed README to notify about forking status.
- `pkg_find()` now also checks for symlinks instead of just directories.
- `pkg_find()` now uses a `for` loop instead of `find`.
- Force C locale for faster grepping.
- Easily readable manual page.
### Fixed
- Compression method now fallbacks to gzip if unknown.
|