Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package opentofu for openSUSE:Factory 
checked in at 2026-06-19 16:36:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opentofu (Old)
 and      /work/SRC/openSUSE:Factory/.opentofu.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "opentofu"

Fri Jun 19 16:36:58 2026 rev:51 rq:1360434 version:1.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/opentofu/opentofu.changes        2026-06-13 
18:51:03.234715046 +0200
+++ /work/SRC/openSUSE:Factory/.opentofu.new.1956/opentofu.changes      
2026-06-19 17:19:31.670266732 +0200
@@ -1,0 +2,17 @@
+Fri Jun 19 05:10:50 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.12.3:
+  * BUG FIXES:
+    - Properly handle TF_ENCRYPTION with only blank spaces. (#4265)
+    - The value resulted from the lifecycle.enabled evaluation now
+      has its deprecation marks processed correctly (#4162)
+    - Update documentation to clarify the usage restriction of
+      ephemeral values in lifecycle.enabled. (#4220)
+    - tofu console -lock=false now works as intended. (#4291)
+  * SECURITY ADVISORIES:
+    - Previous releases in the v1.12 series could read an arbitrary
+      file during certain git operations via a maliciously crafted
+      URL (#4293)
+      - Advisory: GHSA-q7j3-v8qv-22vq
+
+-------------------------------------------------------------------

Old:
----
  opentofu-1.12.2.obscpio

New:
----
  opentofu-1.12.3.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ opentofu.spec ++++++
--- /var/tmp/diff_new_pack.kupg0V/_old  2026-06-19 17:19:41.778614662 +0200
+++ /var/tmp/diff_new_pack.kupg0V/_new  2026-06-19 17:19:41.786614938 +0200
@@ -19,7 +19,7 @@
 %define executable_name tofu
 
 Name:           opentofu
-Version:        1.12.2
+Version:        1.12.3
 Release:        0
 Summary:        Declaratively manage your cloud infrastructure
 License:        MPL-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.kupg0V/_old  2026-06-19 17:19:41.838616728 +0200
+++ /var/tmp/diff_new_pack.kupg0V/_new  2026-06-19 17:19:41.854617278 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/opentofu/opentofu.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">refs/tags/v1.12.2</param>
+    <param name="revision">refs/tags/v1.12.3</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.kupg0V/_old  2026-06-19 17:19:41.886618380 +0200
+++ /var/tmp/diff_new_pack.kupg0V/_new  2026-06-19 17:19:41.890618518 +0200
@@ -3,6 +3,6 @@
                 <param name="url">https://github.com/opentofu/opentofu/</param>
               <param 
name="changesrevision">bdcbf091aab886499ed7718d7f558b428fffce39</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/opentofu/opentofu.git</param>
-              <param 
name="changesrevision">75338c0c969e45d6aaa278b4071d3c64de837a9a</param></service></servicedata>
+              <param 
name="changesrevision">e33607a2e3b29bfc7cf9f4dcdc261e669e3a457b</param></service></servicedata>
 (No newline at EOF)
 

++++++ opentofu-1.12.2.obscpio -> opentofu-1.12.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/CHANGELOG.md 
new/opentofu-1.12.3/CHANGELOG.md
--- old/opentofu-1.12.2/CHANGELOG.md    2026-06-12 16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/CHANGELOG.md    2026-06-18 15:19:06.000000000 +0200
@@ -1,6 +1,19 @@
 The v1.12.x release series is supported until **February 1 2027**.
 
-## 1.12.3 (Unreleased)
+## 1.12.4 (unreleased)
+
+## 1.12.3
+
+BUG FIXES:
+
+- Properly handle `TF_ENCRYPTION` with only blank spaces. 
([#4265](https://github.com/opentofu/opentofu/pull/4265))
+- The value resulted from the `lifecycle.enabled` evaluation now has its 
deprecation marks processed correctly 
([#4162](https://github.com/opentofu/opentofu/pull/4162))
+- Update documentation to clarify the usage restriction of ephemeral values in 
`lifecycle.enabled`. ([#4220](https://github.com/opentofu/opentofu/pull/4220))
+- `tofu console -lock=false` now works as intended. 
([#4291](https://github.com/opentofu/opentofu/pull/4291))
+
+SECURITY ADVISORIES:
+* Previous releases in the v1.12 series could read an arbitrary file during 
certain git operations via a maliciously crafted URL 
([#4293](https://github.com/opentofu/opentofu/pull/4293))
+
 
 ## 1.12.2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/go.mod new/opentofu-1.12.3/go.mod
--- old/opentofu-1.12.2/go.mod  2026-06-12 16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/go.mod  2026-06-18 15:19:06.000000000 +0200
@@ -31,11 +31,11 @@
        github.com/apparentlymart/go-versions v1.0.3
        github.com/apparentlymart/go-workgraph 
v0.0.0-20250609024419-b3453ef8d3e6
        github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2
-       github.com/aws/aws-sdk-go-v2 v1.41.3
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19
-       github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.1
+       github.com/aws/aws-sdk-go-v2 v1.41.4
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20
+       github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.2
        github.com/aws/aws-sdk-go-v2/service/kms v1.50.2
-       github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0
+       github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1
        github.com/aws/smithy-go v1.24.2
        github.com/bgentry/speakeasy v0.2.0
        github.com/bmatcuk/doublestar/v4 v4.10.0
@@ -48,12 +48,12 @@
        github.com/google/go-cmp v0.7.0
        github.com/google/uuid v1.6.0
        github.com/googleapis/gax-go/v2 v2.18.0
-       github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.71
+       github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.72
        github.com/hashicorp/consul/api v1.33.4
        github.com/hashicorp/consul/sdk v0.17.2
        github.com/hashicorp/errwrap v1.1.0
        github.com/hashicorp/go-cleanhttp v0.5.2
-       github.com/hashicorp/go-getter v1.8.5
+       github.com/hashicorp/go-getter v1.8.6
        github.com/hashicorp/go-hclog v1.6.3
        github.com/hashicorp/go-multierror v1.1.1
        github.com/hashicorp/go-plugin v1.7.0
@@ -149,25 +149,25 @@
        github.com/armon/go-metrics v0.4.1 // indirect
        github.com/armon/go-radix v1.0.0 // indirect
        github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // 
indirect
-       github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6 // indirect
-       github.com/aws/aws-sdk-go-v2/config v1.32.10 // indirect
-       github.com/aws/aws-sdk-go-v2/credentials v1.19.10 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20 // indirect
-       github.com/aws/aws-sdk-go-v2/service/iam v1.53.3 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6 
// indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery 
v1.11.19 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/signin v1.0.6 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sns v1.39.8 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sqs v1.42.22 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.30.11 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.15 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sts v1.41.7 // indirect
+       github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.7 // indirect
+       github.com/aws/aws-sdk-go-v2/config v1.32.12 // indirect
+       github.com/aws/aws-sdk-go-v2/credentials v1.19.12 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 // indirect
+       github.com/aws/aws-sdk-go-v2/service/iam v1.53.6 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 
// indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery 
v1.11.20 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sns v1.39.13 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sqs v1.42.24 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 // indirect
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // 
indirect
        github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 // indirect
@@ -228,7 +228,7 @@
        github.com/josharian/intern v1.0.0 // indirect
        github.com/json-iterator/go v1.1.12 // indirect
        github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // 
indirect
-       github.com/klauspost/compress v1.18.4 // indirect
+       github.com/klauspost/compress v1.18.5 // indirect
        github.com/knadh/koanf v1.5.0 // indirect
        github.com/kylelemons/godebug v1.1.0 // indirect
        github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
@@ -276,7 +276,7 @@
        go.opentelemetry.io/auto/sdk v1.2.1 // indirect
        go.opentelemetry.io/contrib/bridges/prometheus v0.67.0 // indirect
        go.opentelemetry.io/contrib/detectors/gcp v1.39.0 // indirect
-       
go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws
 v0.64.0 // indirect
+       
go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws
 v0.67.0 // indirect
        
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.63.0 // indirect
        go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0 // 
indirect
        go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.18.0 // 
indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/go.sum new/opentofu-1.12.3/go.sum
--- old/opentofu-1.12.2/go.sum  2026-06-12 16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/go.sum  2026-06-18 15:19:06.000000000 +0200
@@ -135,64 +135,64 @@
 github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef 
h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg=
 github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod 
h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
 github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod 
h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
-github.com/aws/aws-sdk-go-v2 v1.41.3 
h1:4kQ/fa22KjDt13QCy1+bYADvdgcxpfH18f0zP542kZA=
-github.com/aws/aws-sdk-go-v2 v1.41.3/go.mod 
h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6 
h1:N4lRUXZpZ1KVEUn6hxtco/1d2lgYhNn1fHkkl8WhlyQ=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6/go.mod 
h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI=
+github.com/aws/aws-sdk-go-v2 v1.41.4 
h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k=
+github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod 
h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.7 
h1:3kGOqnh1pPeddVa/E37XNTaWJ8W6vrbYV9lJEkCnhuY=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.7/go.mod 
h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI=
 github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod 
h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw=
-github.com/aws/aws-sdk-go-v2/config v1.32.10 
h1:9DMthfO6XWZYLfzZglAgW5Fyou2nRI5CuV44sTedKBI=
-github.com/aws/aws-sdk-go-v2/config v1.32.10/go.mod 
h1:2rUIOnA2JaiqYmSKYmRJlcMWy6qTj1vuRFscppSBMcw=
+github.com/aws/aws-sdk-go-v2/config v1.32.12 
h1:O3csC7HUGn2895eNrLytOJQdoL2xyJy0iYXhoZ1OmP0=
+github.com/aws/aws-sdk-go-v2/config v1.32.12/go.mod 
h1:96zTvoOFR4FURjI+/5wY1vc1ABceROO4lWgWJuxgy0g=
 github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod 
h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ=
-github.com/aws/aws-sdk-go-v2/credentials v1.19.10 
h1:EEhmEUFCE1Yhl7vDhNOI5OCL/iKMdkkYFTRpZXNw7m8=
-github.com/aws/aws-sdk-go-v2/credentials v1.19.10/go.mod 
h1:RnnlFCAlxQCkN2Q379B67USkBMu1PipEEiibzYN5UTE=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.12 
h1:oqtA6v+y5fZg//tcTWahyN9PEn5eDU/Wpvc2+kJ4aY8=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.12/go.mod 
h1:U3R1RtSHx6NB0DvEQFGyf/0sbrpJrluENHdPy1j/3TE=
 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod 
h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19 
h1:INUvJxmhdEbVulJYHI061k4TVuS3jzzthNvjqvVvTKM=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19/go.mod 
h1:FpZN2QISLdEBWkayloda+sZjVJL+e9Gl0k1SyTgcswU=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19 
h1:/sECfyq2JTifMI2JPyZ4bdRN77zJmr6SrS1eL3augIA=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19/go.mod 
h1:dMf8A5oAqr9/oxOfLkC/c2LU/uMcALP0Rgn2BD5LWn0=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19 
h1:AWeJMk33GTBf6J20XJe6qZoRSJo0WfUhsMdUKhoODXE=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19/go.mod 
h1:+GWrYoaAsV7/4pNHpwh1kiNLXkKaSoppxQq9lbH8Ejw=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20 
h1:zOgq3uezl5nznfoK3ODuqbhVg1JzAGDUhXOsU0IDCAo=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20/go.mod 
h1:z/MVwUARehy6GAg/yQ1GO2IMl0k++cu1ohP9zo887wE=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 
h1:CNXO7mvgThFGqOFgbNAP2nol2qAWBOGfqR/7tQlvLmc=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20/go.mod 
h1:oydPDJKcfMhgfcgBUZaG+toBbwy8yPWubJXBVERtI4o=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 
h1:tN6W/hg+pkM+tf9XDkWUbDEjGLb+raoBMFsTodcoYKw=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20/go.mod 
h1:YJ898MhD067hSHA6xYCx5ts/jEd8BSOLtQDL3iZsvbc=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod 
h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 
h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod 
h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20 
h1:qi3e/dmpdONhj1RyIZdi6DKKpDXS5Lb8ftr3p7cyHJc=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20/go.mod 
h1:V1K+TeJVD5JOk3D9e5tsX2KUdL7BlB+FV6cBhdobN8c=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 
h1:qYQ4pzQ2Oz6WpQ8T3HvGHnZydA72MnLuFK9tJwmrbHw=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6/go.mod 
h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 
h1:SwGMTMLIlvDNyhMteQ6r8IJSBPlRdXX5d4idhIGbkXA=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21/go.mod 
h1:UUxgWxofmOdAMuqEsSppbDtGKLfR04HGsD0HXzvhI1k=
 github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod 
h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY=
-github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.1 
h1:EkW4NqA2mwCkL7YCDYh6OpA/bCMhKYbZgpRHt2FD2Ow=
-github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.1/go.mod 
h1:OQp5333OH1IjmJmJpTU4IwoaOoCMnDrThg0zIx169rE=
-github.com/aws/aws-sdk-go-v2/service/iam v1.53.3 
h1:boKZv8dNdHznhAA68hb/dqFz5pxoWmRAOJr9LtscVCI=
-github.com/aws/aws-sdk-go-v2/service/iam v1.53.3/go.mod 
h1:E0QHh3aEwxYb7xshjvxYDELiOda7KBYJ77e/TvGhpcM=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6 
h1:XAq62tBTJP/85lFD5oqOOe7YYgWxY9LvWq8plyDvDVg=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6/go.mod 
h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11 
h1:BYf7XNsJMzl4mObARUBUib+j2tf0U//JAAtTnYqvqCw=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11/go.mod 
h1:aEUS4WrNk/+FxkBZZa7tVgp4pGH+kFGW40Y8rCPqt5g=
-github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.11.19 
h1:jdCj9vbCXwzTcIJX+MVd2UdssFhRJFTrWlPZwZB8Hpk=
-github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery 
v1.11.19/go.mod h1:Dgg2d5WGRr7YB8JJsELskBxLUhgwWppXPwlvmuQKhbc=
+github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.2 
h1:xi/ECwajy2mixviBD7bKAlGGSwzEaFKX2wIhrZt9NGw=
+github.com/aws/aws-sdk-go-v2/service/dynamodb v1.56.2/go.mod 
h1:dLREOeW66eVaaGIOi2ZlLHDgkR3nuJ02rd00j0YSlBE=
+github.com/aws/aws-sdk-go-v2/service/iam v1.53.6 
h1:GPQvvxy8+FDnD9xKYzGKJMjIm5xkVM5pd3bFgRldNSo=
+github.com/aws/aws-sdk-go-v2/service/iam v1.53.6/go.mod 
h1:RJNVc52A0K41fCDJOnsCLeWJf8mwa0q30fM3CfE9U18=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 
h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod 
h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 
h1:qtJZ70afD3ISKWnoX3xB0J2otEqu3LqicRcDBqsj0hQ=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12/go.mod 
h1:v2pNpJbRNl4vEUWEh5ytQok0zACAKfdmKS51Hotc3pQ=
+github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.11.20 
h1:ru+seMuylHiNZlvgZei83eD8h37hRjm1XIMOEmcV0BU=
+github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery 
v1.11.20/go.mod h1:ihZMtPTKoX/ugQRHbui6zNdSgVYN1KY2Dgwb2d3hXlc=
 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod 
h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19 
h1:X1Tow7suZk9UCJHE1Iw9GMZJJl0dAnKXXP1NaSDHwmw=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19/go.mod 
h1:/rARO8psX+4sfjUQXp5LLifjUt8DuATZ31WptNJTyQA=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19 
h1:JnQeStZvPHFHeyky/7LbMlyQjUa+jIBj36OlWm0pzIk=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19/go.mod 
h1:HGyasyHvYdFQeJhvDHfH7HXkHh57htcJGKDZ+7z+I24=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 
h1:2HvVAIq+YqgGotK6EkMf+KIEqTISmTYh5zLpYyeTo1Y=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20/go.mod 
h1:V4X406Y666khGa8ghKmphma/7C0DAtEQYhkq9z4vpbk=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 
h1:siU1A6xjUZ2N8zjTHSXFhB9L/2OY8Dqs0xXiLjF30jA=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20/go.mod 
h1:4TLZCmVJDM3FOu5P5TJP0zOlu9zWgDWU7aUxWbr+rcw=
 github.com/aws/aws-sdk-go-v2/service/kms v1.50.2 
h1:UOHOXigIzDRaEU03CBQcZ5uW7FNC7E+vwfhsQWXl5RQ=
 github.com/aws/aws-sdk-go-v2/service/kms v1.50.2/go.mod 
h1:nAa5gmcmAmjXN3tGuhPSHLXFeWv+7nzKhjZzh8F7MH0=
-github.com/aws/aws-sdk-go-v2/service/route53 v1.61.1 
h1:ik9tMw+xWZqzffOtGH3PfV0Yy/V+QsCb1XYXXXjUskk=
-github.com/aws/aws-sdk-go-v2/service/route53 v1.61.1/go.mod 
h1:JRqmldxIPU6uck5bcFS8ExwwG2mUwfy+jiUmismOxJs=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0 
h1:zyKY4OxzUImu+DigelJI9o49QQv8CjREs5E1CywjtIA=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0/go.mod 
h1:NF3JcMGOiARAss1ld3WGORCw71+4ExDD2cbbdKS5PpA=
-github.com/aws/aws-sdk-go-v2/service/signin v1.0.6 
h1:MzORe+J94I+hYu2a6XmV5yC9huoTv8NRcCrUNedDypQ=
-github.com/aws/aws-sdk-go-v2/service/signin v1.0.6/go.mod 
h1:hXzcHLARD7GeWnifd8j9RWqtfIgxj4/cAtIVIK7hg8g=
-github.com/aws/aws-sdk-go-v2/service/sns v1.39.8 
h1:s2QY81HBbJ+zbafTcWQmMaHj0C18VoJON/gDY1ibrEg=
-github.com/aws/aws-sdk-go-v2/service/sns v1.39.8/go.mod 
h1:3aOzyhwa/mXPZYLwGaALfl88GFRXHQKXdyQSq2L/Y4g=
-github.com/aws/aws-sdk-go-v2/service/sqs v1.42.22 
h1:CVksqT2e8RFAixRTlDqu1nj174Vjb3VqG7wyZEAlYuA=
-github.com/aws/aws-sdk-go-v2/service/sqs v1.42.22/go.mod 
h1:n3/KSi68g5s54U9J1FV4fRz8oK+7ML2RJK+mDu6gGS0=
+github.com/aws/aws-sdk-go-v2/service/route53 v1.62.3 
h1:JRPXnIr0WwFsSHBmuCvT/uh0Vgys+crvwkOghbJEqi8=
+github.com/aws/aws-sdk-go-v2/service/route53 v1.62.3/go.mod 
h1:DHddp7OO4bY467WVCqWBzk5+aEWn7vqYkap7UigJzGk=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1 
h1:csi9NLpFZXb9fxY7rS1xVzgPRGMt7MSNWeQ6eo247kE=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1/go.mod 
h1:qXVal5H0ChqXP63t6jze5LmFalc7+ZE7wOdLtZ0LCP0=
+github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 
h1:0GFOLzEbOyZABS3PhYfBIx2rNBACYcKty+XGkTgw1ow=
+github.com/aws/aws-sdk-go-v2/service/signin v1.0.8/go.mod 
h1:LXypKvk85AROkKhOG6/YEcHFPoX+prKTowKnVdcaIxE=
+github.com/aws/aws-sdk-go-v2/service/sns v1.39.13 
h1:8xP94tDzFpgwIOsusGiEFHPaqrpckDojoErk/ZFZTio=
+github.com/aws/aws-sdk-go-v2/service/sns v1.39.13/go.mod 
h1:RwF6Xnba8PlINxJUQq1IAWeon6IglvqsnhNqV8QsQjk=
+github.com/aws/aws-sdk-go-v2/service/sqs v1.42.24 
h1:JP2wjWGmUp8lTCZb13Dv0Eciyc1jbO8pd0HZVMHFlrc=
+github.com/aws/aws-sdk-go-v2/service/sqs v1.42.24/go.mod 
h1:Ql9ziDutk8ERAN9HMaYANCW3lop451ppebkxEJMLCTM=
 github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod 
h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.11 
h1:7oGD8KPfBOJGXiCoRKrrrQkbvCp8N++u36hrLMPey6o=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.11/go.mod 
h1:0DO9B5EUJQlIDif+XJRWCljZRKsAFKh3gpFz7UnDtOo=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.15 
h1:edCcNp9eGIUDUCrzoCu1jWAXLGFIizeqkdkKgRlJwWc=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.15/go.mod 
h1:lyRQKED9xWfgkYC/wmmYfv7iVIM68Z5OQ88ZdcV1QbU=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 
h1:kiIDLZ005EcKomYYITtfsjn7dtOwHDOFy7IbPXKek2o=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.13/go.mod 
h1:2h/xGEowcW/g38g06g3KpRWDlT+OTfxxI0o1KqayAB8=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 
h1:jzKAXIlhZhJbnYwHbvUQZEB8KfgAEuG0dc08Bkda7NU=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17/go.mod 
h1:Al9fFsXjv4KfbzQHGe6V4NZSZQXecFcvaIF4e70FoRA=
 github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod 
h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g=
-github.com/aws/aws-sdk-go-v2/service/sts v1.41.7 
h1:NITQpgo9A5NrDZ57uOWj+abvXSb83BbyggcUBVksN7c=
-github.com/aws/aws-sdk-go-v2/service/sts v1.41.7/go.mod 
h1:sks5UWBhEuWYDPdwlnRFn1w7xWdH29Jcpe+/PJQefEs=
+github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 
h1:Cng+OOwCHmFljXIxpEVXAGMnBia8MSU6Ch5i9PgBkcU=
+github.com/aws/aws-sdk-go-v2/service/sts v1.41.9/go.mod 
h1:LrlIndBDdjA/EeXeyNBle+gyCwTlizzW5ycgWnvIxkk=
 github.com/aws/smithy-go v1.8.0/go.mod 
h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
 github.com/aws/smithy-go v1.24.2 
h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng=
 github.com/aws/smithy-go v1.24.2/go.mod 
h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc=
@@ -410,8 +410,8 @@
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod 
h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
 github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 
h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
 github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod 
h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
-github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.71 
h1:3qrWTgbR0uMacRVnE6//G1B20hUJexxqqmQ2OTs1+0s=
-github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.71/go.mod 
h1:YV27+mh2SLUqeP36G1a9MiqL5eBkFnZQJjNTR9Q9NcY=
+github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.72 
h1:vTCWu1wbdYo7PEZFem/rlr01+Un+wwVmI7wiegFdRLk=
+github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.72/go.mod 
h1:Vn+BBgKQHVQYdVQ4NZDICE1Brb+JfaONyDHr3q07oQc=
 github.com/hashicorp/consul/api v1.13.0/go.mod 
h1:ZlVrynguJKcYr54zGaDbaL3fOvKC9m72FhPvA8T35KQ=
 github.com/hashicorp/consul/api v1.33.4 
h1:AJkZp6qzgAYcMIU0+CjJ0Rb7+byfh0dazFK/gzlOcJk=
 github.com/hashicorp/consul/api v1.33.4/go.mod 
h1:BkH3WEUzsnWvJJaHoDqKqoe2Q2EIixx7Gjj6MTwYnOA=
@@ -427,8 +427,8 @@
 github.com/hashicorp/go-cleanhttp v0.5.1/go.mod 
h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
 github.com/hashicorp/go-cleanhttp v0.5.2 
h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
 github.com/hashicorp/go-cleanhttp v0.5.2/go.mod 
h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
-github.com/hashicorp/go-getter v1.8.5 
h1:DMPV5CSw5JrNg/IK7kDZt3+l2REKXOi3oAw7uYLh2NM=
-github.com/hashicorp/go-getter v1.8.5/go.mod 
h1:WIffejwAyDSJhoVptc3UEshEMkR9O63rw34V7k43O3Q=
+github.com/hashicorp/go-getter v1.8.6 
h1:9sQboWULaydVphxc4S64oAI4YqpuCk7nPmvbk131ebY=
+github.com/hashicorp/go-getter v1.8.6/go.mod 
h1:nVH12eOV2P58dIiL3rsU6Fh3wLeJEKBOJzhMmzlSWoo=
 github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod 
h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
 github.com/hashicorp/go-hclog v0.8.0/go.mod 
h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
 github.com/hashicorp/go-hclog v0.12.0/go.mod 
h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
@@ -548,8 +548,8 @@
 github.com/kisielk/errcheck v1.5.0/go.mod 
h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod 
h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.13.6/go.mod 
h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
-github.com/klauspost/compress v1.18.4 
h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
-github.com/klauspost/compress v1.18.4/go.mod 
h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
+github.com/klauspost/compress v1.18.5 
h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE=
+github.com/klauspost/compress v1.18.5/go.mod 
h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
 github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs=
 github.com/knadh/koanf v1.5.0/go.mod 
h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod 
h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -856,8 +856,8 @@
 go.opentelemetry.io/contrib/detectors/gcp v1.39.0/go.mod 
h1:t/OGqzHBa5v6RHZwrDBJ2OirWc+4q/w2fTbLZwAKjTk=
 go.opentelemetry.io/contrib/exporters/autoexport v0.67.0 
h1:4fnRcNpc6YFtG3zsFw9achKn3XgmxPxuMuqIL5rE8e8=
 go.opentelemetry.io/contrib/exporters/autoexport v0.67.0/go.mod 
h1:qTvIHMFKoxW7HXg02gm6/Wofhq5p3Ib/A/NNt1EoBSQ=
-go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws
 v0.64.0 h1:QgV8q9s6fz+RVY8jEdkFsXvnQaqhal2oRjY5uC+DpHk=
-go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws
 v0.64.0/go.mod h1:LgtjWWXo7OpbSMkXnTlT2jrGtdI6Fmipn8UJCIgbqzg=
+go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws
 v0.67.0 h1:o+3I9nEsmzZLmhgrC+PO/RPQIM4l012EiUzzFIfMQzE=
+go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws
 v0.67.0/go.mod h1:xOd0/OgHjAtW47zPn48sC7n/pUxunDQfDc9qG3ZtSn0=
 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo=
 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 
h1:OyrsyzuttWTSur2qN/Lm0m2a8yqyIjUVBZcxFPuXq2o=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/internal/command/console.go 
new/opentofu-1.12.3/internal/command/console.go
--- old/opentofu-1.12.2/internal/command/console.go     2026-06-12 
16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/internal/command/console.go     2026-06-18 
15:19:06.000000000 +0200
@@ -60,12 +60,6 @@
        // continue to mutate the Meta object state for now.
        c.Meta.input = args.ViewOptions.InputEnabled
 
-       // TODO meta-refactor: when the stateLock and stateLockTimeout are 
extracted to be configured separately, remove
-       // these and use a common way to configure this
-       // The stateLock=true is here this way because this command used before 
meta.extendedFlagSet which did the same
-       // and left for the command to configure flags for this if needed.
-       c.Meta.stateLock = true
-
        c.Meta.variableArgs = args.Vars.All()
 
        configPath := c.WorkingDir.NormalizePath(c.WorkingDir.RootModuleDir())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentofu-1.12.2/internal/command/e2etest/encryption_test.go 
new/opentofu-1.12.3/internal/command/e2etest/encryption_test.go
--- old/opentofu-1.12.2/internal/command/e2etest/encryption_test.go     
2026-06-12 16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/internal/command/e2etest/encryption_test.go     
2026-06-18 15:19:06.000000000 +0200
@@ -265,3 +265,27 @@
                requireUnencryptedState()
        }
 }
+
+func TestEncryptionEnvironmentVariable(t *testing.T) {
+       // This test reaches out to registry.opentofu.org to download the
+       // mock provider, so it can only run if network access is allowed
+       skipIfCannotAccessNetwork(t)
+
+       // There is a lot of setup / helpers defined.  Actual test logic is 
below.
+
+       fixturePath := filepath.Join("testdata", "encryption-flow")
+       tf := e2e.NewBinary(t, tofuBin, fixturePath)
+
+       // This test reproduces the situation reported in 
https://github.com/opentofu/opentofu/issues/4262
+       t.Run("with TF_ENCRYPTION containing only a simple space", func(t 
*testing.T) {
+               // Setting this env var at the test level will force `tf.Run` 
to pick this up
+               t.Setenv("TF_ENCRYPTION", " ")
+               _, stderr, err := tf.Run("init")
+               if err != nil {
+                       t.Errorf("unexpected error: %s", err)
+               }
+               if stderr != "" {
+                       t.Errorf("unexpected stderr output:\n%s", stderr)
+               }
+       })
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentofu-1.12.2/internal/command/e2etest/testdata/mock-test-with-ephemeral-in-configuration/main.tf
 
new/opentofu-1.12.3/internal/command/e2etest/testdata/mock-test-with-ephemeral-in-configuration/main.tf
--- 
old/opentofu-1.12.2/internal/command/e2etest/testdata/mock-test-with-ephemeral-in-configuration/main.tf
     2026-06-12 16:38:35.000000000 +0200
+++ 
new/opentofu-1.12.3/internal/command/e2etest/testdata/mock-test-with-ephemeral-in-configuration/main.tf
     2026-06-18 15:19:06.000000000 +0200
@@ -10,7 +10,7 @@
     }
     sleep = {
       source  = "yottta/sleep"
-      version = "0.0.4"
+      version = "~> 0.0.5"
     }
   }
 }
@@ -21,7 +21,6 @@
 
 ephemeral "random_password" "test" {
   length = 10
-
 }
 
 resource "sleep_sleeper" "test" {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/internal/command/meta_encryption.go 
new/opentofu-1.12.3/internal/command/meta_encryption.go
--- old/opentofu-1.12.2/internal/command/meta_encryption.go     2026-06-12 
16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/internal/command/meta_encryption.go     2026-06-18 
15:19:06.000000000 +0200
@@ -9,6 +9,7 @@
        "context"
        "fmt"
        "os"
+       "strings"
 
        "github.com/opentofu/opentofu/internal/configs"
        "github.com/opentofu/opentofu/internal/encryption"
@@ -43,7 +44,7 @@
        cfg := module.Encryption
        var diags tfdiags.Diagnostics
 
-       env := os.Getenv(encryptionConfigEnvName)
+       env := strings.TrimSpace(os.Getenv(encryptionConfigEnvName))
        if len(env) != 0 {
                envCfg, envDiags := 
config.LoadConfigFromString(encryptionConfigEnvName, env)
                diags = diags.Append(envDiags)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentofu-1.12.2/internal/lang/evalchecks/eval_lifecycle_enabled.go 
new/opentofu-1.12.3/internal/lang/evalchecks/eval_lifecycle_enabled.go
--- old/opentofu-1.12.2/internal/lang/evalchecks/eval_lifecycle_enabled.go      
2026-06-12 16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/internal/lang/evalchecks/eval_lifecycle_enabled.go      
2026-06-18 15:19:06.000000000 +0200
@@ -61,6 +61,10 @@
                })
        }
 
+       var deprDiags tfdiags.Diagnostics
+       rawEnabledVal, deprDiags = 
marks.ExtractDeprecatedDiagnosticsWithExpr(rawEnabledVal, expr)
+       diags = diags.Append(deprDiags)
+
        if rawEnabledVal.IsNull() {
                diags = diags.Append(&hcl.Diagnostic{
                        Severity:    hcl.DiagError,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/internal/tofu/context_plan2_test.go 
new/opentofu-1.12.3/internal/tofu/context_plan2_test.go
--- old/opentofu-1.12.2/internal/tofu/context_plan2_test.go     2026-06-12 
16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/internal/tofu/context_plan2_test.go     2026-06-18 
15:19:06.000000000 +0200
@@ -9089,3 +9089,55 @@
                t.Fatalf("unexpected errors: %s", diags.Err())
        }
 }
+
+// TestContext2Plan_enabledOnDeprecatedModuleOutput is a regression test for
+// https://github.com/opentofu/opentofu/issues/4161
+// "panic: value is marked, so must be unmarked first in 
EvaluateEnabledExpression during plan"
+//
+// When a module output is marked as deprecated and that output value is used 
in another resource
+// lifecycle.enabled, a panic was encountered due to the value being still 
marked.
+func TestContext2Plan_enabledOnDeprecatedModuleOutput(t *testing.T) {
+       m := testModuleInline(t, map[string]string{
+               "mod/main.tf": `
+output "trigger" {
+  value      = true
+  deprecated = "use other"
+}`,
+               "main.tf": `
+module "m" {
+  source = "./mod"
+}
+
+resource "test_resource" "example" {
+  lifecycle {
+    enabled = module.m.trigger
+  }
+}
+`,
+       })
+
+       p := &MockProvider{
+               GetProviderSchemaResponse: &providers.GetProviderSchemaResponse{
+                       Provider: providers.Schema{Block: 
&configschema.Block{}},
+                       ResourceTypes: map[string]providers.Schema{
+                               "test_resource": {Block: &configschema.Block{}},
+                       },
+               },
+       }
+       ctx := testContext2(t, &ContextOpts{
+               Plugins: 
plugins.NewLibrary(map[addrs.Provider]providers.Factory{
+                       addrs.NewDefaultProvider("test"): 
testProviderFuncFixed(p),
+               }, nil),
+       })
+
+       plan, diags := ctx.Plan(context.Background(), m, states.NewState(), 
DefaultPlanOpts)
+       if diags.HasErrors() {
+               t.Errorf("unexpected errors: %s", diags.Err())
+       }
+       if plan == nil {
+               t.Fatalf("expected a plan but got nothing")
+       }
+       if changes := len(plan.Changes.Resources); changes != 1 {
+               t.Fatalf("expected to have exactly one resource change but got 
%d", changes)
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentofu-1.12.2/version/VERSION 
new/opentofu-1.12.3/version/VERSION
--- old/opentofu-1.12.2/version/VERSION 2026-06-12 16:38:35.000000000 +0200
+++ new/opentofu-1.12.3/version/VERSION 2026-06-18 15:19:06.000000000 +0200
@@ -1 +1 @@
-1.12.2
+1.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentofu-1.12.2/website/docs/language/ephemerality/ephemeral-resources.mdx 
new/opentofu-1.12.3/website/docs/language/ephemerality/ephemeral-resources.mdx
--- 
old/opentofu-1.12.2/website/docs/language/ephemerality/ephemeral-resources.mdx  
    2026-06-12 16:38:35.000000000 +0200
+++ 
new/opentofu-1.12.3/website/docs/language/ephemerality/ephemeral-resources.mdx  
    2026-06-18 15:19:06.000000000 +0200
@@ -59,22 +59,14 @@
 The following arguments and nested block types are supported in the `lifecycle`
 block for an ephemeral resource:
 
-* `enabled` (bool) - Controls whether the ephemeral resource will be used by
-  OpenTofu. When set to `false`, the resource is excluded from the 
configuration
-  as if it didn't exist. When set to `true` (the default), the resource 
operates
-  normally.
-
-  For ephemeral resources in particular, you can use the boolean
-  `terraform.applying` value with `enabled` to specify that a particular
-  ephemeral resource should be active only during the apply phase, which can
-  be useful for values used only by managed resource provisioners because
-  provisioners are active only during the apply phase.
-
-  For more information, refer to [the `enabled` 
meta-argument](../../language/meta-arguments/enabled.mdx).
-
 * `precondition` and `postcondition` blocks, as described in
   [Custom 
Conditions](../../language/expressions/custom-conditions.mdx#preconditions-and-postconditions).
 
+Following the same rule of not allowing ephemeral values in repetition meta 
arguments (`count`, `for_each`),
+`lifecycle.enabled` disallows usage of such values too, including the usage of 
[`tofu.applying`](../expressions/references.mdx#filesystem-and-workspace-info).
+
+For more information, refer to [the `enabled` 
meta-argument](../../language/meta-arguments/enabled.mdx).
+
 ## Deferred opening
 By design, the ephemeral resources cannot be opened if the configuration is 
not fully known.
 When that happens during planning, the ephemeral resource will be postponed 
(deferred) for the apply phase.

++++++ opentofu.obsinfo ++++++
--- /var/tmp/diff_new_pack.kupg0V/_old  2026-06-19 17:19:46.938792276 +0200
+++ /var/tmp/diff_new_pack.kupg0V/_new  2026-06-19 17:19:46.942792413 +0200
@@ -1,5 +1,5 @@
 name: opentofu
-version: 1.12.2
-mtime: 1781275115
-commit: 75338c0c969e45d6aaa278b4071d3c64de837a9a
+version: 1.12.3
+mtime: 1781788746
+commit: e33607a2e3b29bfc7cf9f4dcdc261e669e3a457b
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/opentofu/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.opentofu.new.1956/vendor.tar.gz differ: char 13, 
line 1

Reply via email to