Diff of the two buildlogs: -- --- b1/build.log 2024-05-17 02:46:19.693655495 +0000 +++ b2/build.log 2024-05-17 02:47:10.175509277 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jun 18 21:08:38 -12 2025 -I: pbuilder-time-stamp: 1750324119 +I: Current time: Thu Jun 19 23:09:22 +14 2025 +I: pbuilder-time-stamp: 1750324162 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -29,52 +29,84 @@ dpkg-source: info: applying 0003-spec-helper.rb-drop-rack-freeze-usage.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3036610/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jun 19 09:09 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='929604fe0c39442d9362418e62e03d5b' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='3036610' - PS1='# ' - PS2='> ' + INVOCATION_ID=740588c6e47444a8b1b497a3e5813630 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1408911 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.QXik3RfV/pbuilderrc_wyMm --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.QXik3RfV/b1 --logfile b1/build.log ruby-omniauth_2.1.1-1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.QXik3RfV/pbuilderrc_EVtY --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.QXik3RfV/b2 --logfile b2/build.log ruby-omniauth_2.1.1-1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink01-arm64 6.1.0-21-cloud-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-21-cloud-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Jun 16 17:48 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3036610/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Jun 18 17:46 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -286,7 +318,7 @@ Get: 156 http://deb.debian.org/debian trixie/main arm64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 157 http://deb.debian.org/debian trixie/main arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 158 http://deb.debian.org/debian trixie/main arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 48.1 MB in 0s (146 MB/s) +Fetched 48.1 MB in 0s (156 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19744 files and directories currently installed.) @@ -808,8 +840,8 @@ Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Jun 19 09:09:01 UTC 2025. -Universal Time is now: Thu Jun 19 09:09:01 UTC 2025. +Local time is now: Thu Jun 19 09:09:47 UTC 2025. +Universal Time is now: Thu Jun 19 09:09:47 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -952,7 +984,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-omniauth-2.1.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-omniauth_2.1.1-1_source.changes +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-omniauth-2.1.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-omniauth_2.1.1-1_source.changes dpkg-buildpackage: info: source package ruby-omniauth dpkg-buildpackage: info: source version 2.1.1-1 dpkg-buildpackage: info: source distribution unstable @@ -985,7 +1021,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-omniauth/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250618-3043400-j0c4rw/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250619-1426697-m7cops/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: description and summary are identical WARNING: open-ended dependency on hashie (>= 3.4.6) is not recommended @@ -1001,7 +1037,7 @@ Name: omniauth Version: 2.1.1 File: omniauth-2.1.1.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-omniauth/usr/share/rubygems-integration/all /tmp/d20250618-3043400-j0c4rw/omniauth-2.1.1.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-omniauth/usr/share/rubygems-integration/all /tmp/d20250619-1426697-m7cops/omniauth-2.1.1.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all/gems/omniauth-2.1.1/lib/omniauth.rb /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all/gems/omniauth-2.1.1/lib/omniauth/auth_hash.rb @@ -1048,245 +1084,184 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-omniauth-2.1.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 28666 +Randomized with seed 18825 + +OmniAuth::KeyStore + on Hashie < 3.5.0 + does not log anything to the console + on Hashie 3.5.2+ + does not log anything to the console + on Hashie 3.5.0 and 3.5.1 + does not log anything to the console OmniAuth::Builder + #configure + passes the block to the config + #on_failure + passes the block to the config + #before_request_phase + passes the block to the config + #call + passes env to to_app.call #provider + translates a symbol to a constant raises a helpful LoadError message if it can't find the class accepts a class doesn't translate a symbol to a top-level constant - translates a symbol to a constant - #on_failure - passes the block to the config #before_callback_phase passes the block to the config - #call - passes env to to_app.call #options - adds an argument if no options are provided merges provided options in - #configure - passes the block to the config - #before_request_phase - passes the block to the config + adds an argument if no options are provided #before_options_phase passes the block to the config -OmniAuth::KeyStore - on Hashie < 3.5.0 - does not log anything to the console - on Hashie 3.5.2+ - does not log anything to the console - on Hashie 3.5.0 and 3.5.1 - does not log anything to the console - -OmniAuth - ::Utils - .camelize - replaces / with :: - works in special cases that have been added - works on normal cases - doesn't uppercase the first letter when passed false - form_css - returns a style tag with the configured form_css - .deep_merge - combines hashes - .logger - calls through to the configured logger - .strategies - increases when a new strategy is made - configuration - is callable from .configure - is able to set the on_failure rack app - is able to set request_validation_phase - is able to set the path - is able to set hook on option_call - is able to set hook on request_call - is able to set hook on callback_call - mock auth - sets facebook attributes - facebook is AuthHash - does not mutate given auth hash - default is AuthHash - .defaults - is a hash of default configuration - -OmniAuth::FailureEndpoint - non-raise-out environment - includes the SCRIPT_NAME - escapes the message key - respects the custom path prefix configured on the strategy - respects the globally configured path prefix - includes the origin (escaped) if one is provided - is a redirect - raise-out environment - raises out an OmniAuth::Error if no omniauth.error is set - raises out the error - -OmniAuth::AuthHash - has a subkey_class - converts a supplied info key into an InfoHash object - does not try to parse `string` as InfoHash - #valid? - requires a uid - requires a provider - requires a name in the user info hash - is valid with the right parameters - #to_hash - has string keys - is a plain old hash - does not pollute the URL hash with 'name' etc - supplies the calculated name in the converted hash - converts an info hash as well - OmniAuth::AuthHash::InfoHash - has a subkey_class - #valid? - is valid if there is a name - with Hashie 3.5.1+ - does not log anything in Hashie 3.5.1+ - #name - defaults to the name key - displays only a first or last name if only that is available - falls back to go to first_name last_name concatenation - displays the email if no name, first, last, or nick is available - displays the nickname if no name, first, or last is available - OmniAuth::Strategy is the current class's proc call if one exists - inherits by merging with preference for the latest class + is the current class's proc call if one exists is the current class's proc call if one exists inherits by merging with preference for the latest class inherits by merging with preference for the latest class - is the current class's proc call if one exists + inherits by merging with preference for the latest class + #callback_phase + sets the auth hash fetcher procs + .extra + sets and retrieve a proc .uid sets and retrieve a proc .info sets and retrieve a proc .credentials sets and retrieve a proc - .extra - sets and retrieve a proc - #inspect - returns the class name + #initialize + options extraction + is the last argument if the last argument is a Hash + is the default options if any are provided + custom args + sets options based on the arguments if they are supplied + #uid + inherits if it can + is the current class's uid if one exists + #call + raises NoSessionError if rack.session isn't set + duplicates and calls + fetcher stacks + .info_stack + is an array of called ancestral procs + .extra_stack + is an array of called ancestral procs + .uid_stack + is an array of called ancestral procs + .credentials_stack + is an array of called ancestral procs + .default_options + is inherited from a parent class + #fail! + provides exception information when one is provided + provides a generic message when not provided an exception + #auth_hash + calls through to uid, info, credentials, and extra + returns an AuthHash + request_phase + raises a NotImplementedError #call - redirects to the fail! result when encountering an unhandled exception calls fail! when encountering an unhandled exception - options mutation - in callback phase - does not affect deep options - does not affect original options - in request phase - does not affect deep options - does not affect original options - dynamic paths - runs the request phase if the custom request path evaluator is truthy - correctly reports the callback path when the custom callback path evaluator is truthy - provides a custom callback path if request_path evals to a string - runs the callback phase if the custom callback path evaluator is truthy + redirects to the fail! result when encountering an unhandled exception test mode - sets omniauth.params with query params on the request phase - executes request hook on the request phase - does not set body parameters of POST request on the request phase - maintains query string parameters - rescues errors in request_call short circuits the request phase entirely - responds with a provider-specific hash if one is set - turns omniauth.params into an env variable on the callback phase - doesn't short circuit the request if request method is not allowed - simulates login failure if mocked data is set as a symbol - does not short circuit requests outside of authentication - respects SCRIPT_NAME (a.k.a. BaseURI) - is case insensitive on request path - responds with the default hash if none is set + turns omniauth.origin into an env variable on the callback phase executes callback hook on the callback phase is case insensitive on callback path - respects SCRIPT_NAME (a.k.a. BaseURI) on failure + rescues errors in request_call + responds with the default hash if none is set + does not short circuit requests outside of authentication + is case insensitive on request path maintains host and port - turns omniauth.origin into an env variable on the callback phase redirects on failure + doesn't short circuit the request if request method is not allowed + turns omniauth.params into an env variable on the callback phase + respects SCRIPT_NAME (a.k.a. BaseURI) + respects SCRIPT_NAME (a.k.a. BaseURI) on failure + executes request hook on the request phase + does not set body parameters of POST request on the request phase + responds with a provider-specific hash if one is set + simulates login failure if mocked data is set as a symbol + maintains query string parameters + sets omniauth.params with query params on the request phase omniauth.origin + default flow + sets omniauth.origin from the params if provided + sets omniauth.origin to the HTTP_REFERER on the request phase by default custom sets omniauth.origin from a custom param disabled does not set omniauth.origin - default flow - sets omniauth.origin to the HTTP_REFERER on the request phase by default - sets omniauth.origin from the params if provided + with relative url root + accepts the callback + accepts the request + custom request + does not prefix a custom request path + error during auth phase + passes the error to fail!() + callback_url + redirects to the correctly prefixed callback + error during call_app! + raises the application error + when in test mode and path not on request path + does not verify token omniauth.origin + custom + sets from a custom param + disabled + does not set omniauth.origin default flow + sets from the params if provided is set on the failure env is set on the request phase is turned into an env variable on the callback phase - sets from the params if provided with script_name - is turned into an env variable on the callback phase, containing full path is set on the request phase, containing full path - custom - sets from a custom param - disabled - does not set omniauth.origin + is turned into an env variable on the callback phase, containing full path + custom paths + uses a custom request_path if one is provided + uses a custom callback_path if one is provided + callback_url + preserves the query parameters + uses a custom callback_path if one is provided request method restriction does not allow a request method of the wrong type allows a request method of the correct type - with relative url root - accepts the request - accepts the callback - error during auth phase - passes the error to fail!() - callback_url - redirects to the correctly prefixed callback - error during call_app! - raises the application error - custom request - does not prefix a custom request path - :form option - calls through to the app if :form => true is set as an option - calls through to the supplied form option if one exists + options mutation + in callback phase + does not affect deep options + does not affect original options + in request phase + does not affect original options + does not affect deep options custom prefix uses a custom prefix for callback uses a custom prefix for request callback_url preserves the query parameters uses a custom prefix - custom paths - uses a custom callback_path if one is provided - uses a custom request_path if one is provided - callback_url - preserves the query parameters - uses a custom callback_path if one is provided custom full_host - runs the proc with the env when it is a proc - is based on the request if it's not a string nor a proc honors HTTP_X_FORWARDED_PROTO if present is the string when a string is there - receiving an OPTIONS request - to the request path - behaves like an OPTIONS request - sets the Allow header properly - responds with 200 - to some other path - does not short-circuit the request - to the request path - behaves like an OPTIONS request - sets the Allow header properly - responds with 200 - when in test mode and path not on request path - does not verify token + is based on the request if it's not a string nor a proc + runs the proc with the env when it is a proc default paths - uses the default request path - strips trailing spaces on callback + strips trailing spaces on request uses the default callback path + strips trailing spaces on callback is case insensitive on callback path - strips trailing spaces on request is case insensitive on request path + uses the default request path callback_url - preserves the query parameters - uses the default callback_path consider script name + uses the default callback_path + preserves the query parameters authenticity validation - with custom allow_if proc - allows a valid request with allowed GET allows a request without authenticity token warning message logging @@ -1294,20 +1269,36 @@ when not login path is requested does not log warning message with default POST only request methods - does not allow a request without a matching authenticity token allows a request with matching authenticity_token - #skip_info? - is true if options.skip_info is true - is false if options.skip_info is false - is true if options.skip_info is a callable that evaluates to truthy - is false by default - #full_host - remains calm when there is a pipe in the URL - #fail! - provides a generic message when not provided an exception - provides exception information when one is provided - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + does not allow a request without a matching authenticity token + with custom allow_if proc + allows a valid request + :form option + calls through to the supplied form option if one exists + calls through to the app if :form => true is set as an option + receiving an OPTIONS request + to the request path + behaves like an OPTIONS request + responds with 200 + sets the Allow header properly + to the request path + behaves like an OPTIONS request + sets the Allow header properly + responds with 200 + to some other path + does not short-circuit the request + dynamic paths + provides a custom callback path if request_path evals to a string + correctly reports the callback path when the custom callback path evaluator is truthy + runs the callback phase if the custom callback path evaluator is truthy + runs the request phase if the custom request path evaluator is truthy + .configure + takes a hash and deep merge it + when block is passed + allows for default options setting + works when block doesn't evaluate to true + #inspect + returns the class name setup phase when options[:setup] = true does not call through on a non-omniauth endpoint @@ -1315,50 +1306,24 @@ when options[:setup] is an app calls the rack app does not call the app on a non-omniauth endpoint - #uid - inherits if it can - is the current class's uid if one exists - .default_options - is inherited from a parent class - #callback_phase - sets the auth hash - .option - sets a default value - sets the default value to nil if none is provided - request_phase - raises a NotImplementedError - .configure - takes a hash and deep merge it - when block is passed - works when block doesn't evaluate to true - allows for default options setting - user_info - should default to an empty hash + #full_host + remains calm when there is a pipe in the URL .args accepts corresponding options as default arg values is inheritable sets args to the specified argument if there is one - fetcher stacks - .extra_stack - is an array of called ancestral procs - .uid_stack - is an array of called ancestral procs - .credentials_stack - is an array of called ancestral procs - .info_stack - is an array of called ancestral procs - #initialize - custom args - sets options based on the arguments if they are supplied - options extraction - is the default options if any are provided - is the last argument if the last argument is a Hash - #call - raises NoSessionError if rack.session isn't set - duplicates and calls - #auth_hash - calls through to uid, info, credentials, and extra - returns an AuthHash + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + user_info + should default to an empty hash + #skip_info? + is true if options.skip_info is a callable that evaluates to truthy + is true if options.skip_info is true + is false by default + is false if options.skip_info is false + .option + sets a default value + sets the default value to nil if none is provided OmniAuth::Strategies::Developer request phase @@ -1366,27 +1331,98 @@ displays a form has a text field for each of the fields callback phase - with custom options - sets info fields properly - sets the uid properly with default options sets the uid to the email - sets the name in the auth hash sets the email in the auth hash + sets the name in the auth hash + with custom options + sets the uid properly + sets info fields properly + +OmniAuth + .logger + calls through to the configured logger + .strategies + increases when a new strategy is made + configuration + is able to set the on_failure rack app + is able to set request_validation_phase + is callable from .configure + is able to set the path + is able to set hook on callback_call + is able to set hook on request_call + is able to set hook on option_call + .defaults + is a hash of default configuration + mock auth + facebook is AuthHash + does not mutate given auth hash + sets facebook attributes + default is AuthHash + ::Utils + .deep_merge + combines hashes + form_css + returns a style tag with the configured form_css + .camelize + works on normal cases + replaces / with :: + works in special cases that have been added + doesn't uppercase the first letter when passed false + +OmniAuth::AuthHash + converts a supplied info key into an InfoHash object + does not try to parse `string` as InfoHash + has a subkey_class + OmniAuth::AuthHash::InfoHash + has a subkey_class + #valid? + is valid if there is a name + with Hashie 3.5.1+ + does not log anything in Hashie 3.5.1+ + #valid? + requires a name in the user info hash + requires a provider + is valid with the right parameters + requires a uid + #name + displays only a first or last name if only that is available + displays the nickname if no name, first, or last is available + defaults to the name key + displays the email if no name, first, last, or nick is available + falls back to go to first_name last_name concatenation + #to_hash + does not pollute the URL hash with 'name' etc + is a plain old hash + supplies the calculated name in the converted hash + has string keys + converts an info hash as well + +OmniAuth::FailureEndpoint + raise-out environment + raises out an OmniAuth::Error if no omniauth.error is set + raises out the error + non-raise-out environment + escapes the message key + includes the SCRIPT_NAME + respects the custom path prefix configured on the strategy + respects the globally configured path prefix + is a redirect + includes the origin (escaped) if one is provided OmniAuth::Form - #initialize - sets an H1 tag from the passed :title option - sets the form action to the passed :url option - #html - appends to the html body .build yields the instance when called with a block and argument evaluates in the instance when called with a block and no argument - #password_field - adds a labeled input field fieldset creates a fieldset with options + #initialize + sets an H1 tag from the passed :title option + sets the form action to the passed :url option + #password_field + adds a labeled input field + #html + appends to the html body Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1394,10 +1430,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 0.16865 seconds (files took 0.27267 seconds to load) +Finished in 0.18646 seconds (files took 0.2848 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 28666 +Randomized with seed 18825 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1429,12 +1465,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1408911/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/3036610 and its subdirectories -I: Current time: Wed Jun 18 21:09:18 -12 2025 -I: pbuilder-time-stamp: 1750324158 +I: removing directory /srv/workspace/pbuilder/1408911 and its subdirectories +I: Current time: Thu Jun 19 23:10:08 +14 2025 +I: pbuilder-time-stamp: 1750324208