FWDekker / mommy

mommy's here to support you, in any shell, on any system~ ❤️
The Unlicense
197 stars 5 forks source link

Shellspec fails to install when installing mommy using `yay` #128

Closed Bikoil closed 3 months ago

Bikoil commented 3 months ago

Shellspec won't install

Hey so i tried installing mommy using yay but Im experiencing this error when it installs shellspec

AUR Explicit (1): mommy-1.5.0-1
AUR Check Dependency (1): shellspec-0.28.1-2
:: PKGBUILD up to date, skipping download: mommy
:: PKGBUILD up to date, skipping download: shellspec
  2 mommy                                    (Build Files Exist)
  1 shellspec                                (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> 
  2 mommy                                    (Build Files Exist)
  1 shellspec                                (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> 

==> Making package: mommy 1.5.0-1 (Sat 13 Jul 2024 05:30:39 PM EEST)
==> Retrieving sources...
  -> Updating mommy git repo...
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    mommy ... Skipped
==> Making package: shellspec 0.28.1-2 (Sat 13 Jul 2024 05:30:40 PM EEST)
==> Retrieving sources...
  -> Updating shellspec git repo...
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    shellspec ... Skipped
:: (1/2) Parsing SRCINFO: mommy
:: (2/2) Parsing SRCINFO: shellspec
==> Making package: shellspec 0.28.1-2 (Sat 13 Jul 2024 05:30:42 PM EEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating shellspec git repo...
==> Validating source files with sha256sums...
    shellspec ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of shellspec git repo...
Cloning into 'shellspec'...
done.
Switched to a new branch 'makepkg'
==> Sources are ready.
==> Making package: shellspec 0.28.1-2 (Sat 13 Jul 2024 05:30:44 PM EEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Removing existing $pkgdir/ directory...
==> Starting check()...
./shellspec
         888               888 888
         888               888 888
         888               888 888
.d8888b  88888b.   .d88b.  888 888 .d8888b  88888b.   .d88b.   .d8888b
88K      888 "88b d8P  Y8b 888 888 88K      888 "88b d8P  Y8b d88P"
"Y8888b. 888  888 88888888 888 888 "Y8888b. 888  888 88888888 888
     X88 888  888 Y8b.     888 888      X88 888 d88P Y8b.     Y88b.
 88888P' 888  888  "Y8888  888 888  88888P' 88888P"   "Y8888   "Y8888P
                                            888
                                            888
                                            888

Guide: If you want to file stat tests, you need to create files
under the 'spec/fixture/stat directory'.
You can create those files by executing the fixture:stat:prepare task.
Some files require root privileges to create.
This step is optional. If these files do not exist, tests are skipped.

Example:

# without root privileges
$ shellspec --task fixture:stat:prepare

# with root privileges
$ sudo $(which shellspec) --task fixture:stat:prepare

Note: This message can be hidden with --no-banner option.
----------------------------------------------------------------------------
Running: /bin/sh [bash 5.2.26(1)-release]
......................................................................................................................................................................................................................................................................................................................................................................................................................ssssssssssssssssssssssssssssssss........................................................................ssssssss....................................................................................................................W......................................W.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Examples:
  1) core/matchers/be/stat.sh be symlink matcher example
     1.1) SKIPPED: not exist symlink file

          # spec/core/matchers/be/stat_spec.sh:87

  2) core/matchers/be/stat.sh be pipe matcher example
     2.1) SKIPPED: not exist pipe file

          # spec/core/matchers/be/stat_spec.sh:115

  3) core/matchers/be/stat.sh be socket matcher example
     3.1) SKIPPED: not exist socket file

          # spec/core/matchers/be/stat_spec.sh:142

  4) core/matchers/be/stat.sh be readable matcher example
     4.1) SKIPPED: not exist readable file

          # spec/core/matchers/be/stat_spec.sh:169

  5) core/matchers/be/stat.sh be writable matcher example
     5.1) SKIPPED: not exist writable file

          # spec/core/matchers/be/stat_spec.sh:198

  6) core/matchers/be/stat.sh be executable matcher example
     6.1) SKIPPED: not exist executable file

          # spec/core/matchers/be/stat_spec.sh:226

  7) core/matchers/be/stat.sh be block device matcher example
     7.1) SKIPPED: not exist block-device file

          # spec/core/matchers/be/stat_spec.sh:254

  8) core/matchers/be/stat.sh be character device matcher example
     8.1) SKIPPED: not exist character-device file

          # spec/core/matchers/be/stat_spec.sh:282

  9) core/matchers/has/stat.sh has setgid matcher example
     9.1) SKIPPED: not exist setgid file

          # spec/core/matchers/has/stat_spec.sh:12

  10) core/matchers/has/stat.sh has setuid matcher example
      10.1) SKIPPED: not exist setuid file

            # spec/core/matchers/has/stat_spec.sh:41

  11) core/subjects/line.sh line subject gets undefined when stdout is undefined
      When run shellspec_subject_line 1 _modifier_

      11.1) WARNING: There was output to stderr but not found expectation

              stderr: /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/modifiers/line.sh: line 56: pop_var_context: head of shell_variables not a function context
              /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/syntax.sh: line 20: pop_var_context: head of shell_variables not a function context

            # spec/core/subjects/line_spec.sh:26-30

  12) core/subjects/word.sh word subject gets undefined when stdout is undefined
      When run shellspec_subject_word 1 _modifier_

      12.1) WARNING: There was output to stderr but not found expectation

              stderr: /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/modifiers/word.sh: line 56: pop_var_context: head of shell_variables not a function context
              /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/syntax.sh: line 20: pop_var_context: head of shell_variables not a function context

            # spec/core/subjects/word_spec.sh:24-28

