493 KB
/srv/reproducible-results/rbuild-debian/r-b-build.6ILpfJsB/b1/cockpit_311-1_amd64.changes vs.
/srv/reproducible-results/rbuild-debian/r-b-build.6ILpfJsB/b2/cockpit_311-1_amd64.changes
919 B
Files
    
Offset 1, 10 lines modifiedOffset 1, 10 lines modified
  
1 ·eb39dff5eefa816b4e7a39342463c119·139816·debug·optional·cockpit-bridge-dbgsym_311-1_amd64.deb1 ·eb39dff5eefa816b4e7a39342463c119·139816·debug·optional·cockpit-bridge-dbgsym_311-1_amd64.deb
2 ·1ca873f860e5729a903db399530a38d0·358052·admin·optional·cockpit-bridge_311-1_amd64.deb2 ·58be68cbeebfe3b2801686970963a37e·358300·admin·optional·cockpit-bridge_311-1_amd64.deb
3 ·d6420f2f7547b4e22925ba79ff18803d·131364·doc·optional·cockpit-doc_311-1_all.deb3 ·d6420f2f7547b4e22925ba79ff18803d·131364·doc·optional·cockpit-doc_311-1_all.deb
4 ·88b04dc126f5b100988e2bdf9812be7b·833092·admin·optional·cockpit-networkmanager_311-1_all.deb4 ·88b04dc126f5b100988e2bdf9812be7b·833092·admin·optional·cockpit-networkmanager_311-1_all.deb
5 ·270d4784b46c2aff32acab6a65b331f8·939100·admin·optional·cockpit-packagekit_311-1_all.deb5 ·270d4784b46c2aff32acab6a65b331f8·939100·admin·optional·cockpit-packagekit_311-1_all.deb
6 ·2404cac22f6d13ee8bc98b8a653fe7db·234052·debug·optional·cockpit-pcp-dbgsym_311-1_amd64.deb6 ·2404cac22f6d13ee8bc98b8a653fe7db·234052·debug·optional·cockpit-pcp-dbgsym_311-1_amd64.deb
7 ·89b873b9ffeee3532d069d884640ec67·78852·admin·optional·cockpit-pcp_311-1_amd64.deb7 ·89b873b9ffeee3532d069d884640ec67·78852·admin·optional·cockpit-pcp_311-1_amd64.deb
8 ·e3b2783c793e9b15a89ff5b04c527610·557948·admin·optional·cockpit-sosreport_311-1_all.deb8 ·e3b2783c793e9b15a89ff5b04c527610·557948·admin·optional·cockpit-sosreport_311-1_all.deb
9 ·cdf3488303d663c6fd12c06a5f2b8016·872112·admin·optional·cockpit-storaged_311-1_all.deb9 ·cdf3488303d663c6fd12c06a5f2b8016·872112·admin·optional·cockpit-storaged_311-1_all.deb
492 KB
cockpit-bridge_311-1_amd64.deb
367 B
file list
    
Offset 1, 3 lines modifiedOffset 1, 3 lines modified
1 -rw-r--r--···0········0········0········4·2024-02-15·08:39:16.000000·debian-binary1 -rw-r--r--···0········0········0········4·2024-02-15·08:39:16.000000·debian-binary
2 -rw-r--r--···0········0········0·····3888·2024-02-15·08:39:16.000000·control.tar.xz2 -rw-r--r--···0········0········0·····3888·2024-02-15·08:39:16.000000·control.tar.xz
3 -rw-r--r--···0········0········0···353972·2024-02-15·08:39:16.000000·data.tar.xz3 -rw-r--r--···0········0········0···354220·2024-02-15·08:39:16.000000·data.tar.xz
98.0 B
control.tar.xz
70.0 B
control.tar
48.0 B
./md5sums
30.0 B
./md5sums
Files differ
491 KB
data.tar.xz
491 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)·····6861·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/metrics.py60 -rw-r--r--···0·root·········(0)·root·········(0)·····6861·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/metrics.py
61 -rw-r--r--···0·root·········(0)·root·········(0)·····4053·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/packages.py61 -rw-r--r--···0·root·········(0)·root·········(0)·····4053·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/packages.py
62 -rw-r--r--···0·root·········(0)·root·········(0)·····4827·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/stream.py62 -rw-r--r--···0·root·········(0)·root·········(0)·····4827·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/stream.py
63 -rw-r--r--···0·root·········(0)·root·········(0)·····1171·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/trivial.py63 -rw-r--r--···0·root·········(0)·root·········(0)·····1171·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/channels/trivial.py
64 -rw-r--r--···0·root·········(0)·root·········(0)·····3188·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/config.py64 -rw-r--r--···0·root·········(0)·root·········(0)·····3188·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/config.py
65 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/65 drwxr-xr-x···0·root·········(0)·root·········(0)········0·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/
66 -rw-r--r--···0·root·········(0)·root·········(0)······574·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/__init__.py66 -rw-r--r--···0·root·········(0)·root·········(0)······574·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/__init__.py
67 -rw-r--r--···0·root·········(0)·root·········(0)····86152·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/cockpit-bridge.beipack.xz67 -rw-r--r--···0·root·········(0)·root·········(0)····86428·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/cockpit-bridge.beipack.xz
68 -rw-r--r--···0·root·········(0)·root·········(0)·····3212·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/fail.html68 -rw-r--r--···0·root·········(0)·root·········(0)·····3212·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/data/fail.html
69 -rw-r--r--···0·root·········(0)·root·········(0)·····5517·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/internal_endpoints.py69 -rw-r--r--···0·root·········(0)·root·········(0)·····5517·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/internal_endpoints.py
70 -rw-r--r--···0·root·········(0)·root·········(0)·····6742·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/jsonutil.py70 -rw-r--r--···0·root·········(0)·root·········(0)·····6742·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/jsonutil.py
71 -rw-r--r--···0·root·········(0)·root·········(0)····21539·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/packages.py71 -rw-r--r--···0·root·········(0)·root·········(0)····21539·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/packages.py
72 -rw-r--r--···0·root·········(0)·root·········(0)····12729·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/peer.py72 -rw-r--r--···0·root·········(0)·root·········(0)····12729·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/peer.py
73 -rw-r--r--···0·root·········(0)·root·········(0)·····7580·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/polkit.py73 -rw-r--r--···0·root·········(0)·root·········(0)·····7580·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/polkit.py
74 -rw-r--r--···0·root·········(0)·root·········(0)·····2031·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/polyfills.py74 -rw-r--r--···0·root·········(0)·root·········(0)·····2031·2024-02-15·08:39:16.000000·./usr/lib/python3/dist-packages/cockpit/polyfills.py
488 KB
./usr/lib/python3/dist-packages/cockpit/data/cockpit-bridge.beipack.xz
488 KB
cockpit-bridge.beipack
Ordering differences only
    
Offset 64, 197 lines modifiedOffset 64, 1122 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/_version.py':·br'''__version__·=·'311' 
71 ''', 
72 ··'cockpit/jsonutil.py':·r'''#·This·file·is·part·of·Cockpit.70 ··'cockpit/peer.py':·r'''#·This·file·is·part·of·Cockpit.
73 #71 #
74 #·Copyright·(C)·2023·Red·Hat,·Inc.72 #·Copyright·(C)·2022·Red·Hat,·Inc.
75 #73 #
76 #·This·program·is·free·software:·you·can·redistribute·it·and/or·modify74 #·This·program·is·free·software:·you·can·redistribute·it·and/or·modify
77 #·it·under·the·terms·of·the·GNU·General·Public·License·as·published·by75 #·it·under·the·terms·of·the·GNU·General·Public·License·as·published·by
78 #·the·Free·Software·Foundation,·either·version·3·of·the·License,·or76 #·the·Free·Software·Foundation,·either·version·3·of·the·License,·or
79 #·(at·your·option)·any·later·version.77 #·(at·your·option)·any·later·version.
80 #78 #
81 #·This·program·is·distributed·in·the·hope·that·it·will·be·useful,79 #·This·program·is·distributed·in·the·hope·that·it·will·be·useful,
82 #·but·WITHOUT·ANY·WARRANTY;·without·even·the·implied·warranty·of80 #·but·WITHOUT·ANY·WARRANTY;·without·even·the·implied·warranty·of
83 #·MERCHANTABILITY·or·FITNESS·FOR·A·PARTICULAR·PURPOSE.··See·the81 #·MERCHANTABILITY·or·FITNESS·FOR·A·PARTICULAR·PURPOSE.··See·the
84 #·GNU·General·Public·License·for·more·details.82 #·GNU·General·Public·License·for·more·details.
85 #83 #
86 #·You·should·have·received·a·copy·of·the·GNU·General·Public·License84 #·You·should·have·received·a·copy·of·the·GNU·General·Public·License
87 #·along·with·this·program.··If·not,·see·<https://www.gnu.org/licenses/>.85 #·along·with·this·program.··If·not,·see·<https://www.gnu.org/licenses/>.
  
88 from·enum·import·Enum 
89 from·typing·import·Callable,·Dict,·List,·Mapping,·Optional,·Sequence,·Type,·TypeVar,·Union86 import·asyncio
 87 import·logging
 88 import·os
 89 from·typing·import·Callable,·List,·Optional,·Sequence
  
90 JsonLiteral·=·Union[str,·float,·bool,·None]90 from·.jsonutil·import·JsonObject,·JsonValue
 91 from·.packages·import·BridgeConfig
 92 from·.protocol·import·CockpitProblem,·CockpitProtocol,·CockpitProtocolError
 93 from·.router·import·Endpoint,·Router,·RoutingRule
 94 from·.transports·import·SubprocessProtocol,·SubprocessTransport
  
 95 logger·=·logging.getLogger(__name__)
91 #·immutable 
92 JsonValue·=·Union['JsonObject',·Sequence['JsonValue'],·JsonLiteral] 
93 JsonObject·=·Mapping[str,·JsonValue] 
  
94 #·mutable 
95 JsonDocument·=·Union['JsonDict',·'JsonList',·JsonLiteral] 
96 JsonDict·=·Dict[str,·JsonDocument] 
97 JsonList·=·List[JsonDocument] 
  
 96 class·PeerError(CockpitProblem):
 97 ····pass
  
98 DT·=·TypeVar('DT') 
99 T·=·TypeVar('T') 
  
 98 class·PeerExited(Exception):
 99 ····def·__init__(self,·exit_code:·int):
 100 ········self.exit_code·=·exit_code
  
100 class·JsonError(Exception): 
101 ····value:·object 
  
102 ····def·__init__(self,·value:·object,·msg:·str): 
103 ········super().__init__(msg) 
104 ········self.value·=·value101 class·Peer(CockpitProtocol,·SubprocessProtocol,·Endpoint):
 102 ····done_callbacks:·List[Callable[[],·None]]
 103 ····init_future:·Optional[asyncio.Future]
  
 104 ····def·__init__(self,·router:·Router):
 105 ········super().__init__(router)
  
 106 ········#·All·Peers·start·out·frozen··we·only·unfreeze·after·we·see·the·first·'init'·message
 107 ········self.freeze_endpoint()
105 def·typechecked(value:·JsonValue,·expected_type:·Type[T])·->·T: 
106 ····"""Ensure·a·JSON·value·has·the·expected·type,·returning·it·if·so.""" 
107 ····if·not·isinstance(value,·expected_type): 
108 ········raise·JsonError(value,·f'must·have·type·{expected_type.__name__}') 
109 ····return·value 
  
 108 ········self.init_future·=·asyncio.get_running_loop().create_future()
 109 ········self.done_callbacks·=·[]
  
 110 ····#·Initialization
 111 ····async·def·do_connect_transport(self)·->·None:
 112 ········raise·NotImplementedError
110 #·We·can't·use·None·as·a·sentinel·because·it's·often·the·actual·default·value 
111 #·EllipsisType·is·difficult·because·it's·not·available·before·3.10. 
112 #·See·https://peps.python.org/pep-0484/#support-for-singleton-types-in-unions 
113 class·_Empty(Enum): 
114 ····TOKEN·=·0 
  
 113 ····async·def·spawn(self,·argv:·Sequence[str],·env:·Sequence[str],·**kwargs)·->·asyncio.Transport:
 114 ········#·Not·actually·async...
 115 ········loop·=·asyncio.get_running_loop()
 116 ········user_env·=·dict(e.split('=',·1)·for·e·in·env)
 117 ········return·SubprocessTransport(loop,·self,·argv,·env=dict(os.environ,·**user_env),·**kwargs)
  
