This repository has been archived on 2023-07-12. You can view files and clone it, but cannot push or open issues or pull requests.
athnos/README.md
2022-04-28 19:27:52 +02:00

181 lines
7.5 KiB
Markdown
Executable File

# ⚠️ UNFINISHED PROJECT ⚠️
> This project were not finsihed because pyqt5 development was a huge pain and I didn't saw the need for such a software anymore. Nevertheless, it runs and works partly.
# Athnos
With **Athnos** you can store media files like videos, audios or images
(called `clip`) structured / sorted.
Every clip has a link or file path to the (media) file, a name, description and can have several tags.
Additionally, a clip can have a `source`. For example, if the clip is a 10-second clip from a movie, the movie can be set as the source
and each time you select the clip, you can see where it came from.
This makes **Athnos** the perfect tool for video creators who often use many and different clips/scenes, audio, images, etc.
in their videos and currently have dozens of different folders and cryptic-looking file names to somehow bring order to the pile of files.
But it's also useful for 'normal' people, like you and me, who just want to store their images or videos centrally.
Download the latest executables:
- Linux
- [Linux x64 standalone / portable]()
- [Linux x64 installer (.deb)]()
- Windows
- [Windows 10 x64 standalone / portable]()
- [Windows 10 x64 installer]()
The installation and other stuff (besides [Todo](#todo) and [License](#licence)) below are just for the people, who want to
compile the code themselves and doesn't use the executables linked above.
If you only have a 32 bit, arm, etc. processor, window 8 or another reason why you can't use the already compiled versions linked above,
you have to download the source code and execute / compile it yourself. The instructions are below.
## Known issues
### Linux
- `FileNotFoundError: [Errno 2] No such file or directory 'objcopy'` when [compiling](#compile) the code with pyinstaller
Cause: PyInstaller doesn't find the `objcopy` command
Solution: Run `apt install binutils`, which installs `objcopy`
- `staticx: Couldn't find 'patchelf'. Is 'patchelf' installed?` when 're-building' the pyinstaller executable with staticx
Cause: staticx doesn't find the `patchelf` module
Solution: Run `apt install patchelf`, which installs `patchelf`
- ```...dlopen: /lib/x86_64-linux-gnu/libc.so.6: version ``GLIBC_2.x' not found...``` when try to run
Cause: This means that the file was compiled with a newer `glibc` version, than the one on your system.
Usually happens if you compile the file on your computer and try to execute it on another one with an older `glibc` version.
Solution: If you compiled the file yourself, re-compile it and after that follow the instructions [here](#create-real-independent-file).
If you downloaded the file from here, download it again ([latest version]()) and if the is still there when running the new file,
open a new [issue]()
- `[12345] Cannot open self /tmp/staticx-*/main or archive /tmp/staticx-*/main.pkg` when try to run
Cause: When a pyinstaller executable was 're-built' with [staticx](#create-real-independent-file).
Usually happens if pyinstaller creates a executable, which can't be 're-build' correctly with staticx
Solution: If you compiled the file yourself, use pyinstaller version 4.0, instead of the newest version an then [compile it again](#compile-linux)
If you downloaded the file from here, download it again ([latest version]()) and if the is still there when running the new file,
open a new [issue]()
## Installation🎰
### Linux
1. Install the required apt packages. **Note: The python3 version must be 3.6 or higher!**
```bash
apt install git
apt install python3
apt install python3-pip
apt install python3-pyqt5
apt install python3-pyqt5.qtsql
```
2. Then clone the repository and install its requirements
```bash
git clone https://github.com/ByteDream/athnos.git
cd athnos/
pip3 install -r requirements.txt
```
### Windows
1. Download the latest python version from [here](https://www.python.org/downloads/) (at least version 3.6 or higher) and install it.
2. Download the [repository](https://github.com/ByteDream/athnos/archive/master.zip) and unzip it (e.g. with [7zip](https://www.7-zip.org/)).
3. Open the unzipped folder in the [cmd](https://www.minitool.com/news/how-to-open-a-file-folder-cmd.html).
4. Install PyQt5 and the requirements
```cmd
pip install pyqt5
pip install -r requirements.txt
```
## Run🚀
After the [setup](#installation) is done, you can run **athnos** via
- `python3 main.py` on **Linux**
- `python main.py` on **Windows** (or just double click `main.py`)
## Compile🔨
If you want to compile independent executables, the [installation](#installation) has to be done first.
<h3 id="compile-linux">Linux</h3>
1. Go into the `athnos` folder and execute the following commands
```bash
pip3 install pyinstaller
pyinstaller --noconsole --onefile main.py
```
The path of the generated executable is `dist/main`.
Note that if you share the file with other systems,
the other systems `glibc` version must be equal or higher than the one on your system, because some python libraries
packed in the `main` file rely on them. If you want to make the file 'real' independent, see the next paragraph
##### Create real independent file
---
If you want to share the executable file with another systems which has a lower `glibc` version
(can be obtained if you run the `ldd --version` command), you need to 'rebuild' the generated `main` file.
The following method currently **only works on 64-bit machines / with 64-bit executables** and has some disadvantages:
It takes longer to startup and causes higher cpu load on startup. An alternate method is, to re-run the steps above on the oldest
system you can find / with the oldest `glibc` version.
To build the real independent file, you have to execute the following commands
```bash
apt install patchelf
pip3 install staticx
staticx dist/main dist/static_main
```
The now generated `dist/static_main` file is the independent file.
### Windows
1. Open the [cmd](https://www.minitool.com/news/how-to-open-a-file-folder-cmd.html) in the `athnos` folder and execute the following commands
```cmd
pip install pyinstaller
pyinstaller --noconsole --onefile main.py
```
2. The generated executable `main.exe` is in the new created `dist` folder
**Note: If a new major python3 version has been released lately, and you've installed this version,
PyInstaller may not work. See [here](#https://pypi.org/project/pyinstaller/#main-advantages) for all supported python3 version of PyInstaller**
If there is any issue while compiling or when you try to launch the compiled file, look at the [known issues](#known-issues).
When your issue isn't listed there or the given solution not works, feel free to open a new [issue]()
Successfully compiled (staticx and non-staticx executables) on
- Pop!_OS 20.10 with `python3.8.6`, `pyqt 5.15.0`, `pyinstaller 4.0`, `staticx 0.12.0`, `glibc 2.32`
- Ubuntu 20.04 with `python3.8.5`, `pyqt 5.14.1`, `pyinstaller 4.0`, `staticx 0.12.0`, `glibc 2.31`
- Manjaro 20.2 with `python3.8.6`, `pyqt 5.15.2`, `pyinstaller 4.0`, `staticx 0.12.0`, `glibc 2.32`
## Additional components
## Todo
- [ ] Tags for the source
- [ ] Colored tags
- [ ] Clip column hide
- [ ] Database driver download options
- [ ] Server software
- [ ] Custom style
- [ ] Optional plugins (e.g. direct download a youtube video by its link)
## Licence
This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the [LICENSE](LICENSE) file for more details