Diff of the two buildlogs: -- --- b1/build.log 2025-02-13 22:59:11.730478514 +0000 +++ b2/build.log 2025-02-13 22:59:47.364868459 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Feb 13 10:58:04 -12 2025 -I: pbuilder-time-stamp: 1739487484 +I: Current time: Thu Mar 19 19:22:13 +14 2026 +I: pbuilder-time-stamp: 1773897733 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -28,54 +28,86 @@ dpkg-source: info: applying rack3.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/20011/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/124443/tmp/hooks/D01_modify_environment starting +debug: Running on ionos16-i386. +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 Mar 19 05:22 /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/124443/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/124443/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='i386' + 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]="37" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='6cb095a8bd844c188283e691defa0a13' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='20011' - PS1='# ' - PS2='> ' + INVOCATION_ID=3513ab8e54f94153a07a94cf6de58b1a + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-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=124443 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.mm6lwCwL/pbuilderrc_rbYn --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.mm6lwCwL/b1 --logfile b1/build.log ruby-omniauth_2.1.1-4.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132: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.mm6lwCwL/pbuilderrc_lx8v --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.mm6lwCwL/b2 --logfile b2/build.log ruby-omniauth_2.1.1-4.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos12-i386 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/20011/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/124443/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -298,7 +330,7 @@ Get: 165 http://deb.debian.org/debian trixie/main i386 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 166 http://deb.debian.org/debian trixie/main i386 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 167 http://deb.debian.org/debian trixie/main i386 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 51.2 MB in 1s (72.6 MB/s) +Fetched 51.2 MB in 0s (109 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:i386. (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 ... 19794 files and directories currently installed.) @@ -848,8 +880,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Feb 13 22:58:42 UTC 2025. -Universal Time is now: Thu Feb 13 22:58:42 UTC 2025. +Local time is now: Thu Mar 19 05:22:34 UTC 2026. +Universal Time is now: Thu Mar 19 05:22:34 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-2) ... @@ -1001,7 +1033,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-4_source.changes +I: user script /srv/workspace/pbuilder/124443/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/124443/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-4_source.changes dpkg-buildpackage: info: source package ruby-omniauth dpkg-buildpackage: info: source version 2.1.1-4 dpkg-buildpackage: info: source distribution unstable @@ -1038,7 +1074,7 @@ │ ruby-omniauth: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250213-29571-42t0m2/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260319-129774-dqhjeq/gemspec WARNING: description and summary are identical WARNING: open-ended dependency on hashie (>= 3.4.6) is not recommended if hashie is semantically versioned, use: @@ -1053,7 +1089,7 @@ Name: omniauth Version: 2.1.1 File: omniauth-2.1.1.gem -/usr/bin/ruby3.3 -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/d20250213-29571-42t0m2/omniauth-2.1.1.gem +/usr/bin/ruby3.3 -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/d20260319-129774-dqhjeq/omniauth-2.1.1.gem /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 /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all/gems/omniauth-2.1.1/lib/omniauth/authenticity_token_protection.rb @@ -1099,49 +1135,104 @@ 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.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/i386-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/i386-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.3 -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 60310 +Randomized with seed 37417 -OmniAuth::FailureEndpoint - non-raise-out environment - escapes the message key - respects the globally configured path prefix - includes the origin (escaped) if one is provided - includes the SCRIPT_NAME - is a redirect - respects the custom path prefix configured on the strategy - raise-out environment - raises out the error - raises out an OmniAuth::Error if no omniauth.error is set +OmniAuth::Strategies::Developer + callback phase + with default options + sets the email in the auth hash + sets the uid to the email + sets the name in the auth hash + with custom options + sets info fields properly + sets the uid properly + request phase + displays a form + has a text field for each of the fields + has the callback as the action for the form + +OmniAuth::Builder + #before_request_phase + passes the block to the config + #before_options_phase + passes the block to the config + #options + adds an argument if no options are provided + merges provided options in + #call + passes env to to_app.call + #on_failure + passes the block to the config + #provider + translates a symbol to a constant + doesn't translate a symbol to a top-level constant + raises a helpful LoadError message if it can't find the class + accepts a class + #configure + passes the block to the config + #before_callback_phase + passes the block to the config + +OmniAuth + .strategies + increases when a new strategy is made + .logger + calls through to the configured logger + configuration + is callable from .configure + is able to set request_validation_phase + is able to set hook on callback_call + is able to set hook on request_call + is able to set the on_failure rack app + is able to set the path + is able to set hook on option_call + .defaults + is a hash of default configuration + mock auth + does not mutate given auth hash + sets facebook attributes + facebook is AuthHash + default is AuthHash + ::Utils + .camelize + doesn't uppercase the first letter when passed false + works in special cases that have been added + replaces / with :: + works on normal cases + form_css + returns a style tag with the configured form_css + .deep_merge + combines hashes OmniAuth::KeyStore on Hashie 3.5.2+ does not log anything to the console - on Hashie < 3.5.0 - does not log anything to the console on Hashie 3.5.0 and 3.5.1 does not log anything to the console + on Hashie < 3.5.0 + does not log anything to the console OmniAuth::AuthHash converts a supplied info key into an InfoHash object - has a subkey_class does not try to parse `string` as InfoHash + has a subkey_class #valid? + requires a uid + requires a provider requires a name in the user info hash is valid with the right parameters - requires a provider - requires a uid #to_hash + converts an info hash as well + has string keys supplies the calculated name in the converted hash does not pollute the URL hash with 'name' etc - has string keys - converts an info hash as well is a plain old hash #name - displays the email if no name, first, last, or nick is available + falls back to go to first_name last_name concatenation + displays only a first or last name if only that is available displays the nickname if no name, first, or last is available + displays the email if no name, first, last, or nick is available 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 OmniAuth::AuthHash::InfoHash has a subkey_class with Hashie 3.5.1+ @@ -1149,295 +1240,240 @@ #valid? is valid if there is a name -OmniAuth - ::Utils - .deep_merge - combines hashes - form_css - returns a style tag with the configured form_css - .camelize - doesn't uppercase the first letter when passed false - works on normal cases - works in special cases that have been added - replaces / with :: - .strategies - increases when a new strategy is made - .logger - calls through to the configured logger - configuration - is able to set the path - is able to set hook on request_call - is callable from .configure - is able to set hook on option_call - is able to set the on_failure rack app - is able to set request_validation_phase - is able to set hook on callback_call - mock auth - does not mutate given auth hash - default is AuthHash - sets facebook attributes - facebook is AuthHash - .defaults - is a hash of default configuration - -OmniAuth::Strategies::Developer - callback phase - with default options - sets the email in the auth hash - sets the uid to the email - sets the name in the auth hash - with custom options - sets info fields properly - sets the uid properly - request phase - has a text field for each of the fields - displays a form - has the callback as the action for the form - OmniAuth::Strategy 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 is the current class's proc call if one exists inherits by merging with preference for the latest class - .args - sets args to the specified argument if there is one - is inheritable - accepts corresponding options as default arg values + inherits by merging with preference for the latest class #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 + custom args + sets options based on the arguments if they are supplied + setup phase + when options[:setup] = true + calls through to /auth/:provider/setup + does not call through on a non-omniauth endpoint + when options[:setup] is an app + calls the rack app + does not call the app on a non-omniauth endpoint + #fail! + provides a generic message when not provided an exception + provides exception information when one is provided + request_phase + raises a NotImplementedError + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) fetcher stacks + .extra_stack + is an array of called ancestral procs .credentials_stack is an array of called ancestral procs .uid_stack is an array of called ancestral procs - .extra_stack - is an array of called ancestral procs .info_stack is an array of called ancestral procs + .args + sets args to the specified argument if there is one + accepts corresponding options as default arg values + is inheritable + #inspect + returns the class name + #callback_phase + sets the auth hash + #skip_info? + is true if options.skip_info is true + is false if options.skip_info is false + is false by default + is true if options.skip_info is a callable that evaluates to truthy + .default_options + is inherited from a parent class + user_info + should default to an empty hash + #full_host + remains calm when there is a pipe in the URL .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 - .option - sets the default value to nil if none is provided - sets a default value - request_phase - raises a NotImplementedError - #full_host - remains calm when there is a pipe in the URL - #fail! - provides exception information when one is provided - provides a generic message when not provided an exception - #auth_hash - returns an AuthHash - calls through to uid, info, credentials, and extra - fetcher procs - .credentials - sets and retrieve a proc - .extra - sets and retrieve a proc - .info - sets and retrieve a proc - .uid - sets and retrieve a proc - #skip_info? - is false if options.skip_info is false - is true if options.skip_info is true - is true if options.skip_info is a callable that evaluates to truthy - is false by default + works when block doesn't evaluate to true #call - redirects to the fail! result when encountering an unhandled exception calls fail! when encountering an unhandled exception - :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 + redirects to the fail! result when encountering an unhandled exception + custom full_host + honors HTTP_X_FORWARDED_PROTO if present + is based on the request if it's not a string nor a proc + is the string when a string is there + runs the proc with the env when it is a proc options mutation - in request phase - does not affect original options - does not affect deep options in callback phase does not affect deep options does not affect original options - when in test mode and path not on request path - does not verify token - authenticity validation - with default POST only request methods - allows a request with matching authenticity_token - does not allow a request without a matching authenticity token - with allowed GET - allows a request without authenticity token - warning message logging - logs warning message - when not login path is requested - does not log warning message - with custom allow_if proc - allows a valid request - with relative url root - accepts the request - accepts the callback - custom request - does not prefix a custom request path - error during auth phase - passes the error to fail!() + in request phase + does not affect original options + does not affect deep options + 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 + default paths + uses the default callback path + strips trailing spaces on callback + strips trailing spaces on request + is case insensitive on callback path + uses the default request path + is case insensitive on request path callback_url - redirects to the correctly prefixed callback - error during call_app! - raises the application error + preserves the query parameters + consider script name + uses the default callback_path omniauth.origin default flow + is turned into an env variable on the callback phase + is set on the failure env sets from the params if provided is set on the request phase - is set on the failure env - is turned into an env variable on the callback phase 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 - disabled - does not set omniauth.origin + is turned into an env variable on the callback phase, containing full path custom sets from a custom param - dynamic paths - provides a custom callback path if request_path evals to a string - runs the callback phase if the custom callback path evaluator is truthy - correctly reports the callback path when the custom callback path evaluator is truthy - runs the request phase if the custom request path evaluator is truthy + disabled + does not set omniauth.origin custom paths uses a custom request_path if one is provided uses a custom callback_path if one is provided callback_url uses a custom callback_path if one is provided preserves the query parameters - custom full_host - is the string when a string is there - 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 - honors HTTP_X_FORWARDED_PROTO if present - request method restriction - does not allow a request method of the wrong type - allows a request method of the correct type - receiving an OPTIONS request - 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 - to the request path - behaves like an OPTIONS request - sets the Allow header properly - responds with 200 - default paths - strips trailing spaces on request - uses the default callback path - is case insensitive on request path - is case insensitive on callback path - strips trailing spaces on callback - uses the default request path + with relative url root + accepts the request + accepts the callback + error during call_app! + raises the application error + callback_url + redirects to the correctly prefixed callback + error during auth phase + passes the error to fail!() + custom request + does not prefix a custom request path + when in test mode and path not on request path + does not verify token + custom prefix + uses a custom prefix for request + uses a custom prefix for callback callback_url - consider script name preserves the query parameters - uses the default callback_path + uses a custom prefix + authenticity validation + with allowed GET + allows a request without authenticity token + warning message logging + logs warning message + when not login path is requested + does not log warning message + with custom allow_if proc + allows a valid request + with default POST only request methods + allows a request with matching authenticity_token + does not allow a request without a matching authenticity token + request method restriction + allows a request method of the correct type + does not allow a request method of the wrong type + :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 test mode - responds with the default hash if none is set - short circuits the request phase entirely executes callback hook on the callback phase - does not short circuit requests outside of authentication - doesn't short circuit the request if request method is not allowed - is case insensitive on callback path - simulates login failure if mocked data is set as a symbol - redirects on failure - maintains query string parameters responds with a provider-specific hash if one is set - does not set body parameters of POST request on the request phase is case insensitive on request path - turns omniauth.origin into an env variable on the callback phase + responds with the default hash if none is set + maintains query string parameters sets omniauth.params with query params on the request phase - respects SCRIPT_NAME (a.k.a. BaseURI) on failure - executes request hook on the request phase - turns omniauth.params into an env variable on the callback phase - respects SCRIPT_NAME (a.k.a. BaseURI) rescues errors in request_call maintains host and port + does not short circuit requests outside of authentication + respects SCRIPT_NAME (a.k.a. BaseURI) + short circuits the request phase entirely + redirects on failure + turns omniauth.origin into an env variable on the callback phase + is case insensitive on callback path + simulates login failure if mocked data is set as a symbol + turns omniauth.params into an env variable on the callback phase + executes request hook on the request phase + respects SCRIPT_NAME (a.k.a. BaseURI) on failure + doesn't short circuit the request if request method is not allowed + does not set body parameters of POST request on the request phase omniauth.origin 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 - custom prefix - uses a custom prefix for request - uses a custom prefix for callback - callback_url - uses a custom prefix - preserves the query parameters + sets omniauth.origin to the HTTP_REFERER on the request phase by default + disabled + does not set omniauth.origin + dynamic paths + runs the request phase if the custom request path evaluator is truthy + runs the callback phase if the custom callback 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 #uid - inherits if it can is the current class's uid if one exists + inherits if it can + .option + sets a default value + sets the default value to nil if none is provided + fetcher procs + .info + sets and retrieve a proc + .extra + sets and retrieve a proc + .credentials + sets and retrieve a proc + .uid + sets and retrieve a proc #call - raises NoSessionError if rack.session isn't set duplicates and calls - setup phase - when options[:setup] is an app - does not call the app on a non-omniauth endpoint - calls the rack app - when options[:setup] = true - does not call through on a non-omniauth endpoint - calls through to /auth/:provider/setup - #inspect - returns the class name - user_info - should default to an empty hash - .default_options - is inherited from a parent class - #callback_phase - sets the auth hash - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + raises NoSessionError if rack.session isn't set + #auth_hash + calls through to uid, info, credentials, and extra + returns an AuthHash OmniAuth::Form - #password_field - adds a labeled input field - #html - appends to the html body + fieldset + creates a fieldset with options .build yields the instance when called with a block and argument evaluates in the instance when called with a block and no argument - 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 + sets an H1 tag from the passed :title option + #password_field + adds a labeled input field + #html + appends to the html body -OmniAuth::Builder - #before_request_phase - passes the block to the config - #call - passes env to to_app.call - #before_callback_phase - passes the block to the config - #provider - accepts a class - raises a helpful LoadError message if it can't find the class - doesn't translate a symbol to a top-level constant - translates a symbol to a constant - #before_options_phase - passes the block to the config - #options - merges provided options in - adds an argument if no options are provided - #configure - passes the block to the config - #on_failure - passes the block to the config +OmniAuth::FailureEndpoint + raise-out environment + raises out the error + raises out an OmniAuth::Error if no omniauth.error is set + non-raise-out environment + respects the globally configured path prefix + includes the origin (escaped) if one is provided + escapes the message key + is a redirect + respects the custom path prefix configured on the strategy + includes the SCRIPT_NAME Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1445,10 +1481,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 0.40826 seconds (files took 0.80558 seconds to load) +Finished in 0.16644 seconds (files took 0.33695 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 60310 +Randomized with seed 37417 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1479,12 +1515,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/124443/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/124443/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/20011 and its subdirectories -I: Current time: Thu Feb 13 10:59:11 -12 2025 -I: pbuilder-time-stamp: 1739487551 +I: removing directory /srv/workspace/pbuilder/124443 and its subdirectories +I: Current time: Thu Mar 19 19:22:46 +14 2026 +I: pbuilder-time-stamp: 1773897766