115 _empty·=·_Empty.TOKEN118 ····async·def·start(self,·init_host:·Optional[str]·=·None,·**kwargs:·JsonValue)·->·JsonObject:
 119 ········"""Request·that·the·Peer·is·started·and·connected·to·the·router.
  
 120 ········Creates·the·transport,·connects·it·to·the·protocol,·and·participates·in
 121 ········exchanging·of·init·messages.··If·anything·goes·wrong,·the·connection
 122 ········will·be·closed·and·an·exception·will·be·raised.
  
 123 ········The·Peer·starts·out·in·a·frozen·state·(ie:·attempts·to·send·messages·to
 124 ········it·will·initially·be·queued).·If·init_host·is·not·None·then·an·init
 125 ········message·is·sent·with·the·given·'host'·field,·plus·any·extra·kwargs,·and
 126 ········the·queue·is·thawed.·Otherwise,·the·caller·is·responsible·for·sending
 127 ········the·init·message·and·thawing·the·peer.
116 def·_get(obj:·JsonObject,·cast:·Callable[[JsonValue],·T],·key:·str,·default:·Union[DT,·_Empty])·->·Union[T,·DT]: 
117 ····try: 
118 ········return·cast(obj[key]) 
119 ····except·KeyError: 
120 ········if·default·is·not·_empty: 
121 ············return·default 
122 ········raise·JsonError(obj,·f"attribute·'{key}'·required")·from·None 
123 ····except·JsonError·as·exc: 
124 ········target·=·f"attribute·'{key}'"·+·('·elements:'·if·exc.value·is·not·obj[key]·else·':') 
125 ········raise·JsonError(obj,·f"{target}·{exc!s}")·from·exc 
  
 128 ········In·any·case,·the·return·value·is·the·init·message·from·the·peer.
 129 ········"""
 130 ········assert·self.init_future·is·not·None
  
126 def·get_bool(obj:·JsonObject,·key:·str,·default:·Union[DT,·_Empty]·=·_empty)·->·Union[DT,·bool]: 
127 ····return·_get(obj,·lambda·v:·typechecked(v,·bool),·key,·default)131 ········def·_connect_task_done(task:·asyncio.Task)·->·None:
 132 ············assert·task·is·connect_task
 133 ············try:
Max diff block lines reached; 493572/499310 bytes (98.85%) of diff not shown.
1000 B
./usr/lib/python3/dist-packages/cockpit-311.dist-info/direct_url.json
865 B
Pretty-printed
Similarity: 0.90625% Differences: {"'archive_info'": "{'hash': " "'sha256=c35b82ebcc20267f3cb333d859e7587ca7783679982ec79d6d226a4252fe3c67', " "'hashes': {'sha256': " "'c35b82ebcc20267f3cb333d859e7587ca7783679982ec79d6d226a4252fe3c67'}}"}
    
Offset 1, 9 lines modifiedOffset 1, 9 lines modified
1 {1 {
2 ····"archive_info":·{2 ····"archive_info":·{
3 ········"hash":·"sha256=6d482ccd7802b9e6c087a16fd3de1aeb271b5d487fd701501af04e539a2122f3",3 ········"hash":·"sha256=c35b82ebcc20267f3cb333d859e7587ca7783679982ec79d6d226a4252fe3c67",
4 ········"hashes":·{4 ········"hashes":·{
5 ············"sha256":·"6d482ccd7802b9e6c087a16fd3de1aeb271b5d487fd701501af04e539a2122f3"5 ············"sha256":·"c35b82ebcc20267f3cb333d859e7587ca7783679982ec79d6d226a4252fe3c67"
6 ········}6 ········}
7 ····},7 ····},
8 ····"url":·"file:///build/reproducible-path/cockpit-311/tmp/wheel/cockpit-311-py3-none-any.whl"8 ····"url":·"file:///build/reproducible-path/cockpit-311/tmp/wheel/cockpit-311-py3-none-any.whl"
9 }9 }