Diff of the two buildlogs: -- --- b1/build.log 2025-08-31 11:52:56.594656456 +0000 +++ b2/build.log 2025-08-31 11:54:15.858753685 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Oct 3 06:14:49 -12 2026 -I: pbuilder-time-stamp: 1791051289 +I: Current time: Mon Sep 1 01:52:57 +14 2025 +I: pbuilder-time-stamp: 1756641177 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -27,53 +27,85 @@ dpkg-source: info: applying rack3.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3098442/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2869702/tmp/hooks/D01_modify_environment starting +debug: Running on ionos1-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 Aug 31 11:53 /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/2869702/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2869702/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' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='amd64' + 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=40 ' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='449314173019424eb3aa217b462f7035' - 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='3098442' - PS1='# ' - PS2='> ' + INVOCATION_ID=5ec4919e809e4f8087f1ff6c91ae7c51 + 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=2869702 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.J3gBLYI3/pbuilderrc_3Ygx --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.J3gBLYI3/b1 --logfile b1/build.log ruby-omniauth_2.1.1-4.dsc' - SUDO_GID='111' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152: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.J3gBLYI3/pbuilderrc_9w6B --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.J3gBLYI3/b2 --logfile b2/build.log ruby-omniauth_2.1.1-4.dsc' + SUDO_GID=110 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=105 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos15-amd64 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3098442/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2869702/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -284,7 +316,7 @@ Get: 153 http://deb.debian.org/debian forky/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 154 http://deb.debian.org/debian forky/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 155 http://deb.debian.org/debian forky/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 38.6 MB in 0s (142 MB/s) +Fetched 38.6 MB in 1s (53.2 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19897 files and directories currently installed.) @@ -798,8 +830,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Oct 3 18:15:24 UTC 2026. -Universal Time is now: Sat Oct 3 18:15:24 UTC 2026. +Local time is now: Sun Aug 31 11:53:52 UTC 2025. +Universal Time is now: Sun Aug 31 11:53:52 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... @@ -939,7 +971,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/2869702/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/2869702/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 @@ -976,7 +1012,7 @@ │ ruby-omniauth: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20261003-3110614-st2qth/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250901-2925649-tthpq1/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: @@ -991,7 +1027,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/d20261003-3110614-st2qth/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/d20250901-2925649-tthpq1/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 @@ -1037,116 +1073,130 @@ 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 3586 +Randomized with seed 47191 OmniAuth::Strategy - 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 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 - #initialize - 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 + inherits by merging with preference for the latest 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 + calls the rack app + does not call the app on a non-omniauth endpoint + #inspect + returns the class name + #uid + is the current class's uid if one exists + inherits if it can .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 - #inspect - returns the class name - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + allows for default options setting #fail! - provides a generic message when not provided an exception provides exception information when one is provided + provides a generic message when not provided an exception + .option + sets the default value to nil if none is provided + sets a default value + 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 + #callback_phase + sets the auth hash #call calls fail! when encountering an unhandled exception redirects to the fail! result when encountering an unhandled exception + with relative url root + accepts the callback + accepts the request + callback_url + redirects to the correctly prefixed callback + error during auth phase + passes the error to fail!() + error during call_app! + raises the application error + custom request + does not prefix a custom request path + omniauth.origin + disabled + does not set omniauth.origin + custom + sets from a custom param + default flow + 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 + 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 + 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 + request method restriction + allows a request method of the correct type + does not allow a request method of the wrong type authenticity validation - 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 + 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 - custom prefix - uses a custom prefix for request - uses a custom prefix for callback + with custom allow_if proc + allows a valid request + 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 - uses a custom prefix - with relative url root - accepts the callback - accepts the request - error during call_app! - raises the application error - error during auth phase - passes the error to fail!() - custom request - does not prefix a custom request path - callback_url - redirects to the correctly prefixed callback :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 when in test mode and path not on request path does not verify token - receiving an OPTIONS request - to some other path - does not short-circuit the 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 - responds with 200 - sets the Allow header properly - 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 - 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 test mode - turns omniauth.params into an env variable on the callback phase + sets omniauth.params with query params on the request phase + is case insensitive on request path + respects SCRIPT_NAME (a.k.a. BaseURI) short circuits the request phase entirely - doesn't short circuit the request if request method is not allowed - executes request hook on the request phase + maintains query string parameters + executes callback hook on the callback phase + redirects on failure rescues errors in request_call - does not set body parameters of POST request on the request phase - respects SCRIPT_NAME (a.k.a. BaseURI) on failure - is case insensitive on callback path responds with the default hash if none is set - redirects on failure + is case insensitive on callback path + simulates login failure if mocked data is set as a symbol + turns omniauth.origin into an env variable on the callback phase + respects SCRIPT_NAME (a.k.a. BaseURI) on failure responds with a provider-specific hash if one is set - is case insensitive on request path - maintains host and port + doesn't short circuit the request if request method is not allowed + turns omniauth.params into an env variable on the callback phase + does not set body parameters of POST request on the request phase does not short circuit requests outside of authentication - turns omniauth.origin into an env variable on the callback phase - simulates login failure if mocked data is set as a symbol - respects SCRIPT_NAME (a.k.a. BaseURI) - executes callback hook on the callback phase - sets omniauth.params with query params on the request phase - maintains query string parameters + executes request hook on the request phase + maintains host and port omniauth.origin custom sets omniauth.origin from a custom param @@ -1155,157 +1205,173 @@ default flow sets omniauth.origin to the HTTP_REFERER on the request phase by default sets omniauth.origin from the params if provided - omniauth.origin - default flow - 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 - 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 - disabled - does not set omniauth.origin - custom - sets from a custom param - 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 + custom full_host + honors HTTP_X_FORWARDED_PROTO if present + 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 + 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 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 default paths - is case insensitive on callback path is case insensitive on request path - uses the default request path strips trailing spaces on callback - strips trailing spaces on request + is case insensitive on callback path uses the default callback path + uses the default request path + strips trailing spaces on request callback_url + uses the default callback_path preserves the query parameters consider script name - uses the default callback_path - request method restriction - allows a request method of the correct type - does not allow a request method of the wrong type - custom full_host - is the string when a string is there - honors HTTP_X_FORWARDED_PROTO if present - 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 + custom prefix + uses a custom prefix for request + uses a custom prefix for callback + callback_url + uses a custom prefix + preserves the query parameters + 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 + 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 + #auth_hash + calls through to uid, info, credentials, and extra + returns an AuthHash .args - accepts corresponding options as default arg values sets args to the specified argument if there is one + accepts corresponding options as default arg values is inheritable fetcher stacks - .extra_stack - is an array of called ancestral procs - .credentials_stack + .uid_stack is an array of called ancestral procs .info_stack is an array of called ancestral procs - .uid_stack + .extra_stack + is an array of called ancestral procs + .credentials_stack is an array of called ancestral procs - #call - raises NoSessionError if rack.session isn't set - duplicates and calls - #auth_hash - returns an AuthHash - calls through to uid, info, credentials, and extra - 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 - does not call the app on a non-omniauth endpoint - calls the rack app - user_info - should default to an empty hash - #callback_phase - sets the auth hash - .option - sets a default value - sets the default value to nil if none is provided #skip_info? + 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 - is true if options.skip_info is true is false if options.skip_info is false + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + #full_host + remains calm when there is a pipe in the URL + user_info + should default to an empty hash request_phase raises a NotImplementedError - fetcher procs - .uid - sets and retrieve a proc - .credentials - sets and retrieve a proc - .extra - sets and retrieve a proc - .info - sets and retrieve a proc .default_options is inherited from a parent class - #full_host - remains calm when there is a pipe in the URL + #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 + duplicates and calls + raises NoSessionError if rack.session isn't set + +OmniAuth::AuthHash + has a subkey_class + converts a supplied info key into an InfoHash object + does not try to parse `string` as InfoHash + #to_hash + is a plain old hash + does not pollute the URL hash with 'name' etc + has string keys + converts an info hash as well + supplies the calculated name in the converted hash + #valid? + requires a uid + requires a provider + requires a name in the user info hash + is valid with the right parameters + 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 + 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 + +OmniAuth::FailureEndpoint + non-raise-out environment + respects the custom path prefix configured on the strategy + includes the origin (escaped) if one is provided + includes the SCRIPT_NAME + escapes the message key + respects the globally configured path prefix + is a redirect + raise-out environment + raises out an OmniAuth::Error if no omniauth.error is set + raises out the error + +OmniAuth::Strategies::Developer + callback phase + with custom options + sets info fields properly + sets the uid properly + with default options + sets the name in the auth hash + sets the uid to the email + sets the email in the auth hash + request phase + has the callback as the action for the form + displays a form + has a text field for each of the fields OmniAuth::Form - .build - evaluates in the instance when called with a block and no argument - yields the instance when called with a block and 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 - #password_field - adds a labeled input field #html appends to the html body - -OmniAuth - .logger - calls through to the configured logger - configuration - is able to set request_validation_phase - is able to set hook on request_call - is able to set the on_failure rack app - is callable from .configure - is able to set the path - is able to set hook on option_call - is able to set hook on callback_call - .defaults - is a hash of default configuration - mock auth - facebook is AuthHash - default is AuthHash - sets facebook attributes - does not mutate given auth hash - .strategies - increases when a new strategy is made - ::Utils - form_css - returns a style tag with the configured form_css - .camelize - replaces / with :: - works in special cases that have been added - works on normal cases - doesn't uppercase the first letter when passed false - .deep_merge - combines hashes + #password_field + adds a labeled input field + .build + evaluates in the instance when called with a block and no argument + yields the instance when called with a block and argument OmniAuth::KeyStore - 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.0 and 3.5.1 + does not log anything to the console on Hashie 3.5.2+ does not log anything to the console OmniAuth::Builder + #before_options_phase + passes the block to the config #configure passes the block to the config #before_request_phase passes the block to the config + #provider + accepts a class + raises a helpful LoadError message if it can't find the class + translates a symbol to a constant + doesn't translate a symbol to a top-level constant #before_callback_phase passes the block to the config #on_failure @@ -1313,69 +1379,39 @@ #call passes env to to_app.call #options - merges provided options in adds an argument if no options are provided - #before_options_phase - passes the block to the config - #provider - 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 - -OmniAuth::Strategies::Developer - callback phase - with custom options - sets info fields properly - sets the uid properly - with default options - sets the name in the auth hash - sets the uid to the email - sets the email in the auth hash - request phase - has a text field for each of the fields - displays a form - has the callback as the action for the form - -OmniAuth::FailureEndpoint - non-raise-out environment - includes the origin (escaped) if one is provided - is a redirect - escapes the message key - includes the SCRIPT_NAME - respects the custom path prefix configured on the strategy - respects the globally configured path prefix - raise-out environment - raises out the error - raises out an OmniAuth::Error if no omniauth.error is set + merges provided options in -OmniAuth::AuthHash - does not try to parse `string` as InfoHash - has a subkey_class - converts a supplied info key into an InfoHash object - 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 - 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 - displays the email if no name, first, last, or nick is available - displays the nickname if no name, first, or last is available - #valid? - requires a provider - requires a name in the user info hash - is valid with the right parameters - requires a uid - #to_hash - converts an info hash as well - 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 +OmniAuth + ::Utils + .deep_merge + combines hashes + form_css + returns a style tag with the configured form_css + .camelize + works on normal cases + replaces / with :: + doesn't uppercase the first letter when passed false + works in special cases that have been added + .logger + calls through to the configured logger + configuration + is callable from .configure + is able to set hook on callback_call + is able to set the path + is able to set request_validation_phase + is able to set hook on option_call + is able to set hook on request_call + is able to set the on_failure rack app + mock auth + does not mutate given auth hash + default is AuthHash + facebook is AuthHash + sets facebook attributes + .defaults + is a hash of default configuration + .strategies + increases when a new strategy is made Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1383,10 +1419,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 0.14391 seconds (files took 0.29768 seconds to load) +Finished in 0.15609 seconds (files took 0.34101 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 3586 +Randomized with seed 47191 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1417,12 +1453,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/2869702/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2869702/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/3098442 and its subdirectories -I: Current time: Sat Oct 3 06:15:53 -12 2026 -I: pbuilder-time-stamp: 1791051353 +I: removing directory /srv/workspace/pbuilder/2869702 and its subdirectories +I: Current time: Mon Sep 1 01:54:15 +14 2025 +I: pbuilder-time-stamp: 1756641255