Diff of the two buildlogs: -- --- b1/build.log 2025-02-26 10:52:11.722596399 +0000 +++ b2/build.log 2025-02-26 10:56:01.320265630 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Mar 31 05:13:20 -12 2026 -I: pbuilder-time-stamp: 1774977200 +I: Current time: Thu Feb 27 00:52:13 +14 2025 +I: pbuilder-time-stamp: 1740567133 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -27,51 +27,83 @@ dpkg-source: info: applying rack3.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1687090/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2996329/tmp/hooks/D01_modify_environment starting +debug: Running on infom01-amd64. +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 Feb 26 10:52 /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/2996329/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2996329/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='amd64' - 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]="37" [3]="1" [4]="release" [5]="x86_64-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=amd64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='7c120c906ccb4b578e53afec77bde700' - 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='1687090' - PS1='# ' - PS2='> ' + INVOCATION_ID=779105a9a97746feb405b2972e5f06a3 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-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=2996329 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.araWZNOt/pbuilderrc_jMUg --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.araWZNOt/b1 --logfile b1/build.log ruby-omniauth_2.1.1-4.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' + 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.araWZNOt/pbuilderrc_GGvB --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.araWZNOt/b2 --logfile b2/build.log ruby-omniauth_2.1.1-4.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' I: uname -a - Linux infom02-amd64 6.12.9+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.9-1~bpo12+1 (2025-01-19) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-cloud-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 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1687090/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2996329/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -294,7 +326,7 @@ Get: 165 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 166 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 167 http://deb.debian.org/debian unstable/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 50.6 MB in 1s (39.1 MB/s) +Fetched 50.6 MB in 4s (12.5 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:amd64. (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 ... 19775 files and directories currently installed.) @@ -844,8 +876,8 @@ Setting up tzdata (2025a-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Tue Mar 31 17:14:45 UTC 2026. -Universal Time is now: Tue Mar 31 17:14:45 UTC 2026. +Local time is now: Wed Feb 26 10:55:29 UTC 2025. +Universal Time is now: Wed Feb 26 10:55:29 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-2) ... @@ -997,7 +1029,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/2996329/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2996329/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 @@ -1034,7 +1070,7 @@ │ ruby-omniauth: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260331-1702401-6bwuas/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250227-3022149-n6z2rv/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: @@ -1049,7 +1085,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/d20260331-1702401-6bwuas/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/d20250227-3022149-n6z2rv/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 @@ -1095,136 +1131,179 @@ 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/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-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 17354 +Randomized with seed 23770 + +OmniAuth::Builder + #before_options_phase + passes the block to the config + #configure + passes the block to the config + #options + merges provided options in + adds an argument if no options are provided + #call + passes env to to_app.call + #before_callback_phase + passes the block to the config + #provider + accepts a class + 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 + #on_failure + passes the block to the config + #before_request_phase + passes the block to the config + +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 + #initialize + sets the form action to the passed :url option + sets an H1 tag from the passed :title option OmniAuth::FailureEndpoint non-raise-out environment - includes the SCRIPT_NAME - is a redirect escapes the message key - includes the origin (escaped) if one is provided respects the globally configured path prefix respects the custom path prefix configured on the strategy + is a redirect + includes the origin (escaped) if one is provided + includes the SCRIPT_NAME raise-out environment - raises out an OmniAuth::Error if no omniauth.error is set raises out the error - -OmniAuth - configuration - is able to set hook on callback_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 the path - is able to set hook on request_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 - .camelize - works on normal cases - doesn't uppercase the first letter when passed false - works in special cases that have been added - replaces / with :: - 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 + raises out an OmniAuth::Error if no omniauth.error is set OmniAuth::Strategies::Developer + request phase + displays a form + has the callback as the action for the 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 email in the auth hash sets the name in the auth hash sets the uid to the email - with custom options - sets the uid properly - sets info fields properly - request phase - has a text field for each of the fields - displays a form - has the callback as the action for the form + sets the email in the auth hash + +OmniAuth::AuthHash + does not try to parse `string` as InfoHash + has a subkey_class + converts a supplied info key into an InfoHash object + #name + displays the email if no name, first, last, or nick is available + displays the nickname if no name, first, or last is available + falls back to go to first_name last_name concatenation + displays only a first or last name if only that is available + defaults to the name key + #valid? + requires a uid + is valid with the right parameters + requires a provider + requires a name in the user info hash + #to_hash + supplies the calculated name in the converted hash + has string keys + is a plain old hash + converts an info hash as well + does not pollute the URL hash with 'name' etc + 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+ OmniAuth::Strategy 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 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 + #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 .args - is inheritable sets args to the specified argument if there is one + is inheritable accepts corresponding options as default arg values - #skip_info? - 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 - is true if options.skip_info is true - 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 + request_phase + raises a NotImplementedError + #callback_phase + sets the auth hash + #inspect + returns the class name #call calls fail! when encountering an unhandled exception redirects to the fail! result when encountering an unhandled exception - 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 - responds with 200 - sets the Allow header properly - when in test mode and path not on request path - does not verify token - default paths - uses the default request path - uses the default callback path - strips trailing spaces on callback - is case insensitive on request path - is case insensitive on callback path - strips trailing spaces on request + custom paths + uses a custom request_path if one is provided + uses a custom callback_path if one is provided callback_url - consider script name + uses a custom callback_path if one is provided preserves the query parameters - uses the default callback_path + 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 omniauth.origin - custom - sets from a custom param disabled does not set omniauth.origin default flow - is set on the request phase - is turned into an env variable on the callback phase 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 with script_name is set on the request phase, containing full path is turned into an env variable on the callback phase, containing full path + custom + sets from a custom param + :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 + default paths + is case insensitive on callback path + strips trailing spaces on callback + strips trailing spaces on request + is case insensitive on request path + uses the default callback path + uses the default request path + callback_url + preserves the query parameters + uses the default callback_path + consider script name custom full_host runs the proc with the env when it is a proc - 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 + is based on the request if it's not a string nor a proc + honors HTTP_X_FORWARDED_PROTO if present + when in test mode and path not on request path + does not verify token + dynamic paths + provides a custom callback path if request_path evals to a string + 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 authenticity validation + with default POST only request methods + does not allow a request without a matching authenticity token + allows a request with matching authenticity_token with allowed GET allows a request without authenticity token warning message logging @@ -1233,207 +1312,164 @@ does not log warning message with custom allow_if proc allows a valid request - with default POST only request methods - does not allow a request without a matching authenticity token - allows a request with matching authenticity_token + request method restriction + does not allow a request method of the wrong type + allows a request method of the correct type test mode - respects SCRIPT_NAME (a.k.a. BaseURI) - executes request hook on the request phase doesn't short circuit the request if request method is not allowed - maintains query string parameters - simulates login failure if mocked data is set as a symbol - is case insensitive on request path does not set body parameters of POST request on the request phase - responds with a provider-specific hash if one is set - maintains host and port + sets omniauth.params with query params on the request phase is case insensitive on callback path - turns omniauth.origin into an env variable on the callback phase + executes request hook on the request phase responds with the default hash if none is set - sets omniauth.params with query params on the request phase + simulates login failure if mocked data is set as a symbol + respects SCRIPT_NAME (a.k.a. BaseURI) on failure + is case insensitive on request path + respects SCRIPT_NAME (a.k.a. BaseURI) + maintains query string parameters + turns omniauth.params into an env variable on the callback phase + does not short circuit requests outside of authentication executes callback hook on the callback phase - rescues errors in request_call redirects on failure - does not short circuit requests outside of authentication + maintains host and port + responds with a provider-specific hash if one is set + turns omniauth.origin into an env variable on the callback phase short circuits the request phase entirely - respects SCRIPT_NAME (a.k.a. BaseURI) on failure - turns omniauth.params into an env variable on the callback phase + rescues errors in request_call omniauth.origin custom sets omniauth.origin from a custom param - disabled - does not set 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 + disabled + does not set omniauth.origin with relative url root - accepts the request accepts the callback - error during call_app! - raises the application error - error during auth phase - passes the error to fail!() + accepts the request custom request does not prefix a custom request path + error during call_app! + raises the application error callback_url redirects to the correctly prefixed callback - request method restriction - does not allow a request method of the wrong type - allows a request method of the correct type - :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 + error during auth phase + passes the error to fail!() + receiving an OPTIONS 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 + responds with 200 + sets the Allow header properly + to some other path + does not short-circuit the request custom prefix - uses a custom prefix for callback uses a custom prefix for request + uses a custom prefix for callback callback_url uses a custom prefix preserves the query parameters - 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 - options mutation - in request phase - does not affect deep options - does not affect original options - in callback phase - does not affect original options - does not affect deep options - dynamic paths - 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 - runs the request phase if the custom request path evaluator is truthy - request_phase - raises a NotImplementedError - #callback_phase - sets the auth hash - #uid - inherits if it can - is the current class's uid if one exists + .default_options + is inherited from a parent class + setup phase + when options[:setup] = true + does not call through on a non-omniauth endpoint + calls through to /auth/:provider/setup + when options[:setup] is an app + does not call the app on a non-omniauth endpoint + calls the rack app .option - sets a default value sets the default value to nil if none is provided - #inspect - returns the class name + sets a default value + .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 + #uid + is the current class's uid if one exists + inherits if it can + #initialize + custom args + sets options based on the arguments if they are supplied + options extraction + is the last argument if the last argument is a Hash + is the default options if any are provided + #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 + fetcher procs + .extra + sets and retrieve a proc + .info + sets and retrieve a proc + .credentials + sets and retrieve a proc + .uid + sets and retrieve a proc + #auth_hash + returns an AuthHash + calls through to uid, info, credentials, and extra #redirect uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) - user_info - should default to an empty hash - .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 fetcher stacks - .info_stack + .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 - .extra_stack + .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 - .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 - setup phase - when options[:setup] is an app - calls the rack app - does not call the app on a non-omniauth endpoint - when options[:setup] = true - does not call through on a non-omniauth endpoint - calls through to /auth/:provider/setup - #auth_hash - calls through to uid, info, credentials, and extra - returns an AuthHash - #full_host - remains calm when there is a pipe in the URL #call - raises NoSessionError if rack.session isn't set duplicates and calls - -OmniAuth::Builder - #provider - raises a helpful LoadError message if it can't find the class - translates a symbol to a constant - accepts a class - doesn't translate a symbol to a top-level 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 - #before_request_phase - passes the block to the config - #before_options_phase - passes the block to the config - #configure - passes the block to the config + raises NoSessionError if rack.session isn't set + user_info + should default to an empty hash OmniAuth::KeyStore - 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 on Hashie 3.5.2+ does not log anything to the console -OmniAuth::AuthHash - does not try to parse `string` as InfoHash - has a subkey_class - converts a supplied info key into an InfoHash object - #valid? - requires a provider - requires a uid - is valid with the right parameters - requires a name in the user info hash - OmniAuth::AuthHash::InfoHash - has a subkey_class - with Hashie 3.5.1+ - does not log anything in Hashie 3.5.1+ - #valid? - is valid if there is a name - #name - displays only a first or last name if only that is available - defaults to the name key - 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 - #to_hash - is a plain old hash - supplies the calculated name in the converted hash - does not pollute the URL hash with 'name' etc - converts an info hash as well - has string keys - -OmniAuth::Form - #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 - fieldset - creates a fieldset with options - .build - evaluates in the instance when called with a block and no argument - yields the instance when called with a block and argument - #html - appends to the html body +OmniAuth + 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 hook on request_call + is able to set hook on option_call + is able to set hook on callback_call + is able to set the path + mock auth + default is AuthHash + does not mutate given auth hash + facebook is AuthHash + sets facebook attributes + .defaults + is a hash of default configuration + .strategies + increases when a new strategy is made + ::Utils + .camelize + works in special cases that have been added + replaces / with :: + 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 Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1441,10 +1477,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 0.13205 seconds (files took 0.37857 seconds to load) +Finished in 0.13517 seconds (files took 0.2068 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 17354 +Randomized with seed 23770 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1475,12 +1511,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/2996329/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2996329/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/1687090 and its subdirectories -I: Current time: Tue Mar 31 05:15:08 -12 2026 -I: pbuilder-time-stamp: 1774977308 +I: removing directory /srv/workspace/pbuilder/2996329 and its subdirectories +I: Current time: Thu Feb 27 00:56:00 +14 2025 +I: pbuilder-time-stamp: 1740567360