Diff of the two buildlogs: -- --- b1/build.log 2025-01-30 03:24:37.756765050 +0000 +++ b2/build.log 2025-01-30 03:26:24.823939739 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jan 29 15:22:00 -12 2025 -I: pbuilder-time-stamp: 1738207320 +I: Current time: Thu Jan 30 17:24:47 +14 2025 +I: pbuilder-time-stamp: 1738207487 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -27,52 +27,84 @@ dpkg-source: info: applying rack3.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/29762/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/25295/tmp/hooks/D01_modify_environment starting +debug: Running on virt64z. +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 Jan 30 03:25 /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/25295/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/25295/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='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='armhf' + 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]="arm-unknown-linux-gnueabihf") + 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=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='c8118cca22f1464890f00f6e91dfbae9' - 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='29762' - PS1='# ' - PS2='> ' + INVOCATION_ID=0d350ba1200d4e47903b527e856e141f + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=25295 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.2DxO0KMr/pbuilderrc_QA88 --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.2DxO0KMr/b1 --logfile b1/build.log ruby-omniauth_2.1.1-4.dsc' - SUDO_GID='112' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + 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.2DxO0KMr/pbuilderrc_imOq --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.2DxO0KMr/b2 --logfile b2/build.log ruby-omniauth_2.1.1-4.dsc' + SUDO_GID=110 + SUDO_UID=103 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt32b 6.1.0-30-armmp-lpae #1 SMP Debian 6.1.124-1 (2025-01-12) armv7l GNU/Linux + Linux i-capture-the-hostname 6.1.0-30-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/29762/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/25295/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -299,7 +331,7 @@ Get: 169 http://deb.debian.org/debian unstable/main armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 170 http://deb.debian.org/debian unstable/main armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 171 http://deb.debian.org/debian unstable/main armhf ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 55.2 MB in 1s (44.2 MB/s) +Fetched 55.2 MB in 7s (8004 kB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:armhf. (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 ... 19568 files and directories currently installed.) @@ -862,8 +894,8 @@ Setting up tzdata (2025a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Jan 30 03:23:01 UTC 2025. -Universal Time is now: Thu Jan 30 03:23:01 UTC 2025. +Local time is now: Thu Jan 30 03:25:42 UTC 2025. +Universal Time is now: Thu Jan 30 03:25:42 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-1) ... @@ -1018,7 +1050,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/25295/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/25295/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 @@ -1055,7 +1091,7 @@ │ ruby-omniauth: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250129-4936-di9pi8/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250130-32408-988td0/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: @@ -1070,7 +1106,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/d20250129-4936-di9pi8/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/d20250130-32408-988td0/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 @@ -1116,168 +1152,173 @@ 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/arm-linux-gnueabihf/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/arm-linux-gnueabihf/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 333 +Randomized with seed 57149 + +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 default options + sets the uid to the email + 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::Form #html appends to the html body - fieldset - creates a fieldset with options + #password_field + adds a labeled input field + #initialize + sets the form action to the passed :url option + sets an H1 tag from the passed :title option .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 an H1 tag from the passed :title option - sets the form action to the passed :url option - #password_field - adds a labeled input field - -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::FailureEndpoint - non-raise-out environment - respects the globally configured path prefix - is a redirect - includes the SCRIPT_NAME - respects the custom path prefix configured on the strategy - escapes the message key - includes the origin (escaped) if one is provided - raise-out environment - raises out the error - raises out an OmniAuth::Error if no omniauth.error is set - -OmniAuth - ::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 :: - .deep_merge - combines hashes - form_css - returns a style tag with the configured form_css - configuration - is able to set hook on option_call - is able to set hook on callback_call - is callable from .configure - is able to set the path - is able to set hook on request_call - is able to set the on_failure rack app - is able to set request_validation_phase - mock auth - sets facebook attributes - default is AuthHash - does not mutate given auth hash - facebook is AuthHash - .defaults - is a hash of default configuration - .logger - calls through to the configured logger - .strategies - increases when a new strategy is made + fieldset + creates a fieldset with options 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 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 - #callback_phase - sets the auth hash #call raises NoSessionError if rack.session isn't set duplicates and calls - #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 + #auth_hash + calls through to uid, info, credentials, and extra + returns an AuthHash .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] = 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 - user_info - should default to an empty hash - #full_host - remains calm when there is a pipe in the URL - .default_options - is inherited from a parent class - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) - #inspect - returns the class name + allows for default options setting + #fail! + provides a generic message when not provided an exception + provides exception information when one is provided fetcher procs - .extra - sets and retrieve a proc .uid sets and retrieve a proc - .info + .extra sets and retrieve a proc .credentials sets and retrieve a proc - fetcher stacks - .info_stack - is an array of called ancestral procs - .credentials_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 - #fail! - provides a generic message when not provided an exception - provides exception information when one is provided - request_phase - raises a NotImplementedError - #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 if options.skip_info is false - is false by default - #auth_hash - returns an AuthHash - calls through to uid, info, credentials, and extra - #uid - is the current class's uid if one exists - inherits if it can + .info + sets and retrieve a proc + #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 .args - is inheritable sets args to the specified argument if there is one accepts corresponding options as default arg values + is inheritable + #full_host + remains calm when there is a pipe in the URL + #callback_phase + sets the auth hash + #skip_info? + is false if options.skip_info is false + is false by default + is true if options.skip_info is true + is true if options.skip_info is a callable that evaluates to truthy #call redirects to the fail! result when encountering an unhandled exception calls fail! when encountering an unhandled exception + omniauth.origin + custom + sets from a custom param + default flow + sets from the params if provided + is set on the request phase + is turned into an env variable on the callback phase + is set on the failure env + 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 + dynamic paths + 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 + provides a custom callback path if request_path evals to a string default paths + uses the default request path strips trailing spaces on callback strips trailing spaces on request uses the default callback path is case insensitive on callback path 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 + :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 + 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 prefix + uses a custom prefix for callback + uses a custom prefix for request + callback_url + preserves the query parameters + uses a custom prefix + 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 + test mode + redirects on failure + respects SCRIPT_NAME (a.k.a. BaseURI) on failure + is case insensitive on request path + rescues errors in request_call + respects SCRIPT_NAME (a.k.a. BaseURI) + does not set body parameters of POST request on the request phase + simulates login failure if mocked data is set as a symbol + maintains host and port + executes request hook on the request phase + responds with a provider-specific hash if one is set + does not short circuit requests outside of authentication + turns omniauth.origin into an env variable on the callback phase + turns omniauth.params into an env variable on the callback phase + maintains query string parameters + executes callback hook on the callback phase + sets omniauth.params with query params on the request phase + short circuits the request phase entirely + doesn't short circuit the request if request method is not allowed + responds with the default hash if none is set + is case insensitive on callback path + 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 authenticity validation - 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 @@ -1287,47 +1328,20 @@ logs warning message when not login path is requested does not log warning message - :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 - 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 + with custom allow_if proc + allows a valid request + 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 options mutation - in callback phase + in request phase does not affect deep options does not affect original options - in request phase + in callback phase does not affect deep options does not affect original options - 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 - omniauth.origin - disabled - does not set omniauth.origin - default flow - is set on the request phase - is turned into an env variable on the callback phase - is set on the failure env - 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 - custom full_host - runs the proc with the env when it is 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 with relative url root accepts the callback accepts the request @@ -1335,126 +1349,148 @@ does not prefix a custom request path error during call_app! raises the application error - error during auth phase - passes the error to fail!() callback_url redirects to the correctly prefixed callback - test mode - responds with a provider-specific hash if one is set - is case insensitive on callback path - responds with the default hash if none is set - doesn't short circuit the request if request method is not allowed - does not set body parameters of POST request on the request phase - is case insensitive on request path - redirects on failure - maintains host and port - turns omniauth.origin into an env variable on the callback phase - rescues errors in request_call - turns omniauth.params into an env variable on the callback phase - executes request hook on the request phase - short circuits the request phase entirely - does not short circuit requests outside of authentication - sets omniauth.params with query params on the request phase - respects SCRIPT_NAME (a.k.a. BaseURI) - maintains query string parameters - respects SCRIPT_NAME (a.k.a. BaseURI) on failure - simulates login failure if mocked data is set as a symbol - executes callback hook on the callback phase - 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 - disabled - does not set omniauth.origin - custom - sets omniauth.origin from a custom param + error during auth phase + passes the error to fail!() request method restriction - does not allow a request method of the wrong type allows a request method of the correct type - custom prefix - uses a custom prefix for request - uses a custom prefix for callback - callback_url - preserves the query parameters - uses a custom prefix - 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 + does not allow a request method of the wrong type + when in test mode and path not on request path + does not verify token + fetcher stacks + .uid_stack + is an array of called ancestral procs + .info_stack + is an array of called ancestral procs + .extra_stack + is an array of called ancestral procs + .credentials_stack + is an array of called ancestral procs + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + request_phase + raises a NotImplementedError + .default_options + is inherited from a parent class .option - sets a default value sets the default value to nil if none is provided + sets a default value + 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 + calls through to /auth/:provider/setup + does not call through on a non-omniauth endpoint + #uid + is the current class's uid if one exists + inherits if it can + #inspect + returns the class name + 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.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::FailureEndpoint + raise-out environment + raises out the error + raises out an OmniAuth::Error if no omniauth.error is set + non-raise-out environment + is a redirect + includes the origin (escaped) if one is provided + respects the custom path prefix configured on the strategy + escapes the message key + respects the globally configured path prefix + includes the SCRIPT_NAME OmniAuth::Builder - #configure + #before_options_phase passes the block to the config - #on_failure + #call + passes env to to_app.call + #before_request_phase passes the block to the config - #provider - doesn't translate a symbol to a top-level constant - raises a helpful LoadError message if it can't find the class - translates a symbol to a constant - accepts a class #options adds an argument if no options are provided merges provided options in - #before_request_phase + #on_failure passes the block to the config - #call - passes env to to_app.call - #before_options_phase + #configure passes the block to the config + #provider + doesn't translate a symbol to a top-level constant + translates a symbol to a constant + accepts a class + raises a helpful LoadError message if it can't find the class #before_callback_phase passes the block to the config -OmniAuth::Strategies::Developer - callback phase - with default options - sets the uid to the email - sets the name in the auth hash - sets the email in the auth hash - with custom options - sets the uid properly - sets info fields properly - request phase - has a text field for each of the fields - has the callback as the action for the form - displays a form - OmniAuth::AuthHash - does not try to parse `string` as InfoHash converts a supplied info key into an InfoHash object has a subkey_class - #valid? - requires a provider - requires a uid - requires a name in the user info hash - is valid with the right parameters + does not try to parse `string` as InfoHash + #to_hash + supplies the calculated name in the converted hash + is a plain old hash + has string keys + converts an info hash as well + does not pollute the URL hash with 'name' etc + 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 the nickname if no name, first, or last 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 defaults to the name key displays only a first or last name if only that is available - 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+ - #to_hash - does not pollute the URL hash with 'name' etc - is a plain old hash - supplies the calculated name in the converted hash - converts an info hash as well - has string keys + #valid? + requires a uid + requires a name in the user info hash + is valid with the right parameters + requires a provider + +OmniAuth + .logger + calls through to the configured logger + .strategies + increases when a new strategy is made + ::Utils + .camelize + doesn't uppercase the first letter when passed false + works in special cases that have been added + works on normal cases + replaces / with :: + form_css + returns a style tag with the configured form_css + .deep_merge + combines hashes + configuration + is able to set request_validation_phase + is able to set hook on request_call + is able to set hook on option_call + is callable from .configure + is able to set hook on callback_call + is able to set the on_failure rack app + is able to set the path + mock auth + default is AuthHash + does not mutate given auth hash + sets facebook attributes + facebook is AuthHash + .defaults + is a hash of default configuration Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1462,10 +1498,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 1.21 seconds (files took 2.2 seconds to load) +Finished in 0.43641 seconds (files took 0.77174 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 333 +Randomized with seed 57149 /usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner @@ -1792,7 +1828,7 @@ # ./lib/omniauth/authenticity_token_protection.rb:1:in `' No examples found. -Finished in 0.0002 seconds (files took 3.16 seconds to load) +Finished in 0.00013 seconds (files took 1 second to load) 0 examples, 0 failures, 8 errors occurred outside of examples /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 failed @@ -1826,12 +1862,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/25295/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/25295/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/29762 and its subdirectories -I: Current time: Wed Jan 29 15:24:30 -12 2025 -I: pbuilder-time-stamp: 1738207470 +I: removing directory /srv/workspace/pbuilder/25295 and its subdirectories +I: Current time: Thu Jan 30 17:26:17 +14 2025 +I: pbuilder-time-stamp: 1738207577