From e1baed3373276350e76374d93fbe4d6cb591a954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Wed, 24 Aug 2022 16:03:43 +0200 Subject: [PATCH] Build server packages using Docker --- INSTALLER.md | 213 ++++++------------ pkg-scripts/README.md | 34 +-- pkg-scripts/make-deb-server | 100 ++++---- pkg-scripts/make-rpm-server | 90 +++++--- pkg-scripts/new-server | 30 +-- pkg-scripts/overte-assignment-client.service | 18 ++ pkg-scripts/overte-assignment-client@.service | 20 ++ pkg-scripts/overte-domain-server.service | 17 ++ pkg-scripts/overte-domain-server@.service | 19 ++ ...rver.service => overte-ice-server.service} | 12 +- ...er@.service => overte-ice-server@.service} | 14 +- pkg-scripts/overte-server.spec | 141 ++++++++++++ pkg-scripts/overte-server.target | 11 + pkg-scripts/overte-server@.target | 11 + pkg-scripts/server-compat | 1 + pkg-scripts/server-control | 9 +- pkg-scripts/server-postinst | 42 ++-- pkg-scripts/server-postrm | 4 +- pkg-scripts/server-prerm | 6 +- pkg-scripts/server-rules | 36 +-- .../vircadia-assignment-client.service | 18 -- .../vircadia-assignment-client@.service | 20 -- pkg-scripts/vircadia-domain-server.service | 17 -- pkg-scripts/vircadia-domain-server@.service | 19 -- pkg-scripts/vircadia-server.spec | 168 -------------- pkg-scripts/vircadia-server.target | 11 - pkg-scripts/vircadia-server@.target | 11 - .../deb_package/Dockerfile_build_debian-11 | 38 ++++ .../deb_package/Dockerfile_build_ubuntu-18.04 | 41 ++++ .../deb_package/Dockerfile_build_ubuntu-20.04 | 36 +++ .../deb_package/Dockerfile_build_ubuntu-22.04 | 38 ++++ .../rpm_package/Dockerfile_build_fedora-36 | 14 ++ .../rpm_package/Dockerfile_build_rockylinux-9 | 14 ++ 33 files changed, 687 insertions(+), 586 deletions(-) create mode 100644 pkg-scripts/overte-assignment-client.service create mode 100644 pkg-scripts/overte-assignment-client@.service create mode 100644 pkg-scripts/overte-domain-server.service create mode 100644 pkg-scripts/overte-domain-server@.service rename pkg-scripts/{vircadia-ice-server.service => overte-ice-server.service} (71%) rename pkg-scripts/{vircadia-ice-server@.service => overte-ice-server@.service} (63%) create mode 100644 pkg-scripts/overte-server.spec create mode 100644 pkg-scripts/overte-server.target create mode 100644 pkg-scripts/overte-server@.target create mode 100644 pkg-scripts/server-compat delete mode 100644 pkg-scripts/vircadia-assignment-client.service delete mode 100644 pkg-scripts/vircadia-assignment-client@.service delete mode 100644 pkg-scripts/vircadia-domain-server.service delete mode 100644 pkg-scripts/vircadia-domain-server@.service delete mode 100644 pkg-scripts/vircadia-server.spec delete mode 100644 pkg-scripts/vircadia-server.target delete mode 100644 pkg-scripts/vircadia-server@.target create mode 100644 tools/ci-scripts/deb_package/Dockerfile_build_debian-11 create mode 100644 tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-18.04 create mode 100644 tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-20.04 create mode 100644 tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-22.04 create mode 100644 tools/ci-scripts/rpm_package/Dockerfile_build_fedora-36 create mode 100644 tools/ci-scripts/rpm_package/Dockerfile_build_rockylinux-9 diff --git a/INSTALLER.md b/INSTALLER.md index bfdbe105da..1295100701 100644 --- a/INSTALLER.md +++ b/INSTALLER.md @@ -117,153 +117,80 @@ For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PAS 1. Navigate to your build folder with your terminal. 2. `make -j4`, you can change the number to match the number of threads you would like to use. 3. `make package` to create the package. - + ### Linux #### Server -##### Ubuntu 18.04 | .deb +##### Debian package -1. Ensure you are using an Ubuntu 18.04 system. There is no required minimum to the amount of CPU cores needed, however it's recommended that you use as many as you have available in order to have an efficient experience. - ```text - Recommended CPU Cores: 16 - Minimum Disk Space: 40GB - ``` -3. Get and bootstrap Overte Builder. - ```bash - git clone https://github.com/overte-org/overte-builder.git - cd overte-builder - ``` -3. Run Overte Builder. - ```bash - ./vircadia-builder --build server - ``` -4. If Overte Builder needed to install dependencies and asks you to run it again then do so. Otherwise, skip to the next step. - ```bash - ./vircadia-builder --build server - ``` -5. Overte Builder will ask you to configure it to build the server. The values will be prefilled with defaults, the following steps will explain what they are and what you might want to put. *Advanced users: See [here](BUILD.md#possible-environment-variables) for possible environment variables and settings.* -6. This value is the Git repository of Overte. You can set this URL to your fork of the Overte repository if you need to. - ```text - Git repository: https://github.com/overte-org/overte/ - ``` -7. This value is the tag on the repository. If you would like to use a specific version of Overte, typically tags will be named like this: "v2021.1.0-rc" - ```text - Git tag: master - # OR, for example - Git tag: v2021.1.0-rc - ``` -8. This value is the release type. For example, the options are `production`, `pr`, or `dev`. If you are making a build for yourself and others to use then use `production`. - ```text - Release type: DEV - # OR, for example we recommend you use - Release type: PRODUCTION - ``` -9. This value is the release version. Release numbers should be in a format of `YEAR-MAJORVERSION-MINORVERSION` which might look like this: `2021.1.0`. - ```text - Release number: 2021.1.0 - ``` -10. This value is the build number. We typically use the hash of the most recent commit on that Git tag which might look like this: `fd6973b`. - ```text - Build number: fd6973b - ``` -11. This value is the directory that Overte will get installed to. You should leave this as the default value unless you are an advanced user. - ```text - Installation dir: /home/ubuntu/Vircadia - ``` -12. This value is the number of CPU cores that the Overte Builder will use to compile the Overte server. By default it will use all cores available on your build server. You should leave this as the default value it gives you for your build server. - ```text - CPU cores to use for Overte: 16 - ``` -13. This value is the number of CPU cores that the Overte Builder will use to compile Qt5 (a required component for Overte). By default it will use all cores available on your build server. You should leave this as the default value it gives you for your build server. - ```text - CPU cores to use for Qt5: 16 - ``` -14. It will ask you if you would like to proceed with the specified values. If you're happy with the configuration, type `yes`, otherwise enter `no` and press enter to start over. You can press `Ctrl` + `C` simultaneously on your keyboard to exit. -15. Overte Builder will now run, it may take a while. See this [table](https://github.com/overte-org/overte-builder#how-long-does-it-take) for estimated times. -16. Navigate to the `pkg-scripts` directory. - ```bash - cd ../Vircadia/source/pkg-scripts/ - ``` -17. Generate the .deb package. Set `DEBVERSION` to the same version you entered for the `Release number` on Overte Builder. Set `DEBEMAIL` and `DEBFULLNAME` to your own information to be packaged with the release. *The version cannot begin with a letter and cannot include underscores or dashes in it.* - ```bash - DEBVERSION="2021.1.0" DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server - ``` -18. If successful, the generated .deb package will be in the `pkg-scripts` folder. +###### Building Overte server Debian packages using Docker -##### Amazon Linux 2 | .rpm (Deprecated) +1. Build Docker image as instructed in the relevant Dockerfile in [tools/ci-scripts/deb_package/](tools/ci-scripts/deb_package/) -1. Ensure you are using an Amazon Linux 2 system. You will need many CPU cores to complete this process within a reasonable time. As an alternative to AWS EC2, you may use a [virtual machine](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-2-virtual-machine.html). Here are the recommended specs: - ```text - AWS EC2 Instance Type: C5a.4xlarge - Recommended CPU Cores: 16 - Minimum Disk Space: 40GB - ``` -2. Update the system and install dependencies. - ```bash - sudo yum update -y - sudo yum install git -y - sudo yum install rpm-build - ``` -3. Get and bootstrap Overte Builder. - ```bash - git clone https://github.com/overte-org/overte-builder.git - cd overte-builder - sudo ./install_amazon_linux_deps.sh - ``` -4. Run Overte Builder. - ```bash - ./vircadia-builder --build server - ``` -5. If Overte Builder needed to install dependencies and asks you to run it again then do so. Otherwise, skip to the next step. - ```bash - ./vircadia-builder --build server - ``` -6. Overte Builder will ask you to configure it to build the server. The values will be prefilled with defaults, the following steps will explain what they are and what you might want to put. *Advanced users: See [here](BUILD.md#possible-environment-variables) for possible environment variables and settings.* -7. This value is the Git repository of Overte. You can set this URL to your fork of the Overte repository if you need to. - ```text - Git repository: https://github.com/overte-org/overte/ - ``` -8. This value is the tag on the repository. If you would like to use a specific version of Overte, typically tags will be named like this: "v2021.1.0-rc". - ```text - Git tag: master - # OR, for example - Git tag: v2021.1.0-rc - ``` -9. This value is the release type. For example, the options are `production`, `pr`, or `dev`. If you are making a build for yourself and others to use then use `production`. - ```text - Release type: DEV - # OR, for example we recommend you use - Release type: PRODUCTION - ``` -10. This value is the release version. Release numbers typically should be in a format of `YEAR-MAJORVERSION-MINORVERSION` which might look like this: `2021.1.0`. - ```text - Release number: 2021.1.0 - ``` -11. This value is the build number. We typically use the hash of the most recent commit on that Git tag which might look like this: `fd6973b`. - ```text - Build number: fd6973b - ``` -12. This value is the directory that Overte will get installed to. You should leave this as the default value unless you are an advanced user. - ```text - Installation dir: /root/Vircadia - ``` -13. This value is the number of CPU cores that the Overte Builder will use to compile the Overte server. By default it will use all cores available on your build server given you have enough memory. You should leave this as the default value it gives you for your build server. - ```text - CPU cores to use for Overte: 16 - ``` -14. This value is the number of CPU cores that the Overte Builder will use to compile Qt5 (a required component for Overte). By default it will use all cores available on your build server given you have enough memory. You should leave this as the default value it gives you for your build server. - ```text - CPU cores to use for Qt5: 16 - ``` -15. It will ask you if you would like to proceed with the specified values. If you're happy with the configuration, type `yes`, otherwise enter `no` and press enter to start over. You can press `Ctrl` + `C` simultaneously on your keyboard to exit. -16. Overte Builder will now run, it may take a while. See this [table](https://github.com/overte-org/overte-builder#how-long-does-it-take) for estimated times. -17. Navigate to the `pkg-scripts` directory. - ```bash - cd ../Vircadia/source/pkg-scripts/ - ``` -18. Generate the .rpm package. Set `RPMVERSION` to the same version you entered for the `Release number` on Overte Builder. *The version cannot begin with a letter and cannot include underscores or dashes in it.* - ```bash - RPMVERSION="2021.1.0" ./make-rpm-server - ``` -19. If successful, the generated .rpm package will be in the `pkg-scripts` folder of the Overte source files. +2. Create/Start container + Example: `docker run -v $(pwd)/../../..:/overte -it juliangro/overte-server-build:0.1.1-debian-11` + +3. Prepare build environment +```bash +cd overte +mkdir build +cd build +rm -rf * +``` +Add `PRODUCTION_BUILD=1` to below command for release and release candidate builds. +```bash +VIRCADIA_USE_SYSTEM_QT=true cmake .. -DVIRCADIA_CPU_ARCHITECTURE=-msse3 -DVCPKG_BUILD_TYPE=release -DSERVER_ONLY=true -DBUILD_TOOLS=true +``` + +4. Build +```bash +make domain-server assignment-client oven -j$(nproc) +``` + +5. Create Debian package +```bash +cd ../pkg-scripts +``` +For Debian 11 and Ubuntu 22.04: +```bash +OVERTE_USE_SYSTEM_QT="true" DEBVERSION="1-experimental-debian-11" DEBEMAIL="julian.gro@overte.org" DEBFULLNAME="Julian Groß" ./make-deb-server +``` +For Ubuntu 18.04 and 20.04: +```bash +DEBVERSION="1-experimental-ubuntu-18.04" DEBEMAIL="julian.gro@overte.org" DEBFULLNAME="Julian Groß" ./make-deb-server +``` + +##### RPM package + +###### Building Overte server RPM packages using Docker + +1. Build Docker image as instructed in the relevant Dockerfile in [tools/ci-scripts/deb_package/](tools/ci-scripts/rpm_package/) + +2. Create/Start container + Example: `docker run -v $(pwd)/../../..:/overte -it juliangro/overte-server-build:0.1.1-fedora-36` + +3. Prepare build environment +```bash +cd overte +mkdir build +cd build +rm -rf * +``` +Add `PRODUCTION_BUILD=1` to below command for release and release candidate builds. +```bash +VIRCADIA_USE_SYSTEM_QT=true cmake .. -DVIRCADIA_CPU_ARCHITECTURE=-msse3 -DVCPKG_BUILD_TYPE=release -DSERVER_ONLY=true -DBUILD_TOOLS=true +``` + +4. Build +```bash +make domain-server assignment-client oven -j$(nproc) +``` + +5. Create RPM package +```bash +cd ../pkg-scripts +``` +```bash +OVERTE_USE_SYSTEM_QT="true" RPMVERSION="1.experimental" ./make-rpm-server +``` diff --git a/pkg-scripts/README.md b/pkg-scripts/README.md index 7e7a8c1da2..fa21a53f07 100644 --- a/pkg-scripts/README.md +++ b/pkg-scripts/README.md @@ -12,18 +12,18 @@ base folder/ ``` These scripts assume that the current directory is the pkg-scripts folder inside of the source directory -and that the base folder can be reached by going to `../..`. This may not work if pkg-scripts is a symlink; adding an VIRCADIA=~/Vircadia to the beginning of the commandline will override where it looks for the base folder. +and that the base folder can be reached by going to `../..`. This may not work if pkg-scripts is a symlink; adding an OVERTE=~/Overte to the beginning of the commandline will override where it looks for the base folder. ## Ubuntu ``` -DEBVERSION="Semver e.g. 2021.1.3" DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server +DEBVERSION="2021.1.3-ubuntu-18.04" DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server ``` This script will retrieve the current git commit date and hash and append it to your specified version. It will attempt construct a .deb file in the pkg-scripts folder ## Amazon Linux 2 - + You will need to install `rpm-build` if you have not already. ``` sudo yum install rpm-build @@ -49,29 +49,29 @@ This script will attempt to create a docker container. The following directory structure is created for binaries: ``` -/opt/vircadia - executables -/opt/vircadia/lib - private shared libraries required for executables -/opt/vircadia/resources - files required by domain-server administrative website -/opt/vircadia/plugins - files required by assignment-client, mainly for audio codecs +/opt/overte - executables +/opt/overte/lib - private shared libraries required for executables +/opt/overte/resources - files required by domain-server administrative website +/opt/overte/plugins - files required by assignment-client, mainly for audio codecs ``` ### Services The following systemd services are installed in `/usr/lib/systemd/system`: ``` -vircadia-assignment-client.service -vircadia-domain-server.service -vircadia-server.target - used to launch/shutdown the two prior services -vircadia-assignment-client@.service -vircadia-domain-server@.service -vircadia-server@.target - used to launch/shutdown the two prior services +overte-assignment-client.service +overte-domain-server.service +overte-server.target - used to launch/shutdown the two prior services +overte-assignment-client@.service +overte-domain-server@.service +overte-server@.target - used to launch/shutdown the two prior services ``` The top three services in this list are the "normal" services that launch Overte in the typical fashion. The bottom three services are "template" services designed to permit multiple services to be installed and running on a single machine. -The script `/opt/vircadia/new-server serverName basePort` will do the necessary +The script `/opt/overte/new-server serverName basePort` will do the necessary setup for a new domain with the specified server name and port. Upon installation the package will create and launch a domain named "default" at base port 40100. The domain name here has nothing to do with the name people will use to find your @@ -82,7 +82,7 @@ used to configure and run the domain on your server. The server stores its files in the following locations: ``` -/var/lib/vircadia/.local - "unnamed" services (the default location for Overte servers) -/var/lib/vircadia/serverName - "named" (template) domains -/etc/opt/vircadia - environment variables when launching named domains +/var/lib/overte/.local - "unnamed" services (the default location for Overte servers) +/var/lib/overte/serverName - "named" (template) domains +/etc/opt/overte - environment variables when launching named domains ``` diff --git a/pkg-scripts/make-deb-server b/pkg-scripts/make-deb-server index 16aeb6c99f..8fe89b95aa 100755 --- a/pkg-scripts/make-deb-server +++ b/pkg-scripts/make-deb-server @@ -1,28 +1,24 @@ #!/bin/sh -if [ "$VIRCADIA" = "" ]; then - VIRCADIA=`realpath ../..` - QT5_LIBS=`realpath ../../../vircadia-files/qt/qt5-install/lib` +if [ "$OVERTE" = "" ]; then + OVERTE=`realpath ..` + QT5_LIBS=`realpath ~/vircadia-files/qt/qt5-install/lib` fi -GITDATE=`git -C $VIRCADIA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"` -GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7` -VERSION=$DEBVERSION-$GITDATE-$GITCOMMIT - sudo apt-get install chrpath binutils dh-make -DEB_BUILD_ROOT=temp-make-deb/vircadia-server_$VERSION-0ubuntu1 +DEB_BUILD_ROOT=temp-make-deb/overte-server_$DEBVERSION rm -r temp-make-deb mkdir -p $DEB_BUILD_ROOT # copy the files over -cp $VIRCADIA/build/assignment-client/assignment-client $DEB_BUILD_ROOT -cp $VIRCADIA/build/domain-server/domain-server $DEB_BUILD_ROOT -cp $VIRCADIA/build/tools/oven/oven $DEB_BUILD_ROOT -cp $VIRCADIA/build/libraries/*/*.so $DEB_BUILD_ROOT -#cp $VIRCADIA/build/ice-server/ice-server $DEB_BUILD_ROOT +cp $OVERTE/build/assignment-client/assignment-client $DEB_BUILD_ROOT +cp $OVERTE/build/domain-server/domain-server $DEB_BUILD_ROOT +cp $OVERTE/build/tools/oven/oven $DEB_BUILD_ROOT # Oven is required for pre-baking assets +cp $OVERTE/build/libraries/*/*.so $DEB_BUILD_ROOT +#cp $OVERTE/build/ice-server/ice-server $DEB_BUILD_ROOT chrpath -d $DEB_BUILD_ROOT/* -if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then +if [ "$OVERTE_USE_SYSTEM_QT" = "" ]; then cp $QT5_LIBS/libQt5Network.so.*.*.* $DEB_BUILD_ROOT cp $QT5_LIBS/libQt5Core.so.*.*.* $DEB_BUILD_ROOT cp $QT5_LIBS/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT @@ -34,64 +30,63 @@ if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then chmod +x $DEB_BUILD_ROOT/*.so.*.*.* fi strip --strip-all $DEB_BUILD_ROOT/* -cp $VIRCADIA/source/pkg-scripts/new-server $DEB_BUILD_ROOT -cp -a $VIRCADIA/source/domain-server/resources $DEB_BUILD_ROOT +cp $OVERTE/pkg-scripts/new-server $DEB_BUILD_ROOT +cp -a $OVERTE/domain-server/resources $DEB_BUILD_ROOT find $DEB_BUILD_ROOT/resources -name ".gitignore" -delete find $DEB_BUILD_ROOT/resources -type f -executable -exec sh -c 'chmod -x {}' \; -cp $VIRCADIA/source/README.md $DEB_BUILD_ROOT -cp $VIRCADIA/source/README_hifi.md $DEB_BUILD_ROOT -cp -a $VIRCADIA/build/assignment-client/plugins $DEB_BUILD_ROOT +cp $OVERTE/README.md $DEB_BUILD_ROOT +cp -a $OVERTE/build/assignment-client/plugins $DEB_BUILD_ROOT strip --strip-all $DEB_BUILD_ROOT/plugins/*.so strip --strip-all $DEB_BUILD_ROOT/plugins/*/*.so #begin the debian package construction cd $DEB_BUILD_ROOT -dh_make -p vircadia-server_$VERSION-0ubuntu1 -c apache -s --createorig -y +dh_make -p overte-server_$DEBVERSION -c apache -s --createorig -y -cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client.service debian -cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client@.service debian -cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server.service debian -cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server@.service debian -#cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server.service debian -#cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server@.service debian -cp $VIRCADIA/source/pkg-scripts/vircadia-server.target debian -cp $VIRCADIA/source/pkg-scripts/vircadia-server@.target debian +cp $OVERTE/pkg-scripts/overte-assignment-client.service debian +cp $OVERTE/pkg-scripts/overte-assignment-client@.service debian +cp $OVERTE/pkg-scripts/overte-domain-server.service debian +cp $OVERTE/pkg-scripts/overte-domain-server@.service debian +#cp $OVERTE/pkg-scripts/overte-ice-server.service debian +#cp $OVERTE/pkg-scripts/overte-ice-server@.service debian +cp $OVERTE/pkg-scripts/overte-server.target debian +cp $OVERTE/pkg-scripts/overte-server@.target debian -cp $VIRCADIA/source/pkg-scripts/server-control debian/control -cp $VIRCADIA/source/pkg-scripts/server-prerm debian/prerm -cp $VIRCADIA/source/pkg-scripts/server-postinst debian/postinst -cp $VIRCADIA/source/pkg-scripts/server-postrm debian/postrm -cp $VIRCADIA/source/LICENSE debian/copyright +cp $OVERTE/pkg-scripts/server-compat debian/compat +cp $OVERTE/pkg-scripts/server-control debian/control +cp $OVERTE/pkg-scripts/server-prerm debian/prerm +cp $OVERTE/pkg-scripts/server-postinst debian/postinst +cp $OVERTE/pkg-scripts/server-postrm debian/postrm +cp $OVERTE/LICENSE debian/copyright -echo /etc/opt/vircadia > debian/dirs -echo /var/lib/vircadia >> debian/dirs +echo /etc/opt/overte > debian/dirs +echo /var/lib/overte >> debian/dirs echo README.md > debian/docs -echo README_hifi.md >> debian/docs -echo assignment-client opt/vircadia > debian/install -echo domain-server opt/vircadia >> debian/install -echo oven opt/vircadia >> debian/install -#echo ice-server opt/vircadia >> debian/install -echo new-server opt/vircadia >> debian/install -if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then +echo assignment-client opt/overte > debian/install +echo domain-server opt/overte >> debian/install +echo oven opt/overte >> debian/install +#echo ice-server opt/overte >> debian/install +echo new-server opt/overte >> debian/install +if [ "$OVERTE_USE_SYSTEM_QT" = "" ]; then for so in *.so.*.*.*; do - echo $so opt/vircadia/lib >> debian/install + echo $so opt/overte/lib >> debian/install done fi for so in *.so; do - echo $so opt/vircadia/lib >> debian/install + echo $so opt/overte/lib >> debian/install done #for service in *.service; do -# echo $service opt/vircadia/systemd >> debian/install +# echo $service opt/overte/systemd >> debian/install #done #for target in *.target; do -# echo $target opt/vircadia/systemd >> debian/install +# echo $target opt/overte/systemd >> debian/install #done -find resources -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \; -find plugins -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \; +find resources -type f -exec sh -c 'echo {} opt/overte/$(dirname "{}") >> debian/install' \; +find plugins -type f -exec sh -c 'echo {} opt/overte/$(dirname "{}") >> debian/install' \; -if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then +if [ "$OVERTE_USE_SYSTEM_QT" = "" ]; then SOFILES=`ls *.so *.so.*.*.* | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s` else SOFILES=`ls *.so | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s` @@ -101,11 +96,8 @@ DEPENDS=`find * -path debian -prune -o -type f -executable -exec sh -c 'objdump | awk '{print $2}' | sort | uniq | egrep -v "^($SOFILES)$" \ | xargs -n 1 -I {} sh -c 'dpkg -S {} | head -n 1' | cut -d ':' -f 1 | sort | uniq | paste -d',' -s` -cp $VIRCADIA/source/pkg-scripts/server-rules debian/rules -sed "s/{DEPENDS}/$DEPENDS/" $VIRCADIA/source/pkg-scripts/server-control > debian/control +cp $OVERTE/pkg-scripts/server-rules debian/rules +sed "s/{DEPENDS}/$DEPENDS/" $OVERTE/pkg-scripts/server-control > debian/control dpkg-buildpackage -us -uc -cd .. -mv *.deb .. -cd .. diff --git a/pkg-scripts/make-rpm-server b/pkg-scripts/make-rpm-server index 8bbc61593e..2ce339bd54 100755 --- a/pkg-scripts/make-rpm-server +++ b/pkg-scripts/make-rpm-server @@ -1,42 +1,50 @@ #!/bin/sh -if [ "$VIRCADIA" = "" ]; then - VIRCADIA=`realpath ../..` +if [ "$OVERTE" = "" ]; then + OVERTE=`realpath ..` + QT5_LIBS=`realpath ~/vircadia-files/qt/qt5-install/lib` fi -GITDATE=`git -C $VIRCADIA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"` -GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7` -VERSION=${RPMVERSION}_${GITDATE}_${GITCOMMIT} +VERSION=${RPMVERSION} + +if [ "$OVERTE_USE_SYSTEM_QT" = "" ]; then SOFILES=`ls \ - $VIRCADIA/build/libraries/*/*.so \ - $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Quick.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \ + $OVERTE/build/libraries/*/*.so \ + $OVERTE/qt5-install/lib/libQt5Network.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5Core.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5Widgets.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5Gui.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5Script.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5WebSockets.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5Qml.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5Quick.so.*.*.* \ + $OVERTE/qt5-install/lib/libQt5ScriptTools.so.*.*.* \ | sed 's/\./\\\./g' \ | paste -d'|' -s` +else +SOFILES=`ls \ + $OVERTE/build/libraries/*/*.so \ + | sed 's/\./\\\./g' \ + | paste -d'|' -s` +fi +if [ "$OVERTE_USE_SYSTEM_QT" = "" ]; then DEPENDS=mesa-libGL,`ls \ - $VIRCADIA/build/assignment-client/assignment-client \ - $VIRCADIA/build/domain-server/domain-server \ - $VIRCADIA/build/tools/oven/oven \ - $VIRCADIA/build/libraries/*/*.so \ - $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5Quick.so.*.*.* \ - $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \ - $VIRCADIA/build/assignment-client/plugins/*.so \ - $VIRCADIA/build/assignment-client/plugins/*/*.so \ + $OVERTE/build/assignment-client/assignment-client \ + $OVERTE/build/domain-server/domain-server \ + $OVERTE/build/tools/oven/oven \ + $OVERTE/build/libraries/*/*.so \ + $QT5_LIBS/libQt5Network.so.*.*.* \ + $QT5_LIBS/libQt5Core.so.*.*.* \ + $QT5_LIBS/libQt5Widgets.so.*.*.* \ + $QT5_LIBS/libQt5Gui.so.*.*.* \ + $QT5_LIBS/libQt5Script.so.*.*.* \ + $QT5_LIBS/libQt5WebSockets.so.*.*.* \ + $QT5_LIBS/libQt5Qml.so.*.*.* \ + $QT5_LIBS/libQt5Quick.so.*.*.* \ + $QT5_LIBS/libQt5ScriptTools.so.*.*.* \ + $OVERTE/build/assignment-client/plugins/*.so \ + $OVERTE/build/assignment-client/plugins/*/*.so \ | xargs -I {} sh -c 'objdump -p {} | grep NEEDED' \ | awk '{print $2}' \ | sort | uniq \ @@ -46,9 +54,27 @@ DEPENDS=mesa-libGL,`ls \ | xargs rpm -qf --queryformat "%{NAME}\n" \ | sort | uniq \ | paste -d',' -s` +else +DEPENDS=mesa-libGL,`ls \ + $OVERTE/build/assignment-client/assignment-client \ + $OVERTE/build/domain-server/domain-server \ + $OVERTE/build/tools/oven/oven \ + $OVERTE/build/libraries/*/*.so \ + $OVERTE/build/assignment-client/plugins/*.so \ + $OVERTE/build/assignment-client/plugins/*/*.so \ + | xargs -I {} sh -c 'objdump -p {} | grep NEEDED' \ + | awk '{print $2}' \ + | sort | uniq \ + | egrep -v "^($SOFILES)$" \ + | grep -v ^libGL \ + | xargs -I {} sh -c "ldconfig -p | grep {} | tr ' ' '\n' | grep /" \ + | xargs rpm -qf --queryformat "%{NAME}\n" \ + | sort | uniq \ + | paste -d',' -s` +fi sudo yum install chrpath -export VERSION DEPENDS VIRCADIA -rpmbuild --target x86_64 -bb ./vircadia-server.spec +export VERSION DEPENDS OVERTE +rpmbuild --target x86_64 -bb ./overte-server.spec mv ~/rpmbuild/RPMS/x86_64/*.rpm . diff --git a/pkg-scripts/new-server b/pkg-scripts/new-server index e05ae4add6..7f40a2ba3d 100755 --- a/pkg-scripts/new-server +++ b/pkg-scripts/new-server @@ -8,7 +8,7 @@ if [ -z "$1" ] || [ -z "$2" ]; then echo " Four contiguous port numbers are allocated, these must not overlap with other running services on this machine" echo echo "Launching a server created by this script is done with:" - echo " sudo systemctl start vircadia-server@{name}.target" + echo " sudo systemctl start overte-server@{name}.target" echo exit 1 fi @@ -20,30 +20,30 @@ if [ "$(id -u)" -ne 0 ]; then exit 1 fi -if [ -d "/var/lib/vircadia/$1" ]; then - echo "Path /var/lib/vircadia/$1 already exists" +if [ -d "/var/lib/overte/$1" ]; then + echo "Path /var/lib/overte/$1 already exists" echo echo "Please remove this path first if you wish to recreate this server" exit 2 fi -mkdir -p /var/lib/vircadia/$1/.local/share -ln -s ../.. /var/lib/vircadia/$1/.local/share/Vircadia\ -\ dev -ln -s ../.. /var/lib/vircadia/$1/.local/share/Vircadia -mkdir -p /var/lib/vircadia/$1/domain-server -echo "{\"metaverse\": {\"local_port\": $(($2 + 2))},\"version\": 2.4}" > /var/lib/vircadia/$1/domain-server/config.json -chown -R vircadia.vircadia /var/lib/vircadia/$1 +mkdir -p /var/lib/overte/$1/.local/share +ln -s ../.. /var/lib/overte/$1/.local/share/Vircadia\ -\ dev +ln -s ../.. /var/lib/overte/$1/.local/share/Vircadia +mkdir -p /var/lib/overte/$1/domain-server +echo "{\"metaverse\": {\"local_port\": $(($2 + 2))},\"version\": 2.4}" > /var/lib/overte/$1/domain-server/config.json +chown -R overte.overte /var/lib/overte/$1 -echo HIFI_DOMAIN_SERVER_HTTP_PORT=$2 > /etc/opt/vircadia/$1.conf -echo HIFI_DOMAIN_SERVER_HTTPS_PORT=$(($2 + 1)) >> /etc/opt/vircadia/$1.conf -echo HIFI_DOMAIN_SERVER_PORT=$(($2 + 2)) >> /etc/opt/vircadia/$1.conf -echo HIFI_DOMAIN_SERVER_DTLS_PORT=$(($2 + 3)) >> /etc/opt/vircadia/$1.conf +echo HIFI_DOMAIN_SERVER_HTTP_PORT=$2 > /etc/opt/overte/$1.conf +echo HIFI_DOMAIN_SERVER_HTTPS_PORT=$(($2 + 1)) >> /etc/opt/overte/$1.conf +echo HIFI_DOMAIN_SERVER_PORT=$(($2 + 2)) >> /etc/opt/overte/$1.conf +echo HIFI_DOMAIN_SERVER_DTLS_PORT=$(($2 + 3)) >> /etc/opt/overte/$1.conf echo "A new Overte server has been created with the name of '$1'" echo echo "To launch it:" -echo " sudo systemctl start vircadia-server@$1.target" +echo " sudo systemctl start overte-server@$1.target" echo "To have it launch at system start:" -echo " sudo systemctl enable vircadia-server@$1.target" +echo " sudo systemctl enable overte-server@$1.target" echo "The server configuration console is available at:" echo " http://localhost:$2" diff --git a/pkg-scripts/overte-assignment-client.service b/pkg-scripts/overte-assignment-client.service new file mode 100644 index 0000000000..4910fad4a6 --- /dev/null +++ b/pkg-scripts/overte-assignment-client.service @@ -0,0 +1,18 @@ +[Unit] +Description=Assignment client service for the Overte server +After=network.target +PartOf=overte-server.target + +[Service] +Restart=always + +WorkingDirectory=/opt/overte +Environment="LD_LIBRARY_PATH=/opt/overte/lib" +User=overte +Group=overte +#LimitCORE=infinity +#ExecStart=/opt/overte/assignment-client -n 6 +ExecStart=/opt/overte/assignment-client --min 6 --max 20 + +[Install] +WantedBy=multi-user.target diff --git a/pkg-scripts/overte-assignment-client@.service b/pkg-scripts/overte-assignment-client@.service new file mode 100644 index 0000000000..2815355aeb --- /dev/null +++ b/pkg-scripts/overte-assignment-client@.service @@ -0,0 +1,20 @@ +[Unit] +Description=Assignment client service for the Overte server +After=network.target +PartOf=overte-server@%i.target + +[Service] +Restart=always + +WorkingDirectory=/opt/overte +EnvironmentFile=/etc/opt/overte/%i.conf +Environment="LD_LIBRARY_PATH=/opt/overte/lib" "HOME=/var/lib/overte/%i" +PrivateTmp=true +User=overte +Group=overte +#LimitCORE=infinity +#ExecStart=/opt/overte/assignment-client -n 6 +ExecStart=/opt/overte/assignment-client --min 6 --max 20 --server-port $HIFI_DOMAIN_SERVER_PORT --disable-domain-port-auto-discovery + +[Install] +WantedBy=multi-user.target diff --git a/pkg-scripts/overte-domain-server.service b/pkg-scripts/overte-domain-server.service new file mode 100644 index 0000000000..e5865b8ee0 --- /dev/null +++ b/pkg-scripts/overte-domain-server.service @@ -0,0 +1,17 @@ +[Unit] +Description=Domain Server service for Overte +After=network.target +PartOf=overte-server.target + +[Service] +Restart=on-failure + +WorkingDirectory=/opt/overte +Environment="LD_LIBRARY_PATH=/opt/overte/lib" +User=overte +Group=overte +#LimitCORE=infinity +ExecStart=/opt/overte/domain-server + +[Install] +WantedBy=multi-user.target diff --git a/pkg-scripts/overte-domain-server@.service b/pkg-scripts/overte-domain-server@.service new file mode 100644 index 0000000000..a50da2c8c1 --- /dev/null +++ b/pkg-scripts/overte-domain-server@.service @@ -0,0 +1,19 @@ +[Unit] +Description=Domain Server service for Overte +After=network.target +PartOf=overte-server@%i.target + +[Service] +Restart=on-failure + +WorkingDirectory=/opt/overte +EnvironmentFile=/etc/opt/overte/%i.conf +Environment="LD_LIBRARY_PATH=/opt/overte/lib" "HOME=/var/lib/overte/%i" +PrivateTmp=true +User=overte +Group=overte +#LimitCORE=infinity +ExecStart=/opt/overte/domain-server + +[Install] +WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-ice-server.service b/pkg-scripts/overte-ice-server.service similarity index 71% rename from pkg-scripts/vircadia-ice-server.service rename to pkg-scripts/overte-ice-server.service index 9fcfad11d0..55cb04a251 100644 --- a/pkg-scripts/vircadia-ice-server.service +++ b/pkg-scripts/overte-ice-server.service @@ -1,18 +1,18 @@ [Unit] Description=Ice Server service for Overte After=network.target -PartOf=vircadia-server.target +PartOf=overte-server.target [Service] Restart=on-failure -Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/vircadia/lib" -WorkingDirectory=/opt/vircadia -User=vircadia -Group=vircadia +Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/overte/lib" +WorkingDirectory=/opt/overte +User=overte +Group=overte #ExecStartPre=/bin/bash -c 'if /usr/bin/pgrep -l ice-server; then /usr/bin/pkill -SIGKILL -f /usr/share/hifi/ice-server/ice-server; fi' #LimitCORE=infinity -ExecStart=/opt/vircadia/ice-server +ExecStart=/opt/overte/ice-server [Install] WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-ice-server@.service b/pkg-scripts/overte-ice-server@.service similarity index 63% rename from pkg-scripts/vircadia-ice-server@.service rename to pkg-scripts/overte-ice-server@.service index b1a653f97d..92cf00f53d 100644 --- a/pkg-scripts/vircadia-ice-server@.service +++ b/pkg-scripts/overte-ice-server@.service @@ -1,20 +1,20 @@ [Unit] Description=Ice Server service for Overte After=network.target -PartOf=vircadia-server@%i.target +PartOf=overte-server@%i.target [Service] Restart=on-failure -EnvironmentFile=/etc/opt/vircadia/%i.conf -Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i" +EnvironmentFile=/etc/opt/overte/%i.conf +Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/overte/lib" "HOME=/var/lib/overte/%i" PrivateTmp=true -WorkingDirectory=/opt/vircadia -User=vircadia -Group=vircadia +WorkingDirectory=/opt/overte +User=overte +Group=overte #ExecStartPre=/bin/bash -c 'if /usr/bin/pgrep -l ice-server; then /usr/bin/pkill -SIGKILL -f /usr/share/hifi/ice-server/ice-server; fi' #LimitCORE=infinity -ExecStart=/opt/vircadia/ice-server +ExecStart=/opt/overte/ice-server [Install] WantedBy=multi-user.target diff --git a/pkg-scripts/overte-server.spec b/pkg-scripts/overte-server.spec new file mode 100644 index 0000000000..56b496e89b --- /dev/null +++ b/pkg-scripts/overte-server.spec @@ -0,0 +1,141 @@ +#OVERTE=~/Overte rpmbuild --target x86_64 -bb overte-server.spec +%define version %{lua:print(os.getenv("VERSION"))} +%define depends %{lua:print(os.getenv("DEPENDS"))} + +Name: overte-server +Version: %{version} +Release: 1%{?dist} +Summary: Overte platform, based on the High Fidelity Engine. + +License: ASL 2.0 +URL: https://overte.org +Source0: https://github.com/overte-org/overte + +#BuildRequires: systemd-rpm-macros +BuildRequires: chrpath +Requires: %{depends} +BuildArch: x86_64 +AutoReq: no +AutoProv: no + +%description +Overte allows creation and sharing of VR experiences. + The Overte provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. + + +%prep + + +%build + + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT/opt/overte +install -m 0755 -t $RPM_BUILD_ROOT/opt/overte $OVERTE/build/assignment-client/assignment-client +install -m 0755 -t $RPM_BUILD_ROOT/opt/overte $OVERTE/build/domain-server/domain-server +install -m 0755 -t $RPM_BUILD_ROOT/opt/overte $OVERTE/build/tools/oven/oven +#install -m 0755 -t $RPM_BUILD_ROOT/opt/overte $OVERTE/build/ice-server/ice-server +strip --strip-all $RPM_BUILD_ROOT/opt/overte/* +chrpath -d $RPM_BUILD_ROOT/opt/overte/* +install -m 0755 -t $RPM_BUILD_ROOT/opt/overte $OVERTE/pkg-scripts/new-server +install -d $RPM_BUILD_ROOT/opt/overte/lib +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $OVERTE/build/libraries/*/*.so +strip --strip-all $RPM_BUILD_ROOT/opt/overte/lib/* +chrpath -d $RPM_BUILD_ROOT/opt/overte/lib/* +%if "$OVERTE_USE_SYSTEM_QT" == "" +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Network.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Core.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Widgets.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Gui.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Script.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5WebSockets.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Qml.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5Quick.so.*.*.* +install -m 0644 -t $RPM_BUILD_ROOT/opt/overte/lib $QT5_LIBS/libQt5ScriptTools.so.*.*.* +%endif +install -d $RPM_BUILD_ROOT/usr/lib/systemd/system +install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-assignment-client.service +install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-assignment-client@.service +install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-domain-server.service +install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-domain-server@.service +#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-ice-server.service +#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-ice-server@.service +install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-server.target +install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $OVERTE/pkg-scripts/overte-server@.target +cp -a $OVERTE/domain-server/resources $RPM_BUILD_ROOT/opt/overte +cp -a $OVERTE/build/assignment-client/plugins $RPM_BUILD_ROOT/opt/overte +chrpath -d $RPM_BUILD_ROOT/opt/overte/plugins/*.so +chrpath -d $RPM_BUILD_ROOT/opt/overte/plugins/*/*.so +strip --strip-all $RPM_BUILD_ROOT/opt/overte/plugins/*.so +strip --strip-all $RPM_BUILD_ROOT/opt/overte/plugins/*/*.so +find $RPM_BUILD_ROOT/opt/overte/resources -name ".gitignore" -delete + + +%files +%license $OVERTE/LICENSE +/opt/overte +/usr/lib/systemd/system + + +%changelog + + +%post +# create users +getent passwd overte >/dev/null 2>&1 || useradd -r -c "Overte" -d /var/lib/overte -U -M overte +#getent group overte >/dev/null 2>&1 || groupadd -r overte + +# create data folder +mkdir -p /etc/opt/overte +mkdir -p /var/lib/overte && chown overte:overte /var/lib/overte && chmod 775 /var/lib/overte + +ldconfig -n /opt/overte/lib + +%systemd_post overte-assignment-client.service +%systemd_post overte-assignment-client@.service +%systemd_post overte-domain-server.service +%systemd_post overte-domain-server@.service +#%systemd_post overte-ice-server.service +#%systemd_post overte-ice-server@.service +%systemd_post overte-server.target +%systemd_post overte-server@.target + +if [ ! -d "/var/lib/overte/default" ]; then + /opt/overte/new-server default 40100 + systemctl enable overte-server@default.target + systemctl start overte-server@default.target +else + systemctl list-units \ + | grep -P -o "(overte-assignment-client|overte-domain-server|overte-server)\S+" \ + | xargs systemctl restart +fi + + +%preun + +if [ "$1" -eq 0 ]; then + systemctl list-units \ + | grep -P -o "(overte-assignment-client|overte-domain-server|overte-server)\S+" \ + | xargs systemctl stop +fi + +%systemd_preun overte-server.target +%systemd_preun overte-server@.target +%systemd_preun overte-assignment-client.service +%systemd_preun overte-assignment-client@.service +%systemd_preun overte-domain-server.service +%systemd_preun overte-domain-server@.service +#%systemd_preun overte-ice-server.service +#%systemd_preun overte-ice-server@.service + + +%postun +%systemd_postun_with_restart overte-server.target +%systemd_postun_with_restart overte-server@.target +%systemd_postun_with_restart overte-assignment-client.service +%systemd_postun_with_restart overte-assignment-client@.service +%systemd_postun_with_restart overte-domain-server.service +%systemd_postun_with_restart overte-domain-server@.service +#%systemd_postun_with_restart overte-ice-server.service +#%systemd_postun_with_restart overte-ice-server@.service diff --git a/pkg-scripts/overte-server.target b/pkg-scripts/overte-server.target new file mode 100644 index 0000000000..7a50f5113a --- /dev/null +++ b/pkg-scripts/overte-server.target @@ -0,0 +1,11 @@ +[Unit] +Description=Overte virtual domain +Wants=overte-assignment-client.service +Wants=overte-domain-server.service +#Wants=overte-ice-server.service +After=overte-assignment-client.service +After=overte-domain-server.service +#After=overte-ice-server.service + +[Install] +WantedBy=multi-user.target diff --git a/pkg-scripts/overte-server@.target b/pkg-scripts/overte-server@.target new file mode 100644 index 0000000000..275ebe6c5a --- /dev/null +++ b/pkg-scripts/overte-server@.target @@ -0,0 +1,11 @@ +[Unit] +Description=Overte virtual domain +Wants=overte-assignment-client@%i.service +Wants=overte-domain-server@%i.service +#Wants=overte-ice-server@%i.service +After=overte-assignment-client@%i.service +After=overte-domain-server@%i.service +#After=overte-ice-server@%i.service + +[Install] +WantedBy=multi-user.target diff --git a/pkg-scripts/server-compat b/pkg-scripts/server-compat new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/pkg-scripts/server-compat @@ -0,0 +1 @@ +10 diff --git a/pkg-scripts/server-control b/pkg-scripts/server-control index 26c3339a0b..ca6947ad55 100644 --- a/pkg-scripts/server-control +++ b/pkg-scripts/server-control @@ -1,15 +1,16 @@ -Source: vircadia-server +Source: overte-server Section: comm Priority: optional -Maintainer: Heather Anderson +Maintainer: Julian Groß Build-Depends: debhelper (>= 10) Standards-Version: 4.1.2 Homepage: https://overte.org Vcs-Git: https://github.com/overte-org/overte.git Vcs-Browser: https://github.com/overte-org/overte -Package: vircadia-server +Package: overte-server Architecture: any Depends: adduser, {DEPENDS} Description: Overte allows creation and sharing of VR experiences. - The Overte provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. + The Overte provides built-in social features, including avatar interactions, spatialized audio and interactive physics. + Additionally, you have the ability to import any 3D object into your virtual environment. diff --git a/pkg-scripts/server-postinst b/pkg-scripts/server-postinst index cb06adbae0..2e87187107 100755 --- a/pkg-scripts/server-postinst +++ b/pkg-scripts/server-postinst @@ -1,5 +1,5 @@ #!/bin/sh -# postinst script for vircadia-server +# postinst script for overte-server # # see: dh_installdeb(1) @@ -19,12 +19,12 @@ set -e case "$1" in configure) - ldconfig -n /opt/vircadia/lib - adduser --system --quiet --gecos "Vircadia" --home /var/lib/vircadia --group --no-create-home vircadia - mkdir -p /var/lib/vircadia - chown vircadia:vircadia /var/lib/vircadia - chmod 775 /var/lib/vircadia - if [ ! -d "/var/lib/vircadia/default" ]; then + ldconfig -n /opt/overte/lib + adduser --system --quiet --gecos "Overte" --home /var/lib/overte --group --no-create-home overte + mkdir -p /var/lib/overte + chown overte:overte /var/lib/overte + chmod 775 /var/lib/overte + if [ ! -d "/var/lib/overte/default" ]; then if [ -d "/var/lib/athena" ]; then ATHENA_ACTIVE=`systemctl list-units \ | grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \ @@ -40,32 +40,32 @@ case "$1" in echo -n $ATHENA_ACTIVE | xargs -d'|' systemctl stop # copy the server files over - cp /etc/opt/athena/* /etc/opt/vircadia - cp -R /var/lib/athena/* /var/lib/vircadia - chown -R vircadia:vircadia /var/lib/vircadia/* - find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. "Vircadia - dev"' ';' - find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. Vircadia' ';' + cp /etc/opt/athena/* /etc/opt/overte + cp -R /var/lib/athena/* /var/lib/overte + chown -R overte:overte /var/lib/overte/* + find /var/lib/overte -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. "Overte - dev"' ';' + find /var/lib/overte -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. Overte' ';' - VIRCADIA_ACTIVE=`echo -n $ATHENA_ACTIVE | sed 's/athena/vircadia/g'` - VIRCADIA_ENABLED=`echo -n $ATHENA_ENABLED | sed 's/athena/vircadia/g'` + OVERTE_ACTIVE=`echo -n $ATHENA_ACTIVE | sed 's/athena/overte/g'` + OVERTE_ENABLED=`echo -n $ATHENA_ENABLED | sed 's/athena/overte/g'` echo -n $ATHENA_ENABLED | xargs -d'|' systemctl disable - echo -n $VIRCADIA_ENABLED | xargs -d'|' systemctl enable - echo -n $VIRCADIA_ACTIVE | xargs -d'|' systemctl start + echo -n $OVERTE_ENABLED | xargs -d'|' systemctl enable + echo -n $OVERTE_ACTIVE | xargs -d'|' systemctl start else - /opt/vircadia/new-server default 40100 - systemctl enable vircadia-server@default.target - systemctl start vircadia-server@default.target + /opt/overte/new-server default 40100 + systemctl enable overte-server@default.target + systemctl start overte-server@default.target fi else systemctl list-units \ - | grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \ + | grep -P -o "(overte-assignment-client|overte-domain-server|overte-server)\S+" \ | xargs systemctl restart fi ;; abort-remove|abort-deconfigure) - ldconfig -n /opt/vircadia/lib + ldconfig -n /opt/overte/lib ;; abort-upgrade) diff --git a/pkg-scripts/server-postrm b/pkg-scripts/server-postrm index 944d5e60f4..b599a6311a 100755 --- a/pkg-scripts/server-postrm +++ b/pkg-scripts/server-postrm @@ -20,8 +20,8 @@ set -e case "$1" in purge) - rm -r /etc/opt/vircadia - rm -r /var/lib/vircadia + rm -r /etc/opt/overte + rm -r /var/lib/overte ;; remove|upgrade|failed-upgrade|disappear|abort-install|abort-upgrade) diff --git a/pkg-scripts/server-prerm b/pkg-scripts/server-prerm index de15128778..9315a5c03e 100755 --- a/pkg-scripts/server-prerm +++ b/pkg-scripts/server-prerm @@ -1,5 +1,5 @@ #!/bin/sh -# prerm script for vircadia-server +# prerm script for overte-server # # see: dh_installdeb(1) @@ -20,10 +20,10 @@ set -e case "$1" in remove) systemctl list-units \ - | grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \ + | grep -P -o "(overte-assignment-client|overte-domain-server|overte-server)\S+" \ | xargs systemctl stop - find -P /opt/vircadia/lib -type l -delete + find -P /opt/overte/lib -type l -delete ;; upgrade|deconfigure) diff --git a/pkg-scripts/server-rules b/pkg-scripts/server-rules index 24f557159b..eb3a59c591 100755 --- a/pkg-scripts/server-rules +++ b/pkg-scripts/server-rules @@ -18,26 +18,26 @@ dh $@ --with=systemd override_dh_systemd_enable: - dh_systemd_enable --no-enable --name vircadia-assignment-client vircadia-assignment-client.service - dh_systemd_enable --no-enable --name vircadia-assignment-client@ vircadia-assignment-client@.service - dh_systemd_enable --no-enable --name vircadia-domain-server vircadia-domain-server.service - dh_systemd_enable --no-enable --name vircadia-domain-server@ vircadia-domain-server@.service - #dh_systemd_enable --no-enable --name vircadia-ice-server vircadia-ice-server.service - #dh_systemd_enable --no-enable --name vircadia-ice-server@ vircadia-ice-server@.service - dh_systemd_enable --no-enable --name vircadia-server vircadia-server.target - dh_systemd_enable --no-enable --name vircadia-server@ vircadia-server@.target - #dh_systemd_enable --name vircadia-server@default vircadia-server@default.target + dh_systemd_enable --no-enable --name overte-assignment-client overte-assignment-client.service + dh_systemd_enable --no-enable --name overte-assignment-client@ overte-assignment-client@.service + dh_systemd_enable --no-enable --name overte-domain-server overte-domain-server.service + dh_systemd_enable --no-enable --name overte-domain-server@ overte-domain-server@.service + #dh_systemd_enable --no-enable --name overte-ice-server overte-ice-server.service + #dh_systemd_enable --no-enable --name overte-ice-server@ overte-ice-server@.service + dh_systemd_enable --no-enable --name overte-server overte-server.target + dh_systemd_enable --no-enable --name overte-server@ overte-server@.target + #dh_systemd_enable --name overte-server@default overte-server@default.target override_dh_systemd_start: - dh_systemd_start --restart-after-upgrade --no-start vircadia-assignment-client.service - dh_systemd_start --restart-after-upgrade --no-start vircadia-assignment-client@.service - dh_systemd_start --restart-after-upgrade --no-start vircadia-domain-server.service - dh_systemd_start --restart-after-upgrade --no-start vircadia-domain-server@.service - #dh_systemd_start --restart-after-upgrade --no-start vircadia-ice-server.service - #dh_systemd_start --restart-after-upgrade --no-start vircadia-ice-server@.service - dh_systemd_start --restart-after-upgrade --no-start vircadia-server.target - dh_systemd_start --restart-after-upgrade --no-start vircadia-server@.target - #dh_systemd_start --restart-after-upgrade vircadia-server@default.target + dh_systemd_start --restart-after-upgrade --no-start overte-assignment-client.service + dh_systemd_start --restart-after-upgrade --no-start overte-assignment-client@.service + dh_systemd_start --restart-after-upgrade --no-start overte-domain-server.service + dh_systemd_start --restart-after-upgrade --no-start overte-domain-server@.service + #dh_systemd_start --restart-after-upgrade --no-start overte-ice-server.service + #dh_systemd_start --restart-after-upgrade --no-start overte-ice-server@.service + dh_systemd_start --restart-after-upgrade --no-start overte-server.target + dh_systemd_start --restart-after-upgrade --no-start overte-server@.target + #dh_systemd_start --restart-after-upgrade overte-server@default.target override_dh_installinit: dh_installinit --noscripts diff --git a/pkg-scripts/vircadia-assignment-client.service b/pkg-scripts/vircadia-assignment-client.service deleted file mode 100644 index 3c5c861c20..0000000000 --- a/pkg-scripts/vircadia-assignment-client.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Assignment client service for the Overte server -After=network.target -PartOf=vircadia-server.target - -[Service] -Restart=always - -WorkingDirectory=/opt/vircadia -Environment="LD_LIBRARY_PATH=/opt/vircadia/lib" -User=vircadia -Group=vircadia -#LimitCORE=infinity -#ExecStart=/opt/vircadia/assignment-client -n 6 -ExecStart=/opt/vircadia/assignment-client --min 6 --max 20 - -[Install] -WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-assignment-client@.service b/pkg-scripts/vircadia-assignment-client@.service deleted file mode 100644 index c747d8e2e5..0000000000 --- a/pkg-scripts/vircadia-assignment-client@.service +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=Assignment client service for the Overte server -After=network.target -PartOf=vircadia-server@%i.target - -[Service] -Restart=always - -WorkingDirectory=/opt/vircadia -EnvironmentFile=/etc/opt/vircadia/%i.conf -Environment="LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i" -PrivateTmp=true -User=vircadia -Group=vircadia -#LimitCORE=infinity -#ExecStart=/opt/vircadia/assignment-client -n 6 -ExecStart=/opt/vircadia/assignment-client --min 6 --max 20 --server-port $HIFI_DOMAIN_SERVER_PORT --disable-domain-port-auto-discovery - -[Install] -WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-domain-server.service b/pkg-scripts/vircadia-domain-server.service deleted file mode 100644 index ab0c863418..0000000000 --- a/pkg-scripts/vircadia-domain-server.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=Domain Server service for Overte -After=network.target -PartOf=vircadia-server.target - -[Service] -Restart=on-failure - -WorkingDirectory=/opt/vircadia -Environment="LD_LIBRARY_PATH=/opt/vircadia/lib" -User=vircadia -Group=vircadia -#LimitCORE=infinity -ExecStart=/opt/vircadia/domain-server - -[Install] -WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-domain-server@.service b/pkg-scripts/vircadia-domain-server@.service deleted file mode 100644 index d461fc0aaa..0000000000 --- a/pkg-scripts/vircadia-domain-server@.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Domain Server service for Overte -After=network.target -PartOf=vircadia-server@%i.target - -[Service] -Restart=on-failure - -WorkingDirectory=/opt/vircadia -EnvironmentFile=/etc/opt/vircadia/%i.conf -Environment="LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i" -PrivateTmp=true -User=vircadia -Group=vircadia -#LimitCORE=infinity -ExecStart=/opt/vircadia/domain-server - -[Install] -WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-server.spec b/pkg-scripts/vircadia-server.spec deleted file mode 100644 index b3826bcf54..0000000000 --- a/pkg-scripts/vircadia-server.spec +++ /dev/null @@ -1,168 +0,0 @@ -#VIRCADIA=~/Vircadia rpmbuild --target x86_64 -bb vircadia-server.spec -%define version %{lua:print(os.getenv("VERSION"))} -%define depends %{lua:print(os.getenv("DEPENDS"))} - -Name: vircadia-server -Version: %{version} -Release: 1%{?dist} -Summary: Overte platform, based on the High Fidelity Engine. - -License: ASL 2.0 -URL: https://overte.org -Source0: https://github.com/overte-org/overte-builder/blob/master/vircadia-builder - -#BuildRequires: systemd-rpm-macros -BuildRequires: chrpath -Requires: %{depends} -BuildArch: x86_64 -AutoReq: no -AutoProv: no - -%description -Overte allows creation and sharing of VR experiences. - The Overte provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. - - -%prep - - -%build - - -%install -rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/opt/vircadia -install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/assignment-client/assignment-client -install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/domain-server/domain-server -install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/tools/oven/oven -#install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/ice-server/ice-server -strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/* -chrpath -d $RPM_BUILD_ROOT/opt/vircadia/* -install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/source/pkg-scripts/new-server -install -d $RPM_BUILD_ROOT/opt/vircadia/lib -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/build/libraries/*/*.so -strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/lib/* -chrpath -d $RPM_BUILD_ROOT/opt/vircadia/lib/* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Quick.so.*.*.* -install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* -install -d $RPM_BUILD_ROOT/usr/lib/systemd/system -install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-assignment-client.service -install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-assignment-client@.service -install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-domain-server.service -install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-domain-server@.service -#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-ice-server.service -#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-ice-server@.service -install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-server.target -install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-server@.target -cp -a $VIRCADIA/source/domain-server/resources $RPM_BUILD_ROOT/opt/vircadia -cp -a $VIRCADIA/build/assignment-client/plugins $RPM_BUILD_ROOT/opt/vircadia -chrpath -d $RPM_BUILD_ROOT/opt/vircadia/plugins/*.so -chrpath -d $RPM_BUILD_ROOT/opt/vircadia/plugins/*/*.so -strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/plugins/*.so -strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/plugins/*/*.so -find $RPM_BUILD_ROOT/opt/vircadia/resources -name ".gitignore" -delete - - -%files -%license $VIRCADIA/source/LICENSE -/opt/vircadia -/usr/lib/systemd/system - - -%changelog - - -%post -# create users -getent passwd vircadia >/dev/null 2>&1 || useradd -r -c "Vircadia" -d /var/lib/vircadia -U -M vircadia -#getent group vircadia >/dev/null 2>&1 || groupadd -r vircadia - -# create data folder -mkdir -p /etc/opt/vircadia -mkdir -p /var/lib/vircadia && chown vircadia:vircadia /var/lib/vircadia && chmod 775 /var/lib/vircadia - -ldconfig -n /opt/vircadia/lib - -%systemd_post vircadia-assignment-client.service -%systemd_post vircadia-assignment-client@.service -%systemd_post vircadia-domain-server.service -%systemd_post vircadia-domain-server@.service -#%systemd_post vircadia-ice-server.service -#%systemd_post vircadia-ice-server@.service -%systemd_post vircadia-server.target -%systemd_post vircadia-server@.target - -if [ ! -d "/var/lib/vircadia/default" ]; then - if [ -d "/var/lib/athena" ]; then - ATHENA_ACTIVE=`systemctl list-units \ - | grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \ - | paste -s -d'|' \ - | head -c -1` - ATHENA_ENABLED=`systemctl list-units --state=loaded \ - | grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \ - | xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \ - | paste -s -d'|' \ - | head -c -1` - - # shutdown athena servers - echo -n $ATHENA_ACTIVE | xargs -d'|' systemctl stop - - # copy the server files over - cp /etc/opt/athena/* /etc/opt/vircadia - cp -R /var/lib/athena/* /var/lib/vircadia - chown -R vircadia:vircadia /var/lib/vircadia/* - find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. "Vircadia - dev"' ';' - find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. Vircadia' ';' - - VIRCADIA_ACTIVE=`echo -n $ATHENA_ACTIVE | sed 's/athena/vircadia/g'` - VIRCADIA_ENABLED=`echo -n $ATHENA_ENABLED | sed 's/athena/vircadia/g'` - - echo -n $ATHENA_ENABLED | xargs -d'|' systemctl disable - echo -n $VIRCADIA_ENABLED | xargs -d'|' systemctl enable - echo -n $VIRCADIA_ACTIVE | xargs -d'|' systemctl start - else - /opt/vircadia/new-server default 40100 - systemctl enable vircadia-server@default.target - systemctl start vircadia-server@default.target - fi -else - systemctl list-units \ - | grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \ - | xargs systemctl restart -fi - - -%preun - -if [ "$1" -eq 0 ]; then - systemctl list-units \ - | grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \ - | xargs systemctl stop -fi - -%systemd_preun vircadia-server.target -%systemd_preun vircadia-server@.target -%systemd_preun vircadia-assignment-client.service -%systemd_preun vircadia-assignment-client@.service -%systemd_preun vircadia-domain-server.service -%systemd_preun vircadia-domain-server@.service -#%systemd_preun vircadia-ice-server.service -#%systemd_preun vircadia-ice-server@.service - - -%postun -%systemd_postun_with_restart vircadia-server.target -%systemd_postun_with_restart vircadia-server@.target -%systemd_postun_with_restart vircadia-assignment-client.service -%systemd_postun_with_restart vircadia-assignment-client@.service -%systemd_postun_with_restart vircadia-domain-server.service -%systemd_postun_with_restart vircadia-domain-server@.service -#%systemd_postun_with_restart vircadia-ice-server.service -#%systemd_postun_with_restart vircadia-ice-server@.service diff --git a/pkg-scripts/vircadia-server.target b/pkg-scripts/vircadia-server.target deleted file mode 100644 index e5740a7ed3..0000000000 --- a/pkg-scripts/vircadia-server.target +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Overte virtual domain -Wants=vircadia-assignment-client.service -Wants=vircadia-domain-server.service -#Wants=vircadia-ice-server.service -After=vircadia-assignment-client.service -After=vircadia-domain-server.service -#After=vircadia-ice-server.service - -[Install] -WantedBy=multi-user.target diff --git a/pkg-scripts/vircadia-server@.target b/pkg-scripts/vircadia-server@.target deleted file mode 100644 index 4bb24d1243..0000000000 --- a/pkg-scripts/vircadia-server@.target +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Overte virtual domain -Wants=vircadia-assignment-client@%i.service -Wants=vircadia-domain-server@%i.service -#Wants=vircadia-ice-server@%i.service -After=vircadia-assignment-client@%i.service -After=vircadia-domain-server@%i.service -#After=vircadia-ice-server@%i.service - -[Install] -WantedBy=multi-user.target diff --git a/tools/ci-scripts/deb_package/Dockerfile_build_debian-11 b/tools/ci-scripts/deb_package/Dockerfile_build_debian-11 new file mode 100644 index 0000000000..5057493883 --- /dev/null +++ b/tools/ci-scripts/deb_package/Dockerfile_build_debian-11 @@ -0,0 +1,38 @@ +# Docker file for building Overte Server +# Example build: docker build -t juliangro/overte-server-build:0.1.1-debian-11 -f Dockerfile_build_debian-11 . +FROM debian:bullseye +LABEL maintainer="Julian Groß (julian.gro@overte.org)" +LABEL description="Development image for Overte Domain server and assignment clients." + +# Don't use any frontend when installalling packages during the creation of this container +ARG DEBIAN_FRONTEND=noninteractive + +RUN echo UTC >/etc/timezone +# Installing via dependency causes interactive hang: +RUN apt-get update && apt-get -y install tzdata + +# Install Overte domain-server and assignment-client build dependencies +RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websockets5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev +# Install Overte tools build dependencies +RUN apt-get -y install libqt5webchannel5-dev qtwebengine5-dev libqt5xmlpatterns5-dev + +# Install tools for package creation +RUN apt-get -y install sudo chrpath binutils dh-make + +# Install locales package +RUN apt-get -y install locales +# Uncomment en_US.UTF-8 for inclusion in generation +RUN sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen +# Generate locale +RUN locale-gen + +# Export env vars +RUN echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc + +# Install tools for creating the server image +RUN apt-get -y install docker.io xz-utils + +# Install tools needed for our Github Actions Workflow +Run apt-get -y install python3-boto3 python3-github zip diff --git a/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-18.04 b/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-18.04 new file mode 100644 index 0000000000..07d32d66f8 --- /dev/null +++ b/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-18.04 @@ -0,0 +1,41 @@ +# Docker file for building Overte Server +# Example build: docker build -t juliangro/overte-server-build:0.1.1-ubuntu-18.04 -f Dockerfile_build_ubuntu-18.04 . +FROM ubuntu:18.04 +LABEL maintainer="Julian Groß (julian.gro@overte.org)" +LABEL description="Development image for Overte Domain server and assignment clients." + +# Don't use any frontend when installalling packages during the creation of this container +ARG DEBIAN_FRONTEND=noninteractive + +RUN echo UTC >/etc/timezone +# Installing via dependency causes interactive hang: +RUN apt-get update && apt-get -y install tzdata + +# Install Overte domain-server and assignment-client build dependencies +RUN apt-get -y install curl ninja-build git g++ libssl-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libharfbuzz-dev libdouble-conversion1 + +# Install tools for package creation +RUN apt-get -y install sudo chrpath binutils dh-make + +# Install locales package +RUN apt-get -y install locales +# Uncomment en_US.UTF-8 for inclusion in generation +RUN sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen +# Generate locale +RUN locale-gen + +# Export env vars +RUN echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc + +# Install tools for creating the server image +RUN apt-get -y install docker.io xz-utils + +# Install tools needed for our Github Actions Workflow +RUN apt-get -y install python3-boto3 python3-github zip + +# Install newer CMake +RUN curl -O -L https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-linux-x86_64.tar.gz +RUN tar -xf cmake-3.24.0-linux-x86_64.tar.gz +ENV PATH="/cmake-3.24.0-linux-x86_64/bin:$PATH" diff --git a/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-20.04 b/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-20.04 new file mode 100644 index 0000000000..df8a78167c --- /dev/null +++ b/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-20.04 @@ -0,0 +1,36 @@ +# Docker file for building Overte Server +# Example build: docker build -t juliangro/overte-server-build:0.1.1-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 . +FROM ubuntu:20.04 +LABEL maintainer="Julian Groß (julian.gro@overte.org)" +LABEL description="Development image for Overte Domain server and assignment clients." + +# Don't use any frontend when installalling packages during the creation of this container +ARG DEBIAN_FRONTEND=noninteractive + +RUN echo UTC >/etc/timezone +# Installing via dependency causes interactive hang: +RUN apt-get update && apt-get -y install tzdata + +# Install Overte domain-server and assignment-client build dependencies +RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libharfbuzz-dev libdouble-conversion3 libxext-dev + +# Install tools for package creation +RUN apt-get -y install sudo chrpath binutils dh-make + +# Install locales package +RUN apt-get -y install locales +# Uncomment en_US.UTF-8 for inclusion in generation +RUN sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen +# Generate locale +RUN locale-gen + +# Export env vars +RUN echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc + +# Install tools for creating the server image +RUN apt-get -y install docker.io xz-utils + +# Install tools needed for our Github Actions Workflow +Run apt-get -y install python3-boto3 python3-github zip diff --git a/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-22.04 b/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-22.04 new file mode 100644 index 0000000000..c5ff27c0e4 --- /dev/null +++ b/tools/ci-scripts/deb_package/Dockerfile_build_ubuntu-22.04 @@ -0,0 +1,38 @@ +# Docker file for building Overte Server +# Example build: docker build -t juliangro/overte-server-build:0.1.1-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 . +FROM ubuntu:22.04 +LABEL maintainer="Julian Groß (julian.gro@overte.org)" +LABEL description="Development image for Overte Domain server and assignment clients." + +# Don't use any frontend when installalling packages during the creation of this container +ARG DEBIAN_FRONTEND=noninteractive + +RUN echo UTC >/etc/timezone +# Installing via dependency causes interactive hang: +RUN apt-get update && apt-get -y install tzdata + +# Install Overte domain-server and assignment-client build dependencies +RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websockets5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev +# Install Overte tools build dependencies +RUN apt-get -y install libqt5webchannel5-dev qtwebengine5-dev libqt5xmlpatterns5-dev + +# Install tools for package creation +RUN apt-get -y install sudo chrpath binutils dh-make + +# Install locales package +RUN apt-get -y install locales +# Uncomment en_US.UTF-8 for inclusion in generation +RUN sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen +# Generate locale +RUN locale-gen + +# Export env vars +RUN echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc +RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc + +# Install tools for creating the server image +RUN apt-get -y install docker.io xz-utils + +# Install tools needed for our Github Actions Workflow +Run apt-get -y install python3-boto3 python3-github zip diff --git a/tools/ci-scripts/rpm_package/Dockerfile_build_fedora-36 b/tools/ci-scripts/rpm_package/Dockerfile_build_fedora-36 new file mode 100644 index 0000000000..adae061151 --- /dev/null +++ b/tools/ci-scripts/rpm_package/Dockerfile_build_fedora-36 @@ -0,0 +1,14 @@ +# Docker file for building Overte Server +# Example build: docker build -t juliangro/overte-server-build:0.1.1-fedora-36 -f Dockerfile_build_fedora-36 . +FROM fedora:36 +LABEL maintainer="Julian Groß (julian.gro@overte.org)" +LABEL description="Development image for Overte Domain server and assignment clients." + +# Install Overte domain-server and assignment-client build dependencies +RUN dnf -y install curl ninja-build git cmake gcc-c++ openssl-devel qt5-qtwebsockets-devel qt5-qtscript-devel qt5-qtmultimedia-devel unzip libXext-devel qt5-qtwebchannel-devel qt5-qtwebengine-devel qt5-qtxmlpatterns-devel + +# Install additional build tools +RUN dnf -y install zip unzip + +# Install tools for package creation +RUN dnf -y install chrpath rpmdevtools diff --git a/tools/ci-scripts/rpm_package/Dockerfile_build_rockylinux-9 b/tools/ci-scripts/rpm_package/Dockerfile_build_rockylinux-9 new file mode 100644 index 0000000000..791afc4302 --- /dev/null +++ b/tools/ci-scripts/rpm_package/Dockerfile_build_rockylinux-9 @@ -0,0 +1,14 @@ +# Docker file for building Overte Server +# Example build: docker build -t juliangro/overte-server-build:0.1.1-rockylinux-9 -f Dockerfile_build_rockylinux-9 . +FROM rockylinux:9 +LABEL maintainer="Julian Groß (julian.gro@overte.org)" +LABEL description="Development image for Overte Domain server and assignment clients." + +# Install Overte domain-server and assignment-client build dependencies +RUN dnf -y install curl ninja-build git cmake gcc-c++ openssl-devel qt5-qtwebsockets-devel qt5-qtscript-devel qt5-qtmultimedia-devel unzip libXext-devel qt5-qtwebchannel-devel qt5-qtwebengine-devel qt5-qtxmlpatterns-devel + +# Install additional build tools +RUN dnf -y install zip unzip + +# Install tools for package creation +RUN dnf -y install chrpath rpmdevtools