Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main into unittests #208

Open
wants to merge 295 commits into
base: unittests
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
295 commits
Select commit Hold shift + click to select a range
a652f4e
Create tui_curses.MenuDialog
thw26 Jul 16, 2024
eec6dc0
Clean up dialog importing
thw26 Jul 16, 2024
71603dd
Clarify name
n8marti Jul 23, 2024
af21348
Install ICU data files. Fix #22.
thw26 Jun 29, 2024
5b2dd1e
fix variable name
n8marti Jul 2, 2024
dd32f8a
set drive_c location relative to INSTALLDIR
n8marti Jul 2, 2024
215341e
pass app to ICU installer to handle progress tracking
n8marti Jul 2, 2024
0f73e57
Update wine.py
jg00dman Jul 3, 2024
9d92e7d
Add copytree
thw26 Jul 3, 2024
dcec6c7
Fix import typo and missing directory
Freilichtbuehne Jul 6, 2024
fbff0b3
better handling of changed dropdown options
n8marti Jul 6, 2024
362bfe4
fix bad winetricksbin value in GUI
n8marti Jul 6, 2024
0fb8f41
Add optargs --install-(d3d-compiler|fonts|icu)
thw26 Jul 7, 2024
3ccaf83
send correct TODO task to GUI
n8marti Jul 16, 2024
ff11855
kill logging state thread if app closes
n8marti Jul 16, 2024
5780993
get logos ver from "libraries" in Logos.deps.json
n8marti Jul 16, 2024
2f1bacf
Update Version and Changelog
thw26 Jun 29, 2024
bbdfb0b
Fix install errors
thw26 Jul 17, 2024
de9d4cd
initial icu gui components
n8marti Jul 18, 2024
36e42d8
fix depedency check for dpkg
n8marti Jul 23, 2024
1272748
remove errant "exit()"
n8marti Jul 23, 2024
e6b1ab7
Install ICU data files. Fix #22.
thw26 Jun 29, 2024
956e475
Add copytree
thw26 Jul 3, 2024
67ef9fe
Fix import typo and missing directory
Freilichtbuehne Jul 6, 2024
793e167
initial icu gui components
n8marti Jul 18, 2024
94fd048
fix depedency check for dpkg
n8marti Jul 23, 2024
1b31e3b
simplify debian and ubuntu required packages list
n8marti Jul 22, 2024
2a5c063
pep8 cleanup
n8marti Jul 22, 2024
5cedb24
look for pkexec first, even in TUI
n8marti Jul 22, 2024
ecf3645
remove errant "exit()"
n8marti Jul 23, 2024
60dc5fd
Fix #135
thw26 Jul 23, 2024
58fe814
handle non-zero status for registry lookup
n8marti Jul 23, 2024
ed0b014
Revert "Fix #135"
n8marti Jul 23, 2024
33c50d2
fix logging recursion error
n8marti Jul 23, 2024
097804e
Clean up terminal
thw26 Jul 23, 2024
876f020
ensure "Run action" button is activated when install ICU radio clicked
n8marti Jul 24, 2024
c2ec13b
remove duplicated config vars
n8marti Jul 24, 2024
5bed8f4
remove error logging when dialog pkg not found
n8marti Jul 25, 2024
01fc1ad
fix "Run action" button handling
n8marti Jul 25, 2024
3ce4782
fix status message events
n8marti Jul 25, 2024
796eb78
add ICU files test before installing
n8marti Jul 25, 2024
5555c9c
re-raise caught exceptions
n8marti Jul 25, 2024
fcac6d7
use try/except for importing dialog
n8marti Jul 25, 2024
3fd30f7
pep8 fixes
n8marti Jul 25, 2024
e4abfcb
Fix TUI not exiting after Logos runs
thw26 Jul 27, 2024
e213630
Detect when Logos is running
thw26 Jul 27, 2024
1abaead
Partial fix for TUI logging and config
thw26 Jul 30, 2024
bf8f278
Swap runmode check, add debugging
thw26 Jul 30, 2024
45597b9
Fix TUI config writing and launcher creation.
thw26 Jul 30, 2024
429f876
Fix #140. Fix vertical redraw.
thw26 Jul 30, 2024
72586ae
add error output to failed shell command
n8marti Jul 30, 2024
3cf72af
Update Version and Changelog
thw26 Jun 29, 2024
4110a2f
add missing status message to GUI status_q
n8marti Aug 1, 2024
4df9706
correctly default to recommended binary
n8marti Aug 1, 2024
3551d91
Add log rotation. Fix #132.
thw26 Aug 2, 2024
b472f4f
remove JSON debug code
n8marti Aug 2, 2024
fb222b3
Continued work on fixing deps install
n8marti Aug 1, 2024
a41b2e5
Add TUI pw dialogs.
thw26 Aug 2, 2024
4a543eb
update build requirements
n8marti Aug 7, 2024
cfdb2be
Add config.superuser_stdnin_command
thw26 Aug 7, 2024
98d6c88
log error code and reason if password fails
n8marti Aug 7, 2024
ea6e020
Update requirements; fix var
thw26 Aug 8, 2024
6a595de
Continued work fixing deps install
n8marti Aug 8, 2024
3eb18b2
Remove tui_app.report_dependencies
thw26 Aug 8, 2024
9a5fa78
Continued work fixing deps install
n8marti Aug 9, 2024
71ea280
Reduce to a single command
thw26 Aug 9, 2024
125d783
Continued work fixing deps install
n8marti Aug 10, 2024
8fc670d
Modify conflicting pkg add
thw26 Aug 12, 2024
4d17504
Continued work fixing deps install
n8marti Aug 13, 2024
1af1592
Continued work on deps install
thw26 Aug 21, 2024
7967170
cleanup msg.logos_error
n8marti Aug 23, 2024
fd807de
Update Logos release
thw26 Aug 23, 2024
317b6d7
update README and dev scripts with full build deps
n8marti Aug 25, 2024
11578a6
fix confirmation response
n8marti Aug 25, 2024
27767a6
fix LD_LIBRARY_PATH
n8marti Aug 25, 2024
399c053
update and streamline README
n8marti Aug 25, 2024
39b6813
use sys deps wiki link in README.md
n8marti Aug 27, 2024
8e09f0a
remove unused config.GUI variable
n8marti Aug 23, 2024
e4e071a
pep8 fixes
n8marti Aug 24, 2024
f6db2b5
pass args and kwargs to thread workers
n8marti Aug 24, 2024
6451b3c
Fix #123
thw26 Aug 27, 2024
4c466e1
Make config.WINE_EXE dynamic
thw26 Aug 27, 2024
1dbe936
Code clean up
thw26 Aug 29, 2024
9794b69
remove extra GUI event generation
n8marti Sep 6, 2024
b1a8f93
Attempt to resolve faulty config setting
thw26 Sep 7, 2024
21a4957
fix winetricks commands not working correctly
n8marti Sep 17, 2024
f02e013
fix release version not being honored
n8marti Sep 17, 2024
c0d8af7
Correct ensure-venv command
jimbob88 Sep 22, 2024
ef58bdb
Add Dockerfile for building with Python 3.12
jimbob88 Sep 22, 2024
6847c98
Add README explanation of building with docker
jimbob88 Sep 22, 2024
86a2733
Explain where docker binary will be output
jimbob88 Oct 1, 2024
db5b27f
Partial fix for #143
thw26 Aug 30, 2024
1e99647
Switch tui_app.choice_processor to dict
thw26 Aug 30, 2024
d8e3044
Add TUI color theme switch
thw26 Aug 30, 2024
b216599
Fix TUI vertical resizing
thw26 Aug 30, 2024
4a80ee5
Fix TUI horizontal resizing
thw26 Sep 19, 2024
99d4179
Add submenus to tui_app.main_menu
thw26 Aug 30, 2024
fde05e6
Add config mechanism to fix #157
thw26 Aug 31, 2024
f170337
Allow changing Logos release channel in TUI
thw26 Sep 13, 2024
5398554
Add config mechanism to fix #84
thw26 Sep 30, 2024
278f281
Allow changing LLI release channel in TUI
thw26 Sep 30, 2024
e57e38a
Add logging deduplication; also for TUI console_log
thw26 Sep 19, 2024
529d27e
Add Winetricks Options for TUI
thw26 Sep 13, 2024
626f6c0
Add some additional logging; fix menu issues
thw26 Sep 19, 2024
318b3b0
Fix installer issue
thw26 Sep 30, 2024
e5af38c
fix args sent to start_thread
n8marti Oct 1, 2024
227b002
Fix TUI window and screen issues
thw26 Oct 1, 2024
d610603
fix func name and args
n8marti Oct 2, 2024
b04b02c
use full wine exe path when running wine proc
n8marti Oct 2, 2024
bc048b6
add logging_event to gui_app
n8marti Oct 2, 2024
883b021
clean up app logging in GUI
n8marti Oct 2, 2024
21cd6d5
update GUI threads to use utils.start_thread
n8marti Oct 2, 2024
000a939
use variable to define GUI installer widget insertion rows
n8marti Oct 2, 2024
0526030
pep8 fix
n8marti Oct 2, 2024
27b563c
Fill out system.run_command() defaults
thw26 Aug 31, 2024
1e33be6
Add system.popen_command()
thw26 Aug 31, 2024
df7505b
Add Logos state manager
thw26 Sep 2, 2024
6f084de
Fix #153
thw26 Sep 22, 2024
e2f6ff9
Fix numerous issues while fixing #142
thw26 Sep 22, 2024
27205f2
Begin adding process groups.
thw26 Sep 30, 2024
2a30ddb
Fix issues following rebase on #163
thw26 Oct 3, 2024
234e5e1
fix widget.state method names
n8marti Oct 3, 2024
9f0286a
update installer status messaging
n8marti Oct 3, 2024
0028347
fix disabling of winemenubuilder
n8marti Oct 3, 2024
beafadd
remove comment about failing winemenubuilder step
n8marti Oct 3, 2024
f107acb
fix Run Logos by sending unique status event to ControlPanel
n8marti Oct 3, 2024
de6b1c7
use utils.start_thread function in gui_app
n8marti Oct 3, 2024
aad8338
use utils.start_thread function in various modules
n8marti Oct 3, 2024
978da45
pep8 cleanup
n8marti Oct 3, 2024
c010390
don't sent status msg to GUI when Logos runs
n8marti Oct 3, 2024
f64ff35
remove logging for LLI version comparison; add TODO item
n8marti Oct 4, 2024
2070982
fix bad arg name
n8marti Oct 4, 2024
9c3f5ff
further reduction of logging for LLI version comparison
n8marti Oct 4, 2024
2296b7b
fix: ensure app is set before attempting to operate on it
ctrlaltf24 Oct 6, 2024
113eed9
Fix #128.
thw26 Aug 28, 2024
d1b804f
add FIXME
n8marti Oct 5, 2024
68d2271
fix typo blocking selection of wine binary
n8marti Oct 5, 2024
23b347f
add "choose default with Enter" feature
n8marti Oct 5, 2024
8c79e29
fix crazy slow MD5 sum calculation
n8marti Oct 5, 2024
82d75e5
use separate events for input_q and choice_q
n8marti Oct 5, 2024
f00f711
initial work for --run-installed-app
n8marti Oct 5, 2024
b5e93b4
additional TODOs, etc.
n8marti Oct 5, 2024
d1dab09
minor CLI fixes
n8marti Oct 5, 2024
22cbaca
fix incorrect setting of config.DIALOG as 'cli' when using other DIALOGs
n8marti Oct 5, 2024
29eed57
add TODO
n8marti Oct 7, 2024
bd7e048
use single func wine.wineserver_wait; log if procs still using WINEPR…
n8marti Oct 7, 2024
21bd78e
only kill wine procs in close func if exiting from Control Panel
n8marti Oct 7, 2024
bbfa927
fix --set-appimage CLI subcommand
n8marti Oct 7, 2024
f402936
update list of subcommands that assume Logos is already installed
n8marti Oct 7, 2024
31e2934
convert all actions to cli app methods
n8marti Oct 7, 2024
cdc6c27
add TODO
n8marti Oct 7, 2024
a9a00aa
add TODO
n8marti Oct 7, 2024
3d5c64e
Utilize rules-based function
thw26 Aug 31, 2024
3839c9c
add debug logging; rearrage to log result
n8marti Sep 20, 2024
91dfadb
Fix var check
thw26 Sep 21, 2024
a0e01c2
Fix #127
thw26 Aug 27, 2024
e86b5fe
Fix #181
thw26 Sep 28, 2024
6df9e23
Modularize main()
thw26 Sep 28, 2024
3598227
Fix TODO
thw26 Oct 7, 2024
3c409e5
Fix #16
thw26 Sep 28, 2024
5012da2
Fix #188
thw26 Oct 7, 2024
ca4490b
fix setting of config.WINE_EXE in GUI
n8marti Oct 8, 2024
6ada542
Add calls to set_logos_paths
thw26 Oct 8, 2024
22dfdbf
Create tui_curses.write_line()
thw26 Oct 8, 2024
5c1345f
Fix setting config.DIALOG=cli
thw26 Oct 8, 2024
af90dfc
only wait on non-daemon threads in close func
n8marti Oct 8, 2024
907ddb7
rework main.run to set config.DIALOG and logos_paths before UIs are s…
n8marti Oct 8, 2024
1b40c3c
add explanatory comment in close func
n8marti Oct 8, 2024
4b5c3fb
fix too-many params issue
n8marti Oct 8, 2024
07844af
fix wait for indexing process to start
n8marti Oct 9, 2024
883fb49
fix backup and restore functions
n8marti Oct 9, 2024
da78a44
ignore all terminal output in TUI
n8marti Oct 9, 2024
360bba5
add timestamp function; add timestamp to wine.log entries
n8marti Oct 9, 2024
68e082e
update logos.LogosManager.monitor_logs to account for all States
n8marti Oct 9, 2024
f289f04
add warning window for UIs
n8marti Oct 9, 2024
421aea3
fix backup and restore for GUI
n8marti Oct 9, 2024
b395d1f
use standalone function for create_launcher_shortcuts
n8marti Oct 10, 2024
1936d35
add functions for ensure_config_file
n8marti Oct 10, 2024
b75b9bd
standardize use of wine.wait_pid(process) over process.wait()
n8marti Oct 10, 2024
1e58af4
add function wine.disable_winemenubuilder
n8marti Oct 10, 2024
aeab8e7
add symlink to appimage winetricks
n8marti Oct 10, 2024
140baf4
add --winetricks subcommand
n8marti Oct 10, 2024
1c4bd57
add function create_wine_appimage_symlinks
n8marti Oct 10, 2024
2503662
remove 'if app:' checks; rely on config.DIALOG instead
n8marti Oct 10, 2024
5186e01
remove fixed TODO
n8marti Oct 10, 2024
f225a48
use wine.check_wine_rules in LogosManager.start()
n8marti Oct 11, 2024
9772c28
move get_timestamp to config module
n8marti Oct 11, 2024
4e092ae
cleanup some TODOs
n8marti Oct 11, 2024
bc761cf
only run compare_logos_linux_installer_version once to set config var
n8marti Oct 11, 2024
814b463
clear one more TODO
n8marti Oct 11, 2024
604c5e7
Fix TUI Backup and Restore
thw26 Oct 14, 2024
22dcfde
Add DEV counter
thw26 Oct 14, 2024
e6e4aa9
hide backup/restore functionality in GUI
n8marti Oct 14, 2024
0f64fd3
hide backup/restore functionality in TUI
n8marti Oct 14, 2024
532a861
Update version and changelog
thw26 Oct 14, 2024
1fe47b5
only wait on ICU install in curses if actually installing the ICU files
n8marti Oct 18, 2024
dd2826e
convert to pyproject
n8marti Oct 16, 2024
8094338
Update project name to Ou Dedetai
n8marti Oct 21, 2024
e55d868
use ./scripts/build-binary.sh for all automated builds
n8marti Oct 21, 2024
919bbec
fix #171; add placeholder icon
n8marti Oct 21, 2024
327fa06
More name updates to Ou Dedetai
thw26 Oct 21, 2024
af706e8
Update version and changelog
thw26 Oct 21, 2024
9a14ecf
Fix typo
thw26 Oct 21, 2024
0a767bc
Update README.md
thw26 Oct 22, 2024
ac7f186
Update README.md
thw26 Oct 22, 2024
bb3e2d5
docs: update README with new invocation
ctrlaltf24 Oct 23, 2024
1fc367a
fix: complete wine refactor
ctrlaltf24 Oct 23, 2024
0def2e5
fix: pull latest github release
ctrlaltf24 Oct 23, 2024
1770c8d
refactor: add type hints and comments
ctrlaltf24 Oct 23, 2024
5078b2a
fix: install dependencies on the cli
ctrlaltf24 Oct 23, 2024
2baff88
refactor: no need to condition on app
ctrlaltf24 Oct 23, 2024
cf39c85
fix: update out of date icu files
ctrlaltf24 Oct 24, 2024
da48ece
fix: add GUI status
ctrlaltf24 Oct 24, 2024
07cc8cb
refactor: move ICU version file into .local/state
ctrlaltf24 Oct 24, 2024
d169a54
fix: include images in the pyinstaller
ctrlaltf24 Oct 24, 2024
4ac9c44
refactor: use apt-get in dockerfile
ctrlaltf24 Oct 24, 2024
6b57284
fix: migrate config from old location to new
ctrlaltf24 Oct 24, 2024
ceffd30
refactor: handfull of fixmes resolved trivally
ctrlaltf24 Oct 24, 2024
bd8ec61
fix: revert create_launcher_shortcuts due to concerns
ctrlaltf24 Oct 25, 2024
f979134
Update changelog and version
thw26 Oct 25, 2024
d4051b0
docs: move complex install instructions out of README
ctrlaltf24 Oct 25, 2024
348e663
docs: fix legacy pip install
ctrlaltf24 Oct 25, 2024
bb4f715
Move install instructions
thw26 Oct 26, 2024
5a54b93
fix: renaming icu file with version
ctrlaltf24 Oct 26, 2024
68f9032
fix: also ensure icu files are up to date in update check
ctrlaltf24 Nov 6, 2024
ac07085
Update version and changelog
thw26 Nov 7, 2024
34eda75
Typo
thw26 Nov 11, 2024
961fb11
add 'samba' to arch deps
n8marti Nov 14, 2024
e0d2776
fix: ensure local desktop file directory exists
ctrlaltf24 Nov 14, 2024
8aaf85d
Fix: exit on
ctrlaltf24 Nov 17, 2024
445ab0d
make dependencies lists more precise
n8marti Nov 18, 2024
e91d6c8
use correct libfuse package for ubuntu 24+
n8marti Nov 18, 2024
b5d5367
fix fedora dependencies
n8marti Nov 19, 2024
6feab0b
add script
n8marti Nov 21, 2024
de641f4
add linuxmint to version check for updated package names
n8marti Nov 22, 2024
12e83f3
update comments
n8marti Nov 23, 2024
62520ee
remove unused system.tl function
n8marti Nov 23, 2024
14abf75
remove unused commented code
n8marti Nov 23, 2024
39aebb9
pep8 fix: remove unneeded comment
n8marti Nov 23, 2024
d5e6d48
Update autobuild-main.yml
n8marti Nov 23, 2024
3dd5ddd
Update autobuild-main.yml
n8marti Nov 23, 2024
726fa2c
Update autobuild-main.yml
n8marti Nov 23, 2024
e1fb2fa
Update autobuild-main.yml
n8marti Nov 23, 2024
1e8d6e3
Update autobuild-main.yml
n8marti Nov 23, 2024
1042831
Update build-branch.yml
n8marti Nov 23, 2024
319cffc
Update autobuild-main.yml
n8marti Nov 23, 2024
8926435
Update autobuild-main.yml
n8marti Nov 23, 2024
d407abb
Fix #17. Add Alpine Support
thw26 Sep 28, 2024
4b8f5ed
Add architecture detection
thw26 Nov 30, 2024
2522382
Merge main into unittests
ctrlaltf24 Dec 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .github/workflows/autobuild-main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build & release to test-builds repo
name: Auto-build & release to test-builds repo
on:
push:
branches:
Expand All @@ -22,12 +22,13 @@ jobs:
name: ${{ needs.build.outputs.bin_name }}
- name: Run shell tasks
run: |
echo "DATE=$(date +%Y%m%d)" >> $GITHUB_ENV
find -name LogosLinuxInstaller -type f -exec chmod +x {} \;
find -name oudedetai -type f -exec chmod +x {} \;
- name: Upload release to test repo
uses: softprops/action-gh-release@v1
with:
tag_name: main-${{ env.DATE }}-${{ needs.build.outputs.sha_short }}
tag_name: main-latest
# target_commitish: ${{ needs.build.outputs.sha }}
body: ''
prerelease: true
files: ${{ needs.build.outputs.bin_name }}
repository: FaithLife-Community/test-builds
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/build-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ on:
bin_name:
description: "name of built binary"
value: ${{ jobs.build.outputs.bin_name }}
sha:
value: ${{ github.sha }}
sha_short:
description: "1st few chars of commit SHA"
value: ${{ jobs.build.outputs.sha_short }}
Expand Down Expand Up @@ -47,19 +49,17 @@ jobs:
run: |
# apt-get install python3-tk
pip install --upgrade pip
pip install -r requirements.txt
pip install coverage
pip install pyinstaller
pip install .[build,test]