Finished in 28.48 seconds (user 26.05 seconds, sys 8.30 seconds)
1619 examples, 0 failures, 2 warnings, 40 skips (muted 30 skips)

Notable examples: (Listed here do not affect your suite's status)

shellspec spec/core/matchers/be/stat_spec.sh:89 # 1) core/matchers/be/stat.sh be symlink matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:117 # 2) core/matchers/be/stat.sh be pipe matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:144 # 3) core/matchers/be/stat.sh be socket matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:171 # 4) core/matchers/be/stat.sh be readable matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:200 # 5) core/matchers/be/stat.sh be writable matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:228 # 6) core/matchers/be/stat.sh be executable matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:256 # 7) core/matchers/be/stat.sh be block device matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:284 # 8) core/matchers/be/stat.sh be character device matcher example SKIPPED
shellspec spec/core/matchers/has/stat_spec.sh:14 # 9) core/matchers/has/stat.sh has setgid matcher example SKIPPED
shellspec spec/core/matchers/has/stat_spec.sh:43 # 10) core/matchers/has/stat.sh has setuid matcher example SKIPPED

Failure examples / Errors: (Listed here affect your suite's status)

shellspec spec/core/subjects/line_spec.sh:26 # 11) core/subjects/line.sh line subject gets undefined when stdout is undefined WARNED
shellspec spec/core/subjects/word_spec.sh:24 # 12) core/subjects/word.sh word subject gets undefined when stdout is undefined WARNED

make: *** [Makefile:57: test] Error 101
==> ERROR: A failure occurred in check().
    Aborting...
 -> Failed to install layer, rolling up to next layer.error:error making: shellspec - exit status 4
==> Making package: shellspec 0.28.1-2 (Sat 13 Jul 2024 05:31:13 PM EEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating shellspec git repo...
==> Validating source files with sha256sums...
    shellspec ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of shellspec git repo...
Cloning into 'shellspec'...
done.
Switched to a new branch 'makepkg'
==> Sources are ready.
==> Making package: shellspec 0.28.1-2 (Sat 13 Jul 2024 05:31:15 PM EEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Removing existing $pkgdir/ directory...
==> Starting check()...
./shellspec
         888               888 888
         888               888 888
         888               888 888
.d8888b  88888b.   .d88b.  888 888 .d8888b  88888b.   .d88b.   .d8888b
88K      888 "88b d8P  Y8b 888 888 88K      888 "88b d8P  Y8b d88P"
"Y8888b. 888  888 88888888 888 888 "Y8888b. 888  888 88888888 888
     X88 888  888 Y8b.     888 888      X88 888 d88P Y8b.     Y88b.
 88888P' 888  888  "Y8888  888 888  88888P' 88888P"   "Y8888   "Y8888P
                                            888
                                            888
                                            888

Guide: If you want to file stat tests, you need to create files
under the 'spec/fixture/stat directory'.
You can create those files by executing the fixture:stat:prepare task.
Some files require root privileges to create.
This step is optional. If these files do not exist, tests are skipped.

Example:

# without root privileges
$ shellspec --task fixture:stat:prepare

# with root privileges
$ sudo $(which shellspec) --task fixture:stat:prepare

Note: This message can be hidden with --no-banner option.
----------------------------------------------------------------------------
Running: /bin/sh [bash 5.2.26(1)-release]
......................................................................................................................................................................................................................................................................................................................................................................................................................ssssssssssssssssssssssssssssssss........................................................................ssssssss....................................................................................................................W......................................W.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Examples:
  1) core/matchers/be/stat.sh be symlink matcher example
     1.1) SKIPPED: not exist symlink file

          # spec/core/matchers/be/stat_spec.sh:87

  2) core/matchers/be/stat.sh be pipe matcher example
     2.1) SKIPPED: not exist pipe file

          # spec/core/matchers/be/stat_spec.sh:115

  3) core/matchers/be/stat.sh be socket matcher example
     3.1) SKIPPED: not exist socket file

          # spec/core/matchers/be/stat_spec.sh:142

  4) core/matchers/be/stat.sh be readable matcher example
     4.1) SKIPPED: not exist readable file

          # spec/core/matchers/be/stat_spec.sh:169

  5) core/matchers/be/stat.sh be writable matcher example
     5.1) SKIPPED: not exist writable file

          # spec/core/matchers/be/stat_spec.sh:198

  6) core/matchers/be/stat.sh be executable matcher example
     6.1) SKIPPED: not exist executable file

          # spec/core/matchers/be/stat_spec.sh:226

  7) core/matchers/be/stat.sh be block device matcher example
     7.1) SKIPPED: not exist block-device file

          # spec/core/matchers/be/stat_spec.sh:254

  8) core/matchers/be/stat.sh be character device matcher example
     8.1) SKIPPED: not exist character-device file

          # spec/core/matchers/be/stat_spec.sh:282

  9) core/matchers/has/stat.sh has setgid matcher example
     9.1) SKIPPED: not exist setgid file

          # spec/core/matchers/has/stat_spec.sh:12

  10) core/matchers/has/stat.sh has setuid matcher example
      10.1) SKIPPED: not exist setuid file

            # spec/core/matchers/has/stat_spec.sh:41

  11) core/subjects/line.sh line subject gets undefined when stdout is undefined
      When run shellspec_subject_line 1 _modifier_

      11.1) WARNING: There was output to stderr but not found expectation

              stderr: /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/modifiers/line.sh: line 56: pop_var_context: head of shell_variables not a function context
              /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/syntax.sh: line 20: pop_var_context: head of shell_variables not a function context

            # spec/core/subjects/line_spec.sh:26-30

  12) core/subjects/word.sh word subject gets undefined when stdout is undefined
      When run shellspec_subject_word 1 _modifier_

      12.1) WARNING: There was output to stderr but not found expectation

              stderr: /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/modifiers/word.sh: line 56: pop_var_context: head of shell_variables not a function context
              /home/bik/.cache/yay/shellspec/src/shellspec/lib/core/syntax.sh: line 20: pop_var_context: head of shell_variables not a function context

            # spec/core/subjects/word_spec.sh:24-28

