diff options
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 1011 |
1 files changed, 1011 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e7ee439 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,1011 @@ +CHANGELOG +================================================================================ + +This is the CHANGELOG for the Carbs Packaging Tools, initially a customised 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 + + +[7.0.2] - 2023-02-05 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed a bug that caused extra dependencies being added to the later packages + during multi-package build operations. +- Fixed file attribute issue with the `_tmp_cp()` function causing modified + dependency files to receive `600` permission bits. + + +[7.0.1] - 2023-02-05 +-------------------------------------------------------------------------------- + +### Fixed +- Made the `_tsort()` function compatible with POSIX +- Fixed dependency calculation issue in `pkg_depends()` where some packages + would be removed. +- Fixed `pkg_gentree()` not generating the dependency tree due to the dependency + calculation changes. + + +[7.0.0] - 2023-01-31 +-------------------------------------------------------------------------------- + +### Configuration Directory +- In order to simplify file locations and messing up the `/etc` directory, CPT + now uses the `/etc/cpt` directory for reading related files. The location of + your system configuration directory is defined by the `--sysconfdir` flag in + the `./configure` script, it uses `/etc` if the prefix is `/usr`. +- Since the location of the configuration can differ between installations, + `$cpt_confdir` variable can be used in programs using `cpt-lib` to get the + user's configuration directory. +- This change currently doesn't break `cpt-base`, but you are advised to + rename your configuration files. +- `/etc/cpt-base` is renamed to `/etc/cpt/base` (considering `$cpt_confdir` is + `/etc/cpt`) + +### Changes on hook behaviour +- `/etc/cpt-hook` will no longer be used. +- User hooks (as defined by `$CPT_HOOK` will be run regardless of the hook type. + I have realised that overriding user hooks on some operations was a mistake. + If the users already have the privilege to install packages, they should also + be able to run hooks without an interruption of the package manager. +- Even though `/etc/cpt-hook` file is removed, a collection of systemwide hooks + can be added to the `/etc/cpt/hooks`directory. Any file in this directory will + be sourced by the package manager when running hooks. User hooks are run + _after_ systemwide hooks are run. +- Added new hooks: `end-install` and `end-remove` that are run when + installation/removal is complete (not per-package). + +### Added +- `cpt-size` can now sort files based on size. +- `$CPT_NOSTRIP` variable can now be set to 1 in order to disable package + stripping. Make sure to add `-g` to your CFLAGS in order to keep debugging + symbols. +- `cpt-build` now accepts `-d` and `-S` options to enable `$CPT_DEBUG` and + `$CPT_NOSTRIP` respectively. + +### Changed +- `cpt-update` is now re-entrant, meaning that it is no longer needed to run the + update twice, `cpt-update` will continue the updates with the new version of + itself. +- The package manager now can handle circular dependencies and exit gracefully. + +### Fixed +- Fixed the behaviour of `cpt bi` and `cpt cbi` by merging the flag usage. +- Fixed the `aria2c` usage on `pkg_download()` function. + +### Library +- In order to get the `$deps` variable, one now has to use the new + `pkg_depends_commit()` function. + + +[6.2.4] - 2022-02-07 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed a bug in missing dependency where if the user had chosen 'ldd', it would + fail to fix dependencies due to a typo. + + +[6.2.3] - 2022-02-02 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed a checksum verification bug where adding an extra source did not require + checksum verification. +- `cpt-manifest-tree` now modifies the output of `tree(1)` according to the new + version. +- `cpt-reset` is now much more verbose. +- Fixed the displayed messages on `cpt-install` when it is given a tarball as an + argument. +- Fixed a faulty implementation in `pkg_tar()` where it used `pkg_find()` + instead of using the built package's database directory for gathering + information. + + +[6.2.2] - 2021-11-09 +-------------------------------------------------------------------------------- + +### Fixed +- `cpt-alternatives` now properly logs file swaps even when the original file + no longer exists. +- Minor fixes + + +[6.2.1] - 2021-09-20 +-------------------------------------------------------------------------------- + +### Fixed +- `cpt-fork` follows symbolic links when forking packages. +- Fixed "crux-like" usage in `cpt-size` +- Fixed documentation path in the manual page + + +[6.2.0] - 2021-08-14 +-------------------------------------------------------------------------------- + +### BLAKE3 checksums + +The package manager now uses `b3sum` for creating digests. The change is +backwards compatible, which means that BLAKE3 will slowly replace the SHA256 +algorithm in packages. The `cpt` package in the repository will continue to use +the sha256 until the end of 2021. + +The `checksums` files generated with BLAKE3 has the header `%BLAKE3` which is +used to distinguish digest algorithms. If the file does not include such a +header, it is assumed to be a file created using the SHA256 algorithm. This is +especially handy for keeping the /etc checksums intact. If the package being +built is already installed on the system `cpt` makes sure that the generated +etcsums are also backwards compatible. + + +### Description searching + +`cpt-search` utility has a new mode for searching through the package names and +descriptions, which is enabled by the `-q` flag. The output is really similar to +how the `apt search` command works, but the output is not meant for scripting. +Descriptions are defined by the `description` keys in the meta file. + +Instead of wildcards, the passed argument is expected to be a POSIX Basic +Regular Expression, and is interpreted by `grep`. `cpt-search` also accepts the +`-F` flag for passing literal expressions. + + +### Added +- `cpt-checksum` now has the `-s` flag to generate checksums using the SHA256 + digest algorithm. +- Added `CPT_DOWNLOADER` variable to change the download program. Available + options are: `curl`, `wget`, `wget2`, `aria2c`, and `axel`. +- `cpt-chroot` now has the flag `-m` to disable mounting/unmounting pseudo + filesystems. +- This changelog is now installed by the `Makefile`. +- `cpt-chbuild` now has `-r` flag to redownload the chroot. + +### Changed +- `cpt-size` has been rewritten to support POSIX `du`, and to support packages + with a file count of over 50,000. +- Installation now requires to run `./configure`. + + +[6.1.1] - 2021-08-04 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed a rare bug during manifest generation that caused an empty line inside + the package manifest. + + +[6.1.0] - 2021-07-22 +-------------------------------------------------------------------------------- + +### IMPORTANT +- The package manager now enforces the usage of `pax` instead of `tar`. + +### Repository Backend + +`cpt` now has a faster and modular repository backend. `fossil` is now supported +by the package manager. During the repository fetch process, the repository +backend is stored in the cache directory so that the update takes less time on +the next pull. The usage of the repository cache can be disabled by setting +`$CPT_REPO_CACHE` to 0. + +### Added +- Added `-q, --quiet` flags to `cpt-list`. +- Re-added `cpt-maintainer`. It now supports `meta` and repository backends + other than `git`. +- The package manager now prints out `MOTD` files found on the repository root. +- Added the `$CPT_VERBOSE` variable and the `--verbose` flags to some utilities. + With the addition of these, some parts of the package manager will be more + quiet unless verbosity is explicitly requested. + +### Changed +- Reworked the package repository backend. + + +[6.0.4] - 2021-05-12 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed the declaration place of the `$pid` variable + + +[6.0.3] - 2021-05-10 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed interrupt behaviour when downloading package sources. +- Fixed `cpt --help` output when inside a directory prefixed with `cpt-` + + +[6.0.2] - 2021-04-05 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed `make dist` target. + + +[6.0.1] - 2021-04-05 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed inconsistencies of the `Ctrl+C` interrupt behaviour + + +[6.0.0] - 2021-04-03 +-------------------------------------------------------------------------------- + +### Added +- Added unit tests using `shellspec`. +- Added support for `pax` for tarball extraction. +- [ssu] support has been added for privilege escalation. +- Added `-p` flag for specifying package when using `cpt-link`. +- Added manual pages for all `cpt-contrib` scripts. +- Added `lz` compression/decompression support to `$CPT_COMPRESS`. + +### Changed +- Moved `cpt-lib` to `cpt-lib.in`. +- All `src` scripts now exit with success after being called with `--help`. +- Minor optimisations on `contrib` scripts. +- Huge speed improvement on `cpt-export`. +- Updated the `getoptions` library to version `2.5.0`. + +### Fixed +- Fixed `cpt-cat` not using the `CPT_ROOT` value. +- Fixed an error with the usage of `sbase grep` that resulted in exit when + removing packages. + +### Removed +- Removed C binaries `cpt-readlink` and `cpt-stat` and instead replaced them + with `_readlink()` and `_stat()` library functions. + + +[ssu]: https://github.com/illiliti/ssu + +[5.1.2] - 2021-01-04 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed the `Makefile` installing files other than `cpt-*` files. +- Fixed `pkg_swap()` bug where swapping a prefix file would change the following + file locations on the manifest as well. + + +[5.1.1] - 2020-12-20 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed an issue where the package build is continued even when it failed when + `$CPT_DEBUG` was set + + +[5.1.0] - 2020-11-25 +-------------------------------------------------------------------------------- + +### IMPORTANT +- The `pkg_fixdeps()` function has been renamed to `pkg_fix_deps()`. +- `cpt-lib` now parses options for you if `parser_definition()` is defined + before being called. + +### Changed +- `cpt-fork` can now take full path for packages. +- `cpt-size` can now display the total size of multiple packages. +- Updated `getoptions()` parser to version `2.0.1` +- Added `git` to the default `cpt-base`. +- Temporary cache creation scheme is changed from `build-$pid/` to + `proc/$pid/build/` + +### Fixed +- Moved option parsing to cpt-lib if `parser_definition` exists. This shouldn't + affect existing scripts where `cpt-lib` is called before the parser is + defined. + + +[5.0.0] - 2020-10-06 +-------------------------------------------------------------------------------- + +### IMPORTANT +- `cpt-fetch` has been removed. `cpt-update -o` can be used instead. + +### Added +- Added an `/etc/cpt-base` file to define a base. It can be used in order to + ship a default base, but to make it redefinable by the user. This file isn't + installed by default, it serves as a template. +- Added `cpt-orphans` to view orphaned packages. This tool uses `/etc/cpt-base` + and doesn't output any packages in the defined base. +- Added a `global_options()` function in order to add into the option parser. +- Added `cpt-update -o` flag to replace the functionality of `cpt-fetch`. +- Added `cpt-list -c` to use the current directory as the argument string. + +### Changed +- `pkg_build()` now notifies the user if the build file was modified inside a + hook (the `pre-build` hook to be precise). +- In git repository sources, `@` can now be used to specify tags. + E.g. `git+git://git.carbslinux.org/cpt@4.2.0` +- `cpt-fork` now removes `manifest` and `etcsums` files. +- `cpt-fork` can now be used to fork multiple packages. +- `cpt-reset` now uses `/etc/cpt-base` when removing packages. +- `cpt-build` now exports the `CPT_TEST` variable, so some tests that can't be + done in a `test` script can be done from the build itself. + + +[4.1.1] - 2020-09-25 +-------------------------------------------------------------------------------- + +### Changed +- Git clones now fetch tags if commits are specified. This makes the operation + longer, but not as long as cloning the whole repository while building a + package. +- `pkg_fixdeps()` now outputs to `stderr` instead of `/dev/tty`. You can now + have fully silent builds. + +### Fixed +- Fixed the `as_root()` function when using `su`. + + +[4.1.0] - 2020-09-11 +-------------------------------------------------------------------------------- + +### Added +- Added `bi` action to cpt for building and installing packages at the same time + +### Fixed +- Fixed `as_root()` call on `cpt-chbuild`. + + +[4.0.1] - 2020-09-10 +-------------------------------------------------------------------------------- + +### Fixed +- Fixed flags starting with `--no-` + + +[4.0.0] - 2020-09-09 +-------------------------------------------------------------------------------- + +With this update, all the documentation was moved to the `docs` repository, +which can be accessed from the following sources: + +- [Docs Repository](https://github.com/carbslinux/docs) +- [Online User Manual](https://carbslinux.org/docs) +- `carbs-docs` package + +### Added +- Added the ability to test packages using a new executable file `test`. +- Added `$CPT_TEST` variable for testing packages. +- Added `--test|-t` option to build. +- Added support for `mercurial` repositories. +- Added options to install the tools "static" so they don't depend on cpt-lib. +- Added basic unit tests. See `make test`. + +### Changed +- Most contrib scripts now use the current directory as the package name. + +### Removed +- Removed the `docs/` folder. + +### Fixed +- Fixed `getoptions` parsers while declaring initial variables. +- Fixed build `cpt-stat` on the Makefile. + +[3.3.1] - 2020-08-31 +-------------------------------------------------------------------------------- + +### Changed +- Reverted `sh256()` to the previous way. + + +[3.3.0] - 2020-08-31 +-------------------------------------------------------------------------------- + +### 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. |