- name: Build with pyinstaller
id: pyinstaller
run: |
pyinstaller LogosLinuxInstaller.spec --clean
echo "bin_name=LogosLinuxInstaller" >> $GITHUB_OUTPUT
./scripts/build-binary.sh
echo "bin_name=oudedetai" >> $GITHUB_OUTPUT

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LogosLinuxInstaller
path: dist/LogosLinuxInstaller
name: oudedetai
path: dist/oudedetai
compression-level: 0
2 changes: 1 addition & 1 deletion .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: download
uses: actions/download-artifact@v4
with:
name: LogosLinuxInstaller
name: oudedetai
- name: release
uses: softprops/action-gh-release@v1
env:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ jobs:
name: ${{ needs.build.outputs.bin_name }}
- name: Fix file permissions
run: |
find -name LogosLinuxInstaller -type f
find -name LogosLinuxInstaller -type f -exec chmod +x {} \;
find -name oudedetai -type f
find -name oudedetai -type f -exec chmod +x {} \;
- name: Upload release to test repo
uses: softprops/action-gh-release@v1
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ env/
venv/
.venv/
.idea/
*.egg-info
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
# Changelog

- 4.0.0-beta.4
- Fix #220 [N. Shaaban]
- 4.0.0-beta.3
- Fix various regressions from beta (e.g., #209, #213) [N. Shaaban]
- Fix #191 [N. Shaaban]
- 4.0.0-beta.2
- Fix #171 [N. Marti]
- Fix #185 [N. Marti]
- 4.0.0-beta.1
- Migrate .config and logs from `~/.config/Logos_on_Linux` and `~/.local/state/Logos_on_Linux` to `~/.config/FaithLife-Community` and `~/.local/state/FaithLife-Community`
- Add Logos State Manager [T. H. Wright, N. Marti]
- Numerous bug fixes [N. Marti, ctrlaltf24]
- Make config.WINE_EXE dynamic [T. H. Wright]
- Add Docker Build File [jimbob88]
- Fix numerous TUI issues [T. H. Wright]
- Fix #16 [T. H. Wright]
- Fix #84 [T. H. Wright]
- Fix #106 [T. H. Wright]
- Fix #127 [T. H. Wright]
- Fix #128 [T. H. Wright]
- Fix #142 [T. H. Wright]
- Fix #143 [T. H. Wright]
- Fix #153 [T. H. Wright]
- Fix #157 [T. H. Wright]
- Fix #181 [T. H. Wright]
- Fix #188 [T. H. Wright]
- 4.0.0-alpha.14
- Fix install routine [N. Marti, T. H. Wright]
- Fix #144, #154, #156
- 4.0.0-alpha.13
- Fix #22. [T. Bleher, J. Goodman, N. Marti, S. Freilichtbuenhe, M. Malevic, T. H. Wright]
- Fix package installer and TUI app. Also fix #135, #136, #140. [T. H. Wright, N. Marti]
- Introduce network.py and system.py
- 4.0.0-alpha.12
- Fix TUI app's installer [T. H. Wright]
- 4.0.0-alpha.11
- Fix #124 [T. H. Wright]
- 4.0.0-alpha.10
- Fix #121 [T. H. Wright]
- Prep for Logos 30+ support [N. Marti, T. H. Wright]
- 4.0.0-alpha.9
- Fix #42 [T. H. Wright]
- Fix #76, #104, #111, #115 [T. H. Wright]
- 4.0.0-alpha.8
- Fix #1 [T. H. Wright, N. Marti, T. Bleher, C. Reeder]
- Fix #102 [T. H. Wright]
- Fix #110 [N. Marti]
- 4.0.0-alpha.7
- Various fixes [N. Marti]
- 4.0.0-alpha.6
- Hotfix to get correct LOGOS_EXE value after installation [N. Marti]
- 4.0.0-alpha.5
Expand Down
100 changes: 100 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Contributor Documentation

## Installing/running from Source (for developers)

You can clone the repo and install the app from source. To do so, you will need to ensure a few prerequisites:
1. Install build dependencies
2. Clone this repository
3. Build/install Python 3.12 and Tcl/Tk
4. Set up a virtual environment

### Install build dependencies

e.g. for debian-based systems:
```
sudo apt-get install git build-essential gdb lcov pkg-config \
libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \
libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \
lzma lzma-dev python3-tk tk-dev uuid-dev zlib1g-dev
```
*See Python's [Build dependencies](https://devguide.python.org/getting-started/setup-building/index.html#build-dependencies) section for further info.*

### Clone this repository
```
git clone 'https://github.com/FaithLife-Community/LogosLinuxInstaller.git'
```

### Install Python 3.12 and Tcl/Tk
Your system might already include Python 3.12 built with Tcl/Tk. This will verify
the installation:
```
$ python3 --version
Python 3.12.5
$ python3 -m tkinter # should open a basic Tk window
```
If your Python version is < 3.12, then you might want to install 3.12 and tcl/tk
using your system's package manager or compile it from source using the
following guide or the script provided in `scripts/ensure-python.sh`. This is
because the app is built using 3.12 and might have errors if run with other
versions.

**Install & build python 3.12 using the script:**
```
./LogosLinuxInstaller/scripts/ensure-python.sh
```

**Install & build python 3.12 manually:**
```
$ ver=$(wget -qO- https://www.python.org/ftp/python/ | grep -oE '3\.12\.[0-9]+' | sort -u | tail -n1)
$ wget "https://www.python.org/ftp/python/${ver}/Python-${ver}.tar.xz"
$ tar xf Python-${ver}.tar.xz
$ cd Python-${ver}
Python-3.12$ ./configure --prefix=/opt --enable-shared
Python-3.12$ make
Python-3.12$ sudo make install
Python-3.12$ LD_LIBRARY_PATH=/opt/lib /opt/bin/python3.12 --version
Python 3.12.5
$ cd ~
```
Both methods install python into `/opt` to avoid interfering with system python installations.

### Enter the repository folder
```
$ cd LogosLinuxInstaller
LogosLinuxInstaller$
```

### Set up and use a virtual environment
Use the following guide or the provided script at `scripts/ensure-venv.sh` to set
up a virtual environment for running and/or building locally.

**Using the script:**
```
./scripts/ensure-venv.sh
```

**Manual setup:**

```
LogosLinuxInstaller$ LD_LIBRARY_PATH=/opt/lib /opt/bin/python3.12 -m venv env # create a virtual env folder called "env" using python3.12's path
LogosLinuxInstaller$ echo "LD_LIBRARY_PATH=/opt/lib" >> env/bin/activate # tell python where to find libs
LogosLinuxInstaller$ echo "export LD_LIBRARY_PATH" >> env/bin/activate
LogosLinuxInstaller$ source env/bin/activate # activate the env
(env) LogosLinuxInstaller$ python --version # verify python version
Python 3.12.5
(env) LogosLinuxInstaller$ python -m tkinter # verify that tkinter test window opens
(env) LogosLinuxInstaller$ pip install -r .[build] # install python packages
(env) LogosLinuxInstaller$ python -m ou_dedetai.main --help # run the script
```

### Building using docker

```bash
$ git clone 'https://github.com/FaithLife-Community/LogosLinuxInstaller.git'
$ cd LogosLinuxInstaller
# docker build -t logosinstaller .
# docker run --rm -v $(pwd):/usr/src/app logosinstaller
```

The built binary will now be in `./dist/oudedetai`.

33 changes: 33 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# syntax=docker.io/docker/dockerfile:1.7-labs

FROM ubuntu:focal

# Prevent popups during install of requirements
ENV DEBIAN_FRONTEND=noninteractive

# App Requirements
RUN apt-get update -qq \
&& apt-get install -y -qq git build-essential gdb lcov pkg-config \
libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \
libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \
lzma lzma-dev python3-tk tk-dev uuid-dev zlib1g-dev \
curl \
&& rm -rf /var/lib/apt/lists/*

# pyenv for guaranteed py 3.12
ENV HOME="/root"
WORKDIR ${HOME}
RUN curl https://pyenv.run | bash
ENV PYENV_ROOT="${HOME}/.pyenv"
ENV PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"

# Ensure tkinter
ENV PYTHON_CONFIGURE_OPTS "--enable-shared"

# install py 3.12
ENV PYTHON_VERSION=3.12.6
RUN pyenv install --verbose ${PYTHON_VERSION}
RUN pyenv global ${PYTHON_VERSION}

WORKDIR /usr/src/app
ENTRYPOINT ["sh", "-c", "pip install --no-cache-dir .[build] && pyinstaller ou_dedetai.spec"]
Loading