├── .docker ├── Dockerfile ├── add-obs-repo.sh └── gpg.conf ├── .github └── workflows │ ├── build.yml │ ├── check_changes │ ├── docker.yml │ ├── env │ ├── gitbuild.yml │ ├── mirror.yml │ ├── mirror │ ├── check-package-exists │ ├── check-update-required │ ├── gen-service.py │ ├── generate-obs-files │ └── upload-obs-files │ ├── obs_files │ ├── obs_trigger │ └── prepare ├── README.md ├── argparse ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── avr-sim-bin ├── .SRCINFO ├── .gitignore ├── PKGBUILD ├── avr_sim.desktop ├── avr_sim_16x16.png ├── avr_sim_256x256.png ├── avr_sim_32x32.png ├── avr_sim_48x48.png └── avr_sim_64x64.png ├── aws-lambda-cpp-runtime ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── gog-terraria ├── .SRCINFO ├── .gitignore ├── PKGBUILD ├── gog-terraria ├── gog-terraria.desktop └── gog-terraria.profile ├── libstdc++5 ├── .SRCINFO ├── .gitignore ├── PKGBUILD ├── gcc-3.4.3-no_multilib_amd64.patch ├── gcc-3.4.6-ucontext.patch └── siginfo.patch ├── libva-vdpau-driver-wayland ├── .SRCINFO ├── .gitignore ├── PKGBUILD ├── libva-vdpau-driver-0.7.4-CreateSurfaceFromV4L2Buf.patch ├── libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch ├── libva-vdpau-driver-0.7.4-glext-missing-definition.patch ├── libva-vdpau-driver-0.7.4-libvdpau-0.8.patch ├── libva-vdpau-driver-0.7.4-sigfpe-crash.patch └── libva-vdpau-driver-0.7.4-xwayland.patch ├── libvips-git ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── minergate-cli ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── minergate-gui ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── mongodb ├── .SRCINFO ├── .gitignore ├── PKGBUILD ├── extrapatch-sconstruct.patch ├── mongodb-4.4.29-no-enterprise.patch ├── mongodb-5.0.2-no-compass.patch ├── mongodb-5.0.2-skip-reqs-check.patch ├── mongodb-7.0.14-system-boost.patch ├── mongodb-7.0.2-sconstruct.patch ├── mongodb.sysusers └── mongodb.tmpfiles ├── ncurses5-compat-libs ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── phoenixminer-bin ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── php-smbclient ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── python-sphinx-automodapi ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── python-stdnum ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── sip4 ├── .SRCINFO ├── .gitignore ├── PKGBUILD └── python3-11.patch ├── ttf-babelstone-runic ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── turbo-base64 ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── ueberzugpp-nogl ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── ueberzugpp ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── ungoogled-chromium ├── .SRCINFO ├── .gitignore ├── 0001-adjust-buffer-format-order.patch ├── 0001-enable-linux-unstable-deb-target.patch ├── 0001-ozone-wayland-implement-text_input_manager-fixes.patch ├── 0001-ozone-wayland-implement-text_input_manager_v3.patch ├── 0001-vaapi-flag-ozone-wayland.patch ├── PKGBUILD ├── allow-ANGLEImplementation-kVulkan.patch ├── compiler-rt-adjust-paths.patch ├── drop-flag-unsupported-by-clang17.patch ├── ninja-out-of-order-generation-fix.patch ├── update-patches.sh └── use-oauth2-client-switches-as-default.patch ├── xf86-video-amdgpu-git ├── .SRCINFO ├── .gitignore └── PKGBUILD ├── xf86-video-intel-git ├── .SRCINFO ├── .gitignore ├── PKGBUILD └── xf86-video-intel.install ├── xorg-server-git ├── .SRCINFO ├── .gitignore ├── PKGBUILD ├── xorg-server-git.install ├── xvfb-run └── xvfb-run.1 └── xorgproto-git ├── .SRCINFO ├── .gitignore └── PKGBUILD /.docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM archlinux:base-devel 2 | 3 | LABEL maintainer="jk@vin.ovh" 4 | 5 | # create build user 6 | RUN useradd --create-home build 7 | RUN echo "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 8 | 9 | # configure default gpg key server to a more reliable one 10 | COPY gpg.conf /home/build/.gnupg/gpg.conf 11 | RUN chown -R build:build /home/build/.gnupg 12 | RUN chmod 700 /home/build/.gnupg 13 | RUN chmod 600 /home/build/.gnupg/gpg.conf 14 | 15 | # add OpenSUSE Build Service repository 16 | COPY add-obs-repo.sh /tmp/add-obs-repo.sh 17 | RUN /tmp/add-obs-repo.sh 18 | 19 | # update keyring first 20 | RUN yes | pacman -Sy archlinux-keyring 21 | 22 | # update and install packages 23 | RUN yes | pacman -Syu git wget python-jinja python-srcinfo 24 | 25 | USER build 26 | WORKDIR /home/build 27 | 28 | # switch back to root for regular usage 29 | USER root 30 | WORKDIR / 31 | 32 | # slim image 33 | RUN yes | pacman -Scc 34 | 35 | -------------------------------------------------------------------------------- /.docker/add-obs-repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cat >> "/etc/pacman.conf" << EOF 3 | [home_justkidding_arch_Arch] 4 | Server = https://downloadcontent.opensuse.org/repositories/home:/justkidding:/arch/Arch/\$arch 5 | EOF 6 | 7 | key=$(curl -fsSL https://download.opensuse.org/repositories/home:justkidding:arch/Arch/$(uname -m)/home_justkidding_arch_Arch.key) 8 | fingerprint=$(gpg --quiet --with-colons --import-options show-only --import --fingerprint <<< "${key}" | awk -F: '$1 == "fpr" { print $10 }') 9 | 10 | pacman-key --init 11 | pacman-key --add - <<< "${key}" 12 | pacman-key --lsign-key "${fingerprint}" 13 | -------------------------------------------------------------------------------- /.docker/gpg.conf: -------------------------------------------------------------------------------- 1 | keyserver hkp://keyserver.ubuntu.com 2 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build packages 2 | on: 3 | push: 4 | paths-ignore: 5 | - ".docker/**" 6 | - ".github/**" 7 | 8 | defaults: 9 | run: 10 | shell: bash 11 | 12 | jobs: 13 | main: 14 | env: 15 | PACKAGE: ${{ matrix.PKGS }} 16 | OBS_AUTH: ${{ secrets.OBS_AUTH }} 17 | OBS_PROJECT: ${{ secrets.OBS_PROJECT }} 18 | runs-on: ubuntu-latest 19 | container: justkdng/aur:latest 20 | strategy: 21 | fail-fast: false 22 | matrix: 23 | PKGS: [ 24 | "ungoogled-chromium", 25 | "xorgproto-git", 26 | "xorg-server-git", 27 | "xf86-video-amdgpu-git", 28 | "mongodb", 29 | "python-stdnum", 30 | "libva-vdpau-driver-wayland", 31 | "libstdc++5", 32 | "gminer-bin", 33 | "phoenixminer-bin", 34 | "python-sphinx-automodapi" 35 | ] 36 | steps: 37 | - name: Checkout latest commit 38 | uses: actions/checkout@v3 39 | with: 40 | fetch-depth: 0 41 | - name: Check changes in package 42 | run: .github/workflows/check_changes 43 | - name: Check if package exists 44 | run: .github/workflows/mirror/check-package-exists 45 | - name: Prepare environment 46 | run: .github/workflows/env 47 | - name: Run prepare() 48 | run: sudo -u build -EH bash -c .github/workflows/prepare 49 | - name: Trigger OBS build 50 | run: .github/workflows/obs_trigger 51 | 52 | -------------------------------------------------------------------------------- /.github/workflows/check_changes: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd .. 4 | rm -rf aur 5 | git clone https://github.com/jstkdng/aur 6 | cd aur 7 | 8 | git diff --name-only HEAD~1..HEAD | grep -F -q "${PACKAGE}/" 9 | 10 | RET=$? 11 | if [[ $RET -eq 1 ]]; then 12 | echo "no_changes=$RET" >> $GITHUB_ENV 13 | fi 14 | -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | on: 4 | push: 5 | paths: 6 | - ".docker/**" 7 | schedule: 8 | - cron: "0 0 * * *" 9 | 10 | jobs: 11 | docker: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - 15 | name: Set up QEMU 16 | uses: docker/setup-qemu-action@v2 17 | - 18 | name: Set up Docker Buildx 19 | uses: docker/setup-buildx-action@v2 20 | - 21 | name: Login to DockerHub 22 | uses: docker/login-action@v2 23 | with: 24 | username: ${{ secrets.DOCKERHUB_USERNAME }} 25 | password: ${{ secrets.DOCKERHUB_TOKEN }} 26 | - 27 | name: Build and push 28 | uses: docker/build-push-action@v3 29 | with: 30 | push: true 31 | tags: justkdng/aur:latest 32 | context: "{{defaultContext}}:.docker" 33 | -------------------------------------------------------------------------------- /.github/workflows/env: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ ${no_changes+x} ]]; then 4 | exit 0 5 | fi 6 | 7 | # pacman -Syu --noconfirm wget jre-openjdk-headless jack2 python-jinja python-srcinfo extra/mesa 8 | 9 | cd "$PACKAGE" 10 | 11 | cp ./* /home/build 12 | 13 | chown -R build:build /home/build 14 | 15 | -------------------------------------------------------------------------------- /.github/workflows/gitbuild.yml: -------------------------------------------------------------------------------- 1 | name: Build git packages 2 | on: 3 | schedule: 4 | - cron: '0 0 * * *' 5 | 6 | defaults: 7 | run: 8 | shell: bash 9 | 10 | jobs: 11 | main-git: 12 | env: 13 | PACKAGE: ${{ matrix.PKGS }} 14 | OBS_AUTH: ${{ secrets.OBS_AUTH }} 15 | OBS_PROJECT: ${{ secrets.OBS_PROJECT }} 16 | runs-on: ubuntu-latest 17 | container: justkdng/archlinux:latest 18 | strategy: 19 | fail-fast: false 20 | matrix: 21 | PKGS: [ 22 | "xorgproto-git", 23 | "xorg-server-git", 24 | "xf86-video-amdgpu-git" 25 | ] 26 | steps: 27 | - name: Checkout latest commit 28 | uses: actions/checkout@v3 29 | with: 30 | fetch-depth: 0 31 | - name: Prepare environment 32 | run: .github/workflows/env 33 | - name: Run prepare() 34 | run: sudo -u build -EH bash -c .github/workflows/prepare 35 | - name: Trigger OBS build 36 | run: .github/workflows/obs_trigger 37 | 38 | -------------------------------------------------------------------------------- /.github/workflows/mirror.yml: -------------------------------------------------------------------------------- 1 | name: Update OBS mirror 2 | on: 3 | schedule: 4 | - cron: '0 0 * * *' 5 | push: 6 | paths: 7 | - '.github/workflows/mirror/**' 8 | - '.github/workflows/mirror.yml' 9 | 10 | defaults: 11 | run: 12 | shell: bash 13 | 14 | jobs: 15 | mirror: 16 | env: 17 | PACKAGE: ${{ matrix.PKGS }} 18 | OBS_AUTH: ${{ secrets.OBS_AUTH }} 19 | OBS_PROJECT: ${{ secrets.OBS_PROJECT }} 20 | MIRROR: 1 21 | runs-on: ubuntu-latest 22 | container: justkdng/archlinux:latest 23 | strategy: 24 | fail-fast: false 25 | matrix: 26 | PKGS: [ 27 | "python-cheetah3", 28 | "xmrig-donateless", 29 | "xmrig-mo", 30 | "qt4", 31 | "mysql", 32 | "python-cppheaderparser" 33 | ] 34 | steps: 35 | - name: Checkout latest commit 36 | uses: actions/checkout@v3 37 | with: 38 | fetch-depth: 0 39 | - name: Check if package exists 40 | run: .github/workflows/mirror/check-package-exists 41 | - name: Check if update is required 42 | run: .github/workflows/mirror/check-update-required 43 | - name: Generate OBS files 44 | run: .github/workflows/mirror/generate-obs-files 45 | - name: Upload files to OBS 46 | run: .github/workflows/mirror/upload-obs-files 47 | 48 | -------------------------------------------------------------------------------- /.github/workflows/mirror/check-package-exists: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | AUTH="authorization: Basic $OBS_AUTH" 4 | BASE_URL="https://api.opensuse.org/source/$OBS_PROJECT/$PACKAGE" 5 | 6 | curl -H "$AUTH" "$BASE_URL/_meta" | grep -q "Package not found" 7 | 8 | # if string is not found, package exists 9 | if [[ $? -eq 1 ]]; then 10 | exit 0 11 | fi 12 | 13 | # create package 14 | cat > "_meta" << EOF 15 | 16 | 17 | <description/> 18 | </package> 19 | EOF 20 | 21 | curl -H "$AUTH" -X PUT -T _meta "$BASE_URL/_meta" 22 | 23 | rm _meta 24 | 25 | echo "new_pkg=1" >> $GITHUB_ENV 26 | -------------------------------------------------------------------------------- /.github/workflows/mirror/check-update-required: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | AUTH="authorization: Basic $OBS_AUTH" 4 | BASE_URL="https://api.opensuse.org/source/$OBS_PROJECT/$PACKAGE" 5 | 6 | git clone https://aur.archlinux.org/${PACKAGE}.git 7 | chown -R build:build $PACKAGE 8 | 9 | # if it's new package can't do verification 10 | if [[ ${new_pkg+x} ]]; then 11 | exit 0 12 | fi 13 | 14 | cd ${PACKAGE} 15 | 16 | curl -XGET -H "$AUTH" "$BASE_URL/PKGBUILD" -o PKGBUILD.old 17 | sudo -u build makepkg -p PKGBUILD.old --printsrcinfo | cmp -s .SRCINFO - 18 | 19 | # exit code 0 means there's no need to update 20 | if [[ $? -eq 0 ]]; then 21 | echo "no_changes=1" >> $GITHUB_ENV 22 | fi 23 | 24 | -------------------------------------------------------------------------------- /.github/workflows/mirror/gen-service.py: -------------------------------------------------------------------------------- 1 | import os 2 | from srcinfo.parse import parse_srcinfo 3 | from urllib.parse import urlparse 4 | from jinja2 import Environment, FileSystemLoader, BaseLoader 5 | from pathlib import Path 6 | 7 | TEMPLATE_STR = """<!-- vim: set ft=xml: --> 8 | <services> 9 | {%- for source in sources %} 10 | <service name="download_url"> 11 | <param name="protocol">{{ source.protocol }}</param> 12 | <param name="host">{{ source.host }}</param> 13 | <param name="path">{{ source.path }}</param> 14 | <param name="filename">{{ source.filename }}</param> 15 | </service> 16 | {%- endfor %} 17 | {%- if pkg.mirror and not pkg.only_pkgbuild %} 18 | <service name="obs_scm"> 19 | <param name="scm">git</param> 20 | <param name="url">https://aur.archlinux.org/{{ pkg.name }}</param> 21 | <param name="extract">[!PKGBUILD]*</param> 22 | </service> 23 | {%- elif not pkg.only_pkgbuild %} 24 | <service name="obs_scm"> 25 | <param name="scm">git</param> 26 | <param name="url">https://github.com/jstkdng/aur</param> 27 | <param name="subdir">{{ pkg.name }}</param> 28 | <param name="extract">[!PKGBUILD]*</param> 29 | </service> 30 | {%- endif %} 31 | </services> 32 | 33 | 34 | """ 35 | 36 | 37 | def main(): 38 | # read .SRCINFO from current directory 39 | with open(".SRCINFO", "r") as f: 40 | (srcinfo, _) = parse_srcinfo(f.read()) 41 | sources = [] 42 | for source in srcinfo["source"]: 43 | parsed_url = urlparse(source) 44 | src_obj = { 45 | "protocol": "", 46 | "host": "", 47 | "path": "", 48 | "filename": "" 49 | } 50 | 51 | if not parsed_url.netloc: 52 | if parsed_url.scheme: 53 | src_obj["filename"] = parsed_url.scheme 54 | parsed_url = urlparse(parsed_url.path[1:]) 55 | else: 56 | continue 57 | 58 | src_obj["protocol"] = parsed_url.scheme 59 | src_obj["host"] = parsed_url.netloc 60 | src_obj["path"] = parsed_url.path 61 | if not src_obj["filename"]: 62 | src_obj["filename"] = parsed_url.path.split('/')[-1] 63 | 64 | sources.append(src_obj) 65 | 66 | # package information 67 | pkg = { 68 | "name": os.getenv('PACKAGE'), 69 | "only_pkgbuild": True, 70 | "mirror": False 71 | } 72 | if os.getenv('MIRROR') is not None: 73 | pkg["mirror"] = True 74 | 75 | cwd = Path.cwd() 76 | files = [x for x in cwd.iterdir()] 77 | empty_dir = True 78 | ignore = ['PKGBUILD', '.SRCINFO', '.gitignore', '_constraints', '_service', '.git'] 79 | for file in files: 80 | if file.stem not in ignore: 81 | pkg["only_pkgbuild"] = False 82 | break 83 | 84 | # render template 85 | template = Environment(loader=BaseLoader()).from_string(TEMPLATE_STR) 86 | output = template.render(sources=sources, pkg=pkg) 87 | with open("_service", "w") as f: 88 | f.write(output) 89 | 90 | 91 | if __name__ == "__main__": 92 | main() 93 | -------------------------------------------------------------------------------- /.github/workflows/mirror/generate-obs-files: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ ${no_changes+x} ]]; then 4 | exit 0 5 | fi 6 | 7 | cd ${PACKAGE} 8 | 9 | source ../.github/workflows/obs_files 10 | 11 | large=("rocm-llvm" "qt4" "mysql") 12 | 13 | if [[ " ${large[*]} " =~ " ${PACKAGE} " ]]; then 14 | cat > "_constraints" << EOF 15 | <!-- vim: set ft=xml : --> 16 | <constraints> 17 | <hardware> 18 | <disk> 19 | <size unit="G">16</size> 20 | </disk> 21 | <memory> 22 | <size unit="G">16</size> 23 | </memory> 24 | </hardware> 25 | </constraints> 26 | 27 | EOF 28 | fi 29 | 30 | if [[ ! " ${large[*]} " =~ " ${PACKAGE} " ]]; then 31 | cat > "_constraints" << EOF 32 | <!-- vim: set ft=xml : --> 33 | <constraints> 34 | </constraints> 35 | 36 | EOF 37 | fi 38 | 39 | "$PACKAGE" 40 | 41 | RET=$? 42 | if [[ $RET -ne 0 ]]; then 43 | # generate _service file 44 | python ../.github/workflows/mirror/gen-service.py 45 | fi 46 | 47 | -------------------------------------------------------------------------------- /.github/workflows/mirror/upload-obs-files: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ ${no_changes+x} ]]; then 4 | exit 0 5 | fi 6 | 7 | cd "$PACKAGE" 8 | 9 | AUTH="authorization: Basic $OBS_AUTH" 10 | BASE_URL="https://api.opensuse.org/source/$OBS_PROJECT/$PACKAGE" 11 | 12 | declare -a FILES=(_service _constraints PKGBUILD) 13 | 14 | for FILE in "${FILES[@]}" 15 | do 16 | URL="$BASE_URL/$FILE?rev=upload" 17 | curl -XPUT -H 'Content-Type: application/octet-stream' -H "$AUTH" --data-binary "@$FILE" $URL 18 | done 19 | 20 | curl -XPOST -H "$AUTH" "$BASE_URL" -F "cmd=commit" 21 | 22 | -------------------------------------------------------------------------------- /.github/workflows/obs_files: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | _git_pkg() 4 | { 5 | # PKGBUILD after prepare() has updated pkgver 6 | rm PKGBUILD 7 | cp /home/build/PKGBUILD . 8 | 9 | # remove pkgver function 10 | sed -i '/^pkgver() {$/,/^}$/d' PKGBUILD 11 | } 12 | 13 | _gen_constraints() 14 | { 15 | cat > "_constraints" << EOF 16 | <!-- vim: set ft=xml : --> 17 | <constraints> 18 | <hardware> 19 | <disk> 20 | <size unit="G">16</size> 21 | </disk> 22 | <memory> 23 | <size unit="G">16</size> 24 | </memory> 25 | </hardware> 26 | </constraints> 27 | EOF 28 | } 29 | 30 | _empty_constraints() 31 | { 32 | cat > "_constraints" << EOF 33 | <!-- vim: set ft=xml : --> 34 | <constraints> 35 | </constraints> 36 | EOF 37 | } 38 | 39 | _medium_constraints() 40 | { 41 | cat > "_constraints" << EOF 42 | <!-- vim: set ft=xml : --> 43 | <constraints> 44 | <hardware> 45 | <memory> 46 | <size unit="G">8</size> 47 | </memory> 48 | </hardware> 49 | </constraints> 50 | EOF 51 | } 52 | 53 | _large_constraints() 54 | { 55 | cat > "_constraints" << EOF 56 | <!-- vim: set ft=xml : --> 57 | <constraints> 58 | <hardware> 59 | <disk> 60 | <size unit="G">24</size> 61 | </disk> 62 | <physicalmemory> 63 | <size unit="G">24</size> 64 | </physicalmemory> 65 | </hardware> 66 | </constraints> 67 | EOF 68 | 69 | } 70 | 71 | mongodb() 72 | { 73 | python ../.github/workflows/mirror/gen-service.py 74 | 75 | _large_constraints 76 | } 77 | 78 | libva-vdpau-driver-wayland() 79 | { 80 | python ../.github/workflows/mirror/gen-service.py 81 | 82 | _empty_constraints 83 | } 84 | 85 | python-stdnum() 86 | { 87 | python ../.github/workflows/mirror/gen-service.py 88 | 89 | _empty_constraints 90 | } 91 | 92 | libstdc++5() 93 | { 94 | python ../.github/workflows/mirror/gen-service.py 95 | 96 | _empty_constraints 97 | } 98 | 99 | phoenixminer-bin() 100 | { 101 | python ../.github/workflows/mirror/gen-service.py 102 | 103 | _empty_constraints 104 | } 105 | 106 | gminer-bin() 107 | { 108 | python ../.github/workflows/mirror/gen-service.py 109 | 110 | _empty_constraints 111 | } 112 | 113 | python-sphinx-automodapi() 114 | { 115 | python ../.github/workflows/mirror/gen-service.py 116 | 117 | _empty_constraints 118 | } 119 | 120 | ungoogled-chromium() 121 | { 122 | 123 | source PKGBUILD 124 | 125 | # Add required dependencies for OBS 126 | newdeps=$(printf "'%s' " "${depends[@]}") 127 | makedeps=$(printf "'%s' " "${makedepends[@]}") 128 | 129 | makedeps=$(printf '%s\n' "${makedeps//\'java-runtime-headless\'/}") 130 | makedeps="${makedeps}'jack' 'jre-openjdk-headless' 'wayland-protocols'" 131 | 132 | sed -r -i \ 133 | -e '/^depends=/,/[)]$/cdepends=('"${newdeps}"')' \ 134 | -e '/^depends[+]=/d' \ 135 | -e '/^makedepends=/,/[)]$/cmakedepends=('"${makedeps}"')' \ 136 | "PKGBUILD" 137 | 138 | python ../.github/workflows/mirror/gen-service.py 139 | 140 | _large_constraints 141 | } 142 | 143 | xorgproto-git() 144 | { 145 | _git_pkg 146 | 147 | source PKGBUILD 148 | 149 | # replace git url 150 | new_url="\${pkgname}.tar" 151 | sed_param=s/_srcurl=.*/_srcurl=\"${new_url}\"/ 152 | sed -i "$sed_param" PKGBUILD 153 | 154 | # generate _service file 155 | cat > "_service" << EOF 156 | <services> 157 | <service name="tar_scm"> 158 | <param name="scm">git</param> 159 | <param name="url">https://gitlab.freedesktop.org/xorg/proto/$_pkgname.git</param> 160 | <param name="filename">$pkgname</param> 161 | <param name="version">_none_</param> 162 | </service> 163 | </services> 164 | EOF 165 | 166 | _empty_constraints 167 | } 168 | 169 | xorg-server-git() 170 | { 171 | _git_pkg 172 | _empty_constraints 173 | 174 | source PKGBUILD 175 | 176 | # generate _service file 177 | cat > "_service" << EOF 178 | <services> 179 | <service name="tar_scm"> 180 | <param name="scm">git</param> 181 | <param name="url">https://gitlab.freedesktop.org/xorg/xserver.git</param> 182 | <param name="filename">$_pkgbase</param> 183 | <param name="version">_none_</param> 184 | </service> 185 | <service name="obs_scm"> 186 | <param name="scm">git</param> 187 | <param name="url">https://github.com/jstkdng/aur</param> 188 | <param name="subdir">$PACKAGE</param> 189 | <param name="extract">[!PKGBUILD]*</param> 190 | </service> 191 | </services> 192 | EOF 193 | 194 | # add stuff to PKGBUILD 195 | cat >> "PKGBUILD" << EOF 196 | source[0]=${_pkgbase}.tar 197 | EOF 198 | 199 | } 200 | 201 | xf86-video-amdgpu-git() 202 | { 203 | _git_pkg 204 | _empty_constraints 205 | 206 | source PKGBUILD 207 | 208 | # generate _service file 209 | cat > "_service" << EOF 210 | <services> 211 | <service name="tar_scm"> 212 | <param name="scm">git</param> 213 | <param name="url">https://gitlab.freedesktop.org/xorg/driver/$_pkgname</param> 214 | <param name="filename">$pkgname</param> 215 | <param name="version">_none_</param> 216 | </service> 217 | </services> 218 | EOF 219 | 220 | # add stuff to PKGBUILD 221 | cat >> "PKGBUILD" << EOF 222 | source=("$pkgname.tar") 223 | EOF 224 | 225 | } 226 | 227 | linux-firmware-git() 228 | { 229 | _git_pkg 230 | _medium_constraints 231 | 232 | source PKGBUILD 233 | 234 | # generate _service file 235 | cat > "_service" << EOF 236 | <services> 237 | <service name="tar_scm"> 238 | <param name="scm">git</param> 239 | <param name="url">https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</param> 240 | <param name="filename">$pkgbase</param> 241 | <param name="revision">main</param> 242 | <param name="version">_none_</param> 243 | </service> 244 | <service name="obs_scm"> 245 | <param name="scm">git</param> 246 | <param name="url">https://github.com/jstkdng/aur</param> 247 | <param name="subdir">$pkgbase</param> 248 | <param name="extract">[!PKGBUILD]*</param> 249 | </service> 250 | </services> 251 | EOF 252 | 253 | # add stuff to PKGBUILD 254 | cat >> "PKGBUILD" << EOF 255 | source[0]="$pkgbase.tar" 256 | EOF 257 | } 258 | 259 | -------------------------------------------------------------------------------- /.github/workflows/obs_trigger: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ ${no_changes+x} ]]; then 4 | exit 0 5 | fi 6 | 7 | source .github/workflows/obs_files 8 | 9 | cd "$PACKAGE" 10 | 11 | declare -a FILES=(PKGBUILD _service _constraints) 12 | 13 | AUTH="authorization: Basic $OBS_AUTH" 14 | BASE_URL="https://api.opensuse.org/source/$OBS_PROJECT/$PACKAGE" 15 | 16 | "$PACKAGE" # generate/modify files for OBS 17 | 18 | for FILE in "${FILES[@]}" 19 | do 20 | URL="$BASE_URL/$FILE?rev=upload" 21 | curl -XPUT -H 'Content-Type: application/octet-stream' -H "$AUTH" --data-binary "@$FILE" $URL 22 | done 23 | 24 | curl -XPOST -H "$AUTH" "$BASE_URL" -F "cmd=commit" 25 | -------------------------------------------------------------------------------- /.github/workflows/prepare: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ ${no_changes+x} ]]; then 4 | exit 0 5 | fi 6 | 7 | set -e 8 | 9 | cd "$HOME" 10 | 11 | if [[ $PACKAGE = "ungoogled-chromium" ]]; then 12 | exit 0 13 | fi 14 | 15 | yes | makepkg --nodeps --nobuild --skippgpcheck 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aur 2 | AUR packages I maintain and co-maintain 3 | 4 | # Downloads 5 | 6 | I'm using the OpenSUSE Build Service to build binaries for these packages. You can download the built 7 | binary directly or set up a repository for all my packages to be able to auto update. Both 8 | options are available [here](https://software.opensuse.org//download.html?project=home%3Ajustkidding%3Aarch&package=ungoogled-chromium). (ungoogled-chromium example) 9 | 10 | ## OBS Repository 11 | 12 | Add this line to your /etc/pacman.conf 13 | 14 | ``` 15 | [home_justkidding_arch_Arch] 16 | Server = https://downloadcontent.opensuse.org/repositories/home:/justkidding:/arch/Arch/$arch 17 | ``` 18 | 19 | Then execute this commands as root 20 | 21 | ``` 22 | key=$(curl -fsSL https://downloadcontent.opensuse.org/repositories/home:justkidding:arch/Arch/$(uname -m)/home_justkidding_arch_Arch.key) 23 | fingerprint=$(gpg --quiet --with-colons --import-options show-only --import --fingerprint <<< "${key}" | awk -F: '$1 == "fpr" { print $10 }') 24 | 25 | pacman-key --init 26 | pacman-key --add - <<< "${key}" 27 | pacman-key --lsign-key "${fingerprint}" 28 | ``` 29 | 30 | After this you should be able to install any packages I maintain. 31 | 32 | ### Donations 33 | 34 | If you like my work you can send some XMR my way. 35 | 36 | XMR address: 8BRt2qYXjyR9Bb2CXtjVWSYNCepqgcZkheoMWTXTNmwLLU3ZEscuxtYFGaytSMNn1FETLdbdhXimCTTLSkN5r5j7SEBLMho 37 | -------------------------------------------------------------------------------- /argparse/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = argparse 2 | pkgdesc = Argument Parser for Modern C++ 3 | pkgver = 3.0 4 | pkgrel = 1 5 | url = https://github.com/p-ranav/argparse 6 | arch = any 7 | license = MIT 8 | makedepends = cmake 9 | source = https://github.com/p-ranav/argparse/archive/v3.0.tar.gz 10 | sha512sums = a7ed879eb3f71868cd84e513c0db63c4fecff1c9f0b34d6cfbe85d2439e83b80e97f713b497259c9775c9c7c1f639a08b73080045c51756de15e3d8c18b97116 11 | 12 | pkgname = argparse 13 | -------------------------------------------------------------------------------- /argparse/.gitignore: -------------------------------------------------------------------------------- 1 | src/ 2 | pkg/ 3 | *.pkg.tar.xz 4 | v*.tar.gz 5 | -------------------------------------------------------------------------------- /argparse/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=argparse 2 | pkgver=3.0 3 | pkgrel=1 4 | pkgdesc="Argument Parser for Modern C++" 5 | arch=(any) 6 | url="https://github.com/p-ranav/argparse" 7 | license=("MIT") 8 | makedepends=("cmake") 9 | source=("https://github.com/p-ranav/argparse/archive/v${pkgver}.tar.gz") 10 | sha512sums=('a7ed879eb3f71868cd84e513c0db63c4fecff1c9f0b34d6cfbe85d2439e83b80e97f713b497259c9775c9c7c1f639a08b73080045c51756de15e3d8c18b97116') 11 | 12 | build() { 13 | cmake -DCMAKE_BUILD_TYPE=None \ 14 | -DCMAKE_INSTALL_PREFIX=/usr \ 15 | -B"${srcdir}/${pkgname}-${pkgver}" \ 16 | -H"${srcdir}/${pkgname}-${pkgver}" \ 17 | -DARGPARSE_BUILD_TESTS=OFF 18 | cmake --build "${srcdir}/${pkgname}-${pkgver}" 19 | } 20 | 21 | package() { 22 | make DESTDIR="${pkgdir}" -C "${srcdir}/${pkgname}-${pkgver}" install 23 | } 24 | 25 | # vim:set ts=2 sw=2 et: 26 | -------------------------------------------------------------------------------- /avr-sim-bin/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = avr-sim-bin 2 | pkgdesc = Gerd's avr simulator 3 | pkgver = 2.8 4 | pkgrel = 2 5 | url = http://web.archive.org/web/20230918215345/http://www.avr-asm-tutorial.net/avr_sim/index_en.html 6 | arch = x86_64 7 | license = unknown 8 | depends = gtk2 9 | source = https://vin.ovh/repo/avr_sim_28_lin64.zip 10 | source = avr_sim.desktop 11 | source = avr_sim_16x16.png 12 | source = avr_sim_32x32.png 13 | source = avr_sim_48x48.png 14 | source = avr_sim_64x64.png 15 | source = avr_sim_256x256.png 16 | sha256sums = fb5201676e7ee64865d890469b9cc73af9478319e4c1442abeb1e451895351fa 17 | sha256sums = 62ccc4b2dfd899d13b143c36d56d43927c1a32741a6315bf632af159baa73ff8 18 | sha256sums = 728f09f142be88608abe17101a641aad5c04e4e023f1dd3b4c87be6072d91fe2 19 | sha256sums = d96a32be5acdb94268966e15c412926b4888cefc0a20e77fc16a44882810aaf4 20 | sha256sums = 28496dd429cb833e917310fde3abcdfa3610d11cf0a1f7028ef99bedb6b661db 21 | sha256sums = b92cb2fbee37c11e053cec9d5347e9618eb91c11527e9e0a28f4264ec43992de 22 | sha256sums = f015b905a6bcee09ce85cb91fa9f28a24a5b22915ea4b8674e771730d523d9d8 23 | 24 | pkgname = avr-sim-bin 25 | -------------------------------------------------------------------------------- /avr-sim-bin/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.pkg.* 4 | *.zip 5 | -------------------------------------------------------------------------------- /avr-sim-bin/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | 3 | pkgname=avr-sim-bin 4 | _pkgname=avr_sim 5 | pkgver=2.8 6 | pkgrel=2 7 | pkgdesc="Gerd's avr simulator" 8 | arch=(x86_64) 9 | url="http://web.archive.org/web/20230918215345/http://www.avr-asm-tutorial.net/avr_sim/index_en.html" 10 | license=('unknown') 11 | depends=('gtk2') 12 | source=("https://vin.ovh/repo/avr_sim_${pkgver/./}_lin64.zip" 13 | "avr_sim.desktop") 14 | sha256sums=('fb5201676e7ee64865d890469b9cc73af9478319e4c1442abeb1e451895351fa' 15 | '62ccc4b2dfd899d13b143c36d56d43927c1a32741a6315bf632af159baa73ff8' 16 | '728f09f142be88608abe17101a641aad5c04e4e023f1dd3b4c87be6072d91fe2' 17 | 'd96a32be5acdb94268966e15c412926b4888cefc0a20e77fc16a44882810aaf4' 18 | '28496dd429cb833e917310fde3abcdfa3610d11cf0a1f7028ef99bedb6b661db' 19 | 'b92cb2fbee37c11e053cec9d5347e9618eb91c11527e9e0a28f4264ec43992de' 20 | 'f015b905a6bcee09ce85cb91fa9f28a24a5b22915ea4b8674e771730d523d9d8') 21 | 22 | # append icons to source array 23 | for size in 16 32 48 64 256; do 24 | source+=("${_pkgname}_${size}x${size}.png") 25 | done 26 | 27 | package() { 28 | cd "$srcdir" 29 | 30 | install -D avr_sim "$pkgdir/usr/bin/avr_sim" 31 | 32 | install -Dm644 avr_sim.desktop "$pkgdir/usr/share/applications/avr_sim.desktop" 33 | 34 | for size in 16 32 48 64 256; do 35 | install -Dm644 "${_pkgname}_${size}x${size}.png" \ 36 | "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/${_pkgname}.png" 37 | done 38 | } 39 | -------------------------------------------------------------------------------- /avr-sim-bin/avr_sim.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=Avr Simulator 5 | Comment=Gerd's AVR simulator 6 | Exec=avr_sim 7 | Icon=avr_sim 8 | Terminal=false 9 | Categories=Development 10 | -------------------------------------------------------------------------------- /avr-sim-bin/avr_sim_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstkdng/aur/338572b4fd6a9e2ad4314ada4afe7ea99d3732ec/avr-sim-bin/avr_sim_16x16.png -------------------------------------------------------------------------------- /avr-sim-bin/avr_sim_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstkdng/aur/338572b4fd6a9e2ad4314ada4afe7ea99d3732ec/avr-sim-bin/avr_sim_256x256.png -------------------------------------------------------------------------------- /avr-sim-bin/avr_sim_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstkdng/aur/338572b4fd6a9e2ad4314ada4afe7ea99d3732ec/avr-sim-bin/avr_sim_32x32.png -------------------------------------------------------------------------------- /avr-sim-bin/avr_sim_48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstkdng/aur/338572b4fd6a9e2ad4314ada4afe7ea99d3732ec/avr-sim-bin/avr_sim_48x48.png -------------------------------------------------------------------------------- /avr-sim-bin/avr_sim_64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstkdng/aur/338572b4fd6a9e2ad4314ada4afe7ea99d3732ec/avr-sim-bin/avr_sim_64x64.png -------------------------------------------------------------------------------- /aws-lambda-cpp-runtime/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = aws-lambda-cpp-runtime 2 | pkgdesc = C++ implementation of the AWS Lambda runtime 3 | pkgver = 0.2.10 4 | pkgrel = 1 5 | url = https://github.com/awslabs/aws-lambda-cpp 6 | arch = x86_64 7 | arch = aarch64 8 | license = Apache 9 | makedepends = cmake 10 | depends = curl 11 | depends = bash 12 | options = !lto 13 | source = https://github.com/awslabs/aws-lambda-cpp/archive/refs/tags/v0.2.10.tar.gz 14 | sha256sums = fee8e465ac63efaa6252aa2a108183ef174cbc5ed3e56e4de4986846f89a76ee 15 | 16 | pkgname = aws-lambda-cpp-runtime 17 | -------------------------------------------------------------------------------- /aws-lambda-cpp-runtime/.gitignore: -------------------------------------------------------------------------------- 1 | src/ 2 | pkg/ 3 | *.tar.* 4 | -------------------------------------------------------------------------------- /aws-lambda-cpp-runtime/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | # shellcheck disable=SC2034,SC2154,SC2164 3 | 4 | pkgname=aws-lambda-cpp-runtime 5 | _pkgname=aws-lambda-cpp 6 | pkgver=0.2.10 7 | pkgrel=1 8 | pkgdesc="C++ implementation of the AWS Lambda runtime" 9 | arch=(x86_64 aarch64) 10 | url="https://github.com/awslabs/aws-lambda-cpp" 11 | license=("Apache") 12 | makedepends=("cmake") 13 | depends=("curl" "bash") 14 | source=("https://github.com/awslabs/${_pkgname}/archive/refs/tags/v${pkgver}.tar.gz") 15 | sha256sums=('fee8e465ac63efaa6252aa2a108183ef174cbc5ed3e56e4de4986846f89a76ee') 16 | options=(!lto) 17 | 18 | build() { 19 | cmake -B build -S "${_pkgname}-${pkgver}" \ 20 | -DCMAKE_BUILD_TYPE='None' \ 21 | -DCMAKE_INSTALL_PREFIX='/usr' \ 22 | -Wno-dev 23 | cmake --build build -j "$(nproc)" 24 | } 25 | 26 | package() { 27 | DESTDIR="$pkgdir" cmake --install build 28 | } 29 | 30 | # vim:set ts=2 sw=2 et: 31 | -------------------------------------------------------------------------------- /gog-terraria/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = gog-terraria 2 | pkgdesc = The very world is at your fingertips as you fight for survival, fortune, and glory. 3 | pkgver = 1.4.4.9.v4.60321 4 | pkgrel = 1 5 | url = http://terraria.org/ 6 | arch = x86_64 7 | license = custom 8 | makedepends = libarchive 9 | depends = sdl2 10 | optdepends = firejail: Automatically sandbox this application from your OS 11 | noextract = terraria_v1_4_4_9_v4_60321.sh 12 | options = !strip 13 | source = file://terraria_v1_4_4_9_v4_60321.sh 14 | source = gog-terraria.desktop 15 | source = gog-terraria 16 | source = gog-terraria.profile 17 | sha256sums = 9ef66aa58acbdce161221539d91845b68a11bcd75560a019dc09206918aae876 18 | sha256sums = 815bf359c2828cdefee1e33a978a84a2ebb538450197a5792b62e382ae3e3093 19 | sha256sums = ce9c75ce912e6c1c081e7fb9f0a4b49c8cf2274e82da4ead1cab6ab9c527cd79 20 | sha256sums = 9ec20a7515dd54a518da4fab006e0b2313deff1c341a3bd163f0e1305b6be5b6 21 | 22 | pkgname = gog-terraria 23 | -------------------------------------------------------------------------------- /gog-terraria/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *terraria* 4 | -------------------------------------------------------------------------------- /gog-terraria/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | # Maintainer: JustKidding <jk@vin.ovh> 3 | 4 | pkgname=gog-terraria 5 | pkgver=1.4.4.9.v4.60321 6 | pkgrel=1 7 | 8 | _setupname="terraria_v${pkgver//\./_}.sh" 9 | 10 | pkgdesc="The very world is at your fingertips as you fight for survival, fortune, and glory." 11 | url="http://terraria.org/" 12 | license=('custom') 13 | arch=('x86_64') 14 | depends=('sdl2') 15 | makedepends=('libarchive') 16 | optdepends=('firejail: Automatically sandbox this application from your OS') 17 | source=("file://${_setupname}" 18 | "${pkgname}.desktop" 19 | "$pkgname" 20 | "$pkgname.profile") 21 | 22 | # bsdtar is really cool but I want to control what I'm extracting 23 | noextract=("${_setupname}") 24 | sha256sums=('9ef66aa58acbdce161221539d91845b68a11bcd75560a019dc09206918aae876' 25 | '815bf359c2828cdefee1e33a978a84a2ebb538450197a5792b62e382ae3e3093' 26 | 'ce9c75ce912e6c1c081e7fb9f0a4b49c8cf2274e82da4ead1cab6ab9c527cd79' 27 | '9ec20a7515dd54a518da4fab006e0b2313deff1c341a3bd163f0e1305b6be5b6') 28 | options=(!strip) 29 | 30 | # You need to download the gog.com installer file manually or with lgogdownloader. 31 | #DLAGENTS+=("gogdownloader::/usr/bin/echo %u - This is is not a real URL, you need to download the GOG file manually to \"$PWD/${_setupname}\" or setup a gogdownloader:// DLAGENT. Read this PKGBUILD for more information.") 32 | #DLAGENTS+=("gogdownloader::/usr/bin/lgogdownloader --download-file=%u -o %o") 33 | 34 | # Prevent compressing final package 35 | PKGEXT='.pkg.tar' 36 | 37 | prepare(){ 38 | datasource="${_setupname}" 39 | 40 | offset=$(sed -n '/.*offset=.*head/{s/.*head -n \([0-9]*\).*/\1/p;q}' "$datasource") 41 | toskip=$(sed -n '/filesizes=/{s/.*="\([0-9]*\)"/\1/p;q}' "$datasource") 42 | 43 | mkdir terraria 44 | tail -n+$((offset+1)) "$datasource" | tail -c+$((toskip+1)) | bsdtar -C terraria -xvf- 2> /dev/null 45 | } 46 | 47 | package(){ 48 | cd terraria/data/noarch 49 | 50 | # Install game 51 | install -d "${pkgdir}/opt/${pkgname}/" 52 | install -d "${pkgdir}/opt/${pkgname}/support" 53 | install -d "${pkgdir}/usr/bin/" 54 | 55 | cp -r "game/" "${pkgdir}/opt/${pkgname}/" 56 | find "${pkgdir}/opt/${pkgname}/" -type d -exec chmod 755 "{}" \; 57 | install -Dm755 "start.sh" \ 58 | "${pkgdir}/opt/${pkgname}/" 59 | install -Dm755 support/*.{sh,shlib} -t \ 60 | "${pkgdir}/opt/${pkgname}/support" 61 | install -Dm644 gameinfo \ 62 | "${pkgdir}/opt/${pkgname}/gameinfo" 63 | 64 | # Desktop integration 65 | install -Dm644 "support/icon.png" \ 66 | "${pkgdir}/usr/share/pixmaps/${pkgname}.png" 67 | install -Dm644 "docs/End User License Agreement.txt" \ 68 | "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" 69 | install -Dm644 "${srcdir}/${pkgname}.desktop" \ 70 | "${pkgdir}/usr/share/applications/${pkgname}.desktop" 71 | install -Dm755 "${srcdir}/${pkgname}" \ 72 | "${pkgdir}/usr/bin/${pkgname}" 73 | install -Dm644 "${srcdir}/${pkgname}.profile" \ 74 | "${pkgdir}/opt/${pkgname}/${pkgname}.profile" 75 | 76 | # Fix permissions 77 | chmod +x "${pkgdir}/opt/${pkgname}/game/Terraria"{,Server}{,.bin.x86_64} 78 | } 79 | -------------------------------------------------------------------------------- /gog-terraria/gog-terraria: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export TERM=xterm 3 | 4 | run='/opt/gog-terraria/game/Terraria' 5 | cd /opt/gog-terraria/ # The launcher fails unless in its dir. 6 | 7 | if which firejail >/dev/null 2>&1 && [ -z "$FIREJAIL_IGNORE" ]; then 8 | echo "Firejail detected. Enforcing a sandbox" 9 | echo "To bypass Firejail enforcement, run FIREJAIL_IGNORE=1 $run." 10 | firejail --caps.drop=all --profile=/opt/gog-terraria/gog-terraria.profile "$run" 11 | else 12 | "$run" 13 | fi 14 | -------------------------------------------------------------------------------- /gog-terraria/gog-terraria.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Name=Terraria 4 | Comment=Dig, Fight, Build! 5 | Exec=gog-terraria 6 | Icon=gog-terraria 7 | StartupNotify=true 8 | Terminal=false 9 | Type=Application 10 | Categories=Application;Game;AudioVideo; 11 | -------------------------------------------------------------------------------- /gog-terraria/gog-terraria.profile: -------------------------------------------------------------------------------- 1 | noblacklist ${HOME}/.local/share/Terraria 2 | mkdir ${HOME}/.local/share/Terraria 3 | whitelist ${HOME}/.local/share/Terraria 4 | 5 | include /etc/firejail/default.profile 6 | -------------------------------------------------------------------------------- /libstdc++5/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = libstdc++5 2 | pkgdesc = GNU Standard C++ library version 3 3 | pkgver = 3.3.6 4 | pkgrel = 9 5 | url = https://gcc.gnu.org 6 | arch = x86_64 7 | license = GPL 8 | license = LGPL 9 | makedepends = gcc 10 | makedepends = binutils 11 | depends = gcc-libs 12 | options = !makeflags 13 | source = ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.3.6/gcc-core-3.3.6.tar.bz2 14 | source = ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.3.6/gcc-g++-3.3.6.tar.bz2 15 | source = gcc-3.4.3-no_multilib_amd64.patch 16 | source = gcc-3.4.6-ucontext.patch 17 | source = siginfo.patch 18 | md5sums = 18c52e6fb8966b7700665dca289d077f 19 | md5sums = 6b3d00b8d079805be1b895f7f6ce47a0 20 | md5sums = 8504bb22dae9d49e8b6d70d7e6910f1b 21 | md5sums = 982ec78eed2887657189aefbe0c642d0 22 | md5sums = bf36b281a9fc81f624f31f2623a3ad0e 23 | 24 | pkgname = libstdc++5 25 | -------------------------------------------------------------------------------- /libstdc++5/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.tar.* 4 | -------------------------------------------------------------------------------- /libstdc++5/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | # Contributor: Jan de Groot <jgc@archlinux.org> 3 | 4 | pkgname=libstdc++5 5 | pkgver=3.3.6 6 | pkgrel=9 7 | pkgdesc="GNU Standard C++ library version 3" 8 | arch=('x86_64') 9 | url="https://gcc.gnu.org" 10 | license=('GPL' 'LGPL') 11 | depends=('gcc-libs') 12 | makedepends=('gcc' 'binutils') 13 | options=('!makeflags') 14 | source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2 15 | gcc-3.4.3-no_multilib_amd64.patch 16 | gcc-3.4.6-ucontext.patch 17 | siginfo.patch) 18 | md5sums=('18c52e6fb8966b7700665dca289d077f' 19 | '6b3d00b8d079805be1b895f7f6ce47a0' 20 | '8504bb22dae9d49e8b6d70d7e6910f1b' 21 | '982ec78eed2887657189aefbe0c642d0' 22 | 'bf36b281a9fc81f624f31f2623a3ad0e') 23 | 24 | prepare() { 25 | cd gcc-$pkgver 26 | 27 | patch -Np1 -i $srcdir/gcc-3.4.3-no_multilib_amd64.patch 28 | # fix build issue with recent gcc 29 | sed -i "s#O_CREAT#O_CREAT, 0666#" gcc/collect2.c 30 | 31 | # No fixincludes 32 | sed -e 's@\./fixinc\.sh@-c true@' \ 33 | -e '# Clean up some warnings that arent our business' \ 34 | -e 's:-Wstrict-prototypes::g' \ 35 | -e 's:-Wtraditional::g' \ 36 | -e 's:-pedantic::g' \ 37 | -e 's:-Wall::g' \ 38 | -i 'gcc/Makefile.in' 39 | sed -e 's:-Wall -Wtraditional -pedantic::g' -i 'libiberty/configure' 40 | 41 | # Patches are the wrong way to do this 42 | sed -e '# gcc-3.4.6-ucontext.patch' \ 43 | -e 's:\bstruct ucontext\b:ucontext_t:g' \ 44 | -e '# siginfo.patch' \ 45 | -e 's:\bstruct siginfo\b:siginfo_t:g' \ 46 | -i $(grep --include 'linux*.h' -lrFe $'struct ucontext\nstruct siginfo' gcc/config/) 47 | 48 | mkdir ../gcc-build 49 | } 50 | 51 | build(){ 52 | export CFLAGS="-march=${CARCH/_/-} -O2" 53 | export CXXFLAGS="-march=${CARCH/_/-} -O2" 54 | export SHELL='/usr/bin/bash' # doesn't work with fish 55 | unset CPPFLAGS 56 | 57 | cd gcc-build 58 | CPP=/usr/bin/cpp ../gcc-${pkgver}/configure --prefix=/usr --enable-shared \ 59 | --enable-languages=c++ --enable-threads=posix --enable-__cxa_atexit \ 60 | --disable-multilib --libdir=/usr/lib 61 | make all-target-libstdc++-v3 BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" -j$(nproc) 62 | } 63 | 64 | package() { 65 | cd gcc-build 66 | make DESTDIR="${pkgdir}" install-target-libstdc++-v3 67 | 68 | # Remove includefiles and libs provided by gcc 69 | rm -rf "${pkgdir}"/usr/{include,share/locale} 70 | rm -f "${pkgdir}"/usr/lib/*.a 71 | rm -f "${pkgdir}"/usr/lib/libstdc++.so 72 | } 73 | -------------------------------------------------------------------------------- /libstdc++5/gcc-3.4.3-no_multilib_amd64.patch: -------------------------------------------------------------------------------- 1 | --- gcc-3.4.3/gcc/config/i386/t-linux64 2 | +++ gcc-3.4.3/gcc/config/i386/t-linux64 3 | @@ -6,7 +6,7 @@ 4 | 5 | MULTILIB_OPTIONS = m64/m32 6 | MULTILIB_DIRNAMES = 64 32 7 | -MULTILIB_OSDIRNAMES = ../lib64 ../lib 8 | +MULTILIB_OSDIRNAMES = . ../lib 9 | 10 | LIBGCC = stmp-multilib 11 | INSTALL_LIBGCC = install-multilib 12 | -------------------------------------------------------------------------------- /libstdc++5/gcc-3.4.6-ucontext.patch: -------------------------------------------------------------------------------- 1 | --- gcc-3.4.6/gcc/config/i386/linux64.h 2 | +++ gcc-3.4.6/gcc/config/i386/linux64.h 3 | @@ -90,7 +90,7 @@ 4 | if (*(unsigned char *)(pc_+0) == 0x48 \ 5 | && *(unsigned long *)(pc_+1) == 0x050f0000000fc0c7) \ 6 | { \ 7 | - struct ucontext *uc_ = (CONTEXT)->cfa; \ 8 | + ucontext_t *uc_ = (CONTEXT)->cfa; \ 9 | sc_ = (struct sigcontext *) &uc_->uc_mcontext; \ 10 | } \ 11 | else \ 12 | @@ -160,7 +160,7 @@ 13 | struct siginfo *pinfo; \ 14 | void *puc; \ 15 | struct siginfo info; \ 16 | - struct ucontext uc; \ 17 | + ucontext_t uc; \ 18 | } *rt_ = (CONTEXT)->cfa; \ 19 | sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \ 20 | } \ 21 | 22 | -------------------------------------------------------------------------------- /libstdc++5/siginfo.patch: -------------------------------------------------------------------------------- 1 | --- gcc/config/i386/linux.h.orig 2014-04-28 10:00:16.556121683 +0000 2 | +++ gcc/config/i386/linux.h 2014-04-28 10:00:43.105959247 +0000 3 | @@ -257,9 +257,9 @@ 4 | { \ 5 | struct rt_sigframe { \ 6 | int sig; \ 7 | - struct siginfo *pinfo; \ 8 | + siginfo_t *pinfo; \ 9 | void *puc; \ 10 | - struct siginfo info; \ 11 | + siginfo_t info; \ 12 | struct ucontext uc; \ 13 | } *rt_ = (CONTEXT)->cfa; \ 14 | sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \ 15 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = libva-vdpau-driver-wayland 2 | pkgdesc = VDPAU backend for VA API with XWayland support 3 | pkgver = 0.7.4 4 | pkgrel = 1 5 | url = https://freedesktop.org/wiki/Software/vaapi 6 | arch = x86_64 7 | license = GPL 8 | makedepends = libva 9 | makedepends = mesa 10 | depends = libgl 11 | depends = libvdpau 12 | depends = libx11 13 | provides = libva-vdpau-driver 14 | conflicts = libva-vdpau-driver 15 | source = https://freedesktop.org/software/vaapi/releases/libva-vdpau-driver/libva-vdpau-driver-0.7.4.tar.bz2 16 | source = libva-vdpau-driver-0.7.4-glext-missing-definition.patch 17 | source = libva-vdpau-driver-0.7.4-libvdpau-0.8.patch 18 | source = libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch 19 | source = libva-vdpau-driver-0.7.4-CreateSurfaceFromV4L2Buf.patch 20 | source = libva-vdpau-driver-0.7.4-sigfpe-crash.patch 21 | source = libva-vdpau-driver-0.7.4-xwayland.patch 22 | b2sums = b9cd0bbbe1e638ad29363cd0d8c6452de222023017283ce81f138730c7ba3396f3ffca40478746cab4b93a8855e73de405aa783e44e6c1179c5e347bd7eff657 23 | b2sums = 3c295a68cb0976f976880f13296c703c3b75abdd3311b790c132ba233e9d26975686d8b618cdda594b1aa2e5cbadee850bf2e08cc35ca2c7ee11fe10c535d91c 24 | b2sums = f1bc6e3840769ce4a5e53d85867a854ddfc780e670ca095541b9f2465ca0c96f3c7ed00da596f88d0c60aa749afcaf734670ada449c8a87e27f999c74539bc78 25 | b2sums = 5a5a12aff1f93769d480525140e7a0d61f4db64e57f1f956d778d1ab8be881b209779030ce14b8fee53dd4cbb6a7c59a0c9297ad0c92548268c840ea0f5910b0 26 | b2sums = 3a7daab7f6144837e50cabd06d30709bf7fc3218e226953471f2908efad2da78cb5035f9443642381460f6ffacd0eb0c9accf7e4084fcdf12e6942c6603dbb9a 27 | b2sums = c1e3a3af09c0c121747b0da28cb256ab4f9783254349be6accad512b7c4872065909bb6701ff0bee07c04e8c7ed34b93a7f6e50b964a1207501209d75f70d26b 28 | b2sums = 94187d8e23e8ce17d315fc7e23da8a7d949f2a45e2d3d985f145adfbb846c500e4ad7b87d163f0b284121329bb14073cf09898d943e7bba6cca6b7162dde7674 29 | 30 | pkgname = libva-vdpau-driver-wayland 31 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/.gitignore: -------------------------------------------------------------------------------- 1 | *.tar.* 2 | pkg/ 3 | src/ 4 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | # Contributor: Maxime Gauduin <alucryd@archlinux.org> 3 | # Contributor: Ionut Biru <ibiru@archlinux.org> 4 | 5 | pkgname=libva-vdpau-driver-wayland 6 | pkgver=0.7.4 7 | pkgrel=1 8 | pkgdesc='VDPAU backend for VA API with XWayland support' 9 | arch=(x86_64) 10 | url=https://freedesktop.org/wiki/Software/vaapi 11 | license=(GPL) 12 | conflicts=(libva-vdpau-driver) 13 | provides=(libva-vdpau-driver) 14 | depends=( 15 | libgl 16 | libvdpau 17 | libx11 18 | ) 19 | makedepends=( 20 | libva 21 | mesa 22 | ) 23 | source=( 24 | https://freedesktop.org/software/vaapi/releases/libva-vdpau-driver/libva-vdpau-driver-${pkgver}.tar.bz2 25 | libva-vdpau-driver-0.7.4-glext-missing-definition.patch 26 | libva-vdpau-driver-0.7.4-libvdpau-0.8.patch 27 | libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch 28 | libva-vdpau-driver-0.7.4-CreateSurfaceFromV4L2Buf.patch 29 | libva-vdpau-driver-0.7.4-sigfpe-crash.patch 30 | libva-vdpau-driver-0.7.4-xwayland.patch 31 | ) 32 | b2sums=('b9cd0bbbe1e638ad29363cd0d8c6452de222023017283ce81f138730c7ba3396f3ffca40478746cab4b93a8855e73de405aa783e44e6c1179c5e347bd7eff657' 33 | '3c295a68cb0976f976880f13296c703c3b75abdd3311b790c132ba233e9d26975686d8b618cdda594b1aa2e5cbadee850bf2e08cc35ca2c7ee11fe10c535d91c' 34 | 'f1bc6e3840769ce4a5e53d85867a854ddfc780e670ca095541b9f2465ca0c96f3c7ed00da596f88d0c60aa749afcaf734670ada449c8a87e27f999c74539bc78' 35 | '5a5a12aff1f93769d480525140e7a0d61f4db64e57f1f956d778d1ab8be881b209779030ce14b8fee53dd4cbb6a7c59a0c9297ad0c92548268c840ea0f5910b0' 36 | '3a7daab7f6144837e50cabd06d30709bf7fc3218e226953471f2908efad2da78cb5035f9443642381460f6ffacd0eb0c9accf7e4084fcdf12e6942c6603dbb9a' 37 | 'c1e3a3af09c0c121747b0da28cb256ab4f9783254349be6accad512b7c4872065909bb6701ff0bee07c04e8c7ed34b93a7f6e50b964a1207501209d75f70d26b' 38 | '94187d8e23e8ce17d315fc7e23da8a7d949f2a45e2d3d985f145adfbb846c500e4ad7b87d163f0b284121329bb14073cf09898d943e7bba6cca6b7162dde7674') 39 | 40 | prepare() { 41 | cd libva-vdpau-driver-${pkgver} 42 | 43 | patch -Np1 -i ../libva-vdpau-driver-0.7.4-glext-missing-definition.patch 44 | patch -Np1 -i ../libva-vdpau-driver-0.7.4-libvdpau-0.8.patch 45 | patch -Np1 -i ../libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch 46 | patch -Np1 -i ../libva-vdpau-driver-0.7.4-CreateSurfaceFromV4L2Buf.patch 47 | patch -Np1 -i ../libva-vdpau-driver-0.7.4-sigfpe-crash.patch 48 | patch -Np1 -i ../libva-vdpau-driver-0.7.4-xwayland.patch 49 | } 50 | 51 | build() { 52 | cd libva-vdpau-driver-${pkgver} 53 | 54 | ./configure \ 55 | --prefix=/usr 56 | make 57 | } 58 | 59 | package() { 60 | cd libva-vdpau-driver-${pkgver} 61 | 62 | make DESTDIR="${pkgdir}" install 63 | } 64 | 65 | # vim:set ts=2 sw=2 et: 66 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/libva-vdpau-driver-0.7.4-CreateSurfaceFromV4L2Buf.patch: -------------------------------------------------------------------------------- 1 | diff -rupN libva-vdpau-driver-0.7.4.orig/src/vdpau_video.c libva-vdpau-driver-0.7.4/src/vdpau_video.c 2 | --- libva-vdpau-driver-0.7.4.orig/src/vdpau_video.c 2020-12-06 10:48:03.320569841 +0100 3 | +++ libva-vdpau-driver-0.7.4/src/vdpau_video.c 2020-12-06 10:50:45.437401497 +0100 4 | @@ -927,8 +927,6 @@ VAStatus 5 | vdpau_CreateSurfaceFromV4L2Buf( 6 | VADriverContextP ctx, 7 | int v4l2_fd, 8 | - struct v4l2_format *v4l2_fmt, 9 | - struct v4l2_buffer *v4l2_buf, 10 | VASurfaceID *surface 11 | ) 12 | { 13 | diff -rupN libva-vdpau-driver-0.7.4.orig/src/vdpau_video.h libva-vdpau-driver-0.7.4/src/vdpau_video.h 14 | --- libva-vdpau-driver-0.7.4.orig/src/vdpau_video.h 2020-12-06 10:48:03.317236508 +0100 15 | +++ libva-vdpau-driver-0.7.4/src/vdpau_video.h 2020-12-06 10:50:45.417401454 +0100 16 | @@ -274,8 +274,6 @@ VAStatus 17 | vdpau_CreateSurfaceFromV4L2Buf( 18 | VADriverContextP ctx, 19 | int v4l2_fd, 20 | - struct v4l2_format *v4l2_fmt, 21 | - struct v4l2_buffer *v4l2_buf, 22 | VASurfaceID *surface 23 | ) attribute_hidden; 24 | 25 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch: -------------------------------------------------------------------------------- 1 | >From fda3706eb74ba5ad874853969f3df3e372739c8d Mon Sep 17 00:00:00 2001 2 | From: "Xiang, Haihao" <haihao.xiang@intel.com> 3 | Date: Fri, 21 Jun 2013 12:55:30 +0800 4 | Subject: [PATCH] VAEncH264VUIBufferType and VAEncH264SEIBufferType are 5 | dropped from VA API 6 | 7 | The driver doesn't use them indeed 8 | 9 | Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> 10 | --- 11 | src/vdpau_dump.c | 2 -- 12 | 1 file changed, 2 deletions(-) 13 | 14 | diff --git a/src/vdpau_dump.c b/src/vdpau_dump.c 15 | index 899888b..610e7cd 100644 16 | --- a/src/vdpau_dump.c 17 | +++ b/src/vdpau_dump.c 18 | @@ -59,8 +59,6 @@ const char *string_of_VABufferType(VABufferType type) 19 | _(VAEncSequenceParameterBufferType); 20 | _(VAEncPictureParameterBufferType); 21 | _(VAEncSliceParameterBufferType); 22 | - _(VAEncH264VUIBufferType); 23 | - _(VAEncH264SEIBufferType); 24 | #endif 25 | #if VA_CHECK_VERSION(0,31,1) 26 | _(VAQMatrixBufferType); 27 | -- 28 | 1.7.9.5 29 | 30 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/libva-vdpau-driver-0.7.4-glext-missing-definition.patch: -------------------------------------------------------------------------------- 1 | --- a/src/utils_glx.h~ 2012-10-05 16:02:58.000000000 +0100 2 | +++ b/src/utils_glx.h 2012-10-19 08:44:12.469642440 +0100 3 | @@ -48,6 +48,13 @@ 4 | typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); 5 | #endif 6 | 7 | +#if GL_GLEXT_VERSION >= 85 8 | +/* XXX: PFNGLMULTITEXCOORD2FPROC got out of the GL_VERSION_1_3_DEPRECATED 9 | + block and is not defined if GL_VERSION_1_3 is defined in <GL/gl.h> 10 | + Redefine the type here as an interim solution */ 11 | +typedef void (*PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); 12 | +#endif 13 | + 14 | #ifndef GL_FRAMEBUFFER_BINDING 15 | #define GL_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING_EXT 16 | #endif 17 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch: -------------------------------------------------------------------------------- 1 | --- a/src/vdpau_decode.c 2 | +++ b/src/vdpau_decode.c 3 | @@ -1289,7 +1289,7 @@ 4 | driver_data, 5 | obj_context->vdp_decoder, 6 | obj_surface->vdp_surface, 7 | - (VdpPictureInfo)&obj_context->vdp_picture_info, 8 | + (VdpPictureInfo *)&obj_context->vdp_picture_info, 9 | obj_context->vdp_bitstream_buffers_count, 10 | obj_context->vdp_bitstream_buffers 11 | ); 12 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/libva-vdpau-driver-0.7.4-sigfpe-crash.patch: -------------------------------------------------------------------------------- 1 | Description: Fix a crash if a heap is destroyed before being initialized 2 | Author: Sebastian Ramacher <sramacher@debian.org> 3 | Bug: https://bugs.freedesktop.org/show_bug.cgi?id=58836 4 | Bug-Debian: http://bugs.debian.org/748294 5 | Last-Update: 2014-06-02 6 | 7 | --- vdpau-video-0.7.4.orig/src/object_heap.c 8 | +++ vdpau-video-0.7.4/src/object_heap.c 9 | @@ -272,8 +272,10 @@ object_heap_destroy(object_heap_p heap) 10 | ASSERT(obj->next_free != ALLOCATED); 11 | } 12 | 13 | - for (i = 0; i < heap->heap_size / heap->heap_increment; i++) { 14 | - free(heap->bucket[i]); 15 | + if (heap->bucket) { 16 | + for (i = 0; i < heap->heap_size / heap->heap_increment; i++) { 17 | + free(heap->bucket[i]); 18 | + } 19 | } 20 | 21 | pthread_mutex_destroy(&heap->mutex); 22 | -------------------------------------------------------------------------------- /libva-vdpau-driver-wayland/libva-vdpau-driver-0.7.4-xwayland.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/vdpau_driver.c b/src/vdpau_driver.c 2 | index 6fc35c6..b975728 100644 3 | --- a/src/vdpau_driver.c 4 | +++ b/src/vdpau_driver.c 5 | @@ -186,7 +186,7 @@ vdpau_common_Initialize(vdpau_driver_data_t *driver_data) 6 | { 7 | /* Create a dedicated X11 display for VDPAU purposes */ 8 | const char * const x11_dpy_name = XDisplayString(driver_data->x11_dpy); 9 | - driver_data->vdp_dpy = XOpenDisplay(x11_dpy_name); 10 | + driver_data->vdp_dpy = XOpenDisplay(NULL); 11 | if (!driver_data->vdp_dpy) 12 | return VA_STATUS_ERROR_UNKNOWN; 13 | 14 | -------------------------------------------------------------------------------- /libvips-git/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = libvips-git 2 | pkgdesc = A fast image processing library with low memory needs 3 | pkgver = 8.15.0.r18.gcb55d9c2d 4 | pkgrel = 1 5 | url = https://libvips.github.io/libvips/ 6 | arch = i686 7 | arch = x86_64 8 | license = LGPL 9 | makedepends = gobject-introspection 10 | makedepends = libheif 11 | makedepends = libjxl 12 | makedepends = imagemagick 13 | makedepends = openslide 14 | makedepends = poppler-glib 15 | makedepends = meson 16 | makedepends = gtk-doc 17 | depends = cfitsio 18 | depends = fftw 19 | depends = libexif 20 | depends = libgsf 21 | depends = libimagequant 22 | depends = librsvg 23 | depends = libwebp 24 | depends = libxml2 25 | depends = openexr 26 | depends = orc 27 | depends = pango 28 | depends = libcgif 29 | depends = libmatio 30 | optdepends = libheif: for heif module 31 | optdepends = imagemagick: for magick module 32 | optdepends = openslide: for openslide module 33 | optdepends = poppler-glib: for poppler module 34 | optdepends = libjxl: for jxl module 35 | provides = libvips 36 | conflicts = libvips 37 | source = libvips::git+https://github.com/libvips/libvips.git 38 | sha512sums = SKIP 39 | 40 | pkgname = libvips-git 41 | -------------------------------------------------------------------------------- /libvips-git/.gitignore: -------------------------------------------------------------------------------- 1 | *.tar.* 2 | src/ 3 | pkg/ 4 | libvips/ 5 | -------------------------------------------------------------------------------- /libvips-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | # Maintainer: JustKidding <jk@vin.ovh> 3 | # Contributor: proudzhu <proudzhu.fdu at gmail.com> 4 | 5 | pkgname=libvips-git 6 | _pkgname=libvips 7 | pkgver=8.15.0.r18.gcb55d9c2d 8 | pkgrel=1 9 | pkgdesc="A fast image processing library with low memory needs" 10 | arch=('i686' 'x86_64') 11 | license=('LGPL') 12 | url="https://libvips.github.io/libvips/" 13 | depends=('cfitsio' 'fftw' 'libexif' 'libgsf' 'libimagequant' 'librsvg' 'libwebp' 'libxml2' 'openexr' 14 | 'orc' 'pango' 'libcgif' 'libmatio') 15 | makedepends=('gobject-introspection' 'libheif' 'libjxl' 'imagemagick' 'openslide' 16 | 'poppler-glib' 'meson' 'gtk-doc') 17 | optdepends=('libheif: for heif module' 18 | 'imagemagick: for magick module' 19 | 'openslide: for openslide module' 20 | 'poppler-glib: for poppler module' 21 | 'libjxl: for jxl module') 22 | provides=('libvips') 23 | conflicts=('libvips') 24 | source=("$_pkgname::git+https://github.com/libvips/libvips.git") 25 | sha512sums=('SKIP') 26 | 27 | pkgver() { 28 | cd "$_pkgname" 29 | git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' 30 | } 31 | 32 | build() { 33 | meson setup build libvips \ 34 | --prefix=/usr \ 35 | -Dgtk_doc=true \ 36 | --buildtype release 37 | meson compile -C build 38 | } 39 | 40 | package() { 41 | meson install -C build --destdir="$pkgdir" 42 | } 43 | 44 | # vim:set ts=2 sw=2 et: 45 | -------------------------------------------------------------------------------- /minergate-cli/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = minergate-cli 2 | pkgdesc = MinerGate xFast CLI Miner 3 | pkgver = 1.7 4 | pkgrel = 2 5 | url = http://www.minergate.com/ 6 | arch = x86_64 7 | license = custom 8 | provides = minergate-cli 9 | options = !strip 10 | source = minergate-cli-1.7.deb::https://vin.ovh/MinerGate-xFast-cli-1.7-ubuntu.deb 11 | sha256sums = bff127436b13a455c2022052d67156313163f53a1ee1835c0756d39adf591a77 12 | 13 | pkgname = minergate-cli 14 | -------------------------------------------------------------------------------- /minergate-cli/.gitignore: -------------------------------------------------------------------------------- 1 | pkg 2 | src 3 | *.tar.* 4 | *.deb 5 | -------------------------------------------------------------------------------- /minergate-cli/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | 3 | pkgname=minergate-cli 4 | pkgver=1.7 5 | pkgrel=2 6 | pkgdesc="MinerGate xFast CLI Miner" 7 | arch=("x86_64") 8 | url="http://www.minergate.com/" 9 | provides=("minergate-cli") 10 | license=("custom") 11 | source=("${pkgname}-${pkgver}.deb::https://vin.ovh/MinerGate-xFast-cli-1.7-ubuntu.deb") 12 | sha256sums=("bff127436b13a455c2022052d67156313163f53a1ee1835c0756d39adf591a77") 13 | options=(!strip) # Doesn't work without disabling this option 14 | depends=() # Minergate comes bundled with its own libraries 15 | 16 | prepare() { 17 | # All is done in ${srcdir} 18 | mkdir minergate-data 19 | tar xf data.tar.gz -C minergate-data 20 | } 21 | 22 | package() { 23 | cd ${srcdir}/minergate-data 24 | chmod -R g-w usr opt 25 | mv usr opt "${pkgdir}" 26 | } 27 | -------------------------------------------------------------------------------- /minergate-gui/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = minergate-gui 2 | pkgdesc = Minergate xFast GUI Miner 3 | pkgver = 1.7 4 | pkgrel = 3 5 | url = http://www.minergate.com/ 6 | arch = x86_64 7 | license = custom 8 | depends = ocl-icd 9 | depends = qt5-websockets 10 | depends = icu 11 | provides = minergate-gui 12 | options = !strip 13 | source = https://vin.ovh/MinerGate-xFast-gui-1.7-ubuntu.deb 14 | sha256sums = 1b24f3785a68043092366a9195524becbe8c589257b365628a0cb271d75e465f 15 | 16 | pkgname = minergate-gui 17 | -------------------------------------------------------------------------------- /minergate-gui/.gitignore: -------------------------------------------------------------------------------- 1 | *.deb 2 | pkg/ 3 | src/ 4 | *.pkg.tar.xz 5 | -------------------------------------------------------------------------------- /minergate-gui/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | 3 | pkgname=minergate-gui 4 | pkgver=1.7 5 | pkgrel=3 6 | pkgdesc="Minergate xFast GUI Miner" 7 | arch=("x86_64") 8 | url="http://www.minergate.com/" 9 | provides=("minergate-gui") 10 | license=("custom") 11 | source=("https://vin.ovh/MinerGate-xFast-gui-${pkgver}-ubuntu.deb") 12 | sha256sums=("1b24f3785a68043092366a9195524becbe8c589257b365628a0cb271d75e465f") 13 | options=(!strip) 14 | depends=('ocl-icd' 'qt5-websockets' 'icu') 15 | 16 | 17 | prepare() { 18 | mkdir minergate-data 19 | tar xf data.tar.gz -C minergate-data 20 | } 21 | 22 | package() { 23 | cd ${srcdir}/minergate-data 24 | chmod -R g-w usr opt 25 | mv usr opt "${pkgdir}" 26 | } 27 | -------------------------------------------------------------------------------- /mongodb/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = mongodb 2 | pkgdesc = A high-performance, open source, schema-free document-oriented database 3 | pkgver = 7.0.14 4 | pkgrel = 1 5 | url = https://www.mongodb.com/ 6 | arch = x86_64 7 | arch = aarch64 8 | license = SSPL-1.0 9 | makedepends = python-psutil 10 | makedepends = python-setuptools 11 | makedepends = python-regex 12 | makedepends = python-cheetah3 13 | makedepends = python-yaml 14 | makedepends = python-requests 15 | makedepends = python-pymongo 16 | makedepends = boost 17 | makedepends = mongo-c-driver 18 | depends = libstemmer 19 | depends = snappy 20 | depends = boost-libs 21 | depends = pcre2 22 | depends = yaml-cpp 23 | depends = gperftools 24 | depends = libunwind 25 | depends = curl 26 | depends = zstd 27 | depends = zlib 28 | depends = libsasl 29 | depends = openssl 30 | depends = glibc 31 | depends = libldap 32 | depends = gcc-libs 33 | depends = krb5 34 | optdepends = mongodb-tools: mongoimport, mongodump, mongotop, etc 35 | optdepends = mongosh: interactive shell to connect with MongoDB 36 | provides = mongodb=7.0.14 37 | options = !debug 38 | backup = etc/mongodb.conf 39 | source = https://github.com/mongodb/mongo/archive/refs/tags/r7.0.14.tar.gz 40 | source = mongodb.sysusers 41 | source = mongodb.tmpfiles 42 | source = mongodb-5.0.2-skip-reqs-check.patch 43 | source = mongodb-5.0.2-no-compass.patch 44 | source = mongodb-7.0.2-sconstruct.patch 45 | source = mongodb-4.4.29-no-enterprise.patch 46 | source = mongodb-7.0.14-system-boost.patch 47 | sha256sums = 94b49d6e52f03aea83d2a7abcd03aca63044f99c1fc393bbccc2a94385869420 48 | sha256sums = 3757d548cfb0e697f59b9104f39a344bb3d15f802608085f838cb2495c065795 49 | sha256sums = b7d18726225cd447e353007f896ff7e4cbedb2f641077bce70ab9d292e8f8d39 50 | sha256sums = 4ff40320e04bf8c3e05cbc662f8ea549a6b8494d1fda64b1de190c88587bfafd 51 | sha256sums = 41b75d19ed7c4671225f08589e317295b7abee934b876859c8777916272f3052 52 | sha256sums = 078d94d712c3bb86a77d13bf2021299f4db2332c9d5346dba1ceb0cce1ba8492 53 | sha256sums = 7cd27b2ce15cc6efdce07ef934ed3d9356025ebade4856a9d0a75a80f7c08905 54 | sha256sums = 18c8256fd41af2b8e769ff021e3526597a3c01f801053e5a51c73f958b24f285 55 | source_aarch64 = extrapatch-sconstruct.patch 56 | sha256sums_aarch64 = 6dd9f20e153ff2a3e185d9411e9d9ec54ba8ed29a0a1489828ccb047205cceac 57 | 58 | pkgname = mongodb 59 | -------------------------------------------------------------------------------- /mongodb/.gitignore: -------------------------------------------------------------------------------- 1 | mongodb-*.pkg.tar.zst 2 | mongodb-src-*.tar.gz 3 | mongodb-*.log 4 | *.tar.* 5 | PKGBUILD-namcap.log 6 | pkg/ 7 | src/ 8 | -------------------------------------------------------------------------------- /mongodb/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | 3 | # Maintainer: JustKidding <jk@vin.ovh> 4 | # Contributor: James P. Harvey <jamespharvey20 at gmail dot com> 5 | # Contributor: Christoph Bayer <chrbayer@criby.de> 6 | # Contributor: Felix Yan <felixonmars@archlinux.org> 7 | # Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> 8 | # Contributor: Thomas Dziedzic < gostrc at gmail > 9 | # Contributor: Mathias Stearn <mathias@10gen.com> 10 | # Contributor: Alec Thomas 11 | # Contributor: Fredy García <frealgagu at gmail dot com> 12 | 13 | pkgname=mongodb 14 | _pkgname=mongodb 15 | # #.<odd number>.# releases are unstable development/testing 16 | pkgver=7.0.14 17 | pkgrel=1 18 | pkgdesc="A high-performance, open source, schema-free document-oriented database" 19 | arch=("x86_64" "aarch64") 20 | url="https://www.mongodb.com/" 21 | license=("SSPL-1.0") 22 | depends=('libstemmer' 'snappy' 'boost-libs' 'pcre2' 'yaml-cpp' 'gperftools' 'libunwind' 'curl' 'zstd' 'zlib' 23 | 'libsasl' 'openssl' 'glibc' 'libldap' 'gcc-libs' 'krb5') 24 | makedepends=('python-psutil' 'python-setuptools' 'python-regex' 'python-cheetah3' 25 | 'python-yaml' 'python-requests' 'python-pymongo' 'boost' 'mongo-c-driver') 26 | optdepends=('mongodb-tools: mongoimport, mongodump, mongotop, etc' 27 | 'mongosh: interactive shell to connect with MongoDB') 28 | backup=("etc/mongodb.conf") 29 | provides=(mongodb="$pkgver") 30 | options=(!debug) 31 | source=("https://github.com/mongodb/mongo/archive/refs/tags/r$pkgver.tar.gz" 32 | mongodb.sysusers 33 | mongodb.tmpfiles 34 | mongodb-5.0.2-skip-reqs-check.patch 35 | mongodb-5.0.2-no-compass.patch 36 | mongodb-7.0.2-sconstruct.patch 37 | mongodb-4.4.29-no-enterprise.patch 38 | mongodb-7.0.14-system-boost.patch) 39 | sha256sums=('94b49d6e52f03aea83d2a7abcd03aca63044f99c1fc393bbccc2a94385869420' 40 | '3757d548cfb0e697f59b9104f39a344bb3d15f802608085f838cb2495c065795' 41 | 'b7d18726225cd447e353007f896ff7e4cbedb2f641077bce70ab9d292e8f8d39' 42 | '4ff40320e04bf8c3e05cbc662f8ea549a6b8494d1fda64b1de190c88587bfafd' 43 | '41b75d19ed7c4671225f08589e317295b7abee934b876859c8777916272f3052' 44 | '078d94d712c3bb86a77d13bf2021299f4db2332c9d5346dba1ceb0cce1ba8492' 45 | '7cd27b2ce15cc6efdce07ef934ed3d9356025ebade4856a9d0a75a80f7c08905' 46 | '18c8256fd41af2b8e769ff021e3526597a3c01f801053e5a51c73f958b24f285') 47 | sha256sums_aarch64=('6dd9f20e153ff2a3e185d9411e9d9ec54ba8ed29a0a1489828ccb047205cceac') 48 | source_aarch64=(extrapatch-sconstruct.patch) 49 | 50 | _scons_args=( 51 | CC="${CC:-gcc}" 52 | CXX="${CXX:-g++}" 53 | AR="${AR:-ar}" 54 | MONGO_DISTMOD=arch 55 | MONGO_VERSION="$pkgver" 56 | 57 | --use-system-boost 58 | --use-system-pcre2 59 | --use-system-snappy 60 | --use-system-stemmer 61 | --use-system-yaml 62 | --use-system-zlib 63 | --use-system-zstd 64 | --use-system-tcmalloc 65 | --use-system-libunwind 66 | --use-system-libbson 67 | --use-system-mongo-c 68 | 69 | --use-sasl-client 70 | --ssl 71 | --disable-warnings-as-errors 72 | --runtime-hardening=off 73 | ) 74 | 75 | all-flag-vars() { 76 | echo {C,CXX}FLAGS 77 | } 78 | 79 | _filter-var() { 80 | local f x var=$1 new=() 81 | shift 82 | 83 | for f in ${!var} ; do 84 | for x in "$@" ; do 85 | # Note this should work with globs like -O* 86 | [[ ${f} == "${x}" ]] && continue 2 87 | done 88 | new+=( "${f}" ) 89 | done 90 | export "${var}"="${new[*]}" 91 | } 92 | 93 | filter-flags() { 94 | local v 95 | for v in $(all-flag-vars) ; do 96 | _filter-var "${v}" "$@" 97 | done 98 | return 0 99 | } 100 | 101 | prepare() { 102 | cd "${srcdir}/mongo-r${pkgver}" 103 | 104 | # Keep historical Arch dbPath 105 | sed -i 's|dbPath: /var/lib/mongo|dbPath: /var/lib/mongodb|' rpm/mongod.conf 106 | 107 | # Keep historical Arch conf file name 108 | sed -i 's|-f /etc/mongod.conf|-f /etc/mongodb.conf|' rpm/mongod.service 109 | 110 | # Keep historical Arch user name (no need for separate daemon group name) 111 | sed -i 's/User=mongod/User=mongodb/' rpm/mongod.service 112 | sed -i 's/Group=mongod/Group=mongodb/' rpm/mongod.service 113 | sed -i 's/chown mongod:mongod/chown mongodb:mongodb/' rpm/mongod.service 114 | 115 | # Remove sysconfig file, used by upstream's init.d script not used on Arch 116 | sed -i '/EnvironmentFile=-\/etc\/sysconfig\/mongod/d' rpm/mongod.service 117 | 118 | # Make systemd wait as long as it takes for MongoDB to start 119 | # If MongoDB needs a long time to start, prevent systemd from restarting it every 90 seconds 120 | # See: https://jira.mongodb.org/browse/SERVER-38086 121 | sed -i 's/\[Service]/[Service]\nTimeoutStartSec=infinity/' rpm/mongod.service 122 | 123 | if check_option debug y; then 124 | _scons_args+=(--dbg=on) 125 | fi 126 | 127 | if check_option lto y; then 128 | _scons_args+=(--lto=on) 129 | fi 130 | 131 | # apply gentoo patches 132 | for file in "$srcdir"/*.patch; do 133 | echo "Applying patch $file..." 134 | patch -Np1 -i "$file" 135 | done 136 | } 137 | 138 | build() { 139 | cd "${srcdir}/mongo-r${pkgver}" 140 | 141 | if check_option debug n; then 142 | filter-flags '-m*' 143 | filter-flags '-O?' 144 | fi 145 | 146 | export SCONSFLAGS="$MAKEFLAGS" 147 | ./buildscripts/scons.py "${_scons_args[@]}" install-devcore 148 | } 149 | 150 | package() { 151 | cd "${srcdir}/mongo-r${pkgver}" 152 | 153 | # Install binaries 154 | install -D build/install/bin/mongo "$pkgdir/usr/bin/mongo" 155 | install -D build/install/bin/mongod "$pkgdir/usr/bin/mongod" 156 | install -D build/install/bin/mongos "$pkgdir/usr/bin/mongos" 157 | 158 | # Keep historical Arch conf file name 159 | install -Dm644 "rpm/mongod.conf" "${pkgdir}/etc/${_pkgname}.conf" 160 | 161 | # Keep historical Arch service name 162 | install -Dm644 "rpm/mongod.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service" 163 | 164 | # Install manpages 165 | #install -Dm644 "debian/mongo.1" "${pkgdir}/usr/share/man/man1/mongo.1" 166 | install -Dm644 "debian/mongod.1" "${pkgdir}/usr/share/man/man1/mongod.1" 167 | install -Dm644 "debian/mongos.1" "${pkgdir}/usr/share/man/man1/mongos.1" 168 | 169 | # Install systemd files 170 | install -Dm644 "${srcdir}/${_pkgname}.sysusers" "${pkgdir}/usr/lib/sysusers.d/${_pkgname}.conf" 171 | install -Dm644 "${srcdir}/${_pkgname}.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf" 172 | 173 | # Install license 174 | install -D LICENSE-Community.txt "$pkgdir/usr/share/licenses/mongodb/LICENSE" 175 | } 176 | # vim:set ts=2 sw=2 et: 177 | -------------------------------------------------------------------------------- /mongodb/extrapatch-sconstruct.patch: -------------------------------------------------------------------------------- 1 | --- a/SConstruct 2 | +++ b/SConstruct 3 | @@ -3217,8 +3205,12 @@ if not env.TargetOSIs('windows', 'macOS') and (env.Too 4 | # setting it for both C and C++ by setting both of CFLAGS and 5 | # CXXFLAGS. 6 | 7 | + arm_march_flag = "armv8-a" 8 | + if get_option('use-hardware-crc32') == "on": 9 | + arm_march_flag += "+crc" 10 | + 11 | default_targeting_flags_for_architecture = { 12 | - "aarch64": {"-march=": "armv8.2-a", "-mtune=": "generic"}, 13 | + "aarch64": {"-march=": arm_march_flag, "-mtune=": "generic"}, 14 | "i386": {"-march=": "nocona", "-mtune=": "generic"}, 15 | "ppc64le": {"-mcpu=": "power8", "-mtune=": "power8", "-mcmodel=": "medium"}, 16 | "s390x": {"-march=": "z196", "-mtune=": "zEC12"}, 17 | -------------------------------------------------------------------------------- /mongodb/mongodb-4.4.29-no-enterprise.patch: -------------------------------------------------------------------------------- 1 | buildscripts/moduleconfig.py | 3 --- 2 | 1 file changed, 3 deletions(-) 3 | 4 | diff --git a/buildscripts/moduleconfig.py b/buildscripts/moduleconfig.py 5 | index b4d0bba0490..03541fab940 100644 6 | --- a/buildscripts/moduleconfig.py 7 | +++ b/buildscripts/moduleconfig.py 8 | @@ -27,7 +27,6 @@ MongoDB SConscript files do. 9 | __all__ = ('discover_modules', 'discover_module_directories', 'configure_modules', 10 | 'register_module_test') # pylint: disable=undefined-all-variable 11 | 12 | -import imp 13 | import inspect 14 | import os 15 | 16 | @@ -71,8 +70,6 @@ def discover_modules(module_root, allowed_modules): 17 | print("adding module: %s" % (name)) 18 | fp = open(build_py, "r") 19 | try: 20 | - module = imp.load_module("module_" + name, fp, build_py, 21 | - (".py", "r", imp.PY_SOURCE)) 22 | if getattr(module, "name", None) is None: 23 | module.name = name 24 | found_modules.append(module) 25 | -------------------------------------------------------------------------------- /mongodb/mongodb-5.0.2-no-compass.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/mongo/installer/SConscript b/src/mongo/installer/SConscript 2 | index 5bd89fe9..489e70ac 100644 3 | --- a/src/mongo/installer/SConscript 4 | +++ b/src/mongo/installer/SConscript 5 | @@ -7,7 +7,6 @@ env = env.Clone() 6 | 7 | env.SConscript( 8 | dirs=[ 9 | - 'compass', 10 | 'msi', 11 | ], 12 | exports=[ 13 | -------------------------------------------------------------------------------- /mongodb/mongodb-5.0.2-skip-reqs-check.patch: -------------------------------------------------------------------------------- 1 | diff --git a/buildscripts/scons.py b/buildscripts/scons.py 2 | index 534fca32..c38f64df 100755 3 | --- a/buildscripts/scons.py 4 | +++ b/buildscripts/scons.py 5 | @@ -19,13 +19,13 @@ SITE_TOOLS_DIR = os.path.join(MONGODB_ROOT, 'site_scons') 6 | sys.path = [SCONS_DIR, SITE_TOOLS_DIR] + sys.path 7 | 8 | # pylint: disable=C0413 9 | -from mongo.pip_requirements import verify_requirements, MissingRequirements 10 | +#from mongo.pip_requirements import verify_requirements, MissingRequirements 11 | 12 | -try: 13 | - verify_requirements('etc/pip/compile-requirements.txt') 14 | -except MissingRequirements as ex: 15 | - print(ex) 16 | - sys.exit(1) 17 | +#try: 18 | +# verify_requirements('etc/pip/compile-requirements.txt') 19 | +#except MissingRequirements as ex: 20 | +# print(ex) 21 | +# sys.exit(1) 22 | 23 | try: 24 | import SCons.Script 25 | -------------------------------------------------------------------------------- /mongodb/mongodb-7.0.14-system-boost.patch: -------------------------------------------------------------------------------- 1 | diff -u -r a/src/mongo/client/sdam/sdam_json_test_runner.cpp b/src/mongo/client/sdam/sdam_json_test_runner.cpp 2 | --- a/src/mongo/client/sdam/sdam_json_test_runner.cpp 2024-08-15 04:38:09.000000000 +0800 3 | +++ b/src/mongo/client/sdam/sdam_json_test_runner.cpp 2024-09-08 13:38:28.557633361 +0800 4 | @@ -33,6 +33,7 @@ 5 | 6 | #include <boost/algorithm/string.hpp> 7 | #include <boost/filesystem.hpp> 8 | +#include <boost/filesystem/directory.hpp> 9 | #include <boost/filesystem/operations.hpp> 10 | #include <boost/format.hpp> 11 | #include <boost/optional/optional.hpp> 12 | diff -u -r a/src/mongo/client/sdam/server_selection_json_test_runner.cpp b/src/mongo/client/sdam/server_selection_json_test_runner.cpp 13 | --- a/src/mongo/client/sdam/server_selection_json_test_runner.cpp 2024-08-15 04:38:09.000000000 +0800 14 | +++ b/src/mongo/client/sdam/server_selection_json_test_runner.cpp 2024-09-08 13:38:28.557633361 +0800 15 | @@ -33,6 +33,7 @@ 16 | 17 | #include <boost/algorithm/string.hpp> 18 | #include <boost/filesystem.hpp> 19 | +#include <boost/filesystem/directory.hpp> 20 | #include <boost/filesystem/operations.hpp> 21 | #include <boost/format.hpp> 22 | 23 | diff -u -r a/src/mongo/db/ftdc/file_manager.cpp b/src/mongo/db/ftdc/file_manager.cpp 24 | --- a/src/mongo/db/ftdc/file_manager.cpp 2024-08-15 04:38:09.000000000 +0800 25 | +++ b/src/mongo/db/ftdc/file_manager.cpp 2024-09-08 13:38:28.560966720 +0800 26 | @@ -33,6 +33,7 @@ 27 | #include "mongo/db/ftdc/file_manager.h" 28 | 29 | #include <boost/filesystem.hpp> 30 | +#include <boost/filesystem/directory.hpp> 31 | #include <memory> 32 | #include <string> 33 | 34 | diff -u -r a/src/mongo/db/ftdc/ftdc_test.cpp b/src/mongo/db/ftdc/ftdc_test.cpp 35 | --- a/src/mongo/db/ftdc/ftdc_test.cpp 2024-08-15 04:38:09.000000000 +0800 36 | +++ b/src/mongo/db/ftdc/ftdc_test.cpp 2024-09-08 13:38:28.560966720 +0800 37 | @@ -32,6 +32,7 @@ 38 | #include "mongo/db/ftdc/ftdc_test.h" 39 | 40 | #include <boost/filesystem.hpp> 41 | +#include <boost/filesystem/directory.hpp> 42 | #include <memory> 43 | 44 | #include "mongo/base/data_type_validated.h" 45 | diff -u -r a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp 46 | --- a/src/mongo/db/initialize_server_global_state.cpp 2024-08-15 04:38:09.000000000 +0800 47 | +++ b/src/mongo/db/initialize_server_global_state.cpp 2024-09-08 13:44:23.743647036 +0800 48 | @@ -33,6 +33,7 @@ 49 | #include "mongo/db/initialize_server_global_state.h" 50 | #include "mongo/db/initialize_server_global_state_gen.h" 51 | 52 | +#include <boost/filesystem/exception.hpp> 53 | #include <boost/filesystem/operations.hpp> 54 | #include <fmt/format.h> 55 | #include <iostream> 56 | @@ -310,7 +311,7 @@ 57 | << "\" should name a file, not a directory."); 58 | } 59 | 60 | - if (!serverGlobalParams.logAppend && boost::filesystem::is_regular(absoluteLogpath)) { 61 | + if (!serverGlobalParams.logAppend && boost::filesystem::is_regular_file(absoluteLogpath)) { 62 | std::string renameTarget = absoluteLogpath + "." + terseCurrentTimeForFilename(); 63 | boost::system::error_code ec; 64 | boost::filesystem::rename(absoluteLogpath, renameTarget, ec); 65 | diff -u -r a/src/mongo/db/sorter/sorter_test.cpp b/src/mongo/db/sorter/sorter_test.cpp 66 | --- a/src/mongo/db/sorter/sorter_test.cpp 2024-08-15 04:38:09.000000000 +0800 67 | +++ b/src/mongo/db/sorter/sorter_test.cpp 2024-09-08 13:38:28.564300078 +0800 68 | @@ -32,6 +32,7 @@ 69 | #include "mongo/platform/basic.h" 70 | 71 | #include <boost/filesystem.hpp> 72 | +#include <boost/filesystem/directory.hpp> 73 | #include <fstream> 74 | #include <memory> 75 | 76 | diff -u -r a/src/mongo/db/startup_recovery.cpp b/src/mongo/db/startup_recovery.cpp 77 | --- a/src/mongo/db/startup_recovery.cpp 2024-08-15 04:38:09.000000000 +0800 78 | +++ b/src/mongo/db/startup_recovery.cpp 2024-09-08 13:38:28.567633437 +0800 79 | @@ -29,6 +29,8 @@ 80 | 81 | #include "mongo/db/startup_recovery.h" 82 | 83 | +#include <boost/filesystem/directory.hpp> 84 | + 85 | #include "mongo/db/catalog/collection_write_path.h" 86 | #include "mongo/db/catalog/create_collection.h" 87 | #include "mongo/db/catalog/database_holder.h" 88 | diff -u -r a/src/mongo/db/startup_warnings_mongod.cpp b/src/mongo/db/startup_warnings_mongod.cpp 89 | --- a/src/mongo/db/startup_warnings_mongod.cpp 2024-08-15 04:38:09.000000000 +0800 90 | +++ b/src/mongo/db/startup_warnings_mongod.cpp 2024-09-08 13:40:57.852092056 +0800 91 | @@ -32,6 +32,7 @@ 92 | 93 | #include "mongo/db/startup_warnings_mongod.h" 94 | 95 | +#include <boost/filesystem/exception.hpp> 96 | #include <boost/filesystem/operations.hpp> 97 | #include <fstream> 98 | #ifndef _WIN32 99 | diff -u -r a/src/mongo/db/storage/storage_engine_lock_file_posix.cpp b/src/mongo/db/storage/storage_engine_lock_file_posix.cpp 100 | --- a/src/mongo/db/storage/storage_engine_lock_file_posix.cpp 2024-08-15 04:38:09.000000000 +0800 101 | +++ b/src/mongo/db/storage/storage_engine_lock_file_posix.cpp 2024-09-08 13:45:35.370855295 +0800 102 | @@ -57,7 +57,7 @@ 103 | // if called without a fully qualified path it asserts; that makes mongoperf fail. 104 | // so make a warning. need a better solution longer term. 105 | // massert(40389, str::stream() << "Couldn't find parent dir for file: " << file.string(),); 106 | - if (!file.has_branch_path()) { 107 | + if (!file.has_parent_path()) { 108 | LOGV2(22274, 109 | "warning flushMyDirectory couldn't find parent dir for file: {file}", 110 | "flushMyDirectory couldn't find parent dir for file", 111 | @@ -66,7 +66,7 @@ 112 | } 113 | 114 | 115 | - boost::filesystem::path dir = file.branch_path(); // parent_path in new boosts 116 | + boost::filesystem::path dir = file.parent_path(); // parent_path in new boosts 117 | 118 | LOGV2_DEBUG(22275, 1, "flushing directory {dir_string}", "dir_string"_attr = dir.string()); 119 | 120 | diff -u -r a/src/mongo/db/storage/storage_engine_lock_file_test.cpp b/src/mongo/db/storage/storage_engine_lock_file_test.cpp 121 | --- a/src/mongo/db/storage/storage_engine_lock_file_test.cpp 2024-08-15 04:38:09.000000000 +0800 122 | +++ b/src/mongo/db/storage/storage_engine_lock_file_test.cpp 2024-09-08 13:38:28.570966795 +0800 123 | @@ -30,6 +30,7 @@ 124 | #include "mongo/platform/basic.h" 125 | 126 | #include <boost/filesystem.hpp> 127 | +#include <boost/filesystem/directory.hpp> 128 | #include <fstream> 129 | #include <ostream> 130 | 131 | diff -u -r a/src/mongo/db/storage/storage_engine_metadata.cpp b/src/mongo/db/storage/storage_engine_metadata.cpp 132 | --- a/src/mongo/db/storage/storage_engine_metadata.cpp 2024-08-15 04:38:09.000000000 +0800 133 | +++ b/src/mongo/db/storage/storage_engine_metadata.cpp 2024-09-08 13:46:14.344483426 +0800 134 | @@ -222,7 +222,7 @@ 135 | // if called without a fully qualified path it asserts; that makes mongoperf fail. 136 | // so make a warning. need a better solution longer term. 137 | // massert(13652, str::stream() << "Couldn't find parent dir for file: " << file.string(),); 138 | - if (!file.has_branch_path()) { 139 | + if (!file.has_parent_path()) { 140 | LOGV2(22283, 141 | "warning flushMyDirectory couldn't find parent dir for file: {file}", 142 | "flushMyDirectory couldn't find parent dir for file", 143 | @@ -231,7 +231,7 @@ 144 | } 145 | 146 | 147 | - boost::filesystem::path dir = file.branch_path(); // parent_path in new boosts 148 | + boost::filesystem::path dir = file.parent_path(); // parent_path in new boosts 149 | 150 | LOGV2_DEBUG(22284, 1, "flushing directory {dir_string}", "dir_string"_attr = dir.string()); 151 | 152 | diff -u -r a/src/mongo/db/storage/wiredtiger/wiredtiger_c_api_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_c_api_test.cpp 153 | --- a/src/mongo/db/storage/wiredtiger/wiredtiger_c_api_test.cpp 2024-08-15 04:38:09.000000000 +0800 154 | +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_c_api_test.cpp 2024-09-08 13:38:28.570966795 +0800 155 | @@ -28,6 +28,7 @@ 156 | */ 157 | 158 | #include <boost/filesystem.hpp> 159 | +#include <boost/filesystem/directory.hpp> 160 | #include <boost/filesystem/operations.hpp> 161 | #include <boost/filesystem/path.hpp> 162 | #include <boost/system/error_code.hpp> 163 | diff -u -r a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp 164 | --- a/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp 2024-08-15 04:38:09.000000000 +0800 165 | +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp 2024-09-08 13:38:28.574300153 +0800 166 | @@ -31,6 +31,7 @@ 167 | #include "mongo/db/storage/wiredtiger/wiredtiger_util.h" 168 | 169 | #include <boost/filesystem.hpp> 170 | +#include <boost/filesystem/directory.hpp> 171 | #include <boost/filesystem/fstream.hpp> 172 | 173 | #include "mongo/base/simple_string_data_comparator.h" 174 | diff -u -r a/src/mongo/dbtests/framework_options.cpp b/src/mongo/dbtests/framework_options.cpp 175 | --- a/src/mongo/dbtests/framework_options.cpp 2024-08-15 04:38:09.000000000 +0800 176 | +++ b/src/mongo/dbtests/framework_options.cpp 2024-09-08 13:41:53.502512039 +0800 177 | @@ -33,6 +33,8 @@ 178 | 179 | #include "mongo/dbtests/framework_options.h" 180 | 181 | +#include <boost/filesystem/directory.hpp> 182 | +#include <boost/filesystem/exception.hpp> 183 | #include <boost/filesystem/operations.hpp> 184 | #include <iostream> 185 | 186 | diff -u -r a/src/mongo/scripting/engine.cpp b/src/mongo/scripting/engine.cpp 187 | --- a/src/mongo/scripting/engine.cpp 2024-08-15 04:38:09.000000000 +0800 188 | +++ b/src/mongo/scripting/engine.cpp 2024-09-08 13:38:28.577633512 +0800 189 | @@ -33,6 +33,7 @@ 190 | #include "mongo/scripting/engine.h" 191 | 192 | #include <algorithm> 193 | +#include <boost/filesystem/directory.hpp> 194 | #include <boost/filesystem/operations.hpp> 195 | 196 | #include "mongo/base/string_data.h" 197 | diff -u -r a/src/mongo/scripting/mozjs/module_loader.cpp b/src/mongo/scripting/mozjs/module_loader.cpp 198 | --- a/src/mongo/scripting/mozjs/module_loader.cpp 2024-08-15 04:38:09.000000000 +0800 199 | +++ b/src/mongo/scripting/mozjs/module_loader.cpp 2024-09-08 13:38:28.577633512 +0800 200 | @@ -28,6 +28,7 @@ 201 | */ 202 | 203 | #include <boost/filesystem.hpp> 204 | +#include <boost/filesystem/directory.hpp> 205 | 206 | #include "mongo/logv2/log.h" 207 | #include "mongo/scripting/mozjs/implscope.h" 208 | diff -u -r a/src/mongo/shell/shell_utils_extended.cpp b/src/mongo/shell/shell_utils_extended.cpp 209 | --- a/src/mongo/shell/shell_utils_extended.cpp 2024-08-15 04:38:09.000000000 +0800 210 | +++ b/src/mongo/shell/shell_utils_extended.cpp 2024-09-08 13:42:27.456101736 +0800 211 | @@ -36,6 +36,8 @@ 212 | #endif 213 | 214 | #include <boost/filesystem.hpp> 215 | +#include <boost/filesystem/directory.hpp> 216 | +#include <boost/filesystem/exception.hpp> 217 | #include <boost/filesystem/fstream.hpp> 218 | #include <fmt/format.h> 219 | #include <fstream> 220 | diff -u -r a/src/mongo/shell/shell_utils_launcher.cpp b/src/mongo/shell/shell_utils_launcher.cpp 221 | --- a/src/mongo/shell/shell_utils_launcher.cpp 2024-08-15 04:38:09.000000000 +0800 222 | +++ b/src/mongo/shell/shell_utils_launcher.cpp 2024-09-08 13:47:56.188587429 +0800 223 | @@ -31,6 +31,8 @@ 224 | 225 | #include <algorithm> 226 | #include <array> 227 | +#include <boost/filesystem/directory.hpp> 228 | +#include <boost/filesystem/exception.hpp> 229 | #include <boost/iostreams/device/file_descriptor.hpp> 230 | #include <boost/iostreams/stream.hpp> 231 | #include <boost/iostreams/stream_buffer.hpp> 232 | @@ -316,26 +318,26 @@ 233 | boost::filesystem::directory_iterator i(from); 234 | while (i != end) { 235 | boost::filesystem::path p = *i; 236 | - if (p.leaf() == "metrics.interim" || p.leaf() == "metrics.interim.temp") { 237 | + if (p.filename() == "metrics.interim" || p.filename() == "metrics.interim.temp") { 238 | // Ignore any errors for metrics.interim* files as these may disappear during copy 239 | boost::system::error_code ec; 240 | - boost::filesystem::copy_file(p, to / p.leaf(), ec); 241 | + boost::filesystem::copy_file(p, to / p.filename(), ec); 242 | if (ec) { 243 | LOGV2_INFO(22814, 244 | "Skipping copying of file from '{from}' to " 245 | "'{to}' due to: {error}", 246 | "Skipping copying of file due to error" 247 | "from"_attr = p.generic_string(), 248 | - "to"_attr = (to / p.leaf()).generic_string(), 249 | + "to"_attr = (to / p.filename()).generic_string(), 250 | "error"_attr = ec.message()); 251 | } 252 | - } else if (p.leaf() != "mongod.lock" && p.leaf() != "WiredTiger.lock") { 253 | + } else if (p.filename() != "mongod.lock" && p.filename() != "WiredTiger.lock") { 254 | if (boost::filesystem::is_directory(p)) { 255 | - boost::filesystem::path newDir = to / p.leaf(); 256 | + boost::filesystem::path newDir = to / p.filename(); 257 | boost::filesystem::create_directory(newDir); 258 | copyDir(p, newDir); 259 | } else { 260 | - boost::filesystem::copy_file(p, to / p.leaf()); 261 | + boost::filesystem::copy_file(p, to / p.filename()); 262 | } 263 | } 264 | ++i; 265 | diff -u -r a/src/mongo/shell/shell_utils_launcher.h b/src/mongo/shell/shell_utils_launcher.h 266 | --- a/src/mongo/shell/shell_utils_launcher.h 2024-08-15 04:38:09.000000000 +0800 267 | +++ b/src/mongo/shell/shell_utils_launcher.h 2024-09-08 13:43:55.856769586 +0800 268 | @@ -29,7 +29,6 @@ 269 | 270 | #pragma once 271 | 272 | -#include <boost/filesystem/convenience.hpp> 273 | #include <map> 274 | #include <sstream> 275 | #include <string> 276 | diff -u -r a/src/mongo/unittest/golden_test_base.cpp b/src/mongo/unittest/golden_test_base.cpp 277 | --- a/src/mongo/unittest/golden_test_base.cpp 2024-08-15 04:38:09.000000000 +0800 278 | +++ b/src/mongo/unittest/golden_test_base.cpp 2024-09-08 13:48:19.232095193 +0800 279 | @@ -95,7 +95,7 @@ 280 | fs::path outputRoot; 281 | if (opts.outputRootPattern) { 282 | fs::path pattern(*opts.outputRootPattern); 283 | - outputRoot = pattern.parent_path() / fs::unique_path(pattern.leaf()); 284 | + outputRoot = pattern.parent_path() / fs::unique_path(pattern.filename()); 285 | } else { 286 | outputRoot = fs::temp_directory_path() / fs::unique_path("out-%%%%-%%%%-%%%%-%%%%"); 287 | } 288 | diff -u -r a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp 289 | --- a/src/mongo/util/processinfo_linux.cpp 2024-08-15 04:38:09.000000000 +0800 290 | +++ b/src/mongo/util/processinfo_linux.cpp 2024-09-08 13:43:30.446577565 +0800 291 | @@ -53,6 +53,7 @@ 292 | #endif 293 | 294 | #include <boost/filesystem.hpp> 295 | +#include <boost/filesystem/exception.hpp> 296 | #include <boost/none.hpp> 297 | #include <boost/optional.hpp> 298 | #include <fmt/format.h> 299 | diff -u -r a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp 300 | --- a/src/mongo/util/procparser.cpp 2024-08-15 04:38:09.000000000 +0800 301 | +++ b/src/mongo/util/procparser.cpp 2024-09-08 13:38:28.584300228 +0800 302 | @@ -37,6 +37,7 @@ 303 | #include <boost/algorithm/string/finder.hpp> 304 | #include <boost/algorithm/string/split.hpp> 305 | #include <boost/filesystem.hpp> 306 | +#include <boost/filesystem/directory.hpp> 307 | #include <fcntl.h> 308 | #include <string> 309 | #include <sys/stat.h> 310 | diff -u -r a/src/mongo/util/stacktrace_threads.cpp b/src/mongo/util/stacktrace_threads.cpp 311 | --- a/src/mongo/util/stacktrace_threads.cpp 2024-08-15 04:38:09.000000000 +0800 312 | +++ b/src/mongo/util/stacktrace_threads.cpp 2024-09-08 13:38:28.584300228 +0800 313 | @@ -35,6 +35,7 @@ 314 | #include <array> 315 | #include <atomic> 316 | #include <boost/filesystem.hpp> 317 | +#include <boost/filesystem/directory.hpp> 318 | #include <boost/filesystem/fstream.hpp> 319 | #include <csignal> 320 | #include <cstdint> 321 | -------------------------------------------------------------------------------- /mongodb/mongodb-7.0.2-sconstruct.patch: -------------------------------------------------------------------------------- 1 | diff --git a/SConstruct b/SConstruct 2 | index 92d557b..80ee9e8 100644 3 | --- a/SConstruct 4 | +++ b/SConstruct 5 | @@ -23,7 +23,6 @@ from pkg_resources import parse_version 6 | 7 | import SCons 8 | import SCons.Script 9 | -from mongo_tooling_metrics.lib.top_level_metrics import SConsToolingMetrics 10 | from site_scons.mongo import build_profiles 11 | 12 | # This must be first, even before EnsureSConsVersion, if 13 | @@ -1649,13 +1648,6 @@ env.AddMethod(lambda env, name, **kwargs: add_option(name, **kwargs), 'AddOption 14 | 15 | # The placement of this is intentional. Here we setup an atexit method to store tooling metrics. 16 | # We should only register this function after env, env_vars and the parser have been properly initialized. 17 | -SConsToolingMetrics.register_metrics( 18 | - utc_starttime=datetime.utcnow(), 19 | - artifact_dir=env.Dir('$BUILD_DIR').get_abspath(), 20 | - env_vars=env_vars, 21 | - env=env, 22 | - parser=_parser, 23 | -) 24 | 25 | if get_option('build-metrics'): 26 | env['BUILD_METRICS_ARTIFACTS_DIR'] = '$BUILD_ROOT/$VARIANT_DIR' 27 | @@ -3026,7 +3018,6 @@ if env.TargetOSIs('posix'): 28 | env.Append( 29 | CCFLAGS=[ 30 | "-fasynchronous-unwind-tables", 31 | - "-g2" if not env.TargetOSIs('emscripten') else "-g", 32 | "-Wall", 33 | "-Wsign-compare", 34 | "-Wno-unknown-pragmas", 35 | @@ -3093,6 +3084,8 @@ if env.TargetOSIs('posix'): 36 | 37 | # env.Append( " -Wconversion" ) TODO: this doesn't really work yet 38 | env.Append(CXXFLAGS=["-Woverloaded-virtual"]) 39 | + env.Append(CXXFLAGS=os.environ['CXXFLAGS']) 40 | + env.Append(LINKFLAGS=os.environ['LDFLAGS']) 41 | 42 | # On OS X, clang doesn't want the pthread flag at link time, or it 43 | # issues warnings which make it impossible for us to declare link 44 | @@ -3143,7 +3136,7 @@ if env.TargetOSIs('posix'): 45 | ], ) 46 | 47 | #make scons colorgcc friendly 48 | - for key in ('HOME', 'TERM'): 49 | + for key in ('HOME', 'TERM', 'PATH'): 50 | try: 51 | env['ENV'][key] = os.environ[key] 52 | except KeyError: 53 | @@ -3543,33 +3536,6 @@ def doConfigure(myenv): 54 | myenv.AddMethod( 55 | functools.partial(var_func, var=var, func=CheckFlag), f"Check{var}Supported") 56 | 57 | - if myenv.ToolchainIs('gcc', 'clang'): 58 | - # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker 59 | - # because it is much faster. Don't use it if the user has already configured another linker 60 | - # selection manually. 61 | - if any(flag.startswith('-fuse-ld=') for flag in env['LINKFLAGS']): 62 | - myenv.FatalError( 63 | - f"Use the '--linker' option instead of modifying the LINKFLAGS directly.") 64 | - 65 | - linker_ld = get_option('linker') 66 | - if linker_ld == 'auto': 67 | - if not env.TargetOSIs('darwin', 'macOS'): 68 | - if not myenv.AddToLINKFLAGSIfSupported('-fuse-ld=lld'): 69 | - myenv.FatalError( 70 | - f"The recommended linker 'lld' is not supported with the current compiler configuration, you can try the 'gold' linker with '--linker=gold'." 71 | - ) 72 | - elif link_model.startswith("dynamic") and linker_ld == 'bfd': 73 | - # BFD is not supported due to issues with it causing warnings from some of 74 | - # the third party libraries that mongodb is linked with: 75 | - # https://jira.mongodb.org/browse/SERVER-49465 76 | - myenv.FatalError(f"Linker {linker_ld} is not supported with dynamic link model builds.") 77 | - else: 78 | - if not myenv.AddToLINKFLAGSIfSupported(f'-fuse-ld={linker_ld}'): 79 | - myenv.FatalError(f"Linker {linker_ld} could not be configured.") 80 | - 81 | - if has_option('gcov') and myenv.AddToCCFLAGSIfSupported('-fprofile-update=single'): 82 | - myenv.AppendUnique(LINKFLAGS=['-fprofile-update=single']) 83 | - 84 | detectCompiler = Configure( 85 | myenv, 86 | help=False, 87 | @@ -4621,43 +4587,6 @@ def doConfigure(myenv): 88 | if optBuild == "off" and myenv.ToolchainIs('clang') and env.TargetOSIs('darwin'): 89 | myenv.AddToLINKFLAGSIfSupported("-Wl,-no_deduplicate") 90 | 91 | - # Apply any link time optimization settings as selected by the 'lto' option. 92 | - if has_option('lto'): 93 | - if myenv.ToolchainIs('msvc'): 94 | - # Note that this is actually more aggressive than LTO, it is whole program 95 | - # optimization due to /GL. However, this is historically what we have done for 96 | - # windows, so we are keeping it. 97 | - # 98 | - # /GL implies /LTCG, so no need to say it in CCFLAGS, but we do need /LTCG on the 99 | - # link flags. 100 | - myenv.Append(CCFLAGS=['/GL']) 101 | - myenv.Append(LINKFLAGS=['/LTCG']) 102 | - myenv.Append(ARFLAGS=['/LTCG']) 103 | - elif myenv.ToolchainIs('gcc', 'clang'): 104 | - # For GCC and clang, the flag is -flto, and we need to pass it both on the compile 105 | - # and link lines. 106 | - if not myenv.AddToCCFLAGSIfSupported('-flto') or \ 107 | - not myenv.AddToLINKFLAGSIfSupported('-flto'): 108 | - myenv.ConfError("Link time optimization requested, " 109 | - "but selected compiler does not honor -flto") 110 | - 111 | - if myenv.TargetOSIs('darwin'): 112 | - myenv.AddToLINKFLAGSIfSupported('-Wl,-object_path_lto,${TARGET}.lto') 113 | - else: 114 | - # According to intel benchmarks -fno-plt increases perf 115 | - # See PM-2215 116 | - if linker_ld != "gold": 117 | - myenv.ConfError("lto compilation currently only works with the --linker=gold") 118 | - if link_model != "object": 119 | - myenv.ConfError( 120 | - "lto compilation currently only works with the --link-model=object") 121 | - if not myenv.AddToCCFLAGSIfSupported('-fno-plt') or \ 122 | - not myenv.AddToLINKFLAGSIfSupported('-fno-plt'): 123 | - myenv.ConfError("-fno-plt is not supported by the compiler") 124 | - 125 | - else: 126 | - myenv.ConfError("Don't know how to enable --lto on current toolchain") 127 | - 128 | if get_option('runtime-hardening') == "on" and optBuild != "off": 129 | # Older glibc doesn't work well with _FORTIFY_SOURCE=2. Selecting 2.11 as the minimum was an 130 | # emperical decision, as that is the oldest non-broken glibc we seem to require. It is possible 131 | @@ -5120,17 +5049,13 @@ def doConfigure(myenv): 132 | "BOOST_LOG_NO_SHORTHAND_NAMES", 133 | "BOOST_LOG_USE_NATIVE_SYSLOG", 134 | "BOOST_LOG_WITHOUT_THREAD_ATTR", 135 | + "BOOST_LOG_DYN_LINK", 136 | "BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS", 137 | "BOOST_SYSTEM_NO_DEPRECATED", 138 | "BOOST_THREAD_USES_DATETIME", 139 | ("BOOST_THREAD_VERSION", "5"), 140 | ]) 141 | 142 | - if link_model.startswith("dynamic") and not link_model == 'dynamic-sdk': 143 | - conf.env.AppendUnique(CPPDEFINES=[ 144 | - "BOOST_LOG_DYN_LINK", 145 | - ]) 146 | - 147 | if use_system_version_of_library("boost"): 148 | if not conf.CheckCXXHeader("boost/filesystem/operations.hpp"): 149 | myenv.ConfError("can't find boost headers") 150 | @@ -5327,6 +5252,9 @@ def doConfigure(myenv): 151 | 152 | mongoc_mode = get_option('use-system-mongo-c') 153 | conf.env['MONGO_HAVE_LIBMONGOC'] = False 154 | + conf.env.ParseConfig('pkg-config libbson-1.0 libmongoc-1.0 --cflags') 155 | + conf.env['LIBDEPS_LIBBSON_SYSLIBDEP'] = 'bson-1.0' 156 | + 157 | if mongoc_mode != 'off': 158 | if conf.CheckLibWithHeader( 159 | ["mongoc-1.0"], 160 | -------------------------------------------------------------------------------- /mongodb/mongodb.sysusers: -------------------------------------------------------------------------------- 1 | u mongodb - - /var/lib/mongodb 2 | -------------------------------------------------------------------------------- /mongodb/mongodb.tmpfiles: -------------------------------------------------------------------------------- 1 | d /var/lib//mongodb 0700 mongodb mongodb - - 2 | d /var/log//mongodb 0755 mongodb mongodb - - 3 | -------------------------------------------------------------------------------- /ncurses5-compat-libs/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = ncurses5-compat-libs 2 | pkgdesc = System V Release 4.0 curses emulation library, ABI 5 3 | pkgver = 6.4 4 | pkgrel = 2 5 | url = http://invisible-island.net/ncurses/ncurses.html 6 | arch = i686 7 | arch = x86_64 8 | license = MIT 9 | depends = glibc 10 | depends = gcc-libs 11 | depends = sh 12 | provides = libtinfo5 13 | conflicts = libtinfo5 14 | source = https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.4.tar.gz 15 | source = https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.4.tar.gz.sig 16 | validpgpkeys = 19882D92DDA4C400C22C0D56CC2AF4472167BE03 17 | sha256sums = 6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159 18 | sha256sums = SKIP 19 | 20 | pkgname = ncurses5-compat-libs 21 | -------------------------------------------------------------------------------- /ncurses5-compat-libs/.gitignore: -------------------------------------------------------------------------------- 1 | *.asc 2 | *.sig 3 | *.tar.* 4 | logs/ 5 | pkg/ 6 | src/ 7 | -------------------------------------------------------------------------------- /ncurses5-compat-libs/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> 2 | # Maintainer: Mateusz Gozdek <mgozdekof@gmail.com> 3 | # Contributor: Allan McRae <allan@archlinux.org> 4 | # Contributor: judd <jvinet@zeroflux.org> 5 | 6 | pkgname=ncurses5-compat-libs 7 | _pkgname=ncurses 8 | pkgver=6.4 9 | pkgrel=2 10 | pkgdesc='System V Release 4.0 curses emulation library, ABI 5' 11 | arch=(i686 x86_64) 12 | url='http://invisible-island.net/ncurses/ncurses.html' 13 | license=(MIT) 14 | depends=(glibc gcc-libs sh) 15 | provides=(libtinfo5) 16 | conflicts=(libtinfo5) 17 | source=(https://ftp.gnu.org/pub/gnu/ncurses/ncurses-$pkgver.tar.gz{,.sig}) 18 | sha256sums=('6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159' 19 | 'SKIP') 20 | validpgpkeys=('19882D92DDA4C400C22C0D56CC2AF4472167BE03') # Thomas Dickey 21 | 22 | prepare() { 23 | cp -r ${_pkgname}-${pkgver}{,-no-widec} 24 | } 25 | 26 | build() { 27 | local configure_options=( 28 | --prefix=/usr 29 | --mandir=/usr/share/man 30 | --with-shared 31 | --with-normal 32 | --without-debug 33 | --without-ada 34 | --disable-pc-files 35 | --with-cxx-binding 36 | --with-cxx-shared 37 | --with-versioned-syms 38 | --with-abi-version=5 39 | ) 40 | 41 | cd "${srcdir}/${_pkgname}-${pkgver}" 42 | 43 | ./configure "${configure_options[@]}" --enable-widec 44 | make 45 | 46 | cd "${srcdir}/${_pkgname}-${pkgver}-no-widec" 47 | 48 | ./configure "${configure_options[@]}" 49 | make 50 | } 51 | 52 | package() { 53 | cd "${srcdir}/${_pkgname}-${pkgver}" 54 | make DESTDIR="$pkgdir" install.libs 55 | cd "${srcdir}/${_pkgname}-${pkgver}-no-widec" 56 | make DESTDIR="$pkgdir" install.libs 57 | install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE" 58 | rm -rf "$pkgdir/usr/include/" "$pkgdir/usr/lib/pkgconfig" \ 59 | "$pkgdir"/usr/lib/*.so "$pkgdir"/usr/lib/*.a 60 | 61 | ln -s /usr/lib/libncurses.so.5 "$pkgdir/usr/lib/libtinfo.so.5" 62 | ln -s /usr/lib/libncurses.so.5 "$pkgdir/usr/lib/libtic.so.5" 63 | } 64 | -------------------------------------------------------------------------------- /phoenixminer-bin/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = phoenixminer-bin 2 | pkgdesc = The fastest Ethereum/Ethash miner with lowest devfee. 3 | pkgver = 6.2c 4 | pkgrel = 1 5 | url = https://bitcointalk.org/index.php?topic=2647654.0 6 | arch = x86_64 7 | options = !strip 8 | source = https://phoenixminer.info/downloads/PhoenixMiner_6.2c_Linux.tar.gz 9 | source = https://phoenixminer.info/downloads/PhoenixMiner_6.2c_Linux.tar.gz.asc 10 | validpgpkeys = F9403D7EAE2AC5F4C361015E654C5927EE163067 11 | sha256sums = dad2f42237269b8f98932e9dcf45d12e30d3f694e52ada01e2c891a348636319 12 | sha256sums = SKIP 13 | 14 | pkgname = phoenixminer-bin 15 | -------------------------------------------------------------------------------- /phoenixminer-bin/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.tar.gz* 4 | *.tar.xz 5 | -------------------------------------------------------------------------------- /phoenixminer-bin/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | 3 | pkgname=phoenixminer-bin 4 | _pkgbasename=phoenixminer 5 | pkgver=6.2c 6 | pkgrel=1 7 | pkgdesc="The fastest Ethereum/Ethash miner with lowest devfee." 8 | arch=("x86_64") 9 | url="https://bitcointalk.org/index.php?topic=2647654.0" 10 | source=("https://phoenixminer.info/downloads/PhoenixMiner_${pkgver}_Linux.tar.gz"{,.asc}) 11 | sha256sums=('dad2f42237269b8f98932e9dcf45d12e30d3f694e52ada01e2c891a348636319' 12 | 'SKIP') 13 | validpgpkeys=("F9403D7EAE2AC5F4C361015E654C5927EE163067") # Phoenix Devs <pdevs@example.com> 14 | options=(!strip) 15 | 16 | package() { 17 | mkdir -p "$pkgdir/opt/${_pkgbasename}" 18 | mkdir -p "$pkgdir/usr/bin" 19 | 20 | cd "PhoenixMiner_${pkgver}_Linux/" 21 | chmod 777 PhoenixMiner 22 | 23 | mv * "$pkgdir/opt/${_pkgbasename}" 24 | ln -s "/opt/${_pkgbasename}/PhoenixMiner" "$pkgdir/usr/bin/PhoenixMiner" 25 | } 26 | 27 | # vim:set ts=2 sw=2 et: 28 | -------------------------------------------------------------------------------- /php-smbclient/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = php-smbclient 2 | pkgdesc = PHP bindings for libsmbclient. 3 | pkgver = 1.1.1 4 | pkgrel = 1 5 | url = https://github.com/eduardok/libsmbclient-php 6 | arch = i686 7 | arch = x86_64 8 | arch = armv7h 9 | license = BSD 10 | makedepends = php 11 | makedepends = php-legacy 12 | depends = smbclient 13 | source = https://github.com/eduardok/libsmbclient-php/archive/1.1.1.tar.gz 14 | b2sums = 8152ed3c92bdbbcdac59c19f77b203cb2fbaf98767d8137d3bbbc96906bb52c3bbdfacdfb5c32eecc4ccb6e44c9417b8c57e80621bd6e4d15a324f97f461984c 15 | 16 | pkgname = php-smbclient 17 | backup = etc/php/conf.d/smbclient.ini 18 | 19 | pkgname = php-legacy-smbclient 20 | backup = etc/php-legacy/conf.d/smbclient.ini 21 | -------------------------------------------------------------------------------- /php-smbclient/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.tar.* 4 | -------------------------------------------------------------------------------- /php-smbclient/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Robin Appelman <robin@icewind.nl> 2 | 3 | _upstream=libsmbclient-php 4 | pkgbase=php-smbclient 5 | pkgname=(php-smbclient php-legacy-smbclient) 6 | _extname=smbclient 7 | pkgver=1.1.1 8 | pkgrel=1 9 | pkgdesc="PHP bindings for libsmbclient." 10 | arch=('i686' 'x86_64' 'armv7h') 11 | url="https://github.com/eduardok/libsmbclient-php" 12 | license=('BSD') 13 | makedepends=('php' 'php-legacy') 14 | depends=('smbclient') 15 | source=("https://github.com/eduardok/libsmbclient-php/archive/${pkgver}.tar.gz") 16 | b2sums=('8152ed3c92bdbbcdac59c19f77b203cb2fbaf98767d8137d3bbbc96906bb52c3bbdfacdfb5c32eecc4ccb6e44c9417b8c57e80621bd6e4d15a324f97f461984c') 17 | 18 | prepare() { 19 | mv "${_upstream}-${pkgver}" "$pkgbase-$pkgver" 20 | echo ";extension=smbclient.so" > "$pkgbase-$pkgver/${_extname}.ini" 21 | 22 | cp -a "$pkgbase-$pkgver" "${pkgname[1]}-$pkgver" 23 | 24 | ( 25 | cd "$pkgbase-$pkgver" 26 | phpize 27 | ) 28 | 29 | ( 30 | cd "${pkgname[1]}-$pkgver" 31 | phpize-legacy 32 | ) 33 | } 34 | 35 | build() { 36 | ( 37 | cd "$pkgbase-$pkgver" 38 | ./configure --prefix=/usr 39 | make 40 | ) 41 | 42 | ( 43 | cd "${pkgname[1]}-$pkgver" 44 | ./configure --prefix=/usr 45 | make 46 | ) 47 | } 48 | 49 | package_php-legacy-smbclient() { 50 | backup=("etc/php-legacy/conf.d/${_extname}.ini") 51 | 52 | cd "${pkgname[1]}-$pkgver" 53 | 54 | make INSTALL_ROOT="${pkgdir}" install 55 | install -vDm 644 "${_extname}.ini" -t "${pkgdir}/etc/php-legacy/conf.d/" 56 | } 57 | 58 | package_php-smbclient() { 59 | backup=("etc/php/conf.d/${_extname}.ini") 60 | 61 | cd "$pkgbase-$pkgver" 62 | 63 | make INSTALL_ROOT="${pkgdir}" install 64 | install -vDm 644 "${_extname}.ini" -t "${pkgdir}/etc/php/conf.d/" 65 | } 66 | 67 | # vim:set ts=2 sw=2 et: 68 | -------------------------------------------------------------------------------- /python-sphinx-automodapi/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = python-sphinx-automodapi 2 | pkgdesc = Sphinx extension for generating API documentation. 3 | pkgver = 0.14.1 4 | pkgrel = 1 5 | url = https://sphinx-automodapi.readthedocs.io 6 | arch = any 7 | license = BSD 8 | checkdepends = python-pytest 9 | checkdepends = graphviz 10 | makedepends = python-setuptools-scm 11 | makedepends = python-sphinx 12 | makedepends = python-sphinx_rtd_theme 13 | source = https://files.pythonhosted.org/packages/source/s/sphinx-automodapi/sphinx-automodapi-0.14.1.tar.gz 14 | sha256sums = a2f9c0f9e2901875e6db75df6c01412875eb15f25e7db1206e1b69fedf75bbc9 15 | 16 | pkgname = python-sphinx-automodapi 17 | depends = python-sphinx>=2 18 | optdepends = python-sphinx-automodapi-doc: Documentation for sphinx-automodapi 19 | 20 | pkgname = python-sphinx-automodapi-doc 21 | pkgdesc = Documentation for sphinx-automodapi 22 | -------------------------------------------------------------------------------- /python-sphinx-automodapi/.gitignore: -------------------------------------------------------------------------------- 1 | src 2 | pkg 3 | *.src.tar.gz 4 | *.tar.gz 5 | *.tar.bz2 6 | *.part 7 | *.pkg.tar.* 8 | *.log 9 | -------------------------------------------------------------------------------- /python-sphinx-automodapi/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Astro Benzene <universebenzene at sina dot com> 2 | 3 | pkgname=python-sphinx-automodapi 4 | _pyname=${pkgname#python-} 5 | pkgver=0.14.1 6 | pkgrel=1 7 | pkgdesc="Sphinx extension for generating API documentation." 8 | arch=('any') 9 | url="https://sphinx-automodapi.readthedocs.io" 10 | license=('BSD') 11 | makedepends=('python-setuptools-scm' 'python-sphinx' 'python-sphinx_rtd_theme') 12 | checkdepends=('python-pytest' 'graphviz') 13 | source=("https://files.pythonhosted.org/packages/source/${_pyname:0:1}/${_pyname}/${_pyname}-${pkgver}.tar.gz") 14 | sha256sums=('a2f9c0f9e2901875e6db75df6c01412875eb15f25e7db1206e1b69fedf75bbc9') 15 | 16 | prepare() { 17 | export _pyver=$(python -c 'import sys; print("%d.%d" % sys.version_info[:2])') 18 | } 19 | 20 | build() { 21 | cd ${srcdir}/${_pyname}-${pkgver} 22 | python setup.py build 23 | } 24 | 25 | package_python-sphinx-automodapi() { 26 | depends=('python-sphinx>=2') 27 | optdepends=('python-sphinx-automodapi-doc: Documentation for sphinx-automodapi') 28 | cd ${srcdir}/${_pyname}-${pkgver} 29 | 30 | install -D -m644 LICENSE.rst -t "${pkgdir}/usr/share/licenses/${pkgname}" 31 | install -D -m644 README.rst -t "${pkgdir}/usr/share/doc/${pkgname}" 32 | # python -m installer --destdir="$pkgdir" dist/*.whl 33 | python setup.py install --root=${pkgdir} --prefix=/usr --optimize=1 34 | } 35 | -------------------------------------------------------------------------------- /python-stdnum/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = python-stdnum 2 | pkgdesc = Handle, parse and validate standard numbers, e.g. IBAN, EAN, ISBN 3 | pkgver = 1.20 4 | pkgrel = 2 5 | url = http://arthurdejong.org/python-stdnum 6 | arch = any 7 | license = LGPL-2.1-or-later 8 | depends = python 9 | depends = python-requests 10 | depends = python-lxml 11 | depends = python-setuptools 12 | optdepends = python-zeep: recommended SOAP implementation 13 | optdepends = python-suds: second recommended SOAP implementation 14 | optdepends = python-pysimplesoap: fallback SOAP implementation 15 | source = python-stdnum-1.20.tar.gz::http://arthurdejong.org/python-stdnum/python-stdnum-1.20.tar.gz 16 | sha256sums = ad2a2cf2eb025de408210235f36b4ae31252de3186240ccaa8126e117cb82690 17 | 18 | pkgname = python-stdnum 19 | -------------------------------------------------------------------------------- /python-stdnum/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | python-stdnum-*.tar.gz 4 | python-stdnum-*.pkg.tar.zst 5 | -------------------------------------------------------------------------------- /python-stdnum/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | 3 | # Maintainer: JustKidding <jk@vin.ovh> 4 | # Contributor: Dimitris Kiziridis <ragouel at outlook dot com> 5 | # Contributor: Sebastiaan Lokhorst <sebastiaanlokhorst@gmail.com> 6 | # Contributor: Alex Merry <dev@randomguy3.me.uk> 7 | 8 | pkgname=python-stdnum 9 | pkgver=1.20 10 | pkgrel=2 11 | pkgdesc="Handle, parse and validate standard numbers, e.g. IBAN, EAN, ISBN" 12 | arch=('any') 13 | url="http://arthurdejong.org/python-stdnum" 14 | license=('LGPL-2.1-or-later') 15 | depends=('python' 'python-requests' 'python-lxml' 'python-setuptools') 16 | optdepends=( 17 | 'python-zeep: recommended SOAP implementation' 18 | 'python-suds: second recommended SOAP implementation' 19 | 'python-pysimplesoap: fallback SOAP implementation' 20 | ) 21 | source=("${pkgname}-${pkgver}.tar.gz::http://arthurdejong.org/python-stdnum/python-stdnum-${pkgver}.tar.gz") 22 | sha256sums=('ad2a2cf2eb025de408210235f36b4ae31252de3186240ccaa8126e117cb82690') 23 | 24 | build() { 25 | cd "$pkgname-$pkgver" 26 | python setup.py build 27 | } 28 | 29 | package() { 30 | cd "$pkgname-$pkgver" 31 | python setup.py install --root="$pkgdir" --optimize=1 32 | } 33 | 34 | -------------------------------------------------------------------------------- /sip4/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = sip4 2 | pkgver = 4.19.25 3 | pkgrel = 5 4 | url = https://www.riverbankcomputing.com/software/sip/intro 5 | arch = x86_64 6 | license = LicenseRef-sip 7 | makedepends = python 8 | source = https://www.riverbankcomputing.com/static/Downloads/sip/4.19.25/sip-4.19.25.tar.gz 9 | source = python3-11.patch 10 | sha256sums = b39d93e937647807bac23579edbff25fe46d16213f708370072574ab1f1b4211 11 | sha256sums = af816287a77ae8dcfd8859d162ca603ac72a4cf4f7080bb6e712cbc87638d194 12 | 13 | pkgname = sip4 14 | pkgdesc = A tool that makes it easy to create Python bindings for C and C++ libraries 15 | depends = glibc 16 | 17 | pkgname = python-sip4 18 | pkgdesc = Python SIP4 bindings for C and C++ libraries 19 | depends = python 20 | -------------------------------------------------------------------------------- /sip4/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.tar.* 4 | 5 | -------------------------------------------------------------------------------- /sip4/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | 3 | # Maintainer: Antonio Rojas <arojas@archlinux.org> 4 | # Maintainer: Felix Yan <felixonmars@archlinux.org> 5 | # Contributor: Andrea Scarpino <andrea@archlinux.org> 6 | # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> 7 | # Contributor: riai <riai@bigfoot.com>, Ben <ben@benmazer.net> 8 | 9 | pkgbase=sip4 10 | pkgname=(sip4 python-sip4) 11 | pkgver=4.19.25 12 | pkgrel=5 13 | arch=(x86_64) 14 | url='https://www.riverbankcomputing.com/software/sip/intro' 15 | license=('LicenseRef-sip') 16 | makedepends=(python) 17 | source=("https://www.riverbankcomputing.com/static/Downloads/sip/$pkgver/sip-$pkgver.tar.gz" 18 | python3-11.patch) 19 | sha256sums=('b39d93e937647807bac23579edbff25fe46d16213f708370072574ab1f1b4211' 20 | 'af816287a77ae8dcfd8859d162ca603ac72a4cf4f7080bb6e712cbc87638d194') 21 | 22 | prepare() { 23 | mkdir -p build 24 | cd sip-$pkgver 25 | patch -Np1 -i ../python3-11.patch 26 | } 27 | 28 | build() { 29 | cd build 30 | python ../sip-$pkgver/configure.py CFLAGS="$CFLAGS" LFLAGS="$LDFLAGS" --no-dist-info 31 | make 32 | } 33 | 34 | package_sip4() { 35 | pkgdesc="A tool that makes it easy to create Python bindings for C and C++ libraries" 36 | depends=(glibc) 37 | 38 | cd build 39 | make DESTDIR="$pkgdir" install -C sipgen 40 | # move sip.h to /usr/include 41 | mv "$pkgdir"/usr/include/{python*/sip.h,} 42 | rm -r "$pkgdir"/usr/include/python* 43 | 44 | install -Dm644 ../sip-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE 45 | } 46 | 47 | package_python-sip4() { 48 | pkgdesc="Python SIP4 bindings for C and C++ libraries" 49 | depends=(python) 50 | 51 | cd build 52 | make DESTDIR="$pkgdir" install 53 | rm -r "$pkgdir"/usr/{bin,include} # conflicts with sip 54 | 55 | install -Dm644 ../sip-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE 56 | } 57 | -------------------------------------------------------------------------------- /sip4/python3-11.patch: -------------------------------------------------------------------------------- 1 | diff --git a/siplib/siplib.c b/siplib/siplib.c 2 | index db52b68..8019e97 100644 3 | --- a/siplib/siplib.c 4 | +++ b/siplib/siplib.c 5 | @@ -13747,7 +13747,7 @@ static struct _frame *sip_api_get_frame(int depth) 6 | 7 | while (frame != NULL && depth > 0) 8 | { 9 | - frame = frame->f_back; 10 | + frame = PyFrame_GetBack(frame); 11 | --depth; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /ttf-babelstone-runic/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = ttf-babelstone-runic 2 | pkgdesc = BabelStone Younger Futhark Fonts 3 | pkgver = 7.004 4 | pkgrel = 1 5 | url = https://babelstone.co.uk/Fonts/Runic.html 6 | arch = any 7 | license = OFL 8 | source = https://babelstone.co.uk/Fonts/Download/BabelStoneRunic.ttf 9 | source = https://babelstone.co.uk/Fonts/Download/BabelStoneRunicRuled.ttf 10 | source = https://babelstone.co.uk/Fonts/BabelStoneOFL.txt 11 | sha256sums = ea2e72bb807388212c8abecb2f806aff5ea6a278b5a337d506b18b3134533561 12 | sha256sums = 25dcb9a929919b11944d6c8e52d8f15e770f4d4370c26e15b88dbfd1887cd127 13 | sha256sums = d2b1b6e4e9201832e94e6f9231b6c32488cb76ea30c4ef82ca3fac35ec2f0b66 14 | 15 | pkgname = ttf-babelstone-runic 16 | -------------------------------------------------------------------------------- /ttf-babelstone-runic/.gitignore: -------------------------------------------------------------------------------- 1 | *.ttf 2 | *.txt 3 | *.tar.* 4 | src/ 5 | pkg/ 6 | -------------------------------------------------------------------------------- /ttf-babelstone-runic/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | # Maintainer: JustKidding <jk@vin.ovh> 3 | 4 | pkgname=ttf-babelstone-runic 5 | pkgver=7.004 6 | pkgrel=1 7 | pkgdesc="BabelStone Younger Futhark Fonts" 8 | url="https://babelstone.co.uk/Fonts/Runic.html" 9 | arch=(any) 10 | license=(OFL) 11 | source=(https://babelstone.co.uk/Fonts/Download/BabelStoneRunic.ttf 12 | https://babelstone.co.uk/Fonts/Download/BabelStoneRunicRuled.ttf 13 | https://babelstone.co.uk/Fonts/BabelStoneOFL.txt) 14 | sha256sums=('ea2e72bb807388212c8abecb2f806aff5ea6a278b5a337d506b18b3134533561' 15 | '25dcb9a929919b11944d6c8e52d8f15e770f4d4370c26e15b88dbfd1887cd127' 16 | 'd2b1b6e4e9201832e94e6f9231b6c32488cb76ea30c4ef82ca3fac35ec2f0b66') 17 | 18 | package() { 19 | install -Dm644 BabelStoneRunic.ttf -t "$pkgdir/usr/share/fonts/TTF" 20 | install -Dm644 BabelStoneRunicRuled.ttf -t "$pkgdir/usr/share/fonts/TTF" 21 | install -Dm644 BabelStoneOFL.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE" 22 | } 23 | -------------------------------------------------------------------------------- /turbo-base64/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = turbo-base64 2 | pkgdesc = Fastest Base64 SIMD Encoding library 3 | pkgver = 2023.08 4 | pkgrel = 2 5 | url = https://github.com/powturbo/Turbo-Base64 6 | arch = any 7 | license = GPL3 8 | makedepends = cmake 9 | source = https://github.com/powturbo/Turbo-Base64/archive/2023.08.tar.gz 10 | sha256sums = b874ef7731ce5c1bcf665b703fca1ce896bfe8aaed2725ac725b4f1762eda5b8 11 | 12 | pkgname = turbo-base64 13 | -------------------------------------------------------------------------------- /turbo-base64/.gitignore: -------------------------------------------------------------------------------- 1 | *.tar.* 2 | pkg/ 3 | src/ 4 | -------------------------------------------------------------------------------- /turbo-base64/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | # Maintainer: JustKidding <jk@vin.ovh> 3 | 4 | pkgname=turbo-base64 5 | _pkgname=Turbo-Base64 6 | pkgver=2023.08 7 | pkgrel=2 8 | pkgdesc="Fastest Base64 SIMD Encoding library" 9 | arch=("any") 10 | url="https://github.com/powturbo/Turbo-Base64" 11 | license=("GPL3") 12 | makedepends=("cmake") 13 | source=("https://github.com/powturbo/${_pkgname}/archive/${pkgver}.tar.gz") 14 | sha256sums=('b874ef7731ce5c1bcf665b703fca1ce896bfe8aaed2725ac725b4f1762eda5b8') 15 | 16 | build() { 17 | cmake -B build -S "$_pkgname-$pkgver" \ 18 | -DCMAKE_BUILD_TYPE='None' \ 19 | -DCMAKE_INSTALL_PREFIX='/usr' \ 20 | -DBUILD_SHARED_LIBS=ON \ 21 | -Wno-dev 22 | cmake --build build -j "$(nproc)" 23 | } 24 | 25 | package() { 26 | DESTDIR="$pkgdir" cmake --install build 27 | } 28 | 29 | # vim:set ts=2 sw=2 et: 30 | -------------------------------------------------------------------------------- /ueberzugpp-nogl/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = ueberzugpp-nogl 2 | pkgdesc = Command line util which allows to display images in combination with X11 written in C++ (without OpenGL support) 3 | pkgver = 2.9.6 4 | pkgrel = 1 5 | url = https://github.com/jstkdng/ueberzugpp 6 | arch = x86_64 7 | arch = aarch64 8 | arch = powerpc64le 9 | license = GPL-3.0-or-later 10 | makedepends = cmake 11 | makedepends = cli11 12 | makedepends = nlohmann-json 13 | makedepends = range-v3 14 | makedepends = wayland-protocols 15 | makedepends = extra-cmake-modules 16 | depends = opencv 17 | depends = libvips 18 | depends = glib2 19 | depends = libxcb 20 | depends = xcb-util-image 21 | depends = libsixel 22 | depends = openssl 23 | depends = spdlog 24 | depends = fmt 25 | depends = turbo-base64 26 | depends = chafa 27 | depends = wayland 28 | depends = onetbb 29 | depends = glibc 30 | depends = gcc-libs 31 | depends = xcb-util-errors 32 | provides = ueberzug 33 | conflicts = ueberzug 34 | conflicts = ueberzugpp 35 | options = debug 36 | source = https://github.com/jstkdng/ueberzugpp/archive/v2.9.6.tar.gz 37 | sha256sums = 29cca04404c5883510aebf02846f608cfbf5892176bf4a48099e5167d5ef9d95 38 | 39 | pkgname = ueberzugpp-nogl 40 | -------------------------------------------------------------------------------- /ueberzugpp-nogl/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.tar.* 4 | -------------------------------------------------------------------------------- /ueberzugpp-nogl/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | # shellcheck disable=SC2034,SC2154,SC2164 3 | 4 | pkgname=ueberzugpp-nogl 5 | _pkgname=ueberzugpp 6 | pkgver=2.9.6 7 | pkgrel=1 8 | pkgdesc="Command line util which allows to display images in combination with X11 written in C++ (without OpenGL support)" 9 | arch=(x86_64 aarch64 powerpc64le) 10 | url="https://github.com/jstkdng/ueberzugpp" 11 | license=("GPL-3.0-or-later") 12 | makedepends=("cmake" "cli11" "nlohmann-json" "range-v3" "wayland-protocols" "extra-cmake-modules") 13 | depends=("opencv" "libvips" "glib2" "libxcb" "xcb-util-image" "libsixel" "openssl" "spdlog" 14 | "fmt" "turbo-base64" "chafa" "wayland" "onetbb" "glibc" "gcc-libs" "xcb-util-errors") 15 | source=("https://github.com/jstkdng/${_pkgname}/archive/v${pkgver}.tar.gz") 16 | sha256sums=('29cca04404c5883510aebf02846f608cfbf5892176bf4a48099e5167d5ef9d95') 17 | provides=(ueberzug) 18 | conflicts=(ueberzug ueberzugpp) 19 | options=(debug) 20 | 21 | build() { 22 | cmake -B build -S "$_pkgname-$pkgver" \ 23 | -DCMAKE_BUILD_TYPE=None \ 24 | -DCMAKE_INSTALL_PREFIX=/usr \ 25 | -DENABLE_TURBOBASE64=ON \ 26 | -DENABLE_WAYLAND=ON \ 27 | -DENABLE_XCB_ERRORS=ON \ 28 | -Wno-dev 29 | cmake --build build -j "$(nproc)" 30 | } 31 | 32 | package() { 33 | DESTDIR="$pkgdir" cmake --install build 34 | } 35 | 36 | # vim:set ts=2 sw=2 et: 37 | -------------------------------------------------------------------------------- /ueberzugpp/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = ueberzugpp 2 | pkgdesc = Command line utility which allows to display images in the terminal, written in C++ 3 | pkgver = 2.9.6 4 | pkgrel = 3 5 | url = https://github.com/jstkdng/ueberzugpp 6 | arch = x86_64 7 | arch = aarch64 8 | arch = powerpc64le 9 | license = GPL-3.0-or-later 10 | makedepends = cmake 11 | makedepends = cli11 12 | makedepends = nlohmann-json 13 | makedepends = wayland-protocols 14 | makedepends = extra-cmake-modules 15 | makedepends = range-v3 16 | depends = opencv 17 | depends = libvips 18 | depends = glib2 19 | depends = libxcb 20 | depends = xcb-util-image 21 | depends = libsixel 22 | depends = openssl 23 | depends = spdlog 24 | depends = libglvnd 25 | depends = fmt 26 | depends = turbo-base64 27 | depends = chafa 28 | depends = wayland 29 | depends = onetbb 30 | depends = glibc 31 | depends = gcc-libs 32 | depends = xcb-util-errors 33 | provides = ueberzug 34 | conflicts = ueberzug 35 | options = debug 36 | source = https://github.com/jstkdng/ueberzugpp/archive/v2.9.6.tar.gz 37 | sha256sums = 29cca04404c5883510aebf02846f608cfbf5892176bf4a48099e5167d5ef9d95 38 | 39 | pkgname = ueberzugpp 40 | -------------------------------------------------------------------------------- /ueberzugpp/.gitignore: -------------------------------------------------------------------------------- 1 | pkg/ 2 | src/ 3 | *.tar.* 4 | -------------------------------------------------------------------------------- /ueberzugpp/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | # shellcheck disable=SC2034,SC2154,SC2164 3 | 4 | pkgname=ueberzugpp 5 | pkgver=2.9.6 6 | pkgrel=3 7 | pkgdesc="Command line utility which allows to display images in the terminal, written in C++" 8 | arch=(x86_64 aarch64 powerpc64le) 9 | url="https://github.com/jstkdng/ueberzugpp" 10 | license=("GPL-3.0-or-later") 11 | makedepends=("cmake" "cli11" "nlohmann-json" "wayland-protocols" "extra-cmake-modules" "range-v3") 12 | depends=("opencv" "libvips" "glib2" "libxcb" "xcb-util-image" "libsixel" "openssl" "spdlog" "libglvnd" 13 | "fmt" "turbo-base64" "chafa" "wayland" "onetbb" "glibc" "gcc-libs" "xcb-util-errors") 14 | source=("https://github.com/jstkdng/${pkgname}/archive/v${pkgver}.tar.gz") 15 | sha256sums=('29cca04404c5883510aebf02846f608cfbf5892176bf4a48099e5167d5ef9d95') 16 | provides=("ueberzug") 17 | conflicts=("ueberzug") 18 | options=("debug") 19 | 20 | build() { 21 | cmake -B build -S "$pkgname-$pkgver" \ 22 | -DCMAKE_BUILD_TYPE='None' \ 23 | -DCMAKE_INSTALL_PREFIX='/usr' \ 24 | -DENABLE_TURBOBASE64=ON \ 25 | -DENABLE_WAYLAND=ON \ 26 | -DENABLE_XCB_ERRORS=ON \ 27 | -DENABLE_OPENGL=ON \ 28 | -Wno-dev 29 | cmake --build build -j "$(nproc)" 30 | } 31 | 32 | package() { 33 | DESTDIR="$pkgdir" cmake --install build 34 | } 35 | 36 | # vim:set ts=2 sw=2 et: 37 | -------------------------------------------------------------------------------- /ungoogled-chromium/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = ungoogled-chromium 2 | pkgdesc = A lightweight approach to removing Google web service dependency 3 | pkgver = 126.0.6478.126 4 | pkgrel = 1 5 | url = https://github.com/ungoogled-software/ungoogled-chromium 6 | arch = x86_64 7 | license = BSD-3-Clause 8 | makedepends = python 9 | makedepends = gn 10 | makedepends = ninja 11 | makedepends = clang 12 | makedepends = lld 13 | makedepends = gperf 14 | makedepends = nodejs 15 | makedepends = pipewire 16 | makedepends = rust 17 | makedepends = qt5-base 18 | makedepends = qt6-base 19 | makedepends = java-runtime-headless 20 | makedepends = git 21 | depends = gtk3 22 | depends = nss 23 | depends = alsa-lib 24 | depends = xdg-utils 25 | depends = libxss 26 | depends = libcups 27 | depends = libgcrypt 28 | depends = ttf-liberation 29 | depends = systemd 30 | depends = dbus 31 | depends = libpulse 32 | depends = pciutils 33 | depends = libva 34 | depends = libffi 35 | depends = desktop-file-utils 36 | depends = hicolor-icon-theme 37 | depends = fontconfig 38 | depends = brotli 39 | depends = libjpeg 40 | depends = icu 41 | depends = dav1d 42 | depends = flac 43 | depends = libxml2 44 | depends = libwebp 45 | depends = minizip 46 | depends = opus 47 | depends = harfbuzz 48 | depends = libxslt 49 | depends = libpng 50 | depends = freetype2 51 | optdepends = pipewire: WebRTC desktop sharing under Wayland 52 | optdepends = kdialog: support for native dialogs in Plasma 53 | optdepends = gtk4: for --gtk-version=4 (GTK4 IME might work better on Wayland) 54 | optdepends = org.freedesktop.secrets: password storage backend on GNOME / Xfce 55 | optdepends = kwallet: support for storing passwords in KWallet on Plasma 56 | optdepends = chromium-extension-web-store: Web Store Functionality 57 | provides = chromium=126.0.6478.126 58 | provides = chromedriver=126.0.6478.126 59 | conflicts = chromium 60 | conflicts = chromedriver 61 | options = !lto 62 | source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-126.0.6478.126.tar.xz 63 | source = https://github.com/foutrelis/chromium-launcher/archive/v8/chromium-launcher-8.tar.gz 64 | source = https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/126/chromium-patches-126.tar.bz2 65 | source = allow-ANGLEImplementation-kVulkan.patch 66 | source = drop-flag-unsupported-by-clang17.patch 67 | source = compiler-rt-adjust-paths.patch 68 | source = use-oauth2-client-switches-as-default.patch 69 | source = ungoogled-chromium-126.0.6478.126-1.tar.gz::https://github.com/ungoogled-software/ungoogled-chromium/archive/126.0.6478.126-1.tar.gz 70 | source = ninja-out-of-order-generation-fix.patch 71 | source = 0001-vaapi-flag-ozone-wayland.patch 72 | source = 0001-adjust-buffer-format-order.patch 73 | source = 0001-enable-linux-unstable-deb-target.patch 74 | source = 0001-ozone-wayland-implement-text_input_manager_v3.patch 75 | source = 0001-ozone-wayland-implement-text_input_manager-fixes.patch 76 | sha256sums = 5d5206637e659f03e006cd8b6b269c49c0c2c697d10517e14dbcea851831e143 77 | sha256sums = 213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a 78 | sha256sums = daf0df74d2601c35fd66a746942d9ca3fc521ede92312f85af51d94c399fd6e0 79 | sha256sums = 8f81059d79040ec598b5fb077808ec69d26d6c9cbebf9c4f4ea48b388a2596c5 80 | sha256sums = 028acc97299cec5d1ed9f456bbdc462807fa491277d266db2aa1d405d3cd753d 81 | sha256sums = b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961 82 | sha256sums = a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6 83 | sha256sums = b901f4a6a0401facb6bbe6645eac62f4af902f6885e27d35cc354c49ebe191b8 84 | sha256sums = 813e6a1209ab72e4ab34f5f062412087e9664189d7b8f1dc1d0bb9481c574c45 85 | sha256sums = 9a5594293616e1390462af1f50276ee29fd6075ffab0e3f944f6346cb2eb8aec 86 | sha256sums = 8ba5c67b7eb6cacd2dbbc29e6766169f0fca3bbb07779b1a0a76c913f17d343f 87 | sha256sums = 2a44756404e13c97d000cc0d859604d6848163998ea2f838b3b9bb2c840967e3 88 | sha256sums = d9974ddb50777be428fd0fa1e01ffe4b587065ba6adefea33678e1b3e25d1285 89 | sha256sums = a2da75d0c20529f2d635050e0662941c0820264ea9371eb900b9d90b5968fa6a 90 | 91 | pkgname = ungoogled-chromium 92 | -------------------------------------------------------------------------------- /ungoogled-chromium/.gitignore: -------------------------------------------------------------------------------- 1 | *.pkg.* 2 | ungoogled-chromium 3 | src 4 | pkg 5 | *.tar.* 6 | -------------------------------------------------------------------------------- /ungoogled-chromium/0001-adjust-buffer-format-order.patch: -------------------------------------------------------------------------------- 1 | From 44a44adecbc97242371cf67f8bbd5553c95fa123 Mon Sep 17 00:00:00 2001 2 | From: Yaowei Zhou <yaowei.zhou@intel.com> 3 | Date: Wed, 18 Jan 2023 17:00:50 +0800 4 | Subject: [PATCH] Adjust the order of wayland drm and zwp dma buf in WaylandBufferFactory 5 | 6 | Adjust the order as buffer format implementation of zwp dma buffer from 7 | Mutter, which will cause inconsistent with gbm support format list of 8 | GPU process. 9 | 10 | Bug: N/A 11 | Change-Id: Ice63c52fbd6eff0a099c35c0943e24c1fd1a1d70 12 | --- 13 | 14 | diff --git a/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc b/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc 15 | index 2376d77..7d6c032e 100644 16 | --- a/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc 17 | +++ b/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc 18 | @@ -25,13 +25,13 @@ 19 | uint32_t planes_count, 20 | wl::OnRequestBufferCallback callback) const { 21 | DCHECK(SupportsDmabuf()); 22 | - if (wayland_zwp_dmabuf_) { 23 | + if (wayland_drm_) { 24 | + wayland_drm_->CreateBuffer(fd, size, strides, offsets, modifiers, format, 25 | + planes_count, std::move(callback)); 26 | + } else if (wayland_zwp_dmabuf_) { 27 | wayland_zwp_dmabuf_->CreateBuffer(fd, size, strides, offsets, modifiers, 28 | format, planes_count, 29 | std::move(callback)); 30 | - } else if (wayland_drm_) { 31 | - wayland_drm_->CreateBuffer(fd, size, strides, offsets, modifiers, format, 32 | - planes_count, std::move(callback)); 33 | } else { 34 | // This method must never be called if neither zwp_linux_dmabuf or wl_drm 35 | // are supported. 36 | @@ -52,10 +52,11 @@ 37 | wl::BufferFormatsWithModifiersMap 38 | WaylandBufferFactory::GetSupportedBufferFormats() const { 39 | #if defined(WAYLAND_GBM) 40 | - if (wayland_zwp_dmabuf_) 41 | - return wayland_zwp_dmabuf_->supported_buffer_formats(); 42 | - else if (wayland_drm_) 43 | + if (wayland_drm_) { 44 | return wayland_drm_->supported_buffer_formats(); 45 | + } else if (wayland_zwp_dmabuf_) { 46 | + return wayland_zwp_dmabuf_->supported_buffer_formats(); 47 | + } 48 | #endif 49 | return {}; 50 | } 51 | @@ -71,10 +72,11 @@ 52 | 53 | bool WaylandBufferFactory::CanCreateDmabufImmed() const { 54 | #if defined(WAYLAND_GBM) 55 | - if (wayland_zwp_dmabuf_) 56 | - return wayland_zwp_dmabuf_->CanCreateBufferImmed(); 57 | - else if (wayland_drm_) 58 | + if (wayland_drm_) { 59 | return wayland_drm_->CanCreateBufferImmed(); 60 | + } else if (wayland_zwp_dmabuf_) { 61 | + return wayland_zwp_dmabuf_->CanCreateBufferImmed(); 62 | + } 63 | #endif 64 | return false; 65 | } 66 | -------------------------------------------------------------------------------- /ungoogled-chromium/0001-enable-linux-unstable-deb-target.patch: -------------------------------------------------------------------------------- 1 | From 22fe045deac0551720d7292022f443b22703f336 Mon Sep 17 00:00:00 2001 2 | From: Yaowei Zhou <yaowei.zhou@intel.com> 3 | Date: Thu, 20 Apr 2023 14:37:26 +0800 4 | Subject: [PATCH] Enable "linux:unstable_deb" build target when using the chromium minigbm 5 | 6 | Bug: N/A 7 | Change-Id: Ic37059be0f0719895acdba756292aed71820feba 8 | --- 9 | 10 | diff --git a/third_party/minigbm/BUILD.gn b/third_party/minigbm/BUILD.gn 11 | index 739e278..50bf5d8 100644 12 | --- a/third_party/minigbm/BUILD.gn 13 | +++ b/third_party/minigbm/BUILD.gn 14 | @@ -58,7 +58,7 @@ 15 | } 16 | } 17 | 18 | - shared_library("minigbm") { 19 | + static_library("minigbm") { 20 | sources = [ 21 | "src/amdgpu.c", 22 | "src/dri.c", 23 | @@ -89,8 +89,8 @@ 24 | } 25 | 26 | # Clients need this to pick up the shared library correctly. 27 | - all_dependent_configs = 28 | - [ "//build/config/gcc:rpath_for_built_shared_libraries" ] 29 | + #all_dependent_configs = 30 | + # [ "//build/config/gcc:rpath_for_built_shared_libraries" ] 31 | } 32 | 33 | # This target is used for Chromecast build, which expects the resulting lib 34 | -------------------------------------------------------------------------------- /ungoogled-chromium/0001-ozone-wayland-implement-text_input_manager-fixes.patch: -------------------------------------------------------------------------------- 1 | 2 | ui/ozone/platform/wayland/host/zwp_text_input_wrapper.h 3 | 4 | # https://github.com/chromium/chromium/commit/de30ba3f21f824be05443d5820b988d226780d68 5 | Support offset of surrounding text in Lacros wayland client. 6 | 7 | # https://github.com/chromium/chromium/commit/71bba2b7ae8117fdf053563a864d6cff018d7e94 8 | Support large size surrounding text in Lacros. 9 | 10 | --- 11 | diff --git a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc 12 | index a3ce6e4..83f2c58 100644 13 | --- a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc 14 | +++ b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc 15 | @@ -147,6 +147,14 @@ void ZWPTextInputWrapperV3::SetSurroundingText( 16 | zwp_text_input_v3_commit(obj_.get()); 17 | } 18 | 19 | +bool ZWPTextInputWrapperV3::HasAdvancedSurroundingTextSupport() const { 20 | + return false; 21 | +} 22 | + 23 | +void ZWPTextInputWrapperV3::SetSurroundingTextOffsetUtf16( 24 | + uint32_t offset_utf16) { 25 | +} 26 | + 27 | void ZWPTextInputWrapperV3::ResetPendingState() { 28 | commit_string_.clear(); 29 | delete_surrounding_text_before_length_ = 0; 30 | diff --git a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h 31 | index 204d7e3..5d03a1d 100644 32 | --- a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h 33 | +++ b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h 34 | @@ -45,6 +45,8 @@ class ZWPTextInputWrapperV3 : public ZWPTextInputWrapper { 35 | void SetCursorRect(const gfx::Rect& rect) override; 36 | void SetSurroundingText(const std::string& text, 37 | const gfx::Range& selection_range) override; 38 | + bool HasAdvancedSurroundingTextSupport() const override; 39 | + void SetSurroundingTextOffsetUtf16(uint32_t offset_utf16) override; 40 | void SetContentType(TextInputType type, 41 | TextInputMode mode, 42 | uint32_t flags, 43 | -------------------------------------------------------------------------------- /ungoogled-chromium/0001-ozone-wayland-implement-text_input_manager_v3.patch: -------------------------------------------------------------------------------- 1 | From dba362808a97ced4f43635cbd73de6b06d156527 Mon Sep 17 00:00:00 2001 2 | From: Moon Sungjoon <sumoon@seoulsaram.org> 3 | Date: Wed, 26 Apr 2023 03:25:44 +0900 4 | Subject: [PATCH] ui/ozone/platform/wayland: Implement text_input_manager_v3 5 | 6 | Based on the original work of Lukas Lihotzki <lukas@lihotzki.de> in https://crrev.com/c/3015331 7 | 8 | Bug: 1227719 9 | Change-Id: Ib883c9087377c9f1a0dfacc45a27e3e67ccf042e 10 | --- 11 | 12 | diff --git a/AUTHORS b/AUTHORS 13 | index f275151..a43a528 100644 14 | --- a/AUTHORS 15 | +++ b/AUTHORS 16 | @@ -942,6 +942,7 @@ Mohit Bhalla <bhallam@amazon.com> 17 | Moiseanu Rares-Marian <moiseanurares@gmail.com> 18 | Momoka Yamamoto <momoka.my6@gmail.com> 19 | Momoko Hattori <momohatt10@gmail.com> 20 | +Moon Sungjoon <sumoon@seoulsaram.org> 21 | Mostafa Sedaghat joo <mostafa.sedaghat@gmail.com> 22 | Mrunal Kapade <mrunal.kapade@intel.com> 23 | Munira Tursunova <moonira@google.com> 24 | diff --git a/third_party/wayland-protocols/BUILD.gn b/third_party/wayland-protocols/BUILD.gn 25 | index c84ec11..dffa0aa 100644 26 | --- a/third_party/wayland-protocols/BUILD.gn 27 | +++ b/third_party/wayland-protocols/BUILD.gn 28 | @@ -141,7 +141,10 @@ wayland_protocol("text_input_extension_protocol") { 29 | } 30 | 31 | wayland_protocol("text_input_protocol") { 32 | - sources = [ "src/unstable/text-input/text-input-unstable-v1.xml" ] 33 | + sources = [ 34 | + "src/unstable/text-input/text-input-unstable-v1.xml", 35 | + "src/unstable/text-input/text-input-unstable-v3.xml", 36 | + ] 37 | } 38 | 39 | wayland_protocol("touchpad_haptics_protocol") { 40 | diff --git a/ui/ozone/platform/wayland/BUILD.gn b/ui/ozone/platform/wayland/BUILD.gn 41 | index 31314f3..c22888c 100644 42 | --- a/ui/ozone/platform/wayland/BUILD.gn 43 | +++ b/ui/ozone/platform/wayland/BUILD.gn 44 | @@ -221,6 +221,8 @@ source_set("wayland") { 45 | "host/zwp_text_input_wrapper.h", 46 | "host/zwp_text_input_wrapper_v1.cc", 47 | "host/zwp_text_input_wrapper_v1.h", 48 | + "host/zwp_text_input_wrapper_v3.cc", 49 | + "host/zwp_text_input_wrapper_v3.h", 50 | "ozone_platform_wayland.cc", 51 | "ozone_platform_wayland.h", 52 | "wayland_utils.cc", 53 | diff --git a/ui/ozone/platform/wayland/common/wayland_object.cc b/ui/ozone/platform/wayland/common/wayland_object.cc 54 | index bcc48aa..009667b 100644 55 | --- a/ui/ozone/platform/wayland/common/wayland_object.cc 56 | +++ b/ui/ozone/platform/wayland/common/wayland_object.cc 57 | @@ -30,6 +30,7 @@ 58 | #include <surface-augmenter-client-protocol.h> 59 | #include <text-input-extension-unstable-v1-client-protocol.h> 60 | #include <text-input-unstable-v1-client-protocol.h> 61 | +#include <text-input-unstable-v3-client-protocol.h> 62 | #include <touchpad-haptics-unstable-v1-client-protocol.h> 63 | #include <viewporter-client-protocol.h> 64 | #include <wayland-client-core.h> 65 | @@ -287,6 +288,8 @@ IMPLEMENT_WAYLAND_OBJECT_TRAITS(zwp_relative_pointer_manager_v1) 66 | IMPLEMENT_WAYLAND_OBJECT_TRAITS(zwp_relative_pointer_v1) 67 | IMPLEMENT_WAYLAND_OBJECT_TRAITS(zwp_text_input_manager_v1) 68 | IMPLEMENT_WAYLAND_OBJECT_TRAITS(zwp_text_input_v1) 69 | +IMPLEMENT_WAYLAND_OBJECT_TRAITS(zwp_text_input_manager_v3) 70 | +IMPLEMENT_WAYLAND_OBJECT_TRAITS(zwp_text_input_v3) 71 | IMPLEMENT_WAYLAND_OBJECT_TRAITS(zxdg_decoration_manager_v1) 72 | IMPLEMENT_WAYLAND_OBJECT_TRAITS(zxdg_exporter_v1) 73 | IMPLEMENT_WAYLAND_OBJECT_TRAITS(zxdg_exported_v1) 74 | diff --git a/ui/ozone/platform/wayland/common/wayland_object.h b/ui/ozone/platform/wayland/common/wayland_object.h 75 | index c84c084..0817e78 100644 76 | --- a/ui/ozone/platform/wayland/common/wayland_object.h 77 | +++ b/ui/ozone/platform/wayland/common/wayland_object.h 78 | @@ -202,6 +202,8 @@ DECLARE_WAYLAND_OBJECT_TRAITS(zwp_relative_pointer_manager_v1) 79 | DECLARE_WAYLAND_OBJECT_TRAITS(zwp_relative_pointer_v1) 80 | DECLARE_WAYLAND_OBJECT_TRAITS(zwp_text_input_manager_v1) 81 | DECLARE_WAYLAND_OBJECT_TRAITS(zwp_text_input_v1) 82 | +DECLARE_WAYLAND_OBJECT_TRAITS(zwp_text_input_manager_v3) 83 | +DECLARE_WAYLAND_OBJECT_TRAITS(zwp_text_input_v3) 84 | DECLARE_WAYLAND_OBJECT_TRAITS(zxdg_decoration_manager_v1) 85 | DECLARE_WAYLAND_OBJECT_TRAITS(zxdg_exporter_v1) 86 | DECLARE_WAYLAND_OBJECT_TRAITS(zxdg_exported_v1) 87 | diff --git a/ui/ozone/platform/wayland/host/wayland_connection.cc b/ui/ozone/platform/wayland/host/wayland_connection.cc 88 | index ad3bbd6..995b1e2 100644 89 | --- a/ui/ozone/platform/wayland/host/wayland_connection.cc 90 | +++ b/ui/ozone/platform/wayland/host/wayland_connection.cc 91 | @@ -647,6 +647,14 @@ void WaylandConnection::HandleGlobal(wl_registry* registry, 92 | strcmp(interface, "zcr_text_input_extension_v1") == 0) { 93 | text_input_extension_v1_ = wl::Bind<zcr_text_input_extension_v1>( 94 | registry, name, std::min(version, kMaxTextInputExtensionVersion)); 95 | + } else if (!text_input_manager_v3_ && 96 | + strcmp(interface, "zwp_text_input_manager_v3") == 0) { 97 | + text_input_manager_v3_ = wl::Bind<zwp_text_input_manager_v3>( 98 | + registry, name, std::min(version, kMaxTextInputManagerVersion)); 99 | + if (!text_input_manager_v3_) { 100 | + LOG(ERROR) << "Failed to bind to zwp_text_input_manager_v3 global"; 101 | + return; 102 | + } 103 | } else if (!xdg_decoration_manager_ && 104 | strcmp(interface, "zxdg_decoration_manager_v1") == 0) { 105 | xdg_decoration_manager_ = wl::Bind<zxdg_decoration_manager_v1>( 106 | diff --git a/ui/ozone/platform/wayland/host/wayland_connection.h b/ui/ozone/platform/wayland/host/wayland_connection.h 107 | index 6659bc5..f9739ea 100644 108 | --- a/ui/ozone/platform/wayland/host/wayland_connection.h 109 | +++ b/ui/ozone/platform/wayland/host/wayland_connection.h 110 | @@ -149,6 +149,9 @@ class WaylandConnection { 111 | zcr_text_input_extension_v1* text_input_extension_v1() const { 112 | return text_input_extension_v1_.get(); 113 | } 114 | + zwp_text_input_manager_v3* text_input_manager_v3() const { 115 | + return text_input_manager_v3_.get(); 116 | + } 117 | zwp_linux_explicit_synchronization_v1* linux_explicit_synchronization_v1() 118 | const { 119 | return linux_explicit_synchronization_.get(); 120 | @@ -447,6 +450,7 @@ class WaylandConnection { 121 | wl::Object<zcr_stylus_v2> zcr_stylus_v2_; 122 | wl::Object<zwp_text_input_manager_v1> text_input_manager_v1_; 123 | wl::Object<zcr_text_input_extension_v1> text_input_extension_v1_; 124 | + wl::Object<zwp_text_input_manager_v3> text_input_manager_v3_; 125 | wl::Object<zwp_linux_explicit_synchronization_v1> 126 | linux_explicit_synchronization_; 127 | wl::Object<zxdg_decoration_manager_v1> xdg_decoration_manager_; 128 | diff --git a/ui/ozone/platform/wayland/host/wayland_input_method_context.cc b/ui/ozone/platform/wayland/host/wayland_input_method_context.cc 129 | index caa5074..c2e1798 100644 130 | --- a/ui/ozone/platform/wayland/host/wayland_input_method_context.cc 131 | +++ b/ui/ozone/platform/wayland/host/wayland_input_method_context.cc 132 | @@ -35,6 +35,7 @@ 133 | #include "ui/ozone/platform/wayland/host/wayland_seat.h" 134 | #include "ui/ozone/platform/wayland/host/wayland_window.h" 135 | #include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.h" 136 | +#include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h" 137 | #include "ui/ozone/public/ozone_switches.h" 138 | 139 | #if BUILDFLAG(USE_XKBCOMMON) 140 | @@ -285,11 +286,18 @@ void WaylandInputMethodContext::Init(bool initialize_for_testing) { 141 | // If text input instance is not created then all ime context operations 142 | // are noop. This option is because in some environments someone might not 143 | // want to enable ime/virtual keyboard even if it's available. 144 | - if (use_ozone_wayland_vkb && !text_input_ && 145 | - connection_->text_input_manager_v1()) { 146 | + if (!use_ozone_wayland_vkb || text_input_) 147 | + return; 148 | + 149 | + // Prefer text_input_manager_v1 because it is more powerful. 150 | + // It supports preedit styling for example. 151 | + if (connection_->text_input_manager_v1()) { 152 | text_input_ = std::make_unique<ZWPTextInputWrapperV1>( 153 | connection_, this, connection_->text_input_manager_v1(), 154 | connection_->text_input_extension_v1()); 155 | + } else if (connection_->text_input_manager_v3()) { 156 | + text_input_ = std::make_unique<ZWPTextInputWrapperV3>( 157 | + connection_, this, connection_->text_input_manager_v3()); 158 | } 159 | } 160 | 161 | @@ -657,6 +665,11 @@ void WaylandInputMethodContext::OnCursorPosition(int32_t index, 162 | 163 | void WaylandInputMethodContext::OnDeleteSurroundingText(int32_t index, 164 | uint32_t length) { 165 | + // Never fail if length is 0. 166 | + if (length == 0) { 167 | + return; 168 | + } 169 | + 170 | const auto& [surrounding_text, utf16_offset, selection, unsused_composition] = 171 | surrounding_text_tracker_.predicted_state(); 172 | DCHECK(selection.IsValid()); 173 | diff --git a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc 174 | new file mode 100644 175 | index 0000000..a3ce6e4 176 | --- /dev/null 177 | +++ b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.cc 178 | @@ -0,0 +1,239 @@ 179 | +// Copyright 2023 The Chromium Authors 180 | +// Use of this source code is governed by a BSD-style license that can be 181 | +// found in the LICENSE file. 182 | + 183 | +#include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h" 184 | + 185 | +#include <string> 186 | +#include <utility> 187 | + 188 | +#include "base/logging.h" 189 | +#include "base/memory/ptr_util.h" 190 | +#include "ui/base/wayland/wayland_client_input_types.h" 191 | +#include "ui/gfx/range/range.h" 192 | +#include "ui/ozone/platform/wayland/host/wayland_connection.h" 193 | +#include "ui/ozone/platform/wayland/host/wayland_seat.h" 194 | +#include "ui/ozone/platform/wayland/host/wayland_window.h" 195 | + 196 | +namespace ui { 197 | + 198 | +// Converts Chrome's TextInputType into wayland's content_purpose. 199 | +// Some of TextInputType values do not have clearly corresponding wayland value, 200 | +// and they fallback to closer type. 201 | +uint32_t InputTypeToContentPurpose(TextInputType input_type) { 202 | + switch (input_type) { 203 | + case TEXT_INPUT_TYPE_NONE: 204 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; 205 | + case TEXT_INPUT_TYPE_TEXT: 206 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; 207 | + case TEXT_INPUT_TYPE_PASSWORD: 208 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_PASSWORD; 209 | + case TEXT_INPUT_TYPE_SEARCH: 210 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; 211 | + case TEXT_INPUT_TYPE_EMAIL: 212 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_EMAIL; 213 | + case TEXT_INPUT_TYPE_NUMBER: 214 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NUMBER; 215 | + case TEXT_INPUT_TYPE_TELEPHONE: 216 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_PHONE; 217 | + case TEXT_INPUT_TYPE_URL: 218 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_URL; 219 | + case TEXT_INPUT_TYPE_DATE: 220 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATE; 221 | + case TEXT_INPUT_TYPE_DATE_TIME: 222 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATETIME; 223 | + case TEXT_INPUT_TYPE_DATE_TIME_LOCAL: 224 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATETIME; 225 | + case TEXT_INPUT_TYPE_MONTH: 226 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATE; 227 | + case TEXT_INPUT_TYPE_TIME: 228 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_TIME; 229 | + case TEXT_INPUT_TYPE_WEEK: 230 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATE; 231 | + case TEXT_INPUT_TYPE_TEXT_AREA: 232 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; 233 | + case TEXT_INPUT_TYPE_CONTENT_EDITABLE: 234 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; 235 | + case TEXT_INPUT_TYPE_DATE_TIME_FIELD: 236 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATETIME; 237 | + case TEXT_INPUT_TYPE_NULL: 238 | + return ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; 239 | + } 240 | +} 241 | + 242 | +// Converts Chrome's TextInputType into wayland's content_hint. 243 | +uint32_t InputFlagsToContentHint(int input_flags) { 244 | + uint32_t hint = 0; 245 | + if (input_flags & TEXT_INPUT_FLAG_AUTOCOMPLETE_ON) 246 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_COMPLETION; 247 | + if (input_flags & TEXT_INPUT_FLAG_SPELLCHECK_ON) 248 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_SPELLCHECK; 249 | + // No good match. Fallback to AUTO_CORRECTION. 250 | + if (input_flags & TEXT_INPUT_FLAG_AUTOCORRECT_ON) 251 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_SPELLCHECK; 252 | + if (input_flags & TEXT_INPUT_FLAG_AUTOCAPITALIZE_CHARACTERS) 253 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_AUTO_CAPITALIZATION; 254 | + if (input_flags & TEXT_INPUT_FLAG_AUTOCAPITALIZE_WORDS) 255 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_AUTO_CAPITALIZATION; 256 | + if (input_flags & TEXT_INPUT_FLAG_AUTOCAPITALIZE_SENTENCES) 257 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_AUTO_CAPITALIZATION; 258 | + if (input_flags & TEXT_INPUT_FLAG_HAS_BEEN_PASSWORD) 259 | + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_SENSITIVE_DATA; 260 | + return hint; 261 | +} 262 | + 263 | +ZWPTextInputWrapperV3::ZWPTextInputWrapperV3( 264 | + WaylandConnection* connection, 265 | + ZWPTextInputWrapperClient* client, 266 | + zwp_text_input_manager_v3* text_input_manager) 267 | + : connection_(connection), client_(client) { 268 | + static const zwp_text_input_v3_listener text_input_listener = { 269 | + &OnEnter, // text_input_enter, 270 | + &OnLeave, // text_input_leave, 271 | + &OnPreeditString, // text_input_preedit_string, 272 | + &OnCommitString, // text_input_commit_string, 273 | + &OnDeleteSurroundingText, // text_input_delete_surrounding_text, 274 | + &OnDone, // text_input_done, 275 | + }; 276 | + 277 | + DCHECK(text_input_manager); 278 | + auto* text_input = zwp_text_input_manager_v3_get_text_input( 279 | + text_input_manager, connection_->seat()->wl_object()); 280 | + obj_ = wl::Object<zwp_text_input_v3>(text_input); 281 | + 282 | + zwp_text_input_v3_add_listener(text_input, &text_input_listener, this); 283 | +} 284 | + 285 | +ZWPTextInputWrapperV3::~ZWPTextInputWrapperV3() = default; 286 | + 287 | +void ZWPTextInputWrapperV3::Reset() { 288 | + NOTIMPLEMENTED_LOG_ONCE(); 289 | +} 290 | + 291 | +void ZWPTextInputWrapperV3::Activate(WaylandWindow* window, 292 | + TextInputClient::FocusReason reason) { 293 | + zwp_text_input_v3_enable(obj_.get()); 294 | + zwp_text_input_v3_commit(obj_.get()); 295 | +} 296 | + 297 | +void ZWPTextInputWrapperV3::Deactivate() { 298 | + zwp_text_input_v3_disable(obj_.get()); 299 | + zwp_text_input_v3_commit(obj_.get()); 300 | +} 301 | + 302 | +void ZWPTextInputWrapperV3::ShowInputPanel() { 303 | + // Not directly supported in zwp_text_input_v3 304 | + // Enable again to show the screen keyboard in GNOME: 305 | + // https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1543#note_1051704 306 | + zwp_text_input_v3_enable(obj_.get()); 307 | + zwp_text_input_v3_commit(obj_.get()); 308 | +} 309 | + 310 | +void ZWPTextInputWrapperV3::HideInputPanel() { 311 | + // unsupported in zwp_text_input_v3 312 | +} 313 | + 314 | +void ZWPTextInputWrapperV3::SetCursorRect(const gfx::Rect& rect) { 315 | + zwp_text_input_v3_set_cursor_rectangle(obj_.get(), rect.x(), rect.y(), 316 | + rect.width(), rect.height()); 317 | + zwp_text_input_v3_commit(obj_.get()); 318 | +} 319 | + 320 | +void ZWPTextInputWrapperV3::SetSurroundingText( 321 | + const std::string& text, 322 | + const gfx::Range& selection_range) { 323 | + zwp_text_input_v3_set_surrounding_text( 324 | + obj_.get(), text.c_str(), selection_range.start(), selection_range.end()); 325 | + zwp_text_input_v3_commit(obj_.get()); 326 | +} 327 | + 328 | +void ZWPTextInputWrapperV3::ResetPendingState() { 329 | + commit_string_.clear(); 330 | + delete_surrounding_text_before_length_ = 0; 331 | + delete_surrounding_text_after_length_ = 0; 332 | + preedit_string_.clear(); 333 | + preedit_string_cursor_begin_ = 0; 334 | + preedit_string_cursor_end_ = 0; 335 | +} 336 | + 337 | +void ZWPTextInputWrapperV3::SetContentType(ui::TextInputType type, 338 | + ui::TextInputMode mode, 339 | + uint32_t flags, 340 | + bool should_do_learning, 341 | + bool can_compose_inline) { 342 | + // V3 doesn't have extension 343 | + uint32_t content_purpose = InputTypeToContentPurpose(type); 344 | + uint32_t content_hint = InputFlagsToContentHint(flags); 345 | + static_cast<void>(flags); 346 | + static_cast<void>(should_do_learning); 347 | + zwp_text_input_v3_set_content_type(obj_.get(), content_hint, content_purpose); 348 | +} 349 | + 350 | +void ZWPTextInputWrapperV3::OnEnter(void* data, 351 | + struct zwp_text_input_v3* text_input, 352 | + struct wl_surface* surface) { 353 | + NOTIMPLEMENTED_LOG_ONCE(); 354 | +} 355 | + 356 | +void ZWPTextInputWrapperV3::OnLeave(void* data, 357 | + struct zwp_text_input_v3* text_input, 358 | + struct wl_surface* surface) { 359 | + NOTIMPLEMENTED_LOG_ONCE(); 360 | +} 361 | + 362 | +void ZWPTextInputWrapperV3::OnPreeditString( 363 | + void* data, 364 | + struct zwp_text_input_v3* text_input, 365 | + const char* text, 366 | + int32_t cursor_begin, 367 | + int32_t cursor_end) { 368 | + auto* wti = static_cast<ZWPTextInputWrapperV3*>(data); 369 | + wti->preedit_string_ = text ? text : ""; 370 | + wti->preedit_string_cursor_begin_ = cursor_begin; 371 | + wti->preedit_string_cursor_end_ = cursor_end; 372 | +} 373 | + 374 | +void ZWPTextInputWrapperV3::OnCommitString(void* data, 375 | + struct zwp_text_input_v3* text_input, 376 | + const char* text) { 377 | + auto* wti = static_cast<ZWPTextInputWrapperV3*>(data); 378 | + wti->commit_string_ = text ? text : ""; 379 | +} 380 | + 381 | +void ZWPTextInputWrapperV3::OnDeleteSurroundingText( 382 | + void* data, 383 | + struct zwp_text_input_v3* text_input, 384 | + uint32_t before_length, 385 | + uint32_t after_length) { 386 | + auto* wti = static_cast<ZWPTextInputWrapperV3*>(data); 387 | + wti->delete_surrounding_text_before_length_ = before_length; 388 | + wti->delete_surrounding_text_after_length_ = after_length; 389 | +} 390 | + 391 | +void ZWPTextInputWrapperV3::OnDone(void* data, 392 | + struct zwp_text_input_v3* text_input, 393 | + uint32_t serial) { 394 | + auto* wti = static_cast<ZWPTextInputWrapperV3*>(data); 395 | + wti->client_->OnPreeditString("", {}, 0); 396 | + wti->client_->OnDeleteSurroundingText( 397 | + -int32_t(wti->delete_surrounding_text_before_length_), 398 | + int32_t(wti->delete_surrounding_text_before_length_) + 399 | + int32_t(wti->delete_surrounding_text_after_length_)); 400 | + wti->client_->OnCommitString(wti->commit_string_.c_str()); 401 | + wti->client_->OnPreeditString(wti->preedit_string_.c_str(), {}, 402 | + wti->preedit_string_cursor_begin_); 403 | + wti->ResetPendingState(); 404 | +} 405 | + 406 | +void ZWPTextInputWrapperV3::SetGrammarFragmentAtCursor( 407 | + const ui::GrammarFragment& fragment) { 408 | + NOTIMPLEMENTED_LOG_ONCE(); 409 | +} 410 | + 411 | +void ZWPTextInputWrapperV3::SetAutocorrectInfo( 412 | + const gfx::Range& autocorrect_range, 413 | + const gfx::Rect& autocorrect_bounds) { 414 | + NOTIMPLEMENTED_LOG_ONCE(); 415 | +} 416 | + 417 | +} // namespace ui 418 | diff --git a/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h 419 | new file mode 100644 420 | index 0000000..204d7e3 421 | --- /dev/null 422 | +++ b/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v3.h 423 | @@ -0,0 +1,98 @@ 424 | +// Copyright 2023 The Chromium Authors 425 | +// Use of this source code is governed by a BSD-style license that can be 426 | +// found in the LICENSE file. 427 | + 428 | +#ifndef UI_OZONE_PLATFORM_WAYLAND_HOST_ZWP_TEXT_INPUT_WRAPPER_V3_H_ 429 | +#define UI_OZONE_PLATFORM_WAYLAND_HOST_ZWP_TEXT_INPUT_WRAPPER_V3_H_ 430 | + 431 | +#include <cstdint> 432 | +#include <string> 433 | + 434 | +#include <text-input-unstable-v3-client-protocol.h> 435 | + 436 | +#include "base/memory/raw_ptr.h" 437 | +#include "ui/ozone/platform/wayland/common/wayland_object.h" 438 | +#include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper.h" 439 | + 440 | +namespace gfx { 441 | +class Rect; 442 | +} 443 | + 444 | +namespace ui { 445 | + 446 | +class WaylandConnection; 447 | +class WaylandWindow; 448 | + 449 | +// Text input wrapper for text-input-unstable-v3 450 | +class ZWPTextInputWrapperV3 : public ZWPTextInputWrapper { 451 | + public: 452 | + ZWPTextInputWrapperV3(WaylandConnection* connection, 453 | + ZWPTextInputWrapperClient* client, 454 | + zwp_text_input_manager_v3* text_input_manager); 455 | + ZWPTextInputWrapperV3(const ZWPTextInputWrapperV3&) = delete; 456 | + ZWPTextInputWrapperV3& operator=(const ZWPTextInputWrapperV3&) = delete; 457 | + ~ZWPTextInputWrapperV3() override; 458 | + 459 | + void Reset() override; 460 | + 461 | + void Activate(WaylandWindow* window, 462 | + ui::TextInputClient::FocusReason reason) override; 463 | + void Deactivate() override; 464 | + 465 | + void ShowInputPanel() override; 466 | + void HideInputPanel() override; 467 | + 468 | + void SetCursorRect(const gfx::Rect& rect) override; 469 | + void SetSurroundingText(const std::string& text, 470 | + const gfx::Range& selection_range) override; 471 | + void SetContentType(TextInputType type, 472 | + TextInputMode mode, 473 | + uint32_t flags, 474 | + bool should_do_learning, 475 | + bool can_compose_inline) override; 476 | + void SetGrammarFragmentAtCursor(const ui::GrammarFragment& fragment) override; 477 | + void SetAutocorrectInfo(const gfx::Range& autocorrect_range, 478 | + const gfx::Rect& autocorrect_bounds) override; 479 | + 480 | + private: 481 | + void ResetPendingState(); 482 | + 483 | + // zwp_text_input_v3_listener 484 | + static void OnEnter(void* data, 485 | + struct zwp_text_input_v3* text_input, 486 | + struct wl_surface* surface); 487 | + static void OnLeave(void* data, 488 | + struct zwp_text_input_v3* text_input, 489 | + struct wl_surface* surface); 490 | + static void OnPreeditString(void* data, 491 | + struct zwp_text_input_v3* text_input, 492 | + const char* text, 493 | + int32_t cursor_begin, 494 | + int32_t cursor_end); 495 | + static void OnCommitString(void* data, 496 | + struct zwp_text_input_v3* text_input, 497 | + const char* text); 498 | + static void OnDeleteSurroundingText(void* data, 499 | + struct zwp_text_input_v3* text_input, 500 | + uint32_t before_length, 501 | + uint32_t after_length); 502 | + static void OnDone(void* data, 503 | + struct zwp_text_input_v3* text_input, 504 | + uint32_t serial); 505 | + 506 | + const raw_ptr<WaylandConnection> connection_; 507 | + wl::Object<zwp_text_input_v3> obj_; 508 | + const raw_ptr<ZWPTextInputWrapperClient> client_; 509 | + 510 | + // pending state until OnDone 511 | + std::string commit_string_; 512 | + uint32_t delete_surrounding_text_before_length_ = 0; 513 | + uint32_t delete_surrounding_text_after_length_ = 0; 514 | + std::string preedit_string_; // preedit string of pending state 515 | + int32_t preedit_string_cursor_begin_ = 0; 516 | + int32_t preedit_string_cursor_end_ = 0; 517 | +}; 518 | + 519 | +} // namespace ui 520 | + 521 | +#endif // UI_OZONE_PLATFORM_WAYLAND_HOST_ZWP_TEXT_INPUT_WRAPPER_V3_H_ 522 | -------------------------------------------------------------------------------- /ungoogled-chromium/0001-vaapi-flag-ozone-wayland.patch: -------------------------------------------------------------------------------- 1 | From 12724af6284195381377e074cc7f7c2fbc6cb05c Mon Sep 17 00:00:00 2001 2 | From: Yaowei Zhou <yaowei.zhou@intel.com> 3 | Date: Tue, 30 May 2023 12:45:27 +0800 4 | Subject: [PATCH] Enable VA-API flag on ozone wayland 5 | 6 | Bug: POC 7 | Change-Id: I4af3c2c4925958bbca86a25a4d9c66fd8922c806 8 | --- 9 | 10 | diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc 11 | index 1de5c418..9f2f1f5 100644 12 | --- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc 13 | +++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc 14 | @@ -311,6 +311,9 @@ 15 | // arbitrary position. 16 | properties->supports_global_screen_coordinates = 17 | kDefaultScreenCoordinateEnabled; 18 | + 19 | + properties->supports_vaapi = true; 20 | + 21 | initialised = true; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /ungoogled-chromium/PKGBUILD: -------------------------------------------------------------------------------- 1 | # shellcheck disable=SC2034,SC2154,SC2164 2 | 3 | # Maintainer: Seppia <seppia@seppio.fish> 4 | # Maintainer: JustKidding <jk@vin.ovh> 5 | 6 | # Based on extra/chromium, with ungoogled-chromium patches 7 | 8 | # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> 9 | # Contributor: Pierre Schmitz <pierre@archlinux.de> 10 | # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> 11 | # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> 12 | 13 | pkgname=ungoogled-chromium 14 | pkgver=126.0.6478.126 15 | pkgrel=1 16 | _launcher_ver=8 17 | _manual_clone=0 18 | _system_clang=1 19 | pkgdesc="A lightweight approach to removing Google web service dependency" 20 | arch=('x86_64') 21 | url="https://github.com/ungoogled-software/ungoogled-chromium" 22 | license=('BSD-3-Clause') 23 | depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' 24 | 'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva' 25 | 'libffi' 'desktop-file-utils' 'hicolor-icon-theme') 26 | makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire' 27 | 'rust' 'qt5-base' 'qt6-base' 'java-runtime-headless' 'git') 28 | optdepends=('pipewire: WebRTC desktop sharing under Wayland' 29 | 'kdialog: support for native dialogs in Plasma' 30 | 'gtk4: for --gtk-version=4 (GTK4 IME might work better on Wayland)' 31 | 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' 32 | 'kwallet: support for storing passwords in KWallet on Plasma') 33 | options=('!lto') # Chromium adds its own flags for ThinLTO 34 | source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz 35 | https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz 36 | https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${pkgver%%.*}/chromium-patches-${pkgver%%.*}.tar.bz2 37 | allow-ANGLEImplementation-kVulkan.patch 38 | drop-flag-unsupported-by-clang17.patch 39 | compiler-rt-adjust-paths.patch 40 | use-oauth2-client-switches-as-default.patch) 41 | sha256sums=('5d5206637e659f03e006cd8b6b269c49c0c2c697d10517e14dbcea851831e143' 42 | '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' 43 | 'daf0df74d2601c35fd66a746942d9ca3fc521ede92312f85af51d94c399fd6e0' 44 | '8f81059d79040ec598b5fb077808ec69d26d6c9cbebf9c4f4ea48b388a2596c5' 45 | '028acc97299cec5d1ed9f456bbdc462807fa491277d266db2aa1d405d3cd753d' 46 | 'b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961' 47 | 'a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6') 48 | 49 | if (( _manual_clone )); then 50 | source[0]=fetch-chromium-release 51 | makedepends+=('python-httplib2' 'python-pyparsing' 'python-six') 52 | fi 53 | 54 | provides=("chromium=${pkgver}" "chromedriver=${pkgver}") 55 | conflicts=('chromium' 'chromedriver') 56 | _uc_usr=ungoogled-software 57 | _uc_ver=$pkgver-1 58 | optdepends=("${optdepends[@]}" 59 | 'chromium-extension-web-store: Web Store Functionality') 60 | source=("${source[@]}" 61 | "$pkgname-$_uc_ver.tar.gz::https://github.com/$_uc_usr/ungoogled-chromium/archive/$_uc_ver.tar.gz" 62 | ninja-out-of-order-generation-fix.patch 63 | 0001-vaapi-flag-ozone-wayland.patch 64 | 0001-adjust-buffer-format-order.patch 65 | 0001-enable-linux-unstable-deb-target.patch 66 | 0001-ozone-wayland-implement-text_input_manager_v3.patch 67 | 0001-ozone-wayland-implement-text_input_manager-fixes.patch) 68 | sha256sums=("${sha256sums[@]}" 69 | 'b901f4a6a0401facb6bbe6645eac62f4af902f6885e27d35cc354c49ebe191b8' 70 | '813e6a1209ab72e4ab34f5f062412087e9664189d7b8f1dc1d0bb9481c574c45' 71 | '9a5594293616e1390462af1f50276ee29fd6075ffab0e3f944f6346cb2eb8aec' 72 | '8ba5c67b7eb6cacd2dbbc29e6766169f0fca3bbb07779b1a0a76c913f17d343f' 73 | '2a44756404e13c97d000cc0d859604d6848163998ea2f838b3b9bb2c840967e3' 74 | 'd9974ddb50777be428fd0fa1e01ffe4b587065ba6adefea33678e1b3e25d1285' 75 | 'a2da75d0c20529f2d635050e0662941c0820264ea9371eb900b9d90b5968fa6a') 76 | 77 | # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py 78 | # Keys are the names in the above script; values are the dependencies in Arch 79 | declare -gA _system_libs=( 80 | [brotli]=brotli 81 | [dav1d]=dav1d 82 | #[ffmpeg]=ffmpeg # YouTube playback stopped working in Chromium 120 83 | [flac]=flac 84 | [fontconfig]=fontconfig 85 | [freetype]=freetype2 86 | [harfbuzz-ng]=harfbuzz 87 | [icu]=icu 88 | #[jsoncpp]=jsoncpp # needs libstdc++ 89 | #[libaom]=aom 90 | #[libavif]=libavif # needs https://github.com/AOMediaCodec/libavif/commit/5410b23f76 91 | [libdrm]= 92 | [libjpeg]=libjpeg 93 | [libpng]=libpng 94 | #[libvpx]=libvpx 95 | [libwebp]=libwebp 96 | [libxml]=libxml2 97 | [libxslt]=libxslt 98 | [opus]=opus 99 | #[re2]=re2 # needs libstdc++ 100 | #[snappy]=snappy # needs libstdc++ 101 | #[woff2]=woff2 # needs libstdc++ 102 | [zlib]=minizip 103 | ) 104 | _unwanted_bundled_libs=( 105 | $(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/') 106 | ) 107 | depends+=(${_system_libs[@]}) 108 | 109 | # Google API keys (see https://www.chromium.org/developers/how-tos/api-keys) 110 | # Note: These are for Arch Linux use ONLY. For your own distribution, please 111 | # get your own set of keys. 112 | # 113 | # Starting with Chromium 89 (2021-03-02) the OAuth2 credentials have been left 114 | # out: https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ 115 | _google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM 116 | 117 | prepare() { 118 | if (( _manual_clone )); then 119 | ./fetch-chromium-release $pkgver 120 | fi 121 | cd chromium-$pkgver 122 | 123 | # Allow building against system libraries in official builds 124 | sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ 125 | tools/generate_shim_headers/generate_shim_headers.py 126 | 127 | # https://crbug.com/893950 128 | sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \ 129 | -e '1i #include <cstdlib>' \ 130 | third_party/blink/renderer/core/xml/*.cc \ 131 | third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ 132 | third_party/libxml/chromium/*.cc \ 133 | third_party/maldoca/src/maldoca/ole/oss_utils.h 134 | 135 | # Use the --oauth2-client-id= and --oauth2-client-secret= switches for 136 | # setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at 137 | # runtime -- this allows signing into Chromium without baked-in values 138 | patch -Np1 -i ../use-oauth2-client-switches-as-default.patch 139 | 140 | # Upstream fixes 141 | patch -Np1 -i ../allow-ANGLEImplementation-kVulkan.patch 142 | 143 | # Drop compiler flag that needs newer clang 144 | patch -Np1 -i ../drop-flag-unsupported-by-clang17.patch 145 | 146 | # Allow libclang_rt.builtins from compiler-rt >= 16 to be used 147 | patch -Np1 -i ../compiler-rt-adjust-paths.patch 148 | 149 | # Fixes for building with libstdc++ instead of libc++ 150 | patch -Np1 -i ../chromium-patches-*/chromium-117-material-color-include.patch 151 | 152 | # Custom Patches 153 | sed -i '/^bool IsHevcProfileSupported(const VideoType& type) {$/{s++bool IsHevcProfileSupported(const VideoType\& type) { return true;+;h};${x;/./{x;q0};x;q1}' \ 154 | media/base/supported_types.cc 155 | 156 | # Implement text_input_manager_v3 157 | # https://chromium-review.googlesource.com/c/chromium/src/+/3750452 158 | #patch -Np1 -i ../0001-ozone-wayland-implement-text_input_manager_v3.patch 159 | #patch -Np1 -i ../0001-ozone-wayland-implement-text_input_manager-fixes.patch 160 | #patch -Np1 -i ../ninja-out-of-order-generation-fix.patch 161 | 162 | # Enable VAAPI on Wayland 163 | # https://discourse.ubuntu.com/t/chromium-hardware-accelerated-build-for-intel-based-platforms-available-for-beta-testing/35625 164 | # https://git.launchpad.net/~chromium-team/chromium-browser/+git/snap-from-source/ 165 | # patch -Np1 -i ../0001-enable-linux-unstable-deb-target.patch 166 | #patch -Np1 -i ../0001-adjust-buffer-format-order.patch 167 | #patch -Np1 -i ../0001-vaapi-flag-ozone-wayland.patch 168 | 169 | # Link to system tools required by the build 170 | mkdir -p third_party/node/linux/node-linux-x64/bin 171 | ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ 172 | ln -s /usr/bin/java third_party/jdk/current/bin/ 173 | 174 | if (( !_system_clang )); then 175 | # Use prebuilt rust as system rust cannot be used due to the error: 176 | # error: the option `Z` is only accepted on the nightly compiler 177 | ./tools/rust/update_rust.py 178 | 179 | # To link to rust libraries we need to compile with prebuilt clang 180 | ./tools/clang/scripts/update.py 181 | fi 182 | 183 | # Ungoogled Chromium changes 184 | _ungoogled_repo="$srcdir/$pkgname-$_uc_ver" 185 | _utils="${_ungoogled_repo}/utils" 186 | msg2 'Pruning binaries' 187 | python "$_utils/prune_binaries.py" ./ "$_ungoogled_repo/pruning.list" 188 | msg2 'Applying patches' 189 | python "$_utils/patches.py" apply ./ "$_ungoogled_repo/patches" 190 | msg2 'Applying domain substitution' 191 | python "$_utils/domain_substitution.py" apply -r "$_ungoogled_repo/domain_regex.list" \ 192 | -f "$_ungoogled_repo/domain_substitution.list" -c domainsubcache.tar.gz ./ 193 | 194 | # Remove bundled libraries for which we will use the system copies; this 195 | # *should* do what the remove_bundled_libraries.py script does, with the 196 | # added benefit of not having to list all the remaining libraries 197 | local _lib 198 | for _lib in ${_unwanted_bundled_libs[@]}; do 199 | find "third_party/$_lib" -type f \ 200 | \! -path "third_party/$_lib/chromium/*" \ 201 | \! -path "third_party/$_lib/google/*" \ 202 | \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \ 203 | \! -regex '.*\.\(gn\|gni\|isolate\)' \ 204 | -delete 205 | done 206 | 207 | ./build/linux/unbundle/replace_gn_files.py \ 208 | --system-libraries "${!_system_libs[@]}" 209 | } 210 | 211 | build() { 212 | make -C chromium-launcher-$_launcher_ver 213 | 214 | cd chromium-$pkgver 215 | 216 | if (( _system_clang )); then 217 | export CC=clang 218 | export CXX=clang++ 219 | export AR=ar 220 | export NM=nm 221 | else 222 | local _clang_path="$PWD/third_party/llvm-build/Release+Asserts/bin" 223 | export CC=$_clang_path/clang 224 | export CXX=$_clang_path/clang++ 225 | export AR=$_clang_path/llvm-ar 226 | export NM=$_clang_path/llvm-nm 227 | fi 228 | 229 | local _flags=( 230 | 'custom_toolchain="//build/toolchain/linux/unbundle:default"' 231 | 'host_toolchain="//build/toolchain/linux/unbundle:default"' 232 | 'is_official_build=true' # implies is_cfi=true on x86_64 233 | 'symbol_level=0' # sufficient for backtraces on x86(_64) 234 | 'treat_warnings_as_errors=false' 235 | 'disable_fieldtrial_testing_config=true' 236 | 'blink_enable_generated_code_formatting=false' 237 | 'ffmpeg_branding="Chrome"' 238 | 'proprietary_codecs=true' 239 | 'rtc_use_pipewire=true' 240 | 'link_pulseaudio=true' 241 | 'use_custom_libcxx=true' # https://github.com/llvm/llvm-project/issues/61705 242 | 'use_sysroot=false' 243 | 'use_system_libffi=true' 244 | 'enable_hangout_services_extension=true' 245 | 'enable_widevine=true' 246 | 'enable_nacl=false' 247 | 'use_qt6=true' 248 | 'moc_qt6_path="/usr/lib/qt6"' 249 | "google_api_key=\"$_google_api_key\"" 250 | ) 251 | 252 | if [[ -n ${_system_libs[icu]+set} ]]; then 253 | _flags+=('icu_use_data_file=false') 254 | fi 255 | 256 | if (( _system_clang )); then 257 | local _clang_version=$( 258 | clang --version | grep -m1 version | sed 's/.* \([0-9]\+\).*/\1/') 259 | 260 | _flags+=( 261 | 'clang_base_path="/usr"' 262 | 'clang_use_chrome_plugins=false' 263 | "clang_version=\"$_clang_version\"" 264 | 'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile 265 | ) 266 | 267 | # Allow the use of nightly features with stable Rust compiler 268 | # https://github.com/ungoogled-software/ungoogled-chromium/pull/2696#issuecomment-1918173198 269 | export RUSTC_BOOTSTRAP=1 270 | 271 | _flags+=( 272 | 'rust_sysroot_absolute="/usr"' 273 | "rustc_version=\"$(rustc --version)\"" 274 | ) 275 | fi 276 | 277 | # enable HEVC decoding 278 | _flags+=( 279 | 'enable_platform_hevc=true' 280 | 'enable_hevc_parser_and_hw_decoder=true' 281 | ) 282 | 283 | # Append ungoogled chromium flags to _flags array 284 | _ungoogled_repo="$srcdir/$pkgname-$_uc_ver" 285 | readarray -t -O ${#_flags[@]} _flags < "${_ungoogled_repo}/flags.gn" 286 | 287 | # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) 288 | CFLAGS+=' -Wno-builtin-macro-redefined' 289 | CXXFLAGS+=' -Wno-builtin-macro-redefined' 290 | CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' 291 | 292 | # Do not warn about unknown warning options 293 | CFLAGS+=' -Wno-unknown-warning-option' 294 | CXXFLAGS+=' -Wno-unknown-warning-option' 295 | 296 | # Let Chromium set its own symbol level 297 | CFLAGS=${CFLAGS/-g } 298 | CXXFLAGS=${CXXFLAGS/-g } 299 | 300 | # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123 301 | CFLAGS=${CFLAGS/-fexceptions} 302 | CFLAGS=${CFLAGS/-fcf-protection} 303 | CXXFLAGS=${CXXFLAGS/-fexceptions} 304 | CXXFLAGS=${CXXFLAGS/-fcf-protection} 305 | 306 | # This appears to cause random segfaults when combined with ThinLTO 307 | # https://bugs.archlinux.org/task/73518 308 | CFLAGS=${CFLAGS/-fstack-clash-protection} 309 | CXXFLAGS=${CXXFLAGS/-fstack-clash-protection} 310 | 311 | # https://crbug.com/957519#c122 312 | CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS} 313 | 314 | gn gen out/Release --args="${_flags[*]}" 315 | ninja -C out/Release chrome chrome_sandbox chromedriver 316 | } 317 | 318 | package() { 319 | cd chromium-launcher-$_launcher_ver 320 | make PREFIX=/usr DESTDIR="$pkgdir" install 321 | install -Dm644 LICENSE \ 322 | "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" 323 | 324 | cd ../chromium-$pkgver 325 | 326 | install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" 327 | install -D out/Release/chromedriver "$pkgdir/usr/bin/chromedriver" 328 | install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" 329 | 330 | install -Dm644 chrome/installer/linux/common/desktop.template \ 331 | "$pkgdir/usr/share/applications/chromium.desktop" 332 | install -Dm644 chrome/app/resources/manpage.1.in \ 333 | "$pkgdir/usr/share/man/man1/chromium.1" 334 | sed -i \ 335 | -e 's/@@MENUNAME@@/Chromium/g' \ 336 | -e 's/@@PACKAGE@@/chromium/g' \ 337 | -e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \ 338 | "$pkgdir/usr/share/applications/chromium.desktop" \ 339 | "$pkgdir/usr/share/man/man1/chromium.1" 340 | 341 | install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \ 342 | "$pkgdir/usr/share/metainfo/chromium.appdata.xml" 343 | sed -ni \ 344 | -e 's/chromium-browser\.desktop/chromium.desktop/' \ 345 | -e '/<update_contact>/d' \ 346 | -e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \ 347 | -e '/^<?xml/,$p' \ 348 | "$pkgdir/usr/share/metainfo/chromium.appdata.xml" 349 | 350 | local toplevel_files=( 351 | chrome_100_percent.pak 352 | chrome_200_percent.pak 353 | chrome_crashpad_handler 354 | libqt5_shim.so 355 | libqt6_shim.so 356 | resources.pak 357 | v8_context_snapshot.bin 358 | 359 | # ANGLE 360 | libEGL.so 361 | libGLESv2.so 362 | 363 | # SwiftShader ICD 364 | libvk_swiftshader.so 365 | libvulkan.so.1 366 | vk_swiftshader_icd.json 367 | ) 368 | 369 | if [[ -z ${_system_libs[icu]+set} ]]; then 370 | toplevel_files+=(icudtl.dat) 371 | fi 372 | 373 | cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/" 374 | install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak 375 | 376 | for size in 24 48 64 128 256; do 377 | install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ 378 | "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" 379 | done 380 | 381 | for size in 16 32; do 382 | install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ 383 | "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" 384 | done 385 | 386 | install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" 387 | } 388 | 389 | # vim:set ts=2 sw=2 et: 390 | -------------------------------------------------------------------------------- /ungoogled-chromium/allow-ANGLEImplementation-kVulkan.patch: -------------------------------------------------------------------------------- 1 | From 9ca21ac45af570ce11a1b0b96fdb163985b59178 Mon Sep 17 00:00:00 2001 2 | From: Ho Cheung <hocheung@chromium.org> 3 | Date: Wed, 29 May 2024 00:10:25 +0000 4 | Subject: [PATCH] [ozone+wayland] Allow ANGLEImplementation::kVulkan when ozone 5 | platform is Wayland 6 | 7 | When passing `gl=egl-angle,angle=vulkan` flags on 8 | a device with an AMD graphics card and using 9 | `ozone wayland`, since 10 | `gl::ANGLEImplementation::kVulkan` is not in 11 | `WaylandSurfaceFactory::GetAllowedGLImplementations`, 12 | As a result, it cannot be initialized normally. 13 | 14 | This CL adds `gl::ANGLEImplementation::kVulkan` to 15 | `WaylandSurfaceFactory::GetAllowedGLImplementations` 16 | to ensure that it can be initialized normally. 17 | 18 | In addition, the changes made in this CL have been 19 | verified by many developers or users in the Linux 20 | community, and should not break other things 21 | without passing specific flags. 22 | 23 | Get VAAPI acceleration working on amdgpus,such as 24 | Radeon 780M. 25 | 26 | Bug: 334275637,40722838,41392107 27 | Change-Id: Id1c9720159ee6149b620e12e5dc7b9df89d38409 28 | Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5568860 29 | Commit-Queue: Ho Cheung <hocheung@chromium.org> 30 | Reviewed-by: Kramer Ge <fangzhoug@chromium.org> 31 | Reviewed-by: Nick Yamane <nickdiego@igalia.com> 32 | Cr-Commit-Position: refs/heads/main@{#1307136} 33 | --- 34 | ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc | 1 + 35 | 1 file changed, 1 insertion(+) 36 | 37 | diff --git a/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc b/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc 38 | index b6e99324c02b..7602a6b8e693 100644 39 | --- a/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc 40 | +++ b/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc 41 | @@ -214,6 +214,7 @@ WaylandSurfaceFactory::GetAllowedGLImplementations() { 42 | impls.emplace_back(gl::ANGLEImplementation::kOpenGL); 43 | impls.emplace_back(gl::ANGLEImplementation::kOpenGLES); 44 | impls.emplace_back(gl::ANGLEImplementation::kSwiftShader); 45 | + impls.emplace_back(gl::ANGLEImplementation::kVulkan); 46 | impls.emplace_back(gl::kGLImplementationEGLGLES2); 47 | } 48 | return impls; 49 | -------------------------------------------------------------------------------- /ungoogled-chromium/compiler-rt-adjust-paths.patch: -------------------------------------------------------------------------------- 1 | diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn 2 | index d4de2e0cca0..57359c32121 100644 3 | --- a/build/config/clang/BUILD.gn 4 | +++ b/build/config/clang/BUILD.gn 5 | @@ -130,12 +130,15 @@ template("clang_lib") { 6 | } else if (is_linux || is_chromeos) { 7 | if (current_cpu == "x64") { 8 | _dir = "x86_64-unknown-linux-gnu" 9 | + _suffix = "-x86_64" 10 | } else if (current_cpu == "x86") { 11 | _dir = "i386-unknown-linux-gnu" 12 | + _suffix = "-i386" 13 | } else if (current_cpu == "arm") { 14 | _dir = "armv7-unknown-linux-gnueabihf" 15 | } else if (current_cpu == "arm64") { 16 | _dir = "aarch64-unknown-linux-gnu" 17 | + _suffix = "-aarch64" 18 | } else { 19 | assert(false) # Unhandled cpu type 20 | } 21 | @@ -166,6 +169,11 @@ template("clang_lib") { 22 | assert(false) # Unhandled target platform 23 | } 24 | 25 | + # Bit of a hack to make this find builtins from compiler-rt >= 16 26 | + if (is_linux || is_chromeos) { 27 | + _dir = "linux" 28 | + } 29 | + 30 | _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib" 31 | _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}" 32 | libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ] 33 | -------------------------------------------------------------------------------- /ungoogled-chromium/drop-flag-unsupported-by-clang17.patch: -------------------------------------------------------------------------------- 1 | diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn 2 | index 6efe967eb0a1..590a2c274ac1 100644 3 | --- a/build/config/compiler/BUILD.gn 4 | +++ b/build/config/compiler/BUILD.gn 5 | @@ -568,24 +568,6 @@ config("compiler") { 6 | } 7 | } 8 | 9 | - # TODO(crbug.com/40283598): This causes binary size growth and potentially 10 | - # other problems. 11 | - # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version. 12 | - if (default_toolchain != "//build/toolchain/cros:target" && 13 | - !llvm_android_mainline) { 14 | - cflags += [ 15 | - "-mllvm", 16 | - "-split-threshold-for-reg-with-hint=0", 17 | - ] 18 | - if (use_thin_lto && is_a_target_toolchain) { 19 | - if (is_win) { 20 | - ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ] 21 | - } else { 22 | - ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ] 23 | - } 24 | - } 25 | - } 26 | - 27 | # TODO(crbug.com/40192287): Investigate why/if this should be needed. 28 | if (is_win) { 29 | cflags += [ "/clang:-ffp-contract=off" ] 30 | -------------------------------------------------------------------------------- /ungoogled-chromium/ninja-out-of-order-generation-fix.patch: -------------------------------------------------------------------------------- 1 | --- a/content/browser/BUILD.gn 2 | +++ b/content/browser/BUILD.gn 3 | @@ -73,6 +73,7 @@ 4 | "//cc/animation", 5 | "//cc/mojo_embedder", 6 | "//cc/paint", 7 | + "//chrome/common:buildflags", 8 | "//components/attribution_reporting:mojom", 9 | "//components/back_forward_cache:enum", 10 | "//components/browsing_topics/common:common", 11 | @@ -83,6 +84,7 @@ 12 | "//components/download/public/common:public", 13 | "//components/file_access", 14 | "//components/filename_generation", 15 | + "//components/lens:buildflags", 16 | "//components/link_header_util", 17 | "//components/metrics", 18 | "//components/metrics:single_sample_metrics", 19 | --- a/chrome/browser/extensions/BUILD.gn 20 | +++ b/chrome/browser/extensions/BUILD.gn 21 | @@ -898,6 +898,7 @@ 22 | "//components/resources", 23 | "//components/safe_browsing:buildflags", 24 | "//components/safe_browsing/content/browser/web_ui:web_ui", 25 | + "//components/safe_browsing/content/common/proto:download_file_types_proto", 26 | "//components/safe_browsing/core/browser/db:database_manager", 27 | "//components/safe_browsing/core/common", 28 | "//components/safe_browsing/core/common:safe_browsing_prefs", 29 | --- a/chrome/common/BUILD.gn 30 | +++ b/chrome/common/BUILD.gn 31 | @@ -605,6 +605,7 @@ 32 | "//components/optimization_guide/optimization_guide_internals/webui:url_constants", 33 | "//components/password_manager/content/common", 34 | "//components/safe_browsing/core/common", 35 | + "//components/supervised_user/core/common:buildflags", 36 | "//device/vr/buildflags", 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /ungoogled-chromium/update-patches.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | patches=( 4 | 0001-adjust-buffer-format-order.patch 5 | 0001-enable-linux-unstable-deb-target.patch 6 | 0001-ozone-wayland-implement-text_input_manager-fixes.patch 7 | 0001-ozone-wayland-implement-text_input_manager_v3.patch 8 | 0001-vaapi-flag-ozone-wayland.patch 9 | ninja-out-of-order-generation-fix.patch 10 | ) 11 | 12 | mkdir tmp 13 | mv "${patches[@]}" tmp 14 | 15 | rm ./*.patch 16 | git clone https://gitlab.archlinux.org/archlinux/packaging/packages/chromium 17 | #(cd chromium && git checkout 29d40a45d11a56a36027bb128f70c9cd1a90edf3) 18 | mv chromium/*.patch . 19 | nvim -d PKGBUILD chromium/PKGBUILD 20 | makepkg --printsrcinfo > .SRCINFO 21 | rm -rf chromium 22 | 23 | mv tmp/* . 24 | rmdir tmp 25 | -------------------------------------------------------------------------------- /ungoogled-chromium/use-oauth2-client-switches-as-default.patch: -------------------------------------------------------------------------------- 1 | diff --git a/google_apis/google_api_keys-inc.cc b/google_apis/google_api_keys-inc.cc 2 | index 4d13e697a54d..61aac7b48662 100644 3 | --- a/google_apis/google_api_keys-inc.cc 4 | +++ b/google_apis/google_api_keys-inc.cc 5 | @@ -193,11 +193,11 @@ class APIKeyCache { 6 | std::string default_client_id = CalculateKeyValue( 7 | GOOGLE_DEFAULT_CLIENT_ID, 8 | STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), 9 | - nullptr, std::string(), environment.get(), command_line, gaia_config); 10 | + ::switches::kOAuth2ClientID, std::string(), environment.get(), command_line, gaia_config); 11 | std::string default_client_secret = CalculateKeyValue( 12 | GOOGLE_DEFAULT_CLIENT_SECRET, 13 | STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(), 14 | - nullptr, std::string(), environment.get(), command_line, gaia_config); 15 | + ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config); 16 | 17 | // We currently only allow overriding the baked-in values for the 18 | // default OAuth2 client ID and secret using a command-line 19 | -------------------------------------------------------------------------------- /xf86-video-amdgpu-git/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = xf86-video-amdgpu-git 2 | pkgdesc = X.org amdgpu video driver (git version) 3 | pkgver = 21.0.0.r1.g6936552 4 | pkgrel = 1 5 | url = https://xorg.freedesktop.org/ 6 | arch = x86_64 7 | groups = xorg-drivers 8 | license = custom 9 | makedepends = xorg-server-devel-git 10 | makedepends = systemd 11 | makedepends = git 12 | makedepends = pixman 13 | depends = systemd-libs 14 | depends = mesa 15 | provides = xf86-video-amdgpu 16 | conflicts = xf86-video-amdgpu 17 | conflicts = xorg-server<1.20.0 18 | source = xf86-video-amdgpu-git::git+https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu.git 19 | sha256sums = SKIP 20 | 21 | pkgname = xf86-video-amdgpu-git 22 | -------------------------------------------------------------------------------- /xf86-video-amdgpu-git/.gitignore: -------------------------------------------------------------------------------- 1 | xf86-video-amdgpu-git 2 | src 3 | pkg 4 | *.pkg.* 5 | *.log 6 | -------------------------------------------------------------------------------- /xf86-video-amdgpu-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Yurii Kolesnykov <root@yurikoles.com> 2 | # based on extra/xf86-video-amdgpu by: 3 | # Laurent Carlier <lordheavym@gmail.com> 4 | 5 | pkgname=xf86-video-amdgpu-git 6 | _pkgname=xf86-video-amdgpu 7 | pkgver=21.0.0.r1.g6936552 8 | pkgrel=1 9 | pkgdesc="X.org amdgpu video driver (git version)" 10 | arch=('x86_64') 11 | url="https://xorg.freedesktop.org/" 12 | license=('custom') 13 | depends=('systemd-libs' 'mesa') 14 | makedepends=('xorg-server-devel-git' 'systemd' 'git' 'pixman') 15 | conflicts=('xf86-video-amdgpu' 'xorg-server<1.20.0') 16 | provides=('xf86-video-amdgpu') 17 | groups=('xorg-drivers') 18 | source=("${pkgname}::git+https://gitlab.freedesktop.org/xorg/driver/${_pkgname}.git") 19 | sha256sums=('SKIP') 20 | 21 | pkgver() { 22 | cd ${pkgname} 23 | git describe --long --tags | sed 's/^xf86.video.amdgpu.//;s/\([^-]*-g\)/r\1/;s/-/./g' 24 | } 25 | 26 | build() { 27 | cd ${pkgname} 28 | 29 | # Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf 30 | # With them, module fail to load with undefined symbol. 31 | # See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845 32 | export CFLAGS=${CFLAGS/-fno-plt} 33 | export CXXFLAGS=${CXXFLAGS/-fno-plt} 34 | export LDFLAGS=${LDFLAGS/,-z,now} 35 | 36 | #CFLAGS+=' -fcommon' # https://wiki.gentoo.org/wiki/Gcc_10_porting_notes/fno_common 37 | 38 | ./autogen.sh --prefix=/usr \ 39 | --enable-glamor 40 | make 41 | } 42 | 43 | check() { 44 | cd ${pkgname} 45 | make check 46 | } 47 | 48 | package() { 49 | cd ${pkgname} 50 | 51 | make "DESTDIR=${pkgdir}" install 52 | install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" 53 | install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" 54 | } 55 | -------------------------------------------------------------------------------- /xf86-video-intel-git/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = xf86-video-intel-git 2 | pkgdesc = X.org Intel i810/i830/i915/945G/G965+ video drivers 3 | pkgver = 2.99.917+909+g5ca3ac1a 4 | pkgrel = 1 5 | epoch = 1 6 | url = https://01.org/linuxgraphics 7 | install = xf86-video-intel.install 8 | arch = x86_64 9 | groups = xorg-drivers 10 | license = custom 11 | makedepends = xorg-server-devel 12 | makedepends = libx11 13 | makedepends = libxrender 14 | makedepends = libxv 15 | makedepends = libxrandr 16 | makedepends = libxinerama 17 | makedepends = libxcursor 18 | makedepends = libxtst 19 | makedepends = libxss 20 | makedepends = libxfont2 21 | makedepends = git 22 | depends = mesa 23 | depends = libxvmc 24 | depends = pixman 25 | depends = xcb-util>=0.3.9 26 | depends = systemd-libs 27 | optdepends = libxrandr: for intel-virtual-output 28 | optdepends = libxinerama: for intel-virtual-output 29 | optdepends = libxcursor: for intel-virtual-output 30 | optdepends = libxtst: for intel-virtual-output 31 | optdepends = libxss: for intel-virtual-output 32 | provides = xf86-video-intel 33 | provides = xf86-video-intel-uxa 34 | provides = xf86-video-intel-sna 35 | conflicts = xf86-video-intel 36 | conflicts = xorg-server<1.20 37 | conflicts = xf86-video-intel-sna 38 | conflicts = xf86-video-intel-sna 39 | conflicts = xf86-video-intel-uxa 40 | conflicts = xf86-video-i810 41 | conflicts = xf86-video-intel-legacy 42 | replaces = xf86-video-intel-uxa 43 | replaces = xf86-video-intel-sna 44 | source = xf86-video-intel::git+https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git 45 | sha256sums = SKIP 46 | 47 | pkgname = xf86-video-intel-git 48 | 49 | -------------------------------------------------------------------------------- /xf86-video-intel-git/.gitignore: -------------------------------------------------------------------------------- 1 | xf86-video-intel-git 2 | src 3 | pkg 4 | *.pkg.* 5 | *.log -------------------------------------------------------------------------------- /xf86-video-intel-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Yurii Kolesnykov <root@yurikoles.com> 2 | # Contributor: AndyRTR <andyrtr@archlinux.org> 3 | # Contributor: Jan de Groot <jgc@archlinux.org> 4 | 5 | pkgname=xf86-video-intel-git 6 | _pkgname=xf86-video-intel 7 | pkgver=2.99.917+909+g5ca3ac1a 8 | pkgrel=1 9 | epoch=1 10 | arch=(x86_64) 11 | url="https://01.org/linuxgraphics" 12 | license=('custom') 13 | install="${_pkgname}.install" 14 | pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers" 15 | depends=('mesa' 'libxvmc' 'pixman' 'xcb-util>=0.3.9' 'systemd-libs') 16 | makedepends=('xorg-server-devel' 'libx11' 'libxrender' 'libxv' 17 | # additional deps for intel-virtual-output 18 | 'libxrandr' 'libxinerama' 'libxcursor' 'libxtst' 'libxss' 19 | 'libxfont2' 20 | # additional for git snapshot 21 | 'git') # 'meson' 'valgrind') 22 | optdepends=('libxrandr: for intel-virtual-output' 23 | 'libxinerama: for intel-virtual-output' 24 | 'libxcursor: for intel-virtual-output' 25 | 'libxtst: for intel-virtual-output' 26 | 'libxss: for intel-virtual-output') 27 | replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna') 28 | provides=("${_pkgname}" 'xf86-video-intel-uxa' 'xf86-video-intel-sna') 29 | conflicts=("${_pkgname}" 'xorg-server<1.20' 'xf86-video-intel-sna' 30 | 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') 31 | groups=('xorg-drivers') 32 | source=("${_pkgname}::git+https://gitlab.freedesktop.org/xorg/driver/${_pkgname}.git") 33 | sha256sums=('SKIP') 34 | 35 | pkgver() { 36 | cd "${_pkgname}" 37 | git describe --tags | sed 's/-/+/g' 38 | } 39 | 40 | prepare() { 41 | cd "${_pkgname}" 42 | NOCONFIGURE=1 ./autogen.sh 43 | 44 | # mkdir build 45 | } 46 | 47 | build() { 48 | cd "${_pkgname}" 49 | 50 | # Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf 51 | # With them, module fail to load with undefined symbol. 52 | # See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845 53 | export CFLAGS=${CFLAGS/-fno-plt} 54 | export CXXFLAGS=${CXXFLAGS/-fno-plt} 55 | export LDFLAGS=${LDFLAGS/,-z,now} 56 | 57 | ./configure --prefix=/usr \ 58 | --libexecdir=/usr/lib \ 59 | --with-default-dri=3 60 | make 61 | # cd build 62 | # arch-meson $pkgname build \ 63 | # -Dwith-default-dri=3 64 | # ninja -C build 65 | } 66 | 67 | check() { 68 | cd "${_pkgname}" 69 | make check 70 | # meson test -C build 71 | } 72 | 73 | package() { 74 | cd "${_pkgname}" 75 | 76 | make DESTDIR="${pkgdir}" install 77 | 78 | # DESTDIR="$pkgdir" ninja -C build install 79 | 80 | install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" 81 | install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" 82 | } 83 | -------------------------------------------------------------------------------- /xf86-video-intel-git/xf86-video-intel.install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | cat <<MSG 3 | >>> This driver now uses DRI3 as the default Direct Rendering 4 | Infrastructure. You can try falling back to DRI2 if you run 5 | into trouble. To do so, save a file with the following 6 | content as /etc/X11/xorg.conf.d/20-intel.conf : 7 | Section "Device" 8 | Identifier "Intel Graphics" 9 | Driver "intel" 10 | Option "DRI" "2" # DRI3 is now default 11 | #Option "AccelMethod" "sna" # default 12 | #Option "AccelMethod" "uxa" # fallback 13 | EndSection 14 | MSG 15 | } 16 | 17 | post_upgrade() { 18 | if (( $(vercmp $2 1:2.99.917+684+g6988b87-3) < 0 )); then 19 | post_install 20 | fi 21 | } 22 | -------------------------------------------------------------------------------- /xorg-server-git/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = xorg-server-git 2 | pkgver = 21.1.99.1.r1061.ge61bd1e5f 3 | pkgrel = 1 4 | url = https://xorg.freedesktop.org 5 | arch = x86_64 6 | groups = xorg 7 | license = custom 8 | makedepends = xorgproto-git 9 | makedepends = pixman 10 | makedepends = libx11 11 | makedepends = mesa 12 | makedepends = mesa-libgl 13 | makedepends = xtrans 14 | makedepends = libxkbfile 15 | makedepends = libxfont2 16 | makedepends = libpciaccess 17 | makedepends = libxv 18 | makedepends = libxcvt 19 | makedepends = libxmu 20 | makedepends = libxrender 21 | makedepends = libxi 22 | makedepends = libxaw 23 | makedepends = libxtst 24 | makedepends = libxres 25 | makedepends = xorg-xkbcomp 26 | makedepends = xorg-util-macros 27 | makedepends = xorg-font-util 28 | makedepends = libepoxy 29 | makedepends = xcb-util 30 | makedepends = xcb-util-image 31 | makedepends = xcb-util-renderutil 32 | makedepends = xcb-util-wm 33 | makedepends = xcb-util-keysyms 34 | makedepends = libxshmfence 35 | makedepends = libunwind 36 | makedepends = systemd 37 | makedepends = meson 38 | makedepends = git 39 | options = debug 40 | source = git+https://gitlab.freedesktop.org/xorg/xserver.git 41 | source = xvfb-run 42 | source = xvfb-run.1 43 | sha512sums = SKIP 44 | sha512sums = 87c79b4a928e74463f96f58d277558783eac9b8ea6ba00d6bbbb67ad84c4d65b3792d960ea2a70089ae18162e82ae572a49ad36df169c974cc99dbaa51f63eb2 45 | sha512sums = de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22 46 | 47 | pkgname = xorg-server-git 48 | pkgdesc = Xorg X server (git version) 49 | install = xorg-server-git.install 50 | depends = libepoxy 51 | depends = libxfont2 52 | depends = pixman 53 | depends = xorg-server-common-git 54 | depends = libunwind 55 | depends = dbus 56 | depends = libgl 57 | depends = xf86-input-libinput 58 | depends = nettle 59 | depends = libpciaccess 60 | depends = libdrm 61 | depends = libxshmfence 62 | depends = libxcvt 63 | provides = X-ABI-VIDEODRV_VERSION=25.3 64 | provides = X-ABI-XINPUT_VERSION=24.4 65 | provides = X-ABI-EXTENSION_VERSION=10.0 66 | provides = x-server 67 | provides = xorg-server 68 | conflicts = xorg-server 69 | conflicts = nvidia-utils<=331.20 70 | conflicts = glamor-egl 71 | conflicts = xf86-video-modesetting 72 | replaces = glamor-egl 73 | replaces = xf86-video-modesetting 74 | 75 | pkgname = xorg-server-common-git 76 | pkgdesc = Xorg server common files (git version) 77 | depends = xkeyboard-config 78 | depends = xorg-xkbcomp 79 | depends = xorg-setxkbmap 80 | provides = xorg-server-common 81 | conflicts = xorg-server-common 82 | 83 | pkgname = xorg-server-devel-git 84 | pkgdesc = Development files for the X.Org X server (git version) 85 | depends = xorgproto-git 86 | depends = mesa 87 | depends = libpciaccess 88 | depends = xorg-util-macros 89 | provides = xorg-server-devel 90 | conflicts = xorg-server-devel 91 | 92 | pkgname = xorg-server-xephyr-git 93 | pkgdesc = A nested X server that runs as an X application (git version) 94 | depends = libxfont2 95 | depends = libgl 96 | depends = libepoxy 97 | depends = libunwind 98 | depends = systemd-libs 99 | depends = libxv 100 | depends = pixman 101 | depends = xorg-server-common-git 102 | depends = xcb-util-image 103 | depends = xcb-util-renderutil 104 | depends = xcb-util-wm 105 | depends = xcb-util-keysyms 106 | depends = nettle 107 | depends = libtirpc 108 | provides = xorg-server-xephyr 109 | conflicts = xorg-server-xephyr 110 | 111 | pkgname = xorg-server-xnest-git 112 | pkgdesc = A nested X server that runs as an X application (git version) 113 | depends = libxfont2 114 | depends = libunwind 115 | depends = libxext 116 | depends = pixman 117 | depends = xorg-server-common-git 118 | depends = nettle 119 | depends = libtirpc 120 | depends = systemd-libs 121 | provides = xorg-server-xnest 122 | conflicts = xorg-server-xnest 123 | 124 | pkgname = xorg-server-xvfb-git 125 | pkgdesc = Virtual framebuffer X server (git version) 126 | depends = libxfont2 127 | depends = libunwind 128 | depends = pixman 129 | depends = xorg-server-common-git 130 | depends = xorg-xauth 131 | depends = libgl 132 | depends = nettle 133 | depends = libtirpc 134 | depends = systemd-libs 135 | provides = xorg-server-xvfb 136 | conflicts = xorg-server-xvfb 137 | -------------------------------------------------------------------------------- /xorg-server-git/.gitignore: -------------------------------------------------------------------------------- 1 | xserver/ 2 | src/ 3 | pkg/ 4 | *.pkg.* 5 | *.log 6 | PKG-orig 7 | -------------------------------------------------------------------------------- /xorg-server-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: JustKidding <jk@vin.ovh> 2 | # Co-maintainer: Yurii Kolesnykov <root@yurikoles.com> 3 | # Based on extra/xorg-server by 4 | # AndyRTR <andyrtr@archlinux.org> 5 | # Jan de Groot <jgc@archlinux.org> 6 | 7 | pkgbase=xorg-server-git 8 | pkgname=( 9 | 'xorg-server-git' 10 | 'xorg-server-common-git' 11 | 'xorg-server-devel-git' 12 | 'xorg-server-xephyr-git' 13 | 'xorg-server-xnest-git' 14 | 'xorg-server-xvfb-git' 15 | ) 16 | _pkgbase='xserver' 17 | pkgver=21.1.99.1.r1061.ge61bd1e5f 18 | pkgrel=1 19 | arch=('x86_64') 20 | license=('custom') 21 | groups=('xorg') 22 | url="https://xorg.freedesktop.org" 23 | options=('debug') 24 | makedepends=('xorgproto-git' 'pixman' 'libx11' 'mesa' 'mesa-libgl' 'xtrans' 25 | 'libxkbfile' 'libxfont2' 'libpciaccess' 'libxv' 'libxcvt' 26 | 'libxmu' 'libxrender' 'libxi' 'libxaw' 'libxtst' 'libxres' 27 | 'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'libepoxy' 28 | 'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms' 29 | 'libxshmfence' 'libunwind' 'systemd' 'meson' 'git') 30 | _srcurl=git+https://gitlab.freedesktop.org/xorg/xserver.git 31 | source=($_srcurl 32 | xvfb-run # with updates from FC master 33 | xvfb-run.1 34 | ) 35 | sha512sums=('SKIP' 36 | '87c79b4a928e74463f96f58d277558783eac9b8ea6ba00d6bbbb67ad84c4d65b3792d960ea2a70089ae18162e82ae572a49ad36df169c974cc99dbaa51f63eb2' 37 | 'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22') 38 | 39 | pkgver() { 40 | cd "${_pkgbase}" 41 | 42 | # replace latest tag with version from meson 43 | local _meson_ver=`grep -m 1 version meson.build | cut -d\' -f 2` 44 | # cutting off 'xorg.server.' prefix that presents in the git tag 45 | local _git_ver=`git describe --long --tags | sed 's/^xorg.server.//;s/\([^-]*-g\)/r\1/;s/-/./g'` 46 | local _git_tag=`git describe --tags --abbrev=0 | sed 's/^xorg.server.//'` 47 | 48 | printf "${_git_ver/$_git_tag/$_meson_ver}" 49 | } 50 | 51 | build() { 52 | # Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf 53 | # With them, module fail to load with undefined symbol. 54 | # See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845 55 | export CFLAGS=${CFLAGS/-fno-plt} 56 | export CXXFLAGS=${CXXFLAGS/-fno-plt} 57 | export LDFLAGS=${LDFLAGS/-Wl,-z,now} 58 | 59 | arch-meson "${_pkgbase}" build \ 60 | -D ipv6=true \ 61 | -D xvfb=true \ 62 | -D xnest=true \ 63 | -D xcsecurity=true \ 64 | -D xorg=true \ 65 | -D xephyr=true \ 66 | -D glamor=true \ 67 | -D udev=true \ 68 | -D dtrace=false \ 69 | -D systemd_logind=true \ 70 | -D suid_wrapper=true \ 71 | -D xkb_dir=/usr/share/X11/xkb \ 72 | -D xkb_output_dir=/var/lib/xkb \ 73 | -D libunwind=true 74 | 75 | # Print config 76 | meson configure build 77 | ninja -C build 78 | 79 | # fake installation to be seperated into packages 80 | DESTDIR="${srcdir}/fakeinstall" ninja -C build install 81 | } 82 | 83 | check() { 84 | meson test -C build 85 | } 86 | 87 | _install() { 88 | local src f dir 89 | for src; do 90 | f="${src#fakeinstall/}" 91 | dir="${pkgdir}/${f%/*}" 92 | install -m755 -d "${dir}" 93 | # use copy so a new file is created and fakeroot can track properties such as setuid 94 | cp -av "${src}" "${dir}/" 95 | rm -rf "${src}" 96 | done 97 | } 98 | 99 | package_xorg-server-common-git() { 100 | pkgdesc="Xorg server common files (git version)" 101 | depends=(xkeyboard-config xorg-xkbcomp xorg-setxkbmap) 102 | provides=('xorg-server-common') 103 | conflicts=('xorg-server-common') 104 | 105 | _install fakeinstall/usr/lib/xorg/protocol.txt 106 | _install fakeinstall/usr/share/man/man1/Xserver.1 107 | 108 | install -m644 -Dt "${pkgdir}/var/lib/xkb/" "${_pkgbase}"/xkb/README.compiled 109 | # license 110 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${_pkgbase}"/COPYING 111 | } 112 | 113 | package_xorg-server-git() { 114 | pkgdesc="Xorg X server (git version)" 115 | depends=(libepoxy libxfont2 pixman xorg-server-common-git libunwind 116 | dbus libgl xf86-input-libinput nettle 117 | libpciaccess libdrm libxshmfence libxcvt) # FS#52949 118 | # see xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on 119 | # and /usr/lib/pkgconfig/xorg-server.pc in xorg-server-devel pkg 120 | provides=('X-ABI-VIDEODRV_VERSION=25.3' 'X-ABI-XINPUT_VERSION=24.4' 'X-ABI-EXTENSION_VERSION=10.0' 'x-server' 'xorg-server') 121 | conflicts=('xorg-server' 'nvidia-utils<=331.20' 'glamor-egl' 'xf86-video-modesetting') 122 | replaces=('glamor-egl' 'xf86-video-modesetting') 123 | install=xorg-server-git.install 124 | 125 | _install fakeinstall/usr/bin/{X,Xorg,gtf} 126 | _install fakeinstall/usr/lib/Xorg{,.wrap} 127 | _install fakeinstall/usr/lib/xorg/modules/* 128 | _install fakeinstall/usr/share/X11/xorg.conf.d/10-quirks.conf 129 | _install fakeinstall/usr/share/man/man1/{Xorg,Xorg.wrap,gtf}.1 130 | _install fakeinstall/usr/share/man/man4/{exa,fbdevhw,inputtestdrv,modesetting}.4 131 | _install fakeinstall/usr/share/man/man5/{Xwrapper.config,xorg.conf,xorg.conf.d}.5 132 | 133 | # distro specific files must be installed in /usr/share/X11/xorg.conf.d 134 | install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d" 135 | 136 | # license 137 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${_pkgbase}"/COPYING 138 | } 139 | 140 | package_xorg-server-xephyr-git() { 141 | pkgdesc="A nested X server that runs as an X application (git version)" 142 | depends=(libxfont2 libgl libepoxy libunwind systemd-libs libxv pixman xorg-server-common-git 143 | xcb-util-image xcb-util-renderutil xcb-util-wm xcb-util-keysyms 144 | nettle libtirpc) 145 | provides=('xorg-server-xephyr') 146 | conflicts=('xorg-server-xephyr') 147 | 148 | _install fakeinstall/usr/bin/Xephyr 149 | _install fakeinstall/usr/share/man/man1/Xephyr.1 150 | 151 | # license 152 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${_pkgbase}"/COPYING 153 | } 154 | 155 | package_xorg-server-xvfb-git() { 156 | pkgdesc="Virtual framebuffer X server (git version)" 157 | depends=(libxfont2 libunwind pixman xorg-server-common-git xorg-xauth 158 | libgl nettle libtirpc systemd-libs) 159 | provides=('xorg-server-xvfb') 160 | conflicts=('xorg-server-xvfb') 161 | 162 | _install fakeinstall/usr/bin/Xvfb 163 | _install fakeinstall/usr/share/man/man1/Xvfb.1 164 | 165 | install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/" 166 | install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/" # outda 167 | 168 | # license 169 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${_pkgbase}"/COPYING 170 | } 171 | 172 | package_xorg-server-xnest-git() { 173 | pkgdesc="A nested X server that runs as an X application (git version)" 174 | depends=(libxfont2 libunwind libxext pixman xorg-server-common-git nettle libtirpc systemd-libs) 175 | provides=('xorg-server-xnest') 176 | conflicts=('xorg-server-xnest') 177 | 178 | _install fakeinstall/usr/bin/Xnest 179 | _install fakeinstall/usr/share/man/man1/Xnest.1 180 | 181 | # license 182 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${_pkgbase}"/COPYING 183 | } 184 | 185 | package_xorg-server-devel-git() { 186 | pkgdesc="Development files for the X.Org X server (git version)" 187 | depends=('xorgproto-git' 'mesa' 'libpciaccess' 188 | # not technically required but almost every Xorg pkg needs it to build 189 | 'xorg-util-macros') 190 | provides=('xorg-server-devel') 191 | conflicts=('xorg-server-devel') 192 | 193 | _install fakeinstall/usr/include/xorg/* 194 | _install fakeinstall/usr/lib/pkgconfig/xorg-server.pc 195 | _install fakeinstall/usr/share/aclocal/xorg-server.m4 196 | 197 | # license 198 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${_pkgbase}"/COPYING 199 | 200 | # make sure there are no files left to install 201 | #find fakeinstall -depth -print0 | xargs -0 rmdir 202 | } 203 | -------------------------------------------------------------------------------- /xorg-server-git/xorg-server-git.install: -------------------------------------------------------------------------------- 1 | post_upgrade() { 2 | if (( $(vercmp $2 1.16.0-3) < 0 )); then 3 | post_install 4 | fi 5 | } 6 | 7 | post_install() { 8 | cat <<MSG 9 | >>> xorg-server has now the ability to run without root rights with 10 | the help of systemd-logind. xserver will fail to run if not launched 11 | from the same virtual terminal as was used to log in. 12 | Without root rights, log files will be in ~/.local/share/xorg/ directory. 13 | 14 | Old behavior can be restored through Xorg.wrap config file. 15 | See Xorg.wrap man page (man xorg.wrap). 16 | MSG 17 | } 18 | 19 | -------------------------------------------------------------------------------- /xorg-server-git/xvfb-run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # --- T2-COPYRIGHT-NOTE-BEGIN --- 3 | # This copyright note is auto-generated by ./scripts/Create-CopyPatch. 4 | # 5 | # T2 SDE: package/.../xorg-server/xvfb-run.sh 6 | # Copyright (C) 2005 The T2 SDE Project 7 | # Copyright (C) XXXX - 2005 Debian 8 | # 9 | # More information can be found in the files COPYING and README. 10 | # 11 | # This program is free software; you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation; version 2 of the License. A copy of the 14 | # GNU General Public License can be found in the file COPYING. 15 | # --- T2-COPYRIGHT-NOTE-END --- 16 | 17 | # $Id$ 18 | # from: http://necrotic.deadbeast.net/xsf/XFree86/trunk/debian/local/xvfb-run 19 | 20 | # This script starts an instance of Xvfb, the "fake" X server, runs a command 21 | # with that server available, and kills the X server when done. The return 22 | # value of the command becomes the return value of this script. 23 | # 24 | # If anyone is using this to build a Debian package, make sure the package 25 | # Build-Depends on xvfb, xbase-clients, and xfonts-base. 26 | 27 | set -e 28 | 29 | PROGNAME=xvfb-run 30 | SERVERNUM=99 31 | AUTHFILE= 32 | ERRORFILE=/dev/null 33 | STARTWAIT=3 34 | XVFBARGS="-screen 0 640x480x24" 35 | LISTENTCP="-nolisten tcp" 36 | XAUTHPROTO=. 37 | 38 | # Query the terminal to establish a default number of columns to use for 39 | # displaying messages to the user. This is used only as a fallback in the event 40 | # the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the 41 | # script is running, and this cannot, only being calculated once.) 42 | DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true 43 | if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then 44 | DEFCOLUMNS=80 45 | fi 46 | 47 | # Display a message, wrapping lines at the terminal width. 48 | message () { 49 | echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} 50 | } 51 | 52 | # Display an error message. 53 | error () { 54 | message "error: $*" >&2 55 | } 56 | 57 | # Display a usage message. 58 | usage () { 59 | if [ -n "$*" ]; then 60 | message "usage error: $*" 61 | fi 62 | cat <<EOF 63 | Usage: $PROGNAME [OPTION ...] COMMAND 64 | Run COMMAND (usually an X client) in a virtual X server environment. 65 | Options: 66 | -a --auto-servernum try to get a free server number, starting at 67 | --server-num (deprecated, use --auto-display 68 | instead) 69 | -d --auto-display use the X server to find a display number 70 | automatically 71 | -e FILE --error-file=FILE file used to store xauth errors and Xvfb 72 | output (default: $ERRORFILE) 73 | -f FILE --auth-file=FILE file used to store auth cookie 74 | (default: ./.Xauthority) 75 | -h --help display this usage message and exit 76 | -n NUM --server-num=NUM server number to use (default: $SERVERNUM) 77 | -l --listen-tcp enable TCP port listening in the X server 78 | -p PROTO --xauth-protocol=PROTO X authority protocol name to use 79 | (default: xauth command's default) 80 | -s ARGS --server-args=ARGS arguments (other than server number and 81 | "-nolisten tcp") to pass to the Xvfb server 82 | (default: "$XVFBARGS") 83 | -w DELAY --wait=DELAY delay in seconds to wait for Xvfb to start 84 | before running COMMAND (default: $STARTWAIT) 85 | EOF 86 | } 87 | 88 | # Find a free server number by looking at .X*-lock files in /tmp. 89 | find_free_servernum() { 90 | # Sadly, the "local" keyword is not POSIX. Leave the next line commented in 91 | # the hope Debian Policy eventually changes to allow it in /bin/sh scripts 92 | # anyway. 93 | #local i 94 | 95 | i=$SERVERNUM 96 | while [ -f /tmp/.X$i-lock ]; do 97 | i=$(($i + 1)) 98 | done 99 | echo $i 100 | } 101 | 102 | # Parse the command line. 103 | ARGS=$(getopt --options +ade:f:hn:lp:s:w: \ 104 | --long auto-servernum,auto-display,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \ 105 | --name "$PROGNAME" -- "$@") 106 | GETOPT_STATUS=$? 107 | 108 | if [ $GETOPT_STATUS -ne 0 ]; then 109 | error "internal error; getopt exited with status $GETOPT_STATUS" 110 | exit 6 111 | fi 112 | 113 | eval set -- "$ARGS" 114 | 115 | while :; do 116 | case "$1" in 117 | -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;; 118 | -d|--auto-display) AUTO_DISPLAY=1 ;; 119 | -e|--error-file) ERRORFILE="$2"; shift ;; 120 | -f|--auth-file) AUTHFILE="$2"; shift ;; 121 | -h|--help) SHOWHELP="yes" ;; 122 | -n|--server-num) SERVERNUM="$2"; shift ;; 123 | -l|--listen-tcp) LISTENTCP="" ;; 124 | -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;; 125 | -s|--server-args) XVFBARGS="$2"; shift ;; 126 | -w|--wait) STARTWAIT="$2"; shift ;; 127 | --) shift; break ;; 128 | *) error "internal error; getopt permitted \"$1\" unexpectedly" 129 | exit 6 130 | ;; 131 | esac 132 | shift 133 | done 134 | 135 | if [ "$SHOWHELP" ]; then 136 | usage 137 | exit 0 138 | fi 139 | 140 | if [ -z "$*" ]; then 141 | usage "need a command to run" >&2 142 | exit 2 143 | fi 144 | 145 | if ! type xauth >/dev/null; then 146 | error "xauth command not found" 147 | exit 3 148 | fi 149 | 150 | # Set up the temp dir for the pid and X authorization file 151 | XVFB_RUN_TMPDIR="$(mktemp --directory --tmpdir $PROGNAME.XXXXXX)" 152 | # If the user did not specify an X authorization file to use, set up a temporary 153 | # directory to house one. 154 | if [ -z "$AUTHFILE" ]; then 155 | AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority.XXXXXX) 156 | fi 157 | 158 | # Start Xvfb. 159 | MCOOKIE=$(mcookie) 160 | 161 | if [ -z "$AUTO_DISPLAY" ]; then 162 | # Old style using a pre-computed SERVERNUM 163 | XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \ 164 | 2>&1 & 165 | XVFBPID=$! 166 | else 167 | # New style using Xvfb to provide a free display 168 | PIDFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" pid.XXXXXX) 169 | SERVERNUM=$(XAUTHORITY=$AUTHFILE Xvfb -displayfd 1 $XVFBARGS $LISTENTCP \ 170 | 2>"$ERRORFILE" & echo $! > $PIDFILE) 171 | XVFBPID=$(cat $PIDFILE) 172 | fi 173 | sleep "$STARTWAIT" 174 | 175 | XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1 176 | add :$SERVERNUM $XAUTHPROTO $MCOOKIE 177 | EOF 178 | 179 | # Start the command and save its exit status. 180 | set +e 181 | DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 182 | RETVAL=$? 183 | set -e 184 | 185 | # Kill Xvfb now that the command has exited. 186 | kill $XVFBPID 187 | 188 | # Clean up. 189 | XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >"$ERRORFILE" 2>&1 190 | if [ -n "$XVFB_RUN_TMPDIR" ]; then 191 | if ! rm -r "$XVFB_RUN_TMPDIR"; then 192 | error "problem while cleaning up temporary directory" 193 | exit 5 194 | fi 195 | fi 196 | 197 | # Return the executed command's exit status. 198 | exit $RETVAL 199 | 200 | # vim:set ai et sts=4 sw=4 tw=80: 201 | -------------------------------------------------------------------------------- /xorg-server-git/xvfb-run.1: -------------------------------------------------------------------------------- 1 | .\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $ 2 | .\" 3 | .\" Copyright 1998-2004 Branden Robinson <branden@debian.org>. 4 | .\" 5 | .\" This is free software; you may redistribute it and/or modify 6 | .\" it under the terms of the GNU General Public License as 7 | .\" published by the Free Software Foundation; either version 2, 8 | .\" or (at your option) any later version. 9 | .\" 10 | .\" This is distributed in the hope that it will be useful, but 11 | .\" WITHOUT ANY WARRANTY; without even the implied warranty of 12 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | .\" GNU General Public License for more details. 14 | .\" 15 | .\" You should have received a copy of the GNU General Public License with 16 | .\" the Debian operating system, in /usr/share/common-licenses/GPL; if 17 | .\" not, write to the Free Software Foundation, Inc., 59 Temple Place, 18 | .\" Suite 330, Boston, MA 02111-1307 USA 19 | .\" 20 | .\" We need the URL macro from groff's www macro package, but also want 21 | .\" things to work all right for people who don't have it. So we define 22 | .\" our own URL macro and let the www macro package override it if it's 23 | .\" available. 24 | .de URL 25 | \\$2 \(laURL: \\$1 \(ra\\$3 26 | .. 27 | .if \n[.g] .mso www.tmac 28 | .TH xvfb\-run 1 "2004\-11\-12" "Debian Project" 29 | .SH NAME 30 | xvfb\-run \- run specified X client or command in a virtual X server environment 31 | .SH SYNOPSIS 32 | .B xvfb\-run 33 | [ 34 | .I options 35 | ] 36 | .I command 37 | .SH DESCRIPTION 38 | .B xvfb\-run 39 | is a wrapper for the 40 | .BR Xvfb (1x) 41 | command which simplifies the task of running commands (typically an X 42 | client, or a script containing a list of clients to be run) within a virtual 43 | X server environment. 44 | .PP 45 | .B xvfb\-run 46 | sets up an X authority file (or uses an existing user\-specified one), 47 | writes a cookie to it (see 48 | .BR xauth (1x)) 49 | and then starts the 50 | .B Xvfb 51 | X server as a background process. 52 | The process ID of 53 | .B Xvfb 54 | is stored for later use. 55 | The specified 56 | .I command 57 | is then run using the X display corresponding to the 58 | .B Xvfb 59 | server 60 | just started and the X authority file created earlier. 61 | .PP 62 | When the 63 | .I command 64 | exits, its status is saved, the 65 | .B Xvfb 66 | server is killed (using the process ID stored earlier), the X authority 67 | cookie removed, and the authority file deleted (if the user did not specify 68 | one to use). 69 | .B xvfb\-run 70 | then exits with the exit status of 71 | .IR command . 72 | .PP 73 | .B xvfb\-run 74 | requires the 75 | .B xauth 76 | command to function. 77 | .SH OPTIONS 78 | .TP 79 | .B \-a\fR,\fB \-\-auto\-servernum 80 | Try to get a free server number, starting at 99, or the argument to 81 | .BR \-\-server\-num . 82 | .TP 83 | .BI \-e\ file \fR,\fB\ \-\-error\-file= file 84 | Store output from 85 | .B xauth 86 | and 87 | .B Xvfb 88 | in 89 | .IR file . 90 | The default is 91 | .IR /dev/null . 92 | .TP 93 | .BI \-f\ file \fR,\fB\ \-\-auth\-file= file 94 | Store X authentication data in 95 | .IR file . 96 | By default, a temporary directory called 97 | .IR xvfb\-run. PID 98 | (where PID is the process ID of 99 | .B xvfb\-run 100 | itself) is created in the directory specified by the environment variable 101 | .B TMPDIR 102 | (or 103 | .I /tmp 104 | if that variable is null or unset), and the 105 | .BR tempfile (1) 106 | command is used to create a file in that temporary directory called 107 | .IR Xauthority . 108 | .TP 109 | .B \-h\fR,\fB \-\-help 110 | Display a usage message and exit. 111 | .TP 112 | .BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber 113 | Use 114 | .I servernumber 115 | as the server number (but see the 116 | .B \-a\fR,\fB \-\-auto\-servernum 117 | option above). 118 | The default is 99. 119 | .TP 120 | .B \-l\fR,\fB \-\-listen\-tcp 121 | Enable TCP port listening in the X server. 122 | For security reasons (to avoid denial\-of\-service attacks or exploits), 123 | TCP port listening is disabled by default. 124 | .TP 125 | .BI \-p\ protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname 126 | Use 127 | .I protocolname 128 | as the X authority protocol to use. 129 | The default is \(oq.\(cq, which 130 | .B xauth 131 | interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1. 132 | .TP 133 | .BI \-s\ arguments \fR,\fB\ \-\-server\-args= arguments 134 | Pass 135 | .I arguments 136 | to the 137 | .B Xvfb 138 | server. 139 | Be careful to quote any whitespace characters that may occur within 140 | .I arguments 141 | to prevent them from regarded as separators for 142 | .BR xvfb\-run 's 143 | own arguments. 144 | Also, note that specification of \(oq\-nolisten tcp\(cq in 145 | .I arguments 146 | may override the function of 147 | .BR xvfb\-run 's 148 | own 149 | .B \-l\fR,\fB \-\-listen\-tcp 150 | option, and that specification of the server number (e.g., \(oq:1\(cq) may 151 | be ignored because of the way the X server parses its argument list. 152 | Use the 153 | .B xvfb\-run 154 | option 155 | .BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber 156 | to achieve the latter function. 157 | The default is \(oq\-screen 0 640x480x8\(cq. 158 | .TP 159 | .BI \-w\ delay \fR,\fB\ \-\-wait= delay 160 | Wait 161 | .I delay 162 | seconds after launching 163 | .B Xvfb 164 | before attempting to start the specified command. 165 | The default is 3. 166 | .SH ENVIRONMENT 167 | .TP 168 | .B COLUMNS 169 | indicates the width of the terminal device in character cells. 170 | This value is used for formatting diagnostic messages. 171 | If not set, the terminal is queried using 172 | .BR stty (1) 173 | to determine its width. 174 | If that fails, a value of \(oq80\(cq is assumed. 175 | .TP 176 | .B TMPDIR 177 | specifies the directory in which to place 178 | .BR xvfb\-run 's 179 | temporary directory for storage of the X authority file; only used if the 180 | .B \-f 181 | or 182 | .B \-\-auth\-file 183 | options are not specified. 184 | .SH "OUTPUT FILES" 185 | .PP 186 | Unless the 187 | .B \-f 188 | or 189 | .B \-\-auth\-file 190 | options are specified, a temporary 191 | directory and file within it are created (and deleted) to store the X 192 | authority cookies used by the 193 | .B Xvfb 194 | server and client(s) run under it. 195 | See 196 | .BR tempfile (1). 197 | If \-f or \-\-auth\-file are used, then the specified X authority file is 198 | only written to, not created or deleted (though 199 | .B xauth 200 | creates an authority file itself if told to use use that does not already 201 | exist). 202 | .PP 203 | An error file with a user\-specified name is also created if the 204 | .B \-e 205 | or 206 | .B \-\-error\-file 207 | options are specifed; see above. 208 | .SH "EXIT STATUS" 209 | .B xvfb\-run 210 | uses its exit status as well as output to standard error to communicate 211 | diagnostics. 212 | The exit status of \(oq1\(cq is not used, and should be interpreted as failure 213 | of the specified command. 214 | .TP 215 | 0 216 | .B xvfb\-run 217 | only uses this exit status if the 218 | .B \-h\fR,\fB \-\-help 219 | option is given. 220 | In all other situations, this may be interpreted as success of the specified 221 | command. 222 | .TP 223 | 2 224 | No command to run was specified. 225 | .TP 226 | 3 227 | The 228 | .B xauth 229 | command is not available. 230 | .TP 231 | 4 232 | The temporary directory that was going to be used already exists; since 233 | .B xvfb\-run 234 | produces a uniquely named directory, this may indicate an attempt by another 235 | process on the system to exploit a temporary file race condition. 236 | .TP 237 | 5 238 | A problem was encountered while cleaning up the temporary directory. 239 | .TP 240 | 6 241 | A problem was encountered while using 242 | .BR getopt (1) 243 | to parse the command\-line arguments. 244 | .SH EXAMPLES 245 | .TP 246 | .B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo 247 | runs the 248 | .BR xlogo (1x) 249 | demonstration client inside the 250 | .B Xvfb 251 | X server on the first available server number greater than or equal to 1. 252 | .TP 253 | .B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces 254 | runs the 255 | .BR ico (1x) 256 | demonstration client (and passes it the 257 | .B \-faces 258 | argument) inside the 259 | .B Xvfb 260 | X server, configured with a root window of 1024 by 768 pixels and a color 261 | depth of 24 bits. 262 | .PP 263 | Note that the demo X clients used in the above examples will not exit on 264 | their own, so they will have to be killed before 265 | .B xvfb\-run 266 | will exit. 267 | .SH BUGS 268 | See 269 | .URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" . 270 | If you wish to report a bug in 271 | .BR xvfb\-run , 272 | please use the 273 | .BR reportbug (1) 274 | command. 275 | .SH AUTHOR 276 | .B xfvb\-run 277 | was written by Branden Robinson and Jeff Licquia with sponsorship from 278 | Progeny Linux Systems. 279 | .SH "SEE ALSO" 280 | .BR Xvfb (1x), 281 | .BR xauth (1x) 282 | .\" vim:set et tw=80: 283 | -------------------------------------------------------------------------------- /xorgproto-git/.SRCINFO: -------------------------------------------------------------------------------- 1 | pkgbase = xorgproto-git 2 | pkgdesc = combined X.Org X11 Protocol headers (git version) 3 | pkgver = 2021.5.1.r2711.g914d8f5 4 | pkgrel = 1 5 | url = https://xorg.freedesktop.org/ 6 | arch = any 7 | license = custom 8 | checkdepends = python-libevdev 9 | makedepends = git 10 | makedepends = xorg-util-macros 11 | makedepends = meson 12 | provides = xorgproto 13 | conflicts = xorgproto 14 | source = xorgproto-git::git+https://gitlab.freedesktop.org/xorg/proto/xorgproto.git 15 | sha512sums = SKIP 16 | 17 | pkgname = xorgproto-git 18 | -------------------------------------------------------------------------------- /xorgproto-git/.gitignore: -------------------------------------------------------------------------------- 1 | xorgproto-git 2 | src 3 | pkg 4 | *.pkg.* 5 | *.log 6 | -------------------------------------------------------------------------------- /xorgproto-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Yurii Kolesnykov 2 | # Based on [extra]'s xorgproto by AndyRTR <andyrtr@archlinux.org> 3 | 4 | _pkgname=xorgproto 5 | pkgname=$_pkgname-git 6 | pkgver=2021.5.1.r2711.g914d8f5 7 | pkgrel=1 8 | pkgdesc='combined X.Org X11 Protocol headers (git version)' 9 | arch=('any') 10 | url="https://xorg.freedesktop.org/" 11 | license=('custom') 12 | makedepends=('git' 'xorg-util-macros' 'meson') 13 | checkdepends=('python-libevdev') 14 | provides=('xorgproto') 15 | conflicts=('xorgproto') 16 | _srcurl="$pkgname::git+https://gitlab.freedesktop.org/xorg/proto/xorgproto.git" 17 | source=($_srcurl) 18 | sha512sums=('SKIP') 19 | 20 | pkgver() { 21 | cd "$pkgname" 22 | echo $(git describe --long | cut -d "-" -f2-3 | tr - .).r$(git rev-list HEAD --count).$(git describe --long | cut -d "-" -f4) 23 | } 24 | 25 | prepare() { 26 | mkdir build 27 | } 28 | 29 | build() { 30 | arch-meson "$pkgname" build 31 | ninja -C build 32 | } 33 | 34 | check() { 35 | meson test -C build 36 | } 37 | 38 | package() { 39 | DESTDIR="$pkgdir" ninja -C build install 40 | 41 | # missing docs 42 | install -m755 -d "${pkgdir}/usr/share/doc/${_pkgname}" 43 | install -m644 "$pkgname"/PM_spec "${pkgdir}/usr/share/doc/${_pkgname}/" 44 | 45 | # licenses 46 | install -m755 -d "${pkgdir}/usr/share/licenses/${_pkgname}" 47 | install -m644 "$pkgname"/COPYING* "${pkgdir}/usr/share/licenses/${_pkgname}/" 48 | # remove licences of legacy stuff we don't ship anymore 49 | rm -f "${pkgdir}"/usr/share/licenses/${_pkgname}/COPYING-{evieproto,fontcacheproto,lg3dproto,printproto,xcalibrateproto,xf86rushproto} 50 | 51 | # cleanup 52 | rm -f "${pkgdir}"/usr/include/X11/extensions/apple* 53 | rm -f "${pkgdir}"/usr/share/licenses/${_pkgname}/COPYING-{apple,windows}wmproto 54 | rm -f "${pkgdir}"/usr/share/pkgconfig/applewmproto.pc 55 | } 56 | --------------------------------------------------------------------------------