Verwaistes web-ext

Hallo zusammen,

gestern Abend wollte ich über den Willkommenseintrag 2 “Update Native & AUR Packages (eos-update --aur)”, das ich immer als 2. der drei Update-Einträge laufen lasse aktualisieren und da fiel mir auf, dass web-ext verwaist ist. Folgliche lief das Update dieses packages dann auch auf einen Fehler -4 heraus und nun wollte ich sicherheitshalber fragen, ob ich das Paket mit

yay -Rns web-ext deinstallieren kann.

Beim Update über

==> eos-update --faillock-check --aur
eos-update: package updater with additional features
Updating native and AUR apps...
[sudo] Passwort für petermb: 
:: Paketdatenbanken werden synchronisiert …
 endeavouros ist aktuell
 core ist aktuell
 extra                                              7,8 MiB  17,0 MiB/s 00:00 [--------------------------------------------] 100%
 multilib ist aktuell
 DEB_Arch_Extra                                    10,1 KiB   194 KiB/s 00:00 [--------------------------------------------] 100%
:: Vollständige Systemaktualisierung wird gestartet …
 Es gibt nichts zu tun
:: Durchsuche AUR nach Updates...
 -> Pakete nicht im AUR: gpu-screen-recorder-git  gpu-screen-recorder-gtk-git
 -> Verwaiste (nicht gepflegte) AUR-Pakete: web-ext
 -> Als nicht aktuell markierte AUR-Pakete: pgadmin4-desktop  pgadmin4-server
:: 1 Paket zu upgraden/installieren.
1  aur/web-ext  8.3.0-1 -> 8.6.0-1
==> Pakete zum Ausschließen: (z.B. "1 2 3", "1-3", "^4" oder Repo-Name)
 -> Das Ausschließen von Paketen kann zu teilweisen Aktualisierungen führen und Systeme beschädigen.
==> 

wird angezeigt, dass das AUR-Paket web-ext verwaist ist!

Die Infoabfrage zum Paket, wie sie mir von @Goyano in einem anderen thread schon mal empfohlen wurde gibt folgendes aus:

[petermb@EndeavourOSNeo-Machine ~]$ yay -Qi web-ext
Name                     : web-ext
Version                  : 8.3.0-1
Beschreibung             : A command line tool to help build, run, and test web extensions
Architektur              : any
URL                      : https://developer.mozilla.org/en-US/Add-ons/WebExtensions
Lizenzen                 : MPL-2.0
Gruppen                  : Nichts
Stellt bereit            : nodejs-web-ext
Hängt ab von             : nodejs-lts-iron
Optionale Abhängigkeiten : Nichts
Benötigt von             : Nichts
Optional für             : Nichts
In Konflikt mit          : nodejs-web-ext
Ersetzt                  : nodejs-web-ext
Installationsgröße       : 71,08 MiB
Packer                   : Antonio Rojas <arojas@archlinux.org>
Erstellt am              : Sa 21 Sep 2024 19:50:53 CEST
Installiert am           : Fr 08 Nov 2024 13:29:34 CET
Installationsgrund       : Ausdrücklich installiert
Installations-Skript     : Nein
Verifiziert durch        : Signatur

[petermb@EndeavourOSNeo-Machine ~]$ 


Da web-ext
von Nichts benötigt wird
aber
unter Stellt bereit:

nodejs-web-ext

stehen hat, bin ich unsicher, ob ich web-ext einfach so löschen kann.

Vermute ich richtig, dass nodejs-web-ext das web-ext ersetzt?

Wer kann mir bitte hier weiterhelfen?

Vielen lieben Dank im Voraus

pete

Scheint lediglich erforderlich zu sein, sofern browser extensions zur integration von KDE plasma genutzt werden.
Siehe hier.

Komisch ist nur das es erst kürzlich ein update erhalten hat.

Edit: Das Paket an sich ist aktuell, siehe hier, es scheint nur der maintainer abgesprungen zu sein.

Genau genommen, ist es genau andersrum der Fall.

1 Like

@1093i3511
Jo, das hat mich etwas durcheinander gebracht.

Also nodejs-web-ext deinstallieren und dann dürfte web-ext fehlerfrei aktualisierbar sein, oder?

nodejs-web-ext verursacht also, das das Update für web-ext nicht auf 8.6.0-1 druchführbar ist, richtig?

Wenn ich diesen Fehler nicht weg bekommen, deinstalliere ich die KDE-Erweiterung in den Browsern.

Ich möchte einfach nur einen sauberen Updateprozess haben.

nodejs-web-ext existiert gar nicht mehr im AUR, finde ich jedenfalls nicht.

Zudem, da ich es gerade ausprobiert habe … scheitert bei mir aktuell die Kompilierung des Pakets.

Ich würde es einfach deinstallieren. Mir ist bspw. nicht ganz klar ob das Paket zwingend für die Laufzeit der Browser Extensions notwendig ist. Gehe eher nicht davon aus, könnte sein das es nur benötigt wird wenn die extensions lokal gebaut werden sollen (eben über die AUR) anstatt direkt von den servern heruntergeladen werden (D.h. dirket von addons.mozilla.org bspw.)

Habe jedenfalls das Paket nicht installiert und die Plasma Extension funktioniert dennoch. Und generell, die Browser Extensions die ich benutze habe ich alle direkt über addons.mozilla.org hinzugefügt und nicht mittels des AUR.

Schon komisch.

Über yay -qi nodejs-web-ext bekomme ich ne Ausgabe, aber mit yay -Rns nodejs-web-ext findet er dieses file überhaupt nicht!

which gibt das aus:

[petermb@EndeavourOSNeo-Machine ~]$ which nodejs-web-ext
which: no nodejs-web-ext in (/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/petermb/go/bin)
[petermb@EndeavourOSNeo-Machine ~]$ 


Jetzt bin ich etwas ratlos.
Wo finde ich dieses file und wie krieg ich das deinstalliert?

wir reden doch eigentlich über web-ext :wink:

Ja, richtig. Aber web-ext geht mit -4 auf die Bretter und da hab ich nodejs-web-ext bei den -Qi-Infos in Verdacht bekommen!

==> yay
[sudo] Passwort für petermb: 
:: Paketdatenbanken werden synchronisiert …
 endeavouros ist aktuell
 core ist aktuell
 extra ist aktuell
 multilib ist aktuell
 DEB_Arch_Extra                                    10,1 KiB   102 KiB/s 00:00 [--------------------------------------------] 100%
:: Durchsuche AUR nach Updates...
:: Durchsuche Datenbanken nach Updates...
 -> Pakete nicht im AUR: gpu-screen-recorder-git  gpu-screen-recorder-gtk-git
 -> Verwaiste (nicht gepflegte) AUR-Pakete: web-ext
 -> Als nicht aktuell markierte AUR-Pakete: pgadmin4-desktop  pgadmin4-server
:: 1 Paket zu upgraden/installieren.
1  aur/web-ext  8.3.0-1 -> 8.6.0-1
==> Pakete zum Ausschließen: (z.B. "1 2 3", "1-3", "^4" oder Repo-Name)
 -> Das Ausschließen von Paketen kann zu teilweisen Aktualisierungen führen und Systeme beschädigen.
==> 
AUR Explicit (1): web-ext-8.6.0-1
:: PKGBUILD ist auf dem neuesten Stand, überspringe Herunterladen: web-ext
  1 web-ext                          (Installiert) (Build-Dateien sind vorhanden)
==> Pakete neu erstellen?
==> [N] Keine [A]lle [Ab]brechen [I]nstalliert [No]nicht installiert oder (1 2 3, 1-3, ^4)
==> 
  1 web-ext                          (Installiert) (Build-Dateien sind vorhanden)
==> Unterschiede zeigen?
==> [N] Keine [A]lle [Ab]brechen [I]nstalliert [No]nicht installiert oder (1 2 3, 1-3, ^4)
==> 
==> Erstelle Paket: web-ext 8.6.0-1 (Fr 02 Mai 2025 21:42:29 CEST)
==> Empfange Quellen...
  -> Lade web-ext-8.6.0.tar.gz herunter...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  334k    0  334k    0     0   706k      0 --:--:-- --:--:-- --:--:-- 12.0M
==> WARNUNG: Überspringe Überprüfung der PGP-Signaturen der Quell-Dateien.
==> Überprüfe source Dateien mit sha256sums...
    web-ext-8.6.0.tar.gz ... Erfolg
:: (1/1) SRCINFO geparst: web-ext
==> Erstelle Paket: web-ext 8.6.0-1 (Fr 02 Mai 2025 21:42:30 CEST)
==> Prüfe Laufzeit-Abhängigkeiten...
==> Prüfe Buildtime-Abhängigkeiten...
==> Empfange Quellen...
  -> web-ext-8.6.0.tar.gz gefunden
==> Überprüfe source Dateien mit sha256sums...
    web-ext-8.6.0.tar.gz ... Erfolg
==> Entferne existierendes $srcdir/ Verzeichnis...
==> Entpacke Quellen...
  -> Entpacke web-ext-8.6.0.tar.gz mit bsdtar
==> Beginne prepare()...
==> Quellen sind fertig.
==> Erstelle Paket: web-ext 8.6.0-1 (Fr 02 Mai 2025 21:42:31 CEST)
==> Prüfe Laufzeit-Abhängigkeiten...
==> Prüfe Buildtime-Abhängigkeiten...
==> WARNUNG: Verwende bestehenden $srcdir/ Baum
==> Beginne build()...
npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead

added 885 packages, and audited 886 packages in 3s

207 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

> web-ext@8.6.0 build
> node scripts/build

Clean dist files...
Running babel-cli...
Successfully compiled 34 files with Babel (368ms).
babel build completed.
npm warn config production Use `--omit=dev` instead.
npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead

added 396 packages, and audited 397 packages in 1s

105 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
==> Beginne check()...

> web-ext@8.6.0 test
> node scripts/test

Running eslint...
Running mocha unit tests... 

Setting mocha timeout from env var: 100000

(node:48620) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:
--import 'data:text/javascript,import { register } from "node:module"; import { pathToFileURL } from "node:url"; register("testdouble", pathToFileURL("./"));'
(Use `node --trace-warnings ...` to show where the warning was created)
(node:48620) ExperimentalWarning: `globalPreload` is planned for removal in favor of `initialize`. `globalPreload` is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)


  config
    applyConfigToArgv
      ✔ preserves a string value on the command line over configured
      ✔ preserves configured value over default
      ✔ preserves a string value on the command line over all others
      ✔ preserves default value of option if not in config
      ✔ preserves value on the command line if not in config
      ✔ coerces config option values if needed
      ✔ uses a configured boolean value over an implicit default
      ✔ uses a configured boolean value over explicit falsey default
      ✔ uses configured boolean value over explicit truthy default
      ✔ uses a CLI boolean value over a configured one
      ✔ can load multiple configs for global options
      ✔ recognizes array config values as array types
      ✔ does not mistake an array config values for a sub-command
      ✔ uses CLI option over undefined configured option and default
      ✔ uses a configured number value over a falsey default
      ✔ uses a falsey CLI number value over a configured one
      ✔ uses configured value even when option defaults to undefined
      ✔ throws an error when an option is not camel cased
      ✔ throws an error when an option is invalid
      ✔ throws an error when a global option type is invalid
      ✔ throws an error when the type of option value is invalid
      ✔ does not throw an error when the type of option value is count
    sub commands
      ✔ preserves configured value over default
      ✔ preserves CLI value over default and configured
      ✔ preserves CLI value over configured
      ✔ can load multiple configs for sub-command options
      ✔ preserves default value if not in config
      ✔ preserves CLI value if not in config
      ✔ preserves global option when sub-command options exist
      ✔ handles camel case sub-commands
      ✔ throws an error when the option is not camel cased
      ✔ throws an error when the option is invalid
      ✔ throws an error when the type of option value is invalid
      ✔ throws an error when the type of one of option values is invalid
      ✔ throws an error when the type of option is missing
      ✔ throws an error when type of unrelated sub option is invalid
    loadJSConfigFile
      ✔ throws an error if the config file does not exist
      ✔ throws an error if the config file has syntax errors
      1) provides help message on load failure due to .js ESM config file and no package
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Created temporary directory: /tmp/tmp-web-ext--48620-uNsEMsgVMDrC
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/config.js][debug] Loading JS config file: "/tmp/tmp-web-ext--48620-uNsEMsgVMDrC/config.js" (resolved to "/tmp/tmp-web-ext--48620-uNsEMsgVMDrC/config.js")
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/config.js][warn] WARNING: config file /tmp/tmp-web-ext--48620-uNsEMsgVMDrC/config.js should be renamed to ".cjs" or ".mjs" file extension to ensure its format is not ambiguous. Config files with the ".js" file extension are deprecated and will not be loaded anymore in a future web-ext major version.
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Removing temporary directory: /tmp/tmp-web-ext--48620-uNsEMsgVMDrC
      ✔ provides help message on load failure due to .js CJS config file and type module package
      2) provides help message on load failure due to .js ESM config file and type commonjs package
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Created temporary directory: /tmp/tmp-web-ext--48620-mGX49AJh7Tco
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/config.js][debug] Loading JS config file: "/tmp/tmp-web-ext--48620-mGX49AJh7Tco/config-with-export.js" (resolved to "/tmp/tmp-web-ext--48620-mGX49AJh7Tco/config-with-export.js")
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/config.js][warn] WARNING: config file /tmp/tmp-web-ext--48620-mGX49AJh7Tco/config-with-export.js should be renamed to ".cjs" or ".mjs" file extension to ensure its format is not ambiguous. Config files with the ".js" file extension are deprecated and will not be loaded anymore in a future web-ext major version.
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Removing temporary directory: /tmp/tmp-web-ext--48620-mGX49AJh7Tco
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Created temporary directory: /tmp/tmp-web-ext--48620-Yi2N1Zo1QNC5
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Removing temporary directory: /tmp/tmp-web-ext--48620-Yi2N1Zo1QNC5
      ✔ parses successfully .js file as CommonJS config file
      ✔ parses successfully .mjs file as ESM config file when no package type
      ✔ parses .cjs file as CommonJS config file when no package type
      ✔ parses package.json file correctly
      ✔ does not throw an error for an empty config
      ✔ returns an empty object when webExt key is not in package.json
    discoverConfigFiles
      ✔ finds a config in your home directory
      ✔ finds a config in your working directory
      ✔ discovers all config files

  errors
    onlyInstancesOf
      ✔ lets you catch a certain error
      ✔ throws instances of other errors
    onlyErrorsWithCode
      ✔ catches errors having a code
      ✔ catches errors having a error no
      ✔ throws errors that do not match the code
      ✔ catches errors having one of many codes
      ✔ catches errors having one of many errno
      ✔ throws errors that are not in an array of codes
    isErrorWithCode
      ✔ returns true on errors that do match the code
      ✔ returns false on errors that do not match the code

  program.Program
    ✔ executes a command callback
