Skip to content

Broken: fishΒ #230

@SuperMatt

Description

@SuperMatt

Not an Upstream Issue

  • I can confirm this issue is only in Soarpkgs' SBUILD

Bug Report Does Not Exist

Package is Not Disabled

  • I have already read the SBUILD & it's NOT Disabled

PKG_ID (Package ID)

github.com.fish-shell.fish-shell

SBUILD URL (Blob)

https://github.com/SuperMatt/soarpkgs/blob/main/binaries/fish/static.official.source.yaml

Describe the bug/issue

The package does not build at all.

$ sbuild build ./static.official.source.yaml --log-level verbose --keep --outdir ./SBUILD-TEST
sbuild v0.1.10
 INFO Building: ./static.official.source.yaml
Linting ./static.official.source.yaml (/home/matthew/gits/soarpkgs/binaries/fish/./static.official.source.yaml)

Performing shellcheck

In /tmp/sbuild-linter-kOzT18ud line 12:
   if [[ "$(uname -m | tr -d '[:space:]')" == "riscv64" ]]; then
                              ^-------^ SC2101 (warning): Named class needs outer [], e.g. [[:digit:]].

For more information:
  https://www.shellcheck.net/wiki/SC2101 -- Named class needs outer [], e.g. ...

In /tmp/sbuild-linter-Ir56pYLv line 5:
[ -d "$(realpath .)/TEMPREPO" ] && rm -rf "$(realpath .)" &>/dev/null && popd &>/dev/null
                                                                         ^--------------^ SC2164 (warning): Use 'popd ... || exit' or 'popd ... || return' in case popd fails.

Did you mean:
[ -d "$(realpath .)/TEMPREPO" ] && rm -rf "$(realpath .)" &>/dev/null && popd &>/dev/null || exit

For more information:
  https://www.shellcheck.net/wiki/SC2164 -- Use 'popd ... || exit' or 'popd ....
[βœ”] Shellcheck passed
[βœ”] Fetched version (HEAD-810a707-251231T074650) using x_exec.pkgver written to ./static.official.source.yaml.pkgver
SBUILD validation successful.
Validated YAML has been written to ./static.official.source.yaml.validated
#!/SBUILD ver @v1.0.0
#SELF: https://raw.githubusercontent.com/pkgforge/soarpkgs/refs/heads/main/binaries/fish/static.official.source.yaml
_disabled: false

pkg: "fish"
pkg_id: "github.com.fish-shell.fish-shell.source"
pkg_type: "static"
category:
  - "ConsoleOnly"
  - "Utility"
description: "Smart and User-friendly Command Line Shell"
distro_pkg:
  alpine:
    - "fish"
  archlinux:
    aur:
      - "fish-git"
    extra:
      - "fish"
  debian:
    - "fish"
  gnuguix:
    - "fish"
  homebrew:
    - "fish"
  nixpkgs:
    - "fish"
    - "fishMinimal"
  stalix:
    - "bin/fish"
homepage:
  - "https://github.com/fish-shell/fish-shell"
maintainer:
  - "Azathothas (https://github.com/Azathothas)"
license:
  - id: "Custom"
    url: "https://github.com/fish-shell/fish-shell/raw/8617964d4dbf03d752fbf094600ef977a36a83ec/COPYING"
note:
  - "[DO NOT RUN] (Meant for pkgforge CI Only)"
  - "Built From Source (Latest Git HEAD). Check/Report @ https://github.com/fish-shell/fish-shell"
provides:
  - "fish"
  - "fish_indent"
  - "fish_key_reader"
repology:
  - "fish"
src_url:
  - "https://github.com/fish-shell/fish-shell"
tag:
  - "Utility"
x_exec:
  host:
    - "aarch64-linux"
    - "riscv64-linux"
    - "x86_64-linux"
  shell: "bash"
  pkgver: |
    pushd "$(mktemp -d)" &>/dev/null && \
    git clone --depth="1" --filter="blob:none" --no-checkout --single-branch --quiet "https://github.com/fish-shell/fish-shell" "./TEMPREPO" &>/dev/null && \
    git --git-dir="./TEMPREPO/.git" --no-pager log -1 --pretty=format:'HEAD-%h-%cd' --date=format:'%y%m%dT%H%M%S' && \
    [ -d "$(realpath .)/TEMPREPO" ] && rm -rf "$(realpath .)" &>/dev/null && popd &>/dev/null
  run: |
    #Build
     mkdir -pv "${SBUILD_TMPDIR}/tmp" && docker run --privileged --net="host" --name "alpine-builder" --pull="always" \
     -e "PKG=${PKG}" -e "PKG_ID=${PKG_ID}" -e "PKG_TYPE=${PKG_TYPE}" -e "PKG_VER=${PKG_VER}" \
     -e "PKGVER=${PKGVER}" -e "SBUILD_PKG=${SBUILD_PKG}" -e "SBUILD_PKGVER=${SBUILD_PKGVER}" \
     --volume "${SBUILD_TMPDIR}/tmp:/tmp:rw" \
     "ghcr.io/pkgforge/devscripts/alpine-builder:$(uname -m)" \
      bash -l -c '
      #Setup ENV
       set -x ; mkdir -p "/build-bins" && pushd "$(mktemp -d)" &>/dev/null
       [[ -s "${HOME}/.cargo/env" ]] && source "${HOME}/.cargo/env"
       if [[ "$(uname -m | tr -d '[:space:]')" == "riscv64" ]]; then
         RUST_TARGET="$(rustc -Vv 2>/dev/null | sed -n "s/^[[:space:]]*host[[:space:]]*:[[:space:]]*//p" | grep -i "riscv" | tr -d "[:space:]")"
         if [[ -n "${RUST_TARGET//[[:space:]]/}" ]]; then
           export RUST_TARGET
         else
           rustc -Vv ; exit 1
         fi
       else
         rustup default nightly
         rustup component add rust-src --toolchain nightly
         export RUST_TARGET="$(uname -m)-unknown-linux-musl"
         rustup target add "${RUST_TARGET}"
       fi
       RUST_FLAGS=()
       RUST_FLAGS+=("-C target-feature=+crt-static")
       RUST_FLAGS+=("-C default-linker-libraries=yes")
       if echo "${RUST_TARGET}" | grep -Eqiv "alpine|gnu"; then
         RUST_FLAGS+=("-C link-self-contained=yes")
       fi
       RUST_FLAGS+=("-C prefer-dynamic=no")
       RUST_FLAGS+=("-C embed-bitcode=yes")
       RUST_FLAGS+=("-C lto=yes")
       RUST_FLAGS+=("-C opt-level=z")
       RUST_FLAGS+=("-C debuginfo=none")
       RUST_FLAGS+=("-C strip=symbols")
       RUST_FLAGS+=("-C linker=clang")
       RUST_FLAGS+=("-C link-arg=-fuse-ld=$(which mold)")
       RUST_FLAGS+=("-C link-arg=-Wl,--Bstatic")
       RUST_FLAGS+=("-C link-arg=-Wl,--static")
       RUST_FLAGS+=("-C link-arg=-Wl,-S")
       RUST_FLAGS+=("-C link-arg=-Wl,--build-id=none")
       export RUSTFLAGS="${RUST_FLAGS[*]}"
      #Build
       git clone --filter "blob:none" --quiet "https://github.com/fish-shell/fish-shell" "./TEMPREPO" && cd "./TEMPREPO/"
       echo -e "\n[+] Target: ${RUST_TARGET}"
       echo -e "[+] Flags: ${RUSTFLAGS}\n"
       sed "/^\[profile\.release\]/,/^$/d" -i "./Cargo.toml" ; echo -e "\n[profile.release]\nstrip = true\nopt-level = 3\nlto = true" >> "./Cargo.toml"
       rm -rvf "./.cargo" rust-toolchain* 2>/dev/null
       cargo build --workspace --target "${RUST_TARGET}" \
         --all-features \
         --jobs="$(($(nproc)+1))" \
         --release \
         --keep-going \
         --verbose
       find -L "./target/${RUST_TARGET}/release" -maxdepth 1 -type f 2>/dev/null
      #Copy
       find "./target/${RUST_TARGET}/release" -maxdepth 1 -type f -exec file -i "{}" \; | grep -Ei "application/.*executable|inode/symlink|text/x-perl|text/.*script" | cut -d":" -f1 | xargs realpath --no-symlinks | xargs -I "{}" rsync -achvL "{}" "/build-bins/"
       ( askalono --format "json" crawl --follow "$(realpath .)" | jq -r ".. | objects | .path? // empty" | head -n 1 | xargs -I "{}" cp -fv "{}" "/build-bins/LICENSE" ) 2>/dev/null
      #Strip
       find "/build-bins/" -type f -exec objcopy --remove-section=".comment" --remove-section=".note.*" "{}" \;
       find "/build-bins/" -type f ! -name "*.no_strip" -exec strip --strip-all --verbose "{}" 2>/dev/null \;
       find "/build-bins/" -type f -exec bash -c "echo && realpath {} && readelf --section-headers {} 2>/dev/null" \;
       file "/build-bins/"* && stat -c "%n:         %s Bytes" "/build-bins/"* && \
       du "/build-bins/"* --bytes --human-readable --time --time-style="full-iso" --summarize
       popd &>/dev/null
      '
    #Copy & Meta
     docker cp "alpine-builder:/build-bins/." "${SBUILD_TMPDIR}/"
     [ -s "${SBUILD_TMPDIR}/LICENSE" ] && cp -fv "${SBUILD_TMPDIR}/LICENSE" "${SBUILD_OUTDIR}/LICENSE"
     find "${SBUILD_TMPDIR}" -maxdepth 1 -type f -exec file -i "{}" \; | grep -Ei "application/.*executable|inode/symlink|text/x-perl|text/.*script" | cut -d":" -f1 | xargs realpath --no-symlinks | xargs -I "{}" rsync -achvL "{}" "${SBUILD_OUTDIR}"

