mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2024-10-01 01:06:10 -04:00
chat(build): remove dependency on WaylandCompositor (#2949)
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
This commit is contained in:
parent
08d9a401d2
commit
eea8b81768
@ -331,7 +331,7 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
wget https://gpt4all.io/ci/qt-unified-linux-x64-4.6.0-online.run
|
wget https://gpt4all.io/ci/qt-unified-linux-x64-4.6.0-online.run
|
||||||
chmod +x qt-unified-linux-x64-4.6.0-online.run
|
chmod +x qt-unified-linux-x64-4.6.0-online.run
|
||||||
./qt-unified-linux-x64-4.6.0-online.run --no-force-installations --no-default-installations --no-size-checking --default-answer --accept-licenses --confirm-command --accept-obligations --email $QT_EMAIL --password $QT_PASSWORD install qt.tools.cmake qt.tools.ifw.47 qt.tools.ninja qt.qt6.651.gcc_64 qt.qt6.651.qt5compat qt.qt6.651.debug_info qt.qt6.651.addons.qtpdf qt.qt6.651.addons.qthttpserver qt.qt6.651.qtwaylandcompositor
|
./qt-unified-linux-x64-4.6.0-online.run --no-force-installations --no-default-installations --no-size-checking --default-answer --accept-licenses --confirm-command --accept-obligations --email $QT_EMAIL --password $QT_PASSWORD install qt.tools.cmake qt.tools.ifw.47 qt.tools.ninja qt.qt6.651.gcc_64 qt.qt6.651.qt5compat qt.qt6.651.debug_info qt.qt6.651.addons.qtpdf qt.qt6.651.addons.qthttpserver
|
||||||
- run:
|
- run:
|
||||||
name: Build linuxdeployqt
|
name: Build linuxdeployqt
|
||||||
command: |
|
command: |
|
||||||
@ -407,7 +407,7 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
wget https://gpt4all.io/ci/qt-unified-linux-x64-4.6.0-online.run
|
wget https://gpt4all.io/ci/qt-unified-linux-x64-4.6.0-online.run
|
||||||
chmod +x qt-unified-linux-x64-4.6.0-online.run
|
chmod +x qt-unified-linux-x64-4.6.0-online.run
|
||||||
./qt-unified-linux-x64-4.6.0-online.run --no-force-installations --no-default-installations --no-size-checking --default-answer --accept-licenses --confirm-command --accept-obligations --email $QT_EMAIL --password $QT_PASSWORD install qt.tools.cmake qt.tools.ifw.47 qt.tools.ninja qt.qt6.651.gcc_64 qt.qt6.651.qt5compat qt.qt6.651.debug_info qt.qt6.651.addons.qtpdf qt.qt6.651.addons.qthttpserver qt.qt6.651.qtwaylandcompositor
|
./qt-unified-linux-x64-4.6.0-online.run --no-force-installations --no-default-installations --no-size-checking --default-answer --accept-licenses --confirm-command --accept-obligations --email $QT_EMAIL --password $QT_PASSWORD install qt.tools.cmake qt.tools.ifw.47 qt.tools.ninja qt.qt6.651.gcc_64 qt.qt6.651.qt5compat qt.qt6.651.debug_info qt.qt6.651.addons.qtpdf qt.qt6.651.addons.qthttpserver
|
||||||
- run:
|
- run:
|
||||||
name: Build linuxdeployqt
|
name: Build linuxdeployqt
|
||||||
command: |
|
command: |
|
||||||
@ -738,7 +738,7 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
wget https://gpt4all.io/ci/qt-unified-linux-x64-4.6.0-online.run
|
wget https://gpt4all.io/ci/qt-unified-linux-x64-4.6.0-online.run
|
||||||
chmod +x qt-unified-linux-x64-4.6.0-online.run
|
chmod +x qt-unified-linux-x64-4.6.0-online.run
|
||||||
./qt-unified-linux-x64-4.6.0-online.run --no-force-installations --no-default-installations --no-size-checking --default-answer --accept-licenses --confirm-command --accept-obligations --email $QT_EMAIL --password $QT_PASSWORD install qt.tools.cmake qt.tools.ifw.47 qt.tools.ninja qt.qt6.651.gcc_64 qt.qt6.651.qt5compat qt.qt6.651.debug_info qt.qt6.651.addons.qtpdf qt.qt6.651.addons.qthttpserver qt.qt6.651.qtwaylandcompositor
|
./qt-unified-linux-x64-4.6.0-online.run --no-force-installations --no-default-installations --no-size-checking --default-answer --accept-licenses --confirm-command --accept-obligations --email $QT_EMAIL --password $QT_PASSWORD install qt.tools.cmake qt.tools.ifw.47 qt.tools.ninja qt.qt6.651.gcc_64 qt.qt6.651.qt5compat qt.qt6.651.debug_info qt.qt6.651.addons.qtpdf qt.qt6.651.addons.qthttpserver
|
||||||
- run:
|
- run:
|
||||||
name: Build
|
name: Build
|
||||||
command: |
|
command: |
|
||||||
|
@ -28,6 +28,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
- Fix the antenna icon tooltip when using the local server ([#2922](https://github.com/nomic-ai/gpt4all/pull/2922))
|
- Fix the antenna icon tooltip when using the local server ([#2922](https://github.com/nomic-ai/gpt4all/pull/2922))
|
||||||
- Fix a few issues with locating files and handling errors when loading remote models on startup ([#2875](https://github.com/nomic-ai/gpt4all/pull/2875))
|
- Fix a few issues with locating files and handling errors when loading remote models on startup ([#2875](https://github.com/nomic-ai/gpt4all/pull/2875))
|
||||||
- Significantly improve API server request parsing and response correctness ([#2929](https://github.com/nomic-ai/gpt4all/pull/2929))
|
- Significantly improve API server request parsing and response correctness ([#2929](https://github.com/nomic-ai/gpt4all/pull/2929))
|
||||||
|
- Removed unnecessary dependency on Qt WaylandCompositor module ([#2949](https://github.com/nomic-ai/gpt4all/pull/2949))
|
||||||
|
|
||||||
## [3.2.1] - 2024-08-13
|
## [3.2.1] - 2024-08-13
|
||||||
|
|
||||||
|
@ -42,11 +42,7 @@ configure_file(
|
|||||||
"${CMAKE_CURRENT_BINARY_DIR}/config.h"
|
"${CMAKE_CURRENT_BINARY_DIR}/config.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(LINUX)
|
find_package(Qt6 6.4 COMPONENTS Core HttpServer LinguistTools Pdf Quick QuickDialogs2 Sql Svg REQUIRED)
|
||||||
find_package(Qt6 6.4 COMPONENTS Core Quick WaylandCompositor QuickDialogs2 Svg HttpServer Sql Pdf LinguistTools REQUIRED)
|
|
||||||
else()
|
|
||||||
find_package(Qt6 6.4 COMPONENTS Core Quick QuickDialogs2 Svg HttpServer Sql Pdf LinguistTools REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Get the Qt6Core target properties
|
# Get the Qt6Core target properties
|
||||||
get_target_property(Qt6Core_INCLUDE_DIRS Qt6::Core INTERFACE_INCLUDE_DIRECTORIES)
|
get_target_property(Qt6Core_INCLUDE_DIRS Qt6::Core INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
@ -238,13 +234,8 @@ target_compile_definitions(chat PRIVATE QT_NO_SIGNALS_SLOTS_KEYWORDS)
|
|||||||
target_include_directories(chat PRIVATE deps/usearch/include
|
target_include_directories(chat PRIVATE deps/usearch/include
|
||||||
deps/usearch/fp16/include)
|
deps/usearch/fp16/include)
|
||||||
|
|
||||||
if(LINUX)
|
target_link_libraries(chat
|
||||||
target_link_libraries(chat
|
PRIVATE Qt6::Core Qt6::HttpServer Qt6::Pdf Qt6::Quick Qt6::Sql Qt6::Svg)
|
||||||
PRIVATE Qt6::Quick Qt6::Svg Qt6::HttpServer Qt6::Sql Qt6::Pdf Qt6::WaylandCompositor)
|
|
||||||
else()
|
|
||||||
target_link_libraries(chat
|
|
||||||
PRIVATE Qt6::Quick Qt6::Svg Qt6::HttpServer Qt6::Sql Qt6::Pdf)
|
|
||||||
endif()
|
|
||||||
target_link_libraries(chat
|
target_link_libraries(chat
|
||||||
PRIVATE llmodel SingleApplication fmt::fmt)
|
PRIVATE llmodel SingleApplication fmt::fmt)
|
||||||
|
|
||||||
|
@ -1,109 +1,106 @@
|
|||||||
# Building gpt4all-chat from source
|
# Building gpt4all-chat from source
|
||||||
|
|
||||||
Depending upon your operating system, there are many ways that Qt is distributed.
|
Depending upon your operating system, there are many ways that Qt is distributed.
|
||||||
Here is the recommended method for getting the Qt dependency installed to setup and build
|
Here is the recommended method for getting the Qt dependency installed to setup and build
|
||||||
gpt4all-chat from source.
|
gpt4all-chat from source.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
You will need a compiler. On Windows, you should install Visual Studio with the C++ Development components. On macOS, you will need the full version of Xcode—Xcode Command Line Tools lacks certain required tools. On Linux, you will need a GCC or Clang toolchain with C++ support.
|
You will need a compiler. On Windows, you should install Visual Studio with the C++ Development components. On macOS, you will need the full version of Xcode—Xcode Command Line Tools lacks certain required tools. On Linux, you will need a GCC or Clang toolchain with C++ support.
|
||||||
|
|
||||||
On Windows and Linux, building GPT4All with full GPU support requires the [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) and the latest [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads).
|
On Windows and Linux, building GPT4All with full GPU support requires the [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) and the latest [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads).
|
||||||
|
|
||||||
## Note for Linux users
|
## Note for Linux users
|
||||||
|
|
||||||
Linux users may install Qt via their distro's official packages instead of using the Qt installer. You need at least Qt 6.5, with support for QPdf and the Qt HTTP Server. It should be straightforward to build with just cmake and make, but you may continue to follow these instructions to build with Qt Creator.
|
Linux users may install Qt via their distro's official packages instead of using the Qt installer. You need at least Qt 6.5, with support for QPdf and the Qt HTTP Server. You may build from the CLI using CMake and Ninja, or with Qt Creator as described later in this document.
|
||||||
|
|
||||||
On Arch Linux, this looks like:
|
On Arch Linux, this looks like:
|
||||||
```
|
```
|
||||||
sudo pacman -S --needed base-devel qt6-base qt6-declarative qt6-wayland qt6-svg qt6-httpserver qt6-webengine qt6-5compat qt6-shadertools qtcreator cmake ninja
|
sudo pacman -S --needed cmake gcc ninja qt6-5compat qt6-base qt6-declarative qt6-httpserver qt6-svg qtcreator
|
||||||
```
|
```
|
||||||
|
|
||||||
On Ubuntu 23.04, this looks like:
|
On Ubuntu 23.04, this looks like:
|
||||||
```
|
```
|
||||||
sudo apt install build-essential qt6-base-dev qt6-declarative-dev qt6-wayland-dev qt6-svg-dev qt6-httpserver-dev qt6-webengine-dev libqt6core5compat6 qml6-module-qt5compat-graphicaleffects libqt6shadertools6 qtcreator cmake ninja-build
|
sudo apt install cmake g++ libgl-dev libqt6core5compat6 ninja-build qml6-module-qt5compat-graphicaleffects qt6-base-dev qt6-declarative-dev qt6-httpserver-dev qt6-svg-dev qtcreator
|
||||||
```
|
```
|
||||||
|
|
||||||
On Fedora 39, this looks like:
|
On Fedora 39, this looks like:
|
||||||
```
|
```
|
||||||
sudo dnf install make gcc gcc-c++ qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qtwayland-devel qt6-qtsvg-devel qt6-qthttpserver-devel qt6-qtwebengine-devel qt6-qt5compat qt5-qtgraphicaleffects qt6-qtshadertools qt-creator cmake ninja-build
|
sudo dnf install cmake gcc-c++ ninja-build qt-creator qt5-qtgraphicaleffects qt6-qt5compat qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qthttpserver-devel qt6-qtsvg-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
## Download Qt
|
## Download Qt
|
||||||
|
|
||||||
- Go to https://login.qt.io/register to create a free Qt account.
|
- Go to https://login.qt.io/register to create a free Qt account.
|
||||||
- Download the Qt Online Installer for your OS from here: https://www.qt.io/download-qt-installer-oss
|
- Download the Qt Online Installer for your OS from here: https://www.qt.io/download-qt-installer-oss
|
||||||
- Sign into the installer.
|
- Sign into the installer.
|
||||||
- Agree to the terms of the (L)GPL 3 license.
|
- Agree to the terms of the (L)GPL 3 license.
|
||||||
- Select whether you would like to send anonymous usage statistics to Qt.
|
- Select whether you would like to send anonymous usage statistics to Qt.
|
||||||
- On the Installation Folder page, leave the default installation path, and select "Custom Installation".
|
- On the Installation Folder page, leave the default installation path, and select "Custom Installation".
|
||||||
|
|
||||||
## Customize the installation
|
## Customize the installation
|
||||||
|
|
||||||
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/c6e999e5-cc8a-4dfc-8065-b59139e8c7ae)
|
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/c6e999e5-cc8a-4dfc-8065-b59139e8c7ae)
|
||||||
|
|
||||||
Under "Qt", find the latest Qt 6.x release.
|
Under "Qt", find the latest Qt 6.x release.
|
||||||
|
|
||||||
Under this release (e.g. Qt 6.5.0), select the target platform:
|
Under this release (e.g. Qt 6.5.0), select the target platform:
|
||||||
- On macOS, it is just called "macOS".
|
- On macOS, it is just called "macOS".
|
||||||
- On Windows, it is called "MSVC 2019 64-bit" (for 64-bit x86 CPUs). MinGW has not been tested.
|
- On Windows, it is called "MSVC 2019 64-bit" (for 64-bit x86 CPUs). MinGW has not been tested.
|
||||||
|
|
||||||
Under this release, select the following additional components:
|
Under this release, select the following additional components:
|
||||||
- Qt Quick 3D
|
- Qt 5 Compatibility Module
|
||||||
- Qt Wayland Compositor (for Linux only)
|
- Additional Libraries:
|
||||||
- Qt 5 Compatibility Module
|
- Qt HTTP Server
|
||||||
- Qt Shader Tools
|
- Qt PDF
|
||||||
- Additional Libraries:
|
- Qt Debug information Files
|
||||||
- Qt HTTP Server
|
|
||||||
- Qt PDF
|
Under Developer and Designer Tools, select the following components:
|
||||||
- Qt Debug information Files
|
- Qt Creator
|
||||||
|
- Qt Creator CDB Debugger Support (for Windows only)
|
||||||
Under Developer and Designer Tools, select the following components:
|
- Debugging Tools for Windows (for Windows only)
|
||||||
- Qt Creator
|
- CMake
|
||||||
- Qt Creator CDB Debugger Support (for Windows only)
|
- Ninja
|
||||||
- Debugging Tools for Windows (for Windows only)
|
|
||||||
- CMake
|
Agree to the license and complete the installation.
|
||||||
- Ninja
|
|
||||||
|
## Download the source code
|
||||||
Agree to the license and complete the installation.
|
|
||||||
|
You must use git to download the source code for gpt4all:
|
||||||
## Download the source code
|
```
|
||||||
|
git clone --recurse-submodules https://github.com/nomic-ai/gpt4all
|
||||||
You must use git to download the source code for gpt4all:
|
```
|
||||||
```
|
|
||||||
git clone --recurse-submodules https://github.com/nomic-ai/gpt4all
|
Note the use of --recurse-submodules, which makes sure the necessary dependencies are downloaded inside the repo. This is why you cannot simply download a zip archive.
|
||||||
```
|
|
||||||
|
Windows users: To install git for Windows, see https://git-scm.com/downloads. Once it is installed, you should be able to shift-right click in any folder, "Open PowerShell window here" (or similar, depending on the version of Windows), and run the above command.
|
||||||
Note the use of --recurse-submodules, which makes sure the necessary dependencies are downloaded inside the repo. This is why you cannot simply download a zip archive.
|
|
||||||
|
## Open gpt4all-chat in Qt Creator
|
||||||
Windows users: To install git for Windows, see https://git-scm.com/downloads. Once it is installed, you should be able to shift-right click in any folder, "Open PowerShell window here" (or similar, depending on the version of Windows), and run the above command.
|
|
||||||
|
Open Qt Creator. Navigate to File > Open File or Project, find the "gpt4all-chat" folder inside the freshly cloned repository, and select CMakeLists.txt.
|
||||||
## Open gpt4all-chat in Qt Creator
|
|
||||||
|
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/3d3e2743-2a1d-43d6-9e55-62f7f4306de7)
|
||||||
Open Qt Creator. Navigate to File > Open File or Project, find the "gpt4all-chat" folder inside the freshly cloned repository, and select CMakeLists.txt.
|
|
||||||
|
## Configure project
|
||||||
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/3d3e2743-2a1d-43d6-9e55-62f7f4306de7)
|
|
||||||
|
You can now expand the "Details" section next to the build kit. It is best to uncheck all but one build configuration, e.g. "Release", which will produce optimized binaries that are not useful for debugging.
|
||||||
## Configure project
|
|
||||||
|
Click "Configure Project", and wait for it to complete.
|
||||||
You can now expand the "Details" section next to the build kit. It is best to uncheck all but one build configuration, e.g. "Release", which will produce optimized binaries that are not useful for debugging.
|
|
||||||
|
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/44d5aafb-a95d-434b-ba2a-a3138c0e49a0)
|
||||||
Click "Configure Project", and wait for it to complete.
|
|
||||||
|
## Build project
|
||||||
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/44d5aafb-a95d-434b-ba2a-a3138c0e49a0)
|
|
||||||
|
Now that the project has been configured, click the hammer button on the left sidebar to build the project.
|
||||||
## Build project
|
|
||||||
|
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/43cd7b42-32f0-4efa-9612-d51f85637103)
|
||||||
Now that the project has been configured, click the hammer button on the left sidebar to build the project.
|
|
||||||
|
## Run project
|
||||||
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/43cd7b42-32f0-4efa-9612-d51f85637103)
|
|
||||||
|
Click the play button on the left sidebar to run the Chat UI.
|
||||||
## Run project
|
|
||||||
|
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/611ea795-bdcd-4feb-a466-eb1c2e936e7e)
|
||||||
Click the play button on the left sidebar to run the Chat UI.
|
|
||||||
|
## Updating the downloaded source code
|
||||||
![image](https://github.com/nomic-ai/gpt4all-chat/assets/10168/611ea795-bdcd-4feb-a466-eb1c2e936e7e)
|
|
||||||
|
You do not need to make a fresh clone of the source code every time. To update it, you may open a terminal/command prompt in the repository, run `git pull`, and then `git submodule update --init --recursive`.
|
||||||
## Updating the downloaded source code
|
|
||||||
|
|
||||||
You do not need to make a fresh clone of the source code every time. To update it, you may open a terminal/command prompt in the repository, run `git pull`, and then `git submodule update --init --recursive`.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user