Finished in 29.81 seconds (user 27.24 seconds, sys 9.01 seconds)
1619 examples, 0 failures, 2 warnings, 40 skips (muted 30 skips)

Notable examples: (Listed here do not affect your suite's status)

shellspec spec/core/matchers/be/stat_spec.sh:89 # 1) core/matchers/be/stat.sh be symlink matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:117 # 2) core/matchers/be/stat.sh be pipe matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:144 # 3) core/matchers/be/stat.sh be socket matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:171 # 4) core/matchers/be/stat.sh be readable matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:200 # 5) core/matchers/be/stat.sh be writable matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:228 # 6) core/matchers/be/stat.sh be executable matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:256 # 7) core/matchers/be/stat.sh be block device matcher example SKIPPED
shellspec spec/core/matchers/be/stat_spec.sh:284 # 8) core/matchers/be/stat.sh be character device matcher example SKIPPED
shellspec spec/core/matchers/has/stat_spec.sh:14 # 9) core/matchers/has/stat.sh has setgid matcher example SKIPPED
shellspec spec/core/matchers/has/stat_spec.sh:43 # 10) core/matchers/has/stat.sh has setuid matcher example SKIPPED

Failure examples / Errors: (Listed here affect your suite's status)

shellspec spec/core/subjects/line_spec.sh:26 # 11) core/subjects/line.sh line subject gets undefined when stdout is undefined WARNED
shellspec spec/core/subjects/word_spec.sh:24 # 12) core/subjects/word.sh word subject gets undefined when stdout is undefined WARNED

make: *** [Makefile:57: test] Error 101
==> ERROR: A failure occurred in check().
    Aborting...
 -> error making: shellspec-exit status 4
==> Making package: mommy 1.5.0-1 (Sat 13 Jul 2024 05:31:46 PM EEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Missing dependencies:
  -> shellspec
==> ERROR: Could not resolve all dependencies.
 -> error making: mommy-exit status 8
 -> Failed to install the following packages. Manual intervention is required:
shellspec - exit status 4
mommy - exit status 8

Same error when trying to install shellspec individually

FWDekker commented 3 months ago

thanks for reporting the issue! looks like this was previously an issue in shellspec (caused by a bug in bash) that has since been worked around. unfortunately, though shellspec is still maintained and developed, they haven't had a release for a while, so the shellspec aur package is somewhat behind.

for now, alternatives are to

  1. build shellspec with makepkg --nocheck, then proceed as normal,
  2. build shellspec-git with makepkg, install shellspec-git, and then proceed as normal,
  3. build shellspec-bin with makepkg, install shellspec-bin, and then proceed as normal, or
  4. don't install shellspec at all, and build mommy with makepkg --nocheck, then proceed as normal.

~i'll probably update the PKGBUILD of mommy to use shellspec-git instead of shellspec, at least for now.~ edit: nope, i won't, i misremembered how makepkg works!

let me know if this solves the issue for you!

Bikoil commented 3 months ago

thanks for reporting the issue! looks like this was previously an issue in shellspec (caused by a bug in bash) that has since been worked around. unfortunately, though shellspec is still maintained and developed, they haven't had a release for a while, so the shellspec aur package is somewhat behind.

for now, alternatives are to

1. build `shellspec` with `makepkg --nocheck`, then proceed as normal,

2. build `shellspec-git` with `makepkg`, install `shellspec-git`, and then proceed as normal,

3. build `shellspec-bin` with `makepkg`, install `shellspec-bin`, and then proceed as normal, or

4. don't install `shellspec` at all, and build `mommy` with `makepkg --nocheck`, then proceed as normal.

~i'll probably update the PKGBUILD of mommy to use shellspec-git instead of shellspec, at least for now.~ edit: nope, i won't, i misremembered how makepkg works!

let me know if this solves the issue for you!

I installed shellspec-git separately then installed mommy and that fixed it, thank you for your help! :)