Options:
  --help     Show help                                                                                                  [boolean]
  --version  Show version number                                                                                        [boolean]

Unknown argument: thing
    ✔ reports unknown commands
    ✔ reports missing command
    ✔ exits 1 on a thrown error
cli.js thing

Options:
  --help     Show help                                                                                                  [boolean]
  --version  Show version number                                                                                        [boolean]

This command does not take any arguments
    ✔ throws an error if sub-command is given an argument
    ✔ handles errors that have codes
    ✔ lets commands define options
    ✔ preserves global option configuration
    ✔ reads option values from env vars in sub commands
    ✔ configures the logger when verbose
    ✔ checks the version when verbose
    ✔ does not configure the logger unless verbose
    ✔ logs UsageErrors into console
Options:
  --help     Show help                                                                                                  [boolean]
  --version  Show version number                                                                                        [boolean]

Unknown argument: nope
    ✔ throws an error about unknown commands
Options:
  --help     Show help                                                                                                  [boolean]
  --version  Show version number                                                                                        [boolean]

Unknown argument: nope
    ✔ throws an error about unknown options
cli.js thing

Options:
  --help     Show help                                                                                                  [boolean]
  --version  Show version number                                                                                        [boolean]

Unknown argument: nope
    ✔ throws an error about unknown sub-command options
    ✔ passes on webextVersion
    ✔ checks for updates automatically
    ✔ does not check for updates during development
    ✔ does remove environment vars unsupported by the selected command

  program.main
    ✔ executes a command handler
Usage: cli.js [options] command

Option values can also be set by declaring an environment variable prefixed
with $WEB_EXT_. For
example: $WEB_EXT_SOURCE_DIR=/path is the same as
--source-dir=/path.

To view specific help for any given command, add the comma
nd name.
Example: cli.js --help run.


Commands:
  cli.js build        Create an extension package from source
  cli.js dump-config  Run config discovery and dump the resulting config data as JSON
  cli.js sign         Sign the extension so it can be installed in Firefox
  cli.js run          Run the extension
  cli.js lint         Validate the extension source
  cli.js docs         Open the web-ext documentation in a browser

Options:
      --version           Show version number                                                                           [boolean]
  -s, --source-dir        Web extension source directory.
                                        [string] [required] [default: "/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build"]
  -a, --artifacts-dir     Directory where artifacts will be saved.
                      [string] [required] [default: "/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/web-ext-artifacts"]
  -v, --verbose           Show verbose output                                                                           [boolean]
  -i, --ignore-files      A list of glob patterns to define which files should be ignored. (Example: --ignore-files=path/to/first
                          .js path/to/second.js "**/*.log")                                                               [array]
      --no-input          Disable all features that require standard input                                              [boolean]
  -c, --config            Path to a CommonJS config file to set option defaults                                          [string]
      --config-discovery  Discover config files in home directory and working directory. Disable with --no-config-discovery.
                                                                                                        [boolean] [default: true]
  -h, --help              Show help                                                                                     [boolean]

You must specify a command
    ✔ throws an error if no command is given
<version>
    ✔ can get the program version
    ✔ normalizes the artifactsDir path
    ✔ passes the path of a firefox binary when specified
    ✔ passes the url of a firefox binary when specified
    ✔ opens browser console when --browser-console is specified
    ✔ opens devtools when --devtools is specified
    ✔ calls run with a watched file
    ✔ calls run with multiple watched files
    ✔ calls run with a single watchIgnored pattern
    ✔ calls run with a multiple watchIgnored patterns
    ✔ converts custom preferences into an object
    ✔ passes shouldExitProgram option to commands
    ✔ applies options from the specified config file
    ✔ discovers config files
    ✔ lets you disable config discovery
    ✔ applies config files in order
    ✔ overwrites old config values
    ✔ enables verbose more from config file
    ✔ requires a parameter after --ignore-files
    ✔ supports multiple parameters after --ignore-files
    ✔ does pass a custom apk component with --firefox-apk-component
    --no-input
      ✔ does parse "--no-input" cli argument as {"noInput":true}
      ✔ does parse "--no-input=false" cli argument as {"noInput":false}
      ✔ does parse "--no-input=true" cli argument as {"noInput":true}
      ✔ does parse "--input" cli argument as {"noInput":false}
      ✔ does parse "--input=false" cli argument as {"noInput":true}
      ✔ does parse "--input=true" cli argument as {"noInput":false}
      ✔ does parse "-v" cli argument as {}

  program.defaultVersionGetter
    ✔ returns the package version in production
    - returns git commit information in development

  program.throwUsageErrorIfArray
    ✔ throws UsageError on array

  watcher
    ✔ watches for changes in the sourceDir (1055ms)
    --watch-file option is passed in
      ✔ changes if the watched file is touched (503ms)
      ✔ does not change if watched file is not touched (502ms)
      ✔ throws error if a non-file is passed into --watch-file
    proxyFileChanges
      ✔ proxies file changes
      ✔ ignores changes to artifacts
      ✔ provides a callback for ignoring files
    --watch-ignored is passed in
      ✔ does not call onChange if ignored file is touched (143ms)

  webExt
    ✔ exposes main
    exposes commands
      ✔ lazily loads cmd/run
      ✔ lazily loads cmd/lint (65ms)
      ✔ lazily loads cmd/build (77ms)
      ✔ lazily loads cmd/sign (132ms)
      ✔ lazily loads cmd/docs (59ms)
      ✔ lazily loads cmd/dump-config (66ms)

  build
    ✔ zips a package
    ✔ configures a build command with the expected fileFilter
    ✔ throws on missing manifest properties in filename template
    ✔ gives the correct custom name to an extension
    ✔ gives the correct name to a localized extension
    ✔ sanitizes characters in extension name in filename from template
    ✔ throws an error if the filename contains a path
    ✔ throws an error if the filename doesn't end in .xpi or .zip
    ✔ accept a dash in the default_locale field
    ✔ handles repeating localization keys
    ✔ handles UTF-8 BOM in messages.json
    ✔ handles comments in messages.json
    ✔ checks locale file for malformed json
    ✔ checks locale file for incorrect format
    ✔ throws an error if the locale file does not exist
    ✔ can build an extension without an ID
    ✔ prepares the artifacts dir
    ✔ lets you specify a manifest
    ✔ asks FileFilter what files to include in the ZIP
    ✔ lets you rebuild when files change
    ✔ throws errors when rebuilding in source watcher
    ✔ raises an UsageError if zip file exists
    ✔ overwrites zip file if it exists
    ✔ zips a package and includes a file from a negated filter
    safeFileName
      ✔ makes names safe for writing to a file system
    defaultPackageCreator
      ✔ should reject on Unexpected errors
    getStringPropertyValue
      ✔ accepts the value 0
      ✔ throws an error if string value is empty

  docs
    ✔ passes the correct url to docs
    ✔ throws an error when open fails

  lint
    ✔ creates and runs a linter
    ✔ fails when the linter fails
    ✔ runs as a binary
    ✔ sets runAsBinary according shouldExitProgram option
    ✔ passes sourceDir to the linter
    ✔ passes warningsAsErrors to the linter
    ✔ passes warningsAsErrors undefined to the linter
    ✔ configures the linter when verbose
    ✔ configures the linter when not verbose
    ✔ passes through linter configuration
    ✔ configures a lint command with the expected fileFilter

  run
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ passes a custom Firefox binary when specified
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ passes startUrl parameter to Firefox when specified
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build
Automatic extension reloading has been disabled
    ✔ turns sourceDir into an absolute path
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Disabled auto-reloading because it's not possible with --pre-install
Automatic extension reloading has been disabled
    ✔ passes the expected parameters to the extension runner
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ passes the expected dependencies to the extension runner
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
    ✔ throws if watchFile is not an array
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
The extension will reload if any source file changes
    ✔ can watch and reload the extension
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
The extension will reload if any source file changes
    ✔ can disable input in the reload strategy
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Disabled auto-reloading because it's not possible with --pre-install
Automatic extension reloading has been disabled
    ✔ will not reload when using --pre-install
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ allows you to opt out of extension reloading
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ allows to replace manifest parser
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ returns ExtensonRunner
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ creates a Firefox Desktop runner if targets is an empty array
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ creates a Firefox Desktop runner if "firefox-desktop" is in target
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ creates a Firefox Android runner if "firefox-android" is in target
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ creates a Chromium runner if "chromium" is in target
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ provides a chromiumBinary option to the Chromium runner
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ provides a chromiumProfile option to the Chromium runner
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ creates multiple extension runners
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Automatic extension reloading has been disabled
    ✔ provides a buildSourceDir method to the Firefox Android runner
    profile-create-new option
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Profile directory not found. Creating directory /pretend/path/to/profile
Automatic extension reloading has been disabled
      ✔ creates dir when firefox profile does not exist
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Profile directory not found. Creating directory /pretend/path/to/profile
Automatic extension reloading has been disabled
      ✔ creates dir when chromium profile does not exist
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Profile directory /pretend/path/to/profile already exists
Automatic extension reloading has been disabled
      ✔ uses the given firefox profile directory if it does exist
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
Profile directory /pretend/path/to/profile already exists
Automatic extension reloading has been disabled
      ✔ uses the given chromium profile directory if it does exist
Running web extension from /home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/tests/fixtures/minimal-web-ext
      ✔ throws error when used without firefox-profile or chromium-profile

  sign
    ✔ builds and signs an extension
    ✔ requires a channel for submission API
    ✔ passes the apiProxy parameter to submissionAPI signer
    ✔ passes the uploadSourceCode parameter to submissionAPI signer as submissionSource
    ✔ returns a signing result
    ✔ calls the add-on submission api signer
    ✔ calls the add-on submission api signer with approval timeout
    ✔ passes through a signing exception from submitAddon
    ✔ parses listing metadata as JSON and passes through to submitAddon
    ✔ raises an error on invalid JSON
    getIdFromFile
      ✔ gets a saved extension ID
      ✔ throws an error for empty files
      ✔ returns empty ID when extension file does not exist
      ✔ throws unexpected errors

  util/extension-runners/chromium
    ✔ uses the expected chrome flags
    ✔ installs and runs the extension
    ✔ installs a "reload manager" companion extension
Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/chromium.js][debug] 

Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/chromium.js][debug] 

Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/chromium.js][debug] 

Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/chromium.js][debug] 

[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Removing temporary directory: /tmp/tmp-web-ext--48620-6yANdAqpHbQq
    ✔ controls the "reload manager" from a websocket server
    ✔ exits if the chrome instance is shutting down
    ✔ calls all cleanup callbacks on exit
    ✔ does not call exit if chrome instance exits while shutting down
    ✔ awaits for the async setup to complete before exiting
    ✔ does use a custom chromium binary when passed
    ✔ does pass multiple starting urls to chrome
    ✔ does pass additional args to chrome
    ✔ does use a random user-data-dir
    ✔ does pass a user-data-dir flag to chrome
    ✔ does pass existing user-data-dir and profile-directory flag to chrome
    ✔ does support some special chars in profile-directory flag
    ✔ does recognize a UserData dir
    ✔ does reject a UserData dir with Local State dir
    ✔ does reject a UserData dir with Default file
    ✔ throws an error on profile in invalid user-data-dir
    ✔ does copy the profile and pass user-data-dir and profile-directory flags
    reloadAllExtensions
Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)      ✔ does not resolve before complete message from client (335ms)
Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)      ✔ resolve when any client send complete message
Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)      ✔ resolve when all client disconnect
Last extension reload: 21:42:45 GMT+0200 (Central European Summer Time)      ✔ resolve when not client connected

  util/extension-runners
    createExtensionRunner
      ✔ requires a valid target
    MultiExtensionRunner
      ✔ calls the "run" method on all the created IExtensionRunner
      ✔ calls the "reloadAllExtensions" on all the created runners
      ✔ calls the "reloadExtensionBySourceDir" on all the created runners
      ✔ calls exit on all the created IExtensionRunner
      ✔ shows a desktop notification on errors while reloading all extensions
      ✔ shows a desktop notification on errors while reloading an extension
      registerCleanup
        ✔ calls its callbacks once all the runner callbacks have been called (300ms)
    defaultWatcherCreator
      ✔ configures a source watcher
      ✔ configures a run command with the expected fileFilter
      ✔ returns a watcher
      ✔ reloads the extension
    defaultReloadStrategy
      ✔ configures a watcher
      ✔ configure the watcher to reload an extension by sourceDir
      ✔ cleans up when the extension runner closes
      ✔ can reload when user presses R in shell console
      ✔ allows you to disable input
      ✔ can still reload when user presses R after a reload error
      ✔ shuts down firefox on user request (CTRL+C in shell console)
      ✔ pauses the web-ext process (CTRL+Z in shell console)

  util/extension-runners/firefox-android
    raises an UsageError when:
      ✔ does not find any android device
      ✔ does not know which is the selected android device
      ✔ does not find the selected android device
      ✔ does not find a valid Firefox apk
      ✔ does not know which Firefox apk to use
      ✔ cannot find the Firefox apk selected using --firefox-apk value
    a valid device and Firefox apk has been selected:
      ✔ does select a Firefox apk if only one has been found
      ✔ stops any running instances of the selected Firefox apk and then starts it on the temporary profile
      ✔ does check for existing artifacts dirs
      ✔ does optionally remove older artifacts dirs
      ✔ does run a specific apk component if specific
      ✔ supports custom prefs via --pref
      ✔ builds and pushes the extension xpi to the android device
      ✔ discovers the RDP unix socket and forward it on a local tcp port
      ✔ discovers the RDP abstract unix socket and forward it on
      ✔ installs the build extension as a temporarily installed addon
      ✔ raises an error on addonId missing from installTemporaryAddon result
      ✔ reloads all reloadable extensions when reloadAllExtensions is called
      ✔ reloads an extension by sourceDir
      ✔ resolves to an array of WebExtError if the extension is not reloadable
      ✔ resolves an AllExtensionsReloadError if any extension fails to reload
      ✔ cleans the android device state when the exit method is called
      ✔ allows user to exit while waiting for the Android Firefox Debugger
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Created temporary directory: /tmp/tmp-web-ext--48620-U90pprm3UCAj
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][debug] Uploading built-ext-filename on the android device
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][debug] Upload completed: /fake/artifacts-dir//built-ext-filename.xpi
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Removing temporary directory: /tmp/tmp-web-ext--48620-U90pprm3UCAj
      ✔ rejects on Android Firefox Debugger discovery timeouts
      ✔ rejects if an extension has never been uploaded on the device
      ✔ calls the callback registered on cleanup when firefox closes
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][warn] The Firefox for Android target does not support --profile-path
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][warn] The Firefox for Android target does not support --keep-profile-changes
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][warn] The Firefox for Android target does not support --browser-console
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][warn] The Firefox for Android target does not support --pre-install
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][warn] The Firefox for Android target does not support --start-url
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/extension-runners/firefox-android.js][warn] The Firefox for Android target does not support --args
      ✔ logs warnings on the unsupported CLI options

  util/extension-runners/firefox-desktop
    ✔ installs and runs the extension
    ✔ runs extension in correct port
    ✔ suggests --pre-install when remote install not supported
    ✔ passes -jsconsole when --browser-console is specified
    ✔ passes single url parameter to Firefox when specified
    ✔ passes multiple url parameters to Firefox when specified
    ✔ passes binaryArgs to Firefox
    ✔ passes a custom Firefox profile when specified
    ✔ keeps changes in custom profile when specified
    ✔ can pre-install into the profile before startup
    ✔ raise an error on addonId missing from installTemporaryAddon result
    ✔ calls the callback registered on cleanup when firefox closes
    ✔ kills Firefox when the exit method is called
    ✔ raises an Error when exit method is called on a non-started runner
    ✔ reloads all reloadable extensions when reloadAllExtensions is called
    ✔ reloads an extension by sourceDir
    ✔ resolves to an array of WebExtError if the extension is not reloadable
    ✔ resolves to an AllExtensionsReloadError if any extension fails to reload

  firefox
    run
      ✔ executes the Firefox runner with a given profile
      ✔ starts the remote debugger on a discovered port
      ✔ passes binary args to Firefox
      ✔ sets up a Firefox process environment
      ✔ fails on a firefox error
      ✔ passes a custom Firefox binary when specified
      ✔ logs stdout and stderr without errors
      ✔ supports flatpak
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/firefox/index.js][debug] Running Firefox with profile at /dev/null/some-profile-path
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/firefox/index.js][debug] Executing Firefox binary: undefined
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/firefox/index.js][debug] Firefox args: 
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/firefox/index.js][info] Use --verbose or --devtools to see logging
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/firefox/index.js][debug] Firefox closed
      ✔ logs link to debugging docs
    copyProfile
(node:48620) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
      ✔ copies a profile
      ✔ requires a valid profile directory
      ✔ can copy a profile by name
(node:48620) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
      ✔ configures the copied profile
    isDefaultProfile
      ✔ detects common Firefox default profiles specified by name
      ✔ allows profile name if it is not listed as default in profiles.ini
      ✔ allows profile path if it is not listed as default in profiles.ini
      ✔ allows profile path if there is no profiles.ini file
      ✔ rejects on any unexpected error while looking for profiles.ini
    createProfile
      ✔ resolves with a profile object
      ✔ creates a Firefox profile
      ✔ configures a profile
    useProfile
      ✔ rejects to a UsageError when used on a default Firefox profile
      ✔ rejects to a UsageError when profile is not found
      ✔ resolves to a FirefoxProfile instance
      ✔ looks for profile path if passed a name
      ✔ checks if named profile is default
      ✔ configures a profile
    defaultCreateProfileFinder
      ✔ creates a finder
      ✔ creates finder based on userDirectoryPath if present
      ✔ returns a finder that resolves a profile name
      ✔ returns a finder that resolves undefined for no profiles.ini
      ✔ returns a finder that throws unexpected errors
    configureProfile
      ✔ resolves with a profile
      ✔ sets Firefox preferences
      ✔ sets Fennec preferences
      ✔ writes new preferences
      ✔ writes custom preferences
    installExtension
      ✔ installs an extension file into a profile
      ✔ requires a manifest ID
      ✔ can install the extension as a proxy
      ✔ requires a directory path for proxy installs
      ✔ re-uses an existing extension directory
      ✔ checks for an empty extensionsDir
      ✔ throws on unexpected errors

  firefox/preferences
    getPrefs
      ✔ gets Firefox prefs with some defaults
      ✔ gets Fennec prefs with some defaults
      ✔ throws an error for unsupported apps
    coerceCLICustomPreference
      ✔ converts a single --pref cli option from string to object
      ✔ converts array of --pref cli option values into object
      ✔ converts boolean values
      ✔ converts number values
      ✔ converts float values
      ✔ supports string values with "=" chars
      ✔ does not allow certain default preferences to be customized
      ✔ throws an error for invalid or incomplete preferences

  rdp-client
    parseRDPMessage
      ✔ returns a fatal error on failing to parse RDP message length
      ✔ returns a non-fatal error on failing to parse RDP message data
      ✔ does parse RDP message when all expected data is available
    FirefoxRDPClient
      ✔ connects to a Firefox RDP server
      ✔ forwards some of the events emitted by the connection
      request
        ✔ sends an RDP request
        ✔ rejects on RDP request without a target actor
        ✔ rejects on RDP request on source actor RDP error reply
        ✔ does disconnect on fatal parsing error
      handleMessage
        ✔ emits rdp-error event on RDP error and no source actor
        ✔ emits an unsolicited-event on known request types
        ✔ emits an error event on messages with no source actor
        ✔ emits error event on unexpected source actor
      flushPendingRequests
        ✔ does queue multiple requests for the same target actor
        ✔ rejects requests if not connected
        ✔ rejects all requests on closed connection
        ✔ rejects request if fails to stringify
        _expectReply
          ✔ throws if target actor has an active request
    FirefoxRDPClient disconnect
      ✔ does remove connection event listeners

  firefox.remote
    connect
      ✔ resolves with a RemoteFirefox instance
      ✔ connects on the default port
      ✔ lets you configure the port
    RemoteFirefox
      ✔ listens to client events
      disconnect
        ✔ lets you disconnect
      addonRequest
        ✔ makes requests to an add-on actor
        ✔ throws when add-on actor requests fail
      getInstalledAddon
        ✔ gets an installed add-on by ID
        ✔ throws an error when the add-on is not installed
        ✔ throws an error when listAddons() fails
      checkForAddonReloading
        ✔ checks for reload requestType in remote debugger
        ✔ throws an error if reload is not supported
        ✔ only checks for reloading once
      installTemporaryAddon
        ✔ throws getRoot errors
        ✔ fails when there is no add-ons actor
        ✔ lets you install an add-on temporarily
        ✔ falls back to listTabs when getRoot is unavailable
        ✔ fails when getRoot and listTabs both fail
        ✔ throws install errors
      reloadAddon
Last extension reload: 21:42:46 GMT+0200 (Central European Summer Time)        ✔ asks the actor to reload the add-on
Last extension reload: 21:42:46 GMT+0200 (Central European Summer Time)        ✔ makes sure the addon can be reloaded
    connectWithMaxRetries
      ✔ retries after a connection error
      ✔ only retries connection errors
      ✔ gives up connecting after too many retries
    findFreeTcpPort
      ✔ resolves to a free tcp port

  utils/adb
    discoverDevices
      ✔ rejects an UsageError on adb binary not found
      ✔ resolves the array of the android device ids
    runShellCommand
      ✔ rejects an UsageError on adb binary not found
      ✔ rejects on any unexpected exception
      ✔ resolves the shell command output as a string
    discoverInstalledFirefoxAPKs
      ✔ rejects an UsageError on adb binary not found
      ✔ retrieves current user
      ✔ rejects invalid get-current-user output
      ✔ resolves the array of the installed firefox APKs
      ✔ resolves the given firefox APK with exact package name
    amForceStopAPK
      ✔ rejects an UsageError on adb binary not found
      ✔ does not reject when "am force-stop" has been called successfully
    getOrCreateArtifactsDir
      ✔ rejects an UsageError on adb binary not found
      ✔ rejects a WebExtError if the artifact dir path exists
      ✔ resolves to the android artifacts dir path
      ✔ does not create a new artifact dir if it has been already created
    clearArtifactsDir
      ✔ rejects an UsageError on adb binary not found
      ✔ removes the directory if it has been previously created
      ✔ is a no-op if no artifacts dir has been previously created
    detectOrRemoveOldArtifacts
      ✔ detects old artifacts directories
      ✔ does optionally remove artifacts directories
    pushFile
      ✔ rejects an UsageError on adb binary not found
      ✔ resolves when the file has been completely transfered
    startFirefoxAPK
      ✔ rejects an UsageError on adb binary not found
      ✔ starts Firefox APK on a custom profile (only used by Fennec)
      ✔ starts a given APK component without a period
      ✔ starts a given APK component with a period
      ✔ starts a given APK component on fenix.nightly
      ✔ start reference browser without APK component
      ✔ start reference browser with custom APK component
      ✔ starts without specifying an APK component
      ✔ starts a fully-qualified APK component on the build-variant: fenix.nightly
      ✔ starts a fully-qualified APK component on the build-variant: org.mozilla.fenix.debug
      ✔ starts a given APK component that begins with a period
    discoverRDPUnixSocket
      ✔ rejects an UsageError on adb binary not found
      ✔ rejects an UsageError on setUserAbortDiscovery call
      ✔ rejects a WebExtError on timeouts (52ms)
      ✔ reminds the user to enable remote_debugging (51ms)
      ✔ rejects a WebExtError if more than one RDP socket have been found
      ✔ resolves the android RDP unix socket path
    setupForward
      ✔ rejects an UsageError on adb binary not found
      ✔ configures an adb forwarding for a given device
    exports exposed in util.adb
      ✔ should export a listADBDevices method
      ✔ should export a listADBFirefoxAPKs method

  prepareArtifactsDir
    ✔ creates an artifacts dir if needed
    ✔ ignores existing artifacts dir
    ✔ ensures the path is really a directory
    ✔ resolves with the artifacts dir
    ✔ throws an UsageError when it lacks permissions to stat the directory
    ✔ throws error when directory exists but lacks writing permissions
    ✔ throws error when creating a folder if lacks writing permissions
    ✔ creates the artifacts dir successfully if the parent dir does not exist
    ✔ throws error when creating a folder if there is not enough space
    ✔ throws on unexpected errors

  util/desktop-notifier
    desktopNotifications()
      ✔ is called and creates a message with correct parameters
      ✔ logs error when notifier fails

  util/file-exists
    ✔ returns true for existing files
    ✔ returns false for non-existent files
    ✔ returns false for directories
    ✔ returns false for unreadable files
    ✔ throws unexpected errors

  util/file-filter
    default
      ✔ ignores long XPI paths
      ✔ ignores short XPI paths
      ✔ ignores .git directories
      ✔ ignores nested .git directories
      ✔ ignores any hidden file
      ✔ ignores subdirectories within hidden folders
      ✔ ignores ZPI paths
      ✔ allows other files
      ✔ ignores node_modules by default
      ✔ ignores module content within node_modules by default
    options
      ✔ override the defaults with baseIgnoredPatterns
      ✔ add more files to ignore with ignoreFiles
      ✔ ignore artifactsDir and its content
      ✔ does not ignore an artifactsDir outside of sourceDir
      ✔ resolve relative path
    isSubPath
      ✔ test if target is a sub directory of src
    negation
      ✔ ignore paths not captured by negation
      ✔ includes paths captured by negation

  util.isDirectory
    ✔ resolves true for a directory
    ✔ resolves false for non-existent paths
    ✔ resolves false for non-directory paths
    ✔ resolves false for incomplete directory paths

  logger
    createLogger
      ✔ makes file names less redundant
    ConsoleStream
      ✔ lets you turn on verbose logging
      ✔ logs names in verbose mode
      ✔ does not log names in non-verbose mode
      ✔ does not log debug packets unless verbose
      ✔ does not log trace packets unless verbose
      ✔ logs debug packets when verbose
      ✔ logs trace packets when verbose
      ✔ logs info packets when verbose or not
      ✔ lets you capture logging
      ✔ only flushes captured messages once
      ✔ lets you start and stop capturing

  util/manifest
    getValidatedManifest
      ✔ returns a valid manifest
      ✔ allows manifests without an applications property
      ✔ reports an error for a missing manifest file
      ✔ reports an error for invalid manifest JSON
      ✔ reports an error when missing a name
      ✔ reports an error when missing version
      ✔ reports an error when missing applications.gecko
      ✔ allows a missing applications.gecko.id
      ✔ concatenates errors in error message
      ✔ ignore UTF-8 BOM in manifest JSON
      ✔ allows comments in manifest JSON
      ✔ reports an error with line number in manifest JSON with comments
    getManifestId
      with applications
        ✔ returns gecko.id if present
        ✔ returns undefined when gecko does not exist
      with browser_specific_settings
        ✔ returns gecko.id if present
        ✔ returns undefined when gecko does not exist
      with both applications and browser_specific_settings
        ✔ does prefer bss if it includes a gecko object
        ✔ does fallback to applications if bss.gecko is undefined
      without applications and browser_specific_settings
        ✔ returns undefined when ID is not specified

  nodejs util.promisify
    ✔ wraps a nodejs callback-based function into a promised function

  web-ext util.promisify.multiArgsPromisedFn custom helper
    ✔ optionally pass multiple results to a wrapped function

  util.submit-addon
    signAddon
      ✔ creates Client with parameters
      ✔ calls postNewAddon if `id` is undefined
      ✔ calls putVersion if `id` is defined
      ✔ throws error if xpiPath is invalid
      ✔ throws error if amoBaseUrl is an invalid URL
      ✔ passes through metadata json object if defined
      ✔ includes source data to be patched if submissionSource defined for new addon
      ✔ includes source data to be patched if submissionSource defined for new version
      ✔ throws error if submissionSource is not found
      ✔ throws error if submissionSource is a directory
    Client
      ✔ adds a missing trailing slash to baseUrl before setting apiUrl
      ✔ drops extra characters on baseUrl before setting apiUrl
      fileFromSync
        ✔ should return a File with name set to the file path basename
      getPreviousUuidOrUploadXpi
        ✔ calls doUploadSubmit if previous hash is different to current
        ✔ skips doUploadSubmit if previous hash is the same as current
        ✔ calls doUploadSubmit if the channel is different to current
      hashXpiCrcs
        ✔ returns a sha256 hash of the crc32 hashes of the zip entries
        ✔ returns a different hash when a directory is added to the zip
        ✔ returns a different hash when a directory is replaced with an empty file
        ✔ returns a different hash when a file is renamed
        ✔ returns the same hash when file order changes
      doUploadSubmit
        ✔ submits the xpi
      waitForValidation
        ✔ aborts validation check after timeout
        ✔ waits for validation that passes
        ✔ waits for validation that fails
      doNewAddonSubmit
        ✔ posts the upload uuid
        ✔ combines provided metaDataJson with upload uuid
      doNewAddonOrVersionSubmit
        ✔ puts the upload uuid to the addon detail
        ✔ combines provided metaDataJson with upload uuid
      doFormDataPatch
        ✔ creates the url from addon and version
        ✔ catches and throws for non ok responses
      waitForApproval
        ✔ aborts approval wait after timeout
        ✔ waits for approval
      downloadSignedFile
        ✔ downloads the file to tmpdir
        ✔ raises when the response is not ok
        ✔ raises a consistent error when fetch raises
        ✔ raises a consistent error when saveToFile raises
      postNewAddon and putVersion
        ✔ creates new add-on; downloads the signed xpi
        ✔ creates a new version; then downloads the signed xpi
        doAfterSubmit
          ✔ skips download if approval timeout is 0
          ✔ downloads the signed xpi if approval timeout > 0
          ✔ calls doFormDataPatch if patchData.version is defined
          ✔ does not call doFormDataPatch is patchData.version is undefined
      fetchJson
        ✔ rejects with a promise on not ok responses
        ✔ rejects with a promise on < 100 responses
        ✔ rejects with a promise on >= 500 responses
        ✔ resolves with a promise containing response json
      fetch
        ✔ sets json content type for string type body
        ✔ doesn't set content type for FormData type body
        ✔ doesn't set content type for no body
        ✔ sends special user agent string
        ✔ fallback to userAgentString "web-ext-lib" if not set
        ✔ uses a specified proxy
    saveIdToFile
      ✔ saves an extension ID to file
      ✔ will overwrite an existing file
    saveUploadUuidToFile
      ✔ saves a uuid & hash to file
      ✔ will overwrite an existing file
    getUploadUuidFromFile
      ✔ gets an upload uuid and hash from a saved file
[/home/petermb/.cache/yay/web-ext/src/web-ext-8.6.0-build/src/util/temp-dir.js][debug] Created temporary directory: /tmp/tmp-web-ext--48620-V5Nlr2a2jK3Y
      ✔ returns empty strings for uuid and hash if file does not exist
      ✔ returns empty strings for uuid and hash if file is malformed

  util.withTempDir
    ✔ creates a temp directory
    ✔ destroys the directory on completion
    ✔ destroys the directory on error

  util.TempDir
    ✔ requires you to create the directory before accessing path()
    ✔ does not throw on remove called before a temp dir is created

  util/updates
    checkForUpdates()
      ✔ calls the notifier with the correct parameters


  575 passing (5s)
  1 pending
  2 failing

  1) config
       loadJSConfigFile
         provides help message on load failure due to .js ESM config file and no package:
     AssertionError: expected promise to be rejected with 'UsageError' but it was fulfilled with { sourceDir: 'fake/dir' }
  

  2) config
       loadJSConfigFile
         provides help message on load failure due to .js ESM config file and type commonjs package:
     AssertionError: expected promise to be rejected with 'UsageError' but it was fulfilled with { __esModule: true, default: {} }
  



==> FEHLER: Ein Fehler geschah in check().
    Breche ab...
 -> Fehler beim Erstellen: web-ext-exit status 4
 -> Die folgenden Pakete konnten nicht installiert werden. Ein manueller Eingriff ist erforderlich:
web-ext - exit status 4

Drücke ENTER um dieses Fenster zu schließen: 

Soll ich bei der Paketabfrage ausdrücklich mit “A” für web-ext antworten, damit er das PKBUILD neu herunterlädt?

Habs gerade nochmal probiert, aber es geht immer wieder mit -4 auf die Bretter.

Ich meine das Du einfach das Paket entfernen kannst ohne das es großartige Probleme bereiten sollte. yay -Rns web-ext.

okay, ich habs gekillt und jetzt konnte ich fehlerfrei die Updates laufen lassen.

Danke Dir.

Bei so manchem bin ich noch unsicher, was zu tun ist, wenn so ein Fehler auftritt und da frage ich halt liebe einmal mehr, als nachher was zu zerschiessen. Bei der Kommandozeile gibts halt i.d.R. keine Netz und doppelten Boden und was Du absetzt wird genauso ausgeführt, wie Dus eben eingegeben hast.

1 Like

Das ohne Netz und doppelten Boden wäre ein anderes Thema (timeshift oder snapper bpsw.),
hätte es tiefergreifende Abhängigkeiten gegeben, hätte yay auch gemeckert an welcher Stelle es tatsächlich benötigt wird.

Ansonsten, keine Ursache. Lieber einmal zu viel gefragt als einmal zu wenig. Dafür ist das Forum ja auch da.

1 Like

Ich habe timeshift laufen und es sichert bei Systemstart und behält 3 Sicherungen, wöchentlich mit 2 Sicherungen, täglich mit 2 Sicherungen und beim Systemstart mit 3 Sicherung, die es aufbewahrt. Das habe ich so ausgewählt, damit das externe LW nicht so schnell voll wird.

Und ja, deswegen habe ich ja auch mit dem -Qi-Parameter nachgeschaut, wie die einzelnen Infos belegt sind und kam auf das nodejs-web-ext. Aber wieder was gelernt. Einfach mal nachschauen, gerade bei den AUR-Paketen und da eben genau hingucken, was man da wirklich herunterlädt und braucht und in welchem Status die sind. Mache ich jetzt schon immer gewissenhafter und so manches Paket habe ich schon gekickt, dass ich nicht wirklich gebraucht habe.

Trotzdem bedanke ich mich immer für Eure bzw. hier für Deine Hilfe, weil ich dabei ja auch was lerne und ich habe mich ja auch bewusst für EOS als terminalzentriertes BS entschieden, obwohl ich wusste, dass ich da sehr viel besser aufpassen muss und viel lesen und recherchieren muss und ihr nie daherkommt und einfach sagt RTFM, sondern oft mit Engelsgeduld erklärt, was abgeht und worauf ich achten sollte und viele Tipps dazu gebt.

Und das ist einfach top und sollte nie für selbstverständlich hingenommen werden. Ist es nämlich auf keinen Fall.

Also nochmal meinen Dank @1093i3511! :handshake:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.