524 KB
/srv/reproducible-results/rbuild-debian/r-b-build.EaMj1ibr/b1/cockpit_316-1_i386.changes vs.
/srv/reproducible-results/rbuild-debian/r-b-build.EaMj1ibr/b2/cockpit_316-1_i386.changes
914 B
Files
    
Offset 1, 10 lines modifiedOffset 1, 10 lines modified
  
1 ·dbb557ea81f07b9bfecbe15596346a8c·122480·debug·optional·cockpit-bridge-dbgsym_316-1_i386.deb1 ·dbb557ea81f07b9bfecbe15596346a8c·122480·debug·optional·cockpit-bridge-dbgsym_316-1_i386.deb
2 ·48e77f8f13cb7a7b3ada77ac60b8c1b1·363672·admin·optional·cockpit-bridge_316-1_i386.deb2 ·2ec09f8b557ce31aed2d819d304fcd7f·362636·admin·optional·cockpit-bridge_316-1_i386.deb
3 ·b244333d93e755b8795d5de9bfd74a75·131516·doc·optional·cockpit-doc_316-1_all.deb3 ·b244333d93e755b8795d5de9bfd74a75·131516·doc·optional·cockpit-doc_316-1_all.deb
4 ·5f5f51363cccd25ac69165e1bfe089be·829340·admin·optional·cockpit-networkmanager_316-1_all.deb4 ·5f5f51363cccd25ac69165e1bfe089be·829340·admin·optional·cockpit-networkmanager_316-1_all.deb
5 ·b259a5a3925e9a8e04317b97aff99eea·941992·admin·optional·cockpit-packagekit_316-1_all.deb5 ·b259a5a3925e9a8e04317b97aff99eea·941992·admin·optional·cockpit-packagekit_316-1_all.deb
6 ·4253022206c0b874f0c4653384d6fc0c·197736·debug·optional·cockpit-pcp-dbgsym_316-1_i386.deb6 ·4253022206c0b874f0c4653384d6fc0c·197736·debug·optional·cockpit-pcp-dbgsym_316-1_i386.deb
7 ·57350f2af699c3a2ef4cb051eefa067f·86552·admin·optional·cockpit-pcp_316-1_i386.deb7 ·57350f2af699c3a2ef4cb051eefa067f·86552·admin·optional·cockpit-pcp_316-1_i386.deb
8 ·ca337edae770f17961c72b2ed6a3a2e1·558888·admin·optional·cockpit-sosreport_316-1_all.deb8 ·ca337edae770f17961c72b2ed6a3a2e1·558888·admin·optional·cockpit-sosreport_316-1_all.deb
9 ·510e4876abdbe0222c7a9eaf8eed0969·879356·admin·optional·cockpit-storaged_316-1_all.deb9 ·510e4876abdbe0222c7a9eaf8eed0969·879356·admin·optional·cockpit-storaged_316-1_all.deb
523 KB
cockpit-bridge_316-1_i386.deb
367 B
file list
    
Offset 1, 3 lines modifiedOffset 1, 3 lines modified
1 -rw-r--r--···0········0········0········4·2024-04-26·05:46:21.000000·debian-binary1 -rw-r--r--···0········0········0········4·2024-04-26·05:46:21.000000·debian-binary
2 -rw-r--r--···0········0········0·····3884·2024-04-26·05:46:21.000000·control.tar.xz2 -rw-r--r--···0········0········0·····3884·2024-04-26·05:46:21.000000·control.tar.xz
3 -rw-r--r--···0········0········0···359596·2024-04-26·05:46:21.000000·data.tar.xz3 -rw-r--r--···0········0········0···358560·2024-04-26·05:46:21.000000·data.tar.xz
681 B
control.tar.xz
653 B
control.tar
583 B
./control
    
