Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package google-guest-agent for 
openSUSE:Factory checked in at 2025-12-10 15:31:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/google-guest-agent (Old)
 and      /work/SRC/openSUSE:Factory/.google-guest-agent.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "google-guest-agent"

Wed Dec 10 15:31:28 2025 rev:56 rq:1321751 version:20251208.00

Changes:
--------
--- /work/SRC/openSUSE:Factory/google-guest-agent/google-guest-agent.changes    
2025-11-26 18:51:10.137159613 +0100
+++ 
/work/SRC/openSUSE:Factory/.google-guest-agent.new.1939/google-guest-agent.changes
  2025-12-10 15:32:09.302362510 +0100
@@ -1,0 +2,63 @@
+Tue Dec  9 08:34:13 UTC 2025 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to version 20251208.00
+  * network: force address manager to always consolidate the OS state (#585)
+  * Bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#583)
+  * Don't delete the authorized_keys file when an empty key list is passed
+    to updateAuthorizedKeysFile (#582)
+  * Add Tyler, Saswat, Hank to OWNERS (#577)
+  * Honor core plugin setting on windows package update (#576)
+  * Restart agent if core plugin is disabled (#575)
+  * Add extra debug logging around toggling OS Login (#572)
+  * Update go version to 1.25 (#565)
+  * Add compat adapt script to windows in agent sysprep (#569)
+  * Fix adapt to use more portable shebang line (#567)
+  * Remove routes script from packaging (#566)
+  * Update adapt script to run on startup/shutdown both (#561)
+  * Update agent_uninstall.ps1 (#558)
+  * Stop core plugin before removing agent package (#554)
+  * Startup scripts should start after agent manager instead (#553)
+  * Update presets and install dependencies on systemd units (#552)
+  * Ensure agent service is disabled (#551)
+  * Disable legacy agent to enable core plugin (#550)
+  * Final fix for RHEL packaging for routes setup (#549)
+  * Fix RHEL packaging for routes scripts (#548)
+  * Packaging changes to include routes script installation (#542)
+  * Update CLI name in packaging (#543)
+  * systemd should manage only the main process (#544)
+- from version 20251206.00
+  * fix start mode for windows on stable release (#584)
+  * Update agent_uninstall.ps1 (#558) (#580)
+  * Update go version for stable branch to 1.25 (#571)
+  * Add adapt script in stable branch as per #569 (#570)
+  * Backport fix from #567 to stable branch (#568)
+  * Revert compat behavior and call known binary directly (#560)
+  * Revert compat behavior and call known binary directly (#559)
+  * Build rollforward package to re-enable original agent and disable core 
plugin (#557)
+- from version 20251205.00
+  * network: force address manager to always consolidate the OS state (#585)
+  * Bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#583)
+  * Don't delete the authorized_keys file when an empty key list
+    is passed to updateAuthorizedKeysFile (#582)
+  * Add Tyler, Saswat, Hank to OWNERS (#577)
+  * Honor core plugin setting on windows package update (#576)
+  * Restart agent if core plugin is disabled (#575)
+  * Add extra debug logging around toggling OS Login (#572)
+  * Update go version to 1.25 (#565)
+  * Add compat adapt script to windows in agent sysprep (#569)
+  * Fix adapt to use more portable shebang line (#567)
+  * Remove routes script from packaging (#566)
+  * Update adapt script to run on startup/shutdown both (#561)
+  * Update agent_uninstall.ps1 (#558)
+  * Stop core plugin before removing agent package (#554)
+  * Startup scripts should start after agent manager instead (#553)
+  * Update presets and install dependencies on systemd units (#552)
+  * Ensure agent service is disabled (#551)
+  * Disable legacy agent to enable core plugin (#550)
+  * Final fix for RHEL packaging for routes setup (#549)
+  * Fix RHEL packaging for routes scripts (#548)
+  * Packaging changes to include routes script installation (#542)
+  * Update CLI name in packaging (#543)
+  * systemd should manage only the main process (#544)
+
+-------------------------------------------------------------------

Old:
----
  guest-agent-20251120.01.tar.gz

New:
----
  guest-agent-20251208.00.tar.gz

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

Other differences:
------------------
++++++ google-guest-agent.spec ++++++
--- /var/tmp/diff_new_pack.48htOH/_old  2025-12-10 15:32:11.030435368 +0100
+++ /var/tmp/diff_new_pack.48htOH/_new  2025-12-10 15:32:11.042435874 +0100
@@ -24,7 +24,7 @@
 %global import_path     %{provider_prefix}
 
 Name:           google-guest-agent
-Version:        20251120.01
+Version:        20251208.00
 Release:        0
 Summary:        Google Cloud Guest Agent
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.48htOH/_old  2025-12-10 15:32:11.310447174 +0100
+++ /var/tmp/diff_new_pack.48htOH/_new  2025-12-10 15:32:11.346448692 +0100
@@ -3,8 +3,8 @@
     <param 
name="url">https://github.com/GoogleCloudPlatform/guest-agent/</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="versionformat">20251120.01</param>
-    <param name="revision">20251120.01</param>
+    <param name="versionformat">20251208.00</param>
+    <param name="revision">20251208.00</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="recompress" mode="disabled">
@@ -15,7 +15,7 @@
     <param name="basename">guest-agent</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">guest-agent-20251120.01.tar.gz</param>
+    <param name="archive">guest-agent-20251208.00.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.48htOH/_old  2025-12-10 15:32:11.406451222 +0100
+++ /var/tmp/diff_new_pack.48htOH/_new  2025-12-10 15:32:11.442452739 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/GoogleCloudPlatform/guest-agent/</param>
-              <param 
name="changesrevision">648ad50d7dfb12e73eb0dd3aafde5c085d34637f</param></service></servicedata>
+              <param 
name="changesrevision">ba17109f4f390c2b7ee8b1d6b636efe6903073bd</param></service></servicedata>
 (No newline at EOF)
 

++++++ guest-agent-20251120.01.tar.gz -> guest-agent-20251208.00.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/90-google-guest-agent.preset 
new/guest-agent-20251208.00/90-google-guest-agent.preset
--- old/guest-agent-20251120.01/90-google-guest-agent.preset    2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/90-google-guest-agent.preset    2025-12-02 
00:11:32.000000000 +0100
@@ -1,4 +1,6 @@
-enable google-guest-agent.service
+disable google-guest-agent.service
 enable google-shutdown-scripts.service
 enable google-startup-scripts.service
-enable gce-workload-cert-refresh.timer
+disable gce-workload-cert-refresh.timer
+enable google-guest-compat-manager.service
+enable google-guest-agent-manager.service
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/OWNERS 
new/guest-agent-20251208.00/OWNERS
--- old/guest-agent-20251120.01/OWNERS  2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/OWNERS  2025-12-02 00:11:32.000000000 +0100
@@ -7,8 +7,8 @@
   - chaitanyakulkarni28
   - dorileo
   - drewhli
-  - elicriffield
   - jjerger
-  - karnvadaliya
-  - koln67
   - lpleahy
+  - saswatpadhi
+  - tylerjdao
+  - shenpai35
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/core-plugin-enabled 
new/guest-agent-20251208.00/core-plugin-enabled
--- old/guest-agent-20251120.01/core-plugin-enabled     2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/core-plugin-enabled     1970-01-01 
01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-# Please do not edit this file manually.
-enabled=false
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/go.mod 
new/guest-agent-20251208.00/go.mod
--- old/guest-agent-20251120.01/go.mod  2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/go.mod  2025-12-02 00:11:32.000000000 +0100
@@ -17,8 +17,8 @@
        github.com/kardianos/service v1.2.4
        github.com/robfig/cron/v3 v3.0.1
        github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07
-       golang.org/x/crypto v0.41.0
-       golang.org/x/sys v0.35.0
+       golang.org/x/crypto v0.45.0
+       golang.org/x/sys v0.38.0
        google.golang.org/api v0.248.0
        google.golang.org/grpc v1.75.0
        google.golang.org/protobuf v1.36.8
@@ -67,10 +67,10 @@
        go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect
        go.opentelemetry.io/otel/trace v1.37.0 // indirect
        go.uber.org/multierr v1.11.0 // indirect
-       golang.org/x/net v0.43.0 // indirect
+       golang.org/x/net v0.47.0 // indirect
        golang.org/x/oauth2 v0.30.0 // indirect
-       golang.org/x/sync v0.16.0 // indirect
-       golang.org/x/text v0.28.0 // indirect
+       golang.org/x/sync v0.18.0 // indirect
+       golang.org/x/text v0.31.0 // indirect
        golang.org/x/time v0.12.0 // indirect
        google.golang.org/genproto v0.0.0-20250826171959-ef028d996bc1 // 
indirect
        google.golang.org/genproto/googleapis/api 
v0.0.0-20250826171959-ef028d996bc1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/go.sum 
new/guest-agent-20251208.00/go.sum
--- old/guest-agent-20251120.01/go.sum  2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/go.sum  2025-12-02 00:11:32.000000000 +0100
@@ -147,21 +147,32 @@
 go.uber.org/multierr v1.11.0/go.mod 
h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
 golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
 golang.org/x/crypto v0.41.0/go.mod 
h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
+golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
+golang.org/x/crypto v0.45.0/go.mod 
h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
 golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc 
h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg=
 golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod 
h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
 golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
 golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
+golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
+golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
 golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
 golang.org/x/oauth2 v0.30.0/go.mod 
h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
 golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
 golang.org/x/sync v0.16.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
+golang.org/x/sync v0.18.0/go.mod 
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
 golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
 golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
+golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
 golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
 golang.org/x/term v0.34.0/go.mod 
h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
+golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
 golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
 golang.org/x/text v0.28.0/go.mod 
h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
+golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
+golang.org/x/text v0.31.0/go.mod 
h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
 golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
 golang.org/x/time v0.12.0/go.mod 
h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
 gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google-guest-agent-manager.service 
new/guest-agent-20251208.00/google-guest-agent-manager.service
--- old/guest-agent-20251120.01/google-guest-agent-manager.service      
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google-guest-agent-manager.service      
2025-12-02 00:11:32.000000000 +0100
@@ -1,5 +1,7 @@
 [Unit]
 Description=Google Compute Engine Guest Agent Plugin Manager
+# Start before sshd in order to regenerate SSH host keys.
+Before=sshd.service
 After=network-online.target syslog.service
 After=network.service networking.service NetworkManager.service 
systemd-networkd.service
 
@@ -8,6 +10,9 @@
 ExecStart=/usr/bin/google_guest_agent_manager
 OOMScoreAdjust=-999
 Restart=always
+KillMode=process
 
 [Install]
+WantedBy=sshd.service
 WantedBy=multi-user.target
+WantedBy=network.service networking.service NetworkManager.service 
systemd-networkd.service
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google-startup-scripts.service 
new/guest-agent-20251208.00/google-startup-scripts.service
--- old/guest-agent-20251120.01/google-startup-scripts.service  2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google-startup-scripts.service  2025-12-02 
00:11:32.000000000 +0100
@@ -1,7 +1,7 @@
 [Unit]
 Description=Google Compute Engine Startup Scripts
 Wants=network-online.target rsyslog.service
-After=network-online.target rsyslog.service google-guest-agent.service
+After=network-online.target rsyslog.service google-guest-agent-manager.service
 Before=apt-daily.service
 
 [Service]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/addresses.go 
new/guest-agent-20251208.00/google_guest_agent/addresses.go
--- old/guest-agent-20251120.01/google_guest_agent/addresses.go 2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/addresses.go 2025-12-02 
00:11:32.000000000 +0100
@@ -19,7 +19,6 @@
        "errors"
        "fmt"
        "net"
-       "reflect"
        "runtime"
        "slices"
        "strings"
@@ -31,9 +30,7 @@
 )
 
 var (
-       addressKey       = regKeyBase + `\ForwardedIps`
-       oldWSFCAddresses string
-       oldWSFCEnable    bool
+       addressKey = regKeyBase + `\ForwardedIps`
 )
 
 type addressMgr struct{}
@@ -230,23 +227,11 @@
        }
 }
 
+// Regardless of the state changes in MDS go through the address consolidation
+// and apply address changes if required. Always running the manager guarantees
+// routes will be re added in case they were removed by any external factor.
 func (a *addressMgr) Diff(ctx context.Context) (bool, error) {
-       // Return true if this is the first call (when the first mds descriptor 
is available).
-       if oldMetadata == nil {
-               return true, nil
-       }
-
-       config := cfg.Get()
-       wsfcAddresses := a.parseWSFCAddresses(config)
-       wsfcEnable := a.parseWSFCEnable(config)
-
-       diff := !reflect.DeepEqual(newMetadata.Instance.NetworkInterfaces, 
oldMetadata.Instance.NetworkInterfaces) ||
-               !reflect.DeepEqual(newMetadata.Instance.VlanNetworkInterfaces, 
oldMetadata.Instance.VlanNetworkInterfaces) ||
-               wsfcEnable != oldWSFCEnable || wsfcAddresses != oldWSFCAddresses
-
-       oldWSFCAddresses = wsfcAddresses
-       oldWSFCEnable = wsfcEnable
-       return diff, nil
+       return true, nil
 }
 
 func (a *addressMgr) Timeout(ctx context.Context) (bool, error) {
@@ -368,7 +353,7 @@
                                }
                                msg += fmt.Sprintf(" removing %q", toRm)
                        }
-                       logger.Infof(msg)
+                       logger.Infof("%v", msg)
                }
 
                var registryEntries []string
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/addresses_test.go 
new/guest-agent-20251208.00/google_guest_agent/addresses_test.go
--- old/guest-agent-20251120.01/google_guest_agent/addresses_test.go    
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/addresses_test.go    
2025-12-02 00:11:32.000000000 +0100
@@ -101,46 +101,6 @@
        }
 }
 
-func TestAddressDiff(t *testing.T) {
-       var tests = []struct {
-               name string
-               data []byte
-               md   *metadata.Descriptor
-               want bool
-       }{
-               {"not set", []byte(""), &metadata.Descriptor{}, false},
-               {"enabled in cfg only", []byte("[wsfc]\nenable=true"), 
&metadata.Descriptor{}, true},
-               {"disabled in cfg only", []byte("[wsfc]\nenable=false"), 
&metadata.Descriptor{}, false},
-               {"disabled in cfg, enabled in instance metadata", 
[]byte("[wsfc]\nenable=false"), &metadata.Descriptor{Instance: 
metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(true)}}}, 
false},
-               {"enabled in cfg, disabled in instance metadata", 
[]byte("[wsfc]\nenable=true"), &metadata.Descriptor{Instance: 
metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(false)}}}, 
true},
-               {"enabled in instance metadata only", []byte(""), 
&metadata.Descriptor{Instance: metadata.Instance{Attributes: 
metadata.Attributes{EnableWSFC: mkptr(true)}}}, true},
-               {"enabled in project metadata only", []byte(""), 
&metadata.Descriptor{Project: metadata.Project{Attributes: 
metadata.Attributes{EnableWSFC: mkptr(true)}}}, true},
-               {"disabled in instance metadata only", []byte(""), 
&metadata.Descriptor{Instance: metadata.Instance{Attributes: 
metadata.Attributes{EnableWSFC: mkptr(false)}}}, false},
-               {"enabled in instance metadata, disabled in project metadata", 
[]byte(""), &metadata.Descriptor{Instance: metadata.Instance{Attributes: 
metadata.Attributes{EnableWSFC: mkptr(true)}}, Project: 
metadata.Project{Attributes: metadata.Attributes{EnableWSFC: mkptr(false)}}}, 
true},
-               {"disabled in project metadata only", []byte(""), 
&metadata.Descriptor{Project: metadata.Project{Attributes: 
metadata.Attributes{EnableWSFC: mkptr(false)}}}, false},
-       }
-
-       ctx := context.Background()
-       for _, tt := range tests {
-               t.Run(tt.name, func(t *testing.T) {
-                       reloadConfig(t, tt.data)
-
-                       oldWSFCEnable = false
-                       oldMetadata = &metadata.Descriptor{}
-                       newMetadata = tt.md
-
-                       got, err := (&addressMgr{}).Diff(ctx)
-                       if err != nil {
-                               t.Errorf("Failed to run addressMgr's Diff() 
call, got error: %+v", err)
-                       }
-
-                       if got != tt.want {
-                               t.Errorf("addresses.diff() got: %t, want: %t", 
got, tt.want)
-                       }
-               })
-       }
-}
-
 func TestWsfcFilter(t *testing.T) {
        var tests = []struct {
                metaDataJSON []byte
@@ -200,7 +160,6 @@
                t.Run(fmt.Sprintf("test-%d", i), func(t *testing.T) {
                        reloadConfig(t, nil)
 
-                       oldWSFCAddresses = 
tt.oldMetadata.Instance.Attributes.WSFCAddresses
                        newMetadata = tt.newMetadata
                        oldMetadata = tt.oldMetadata
                        testAddress := addressMgr{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/diagnostics.go 
new/guest-agent-20251208.00/google_guest_agent/diagnostics.go
--- old/guest-agent-20251120.01/google_guest_agent/diagnostics.go       
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/diagnostics.go       
2025-12-02 00:11:32.000000000 +0100
@@ -126,7 +126,7 @@
        go func() {
                logger.Infof("Diagnostics: collecting logs from the system.")
                res := run.WithCombinedOutput(ctx, diagnosticsCmd, args...)
-               logger.Infof(res.Combined)
+               logger.Infof("%v", res.Combined)
                if res.ExitCode != 0 {
                        logger.Warningf("Error collecting logs: %v", 
res.Error())
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go
 
new/guest-agent-20251208.00/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go
--- 
old/guest-agent-20251120.01/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go
    2025-11-20 18:49:46.000000000 +0100
+++ 
new/guest-agent-20251208.00/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go
    2025-12-02 00:11:32.000000000 +0100
@@ -46,7 +46,7 @@
                                return fmt.Errorf("failed to create named pipe: 
%+v", err)
                        }
                } else {
-                       return fmt.Errorf("failed to stat file: " + pipePath)
+                       return fmt.Errorf("failed to stat file: %v", pipePath)
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/non_windows_accounts.go 
new/guest-agent-20251208.00/google_guest_agent/non_windows_accounts.go
--- old/guest-agent-20251120.01/google_guest_agent/non_windows_accounts.go      
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/non_windows_accounts.go      
2025-12-02 00:11:32.000000000 +0100
@@ -412,7 +412,7 @@
 // updateAuthorizedKeysFile adds provided keys to the user's SSH
 // AuthorizedKeys file. The file and containing directory are created if it
 // does not exist. Uses a temporary file to avoid partial updates in case of
-// errors. If no keys are provided, the authorized keys file is removed.
+// errors.
 func updateAuthorizedKeysFile(ctx context.Context, user string, keys []string) 
error {
        gcomment := "# Added by Google"
 
@@ -442,12 +442,6 @@
                }
        }
        akpath := path.Join(sshpath, "authorized_keys")
-       // Remove empty file.
-       if len(keys) == 0 {
-               os.Remove(akpath)
-               return nil
-       }
-
        tempPath := akpath + ".google"
        akcontents, err := os.ReadFile(akpath)
        if err != nil && !os.IsNotExist(err) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/oslogin.go 
new/guest-agent-20251208.00/google_guest_agent/oslogin.go
--- old/guest-agent-20251120.01/google_guest_agent/oslogin.go   2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/oslogin.go   2025-12-02 
00:11:32.000000000 +0100
@@ -136,24 +136,29 @@
                newMetadata.Instance.Attributes.SSHKeys = nil
                newMetadata.Project.Attributes.SSHKeys = nil
                (&accountsMgr{}).Set(ctx)
-       }
-
-       if !enable && oldEnable {
+       } else if !enable && oldEnable {
                logger.Infof("Disabling OS Login")
+       } else {
+               logger.Infof("Not enabling or disabling OS Login; enablement 
state is already as desired: %v", enable)
+               // Idea: could we simply return early here, if there's really 
nothing to do?
        }
 
+       logger.Debugf("Updating SSH config...")
        if err := writeSSHConfig(enable, twofactor, skey, reqCerts); err != nil 
{
                logger.Errorf("Error updating SSH config: %v.", err)
        }
 
+       logger.Debugf("Updating NSS config...")
        if err := writeNSSwitchConfig(enable); err != nil {
                logger.Errorf("Error updating NSS config: %v.", err)
        }
 
+       logger.Debugf("Updating PAM config...")
        if err := writePAMConfig(enable, twofactor); err != nil {
                logger.Errorf("Error updating PAM config: %v.", err)
        }
 
+       logger.Debugf("Updating group.conf...")
        if err := writeGroupConf(enable); err != nil {
                logger.Errorf("Error updating group.conf: %v.", err)
        }
@@ -178,19 +183,19 @@
        mdsClient.WriteGuestAttributes(ctx, "guest-agent/sshable", now)
 
        if enable {
-               logger.Debugf("Create OS Login dirs, if needed")
+               logger.Debugf("Creating OS Login dirs, if needed...")
                if err := createOSLoginDirs(ctx); err != nil {
                        logger.Errorf("Error creating OS Login directory: %v.", 
err)
                }
 
-               logger.Debugf("create OS Login sudoers config, if needed")
+               logger.Debugf("Creating OS Login sudoers config, if needed...")
                if err := createOSLoginSudoersFile(); err != nil {
                        logger.Errorf("Error creating OS Login sudoers file: 
%v.", err)
                }
 
                // Refresh the NSS cache asynchronously; this can take a while 
and shouldn't block.
                go func() {
-                       logger.Debugf("starting OS Login nss cache fill")
+                       logger.Debugf("Starting OS Login NSS cache fill 
asynchronously...")
                        if err := run.Quiet(ctx, "google_oslogin_nss_cache"); 
err != nil {
                                logger.Errorf("Error updating NSS cache: %v.", 
err)
                        }
@@ -380,14 +385,22 @@
 }
 
 func writeNSSwitchConfig(enable bool) error {
+       logger.Debugf("Reading NSSwitch config file...")
        nsswitch, err := os.ReadFile("/etc/nsswitch.conf")
        if err != nil {
+               logger.Warningf("Error reading NSSwitch config file: %v", err)
                return err
        }
        proposed := updateNSSwitchConfig(string(nsswitch), enable)
        if proposed == string(nsswitch) {
+               logger.Debugf("NSSwitch config file is as expected. No changes 
needed.")
                return nil
        }
+       if enable {
+               logger.Debugf("Editing NSSwitch config file to enable OS 
Login.")
+       } else {
+               logger.Debugf("Editing NSSwitch config file to disable OS 
Login.")
+       }
        return writeConfigFile("/etc/nsswitch.conf", proposed)
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/system_windows.go 
new/guest-agent-20251208.00/google_guest_agent/system_windows.go
--- old/guest-agent-20251120.01/google_guest_agent/system_windows.go    
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/system_windows.go    
2025-12-02 00:11:32.000000000 +0100
@@ -35,12 +35,12 @@
 func init() {
        key, _, err := registry.CreateKey(registry.LOCAL_MACHINE, regKeyBase, 
registry.WRITE)
        if err != nil {
-               logger.Fatalf(err.Error())
+               logger.Fatalf("%v", err.Error())
        }
        key.Close()
        key, _, err = registry.CreateKey(registry.LOCAL_MACHINE, addressKey, 
registry.WRITE)
        if err != nil {
-               logger.Fatalf(err.Error())
+               logger.Fatalf("%v", err.Error())
        }
        key.Close()
 }
@@ -125,7 +125,7 @@
        psCmd := "(Get-Item '" + path + "').VersionInfo.FileVersion"
        res := run.WithOutput(ctx, "powershell", "-c", psCmd)
        if res.ExitCode != 0 {
-               return versionInfo{0, 0}, fmt.Errorf(res.Error())
+               return versionInfo{0, 0}, fmt.Errorf("%v", res.Error())
        }
        return parseVersionInfo([]byte(res.StdOut))
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_guest_agent/windows_accounts.go 
new/guest-agent-20251208.00/google_guest_agent/windows_accounts.go
--- old/guest-agent-20251120.01/google_guest_agent/windows_accounts.go  
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_guest_agent/windows_accounts.go  
2025-12-02 00:11:32.000000000 +0100
@@ -344,7 +344,7 @@
                if sshEnable != oldSSHEnable {
                        err := verifyWinSSHVersion(ctx)
                        if err != nil {
-                               logger.Warningf(err.Error())
+                               logger.Warningf("%v", err.Error())
                        }
 
                        if !checkWindowsServiceRunning(ctx, "sshd") {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_metadata_script_runner/main.go 
new/guest-agent-20251208.00/google_metadata_script_runner/main.go
--- old/guest-agent-20251120.01/google_metadata_script_runner/main.go   
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_metadata_script_runner/main.go   
2025-12-02 00:11:32.000000000 +0100
@@ -469,7 +469,7 @@
 
        scripts, err := getExistingKeys(ctx, wantedKeys)
        if err != nil {
-               logger.Fatalf(err.Error())
+               logger.Fatalf("%v", err.Error())
        }
 
        if len(scripts) == 0 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_metadata_script_runner/main_test.go 
new/guest-agent-20251208.00/google_metadata_script_runner/main_test.go
--- old/guest-agent-20251120.01/google_metadata_script_runner/main_test.go      
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_metadata_script_runner/main_test.go      
2025-12-02 00:11:32.000000000 +0100
@@ -317,7 +317,7 @@
                        w.WriteHeader(400)
                }
 
-               fmt.Fprintf(w, r.URL.Path)
+               fmt.Fprintf(w, "%v", r.URL.Path)
                ctr[r.URL.Path] = ctr[r.URL.Path] + 1
        }))
        defer server.Close()
@@ -386,7 +386,7 @@
                if strings.Contains(r.URL.Path, "invalid") {
                        w.WriteHeader(404)
                }
-               fmt.Fprintf(w, r.URL.Path)
+               fmt.Fprintf(w, "%v", r.URL.Path)
                ctr[r.URL.Path] = ctr[r.URL.Path] + 1
        }))
        defer server.Close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_metadata_script_runner_adapt 
new/guest-agent-20251208.00/google_metadata_script_runner_adapt
--- old/guest-agent-20251120.01/google_metadata_script_runner_adapt     
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_metadata_script_runner_adapt     
2025-12-02 00:11:32.000000000 +0100
@@ -2,9 +2,11 @@
 #
 # This script wraps compatibility logic of guest agent's startup script
 # runner. If compat manager is present run it, otherwise launch the
-# known service binary. In case the package is to revert back to previous
-# version of guest-agent without core plugin it directly launches known 
service 
-# binary.
+# known service binary.
 #
 
-/usr/bin/google_metadata_script_runner $1
\ No newline at end of file
+if [ -e /usr/bin/gce_compat_metadata_script_runner ]; then
+  /usr/bin/gce_compat_metadata_script_runner $1
+else
+  /usr/bin/google_metadata_script_runner $1
+fi
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/google_metadata_script_runner_adapt.ps1 
new/guest-agent-20251208.00/google_metadata_script_runner_adapt.ps1
--- old/guest-agent-20251120.01/google_metadata_script_runner_adapt.ps1 
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/google_metadata_script_runner_adapt.ps1 
2025-12-02 00:11:32.000000000 +0100
@@ -15,10 +15,12 @@
 <#
   .SYNOPSIS
     Metadata Script Runner Adapt.
+
   .DESCRIPTION
     This script wraps compatibility logic of guest agent's startup script
     runner. If compat manager is present run it, otherwise launch the
     known service binary.
+
    .EXAMPLE
     .\google_metadata_script_runner_adapt.ps1 <startup|shutdown|specialize>
 #>
@@ -33,6 +35,17 @@
 $script:gce_install_dir = 'C:\Program Files\Google\Compute Engine'
 $script:orig_runner = 
"$script:gce_install_dir\metadata_scripts\GCEMetadataScripts.exe"
 $script:metadata_script_loc = $script:orig_runner
+$script:compatRunner = 
"$script:gce_install_dir\metadata_scripts\GCECompatMetadataScripts.exe"
+$script:runnerV2 = "$script:gce_install_dir\agent\GCEMetadataScriptRunner.exe"
+
+if (Test-Path $script:runnerV2) {
+    $script:metadata_script_loc = $script:runnerV2
+}
+
+if (Test-Path $script:compatRunner) {
+    $script:metadata_script_loc = $script:compatRunner
+}
 
 Write-Host "Launching metadata scripts from $script:metadata_script_loc for 
$phase"
+# Call startup script during sysprep specialize phase.
 & $script:metadata_script_loc $phase
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/packaging/debian/postinst 
new/guest-agent-20251208.00/packaging/debian/postinst
--- old/guest-agent-20251120.01/packaging/debian/postinst       2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/debian/postinst       2025-12-02 
00:11:32.000000000 +0100
@@ -14,16 +14,15 @@
     fi
   fi
 
-  # Disable and stop this service in favor of original guest-agent instead of 
core plugin.
-  systemctl disable 'google-guest-compat-manager.service' > /dev/null || true
-  systemctl stop 'google-guest-compat-manager.service' > /dev/null || true
-
-  # Stop core plugin.
-  ggactl_plugin coreplugin stop >/dev/null 2>&1 || :
-
-  # Enable the legacy agent again.
-  systemctl enable 'google-guest-agent.service' > /dev/null || true
-  systemctl start 'google-guest-agent.service' > /dev/null || true
+  if grep -q "false" "/etc/google-guest-agent/core-plugin-enabled"; then
+    # If the core plugin was disabled, honor that setting.
+    systemctl enable google-guest-agent.service >/dev/null 2>&1 || :
+    systemctl start google-guest-agent.service >/dev/null 2>&1 || :
+  else
+    # Disable and stop this service in favor of core plugin to be run on 
default.
+    systemctl disable 'google-guest-agent.service' > /dev/null || true
+    systemctl stop 'google-guest-agent.service' > /dev/null || true
+  fi
 fi
 
 #DEBHELPER#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/packaging/debian/prerm 
new/guest-agent-20251208.00/packaging/debian/prerm
--- old/guest-agent-20251120.01/packaging/debian/prerm  2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/debian/prerm  2025-12-02 
00:11:32.000000000 +0100
@@ -2,6 +2,7 @@
 
 if [ "$1" = "purge" -o "$1" = "remove" ] ; then
     systemctl stop google-guest-agent-manager >/dev/null 2>&1 || :
+    ggactl_plugin coreplugin stop >/dev/null 2>&1 || :
     ggactl_plugin dynamic-cleanup >/dev/null 2>&1 || :
 fi
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/packaging/debian/rules 
new/guest-agent-20251208.00/packaging/debian/rules
--- old/guest-agent-20251120.01/packaging/debian/rules  2025-11-20 
18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/debian/rules  2025-12-02 
00:11:32.000000000 +0100
@@ -32,8 +32,6 @@
                install -p -m 0755 google-guest-agent/cmd/ggactl/ggactl_plugin 
debian/google-guest-agent/usr/bin/ggactl_plugin;\
                install -p -m 0755 
google-guest-agent/cmd/core_plugin/core_plugin 
debian/google-guest-agent/usr/lib/google/guest_agent/core_plugin;\
                install -p -m 0755 
google-guest-agent/cmd/metadata_script_runner_compat/gce_compat_metadata_script_runner
 debian/google-guest-agent/usr/bin/gce_compat_metadata_script_runner;\
-               install -d debian/google-guest-agent/etc/google-guest-agent;\
-               install -p -m 0755 core-plugin-enabled 
debian/google-guest-agent/etc/google-guest-agent/core-plugin-enabled;\
        fi
 
 override_dh_golang:
@@ -63,16 +61,21 @@
        fi
        install -d debian/google-guest-agent/lib/systemd/system-preset
        install -p -m 0644 *.preset 
debian/google-guest-agent/lib/systemd/system-preset/
-       dh_systemd_enable google-guest-agent.service 
google-startup-scripts.service google-shutdown-scripts.service 
gce-workload-cert-refresh.timer
+       dh_systemd_enable google-startup-scripts.service 
google-shutdown-scripts.service
        if [ -d google-guest-agent ]; then\
                dh_systemd_enable google-guest-compat-manager.service;\
                dh_systemd_enable google-guest-agent-manager.service;\
        fi
 
+override_dh_installsystemd:
+       if [ -d google-guest-agent ]; then\
+               dh_installsystemd google-guest-compat-manager.service;\
+               dh_installsystemd google-guest-agent-manager.service;\
+               dh_installsystemd --no-enable --no-start 
google-guest-agent.service;\
+               dh_installsystemd --no-enable --no-start 
gce-workload-cert-refresh.timer;\
+       fi
+
 override_dh_systemd_start:
-       # Only perform start/stop actions for the guest agent and cert refresh 
timer.
-       dh_systemd_start google-guest-agent.service
-       dh_systemd_start gce-workload-cert-refresh.timer
        if [ -d google-guest-agent ]; then\
                dh_systemd_start google-guest-compat-manager.service;\
                dh_systemd_start google-guest-agent-manager.service;\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/packaging/googet/agent_install.ps1 
new/guest-agent-20251208.00/packaging/googet/agent_install.ps1
--- old/guest-agent-20251120.01/packaging/googet/agent_install.ps1      
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/googet/agent_install.ps1      
2025-12-02 00:11:32.000000000 +0100
@@ -27,7 +27,7 @@
 $compat_display_name = 'Google Compute Engine Compat Manager'
 $compat_description = 'Google Compute Engine Compat Manager'
 
-$ggactl_exe = "C:\Program Files\Google\Compute Engine\agent\ggactl_plugin.exe"
+$core_enabled = "C:\ProgramData\Google\Compute 
Engine\google-guest-agent\core-plugin-enabled"
 
 $initial_config = @'
 # GCE Instance Configuration
@@ -103,15 +103,20 @@
     $initial_config | Set-Content -Path $config -Encoding ASCII
   }
 
-  Restart-Service $name -Verbose
-
   if ($install_manager) {
-    & sc.exe config $compat_manager start=disabled
-    Stop-Service $compat_manager -Verbose
-
-    Stop-Service $manager_name -Verbose
-    & $ggactl_exe coreplugin stop
-    Start-Service $manager_name -Verbose
+    # If core plugin is disabled, honor the setting and restart non-plugin 
based agent.
+    if (Get-Content -Path $core_enabled -ErrorAction SilentlyContinue | 
Select-String -Pattern "false" -Quiet) {
+      Restart-Service $name -Verbose
+    }
+    else {
+      & sc.exe config $name start=disabled
+      Stop-Service $name
+    }
+    
+    Restart-Service $compat_manager -Verbose
+    Restart-Service $manager_name -Verbose
+  } else {
+     Restart-Service $name -Verbose
   }
 }
 catch {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/packaging/googet/agent_uninstall.ps1 
new/guest-agent-20251208.00/packaging/googet/agent_uninstall.ps1
--- old/guest-agent-20251120.01/packaging/googet/agent_uninstall.ps1    
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/googet/agent_uninstall.ps1    
2025-12-02 00:11:32.000000000 +0100
@@ -30,6 +30,7 @@
 # Stop Guest Agent Manager, cleanup all plugins (if present) and delete the 
service.
 if (Get-Service $name -ErrorAction SilentlyContinue) {
     Stop-Service $name -Verbose
+    & $cleanup_exe coreplugin stop
     & $cleanup_exe dynamic-cleanup
     & sc.exe delete $name
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/packaging/googet/google-compute-engine-windows.goospec
 
new/guest-agent-20251208.00/packaging/googet/google-compute-engine-windows.goospec
--- 
old/guest-agent-20251120.01/packaging/googet/google-compute-engine-windows.goospec
  2025-11-20 18:49:46.000000000 +0100
+++ 
new/guest-agent-20251208.00/packaging/googet/google-compute-engine-windows.goospec
  2025-12-02 00:11:32.000000000 +0100
@@ -9,7 +9,6 @@
   "files": {
     "CorePlugin.exe": "<ProgramFiles>/Google/Compute 
Engine/agent/CorePlugin.exe",
     "google_metadata_script_runner_adapt.ps1": "<ProgramFiles>/Google/Compute 
Engine/agent/google_metadata_script_runner_adapt.ps1",
-    "core-plugin-enabled": "<ProgramData>/Google/Compute 
Engine/google-guest-agent/core-plugin-enabled",
     "GCEMetadataScriptRunner.exe": "<ProgramFiles>/Google/Compute 
Engine/agent/GCEMetadataScriptRunner.exe",
     "GCEWindowsAgentManager.exe": "<ProgramFiles>/Google/Compute 
Engine/agent/GCEWindowsAgentManager.exe",
     "GCEWindowsCompatManager.exe": "<ProgramFiles>/Google/Compute 
Engine/agent/GCEWindowsCompatManager.exe",
@@ -46,7 +45,6 @@
   "sources": [{
       "include": [
         "CorePlugin.exe",
-        "core-plugin-enabled",
         "ggactl_plugin.exe",
         "GCEWindowsAgent.exe",
         "GCECompatMetadataScripts.exe",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/packaging/googet/run_shutdown_scripts.cmd 
new/guest-agent-20251208.00/packaging/googet/run_shutdown_scripts.cmd
--- old/guest-agent-20251120.01/packaging/googet/run_shutdown_scripts.cmd       
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/googet/run_shutdown_scripts.cmd       
2025-12-02 00:11:32.000000000 +0100
@@ -16,5 +16,8 @@
 REM Run shutdown scripts that should happen as soon as the instance
 REM begins to power down
 
-"C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCEMetadataScripts.exe" "shutdown"
-
+IF EXIST "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCECompatMetadataScripts.exe" (
+    "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCECompatMetadataScripts.exe" "shutdown"
+) ELSE (
+    "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCEMetadataScripts.exe" "shutdown"
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/packaging/googet/run_startup_scripts.cmd 
new/guest-agent-20251208.00/packaging/googet/run_startup_scripts.cmd
--- old/guest-agent-20251120.01/packaging/googet/run_startup_scripts.cmd        
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/googet/run_startup_scripts.cmd        
2025-12-02 00:11:32.000000000 +0100
@@ -19,4 +19,8 @@
 REM We execute the startup script asynchronously so it may run without
 REM this three day maximum runtime limitation.
 
-start "" "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCEMetadataScripts.exe" "startup"
\ No newline at end of file
+IF EXIST "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCECompatMetadataScripts.exe" (
+    start "" "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCECompatMetadataScripts.exe" "startup"
+) ELSE (
+    start "" "C:\Program Files\Google\Compute 
Engine\metadata_scripts\GCEMetadataScripts.exe" "startup"
+)
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-agent-20251120.01/packaging/google-guest-agent.spec 
new/guest-agent-20251208.00/packaging/google-guest-agent.spec
--- old/guest-agent-20251120.01/packaging/google-guest-agent.spec       
2025-11-20 18:49:46.000000000 +0100
+++ new/guest-agent-20251208.00/packaging/google-guest-agent.spec       
2025-12-02 00:11:32.000000000 +0100
@@ -92,8 +92,6 @@
 install -p -m 0755 
%{name}-extra-%{version}/cmd/google_guest_compat_manager/google_guest_compat_manager
 %{buildroot}%{_bindir}/google_guest_compat_manager
 install -p -m 0755 %{name}-extra-%{version}/cmd/core_plugin/core_plugin 
%{buildroot}%{_exec_prefix}/lib/google/guest_agent/core_plugin
 install -p -m 0755 
%{name}-extra-%{version}/cmd/metadata_script_runner_compat/gce_compat_metadata_script_runner
 %{buildroot}%{_bindir}/gce_compat_metadata_script_runner
-install -d %{buildroot}/etc/google-guest-agent
-install -p -m 0755 core-plugin-enabled 
%{buildroot}/etc/google-guest-agent/core-plugin-enabled
 %endif
 
 %if 0%{?el6}
@@ -131,7 +129,6 @@
 %{_bindir}/google_guest_agent_manager
 %{_bindir}/ggactl_plugin
 %{_exec_prefix}/lib/google/guest_agent/core_plugin
-/etc/google-guest-agent/core-plugin-enabled
 %endif
 
 %{_bindir}/google_metadata_script_runner
@@ -168,22 +165,20 @@
 
   # Use enable instead of preset because preset is not supported in
   # chroots.
-  systemctl enable google-guest-agent.service >/dev/null 2>&1 || :
   systemctl enable google-startup-scripts.service >/dev/null 2>&1 || :
   systemctl enable google-shutdown-scripts.service >/dev/null 2>&1 || :
   systemctl enable gce-workload-cert-refresh.timer >/dev/null 2>&1 || :
 
   %if 0%{?build_plugin_manager}
-    systemctl disable google-guest-compat-manager.service >/dev/null 2>&1 || :
+    systemctl enable google-guest-compat-manager.service >/dev/null 2>&1 || :
     systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || :
   %endif
 
   if [ -d /run/systemd/system ]; then
     systemctl daemon-reload >/dev/null 2>&1 || :
-    systemctl start google-guest-agent.service >/dev/null 2>&1 || :
     systemctl start gce-workload-cert-refresh.timer >/dev/null 2>&1 || :
     %if 0%{?build_plugin_manager}
-      systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || :
+      systemctl start google-guest-compat-manager.service >/dev/null 2>&1 || :
       systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || :
     %endif
   fi
@@ -192,20 +187,23 @@
 else
   # Package upgrade
   %if 0%{?build_plugin_manager}
-      systemctl disable google-guest-compat-manager.service >/dev/null 2>&1 || 
:
+      systemctl enable google-guest-compat-manager.service >/dev/null 2>&1 || :
       systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || :
-      systemctl enable google-guest-agent.service >/dev/null 2>&1 || :
+      systemctl disable google-guest-agent.service >/dev/null 2>&1 || :
   %endif
     
   if [ -d /run/systemd/system ]; then
     systemctl daemon-reload >/dev/null 2>&1 || :
     %if 0%{?build_plugin_manager}
-      systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || :
-      systemctl stop google-guest-agent-manager.service >/dev/null 2>&1 || :
-      ggactl_plugin coreplugin stop >/dev/null 2>&1 || :
-      systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || :
+      if grep -q "false" "/etc/google-guest-agent/core-plugin-enabled"; then
+        systemctl enable google-guest-agent.service >/dev/null 2>&1 || :
+        systemctl start google-guest-agent.service >/dev/null 2>&1 || :
+      else
+        systemctl stop google-guest-agent.service >/dev/null 2>&1 || :
+      fi
+      systemctl restart google-guest-compat-manager.service >/dev/null 2>&1 || 
:
+      systemctl restart google-guest-agent-manager.service >/dev/null 2>&1 || :
     %endif
-    systemctl restart google-guest-agent.service >/dev/null 2>&1 || :
   fi
 
   # Re-enable the guest agent service if core plugin was enabled, since the
@@ -234,6 +232,7 @@
     %if 0%{?build_plugin_manager}
       systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || :
       systemctl stop google-guest-agent-manager.service >/dev/null 2>&1 || :
+      ggactl_plugin coreplugin stop >/dev/null 2>&1 || :
       ggactl_plugin dynamic-cleanup >/dev/null 2>&1 || :
     %endif
   fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-agent-20251120.01/utils/test.go 
new/guest-agent-20251208.00/utils/test.go
--- old/guest-agent-20251120.01/utils/test.go   2025-11-20 18:49:46.000000000 
+0100
+++ new/guest-agent-20251208.00/utils/test.go   2025-12-02 00:11:32.000000000 
+0100
@@ -23,10 +23,10 @@
        "golang.org/x/crypto/ssh"
 )
 
-// MakeRandRSAPubKey generates base64 encoded 256 bit RSA public key for use 
in tests.
+// MakeRandRSAPubKey generates base64 encoded 1024 bit RSA public key for use 
in tests.
 func MakeRandRSAPubKey(t *testing.T) string {
        t.Helper()
-       prv, err := rsa.GenerateKey(rand.Reader, 256)
+       prv, err := rsa.GenerateKey(rand.Reader, 1024)
        if err != nil {
                t.Fatalf("error generating RSA key: %v", err)
        }

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/google-guest-agent/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.google-guest-agent.new.1939/vendor.tar.gz differ: 
char 15, line 1

Reply via email to