Diff of the two buildlogs: -- --- b1/build.log 2024-06-15 01:19:34.111075758 +0000 +++ b2/build.log 2024-06-15 01:23:51.044137377 +0000 @@ -1,7 +1,6 @@ -W: cgroups are not available on the host, not using them. I: pbuilder: network access will be disabled during build -I: Current time: Thu Jul 17 19:41:48 -12 2025 -I: pbuilder-time-stamp: 1752824508 +I: Current time: Sat Jun 15 15:19:37 +14 2024 +I: pbuilder-time-stamp: 1718414377 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -30,51 +29,84 @@ dpkg-source: info: applying 0003-spec-helper.rb-drop-rack-freeze-usage.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2863805/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3457958/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 Jun 15 01:19 /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/3457958/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3457958/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='trixie' - 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]="21" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - 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='2863805' - PS1='# ' - PS2='> ' + INVOCATION_ID=d14ee3524c8b4c46b3409e5415b9f0ca + 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=3457958 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.wY1CnzeJ/pbuilderrc_SYC8 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wY1CnzeJ/b1 --logfile b1/build.log ruby-omniauth_2.1.1-1.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/sbin/chroot' - 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.wY1CnzeJ/pbuilderrc_8U77 --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wY1CnzeJ/b2 --logfile b2/build.log ruby-omniauth_2.1.1-1.dsc' + SUDO_GID=110 + 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 ionos5-amd64 6.7.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.7.12-1~bpo12+1 (2024-05-06) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Jun 5 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2863805/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Jun 5 22:35 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3457958/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -282,7 +314,7 @@ Get: 152 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 153 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 154 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 44.0 MB in 0s (119 MB/s) +Fetched 44.0 MB in 2s (17.7 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-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 ... 19696 files and directories currently installed.) @@ -792,8 +824,8 @@ Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Fri Jul 18 07:42:18 UTC 2025. -Universal Time is now: Fri Jul 18 07:42:18 UTC 2025. +Local time is now: Sat Jun 15 01:21:55 UTC 2024. +Universal Time is now: Sat Jun 15 01:21:55 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -932,7 +964,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-omniauth-2.1.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-omniauth_2.1.1-1_source.changes +I: user script /srv/workspace/pbuilder/3457958/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/3457958/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-omniauth-2.1.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-omniauth_2.1.1-1_source.changes dpkg-buildpackage: info: source package ruby-omniauth dpkg-buildpackage: info: source version 2.1.1-1 dpkg-buildpackage: info: source distribution unstable @@ -965,7 +1001,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-omniauth/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250717-2875760-dy5lxq/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20240615-3484138-q2hmp8/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: description and summary are identical WARNING: open-ended dependency on hashie (>= 3.4.6) is not recommended @@ -981,7 +1017,7 @@ Name: omniauth Version: 2.1.1 File: omniauth-2.1.1.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-omniauth/usr/share/rubygems-integration/all /tmp/d20250717-2875760-dy5lxq/omniauth-2.1.1.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-omniauth/usr/share/rubygems-integration/all /tmp/d20240615-3484138-q2hmp8/omniauth-2.1.1.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all/gems/omniauth-2.1.1/lib/omniauth.rb /build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all/gems/omniauth-2.1.1/lib/omniauth/auth_hash.rb @@ -1028,254 +1064,45 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-omniauth-2.1.1/debian/ruby-omniauth/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-omniauth-2.1.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 63773 - -OmniAuth::Form - fieldset - creates a fieldset with options - #html - appends to the html body - .build - yields the instance when called with a block and argument - evaluates in the instance when called with a block and no argument - #initialize - sets the form action to the passed :url option - sets an H1 tag from the passed :title option - #password_field - adds a labeled input field - -OmniAuth::FailureEndpoint - non-raise-out environment - respects the globally configured path prefix - escapes the message key - includes the SCRIPT_NAME - respects the custom path prefix configured on the strategy - is a redirect - includes the origin (escaped) if one is provided - raise-out environment - raises out an OmniAuth::Error if no omniauth.error is set - raises out the error - -OmniAuth::Builder - #before_options_phase - passes the block to the config - #on_failure - passes the block to the config - #before_request_phase - passes the block to the config - #options - merges provided options in - adds an argument if no options are provided - #configure - passes the block to the config - #before_callback_phase - passes the block to the config - #call - passes env to to_app.call - #provider - translates a symbol to a constant - raises a helpful LoadError message if it can't find the class - accepts a class - doesn't translate a symbol to a top-level constant - -OmniAuth::KeyStore - 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 - on Hashie < 3.5.0 - does not log anything to the console - -OmniAuth::Strategies::Developer - request phase - has a text field for each of the fields - has the callback as the action for the form - displays a form - 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 - -OmniAuth - configuration - is callable from .configure - is able to set the path - is able to set hook on option_call - is able to set hook on request_call - is able to set request_validation_phase - is able to set hook on callback_call - is able to set the on_failure rack app - mock auth - does not mutate given auth hash - facebook is AuthHash - default is AuthHash - sets facebook attributes - .defaults - is a hash of default configuration - .logger - calls through to the configured logger - ::Utils - .camelize - replaces / with :: - doesn't uppercase the first letter when passed false - works on normal cases - works in special cases that have been added - .deep_merge - combines hashes - form_css - returns a style tag with the configured form_css - .strategies - increases when a new strategy is made - -OmniAuth::AuthHash - does not try to parse `string` as InfoHash - converts a supplied info key into an InfoHash object - has a subkey_class - 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 - falls back to go to first_name last_name concatenation - displays the email if no name, first, last, or nick is available - displays only a first or last name if only that is available - displays the nickname if no name, first, or last is available - defaults to the name key - #to_hash - has string keys - is a plain old hash - converts an info hash as well - does not pollute the URL hash with 'name' etc - supplies the calculated name in the converted hash - #valid? - requires a provider - requires a uid - requires a name in the user info hash - is valid with the right parameters +Randomized with seed 34327 OmniAuth::Strategy is the current class's proc call if one exists inherits by merging with preference for the latest class inherits by merging with preference for the latest class is the current class's proc call if one exists - inherits by merging with preference for the latest class is the current class's proc call if one exists - #full_host - remains calm when there is a pipe in the URL - 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 + inherits by merging with preference for the latest class + #uid + is the current class's uid if one exists + inherits if it can + request_phase + raises a NotImplementedError .option - sets the default value to nil if none is provided sets a default value - #callback_phase - sets the auth hash - fetcher stacks - .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 - .uid_stack - is an array of called ancestral procs - user_info - should default to an empty hash - #auth_hash - returns an AuthHash - calls through to uid, info, credentials, and extra - #skip_info? - is false if options.skip_info is false - is true if options.skip_info is true - is true if options.skip_info is a callable that evaluates to truthy - is false by default - #fail! - provides exception information when one is provided - provides a generic message when not provided an exception + sets the default value to nil if none is provided + #full_host + remains calm when there is a pipe in the URL .args accepts corresponding options as default arg values sets args to the specified argument if there is one is inheritable - #uid - is the current class's uid if one exists - inherits if it can #inspect returns the class name - request_phase - raises a NotImplementedError + #auth_hash + returns an AuthHash + calls through to uid, info, credentials, and extra #call calls fail! when encountering an unhandled exception redirects to the fail! result when encountering an unhandled exception - authenticity validation - with allowed GET - allows a request without authenticity token - warning message logging - logs warning message - when not login path is requested - does not log warning message - with custom allow_if proc - allows a valid request - with default POST only request methods - does not allow a request without a matching authenticity token - allows a request with matching authenticity_token - test mode - doesn't short circuit the request if request method is not allowed - does not short circuit requests outside of authentication - executes callback hook on the callback phase - responds with a provider-specific hash if one is set - turns omniauth.origin into an env variable on the callback phase - responds with the default hash if none is set - is case insensitive on request path - turns omniauth.params into an env variable on the callback phase - executes request hook on the request phase - maintains host and port - simulates login failure if mocked data is set as a symbol - sets omniauth.params with query params on the request phase - rescues errors in request_call - short circuits the request phase entirely - respects SCRIPT_NAME (a.k.a. BaseURI) - maintains query string parameters - does not set body parameters of POST request on the request phase - is case insensitive on callback path - respects SCRIPT_NAME (a.k.a. BaseURI) on failure - redirects on failure - 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 - when in test mode and path not on request path - does not verify token - default paths - uses the default callback path - uses the default request path - is case insensitive on request path - strips trailing spaces on callback - is case insensitive on callback path - strips trailing spaces on request - callback_url - preserves the query parameters - consider script name - uses the default callback_path - :form option - calls through to the app if :form => true is set as an option - calls through to the supplied form option if one exists + options mutation + in request phase + does not affect deep options + does not affect original options + in callback phase + does not affect deep options + does not affect original options omniauth.origin - custom - sets from a custom param disabled does not set omniauth.origin default flow @@ -1284,89 +1111,298 @@ is turned into an env variable on the callback phase is set on the failure env 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 original options - does not affect deep options - 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 + is turned into an env variable on the callback phase, containing full path + custom + sets from a custom param + authenticity validation + with default POST only request methods + allows a request with matching authenticity_token + does not allow a request without a matching authenticity token + with allowed GET + allows a request without authenticity token + warning message logging + logs warning message + when not login path is requested + does not log warning message + with custom allow_if proc + allows a valid request + custom full_host + honors HTTP_X_FORWARDED_PROTO if present + is based on the request if it's not a string nor a proc + is the string when a string is there + runs the proc with the env when it is a proc 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 - runs the request phase if the custom request path evaluator is truthy - runs the callback phase if the custom callback path evaluator is truthy - 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 + uses a custom prefix 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 + :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 - redirects to the correctly prefixed callback - error during auth phase - passes the error to fail!() - custom full_host - is the string when a string is there - 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 + uses a custom callback_path if one is provided + preserves the query parameters + default paths + strips trailing spaces on callback + uses the default request path + uses the default callback path + is case insensitive on callback path + strips trailing spaces on request + is case insensitive on request path + callback_url + uses the default callback_path + consider script name + preserves the query parameters + 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 request phase if the custom request path evaluator is truthy + runs the callback phase if the custom callback path evaluator is truthy + when in test mode and path not on request path + does not verify token request method restriction allows a request method of the correct type does not allow a request method of the wrong type + test mode + doesn't short circuit the request if request method is not allowed + executes request hook on the request phase + respects SCRIPT_NAME (a.k.a. BaseURI) + sets omniauth.params with query params on the request phase + responds with a provider-specific hash if one is set + simulates login failure if mocked data is set as a symbol + turns omniauth.params into an env variable on the callback phase + executes callback hook on the callback phase + is case insensitive on request path + responds with the default hash if none is set + does not short circuit requests outside of authentication + does not set body parameters of POST request on the request phase + turns omniauth.origin into an env variable on the callback phase + short circuits the request phase entirely + maintains query string parameters + is case insensitive on callback path + respects SCRIPT_NAME (a.k.a. BaseURI) on failure + rescues errors in request_call + maintains host and port + redirects on failure + 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 + custom + sets omniauth.origin from a custom param 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 + sets the Allow header properly to the request path behaves like an OPTIONS request - sets the Allow header properly responds with 200 + sets the Allow header properly + to some other path + does not short-circuit the request + user_info + should default to an empty hash + 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 + #call + raises NoSessionError if rack.session isn't set + duplicates and calls + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) #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 + custom args + sets options based on the arguments if they are supplied + #fail! + provides a generic message when not provided an exception + provides exception information when one is provided .default_options is inherited from a parent class - .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 - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) - #call - duplicates and calls - raises NoSessionError if rack.session isn't set + #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 fetcher procs + .credentials + sets and retrieve a proc .uid sets and retrieve a proc .extra sets and retrieve a proc - .credentials - sets and retrieve a proc .info sets and retrieve a proc + #callback_phase + sets the auth hash + fetcher stacks + .extra_stack + is an array of called ancestral procs + .info_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 + .configure + takes a hash and deep merge it + when block is passed + works when block doesn't evaluate to true + allows for default options setting + +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::Form + fieldset + creates a fieldset with options + #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 + #html + appends to the html body + #initialize + sets an H1 tag from the passed :title option + sets the form action to the passed :url option + +OmniAuth::FailureEndpoint + raise-out environment + raises out an OmniAuth::Error if no omniauth.error is set + raises out the error + non-raise-out environment + respects the globally configured path prefix + escapes the message key + respects the custom path prefix configured on the strategy + includes the origin (escaped) if one is provided + includes the SCRIPT_NAME + is a redirect + +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 info fields properly + sets the uid properly + request phase + has the callback as the action for the form + has a text field for each of the fields + displays a form + +OmniAuth::Builder + #on_failure + passes the block to the config + #before_callback_phase + passes the block to the config + #options + merges provided options in + adds an argument if no options are provided + #before_options_phase + passes the block to the config + #before_request_phase + passes the block to the config + #call + passes env to to_app.call + #configure + 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 + +OmniAuth::AuthHash + converts a supplied info key into an InfoHash object + has a subkey_class + does not try to parse `string` as InfoHash + #name + displays the email if no name, first, last, or nick is available + defaults to the name key + falls back to go to first_name last_name concatenation + displays the nickname if no name, first, or last is available + displays only a first or last name if only that is available + #valid? + is valid with the right parameters + requires a uid + requires a name in the user info hash + requires a provider + #to_hash + converts an info hash as well + supplies the calculated name in the converted hash + has string keys + does not pollute the URL hash with 'name' etc + is a plain old 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 + +OmniAuth + .strategies + increases when a new strategy is made + .logger + calls through to the configured logger + ::Utils + .deep_merge + combines hashes + form_css + returns a style tag with the configured form_css + .camelize + works on normal cases + works in special cases that have been added + replaces / with :: + doesn't uppercase the first letter when passed false + configuration + is callable from .configure + 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 + is able to set request_validation_phase + is able to set hook on callback_call + is able to set the path + .defaults + is a hash of default configuration + mock auth + does not mutate given auth hash + facebook is AuthHash + default is AuthHash + sets facebook attributes Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1374,10 +1410,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 0.18789 seconds (files took 0.27767 seconds to load) +Finished in 1.3 seconds (files took 2.45 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 63773 +Randomized with seed 34327 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1409,12 +1445,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3457958/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3457958/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/2863805 and its subdirectories -I: Current time: Thu Jul 17 19:42:32 -12 2025 -I: pbuilder-time-stamp: 1752824552 +I: removing directory /srv/workspace/pbuilder/3457958 and its subdirectories +I: Current time: Sat Jun 15 15:23:50 +14 2024 +I: pbuilder-time-stamp: 1718414630