-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
patchqueue
symlink name incorrect in README.md
#8
Comments
Where can I read about that? I'm noob user of guilt. I'm using There is no complaint from Creating symbolic links when one exists is a problem. It will lead to a broken directory tree OTOH, I see that Guilt names the branch after the directory, so if directory content changes without removing and reapplying patches, we can end up with old patches applied to the tree. If you know where I can read about best practices for managing patch queues using Guild, I would appreciate that. Right now, I recreate the build tree whenever I need it. |
To be honest, I'd never heard of Following the When I changed the symlink name from |
If the step cloning Since I cannot reproduce the issue based on your order of operations, it is difficult to fix or change the README. However, I can link to this issue to indicate that such a situation may happen in some configurations. Of course, the best would be to realize the difference between our systems. |
I ran a (very!) rough script to get to this situation, so hopefully this also works as a reproducer... (Also, if I've completely misunderstood then please let me know! I also always seem to get arguments to the #! /usr/bin/env bash
set -eu
set -o pipefail
VER='v24.05.00.01'
CB_VER="$(echo "${VER#v}" | cut -d'.' -f 1-2 )"
if ! command -v guilt >/dev/null 2>&1; then
echo >&2 "FATAL: 'guilt' missing... :o"
exit 1
fi
cd "$( dirname "$( readlink -e "${0}" )" )" || exit 1
set -o xtrace
[[ -d coreboot ]] || git clone https://review.coreboot.org/coreboot
[[ -d pce-fw-builder ]] || git clone https://github.com/pcengines/pce-fw-builder.git
# Latest is currently 24.08 - unclear whether Dasharo supports this?
git -C coreboot fetch --all
git -C coreboot checkout "tags/${CB_VER}" -b patchqueue || :
git -C coreboot clone https://github.com/Dasharo/dasharo-pq.git .git/patches || :
# Latest is currently v24.05.00.01
git -C coreboot/.git/patches checkout "tags/${VER#v}"
# > "Point the `patchqueue` Branch at the Patches Inside `.git/patches`:"
#
# It's not entirely clear to me from the Dasharo instructions above as to what
# operation on which branch and/or directory we're actually intending to carry
# out?
#
[[ -e coreboot/.git/patches/patchqueue ]] ||
ln -s patches coreboot/.git/patches/patchqueue
if [[ -e coreboot/.git/patches/patches/patches ]]; then
echo >&2 "ERROR: Bad 'ln' - 'coreboot/.git/patches/patches/patches' has been created"
exit 1
fi
[[ -e "coreboot/.git/patches/patchqueue-$(date +'%Y-%m-%d')" ]] ||
ln -s patches "coreboot/.git/patches/patchqueue-$(date +'%Y-%m-%d')"
if [[ -e coreboot/.git/patches/patches/patches ]]; then
echo >&2 "ERROR: Bad 'ln' - 'coreboot/.git/patches/patches/patches' has been created"
exit 1
fi
touch coreboot/.git/patches/patchqueue/status
pushd coreboot >/dev/null || exit 1
# Requires dev-vcs/guilt...
#
# In case of issues see https://github.com/Dasharo/dasharo-pq:
#
# 'guilt pop' until the breakage is at the top of the stack;
# Update as necessary;
# 'guilt refresh';
# 'guilt push -a'
#
# ... alternatively, 'guilt push -f' will force patching, at which point '.rej'
# files can be manually merged.
#
guilt init || :
guilt push -a
guilt applied
echo "Annotating vesion $(git describe) as '${VER}'"
git tag | grep -qF -- "${VER}" ||
git tag -a "${VER}" -m "Dasharo ${VER}"
popd >/dev/null
if ! [[ -d pce-fw-builder ]]; then
echo "FATAL: Directory '${PWD}' doesn't contain a check-out of" \
"'pce-fw-builder'"
exit 1
fi
git -C pce-fw-builder fetch --all
#git -C pce-fw-builder checkout 2.0.1
git -C pce-fw-builder checkout master
pushd pce-fw-builder >/dev/null || exit 1
docker() {
local -a args=() env=()
local arg=''
local action=''
local TMPDIR=''
TMPDIR="$( sed 's/#.*$//' /etc/containers/containers.conf |
grep image_copy_tmp_dir |
cut -d'"' -f 2
)"
for arg in "${@:-}"; do
case "${arg:-}" in
run)
action='run'
env+=( --env TERM="${TERM:-}" )
;;
build)
action='build'
env+=( --build-arg TERM="${TERM:-}" )
;;
*)
args+=( "${arg}" )
;;
esac
done
args=( ${action:-} ${env[@]:-} ${args[@]:-} )
sudo TMPDIR="${TMPDIR:-"/var/tmp"}" podman "${args[@]}"
}
export -f docker
docker build . -t "pcengines/pce-fw-builder:${VER}"
#docker build . -t "pcengines/pce-fw-builder:mainline" -f Dockerfile.ml # Missing
export SDK_VER="${VER}"
if [[ -e build_apus.sh ]] && [[ "${1:-}" != 'efi' ]] ; then
./build.sh dev-build "$( readlink -e ../coreboot )" apu2 distclean &&
./build_apus.sh "$( readlink -e ../coreboot )" apu2
else
./build.sh dev-build "$( readlink -e ../coreboot )" apu2 distclean &&
cp ../coreboot/configs/config.pcengines_seabios_apu2 ../coreboot/.config &&
./build.sh dev-build "$( readlink -e ../coreboot )" apu2 olddefconfig &&
./build.sh dev-build "$( readlink -e ../coreboot )" apu2 menuconfig &&
./build.sh dev-build "$( readlink -e ../coreboot )" apu2 CPUS=$(nproc)
fi
# vi: set colorcolumn=80: |
guilt-0.36
seems to require a directory namedpatchequeue-$(date date '+%Y-%m-%d')
- if onlypatchqueue
exists then a dated directory is instead created and no patches are found.The text was updated successfully, but these errors were encountered: