Commit Graph

1281 Commits

Author SHA1 Message Date
Dylan Araps
fefd0d7b28
kiss: fix etcsums hang. Closes #176 2020-08-20 18:14:05 +03:00
Dylan Araps
d1c0bb0dba
docs: update 2020-08-20 15:15:40 +03:00
Dylan Araps
18c79222b8
kiss: fix handling of /etc. closes #175 2020-08-20 15:15:16 +03:00
Dylan Araps
6e26703abb
kiss-orphans: drop pkgconf exception 2020-08-20 11:34:37 +03:00
Dylan Araps
dba5144024
docs: update 2020-08-18 09:21:37 +03:00
Dylan Araps
d0f4358f84
minor cleanup 2020-08-15 10:27:35 +03:00
Dylan Araps
93b598d5fa
kiss: stop making build file modifiable by hooks
This was half-assed. I'd much prefer we keep things simple and users
use repositories for this purpose. Either full or partial forks. This
is "proper" and stores the build configuration
2020-08-14 10:24:05 +03:00
Dylan Araps
7cfce11abc
fix shellcheck 2020-08-13 10:35:59 +03:00
Dylan Araps
d6917d5fe1
kiss: Stop showing Git repositories in checksums
This is a backwards compatible change. The package manager will
for the time being /ignore/ checksums lines containing Git
repositories.

These aren't checksums and have no business living in the checksums
file. This file is now strictly for checksums. In the coming months,
this special handling will be lifted.
2020-08-13 10:31:19 +03:00
Dylan Araps
99f61fc340
kiss: add support for directories and absolute file paths as sources
This adds support for both absolute and relative directories in
sources files. Relative file sources have always been supported,
this just extends it to directories.

Absolute paths to directories and files in sources is totally new.

Directories will have their /contents/ copied to the initial build
directory. The second field in the sources file can be used to set
destination location.

Checksums will not be validated for directories of any type. Absolute
file paths do have their checksums validated.

Notes:

The package manager will check to see if the source is a directory
or not. There is no need to have a trailing forward slash (though it
might make sense to enforce this anyway, we'll see).
2020-08-13 01:07:41 +03:00
Dylan Araps
fecf4995f8
kiss: drop filenames from checksums files
With this change, checksums generated by the package manager will no
longer contain the second field (the basename of the file). The second
field is quite useless as ordering is already fixed.

This change is backwards compatible and existing checksums files will
containue to function as normal. As checksums are regenerated (with
updates to packages), the new format will be used.

The compatibility works via checking /only the first column/ in each
checksums file. This is the only part of the file which must match
1:1 as ordering is always the same.

Notes about etcsums:

This change also affects the etcsums file which is used for the
3-way checksum verification for files in /etc/.

Existing etcsums will simply be invalidated with the safest path chosen
(.new file is created) until they are regenerated via a package build.

Ordering is now fixed inside etcsums files. This makes parsing them
faster and more reliable.

This also fixes a theoretical bug with naming conflicts during parsing
of etcsums.
2020-08-13 00:23:43 +03:00
Dylan Araps
487358a047
docs: update 2020-08-12 00:21:34 +03:00
Dylan Araps
f552a75427
kiss: Resolve path to root even if in subshell 2020-08-12 00:20:58 +03:00
Dylan Araps
64e77c91e5
kiss: add repository update hook
The package manager will look for an executable called 'update' in the
repository's root directory. If a KISS repository is one of many
children in a git repository, the hook will only be called once.

This hook is run /after/ a repository has been updated by the package
manager. If your repository is not using git, the hook is run immediately.

If the hook fails (exits non-zero), the package manager will also fail.
Hooks can be written in any language. No arguments are given to the executable.

Closes #174
2020-08-11 21:24:43 +03:00
Dylan Araps
a15c6b74fb
docs: update 2020-08-11 15:50:08 +03:00
Dylan Araps
4e34ad6a6a
kiss: don't automatically pull down submodules when using git sources
This should be done in the build file on an opt-in basis.
2020-08-11 15:49:15 +03:00
Dylan Araps
5df9fbb6b1
docs: update 2020-08-11 11:00:27 +03:00
Dylan Araps
7695d003f5
kiss-chroot: Removed old envar 2020-08-11 10:59:51 +03:00
Dylan Araps
197d8b4329
docs: update 2020-08-11 10:48:51 +03:00
Dylan Araps
45f8562c8e
kiss: allow KISS_PATH to be unset.
This is related to the tarball and default repository location
changes which leave KISS_PATH unset /by default/.

There's no real reason for the package manager to die here. When
no repositories are enabled (or no package is found in KISS_PATH),
the package manager uses /var/db/kiss/installed as a fallback.

Related to: https://github.com/kisslinux/repo/issues/209
2020-08-11 10:45:51 +03:00
Dylan Araps
5c6898f143
kiss-chroot: Allow some things to fail. 2020-07-31 09:53:52 +03:00
Dylan Araps
af24f9bd29
kiss: bump to 4.0.2 2020-07-30 01:49:17 +03:00
Dylan Araps
9228f77274
kiss: Rename .build file to .build-kiss 2020-07-29 19:05:38 +03:00
Dylan Araps
c898c04bc8
kiss: Add message about removal 2020-07-29 19:03:02 +03:00
Dylan Araps
6092dd66a2
kiss: Print to screen which files are skipped during removal. 2020-07-29 19:00:21 +03:00
Dylan Araps
f99fcd5309
kiss: Use $0 instead of hardcoding script name 2020-07-29 17:25:25 +03:00
Dylan Araps
f236f3237d
kiss: bump to 4.0.1 2020-07-29 17:16:51 +03:00
Dylan Araps
380da113eb
kiss: Make pkg_remove_files a little clearer 2020-07-29 17:16:15 +03:00
Dylan Araps
d883c42498
kiss: Oops. 2020-07-29 14:45:26 +03:00
Dylan Araps
aff5097d53
kiss: Make build file accessible to hooks.
Named '.build' to reduce potential conflicts.
May be renamed prior to release. We'll see.
2020-07-29 14:21:07 +03:00
Dylan Araps
8c9b25ac95
kiss: Change secondary color to blue 2020-07-29 09:02:18 +03:00
Dylan Araps
1aaa100139
kiss-chbuild: Use latest tarball 2020-07-28 04:21:41 +03:00
Dylan Araps
554940cd7b
kiss: Drop hardcoded musl reference.
This replaces the package based exemption with one based on C and
POSIX shared library names, removing the hardcoded reference to
musl and adding support for more C libraries.

This needs testing with non-musl systems. Specifically, the
dependency fixer which runs post-build in 'kiss build' should /not/
display anything related to your C library. If it does, please open
an issue.
2020-07-28 04:05:05 +03:00
Dylan Araps
e18826eaf8
kiss: bump to 4.0.0
Bumped major version as we've dropped .la files.
2020-07-28 03:08:21 +03:00
Dylan Araps
6eb62bdd97
kiss: Remove .la files from all packages.
These files are unneeded and become a source of errors when an
autotools build references a non-existing .la file. This was the
case with a recent update to freetype-harfbuzz.

The files are required by libtool to do libtool things, however
libtool works just fine without them. These files are safe to
remove according to upstream and other distributions have already
been doing this for a while.

> https://www.gnu.org/software/automake/faq/autotools-faq.html
>
> 3.1 What are these .la files for and can I safely remove them?
>
> portable encoding of static and shared library names and dependencies.
>
> removing usually only works OK if done in directories which the
> runtime linker searches by default anyway (otherwise you might need
> to set LD_LIBRARY_PATH or an equivalent variable) and only on systems
> where the runtime linker loads indirect library dependencies
> automatically (includes GNU/Linux, GNU, Solaris).

It is recommended that you remove all .la files from your system
if manually updating the package manager to the latest version.
Running 'kiss update' will automatically handle this for you.

The following script will be run on post-install to clean up the
.la files. This can also be run manually. Executing this script
will do nothing if the system is already clean.

  #!/bin/sh

  find "$KISS_ROOT/usr/lib" \
      ! -type d \
      -name \*.la \
      -exec rm -f -- {} +

  find "$KISS_ROOT/var/db/kiss/installed" \
      ! -type d \
      -name manifest \
      -exec sed -i '/.*\.la$/d' {} +

This commit also brings back the removal of charset.alias which was
a part of the default KISS_HOOK prior. It makes much more sense for
it to live alongside this change.
2020-07-28 03:05:55 +03:00
Dylan Araps
f59b725cdd
kiss-owns: Make output simpler.
This changes the output of the utility to the package name of the
match if one exists. The utility is now usable in scripts.
2020-07-28 02:30:09 +03:00
Dylan Araps
a92cb95673
kiss: Simplify pkg_clean(), fixes #173
The package manager will no longer clean up any other pre-existing
cache directories at exit.

- Fixes a portability issue by removing usage of /proc.
- Fixes issues when the user has KISS_PID set.
- Outside of the realm of what the utility should do.
2020-07-25 12:57:40 +03:00
Dylan Araps
5ffa51aa67
kiss: Clear install input error messages 2020-07-24 18:38:42 +03:00
Dylan Araps
284897af22
kiss: Support relative input to the install action.
This adds support for relative paths when passing tarballs to kiss
directly and removes a prevents a misleading and confusing error
message from appearing (a false 'file not found').
2020-07-24 18:30:53 +03:00
Dylan Araps
528b3023a9
kiss: Don't return from pkg_clean
This fixes an issue where a build failure alongside KISS_DEBUG
having a value of '1' prevented the package manager from aborting.
2020-07-24 17:51:07 +03:00
Dylan Araps
b1bd880c07
kiss: Fixes to post-install output. 2020-07-24 02:03:36 +03:00
Dylan Araps
c7b32e6531 Merge branch 'master' of github.com:kisslinux/kiss 2020-07-24 01:44:58 +03:00
Dylan Araps
863f79ca38
kiss: Add environment variable to toggle stripping.
This commit adds KISS_STRIP to allow stripping to be controlled at
runtime for all staged packages. This is also handy when temporarily
needing debugging symbols for a given piece of software.

Defaults to '1', set to '0' to disable stripping.

Example:

KISS_STRIP=0 kiss b zlib
2020-07-24 01:42:04 +03:00
dylan
a5fd9336a7
Merge pull request #172 from muevoid/patch-1
Add submodule support to kiss.
2020-07-21 08:02:25 +03:00
muevoid
27bfa92521
Add submodule support to kiss.
Simple pr that adds support for submodules basically adds no time to repos that dont have submodules as far as I can tell.
2020-07-21 04:59:19 +00:00
Dylan Araps
8848d3f1d3
kiss: Fix bug with empty post-install messages.
This never truly worked as the post-install message would always
ensure that file size is '> 0' despite there being nothing to show
the user.

We now store the output to a variable, ensure it isn't empty and
go on our merry way.
2020-07-18 19:42:14 +03:00
Dylan Araps
47190ffc08
kiss: Hide post-install output and only log at the end.
This prevents duplicate output and output which will just zoom
past alongside the endless scroll of software compilation.
2020-07-18 19:31:36 +03:00
Dylan Araps
d95fc0e299
docs: Drop .txt from README/LICENSE 2020-07-10 13:19:56 +03:00
Dylan Araps
b608d15033
docs: update 2020-07-09 14:43:38 +03:00
Dylan Araps
3607d64300
kiss: bump to 3.1.0 2020-07-08 18:39:18 +03:00