Diff of the two buildlogs: -- --- b1/build.log 2025-02-12 08:28:15.269677537 +0000 +++ b2/build.log 2025-02-12 08:29:07.171348297 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Feb 11 20:26:22 -12 2025 -I: pbuilder-time-stamp: 1739348782 +I: Current time: Wed Mar 18 04:51:17 +14 2026 +I: pbuilder-time-stamp: 1773759077 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-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/2669310/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4033457/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Mar 17 14:51 /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/4033457/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4033457/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='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-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=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='dde628a16e2840448ef2e1bc2273e735' - 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='2669310' - PS1='# ' - PS2='> ' + INVOCATION_ID=a0e4f27d94c44b929a33029226f42bd7 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-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=4033457 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.rSCRWvwH/pbuilderrc_KVyL --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.rSCRWvwH/b1 --logfile b1/build.log ruby-omniauth_2.1.1-4.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4: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.rSCRWvwH/pbuilderrc_EruK --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.rSCRWvwH/b2 --logfile b2/build.log ruby-omniauth_2.1.1-4.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) 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/2669310/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4033457/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 trixie/main arm64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 170 http://deb.debian.org/debian trixie/main arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 171 http://deb.debian.org/debian trixie/main arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 56.3 MB in 1s (104 MB/s) +Fetched 56.3 MB in 1s (81.7 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:arm64. (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 ... 19920 files and directories currently installed.) @@ -862,8 +894,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed Feb 12 08:27:22 UTC 2025. -Universal Time is now: Wed Feb 12 08:27:22 UTC 2025. +Local time is now: Tue Mar 17 14:51:41 UTC 2026. +Universal Time is now: Tue Mar 17 14:51:41 UTC 2026. 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/4033457/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/4033457/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/d20250211-2709549-sepsr8/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260318-4039941-1q4huk/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/d20250211-2709549-sepsr8/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/d20260318-4039941-1q4huk/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,345 +1152,345 @@ 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/aarch64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-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 15957 +Randomized with seed 44615 -OmniAuth::Builder - #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_options_phase - passes the block to the config - #call - passes env to to_app.call - #before_callback_phase - passes the block to the config - #before_request_phase - passes the block to the config - #configure - passes the block to the config - #options - adds an argument if no options are provided - merges provided options in - #on_failure - passes the block to the config +OmniAuth::AuthHash + converts a supplied info key into an InfoHash object + does not try to parse `string` as InfoHash + has a subkey_class + #to_hash + supplies the calculated name in the converted hash + has string keys + converts an info hash as well + is a plain old hash + does not pollute the URL hash with 'name' etc + #name + displays the email if no name, first, last, or nick is available + falls back to go to first_name last_name concatenation + displays only a first or last name if only that is available + defaults to the name key + displays the nickname if no name, first, or last 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+ + #valid? + requires a provider + requires a name in the user info hash + requires a uid + is valid with the right parameters OmniAuth - .logger - calls through to the configured logger ::Utils form_css returns a style tag with the configured form_css - .deep_merge - combines hashes .camelize - replaces / with :: - works in special cases that have been added works on normal cases + works in special cases that have been added doesn't uppercase the first letter when passed false + replaces / with :: + .deep_merge + combines hashes + .logger + calls through to the configured logger configuration - is able to set request_validation_phase - is able to set the path is able to set hook on callback_call is able to set hook on request_call - is able to set hook on option_call - is callable from .configure is able to set the on_failure rack app + is callable from .configure + is able to set hook on option_call + is able to set the path + is able to set request_validation_phase + .defaults + is a hash of default configuration mock auth + facebook is AuthHash sets facebook attributes does not mutate given auth hash default is AuthHash - facebook is AuthHash - .defaults - is a hash of default configuration .strategies increases when a new strategy is made -OmniAuth::KeyStore - on Hashie < 3.5.0 - does not log anything to the console - on Hashie 3.5.0 and 3.5.1 - does not log anything to the console - on Hashie 3.5.2+ - does not log anything to the console - -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 - has string keys - does not pollute the URL hash with 'name' etc - converts an info hash as well - supplies the calculated name in the converted hash - 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 - #name - defaults to the name key - displays only a first or last name if only that is available - falls back to go to first_name last_name concatenation - displays the email if no name, first, last, or nick is available - displays the nickname if no name, first, or last is available - #valid? - is valid with the right parameters - requires a uid - requires a provider - requires a name in the user info hash - -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 - #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 - fieldset - creates a fieldset with options - #html - appends to the html body - -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 name in the auth hash - sets the email in the auth hash - sets the uid to the email - with custom options - sets info fields properly - sets the uid properly - OmniAuth::FailureEndpoint raise-out environment - raises out the error raises out an OmniAuth::Error if no omniauth.error is set + raises out the error non-raise-out environment respects the custom path prefix configured on the strategy - escapes the message key respects the globally configured path prefix includes the origin (escaped) if one is provided includes the SCRIPT_NAME + escapes the message key is a redirect +OmniAuth::Form + #password_field + adds a labeled input field + #html + appends to the html body + 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 + .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 + 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::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 - fetcher stacks - .extra_stack - is an array of called ancestral procs - .info_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 - #fail! - provides exception information when one is provided - provides a generic message when not provided an exception + is the current class's proc call if one exists + is the current class's proc call if one exists #inspect returns the class name - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) - .option - sets the default value to nil if none is provided - sets a default value - #auth_hash - calls through to uid, info, credentials, and extra - returns an AuthHash - .default_options - is inherited from a parent class - #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 - #full_host - remains calm when there is a pipe in the URL - .args - sets args to the specified argument if there is one - accepts corresponding options as default arg values - is inheritable + fetcher procs + .extra + sets and retrieve a proc + .uid + sets and retrieve a proc + .info + sets and retrieve a proc + .credentials + sets and retrieve a proc setup phase when options[:setup] is an app - calls the rack app does not call the app on a non-omniauth endpoint + calls the rack app when options[:setup] = true does not call through on a non-omniauth endpoint calls through to /auth/:provider/setup + #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 + #callback_phase + sets the auth hash #call - raises NoSessionError if rack.session isn't set duplicates and calls + raises NoSessionError if rack.session isn't set + #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 #call calls fail! when encountering an unhandled exception redirects to the fail! result when encountering an unhandled exception - when in test mode and path not on request path - does not verify token - dynamic paths - 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 - provides a custom callback path if request_path evals to a string - authenticity validation - with custom allow_if proc - allows a valid request - 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 default POST only request methods - does not allow a request without a matching authenticity token - allows a request with matching authenticity_token custom full_host - is the string when a string is there - is based on the request if it's not a string nor a proc runs the proc with the env when it is a proc honors HTTP_X_FORWARDED_PROTO if present - custom prefix - uses a custom prefix for request - uses a custom prefix for callback + is based on the request if it's not a string nor a proc + is the string when a string is there + with relative url root + accepts the request + accepts the callback + error during call_app! + raises the application error 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 - sets the Allow header properly - responds with 200 - :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 + redirects to the correctly prefixed callback + error during auth phase + passes the error to fail!() + custom request + does not prefix a custom request path test mode + respects SCRIPT_NAME (a.k.a. BaseURI) on failure turns omniauth.params into an env variable on the callback phase - rescues errors in request_call - respects SCRIPT_NAME (a.k.a. BaseURI) - simulates login failure if mocked data is set as a symbol + short circuits the request phase entirely + turns omniauth.origin into an env variable on the callback phase + maintains query string parameters is case insensitive on request path - maintains host and port + responds with the default hash if none is set + sets omniauth.params with query params on the request phase executes callback hook on the callback phase - respects SCRIPT_NAME (a.k.a. BaseURI) on failure + simulates login failure if mocked data is set as a symbol + does not set body parameters of POST request on the request phase + does not short circuit requests outside of authentication + respects SCRIPT_NAME (a.k.a. BaseURI) + responds with a provider-specific hash if one is set is case insensitive on callback path redirects on failure - sets omniauth.params with query params on the request phase - maintains query string parameters - responds with a provider-specific hash if one is set - responds with the default hash if none is set - does not set body parameters of POST request on the request phase doesn't short circuit the request if request method is not allowed + maintains host and port executes request hook on the request phase - turns omniauth.origin into an env variable on the callback phase - short circuits the request phase entirely - does not short circuit requests outside of authentication + rescues errors in request_call omniauth.origin - custom - sets omniauth.origin from a custom param - 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 + 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 + when in test mode and path not on request path + does not verify token + custom prefix + uses a custom prefix for callback + uses a custom prefix for request + callback_url + uses a custom prefix + preserves the query parameters + dynamic paths + 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 + provides a custom callback path if request_path evals to a string + :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 + uses a custom callback_path if one is provided callback_url - preserves the query parameters uses a custom callback_path if one is provided + preserves the query parameters + receiving an OPTIONS request + 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 + to the request path + behaves like an OPTIONS request + responds with 200 + sets the Allow header properly + request method restriction + does not allow a request method of the wrong type + allows a request method of the correct type + authenticity validation + with allowed GET + allows a request without authenticity token + warning message logging + logs warning message + when not login path is requested + does not log warning message + with custom allow_if proc + allows a valid request + with default POST only request methods + allows a request with matching authenticity_token + does not allow a request without a matching authenticity token options mutation - in callback phase + in request phase does not affect original options does not affect deep options - in request phase + in callback phase does not affect original options does not affect deep options + default paths + strips trailing spaces on request + uses the default callback path + is case insensitive on request path + is case insensitive on callback path + strips trailing spaces on callback + uses the default request path + callback_url + preserves the query parameters + uses the default callback_path + consider script name omniauth.origin disabled does not set omniauth.origin custom sets from a custom param default flow - sets from the params if provided - is turned into an env variable on the callback phase is set on the failure env + sets from the params if provided is set on the request phase + is turned into an env variable on the callback phase with script_name is set on the request phase, containing full path is turned into an env variable on the callback phase, containing full path - with relative url root - accepts the request - accepts the callback - callback_url - redirects to the correctly prefixed callback - custom request - does not prefix a custom request path - error during auth phase - passes the error to fail!() - error during call_app! - raises the application error - request method restriction - allows a request method of the correct type - does not allow a request method of the wrong type - default paths - is case insensitive on callback path - uses the default request path - is case insensitive on request path - strips trailing spaces on request - uses the default callback path - strips trailing spaces on callback - callback_url - consider script name - uses the default callback_path - preserves the query parameters + .args + sets args to the specified argument if there is one + is inheritable + accepts corresponding options as default arg values + #fail! + provides exception information when one is provided + provides a generic message when not provided an exception + user_info + should default to an empty hash + .option + sets a default value + sets the default value to nil if none is provided + .default_options + is inherited from a parent class + request_phase + raises a NotImplementedError + #full_host + remains calm when there is a pipe in the URL + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) #skip_info? + is true if options.skip_info is true + is false if options.skip_info is false is false by default is true if options.skip_info is a callable that evaluates to truthy - is false if options.skip_info is false - is true if options.skip_info is true - .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 - fetcher procs - .info - sets and retrieve a proc - .uid - sets and retrieve a proc - .extra - sets and retrieve a proc - .credentials - sets and retrieve a proc + fetcher stacks + .credentials_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 + .uid_stack + is an array of called ancestral procs #uid inherits if it can is the current class's uid if one exists - #callback_phase - sets the auth hash - user_info - should default to an empty hash - request_phase - raises a NotImplementedError + +OmniAuth::Builder + #before_options_phase + passes the block to the config + #before_request_phase + passes the block to the config + #on_failure + passes the block to the config + #before_callback_phase + passes the block to the config + #options + adds an argument if no options are provided + merges provided options in + #call + passes env to to_app.call + #configure + passes the block to the config + #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::Strategies::Developer + request phase + has a text field for each of the fields + displays a form + has the callback as the action for the form + callback phase + with custom options + sets the uid properly + sets info fields properly + with default options + sets the email in the auth hash + sets the uid to the email + sets the name in the auth hash 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 0.19211 seconds (files took 0.47256 seconds to load) +Finished in 0.14965 seconds (files took 0.33268 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 15957 +Randomized with seed 44615 /usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner @@ -1482,16 +1518,75 @@ 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/aarch64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-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 5696 +Randomized with seed 65204 + +OmniAuth + .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 the on_failure rack app + is able to set request_validation_phase + is able to set hook on request_call + is able to set hook on option_call + mock auth + sets facebook attributes + default is AuthHash + facebook is AuthHash + does not mutate given auth hash + .defaults + is a hash of default configuration + ::Utils + form_css + returns a style tag with the configured form_css + .deep_merge + combines hashes + .camelize + works in special cases that have been added + replaces / with :: + works on normal cases + doesn't uppercase the first letter when passed false + .strategies + increases when a new strategy is made + +OmniAuth::Builder + #provider + doesn't translate a symbol to a top-level constant + raises a helpful LoadError message if it can't find the class + accepts a class + translates a symbol to a constant + #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 + #configure + passes the block to the config + #call + passes env to to_app.call + #options + adds an argument if no options are provided + merges provided options in + #before_callback_phase + passes the block to the config OmniAuth::AuthHash - has a subkey_class converts a supplied info key into an InfoHash object does not try to parse `string` as InfoHash + has a subkey_class + #to_hash + is a plain old hash + does not pollute the URL hash with 'name' etc + converts an info hash as well + has string keys + supplies the calculated name in the converted hash #valid? - requires a name in the user info hash is valid with the right parameters requires a provider + requires a name in the user info hash requires a uid OmniAuth::AuthHash::InfoHash has a subkey_class @@ -1500,51 +1595,154 @@ #valid? is valid if there is a name #name - displays the email if no name, first, last, or nick is available - defaults to the name key + displays only a first or last name if only that is available displays the nickname if no name, first, or last is available + defaults to the name key falls back to go to first_name last_name concatenation - displays only a first or last name if only that is available - #to_hash - converts an info hash as well - has string keys - does not pollute the URL hash with 'name' etc - supplies the calculated name in the converted hash - is a plain old hash + displays the email if no name, first, last, or nick is available -OmniAuth::Strategies::Developer - callback phase - with default options - sets the name in the auth hash - sets the uid to the email - sets the email in the auth hash - with custom options - sets info fields properly - sets the uid properly - request phase - has a text field for each of the fields - displays a form - has the callback as the action for the form +OmniAuth::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 + is a redirect + includes the origin (escaped) if one is provided + escapes the message key + includes the SCRIPT_NAME + respects the globally configured path prefix + respects the custom path prefix configured on the strategy + raise-out environment + raises out an OmniAuth::Error if no omniauth.error is set + raises out the error OmniAuth::Strategy - inherits by merging with preference for the latest class - inherits by merging with preference for the latest class is the current class's proc call if one exists 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 + inherits by merging with preference for the latest class + 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 + #skip_info? + 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 + #auth_hash + returns an AuthHash + calls through to uid, info, credentials, and extra #call - duplicates and calls raises NoSessionError if rack.session isn't set + duplicates and calls + .option + sets the default value to nil if none is provided + sets a default value + .args + is inheritable + accepts corresponding options as default arg values + sets args to the specified argument if there is one + user_info + should default to an empty hash + #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 + #uid + is the current class's uid if one exists + inherits if it can + .default_options + is inherited from a parent class + #redirect + uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) + #fail! + provides exception information when one is provided + provides a generic message when not provided an exception + .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 + request_phase + raises a NotImplementedError + #inspect + returns the class name #call calls fail! when encountering an unhandled exception redirects to the fail! result when encountering an unhandled exception request method restriction allows a request method of the correct type does not allow a request method of the wrong type + omniauth.origin + disabled + does not set omniauth.origin + default flow + is set on the request phase + sets from the params if provided + is set on the failure env + is turned into an env variable on the callback phase + with script_name + is set on the request phase, containing full path + is turned into an env variable on the callback phase, containing full path + custom + sets from a custom param + dynamic paths + provides a custom callback path if request_path evals to a string + runs the request phase if the custom request path evaluator is truthy + runs the callback phase if the custom callback path evaluator is truthy + correctly reports the callback path when the custom callback path evaluator is truthy + custom full_host + runs the proc with the env when it is a proc + honors HTTP_X_FORWARDED_PROTO if present + is based on the request if it's not a string nor a proc + is the string when a string is there + 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 + :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 + with relative url root + accepts the request + accepts the callback + custom request + does not prefix a custom request path + callback_url + redirects to the correctly prefixed callback + error during call_app! + raises the application error + error during auth phase + passes the error to fail!() + receiving an OPTIONS request + to the request path + behaves like an OPTIONS request + sets the Allow header properly + responds with 200 + to 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 authenticity validation - with custom allow_if proc - allows a valid request with allowed GET allows a request without authenticity token warning message logging @@ -1554,38 +1752,49 @@ with default POST only request methods allows a request with matching authenticity_token does not allow a request without a matching authenticity token + with custom allow_if proc + allows a valid request + when in test mode and path not on request path + does not verify token + options mutation + in callback phase + does not affect original options + does not affect deep options + in request phase + does not affect deep options + does not affect original options default paths uses the default callback path strips trailing spaces on request - uses the default request path strips trailing spaces on callback is case insensitive on callback path is case insensitive on request path + uses the default request path callback_url - consider script name preserves the query parameters + consider script name uses the default callback_path test mode - executes callback hook on the callback phase + maintains query string parameters + doesn't short circuit the request if request method is not allowed redirects on failure - turns omniauth.params into an env variable on the callback phase - is case insensitive on request path - turns omniauth.origin into an env variable on the callback phase - maintains host and port + respects SCRIPT_NAME (a.k.a. BaseURI) on failure + responds with a provider-specific hash if one is set + executes request hook on the request phase simulates login failure if mocked data is set as a symbol short circuits the request phase entirely does not set body parameters of POST request on the request phase + respects SCRIPT_NAME (a.k.a. BaseURI) rescues errors in request_call - sets omniauth.params with query params on the request phase - doesn't short circuit the request if request method is not allowed - is case insensitive on callback path + turns omniauth.params into an env variable on the callback phase responds with the default hash if none is set - respects SCRIPT_NAME (a.k.a. BaseURI) on failure - maintains query string parameters - responds with a provider-specific hash if one is set - respects SCRIPT_NAME (a.k.a. BaseURI) - executes request hook on the request phase + maintains host and port + executes callback hook on the callback phase + is case insensitive on request path + sets omniauth.params with query params on the request phase + turns omniauth.origin into an env variable on the callback phase does not short circuit requests outside of authentication + is case insensitive on callback path omniauth.origin disabled does not set omniauth.origin @@ -1594,90 +1803,16 @@ default flow sets omniauth.origin to the HTTP_REFERER on the request phase by default sets omniauth.origin from the params if provided - 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 - 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 - 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 - custom - sets from a custom param - default flow - is set on the request phase - is set on the failure env - is turned into an env variable on the callback phase - sets from the params if provided - 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 - dynamic paths - provides a custom callback path if request_path evals to a string - runs the callback phase if the custom callback path evaluator is truthy - correctly reports the callback path when the custom callback path evaluator is truthy - runs the request phase if the custom request path evaluator is truthy custom prefix uses a custom prefix for callback uses a custom prefix for request callback_url uses a custom prefix preserves the query parameters - 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 - when in test mode and path not on request path - does not verify token - :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 - with relative url root - accepts the request - accepts the callback - custom request - 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 - .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 + #full_host + remains calm when there is a pipe in the URL #callback_phase sets the auth hash - #uid - inherits if it can - is the current class's uid if one exists - #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 setup phase when options[:setup] is an app calls the rack app @@ -1685,142 +1820,43 @@ when options[:setup] = true does not call through on a non-omniauth endpoint calls through to /auth/:provider/setup - .default_options - is inherited from a parent class - #inspect - returns the class name - user_info - should default to an empty hash - fetcher procs - .uid - sets and retrieve a proc - .info - sets and retrieve a proc - .credentials - sets and retrieve a proc - .extra - sets and retrieve a proc - #full_host - remains calm when there is a pipe in the URL - #fail! - provides exception information when one is provided - provides a generic message when not provided an exception fetcher stacks - .credentials_stack - is an array of called ancestral procs .uid_stack is an array of called ancestral procs .extra_stack is an array of called ancestral procs .info_stack is an array of called ancestral procs - #redirect - uses javascript if :iframe is true (PENDING: Temporarily skipped with xit) - #initialize - 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 - request_phase - raises a NotImplementedError - .option - sets a default value - sets the default value to nil if none is provided - .args - sets args to the specified argument if there is one - accepts corresponding options as default arg values - is inheritable - #auth_hash - calls through to uid, info, credentials, and extra - returns an AuthHash - -OmniAuth::Builder - #before_options_phase - passes the block to the config - #configure - passes the block to the config - #provider - accepts a class - doesn't translate a symbol to a top-level constant - translates a symbol to a constant - raises a helpful LoadError message if it can't find the class - #before_callback_phase - passes the block to the config - #call - passes env to to_app.call - #on_failure - passes the block to the config - #options - merges provided options in - adds an argument if no options are provided - #before_request_phase - passes the block to the config - -OmniAuth - ::Utils - .deep_merge - combines hashes - .camelize - works on normal cases - doesn't uppercase the first letter when passed false - replaces / with :: - works in special cases that have been added - form_css - returns a style tag with the configured form_css - .logger - calls through to the configured logger - .strategies - increases when a new strategy is made - configuration - is able to set the path - is able to set the on_failure rack app - is able to set hook on callback_call - is able to set hook on option_call - is able to set hook on request_call - is able to set request_validation_phase - is callable from .configure - mock auth - sets facebook attributes - default is AuthHash - does not mutate given auth hash - facebook is AuthHash - .defaults - is a hash of default configuration - -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::FailureEndpoint - non-raise-out environment - is a redirect - includes the SCRIPT_NAME - includes the origin (escaped) if one is provided - escapes the message key - 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 + .credentials_stack + is an array of called ancestral procs OmniAuth::Form - #html - appends to the html body + fieldset + creates a fieldset with options .build - yields the instance when called with a block and argument evaluates in the instance when called with a block and no argument - #password_field - adds a labeled input field + yields the instance when called with a block and argument #initialize sets the form action to the passed :url option sets an H1 tag from the passed :title option - fieldset - creates a fieldset with options + #html + appends to the html body + #password_field + adds a labeled input field + +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 uid to the email + sets the email in the auth hash + sets the name in the auth hash Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1828,10 +1864,10 @@ # Temporarily skipped with xit # ./spec/omniauth/strategy_spec.rb:278 -Finished in 0.46666 seconds (files took 0.59752 seconds to load) +Finished in 0.16695 seconds (files took 0.31835 seconds to load) 211 examples, 0 failures, 1 pending -Randomized with seed 5696 +Randomized with seed 65204 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1862,12 +1898,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/4033457/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4033457/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/2669310 and its subdirectories -I: Current time: Tue Feb 11 20:28:14 -12 2025 -I: pbuilder-time-stamp: 1739348894 +I: removing directory /srv/workspace/pbuilder/4033457 and its subdirectories +I: Current time: Wed Mar 18 04:52:05 +14 2026 +I: pbuilder-time-stamp: 1773759125