Offset 1, 13 lines modifiedOffset 1, 13 lines modified
1 Package:·cockpit-bridge1 Package:·cockpit-bridge
2 Source:·cockpit2 Source:·cockpit
3 Version:·316-13 Version:·316-1
4 Architecture:·i3864 Architecture:·i386
5 Maintainer:·Utopia·Maintenance·Team·<pkg-utopia-maintainers@lists.alioth.debian.org>5 Maintainer:·Utopia·Maintenance·Team·<pkg-utopia-maintainers@lists.alioth.debian.org>
6 Installed-Size:·8686 Installed-Size:·867
7 Depends:·libc6·(>=·2.34),·libglib2.0-0t64·(>=·2.68.0),·libjson-glib-1.0-0·(>=·1.5.2),·libssh-4·(>=·0.10.4),·libsystemd0·(>=·235),·python3:any,·glib-networking7 Depends:·libc6·(>=·2.34),·libglib2.0-0t64·(>=·2.68.0),·libjson-glib-1.0-0·(>=·1.5.2),·libssh-4·(>=·0.10.4),·libsystemd0·(>=·235),·python3:any,·glib-networking
8 Recommends:·openssh-client8 Recommends:·openssh-client
9 Breaks:·cockpit-ws·(<<·181.x)9 Breaks:·cockpit-ws·(<<·181.x)
10 Replaces:·cockpit-dashboard·(<<·170.x),·cockpit-ws·(<<·181.x)10 Replaces:·cockpit-dashboard·(<<·170.x),·cockpit-ws·(<<·181.x)
11 Provides:·cockpit-ssh11 Provides:·cockpit-ssh
12 Section:·admin12 Section:·admin
13 Priority:·optional13 Priority:·optional
48.0 B
./md5sums
30.0 B
./md5sums
Files differ
522 KB
data.tar.xz
522 KB
data.tar
2.27 KB
file list
    
Offset 60, 15 lines modifiedOffset 60, 15 lines modified
60 -rw-r--r--···0·root·········(0)·root·········(0)·····6653·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/metrics.py60 -rw-r--r--···0·root·········(0)·root·········(0)·····6653·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/metrics.py
61 -rw-r--r--···0·root·········(0)·root·········(0)·····4058·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/packages.py61 -rw-r--r--···0·root·········(0)·root·········(0)·····4058·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/packages.py
62 -rw-r--r--···0·root·········(0)·root·········(0)·····4872·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/stream.py62 -rw-r--r--···0·root·········(0)·root·········(0)·····4872·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/stream.py
63 -rw-r--r--···0·root·········(0)·root·········(0)·····1171·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/trivial.py63 -rw-r--r--···0·root·········(0)·root·········(0)·····1171·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/channels/trivial.py
64 -rw-r--r--···0·root·········(0)·root·········(0)·····3188·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/config.py64 -rw-r--r--···0·root·········(0)·root·········(0)·····3188·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/config.py
65 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/65 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/
66 -rw-r--r--···0·root·········(0)·root·········(0)······574·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/__init__.py66 -rw-r--r--···0·root·········(0)·root·········(0)······574·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/__init__.py
67 -rw-r--r--···0·root·········(0)·root·········(0)····87288·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/cockpit-bridge.beipack.xz67 -rw-r--r--···0·root·········(0)·root·········(0)····86268·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/cockpit-bridge.beipack.xz
68 -rw-r--r--···0·root·········(0)·root·········(0)·····3212·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/fail.html68 -rw-r--r--···0·root·········(0)·root·········(0)·····3212·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/data/fail.html
69 -rw-r--r--···0·root·········(0)·root·········(0)·····5517·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/internal_endpoints.py69 -rw-r--r--···0·root·········(0)·root·········(0)·····5517·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/internal_endpoints.py
70 -rw-r--r--···0·root·········(0)·root·········(0)·····7242·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/jsonutil.py70 -rw-r--r--···0·root·········(0)·root·········(0)·····7242·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/jsonutil.py
71 -rw-r--r--···0·root·········(0)·root·········(0)····21539·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/packages.py71 -rw-r--r--···0·root·········(0)·root·········(0)····21539·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/packages.py
72 -rw-r--r--···0·root·········(0)·root·········(0)····12729·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/peer.py72 -rw-r--r--···0·root·········(0)·root·········(0)····12729·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/peer.py
73 -rw-r--r--···0·root·········(0)·root·········(0)·····7580·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/polkit.py73 -rw-r--r--···0·root·········(0)·root·········(0)·····7580·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/polkit.py
74 -rw-r--r--···0·root·········(0)·root·········(0)·····2031·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/polyfills.py74 -rw-r--r--···0·root·········(0)·root·········(0)·····2031·2024-04-26·05:46:21.000000·./usr/lib/python3/dist-packages/cockpit/polyfills.py
519 KB
./usr/lib/python3/dist-packages/cockpit/data/cockpit-bridge.beipack.xz
519 KB
cockpit-bridge.beipack
Ordering differences only
    
Offset 64, 187 lines modifiedOffset 64, 15 lines modified
64 ······)·->·Optional[importlib.machinery.ModuleSpec]:64 ······)·->·Optional[importlib.machinery.ModuleSpec]:
65 ········if·fullname·not·in·self.modules:65 ········if·fullname·not·in·self.modules:
66 ············return·None66 ············return·None
67 ········return·importlib.util.spec_from_loader(fullname,·self)67 ········return·importlib.util.spec_from_loader(fullname,·self)
  
