aboutsummaryrefslogtreecommitdiffstats
path: root/src/content/docs/appendix
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/docs/appendix')
-rw-r--r--src/content/docs/appendix/code-binary-verify.md160
-rw-r--r--src/content/docs/appendix/contribute.md97
-rw-r--r--src/content/docs/appendix/setup-dev-env.md122
-rw-r--r--src/content/docs/appendix/system-requirement.md72
-rw-r--r--src/content/docs/appendix/translate-interface.md49
5 files changed, 500 insertions, 0 deletions
diff --git a/src/content/docs/appendix/code-binary-verify.md b/src/content/docs/appendix/code-binary-verify.md
new file mode 100644
index 0000000..3782dfc
--- /dev/null
+++ b/src/content/docs/appendix/code-binary-verify.md
@@ -0,0 +1,160 @@
+---
+title: Code & Binary Verify
+---
+
+To enhance the security and integrity of software distribution, it's crucial for
+developers and users alike to employ methods for verifying the authenticity and
+integrity of code and executable files. The process outlined below aims to
+fortify trust in software distribution by leveraging digital signatures and
+secure, automated build processes.
+
+### Automated Build Process
+
+Our software leverages **GitHub Actions** for automated compilations, ensuring
+that every binary file version released is directly compiled from the source
+code stored in the GitHub repository's main branch. This approach guarantees
+that the compilation process is transparent, replicable, and free from manual
+interference. The exact commands and environment configurations used during the
+compilation are documented within the project's `.github/workflow/release.yml`
+file, allowing for full accountability and reproducibility.
+
+### Third-Party Library Assurance
+
+To uphold our commitment to security, we do not include GnuPG in our major
+releases and strictly avoid insecure or proprietary third-party libraries.
+Instead, we only utilize third-party libraries that are open-source and have
+been compiled from publicly accessible code repositories. This practice ensures
+that our software remains secure and trustworthy.
+
+### Code Verification
+
+We encourage users to review our code to ensure its integrity and security. The
+code for all releases is available on our GitHub repository. For any inquiries
+or concerns, please feel free to contact us directly. Most new git commits are
+signed with a designated key, which is also used for Git operations: `Saturneric
+<[email protected]>`. This commitment to transparency allows users to verify the
+authenticity of our code easily.
+
+#### Key Fingerprint
+
+```
+E3379489C39B7270E70E2E303AAF1C64137CEE57
+```
+
+### Binary File Verification
+
+From version 1.0.5 onwards, we sign our packages containing the binary
+executable files with a GPG key to further ensure security. Each package is
+accompanied by a signature file in the release section (with a `.sig` suffix),
+allowing users to verify the package before use using standard GPG tools.
+
+#### About Interface Verification
+
+Our software includes an "About" interface accessible from the help menu,
+providing users with information about the software version, platform, and the
+specific GitHub repository branch and commit hash used for compiling the binary.
+This feature adds an extra layer of transparency and verification for users.
+
+### Public Key for Verification
+
+Below is the public key used for signing the commits and binary files, which can
+be used to verify the authenticity of our releases:
+
+#### Key Fingerprint
+
+```
+E3379489C39B7270E70E2E303AAF1C64137CEE57
+```
+
+#### Public Key (OpenPGP)
+
+```
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+hHHFn9+/wu20
+=bgvm
+-----END PGP PUBLIC KEY BLOCK-----
+```
+
+This comprehensive approach to security, including automated builds, careful
+selection of third-party libraries, and transparent verification methods,
+ensures that users can trust the software they are using while also providing
+the tools needed to verify that trust independently.
diff --git a/src/content/docs/appendix/contribute.md b/src/content/docs/appendix/contribute.md
new file mode 100644
index 0000000..37e03d4
--- /dev/null
+++ b/src/content/docs/appendix/contribute.md
@@ -0,0 +1,97 @@
+---
+title: Contributing to GpgFrontend
+---
+
+Thank you for considering contributing to GpgFrontend! As a community-driven
+project currently maintained by a single individual, every contribution, no
+matter how small, makes a significant difference. This guide is designed to
+provide you with a clear pathway to contributing, whether you're submitting
+changes via GitHub pull requests or sending git patches via email. Below, you'll
+find the steps to set up your environment, make changes, and how to submit those
+changes. Additionally, you'll find contact information for further assistance.
+
+## Technical Requirements
+
+To maintain the integrity and compatibility of GpgFrontend, please adhere to the
+following technical standards for all contributions:
+
+- **C++ Standard:** Contributions must comply with the C++17 standard. This
+ requirement ensures that we leverage modern language features and maintain
+ forward compatibility.
+- **C Standard:** For code that involves C programming, adherence to the C99
+ standard is required. This helps ensure our code takes advantage of more
+ recent language features while maintaining compatibility with various
+ platforms and compilers.
+- **Compiler Compatibility:** Your code should compile successfully with both
+ Clang and GCC compilers. This cross-compatibility is crucial for ensuring that
+ GpgFrontend can be built on a variety of platforms and environments.
+- **Third-Party Libraries:** Introducing third-party libraries should be done
+ with caution. Any added library must be compatible with the GPL 3.0 license.
+ Prior discussion with project maintainers about the necessity and implications
+ of the new library is required.
+- **Code Formatting:** Use our `.clang-format` and `.clang-tidy` configurations
+ to format your code. Consistent code formatting aids in maintaining the
+ readability and maintainability of the codebase.
+- **Code Maintenance and Attribution:** Be aware that the project maintainer may
+ edit your code to better fit the project or enhance compatibility. You are
+ encouraged to include your name and contact information in the code comments
+ for your contributions if you wish.
+
+### Additional Standards to Consider
+
+- **Static Analysis:** To ensure code quality and catch potential issues early,
+ contributions should pass static analysis checks where applicable. Tools like
+ Clang Static Analyzer or GCC's `-Wall -Wextra -pedantic` flags can be used to
+ identify potential issues.
+- **Unit Testing:** If your contribution adds new functionality or changes
+ existing behavior, including unit tests to cover your changes is highly
+ recommended. This helps ensure that your contributions do not inadvertently
+ break existing functionality.
+- **Documentation:** Update existing documentation or add new documentation as
+ necessary to reflect your changes or additions to the project. Well-documented
+ code is essential for future maintenance and for new contributors to
+ understand the project.
+
+## Getting Started
+
+### Step 1: Set Up Your Environment
+
+Make sure you have a configured Git environment. For GitHub contributions, fork
+the repository and clone it locally. For email contributions, ensure Git is
+installed on your machine.
+
+For setting up local development Environment, you can refer to [this
+section](setup-dev-env.md).
+
+### Step 2: Making Changes
+
+Create a new branch for your work, implement your changes while adhering to the
+technical requirements and standards mentioned, and commit your changes with
+clear, descriptive commit messages.
+
+### Step 3: Submitting Contributions
+
+#### Via GitHub Pull Request
+
+Push your changes to your fork and submit a pull request to the original
+repository. Ensure your pull request describes the changes made and the reason
+for those changes.
+
+#### Via Email with Git Patch
+
+For email submissions, generate a git patch for your commits and send it to the
+project's contribution email address. Make sure to include a detailed
+description of your changes and the reasons for them in your email.
+
+## Contact
+
+If you have any technical questions or need assistance, refer to the Contact
+document for the maintainer's email address. We are here to help and encourage a
+collaborative development process.
+
+## Conclusion
+
+Your contributions are vital to the success and improvement of GpgFrontend. We
+appreciate your efforts to adhere to these guidelines and look forward to your
+innovative and high-quality contributions. Thank you for being a part of our
+community.
diff --git a/src/content/docs/appendix/setup-dev-env.md b/src/content/docs/appendix/setup-dev-env.md
new file mode 100644
index 0000000..c5ca5fa
--- /dev/null
+++ b/src/content/docs/appendix/setup-dev-env.md
@@ -0,0 +1,122 @@
+---
+title: Setting Up Your Local Development Environment
+sidebar:
+ label: Development Environment
+---
+
+Creating a local development environment that mirrors the GitHub Actions
+workflow ensures consistency between local development and continuous
+integration builds. This guide leverages the steps defined in our GitHub Actions
+workflow to help you set up a similar environment on your local machine. By
+following these steps, you'll be able to compile, build, and test the project in
+an environment closely resembling our CI pipeline, minimizing integration
+issues. The exact commands and environment configurations used during the
+compilation are documented within the project's `.github/workflow/release.yml`
+file.
+
+## Prerequisites
+
+- **Git:** Installed and configured on your system.
+- **Compilers:** GCC and Clang for cross-compatibility.
+- **CMake:** For generating build files.
+- **Qt6:** If working on a project that utilizes Qt for its GUI.
+
+## Environment Setup Steps
+
+### Clone the Repository
+
+```bash
+git clone https://github.com/saturneric/GpgFrontend.git
+cd GpgFrontend
+```
+
+### Configure Git Line Endings
+
+This step ensures that line endings are consistent across different operating
+systems.
+
+- **For Windows:**
+
+```bash
+git config --global core.autocrlf false
+git config --global core.eol lf
+```
+
+- **For macOS:**
+
+```bash
+git config --global core.autocrlf false
+git config --global core.eol lf
+```
+
+### Install Dependencies
+
+- **On Ubuntu 20.04:**
+
+```bash
+sudo apt-get update
+sudo apt-get install -y build-essential binutils git autoconf automake gettext texinfo gcc g++ ninja-build libarchive-dev libssl-dev libgpgme-dev
+```
+
+- **On macOS (11 and 12):**
+
+```bash
+brew install cmake autoconf automake texinfo gettext openssl@3 ninja libarchive gpgme
+brew link --force openssl@3
+
+```
+
+- **For Windows (via MSYS2):** Set up MSYS2 according to its documentation and
+ install the necessary packages:
+
+```bash
+pacman -Syu
+pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake autoconf automake make texinfo mingw-w64-x86_64-qt6 libintl msys2-runtime-devel gettext-devel mingw-w64-x86_64-ninja mingw-w64-x86_64-gnupg mingw-w64-x86_64-libarchive
+```
+
+### Install Qt6 (if applicable)
+
+Use the Qt online installer or your package manager to install Qt6 and the
+required modules for your project.
+
+### Build Third-Party Libraries (if needed)
+
+Follow the project's documentation to clone and build necessary third-party
+libraries such as `libgpg-error`, `libassuan`, and `GpgME`. Use the same
+commands as specified in the GitHub Actions workflow, adapted for your local
+environment.
+
+### Configure and Build the Project
+
+- **For Linux and macOS:**
+
+```bash
+mkdir build && cd build
+cmake .. -DCMAKE_BUILD_TYPE=Release
+make -j$(nproc)
+```
+
+- **For Windows (via MSYS2):**
+
+```bash
+mkdir build && cd build
+cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
+mingw32-make -j$(nproc)
+```
+
+### Running Tests
+
+After building, run the project's tests to verify everything is working as
+expected.
+
+## Notes
+
+- Adjust the build type (`Release`, `Debug`, etc.) as needed.
+- Replace project-specific commands and dependency installation commands based
+ on your project's requirements.
+- For macOS, additional steps for code signing and notarization are required only
+ for distribution.
+
+By closely following the GitHub Actions workflow for local setup, you're
+creating a development environment that minimizes surprises during the
+integration and deployment phases.
diff --git a/src/content/docs/appendix/system-requirement.md b/src/content/docs/appendix/system-requirement.md
new file mode 100644
index 0000000..1f3ac0e
--- /dev/null
+++ b/src/content/docs/appendix/system-requirement.md
@@ -0,0 +1,72 @@
+---
+title: System Requirement
+---
+
+Before proceeding with the installation and usage of GpgFrontend, it's crucial
+to understand the system requirements that ensure optimal performance. This
+section provides comprehensive details about the necessary software
+dependencies, hardware specifications, and the compatible operating systems.
+Meeting these requirements will ensure a smooth, efficient experience while
+using GpgFrontend.
+
+Please read the following subsections carefully to confirm that your system
+aligns with the recommended configurations.
+
+## Hardware
+
+While the specific hardware requirements largely depend on the size and
+complexity of the data you're working with, we generally recommend:
+
+A computer with at least 1 GB of RAM. However, 2 GB or more is preferable for
+smoother performance. The majority of these resources are allocated to your
+operating system, but around 100 MB of memory is needed to ensure the smooth
+running of GpgFrontend. At least 200 MB of free disk space for software
+installation. Additional space will be needed for ongoing work.
+
+Please note, these requirements are intended to be guidelines rather than strict
+rules. It's possible that GpgFrontend will work on lower-spec hardware, but for
+optimal performance, the above specifications are recommended.
+
+## Operating System
+
+GpgFrontend is compatible with major operating systems including Linux, macOS,
+and Windows. Specifically, it recommends Windows 7 and later, macOS 11 and
+later, and Ubuntu 20.04 LTS or other equivalent Linux distributions.
+
+## Software
+
+To ensure GpgFrontend functions seamlessly, it relies on the following software
+dependencies:
+
+- **Qt Framework:** GpgFrontend is developed using the Qt framework to offer a
+ rich user experience and cross-platform compatibility. The application
+ includes:
+
+ - **Qt6:** The primary build utilizes Qt6, ensuring a modern interface and
+ robust performance. Qt6 is included in the release packages for Linux,
+ macOS, and Windows, offering straightforward setup without additional
+ installations.
+ - **Qt5 Support for Windows:** Recognizing the need to accommodate users on
+ older versions of Windows, GpgFrontend also provides a Qt5-based version.
+ This variant ensures compatibility with earlier Windows environments,
+ extending the tool's accessibility and usability.
+
+- **GnuPG 2.2.0 or Higher:** GpgFrontend integrates with GnuPG for its
+ cryptographic operations, including encryption, decryption, and digital
+ signing. GnuPG (version 2.2.0 or newer) is a necessary component to leverage
+ the full capabilities of GpgFrontend. Please note, GnuPG 1.x versions are not
+ supported by GpgFrontend due to differences in functionality and support.
+ Users are encouraged to use GnuPG 2.x to ensure compatibility and secure
+ operations.
+
+By catering to a wide range of operating systems and ensuring backward
+compatibility with older Windows versions through Qt5 support, GpgFrontend
+strives to be as inclusive and accessible as possible.
+
+## Network
+
+Although not necessary for basic operation, an active Internet connection may be
+required for software updates and accessing online help resources.
+
+Please note that these are the minimal requirements that we tested, and actual
+requirements for your use case could be higher, especially for large datasets.
diff --git a/src/content/docs/appendix/translate-interface.md b/src/content/docs/appendix/translate-interface.md
new file mode 100644
index 0000000..6c02085
--- /dev/null
+++ b/src/content/docs/appendix/translate-interface.md
@@ -0,0 +1,49 @@
+---
+title: Translate Interface
+sidebar:
+ label: Translate
+---
+
+GpgFrontend is designed to support multiple languages, but requires volunteer
+contributions to achieve this goal. Fortunately, translation work does not
+require an understanding of difficult technology. Volunteers only need to move
+their fingers to complete.
+
+## Work Offline
+
+### What you need to know about translation work
+
+From v2.1.2, GpgFrontend uses the Qt translation support library [Qt
+Linguist](https://doc.qt.io/qt-6/qtlinguist-index.html) in the Qt project.
+Before starting everything, you need to know something about this library. After
+you are sure about the content of the document, you can first try to see how
+GpgFrontend uses the tools provided by this library.
+
+### About translation files
+
+1. Download or clone source code
+ [HERE](https://github.com/saturneric/GpgFrontend)
+2. You will find some ts files(.ts) at path `resource/lfs/locale/ts`
+
+### Before starting your work
+
+In order to facilitate coordination, please contact me via email before you
+start this work. This is very important, please contact me first so that the
+work you do can be better used by GpgFrontend.
+
+### Updates to Translation Work Process
+
+- **For correcting existing translations**: You can directly modify the ts files
+ and then send them to me via email.
+- **For adding a new language translation**: If you're unfamiliar with the
+ process, you can request a new ts file by emailing me. I will provide you with
+ the necessary file to start the translation for the new language.
+
+### Hand in your work
+
+You can submit your great work in two ways:
+
+1. Raise a pull request and merge the changed translation file(s) to the
+ repository.
+2. [Email ME](mailto:[email protected]). Please attach the changed ts file in the
+ email.