summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorXenHat2023-05-19 14:21:09 -0400
committerXenHat2023-05-19 14:21:09 -0400
commit6948d31f21a81db044e0e5c789fa96c7a1ca4599 (patch)
tree1cc71877b1e067d42a6c54a30241b8caacd3ecbb
parent02f8855e211ed90f67a48d4ca06daf443a10ce44 (diff)
downloadaur-6948d31f21a81db044e0e5c789fa96c7a1ca4599.tar.gz
formatting & stuff
-rw-r--r--.gitignore2
-rwxr-xr-xPKGBUILD67
-rw-r--r--alchemy.install6
-rwxr-xr-xcompile.bash210
4 files changed, 146 insertions, 139 deletions
diff --git a/.gitignore b/.gitignore
index 805c26749a5f..896bfbc819e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,5 @@ src/
pkg/
*.bash
*.tar.*
+.envrc
+.trunk
diff --git a/PKGBUILD b/PKGBUILD
index fe7276b3a63d..7fd708f90cc8 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -10,56 +10,59 @@ pkgrel=1
pkgdesc="A Second Life client with focus on performance and code correctness. - Git Source build"
arch=('x86_64')
options=('!buildflags' '!lto' '!strip')
-url=https://www.alchemyviewer.org
+url="https://www.alchemyviewer.org"
license=('LGPL')
depends=(dbus-glib glu gtk3 libgl libiconv libidn libjpeg-turbo libpng libxss libxml2 mesa nss openal sdl2 vlc zlib)
makedepends=('gcc' 'python-virtualenv' 'python-pip' 'git' 'xz')
optdepends=(
- 'alsa-lib: ALSA support'
- 'freealut: OpenAL support'
- 'gamemode: Gamemode support'
- 'lib32-libidn11: SLVoice support'
- 'lib32-libsndfile: SLVoice support'
- 'lib32-util-linux: SLVoice support'
- 'lib32-gstreamer0.10: SLVoice support'
- 'libpulse: PulseAudio support'
- 'mesa-libgl: Intel, Radeon, Nouveau support'
- 'nvidia-libgl: NVIDIA support'
- 'nvidia-utils: NVIDIA support'
- 'wine: More up-to-date, less buggy SLVoice support')
+ 'alsa-lib: ALSA support'
+ 'freealut: OpenAL support'
+ 'gamemode: Gamemode support'
+ 'lib32-libidn11: SLVoice support'
+ 'lib32-libsndfile: SLVoice support'
+ 'lib32-util-linux: SLVoice support'
+ 'lib32-gstreamer0.10: SLVoice support'
+ 'libpulse: PulseAudio support'
+ 'mesa-libgl: Intel, Radeon, Nouveau support'
+ 'nvidia-libgl: NVIDIA support'
+ 'nvidia-utils: NVIDIA support'
+ 'wine: More up-to-date, less buggy SLVoice support')
replaces=('alchemy-viewer-git')
provides=('alchemy-viewer')
install=alchemy.install
source=("${pkgname}"::'git+https://git.alchemyviewer.org/alchemy/alchemy-next.git#branch='"${AL_BRANCH_OVERRIDE:-main}"
- 'compile.bash')
+ 'compile.bash')
sha256sums=('SKIP'
- 'fbd63839b016543f8743577d6ab272cc2def20361c559b7fb21fac127356fe5b')
+ 'fbd63839b016543f8743577d6ab272cc2def20361c559b7fb21fac127356fe5b')
pkgver() {
- cd "${pkgname}" || exit 1
- (
- set -o pipefail
- printf "%s.%s.%s" "$(cat indra/newview/VIEWER_VERSION.txt)" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
- )
+ cd "${pkgname}" || exit 1
+ (
+ set -o pipefail
+ vwr_version=$(cat indra/newview/VIEWER_VERSION.txt)
+ rev=$(git rev-list --count HEAD)
+ short=$(git rev-parse --short HEAD)
+ printf "%s.%s.%s" "${vwr_version}" "${rev}" "${short}"
+ )
}
prepare() {
- cd "${pkgname}" || exit 1
- export USE_VENV=1
- ../compile.bash prepare
+ cd "${pkgname}" || exit 1
+ export USE_VENV=1
+ ../compile.bash prepare
}
build() {
- cd "${pkgname}" || exit 1
- export USE_VENV=1
- ../compile.bash build
+ cd "${pkgname}" || exit 1
+ export USE_VENV=1
+ ../compile.bash build
}
package() {
- mkdir -p "${pkgdir}/opt"
- mkdir -p "${pkgdir}/usr/local/share/applications"
- # Patch shortcut to avoid duplicated entries
- sed -i 's;Name=Alchemy;Name=Alchemy (git build);' "${pkgname}/build-linux-64/newview/packaged/etc/refresh_desktop_app_entry.sh"
- sed -i 's;alchemy-viewer\.desktop;'"${pkgname}\.desktop"';' "${pkgname}/build-linux-64/newview/packaged/etc/refresh_desktop_app_entry.sh"
- mv "${pkgname}/build-linux-64/newview/packaged" "${pkgdir}/opt/${pkgname}"
+ mkdir -p "${pkgdir}/opt"
+ mkdir -p "${pkgdir}/usr/local/share/applications"
+ # Patch shortcut to avoid duplicated entries
+ sed -i 's;Name=Alchemy;Name=Alchemy (git build);' "${pkgname}/build-linux-64/newview/packaged/etc/refresh_desktop_app_entry.sh"
+ sed -i 's;alchemy-viewer\.desktop;'"${pkgname}\.desktop"';' "${pkgname}/build-linux-64/newview/packaged/etc/refresh_desktop_app_entry.sh"
+ mv "${pkgname}/build-linux-64/newview/packaged" "${pkgdir}/opt/${pkgname}"
}
diff --git a/alchemy.install b/alchemy.install
index 7615fd639884..e9ab1b922578 100644
--- a/alchemy.install
+++ b/alchemy.install
@@ -1,8 +1,8 @@
#!/bin/bash
post_install() {
- bash /opt/alchemy-next-viewer-git/etc/refresh_desktop_app_entry.sh "/opt/alchemy-next-viewer-git" "/usr/local/share/applications/"
- bash /opt/alchemy-next-viewer-git/etc/register_secondlifeprotocol.sh
+ bash /opt/alchemy-next-viewer-git/etc/refresh_desktop_app_entry.sh "/opt/alchemy-next-viewer-git" "/usr/local/share/applications/"
+ bash /opt/alchemy-next-viewer-git/etc/register_secondlifeprotocol.sh
}
post_upgrade() {
- post_install $1
+ post_install "$1"
}
diff --git a/compile.bash b/compile.bash
index a32fd0cbe9d0..8817494fcd2e 100755
--- a/compile.bash
+++ b/compile.bash
@@ -2,124 +2,126 @@
set -e
if command -v schedtool >/dev/null 2>&1; then
- # Set current shell and all descendents as SCHED_BATCH, see schedtool(8)
- schedtool -B $$
- prefix_cmd='schedtool -B -n20 -e '
+ # Set current shell and all descendents as SCHED_BATCH, see schedtool(8)
+ schedtool -B $$
+ prefix_cmd='schedtool -B -n20 -e '
fi
venv() {
- virtualenv ".venv" -p python3
- . ".venv/bin/activate"
+ virtualenv ".venv" -p python3
+ . ".venv/bin/activate"
}
prepare() {
- if [[ -n "$USE_VENV" ]]; then
- venv
- fi
+ if [[ -n "$USE_VENV" ]]; then
+ venv
+ fi
- echo "Installing build toolchain..."
- pip3 install --upgrade certifi --quiet
- pip3 install --upgrade llbase --quiet
- pip3 install --no-cache --upgrade autobuild --quiet
- pip3 install --upgrade cmake ninja
+ echo "Installing build toolchain..."
+ pip3 install --upgrade certifi --quiet
+ pip3 install --upgrade llbase --quiet
+ pip3 install --no-cache --upgrade autobuild --quiet
+ pip3 install --upgrade cmake ninja
}
build() {
- # we have a lot of files, relax ulimit to help performance
- if [[ -n "$USE_VENV" ]]; then
- . ".venv/bin/activate"
- fi
- set +e
- ulimit -n 20000
- set -e
- build_jobs=$(nproc)
- if [[ -z "$NO_SMART_JOB_COUNT" ]]; then
- if [[ ${build_jobs} -gt 1 ]]; then
- jobs=1
- # The viewer requires an average of 2GB of memory per core to link
- # Note: Behaviour change compared to the previous versions:
- # This script will no longer try to allocate build memory into swap
- # This is bad practice, and swap should be reserved to evict process
- # memory from physical ram to make place for the current workset.
- # This script will now try to check if swap is present and sufficent
- # for the current used memory to be stored in swap before allocating,
- # and will fallback to conservative allocation if swap is not available
- gigperlinkprocess=2
- mempercorekb=$((gigperlinkprocess * 1048576))
- requiredmemorykb=$(($(nproc) * mempercorekb))
- free_output="$(free --kilo --total | tail -n+2 | tr -s ' ')"
- physical_output=$(grep "Mem:" <<<"$free_output")
- #total_output=$(grep Total: <<< "$free_output")
- usedmemorykbphysical=$(cut -d ' ' -f 3 <<<"$physical_output")
- totalmemorykbphysical=$(cut -d ' ' -f 2 <<<"$physical_output")
- swap_output=$(grep Swap: <<<"$free_output")
- # Determine available swap space
- availableswapkb=0
- if [[ -n "$swap_output" ]]; then
- availableswapkb=$(cut -d ' ' -f 4 <<<"$swap_output")
- fi
- availablememorykbphysical=$(cut -d ' ' -f 7 <<<"$free_output")
- echo "Total memory: $totalmemorykbphysical (includes swap)"
- echo "Available memory: $availablememorykbphysical"
- echo "Required memory: $requiredmemorykb"
- echo "Available physical memory on this system: $((availablememorykbphysical / 1024 / 1024)) GB"
- echo "Estimated required memory to build with all cores: $((requiredmemorykb / 1024 / 1024)) GB"
- if [[ ${requiredmemorykb} -gt ${availablememorykbphysical} ]]; then
- echo "Warning: Not enough available physical memory to build with all cores"
- if [[ ${usedmemorykbphysical} -lt ${availableswapkb} ]]; then
- # use all physical ram as swap will do its job
- echo "There is enough free swap to store the currently used memory"
- jobs=$(((totalmemorykbphysical / 1024 / 1024) / gigperlinkprocess))
- else
- # Not enough swap to hold ram contents, calculate manually
- echo "Allocating build jobs according to available physical memory ("$((availablememorykbphysical / 1024 / 1024))"/"$((requiredmemorykb / 1024 / 1024))"GB)..."
- # FIXME: Goes one iteration beyond what it should
- while [[ $((jobs * mempercorekb)) -lt ${availablememorykbphysical} ]]; do
- jobs=$((jobs + 1))
- echo -e "${jobs} jobs would consume $(((jobs * mempercorekb) / 1024 / 1024))GB"
- done
- # Back off one job count. Not sure why I have to do this but
- # the loop is doing one extra iteration.
- jobs=$((jobs - 1))
- fi
- build_jobs=${jobs}
- echo "Computed job count: ${build_jobs}"
- fi
- fi
- fi
- export AUTOBUILD_CPU_COUNT=$build_jobs
- AL_CMAKE_CONFIG=(
- -DLL_TESTS:BOOL=ON
- -DDISABLE_FATAL_WARNINGS=ON
- -DUSE_LTO:BOOL=OFF
- -DVIEWER_CHANNEL="Alchemy Test"
- )
- # I could not find the documentation on how to handle BUILDENV/OPTION in
- # makepkg.conf. If you are reading this and know where it is,
- # please send it my way.
- # if [[ -n "$AL_NO_CCACHE" ]] || ! command -v ccache 2 > /dev/null 2>&1; then
- # echo "ccache disabled"
- # AL_CMAKE_CONFIG+=(-UCMAKE_CXX_COMPILER_LAUNCHER)
- # else
- # echo "ccache available and enabled"
- # export CCACHE_SLOPPINESS="file_macro,locale,time_macros"
- # export CCACHE_NOHASHDIR="true"
- # AL_CMAKE_CONFIG+=(-DCMAKE_CXX_COMPILER_LAUNCHER=ccache)
- # fi
- $prefix_cmd autobuild configure -A 64 -c ReleaseOS -- "${AL_CMAKE_CONFIG[@]}"
- echo "Building with ${AUTOBUILD_CPU_COUNT} jobs (adjusted)"
- $prefix_cmd autobuild build -A64 -c ReleaseOS --no-configure
+ # we have a lot of files, relax ulimit to help performance
+ if [[ -n "$USE_VENV" ]]; then
+ . ".venv/bin/activate"
+ fi
+ set +e
+ ulimit -n 20000
+ set -e
+ build_jobs=$(nproc)
+ if [[ -z "$NO_SMART_JOB_COUNT" ]]; then
+ if [[ ${build_jobs} -gt 1 ]]; then
+ jobs=1
+ # The viewer requires an average of 2GB of memory per core to link
+ # Note: Behaviour change compared to the previous versions:
+ # This script will no longer try to allocate build memory into swap
+ # This is bad practice, and swap should be reserved to evict process
+ # memory from physical ram to make place for the current workset.
+ # This script will now try to check if swap is present and sufficent
+ # for the current used memory to be stored in swap before allocating,
+ # and will fallback to conservative allocation if swap is not available
+ gigperlinkprocess=2
+ mempercorekb=$((gigperlinkprocess * 1048576))
+ requiredmemorykb=$(($(nproc) * mempercorekb))
+ free_output="$(free --kilo --total | tail -n+2 | tr -s ' ')"
+ physical_output=$(grep "Mem:" <<<"$free_output")
+ #total_output=$(grep Total: <<< "$free_output")
+ usedmemorykbphysical=$(cut -d ' ' -f 3 <<<"$physical_output")
+ totalmemorykbphysical=$(cut -d ' ' -f 2 <<<"$physical_output")
+ swap_output=$(grep Swap: <<<"$free_output")
+ # Determine available swap space
+ availableswapkb=0
+ if [[ -n "$swap_output" ]]; then
+ availableswapkb=$(cut -d ' ' -f 4 <<<"$swap_output")
+ fi
+ availablememorykbphysical=$(cut -d ' ' -f 7 <<<"$free_output")
+ echo "Total memory: $totalmemorykbphysical (includes swap)"
+ echo "Available memory: $availablememorykbphysical"
+ echo "Required memory: $requiredmemorykb"
+ echo "Available physical memory on this system: $((availablememorykbphysical / 1024 / 1024)) GB"
+ echo "Estimated required memory to build with all cores: $((requiredmemorykb / 1024 / 1024)) GB"
+ if [[ ${requiredmemorykb} -gt ${availablememorykbphysical} ]]; then
+ echo "Warning: Not enough available physical memory to build with all cores"
+ if [[ ${usedmemorykbphysical} -lt ${availableswapkb} ]]; then
+ # use all physical ram as swap will do its job
+ echo "There is enough free swap to store the currently used memory"
+ jobs=$(((totalmemorykbphysical / 1024 / 1024) / gigperlinkprocess))
+ else
+ # Not enough swap to hold ram contents, calculate manually
+ echo "Allocating build jobs according to available physical memory ("$((availablememorykbphysical / 1024 / 1024))"/"$((requiredmemorykb / 1024 / 1024))"GB)..."
+ # FIXME: Goes one iteration beyond what it should
+ while [[ $((jobs * mempercorekb)) -lt ${availablememorykbphysical} ]]; do
+ jobs=$((jobs + 1))
+ echo -e "${jobs} jobs would consume $(((jobs * mempercorekb) / 1024 / 1024))GB"
+ done
+ # Back off one job count. Not sure why I have to do this but
+ # the loop is doing one extra iteration.
+ jobs=$((jobs - 1))
+ fi
+ build_jobs=${jobs}
+ echo "Computed job count: ${build_jobs}"
+ fi
+ fi
+ fi
+ export AUTOBUILD_CPU_COUNT=$build_jobs
+ AL_CMAKE_CONFIG=(
+ -DLL_TESTS:BOOL=ON
+ -DDISABLE_FATAL_WARNINGS=ON
+ -DUSE_LTO:BOOL=OFF
+ -DVIEWER_CHANNEL="Alchemy Test"
+ )
+ # I could not find the documentation on how to handle BUILDENV/OPTION in
+ # makepkg.conf. If you are reading this and know where it is,
+ # please send it my way.
+ # if [[ -n "$AL_NO_CCACHE" ]] || ! command -v ccache 2 > /dev/null 2>&1; then
+ # echo "ccache disabled"
+ # AL_CMAKE_CONFIG+=(-UCMAKE_CXX_COMPILER_LAUNCHER)
+ # else
+ # echo "ccache available and enabled"
+ # export CCACHE_SLOPPINESS="file_macro,locale,time_macros"
+ # export CCACHE_NOHASHDIR="true"
+ # AL_CMAKE_CONFIG+=(-DCMAKE_CXX_COMPILER_LAUNCHER=ccache)
+ # fi
+ $prefix_cmd autobuild configure -A 64 -c ReleaseOS -- "${AL_CMAKE_CONFIG[@]}"
+ echo "Building with ${AUTOBUILD_CPU_COUNT} jobs (adjusted)"
+ $prefix_cmd autobuild build -A64 -c ReleaseOS --no-configure
}
cleanbuild() {
- rm -rf build-linux-64
- git pull --prune
- build
+ rm -rf build-linux-64
+ git pull --prune
+ build
}
if [[ -n "$1" ]]; then
- $1
+ $1
else
- echo "Running unattended batch build..."
- prepare
- build
+ echo "Running unattended batch build..."
+ prepare
+ build
fi
+
+# vi: set ai softtabstop=2 shiftwidth=2 tabstop=2 expandtab: