Age | Commit message (Collapse) | Author |
|
There are two downsizes to using sed; it line-buffers, and (the existing
pattern) doesn't handle '\r'.
So, now I've included a Perl helper program to do a better job.
I'd originally written it in C, and while that version was faster (the Perl
version stutters occasionally), it required recompilation for different
architectures. I could have gotten around that with tcc, but I didn't want
to add any dependencies. Which is why I settled on Perl. It's part of
group=(base), and it is required by packages in group=(base-devel), so I
can count on it always being there.
It doesn't handle every movement character, just '\n' and '\r', but that's
enough for curl and pacman.
|
|
Conflicts:
src/abslibre-tools/createworkdir
|
|
|
|
|
|
We split chrootbuild so that the initialization bit runs before
hook_pre_build.
|
|
|
|
|
|
|
|
User-facing changes:
- libremessages: `lock_open_write` became `lock`
- libremessages: `lock_open_read` became `slock`
- librechroot: learned the `-r` and `-w` flags to do bind mounts.
Internal changes:
The changes to librechroot were pretty straight-forward; the biggest
change is that `archroot` got split into `mkarchroot` and
`arch-nspawn`.
libremakepkg got a major overhaul Honestly, the changes to
libremakepklg probably could have been a lot smaller, but... I wanted
to do it right/be clean. makechrootpkg in devtools got cleaned up a
lot, actually a lot of the same changes I was making. But, the small
differences between the way we did things made it less than simple to
adjust. The biggest changes in terms of conflict for me are how
devtools now uses bind-mounts to put files in the chroot, and that the
/chrootbuild file is more complicated.
I handled a lot of the complexity by moving things out of the main
program, and adding hooks for non-core functionality, including
chcleanup, distcc compatability hacks, and PKGBUILD/pkg checking.
Unfortunately, the files containing the hooks are currently
hard-coded. Perhaps they will be truly pluggable in the future. That
might be neat. Or over-complicated. We'll see where it goes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Replace their usages with `load_files *` and `check_vars *`
|
|
* install all library files to $(libexecdir)/libretools, instead of
- $(bindir)
- $(datadir)/libretools
- $(datadir)/devtools
* symlink the executable library files into $(bindir)
* add the tool `librelib`
* instead of ". /path/to/lib.sh", use ". $(librelib lib.sh)"
* mark all libraries with shebangs of what options they support
* move blacklist.sh to libreblacklist
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `src/devtools`: Redo to get devtools from another location, and patch it
* `src/chroot-tools/{chcleanup,chroot.conf}`: Only install 'base-devel' by
default
* libremkchroot: deprecate in favor of `librechroot make`
* librechroot:
- redo option parsing to be a "sub-command" (git-like) interface,
instead of having esoteric flags (pacman-like).
- add more documentation.
- allow COPY to be an absolute path
- generally clean up and use updated functions from `makechrootpkg.sh`
* libremakepkg:
- allow COPY to be an absolute path
- update to work with the new `makechrootpkg.sh`:
- `makechrootpkg.sh:chroot_exec()` -> `libremakepkg:run()`
- `makechrootpkg.sh:chroot_init()` -> `libremakepkg:chroot_init()`
- All functions from `makechrootpkg.sh` are wrapped, because they
don't work with `set -euE`.
- Other small changes
|
|
|
|
|
|
|
|
|
|
Use it for librechroot, libremakepkg, libremkchroot
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* buildenv: delete; this is done by `mkarchroot`
* librechroot:
- adopt `archbuild`'s concept of CHROOT and CHROOTCOPY
- add `-l` option to set the CHROOTCOPY
* libremakepkg:
- adopt `archbuild`'s concept of CHROOT and CHROOTCOPY
- add `-l` option to set the CHROOTCOPY
- pass options to `makechrootpkg` and `makepkg` the way `-h` always
said it did
* libremkchroot:
- adopt `archbuild`'s concept of CHROOT and CHROOTCOPY
- remove `-c` option to set the pacman cache
- remove `-f` option to force overwrite
|
|
|