Commit Graph

951 Commits

Author SHA1 Message Date
Dylan Araps 278de80b25
kiss: Fix KISS_COLOR support for help output 2020-05-19 12:55:10 +03:00
Dylan Araps f154c427e4
kiss: Simplify argument parsing for remove/install 2020-05-19 12:47:27 +03:00
Dylan Araps b1d54112dd
kiss: Simplify removal arg stuff 2020-05-19 12:38:54 +03:00
Dylan Araps f5c2777787
kiss: Big cleanup of as_root() usage.
1. The same as_root() function is used for all elevation now. The
   environment can be fully controlled when calling the function.

2. Removal of mixed tabs/spaces due to heredoc fuckery thanks to
   'set -- $(cmd)'.

3. Moved file owner code to a function and added safety measure
   against non-existent UIDs.

4. Fixed bugs when generating checksums via as_root(). Permissions
   are now checked on a file basis instead of a directory one.
2020-05-19 12:28:08 +03:00
Dylan Araps 724d393bb1
kiss: minor changes 2020-05-19 10:37:30 +03:00
Dylan Araps 0abc6be41d
kiss: Drop _tar() portability function. Thanks everyone. 2020-05-18 22:55:57 +03:00
Dylan Araps d4e6e14324
kiss: Move error supression to where the error is 2020-05-18 12:03:19 +03:00
Dylan Araps 9aa8687a98
docs: update 2020-05-18 11:45:15 +03:00
Dylan Araps f41a014104
kiss: CRUX style usage fixes 2020-05-18 11:44:24 +03:00
Dylan Araps d224ccad0a
docs: update 2020-05-18 10:43:09 +03:00
Dylan Araps c55374a52b
as_root(): Strict environment.
Running a portion of the script as root will now use a stricter
environment. The root user will only inherit a small and fixed
white-list of environment variables.

- HOME/XDG_CACHE_HOME
  - To make use of the non-root user's package
    cache for the purposes of installation.

- KISS_PATH
  - To make use of the non-root user's set repositories
    during installation.

- KISS_FORCE
  - To carry over KISS_FORCE if passed as non-root.

The 'sudo' and 'su' commands were also changed to run as
"login shells". This allows environment variables to be set
solely for the root account (KISS_HOOK, etc) via '.profile' or
etc. As for 'doas', this has to happen via doas.conf.
2020-05-18 10:29:25 +03:00
Dylan Araps e711f76296
kiss: Don't run user hook as root when sudo/doas are set to keep environment. Closes #157 2020-05-18 09:08:04 +03:00
Dylan Araps 61804b81e8
kiss: bump version 2020-05-17 10:16:24 +03:00
Dylan Araps 6fc4f9ef78
kiss: bump version 2020-05-17 10:10:56 +03:00
Dylan Araps 99f007c24f
kiss: Don't hardcode path to charset.alias 2020-05-17 09:26:00 +03:00
Dylan Araps 33b8ef33bb
docs: update 2020-05-16 19:00:44 +03:00
Dylan Araps d98d3a02a8
kiss: minor cleanup of etcsums 2020-05-16 15:20:53 +03:00
Dylan Araps cc0ab4d072
kiss: drop esc() 2020-05-16 09:49:05 +03:00
Dylan Araps d0a45c4437
kiss: Drop pop() 2020-05-16 09:36:07 +03:00
Dylan Araps a08b796f79
kiss: Minor clean up 2020-05-16 09:26:34 +03:00
Dylan Araps 507143ad21
docs: update 2020-05-16 08:18:28 +03:00
Dylan Araps 510a7c1cdb
kiss: Minor clean up 2020-05-16 08:10:37 +03:00
Dylan Araps c666d415ba
kiss: drop unneeded check 2020-05-16 07:57:49 +03:00
Dylan Araps 9433fcd7c3
kiss: clean up 2020-05-15 10:49:42 +03:00
Dylan Araps 7b4e0439da
kiss: minor change 2020-05-15 10:37:57 +03:00
Dylan Araps 28afd9d7c5
kiss: No longer automatically pick a grep 2020-05-14 17:34:27 +03:00
Dylan Araps de87f5b164
kiss: Minor fixes from illiliti 2020-05-14 17:17:48 +03:00
Dylan Araps d73cb5b463
docs: update 2020-05-14 10:20:01 +03:00
Dylan Araps 1a8a43ec62
kiss: POSIX find usage. Closes #154 2020-05-14 10:18:51 +03:00
Dylan Araps 1c6dd610e4
docs: update 2020-05-13 17:48:37 +03:00
Dylan Araps 8d6e4b4ce7
kiss: Print log() messages to stderr 2020-05-13 17:44:50 +03:00
Dylan Araps 6f4bb626a5
docs: update 2020-05-13 14:11:47 +03:00
Dylan Araps 6620f5c674
kiss: Better tar compatibility 2020-05-13 14:10:28 +03:00
Dylan Araps 985068abe7
docs: update 2020-05-13 10:40:58 +03:00
Dylan Araps 9052d5cc3b
sha: Simplify function 2020-05-13 10:28:16 +03:00
Dylan Araps b2b55e5cdb
sha: Fix issue with specific implementation and '*' 2020-05-13 10:09:55 +03:00
Dylan Araps 87c4f2afc1
kiss: Drop $tar 2020-05-13 09:45:40 +03:00
Dylan Araps 68cbb2b68d
kiss: Provide a default post-build hook 2020-05-12 13:02:40 +03:00
Dylan Araps f095e9fb98
kiss: Added KISS_TMPDIR 2020-05-12 12:37:40 +03:00
Dylan Araps f5d0fe0a5f
kiss: Added KISS_COLOR to control color output 2020-05-12 12:03:13 +03:00
Dylan Araps dd825b0a14
kiss: Added ability to disable prompts 2020-05-12 11:49:27 +03:00
Dylan Araps 66cea7ce2c
docs: update 2020-05-12 11:46:14 +03:00
Dylan Araps 4cc633bc57
docs: update 2020-05-12 11:44:57 +03:00
Dylan Araps 5d370fa33a
docs: update 2020-05-12 11:41:07 +03:00
Dylan Araps d91820834a
kiss: Log and queue post-install messages 2020-05-12 11:37:24 +03:00
Dylan Araps 7c43cceaf1
kiss: Make KISS_ROOT and alternatives work together 2020-05-12 11:13:43 +03:00
Dylan Araps e049f468ec
kiss: Allow full rootless use via KISS_ROOT 2020-05-12 11:02:08 +03:00
Dylan Araps f49e575b64
kiss: Don't hardcode root 2020-05-12 10:51:12 +03:00
Dylan Araps 14b54e0c61
kiss: More KISS_ROOT fixes 2020-05-12 10:50:05 +03:00
Dylan Araps c320af4ebb
kiss: Install fixes when using KISS_ROOT 2020-05-12 10:42:54 +03:00
Dylan Araps 60b279731c
kiss: Use host cache for KISS_ROOT 2020-05-12 10:38:38 +03:00
Dylan Araps 534afc16a6
kiss: minor fixes 2020-05-12 10:36:18 +03:00
Dylan Araps 670ecb5ea9
kiss: Revert recent pkg_clean() changes 2020-05-12 10:08:54 +03:00
Dylan Araps a6da44f5d3
kiss: Ensure deleted directories exist 2020-05-12 10:00:29 +03:00
Dylan Araps 5d731dcec3
kiss: Silently clear cache 2020-05-12 09:27:11 +03:00
Dylan Araps c3725beaad
docs: update 2020-05-12 08:49:11 +03:00
Dylan Araps 16e40cb0fa
kiss: tarball must be full path. Closes #149' 2020-05-12 08:11:11 +03:00
Dylan Araps 970301805c
kiss: sort swap changes 2020-05-11 17:38:24 +03:00
Dylan Araps a73b7278ac
kiss: Tar .txz support 2020-05-11 17:34:57 +03:00
Dylan Araps cc665bf849
kiss: Don't send release to build files 2020-05-11 14:07:08 +03:00
Dylan Araps 2e2eb3c860
kiss: Fix firefox depends on firefox-bin 2020-05-11 10:26:27 +03:00
Dylan Araps df379e835f
kiss: Make package version available to build scripts via $2 2020-05-11 10:17:33 +03:00
Dylan Araps 03c801fd66
kiss: Don't allow invalid characters via PWD 2020-05-11 09:41:37 +03:00
Dylan Araps f42043cdce
kiss: Move shebang options to main() 2020-05-09 21:25:38 +03:00
Dylan Araps 62d038e719
kiss: Drop final install command. Thanks E5ten 2020-05-09 21:20:38 +03:00
Dylan Araps 10477f280f
kiss: Swap from install to mkdir. Thanks E5ten 2020-05-09 21:02:47 +03:00
Dylan Araps f18a4c339d
kiss: Show warning when sources file is missing 2020-05-09 20:49:58 +03:00
Dylan Araps 3e004b193a
kiss: Support packages without sources files 2020-05-09 20:38:25 +03:00
Dylan Araps df05ed582d
kiss: Fix typo 2020-05-09 19:39:27 +03:00
Dylan Araps d4ac10b37b
kiss: Support a bunch of sha256 utilities. 2020-05-09 19:35:57 +03:00
Dylan Araps 29d019a56b
kiss: Drop sha256sum_sh for now 2020-05-09 19:05:23 +03:00
Dylan Araps b415d18b9e
docs: update 2020-05-09 18:21:13 +03:00
Dylan Araps a5d963a644
kiss: Drop readlink 2020-05-09 18:18:52 +03:00
Dylan Araps d33360548d
docs: update 2020-05-09 12:24:15 +03:00
Dylan Araps 08eae0366a
kiss: Make ldd, readelf and strip optional 2020-05-09 12:11:40 +03:00
Dylan Araps 4dd4af5ac0
docs: update 2020-05-09 00:47:39 +03:00
Dylan Araps ca705d8911
kiss: Fix issues with naming conflicts in source extraction 2020-05-09 00:42:39 +03:00
Dylan Araps 5bbc7f9945
kiss: Update portability comment 2020-05-08 22:21:49 +03:00
Dylan Araps 104c54b10a
kiss: Fix typos 2020-05-08 22:19:06 +03:00
Dylan Araps 8cab612d2f
kiss: Fix trailing white-space 2020-05-08 22:15:16 +03:00
Dylan Araps bbb1873f6e
kiss: Full tar portability. Closes #143 2020-05-08 22:12:27 +03:00
Dylan Araps 0c2893b9dc
kiss: Split KISS_PATH/PATH usage 2020-05-08 18:48:16 +03:00
Dylan Araps 4fa90584b5
kiss: bump version 2020-05-08 11:22:02 +03:00
Dylan Araps cffaaa63a0
kiss: Remove forgotten cache file 2020-05-08 11:12:27 +03:00
Dylan Araps c3ead91f81
kiss: bump to 1.13.3 2020-05-07 18:18:34 +03:00
Dylan Araps caeb6a6d08
kiss: lzip support 2020-05-07 18:17:12 +03:00
Dylan Araps 407a6b722b
kiss: lz is lzip, not lzma 2020-05-07 17:25:35 +03:00
Dylan Araps bd28b306a2
kiss: bump to 1.13.2 2020-05-07 17:18:20 +03:00
Dylan Araps 754cb72ec8
kiss: Sort compression methods 2020-05-07 16:25:53 +03:00
Dylan Araps 931b2e13f3
kiss: Added lzma support to sources and tarballs 2020-05-07 16:25:18 +03:00
Dylan Araps 6415605174
kiss: Fix error messages 2020-05-07 14:46:50 +03:00
Dylan Araps 69a4a5d255
kiss: bump version 2020-05-07 14:42:52 +03:00
Dylan Araps c72a6c34db
kiss: Fix openssl sha256sum fallback 2020-05-07 14:42:27 +03:00
Dylan Araps 8a51e76de9
kiss: Fix /etc/ handling bug.
The shell implementations of readlink and sha256sum were being
used always (instead of as a fallback). This commit ensures that
the real utilities are used where possible.

This also means that there is a bug in the openssl fallback of
sha256sum which will be fixed in the following commit.
2020-05-07 14:39:44 +03:00
Dylan Araps 7df8acc0f1
kiss: Faster conflict resolution. 2020-05-06 22:31:54 +03:00
Dylan Araps e0a44771de
kiss: bump version 2020-05-06 00:51:18 +03:00
Dylan Araps 1c31b264df
kiss: support uncompressed tar archives 2020-05-06 00:48:11 +03:00
Dylan Araps 1933a19e10
kiss: Drop tar's p flag as it's not needed. 2020-05-05 23:08:14 +03:00
Dylan Araps f10cdb1938
kiss: readlink(), run in subshell 2020-05-02 10:00:59 +03:00
Dylan Araps 881c6114b9
docs: update 2020-05-01 23:44:19 +03:00
Dylan Araps 1712618765
kiss: Remove trailing white-space 2020-05-01 19:26:36 +03:00
Dylan Araps 3cbcab11f3
kiss: Portable shasums 2020-05-01 09:47:01 +03:00
Dylan Araps 99025df126
kiss: Swap back to sha256sum 2020-04-30 19:57:38 +03:00
Dylan Araps 8d2f470295
kiss: Various portability fixes.
- Added POSIX shell implementation of the 'readlink' utility for
  use _only_ when the 'readlink' utility is not available.

- Made tar usage more portable. All that is left now is the removal
  of --strip-components 1 for full (presumed) portability.

- Swapped from sha256sum to shasum as it's more portable. This is
  still not a full solution.

Here's a checklist of where we currently are:

POSIX Core utilities (depends coreutils)
- [x] sh        (POSIX)
- [x] find      (POSIX) -type f, -type d, -exec {} [+;], -o, -print, !
- [x] ls        (POSIX) -l, -d
- [x] sed       (POSIX) -n, s/<search>/<replace>/g, /<delete>/d
- [x] grep      (POSIX) -l, -F, -x, -f, -q, -v
- [x] sort      (POSIX) -r, -u, -k
- [x] tee       (POSIX)
- [x] date      (POSIX)
- [x] mkdir     (POSIX) -p
- [x] rm        (POSIX) -f, -r
- [x] rmdir     (POSIX)
- [x] cp        (POSIX) -f, -P, -p, -L, -R
- [x] mv        (POSIX) -f
- [x] chown     (POSIX) -h
- [x] diff      (POSIX) -U

BSD utilities
- [x] install   (BSD, not POSIX) (still portable) -o, -g, -m, -d

Misc
- [x] readlink  (NOT POSIX) (fallback shell implementation)
- [x] su*       (sudo, doas, su) (in order, optional)
- [x] git       (downloads from git) (must link to curl)

Compiler/libc utilities (depends cc & libc)
- [x] readelf   (Part of compiler toolchain) (GNU, LLVM or elfutils)
- [x] strip     (Part of compiler toolchain) (GNU, LLVM or elfutils)
- [x] ldd       (Part of libc)

Tarball compression
- [ ] tar       (must have --strip-components) (busybox, GNU, libarchive))
- [x] bzip2     (widely used) -d, -z
- [x] xz        (widely used) -d, -z, -c, -T
- [x] gzip      (widely used) -d, -6
- [x] zstd      (optional)    -d, -z, -c
- [x] unzip     (optional)
- [ ] shasum    (checksums) (NO standard. Portable across Linux/BSD)
2020-04-30 19:38:37 +03:00
Dylan Araps 3e4e38d002
kiss: Swap to more portable shasum generation 2020-04-30 17:17:41 +03:00
Dylan Araps 62ee15db43
kiss: Use diff instead of cmp 2020-04-30 16:59:25 +03:00
Dylan Araps 400bc8e83e
kiss: Add message for checksums 2020-04-29 16:22:57 +03:00
Dylan Araps 1ad4076c0d
docs: update 2020-04-29 10:12:55 +03:00
Dylan Araps 23c0278f5b
kiss: Use mak_dir to store the file 2020-04-29 10:12:09 +03:00
dylan 5f00b925c8
Merge pull request #141 from E5ten/posix-sed
kiss: replace sed -i with redirection to a temp file
2020-04-29 10:05:16 +03:00
Dylan Araps 79f6f30e8b
kiss: Use war() for other warnings 2020-04-28 18:40:59 +03:00
Dylan Araps 888e9e06d5
kiss: Add print function for warnings 2020-04-28 18:36:53 +03:00
Dylan Araps 1a89e0b0a2
kiss: warn if package only exists in /var/db/kiss/installed 2020-04-28 18:30:57 +03:00
Ethan Sommer be793fb1f7 kiss: replace sed -i with redirection to a temp file 2020-04-28 02:18:36 -04:00
Dylan Araps d46bbf517d
kiss: swap to rm instead of unlink 2020-04-28 08:39:59 +03:00
Dylan Araps d0100b03a1
kiss: Swap to ls -l instead of stat 2020-04-28 07:43:54 +03:00
Dylan Araps 278c222902
kiss: Swap to ls -l for user name 2020-04-28 06:26:36 +03:00
Dylan Araps 4e196bb09c
kiss: Fix directory permissions 2020-04-26 11:00:28 +03:00
Dylan Araps adc4c99a19
kiss: Add back die 2020-04-26 09:29:48 +03:00
dylan d7e251ef02
Merge branch 'master' into kiss-fix-cd 2020-04-26 09:06:41 +03:00
Cliford Sab 7b6ed9bafd kiss: Use suggested primary 2020-04-26 10:38:16 +08:00
Cliford Sab 7e3f208199 kiss: Actually hide an error + whitespace cleanup 2020-04-26 10:31:09 +08:00
Dylan Araps d4a82ec0f1
docs: update 2020-04-25 14:03:51 +03:00
Dylan Araps 6bc7deb64b
kiss: Add support for KISS_ROOT to install 2020-04-25 14:03:34 +03:00
Dylan Araps da605670e0
kiss: look in / 2020-04-25 14:01:05 +03:00
Dylan Araps 1b30642474
kiss: Add case for symlinks which would overwrite a dir 2020-04-25 13:58:51 +03:00
Dylan Araps 83b097bef8
docs: update 2020-04-25 09:56:01 +03:00
Dylan Araps 56a63c4742
Merge branch 'master' of github.com:kisslinux/kiss 2020-04-25 09:01:25 +03:00
Dylan Araps d66ba59b01
kiss: Silent stripping once again 2020-04-25 08:59:44 +03:00
Cliford Sab f059e16494 kiss: Cleanup 2020-04-24 16:41:32 +08:00
Dylan Araps e924bb2ec2
kiss: More portable cp flags 2020-04-22 20:08:47 +03:00
Dylan Araps 132ce20099
kiss: Use pkg_manifest to properly update manifest files 2020-04-22 20:03:39 +03:00
Dylan Araps 40d57d4948
kiss: Clean up install 2020-04-22 19:35:17 +03:00
Dylan Araps 8a4c642d4b
kiss: Use install for installation 2020-04-22 19:29:55 +03:00
Dylan Araps 6ce01392bd
kiss: Use sort to reverse the manifest 2020-04-22 17:51:42 +03:00
Dylan Araps 6f31468c94
kiss: Fix symlink permissions bug 2020-04-22 17:47:13 +03:00
Dylan Araps 16097a5b98
kiss: oops 2020-04-22 17:42:57 +03:00
Dylan Araps f2f2f643f2
kiss: Fix broken symlink handling (runit stuff) 2020-04-22 17:32:08 +03:00
Dylan Araps 285b271dee
kiss: ensure that the owner actually exists 2020-04-22 15:02:28 +03:00
dylan 93ea92ee8e
Merge pull request #136 from kisslinux/no_rsync
kiss: Drop rsync
2020-04-22 14:13:02 +03:00
Dylan Araps b271605467
kiss: Add KISS_FORCE to bypass manifest checks. Fix bug in manifest checker 2020-04-22 14:00:40 +03:00
Dylan Araps 57e27f73cc
kiss: Set permissions for all non dirs 2020-04-22 13:50:02 +03:00
Dylan Araps c542169997
kiss: Add install output 2020-04-22 09:37:46 +03:00
Dylan Araps 33cdc64803
kiss: Add comments to new install function 2020-04-22 09:23:19 +03:00
Dylan Araps 6e3064d0f8
kiss: Remove func subshell use 2020-04-22 09:18:12 +03:00
Dylan Araps c8029d6a71
kiss: Move new install method to function 2020-04-22 09:06:43 +03:00
Dylan Araps 8a49cd6911
kiss: Skip /etc/ 2020-04-22 08:48:16 +03:00
Dylan Araps 776c3f5590
kiss: Drop rsync 2020-04-22 08:41:59 +03:00
Dylan Araps 80f50ca20b
kiss: Abort install if file missing in manifest 2020-04-22 07:45:58 +03:00
Dylan Araps e67bb8e6b8
kiss: Fix shellcheck 2020-04-21 13:05:28 +03:00