68 import·sys68 import·sys
69 sys.meta_path.insert(0,·BeipackLoader({69 sys.meta_path.insert(0,·BeipackLoader({
70 ··'cockpit/polkit.py':·r'''#·This·file·is·part·of·Cockpit.70 ··'cockpit/peer.py':·r'''#·This·file·is·part·of·Cockpit.
71 # 
72 #·Copyright·(C)·2023·Red·Hat,·Inc. 
73 # 
74 #·This·program·is·free·software:·you·can·redistribute·it·and/or·modify 
75 #·it·under·the·terms·of·the·GNU·General·Public·License·as·published·by 
76 #·the·Free·Software·Foundation,·either·version·3·of·the·License,·or 
77 #·(at·your·option)·any·later·version. 
78 # 
79 #·This·program·is·distributed·in·the·hope·that·it·will·be·useful, 
80 #·but·WITHOUT·ANY·WARRANTY;·without·even·the·implied·warranty·of 
81 #·MERCHANTABILITY·or·FITNESS·FOR·A·PARTICULAR·PURPOSE.··See·the 
82 #·GNU·General·Public·License·for·more·details. 
83 # 
84 #·You·should·have·received·a·copy·of·the·GNU·General·Public·License 
85 #·along·with·this·program.··If·not,·see·<https://www.gnu.org/licenses/>. 
  
86 import·asyncio 
87 import·locale 
88 import·logging 
89 import·os 
90 import·pwd 
91 from·typing·import·Dict,·List,·Sequence,·Tuple 
  
92 from·cockpit._vendor.ferny·import·AskpassHandler 
93 from·cockpit._vendor.systemd_ctypes·import·Variant,·bus 
  
94 #·that·path·is·valid·on·at·least·Debian,·Fedora/RHEL,·and·Arch 
95 HELPER_PATH·=·'/usr/lib/polkit-1/polkit-agent-helper-1' 
  
96 AGENT_DBUS_PATH·=·'/PolkitAgent' 
  
97 logger·=·logging.getLogger(__name__) 
  
98 Identity·=·Tuple[str,·Dict[str,·Variant]] 
  
  
99 #·https://www.freedesktop.org/software/polkit/docs/latest/eggdbus-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.html 
  
100 #·Note·that·we·don't·implement·the·CancelAuthentication()·API.·pkexec·gets·called·in·a·way·that·has·no·opportunity·to 
101 #·cancel·an·ongoing·authentication·from·the·pkexec·side.·On·the·UI·side·cancellation·is·implemented·via·the·standard 
102 #·asyncio·process·mechanism.·If·we·ever·need·CancelAuthentication(),·we·could·keep·a·cookie··get_current_task() 
103 #·mapping,·but·that·method·is·not·available·for·Python·3.6·yet. 
  
104 class·org_freedesktop_PolicyKit1_AuthenticationAgent(bus.Object): 
105 ····def·__init__(self,·responder:·AskpassHandler): 
106 ········super().__init__() 
107 ········self.responder·=·responder 
  
108 ····#·confusingly·named:·this·actually·does·the·whole·authentication·dialog,·see·docs 
109 ····@bus.Interface.Method('',·['s',·'s',·'s',·'a{ss}',·'s',·'a(sa{sv})']) 
110 ····async·def·begin_authentication(self,·action_id:·str,·message:·str,·icon_name:·str, 
111 ···································details:·Dict[str,·str],·cookie:·str,·identities:·Sequence[Identity])·->·None: 
112 ········logger.debug('BeginAuthentication:·action·%s,·message·"%s",·icon·%s,·details·%s,·cookie·%s,·identities·%r', 
113 ·····················action_id,·message,·icon_name,·details,·cookie,·identities) 
114 ········#·only·support·authentication·as·ourselves,·as·we·don't·yet·have·the 
115 ········#·protocol·plumbing·and·UI·to·select·an·admin·user 
116 ········my_uid·=·os.geteuid() 
117 ········for·(auth_type,·subject)·in·identities: 
118 ············if·auth_type·==·'unix-user'·and·'uid'·in·subject·and·subject['uid'].value·==·my_uid: 
119 ················logger.debug('Authentication·subject·%s·matches·our·uid·%d',·subject,·my_uid) 
120 ················break 
121 ········else: 
122 ············logger.warning('Not·supporting·authentication·as·any·of·%s',·identities) 
123 ············return 
  
124 ········user_name·=·pwd.getpwuid(my_uid).pw_name 
125 ········process·=·await·asyncio.create_subprocess_exec(HELPER_PATH,·user_name,·cookie, 
126 ·······················································stdin=asyncio.subprocess.PIPE, 
127 ·······················································stdout=asyncio.subprocess.PIPE) 
128 ········try: 
129 ············await·self._communicate(process) 
130 ········except·asyncio.CancelledError: 
131 ············logger.debug('Cancelled·authentication') 
132 ············process.terminate() 
133 ········finally: 
134 ············res·=·await·process.wait() 
135 ············logger.debug('helper·exited·with·code·%i',·res) 
  
136 ····async·def·_communicate(self,·process:·asyncio.subprocess.Process)·->·None: 
137 ········assert·process.stdin 
138 ········assert·process.stdout 
  
139 ········messages:·List[str]·=·[] 
  
140 ········async·for·line·in·process.stdout: 
141 ············logger.debug('Read·line·from·helper:·%s',·line) 
142 ············command,·_,·value·=·line.strip().decode().partition('·') 
  
143 ············#·usually:·PAM_PROMPT_ECHO_OFF·Password:·\n 
144 ············if·command.startswith('PAM_PROMPT'): 
145 ················#·Don't·pass·this·to·the·UI·if·it's·"Password"·(the·usual·case), 
146 ················#·so·that·superuser.py·uses·the·translated·default 
147 ················if·value.startswith('Password'): 
148 ····················value·=·'' 
  
149 ················#·flush·out·accumulated·info/error·messages 
150 ················passwd·=·await·self.responder.do_askpass('\n'.join(messages),·value,·'') 
151 ················messages.clear() 
152 ················if·passwd·is·None: 
153 ····················logger.debug('got·PAM_PROMPT·%s,·but·do_askpass·returned·None',·value) 
154 ····················raise·asyncio.CancelledError('no·password·given') 
155 ················logger.debug('got·PAM_PROMPT·%s,·do_askpass·returned·a·password',·value) 
156 ················process.stdin.write(passwd.encode()) 
157 ················process.stdin.write(b'\n') 
158 ················del·passwd··#·don't·keep·this·around·longer·than·necessary 
159 ················await·process.stdin.drain() 
160 ················logger.debug('got·PAM_PROMPT,·wrote·password·to·helper') 
161 ············elif·command·in·('PAM_TEXT_INFO',·'PAM_ERROR'): 
162 ················messages.append(value) 
163 ············elif·command·==·'SUCCESS': 
164 ················logger.debug('Authentication·succeeded') 
165 ················break 
166 ············elif·command·==·'FAILURE': 
167 ················logger.warning('Authentication·failed') 
168 ················break 
169 ············else: 
170 ················logger.warning('Unknown·line·from·helper,·aborting:·%s',·line) 
171 ················process.terminate() 
172 ················break 
Max diff block lines reached; 522772/530957 bytes (98.46%) of diff not shown.
1000 B
./usr/lib/python3/dist-packages/cockpit-316.dist-info/direct_url.json
865 B
Pretty-printed
Similarity: 0.90625% Differences: {"'archive_info'": "{'hash': " "'sha256=416867dd53d3dff2b9af8d58d826eed5855337a35d66d066a1de0d77e1ddf0be', " "'hashes': {'sha256': " "'416867dd53d3dff2b9af8d58d826eed5855337a35d66d066a1de0d77e1ddf0be'}}"}
    
Offset 1, 9 lines modifiedOffset 1, 9 lines modified
1 {1 {
2 ····"archive_info":·{2 ····"archive_info":·{
3 ········"hash":·"sha256=706bc9380469d2e46f129c3b736dca3756b510a0a49955f18a056ed57051da84",3 ········"hash":·"sha256=416867dd53d3dff2b9af8d58d826eed5855337a35d66d066a1de0d77e1ddf0be",
4 ········"hashes":·{4 ········"hashes":·{
5 ············"sha256":·"706bc9380469d2e46f129c3b736dca3756b510a0a49955f18a056ed57051da84"5 ············"sha256":·"416867dd53d3dff2b9af8d58d826eed5855337a35d66d066a1de0d77e1ddf0be"
6 ········}6 ········}
7 ····},7 ····},
8 ····"url":·"file:///build/reproducible-path/cockpit-316/tmp/wheel/cockpit-316-py3-none-any.whl"8 ····"url":·"file:///build/reproducible-path/cockpit-316/tmp/wheel/cockpit-316-py3-none-any.whl"
9 }9 }