Skip to content

Commit 5deac63

Browse files
authored
chore(installer): cli indirection is no longer needed with pyinstaller 6 (aws-deadline#921)
Signed-off-by: Morgan Epp <60796713+epmog@users.noreply.github.com>
1 parent a2e8b82 commit 5deac63

File tree

8 files changed

+19
-174
lines changed

8 files changed

+19
-174
lines changed

installer/DeadlineCloudClient.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,13 +203,9 @@
203203
<compareText logic="equals" text="${installscope}" value="system"/>
204204
</conditionRuleList>
205205
<actionList>
206-
<changePermissions permissions="0755" files="${installdir}/DeadlineClient/cli/deadline_cli"/>
207-
<changePermissions permissions="0755" files="${installdir}/DeadlineClient/_internal/cli/deadline_cli"/>
208206
<changePermissions permissions="0755" files="${installdir}/DeadlineClient/deadline"/>
209207
</actionList>
210208
<elseActionList>
211-
<changePermissions permissions="0750" files="${installdir}/DeadlineClient/cli/deadline_cli"/>
212-
<changePermissions permissions="0750" files="${installdir}/DeadlineClient/_internal/cli/deadline_cli"/>
213209
<changePermissions permissions="0750" files="${installdir}/DeadlineClient/deadline"/>
214210
</elseActionList>
215211
</if>

scripts/pyinstaller/allowlist.py

Lines changed: 8 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -23,79 +23,53 @@
2323
ALLOWLIST = {
2424
"files": [
2525
"deadline",
26-
"_internal/cli/deadline_cli",
2726
"deadline.exe",
28-
"_internal/cli/deadline_cli.exe",
29-
"_internal/cli/_internal/THIRD_PARTY_LICENSES",
27+
"_internal/THIRD_PARTY_LICENSES",
3028
"_internal/Python.framework/Python",
3129
"_internal/Python",
32-
"_internal/cli/_internal/Python",
33-
"_internal/cli/_internal/Python.framework/Python",
3430
# Python
3531
"_internal/python3.dll",
36-
"_internal/cli/_internal/python3.dll",
3732
"_internal/base_library.zip",
38-
"_internal/cli/_internal/base_library.zip",
3933
# psutil
40-
"_internal/cli/_internal/pvectorc.cpython-3*-x86_64-linux-gnu.so",
41-
"_internal/cli/_internal/pvectorc.cp3*-win_amd64.pyd",
34+
"_internal/pvectorc.cpython-3*-x86_64-linux-gnu.so",
35+
"_internal/pvectorc.cp3*-win_amd64.pyd",
4236
# Visual Studio Redist
43-
"_internal/cli/_internal/VCRUNTIME140.dll",
44-
"_internal/cli/_internal/VCRUNTIME140_1.dll",
4537
"_internal/VCRUNTIME140.dll",
4638
"_internal/VCRUNTIME140_1.dll",
4739
# sqlite
4840
"_internal/sqlite3.dll",
49-
"_internal/cli/_internal/sqlite3.dll",
50-
"_internal/cli/_internal/libsqlite3.dylib",
5141
"_internal/libsqlite3.dylib",
5242
# pywin32
53-
"_internal/cli/_internal/win32/win32security.pyd",
43+
"_internal/win32/win32security.pyd",
5444
# Windows SDK
55-
"_internal/cli/_internal/ucrtbase.dll",
5645
"_internal/ucrtbase.dll",
5746
# Ncurses
5847
"_internal/libncurses.6.dylib",
59-
"_internal/cli/_internal/libncurses.6.dylib",
6048
# lzma
61-
"_internal/cli/_internal/liblzma.5.dylib",
6249
"_internal/liblzma.5.dylib",
6350
# mpdec
64-
"_internal/cli/_internal/libmpdec.4.dylib",
6551
"_internal/libmpdec.4.dylib",
6652
# openssl
6753
"_internal/libcrypto-3.dll",
6854
"_internal/libssl-3.dll",
69-
"_internal/cli/_internal/libcrypto-3.dll",
70-
"_internal/cli/_internal/libssl-3.dll",
7155
],
7256
"globs": [
7357
"_internal/api-ms-win-*.dll",
74-
"_internal/cli/_internal/api-ms-win-*.dll",
75-
"_internal/cli/_internal/libpython3.*.so.1.0",
7658
"_internal/libpython3.*.so.1.0",
7759
"_internal/libpython3.*.dylib",
78-
"_internal/cli/_internal/libpython3.*.dylib",
7960
"_internal/python3*.dll",
80-
"_internal/cli/_internal/python3*.dll",
8161
"_internal/pywin32_system32/pywintypes3*.dll",
82-
"_internal/cli/_internal/pywin32_system32/pywintypes3*.dll",
8362
"_internal/Python.framework/Versions/3.*/Resources/Info.plist",
8463
"_internal/Python.framework/Versions/3.*/Python",
85-
"_internal/cli/_internal/libsqlite3.so.*",
86-
"_internal/cli/_internal/Python.framework/Versions/3.*/Resources/Info.plist",
87-
"_internal/cli/_internal/Python.framework/Versions/3.*/Python",
64+
"_internal/libsqlite3.so.*",
8865
# openssl
89-
"_internal/cli/_internal/libssl.so.*",
90-
"_internal/cli/_internal/libcrypto.so.*",
91-
"_internal/cli/_internal/libssl-*.dll",
66+
"_internal/libssl.so.*",
67+
"_internal/libcrypto.so.*",
68+
"_internal/libssl-*.dll",
9269
"_internal/libssl.*.dylib",
9370
"_internal/libcrypto.*.dylib",
94-
"_internal/cli/_internal/libssl.*.dylib",
95-
"_internal/cli/_internal/libcrypto.*.dylib",
9671
# libffi
9772
"_internal/libffi-*.dll",
98-
"_internal/cli/_internal/libffi-*.dll",
9973
],
10074
"conditions": {
10175
"_internal/base_library.zip": {
@@ -105,25 +79,7 @@
10579
# the condition so the contents are checked.
10680
"archive_contents": {}
10781
},
108-
"_internal/cli/_internal/base_library.zip": {"archive_contents": {}},
10982
"deadline.exe": {
110-
"archive_contents": {
111-
"files": [
112-
# All of these are from pyinstaller
113-
# except for the pyz
114-
"struct",
115-
"pyimod01_archive",
116-
"pyimod02_importers",
117-
"pyimod03_ctypes",
118-
"pyimod04_pywin32",
119-
"pyiboot01_bootstrap",
120-
"PYZ.pyz",
121-
"pyi_rth_inspect",
122-
],
123-
"conditions": {"PYZ.pyz": {"archive_contents": {}}},
124-
}
125-
},
126-
"_internal/cli/deadline_cli.exe": {
12783
"archive_contents": {
12884
"files": [
12985
# All of these are from pyinstaller
@@ -153,35 +109,6 @@
153109
}
154110
},
155111
"deadline": {
156-
"archive_contents": {
157-
"files": [
158-
# All of these are from pyinstaller
159-
# except for the pyz and deadline
160-
"struct",
161-
"pyimod01_archive",
162-
"pyimod02_importers",
163-
"pyimod03_ctypes",
164-
"pyiboot01_bootstrap",
165-
"deadline",
166-
"PYZ.pyz",
167-
"pyi-contents-directory _internal",
168-
"pyi_rth_inspect",
169-
],
170-
"conditions": {
171-
"PYZ.pyz": {
172-
"archive_contents": {
173-
"files": [
174-
"_opcode_metadata",
175-
"_pydatetime",
176-
"_ios_support",
177-
"_colorize",
178-
],
179-
}
180-
}
181-
},
182-
}
183-
},
184-
"_internal/cli/deadline_cli": {
185112
"archive_contents": {
186113
"files": [
187114
# All of these are from pyinstaller

scripts/pyinstaller/deadline.py

Lines changed: 0 additions & 20 deletions
This file was deleted.

scripts/pyinstaller/deadline.spec

Lines changed: 0 additions & 46 deletions
This file was deleted.

scripts/pyinstaller/deadline_cli.spec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import deadline.client
1010
b_module_path = os.path.dirname(os.path.dirname(deadline.client.__file__))
1111

1212
ROOT = Path(b_module_path).absolute().parents[1]
13-
EXE_NAME = 'deadline_cli'
14-
OUTPUT_DIR = 'deadline_cli'
13+
EXE_NAME = 'deadline'
14+
OUTPUT_DIR = 'deadline'
1515
BLOCK_CIPHER = None
1616

1717
datas, binaries, hiddenimports = collect_all('deadline')

scripts/pyinstaller/make_exe.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,7 @@
3131

3232
# Defined in deadline_cli.spec as "name" kwarg to COLLECT
3333
DEADLINE_CLI_SPEC_PATH = PYINSTALLER_DIR / "deadline_cli.spec"
34-
DEADLINE_CLI_DIST_PATH = PYINSTALLER_DIST_DIR / "deadline_cli"
35-
36-
# Defined in deadline.spec as "name" kwarg to COLLECT
37-
DEADLINE_SPEC_PATH = PYINSTALLER_DIR / "deadline.spec"
38-
DEADLINE_DIST_PATH = PYINSTALLER_DIST_DIR / "deadline"
34+
DEADLINE_CLI_DIST_PATH = PYINSTALLER_DIST_DIR / "deadline"
3935

4036
DEFAULT_OUTPUT_ZIP = "deadline-client-exe.zip"
4137

@@ -51,20 +47,16 @@ def make_exe(exe_zipfile: Path, cleanup=True, version_file: Optional[Path] = Non
5147
# Create Deadline CLI dist
5248
pyinstaller(str(DEADLINE_CLI_SPEC_PATH))
5349

54-
# Create Deadline CLI wrapper dist
55-
os.environ["PYINSTALLER_DEADLINE_CLI_DIST_PATH"] = str(DEADLINE_CLI_DIST_PATH)
56-
pyinstaller(str(DEADLINE_SPEC_PATH))
57-
5850
# Sometimes the files output by pyinstaller have a last modified
5951
# date of the unix epoch. This causes make_archive to fail.
6052
# Touch each file in the directory we are archiving to make
6153
# sure they all have non-epoch modified dates.
62-
for dirpath, _, filenames in os.walk(DEADLINE_DIST_PATH):
54+
for dirpath, _, filenames in os.walk(DEADLINE_CLI_DIST_PATH):
6355
for filename in filenames:
6456
(Path(dirpath) / filename).touch(exist_ok=True)
6557

66-
# Zip up the Deadline CLI wrapper to the final output path
67-
shutil.make_archive(exe_zipfile.with_suffix(""), "zip", DEADLINE_DIST_PATH)
58+
# Zip up the Deadline CLI to the final output path
59+
shutil.make_archive(exe_zipfile.with_suffix(""), "zip", DEADLINE_CLI_DIST_PATH)
6860

6961
if cleanup:
7062
clean_pyinstaller_build_dirs()

scripts/pyinstaller/validate.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -239,18 +239,14 @@ def from_dict(raw: dict[str, Any]) -> "Allowlist":
239239
f"{dep}/*",
240240
f"**/{dep}.pyd",
241241
f"**/_{dep}.pyd",
242-
f"_internal/cli/_internal/{dep}-*.dist-info/**/*",
243-
f"_internal/cli/_internal/{dep}-*.dist-info/*",
244-
f"_internal/cli/_internal/{dep}/**/*",
245-
f"_internal/cli/_internal/{dep}/*",
242+
f"_internal/{dep}-*.dist-info/**/*",
243+
f"_internal/{dep}-*.dist-info/*",
244+
f"_internal/{dep}/**/*",
245+
f"_internal/{dep}/*",
246246
f"_internal/lib-dynload/{dep}.cpython-3*-x86_64-linux-gnu.so",
247-
f"_internal/cli/_internal/lib-dynload/{dep}.cpython-3*-x86_64-linux-gnu.so",
248247
f"_internal/lib-dynload/{dep}.cpython-3*-darwin.so",
249-
f"_internal/cli/_internal/lib-dynload/{dep}.cpython-3*-darwin.so",
250248
f"_internal/lib-dynload/_{dep}.cpython-3*-x86_64-linux-gnu.so",
251-
f"_internal/cli/_internal/lib-dynload/_{dep}.cpython-3*-x86_64-linux-gnu.so",
252249
f"_internal/lib-dynload/_{dep}.cpython-3*-darwin.so",
253-
f"_internal/cli/_internal/lib-dynload/_{dep}.cpython-3*-darwin.so",
254250
]
255251
)
256252

test/installer/test_installer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def _validate_files(installation_path: Path) -> None:
9898
assert cli_result.returncode == 0
9999

100100
# Just check that we have dependencies in this folder
101-
cli_dir = installation_path / "DeadlineClient" / "_internal" / "cli" / "_internal"
101+
cli_dir = installation_path / "DeadlineClient" / "_internal"
102102
cli_dir_contents = [f.name for f in (cli_dir).iterdir()]
103103
assert "deadline" in cli_dir_contents
104104
assert "xxhash" in cli_dir_contents

0 commit comments

Comments
 (0)