Downloading license from https://github.com/fish-shell/fish-shell/raw/8617964d4dbf03d752fbf094600ef977a36a83ec/COPYING to LICENSE
DEBUG connecting to 20.26.156.215:443
DEBUG connected to 20.26.156.215:443
DEBUG binding client connection
DEBUG client connection bound
DEBUG send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384, max_header_list_size: 16384 }
DEBUG pooling idle connection for ("https", github.com)
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
DEBUG Connection{peer=Client}: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x0), max_concurrent_streams: 100, initial_window_size: 67108864, max_frame_size: 68608, enable_connect_protocol: 1 }
DEBUG Connection{peer=Client}: send frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384, max_header_list_size: 16384 }
DEBUG Connection{peer=Client}: received frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG connecting to [2606:50c0:8000::154]:443
DEBUG connected to [2606:50c0:8000::154]:443
DEBUG binding client connection
DEBUG client connection bound
DEBUG send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384, max_header_list_size: 16384 }
DEBUG pooling idle connection for ("https", raw.githubusercontent.com)
DEBUG Connection{peer=Client}: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
DEBUG Connection{peer=Client}: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x0), max_concurrent_streams: 100 }
DEBUG Connection{peer=Client}: send frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 16711681 }
DEBUG Connection{peer=Client}: received frame=Settings { flags: (0x1: ACK) }
DEBUG Connection{peer=Client}: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384, max_header_list_size: 16384 }
DEBUG Connection{peer=Client}: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
DEBUG Connection{peer=Client}: received frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
DEBUG Connection{peer=Client}: send frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(0) }
DEBUG Connection{peer=Client}: send frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(0) }
DEBUG Connection{peer=Client}: Connection::poll; connection error error=GoAway(b"", NO_ERROR, Library)
DEBUG Connection{peer=Client}: Connection::poll; connection error error=GoAway(b"", NO_ERROR, Library)
+ mkdir -pv /home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source/SBUILD_TEMP/tmp
mkdir: created directory '/home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source/SBUILD_TEMP/tmp'
++ uname -m
+ docker run --privileged --net=host --name alpine-builder --pull=always -e PKG=fish -e PKG_ID=github.com.fish-shell.fish-shell.source -e PKG_TYPE=static -e PKG_VER=HEAD-810a707-251231T074650 -e PKGVER=HEAD-810a707-251231T074650 -e SBUILD_PKG=fish.static -e SBUILD_PKGVER=HEAD-810a707-251231T074650 --volume /home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source/SBUILD_TEMP/tmp:/tmp:rw ghcr.io/pkgforge/devscripts/alpine-builder:aarch64 bash -l -c '
  #Setup ENV
   set -x ; mkdir -p "/build-bins" && pushd "$(mktemp -d)" &>/dev/null
   [[ -s "${HOME}/.cargo/env" ]] && source "${HOME}/.cargo/env"
   if [[ "$(uname -m | tr -d [:space:])" == "riscv64" ]]; then
     RUST_TARGET="$(rustc -Vv 2>/dev/null | sed -n "s/^[[:space:]]*host[[:space:]]*:[[:space:]]*//p" | grep -i "riscv" | tr -d "[:space:]")"
     if [[ -n "${RUST_TARGET//[[:space:]]/}" ]]; then
       export RUST_TARGET
     else
       rustc -Vv ; exit 1
     fi
   else
     rustup default nightly
     rustup component add rust-src --toolchain nightly
     export RUST_TARGET="$(uname -m)-unknown-linux-musl"
     rustup target add "${RUST_TARGET}"
   fi
   RUST_FLAGS=()
   RUST_FLAGS+=("-C target-feature=+crt-static")
   RUST_FLAGS+=("-C default-linker-libraries=yes")
   if echo "${RUST_TARGET}" | grep -Eqiv "alpine|gnu"; then
     RUST_FLAGS+=("-C link-self-contained=yes")
   fi
   RUST_FLAGS+=("-C prefer-dynamic=no")
   RUST_FLAGS+=("-C embed-bitcode=yes")
   RUST_FLAGS+=("-C lto=yes")
   RUST_FLAGS+=("-C opt-level=z")
   RUST_FLAGS+=("-C debuginfo=none")
   RUST_FLAGS+=("-C strip=symbols")
   RUST_FLAGS+=("-C linker=clang")
   RUST_FLAGS+=("-C link-arg=-fuse-ld=$(which mold)")
   RUST_FLAGS+=("-C link-arg=-Wl,--Bstatic")
   RUST_FLAGS+=("-C link-arg=-Wl,--static")
   RUST_FLAGS+=("-C link-arg=-Wl,-S")
   RUST_FLAGS+=("-C link-arg=-Wl,--build-id=none")
   export RUSTFLAGS="${RUST_FLAGS[*]}"
  #Build
   git clone --filter "blob:none" --quiet "https://github.com/fish-shell/fish-shell" "./TEMPREPO" && cd "./TEMPREPO/"
   echo -e "\n[+] Target: ${RUST_TARGET}"
   echo -e "[+] Flags: ${RUSTFLAGS}\n"
   sed "/^\[profile\.release\]/,/^$/d" -i "./Cargo.toml" ; echo -e "\n[profile.release]\nstrip = true\nopt-level = 3\nlto = true" >> "./Cargo.toml"
   rm -rvf "./.cargo" rust-toolchain* 2>/dev/null
   cargo build --workspace --target "${RUST_TARGET}" \
     --all-features \
     --jobs="$(($(nproc)+1))" \
     --release \
     --keep-going \
     --verbose
   find -L "./target/${RUST_TARGET}/release" -maxdepth 1 -type f 2>/dev/null
  #Copy
   find "./target/${RUST_TARGET}/release" -maxdepth 1 -type f -exec file -i "{}" \; | grep -Ei "application/.*executable|inode/symlink|text/x-perl|text/.*script" | cut -d":" -f1 | xargs realpath --no-symlinks | xargs -I "{}" rsync -achvL "{}" "/build-bins/"
   ( askalono --format "json" crawl --follow "$(realpath .)" | jq -r ".. | objects | .path? // empty" | head -n 1 | xargs -I "{}" cp -fv "{}" "/build-bins/LICENSE" ) 2>/dev/null
  #Strip
   find "/build-bins/" -type f -exec objcopy --remove-section=".comment" --remove-section=".note.*" "{}" \;
   find "/build-bins/" -type f ! -name "*.no_strip" -exec strip --strip-all --verbose "{}" 2>/dev/null \;
   find "/build-bins/" -type f -exec bash -c "echo && realpath {} && readelf --section-headers {} 2>/dev/null" \;
   file "/build-bins/"* && stat -c "%n:         %s Bytes" "/build-bins/"* && \
   du "/build-bins/"* --bytes --human-readable --time --time-style="full-iso" --summarize
   popd &>/dev/null
  '
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Trying to pull ghcr.io/pkgforge/devscripts/alpine-builder:aarch64...
Getting image source signatures
Copying blob sha256:79f8a12a900795e761449a6b34f2a6df24499a419f041732c0b37bfe4459b608
Copying blob sha256:845591785a48207c5f57ed962cbcdcf6e84601571f719382191204083409df39
Copying blob sha256:5d7d1c16195a3a8e33cae8705f0597603a15164aa9dd79c0fa32641ad7413b63
Copying blob sha256:0ad83f8aa1a903b71c9649968a9938eb59962c16a0c0b7761aeea9bec2709808
Copying blob sha256:e458004e4c65b701815828b25351fd8050402bfd13ef234518a15d05d3564e9b
Copying blob sha256:6c4e66b7a484197e8ebc2ff46f442854fcd36e202e844fcc093ceb949b80a82e
Error: copying system image from manifest list: writing blob: adding layer with blob "sha256:845591785a48207c5f57ed962cbcdcf6e84601571f719382191204083409df39": creating read-only layer with ID "2e6c89a73ba34e8e4af373458f794f19dcfa375e4f70087b4a1e4edee6956fa3": no space left on device
+ docker cp alpine-builder:/build-bins/. /home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source/SBUILD_TEMP/
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Error: container "alpine-builder" does not exist
+ '[' -s /home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source/SBUILD_TEMP/LICENSE ']'
+ find /home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source/SBUILD_TEMP -maxdepth 1 -type f -exec file -i '{}' ';'
+ grep -Ei 'application/.*executable|inode/symlink|text/x-perl|text/.*script'
+ cut -d: -f1
+ xargs realpath --no-symlinks
+ xargs -I '{}' rsync -achvL '{}' /home/matthew/gits/soarpkgs/binaries/fish/./SBUILD-TEST/github.com.fish-shell.fish-shell.source
realpath: missing operand
Try 'realpath --help' for more information.
[⚠] Provide 'fish' does not exist.

Maintainers

@Azathothas

Soar Version

$ soar --version && soar env
soar-cli 0.9.1
SOAR_CONFIG=/home/matthew/.config/soar/config.toml
SOAR_BIN=/home/matthew/.local/share/soar/bin
SOAR_DB=/home/matthew/.local/share/soar/db
SOAR_CACHE=/home/matthew/.local/share/soar/cache
SOAR_PACKAGES=/home/matthew/.local/share/soar/packages
SOAR_REPOSITORIES=/home/matthew/.local/share/soar/repos

Additional Information

No response

Metadata

Metadata

Assignees

Labels

bugBroken Packages or Any other Issue related to Packaging

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions