From a2284968194cb9587c42e582d6bfc66871ddfbba Mon Sep 17 00:00:00 2001 From: Joe Bo Run Date: Sat, 19 Aug 2023 02:38:52 +0300 Subject: [PATCH] reconstruct jobextra --- LICENSE | 9 + README.md | 7 +- acpid/PKGBUILD | 52 + acpid/PKGBUILD-arch | 45 + acpid/acpid.service | 9 + acpid/anything | 3 + acpid/clean | 1 + acpid/deps | 4 + acpid/handler.sh | 77 + acpid/time | 6 + aget/PKGBUILD | 34 - aget/PKGBUILD-aur | 23 - aget/clean | 1 - aget/deps | 3 - appstream/PKGBUILD | 62 + appstream/PKGBUILD-arch | 49 + appstream/clean | 1 + appstream/deps | 13 + appstream/key | 1 + appstream/time | 6 + appstream/update-appstream-cache.hook | 17 + armagetronad/PKGBUILD | 82 + armagetronad/PKGBUILD-arch | 49 + armagetronad/clean | 1 + armagetronad/deps | 11 + armagetronad/time | 4 + asciidoc/PKGBUILD | 74 + asciidoc/PKGBUILD-arch | 66 + asciidoc/clean | 1 + asciidoc/deps | 15 + asciidoc/time | 6 + at/80-atd.hook | 9 + at/PKGBUILD | 55 + at/PKGBUILD-arch | 48 + at/clean | 1 + at/deps | 6 + at/key | 1 + at/note | 2 + at/pam.conf | 12 + at/time | 5 + autoconf-archive/PKGBUILD | 55 + autoconf-archive/PKGBUILD-arch | 37 + autoconf-archive/clean | 1 + autoconf-archive/deps | 3 + autoconf-archive/key | 1 + autoconf-archive/revert.patch | 71 + autoconf-archive/time | 6 + autogen/10_libopts_tarball_perms.diff | 19 - autogen/PKGBUILD | 72 - autogen/PKGBUILD-arch | 55 - autogen/clean | 1 - autogen/deps | 7 - autogen/guile-3.0.patch | 50 - autogen/key | 1 - autogen/time | 4 - cmus-git/PKGBUILD | 74 - cmus-git/PKGBUILD-aur | 65 - cmus-git/clean | 1 - cmus-git/deps | 17 - cmus-git/time | 3 - consolekit2/PKGBUILD-aur | 56 + consolekit2/consolekit.install | 14 + devtools/PKGBUILD | 49 - devtools/PKGBUILD-arch | 41 - devtools/clean | 1 - devtools/deps | 9 - ...karchroot-remove-deprecated-d-option.patch | 30 - devtools/key | 1 - .../makepkg.conf-set-LTOFLAGS-flto-auto.patch | 25 - devtools/time | 5 - etc-update/PKGBUILD | 34 + etc-update/PKGBUILD-arch | 25 + etc-update/clean | 1 + etc-update/deps | 2 + etc-update/time | 6 + expac/PKGBUILD | 35 + expac/PKGBUILD-arch | 27 + expac/clean | 1 + expac/deps | 2 + expac/key | 1 + expac/time | 5 + firejail/PKGBUILD | 43 + firejail/PKGBUILD-arch | 36 + firejail/clean | 1 + firejail/deps | 3 + firejail/firejail.install | 5 + firejail/key | 1 + firejail/note | 1 + firejail/time | 6 + focuswriter-qt6/PKGBUILD | 41 + focuswriter-qt6/PKGBUILD-arch | 26 + focuswriter-qt6/clean | 1 + focuswriter-qt6/deps | 10 + focuswriter-qt6/key | 2 + focuswriter-qt6/note | 33 + focuswriter-qt6/time | 6 + focuswriter/PKGBUILD | 63 + focuswriter/PKGBUILD-arch | 32 + focuswriter/clean | 1 + focuswriter/deps | 6 + focuswriter/key | 2 + focuswriter/note | 50 + focuswriter/time | 5 + gconf/01_xml-gettext-domain.patch | 362 - gconf/PKGBUILD | 82 - gconf/PKGBUILD-aur | 74 - gconf/clean | 1 - gconf/gconf-install.hook | 11 - gconf/gconf-merge-schema | 34 - gconf/gconf-reload.patch | 20 - gconf/gconf-remove.hook | 10 - gconf/gconf.install | 3 - gconf/gconfpkg | 50 - gconf/sums | 6 - gconf/time | 5 - gcr-4/PKGBUILD-arch.new | 72 - gcr/PKGBUILD-arch.new | 71 - geany/PKGBUILD | 44 + geany/PKGBUILD-arch | 37 + geany/clean | 1 + geany/deps | 7 + geany/paste.patch | 28 + geany/time | 5 + gitui/PKGBUILD | 50 + gitui/PKGBUILD-arch | 43 + gitui/clean | 1 + gitui/deps | 6 + gmrun/PKGBUILD | 35 + gmrun/PKGBUILD-arch | 28 + gmrun/clean | 1 + gmrun/deps | 3 + gmrun/time | 6 + gnunet-git/.gitignore | 12 - gnunet-gtk/PKGBUILD | 79 - gnunet-gtk/PKGBUILD-aur | 57 - gnunet-gtk/PKGBUILD-git-aur.new | 30 - gnunet-gtk/PKGBUILD-tar | 35 - gnunet-gtk/clean | 1 - gnunet-gtk/deps | 7 - gnunet-gtk/gnunet-peerinfo-gtk.desktop | 11 - gnunet-gtk/gnunet-peerinfo-gtk.svg | 394 - gnunet-gtk/gnunet-statistics-gtk.desktop | 15 - gnunet-gtk/gnunet-statistics-gtk.svg | 377 - gnunet-gtk/time | 5 - gnunet/PKGBUILD | 132 - gnunet/PKGBUILD-aur | 111 - gnunet/clean | 1 - gnunet/deps | 25 - gnunet/deps.git | 17 - gnunet/gnunet-system.service | 13 - gnunet/gnunet-uri.desktop | 9 - gnunet/gnunet-user.conf | 3 - gnunet/gnunet-user.service | 10 - gnunet/gnunet.install | 54 - gnunet/gnunet.sysusers | 3 - gnunet/gnunet.tmpfiles | 9 - gnunet/key | 1 - gnunet/time | 6 - gnurl/PKGBUILD | 81 - gnurl/PKGBUILD-aur | 65 - gnurl/clean | 1 - gnurl/key | 1 - gnurl/time | 5 - gtk4 | 1 - i3-wm/PKGBUILD | 2 +- intel-gpu-tools/PKGBUILD | 64 + intel-gpu-tools/PKGBUILD-arch | 52 + intel-gpu-tools/clean | 1 + intel-gpu-tools/deps | 24 + ...ib-meson.build-Fix-underscorify-call.patch | 13 + intel-gpu-tools/key | 1 + ...move-crc32-table-from-common-section.patch | 38 + ...emove-race-in-creating-batch-buffers.patch | 157 + intel-gpu-tools/time | 6 + jave | 1 - jwm/PKGBUILD | 58 + jwm/PKGBUILD-arch | 39 + jwm/clean | 1 + jwm/deps | 13 + jwm/jwm.desktop | 7 + jwm/time | 4 + libajantv2/PKGBUILD | 50 - libajantv2/PKGBUILD-aur | 40 - libajantv2/clean | 1 - libajantv2/deps | 2 - libajantv2/time | 5 - libgudev/NOTE-IMPORTANT-READ | 1 + libgudev/PKGBUILD | 63 + libgudev/PKGBUILD-arch | 60 + libgudev/deps | 9 + .../010-librist-disable-multicast-tests.patch | 12 - librist/PKGBUILD | 44 - librist/PKGBUILD-aur | 33 - librist/clean | 1 - librist/deps | 5 - librist/time | 6 - libvirt/823a62ec.patch | 48 + libvirt/PKGBUILD | 258 + libvirt/PKGBUILD-arch | 188 + libvirt/clean | 1 + libvirt/deps | 19 + libvirt/glibc-2.36-lxc-fix.patch | 37 + libvirt/glibc-2.36-virfile-fix.patch | 42 + libvirt/key | 2 + libvirt/libvirt.sysusers | 1 + libvirt/libvirt.tmpfiles | 1 + libvirt/note | 1 + libvirt/sums | 5 + libvirt/time | 6 + limine/PKGBUILD | 32 +- limine/PKGBUILD-arch | 26 + limine/configure | 215 +- limine/deps | 2 +- lowdown/PKGBUILD | 66 + lowdown/PKGBUILD-arch | 55 + lowdown/clean | 1 + lowdown/deps | 4 + lowdown/time | 6 + lsb-release | 1 - lsb-release/PKGBUILD | 56 + lsb-release/PKGBUILD-arch | 46 + lsb-release/clean | 1 + lsb-release/deps | 3 + lsb-release/lsb-release | 8 + lsb-release/lsb-release-arch | 3 + lsb-release/lsb-release.template | 8 + lsb-release/lsb_release_description.patch | 11 + ...b_release_make_man_page_reproducible.patch | 41 + lsb-release/time | 4 + lxappearance-obconf/PKGBUILD | 46 + lxappearance-obconf/PKGBUILD-arch | 30 + lxappearance-obconf/clean | 1 + lxappearance-obconf/deps | 1 + lxappearance-obconf/time | 5 + lxhotkey/PKGBUILD | 66 + lxhotkey/PKGBUILD-arch | 52 + lxhotkey/clean | 1 + gnunet-gtk/.config => lxhotkey/configure | 54 +- lxhotkey/deps | 9 + lxhotkey/time | 6 + lxsession/PKGBUILD | 89 + lxsession/PKGBUILD-arch | 65 + lxsession/clean | 1 + lxsession/configure | 127 + lxsession/deps | 11 + lxsession/time | 6 + lxterminal/PKGBUILD | 39 + lxterminal/PKGBUILD-arch | 30 + lxterminal/clean | 1 + lxterminal/deps | 4 + lxterminal/lxterminal.conf | 57 + lxterminal/time | 5 + mat2 | 1 - mat2/PKGBUILD | 68 + mat2/PKGBUILD-arch | 45 + mat2/PKGBUILD-aur | 47 + mat2/clean | 1 + mat2/deps | 17 + ...fa5693b6d710b19a9101d6cb0625f8b6f1fc.patch | 23 + mat2/key | 1 + mat2/mat2-fix-tests.patch | 39 + mat2/time | 6 + ...TERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.0 | 52 - ...RFACE_DESCRIPTOR_LOAD-reemit-aft.patch.old | 40 - ...mplement-inter-context-busy-tracking.patch | 59 - ...mask-the-bottom-bits-of-the-sampler-.patch | 83 - ...IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch | 51 - ...d-abort-if-kernel-can-t-allocate-mem.patch | 34 - ...-fix-scheduling-of-HALT-instructions.patch | 130 - mesa/note-22.3.0--22.2.3 | 6 - meson/meson-reference-1.0.0.3 | 14321 ---------------- meson/meson-reference-1.0.0.json | 1 - mpv/PKGBUILD | 108 + mpv/PKGBUILD-arch | 70 + mpv/PKGBUILD-aur | 158 + mpv/PKGBUILD.good | 68 + mpv/PKGBUILD.with-lib-deps | 75 + mpv/clean | 1 + mpv/deps | 140 + mpv/find-deps.py | 48 + mpv/key | 2 + mpv/mpv.install | 25 + mpv/time | 6 + ...le-uses-of-GThreadPool-across-a-fork.patch | 88 + nbd/PKGBUILD | 72 + nbd/PKGBUILD-arch | 53 + nbd/clean | 1 + nbd/config | 21 + nbd/deps | 3 + nbd/sysusers_nbd.conf | 1 + nbd/time | 6 + ninja/PKGBUILD | 13 +- ninja/PKGBUILD-arch | 6 +- nut/PKGBUILD | 109 + nut/PKGBUILD-arch | 121 + nut/clean | 1 + nut/conf | 12 + nut/deps | 12 + nut/nut-lowspeed-buffer-size.patch | 19 + nut/nut-no-libdummy.patch | 14 + nut/nut-openssl-1.1.patch | 151 + nut/nut-snmp-usb-order.patch | 38 + nut/nut.sysusers | 2 + nut/nut.tmpfiles | 6 + nut/sums | 6 + nut/time | 6 + nvme-cli | 1 - nvme-cli/PKGBUILD | 60 + nvme-cli/PKGBUILD-arch | 47 + nvme-cli/PKGBUILD-git | 50 + {recutils => nvme-cli}/clean | 0 nvme-cli/deps | 14 + nvme-cli/deps-git | 6 + nvme-cli/nvme-cli-git.install | 8 + nvme-cli/nvme-cli.install | 8 + nvme-cli/time | 6 + nvtop/PKGBUILD | 39 + nvtop/PKGBUILD-arch | 27 + nvtop/clean | 1 + nvtop/deps | 4 + nvtop/time | 6 + opensmtpd/PKGBUILD | 82 + opensmtpd/PKGBUILD-arch | 72 + opensmtpd/clean | 1 + opensmtpd/configure | 135 + opensmtpd/deps | 3 + opensmtpd/opensmtpd.install | 18 + opensmtpd/opensmtpd.sysusers | 4 + opensmtpd/smtpd.service | 11 + opensmtpd/time | 6 + os-prober/PKGBUILD | 56 + os-prober/PKGBUILD-arch | 46 + os-prober/PKGBUILD-aur | 102 + os-prober/clean | 1 + os-prober/deps | 2 + os-prober/os-prober-frugalware.diff | 13 + os-prober/sums | 15 + os-prober/time | 6 + ostree/PKGBUILD | 104 + ostree/PKGBUILD-arch | 126 + ostree/clean | 1 + ostree/deps | 19 + ostree/ostree-2023.1-use_fuse3.patch | 74 + ostree/time | 6 + ...actree-fix-compilation-with-pacman-6.patch | 44 + pacman-contrib/PKGBUILD | 67 + pacman-contrib/PKGBUILD-arch | 47 + pacman-contrib/clean | 1 + pacman-contrib/configure | 110 + pacman-contrib/deps | 6 + pacman-contrib/time | 6 + patchelf/PKGBUILD | 45 + patchelf/PKGBUILD-arch | 39 + patchelf/clean | 1 + {gnurl => patchelf}/deps | 0 patchelf/time | 6 + pbget/PKGBUILD | 37 - pbget/PKGBUILD-arch | 37 - pbget/PKGBUILD-aur | 30 - pbget/clean | 1 - pbget/deps | 6 - pbget/key | 2 - pbget/py-deps-order | 6 - pbget/time | 6 - pcsclite/PKGBUILD | 63 + pcsclite/PKGBUILD-arch | 51 + pcsclite/clean | 1 + pcsclite/deps | 4 + pcsclite/key | 1 + pcsclite/note | 1 + pcsclite/time | 6 + pcsclite/upgcomm | 0 perl-linux-desktopfiles/PKGBUILD | 40 - perl-linux-desktopfiles/clean | 1 - perl-linux-desktopfiles/deps | 1 - perl-linux-desktopfiles/time | 4 - php7/PKGBUILD | 354 + php7/PKGBUILD-arch | 358 + php7/apache.conf | 13 + php7/apache.patch | 10 + php7/clean | 1 + php7/deps | 19 + php7/enchant-2.patch | 49 + php7/key | 2 + php7/php-fpm.patch | 76 + php7/php-fpm.tmpfiles | 1 + php7/php.ini.patch | 77 + php7/php7-openssl3-eof.patch | 78 + php7/php7-openssl3.patch | 23 + php7/php7.patch | 11 + php7/sums | 8 + php7/time | 5 + pm2ml/PKGBUILD | 40 - pm2ml/PKGBUILD-aur | 36 - pm2ml/clean | 1 - pm2ml/deps | 4 - pm2ml/key | 2 - pm2ml/time | 6 - python-pyexiftool/PKGBUILD | 45 - python-pyexiftool/PKGBUILD-aur | 36 - python-pyexiftool/clean | 1 - python-pyexiftool/deps | 1 - python-pyexiftool/time | 6 - python-pytest | 1 - python-pytest/PKGBUILD | 67 + python-pytest/PKGBUILD-arch | 57 + python-pytest/clean | 1 + python-pytest/deps | 26 + python-pytest/deps.old | 29 + python-pytest/old-deps | 26 + .../pytest-fix_test_raising_repr_test.patch | 34 + python-pytest/time | 5 + python-pyudev | 1 - .../0001-tests-fix-tests-for-pytest-4.0.patch | 64 + python-pyudev/PKGBUILD | 71 + python-pyudev/PKGBUILD-arch | 60 + python-pyudev/clean | 1 + python-pyudev/deps | 13 + python-pyudev/time | 5 + python-zipp | 1 - python-zipp/PKGBUILD | 48 + python-zipp/PKGBUILD-arch | 32 + python-zipp/clean | 2 + python-zipp/deps | 16 + python-zipp/time | 6 + python2-mutagen/PKGBUILD | 48 - python2-mutagen/PKGBUILD-aur | 41 - python2-mutagen/clean | 1 - python2-mutagen/deps | 1 - python2-mutagen/key | 1 - python2-mutagen/time | 4 - python2-pdfrw/PKGBUILD | 32 - python2-pdfrw/PKGBUILD-aur | 26 - python2-pdfrw/clean | 1 - python2-pdfrw/deps | 2 - python2-pdfrw/time | 4 - python2-pyexiftool/PKGBUILD | 39 - python2-pyexiftool/PKGBUILD-archstrike | 32 - python2-pyexiftool/clean | 1 - python2-pyexiftool/deps | 2 - python2-pyexiftool/time | 4 - python3-aur/PKGBUILD | 38 - python3-aur/PKGBUILD-aur | 35 - python3-aur/clean | 1 - python3-aur/deps | 5 - python3-aur/key | 2 - python3-aur/time | 1 - python3-memoizedb/PKGBUILD | 39 - python3-memoizedb/PKGBUILD-aur | 31 - python3-memoizedb/clean | 1 - python3-memoizedb/deps | 1 - python3-memoizedb/key | 2 - python3-memoizedb/time | 6 - python3-xcgf/PKGBUILD | 38 - python3-xcgf/PKGBUILD-aur | 30 - python3-xcgf/clean | 1 - python3-xcgf/deps | 1 - python3-xcgf/key | 2 - python3-xcgf/time | 6 - python3-xcpf/PKGBUILD | 35 - python3-xcpf/PKGBUILD-aur | 31 - python3-xcpf/clean | 1 - python3-xcpf/deps | 5 - python3-xcpf/key | 2 - python3-xcpf/time | 6 - recutils/PKGBUILD | 44 - recutils/PKGBUILD-aur | 36 - recutils/deps | 1 - recutils/key | 1 - recutils/time | 5 - redis/PKGBUILD | 60 + redis/PKGBUILD-arch | 57 + redis/clean | 1 + redis/deps | 4 + redis/redis-5.0-use-system-jemalloc.patch | 15 + redis/redis-sentinel.service | 24 + redis/redis.conf-sane-defaults.patch | 13 + redis/redis.install | 7 + redis/redis.service | 23 + redis/redis.sysusers | 1 + redis/redis.tmpfiles | 3 + redis/sums | 4 + redis/time | 6 + samba/PKGBUILD-arch.new | 209 - samba/samba-4.18.0.tar.asc | 4 - ...-SDL-1.2.15-no-default-backing-store.patch | 33 + ...ass-SetGammaRamp-when-changing-gamma.patch | 41 + sdl/0003-sdl-1.2.14-fix-mouse-clicking.patch | 34 + sdl/0004-sdl-1.2.14-disable-mmx.patch | 23 + sdl/PKGBUILD | 80 + sdl/PKGBUILD-arch | 61 + sdl/PKGBUILD-aur | 61 + sdl/PKGBUILD-aur-git | 40 + sdl/clean | 1 + sdl/deps | 10 + sdl/key | 2 + sdl/time | 6 + sdl12-compat/PKGBUILD | 41 + sdl12-compat/PKGBUILD-arch | 29 + sdl12-compat/clean | 1 + sdl12-compat/deps | 5 + sdl12-compat/key | 2 + sdl12-compat/time | 6 + seatd/PKGBUILD | 57 + seatd/PKGBUILD-arch | 53 + seatd/clean | 1 + seatd/deps | 6 + seatd/sysuser.conf | 1 + seatd/time | 6 + sshfs/PKGBUILD | 48 + sshfs/PKGBUILD-arch | 37 + sshfs/clean | 1 + sshfs/deps | 6 + sshfs/key | 1 + sshfs/time | 5 + tor/PKGBUILD | 92 + tor/PKGBUILD-arch | 69 + tor/clean | 1 + tor/deps | 4 + tor/key | 3 + tor/time | 6 + tor/tor.service | 35 + tor/tor.sysusers | 1 + tor/tor.sysusers-arch | 1 + tor/tor.tmpfiles | 3 + tor/tor.tmpfiles-arch | 1 + tor/torrc.patch | 28 + tor/torrc.patch-arch | 28 + torsocks/PKGBUILD | 71 + torsocks/PKGBUILD-arch | 34 + torsocks/PKGBUILD-aur.git | 46 + torsocks/clean | 1 + torsocks/deps | 4 + torsocks/key | 1 + torsocks/time | 5 + torsocks/torsocks.install | 8 + ttf-liberation/PKGBUILD | 34 + ttf-liberation/PKGBUILD-arch | 31 + ttf-liberation/clean | 1 + ttf-liberation/deps | 1 + ttf-liberation/time | 5 + udisks2/PKGBUILD | 94 + udisks2/PKGBUILD-arch | 46 + udisks2/PKGBUILD-aur | 63 + udisks2/clean | 1 + gnunet/.config => udisks2/configure | 196 +- {gconf => udisks2}/deps | 18 +- udisks2/disable_logind_support.patch | 10 + udisks2/remove_check.patch | 16 + udisks2/time | 6 + ...-do-not-free-static-daemon-resources.patch | 74 + umockdev/PKGBUILD | 46 + umockdev/PKGBUILD-arch | 34 + umockdev/clean | 1 + umockdev/deps | 10 + umockdev/time | 6 + unbound/PKGBUILD | 102 + unbound/PKGBUILD-arch | 103 + unbound/clean | 1 + unbound/deps | 12 + unbound/key | 1 + unbound/time | 5 + .../unbound-1.14.0-trust_anchor_file.patch | 12 + unbound/unbound-sysusers.conf | 1 + unbound/unbound-tmpfiles.conf | 1 + unbound/unbound-trusted-key.hook | 10 + unrtf/PKGBUILD | 43 + unrtf/PKGBUILD-arch | 30 + unrtf/clean | 1 + unrtf/configure | 91 + unrtf/deps | 2 + unrtf/key | 1 + unrtf/time | 6 + unrtf/unrtf.changelog | 29 + upower/.gitignore | 2 - upower/PKGBUILD | 63 + upower/PKGBUILD-arch.new | 65 + usb_modeswitch/PKGBUILD | 59 + usb_modeswitch/PKGBUILD-arch | 51 + usb_modeswitch/clean | 1 + usb_modeswitch/deps | 2 + usb_modeswitch/time | 4 + viewnior/PKGBUILD | 49 + viewnior/PKGBUILD-arch | 39 + viewnior/clean | 1 + viewnior/deps | 5 + viewnior/exiv2-0.28.patch | 145 + viewnior/fix-appdata.patch | 23 + viewnior/time | 6 + xfsdump/PKGBUILD | 45 + xfsdump/PKGBUILD-arch | 37 + xfsdump/clean | 1 + xfsdump/deps | 6 + xfsdump/key | 2 + xfsdump/time | 6 + xorg-xinput/xinput-1.6.4.tar.xz | Bin 153160 -> 0 bytes xorg-xinput/xinput-1.6.4.tar.xz.sig | Bin 95 -> 0 bytes 597 files changed, 12254 insertions(+), 19427 deletions(-) create mode 100644 LICENSE create mode 100644 acpid/PKGBUILD create mode 100644 acpid/PKGBUILD-arch create mode 100644 acpid/acpid.service create mode 100644 acpid/anything create mode 100644 acpid/clean create mode 100644 acpid/deps create mode 100644 acpid/handler.sh create mode 100644 acpid/time delete mode 100644 aget/PKGBUILD delete mode 100644 aget/PKGBUILD-aur delete mode 100644 aget/clean delete mode 100644 aget/deps create mode 100644 appstream/PKGBUILD create mode 100644 appstream/PKGBUILD-arch create mode 100644 appstream/clean create mode 100644 appstream/deps create mode 100644 appstream/key create mode 100644 appstream/time create mode 100644 appstream/update-appstream-cache.hook create mode 100644 armagetronad/PKGBUILD create mode 100644 armagetronad/PKGBUILD-arch create mode 100644 armagetronad/clean create mode 100644 armagetronad/deps create mode 100644 armagetronad/time create mode 100644 asciidoc/PKGBUILD create mode 100644 asciidoc/PKGBUILD-arch create mode 100644 asciidoc/clean create mode 100644 asciidoc/deps create mode 100644 asciidoc/time create mode 100644 at/80-atd.hook create mode 100644 at/PKGBUILD create mode 100644 at/PKGBUILD-arch create mode 100644 at/clean create mode 100644 at/deps create mode 100644 at/key create mode 100644 at/note create mode 100644 at/pam.conf create mode 100644 at/time create mode 100644 autoconf-archive/PKGBUILD create mode 100644 autoconf-archive/PKGBUILD-arch create mode 100644 autoconf-archive/clean create mode 100644 autoconf-archive/deps create mode 100644 autoconf-archive/key create mode 100644 autoconf-archive/revert.patch create mode 100644 autoconf-archive/time delete mode 100644 autogen/10_libopts_tarball_perms.diff delete mode 100644 autogen/PKGBUILD delete mode 100644 autogen/PKGBUILD-arch delete mode 100644 autogen/clean delete mode 100644 autogen/deps delete mode 100644 autogen/guile-3.0.patch delete mode 100644 autogen/key delete mode 100644 autogen/time delete mode 100644 cmus-git/PKGBUILD delete mode 100644 cmus-git/PKGBUILD-aur delete mode 100644 cmus-git/clean delete mode 100644 cmus-git/deps delete mode 100644 cmus-git/time create mode 100644 consolekit2/PKGBUILD-aur create mode 100644 consolekit2/consolekit.install delete mode 100644 devtools/PKGBUILD delete mode 100644 devtools/PKGBUILD-arch delete mode 100644 devtools/clean delete mode 100644 devtools/deps delete mode 100644 devtools/devtools-mkarchroot-remove-deprecated-d-option.patch delete mode 100644 devtools/key delete mode 100644 devtools/makepkg.conf-set-LTOFLAGS-flto-auto.patch delete mode 100644 devtools/time create mode 100644 etc-update/PKGBUILD create mode 100644 etc-update/PKGBUILD-arch create mode 100644 etc-update/clean create mode 100644 etc-update/deps create mode 100644 etc-update/time create mode 100644 expac/PKGBUILD create mode 100644 expac/PKGBUILD-arch create mode 100644 expac/clean create mode 100644 expac/deps create mode 100644 expac/key create mode 100644 expac/time create mode 100644 firejail/PKGBUILD create mode 100644 firejail/PKGBUILD-arch create mode 100644 firejail/clean create mode 100644 firejail/deps create mode 100644 firejail/firejail.install create mode 100644 firejail/key create mode 100644 firejail/note create mode 100644 firejail/time create mode 100644 focuswriter-qt6/PKGBUILD create mode 100644 focuswriter-qt6/PKGBUILD-arch create mode 100644 focuswriter-qt6/clean create mode 100644 focuswriter-qt6/deps create mode 100644 focuswriter-qt6/key create mode 100644 focuswriter-qt6/note create mode 100644 focuswriter-qt6/time create mode 100644 focuswriter/PKGBUILD create mode 100644 focuswriter/PKGBUILD-arch create mode 100644 focuswriter/clean create mode 100644 focuswriter/deps create mode 100644 focuswriter/key create mode 100644 focuswriter/note create mode 100644 focuswriter/time delete mode 100644 gconf/01_xml-gettext-domain.patch delete mode 100644 gconf/PKGBUILD delete mode 100644 gconf/PKGBUILD-aur delete mode 100644 gconf/clean delete mode 100644 gconf/gconf-install.hook delete mode 100755 gconf/gconf-merge-schema delete mode 100644 gconf/gconf-reload.patch delete mode 100644 gconf/gconf-remove.hook delete mode 100644 gconf/gconf.install delete mode 100755 gconf/gconfpkg delete mode 100644 gconf/sums delete mode 100644 gconf/time delete mode 100644 gcr-4/PKGBUILD-arch.new delete mode 100644 gcr/PKGBUILD-arch.new create mode 100644 geany/PKGBUILD create mode 100644 geany/PKGBUILD-arch create mode 100644 geany/clean create mode 100644 geany/deps create mode 100644 geany/paste.patch create mode 100644 geany/time create mode 100644 gitui/PKGBUILD create mode 100644 gitui/PKGBUILD-arch create mode 100644 gitui/clean create mode 100644 gitui/deps create mode 100644 gmrun/PKGBUILD create mode 100644 gmrun/PKGBUILD-arch create mode 100644 gmrun/clean create mode 100644 gmrun/deps create mode 100644 gmrun/time delete mode 100644 gnunet-git/.gitignore delete mode 100644 gnunet-gtk/PKGBUILD delete mode 100644 gnunet-gtk/PKGBUILD-aur delete mode 100644 gnunet-gtk/PKGBUILD-git-aur.new delete mode 100644 gnunet-gtk/PKGBUILD-tar delete mode 100644 gnunet-gtk/clean delete mode 100644 gnunet-gtk/deps delete mode 100644 gnunet-gtk/gnunet-peerinfo-gtk.desktop delete mode 100644 gnunet-gtk/gnunet-peerinfo-gtk.svg delete mode 100644 gnunet-gtk/gnunet-statistics-gtk.desktop delete mode 100644 gnunet-gtk/gnunet-statistics-gtk.svg delete mode 100644 gnunet-gtk/time delete mode 100644 gnunet/PKGBUILD delete mode 100644 gnunet/PKGBUILD-aur delete mode 100644 gnunet/clean delete mode 100644 gnunet/deps delete mode 100644 gnunet/deps.git delete mode 100644 gnunet/gnunet-system.service delete mode 100644 gnunet/gnunet-uri.desktop delete mode 100644 gnunet/gnunet-user.conf delete mode 100644 gnunet/gnunet-user.service delete mode 100644 gnunet/gnunet.install delete mode 100644 gnunet/gnunet.sysusers delete mode 100644 gnunet/gnunet.tmpfiles delete mode 100644 gnunet/key delete mode 100644 gnunet/time delete mode 100644 gnurl/PKGBUILD delete mode 100644 gnurl/PKGBUILD-aur delete mode 100644 gnurl/clean delete mode 100644 gnurl/key delete mode 100644 gnurl/time delete mode 120000 gtk4 create mode 100644 intel-gpu-tools/PKGBUILD create mode 100644 intel-gpu-tools/PKGBUILD-arch create mode 100644 intel-gpu-tools/clean create mode 100644 intel-gpu-tools/deps create mode 100644 intel-gpu-tools/i-g-t-1-1-lib-meson.build-Fix-underscorify-call.patch create mode 100644 intel-gpu-tools/key create mode 100644 intel-gpu-tools/remove-crc32-table-from-common-section.patch create mode 100644 intel-gpu-tools/remove-race-in-creating-batch-buffers.patch create mode 100644 intel-gpu-tools/time delete mode 120000 jave create mode 100644 jwm/PKGBUILD create mode 100644 jwm/PKGBUILD-arch create mode 100644 jwm/clean create mode 100644 jwm/deps create mode 100644 jwm/jwm.desktop create mode 100644 jwm/time delete mode 100644 libajantv2/PKGBUILD delete mode 100644 libajantv2/PKGBUILD-aur delete mode 100644 libajantv2/clean delete mode 100644 libajantv2/deps delete mode 100644 libajantv2/time create mode 100644 libgudev/NOTE-IMPORTANT-READ create mode 100644 libgudev/PKGBUILD create mode 100644 libgudev/PKGBUILD-arch create mode 100644 libgudev/deps delete mode 100644 librist/010-librist-disable-multicast-tests.patch delete mode 100644 librist/PKGBUILD delete mode 100644 librist/PKGBUILD-aur delete mode 100644 librist/clean delete mode 100644 librist/deps delete mode 100644 librist/time create mode 100644 libvirt/823a62ec.patch create mode 100644 libvirt/PKGBUILD create mode 100644 libvirt/PKGBUILD-arch create mode 100644 libvirt/clean create mode 100644 libvirt/deps create mode 100644 libvirt/glibc-2.36-lxc-fix.patch create mode 100644 libvirt/glibc-2.36-virfile-fix.patch create mode 100644 libvirt/key create mode 100644 libvirt/libvirt.sysusers create mode 100644 libvirt/libvirt.tmpfiles create mode 100644 libvirt/note create mode 100644 libvirt/sums create mode 100644 libvirt/time create mode 100644 limine/PKGBUILD-arch create mode 100644 lowdown/PKGBUILD create mode 100644 lowdown/PKGBUILD-arch create mode 100644 lowdown/clean create mode 100644 lowdown/deps create mode 100644 lowdown/time delete mode 120000 lsb-release create mode 100644 lsb-release/PKGBUILD create mode 100644 lsb-release/PKGBUILD-arch create mode 100644 lsb-release/clean create mode 100644 lsb-release/deps create mode 100644 lsb-release/lsb-release create mode 100644 lsb-release/lsb-release-arch create mode 100644 lsb-release/lsb-release.template create mode 100644 lsb-release/lsb_release_description.patch create mode 100644 lsb-release/lsb_release_make_man_page_reproducible.patch create mode 100644 lsb-release/time create mode 100644 lxappearance-obconf/PKGBUILD create mode 100644 lxappearance-obconf/PKGBUILD-arch create mode 100644 lxappearance-obconf/clean create mode 100644 lxappearance-obconf/deps create mode 100644 lxappearance-obconf/time create mode 100644 lxhotkey/PKGBUILD create mode 100644 lxhotkey/PKGBUILD-arch create mode 100644 lxhotkey/clean rename gnunet-gtk/.config => lxhotkey/configure (71%) create mode 100644 lxhotkey/deps create mode 100644 lxhotkey/time create mode 100644 lxsession/PKGBUILD create mode 100644 lxsession/PKGBUILD-arch create mode 100644 lxsession/clean create mode 100644 lxsession/configure create mode 100644 lxsession/deps create mode 100644 lxsession/time create mode 100644 lxterminal/PKGBUILD create mode 100644 lxterminal/PKGBUILD-arch create mode 100644 lxterminal/clean create mode 100644 lxterminal/deps create mode 100644 lxterminal/lxterminal.conf create mode 100644 lxterminal/time delete mode 120000 mat2 create mode 100644 mat2/PKGBUILD create mode 100644 mat2/PKGBUILD-arch create mode 100644 mat2/PKGBUILD-aur create mode 100644 mat2/clean create mode 100644 mat2/deps create mode 100644 mat2/ed0ffa5693b6d710b19a9101d6cb0625f8b6f1fc.patch create mode 100644 mat2/key create mode 100644 mat2/mat2-fix-tests.patch create mode 100644 mat2/time delete mode 100644 mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.0 delete mode 100644 mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.old delete mode 100644 mesa/0001-iris-implement-inter-context-busy-tracking.patch delete mode 100644 mesa/0002-intel-fs-always-mask-the-bottom-bits-of-the-sampler-.patch delete mode 100644 mesa/0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch delete mode 100644 mesa/0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch delete mode 100644 mesa/0003-intel-fs-fix-scheduling-of-HALT-instructions.patch delete mode 100644 mesa/note-22.3.0--22.2.3 delete mode 100644 meson/meson-reference-1.0.0.3 delete mode 100644 meson/meson-reference-1.0.0.json create mode 100644 mpv/PKGBUILD create mode 100644 mpv/PKGBUILD-arch create mode 100644 mpv/PKGBUILD-aur create mode 100644 mpv/PKGBUILD.good create mode 100644 mpv/PKGBUILD.with-lib-deps create mode 100644 mpv/clean create mode 100644 mpv/deps create mode 100755 mpv/find-deps.py create mode 100644 mpv/key create mode 100644 mpv/mpv.install create mode 100644 mpv/time create mode 100644 nbd/0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch create mode 100644 nbd/PKGBUILD create mode 100644 nbd/PKGBUILD-arch create mode 100644 nbd/clean create mode 100644 nbd/config create mode 100644 nbd/deps create mode 100644 nbd/sysusers_nbd.conf create mode 100644 nbd/time create mode 100644 nut/PKGBUILD create mode 100644 nut/PKGBUILD-arch create mode 100644 nut/clean create mode 100644 nut/conf create mode 100644 nut/deps create mode 100644 nut/nut-lowspeed-buffer-size.patch create mode 100644 nut/nut-no-libdummy.patch create mode 100644 nut/nut-openssl-1.1.patch create mode 100644 nut/nut-snmp-usb-order.patch create mode 100644 nut/nut.sysusers create mode 100644 nut/nut.tmpfiles create mode 100644 nut/sums create mode 100644 nut/time delete mode 120000 nvme-cli create mode 100644 nvme-cli/PKGBUILD create mode 100644 nvme-cli/PKGBUILD-arch create mode 100644 nvme-cli/PKGBUILD-git rename {recutils => nvme-cli}/clean (100%) create mode 100644 nvme-cli/deps create mode 100644 nvme-cli/deps-git create mode 100644 nvme-cli/nvme-cli-git.install create mode 100644 nvme-cli/nvme-cli.install create mode 100644 nvme-cli/time create mode 100644 nvtop/PKGBUILD create mode 100644 nvtop/PKGBUILD-arch create mode 100644 nvtop/clean create mode 100644 nvtop/deps create mode 100644 nvtop/time create mode 100644 opensmtpd/PKGBUILD create mode 100644 opensmtpd/PKGBUILD-arch create mode 100644 opensmtpd/clean create mode 100644 opensmtpd/configure create mode 100644 opensmtpd/deps create mode 100644 opensmtpd/opensmtpd.install create mode 100644 opensmtpd/opensmtpd.sysusers create mode 100644 opensmtpd/smtpd.service create mode 100644 opensmtpd/time create mode 100644 os-prober/PKGBUILD create mode 100644 os-prober/PKGBUILD-arch create mode 100644 os-prober/PKGBUILD-aur create mode 100644 os-prober/clean create mode 100644 os-prober/deps create mode 100644 os-prober/os-prober-frugalware.diff create mode 100644 os-prober/sums create mode 100644 os-prober/time create mode 100644 ostree/PKGBUILD create mode 100644 ostree/PKGBUILD-arch create mode 100644 ostree/clean create mode 100644 ostree/deps create mode 100644 ostree/ostree-2023.1-use_fuse3.patch create mode 100644 ostree/time create mode 100644 pacman-contrib/0001-pactree-fix-compilation-with-pacman-6.patch create mode 100644 pacman-contrib/PKGBUILD create mode 100644 pacman-contrib/PKGBUILD-arch create mode 100644 pacman-contrib/clean create mode 100644 pacman-contrib/configure create mode 100644 pacman-contrib/deps create mode 100644 pacman-contrib/time create mode 100644 patchelf/PKGBUILD create mode 100644 patchelf/PKGBUILD-arch create mode 100644 patchelf/clean rename {gnurl => patchelf}/deps (100%) create mode 100644 patchelf/time delete mode 100644 pbget/PKGBUILD delete mode 100644 pbget/PKGBUILD-arch delete mode 100644 pbget/PKGBUILD-aur delete mode 100644 pbget/clean delete mode 100644 pbget/deps delete mode 100644 pbget/key delete mode 100644 pbget/py-deps-order delete mode 100644 pbget/time create mode 100644 pcsclite/PKGBUILD create mode 100644 pcsclite/PKGBUILD-arch create mode 100644 pcsclite/clean create mode 100644 pcsclite/deps create mode 100644 pcsclite/key create mode 100644 pcsclite/note create mode 100644 pcsclite/time create mode 100644 pcsclite/upgcomm delete mode 100644 perl-linux-desktopfiles/PKGBUILD delete mode 100644 perl-linux-desktopfiles/clean delete mode 100644 perl-linux-desktopfiles/deps delete mode 100644 perl-linux-desktopfiles/time create mode 100644 php7/PKGBUILD create mode 100644 php7/PKGBUILD-arch create mode 100644 php7/apache.conf create mode 100644 php7/apache.patch create mode 100644 php7/clean create mode 100644 php7/deps create mode 100644 php7/enchant-2.patch create mode 100644 php7/key create mode 100644 php7/php-fpm.patch create mode 100644 php7/php-fpm.tmpfiles create mode 100644 php7/php.ini.patch create mode 100644 php7/php7-openssl3-eof.patch create mode 100644 php7/php7-openssl3.patch create mode 100644 php7/php7.patch create mode 100644 php7/sums create mode 100644 php7/time delete mode 100644 pm2ml/PKGBUILD delete mode 100644 pm2ml/PKGBUILD-aur delete mode 100644 pm2ml/clean delete mode 100644 pm2ml/deps delete mode 100644 pm2ml/key delete mode 100644 pm2ml/time delete mode 100644 python-pyexiftool/PKGBUILD delete mode 100644 python-pyexiftool/PKGBUILD-aur delete mode 100644 python-pyexiftool/clean delete mode 100644 python-pyexiftool/deps delete mode 100644 python-pyexiftool/time delete mode 120000 python-pytest create mode 100644 python-pytest/PKGBUILD create mode 100644 python-pytest/PKGBUILD-arch create mode 100644 python-pytest/clean create mode 100644 python-pytest/deps create mode 100644 python-pytest/deps.old create mode 100644 python-pytest/old-deps create mode 100644 python-pytest/pytest-fix_test_raising_repr_test.patch create mode 100644 python-pytest/time delete mode 120000 python-pyudev create mode 100644 python-pyudev/0001-tests-fix-tests-for-pytest-4.0.patch create mode 100644 python-pyudev/PKGBUILD create mode 100644 python-pyudev/PKGBUILD-arch create mode 100644 python-pyudev/clean create mode 100644 python-pyudev/deps create mode 100644 python-pyudev/time delete mode 120000 python-zipp create mode 100644 python-zipp/PKGBUILD create mode 100644 python-zipp/PKGBUILD-arch create mode 100644 python-zipp/clean create mode 100644 python-zipp/deps create mode 100644 python-zipp/time delete mode 100644 python2-mutagen/PKGBUILD delete mode 100644 python2-mutagen/PKGBUILD-aur delete mode 100644 python2-mutagen/clean delete mode 100644 python2-mutagen/deps delete mode 100644 python2-mutagen/key delete mode 100644 python2-mutagen/time delete mode 100644 python2-pdfrw/PKGBUILD delete mode 100644 python2-pdfrw/PKGBUILD-aur delete mode 100644 python2-pdfrw/clean delete mode 100644 python2-pdfrw/deps delete mode 100644 python2-pdfrw/time delete mode 100644 python2-pyexiftool/PKGBUILD delete mode 100644 python2-pyexiftool/PKGBUILD-archstrike delete mode 100644 python2-pyexiftool/clean delete mode 100644 python2-pyexiftool/deps delete mode 100644 python2-pyexiftool/time delete mode 100644 python3-aur/PKGBUILD delete mode 100644 python3-aur/PKGBUILD-aur delete mode 100644 python3-aur/clean delete mode 100644 python3-aur/deps delete mode 100644 python3-aur/key delete mode 100644 python3-aur/time delete mode 100644 python3-memoizedb/PKGBUILD delete mode 100644 python3-memoizedb/PKGBUILD-aur delete mode 100644 python3-memoizedb/clean delete mode 100644 python3-memoizedb/deps delete mode 100644 python3-memoizedb/key delete mode 100644 python3-memoizedb/time delete mode 100644 python3-xcgf/PKGBUILD delete mode 100644 python3-xcgf/PKGBUILD-aur delete mode 100644 python3-xcgf/clean delete mode 100644 python3-xcgf/deps delete mode 100644 python3-xcgf/key delete mode 100644 python3-xcgf/time delete mode 100644 python3-xcpf/PKGBUILD delete mode 100644 python3-xcpf/PKGBUILD-aur delete mode 100644 python3-xcpf/clean delete mode 100644 python3-xcpf/deps delete mode 100644 python3-xcpf/key delete mode 100644 python3-xcpf/time delete mode 100644 recutils/PKGBUILD delete mode 100644 recutils/PKGBUILD-aur delete mode 100644 recutils/deps delete mode 100644 recutils/key delete mode 100644 recutils/time create mode 100644 redis/PKGBUILD create mode 100644 redis/PKGBUILD-arch create mode 100644 redis/clean create mode 100644 redis/deps create mode 100644 redis/redis-5.0-use-system-jemalloc.patch create mode 100644 redis/redis-sentinel.service create mode 100644 redis/redis.conf-sane-defaults.patch create mode 100644 redis/redis.install create mode 100644 redis/redis.service create mode 100644 redis/redis.sysusers create mode 100644 redis/redis.tmpfiles create mode 100644 redis/sums create mode 100644 redis/time delete mode 100644 samba/PKGBUILD-arch.new delete mode 100644 samba/samba-4.18.0.tar.asc create mode 100644 sdl/0001-SDL-1.2.15-no-default-backing-store.patch create mode 100644 sdl/0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch create mode 100644 sdl/0003-sdl-1.2.14-fix-mouse-clicking.patch create mode 100644 sdl/0004-sdl-1.2.14-disable-mmx.patch create mode 100644 sdl/PKGBUILD create mode 100644 sdl/PKGBUILD-arch create mode 100644 sdl/PKGBUILD-aur create mode 100644 sdl/PKGBUILD-aur-git create mode 100644 sdl/clean create mode 100644 sdl/deps create mode 100644 sdl/key create mode 100644 sdl/time create mode 100644 sdl12-compat/PKGBUILD create mode 100644 sdl12-compat/PKGBUILD-arch create mode 100644 sdl12-compat/clean create mode 100644 sdl12-compat/deps create mode 100644 sdl12-compat/key create mode 100644 sdl12-compat/time create mode 100644 seatd/PKGBUILD create mode 100644 seatd/PKGBUILD-arch create mode 100644 seatd/clean create mode 100644 seatd/deps create mode 100644 seatd/sysuser.conf create mode 100644 seatd/time create mode 100644 sshfs/PKGBUILD create mode 100644 sshfs/PKGBUILD-arch create mode 100644 sshfs/clean create mode 100644 sshfs/deps create mode 100644 sshfs/key create mode 100644 sshfs/time create mode 100644 tor/PKGBUILD create mode 100644 tor/PKGBUILD-arch create mode 100644 tor/clean create mode 100644 tor/deps create mode 100644 tor/key create mode 100644 tor/time create mode 100644 tor/tor.service create mode 100644 tor/tor.sysusers create mode 100644 tor/tor.sysusers-arch create mode 100644 tor/tor.tmpfiles create mode 100644 tor/tor.tmpfiles-arch create mode 100644 tor/torrc.patch create mode 100644 tor/torrc.patch-arch create mode 100644 torsocks/PKGBUILD create mode 100644 torsocks/PKGBUILD-arch create mode 100644 torsocks/PKGBUILD-aur.git create mode 100644 torsocks/clean create mode 100644 torsocks/deps create mode 100644 torsocks/key create mode 100644 torsocks/time create mode 100644 torsocks/torsocks.install create mode 100644 ttf-liberation/PKGBUILD create mode 100644 ttf-liberation/PKGBUILD-arch create mode 100644 ttf-liberation/clean create mode 100644 ttf-liberation/deps create mode 100644 ttf-liberation/time create mode 100644 udisks2/PKGBUILD create mode 100644 udisks2/PKGBUILD-arch create mode 100644 udisks2/PKGBUILD-aur create mode 100644 udisks2/clean rename gnunet/.config => udisks2/configure (52%) rename {gconf => udisks2}/deps (54%) create mode 100644 udisks2/disable_logind_support.patch create mode 100644 udisks2/remove_check.patch create mode 100644 udisks2/time create mode 100644 udisks2/udisk2-2.9.4-do-not-free-static-daemon-resources.patch create mode 100644 umockdev/PKGBUILD create mode 100644 umockdev/PKGBUILD-arch create mode 100644 umockdev/clean create mode 100644 umockdev/deps create mode 100644 umockdev/time create mode 100644 unbound/PKGBUILD create mode 100644 unbound/PKGBUILD-arch create mode 100644 unbound/clean create mode 100644 unbound/deps create mode 100644 unbound/key create mode 100644 unbound/time create mode 100644 unbound/unbound-1.14.0-trust_anchor_file.patch create mode 100644 unbound/unbound-sysusers.conf create mode 100644 unbound/unbound-tmpfiles.conf create mode 100644 unbound/unbound-trusted-key.hook create mode 100644 unrtf/PKGBUILD create mode 100644 unrtf/PKGBUILD-arch create mode 100644 unrtf/clean create mode 100644 unrtf/configure create mode 100644 unrtf/deps create mode 100644 unrtf/key create mode 100644 unrtf/time create mode 100644 unrtf/unrtf.changelog delete mode 100644 upower/.gitignore create mode 100644 upower/PKGBUILD create mode 100644 upower/PKGBUILD-arch.new create mode 100644 usb_modeswitch/PKGBUILD create mode 100644 usb_modeswitch/PKGBUILD-arch create mode 100644 usb_modeswitch/clean create mode 100644 usb_modeswitch/deps create mode 100644 usb_modeswitch/time create mode 100644 viewnior/PKGBUILD create mode 100644 viewnior/PKGBUILD-arch create mode 100644 viewnior/clean create mode 100644 viewnior/deps create mode 100644 viewnior/exiv2-0.28.patch create mode 100644 viewnior/fix-appdata.patch create mode 100644 viewnior/time create mode 100644 xfsdump/PKGBUILD create mode 100644 xfsdump/PKGBUILD-arch create mode 100644 xfsdump/clean create mode 100644 xfsdump/deps create mode 100644 xfsdump/key create mode 100644 xfsdump/time delete mode 100644 xorg-xinput/xinput-1.6.4.tar.xz delete mode 100644 xorg-xinput/xinput-1.6.4.tar.xz.sig diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b075906 --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +ISC License: + +Copyleft (c) 2021-2022 by joborun-linux joborun@disroot.org +Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC") +Copyright (c) 1995-2003 by Internet Software Consortium + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md index 40b1535..e736fe1 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,9 @@ joborun's extra repository -Mostly the build/make dependencies for core (jobcore) and a few other important -packages for joborun, mostly based on ARCH-extra packaging. +No binaries are published from this repository, it acts just as AUR and OUR, a repository of recipes/templates/PKGBUILDS for anyone to build their own. The emphasis of Joborun is and will be the core base system and minimalistic servers to be built from entirely our own built software and substitute Arch's. As it stands during the end of this alpha phase, the entire image published is built from our own software. We can't say the same yet about all the dependencies for making/building the same. Still some pkgs from Arch's extra are needed, but we replace those daily. + +Graphic/Desktop/Window managing software, browsers, and guis, are not a priority, and since Obarun does a very good job providing such functionality without systemd or elogind, we will concentrate on our own objective to compliment what Obarun does, not replace it. Joborun team @@ -21,7 +22,7 @@ where /etc/pacman.d/mirrorlist-jobo should look something like this: Server = http://downloads.sourceforge.net/joborun/r -You can switch between local and sf after building what you are interested in. +You can switch between local and osdn after building what you are interested in. The osdn repository will only show upgrades but there will be no binaries to download. Clone the repository into /src/pkg and [[build|https://git.disroot.org/joborun/web/src/branch/main/howto.md]] the package of choice: diff --git a/acpid/PKGBUILD b/acpid/PKGBUILD new file mode 100644 index 0000000..8c2e91a --- /dev/null +++ b/acpid/PKGBUILD @@ -0,0 +1,52 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=acpid +pkgver=2.0.34 +pkgrel=02 +pkgdesc='A daemon for delivering ACPI power management events with netlink support w/o systemd' +arch=('x86_64') +url='https://sourceforge.net/projects/acpid2/' +depends=('bash') +optdepends=('perl: use perl based examples') +replaces=('acpid2') +backup=('etc/acpi/handler.sh' 'etc/acpi/events/anything') +source=("https://downloads.sourceforge.net/sourceforge/acpid2/$pkgname-$pkgver.tar.xz" +# 'acpid.service' + 'anything' + 'handler.sh') + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr --sbindir=/usr/bin + make +} + +package() { + cd $pkgname-$pkgver + + make DESTDIR="$pkgdir" install + + # default config + install -Dm644 ../anything "$pkgdir/etc/acpi/events/anything" + install -Dm755 ../handler.sh "$pkgdir/etc/acpi/handler.sh" + +### systemd acpid service removed - both runit and s6/66 setup have a service available ### + # systemd + # install -Dm644 ../acpid.service "$pkgdir/usr/lib/systemd/system/acpid.service" +} + +#---- license gpg-key sha256sums ---- + +license=('GPL') + +sha256sums=(2d095c8cfcbc847caec746d62cdc8d0bff1ec1bc72ef7c674c721e04da6ab333 # acpid-2.0.34.tar.xz + eb5230affb9dba7653890655b94e83f377c689a39131b6b13c8202ba2382c275 # anything + 1c1e39b7ecc57092ba9d747f452fb36d8ae0456e2e64849c9c4a2625d1d57413) # handler.sh + +# 6ad29e963b2ad6f9644b6835d305e7cbae6bd62e86e953253bf837e318ae583a acpid-2.0.34-02-x86_64.pkg.tar.lz + diff --git a/acpid/PKGBUILD-arch b/acpid/PKGBUILD-arch new file mode 100644 index 0000000..bf89935 --- /dev/null +++ b/acpid/PKGBUILD-arch @@ -0,0 +1,45 @@ +# Maintainer: Morten Linderud +# Contributor: Sébastien Luttringer +# Contributor: xduugu +# Contributor: Manolis Tzanidakis +# Contributor: Jonathan Schmidt -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=aget -pkgver=1.3.3 -pkgrel=01 -pkgdesc='Minimalistic AUR helper' -arch=(x86_64) -url='https://github.com/xyproto/aget' -depends=(git openssh) -makedepends=(go git) -source=("git+$url#commit=b98582af99200e1de6db010a9aa49e0cd6d9f027") # tag: 1.3.3 - -build() { - cd $pkgname - go build -mod=vendor -gcflags "all=-trimpath=${PWD}" -asmflags "all=-trimpath=${PWD}" -ldflags "-extldflags ${LDFLAGS}" -} - -package() { - cd $pkgname - install -Dm755 $pkgname "$pkgdir/usr/bin/$pkgname" - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -#---- license gpg-key sha256sums ---- - -license=(BSD) - -sha256sums=(SKIP) - diff --git a/aget/PKGBUILD-aur b/aget/PKGBUILD-aur deleted file mode 100644 index df841ce..0000000 --- a/aget/PKGBUILD-aur +++ /dev/null @@ -1,23 +0,0 @@ -# Maintainer: Alexander F. Rødseth - -pkgname=aget -pkgver=1.3.3 -pkgrel=1 -pkgdesc='Minimalistic AUR helper' -arch=(x86_64) -url='https://github.com/xyproto/aget' -license=(BSD) -makedepends=(go git) -source=("git+$url#commit=b98582af99200e1de6db010a9aa49e0cd6d9f027") # tag: 1.3.3 -b2sums=('SKIP') - -build() { - cd $pkgname - go build -mod=vendor -gcflags "all=-trimpath=${PWD}" -asmflags "all=-trimpath=${PWD}" -ldflags "-extldflags ${LDFLAGS}" -} - -package() { - cd $pkgname - install -Dm755 $pkgname "$pkgdir/usr/bin/$pkgname" - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} diff --git a/aget/clean b/aget/clean deleted file mode 100644 index cdb0090..0000000 --- a/aget/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,aget} diff --git a/aget/deps b/aget/deps deleted file mode 100644 index b860a09..0000000 --- a/aget/deps +++ /dev/null @@ -1,3 +0,0 @@ -go -git -openssh diff --git a/appstream/PKGBUILD b/appstream/PKGBUILD new file mode 100644 index 0000000..b5c7d25 --- /dev/null +++ b/appstream/PKGBUILD @@ -0,0 +1,62 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgbase=appstream +pkgname=(appstream appstream-qt) +pkgver=0.16.2 +pkgrel=02 +pkgdesc='Provides a standard for creating app stores across distributions w/o systemd' +url='https://distributions.freedesktop.org/wiki/AppStream' +depends=(curl librsvg libyaml libxmlb) +makedepends=(meson xmlto gobject-introspection gtk-doc qt5-tools itstool vala gperf) +source=(https://www.freedesktop.org/software/appstream/releases/AppStream-$pkgver.tar.xz{,.asc} + update-appstream-cache.hook) + +build() { + meson build AppStream-$pkgver \ + --prefix=/usr \ + --libexecdir=lib \ + -Dqt=true \ + -Dvapi=true \ + -Dsystemd=false \ + -Dcompose=true + meson compile -C build +} + +package_appstream() { + meson install --destdir "$pkgdir" -C build + +# provided by -qt subpackage + rm -r "$pkgdir"/usr/{include/AppStreamQt,lib/cmake,lib/libAppStreamQt.*} + + install -Dm644 update-appstream-cache.hook "$pkgdir"/usr/share/libalpm/hooks/90-update-appstream-cache.hook +} + +package_appstream-qt() { + pkgdesc='Qt5 interface for AppStream' + depends=(appstream qt5-base) + + meson install --destdir "$pkgdir" -C build + +# provided by appstream + rm -r "$pkgdir"{/etc,/usr/{bin,include/appstream{,-compose},lib/{appstreamcli-compose,girepository-1.0,libappstream*,pkgconfig},share}} +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(GPL) + +validpgpkeys=(D33A3F0CA16B0ACC51A60738494C8A5FBF4DECEB) # Matthias Klumpp + +sha256sums=(f9cb80bd388fbf06be268afa7f2d65863c85d605ad874b905094f3982d03f232 # AppStream-0.16.2.tar.xz + 479c435f0762fc5b3143f65008bcae4bee1cc80765468ea1804c9116558dda6e # AppStream-0.16.2.tar.xz.asc + 3a96a1479cfd18dad36c2ca3181aabe46af9bf772c00b965d86ec5f55cd0e0eb) + +## 20bead659bf924444d9231e96b03f5477a68b274dd74e26def16b7cca9e90cb9 appstream-0.16.2-02-x86_64.pkg.tar.lz +## 89c9e1b6034cabcc379999fd62b8cd022d47998eefba17a96151b90f07c64f36 appstream-qt-0.16.2-02-x86_64.pkg.tar.lz diff --git a/appstream/PKGBUILD-arch b/appstream/PKGBUILD-arch new file mode 100644 index 0000000..9d224de --- /dev/null +++ b/appstream/PKGBUILD-arch @@ -0,0 +1,49 @@ +# Maintainer: Antonio Rojas +# Contributor: Jameson Pugh +# Contributor: Tim Jester-Pfadt gmx.de> + +pkgbase=appstream +pkgname=(appstream appstream-qt) +pkgver=0.16.2 +pkgrel=1 +pkgdesc='Provides a standard for creating app stores across distributions' +arch=(x86_64) +url='https://distributions.freedesktop.org/wiki/AppStream' +license=(GPL) +depends=(curl librsvg libyaml libxmlb) +makedepends=(meson xmlto gobject-introspection gtk-doc qt5-tools itstool vala gperf) +source=(https://www.freedesktop.org/software/appstream/releases/AppStream-$pkgver.tar.xz{,.asc} + update-appstream-cache.hook) +sha256sums=('f9cb80bd388fbf06be268afa7f2d65863c85d605ad874b905094f3982d03f232' + 'SKIP' + '3a96a1479cfd18dad36c2ca3181aabe46af9bf772c00b965d86ec5f55cd0e0eb') +validpgpkeys=(D33A3F0CA16B0ACC51A60738494C8A5FBF4DECEB) # Matthias Klumpp + +build() { + meson build AppStream-$pkgver \ + --prefix=/usr \ + --libexecdir=lib \ + -Dqt=true \ + -Dvapi=true \ + -Dcompose=true + meson compile -C build +} + +package_appstream() { + meson install --destdir "$pkgdir" -C build + +# provided by -qt subpackage + rm -r "$pkgdir"/usr/{include/AppStreamQt,lib/cmake,lib/libAppStreamQt.*} + + install -Dm644 update-appstream-cache.hook "$pkgdir"/usr/share/libalpm/hooks/90-update-appstream-cache.hook +} + +package_appstream-qt() { + pkgdesc='Qt5 interface for AppStream' + depends=(appstream qt5-base) + + meson install --destdir "$pkgdir" -C build + +# provided by appstream + rm -r "$pkgdir"{/etc,/usr/{bin,include/appstream{,-compose},lib/{appstreamcli-compose,girepository-1.0,libappstream*,pkgconfig},share}} +} diff --git a/appstream/clean b/appstream/clean new file mode 100644 index 0000000..a41db51 --- /dev/null +++ b/appstream/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,AppStream*.tar.*} diff --git a/appstream/deps b/appstream/deps new file mode 100644 index 0000000..e590c8b --- /dev/null +++ b/appstream/deps @@ -0,0 +1,13 @@ +librsvg +libyaml +libxmlb +meson +xmlto +gobject-introspection +gtk-doc +qt5-tools +itstool +vala +gperf + +gettext diff --git a/appstream/key b/appstream/key new file mode 100644 index 0000000..392005e --- /dev/null +++ b/appstream/key @@ -0,0 +1 @@ +gpg -v --recv-key 494C8A5FBF4DECEB diff --git a/appstream/time b/appstream/time new file mode 100644 index 0000000..5b0455c --- /dev/null +++ b/appstream/time @@ -0,0 +1,6 @@ + + +real 0m33.524s +user 0m31.142s +sys 0m2.382s + diff --git a/appstream/update-appstream-cache.hook b/appstream/update-appstream-cache.hook new file mode 100644 index 0000000..d73dff8 --- /dev/null +++ b/appstream/update-appstream-cache.hook @@ -0,0 +1,17 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = usr/share/app-info/* + +[Trigger] +Type = Package +Operation = Install +Operation = Upgrade +Target = appstream + +[Action] +Description = Updating the appstream cache... +When = PostTransaction +Exec = /usr/bin/appstreamcli refresh-cache --force diff --git a/armagetronad/PKGBUILD b/armagetronad/PKGBUILD new file mode 100644 index 0000000..e1f23db --- /dev/null +++ b/armagetronad/PKGBUILD @@ -0,0 +1,82 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=armagetronad +pkgver=0.2.9.1.1 +pkgrel=01 +pkgdesc='A Tron Clone in 3D.' +url='http://armagetronad.net/' +depends=('sdl_image' 'libxml2' 'sdl_mixer' 'ftgl' 'hicolor-icon-theme') # 'boost-libs' 'protobuf' +#'llvm14-libs') +optdepends=('python: language updater' + 'glew: Graphics on X11' + 'glew-wayland: Graphics on Wayland') +makedepends=('python') # 'git' 'boost') +conflicts=('armagetronad-git') +#source=("https://downloads.sourceforge.net/sourceforge/armagetronad/armagetronad-$pkgver.src.tar.gz") +#source=("https://downloads.sourceforge.net/sourceforge/armagetronad/armagetronad-$pkgver.tbz") +_commit=568a186d1c89e08f9a144631bbcc6bf901504203 # tags/v0.2.9.1.1 +source=("git+https://gitlab.com/armagetronad/armagetronad.git#commit=$_commit") + +#pkgver() { +# cd "${srcdir}/${_pkgname}" +# git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' +#} + +prepare() { +# cd "$srcdir/armagetronad-$pkgver" + cd "${srcdir}/${pkgname}" + 2to3 -w language/update.py + +# sed -i 's|FTGL.h|ftgl.h|g' configure +# sed -i 's|png_check_sig|png_sig_cmp|g' configure +# sed -i -r '/desktop-id/ s/()//g' desktop/armagetronad.appdata.xml.in +} + +build() { +# cd "$srcdir/armagetronad-$pkgver" + cd "${srcdir}/${pkgname}" + + ./bootstrap.sh + + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --disable-games \ + --enable-automakedefaults \ + --disable-uninstall +# sed -i -r \ +# -e 's/^LIBS = (.*)/LIBS = \1 \/usr\/lib\/libabsl_log_internal_message.so/' \ +# -e 's/^LIBS = (.*)/LIBS = \1 \/usr\/lib\/libabsl_log_internal_check_op.so/' \ +# -e 's/^LIBS = (.*)/LIBS = \1 \/usr\/lib\/libabsl_raw_logging_internal.so/' \ +# -e 's/^LIBS = (.*)/LIBS = \1 \/usr\/lib\/libabsl_spinlock_wait.so/' \ +# src/Makefile + make +} + +package() { + cd "${srcdir}/${pkgname}" + make DESTDIR="$pkgdir" install + install -D -m 644 "desktop/armagetronad.desktop" "$pkgdir/usr/share/applications/armagetronad.desktop" + for f in 16x16 32x32 48x48; do + ln -s /usr/share/armagetronad/desktop/icons/$f/armagetronad.png "$pkgdir/usr/share/icons/hicolor/$f/apps/armagetronad.png" + done + mv "$pkgdir/usr/bin/armagetronad" "$pkgdir/usr/bin/armagetronad_bin" + printf "#!/bin/bash\n/usr/bin/armagetronad_bin --configdir /etc/armagetronad --datadir /usr/share/armagetronad" > "$pkgdir/usr/bin/armagetronad" + chmod +x "$pkgdir/usr/bin/armagetronad" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=('x86_64') + +license=('GPL') + +sha256sums=(SKIP) + +## 9d7296a8580f634782d21368c89ebf7b9ecee19a3c651c8ec0e66d46e6f974cd armagetronad-0.2.9.1.1-01-x86_64.pkg.tar.lz + diff --git a/armagetronad/PKGBUILD-arch b/armagetronad/PKGBUILD-arch new file mode 100644 index 0000000..0cbfc55 --- /dev/null +++ b/armagetronad/PKGBUILD-arch @@ -0,0 +1,49 @@ +# Maintainer: Kyle Keen +# Contributor: Mateusz Herych +# Contributor: Filippo 'JoeyrS' Civiletti + +pkgname=armagetronad +pkgver=0.2.9.1.0 +pkgrel=3 +pkgdesc='A Tron Clone in 3D.' +arch=('x86_64') +url='http://armagetronad.net/' +license=('GPL') +depends=('sdl_image' 'libxml2' 'sdl_mixer' 'ftgl' 'hicolor-icon-theme') +makedepends=('python') +optdepends=('python: language updater') +#source=("https://downloads.sourceforge.net/sourceforge/armagetronad/armagetronad-$pkgver.src.tar.gz") +source=("https://downloads.sourceforge.net/sourceforge/armagetronad/armagetronad-$pkgver.tbz") +sha256sums=('59b6c7c01ce3f8cca5437e33f974a637529541a11aa4f52c1a5c17499e26f6a1') + +prepare() { + cd "$srcdir/armagetronad-$pkgver" + 2to3 -w language/update.py + + sed -i 's|FTGL.h|ftgl.h|g' configure + sed -i 's|png_check_sig|png_sig_cmp|g' configure + sed -i -r '/desktop-id/ s/()//g' desktop/armagetronad.appdata.xml.in +} + +build() { + cd "$srcdir/armagetronad-$pkgver" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --disable-games \ + --enable-automakedefaults \ + --disable-uninstall + make +} + +package() { + cd "$srcdir/armagetronad-$pkgver" + make DESTDIR="$pkgdir" install + install -D -m 644 "desktop/armagetronad.desktop" "$pkgdir/usr/share/applications/armagetronad.desktop" + for f in 16x16 32x32 48x48; do + ln -s /usr/share/armagetronad/desktop/icons/$f/armagetronad.png "$pkgdir/usr/share/icons/hicolor/$f/apps/armagetronad.png" + done + mv "$pkgdir/usr/bin/armagetronad" "$pkgdir/usr/bin/armagetronad_bin" + printf "#!/bin/bash\n/usr/bin/armagetronad_bin --configdir /etc/armagetronad --datadir /usr/share/armagetronad" > "$pkgdir/usr/bin/armagetronad" + chmod +x "$pkgdir/usr/bin/armagetronad" +} diff --git a/armagetronad/clean b/armagetronad/clean new file mode 100644 index 0000000..57fbfe3 --- /dev/null +++ b/armagetronad/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,arma*.tbz,armagetronad} diff --git a/armagetronad/deps b/armagetronad/deps new file mode 100644 index 0000000..215ca39 --- /dev/null +++ b/armagetronad/deps @@ -0,0 +1,11 @@ +git +sdl_image +libxml2 +sdl_mixer +ftgl +hicolor-icon-theme +python +automake +autoconf + + diff --git a/armagetronad/time b/armagetronad/time new file mode 100644 index 0000000..3db7302 --- /dev/null +++ b/armagetronad/time @@ -0,0 +1,4 @@ + +real 0m56.311s +user 2m52.595s +sys 0m8.668s diff --git a/asciidoc/PKGBUILD b/asciidoc/PKGBUILD new file mode 100644 index 0000000..92dea0c --- /dev/null +++ b/asciidoc/PKGBUILD @@ -0,0 +1,74 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=asciidoc +pkgver=10.2.0 +pkgrel=03 +pkgdesc='Text document format for short documents, articles, books and UNIX man pages' +url='https://asciidoc.org/' +depends=('python' 'libxslt' 'docbook-xsl') +checkdepends=('dblatex' 'graphviz' 'lilypond' 'python-pytest'{,-mock} 'source-highlight') +#makedepends=('python-pip') +makedepends=(python-{build,installer,wheel} python-setuptools) +optdepends=('graphviz: graphviz-filter' + 'lilypond: music-filter' + 'imagemagick: music-filter' + 'source-highlight: source-highlight-filter' + 'dblatex: pdf generation' + 'fop: alternative pdf generation' + 'w3m: text generation' + 'lynx: alternative text generation') +source=("https://github.com/asciidoc-py/asciidoc-py/releases/download/$pkgver/$pkgname-$pkgver.tar.gz") + +prepare() { + cd ${pkgname}-${pkgver} + # https://github.com/asciidoc-py/asciidoc-py/issues/201#issuecomment-1047494681 +# sed -i -e '/pytest$/s!$! tests/test_utils.py!' Makefile.in +# # https://github.com/asciidoc-py/asciidoc-py/issues/234 + sed -i \ + -e '/^build: /a \\tpython3 -m build -wn' \ + -e '/pip install/{s#pip install --root#installer -d#;s#\.$#dist/*.whl#}' \ + Makefile.in + + autoconf +} + + +build() { + cd ${pkgname}-${pkgver} + ./configure \ + --docdir /usr/share/doc/$pkgname \ + --prefix=/usr + make build +} + +check() { + cd ${pkgname}-${pkgver} + make test +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" docs + install -Dm0644 -t "$pkgdir/usr/share/man/man1/" doc/*.1 + # ascidocapi is deprecated, but still included in 10.x on a "provisional" basis + local _platlib="$(python -c 'import sysconfig; print(sysconfig.get_paths()["platlib"])')" + install -Dm0644 -t "${pkgdir}/${_platlib}/${pkgname}/" asciidoc/api.py +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL') + +#sha256sums=(e4da7cc2af7fa12029156c0788fde2a53db1352d7dcb3e674a9d546b3bdba93f) # asciidoc-10.1.4.tar.gz +sha256sums=(237b2ba5c35c0ae7ccd4cd44ebf1d87c20b2695dae01798954416d492ef7fa0e) # asciidoc-10.2.0.tar.gz +b2sums=('ed5db8fd1432b255e9c03e17805c26c76a42392c2ebeaf839b8c0aaaf38cd1a36d79b645ca4474503181200924df91218eb0997dd82335a30d6a0a1b35eb5730') + +## f754fa55b94285dfcd6641779f78987b2ac3bbbbbecc4ee0bd447773ac4ec4cd asciidoc-10.2.0-03-x86_64.pkg.tar.lz diff --git a/asciidoc/PKGBUILD-arch b/asciidoc/PKGBUILD-arch new file mode 100644 index 0000000..6755d69 --- /dev/null +++ b/asciidoc/PKGBUILD-arch @@ -0,0 +1,66 @@ +# Maintainer: Levente Polyak +# Maintainer: Caleb Maclennan +# Contributor: Eli Schwartz +# Contributor: Florian Pritz +# Contributor: Chris Brannon +# Contributor: Geoffroy Carrier +# Contributor: Dan McGee +# Contributor: Jaroslaw Rosiek +# Contributor: Darwin Bautista +# Contributor: Daniel J Griffiths + +pkgname=asciidoc +pkgver=10.2.0 +pkgrel=3 +pkgdesc='Text document format for short documents, articles, books and UNIX man pages' +arch=('any') +url='https://asciidoc.org/' +license=('GPL') +depends=('python' 'libxslt' 'docbook-xsl') +checkdepends=('dblatex' 'graphviz' 'lilypond' 'python-pytest'{,-mock} 'source-highlight') +makedepends=(python-{build,installer,wheel} python-setuptools) +optdepends=('graphviz: graphviz-filter' + 'lilypond: music-filter' + 'imagemagick: music-filter' + 'source-highlight: source-highlight-filter' + 'dblatex: pdf generation' + 'fop: alternative pdf generation' + 'w3m: text generation' + 'lynx: alternative text generation') +source=("https://github.com/asciidoc-py/asciidoc-py/releases/download/$pkgver/$pkgname-$pkgver.tar.gz") +sha256sums=('237b2ba5c35c0ae7ccd4cd44ebf1d87c20b2695dae01798954416d492ef7fa0e') +b2sums=('ed5db8fd1432b255e9c03e17805c26c76a42392c2ebeaf839b8c0aaaf38cd1a36d79b645ca4474503181200924df91218eb0997dd82335a30d6a0a1b35eb5730') + +prepare() { + cd ${pkgname}-${pkgver} + sed -i \ + -e '/^build: /a \\tpython3 -m build -wn' \ + -e '/pip install/{s#pip install --root#installer -d#;s#\.$#dist/*.whl#}' \ + Makefile.in + # https://github.com/asciidoc-py/asciidoc-py/issues/234 + autoconf +} + +build() { + cd ${pkgname}-${pkgver} + # https://github.com/asciidoc-py/asciidoc-py/issues/234#issuecomment-1045970138 + ./configure \ + --docdir /usr/share/doc/$pkgname \ + --prefix /usr + make build +} + +check() { + cd ${pkgname}-${pkgver} + make test +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" docs + install -Dm0644 -t "$pkgdir/usr/share/man/man1/" doc/*.1 + # ascidocapi is deprecated, but still included in 10.x on a "provisional" basis + local _platlib="$(python -c 'import sysconfig; print(sysconfig.get_paths()["platlib"])')" + install -Dm0644 -t "${pkgdir}/${_platlib}/${pkgname}/" asciidoc/api.py +} diff --git a/asciidoc/clean b/asciidoc/clean new file mode 100644 index 0000000..24a0797 --- /dev/null +++ b/asciidoc/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,asciidoc*.tar.gz} diff --git a/asciidoc/deps b/asciidoc/deps new file mode 100644 index 0000000..2cfccf0 --- /dev/null +++ b/asciidoc/deps @@ -0,0 +1,15 @@ +python-pip +libxslt +docbook-xsl +dblatex +graphviz +lilypond +python-pytest +python-pytest-mock +source-highlight +autoconf +python-build +python-installer +python-setuptools +python-typing_extensions +libgit2 diff --git a/asciidoc/time b/asciidoc/time new file mode 100644 index 0000000..9875683 --- /dev/null +++ b/asciidoc/time @@ -0,0 +1,6 @@ + + +real 0m40.905s +user 0m33.170s +sys 0m2.914s + diff --git a/at/80-atd.hook b/at/80-atd.hook new file mode 100644 index 0000000..68c8057 --- /dev/null +++ b/at/80-atd.hook @@ -0,0 +1,9 @@ +[Trigger] +Operation = Upgrade +Type = Package +Target = glibc + +[Action] +Description = Restarting atd for libc upgrade... +When = PostTransaction +Exec = /usr/bin/systemctl try-restart atd.service diff --git a/at/PKGBUILD b/at/PKGBUILD new file mode 100644 index 0000000..1af740b --- /dev/null +++ b/at/PKGBUILD @@ -0,0 +1,55 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=at +pkgver=3.2.5 +pkgrel=02 +pkgdesc='AT and batch delayed command scheduling utility and daemon w/o systemd' +arch=('x86_64') +url='https://salsa.debian.org/debian/at' +depends=('pam' 'flex') +makedepends=('smtp-forwarder' 'git') +backup=('etc/at.deny' + 'etc/pam.d/atd' + 'var/spool/atd/.SEQ') +options=('!makeflags') +source=("http://software.calhariz.com/$pkgname/${pkgname}_${pkgver}.orig.tar.gz"{,.sig} +# '80-atd.hook' # systemd restart of atd service + 'pam.conf') + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --with-jobdir=/var/spool/atd \ + --with-atspool=/var/spool/atd \ + --with-systemdsystemunitdir=no + + CFLAGS="$CFLAGS -w" make +} + +package() { + make -C "$pkgname-$pkgver" IROOT="$pkgdir" docdir=/usr/share/doc install + + install -D -m0644 pam.conf "$pkgdir"/etc/pam.d/atd +# install -D -m0644 80-atd.hook "$pkgdir"/usr/share/libalpm/hooks/80-atd.hook +} + +#---- license gpg-key sha256sums ---- + +license=('GPL') + +validpgpkeys=('464BC7CD439FEE5E8B4098A0348A778D6885EF8F') # Jose M Calhariz (Técnico) + +sha256sums=(bb066b389d7c9bb9d84a35738032b85c30cba7d949f758192adc72c9477fd3b8 # at_3.2.5.orig.tar.gz + e3096c67a4c844c67f63802369dbb316aa5288d8eb5d9cdcbc5ad4e0c868e049 # at_3.2.5.orig.tar.gz.sig +# a7048d6dbd8aa4d881979716829d16053b5007c2d83eb2167edd5221f9e48a33 80-atd.hook + 663cd2f7c5abf56d1ea3f38dfac8d3e64896f1384ca5e97b7ec6d26fd6afafef) # pam.conf + + diff --git a/at/PKGBUILD-arch b/at/PKGBUILD-arch new file mode 100644 index 0000000..f6d6668 --- /dev/null +++ b/at/PKGBUILD-arch @@ -0,0 +1,48 @@ +# Maintainer: Alexander F Rødseth +# Contributor: Nathan Baum +# Contributor: Judd Vinet +# Contributor: Todd Musall + +pkgname=at +pkgver=3.2.5 +pkgrel=2 +pkgdesc='AT and batch delayed command scheduling utility and daemon' +arch=('x86_64') +url='https://salsa.debian.org/debian/at' +license=('GPL') +depends=('pam' 'flex') +makedepends=('smtp-forwarder' 'git' 'systemd') +backup=('etc/at.deny' + 'etc/pam.d/atd' + 'var/spool/atd/.SEQ') +options=('!makeflags') +validpgpkeys=('464BC7CD439FEE5E8B4098A0348A778D6885EF8F') # Jose M Calhariz (Técnico) +source=("http://software.calhariz.com/$pkgname/${pkgname}_${pkgver}.orig.tar.gz"{,.sig} + '80-atd.hook' + 'pam.conf') +sha256sums=('bb066b389d7c9bb9d84a35738032b85c30cba7d949f758192adc72c9477fd3b8' + 'SKIP' + 'a7048d6dbd8aa4d881979716829d16053b5007c2d83eb2167edd5221f9e48a33' + '663cd2f7c5abf56d1ea3f38dfac8d3e64896f1384ca5e97b7ec6d26fd6afafef') + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --with-jobdir=/var/spool/atd \ + --with-atspool=/var/spool/atd \ + --with-systemdsystemunitdir=/usr/lib/systemd/system + + CFLAGS="$CFLAGS -w" make +} + +package() { + make -C "$pkgname-$pkgver" IROOT="$pkgdir" docdir=/usr/share/doc install + + install -D -m0644 pam.conf "$pkgdir"/etc/pam.d/atd + install -D -m0644 80-atd.hook "$pkgdir"/usr/share/libalpm/hooks/80-atd.hook +} + +# vim:set ts=2 sw=2 et: diff --git a/at/clean b/at/clean new file mode 100644 index 0000000..35bdfa3 --- /dev/null +++ b/at/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,at*tar.gz*} diff --git a/at/deps b/at/deps new file mode 100644 index 0000000..513d0c0 --- /dev/null +++ b/at/deps @@ -0,0 +1,6 @@ +git +msmtp-mta +bison + + + diff --git a/at/key b/at/key new file mode 100644 index 0000000..293ffcd --- /dev/null +++ b/at/key @@ -0,0 +1 @@ +gpg -v --recv-key 348A778D6885EF8F diff --git a/at/note b/at/note new file mode 100644 index 0000000..cf051d6 --- /dev/null +++ b/at/note @@ -0,0 +1,2 @@ +important, you must add bin and daemon users and daemon group for bin for this to build +the atd.hook to restart at was left out, it needs some thought on how to do this as to apply for both runit and s6, maybe killall atd if such service exists and is running, s6/runit will restart, need2do before next build diff --git a/at/pam.conf b/at/pam.conf new file mode 100644 index 0000000..0da9757 --- /dev/null +++ b/at/pam.conf @@ -0,0 +1,12 @@ +#%PAM-1.0 + +auth required pam_unix.so +auth required pam_env.so + +account required pam_access.so +account required pam_unix.so +account required pam_time.so + +session required pam_loginuid.so +session required pam_limits.so +session required pam_unix.so diff --git a/at/time b/at/time new file mode 100644 index 0000000..aed24e9 --- /dev/null +++ b/at/time @@ -0,0 +1,5 @@ + +real 0m5.077s +user 0m4.628s +sys 0m0.806s + diff --git a/autoconf-archive/PKGBUILD b/autoconf-archive/PKGBUILD new file mode 100644 index 0000000..82c280d --- /dev/null +++ b/autoconf-archive/PKGBUILD @@ -0,0 +1,55 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=autoconf-archive +pkgver=2023.02.20 +pkgrel=01 +epoch=1 +pkgdesc="A collection of freely re-usable Autoconf macros" +url="https://www.gnu.org/software/autoconf-archive/" +depends=('autoconf') +optdepends=('automake: macros for use with it') +source=("https://ftpmirror.gnu.org/${pkgname}/${pkgname}-${pkgver}.tar.xz"{,.sig}) + +build() { + cd ${pkgname}-${pkgver} + + ./configure --prefix=/usr + make +} + +check() { + cd ${pkgname}-${pkgver} + + make check +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL3') + +validpgpkeys=('1A4F63A13A4649B632F65EE141BC28FE99089D72') # Peter Simons + +sha256sums=(71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33 # autoconf-archive-2023.02.20.tar.xz + f994cb77402d83298c06fb212c48cb26c1b7ee80d1433f6e8318b4068b935a7c) # autoconf-archive-2023.02.20.tar.xz.sig + + +## 519882ed300e2dfd8e65b7931e6c9b1bb6979b8728f1ea6985c05f95472311c5 autoconf-archive-1:2023.02.20-01-x86_64.pkg.tar.lz + +# Note to packager: +ls -l *pkg.tar.lz +echo "you must rename this package to meet SF naming before you move to the repo" +mv $(ls -l $pkgname*pkg.tar.lz) $pkgname-$epoch_$pkgver-$pkgrel-$arch.pkg.tar.lz >pkg-mv.log + diff --git a/autoconf-archive/PKGBUILD-arch b/autoconf-archive/PKGBUILD-arch new file mode 100644 index 0000000..6f1e516 --- /dev/null +++ b/autoconf-archive/PKGBUILD-arch @@ -0,0 +1,37 @@ +# Maintainer: Jonas Witschel +# Contributor: Eli Schwartz +# Contributor: Daniel Müllner + +pkgname=autoconf-archive +pkgver=2023.02.20 +pkgrel=1 +epoch=1 +pkgdesc="A collection of freely re-usable Autoconf macros" +arch=('any') +url="https://www.gnu.org/software/autoconf-archive/" +license=('GPL3') +depends=('autoconf') +optdepends=('automake: macros for use with it') +source=("http://ftpmirror.gnu.org/${pkgname}/${pkgname}-${pkgver}.tar.xz"{,.sig}) +sha256sums=('71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33' + 'SKIP') +validpgpkeys=('1A4F63A13A4649B632F65EE141BC28FE99089D72') # Peter Simons + +build() { + cd ${pkgname}-${pkgver} + + ./configure --prefix=/usr + make +} + +check() { + cd ${pkgname}-${pkgver} + + make check +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install +} diff --git a/autoconf-archive/clean b/autoconf-archive/clean new file mode 100644 index 0000000..c004f29 --- /dev/null +++ b/autoconf-archive/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,autoconf-arc*.tar.xz*} diff --git a/autoconf-archive/deps b/autoconf-archive/deps new file mode 100644 index 0000000..74f795b --- /dev/null +++ b/autoconf-archive/deps @@ -0,0 +1,3 @@ +autoconf + + diff --git a/autoconf-archive/key b/autoconf-archive/key new file mode 100644 index 0000000..324c916 --- /dev/null +++ b/autoconf-archive/key @@ -0,0 +1 @@ +gpg -v --recv-key 41BC28FE99089D72 diff --git a/autoconf-archive/revert.patch b/autoconf-archive/revert.patch new file mode 100644 index 0000000..bb5f729 --- /dev/null +++ b/autoconf-archive/revert.patch @@ -0,0 +1,71 @@ +From 59008cc7f85e1982eb298e1c424c2e6ad5942c4a Mon Sep 17 00:00:00 2001 +From: David Seifert +Date: Sat, 12 Jun 2021 22:29:03 +0200 +Subject: [PATCH] Revert "AX_PTHREAD: target > host" + +This reverts commit 2567e0ce0f3a11b535c6b527386197fb49ff172b. + +* `AC_CANONICAL_HOST` is the system on which the actual binary will run, + `AC_CANONICAL_TARGET` is the system for which code is generated. The + Autoconf manual even mentions that + + --target=target-type + the type of system for which any compiler tools in the package produce code (**rarely needed**). +--- + m4/ax_pthread.m4 | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 +index e5858e50..9f35d139 100644 +--- a/m4/ax_pthread.m4 ++++ b/m4/ax_pthread.m4 +@@ -87,11 +87,11 @@ + # modified version of the Autoconf Macro, you may extend this special + # exception to the GPL to apply to your modified version as well. + +-#serial 30 ++#serial 31 + + AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) + AC_DEFUN([AX_PTHREAD], [ +-AC_REQUIRE([AC_CANONICAL_TARGET]) ++AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_PROG_SED]) + AC_LANG_PUSH([C]) +@@ -158,7 +158,7 @@ ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread -- + # --thread-safe: KAI C++ + # pthread-config: use pthread-config program (for GNU Pth library) + +-case $target_os in ++case $host_os in + + freebsd*) + +@@ -248,7 +248,7 @@ AS_IF([test "x$ax_pthread_clang" = "xyes"], + # definitions is, on some systems, a strong hint that pthreads support is + # correctly enabled + +-case $target_os in ++case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; +@@ -450,7 +450,7 @@ if test "x$ax_pthread_ok" = "xyes"; then + AC_CACHE_CHECK([whether more special flags are required for pthreads], + [ax_cv_PTHREAD_SPECIAL_FLAGS], + [ax_cv_PTHREAD_SPECIAL_FLAGS=no +- case $target_os in ++ case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; +@@ -480,7 +480,7 @@ if test "x$ax_pthread_ok" = "xyes"; then + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then +- case $target_os in ++ case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], diff --git a/autoconf-archive/time b/autoconf-archive/time new file mode 100644 index 0000000..8bb3782 --- /dev/null +++ b/autoconf-archive/time @@ -0,0 +1,6 @@ + + +real 0m6.341s +user 0m3.432s +sys 0m2.207s + diff --git a/autogen/10_libopts_tarball_perms.diff b/autogen/10_libopts_tarball_perms.diff deleted file mode 100644 index cce3bef..0000000 --- a/autogen/10_libopts_tarball_perms.diff +++ /dev/null @@ -1,19 +0,0 @@ -Description: Sanitize file/directory permissions and owner in libopts - tarball. Override mtime with ${BUILD_DATE} which is exported in debian/rules. - Avoid gzip timestamp. -Author: Andreas Metzler -Origin: vendor -Forwarded: no -Last-Update: 2018-07-19 - ---- a/pkg/libopts/mklibsrc.sh -+++ b/pkg/libopts/mklibsrc.sh -@@ -123,7 +123,7 @@ echo ! tar cvf ${tag}.${sfx} ${tag} - rbopts="" - [ -z "$SOURCE_DATE_EPOCH" ] \ - || ! tar --help|grep -q sort= \ -- || rbopts="--sort=name --format=gnu --clamp-mtime --mtime @$SOURCE_DATE_EPOCH" -+ || rbopts="--sort=name --format=gnu --clamp-mtime --mtime @$SOURCE_DATE_EPOCH --owner=root --group=root --mode=u+w,g-w,a+r" - - tar cvf - $rbopts ${tag} | \ - $gz > ${top_builddir}/autoopts/${tag}.${sfx} diff --git a/autogen/PKGBUILD b/autogen/PKGBUILD deleted file mode 100644 index ec58990..0000000 --- a/autogen/PKGBUILD +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=autogen -pkgver=5.18.16 -pkgrel=05 -pkgdesc="A tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text" -url="https://www.gnu.org/software/autogen/" -depends=('guile' 'libxml2' 'perl') -makedepends=('autogen' 'chrpath') -source=(https://ftp.gnu.org/gnu/${pkgname}/rel${pkgver}/${pkgname}-${pkgver}.tar.xz{,.sig} - guile-3.0.patch - 10_libopts_tarball_perms.diff) - -prepare() { - cd $pkgname-$pkgver - patch -Np1 -i ${srcdir}/guile-3.0.patch - # Reproducible man page generation - export MAN_PAGE_DATE=$(LC_ALL=C date -u -d '@$(SOURCE_DATE_EPOCH)' +%Y-%m-%d) - patch -Np1 -i ${srcdir}/10_libopts_tarball_perms.diff - sed -i 's/ -Werror / /' configure -} - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr - -# --disable-dependency-tracking - - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -} - -check() { - cd "${srcdir}/${pkgname}-${pkgver}" - make check -j1 -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install - - # Remove unrequired RPATH from binaries - for i in ${pkgdir}/usr/bin/*; do - if chrpath --list "$i"; then - chrpath --delete "$i"; - fi - done -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=('GPL3') - -validpgpkeys=('44A088E295C3A722C450590EC9EF76DEB74EE762' - '3EEE51D1355B8EC40D9F3122495143D05D0712D1') # Bruce Korb - -sha512sums=('5f12c982dbe27873f5649a96049bf019ff183c90cc0c8a9196556b0ca02e72940cd422f6d6601f68cc7d8763b1124f2765c3b1a6335fc92ba07f84b03d2a53a1' - 'SKIP' - '4864c9f20448b7eea0e36b35b15408baf5485f77fe7b1e9181c5636ab30c6871c74c654da05c6b84c8e6a057531c234a6a1e263b7465d54842c04bfc9c5b821d' - '687a725cc901b4acaa73e4503c933b949a99264647e0829902f3d9c7bc62867268cabdf2c31fe10dcfdec9b69397ef27592196b097e3c19c6b714ef84d4060a4') - -sha256sums=(f8a13466b48faa3ba99fe17a069e71c9ab006d9b1cfabe699f8c60a47d5bb49a # autogen-5.18.16.tar.xz - ac5ce9851d4b925a3f0821d9b24ab40032853e7e30d038a0a0b99e43921ed35f # autogen-5.18.16.tar.xz.sig - b8ab403ba6d0bf6d3391fbb24e41ee996eb2161081058e03f53d3340d3e36885 # guile-3.0.patch - d5fefc17ee1e44783b5340f424f9644d0dca4531b47f2be7c3e58645414729a3) # 10_libopts_tarball_perms.diff diff --git a/autogen/PKGBUILD-arch b/autogen/PKGBUILD-arch deleted file mode 100644 index 1cc4d07..0000000 --- a/autogen/PKGBUILD-arch +++ /dev/null @@ -1,55 +0,0 @@ -# Maintainer: Jan de Groot -# Contributor: Arjan Timmerman -# Contributor: Tor Krill - -pkgname=autogen -pkgver=5.18.16 -pkgrel=5 -pkgdesc="A tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text" -arch=('x86_64') -url="https://www.gnu.org/software/autogen/" -license=('GPL3') -depends=('guile' 'libxml2' 'perl') -makedepends=('autogen' 'chrpath') -source=(https://ftp.gnu.org/gnu/${pkgname}/rel${pkgver}/${pkgname}-${pkgver}.tar.xz{,.sig} - guile-3.0.patch - 10_libopts_tarball_perms.diff) -validpgpkeys=('44A088E295C3A722C450590EC9EF76DEB74EE762' - '3EEE51D1355B8EC40D9F3122495143D05D0712D1') # Bruce Korb -sha512sums=('5f12c982dbe27873f5649a96049bf019ff183c90cc0c8a9196556b0ca02e72940cd422f6d6601f68cc7d8763b1124f2765c3b1a6335fc92ba07f84b03d2a53a1' - 'SKIP' - '4864c9f20448b7eea0e36b35b15408baf5485f77fe7b1e9181c5636ab30c6871c74c654da05c6b84c8e6a057531c234a6a1e263b7465d54842c04bfc9c5b821d' - '687a725cc901b4acaa73e4503c933b949a99264647e0829902f3d9c7bc62867268cabdf2c31fe10dcfdec9b69397ef27592196b097e3c19c6b714ef84d4060a4') - -prepare() { - cd $pkgname-$pkgver - patch -Np1 -i ${srcdir}/guile-3.0.patch - # Reproducible man page generation - export MAN_PAGE_DATE=$(LC_ALL=C date -u -d '@$(SOURCE_DATE_EPOCH)' +%Y-%m-%d) - patch -Np1 -i ${srcdir}/10_libopts_tarball_perms.diff - sed -i 's/ -Werror / /' configure -} - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -} - -check() { - cd "${srcdir}/${pkgname}-${pkgver}" - make check -j1 -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install - - # Remove unrequired RPATH from binaries - for i in ${pkgdir}/usr/bin/*; do - if chrpath --list "$i"; then - chrpath --delete "$i"; - fi - done -} diff --git a/autogen/clean b/autogen/clean deleted file mode 100644 index b3926ce..0000000 --- a/autogen/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,autoge*tar.xz*} diff --git a/autogen/deps b/autogen/deps deleted file mode 100644 index f078b5f..0000000 --- a/autogen/deps +++ /dev/null @@ -1,7 +0,0 @@ -libxml2 -autogen -chrpath -automake - - -autoconf diff --git a/autogen/guile-3.0.patch b/autogen/guile-3.0.patch deleted file mode 100644 index 218c83c..0000000 --- a/autogen/guile-3.0.patch +++ /dev/null @@ -1,50 +0,0 @@ -# Patch origin: https://sourceforge.net/p/autogen/bugs/196/#1a10 - -Index: autogen-5.18.16/agen5/guile-iface.h -=================================================================== ---- autogen-5.18.16.orig/agen5/guile-iface.h -+++ autogen-5.18.16/agen5/guile-iface.h -@@ -9,16 +9,13 @@ - # error AutoGen does not work with this version of Guile - choke me. - --#elif GUILE_VERSION < 203000 -+#else - # define AG_SCM_IS_PROC(_p) scm_is_true( scm_procedure_p(_p)) - # define AG_SCM_LIST_P(_l) scm_is_true( scm_list_p(_l)) - # define AG_SCM_PAIR_P(_p) scm_is_true( scm_pair_p(_p)) - # define AG_SCM_TO_LONG(_v) scm_to_long(_v) - # define AG_SCM_TO_ULONG(_v) ((unsigned long)scm_to_ulong(_v)) - --#else --# error unknown GUILE_VERSION -- choke me. - #endif - - #endif /* MUTATING_GUILE_IFACE_H_GUARD */ -Index: autogen-5.18.16/configure -=================================================================== ---- autogen-5.18.16.orig/configure -+++ autogen-5.18.16/configure -@@ -14798,7 +14798,7 @@ $as_echo "no" >&6; } - PKG_CONFIG="" - fi - fi -- _guile_versions_to_search="2.2 2.0 1.8" -+ _guile_versions_to_search="3.0 2.2 2.0 1.8" - if test -n "$GUILE_EFFECTIVE_VERSION"; then - _guile_tmp="" - for v in $_guile_versions_to_search; do -Index: autogen-5.18.16/config/guile.m4 -=================================================================== ---- autogen-5.18.16.orig/config/guile.m4 -+++ autogen-5.18.16/config/guile.m4 -@@ -61,7 +61,7 @@ - # - AC_DEFUN([GUILE_PKG], - [PKG_PROG_PKG_CONFIG -- _guile_versions_to_search="m4_default([$1], [2.2 2.0 1.8])" -+ _guile_versions_to_search="m4_default([$1], [3.0 2.2 2.0 1.8])" - if test -n "$GUILE_EFFECTIVE_VERSION"; then - _guile_tmp="" - for v in $_guile_versions_to_search; do diff --git a/autogen/key b/autogen/key deleted file mode 100644 index 55356a3..0000000 --- a/autogen/key +++ /dev/null @@ -1 +0,0 @@ -gpg -v --recv-key 495143D05D0712D1 diff --git a/autogen/time b/autogen/time deleted file mode 100644 index 8affaf9..0000000 --- a/autogen/time +++ /dev/null @@ -1,4 +0,0 @@ -real 2m54.962s -user 0m44.055s -sys 0m5.400s - diff --git a/cmus-git/PKGBUILD b/cmus-git/PKGBUILD deleted file mode 100644 index 88f6e9f..0000000 --- a/cmus-git/PKGBUILD +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=cmus-git -pkgver=v2.9.1.r25.g54d7213 -pkgrel=02 -pkgdesc="Small, fast and powerful console music player for Unix-like operating systems." -arch=('x86_64' 'aarch64') -url="https://cmus.github.io/" -depends=('ncurses' 'libdiscid') -makedepends=('git' - 'faad2' - 'ffmpeg' - 'flac' - 'jack' - 'libao' - 'libcdio-paranoia' - 'libmad' - 'libmodplug' - 'libmp4v2' - 'libmpcdec' - 'libpulse' - 'libsamplerate' - 'libvorbis' - 'opusfile' - 'wavpack') -optdepends=('alsa-lib: for ALSA output plugin support' - 'libao: for AO output plugin support' - 'libpulse: for PulseAudio output plugin support' - 'faad2: for AAC input plugin support' - 'ffmpeg: for ffmpeg input plugin support' - 'flac: for flac input plugin support' - 'jack: for jack plugin support' - 'libmad: for mp3 input plugin support' - 'libmodplug: for modplug input plugin support' - 'libmp4v2: for mp4 input plugin support' - 'libmpcdec: for musepack input plugin support' - 'libsamplerate: for sampe rate converter support' - 'libvorbis: for vorbis input plugin support' - 'libcdio-paranoia: for cdio support' - 'opusfile: for opus input plugin support' - 'wavpack: for wavpack input plugin support') -conflicts=('cmus') -provides=('cmus') -source=('git+https://github.com/cmus/cmus.git') -_gitname=cmus - -pkgver() { - cd "$_gitname" - git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g' -} - -build() { - cd "$_gitname" - ./configure prefix=/usr - make -} - -package() { - cd "$_gitname" - make DESTDIR="$pkgdir" install - install -Dm644 contrib/cmus.bash-completion "$pkgdir"/usr/share/bash-completion/completions/cmus - install -Dm644 contrib/_cmus "$pkgdir"/usr/share/zsh/site-functions/_cmus -} - -#---- license gpg-key sha256sums ---- - -license=(GPL) - -sha256sums=(SKIP) - diff --git a/cmus-git/PKGBUILD-aur b/cmus-git/PKGBUILD-aur deleted file mode 100644 index 87415d7..0000000 --- a/cmus-git/PKGBUILD-aur +++ /dev/null @@ -1,65 +0,0 @@ -# Maintainer: Kamran Mackey - -pkgname=cmus-git -pkgver=v2.9.1.r25.g54d7213 -pkgrel=2 -pkgdesc="Small, fast and powerful console music player for Unix-like operating systems." -arch=('x86_64' 'aarch64') -url="https://cmus.github.io/" -depends=('ncurses' 'libdiscid') -makedepends=('git' - 'faad2' - 'ffmpeg' - 'flac' - 'jack' - 'libao' - 'libcdio-paranoia' - 'libmad' - 'libmodplug' - 'libmp4v2' - 'libmpcdec' - 'libpulse' - 'libsamplerate' - 'libvorbis' - 'opusfile' - 'wavpack') -optdepends=('alsa-lib: for ALSA output plugin support' - 'libao: for AO output plugin support' - 'libpulse: for PulseAudio output plugin support' - 'faad2: for AAC input plugin support' - 'ffmpeg: for ffmpeg input plugin support' - 'flac: for flac input plugin support' - 'jack: for jack plugin support' - 'libmad: for mp3 input plugin support' - 'libmodplug: for modplug input plugin support' - 'libmp4v2: for mp4 input plugin support' - 'libmpcdec: for musepack input plugin support' - 'libsamplerate: for sampe rate converter support' - 'libvorbis: for vorbis input plugin support' - 'libcdio-paranoia: for cdio support' - 'opusfile: for opus input plugin support' - 'wavpack: for wavpack input plugin support') -conflicts=('cmus') -provides=('cmus') -license=('GPL') -source=('git+https://github.com/cmus/cmus.git') -sha512sums=('SKIP') -_gitname=cmus - -pkgver() { - cd "$_gitname" - git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g' -} - -build() { - cd "$_gitname" - ./configure prefix=/usr - make -} - -package() { - cd "$_gitname" - make DESTDIR="$pkgdir" install - install -Dm644 contrib/cmus.bash-completion "$pkgdir"/usr/share/bash-completion/completions/cmus - install -Dm644 contrib/_cmus "$pkgdir"/usr/share/zsh/site-functions/_cmus -} diff --git a/cmus-git/clean b/cmus-git/clean deleted file mode 100644 index aa28e90..0000000 --- a/cmus-git/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,cmus} diff --git a/cmus-git/deps b/cmus-git/deps deleted file mode 100644 index bbbcee5..0000000 --- a/cmus-git/deps +++ /dev/null @@ -1,17 +0,0 @@ -libdiscid -git -faad2 -ffmpeg -flac -jack2 -libao -libcdio-paranoia -libmad -libmodplug -libmp4v2 -libmpcdec -libpulse -libsamplerate -libvorbis -opusfile -wavpack diff --git a/cmus-git/time b/cmus-git/time deleted file mode 100644 index b77345b..0000000 --- a/cmus-git/time +++ /dev/null @@ -1,3 +0,0 @@ -real 0m12.920s -user 0m22.504s -sys 0m1.719s diff --git a/consolekit2/PKGBUILD-aur b/consolekit2/PKGBUILD-aur new file mode 100644 index 0000000..2aa18e0 --- /dev/null +++ b/consolekit2/PKGBUILD-aur @@ -0,0 +1,56 @@ +# Maintainer: picokan +# Contributor: artoo +# Contributor: micwoj92 + +_pkgname=ConsoleKit2 + +pkgname=consolekit +pkgver=1.2.5 +pkgrel=4 +pkgdesc="A framework for defining and tracking users, login sessions, and seats" +arch=('i686' 'x86_64') +url="https://github.com/ConsoleKit2/ConsoleKit2" +license=('GPL') +provides=('elogind') +depends=('dbus' 'glib2' 'libx11' 'polkit-consolekit' 'udev' 'zlib' 'python3') +makedepends=('acl' 'xmlto' 'docbook-xsl') +options=('libtool') +install=consolekit.install +source=("$url/archive/refs/tags/$pkgver.tar.gz" + 'consolekit.tmpfiles.conf') +sha256sums=('d82eeab0c830acdb720e910b5b7bf59db0d3eb922c4390f15cf19bb035742caa' + '778552dc12b3c235bde200e476d4262da0c135f3f6f8b3e975a87881d1f154d1') + +build(){ + cd $srcdir/$_pkgname-$pkgver + + ./autogen.sh \ + --prefix=/usr \ + --sysconfdir=/etc \ + --sbindir=/usr/bin \ + --with-rundir=/run \ + --libexecdir=/usr/lib/ConsoleKit \ + --localstatedir=/var \ + --enable-polkit \ + --enable-pam-module \ + --enable-udev-acl \ + --enable-docbook-docs \ + --with-dbus-services=/usr/share/dbus-1/services \ + --with-xinitrc-dir=/etc/X11/xinit/xinitrc.d \ + --with-pam-module-dir=/usr/lib/security \ + --without-systemdsystemunitdir \ + --disable-cgroups + + make +} + +package() { + cd $srcdir/$_pkgname-$pkgver + make DESTDIR="$pkgdir" install + + install -Dm644 "$srcdir"/consolekit.tmpfiles.conf "$pkgdir"/usr/lib/tmpfiles.d/consolekit.conf + + rm -rf "${pkgdir}"/run +} + +# vim:set ts=4 sts=4 sw=4 et: diff --git a/consolekit2/consolekit.install b/consolekit2/consolekit.install new file mode 100644 index 0000000..1d8daab --- /dev/null +++ b/consolekit2/consolekit.install @@ -0,0 +1,14 @@ +#!/bin/sh + +post_install() { + echo " You may add" + echo " -session optional pam_ck_connector.so nox11" + echo " to /etc/pam.d/system-login" + echo " to register tty sessions with ConsoleKit daemon." +} + +post_upgrade() { + post_install +} + +# vim:set ts=4 sts=4 sw=4 et: diff --git a/devtools/PKGBUILD b/devtools/PKGBUILD deleted file mode 100644 index adb0066..0000000 --- a/devtools/PKGBUILD +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=devtools -pkgver=20230307 -pkgrel=01 -pkgdesc='Tools for Arch and Joborun Linux package maintainers' -url='https://gitlab.archlinux.org/archlinux/devtools' -depends=('bash' 'openssh' 'subversion' 'rsync' 'arch-install-scripts' - 'git' 'breezy' 'mercurial' 'diffutils' 'util-linux' 'awk') -makedepends=('asciidoc') -optdepends=('btrfs-progs: btrfs support') -source=(${url}/uploads/dd8ad73d91417e228d94134e238b9043/devtools-${pkgver}.tar.gz - ${url}/uploads/3b99e9787a1ccbaf0cd3b7f1380f9e2e/devtools-${pkgver}.tar.gz.sig) - -build() { - cd ${pkgname}-${pkgver} - make BUILDTOOLVER="${pkgver}-${pkgrel}-${arch}" PREFIX=/usr -} - -package() { - cd ${pkgname}-${pkgver} - make PREFIX=/usr DESTDIR="${pkgdir}" install -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=('GPL') - -validpgpkeys=('4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC' # Pierre Schmitz - '86CFFCA918CF3AF47147588051E8B148A9999C34' # Evangelos Foutras - '8FC15A064950A99DD1BD14DD39E4B877E62EB915' # Sven-Hendrik Haase - 'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig) - 'B81B051F2D7FC867AAFF35A58DBD63B82072D77A' # Sébastien Luttringer - '6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae (Developer) - 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8') # Levente Polyak - -sha256sums=(0e1f8d7f37882cf18e79ab7e74581d79593e0f15f10b378b2443f0a2d557b523 # devtools-20230307.tar.gz - dfddc0463916f368b91b5e462bd9401d2dc9c9e509e66c0509bfc3814d9db4a3) # devtools-20230307.tar.gz.sig - -## 99143f1dfab0eed5c0db34937aee68822e996eba35fc62c672d5b5c977b2ee82 devtools-20230307-01-x86_64.pkg.tar.lz - - diff --git a/devtools/PKGBUILD-arch b/devtools/PKGBUILD-arch deleted file mode 100644 index adc1dc4..0000000 --- a/devtools/PKGBUILD-arch +++ /dev/null @@ -1,41 +0,0 @@ -# Maintainer: Levente Polyak -# Maintainer: Pierre Schmitz - -pkgname=devtools -pkgver=20230307 -pkgrel=1 -pkgdesc='Tools for Arch Linux package maintainers' -arch=('any') -license=('GPL') -url='https://gitlab.archlinux.org/archlinux/devtools' -depends=('bash' 'openssh' 'subversion' 'rsync' 'arch-install-scripts' - 'git' 'bzr' 'mercurial' 'diffutils' 'util-linux' 'awk') -makedepends=('asciidoc') -optdepends=('btrfs-progs: btrfs support') -source=(${url}/uploads/dd8ad73d91417e228d94134e238b9043/devtools-${pkgver}.tar.gz - ${url}/uploads/3b99e9787a1ccbaf0cd3b7f1380f9e2e/devtools-${pkgver}.tar.gz.sig) -validpgpkeys=( - '4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC' # Pierre Schmitz - '86CFFCA918CF3AF47147588051E8B148A9999C34' # Evangelos Foutras - '8FC15A064950A99DD1BD14DD39E4B877E62EB915' # Sven-Hendrik Haase - 'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig) - 'B81B051F2D7FC867AAFF35A58DBD63B82072D77A' # Sébastien Luttringer - '6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae (Developer) - 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak -) -sha256sums=('0e1f8d7f37882cf18e79ab7e74581d79593e0f15f10b378b2443f0a2d557b523' - 'SKIP') -b2sums=('348ad392840f49a71f17b39bf71a3a18d3610293de29029c0dcacb7aa23cef437258ec2f9dd454ac782ece82656d75af55a669a2f42294cd7fb6b041a79d2259' - 'SKIP') - -build() { - cd ${pkgname}-${pkgver} - make BUILDTOOLVER="${pkgver}-${pkgrel}-${arch}" PREFIX=/usr -} - -package() { - cd ${pkgname}-${pkgver} - make PREFIX=/usr DESTDIR="${pkgdir}" install -} - -# vim: ts=2 sw=2 et: diff --git a/devtools/clean b/devtools/clean deleted file mode 100644 index 9c6acc1..0000000 --- a/devtools/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,devtools-*tar.gz*} diff --git a/devtools/deps b/devtools/deps deleted file mode 100644 index 6c6b44a..0000000 --- a/devtools/deps +++ /dev/null @@ -1,9 +0,0 @@ -asciidoc -openssh -subversion -rsync -arch-install-scripts -git -breezy -mercurial - diff --git a/devtools/devtools-mkarchroot-remove-deprecated-d-option.patch b/devtools/devtools-mkarchroot-remove-deprecated-d-option.patch deleted file mode 100644 index f7f9bc5..0000000 --- a/devtools/devtools-mkarchroot-remove-deprecated-d-option.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a510331698bb13ca11ccd7db3f9beef75f87744c Mon Sep 17 00:00:00 2001 -From: Morten Linderud -Date: Mon, 21 Nov 2022 10:51:02 +0100 -Subject: [PATCH] mkarchroot: remove deprecated -d option - -It's been deprecated for a few years now. - -https://github.com/archlinux/arch-install-scripts/commit/91562aa99cd8237a2dec1aff5101949e40bf7d75 - -Signed-off-by: Morten Linderud ---- - src/mkarchroot.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/mkarchroot.in b/src/mkarchroot.in -index d199bed..45ad19c 100644 ---- a/src/mkarchroot.in -+++ b/src/mkarchroot.in -@@ -81,7 +81,7 @@ for file in "${files[@]}"; do - cp "$file" "$working_dir$file" - done - --unshare --mount pacstrap -${umode}Mcd ${pac_conf:+-C "$pac_conf"} "$working_dir" \ -+unshare --mount pacstrap -${umode}Mc ${pac_conf:+-C "$pac_conf"} "$working_dir" \ - "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages' - - printf '%s.UTF-8 UTF-8\n' C en_US de_DE > "$working_dir/etc/locale.gen" --- -GitLab - diff --git a/devtools/key b/devtools/key deleted file mode 100644 index d350d70..0000000 --- a/devtools/key +++ /dev/null @@ -1 +0,0 @@ -gpg -v --recv-key FC1B547C8D8172C8 diff --git a/devtools/makepkg.conf-set-LTOFLAGS-flto-auto.patch b/devtools/makepkg.conf-set-LTOFLAGS-flto-auto.patch deleted file mode 100644 index 02c2eda..0000000 --- a/devtools/makepkg.conf-set-LTOFLAGS-flto-auto.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 00571896cc776222f14d9f67627ba6fb54512bd7 Mon Sep 17 00:00:00 2001 -From: Evangelos Foutras -Date: Sun, 6 Mar 2022 10:59:47 +0200 -Subject: [PATCH] makepkg.conf: set LTOFLAGS="-flto=auto" - -For use with pacman 6.0.1-4 which backports support for LTOFLAGS in -order to speed up builds that use gcc as the compiler. This is less -useful when clang is used, though a hack would be to specify in the -PKGBUILD `LTOFLAGS="-flto=thin"` (outside of any function). ---- - makepkg-x86_64.conf | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/makepkg-x86_64.conf b/makepkg-x86_64.conf -index 19d16f7..7725296 100644 ---- a/makepkg-x86_64.conf -+++ b/makepkg-x86_64.conf -@@ -45,6 +45,7 @@ CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ - -fstack-clash-protection -fcf-protection" - CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" - LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" -+LTOFLAGS="-flto=auto" - #RUSTFLAGS="-C opt-level=2" - #-- Make Flags: change this for DistCC/SMP systems - #MAKEFLAGS="-j2" diff --git a/devtools/time b/devtools/time deleted file mode 100644 index c167c63..0000000 --- a/devtools/time +++ /dev/null @@ -1,5 +0,0 @@ - -real 0m3.535s -user 0m8.214s -sys 0m0.614s - diff --git a/etc-update/PKGBUILD b/etc-update/PKGBUILD new file mode 100644 index 0000000..7b2f718 --- /dev/null +++ b/etc-update/PKGBUILD @@ -0,0 +1,34 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname='etc-update' +pkgdesc="CLI to interactively merge .pacnew configuration files" +pkgver=2.3.99 +pkgrel=03 ## 20230114 rebuild on new ed +arch=('any') +url="https://wiki.gentoo.org/wiki/Handbook:X86/Portage/Tools#etc-update" +depends=('bash' 'ed') +makedepends=('git') +optdepends=('dialog: for the menu mode') +backup=("etc/etc-update.conf") +source=("https://github.com/gentoo/portage/archive/portage-${pkgver}.tar.gz") + +package() { + cd portage-portage-${pkgver} + install -vDm755 bin/${pkgname} -t "${pkgdir}/usr/bin" + install -vDm644 cnf/${pkgname}.conf -t "${pkgdir}/etc" + install -vDm644 man/${pkgname}.1 -t "${pkgdir}/usr/share/man/man1" +} + +#---- license gpg-key sha256sums ---- + +license=('GPL') +sha512sums=('aa5f955c191106855bc802e6991e51c309ee6727b8a2cb57ab4ca28f48e1f7959a718b54b0b60e22559c436d370da8c1847ddfdc09b3ed823cde8d688be015f6') +b2sums=('25065893dff649d6380a6e6debc6461c015e225811f26dbe994a572a4434feee241ac9b22f48cadd0f5071e6d76f1a69f7607e36e108e7a244c5795e5e6dd9f6') + +sha256sums=(fc5dcc37033d876360c8427d1b6afbdb29786a675d6741909fb341da54568a1d) # portage-2.3.99.tar.gz + diff --git a/etc-update/PKGBUILD-arch b/etc-update/PKGBUILD-arch new file mode 100644 index 0000000..7fce033 --- /dev/null +++ b/etc-update/PKGBUILD-arch @@ -0,0 +1,25 @@ +# Maintainer: Alexander Epaneshnikov +# Contributor: Kewl +# Contributor: Adam Nielsen + +pkgname='etc-update' +pkgdesc="CLI to interactively merge .pacnew configuration files" +pkgver=2.3.99 +pkgrel=2 +arch=('any') +url="https://wiki.gentoo.org/wiki/Handbook:X86/Portage/Tools#etc-update" +license=('GPL') +depends=('bash') +makedepends=('git') +optdepends=('dialog: for the menu mode') +backup=("etc/etc-update.conf") +source=("https://github.com/gentoo/portage/archive/portage-${pkgver}.tar.gz") +sha512sums=('aa5f955c191106855bc802e6991e51c309ee6727b8a2cb57ab4ca28f48e1f7959a718b54b0b60e22559c436d370da8c1847ddfdc09b3ed823cde8d688be015f6') +b2sums=('25065893dff649d6380a6e6debc6461c015e225811f26dbe994a572a4434feee241ac9b22f48cadd0f5071e6d76f1a69f7607e36e108e7a244c5795e5e6dd9f6') + +package() { + cd portage-portage-${pkgver} + install -vDm755 bin/${pkgname} -t "${pkgdir}/usr/bin" + install -vDm644 cnf/${pkgname}.conf -t "${pkgdir}/etc" + install -vDm644 man/${pkgname}.1 -t "${pkgdir}/usr/share/man/man1" +} diff --git a/etc-update/clean b/etc-update/clean new file mode 100644 index 0000000..8138dd1 --- /dev/null +++ b/etc-update/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,porta*tar.gz*} diff --git a/etc-update/deps b/etc-update/deps new file mode 100644 index 0000000..d6a01e7 --- /dev/null +++ b/etc-update/deps @@ -0,0 +1,2 @@ +ed +git diff --git a/etc-update/time b/etc-update/time new file mode 100644 index 0000000..88c8eb3 --- /dev/null +++ b/etc-update/time @@ -0,0 +1,6 @@ + + +real 0m1.405s +user 0m1.115s +sys 0m0.394s + diff --git a/expac/PKGBUILD b/expac/PKGBUILD new file mode 100644 index 0000000..d364b5b --- /dev/null +++ b/expac/PKGBUILD @@ -0,0 +1,35 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=expac +pkgver=10 +pkgrel=05 +pkgdesc='alpm data (pacman database) extraction utility' +arch=(x86_64) +url="https://github.com/falconindy/$pkgname" +depends=(pacman) +makedepends=(git + meson + perl) +source=("git+$url.git?signed&tag=$pkgver") + +build() { + arch-meson "$pkgname" build + meson compile -C build +} + +package() { + meson install -C build --destdir "$pkgdir" +} + +#---- license gpg-key sha256sums ---- + +license=(GPL) + +validpgpkeys=('487EACC08557AD082088DABA1EB2638FF56C0C53') # Dave Reisner + +sha256sums=(SKIP) diff --git a/expac/PKGBUILD-arch b/expac/PKGBUILD-arch new file mode 100644 index 0000000..0dc66a0 --- /dev/null +++ b/expac/PKGBUILD-arch @@ -0,0 +1,27 @@ +# Maintainer: Caleb Maclennan +# Maintainer: Morgan +# Contributor: Dave Reisner + +pkgname=expac +pkgver=10 +pkgrel=5 +pkgdesc='alpm data (pacman database) extraction utility' +arch=(x86_64) +url="https://github.com/falconindy/$pkgname" +license=(GPL) +depends=(pacman) +makedepends=(git + meson + perl) +source=("git+$url.git?signed&tag=$pkgver") +validpgpkeys=('487EACC08557AD082088DABA1EB2638FF56C0C53') # Dave Reisner +md5sums=('SKIP') + +build() { + arch-meson "$pkgname" build + meson compile -C build +} + +package() { + meson install -C build --destdir "$pkgdir" +} diff --git a/expac/clean b/expac/clean new file mode 100644 index 0000000..8775c90 --- /dev/null +++ b/expac/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,expac} diff --git a/expac/deps b/expac/deps new file mode 100644 index 0000000..5da639b --- /dev/null +++ b/expac/deps @@ -0,0 +1,2 @@ +meson +git diff --git a/expac/key b/expac/key new file mode 100644 index 0000000..27428ff --- /dev/null +++ b/expac/key @@ -0,0 +1 @@ +gpg -v --recv-key 1EB2638FF56C0C53 diff --git a/expac/time b/expac/time new file mode 100644 index 0000000..f0e1ef4 --- /dev/null +++ b/expac/time @@ -0,0 +1,5 @@ + +real 0m4.557s +user 0m2.681s +sys 0m0.346s + diff --git a/firejail/PKGBUILD b/firejail/PKGBUILD new file mode 100644 index 0000000..2304def --- /dev/null +++ b/firejail/PKGBUILD @@ -0,0 +1,43 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=firejail +pkgver=0.9.72 +pkgrel=01 +pkgdesc='Linux namespaces sandbox program' +arch=('x86_64') +url=https://github.com/netblue30/firejail +depends=('apparmor') +optdepends=('xdg-dbus-proxy: for D-Bus filtering') +backup=('etc/apparmor.d/local/firejail-default' + 'etc/firejail/firecfg.config' + 'etc/firejail/firejail.config' + 'etc/firejail/login.users') +#install=firejail.install +source=("$url/releases/download/$pkgver/$pkgname-$pkgver.tar.xz"{,.asc}) + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr --enable-apparmor + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} + +#---- license gpg-key sha256sums ---- + +license=('GPL2') + +validpgpkeys=('F951164995F5C4006A73411E2CCB36ADFC5849A7') + +sha256sums=(82e177c48cfc87f62b088b55efc53ff4612b9740aab5ea35cbf2395e83efe7f4 # firejail-0.9.72.tar.xz + 112f4cbc6b29dce82b8b8532e717bbd004a8c647b84b3d2e5feb40ea20262aaf) # firejail-0.9.72.tar.xz.asc + + diff --git a/firejail/PKGBUILD-arch b/firejail/PKGBUILD-arch new file mode 100644 index 0000000..38f7803 --- /dev/null +++ b/firejail/PKGBUILD-arch @@ -0,0 +1,36 @@ +# Maintainer: Sergej Pupykin +# Maintainer: Daniel M. Capella +# Maintainer: T.J. Townsend +# Contributor: ajs124 < aur AT ajs124 DOT de > + +pkgname=firejail +pkgver=0.9.72 +pkgrel=1 +pkgdesc='Linux namespaces sandbox program' +arch=('x86_64') +url=https://github.com/netblue30/firejail +license=('GPL2') +depends=('apparmor') +optdepends=('xdg-dbus-proxy: for D-Bus filtering') +backup=('etc/apparmor.d/local/firejail-default' + 'etc/firejail/firecfg.config' + 'etc/firejail/firejail.config' + 'etc/firejail/login.users') +install=firejail.install +source=("$url/releases/download/$pkgver/$pkgname-$pkgver.tar.xz"{,.asc}) +sha256sums=('82e177c48cfc87f62b088b55efc53ff4612b9740aab5ea35cbf2395e83efe7f4' + 'SKIP') +b2sums=('3d57b345476cb62399859622c88f5d6c22842da5894045c09bc7d84229ec2a01c494e4e9393b6fba6c668f73c6b7046f9a014a315baa5bc56d1479b9cad178a7' + 'SKIP') +validpgpkeys=('F951164995F5C4006A73411E2CCB36ADFC5849A7') + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr --enable-apparmor + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/firejail/clean b/firejail/clean new file mode 100644 index 0000000..f68f134 --- /dev/null +++ b/firejail/clean @@ -0,0 +1 @@ +rm -rf {firej*.tar.xz*,src,pkg} diff --git a/firejail/deps b/firejail/deps new file mode 100644 index 0000000..f71c2ed --- /dev/null +++ b/firejail/deps @@ -0,0 +1,3 @@ +apparmor + + diff --git a/firejail/firejail.install b/firejail/firejail.install new file mode 100644 index 0000000..ca1b7ec --- /dev/null +++ b/firejail/firejail.install @@ -0,0 +1,5 @@ +# Firejail installation file + +post_install() { + echo "In order to use the apparmor integration with firejail, install the apparmor package and run as root: 'apparmor_parser -r /etc/apparmor.d/firejail-default'" +} diff --git a/firejail/key b/firejail/key new file mode 100644 index 0000000..384ccaf --- /dev/null +++ b/firejail/key @@ -0,0 +1 @@ +gpg -v --recv-keys 2CCB36ADFC5849A7 diff --git a/firejail/note b/firejail/note new file mode 100644 index 0000000..484759b --- /dev/null +++ b/firejail/note @@ -0,0 +1 @@ +Arch has retained this old notice through a post-install note but apparmor_parser no longer exists in the past 3 versions of apparmor - so we ommitted this useless install notice and since firejail is built on the presence of apparmor we believe it is preconfigured, it doesn't need manual intervention diff --git a/firejail/time b/firejail/time new file mode 100644 index 0000000..51f8e27 --- /dev/null +++ b/firejail/time @@ -0,0 +1,6 @@ + + +real 0m26.881s +user 0m24.917s +sys 0m2.747s + diff --git a/focuswriter-qt6/PKGBUILD b/focuswriter-qt6/PKGBUILD new file mode 100644 index 0000000..a106a6b --- /dev/null +++ b/focuswriter-qt6/PKGBUILD @@ -0,0 +1,41 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=focuswriter-qt6 +_pkgname=focuswriter +pkgver=1.8.4 +pkgrel=01 +pkgdesc='Simple, distraction-free word processor qt6 based' +url='https://gottcode.org/focuswriter/' +depends=('hicolor-icon-theme' 'hunspell' 'qt6-multimedia' 'qt6-5compat') +makedepends=('cmake' 'qt6-tools') +conflicts=(focuswriter) +provides=(focuswriter) +source=("https://gottcode.org/$_pkgname/$_pkgname-$pkgver.tar.bz2"{,.asc}) + +build() { + cmake -B build -S $_pkgname-$pkgver \ + -DCMAKE_INSTALL_PREFIX=/usr + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL3') + +validpgpkeys=('57E4D43C10CD7EDB8360C84774FFC7F02C4F6B37') + +sha256sums=(1bced0935d89df2aed09ab72891ce968787cf560e3a198e2b4d75af0c4064a0c # focuswriter-1.8.4.tar.bz2 + 20c4fc0cf5a5faf2f95bed36ef850e8464632bdcd05b0caf5feaf38b53d824b6) # focuswriter-1.8.4.tar.bz2.asc + +## 4a5e4f0edbe06fdf155415237bb3c297f0508bda320eba8c05b46bac065b7df9 focuswriter-qt6-1.8.4-01-x86_64.pkg.tar.lz diff --git a/focuswriter-qt6/PKGBUILD-arch b/focuswriter-qt6/PKGBUILD-arch new file mode 100644 index 0000000..4c1bba5 --- /dev/null +++ b/focuswriter-qt6/PKGBUILD-arch @@ -0,0 +1,26 @@ +# Maintainer: Balló György +# Contributor: Graeme Gott + +pkgname=focuswriter +pkgver=1.8.4 +pkgrel=1 +pkgdesc='Simple, distraction-free word processor' +arch=('x86_64') +url='https://gottcode.org/focuswriter/' +license=('GPL3') +depends=('hicolor-icon-theme' 'hunspell' 'qt6-multimedia' 'qt6-5compat') +makedepends=('cmake' 'qt6-tools') +source=("https://gottcode.org/$pkgname/$pkgname-$pkgver.tar.bz2"{,.asc}) +sha256sums=('1bced0935d89df2aed09ab72891ce968787cf560e3a198e2b4d75af0c4064a0c' + 'SKIP') +validpgpkeys=('57E4D43C10CD7EDB8360C84774FFC7F02C4F6B37') + +build() { + cmake -B build -S $pkgname-$pkgver \ + -DCMAKE_INSTALL_PREFIX=/usr + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build +} diff --git a/focuswriter-qt6/clean b/focuswriter-qt6/clean new file mode 100644 index 0000000..fed84ef --- /dev/null +++ b/focuswriter-qt6/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,focus*tar.bz2*,keys} diff --git a/focuswriter-qt6/deps b/focuswriter-qt6/deps new file mode 100644 index 0000000..f9247da --- /dev/null +++ b/focuswriter-qt6/deps @@ -0,0 +1,10 @@ +hicolor-icon-theme +hunspell +cmake +qt6-multimedia-ffmpeg +qt6-tools +qt6-5compat +jack2 +libgit2 + + diff --git a/focuswriter-qt6/key b/focuswriter-qt6/key new file mode 100644 index 0000000..8633532 --- /dev/null +++ b/focuswriter-qt6/key @@ -0,0 +1,2 @@ +gpg --recv-keys 985E2893FB0862D5 + diff --git a/focuswriter-qt6/note b/focuswriter-qt6/note new file mode 100644 index 0000000..a078e94 --- /dev/null +++ b/focuswriter-qt6/note @@ -0,0 +1,33 @@ + +With focuswriter > 1.8.0 being based on qt6 if you don't have anything else qt6 based the load of dependencies is enormous. +Functionality is very little changed and so are the aesthetic qualities of the program. +Most likely you have a few other qt5 based applications so sticking to a qt5 edition makes sense. +Here is the difference due to new qt6 dependencies: + +This is after an upgrade to focuswriter 1.8.0-1 +and going back down to our own 1.7.6 rebuilt against qt5 + +Package (7) Old Version Net Change + +libb2 0.98.1-2 -0.12 MiB +qt6-5compat 6.3.1-1 -1.29 MiB +qt6-base 6.3.0-04 -56.34 MiB +qt6-multimedia 6.3.1-1 -2.56 MiB +qt6-translations 6.3.1-1 -12.82 MiB +vulkan-headers 1:1.3.213-01 -16.72 MiB +focuswriter 1.8.0-1 -8.27 MiB + +Total Removed Size: 98.13 MiB + +Package (1) New Version Net Change + +focuswriter 1.7.6-04 8.08 MiB + + +91MB more or 1200% the size of the application. + +You make your own choice, we just make it easier for you. + +read the note on ../focuswriter for the older 1.7.8 +qt5 based pkg. + diff --git a/focuswriter-qt6/time b/focuswriter-qt6/time new file mode 100644 index 0000000..c2ed28c --- /dev/null +++ b/focuswriter-qt6/time @@ -0,0 +1,6 @@ + + +real 3m17.426s +user 3m8.858s +sys 0m11.523s + diff --git a/focuswriter/PKGBUILD b/focuswriter/PKGBUILD new file mode 100644 index 0000000..bf37424 --- /dev/null +++ b/focuswriter/PKGBUILD @@ -0,0 +1,63 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=focuswriter +pkgver=1.7.6 +pkgrel=06 +# a remake of the old qt5 version on latest qt5-tools just in case an incompatibility crips up +# although qt5 has been frozen and has ended, kde/plasma development forces frequent qt5- patches +pkgdesc='Simple, distraction-free word processor qt5 based' +url='https://gottcode.org/focuswriter/' +depends=('hicolor-icon-theme' 'hunspell' 'qt5-multimedia') +makedepends=('qt5-tools') +source=("https://gottcode.org/$pkgname/$pkgname-$pkgver-src.tar.bz2"{,.asc}) + +build() { + cd $pkgname-$pkgver + qmake-qt5 PREFIX=/usr + make +} + +package() { + cd $pkgname-$pkgver + make INSTALL_ROOT="$pkgdir" install +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL3') + +validpgpkeys=('57E4D43C10CD7EDB8360C84774FFC7F02C4F6B37') + +sha256sums=(34f576a49c9fe64aedad66e02efafc29c840b6c3ddc98a42d87dfda499710541 # focuswriter-1.7.6-src.tar.bz2 + 1b7cfde0e453e410e1123c4c26332a23faeff2dfede22ceb8b49b19bb5e2c2b7) # focuswriter-1.7.6-src.tar.bz2.asc + +## a16c01990fe5fa4126ec36d772416a1c574d59c84c4126542dc5688e7656d280 focuswriter-1.7.6-06-x86_64.pkg.tar.lz + +## +## This is the difference between qt5 and qt6 based focuswriter, for a 6MB simple editor +## 96MB more in qt6 dependencies - This is your plasma-mania at work +## +#Package (8) Old Version New Version Net Change Download Size +# +#extra/libb2 0.98.1-2 0.12 MiB +#extra/qt6-5compat 6.5.0-1 1.65 MiB 0.44 MiB +#jobextra/qt6-base 6.5.0-03 54.38 MiB +#extra/qt6-multimedia 6.5.0-1 4.79 MiB 0.90 MiB +#extra/qt6-multimedia-ffmpeg 6.5.0-1 0.39 MiB 0.13 MiB +#extra/qt6-translations 6.5.0-1 12.89 MiB 1.69 MiB +#jobextra/vulkan-headers 1:1.3.240-01 20.34 MiB +#community/focuswriter 1.7.6-05 1.8.4-1 0.43 MiB 6.09 MiB +# +#Total Download Size: 9.24 MiB +#Total Installed Size: 102.97 MiB +#Net Upgrade Size: 95.00 MiB +# +#:: Proceed with installation? [Y/n] n + diff --git a/focuswriter/PKGBUILD-arch b/focuswriter/PKGBUILD-arch new file mode 100644 index 0000000..55988fe --- /dev/null +++ b/focuswriter/PKGBUILD-arch @@ -0,0 +1,32 @@ +# Maintainer: Balló György +# Contributor: Graeme Gott + +pkgname=focuswriter +pkgver=1.7.6 +pkgrel=3 +pkgdesc='Simple, distraction-free word processor' +arch=('x86_64') +url='https://gottcode.org/focuswriter/' +license=('GPL3') +depends=('hicolor-icon-theme' 'hunspell' 'qt5-multimedia') +makedepends=('qt5-tools') +source=("https://gottcode.org/$pkgname/$pkgname-$pkgver-src.tar.bz2"{,.asc}) +sha256sums=('34f576a49c9fe64aedad66e02efafc29c840b6c3ddc98a42d87dfda499710541' + 'SKIP') +validpgpkeys=('57E4D43C10CD7EDB8360C84774FFC7F02C4F6B37') + +prepare() { + cd $pkgname-$pkgver + sed -i '/INSTALLS +=/ s/ pixmap//' focuswriter.pro +} + +build() { + cd $pkgname-$pkgver + qmake-qt5 PREFIX=/usr + make +} + +package() { + cd $pkgname-$pkgver + make INSTALL_ROOT="$pkgdir" install +} diff --git a/focuswriter/clean b/focuswriter/clean new file mode 100644 index 0000000..fed84ef --- /dev/null +++ b/focuswriter/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,focus*tar.bz2*,keys} diff --git a/focuswriter/deps b/focuswriter/deps new file mode 100644 index 0000000..7a6abfe --- /dev/null +++ b/focuswriter/deps @@ -0,0 +1,6 @@ +hicolor-icon-theme +hunspell +qt5-multimedia +qt5-tools + + diff --git a/focuswriter/key b/focuswriter/key new file mode 100644 index 0000000..8633532 --- /dev/null +++ b/focuswriter/key @@ -0,0 +1,2 @@ +gpg --recv-keys 985E2893FB0862D5 + diff --git a/focuswriter/note b/focuswriter/note new file mode 100644 index 0000000..0949b1b --- /dev/null +++ b/focuswriter/note @@ -0,0 +1,50 @@ +With focuswriter 1.8.0 being based on qt6 if you don't have anything else qt6 based the load of dependencies is enormous. +Functionality is very little changed and so are the aesthetic qualities of the program. +Most likely you have a few other qt5 based applications so sticking to a qt5 edition makes sense. +Here is the difference due to new qt6 dependencies: + +This is after an upgrade to focuswriter 1.8.0-1 +and going back down to our own 1.7.6 rebuilt against qt5 + +Package (7) Old Version Net Change + +libb2 0.98.1-2 -0.12 MiB +qt6-5compat 6.3.1-1 -1.29 MiB +qt6-base 6.3.0-04 -56.34 MiB +qt6-multimedia 6.3.1-1 -2.56 MiB +qt6-translations 6.3.1-1 -12.82 MiB +vulkan-headers 1:1.3.213-01 -16.72 MiB +focuswriter 1.8.0-1 -8.27 MiB + +Total Removed Size: 98.13 MiB + +Package (1) New Version Net Change + +focuswriter 1.7.6-04 8.08 MiB + + +91MB more or 1200% the size of the application. + +You make your own choice, we just make it easier for you. + +With focuswriter 1.8.2 qt6 is not just needed but now +qt5 is being replaced gradually by a qt6-qt5 compatibility +layer, so for now we keep the 1.7.6 version that is +qt5 based and made 1.8.2 sepparately, found in focuswriter-qt6 +jobcomm.git + +This is why both are listed in the jobcomm repository. + +This is a simple document writing pad program, not +something exposed to network security, and some of us +tend to keep the simplest, smallest, with equivalent +functionality, rather than run behind the latest +gadgetry for everything. But remember this is Qt, and +they have a culture of forcing older based Qt sw to +fail to force developers into their latest non-free +licensed base. + +Qt5 base is only supported for paying licensed customers, +therefore a huge violation in the principles of FOSS. + + diff --git a/focuswriter/time b/focuswriter/time new file mode 100644 index 0000000..91878b2 --- /dev/null +++ b/focuswriter/time @@ -0,0 +1,5 @@ + +real 1m34.662s +user 4m51.860s +sys 0m15.695s + diff --git a/gconf/01_xml-gettext-domain.patch b/gconf/01_xml-gettext-domain.patch deleted file mode 100644 index d1323f6..0000000 --- a/gconf/01_xml-gettext-domain.patch +++ /dev/null @@ -1,362 +0,0 @@ -# Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks. -# Ubuntu: https://bugs.launchpad.net/bugs/123025 -# Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845 ---- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400 -+++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400 -@@ -52,6 +52,7 @@ struct _MarkupEntry - char *schema_name; - char *mod_user; - GTime mod_time; -+ const char *gettext_domain; - }; - - static LocalSchemaInfo* local_schema_info_new (void); -@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry - gconf_schema_get_type (schema)); - gconf_schema_set_owner (current_schema, - gconf_schema_get_owner (schema)); -+ gconf_schema_set_gettext_domain (current_schema, -+ gconf_schema_get_gettext_domain (schema)); - } - - /* Update mod time */ -@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent - else if (c_local_schema && c_local_schema->long_desc) - gconf_schema_set_long_desc (schema, c_local_schema->long_desc); - -+ gconf_schema_set_gettext_domain (schema, entry->gettext_domain); -+ - return retval; - } - } -@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext - const char *ltype; - const char *list_type; - const char *owner; -+ - GConfValueType vtype; -- const char *dummy1, *dummy2, *dummy3, *dummy4; -+ const char *dummy1, *dummy2, *dummy3, *dummy4, *dummy5; - - #if 0 - g_assert (ELEMENT_IS ("entry") || -@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext - "muser", &dummy2, - "mtime", &dummy3, - "schema", &dummy4, -+ "gettext_domain", &dummy5, - - NULL)) - return; -@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext - const char *mtime; - const char *schema; - const char *type; -+ const char *gettext_domain; - const char *dummy1, *dummy2, *dummy3, *dummy4; - const char *dummy5, *dummy6, *dummy7; - GConfValue *value; -@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext - mtime = NULL; - schema = NULL; - type = NULL; -+ gettext_domain = NULL; - - if (!locate_attributes (context, element_name, attribute_names, attribute_values, - error, -@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext - "mtime", &mtime, - "schema", &schema, - "type", &type, -+ "gettext_domain", &gettext_domain, - - /* These are allowed but we don't use them until - * parse_value_element -@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext - */ - if (schema) - entry->schema_name = g_strdup (schema); -+ -+ if (gettext_domain) -+ entry->gettext_domain = g_intern_string (gettext_domain); - } - else - { -@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value, - GConfSchema *schema; - GConfValueType stype; - const char *owner; -+ const char *gettext_domain; - - schema = gconf_value_get_schema (value); - -@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value, - - g_free (s); - } -+ -+ gettext_domain = gconf_schema_get_gettext_domain (schema); -+ -+ if (gettext_domain) -+ { -+ char *s; -+ -+ s = g_markup_escape_text (gettext_domain, -1); -+ -+ if (fprintf (f, " gettext_domain=\"%s\"", s) < 0) -+ { -+ g_free (s); -+ return FALSE; -+ } -+ -+ g_free (s); -+ } - - if (stype == GCONF_VALUE_LIST) - { -diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd ---- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400 -+++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400 -@@ -7,7 +7,7 @@ - -- -+ - - - -diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c ---- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400 -+++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400 -@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem - cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : ""); - cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : ""); - cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : ""); -+ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : ""); - - { - gchar* encoded; -@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con - gconf_schema_set_owner(sc, cs->owner); - } - -+ if (*cs->gettext_domain != '\0') -+ { -+ if (!g_utf8_validate (cs->gettext_domain, -1, NULL)) -+ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema")); -+ else -+ gconf_schema_set_gettext_domain(sc, cs->gettext_domain); -+ } -+ - { - GConfValue* val; - -diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c ---- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400 -+++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400 -@@ -32,9 +32,10 @@ typedef struct { - GConfValueType car_type; /* Pair car type of the described entry */ - GConfValueType cdr_type; /* Pair cdr type of the described entry */ - gchar* locale; /* Schema locale */ -- gchar* owner; /* Name of creating application */ -+ const gchar* owner; /* Name of creating application */ - gchar* short_desc; /* 40 char or less description, no newlines */ - gchar* long_desc; /* could be a paragraph or so */ -+ const gchar* gettext_domain; /* description gettext domain */ - GConfValue* default_value; /* Default value of the key */ - } GConfRealSchema; - -@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc) - g_free (real->locale); - g_free (real->short_desc); - g_free (real->long_desc); -- g_free (real->owner); - - if (real->default_value) - gconf_value_free (real->default_value); -@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc - - dest->long_desc = g_strdup (real->long_desc); - -- dest->owner = g_strdup (real->owner); -+ dest->gettext_domain = real->gettext_domain; -+ -+ dest->owner = real->owner; - - dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL; - -@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc - REAL_SCHEMA (sc)->locale = NULL; - } - -+void -+gconf_schema_set_gettext_domain (GConfSchema* sc, const gchar* domain) -+{ -+ g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL)); -+ -+ if (domain) -+ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain); -+ else -+ REAL_SCHEMA (sc)->gettext_domain = NULL; -+} -+ - void - gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc) - { -@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc, - { - g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL)); - -- if (REAL_SCHEMA (sc)->owner) -- g_free (REAL_SCHEMA (sc)->owner); -- - if (owner) -- REAL_SCHEMA (sc)->owner = g_strdup (owner); -+ REAL_SCHEMA (sc)->owner = g_intern_string (owner); - else - REAL_SCHEMA (sc)->owner = NULL; - } -@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema - return FALSE; - } - -+ if (real->gettext_domain && !g_utf8_validate (real->gettext_domain, -1, NULL)) -+ { -+ g_set_error (err, GCONF_ERROR, -+ GCONF_ERROR_FAILED, -+ _("Schema contains invalid UTF-8")); -+ return FALSE; -+ } -+ - if (real->owner && !g_utf8_validate (real->owner, -1, NULL)) - { - g_set_error (err, GCONF_ERROR, -@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche - } - - const char* -+gconf_schema_get_gettext_domain (const GConfSchema *schema) -+{ -+ g_return_val_if_fail (schema != NULL, NULL); -+ -+ return REAL_SCHEMA (schema)->gettext_domain; -+} -+ -+static inline const char * -+schema_translate (const GConfSchema *schema, -+ const char *string) -+{ -+ if (REAL_SCHEMA (schema)->gettext_domain) -+ { -+ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8"); -+ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string); -+ } -+ else -+ return string; -+} -+ -+const char* - gconf_schema_get_short_desc (const GConfSchema *schema) - { - g_return_val_if_fail (schema != NULL, NULL); - -- return REAL_SCHEMA (schema)->short_desc; -+ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc); - } - - const char* -@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS - { - g_return_val_if_fail (schema != NULL, NULL); - -- return REAL_SCHEMA (schema)->long_desc; -+ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc); - } - - const char* -diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h ---- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400 -+++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400 -@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type - GConfValueType type); - void gconf_schema_set_locale (GConfSchema *sc, - const gchar *locale); -+void gconf_schema_set_gettext_domain (GConfSchema *sc, -+ const gchar *domain); - void gconf_schema_set_short_desc (GConfSchema *sc, - const gchar *desc); - void gconf_schema_set_long_desc (GConfSchema *sc, -@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ - GConfValueType gconf_schema_get_car_type (const GConfSchema *schema); - GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema); - const char* gconf_schema_get_locale (const GConfSchema *schema); -+const char* gconf_schema_get_gettext_domain(const GConfSchema *schema); - const char* gconf_schema_get_short_desc (const GConfSchema *schema); - const char* gconf_schema_get_long_desc (const GConfSchema *schema); - const char* gconf_schema_get_owner (const GConfSchema *schema); -diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c ---- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400 -+++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400 -@@ -3295,6 +3295,7 @@ struct _SchemaInfo { - GConfValueType cdr_type; - GConfValue* global_default; - GHashTable* hash; -+ gchar* gettext_domain; - }; - - static int -@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node, - else - g_printerr (_("WARNING: empty node")); - } -+ else if (strcmp((char *)iter->name, "gettext_domain") == 0) -+ { -+ tmp = (char *)xmlNodeGetContent(iter); -+ if (tmp) -+ { -+ info->gettext_domain = g_strdup(tmp); -+ xmlFree(tmp); -+ } -+ } - else - g_printerr (_("WARNING: node <%s> not understood below \n"), - iter->name); -@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch - if (info->owner != NULL) - gconf_schema_set_owner(schema, info->owner); - -+ if (info->gettext_domain != NULL) -+ gconf_schema_set_gettext_domain(schema, info->gettext_domain); -+ - xmlFree(name); - - /* Locale-specific info */ -@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch - info.apply_to = NULL; - info.owner = NULL; - info.global_default = NULL; -+ info.gettext_domain = NULL; - info.hash = g_hash_table_new(g_str_hash, g_str_equal); - - extract_global_info(node, &info); -@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch - ; /* nothing */ - else if (strcmp((char *)iter->name, "applyto") == 0) - ; /* nothing */ -+ else if (strcmp((char *)iter->name, "gettext_domain") == 0) -+ ; /* nothing */ - else if (strcmp((char *)iter->name, "locale") == 0) - { - process_locale_info(iter, &info); -diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl ---- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400 -+++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400 -@@ -16,6 +16,7 @@ struct ConfigSchema { - string short_desc; - string long_desc; - string owner; -+ string gettext_domain; - // Work around lack of recursive data types - string encoded_default_value; - }; diff --git a/gconf/PKGBUILD b/gconf/PKGBUILD deleted file mode 100644 index 8de266d..0000000 --- a/gconf/PKGBUILD +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=gconf -pkgver=3.2.6+11+g07808097 -pkgrel=010 -pkgdesc="A configuration database system for gksu libgksu from old-Gnome" -url="https://projects-old.gnome.org/gconf/" -arch=($CARCH) -depends=(libxml2 polkit libldap dbus-glib python) -makedepends=(git intltool gtk-doc gobject-introspection gnome-common) -install=gconf.install -_commit=0780809731c8ab1c364202b1900d3df106b28626 # The latest and last commit, dug out from deep within the waves of time... -source=("git+https://gitlab.gnome.org/Archive/gconf.git#commit=$_commit" - 01_xml-gettext-domain.patch gconf-reload.patch - gconf-merge-schema gconfpkg gconf-{install,remove}.hook) - -prepare() { - cd $pkgname - - # Patch from fedora - reloads gconf after installing schemas - patch -Np1 -i ../gconf-reload.patch - - # http://bugzilla.gnome.org/show_bug.cgi?id=568845 - patch -Np1 -i ../01_xml-gettext-domain.patch - - # The following line copied from Fedora - # https://src.fedoraproject.org/rpms/GConf2/blob/70ed26d67b563d858a84505622d11f41879a6b37/f/GConf2.spec#_90 - 2to3 --write --nobackup gsettings/gsettings-schema-convert - - sed -i '1s|#!/usr/bin/env python$|#!/usr/bin/python|' gsettings/gsettings-schema-convert - - NOCONFIGURE=1 ./autogen.sh -} - -build() { - cd $pkgname - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --libexecdir=/usr/lib \ - --enable-defaults-service \ - --disable-gtk-doc \ - --disable-static \ - --disable-orbit - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -} - -check() { - cd $pkgname - make check -} - -package() { - DESTDIR="$pkgdir" make -C $pkgname install - - install -d "$pkgdir/etc/gconf/gconf.xml.system" - install -D gconf-merge-schema gconfpkg -t "$pkgdir/usr/bin" - install -Dm644 ./*.hook -t "$pkgdir/usr/share/libalpm/hooks" - - # fix dbus policy location - --with-dbusdir doesn't work - install -Dm644 "$pkgdir/etc/dbus-1/system.d/org.gnome.GConf.Defaults.conf" -t "$pkgdir/usr/share/dbus-1/system.d" - rm -rf "$pkgdir/etc/dbus-1/" -} - -#---- license gpg-key sha256sums ---- - -license=(LGPL) - -sha256sums=(SKIP # gconf cloned repository - c883dec2b96978874a53700cfe7f26f24f8296767203e970bc6402b4b9945eb8 # 01_xml-gettext-domain.patch - 567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694 # gconf-reload.patch - ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028 # gconf-merge-schema - bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898 # gconfpkg - 2732b2a6b187c5620105a036bde12edee99669605f70cbde56fe5f39619c3dc0 # gconf-install.hook - 436a65ff290095bc3d35d7d6297cf4d647f61e9f9922cea7ef9f1e251b447ff7) # gconf-remove.hook diff --git a/gconf/PKGBUILD-aur b/gconf/PKGBUILD-aur deleted file mode 100644 index a2d6e26..0000000 --- a/gconf/PKGBUILD-aur +++ /dev/null @@ -1,74 +0,0 @@ -# Maintainer: João Figueiredo -# Contributor: Jan de Groot - -pkgname=gconf -pkgver=3.2.6+11+g07808097 -pkgrel=10 -pkgdesc="An obsolete configuration database system" -url="https://projects-old.gnome.org/gconf/" -arch=($CARCH) -license=(LGPL) -depends=(libxml2 polkit libldap dbus-glib python) -makedepends=(git intltool gtk-doc gobject-introspection gnome-common) -install=gconf.install -_commit=0780809731c8ab1c364202b1900d3df106b28626 # The latest and last commit, dug out from deep within the waves of time... -source=("git+https://gitlab.gnome.org/Archive/gconf.git#commit=$_commit" - 01_xml-gettext-domain.patch gconf-reload.patch - gconf-merge-schema gconfpkg gconf-{install,remove}.hook) -sha256sums=('SKIP' - 'c883dec2b96978874a53700cfe7f26f24f8296767203e970bc6402b4b9945eb8' - '567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694' - 'ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028' - 'bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898' - '2732b2a6b187c5620105a036bde12edee99669605f70cbde56fe5f39619c3dc0' - '436a65ff290095bc3d35d7d6297cf4d647f61e9f9922cea7ef9f1e251b447ff7') - -prepare() { - cd $pkgname - - # Patch from fedora - reloads gconf after installing schemas - patch -Np1 -i ../gconf-reload.patch - - # http://bugzilla.gnome.org/show_bug.cgi?id=568845 - patch -Np1 -i ../01_xml-gettext-domain.patch - - # The following line copied from Fedora - # https://src.fedoraproject.org/rpms/GConf2/blob/70ed26d67b563d858a84505622d11f41879a6b37/f/GConf2.spec#_90 - 2to3 --write --nobackup gsettings/gsettings-schema-convert - - sed -i '1s|#!/usr/bin/env python$|#!/usr/bin/python|' gsettings/gsettings-schema-convert - - NOCONFIGURE=1 ./autogen.sh -} - -build() { - cd $pkgname - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --libexecdir=/usr/lib \ - --enable-defaults-service \ - --disable-gtk-doc \ - --disable-static \ - --disable-orbit - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -} - -check() { - cd $pkgname - make check -} - -package() { - DESTDIR="$pkgdir" make -C $pkgname install - - install -d "$pkgdir/etc/gconf/gconf.xml.system" - install -D gconf-merge-schema gconfpkg -t "$pkgdir/usr/bin" - install -Dm644 ./*.hook -t "$pkgdir/usr/share/libalpm/hooks" - - # fix dbus policy location - --with-dbusdir doesn't work - install -Dm644 "$pkgdir/etc/dbus-1/system.d/org.gnome.GConf.Defaults.conf" -t "$pkgdir/usr/share/dbus-1/system.d" - rm -rf "$pkgdir/etc/dbus-1/" -} diff --git a/gconf/clean b/gconf/clean deleted file mode 100644 index 4004be8..0000000 --- a/gconf/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,gconf} diff --git a/gconf/gconf-install.hook b/gconf/gconf-install.hook deleted file mode 100644 index 9991854..0000000 --- a/gconf/gconf-install.hook +++ /dev/null @@ -1,11 +0,0 @@ -[Trigger] -Type = File -Operation = Install -Operation = Upgrade -Target = usr/share/gconf/schemas/*.schemas - -[Action] -Description = Installing GConf schemas... -When = PostTransaction -Exec = /bin/bash -c 'while read -r f; do f=$(basename "$f" .schemas); /usr/bin/gconfpkg --install $f; done' -NeedsTargets diff --git a/gconf/gconf-merge-schema b/gconf/gconf-merge-schema deleted file mode 100755 index 992c162..0000000 --- a/gconf/gconf-merge-schema +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -if [ ! "$1" -a ! "$2" ]; then - echo "Usage: $0 output.schemas [--domain gettextdomain] file1.schemas [file2.schemas [...]]" - exit 1 -fi - -OUTFILE="$1" -DOMAIN="" -shift - -if [ "$1" = "--domain" ]; then - shift - DOMAIN=$1 - shift -fi - -echo '' > "$OUTFILE" -echo '' >> "$OUTFILE" - -while [ "$1" ]; do - if [ -f "$1" ]; then - sed -e '/||g' \ - -e 's|||g' \ - -e 's|||g' \ - -e 's|||g' "$1" >> "$OUTFILE" - fi - shift -done - -echo '' >> "$OUTFILE" -if [ "$DOMAIN" != "" ]; then - sed -ri "s/^([[:space:]]*)()/\1$DOMAIN<\/gettext_domain>\n\1\2/; /^[[:space:]]*[[:space:]]*\$/ d; /^$/d; s/<\/schema>$/&\n/" "$OUTFILE" -fi diff --git a/gconf/gconf-reload.patch b/gconf/gconf-reload.patch deleted file mode 100644 index 910f0da..0000000 --- a/gconf/gconf-reload.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- GConf-2.16.0/gconf/gconftool.c.orig 2006-10-14 17:37:14.000000000 +0000 -+++ GConf-2.16.0/gconf/gconftool.c 2006-10-14 17:39:27.000000000 +0000 -@@ -963,6 +963,8 @@ main (int argc, char** argv) - - gconf_engine_unref (conf); - -+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL); -+ - return retval; - } - -@@ -975,6 +977,8 @@ main (int argc, char** argv) - - gconf_engine_unref (conf); - -+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL); -+ - return retval; - } - diff --git a/gconf/gconf-remove.hook b/gconf/gconf-remove.hook deleted file mode 100644 index 8206d1e..0000000 --- a/gconf/gconf-remove.hook +++ /dev/null @@ -1,10 +0,0 @@ -[Trigger] -Type = File -Operation = Remove -Target = usr/share/gconf/schemas/*.schemas - -[Action] -Description = Uninstalling GConf schemas... -When = PreTransaction -Exec = /bin/bash -c 'while read -r f; do f=$(basename "$f" .schemas); /usr/bin/gconfpkg --uninstall $f; done' -NeedsTargets diff --git a/gconf/gconf.install b/gconf/gconf.install deleted file mode 100644 index c88756b..0000000 --- a/gconf/gconf.install +++ /dev/null @@ -1,3 +0,0 @@ -post_upgrade() { - pkill -fx /usr/lib/gconfd-2 || : -} diff --git a/gconf/gconfpkg b/gconf/gconfpkg deleted file mode 100755 index 72021e4..0000000 --- a/gconf/gconfpkg +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh - -usage() { -cat << _EOF -Usage: - gconfpkg [OPTION] [PACKAGE] - - Help Options: - -?, --help Show help options - - Application Options: - --install Install schemas for a given package - --uninstall Uninstall schemas for a given package - -_EOF -} - -install() { - GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \ - /usr/bin/gconftool-2 --makefile-install-rule /usr/share/gconf/schemas/${pkgname}.schemas >/dev/null -} - -uninstall() { - if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then - schemas=/usr/share/gconf/schemas/${pkgname}.schemas - elif [ -f /opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then - schemas=/opt/gnome/share/gconf/schemas/${pkgname}.schemas - else - schemas=`pacman -Ql ${pkgname} | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'` - fi - GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \ - /usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas} >/dev/null -} - -if [ -z "$2" ]; then - usage -else - pkgname="$2" - case "$1" in - --install) - install - ;; - --uninstall) - uninstall - ;; - *) - usage - ;; - esac -fi diff --git a/gconf/sums b/gconf/sums deleted file mode 100644 index 9da491a..0000000 --- a/gconf/sums +++ /dev/null @@ -1,6 +0,0 @@ -01_xml-gettext-domain.patch -gconf-reload.patch -gconf-merge-schema -gconfpkg -gconf-install.hook -gconf-remove.hook diff --git a/gconf/time b/gconf/time deleted file mode 100644 index 8c5ad6a..0000000 --- a/gconf/time +++ /dev/null @@ -1,5 +0,0 @@ - -real 0m33.680s -user 0m40.455s -sys 0m3.930s - diff --git a/gcr-4/PKGBUILD-arch.new b/gcr-4/PKGBUILD-arch.new deleted file mode 100644 index b9c047d..0000000 --- a/gcr-4/PKGBUILD-arch.new +++ /dev/null @@ -1,72 +0,0 @@ -# Maintainer: Jan Alexander Steffens (heftig) -# Contributor: Ionut Biru - -pkgbase=gcr-4 -pkgname=(gcr-4 gcr-4-docs) -pkgver=4.1.0 -pkgrel=1 -pkgdesc="A library for bits of crypto UI and parsing" -url="https://gitlab.gnome.org/GNOME/gcr" -arch=(x86_64) -license=(GPL2) -depends=( - glib2 - libgcrypt - libsecret - openssh - p11-kit - systemd -) -makedepends=( - gi-docgen - git - gobject-introspection - gtk4 - meson - vala -) -_commit=3376d13fd57215a6a75d83edce0b010c7483342a # tags/4.1.0^0 -source=("git+https://gitlab.gnome.org/GNOME/gcr.git#commit=$_commit") -b2sums=('SKIP') - -pkgver() { - cd gcr - git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' -} - -prepare() { - cd gcr -} - -build() { - arch-meson gcr build - meson compile -C build -} - -check() { - # Secure memory tests fail - dbus-run-session meson test -C build --print-errorlogs || : -} - -package_gcr-4() { - optdepends=('gtk4: gcr-viewer-gtk4') - provides=( - libgck-2.so - libgcr-4.so - ) - install=gcr-4.install - - meson install -C build --destdir "$pkgdir" - - mkdir -p doc/usr/share - mv {"$pkgdir",doc}/usr/share/doc -} - -package_gcr-4-docs() { - pkgdesc+=" (documentation)" - depends=() - - mv doc/* "$pkgdir" -} - -# vim:set sw=2 sts=-1 et: diff --git a/gcr/PKGBUILD-arch.new b/gcr/PKGBUILD-arch.new deleted file mode 100644 index 5604daa..0000000 --- a/gcr/PKGBUILD-arch.new +++ /dev/null @@ -1,71 +0,0 @@ -# Maintainer: Jan Alexander Steffens (heftig) -# Contributor: Ionut Biru - -pkgbase=gcr -pkgname=(gcr gcr-docs) -pkgver=3.41.1 -pkgrel=4 -pkgdesc="A library for bits of crypto UI and parsing" -url="https://gitlab.gnome.org/GNOME/gcr" -arch=(x86_64) -license=(GPL2) -depends=( - gtk3 - libgcrypt - libsecret - openssh - p11-kit -) -makedepends=( - gi-docgen - git - gobject-introspection - libxslt - meson - vala -) -_commit=664f8d8619cc6d661bd863107824efbac383a9bf # tags/3.41.1^0 -source=("git+https://gitlab.gnome.org/GNOME/gcr.git#commit=$_commit") -b2sums=('SKIP') - -pkgver() { - cd gcr - git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' -} - -prepare() { - cd gcr -} - -build() { - # ssh-agent moved to gcr-4 - arch-meson gcr build -D ssh_agent=false - meson compile -C build -} - -check() { - # Secure memory tests fail - dbus-run-session meson test -C build --print-errorlogs || : -} - -package_gcr() { - provides=( - libgck-1.so - libgcr-{base,ui}-3.so - ) - install=gcr.install - - meson install -C build --destdir "$pkgdir" - - mkdir -p doc/usr/share - mv {"$pkgdir",doc}/usr/share/doc -} - -package_gcr-docs() { - pkgdesc+=" (documentation)" - depends=() - - mv doc/* "$pkgdir" -} - -# vim:set sw=2 sts=-1 et: diff --git a/geany/PKGBUILD b/geany/PKGBUILD new file mode 100644 index 0000000..5c341d9 --- /dev/null +++ b/geany/PKGBUILD @@ -0,0 +1,44 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=geany +pkgver=1.38 +pkgrel=03 +pkgdesc='Fast and lightweight IDE' +arch=(x86_64) +url='https://www.geany.org/' +depends=(gtk3) +makedepends=(doxygen intltool python-lxml) +optdepends=('geany-plugins: additional functionality' + 'vte3: embedded terminal support') +source=("https://download.geany.org/$pkgname-$pkgver.tar.bz2" + 'paste.patch::https://github.com/geany/geany/commit/c832f316a670f7c3d34f5c75d63743e2f9bf6563.patch') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../paste.patch +} + +build() { + cd $pkgname-$pkgver + ./configure --enable-gtk3 --enable-gtkdoc-header --prefix=/usr + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +package() { + make -C $pkgname-$pkgver DESTDIR="$pkgdir" install +} + +#---- license gpg-key sha256sums ---- + +license=(GPL) + +sha256sums=(abff176e4d48bea35ee53037c49c82f90b6d4c23e69aed6e4a5ca8ccd3aad546 # geany-1.38.tar.bz2 + ec7818ffd90f7a0f83c00b622484ea46d7748c8c824b9fc940b78f5d2caa12a4) # paste.patch + + diff --git a/geany/PKGBUILD-arch b/geany/PKGBUILD-arch new file mode 100644 index 0000000..794a7db --- /dev/null +++ b/geany/PKGBUILD-arch @@ -0,0 +1,37 @@ +# Maintainer: Alexander F. Rødseth +# Contributor: Angel Velasquez +# Contributor: Ionut Biru +# Contributor: William Rea +# Contributor: Allan McRae + +pkgname=geany +pkgver=1.38 +pkgrel=3 +pkgdesc='Fast and lightweight IDE' +arch=(x86_64) +url='https://www.geany.org/' +license=(GPL) +depends=(gtk3) +makedepends=(doxygen intltool python-lxml) +optdepends=('geany-plugins: additional functionality' + 'vte3: embedded terminal support') +source=("https://download.geany.org/$pkgname-$pkgver.tar.bz2" + 'paste.patch::https://github.com/geany/geany/commit/c832f316a670f7c3d34f5c75d63743e2f9bf6563.patch') +b2sums=('3dda3a7454f96be18de95f8dfeb7a6ee2627ffe370879fa3ee7aee851e21fa46076de6b9741b6e83af94b66afa245a0f69237db4582858bc40f819d8a3c78e6e' + 'f9ce30599d5cff6d72bd942217df78bf16f305d1a95fa04745bc730ba2112186717d9792f267259c03ea2614e505b429a2b17e7e0afafc8155d0ccea3d63803c') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../paste.patch +} + +build() { + cd $pkgname-$pkgver + ./configure --enable-gtk3 --enable-gtkdoc-header --prefix=/usr + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +package() { + make -C $pkgname-$pkgver DESTDIR="$pkgdir" install +} diff --git a/geany/clean b/geany/clean new file mode 100644 index 0000000..b29a702 --- /dev/null +++ b/geany/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,gean*tar.bz2} diff --git a/geany/deps b/geany/deps new file mode 100644 index 0000000..c436c99 --- /dev/null +++ b/geany/deps @@ -0,0 +1,7 @@ +gtk3 +doxygen +intltool +python-lxml +gettext + + diff --git a/geany/paste.patch b/geany/paste.patch new file mode 100644 index 0000000..3ca4333 --- /dev/null +++ b/geany/paste.patch @@ -0,0 +1,28 @@ +From 7863c2abcfe4a235d60a2fffba173b9166012c12 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Enrico=20Tr=C3=B6ger?= +Date: Sun, 9 Jan 2022 12:35:27 +0100 +Subject: [PATCH] Manually realize the VTE widget on startup + +This should fix crashes when pasting text into the widget before it has +been fully realized (e.g. when it was never shown before). + +Fixes #2813. +--- + src/vte.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/vte.c b/src/vte.c +index 916e2c264e..5878966ccd 100644 +--- a/src/vte.c ++++ b/src/vte.c +@@ -240,6 +240,10 @@ static void on_startup_complete(G_GNUC_UNUSED GObject *dummy) + { + GeanyDocument *doc = document_get_current(); + ++ /* ensure the widget is mapped and fully initialized, so actions like pasting text work ++ * (see https://github.com/geany/geany/issues/2813 for details) */ ++ gtk_widget_realize(vc->vte); ++ + if (doc) + vte_cwd((doc->real_path != NULL) ? doc->real_path : doc->file_name, FALSE); + } diff --git a/geany/time b/geany/time new file mode 100644 index 0000000..007069f --- /dev/null +++ b/geany/time @@ -0,0 +1,5 @@ + +real 3m20.085s +user 3m11.163s +sys 0m12.357s + diff --git a/gitui/PKGBUILD b/gitui/PKGBUILD new file mode 100644 index 0000000..a3c8c09 --- /dev/null +++ b/gitui/PKGBUILD @@ -0,0 +1,50 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=gitui +pkgver=0.23.0 +pkgrel=03 +pkgdesc='Blazing fast terminal-ui for git written in Rust' +url='https://github.com/extrawurst/gitui' +# work around two libssl.so providers being in the repos by only depending on package for now +depends=('gcc-libs' 'libgit2.so' 'libxcb' 'openssl' 'zlib') +makedepends=('cargo' 'python') # xcb crate needs python +source=("${url}/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz") + +prepare() { + cd "${pkgname}-${pkgver}" + cargo fetch --locked --target "$CARCH-unknown-linux-gnu" +} + +build() { + cd "${pkgname}-${pkgver}" + CFLAGS+=" -ffat-lto-objects" + cargo build --frozen --release +} + +#check() { +# cd "${pkgname}-${pkgver}" +# cargo test --frozen +#} + +package() { + cd "${pkgname}-${pkgver}" + install -Dm 755 target/release/gitui -t "${pkgdir}/usr/bin/" + install -Dm 644 {KEY_CONFIG,README,THEMES}.md -t "${pkgdir}/usr/share/doc/${pkgname}" + install -Dm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('MIT') + +sha256sums=(5180d5d8fd2fe6400148d6078b4b318c7530ca6c27ea8d8c0882f2e4d9064a80) # gitui-0.23.0.tar.gz + +## 76d02bb131c40166dcda72138089ea0f4cf978112f8c89a905a0d74fda5ea705 gitui-0.23.0-03-x86_64.pkg.tar.lz + diff --git a/gitui/PKGBUILD-arch b/gitui/PKGBUILD-arch new file mode 100644 index 0000000..e583ca9 --- /dev/null +++ b/gitui/PKGBUILD-arch @@ -0,0 +1,43 @@ +# Maintainer: Levente Polyak +# Maintainer: Caleb Maclennan +# Contributor: Simon Hauser +# Contributor: Wesley Moore + +pkgname=gitui +pkgver=0.23.0 +pkgrel=3 +pkgdesc='Blazing fast terminal-ui for git written in Rust' +url='https://github.com/extrawurst/gitui' +arch=('x86_64') +license=('MIT') +# work around two libssl.so providers being in the repos by only depending on package for now +depends=('gcc-libs' 'libgit2.so' 'libxcb' 'openssl' 'zlib') +makedepends=('cargo' 'python') # xcb crate needs python +source=("${url}/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz") +sha256sums=('5180d5d8fd2fe6400148d6078b4b318c7530ca6c27ea8d8c0882f2e4d9064a80') +b2sums=('a2c4849ff175124015dac6fe93ea10f8c76d8ace1d1bd0bf0bf3e9792542b438c5312d5ba754fe8553df3995a92ee728636a041bad80e963615c008680e95f3d') + +prepare() { + cd "${pkgname}-${pkgver}" + cargo fetch --locked --target "$CARCH-unknown-linux-gnu" +} + +build() { + cd "${pkgname}-${pkgver}" + CFLAGS+=" -ffat-lto-objects" + cargo build --frozen --release +} + +check() { + cd "${pkgname}-${pkgver}" + cargo test --frozen +} + +package() { + cd "${pkgname}-${pkgver}" + install -Dm 755 target/release/gitui -t "${pkgdir}/usr/bin/" + install -Dm 644 {KEY_CONFIG,README,THEMES}.md -t "${pkgdir}/usr/share/doc/${pkgname}" + install -Dm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/gitui/clean b/gitui/clean new file mode 100644 index 0000000..862678c --- /dev/null +++ b/gitui/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,gitui*tar.gz*} diff --git a/gitui/deps b/gitui/deps new file mode 100644 index 0000000..294c041 --- /dev/null +++ b/gitui/deps @@ -0,0 +1,6 @@ +libgit2 +libxcb +rust +python + + diff --git a/gmrun/PKGBUILD b/gmrun/PKGBUILD new file mode 100644 index 0000000..d550a4e --- /dev/null +++ b/gmrun/PKGBUILD @@ -0,0 +1,35 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=gmrun +pkgver=1.4w +pkgrel=01 +pkgdesc="A simple program which provides a run program window" +arch=('x86_64') +url="https://github.com/wdlkmpx/gmrun" +depends=('gtk3' 'popt') +source=($pkgname-$pkgver.tar.gz::https://github.com/wdlkmpx/gmrun/archive/$pkgver.tar.gz) +backup=('etc/gmrunrc') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + ./configure --prefix=/usr --sysconfdir=/etc + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install +} + +#---- license gpg-key sha256sums ---- + +license=('GPL') + +sha256sums=(7715eca337877abe180b435494a12d3ec3383a6677fe638724bcd23d84a5841b) # gmrun-1.4w.tar.gz diff --git a/gmrun/PKGBUILD-arch b/gmrun/PKGBUILD-arch new file mode 100644 index 0000000..d7ae6a6 --- /dev/null +++ b/gmrun/PKGBUILD-arch @@ -0,0 +1,28 @@ +# Contributor: Jeff Mickey +# Contributor: Woody Gilk aka Shadowhand +# Maintainer: Daniel J Griffiths + +pkgname=gmrun +pkgver=1.4w +pkgrel=1 +pkgdesc="A simple program which provides a run program window" +arch=('x86_64') +url="https://github.com/wdlkmpx/gmrun" +license=('GPL') +depends=('gtk3' 'popt') +source=($pkgname-$pkgver.tar.gz::https://github.com/wdlkmpx/gmrun/archive/$pkgver.tar.gz) +md5sums=('45b7a88c0dbf2ec4c15f469537eda106') +backup=('etc/gmrunrc') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + ./configure --prefix=/usr --sysconfdir=/etc + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install +} diff --git a/gmrun/clean b/gmrun/clean new file mode 100644 index 0000000..5b7ffda --- /dev/null +++ b/gmrun/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,gmrun*tar.gz} diff --git a/gmrun/deps b/gmrun/deps new file mode 100644 index 0000000..69379ed --- /dev/null +++ b/gmrun/deps @@ -0,0 +1,3 @@ +gtk3 +popt + diff --git a/gmrun/time b/gmrun/time new file mode 100644 index 0000000..cac6382 --- /dev/null +++ b/gmrun/time @@ -0,0 +1,6 @@ + + +real 0m5.206s +user 0m4.874s +sys 0m0.489s + diff --git a/gnunet-git/.gitignore b/gnunet-git/.gitignore deleted file mode 100644 index e81cab3..0000000 --- a/gnunet-git/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -/PKGBUILD -/PKGBUILD-aur -/clean -/deps -/deps.old -/error -/gnunet-system.service -/gnunet-user.conf -/gnunet-user.service -/gnunet.install -/gnunet.sysusers -/gnunet.tmpfiles diff --git a/gnunet-gtk/PKGBUILD b/gnunet-gtk/PKGBUILD deleted file mode 100644 index 4c2b731..0000000 --- a/gnunet-gtk/PKGBUILD +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=gnunet-gtk -pkgdesc="A framework for secure peer-to-peer networking (GTK 3 interfaces)" -pkgver=0.19.2.1.r0.g077b6d87 -pkgrel=02 -url="https://gnunet.org" -conflicts=('gnunet-gtk-git') -provides=('gnunet-gtk') -depends=('gnunet' 'gtk3' 'libglade' 'glade') -optdepends=('qrencode') -source=('git+https://git.gnunet.org/gnunet-gtk.git' - 'gnunet-peerinfo-gtk.desktop' - 'gnunet-peerinfo-gtk.svg' - 'gnunet-statistics-gtk.desktop' - 'gnunet-statistics-gtk.svg') - -pkgver() { - cd "${pkgname}" > /dev/null 2>&1 - git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' - -} - -build() { - - cd "${srcdir}/$pkgname" - - ./bootstrap - ./configure --prefix=/usr --with-gnunet=/usr - make - -} - -package() { - - cd "${srcdir}/$pkgname" - - make DESTDIR="${pkgdir}" install - - install -dm755 "${pkgdir}/usr/share/applications" - - install -Dm644 "${srcdir}/gnunet-peerinfo-gtk.desktop" \ - "${pkgdir}/usr/share/applications/gnunet-peerinfo-gtk.desktop" - - install -Dm644 "${srcdir}/gnunet-statistics-gtk.desktop" \ - "${pkgdir}/usr/share/applications/gnunet-statistics-gtk.desktop" - - install -dm755 "${pkgdir}/usr/share/icons/hicolor/scalable/apps" - - install -Dm 644 "${srcdir}/gnunet-peerinfo-gtk.svg" \ - "${pkgdir}/usr/share/icons/hicolor/scalable/apps/gnunet-peerinfo-gtk.svg" - - install -Dm 644 "${srcdir}/gnunet-statistics-gtk.svg" \ - "${pkgdir}/usr/share/icons/hicolor/scalable/apps/gnunet-statistics-gtk.svg" - -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=('GPL3') - -sha256sums=(SKIP) - -sha256sums=(SKIP # gnunet-gtk git - ff025def7fd3383cf9ba0809926802d2476ef73ccbc91b6ad317554987ade4d7 # gnunet-peerinfo-gtk.desktop - 43e743bcf971c53ab4be0955d29b1915624a34f95785df1bf47a3fa45e6a8039 # gnunet-peerinfo-gtk.svg - e82947317b62c86de52065bc7c5e4a3899a587aedcaa039effda3dd8da23d79b # gnunet-statistics-gtk.desktop - 736d5e7d6aaaefad889ee2aa3ca7adc4ffefd4130e3b55380aa1267888606618) # gnunet-statistics-gtk.svg - -## ad6493f3299e3e6d74e8687010cbe9364e927fb17eaa40dbf2e7ed5ef91cc1a4 gnunet-gtk-0.19.2.1.r0.g077b6d87-02-x86_64.pkg.tar.lz - - diff --git a/gnunet-gtk/PKGBUILD-aur b/gnunet-gtk/PKGBUILD-aur deleted file mode 100644 index ccc3b92..0000000 --- a/gnunet-gtk/PKGBUILD-aur +++ /dev/null @@ -1,57 +0,0 @@ -# Maintainer: grufo -# Contributor: tleydxdy -# Contributor: Sergej Pupykin -# Contributor: wahnby - -pkgname='gnunet-gtk' -pkgver='0.19.0' -pkgrel=1 -pkgdesc='A frontend for GNUnet' -arch=('x86_64') -url='https://gnunet.org' -license=('GPL') -depends=('gnunet' 'glade') -optdepends=('qrencode') -source=("https://ftp.gnu.org/gnu/gnunet/${pkgname}-${pkgver}.tar.gz" - 'gnunet-peerinfo-gtk.desktop' - 'gnunet-peerinfo-gtk.svg' - 'gnunet-statistics-gtk.desktop' - 'gnunet-statistics-gtk.svg') -sha256sums=('330016b35ac75d895151c0165fc2e708b4f010e488ebc680d2ceee646818477c' - 'ff025def7fd3383cf9ba0809926802d2476ef73ccbc91b6ad317554987ade4d7' - '43e743bcf971c53ab4be0955d29b1915624a34f95785df1bf47a3fa45e6a8039' - 'e82947317b62c86de52065bc7c5e4a3899a587aedcaa039effda3dd8da23d79b' - '736d5e7d6aaaefad889ee2aa3ca7adc4ffefd4130e3b55380aa1267888606618') - -build() { - - cd "${srcdir}/${pkgname}-${pkgver}" - - ./configure --prefix=/usr --with-gnunet=/usr - make - -} - -package() { - - cd "${srcdir}/${pkgname}-${pkgver}" - - make DESTDIR="${pkgdir}" install - - install -dm755 "${pkgdir}/usr/share/applications" - - install -Dm644 "${srcdir}/gnunet-peerinfo-gtk.desktop" \ - "${pkgdir}/usr/share/applications/gnunet-peerinfo-gtk.desktop" - - install -Dm644 "${srcdir}/gnunet-statistics-gtk.desktop" \ - "${pkgdir}/usr/share/applications/gnunet-statistics-gtk.desktop" - - install -dm755 "${pkgdir}/usr/share/icons/hicolor/scalable/apps" - - install -Dm 644 "${srcdir}/gnunet-peerinfo-gtk.svg" \ - "${pkgdir}/usr/share/icons/hicolor/scalable/apps/gnunet-peerinfo-gtk.svg" - - install -Dm 644 "${srcdir}/gnunet-statistics-gtk.svg" \ - "${pkgdir}/usr/share/icons/hicolor/scalable/apps/gnunet-statistics-gtk.svg" - -} diff --git a/gnunet-gtk/PKGBUILD-git-aur.new b/gnunet-gtk/PKGBUILD-git-aur.new deleted file mode 100644 index c08c159..0000000 --- a/gnunet-gtk/PKGBUILD-git-aur.new +++ /dev/null @@ -1,30 +0,0 @@ -# Maintainer: Eric Spreen -pkgname=gnunet-gtk-git -pkgdesc="A framework for secure peer-to-peer networking (GTK 3 interfaces)" -pkgver=0.11.6.r1.gbd150825 -pkgrel=1 -arch=('i686' 'x86_64') -url="http://gnunet.org" -license=('GPL3') -conflicts=('gnunet-gtk') -provides=('gnunet-gtk') -depends=('gnunet-git' 'gtk3' 'libglade' 'glade') -source=('git+https://gnunet.org/git/gnunet-gtk.git') -md5sums=('SKIP') - -pkgver() { - cd gnunet-gtk - git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./' -} - -build() { - cd "${srcdir}/gnunet-gtk" - ./bootstrap - ./configure --prefix=/usr --with-gnunet=/usr - make -} - -package() { - cd "${srcdir}/gnunet-gtk" - make DESTDIR="${pkgdir}/" install -} diff --git a/gnunet-gtk/PKGBUILD-tar b/gnunet-gtk/PKGBUILD-tar deleted file mode 100644 index bb839b0..0000000 --- a/gnunet-gtk/PKGBUILD-tar +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=gnunet-gtk -pkgver=0.15.0 -pkgrel=02 -pkgdesc='A frontend for GNUnet' -arch=('x86_64') -url='https://gnunet.org' -depends=('gnunet' 'glade') -optdepends=('qrencode') -source=(https://ftp.gnu.org/gnu/gnunet/$pkgname-$pkgver.tar.gz) - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - - ./configure --prefix=/usr --with-gnunet=/usr - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - - make DESTDIR="${pkgdir}" install -} - -#---- license gpg-key sha256sums ---- - -license=('GPL') - -sha256sums=(14b2e5aa943b05ffa835152fc7b227895c45baccbfb4f63110fd93e95185ee1f) # gnunet-gtk-0.15.0.tar.gz diff --git a/gnunet-gtk/clean b/gnunet-gtk/clean deleted file mode 100644 index c238774..0000000 --- a/gnunet-gtk/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,gnunet-gtk} diff --git a/gnunet-gtk/deps b/gnunet-gtk/deps deleted file mode 100644 index ac5d44a..0000000 --- a/gnunet-gtk/deps +++ /dev/null @@ -1,7 +0,0 @@ -git -gnunet -gtk3 -glade -autoconf -automake -libglade diff --git a/gnunet-gtk/gnunet-peerinfo-gtk.desktop b/gnunet-gtk/gnunet-peerinfo-gtk.desktop deleted file mode 100644 index 26ca966..0000000 --- a/gnunet-gtk/gnunet-peerinfo-gtk.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=GNUnet Peer Info -GenericName=GNUnet Peer Info -Type=Application -Exec=gnunet-peerinfo-gtk -Icon=gnunet-peerinfo-gtk -Terminal=false -Categories=GTK;Network;P2P; -StartupNotify=true -StartupWMClass=gnunet-gtk diff --git a/gnunet-gtk/gnunet-peerinfo-gtk.svg b/gnunet-gtk/gnunet-peerinfo-gtk.svg deleted file mode 100644 index e0597a1..0000000 --- a/gnunet-gtk/gnunet-peerinfo-gtk.svg +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Clipart by Nicu Buculei - head1 - - - Nicu Buculei - - - - - - - - - - - - - - - image/svg+xml - - - - - Open Clip Art Library - - - People - 2008-02-27T13:01:34 - people symbol - http://openclipart.org/detail/15048/people-by-nicubunu - - - nicubunu - - - - - abstract - abstract - clip art - clipart - image - media - people - people - png - public domain - svg - symbol - symbol - - - - - - - - - - - diff --git a/gnunet-gtk/gnunet-statistics-gtk.desktop b/gnunet-gtk/gnunet-statistics-gtk.desktop deleted file mode 100644 index fb8460c..0000000 --- a/gnunet-gtk/gnunet-statistics-gtk.desktop +++ /dev/null @@ -1,15 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=GNUnet Statistics -Name[it]=Statistiche di GNUnet -GenericName=GNUnet Statistics -GenericName[it]=Statistiche di GNUnet -Comment=Check GNUnet statistics -Comment[it]=Controlla le statistiche di GNUnet -Type=Application -Exec=gnunet-statistics-gtk -Icon=gnunet-statistics-gtk -Terminal=false -Categories=GTK;Network;P2P; -StartupNotify=true -StartupWMClass=gnunet-gtk diff --git a/gnunet-gtk/gnunet-statistics-gtk.svg b/gnunet-gtk/gnunet-statistics-gtk.svg deleted file mode 100644 index ae7bf8e..0000000 --- a/gnunet-gtk/gnunet-statistics-gtk.svg +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Open Clip Art Library - - - inservice presentation 01 - 2010-04-15T14:43:57 - public domain art uploaded anonymously from OCAL 0.18 - http://openclipart.org/detail/47515/inservice-presentation-01-by-anonymous - - - Anonymous - - - - - business - chart - clip art - clipart - graph - person - powerpoint - presentation - slide - woman - - - - - - - - - - - diff --git a/gnunet-gtk/time b/gnunet-gtk/time deleted file mode 100644 index 8287016..0000000 --- a/gnunet-gtk/time +++ /dev/null @@ -1,5 +0,0 @@ - -real 0m33.219s -user 1m1.595s -sys 0m7.490s - diff --git a/gnunet/PKGBUILD b/gnunet/PKGBUILD deleted file mode 100644 index 078cf8b..0000000 --- a/gnunet/PKGBUILD +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname='gnunet' -pkgver='0.19.4' -pkgrel=02 -pkgdesc='A framework for secure peer-to-peer networking' -url="http://${pkgname}.org" -conflicts=("${pkgname}-git" "${pkgname}-bin") -provides=("${pkgname}" GNUnet) -depends=('brotli' 'gettext' 'gnurl' 'gnutls' 'iptables' 'jansson' 'libcurl-gnutls' - 'libextractor' 'libgcrypt' 'libidn2' 'libmicrohttpd' 'libsodium' - 'libtool' 'libunistring' 'miniupnpc' 'nss' 'openssl' 'sqlite' 'which' - 'zlib' 'net-tools') -makedepends=('bluez-libs' 'gettext' 'git' 'libpulse' 'libtool' 'opus' - 'pkgconfig' 'postgresql' 'python' 'recutils' - 'python-sphinx' 'python-sphinx_rtd_theme' ) -optdepends=('bluez: for bluetooth transport' - 'gnunet-gtk: for handling the gnunet:// URI scheme' - 'jose: for re:claimID OpenID Connect plugin' - 'libgabe: for Attribute-Based Encryption' - 'libogg: for conversation service' - 'libpabc: for re:claimID zero-knowledge privacy credentials' - 'libpulse: for conversation service' - 'miniupnpc: for NAT uPnP support' - 'mysql: for an alternative to sqlite in the database plugin' - 'opus: for conversation service' - 'postgresql: for an alternative to sqlite in the database plugin' - 'python: for test suite' - 'texi2mdoc: for automatic mdoc generation' - 'texinfo: for building the documentation' - 'texlive-core: for generating GNS business cards via gnunet-bcd' - 'zbar: for reading/writing QR codes using gnunet-qr') -backup=("etc/${pkgname}.conf") -source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig} - "${pkgname}.sysusers" - "${pkgname}.tmpfiles" - "${pkgname}-user.conf") -# "${pkgname}-uri.desktop") -install="${pkgname}.install" - -#pkgver() { -# -# cd "${pkgname}" > /dev/null 2>&1 -# git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' -# -#} - -prepare() { - cd "$srcdir/$pkgname-$pkgver" - - export GNUNET_PREFIX='/usr/lib' - autoreconf -i - -# ./bootstrap -} - -build() { - cd "$srcdir/$pkgname-$pkgver" - - ./configure --prefix='/usr' \ - --bindir=/usr/bin \ - --sbindir=/usr/bin \ - --libdir=/usr/lib \ - --with-pulse=no \ - --with-systemd=no \ - --enable-experimental - - make -# make -C contrib - -} - -package() { - - cd "$srcdir/$pkgname-$pkgver" - - make DESTDIR="${pkgdir}" install - make DESTDIR="${pkgdir}" -C contrib install - - install -dm755 "${pkgdir}/usr/lib/sysusers.d" - install -Dm644 "${srcdir}/${pkgname}.sysusers" \ - "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" - - install -dm755 "${pkgdir}/usr/lib/tmpfiles.d" - install -Dm644 "${srcdir}/${pkgname}.tmpfiles" \ - "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" - -# install -dm755 "${pkgdir}/usr/share/applications" -# install -Dm644 "${srcdir}/${pkgname}-uri.desktop" \ -# "${pkgdir}/usr/share/applications/${pkgname}-uri.desktop" - - install -dm700 "${pkgdir}/etc/skel/.config" - install -Dm600 "${srcdir}/${pkgname}-user.conf" \ - "${pkgdir}/etc/skel/.config/${pkgname}.conf" - - # Automatically generate a configuration file using the content of - # `/usr/share/gnunet/config.d/` as model; in this way we can ensure - # that this configuration file is the one backed up with each update, - # while `/usr/share/gnunet/config.d/` is kept as immutable default - # configuration. - - install -dm755 "${pkgdir}/etc" - - { - echo "# /etc/${pkgname}.conf" - (cd "${pkgdir}" > /dev/null 2>&1 && find "usr/share/${pkgname}/config.d" -type f -name '*.conf' \ - -printf '\n\n# For the default values of the the following lines please refer to\n# /%p\n\n' \ - -exec cat '{}' ';') - } > "${pkgdir}/etc/${pkgname}.conf" - -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=('AGPL') - -validpgpkeys=('3D11063C10F98D14BD24D1470B0998EF86F59B6A') - -sha256sums=(00a63df408d5987f5ba9a50441f2a77182bd9fb32f1e302ae563ac94e7ac009b # gnunet-0.19.4.tar.gz - 2d0ea63f27707b18fffcb9cdfd915bc7b5d898d7c0599caac68a3d619248ca0c # gnunet-0.19.4.tar.gz.sig - 66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755 # gnunet.sysusers - 5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0 # gnunet.tmpfiles - 3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2) # gnunet-user.conf - -## 8dbf54c5c889de6ed1e9962b1b3efda1f805a62e1003c6370a772f14cb8cc13f gnunet-0.19.4-02-x86_64.pkg.tar.lz diff --git a/gnunet/PKGBUILD-aur b/gnunet/PKGBUILD-aur deleted file mode 100644 index f661853..0000000 --- a/gnunet/PKGBUILD-aur +++ /dev/null @@ -1,111 +0,0 @@ -# Maintainer: grufo -# Contributor: redfish -# Contributor: kertase -# Contributor: Sergej Pupykin -# Contributor: wahnby - -pkgname='gnunet' -pkgver='0.19.4' -pkgrel=1 -pkgdesc='A framework for secure peer-to-peer networking' -arch=('i686' 'x86_64') -url="http://${pkgname}.org" -license=('AGPL') -conflicts=("${pkgname}-git" "${pkgname}-bin") -depends=('brotli' 'gettext' 'gnutls' 'iptables' 'jansson' 'libcurl-gnutls' - 'libextractor' 'libgcrypt' 'libidn2' 'libmicrohttpd' 'libsodium' - 'libtool' 'libunistring' 'miniupnpc' 'nss' 'openssl' 'sqlite' 'which' - 'zlib') -makedepends=('bluez-libs' 'libpulse' 'libtool' 'opus' 'pkgconfig' 'postgresql' - 'python' 'python-sphinx' 'python-sphinx_rtd_theme') -optdepends=('bluez: for bluetooth transport' - 'gnunet-gtk: for handling the gnunet:// URI scheme' - 'jose: for re:claimID OpenID Connect plugin' - 'libogg: for conversation service' - 'libpabc: for re:claimID zero-knowledge privacy credentials' - 'libpulse: for conversation service' - 'mysql: for an alternative to sqlite in the database plugin' - 'opus: for conversation service' - 'postgresql: for an alternative to sqlite in the database plugin' - 'python: for test suite' - 'texi2mdoc: for automatic mdoc generation' - 'texinfo: for building the documentation' - 'texlive-core: for generating GNS business cards via gnunet-bcd' - 'zbar: for reading/writing QR codes using gnunet-qr') -backup=("etc/${pkgname}.conf") -source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig} - "${pkgname}-system.service" - "${pkgname}.sysusers" - "${pkgname}.tmpfiles" - "${pkgname}-user.conf" - "${pkgname}-user.service") -install="${pkgname}.install" -validpgpkeys=('3D11063C10F98D14BD24D1470B0998EF86F59B6A') -sha256sums=('00a63df408d5987f5ba9a50441f2a77182bd9fb32f1e302ae563ac94e7ac009b' - 'SKIP' - '163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262' - '66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755' - '5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0' - '3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2' - '60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5') - -prepare() { - - cd "${srcdir}/${pkgname}-${pkgver}" - - export GNUNET_PREFIX='/usr/lib' - autoreconf -i - -} - -build() { - - cd "${srcdir}/${pkgname}-${pkgver}" - - ./configure --prefix='/usr' --enable-experimental - make - -} - -package() { - - cd "${srcdir}/${pkgname}-${pkgver}" - - make DESTDIR="${pkgdir}" install - - install -dm755 "${pkgdir}/usr/lib/systemd/system" - install -Dm644 "${srcdir}/${pkgname}-system.service" \ - "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" - - install -dm755 "${pkgdir}/usr/lib/systemd/user" - install -Dm644 "${srcdir}/${pkgname}-user.service" \ - "${pkgdir}/usr/lib/systemd/user/${pkgname}.service" - - install -dm755 "${pkgdir}/usr/lib/sysusers.d" - install -Dm644 "${srcdir}/${pkgname}.sysusers" \ - "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" - - install -dm755 "${pkgdir}/usr/lib/tmpfiles.d" - install -Dm644 "${srcdir}/${pkgname}.tmpfiles" \ - "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" - - install -dm700 "${pkgdir}/etc/skel/.config" - install -Dm600 "${srcdir}/${pkgname}-user.conf" \ - "${pkgdir}/etc/skel/.config/${pkgname}.conf" - - # Automatically generate a configuration file using the content of - # `/usr/share/gnunet/config.d/` as model; in this way we can ensure - # that this configuration file is the one backed up with each update, - # while `/usr/share/gnunet/config.d/` is kept as immutable default - # configuration. - - install -dm755 "${pkgdir}/etc" - - { - echo "# /etc/${pkgname}.conf" - (cd "${pkgdir}" > /dev/null 2>&1 && find "usr/share/${pkgname}/config.d" -type f -name '*.conf' \ - -printf '\n\n# For the default values of the the following lines please refer to\n# /%p\n\n' \ - -exec cat '{}' ';') - } > "${pkgdir}/etc/${pkgname}.conf" - -} diff --git a/gnunet/clean b/gnunet/clean deleted file mode 100644 index 5ce6177..0000000 --- a/gnunet/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,gnunet,gnunet*tar.gz*} diff --git a/gnunet/deps b/gnunet/deps deleted file mode 100644 index c0cd2f6..0000000 --- a/gnunet/deps +++ /dev/null @@ -1,25 +0,0 @@ -recutils -postgresql -gettext -gnurl -libcurl-gnutls -libextractor -libmicrohttpd -libsodium -miniupnpc -nss -net-tools -bluez-libs -gettext -git -libpulse -opus -postgresql -python -recutils -python-sphinx -python-sphinx_rtd_theme -autoconf -automake -net-tools - diff --git a/gnunet/deps.git b/gnunet/deps.git deleted file mode 100644 index b5de820..0000000 --- a/gnunet/deps.git +++ /dev/null @@ -1,17 +0,0 @@ -recutils -postgresql -gettext -gnurl -jansson -libextractor -libmicrohttpd -libsodium -nss -bluez-libs -gettext -git -opus -python -autoconf -automake -net-tools diff --git a/gnunet/gnunet-system.service b/gnunet/gnunet-system.service deleted file mode 100644 index b429caf..0000000 --- a/gnunet/gnunet-system.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=GNUnet system service -After=network.target - -[Service] -Type=simple -User=gnunet -ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf -StateDirectory=gnunet -StateDirectoryMode=0700 - -[Install] -WantedBy=multi-user.target diff --git a/gnunet/gnunet-uri.desktop b/gnunet/gnunet-uri.desktop deleted file mode 100644 index 4f847d2..0000000 --- a/gnunet/gnunet-uri.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=GNUnet URI -Exec=gnunet-uri %u -GenericName=URI handler for the GNUnet network -Icon=gnunet -Type=Application -Terminal=false -NoDisplay=true -MimeType=x-scheme-handler/gnunet; diff --git a/gnunet/gnunet-user.conf b/gnunet/gnunet-user.conf deleted file mode 100644 index 22f1fe3..0000000 --- a/gnunet/gnunet-user.conf +++ /dev/null @@ -1,3 +0,0 @@ -[arm] -START_SYSTEM_SERVICES = NO -START_USER_SERVICES = YES diff --git a/gnunet/gnunet-user.service b/gnunet/gnunet-user.service deleted file mode 100644 index ae9f0d4..0000000 --- a/gnunet/gnunet-user.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=GNUnet user service -After=network.target - -[Service] -Type=simple -ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c ~/.config/gnunet.conf - -[Install] -WantedBy=multi-user.target diff --git a/gnunet/gnunet.install b/gnunet/gnunet.install deleted file mode 100644 index 2560926..0000000 --- a/gnunet/gnunet.install +++ /dev/null @@ -1,54 +0,0 @@ -post_install() { - - local _PWD_PAIRS_="$(awk -F ':' '$3>=1000 && $3<2000 {print $1":"$6}' '/etc/passwd')" - local _USER_ - local _GROUP_ - local _CFG_DIR_ - - for _PWD_PAIR_ in ${_PWD_PAIRS_}; do - _USER_="$(echo $_PWD_PAIR_ | cut -d ':' -f 1)" - _GROUP_="$(id -gn "${_USER_}")" - _CFG_DIR_="$(echo $_PWD_PAIR_ | cut -d ':' -f 2)/.config" - test -e "${_CFG_DIR_}/gnunet.conf" || (install -dm700 -o \ - "${_USER_}" -g "${_GROUP_}" "${_CFG_DIR_}" && install \ - -Dm600 -o "${_USER_}" -g "${_GROUP_}" \ - '/etc/skel/.config/gnunet.conf' \ - "${_CFG_DIR_}/gnunet.conf") - done - - echo - echo 'Do not forget to add your user to the `gnunet` group, with' - echo - echo ' sudo usermod -aG gnunet "$(whoami)"' - echo - echo 'If later you want to remove your user from the group, launch' - echo - echo ' sudo gpasswd --delete "$(whoami)" gnunet' - echo - echo 'For information on how to use GNUnet plaese refer to the GNUnet article in the' - echo 'ArchWiki (https://wiki.archlinux.org/title/GNUnet).' - echo - -} - -post_remove() { - - echo - echo 'The home directory of the `gnunet` user (`/var/lib/gnunet/`) is left after' - echo 'uninstalling GNUnet. If you are sure that you are never going to use GNUnet' - echo 'ever again, launch:' - echo - echo ' for username in $(getent group gnunet | cut -d: -f4 | tr '\'','\'' '\'' '\''); do \' - echo ' sudo gpasswd --delete "${username}" gnunet; done' - echo ' sudo userdel -r gnunet' - echo ' sudo groupdel gnunetdns' - echo - echo '**Warning** The identity and all the information about the network' - echo 'cumulatively stored by the current peer will be destroyed - this will not' - echo 'affect files explicitly downloaded in other paths.' - echo - echo 'For further information plaese refer to the GNUnet article in the ArchWiki' - echo '(https://wiki.archlinux.org/title/GNUnet).' - echo - -} diff --git a/gnunet/gnunet.sysusers b/gnunet/gnunet.sysusers deleted file mode 100644 index 1638959..0000000 --- a/gnunet/gnunet.sysusers +++ /dev/null @@ -1,3 +0,0 @@ -g gnunet - -u gnunet - "GNUnet system account" /var/lib/gnunet -g gnunetdns - diff --git a/gnunet/gnunet.tmpfiles b/gnunet/gnunet.tmpfiles deleted file mode 100644 index 5b0b417..0000000 --- a/gnunet/gnunet.tmpfiles +++ /dev/null @@ -1,9 +0,0 @@ -d /var/lib/gnunet 0700 gnunet gnunet - - -z /usr/lib/gnunet/libexec/gnunet-helper-dns 4750 root gnunetdns - - -z /usr/lib/gnunet/libexec/gnunet-helper-exit 4755 root root - - -z /usr/lib/gnunet/libexec/gnunet-helper-nat-client 4755 root root - - -z /usr/lib/gnunet/libexec/gnunet-helper-nat-server 4755 root root - - -z /usr/lib/gnunet/libexec/gnunet-helper-transport-bluetooth 4755 root root - - -z /usr/lib/gnunet/libexec/gnunet-helper-transport-wlan 4755 root root - - -z /usr/lib/gnunet/libexec/gnunet-helper-vpn 4755 root root - - -z /usr/lib/gnunet/libexec/gnunet-service-dns 2750 gnunet gnunetdns - - diff --git a/gnunet/key b/gnunet/key deleted file mode 100644 index 8552ea3..0000000 --- a/gnunet/key +++ /dev/null @@ -1 +0,0 @@ -gpg -v --recv-key 0B0998EF86F59B6A diff --git a/gnunet/time b/gnunet/time deleted file mode 100644 index 56eb2b1..0000000 --- a/gnunet/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 4m55.855s -user 4m33.043s -sys 0m34.312s - diff --git a/gnurl/PKGBUILD b/gnurl/PKGBUILD deleted file mode 100644 index 8c20b2a..0000000 --- a/gnurl/PKGBUILD +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=gnurl -pkgver=7.72.0 -pkgrel=02 -pkgdesc="fork of libcurl, which is mostly for GNUnet w/o ipv6 and zstd" -url="https://gnunet.org/en/gnurl.html" -depends=('gnutls' 'krb5' 'libnghttp2') -source=("https://ftp.gnu.org/gnu/gnunet/gnurl-$pkgver.tar.Z") #{,.sig}) - -build() { - cd $pkgname-$pkgver - ./buildconf - ./configure \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --disable-dict \ - --disable-file \ - --disable-ftp \ - --disable-gopher \ - --disable-imap \ - --disable-ldap \ - --disable-ldaps \ - --disable-ntlm-wb \ - --disable-pop3 \ - --disable-rtsp \ - --disable-smb \ - --disable-smtp \ - --disable-telnet \ - --disable-tftp \ - --disable-ipv6 \ - --enable-manual \ - --enable-versioned-symbols \ - --enable-threaded-resolver \ - --without-gssapi \ - --with-gnutls \ - --without-zstd \ - --without-libidn \ - --without-libpsl \ - --without-librtmp \ - --without-ssl \ - --disable-ftp \ - --disable-file \ - --with-random=/dev/urandom \ - --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt - make -} - -package() { - cd $pkgname-$pkgver - make DESTDIR="$pkgdir" install - install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" - -# rm -rf "$pkgdir"/usr/share/man \ -# "$pkgdir"/usr/bin/curl \ -# "$pkgdir"/usr/share/aclocal -# mkdir -p "$pkgdir"/usr/include/gnurl -# mv "$pkgdir"/usr/include/curl "$pkgdir"/usr/include/gnurl/curl -# sed -i 's|includedir=.*|includedir=/usr/include/gnurl|g' "$pkgdir"/usr/lib/pkgconfig/libgnurl.pc -} - - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=('MIT') - -validpgpkeys=('A88C8ADD129828D7EAC02E52E22F9BBFEE348588' # Nils Gillmann - '6115012DEA3026F62A98A556D6B570842F7E7F8D') # nikita@3dfx.re - -sha256sums=('45b4e3cc1f052b2d56d076c276f65358e6f643b217d72b9a35e7a945f8601668') - -## 809faba40c3af5e4da7a46eb296bc9d0fe3bf3ad8d06e796e15110b71324185d gnurl-7.72.0-02-x86_64.pkg.tar.lz - - diff --git a/gnurl/PKGBUILD-aur b/gnurl/PKGBUILD-aur deleted file mode 100644 index 5443b90..0000000 --- a/gnurl/PKGBUILD-aur +++ /dev/null @@ -1,65 +0,0 @@ -# Maintainer: grufo -# Contributor: Sergej Pupykin - -pkgname=gnurl -pkgver=7.72.0 -pkgrel=1 -pkgdesc="fork of libcurl, which is mostly for GNUnet" -arch=(x86_64) -url="https://gnunet.org/en/gnurl.html" -license=('MIT') -depends=('gnutls' 'krb5' 'libnghttp2' 'zstd') -source=("https://ftp.gnu.org/gnu/gnunet/gnurl-$pkgver.tar.Z") #{,.sig}) -#validpgpkeys=('A88C8ADD129828D7EAC02E52E22F9BBFEE348588' # Nils Gillmann -# '6115012DEA3026F62A98A556D6B570842F7E7F8D') # nikita@3dfx.re -sha256sums=('45b4e3cc1f052b2d56d076c276f65358e6f643b217d72b9a35e7a945f8601668') - -build() { - cd $pkgname-$pkgver - ./buildconf - ./configure \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --disable-dict \ - --disable-file \ - --disable-ftp \ - --disable-gopher \ - --disable-imap \ - --disable-ldap \ - --disable-ldaps \ - --disable-ntlm-wb \ - --disable-pop3 \ - --disable-rtsp \ - --disable-smb \ - --disable-smtp \ - --disable-telnet \ - --disable-tftp \ - --enable-ipv6 \ - --enable-manual \ - --enable-versioned-symbols \ - --enable-threaded-resolver \ - --without-gssapi \ - --with-gnutls \ - --without-libidn \ - --without-libpsl \ - --without-librtmp \ - --without-ssl \ - --disable-ftp \ - --disable-file \ - --with-random=/dev/urandom \ - --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt - make -} - -package() { - cd $pkgname-$pkgver - make DESTDIR="$pkgdir" install - install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" - -# rm -rf "$pkgdir"/usr/share/man \ -# "$pkgdir"/usr/bin/curl \ -# "$pkgdir"/usr/share/aclocal -# mkdir -p "$pkgdir"/usr/include/gnurl -# mv "$pkgdir"/usr/include/curl "$pkgdir"/usr/include/gnurl/curl -# sed -i 's|includedir=.*|includedir=/usr/include/gnurl|g' "$pkgdir"/usr/lib/pkgconfig/libgnurl.pc -} diff --git a/gnurl/clean b/gnurl/clean deleted file mode 100644 index f36f52f..0000000 --- a/gnurl/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,gnurl*.tar.Z} diff --git a/gnurl/key b/gnurl/key deleted file mode 100644 index a245b1a..0000000 --- a/gnurl/key +++ /dev/null @@ -1 +0,0 @@ -gpg --recv-keys E22F9BBFEE348588 diff --git a/gnurl/time b/gnurl/time deleted file mode 100644 index 3d8c4d1..0000000 --- a/gnurl/time +++ /dev/null @@ -1,5 +0,0 @@ - -real 0m48.481s -user 1m22.500s -sys 0m10.728s - diff --git a/gtk4 b/gtk4 deleted file mode 120000 index dc1dc0c..0000000 --- a/gtk4 +++ /dev/null @@ -1 +0,0 @@ -/dev/null \ No newline at end of file diff --git a/i3-wm/PKGBUILD b/i3-wm/PKGBUILD index ac70fd9..1039856 100644 --- a/i3-wm/PKGBUILD +++ b/i3-wm/PKGBUILD @@ -1,7 +1,7 @@ #!/usr/bin/bash # JOBoRun : Jwm OpenBox Obarun RUNit # Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcomm/$pkgname" +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" # Website : https://pozol.eu #-----------------------------------------| DESCRIPTION |--------------------------------------- diff --git a/intel-gpu-tools/PKGBUILD b/intel-gpu-tools/PKGBUILD new file mode 100644 index 0000000..f55904d --- /dev/null +++ b/intel-gpu-tools/PKGBUILD @@ -0,0 +1,64 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +_pkgname=igt-gpu-tools +pkgname=intel-gpu-tools +pkgver=1.27 +pkgrel=02 +pkgdesc="Tools for development and testing of the Intel DRM driver w/o systemd" +url='https://gitlab.freedesktop.org/drm/igt-gpu-tools' +depends=(libdrm libpciaccess cairo python xorg-xrandr libprocps kmod libxv libunwind peg ) +makedepends=(swig gtk-doc xorg-util-macros xorgproto meson) +source=(https://xorg.freedesktop.org/releases/individual/app/${_pkgname}-$pkgver.tar.xz{,.sig} + remove-crc32-table-from-common-section.patch + remove-race-in-creating-batch-buffers.patch) + +prepare() { + mkdir -p build + cd igt-gpu-tools-${pkgver} + patch -Np1 -i ${srcdir}/remove-race-in-creating-batch-buffers.patch + patch -Np1 -i ${srcdir}/remove-crc32-table-from-common-section.patch +# patch -Np1 -i ${srcdir}/i-g-t-1-1-lib-meson.build-Fix-underscorify-call.patch +} + +build() { + cd build + meson ../$_pkgname-$pkgver \ + --prefix=/usr \ + --libexecdir=/usr/lib + + ninja +} + +check() { + cd build + ninja test +} + +package() { + cd build + DESTDIR="$pkgdir" ninja install + + cd ../$_pkgname-$pkgver + install -Dm644 COPYING "$pkgdir/usr/share/licenses/${pkgname}/COPYING" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(MIT) + +validpgpkeys=('775965B85650195ACE77E18D7370055DB74C2475' + 'E1996E8A119F43C4BA2BE889D8C620766EA3F69D') + +sha256sums=(602bfe310d669f58e2f7fc8839532368492fd1317d564e06f8ce42049e3b61cb # igt-gpu-tools-1.27.tar.xz + 0fb79dc220ba698b508287438744ca400444121b6b1dd5468de8749acc551f04 # igt-gpu-tools-1.27.tar.xz.sig + 2d7b0c9b0632700e4bfcb1a4d9a9c733c92700c2573757b9632500f25f3e3edb # remove-crc32-table-from-common-section.patch + cdfae6e5d07767d8499f5b1eab98bbfd3de74724864f84d466f7d40a476d78e1) # remove-race-in-creating-batch-buffers.patch + +## 1b5e9b9efb166f7fe384fed940ddd13a49812c96e3e482f4a77d984d32fa8597 intel-gpu-tools-1.27-02-x86_64.pkg.tar.lz diff --git a/intel-gpu-tools/PKGBUILD-arch b/intel-gpu-tools/PKGBUILD-arch new file mode 100644 index 0000000..8916f5a --- /dev/null +++ b/intel-gpu-tools/PKGBUILD-arch @@ -0,0 +1,52 @@ +# Maintainer: Daniel Micay +# Contributor: Mikael Eriksson +# Originally by: Denis Smirnov + +_pkgname=igt-gpu-tools +pkgname=intel-gpu-tools +pkgver=1.27 +pkgrel=2 +pkgdesc="Tools for development and testing of the Intel DRM driver" +arch=(x86_64) +license=(MIT) +url='https://gitlab.freedesktop.org/drm/igt-gpu-tools' +depends=(libdrm libpciaccess cairo python xorg-xrandr libprocps kmod libxv libunwind peg systemd) +makedepends=(swig gtk-doc xorg-util-macros xorgproto meson) +source=(https://xorg.freedesktop.org/releases/individual/app/${_pkgname}-$pkgver.tar.xz{,.sig} + remove-race-in-creating-batch-buffers.patch + remove-crc32-table-from-common-section.patch) +sha512sums=('43728c1981862f48180652849fbf04e36f976ae39a20f166fd5b4413ad3d682f7eea5db27c53d48d88d516577b053a6cc5afe000d1cad19ba65dedc248edf4a6' + 'SKIP' + '91abc467d594fd97784f5843853c53bd812445f956c0f299a1127a2d758416485a7bb5c9bda764c7ce2ce133b9aa4bb6076a20a307261a18274d7f61623f142f' + '2053f4e30752bd6ebf735ba5f629f68899c31b2984d5a0fcfc8c11bdd09223308f9f5c7bb3bd8dfe5c57341ef89ccb87235a5f0c14e2439d7451d5eb4cfa845a') +validpgpkeys=('775965B85650195ACE77E18D7370055DB74C2475' + 'E1996E8A119F43C4BA2BE889D8C620766EA3F69D') + +prepare() { + mkdir -p build + cd igt-gpu-tools-${pkgver} + patch -Np1 -i ${srcdir}/remove-race-in-creating-batch-buffers.patch + patch -Np1 -i ${srcdir}/remove-crc32-table-from-common-section.patch +} + +build() { + cd build + meson ../$_pkgname-$pkgver \ + --prefix=/usr \ + --libexecdir=/usr/lib + + ninja +} + +check() { + cd build + ninja test +} + +package() { + cd build + DESTDIR="$pkgdir" ninja install + + cd ../$_pkgname-$pkgver + install -Dm644 COPYING "$pkgdir/usr/share/licenses/${pkgname}/COPYING" +} diff --git a/intel-gpu-tools/clean b/intel-gpu-tools/clean new file mode 100644 index 0000000..738afb8 --- /dev/null +++ b/intel-gpu-tools/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,igt-gpu-tools*tar.xz*} diff --git a/intel-gpu-tools/deps b/intel-gpu-tools/deps new file mode 100644 index 0000000..448f738 --- /dev/null +++ b/intel-gpu-tools/deps @@ -0,0 +1,24 @@ +peg +swig +valgrind +bison +libxmlrpc +cmake +cblas64 +rst2pdf +gtk-doc +xorg-util-macros +xorgproto +meson +debugedit +libdrm +libpciaccess +cairo +xorg-xrandr +libxv +libunwind +alsa-lib +git +libprocps + + diff --git a/intel-gpu-tools/i-g-t-1-1-lib-meson.build-Fix-underscorify-call.patch b/intel-gpu-tools/i-g-t-1-1-lib-meson.build-Fix-underscorify-call.patch new file mode 100644 index 0000000..7ba357e --- /dev/null +++ b/intel-gpu-tools/i-g-t-1-1-lib-meson.build-Fix-underscorify-call.patch @@ -0,0 +1,13 @@ +diff --git a/lib/meson.build b/lib/meson.build +index c3080fc8..297b0ad2 100644 +--- a/lib/meson.build ++++ b/lib/meson.build +@@ -155,7 +155,7 @@ lib_version = vcs_tag(input : 'version.h.in', output : 'version.h', + + lib_intermediates = [] + foreach f: lib_sources +- name = f.underscorify(f) ++ name = f.underscorify() + lib = static_library('igt-' + name, + [ f, lib_version ], + include_directories: inc, diff --git a/intel-gpu-tools/key b/intel-gpu-tools/key new file mode 100644 index 0000000..9b0c6ba --- /dev/null +++ b/intel-gpu-tools/key @@ -0,0 +1 @@ +gpg --recv-key 7370055DB74C2475 diff --git a/intel-gpu-tools/remove-crc32-table-from-common-section.patch b/intel-gpu-tools/remove-crc32-table-from-common-section.patch new file mode 100644 index 0000000..767dcd7 --- /dev/null +++ b/intel-gpu-tools/remove-crc32-table-from-common-section.patch @@ -0,0 +1,38 @@ +From d7438d4c9e345d4537085d417da38a06e7c91f26 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= + +Date: Fri, 13 Jan 2023 20:25:52 +0100 +Subject: [PATCH] lib/igt_crc: Remove crc32 table from common section +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +I've incidentally put crc32 table definition to the header file +instead of exporting it via extern keyword. Remove this symbol +from common section to be C89 conformant. + +Signed-off-by: Zbigniew Kempczyński +Cc: Petri Latvala +Cc: Kamil Konieczny +Fixes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/126 +Reviewed-by: Petri Latvala +--- + lib/igt_crc.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/igt_crc.h b/lib/igt_crc.h +index 5c0b934e..bd36cb61 100644 +--- a/lib/igt_crc.h ++++ b/lib/igt_crc.h +@@ -24,7 +24,7 @@ + * All crc tables are globals to allow direct in-code use. + */ + +-const uint32_t igt_crc32_tab[256]; ++extern const uint32_t igt_crc32_tab[256]; + + uint32_t igt_cpu_crc32(const void *buf, size_t size); + +-- +GitLab + diff --git a/intel-gpu-tools/remove-race-in-creating-batch-buffers.patch b/intel-gpu-tools/remove-race-in-creating-batch-buffers.patch new file mode 100644 index 0000000..5643686 --- /dev/null +++ b/intel-gpu-tools/remove-race-in-creating-batch-buffers.patch @@ -0,0 +1,157 @@ +From aa16e81259f59734230d441905b9d0f605e4a4b5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= + +Date: Sat, 14 Jan 2023 20:49:10 +0100 +Subject: [PATCH] i915/gem_ccs: Remove race in creating batch buffers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Creating buffers from pool allows achieve pipelined execution easier - +returned buffer is not active from driver point of view. Unfortunately +buffer should be created before use, otherwise we can hit the race. + +In the test in rare cases batch created for ctrl-surf from pool was +immediate executed and not active so batch created for block-copy had +same handle. Problem occurred when block-copy was executed immediately +after surf-copy without stalls and both batches used same handle, +so latter just overwrites instructions of previous one. + +Instead of using buffer pool we create two separate batches, one for +surf-copy and second for block-copy. This will remove the buffer +creation race from the pool. When src and dst buffer are not equal +visual ascii dump of differrences grouped by 8x8 blocks of pixels +are dump to stdout. + +Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6683 + +Signed-off-by: Zbigniew Kempczyński +Cc: Kamil Konieczny +Reviewed-by: Kamil Konieczny +--- + tests/i915/gem_ccs.c | 71 +++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 63 insertions(+), 8 deletions(-) + +diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c +index 751f65e6..ff28c6d8 100644 +--- a/tests/i915/gem_ccs.c ++++ b/tests/i915/gem_ccs.c +@@ -158,6 +158,54 @@ static void set_blt_object(struct blt_copy_object *obj, + if (param.write_png) \ + blt_surface_to_png((fd), (id), (name), (obj), (w), (h)); } while (0) + ++static int compare_nxn(const struct blt_copy_object *surf1, ++ const struct blt_copy_object *surf2, ++ int xsize, int ysize, int bx, int by) ++{ ++ int x, y, corrupted; ++ uint32_t pos, px1, px2; ++ ++ corrupted = 0; ++ for (y = 0; y < ysize; y++) { ++ for (x = 0; x < xsize; x++) { ++ pos = bx * xsize + by * ysize * surf1->pitch / 4; ++ pos += x + y * surf1->pitch / 4; ++ px1 = surf1->ptr[pos]; ++ px2 = surf2->ptr[pos]; ++ if (px1 != px2) ++ corrupted++; ++ } ++ } ++ ++ return corrupted; ++} ++ ++static void dump_corruption_info(const struct blt_copy_object *surf1, ++ const struct blt_copy_object *surf2) ++{ ++ const int xsize = 8, ysize = 8; ++ int w, h, bx, by, corrupted; ++ ++ igt_assert(surf1->x1 == surf2->x1 && surf1->x2 == surf2->x2); ++ igt_assert(surf1->y1 == surf2->y1 && surf1->y2 == surf2->y2); ++ w = surf1->x2; ++ h = surf1->y2; ++ ++ igt_info("dump corruption - width: %d, height: %d, sizex: %x, sizey: %x\n", ++ surf1->x2, surf1->y2, xsize, ysize); ++ ++ for (by = 0; by < h / ysize; by++) { ++ for (bx = 0; bx < w / xsize; bx++) { ++ corrupted = compare_nxn(surf1, surf2, xsize, ysize, bx, by); ++ if (corrupted == 0) ++ igt_info("."); ++ else ++ igt_info("%c", '0' + corrupted); ++ } ++ igt_info("\n"); ++ } ++} ++ + static void surf_copy(int i915, + const intel_ctx_t *ctx, + const struct intel_execution_engine2 *e, +@@ -170,7 +218,7 @@ static void surf_copy(int i915, + struct blt_copy_data blt = {}; + struct blt_block_copy_data_ext ext = {}; + struct blt_ctrl_surf_copy_data surf = {}; +- uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; ++ uint32_t bb1, bb2, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; + uint32_t *ccscopy; + uint8_t uc_mocs = intel_get_uc_mocs(i915); +@@ -178,8 +226,6 @@ static void surf_copy(int i915, + + igt_assert(mid->compression); + ccscopy = (uint32_t *) malloc(ccssize); +- bb_size = 4096; +- bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); + ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); + +@@ -189,7 +235,9 @@ static void surf_copy(int i915, + uc_mocs, INDIRECT_ACCESS); + set_surf_object(&surf.dst, ccs, REGION_SMEM, ccssize, + uc_mocs, DIRECT_ACCESS); +- set_batch(&surf.bb, bb, bb_size, REGION_SMEM); ++ bb_size = 4096; ++ igt_assert_eq(__gem_create(i915, &bb_size, &bb1), 0); ++ set_batch(&surf.bb, bb1, bb_size, REGION_SMEM); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + +@@ -240,9 +288,8 @@ static void surf_copy(int i915, + set_blt_object(&blt.dst, dst); + set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); + set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); +- bb_size = 4096; +- bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); +- set_batch(&blt.bb, bb, bb_size, REGION_SMEM); ++ igt_assert_eq(__gem_create(i915, &bb_size, &bb2), 0); ++ set_batch(&blt.bb, bb2, bb_size, REGION_SMEM); + blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); + gem_sync(i915, blt.dst.handle); + WRITE_PNG(i915, run_id, "corrupted", &blt.dst, dst->x2, dst->y2); +@@ -257,10 +304,18 @@ static void surf_copy(int i915, + gem_sync(i915, blt.dst.handle); + WRITE_PNG(i915, run_id, "corrected", &blt.dst, dst->x2, dst->y2); + result = memcmp(src->ptr, dst->ptr, src->size); +- igt_assert(result == 0); ++ if (result) ++ dump_corruption_info(src, dst); + + munmap(ccsmap, ccssize); + gem_close(i915, ccs); ++ gem_close(i915, ccs2); ++ gem_close(i915, bb1); ++ gem_close(i915, bb2); ++ ++ igt_assert_f(result == 0, ++ "Source and destination surfaces are different after " ++ "restoring source ccs data\n"); + } + + struct blt_copy3_data { +-- +GitLab + diff --git a/intel-gpu-tools/time b/intel-gpu-tools/time new file mode 100644 index 0000000..3a786da --- /dev/null +++ b/intel-gpu-tools/time @@ -0,0 +1,6 @@ + + +real 5m25.401s +user 15m28.177s +sys 0m46.189s + diff --git a/jave b/jave deleted file mode 120000 index a6efd57..0000000 --- a/jave +++ /dev/null @@ -1 +0,0 @@ -../jobcomm/jave \ No newline at end of file diff --git a/jwm/PKGBUILD b/jwm/PKGBUILD new file mode 100644 index 0000000..e748290 --- /dev/null +++ b/jwm/PKGBUILD @@ -0,0 +1,58 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=jwm +pkgver=2.4.3 +pkgrel=01 +pkgdesc="A lightweight window manager for the X11 Window System" +arch=(x86_64) +url="https://github.com/joewing/jwm" +#url="https://joewing.net/projects/jwm" +#$pkgname::git+https://github.com/joewing/jwm.git +groups=(joborun-pkg-x11) +provides=('jwm') +depends=('libx11' 'libxft' 'libjpeg-turbo' 'libxpm' 'libxinerama' 'libpng' 'cairo' 'librsvg') +backup=('etc/system.jwmrc') +#https://github.com/joewing/jwm/releases/download/v$pkgver/jwm-$pkgver.tar.xz +source=("${url}/releases/download/v$pkgver/$pkgname-$pkgver.tar.xz" + jwm.desktop) + + +prepare() { +# this is an Obarun patch - don't waste time building without it - it crashes out after 10" amd throws you back to tty + cd "$srcdir/$pkgname-$pkgver" + sed -i 's|/usr/local/share/|/usr/share/|' contrib/Makefile po/Makefile* example.jwmrc + # locales were broken in 2.4.0 + sed -i 's|mkdir_p = @mkdir_p@|mkdir_p = /usr/bin/mkdir -p --|' po/Makefile* +} + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --disable-fribidi + make +} + + +package() { + cd $pkgname-$pkgver + make BINDIR="$pkgdir/usr/bin" MANDIR="$pkgdir/usr/share/man" \ + DESTDIR="$pkgdir" SYSCONF="$pkgdir/etc" install + install -Dm644 "$srcdir/jwm.desktop" "$pkgdir/usr/share/xsessions/jwm.desktop" + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +#---- license gpg-key sha256sums ---- + +license=('MIT') + +sha256sums=(ee3b4ee0c452ef31fcb9303ab50aaf496cf5bdf7b5f1fdc9a1251b7175ca67ab # jwm-2.4.3.tar.xz + 489327c12bb44c6802144f972411dab7a44a61920c07028fa3d81cfd0ba9fd30) # jwm.desktop + + + diff --git a/jwm/PKGBUILD-arch b/jwm/PKGBUILD-arch new file mode 100644 index 0000000..8e883f9 --- /dev/null +++ b/jwm/PKGBUILD-arch @@ -0,0 +1,39 @@ +# Maintainer: Kyle Keen +# Maintainer: Sergej Pupykin + +pkgname=jwm +pkgver=2.4.3 +pkgrel=1 +pkgdesc="A lightweight window manager for the X11 Window System" +arch=('x86_64') +url="https://joewing.net/projects/jwm/" +license=('MIT') +depends=('libx11' 'libxft' 'libjpeg-turbo' 'libxpm' 'libxinerama' 'libpng' 'cairo' 'librsvg') +backup=('etc/system.jwmrc') +source=("https://github.com/joewing/jwm/releases/download/v$pkgver/jwm-$pkgver.tar.xz" + jwm.desktop) +# contacted upstream about desktop +# no reply +sha512sums=('35b8a6da9614f11881013aa77c36ee88ce9a213f056e797231b772132beb841d54094809b6a476383999bddeccf61451f72cd166309dd79c223b634cf5d1e69e' + '1014988cc17a439ad3ae36a1e137ad8c9c46b2afbe6966c68ecc3258a0320fbad96c562fb39bdc41db624ebddaa45617938b621b489f3a740bda11a40f4f7718') + +prepare() { + cd "$pkgname-$pkgver" + sed -i 's|/usr/local/share/|/usr/share/|' contrib/Makefile po/Makefile* example.jwmrc + # locales were broken in 2.4.0 + sed -i 's|mkdir_p = @mkdir_p@|mkdir_p = /usr/bin/mkdir -p --|' po/Makefile* +} + +build() { + cd "$pkgname-$pkgver" + ./configure --prefix=/usr --sysconfdir=/etc --disable-fribidi + make +} + +package() { + cd "$pkgname-$pkgver" + make BINDIR="$pkgdir/usr/bin" MANDIR="$pkgdir/usr/share/man" \ + DESTDIR="$pkgdir" SYSCONF="$pkgdir/etc" install + install -Dm644 "../jwm.desktop" "$pkgdir/usr/share/xsessions/jwm.desktop" + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/jwm/clean b/jwm/clean new file mode 100644 index 0000000..c05c8b9 --- /dev/null +++ b/jwm/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,jwm*tar.xz} diff --git a/jwm/deps b/jwm/deps new file mode 100644 index 0000000..4a3a9b0 --- /dev/null +++ b/jwm/deps @@ -0,0 +1,13 @@ +libx11 +libxft +libjpeg-turbo +libxpm +libxinerama +libpng +cairo +librsvg +automake +autoconf +git + + diff --git a/jwm/jwm.desktop b/jwm/jwm.desktop new file mode 100644 index 0000000..af793d8 --- /dev/null +++ b/jwm/jwm.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=JWM +Comment=A lightweight window manger for the X11 Window System +Exec=/usr/bin/jwm +TryExec=/usr/bin/jwm +Type=XSession diff --git a/jwm/time b/jwm/time new file mode 100644 index 0000000..d35226d --- /dev/null +++ b/jwm/time @@ -0,0 +1,4 @@ + +real 0m7.798s +user 0m16.229s +sys 0m1.737s diff --git a/libajantv2/PKGBUILD b/libajantv2/PKGBUILD deleted file mode 100644 index fcee1ef..0000000 --- a/libajantv2/PKGBUILD +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=libajantv2 -_pkgver=16.2-bugfix5 -pkgver=${_pkgver//-/_} -pkgrel=01 -epoch=1 -pkgdesc="AJA NTV2 Open Source Static Libs and Headers for building applications that only wish to statically link against" -arch=("i686" "x86_64" "aarch64") -url="https://github.com/aja-video/ntv2" -depends=() -makedepends=("cmake" "git") -#options=('!lto' 'debug') ## uncomment this line to have the debug pkg made -options=(!lto) -source=("ntv2::git+https://github.com/aja-video/ntv2.git#commit=0acbac70a0b5e6509cca78cfbf69974c73c10db9") - -build() { - cd ntv2 - mkdir -p build; cd build - - cmake \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DAJA_BUILD_OPENSOURCE=ON \ - -DAJA_BUILD_APPS=OFF \ - -DAJA_BUILD_SHARED=ON \ - -DAJA_INSTALL_HEADERS=ON .. - - make -} - -package() { - cd ntv2 - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" - - cd build - make install DESTDIR="$pkgdir" -} - -#---- license gpg-key sha256sums ---- - -license=("MIT") - -sha256sums=(SKIP) diff --git a/libajantv2/PKGBUILD-aur b/libajantv2/PKGBUILD-aur deleted file mode 100644 index 71c5bbb..0000000 --- a/libajantv2/PKGBUILD-aur +++ /dev/null @@ -1,40 +0,0 @@ -# Maintainer: tytan652 - -pkgname=libajantv2 -_pkgver=16.2-bugfix5 -pkgver=${_pkgver//-/_} -pkgrel=1 -epoch=1 -pkgdesc="AJA NTV2 Open Source Static Libs and Headers for building applications that only wish to statically link against" -arch=("i686" "x86_64" "aarch64") -url="https://github.com/aja-video/ntv2" -license=("MIT") -depends=() -makedepends=("cmake" "git") -options=('!lto' 'debug') -source=("ntv2::git+https://github.com/aja-video/ntv2.git#commit=0acbac70a0b5e6509cca78cfbf69974c73c10db9") -sha256sums=("SKIP") - -build() { - cd ntv2 - mkdir -p build; cd build - - cmake \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DAJA_BUILD_OPENSOURCE=ON \ - -DAJA_BUILD_APPS=OFF \ - -DAJA_BUILD_SHARED=ON \ - -DAJA_INSTALL_HEADERS=ON .. - - make -} - -package() { - cd ntv2 - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" - - cd build - make install DESTDIR="$pkgdir" -} diff --git a/libajantv2/clean b/libajantv2/clean deleted file mode 100644 index 54eed39..0000000 --- a/libajantv2/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,ntv2} diff --git a/libajantv2/deps b/libajantv2/deps deleted file mode 100644 index 8f265c8..0000000 --- a/libajantv2/deps +++ /dev/null @@ -1,2 +0,0 @@ -git -cmake diff --git a/libajantv2/time b/libajantv2/time deleted file mode 100644 index 0af15e4..0000000 --- a/libajantv2/time +++ /dev/null @@ -1,5 +0,0 @@ - -real 4m17.706s -user 14m0.359s -sys 0m27.441s - diff --git a/libgudev/NOTE-IMPORTANT-READ b/libgudev/NOTE-IMPORTANT-READ new file mode 100644 index 0000000..b3ea3d3 --- /dev/null +++ b/libgudev/NOTE-IMPORTANT-READ @@ -0,0 +1 @@ +238 version requires libudev.so ver>= 251 and our libeudev provides 243 so it is built with libudev from jobcomm based on systemd udev and not the eudev project diff --git a/libgudev/PKGBUILD b/libgudev/PKGBUILD new file mode 100644 index 0000000..a4bcc97 --- /dev/null +++ b/libgudev/PKGBUILD @@ -0,0 +1,63 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +##WARNING libgudev can not be built with eudev/libeudev as they provide ver 243 of udev +## and it requires at least ver 251, so we used a build of udev/libudev similar to +## artix based directly from udevd to build +## We will monitor the effects and wait for the eudev upstream to accomodate the +## the necessary changes + +pkgname=libgudev +pkgver=238 +pkgrel=01 +pkgdesc="GObject bindings for libudev" +url="https://wiki.gnome.org/Projects/libgudev" +depends=(glib2) +makedepends=(gobject-introspection gtk-doc git meson umockdev vala) +_commit=df7c9c9940160307aaeb31347f4776a46f8736a9 # tags/238^0 +source=("git+https://gitlab.gnome.org/GNOME/libgudev.git#commit=$_commit") + +pkgver() { + cd libgudev + git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' +} + +prepare() { + cd libgudev + + # Use a locale with "," decimal separator that we + # actually have available in the build environments + sed -e 's/fr_FR\.UTF-8/de_DE.UTF-8/g' \ + -i tests/meson.build tests/test-double.c +} + +build() { + arch-meson libgudev build -D gtk_doc=true + meson compile -C build +} + +#check() { +# meson test -C build --print-errorlogs +#} + +package() { + depends+=(libg{lib,object}-2.0.so libudev.so) + provides+=(libgudev-1.0.so) + + meson install -C build --destdir "$pkgdir" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(LGPL2.1) + +sha256sums=(SKIP) + +## 8d997877062130d4ca41029f3fcb24e4cf8819bb7651c9ebdd251679e54474d8 libgudev-238-01-x86_64.pkg.tar.lz + diff --git a/libgudev/PKGBUILD-arch b/libgudev/PKGBUILD-arch new file mode 100644 index 0000000..bf3dcff --- /dev/null +++ b/libgudev/PKGBUILD-arch @@ -0,0 +1,60 @@ +# Maintainer: Evangelos Foutras + +pkgname=libgudev +pkgver=238 +pkgrel=1 +pkgdesc="GObject bindings for libudev" +url="https://wiki.gnome.org/Projects/libgudev" +arch=(x86_64) +license=(LGPL2.1) +depends=( + glib2 + systemd +) +makedepends=( + git + gobject-introspection + gtk-doc + meson + umockdev + vala +) +_commit=df7c9c9940160307aaeb31347f4776a46f8736a9 # tags/238^0 +source=("git+https://gitlab.gnome.org/GNOME/libgudev.git#commit=$_commit") +b2sums=('SKIP') + +pkgver() { + cd libgudev + git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' +} + +prepare() { + cd libgudev + + # Use a locale with "," decimal separator that we + # actually have available in the build environments + sed -e 's/fr_FR\.UTF-8/de_DE.UTF-8/g' \ + -i tests/meson.build tests/test-double.c +} + +build() { + local meson_options=( + -D gtk_doc=true + ) + + arch-meson libgudev build "${meson_options[@]}" + meson compile -C build +} + +check() { + meson test -C build --print-errorlogs +} + +package() { + depends+=(libg{lib,object}-2.0.so libudev.so) + provides+=(libgudev-1.0.so) + + meson install -C build --destdir "$pkgdir" +} + +# vim:set sw=2 sts=-1 et: diff --git a/libgudev/deps b/libgudev/deps new file mode 100644 index 0000000..5e541a0 --- /dev/null +++ b/libgudev/deps @@ -0,0 +1,9 @@ +gobject-introspection +gtk-doc +meson +umockdev +vala +libgit2 +git +cmake + diff --git a/librist/010-librist-disable-multicast-tests.patch b/librist/010-librist-disable-multicast-tests.patch deleted file mode 100644 index 8491a73..0000000 --- a/librist/010-librist-disable-multicast-tests.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/test/rist/meson.build -+++ g/test/rist/meson.build -@@ -51,9 +51,6 @@ test('Simple profile unicast', test_send - test('Simple profile unicast packet loss 10%', test_send_receive, args: ['0', 'rist://@127.0.0.1:2234', 'rist://127.0.0.1:2234', '10'],suite: ['simple', 'unicast']) - test('Simple profile unicast packet loss 25%', test_send_receive, args: ['0', 'rist://@127.0.0.1:3234', 'rist://127.0.0.1:3234', '25'],suite: ['simple', 'unicast']) - #Multicast --test('Simple profile multicast', test_send_receive, args: ['0', 'rist://@239.0.0.1:1234?rtt-max=10&rtt-min=1', 'rist://239.0.0.1:1234?rtt-max=10&rtt-min=1', '0'],suite: ['simple', 'multicast']) --test('Simple profile multicast packet loss 10%', test_send_receive, args: ['0', 'rist://@239.0.0.2:2234?rtt-max=10&rtt-min=1', 'rist://239.0.0.2:2234?rtt-max=10&rtt-min=1', '10'],suite: ['simple', 'multicast']) --test('Simple profile multicast packet loss 25%', test_send_receive, args: ['0', 'rist://@239.0.0.3:3234?rtt-max=10&rtt-min=1', 'rist://239.0.0.3:3234?rtt-max=10&rtt-min=1', '25'],suite: ['simple', 'multicast']) - - ###Main profile tests: - #Sender connecting to receiver diff --git a/librist/PKGBUILD b/librist/PKGBUILD deleted file mode 100644 index 31532b1..0000000 --- a/librist/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=librist -pkgver=0.2.7 -pkgrel=01 -pkgdesc='A library that can be used to add the RIST protocol to applications' -arch=('x86_64') -url='https://code.videolan.org/rist/librist/' -depends=('cjson' 'mbedtls') -makedepends=('meson' 'cmake' 'cmocka' 'lz4') -source=("https://code.videolan.org/rist/librist/-/archive/v${pkgver}/${pkgname}-v${pkgver}.tar.bz2" - '010-librist-disable-multicast-tests.patch') - -prepare() { - patch -d "${pkgname}-v${pkgver}" -Np1 -i "${srcdir}/010-librist-disable-multicast-tests.patch" -} - -build() { - arch-meson build "${pkgname}-v${pkgver}" - ninja -v -C build -} - -check() { - ninja -v -C build test -} - -package() { - DESTDIR="$pkgdir" ninja -v -C build install - install -D -m644 "${pkgname}-v${pkgver}/COPYING" -t "${pkgdir}/usr/share/licenses/${pkgname}" -} - -#---- license gpg-key sha256sums ---- - -license=('BSD') - -sha256sums=(7adf2ef9e61e909020df6d22a38b4416380809e655a3f947fcd548b9af115603 # librist-v0.2.7.tar.bz2 - a9dc0c1a3690fea576252e687123ec2d7dfaec7c1a8b0e02c8518bdcb8e9b954) # 010-librist-disable-multicast-tests.patch - - diff --git a/librist/PKGBUILD-aur b/librist/PKGBUILD-aur deleted file mode 100644 index 1882ee3..0000000 --- a/librist/PKGBUILD-aur +++ /dev/null @@ -1,33 +0,0 @@ -# Maintainer: Daniel Bermond - -pkgname=librist -pkgver=0.2.7 -pkgrel=1 -pkgdesc='A library that can be used to add the RIST protocol to applications' -arch=('x86_64') -url='https://code.videolan.org/rist/librist/' -license=('BSD') -depends=('cjson' 'mbedtls') -makedepends=('meson' 'cmake' 'cmocka' 'lz4') -source=("https://code.videolan.org/rist/librist/-/archive/v${pkgver}/${pkgname}-v${pkgver}.tar.bz2" - '010-librist-disable-multicast-tests.patch') -sha256sums=('7adf2ef9e61e909020df6d22a38b4416380809e655a3f947fcd548b9af115603' - 'a9dc0c1a3690fea576252e687123ec2d7dfaec7c1a8b0e02c8518bdcb8e9b954') - -prepare() { - patch -d "${pkgname}-v${pkgver}" -Np1 -i "${srcdir}/010-librist-disable-multicast-tests.patch" -} - -build() { - arch-meson build "${pkgname}-v${pkgver}" - ninja -v -C build -} - -check() { - ninja -v -C build test -} - -package() { - DESTDIR="$pkgdir" ninja -v -C build install - install -D -m644 "${pkgname}-v${pkgver}/COPYING" -t "${pkgdir}/usr/share/licenses/${pkgname}" -} diff --git a/librist/clean b/librist/clean deleted file mode 100644 index de822e8..0000000 --- a/librist/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,librist*.tar.bz2} diff --git a/librist/deps b/librist/deps deleted file mode 100644 index 424b289..0000000 --- a/librist/deps +++ /dev/null @@ -1,5 +0,0 @@ -cjson -mbedtls -meson -cmake -cmocka diff --git a/librist/time b/librist/time deleted file mode 100644 index a390247..0000000 --- a/librist/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m25.552s -user 0m15.008s -sys 0m6.982s - diff --git a/libvirt/823a62ec.patch b/libvirt/823a62ec.patch new file mode 100644 index 0000000..5fcc644 --- /dev/null +++ b/libvirt/823a62ec.patch @@ -0,0 +1,48 @@ +From 823a62ec8aac4fb75e6e281164f3eb56ae47597c Mon Sep 17 00:00:00 2001 +From: Boris Fiuczynski +Date: Tue, 1 Mar 2022 18:47:59 +0100 +Subject: [PATCH] qemu: segmentation fault in virtqemud executing + qemuDomainUndefineFlags + +Commit 5adfb3472342741c443ac91dee0abb18b5a3d038 causes a segmentation fault. + +Stack trace of thread 664419: + #0 0x000003ff62ec553c in qemuDomainUndefineFlags (dom=0x3ff6c002810, flags=) at ../src/qemu/qemu_driver.c:6618 + #1 0x000003ff876a7e5c in virDomainUndefineFlags (domain=domain@entry=0x3ff6c002810, flags=) at ../src/libvirt-domain.c:6519 + #2 0x000002aa2b64a808 in remoteDispatchDomainUndefineFlags (server=0x2aa2c3d7880, msg=0x2aa2c3d2770, args=, rerr=0x3ff8287b950, client=) + at src/remote/remote_daemon_dispatch_stubs.h:13080 + #3 remoteDispatchDomainUndefineFlagsHelper (server=0x2aa2c3d7880, client=, msg=0x2aa2c3d2770, rerr=0x3ff8287b950, args=, ret=0x0) + at src/remote/remote_daemon_dispatch_stubs.h:13059 + #4 0x000003ff8758bbf4 in virNetServerProgramDispatchCall (msg=0x2aa2c3d2770, client=0x2aa2c3e3050, server=0x2aa2c3d7880, prog=0x2aa2c3d8010) + at ../src/rpc/virnetserverprogram.c:428 + #5 virNetServerProgramDispatch (prog=0x2aa2c3d8010, server=server@entry=0x2aa2c3d7880, client=0x2aa2c3e3050, msg=0x2aa2c3d2770) at ../src/rpc/virnetserverprogram.c:302 + #6 0x000003ff8758c260 in virNetServerProcessMsg (msg=, prog=, client=, srv=0x2aa2c3d7880) at ../src/rpc/virnetserver.c:140 + #7 virNetServerHandleJob (jobOpaque=0x2aa2c3e2d30, opaque=0x2aa2c3d7880) at ../src/rpc/virnetserver.c:160 + #8 0x000003ff874c49aa in virThreadPoolWorker (opaque=) at ../src/util/virthreadpool.c:164 + #9 0x000003ff874c3f62 in virThreadHelper (data=) at ../src/util/virthread.c:256 + #10 0x000003ff86c1cf8c in start_thread () from /lib64/libc.so.6 + #11 0x000003ff86c9650e in thread_start () from /lib64/libc.so.6 + +Signed-off-by: Boris Fiuczynski +Reviewed-by: Jim Fehlig +Reviewed-by: Michal Privoznik +--- + src/qemu/qemu_driver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c +index bcd9bdb436..8337eed510 100644 +--- a/src/qemu/qemu_driver.c ++++ b/src/qemu/qemu_driver.c +@@ -6615,7 +6615,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, + } + } + +- if (vm->def->os.loader->nvram) { ++ if (vm->def->os.loader && vm->def->os.loader->nvram) { + nvram_path = g_strdup(vm->def->os.loader->nvram); + } else if (vm->def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) { + qemuDomainNVRAMPathFormat(cfg, vm->def, &nvram_path); +-- +GitLab + diff --git a/libvirt/PKGBUILD b/libvirt/PKGBUILD new file mode 100644 index 0000000..4500d79 --- /dev/null +++ b/libvirt/PKGBUILD @@ -0,0 +1,258 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=(libvirt) # (libvirt-storage-gluster libvirt-storage-iscsi-direct libvirt-storage-rbd) +epoch=1 +pkgver=9.6.0 +pkgrel=01 +pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc) w/o zstd iscsi systemd" +url="https://libvirt.org/" +depends=('libpciaccess' 'yajl' 'fuse3' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit') +#makedepends=('open-iscsi' 'ceph-libs') # need systemd-libs +makedepends=('meson' 'libxslt' 'python-docutils' 'lvm2' + 'bash-completion' 'rpcsvc-proto' 'dnsmasq' 'iproute2' 'qemu-base') +# 'libiscsi' 'glusterfs' 'ceph-libs' 'glusterfs' + +optdepends=('libvirt-storage-rbd: RBD storage backend' + 'gettext: required for libvirt-guests.service' + 'openbsd-netcat: for remote management over ssh' + 'dmidecode: DMI system info support' + 'dnsmasq: required for default NAT/DHCP for guests' + 'iptables-nft: required for default NAT networking' + 'qemu: QEMU/KVM support' + 'lvm2: Logical Volume Manager support') + +backup=( + 'etc/libvirt/libvirt-admin.conf' + 'etc/libvirt/libvirt.conf' + 'etc/libvirt/libvirtd.conf' + 'etc/libvirt/lxc.conf' + 'etc/libvirt/nwfilter/allow-arp.xml' + 'etc/libvirt/nwfilter/allow-dhcp-server.xml' + 'etc/libvirt/nwfilter/allow-dhcpv6-server.xml' + 'etc/libvirt/nwfilter/allow-dhcp.xml' + 'etc/libvirt/nwfilter/allow-dhcpv6.xml' + 'etc/libvirt/nwfilter/allow-incoming-ipv4.xml' +# 'etc/libvirt/nwfilter/allow-incoming-ipv6.xml' +# 'etc/libvirt/nwfilter/allow-ipv6.xml' + 'etc/libvirt/nwfilter/allow-ipv4.xml' + 'etc/libvirt/nwfilter/clean-traffic-gateway.xml' + 'etc/libvirt/nwfilter/clean-traffic.xml' + 'etc/libvirt/nwfilter/no-arp-ip-spoofing.xml' + 'etc/libvirt/nwfilter/no-arp-mac-spoofing.xml' + 'etc/libvirt/nwfilter/no-arp-spoofing.xml' + 'etc/libvirt/nwfilter/no-ip-multicast.xml' +# 'etc/libvirt/nwfilter/no-ipv6-multicast.xml' + 'etc/libvirt/nwfilter/no-ip-spoofing.xml' +# 'etc/libvirt/nwfilter/no-ipv6-spoofing.xml' + 'etc/libvirt/nwfilter/no-mac-spoofing.xml' + 'etc/libvirt/nwfilter/no-mac-broadcast.xml' + 'etc/libvirt/nwfilter/no-other-l2-traffic.xml' + 'etc/libvirt/nwfilter/no-other-rarp-traffic.xml' + 'etc/libvirt/nwfilter/qemu-announce-self-rarp.xml' + 'etc/libvirt/nwfilter/qemu-announce-self.xml' + 'etc/libvirt/qemu.conf' + 'etc/libvirt/qemu-lockd.conf' + 'etc/libvirt/qemu/networks/default.xml' + 'etc/libvirt/virtchd.conf' + 'etc/libvirt/virtinterfaced.conf' + 'etc/libvirt/virtlockd.conf' + 'etc/libvirt/virtlogd.conf' + 'etc/libvirt/virt-login-shell.conf' + 'etc/libvirt/virtlxcd.conf' + 'etc/libvirt/virtnetworkd.conf' + 'etc/libvirt/virtnodedevd.conf' + 'etc/libvirt/virtnwfilterd.conf' + 'etc/libvirt/virtproxyd.conf' + 'etc/libvirt/virtqemud.conf' + 'etc/libvirt/virtsecretd.conf' + 'etc/libvirt/virtstoraged.conf' + 'etc/libvirt/virtvboxd.conf' + 'etc/logrotate.d/libvirtd' + 'etc/logrotate.d/libvirtd.lxc' + 'etc/logrotate.d/libvirtd.qemu' + 'etc/sasl2/libvirt.conf' +) +# options=(debug) # enable this if you want the debug package made +source=( + "https://libvirt.org/sources/$pkgname-$pkgver.tar.xz"{,.asc} +# https://gitlab.com/libvirt/libvirt/-/commit/823a62ec.patch +# glibc-2.36-lxc-fix.patch +# glibc-2.36-virfile-fix.patch + libvirt.sysusers + libvirt.tmpfiles) + +prepare() { + cd "$pkgname-$pkgver" + + sed -i 's|/sysconfig/|/conf.d/|g' \ + src/remote/libvirtd.service.in \ + tools/{libvirt-guests.service,libvirt-guests.sh,virt-pki-validate}.in \ + docs/manpages/libvirt-guests.rst \ + src/locking/virtlockd.service.in \ + src/logging/virtlogd.service.in + sed -i 's|/usr/libexec/qemu-bridge-helper|/usr/lib/qemu/qemu-bridge-helper|g' \ + src/qemu/qemu.conf.in \ + src/qemu/test_libvirtd_qemu.aug.in + +# patch -Np1 < ../glibc-2.36-lxc-fix.patch +# patch -Np1 < ../glibc-2.36-virfile-fix.patch +} + +build() { + cd "$pkgname-$pkgver" + + arch-meson build \ + --libexecdir=lib/libvirt \ + -Drunstatedir=/run \ + -Dqemu_group=libvirt-qemu \ + -Dqemu_user=libvirt-qemu \ + -Dnetcf=disabled \ + -Dopenwsman=disabled \ + -Dapparmor=disabled \ + -Dapparmor_profiles=disabled \ + -Dselinux=disabled \ + -Dwireshark_dissector=disabled \ + -Ddriver_bhyve=disabled \ + -Ddriver_hyperv=disabled \ + -Ddriver_libxl=disabled \ + -Ddriver_vz=disabled \ + -Ddriver_vmware=disabled \ + -Ddriver_vz=disabled \ + -Dsanlock=disabled \ + -Dsecdriver_apparmor=disabled \ + -Dsecdriver_selinux=disabled \ + -Dstorage_vstorage=disabled \ + -Ddtrace=disabled \ + -Dnumad=disabled \ + -Dstorage_zfs=disabled \ + -Dstorage_rbd=disabled \ + -Dglusterfs=disabled \ + -Dstorage_gluster=disabled \ + -Dstorage_iscsi=disabled \ + -Dstorage_iscsi_direct=disabled \ + -Dstorage_scsi=disabled \ + -Dlibiscsi=disabled \ + -Dinit_script=none + ninja -C build +} +# -Dparallels_sdk=disabled \ # this option is invalid + +#Some tests failed. Run them using: +#VIR_TEST_DEBUG=1 VIR_TEST_RANGE=76,164,192,197,199,203,205-206,208-209,212,251-253,256-261,286-287,398-399,831-832,1040 /src/pkg/jobextra/libvirt/src/libvirt-8.9.0/build/tests/qemuxml2argvtest +#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― +# +#145/147 virsh-output OK 1.70s +#146/147 virsh-optparse OK 2.36s +#147/147 qemuagenttest OK 6.18s +# +#Summary of Failures: +# +# 38/147 viridentitytest FAIL 0.05s exit status 1 +#144/147 qemuxml2argvtest FAIL 2.90s exit status 1 +# +#Ok: 145 +#Expected Fail: 0 +#Fail: 2 +#Unexpected Pass: 0 +#Skipped: 0 +#Timeout: 0 +# +#check() { +# cd "$pkgname-$pkgver" +# +# ninja -C build test +#} +# + +#package_libvirt() { +package() { + provides=("libvirt=$pkgver" 'libvirt.so' 'libvirt-admin.so' 'libvirt-lxc.so' 'libvirt-qemu.so') + cd "$pkgname-$pkgver" + DESTDIR="$pkgdir" ninja -C build install + + mkdir "$pkgdir"/usr/lib/{sysusers,tmpfiles}.d + echo 'g libvirt - -' > "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo 'u libvirt-qemu /var/lib/libvirt "Libvirt QEMU user"' >> "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo 'm libvirt-qemu kvm' >> "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo 'z /var/lib/libvirt/qemu 0751' > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf" + + ## systemd-sysusers + install -D -m0644 "$srcdir/libvirt.sysusers" "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + + ## systemd-tmpfiles + install -D -m0644 "$srcdir/libvirt.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf" + + chown 0:102 "$pkgdir/usr/share/polkit-1/rules.d" + chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d" + chmod 600 "$pkgdir"/etc/libvirt/nwfilter/*.xml \ + "$pkgdir/etc/libvirt/qemu/networks/default.xml" + chmod 700 "$pkgdir"/etc/libvirt/secrets + + rm -rf \ + "$pkgdir/run" \ + "$pkgdir/var/lib/libvirt/qemu" \ + "$pkgdir/var/cache/libvirt/qemu" \ + "$pkgdir/etc/logrotate.d/libvirtd.libxl" + + rm -f "$pkgdir/etc/libvirt/qemu/networks/autostart/default.xml" + + # move split modules +# mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_{rbd,gluster}.so "$pkgdir/../" +# mv "$pkgdir/usr/lib/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so" "$pkgdir/../" +# mv "$pkgdir/usr/lib/libvirt/storage-file/libvirt_storage_file_gluster.so" "$pkgdir/../" +} + +#package_libvirt-storage-gluster() { +# pkgdesc="Libvirt Gluster storage backend" +# depends=("libvirt=$pkgver" 'glusterfs') +# optdepends=() +# backup=() +# +# install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_gluster.so" +# install -Dv -t "$pkgdir/usr/lib/libvirt/storage-file" "$pkgdir/../libvirt_storage_file_gluster.so" +#} + +#package_libvirt-storage-iscsi-direct() { +# pkgdesc="Libvirt iSCSI-direct storage backend" +# depends=("libvirt=$pkgver" 'libiscsi') +# optdepends=() +# backup=() +# +# install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_iscsi-direct.so" +#} +# +#package_libvirt-storage-rbd() { +# pkgdesc="Libvirt RBD storage backend" +# depends=("libvirt=$pkgver" 'ceph-libs') +# optdepends=() +# backup=() +# +# install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_rbd.so" +#} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('LGPL' 'GPL3') #libvirt_parthelper links to libparted which is GPL3 only + +validpgpkeys=('453B65310595562855471199CA68BE8010084C9C') # Jiří Denemark + +sha256sums=(10f2e52dbb5df90410594a8e36d0e0587d38f11efb64ff32cbec422b93b70c52 # libvirt-9.6.0.tar.xz + 6d7df26615f850bb1c14dd2804143672801c97dcf96eefc6337e18ccc33a97aa # libvirt-9.6.0.tar.xz.asc + 6dc7907d6d4d883ac5ea15c195af673c97cff13f4c0493d23196e94bc87f04db # libvirt.sysusers + 465a3e535cdc5549beaf82b41f53b27d5352aab1313277fd0c2f33004d0d59ba) # libvirt.tmpfiles + +## 44ee8775566dd4efdb28d69491af3aced2dd3c4f6336f8b7bdfa6d9de1f40623 libvirt-1:9.6.0-01-x86_64.pkg.tar.lz + + +# Note to packager: +ls -l *pkg.tar.lz +echo "you must rename this package to meet SF naming before you move to the repo" +mv $(ls -l $pkgname*pkg.tar.lz) $pkgname-$epoch_$pkgver-$pkgrel-$arch.pkg.tar.lz >pkg-mv.log + diff --git a/libvirt/PKGBUILD-arch b/libvirt/PKGBUILD-arch new file mode 100644 index 0000000..ee89930 --- /dev/null +++ b/libvirt/PKGBUILD-arch @@ -0,0 +1,188 @@ +# Maintainer: Sven-Hendrik Haase +# Maintainer: Robin Broda +# Contributor: Christian Rebischke +# Contributor: Sergej Pupykin +# Contributor: Jonathan Wiersma + +pkgname=(libvirt libvirt-storage-gluster libvirt-storage-iscsi-direct) +epoch=1 +pkgver=9.6.0 +pkgrel=1 +pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" +arch=('x86_64') +url="https://libvirt.org/" +license=('LGPL' 'GPL3') #libvirt_parthelper links to libparted which is GPL3 only +depends=('libpciaccess' 'yajl' 'fuse3' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit') +makedepends=('meson' 'libxslt' 'python-docutils' 'lvm2' 'open-iscsi' 'libiscsi' 'glusterfs' + 'bash-completion' 'rpcsvc-proto' 'dnsmasq' 'iproute2' 'qemu-base') +optdepends=('libvirt-storage-gluster: Gluster storage backend' + 'libvirt-storage-iscsi-direct: iSCSI-direct storage backend' + 'gettext: required for libvirt-guests.service' + 'openbsd-netcat: for remote management over ssh' + 'dmidecode: DMI system info support' + 'dnsmasq: required for default NAT/DHCP for guests' + 'radvd: IPv6 RAD support' + 'iptables-nft: required for default NAT networking' + 'qemu-desktop: QEMU/KVM support' + 'qemu-emulators-full: Support of additional QEMU architectures' + 'lvm2: Logical Volume Manager support' + 'open-iscsi: iSCSI support via iscsiadm' + 'swtpm: TPM emulator support') + +backup=( + 'etc/libvirt/libvirt-admin.conf' + 'etc/libvirt/libvirt.conf' + 'etc/libvirt/libvirtd.conf' + 'etc/libvirt/lxc.conf' + 'etc/libvirt/nwfilter/allow-arp.xml' + 'etc/libvirt/nwfilter/allow-dhcp-server.xml' + 'etc/libvirt/nwfilter/allow-dhcpv6-server.xml' + 'etc/libvirt/nwfilter/allow-dhcp.xml' + 'etc/libvirt/nwfilter/allow-dhcpv6.xml' + 'etc/libvirt/nwfilter/allow-incoming-ipv4.xml' + 'etc/libvirt/nwfilter/allow-incoming-ipv6.xml' + 'etc/libvirt/nwfilter/allow-ipv6.xml' + 'etc/libvirt/nwfilter/allow-ipv4.xml' + 'etc/libvirt/nwfilter/clean-traffic-gateway.xml' + 'etc/libvirt/nwfilter/clean-traffic.xml' + 'etc/libvirt/nwfilter/no-arp-ip-spoofing.xml' + 'etc/libvirt/nwfilter/no-arp-mac-spoofing.xml' + 'etc/libvirt/nwfilter/no-arp-spoofing.xml' + 'etc/libvirt/nwfilter/no-ip-multicast.xml' + 'etc/libvirt/nwfilter/no-ipv6-multicast.xml' + 'etc/libvirt/nwfilter/no-ip-spoofing.xml' + 'etc/libvirt/nwfilter/no-ipv6-spoofing.xml' + 'etc/libvirt/nwfilter/no-mac-spoofing.xml' + 'etc/libvirt/nwfilter/no-mac-broadcast.xml' + 'etc/libvirt/nwfilter/no-other-l2-traffic.xml' + 'etc/libvirt/nwfilter/no-other-rarp-traffic.xml' + 'etc/libvirt/nwfilter/qemu-announce-self-rarp.xml' + 'etc/libvirt/nwfilter/qemu-announce-self.xml' + 'etc/libvirt/qemu.conf' + 'etc/libvirt/qemu-lockd.conf' + 'etc/libvirt/qemu/networks/default.xml' + 'etc/libvirt/virtchd.conf' + 'etc/libvirt/virtinterfaced.conf' + 'etc/libvirt/virtlockd.conf' + 'etc/libvirt/virtlogd.conf' + 'etc/libvirt/virt-login-shell.conf' + 'etc/libvirt/virtlxcd.conf' + 'etc/libvirt/virtnetworkd.conf' + 'etc/libvirt/virtnodedevd.conf' + 'etc/libvirt/virtnwfilterd.conf' + 'etc/libvirt/virtproxyd.conf' + 'etc/libvirt/virtqemud.conf' + 'etc/libvirt/virtsecretd.conf' + 'etc/libvirt/virtstoraged.conf' + 'etc/libvirt/virtvboxd.conf' + 'etc/logrotate.d/libvirtd' + 'etc/logrotate.d/libvirtd.lxc' + 'etc/logrotate.d/libvirtd.qemu' + 'etc/sasl2/libvirt.conf' +) +source=( + "https://libvirt.org/sources/$pkgname-$pkgver.tar.xz"{,.asc} +) +sha256sums=('10f2e52dbb5df90410594a8e36d0e0587d38f11efb64ff32cbec422b93b70c52' + 'SKIP') +validpgpkeys=('453B65310595562855471199CA68BE8010084C9C') # Jiří Denemark + +prepare() { + cd "$pkgname-$pkgver" + + sed -i 's|/sysconfig/|/conf.d/|g' \ + src/remote/libvirtd.service.in \ + tools/{libvirt-guests.service,libvirt-guests.sh,virt-pki-validate}.in \ + docs/manpages/libvirt-guests.rst \ + src/locking/virtlockd.service.in \ + src/logging/virtlogd.service.in + sed -i 's|/usr/libexec/qemu-bridge-helper|/usr/lib/qemu/qemu-bridge-helper|g' \ + src/qemu/qemu.conf.in \ + src/qemu/test_libvirtd_qemu.aug.in +} + +build() { + cd "$pkgname-$pkgver" + + arch-meson build \ + --libexecdir=lib/libvirt \ + -Drunstatedir=/run \ + -Dqemu_user=libvirt-qemu \ + -Dqemu_group=libvirt-qemu \ + -Dnetcf=disabled \ + -Dopenwsman=disabled \ + -Dapparmor=disabled \ + -Dapparmor_profiles=disabled \ + -Dselinux=disabled \ + -Dwireshark_dissector=disabled \ + -Ddriver_bhyve=disabled \ + -Ddriver_hyperv=disabled \ + -Ddriver_libxl=disabled \ + -Ddriver_vz=disabled \ + -Dsanlock=disabled \ + -Dsecdriver_apparmor=disabled \ + -Dsecdriver_selinux=disabled \ + -Dstorage_vstorage=disabled \ + -Ddtrace=disabled \ + -Dnumad=disabled \ + -Dstorage_zfs=enabled\ + -Dstorage_rbd=disabled + + ninja -C build +} + +check() { + cd "$pkgname-$pkgver" + + ninja -C build test +} + +package_libvirt() { + provides=("libvirt=$pkgver" 'libvirt.so' 'libvirt-admin.so' 'libvirt-lxc.so' 'libvirt-qemu.so') + cd "$pkgname-$pkgver" + DESTDIR="$pkgdir" ninja -C build install + + mkdir "$pkgdir"/usr/lib/{sysusers,tmpfiles}.d + echo 'g libvirt - -' > "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo 'u libvirt-qemu /var/lib/libvirt "Libvirt QEMU user"' >> "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo 'm libvirt-qemu kvm' >> "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo 'z /var/lib/libvirt/qemu 0751' > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf" + + chown 0:102 "$pkgdir/usr/share/polkit-1/rules.d" + chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d" + chmod 600 "$pkgdir"/etc/libvirt/nwfilter/*.xml \ + "$pkgdir/etc/libvirt/qemu/networks/default.xml" + chmod 700 "$pkgdir"/etc/libvirt/secrets + + rm -rf \ + "$pkgdir/run" \ + "$pkgdir/var/lib/libvirt/qemu" \ + "$pkgdir/var/cache/libvirt/qemu" \ + "$pkgdir/etc/logrotate.d/libvirtd.libxl" + + rm -f "$pkgdir/etc/libvirt/qemu/networks/autostart/default.xml" + + # move split modules + mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_gluster.so "$pkgdir/../" + mv "$pkgdir/usr/lib/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so" "$pkgdir/../" + mv "$pkgdir/usr/lib/libvirt/storage-file/libvirt_storage_file_gluster.so" "$pkgdir/../" +} + +package_libvirt-storage-gluster() { + pkgdesc="Libvirt Gluster storage backend" + depends=("libvirt=$pkgver" 'glusterfs') + optdepends=() + backup=() + + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_gluster.so" + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-file" "$pkgdir/../libvirt_storage_file_gluster.so" +} + +package_libvirt-storage-iscsi-direct() { + pkgdesc="Libvirt iSCSI-direct storage backend" + depends=("libvirt=$pkgver" 'libiscsi') + optdepends=() + backup=() + + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_iscsi-direct.so" +} diff --git a/libvirt/clean b/libvirt/clean new file mode 100644 index 0000000..cbd3131 --- /dev/null +++ b/libvirt/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,libvi*0.tar.xz*} diff --git a/libvirt/deps b/libvirt/deps new file mode 100644 index 0000000..ebebcf6 --- /dev/null +++ b/libvirt/deps @@ -0,0 +1,19 @@ +libpciaccess +fuse3 +parted +libssh +libxml2 +polkit +meson +libxslt +python-docutils +lvm2 +libiscsi +glusterfs +bash-completion +rpcsvc-proto +dnsmasq +gettext +qemu-base + + diff --git a/libvirt/glibc-2.36-lxc-fix.patch b/libvirt/glibc-2.36-lxc-fix.patch new file mode 100644 index 0000000..ab4f5a2 --- /dev/null +++ b/libvirt/glibc-2.36-lxc-fix.patch @@ -0,0 +1,37 @@ +From 9493c9b79dc541ec9e0fd73c6d87bdf8d30aaa90 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Mon, 1 Aug 2022 15:20:38 -0400 +Subject: [PATCH] lxc: containter: fix build with glibc 2.36 + +With glibc 2.36, sys/mount.h and linux/mount.h conflict: +https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E + +lxc_container.c imports sys/mount.h and linux/fs.h, which pulls in +linux/mount.h. + +linux/fs.h isn't required here though. glibc sys/mount.h has had +MS_MOVE since 2.12 in 2010 + +Reviewed-by: Erik Skultety +Signed-off-by: Cole Robinson +--- + src/lxc/lxc_container.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c +index b5278831da..a5401c2186 100644 +--- a/src/lxc/lxc_container.c ++++ b/src/lxc/lxc_container.c +@@ -33,9 +33,6 @@ + /* Yes, we want linux private one, for _syscall2() macro */ + #include + +-/* For MS_MOVE */ +-#include +- + #if WITH_CAPNG + # include + #endif +-- +GitLab + diff --git a/libvirt/glibc-2.36-virfile-fix.patch b/libvirt/glibc-2.36-virfile-fix.patch new file mode 100644 index 0000000..cfe71d4 --- /dev/null +++ b/libvirt/glibc-2.36-virfile-fix.patch @@ -0,0 +1,42 @@ +From c0d9adf220dc0d223330a7bac37b174132d330ba Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Mon, 1 Aug 2022 15:24:01 -0400 +Subject: [PATCH] virfile: Fix build with glibc 2.36 + +With glibc 2.36, sys/mount.h and linux/mount.h conflict: +https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E + +virfile.c imports sys/mount.h and linux/fs.h, which pulls in +linux/mount.h. + +Manually define the constants we need from linux/fs.h, like was +done in llvm: + +https://reviews.llvm.org/rGb379129c4beb3f26223288627a1291739f33af02 + +Reviewed-by: Erik Skultety +Signed-off-by: Cole Robinson +--- + src/util/virfile.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/util/virfile.c b/src/util/virfile.c +index 99da058db3..ce541b8946 100644 +--- a/src/util/virfile.c ++++ b/src/util/virfile.c +@@ -71,7 +71,11 @@ + # endif + # include + # include +-# include ++/* These come from linux/fs.h, but that header conflicts with ++ * sys/mount.h on glibc 2.36+ */ ++# define FS_IOC_GETFLAGS _IOR('f', 1, long) ++# define FS_IOC_SETFLAGS _IOW('f', 2, long) ++# define FS_NOCOW_FL 0x00800000 + #endif + + #if WITH_LIBATTR +-- +GitLab + diff --git a/libvirt/key b/libvirt/key new file mode 100644 index 0000000..7fa76bc --- /dev/null +++ b/libvirt/key @@ -0,0 +1,2 @@ +gpg -v --recv-key CA68BE8010084C9C + diff --git a/libvirt/libvirt.sysusers b/libvirt/libvirt.sysusers new file mode 100644 index 0000000..f2544db --- /dev/null +++ b/libvirt/libvirt.sysusers @@ -0,0 +1 @@ +g libvirt - - diff --git a/libvirt/libvirt.tmpfiles b/libvirt/libvirt.tmpfiles new file mode 100644 index 0000000..8f7ca65 --- /dev/null +++ b/libvirt/libvirt.tmpfiles @@ -0,0 +1 @@ +z /var/lib/libvirt/qemu 0751 diff --git a/libvirt/note b/libvirt/note new file mode 100644 index 0000000..dfe1157 --- /dev/null +++ b/libvirt/note @@ -0,0 +1 @@ +wait for obarun's qemu-base before making diff --git a/libvirt/sums b/libvirt/sums new file mode 100644 index 0000000..d81082f --- /dev/null +++ b/libvirt/sums @@ -0,0 +1,5 @@ +libvirt-8.1.0.tar.xz +libvirt-8.1.0.tar.xz.asc +823a62ec.patch +libvirt.sysusers +libvirt.tmpfiles diff --git a/libvirt/time b/libvirt/time new file mode 100644 index 0000000..d25bf25 --- /dev/null +++ b/libvirt/time @@ -0,0 +1,6 @@ + + +real 5m0.627s +user 17m46.400s +sys 0m57.909s + diff --git a/limine/PKGBUILD b/limine/PKGBUILD index 4d505f1..5906d7b 100644 --- a/limine/PKGBUILD +++ b/limine/PKGBUILD @@ -7,18 +7,16 @@ # reference to the implementation done by mobinmob in abyss # https://github.com/mobinmob/void-mklive/tree/abyss # https://github.com/void-linux/void-mklive/issues/313 +# Eventually this made it to AUR then extra for Arch pkgname=limine -## previous=4.20230325.0 -pkgver=4.20230408.0 -pkgrel=02 +pkgver=5.20230811.0 +pkgrel=01 pkgdesc="An advanced, portable, multiprotocol bootloader" url="https://limine-bootloader.org/" depends=('glibc') makedepends=('nasm' 'mtools' 'llvm' 'lld' 'clang') -source=("https://github.com/limine-bootloader/limine/releases/download/v${pkgver}/limine-${pkgver}.tar.xz" - limine.boot.protocol - limine.barebones.wiki +source=("https://github.com/limine-bootloader/limine/releases/download/v${pkgver}/$pkgname-${pkgver}.tar.xz" limine.cfg::https://github.com/limine-bootloader/limine/raw/trunk/test/limine.cfg bg.jpg::https://raw.githubusercontent.com/limine-bootloader/limine/trunk/test/bg.jpg CONFIG.md::https://github.com/limine-bootloader/limine/raw/trunk/CONFIG.md) @@ -48,7 +46,7 @@ package() { make DESTDIR="$pkgdir" install install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" mkdir -p -m755 "$pkgdir/boot/limine" - install -Dm644 $srcdir/$pkgname-$pkgver/bin/limine.sys "$pkgdir/boot/limine/" + install -Dm644 $srcdir/$pkgname-$pkgver/bin/limine-bios.sys "$pkgdir/boot/limine/" install -Dm644 $srcdir/bg.jpg "$pkgdir/boot/limine/" install -Dm644 $srcdir/limine.cfg "$pkgdir/boot/limine/" install -Dm644 $srcdir/CONFIG.md "$pkgdir/boot/limine/" @@ -59,19 +57,11 @@ package() { arch=(x86_64) license=('BSD') - -b2sums=('c4a5d0a93082b4f9569b2af6d8b345ca7b0e00aeff42af112e2f07541b091f54451af7be969fad3d28c6108cf2106ce7d5d463f0237090bfd5b3548e50ca935f' - SKIP - SKIP - SKIP - SKIP - SKIP) - -sha256sums=(e0f41a5242436a98638d3931ec65ae4aa07c838060ddb833b11783c25cc7e10e # limine-4.20230408.0.tar.xz - 8964016f9aaaf246d92433f6849c2e228483c7b9716d04afef234d9bb556ca8a # limine.boot.protocol - aba179176961f3fece88672413f98d0ef93e9671f9d25846335aa1ae8e806ebb # limine.barebones.wiki - bfbd4b5e8d318cb6cb91c1e1311525f65046943edb642aa411bea94a522f3d32 # limine.cfg + +sha256sums=(644b3725efb864176e176c2beae2c7e83cfe38b50b570b03ef9dde42279a0b7a # limine-5.20230811.0.tar.xz + a70b1fd5981d8d7d024992a521fd78481a0a69f8311a768679fc732f5c03488a # limine.cfg 15df8e06872a6cb89dfad3f99ad2b255dd1a54576e4343c954975e2ea48f28ab # bg.jpg - 929fdf6d57dd490ab4bf18ad0415318eeeafe35dae0095c3b477ad32c3f32919) # CONFIG.md + c2897b54e8a54d81a61f929280f98b54786a506e5269fe474ebfac4c57c57a9f) # CONFIG.md + +## 5e1e306c64dc9d0b10ee12a024691c3dbe1678fec0b20a99d0ed9e1fe586a4c0 limine-5.20230811.0-01-x86_64.pkg.tar.lz -## 6f114f7a8b7c8de6a399aaee7a53444497a7cf9932677071febfec1bdd524e7c limine-4.20230408.0-02-x86_64.pkg.tar.lz diff --git a/limine/PKGBUILD-arch b/limine/PKGBUILD-arch new file mode 100644 index 0000000..9b3b017 --- /dev/null +++ b/limine/PKGBUILD-arch @@ -0,0 +1,26 @@ +# Maintainer: Robin Candau +# Contributor: Mintsuki + +pkgname=limine +pkgver=5.20230811.0 +pkgrel=1 +pkgdesc="An advanced, portable, multiprotocol bootloader" +arch=('x86_64') +url="https://limine-bootloader.org/" +license=('BSD') +depends=('glibc') +makedepends=('nasm' 'mtools' 'llvm' 'lld' 'clang') +source=("https://github.com/limine-bootloader/limine/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz") +sha256sums=('644b3725efb864176e176c2beae2c7e83cfe38b50b570b03ef9dde42279a0b7a') + +build() { + cd "${pkgname}-${pkgver}" + ./configure --prefix=/usr --enable-all TOOLCHAIN_FOR_TARGET=llvm + make +} + +package() { + cd "${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/limine/configure b/limine/configure index 160f6b9..3a169bb 100644 --- a/limine/configure +++ b/limine/configure @@ -1,101 +1,138 @@ -`configure' configures Limine 4.20230325.0 to adapt to many kinds of systems. +Usage: ls [OPTION]... [FILE]... +List information about the FILEs (the current directory by default). +Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. -Usage: src/limine-4.20230325.0/configure [OPTION]... [VAR=VALUE]... +Mandatory arguments to long options are mandatory for short options too. + -a, --all do not ignore entries starting with . + -A, --almost-all do not list implied . and .. + --author with -l, print the author of each file + -b, --escape print C-style escapes for nongraphic characters + --block-size=SIZE with -l, scale sizes by SIZE when printing them; + e.g., '--block-size=M'; see SIZE format below -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. + -B, --ignore-backups do not list implied entries ending with ~ + -c with -lt: sort by, and show, ctime (time of last + change of file status information); + with -l: show ctime and sort by name; + otherwise: sort by ctime, newest first -Defaults for the options are specified in brackets. + -C list entries by columns + --color[=WHEN] color the output WHEN; more info below + -d, --directory list directories themselves, not their contents + -D, --dired generate output designed for Emacs' dired mode + -f list all entries in directory order + -F, --classify[=WHEN] append indicator (one of */=>@|) to entries WHEN + --file-type likewise, except do not append '*' + --format=WORD across -x, commas -m, horizontal -x, long -l, + single-column -1, verbose -l, vertical -C -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print `checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for `--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or `..'] + --full-time like -l --time-style=full-iso + -g like -l, but do not list owner + --group-directories-first + group directories before files; + can be augmented with a --sort option, but any + use of --sort=none (-U) disables grouping -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [/usr/local] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + -G, --no-group in a long listing, don't print group names + -h, --human-readable with -l and -s, print sizes like 1K 234M 2G etc. + --si likewise, but use powers of 1000 not 1024 + -H, --dereference-command-line + follow symbolic links listed on the command line + --dereference-command-line-symlink-to-dir + follow each command line symbolic link + that points to a directory -By default, `make install' will install all the files in -`/usr/local/bin', `/usr/local/lib' etc. You can specify -an installation prefix other than `/usr/local' using `--prefix', -for instance `--prefix=$HOME'. + --hide=PATTERN do not list implied entries matching shell PATTERN + (overridden by -a or -A) -For better control, use the options below. + --hyperlink[=WHEN] hyperlink file names WHEN + --indicator-style=WORD + append indicator with style WORD to entry names: + none (default), slash (-p), + file-type (--file-type), classify (-F) -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/limine] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + -i, --inode print the index number of each file + -I, --ignore=PATTERN do not list implied entries matching shell PATTERN + -k, --kibibytes default to 1024-byte blocks for file system usage; + used only with -s and per directory totals -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-werror treat warnings as errors - --enable-all enable ALL ports and targets - --enable-bios-cd enable building the x86 BIOS CD image - --enable-bios-pxe enable building the x86 BIOS PXE image - --enable-bios enable building the x86 BIOS port - --enable-uefi-ia32 enable building the IA-32 UEFI port - --enable-uefi-x86-64 enable building the x86-64 UEFI port - --enable-uefi-aarch64 enable building the aarch64 UEFI port - --enable-uefi-cd enable building limine-cd-efi.bin + -l use a long listing format + -L, --dereference when showing file information for a symbolic + link, show information for the file the link + references rather than for the link itself -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - TOOLCHAIN_FOR_TARGET - alternative toolchain prefix for Limine (or 'llvm', or 'gnu') - CC_FOR_TARGET - C compiler command for Limine - LD_FOR_TARGET - linker command for Limine - OBJCOPY_FOR_TARGET - objcopy command for Limine - OBJDUMP_FOR_TARGET - objdump command for Limine - READELF_FOR_TARGET - readelf command for Limine - CFLAGS_FOR_TARGET - C flags for Limine [default: -g -O2 -pipe -Wall -Wextra] - CPPFLAGS_FOR_TARGET - C preprocessor flags for Limine [default: ] - LDFLAGS_FOR_TARGET - Linker flags for Limine [default: ] + -m fill width with a comma separated list of entries + -n, --numeric-uid-gid like -l, but list numeric user and group IDs + -N, --literal print entry names without quoting + -o like -l, but do not list group information + -p, --indicator-style=slash + append / indicator to directories + -q, --hide-control-chars print ? instead of nongraphic characters + --show-control-chars show nongraphic characters as-is (the default, + unless program is 'ls' and output is a terminal) -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. + -Q, --quote-name enclose entry names in double quotes + --quoting-style=WORD use quoting style WORD for entry names: + literal, locale, shell, shell-always, + shell-escape, shell-escape-always, c, escape + (overrides QUOTING_STYLE environment variable) -Report bugs to . -Limine home page: . + -r, --reverse reverse order while sorting + -R, --recursive list subdirectories recursively + -s, --size print the allocated size of each file, in blocks + -S sort by file size, largest first + --sort=WORD sort by WORD instead of name: none (-U), size (-S), + time (-t), version (-v), extension (-X), width + + --time=WORD select which timestamp used to display or sort; + access time (-u): atime, access, use; + metadata change time (-c): ctime, status; + modified time (default): mtime, modification; + birth time: birth, creation; + with -l, WORD determines which time to show; + with --sort=time, sort by WORD (newest first) + + --time-style=TIME_STYLE + time/date format with -l; see TIME_STYLE below + -t sort by time, newest first; see --time + -T, --tabsize=COLS assume tab stops at each COLS instead of 8 + -u with -lt: sort by, and show, access time; + with -l: show access time and sort by name; + otherwise: sort by access time, newest first + + -U do not sort; list entries in directory order + -v natural sort of (version) numbers within text + -w, --width=COLS set output width to COLS. 0 means no limit + -x list entries by lines instead of by columns + -X sort alphabetically by entry extension + -Z, --context print any security context of each file + --zero end each output line with NUL, not newline + -1 list one file per line + --help display this help and exit + --version output version information and exit + +The SIZE argument is an integer and optional unit (example: 10K is 10*1024). +Units are K,M,G,T,P,E,Z,Y,R,Q (powers of 1024) or KB,MB,... (powers of 1000). +Binary prefixes can be used, too: KiB=K, MiB=M, and so on. + +The TIME_STYLE argument can be full-iso, long-iso, iso, locale, or +FORMAT. +FORMAT is interpreted like in date(1). If FORMAT is FORMAT1FORMAT2, +then FORMAT1 applies to non-recent files and FORMAT2 to recent files. +TIME_STYLE prefixed with 'posix-' takes effect only outside the POSIX locale. +Also the TIME_STYLE environment variable sets the default style to use. + +The WHEN argument defaults to 'always' and can also be 'auto' or 'never'. + +Using color to distinguish file types is disabled both by default and +with --color=never. With --color=auto, ls emits color codes only when +standard output is connected to a terminal. The LS_COLORS environment +variable can change the settings. Use the dircolors(1) command to set it. + +Exit status: + 0 if OK, + 1 if minor problems (e.g., cannot access subdirectory), + 2 if serious trouble (e.g., cannot access command-line argument). + +GNU coreutils online help: +Full documentation +or available locally via: info '(coreutils) ls invocation' diff --git a/limine/deps b/limine/deps index 8b2e6c6..ae438ed 100644 --- a/limine/deps +++ b/limine/deps @@ -1,7 +1,7 @@ - nasm mtools llvm lld clang + diff --git a/lowdown/PKGBUILD b/lowdown/PKGBUILD new file mode 100644 index 0000000..7a98cad --- /dev/null +++ b/lowdown/PKGBUILD @@ -0,0 +1,66 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=lowdown +pkgdesc="A simple Markdown translator" +pkgver=1.0.2 +pkgrel=01 +url="https://kristaps.bsd.lv/lowdown" +depends=('glibc' 'libmd') +makedepends=('git') +_commit='45c3ffad5fe3b51360afe6e566ec54edcb13718f' +source=("$pkgname::git+https://github.com/kristapsdz/lowdown.git#commit=$_commit") + +pkgver() { + cd "$pkgname" + + git describe --tags | sed -e 's/^VERSION_//' -e 's/_/./g' +} + +build () { + cd "$pkgname" + + ./configure \ + PREFIX=/usr \ + MANDIR=/usr/share/man + + # ensure LDFLAGS is passed correctly + sed -i "s/^LDFLAGS.*/LDFLAGS = $LDFLAGS/" Makefile.configure + + make +} + +check () { + make -C "$pkgname" regress +} + +package () { + cd "$pkgname" + + # package + make DESTDIR="$pkgdir" \ + install \ + install_lib_common \ + install_shared + + # symlink unversioned to versioned shared library + local LIBVER=$(grep "^LIBVER" Makefile | sed "s/.*= //") + ln -sf "/usr/lib/liblowdown.so.$LIBVER" "$pkgdir/usr/lib/liblowdown.so" + + # license + install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE.md +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('ISC') + +sha256sums=(SKIP) + +## e2a13e89c9cfc52a5bf90e166d612060ecad42ce6f1779cdc29a578cca430491 lowdown-1.0.2-01-x86_64.pkg.tar.lz diff --git a/lowdown/PKGBUILD-arch b/lowdown/PKGBUILD-arch new file mode 100644 index 0000000..234f7d0 --- /dev/null +++ b/lowdown/PKGBUILD-arch @@ -0,0 +1,55 @@ +# Maintainer: George Rawlinson +# Contributor: Adrián Pérez de Castro + +pkgname=lowdown +pkgver=1.0.2 +pkgrel=1 +pkgdesc='A simple Markdown translator' +arch=('x86_64') +url='https://kristaps.bsd.lv/lowdown' +license=('ISC') +depends=('glibc' 'libmd') +makedepends=('git') +_commit='45c3ffad5fe3b51360afe6e566ec54edcb13718f' +source=("$pkgname::git+https://github.com/kristapsdz/lowdown.git#commit=$_commit") +b2sums=('SKIP') + +pkgver() { + cd "$pkgname" + + git describe --tags | sed -e 's/^VERSION_//' -e 's/_/./g' +} + +build () { + cd "$pkgname" + + ./configure \ + PREFIX=/usr \ + MANDIR=/usr/share/man + + # ensure LDFLAGS is passed correctly + sed -i "s/^LDFLAGS.*/LDFLAGS = $LDFLAGS/" Makefile.configure + + make +} + +check () { + make -C "$pkgname" regress +} + +package () { + cd "$pkgname" + + # package + make DESTDIR="$pkgdir" \ + install \ + install_lib_common \ + install_shared + + # symlink unversioned to versioned shared library + local LIBVER=$(grep "^LIBVER" Makefile | sed "s/.*= //") + ln -sf "/usr/lib/liblowdown.so.$LIBVER" "$pkgdir/usr/lib/liblowdown.so" + + # license + install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE.md +} diff --git a/lowdown/clean b/lowdown/clean new file mode 100644 index 0000000..28b517c --- /dev/null +++ b/lowdown/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,lowdown} diff --git a/lowdown/deps b/lowdown/deps new file mode 100644 index 0000000..01ece0b --- /dev/null +++ b/lowdown/deps @@ -0,0 +1,4 @@ +git +libmd + + diff --git a/lowdown/time b/lowdown/time new file mode 100644 index 0000000..f0702f0 --- /dev/null +++ b/lowdown/time @@ -0,0 +1,6 @@ + + +real 0m18.856s +user 0m12.404s +sys 0m1.736s + diff --git a/lsb-release b/lsb-release deleted file mode 120000 index 712c161..0000000 --- a/lsb-release +++ /dev/null @@ -1 +0,0 @@ -../jobcomm/lsb-release \ No newline at end of file diff --git a/lsb-release/PKGBUILD b/lsb-release/PKGBUILD new file mode 100644 index 0000000..3f8859a --- /dev/null +++ b/lsb-release/PKGBUILD @@ -0,0 +1,56 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=lsb-release +pkgver=2.0.r53.a86f885 +_commit=a86f885597a91cd41837d706bf6a08d4c239a54b +pkgrel=01 +pkgdesc="LSB version query program" +url="https://refspecs.linuxfoundation.org/lsb.shtml" +depends=('sh') +makedepends=('git') +source=("git+https://github.com/LinuxStandardBase/lsb-samples.git#commit=$_commit" + 'lsb-release' + 'lsb_release_description.patch' + 'lsb_release_make_man_page_reproducible.patch') + +pkgver() { + cd lsb-samples/lsb_release/src + printf "%s.r%s.%s" "$(grep -Po 'SCRIPTVERSION="\K[^"]*' lsb_release)" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd lsb-samples/lsb_release/src + patch -Np0 -i "$srcdir/lsb_release_description.patch" + patch -Np1 -i "$srcdir/lsb_release_make_man_page_reproducible.patch" +} + +build() { + cd lsb-samples/lsb_release/src + make +} + +package() { + cd lsb-samples/lsb_release/src + install -Dm644 lsb_release.1.gz -t "$pkgdir/usr/share/man/man1" + install -Dm755 lsb_release -t "$pkgdir/usr/bin" + install -Dm644 "$srcdir/lsb-release" -t "$pkgdir/etc" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL') + +sha256sums=(SKIP + 4bb27ea9cc66bf6f0e48616091b9320c177981ef2db0c8187b553d56ecba701c # lsb-release + 79f7f4d47052eea37c602d42c8d75d391b87effd867f20003f179e8f74663e93 # lsb_release_description.patch + da9fdceedd09f336652147d4482edc6f0e8834cc24ed64ecda79b3c1efeac7a6) # lsb_release_make_man_page_reproducible.patch + +## 73aa11821ddea7ee4372d0a3bc630b4eccb5e78b7c3d1d8e5372b39141ab8d27 lsb-release-2.0.r53.a86f885-01-x86_64.pkg.tar.lz + diff --git a/lsb-release/PKGBUILD-arch b/lsb-release/PKGBUILD-arch new file mode 100644 index 0000000..3a6445a --- /dev/null +++ b/lsb-release/PKGBUILD-arch @@ -0,0 +1,46 @@ +# Maintainer: Jonas Witschel +# Contributor: Sven-Hendrik Haase +# Contributor: Malte Rabenseifner +# Contributor: John Gerritse + +pkgname=lsb-release +pkgver=2.0.r53.a86f885 +_commit=a86f885597a91cd41837d706bf6a08d4c239a54b +pkgrel=1 +pkgdesc="LSB version query program" +arch=('any') +url="https://refspecs.linuxfoundation.org/lsb.shtml" +license=('GPL') +depends=('sh') +makedepends=('git') +source=("git+https://github.com/LinuxStandardBase/lsb-samples.git#commit=$_commit" + 'lsb-release' + 'lsb_release_description.patch' + 'lsb_release_make_man_page_reproducible.patch') +sha512sums=('SKIP' + 'c4fb9d1026b6cc362b95d8b6662709ec18c0c8cb642d3a811d75bbb0e2fda93e1281accce40b7e7d5cde162144486a29d4c34ccbffcdd8f18e0ff51aef83db97' + '145ef64f90f5e6cc59075679e640cf7c1ad02617c12eff17f10b05c1cc219591fdba1b27be2b2c8480742aed24ce81d6a7badcbaca6772faea4ebc6a55695b62' + 'ab64a1d236d00a30a48e3af2c5bdfa0aad0183ebe0df4f2b0c6af58530c2a1fdac1b0a5cdd8a1800d5f8405f44562603cddf28eb318b5badaabd49a82e0b7e83') + +pkgver() { + cd lsb-samples/lsb_release/src + printf "%s.r%s.%s" "$(grep -Po 'SCRIPTVERSION="\K[^"]*' lsb_release)" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd lsb-samples/lsb_release/src + patch -Np0 -i "$srcdir/lsb_release_description.patch" + patch -Np1 -i "$srcdir/lsb_release_make_man_page_reproducible.patch" +} + +build() { + cd lsb-samples/lsb_release/src + make +} + +package() { + cd lsb-samples/lsb_release/src + install -Dm644 lsb_release.1.gz -t "$pkgdir/usr/share/man/man1" + install -Dm755 lsb_release -t "$pkgdir/usr/bin" + install -Dm644 "$srcdir/lsb-release" -t "$pkgdir/etc" +} diff --git a/lsb-release/clean b/lsb-release/clean new file mode 100644 index 0000000..f280ec6 --- /dev/null +++ b/lsb-release/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,lsb-samples} diff --git a/lsb-release/deps b/lsb-release/deps new file mode 100644 index 0000000..f4099d9 --- /dev/null +++ b/lsb-release/deps @@ -0,0 +1,3 @@ +git + + diff --git a/lsb-release/lsb-release b/lsb-release/lsb-release new file mode 100644 index 0000000..79292a1 --- /dev/null +++ b/lsb-release/lsb-release @@ -0,0 +1,8 @@ +# FSG lsb_release configuration file template +# If the distribution is LSB compliant, uncomment the following line +# and set the version appropriately +LSB_VERSION="2.0.r48" +DISTRIB_ID="Joborun" +DISTRIB_RELEASE="Gamma Rolling 202302" +DISTRIB_DESCRIPTION="Joborun Linux based on Obarun and Arch no systemd or ipv6" +DISTRIB_CODENAME="Gamma 4" diff --git a/lsb-release/lsb-release-arch b/lsb-release/lsb-release-arch new file mode 100644 index 0000000..01356b2 --- /dev/null +++ b/lsb-release/lsb-release-arch @@ -0,0 +1,3 @@ +DISTRIB_ID="Arch" +DISTRIB_RELEASE="rolling" +DISTRIB_DESCRIPTION="Arch Linux" diff --git a/lsb-release/lsb-release.template b/lsb-release/lsb-release.template new file mode 100644 index 0000000..5cfa535 --- /dev/null +++ b/lsb-release/lsb-release.template @@ -0,0 +1,8 @@ +# FSG lsb_release configuration file template +# If the distribution is LSB compliant, uncomment the following line +# and set the version appropriately +# LSB_VERSION="" +DISTRIB_ID="" +DISTRIB_RELEASE="" +DISTRIB_CODENAME="" +DISTRIB_DESCRIPTION="" diff --git a/lsb-release/lsb_release_description.patch b/lsb-release/lsb_release_description.patch new file mode 100644 index 0000000..d46835b --- /dev/null +++ b/lsb-release/lsb_release_description.patch @@ -0,0 +1,11 @@ +--- lsb_release.orig 2012-11-13 05:12:02.000000000 -0800 ++++ lsb_release 2013-11-24 17:13:55.943608718 -0800 +@@ -216,7 +216,7 @@ + TMP_DISTRIB_DESC=$DISTRIB_DESCRIPTION + fi + +- if [ -z "$TMP_DISTRIB_DESC" ] # head or lsb-release init ++ if [ -z "$DISTRIB_DESCRIPTION" ] # head or lsb-release init + then # file contains no data + DISTRIB_DESCRIPTION=$MSG_NONE + NO="y" diff --git a/lsb-release/lsb_release_make_man_page_reproducible.patch b/lsb-release/lsb_release_make_man_page_reproducible.patch new file mode 100644 index 0000000..023c673 --- /dev/null +++ b/lsb-release/lsb_release_make_man_page_reproducible.patch @@ -0,0 +1,41 @@ +From 1f5eb29ad59e7302e0407855333fbf1377f6f127 Mon Sep 17 00:00:00 2001 +From: Jonas Witschel +Date: Sat, 11 Jul 2020 17:02:59 +0200 +Subject: [PATCH] Make man page reproducible + +Respect SOURCE_DATE_EPOCH and remove the embedded timestamp from the gzipped +man page. +--- + Makefile | 2 +- + help2man | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 04fdecd..d2f6230 100644 +--- a/Makefile ++++ b/Makefile +@@ -17,7 +17,7 @@ man: lsb_release.1.gz + + lsb_release.1.gz: lsb_release + @./help2man -N --include ./lsb_release.examples --alt_version_key=program_version ./lsb_release >lsb_release.1 +- @gzip -9f lsb_release.1 ++ @gzip -9f -n lsb_release.1 + + install: all + install -D -m 644 lsb_release.1.gz ${mandir}/man1/lsb_release.1.gz +diff --git a/help2man b/help2man +index 13015c2..d448342 100755 +--- a/help2man ++++ b/help2man +@@ -173,7 +173,7 @@ my ($help_text, $version_text) = map { + or die "$this_program: can't get `--$_' info from $ARGV[0]\n" + } qw(help), $opt_version_key; + +-my $date = strftime "%B %Y", localtime; ++my $date = strftime "%B %Y", gmtime($ENV{SOURCE_DATE_EPOCH} || time); + (my $program = $ARGV[0]) =~ s!.*/!!; + my $package = $program; + my $version; +-- +2.27.0 + diff --git a/lsb-release/time b/lsb-release/time new file mode 100644 index 0000000..df7ab33 --- /dev/null +++ b/lsb-release/time @@ -0,0 +1,4 @@ + +real 0m3.208s +user 0m1.534s +sys 0m0.210s diff --git a/lxappearance-obconf/PKGBUILD b/lxappearance-obconf/PKGBUILD new file mode 100644 index 0000000..8598ff8 --- /dev/null +++ b/lxappearance-obconf/PKGBUILD @@ -0,0 +1,46 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=lxappearance-obconf +pkgver=0.2.3 +pkgrel=03 +pkgdesc='Plugin for LXAppearance to configure Openbox' +arch=('x86_64') +url='https://lxde.org/' +groups=('lxde') +depends=('lxappearance' 'openbox-patched' 'libobrender.so') +makedepends=('intltool') +conflicts=($pkgname-gtk3) +source=(https://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.xz) + +prepare() { + cd $pkgname-$pkgver +} + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr \ + --enable-gtk3=no \ + --enable-dbus=no \ + --enable-dbus-daemon=no + + #https://bugzilla.gnome.org/show_bug.cgi?id=656231 + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} + +#---- license gpg-key sha256sums ---- + +license=('GPL2') + +sha256sums=(3150b33b4b7beb71c1803aee2be21c94767d73b70dfc8d2bcaafe2650ea83149) # lxappearance-obconf-0.2.3.tar.xz diff --git a/lxappearance-obconf/PKGBUILD-arch b/lxappearance-obconf/PKGBUILD-arch new file mode 100644 index 0000000..d4e8211 --- /dev/null +++ b/lxappearance-obconf/PKGBUILD-arch @@ -0,0 +1,30 @@ +# Maintainer: Balló György +# Contributor: Bartłomiej Piotrowski + +pkgname=lxappearance-obconf +pkgver=0.2.3 +pkgrel=3 +pkgdesc='Plugin for LXAppearance to configure Openbox' +arch=('x86_64') +license=('GPL2') +url='https://lxde.org/' +groups=('lxde') +depends=('lxappearance' 'openbox' 'libobrender.so') +makedepends=('intltool') +source=(https://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.xz) +md5sums=('ae0076d489aa786f5d573f7ff592a4ab') + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr + + #https://bugzilla.gnome.org/show_bug.cgi?id=656231 + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/lxappearance-obconf/clean b/lxappearance-obconf/clean new file mode 100644 index 0000000..a7ec48d --- /dev/null +++ b/lxappearance-obconf/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,*.tar.xz} diff --git a/lxappearance-obconf/deps b/lxappearance-obconf/deps new file mode 100644 index 0000000..d5b6a84 --- /dev/null +++ b/lxappearance-obconf/deps @@ -0,0 +1 @@ +intltool openbox-patched diff --git a/lxappearance-obconf/time b/lxappearance-obconf/time new file mode 100644 index 0000000..131c145 --- /dev/null +++ b/lxappearance-obconf/time @@ -0,0 +1,5 @@ + +real 0m9.691s +user 0m8.641s +sys 0m1.526s + diff --git a/lxhotkey/PKGBUILD b/lxhotkey/PKGBUILD new file mode 100644 index 0000000..71fa154 --- /dev/null +++ b/lxhotkey/PKGBUILD @@ -0,0 +1,66 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgbase=lxhotkey +pkgname=(lxhotkey lxhotkey-gtk3) +pkgver=0.1.1 +pkgrel=02 +pkgdesc='Keyboard shortcuts configurator (part of LXDE)' +url='https://lxde.org/' +depends=('gtk2' 'gtk3' 'libfm') +makedepends=('intltool') +source=(https://downloads.sourceforge.net/lxde/$pkgbase-$pkgver.tar.xz) + +prepare() { + cd $pkgbase-$pkgver + ./autogen.sh +} + +build() { + # GTK+ 2 version + [ -d gtk2 ] || cp -r $pkgbase-$pkgver gtk2 + cd gtk2 + ./configure --sysconfdir=/etc --prefix=/usr --with-gtk=2 + make + + cd "$srcdir" + # GTK+ 3 version + [ -d gtk3 ] || cp -r $pkgbase-$pkgver gtk3 + cd gtk3 + ./configure --sysconfdir=/etc --prefix=/usr --with-gtk=3 + make +} + +package_lxhotkey() { + groups=('lxde') + depends=('gtk2' 'libfm') + + cd gtk2 + make DESTDIR="$pkgdir" install +} + +package_lxhotkey-gtk3() { + groups=('lxde-gtk3') + pkgdesc+=' (GTK+ 3 version)' + depends=('gtk3' 'libfm' 'libunistring') + conflicts=('lxhotkey') + + cd gtk3 + make DESTDIR="$pkgdir" install +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL2') + +sha256sums=(e065ce42996ce96dec3f28b6d8c5eecb9d183bebb355367ef3eae6db261026e5) # lxhotkey-0.1.1.tar.xz + +## 4fd09ba482bcbd662fc1f2a1397fcd49f723cb0a7d20f8749b96a21ca5309365 lxhotkey-0.1.1-02-x86_64.pkg.tar.lz +## d92af95cb25bb837df28f48dba1a77703ebe8064afa5b8bdee11684547c6802b lxhotkey-gtk3-0.1.1-02-x86_64.pkg.tar.lz + diff --git a/lxhotkey/PKGBUILD-arch b/lxhotkey/PKGBUILD-arch new file mode 100644 index 0000000..6793bc5 --- /dev/null +++ b/lxhotkey/PKGBUILD-arch @@ -0,0 +1,52 @@ +# Maintainer: Balló György + +pkgbase=lxhotkey +pkgname=(lxhotkey lxhotkey-gtk3) +pkgver=0.1.1 +pkgrel=2 +pkgdesc='Keyboard shortcuts configurator (part of LXDE)' +arch=('x86_64') +license=('GPL2') +url='https://lxde.org/' +depends=('gtk2' 'gtk3' 'libfm') +makedepends=('intltool') +source=(https://downloads.sourceforge.net/lxde/$pkgbase-$pkgver.tar.xz) +sha256sums=('e065ce42996ce96dec3f28b6d8c5eecb9d183bebb355367ef3eae6db261026e5') + +prepare() { + cd $pkgbase-$pkgver + ./autogen.sh +} + +build() { + # GTK+ 2 version + [ -d gtk2 ] || cp -r $pkgbase-$pkgver gtk2 + cd gtk2 + ./configure --sysconfdir=/etc --prefix=/usr --with-gtk=2 + make + + cd "$srcdir" + # GTK+ 3 version + [ -d gtk3 ] || cp -r $pkgbase-$pkgver gtk3 + cd gtk3 + ./configure --sysconfdir=/etc --prefix=/usr --with-gtk=3 + make +} + +package_lxhotkey() { + groups=('lxde') + depends=('gtk2' 'libfm') + + cd gtk2 + make DESTDIR="$pkgdir" install +} + +package_lxhotkey-gtk3() { + groups=('lxde-gtk3') + pkgdesc+=' (GTK+ 3 version)' + depends=('gtk3' 'libfm' 'libunistring') + conflicts=('lxhotkey') + + cd gtk3 + make DESTDIR="$pkgdir" install +} diff --git a/lxhotkey/clean b/lxhotkey/clean new file mode 100644 index 0000000..f536e19 --- /dev/null +++ b/lxhotkey/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,lxhot*.tar.xz} diff --git a/gnunet-gtk/.config b/lxhotkey/configure similarity index 71% rename from gnunet-gtk/.config rename to lxhotkey/configure index 0365e30..39c83b0 100644 --- a/gnunet-gtk/.config +++ b/lxhotkey/configure @@ -1,6 +1,6 @@ -`configure' configures GNUnet GTK 0.16.0 to adapt to many kinds of systems. +`configure' configures lxhotkey 0.1.1 to adapt to many kinds of systems. -Usage: ./configure [OPTION]... [VAR=VALUE]... +Usage: src/lxhotkey-0.1.1/configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. @@ -47,7 +47,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/gnunet-gtk] + --docdir=DIR documentation root [DATAROOTDIR/doc/lxhotkey] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -68,30 +68,17 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") + --enable-static[=PKGS] build static libraries [default=no] --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build - --enable-static[=PKGS] build static libraries [default=no] + --disable-nls do not use Native Language Support --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) - --disable-largefile omit support for large files - --disable-nls do not use Native Language Support - --disable-rpath do not hardcode runtime library paths - --disable-fs-app Do not build gnunet-fs-gtk application - --disable-setup-app Do not build gnunet-setup application - --disable-peerinfo-app Do not build gnunet-peerinfo-gtk application - --disable-conversation-app - Do not build gnunet-conversation-gtk application - --disable-gtktest do not try to compile and run a test GTK+ program - --enable-gcc-hardening enable compiler security checks - --enable-linker-hardening - enable linker security fixups - --enable-logging[=value] - Enable logging calls. Possible values: - yes,no,verbose,veryverbose ('yes' is the default) + --enable-debug enable debug support [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -104,17 +91,8 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib - --without-libintl-prefix don't search for libintl in includedir and libdir - --with-extractor=PFX base of libextractor installation - --with-qrencode=PFX Base of libqrencode installation - --without-libunique disable libunique - --with-glade=PFX Base of Glade installation (found with pkg-config if omitted) - --with-gnutls=PFX base of gnutls installation - --with-gnunet=PFX Base of GNUnet installation + --with-gtk=VER build 'gtk' GUI, choose GTK+ version for build + --without-gtk disable 'gtk' GUI build [default] Some influential environment variables: CC C compiler command @@ -124,7 +102,6 @@ Some influential environment variables: LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory - CPP C preprocessor LT_SYS_LIBRARY_PATH User-defined run-time library search path. PKG_CONFIG path to pkg-config utility @@ -132,19 +109,14 @@ Some influential environment variables: directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path + PACKAGE_CFLAGS + C compiler flags for PACKAGE, overriding pkg-config + PACKAGE_LIBS + linker flags for PACKAGE, overriding pkg-config GTK_CFLAGS C compiler flags for GTK, overriding pkg-config GTK_LIBS linker flags for GTK, overriding pkg-config - unique_CFLAGS - C compiler flags for unique, overriding pkg-config - unique_LIBS linker flags for unique, overriding pkg-config - GLADE_CFLAGS - C compiler flags for GLADE, overriding pkg-config - GLADE_LIBS linker flags for GLADE, overriding pkg-config - GNUNET_CFLAGS - C compiler flags for GNUNET, overriding pkg-config - GNUNET_LIBS linker flags for GNUNET, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . diff --git a/lxhotkey/deps b/lxhotkey/deps new file mode 100644 index 0000000..df27a5e --- /dev/null +++ b/lxhotkey/deps @@ -0,0 +1,9 @@ +automake +autoconf +gtk2 +gtk3 +libfm +intltool +gettext + + diff --git a/lxhotkey/time b/lxhotkey/time new file mode 100644 index 0000000..5932668 --- /dev/null +++ b/lxhotkey/time @@ -0,0 +1,6 @@ + + +real 0m14.741s +user 0m12.963s +sys 0m2.611s + diff --git a/lxsession/PKGBUILD b/lxsession/PKGBUILD new file mode 100644 index 0000000..e923aee --- /dev/null +++ b/lxsession/PKGBUILD @@ -0,0 +1,89 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgbase=lxsession +pkgname=(lxsession lxsession-gtk3) +pkgver=0.5.5 +pkgrel=02 +epoch=1 +pkgdesc='Lightweight X11 session manager' +url="https://lxde.org/" +depends=('gtk2' 'gtk3' 'polkit' 'which') +makedepends=('intltool' 'docbook-xsl' 'vala' 'autoconf') +conflicts=('lxpolkit') +source=(https://downloads.sourceforge.net/lxde/$pkgbase-$pkgver.tar.xz) + +prepare() { + cd $pkgbase-$pkgver + + # Regenerate C sources from Vala code + rm *.stamp + autoreconf -fi +} + +build() { + # GTK+ 2 version + [ -d gtk2 ] || cp -r $pkgbase-$pkgver gtk2 + cd gtk2 + ./configure \ + --sysconfdir=/etc \ + --prefix=/usr \ + --libexecdir=/usr/lib + make + + cd "$srcdir" + # GTK+ 3 version + [ -d gtk3 ] || cp -r $pkgbase-$pkgver gtk3 + cd gtk3 + ./configure \ + --sysconfdir=/etc \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --enable-gtk3 + make +} + +package_lxsession() { + groups=('lxde') + depends=('gtk2' 'polkit') + conflicts=('lxpolkit') + + cd gtk2 + make DESTDIR="$pkgdir" install +} + +package_lxsession-gtk3() { + groups=('lxde-gtk3') + pkgdesc+=' (GTK+ 3 version)' + depends=('gtk3' 'polkit') + conflicts+=('lxsession') + + cd gtk3 + make DESTDIR="$pkgdir" install + + # Ignore package by AppStream to avoid duplicated IDs + echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/lxsession-default-apps.desktop" + echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/lxsession-edit.desktop" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL2') + +sha256sums=(e43e0d9c033095559ab57c8821c2b84fea58009d267db1324d32dca8bd4dbb46) # lxsession-0.5.5.tar.xz + +## aa334b869b659ea301214afcd0df49729479f93362a73da0a2c3cad684685ff4 lxsession-1:0.5.5-02-x86_64.pkg.tar.lz +## d6b8f1ee04071f4096e1cc1caa0bf3ea358e694308d56a36aff2155e24c3e3a7 lxsession-gtk3-1:0.5.5-02-x86_64.pkg.tar.lz + + +# Note to packager: +ls -l *pkg.tar.lz +echo "you must rename this package to meet SF naming before you move to the repo" +mv $(ls -l $pkgname*pkg.tar.lz) $pkgname-$epoch_$pkgver-$pkgrel-$arch.pkg.tar.lz >pkg-mv.log + diff --git a/lxsession/PKGBUILD-arch b/lxsession/PKGBUILD-arch new file mode 100644 index 0000000..b65ebc7 --- /dev/null +++ b/lxsession/PKGBUILD-arch @@ -0,0 +1,65 @@ +# Maintainer: Balló György +# Contributor: Bartłomiej Piotrowski +# Contributor: Angel Velasquez +# Contributor: Juergen Hoetzel + +pkgbase=lxsession +pkgname=(lxsession lxsession-gtk3) +pkgver=0.5.5 +pkgrel=2 +epoch=1 +pkgdesc='Lightweight X11 session manager' +arch=('x86_64') +url="https://lxde.org/" +license=('GPL2') +depends=('gtk2' 'gtk3' 'polkit' 'which') +makedepends=('intltool' 'docbook-xsl' 'vala') +conflicts=('lxpolkit') +source=(https://downloads.sourceforge.net/lxde/$pkgbase-$pkgver.tar.xz) +sha256sums=('e43e0d9c033095559ab57c8821c2b84fea58009d267db1324d32dca8bd4dbb46') + +prepare() { + cd $pkgbase-$pkgver + + # Regenerate C sources from Vala code + rm *.stamp + autoreconf -fi +} + +build() { + # GTK+ 2 version + [ -d gtk2 ] || cp -r $pkgbase-$pkgver gtk2 + cd gtk2 + ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib + make + + cd "$srcdir" + # GTK+ 3 version + [ -d gtk3 ] || cp -r $pkgbase-$pkgver gtk3 + cd gtk3 + ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib --enable-gtk3 + make +} + +package_lxsession() { + groups=('lxde') + depends=('gtk2' 'polkit') + replaces=('lxpolkit') + + cd gtk2 + make DESTDIR="$pkgdir" install +} + +package_lxsession-gtk3() { + groups=('lxde-gtk3') + pkgdesc+=' (GTK+ 3 version)' + depends=('gtk3' 'polkit') + conflicts+=('lxsession') + + cd gtk3 + make DESTDIR="$pkgdir" install + + # Ignore package by AppStream to avoid duplicated IDs + echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/lxsession-default-apps.desktop" + echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/lxsession-edit.desktop" +} diff --git a/lxsession/clean b/lxsession/clean new file mode 100644 index 0000000..adeb80f --- /dev/null +++ b/lxsession/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,lxsess*tar.xz*} diff --git a/lxsession/configure b/lxsession/configure new file mode 100644 index 0000000..8335b56 --- /dev/null +++ b/lxsession/configure @@ -0,0 +1,127 @@ +`configure' configures lxsession 0.5.5 to adapt to many kinds of systems. + +Usage: src/lxsession-0.5.5/configure [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print `checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for `--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or `..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [/usr/local] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, `make install' will install all the files in +`/usr/local/bin', `/usr/local/lib' etc. You can specify +an installation prefix other than `/usr/local' using `--prefix', +for instance `--prefix=$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/lxsession] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-nls do not use Native Language Support + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-man regenerate roff man pages from Docbook [default=yes] + --enable-more-warnings Add more warnings [default=no] + --enable-gtk Build with gtk support (default: yes) + --enable-gtk3 enable to use gtk-3.0 instead of gtk-2.0 + --enable-buildin-clipboard + Build with build-in clipboard support (default: no) + --enable-buildin-polkit Build with build-in polkit-agent support (default: + no) + --enable-advanced-notifications + Build with advanced notification using indicators + and libnotify (default: no) + --enable-debug build libfm with debug support [default=no] + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-xml-catalog=CATALOG + path to xml catalog to use + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + X11_CFLAGS C compiler flags for X11, overriding pkg-config + X11_LIBS linker flags for X11, overriding pkg-config + GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config + GLIB_LIBS linker flags for GLIB, overriding pkg-config + GIO_CFLAGS C compiler flags for GIO, overriding pkg-config + GIO_LIBS linker flags for GIO, overriding pkg-config + GTK_CFLAGS C compiler flags for GTK, overriding pkg-config + GTK_LIBS linker flags for GTK, overriding pkg-config + POLKIT_CFLAGS + C compiler flags for POLKIT, overriding pkg-config + POLKIT_LIBS linker flags for POLKIT, overriding pkg-config + INDICATORS_CFLAGS + C compiler flags for INDICATORS, overriding pkg-config + INDICATORS_LIBS + linker flags for INDICATORS, overriding pkg-config + LIBNOTIFY_CFLAGS + C compiler flags for LIBNOTIFY, overriding pkg-config + LIBNOTIFY_LIBS + linker flags for LIBNOTIFY, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to the package provider. diff --git a/lxsession/deps b/lxsession/deps new file mode 100644 index 0000000..0583055 --- /dev/null +++ b/lxsession/deps @@ -0,0 +1,11 @@ +docbook-xsl +vala +autoconf +automake +gtk2 +gtk3 +intltool +at-spi2-core +gettext +polkit + diff --git a/lxsession/time b/lxsession/time new file mode 100644 index 0000000..33b99bc --- /dev/null +++ b/lxsession/time @@ -0,0 +1,6 @@ + + +real 0m18.878s +user 0m15.995s +sys 0m2.949s + diff --git a/lxterminal/PKGBUILD b/lxterminal/PKGBUILD new file mode 100644 index 0000000..2431f80 --- /dev/null +++ b/lxterminal/PKGBUILD @@ -0,0 +1,39 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=lxterminal +pkgver=0.4.0 +pkgrel=01 +pkgdesc="VTE-based terminal emulator (custom Joborun .conf)" +arch=('x86_64') +url="https://lxde.org/" +groups=('lxde' 'lxde-gtk3') +depends=('vte3' 'ttf-liberation') +makedepends=('intltool') +conflicts=('lxterminal-gtk3') +replaces=('lxterminal-gtk3') +source=(https://downloads.sourceforge.net/lxde/${pkgname}-${pkgver}.tar.xz + lxterminal.conf) + +build() { + cd $pkgname-$pkgver + ./configure --sysconfdir=/etc --prefix=/usr --enable-gtk3 + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + install -Dm644 "$srcdir/lxterminal.conf" "$pkgdir/usr/share/lxterminal/lxterminal.conf" +} + +#---- license gpg-key sha256sums ---- + +license=('GPL2') + +sha256sums=(9db8748923b3fa09a82ae2210ed1fa4cdb4c45312009da9caed103d48f8e9be7 # lxterminal-0.4.0.tar.xz + 083728c75901e304ea25ec68bc4e5731f8e710102bbfbf74964820a3abfdb015) # lxterminal.conf diff --git a/lxterminal/PKGBUILD-arch b/lxterminal/PKGBUILD-arch new file mode 100644 index 0000000..f12e9b7 --- /dev/null +++ b/lxterminal/PKGBUILD-arch @@ -0,0 +1,30 @@ +# Maintainer: Balló György +# Contributor: Bartłomiej Piotrowski +# Contributor: Angel Velasquez +# Contributor: Geoffroy Carrier + +pkgname=lxterminal +pkgver=0.4.0 +pkgrel=1 +pkgdesc="VTE-based terminal emulator (part of LXDE)" +arch=('x86_64') +url="https://lxde.org/" +license=('GPL2') +groups=('lxde' 'lxde-gtk3') +depends=('vte3') +makedepends=('intltool') +conflicts=('lxterminal-gtk3') +replaces=('lxterminal-gtk3') +source=(https://downloads.sourceforge.net/lxde/${pkgname}-${pkgver}.tar.xz) +sha256sums=('9db8748923b3fa09a82ae2210ed1fa4cdb4c45312009da9caed103d48f8e9be7') + +build() { + cd $pkgname-$pkgver + ./configure --sysconfdir=/etc --prefix=/usr --enable-gtk3 + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/lxterminal/clean b/lxterminal/clean new file mode 100644 index 0000000..82b5392 --- /dev/null +++ b/lxterminal/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,lxterminal*.tar.xz} diff --git a/lxterminal/deps b/lxterminal/deps new file mode 100644 index 0000000..7584704 --- /dev/null +++ b/lxterminal/deps @@ -0,0 +1,4 @@ +vte3 +intltool +gettext +ttf-liberation diff --git a/lxterminal/lxterminal.conf b/lxterminal/lxterminal.conf new file mode 100644 index 0000000..4fd9856 --- /dev/null +++ b/lxterminal/lxterminal.conf @@ -0,0 +1,57 @@ +[general] +fontname=Liberation Mono 15 +selchars=-A-Za-z0-9,./?%&#:_ +scrollback=40000 +bgcolor=rgb(39,46,48) +bgalpha=59367 +fgcolor=rgb(232,222,181) +palette_color_0=rgb(94,92,100) +palette_color_1=rgb(237,51,59) +palette_color_2=rgb(158,146,44) +palette_color_3=rgb(203,128,22) +palette_color_4=rgb(26,95,180) +palette_color_5=rgb(167,116,174) +palette_color_6=rgb(255,120,0) +palette_color_7=rgb(245,197,102) +palette_color_8=rgb(97,53,131) +palette_color_9=rgb(197,59,106) +palette_color_10=rgb(138,226,52) +palette_color_11=rgb(252,233,79) +palette_color_12=rgb(114,159,207) +palette_color_13=rgb(146,100,116) +palette_color_14=rgb(52,226,226) +palette_color_15=rgb(255,211,211) +color_preset=Custom +disallowbold=false +cursorblinks=true +cursorunderline=false +audiblebell=false +tabpos=top +geometry_columns=110 +geometry_rows=27 +hidescrollbar=true +hidemenubar=true +hideclosebutton=false +hidepointer=false +disablef10=false +disablealt=false +disableconfirm=false + +boldbright=false +visualbell=false + +[shortcut] +new_window_accel=N +new_tab_accel=T +close_tab_accel=W +close_window_accel=Q +copy_accel=C +paste_accel=V +name_tab_accel=I +previous_tab_accel=Page_Up +next_tab_accel=Page_Down +move_tab_left_accel=Page_Up +move_tab_right_accel=Page_Down +zoom_in_accel=plus +zoom_out_accel=underscore +zoom_reset_accel=parenright diff --git a/lxterminal/time b/lxterminal/time new file mode 100644 index 0000000..4c65f5c --- /dev/null +++ b/lxterminal/time @@ -0,0 +1,5 @@ + +real 0m6.009s +user 0m7.725s +sys 0m0.965s + diff --git a/mat2 b/mat2 deleted file mode 120000 index 2bc8784..0000000 --- a/mat2 +++ /dev/null @@ -1 +0,0 @@ -/src/pkg/jobcomm/mat2 \ No newline at end of file diff --git a/mat2/PKGBUILD b/mat2/PKGBUILD new file mode 100644 index 0000000..ec4d016 --- /dev/null +++ b/mat2/PKGBUILD @@ -0,0 +1,68 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=mat2 +pkgver=0.13.4 +pkgrel=01 +pkgdesc='Metadata removal tool, supporting a wide range of commonly used file formats' +url='https://0xacab.org/jvoisin/mat2' +depends=('python' 'python-mutagen' 'python-cairo' 'python-gobject' 'gdk-pixbuf2' 'poppler-glib' 'librsvg' 'perl-image-exiftool' 'mailcap') +makedepends=(python-setuptools) +optdepends=( + 'ffmpeg: video support' + 'bubblewrap: sandboxing support' +) +checkdepends=('ffmpeg') +conflicts=(mat mat2-git) +provides=(mat) +#source=("git+https://0xacab.org/jvoisin/${pkgname}.git") +source=(https://0xacab.org/jvoisin/mat2/-/archive/${pkgver}/mat2-${pkgver}.tar.gz + https://0xacab.org/jvoisin/mat2/uploads/95d1f3782dfc731545fd9b467c594cb2/mat2-0.13.4.tar.gz.asc) + +prepare() { + cd ${pkgname}-${pkgver} +# patch -i ../ed0ffa5693b6d710b19a9101d6cb0625f8b6f1fc.patch +# patch --forward --strip=1 --input=../mat2-fix-tests.patch +} + +#pkgver() { +# cd "${srcdir}/${pkgname}" +# local ver="$(git describe --tags | sed 's|-|\.|g')" +# printf "%s" "${ver//-/.}" +#} + +build() { + cd ${pkgname}-${pkgver} + python setup.py build +} + +check() { + cd ${pkgname}-${pkgver} + python -m unittest discover -v +} + +package() { + cd ${pkgname}-${pkgver} + python setup.py install --skip-build -O1 --root="${pkgdir}" + install -Dm 644 dolphin/mat2.desktop -t "${pkgdir}/usr/share/kservices5/ServiceMenus" + install -Dm 644 doc/mat2.1 -t "${pkgdir}/usr/share/man/man1" + install -Dm 644 doc/*.md -t "${pkgdir}/usr/share/doc/${pkgname}" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('LGPL3') + +validpgpkeys=('9FCDEE9E1A381F311EA62A7404D041E8171901CC') # Julien (jvoisin) Voisin + +sha256sums=(dbd30f33edd9b99042b3d9ec2b5e7e9c9a08bba4318bcf3fa63be8854cc871db # mat2-0.13.4.tar.gz + b2100acfcdadf2d5b3bc116298e4bd0a073954d04f9c455c04b01590aaa680bf) # mat2-0.13.4.tar.gz.asc + +## df68da32f39bdc1a0478d92bed6ee57160b8ba4ea719f1a5befb6e57c2b4c74f mat2-0.13.4-01-x86_64.pkg.tar.lz + diff --git a/mat2/PKGBUILD-arch b/mat2/PKGBUILD-arch new file mode 100644 index 0000000..0545120 --- /dev/null +++ b/mat2/PKGBUILD-arch @@ -0,0 +1,45 @@ +# Maintainer: kpcyrd +# Contributor: Francois Boulogne + +pkgname=mat2 +pkgver=0.13.4 +pkgrel=1 +pkgdesc='Metadata removal tool, supporting a wide range of commonly used file formats' +url='https://0xacab.org/jvoisin/mat2' +arch=('any') +license=('LGPL3') +depends=('python' 'python-mutagen' 'python-cairo' 'python-gobject' 'gdk-pixbuf2' 'poppler-glib' 'librsvg' 'perl-image-exiftool' 'mailcap') +makedepends=('python-setuptools') +optdepends=( + 'ffmpeg: video support' + 'bubblewrap: sandboxing support' +) +checkdepends=('ffmpeg') +source=(https://0xacab.org/jvoisin/mat2/-/archive/${pkgver}/mat2-${pkgver}.tar.gz + https://0xacab.org/jvoisin/mat2/uploads/95d1f3782dfc731545fd9b467c594cb2/mat2-0.13.4.tar.gz.asc) +sha512sums=('75c08c9c52a82f9983e799c2aeef0da8324d1c92ac32fb748a68063ec7b28569692082aceacf7161d24db0e8a988357c423b6e17ca5c0f934309c9791c41ab18' + 'SKIP') +b2sums=('cab400479bbf312979e11f00bccf02e0e330455651dcdef239507c511b4101cb8b39af5f9dfdc1df9f1bcedc3dda3276c7cf598491c0ff0fc1f365f540fdb7a6' + 'SKIP') + +validpgpkeys=('9FCDEE9E1A381F311EA62A7404D041E8171901CC') # Julien (jvoisin) Voisin + +build() { + cd ${pkgname}-${pkgver} + python setup.py build +} + +check() { + cd ${pkgname}-${pkgver} + python -m unittest discover -v +} + +package() { + cd ${pkgname}-${pkgver} + python setup.py install --skip-build -O1 --root="${pkgdir}" + install -Dm 644 dolphin/mat2.desktop -t "${pkgdir}/usr/share/kservices5/ServiceMenus" + install -Dm 644 doc/mat2.1 -t "${pkgdir}/usr/share/man/man1" + install -Dm 644 doc/*.md -t "${pkgdir}/usr/share/doc/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/mat2/PKGBUILD-aur b/mat2/PKGBUILD-aur new file mode 100644 index 0000000..3fab036 --- /dev/null +++ b/mat2/PKGBUILD-aur @@ -0,0 +1,47 @@ +# Maintainer: Yardena Cohen +# Contributor: kpcyrd +# Contributor: Francois Boulogne + +gitname=mat2 +pkgname=${gitname}-git +pkgver=0.12.3.1.g3509256 +pkgrel=1 +pkgdesc='Metadata removal tool, supporting a wide range of commonly used file formats' +url='https://0xacab.org/jvoisin/mat2' +arch=('any') +license=('LGPL3') +depends=('python' 'python-mutagen' 'python-cairo' 'python-gobject' 'gdk-pixbuf2' 'poppler-glib' 'librsvg' 'perl-image-exiftool' 'mailcap') +makedepends=('python-setuptools' git) +optdepends=( + 'ffmpeg: video support' + 'bubblewrap: sandboxing support' +) +checkdepends=('ffmpeg') +conflicts=(mat mat-git mat2) +provides=(mat mat-git mat2) +source=("git+https://0xacab.org/jvoisin/${gitname}.git") +sha512sums=('SKIP') + +pkgver() { + cd "${srcdir}/${gitname}" + local ver="$(git describe --tags | sed 's|-|\.|g')" + printf "%s" "${ver//-/.}" +} +build() { + cd "${srcdir}/${gitname}" + export PYTHONHASHSEED=0 + python setup.py build +} + +check() { + cd "${srcdir}/${gitname}" + python -m unittest discover -v +} + +package() { + cd "${srcdir}/${gitname}" + python setup.py install --skip-build -O1 --root="${pkgdir}" + install -Dm 644 dolphin/mat2.desktop -t "${pkgdir}/usr/share/kservices5/ServiceMenus" + install -Dm 644 doc/mat2.1 -t "${pkgdir}/usr/share/man/man1" + install -Dm 644 doc/*.md -t "${pkgdir}/usr/share/doc/${pkgname}" +} diff --git a/mat2/clean b/mat2/clean new file mode 100644 index 0000000..60f95a7 --- /dev/null +++ b/mat2/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,mat2*tar.gz*} diff --git a/mat2/deps b/mat2/deps new file mode 100644 index 0000000..cfc1dbd --- /dev/null +++ b/mat2/deps @@ -0,0 +1,17 @@ +python +python-mutagen +python-cairo +python-gobject +gdk-pixbuf2 +poppler-glib +librsvg +perl-image-exiftool +mailcap +python-setuptools +ffmpeg +gettext +jack2 +libgit2 +python-typing_extensions + + diff --git a/mat2/ed0ffa5693b6d710b19a9101d6cb0625f8b6f1fc.patch b/mat2/ed0ffa5693b6d710b19a9101d6cb0625f8b6f1fc.patch new file mode 100644 index 0000000..3f0fa2b --- /dev/null +++ b/mat2/ed0ffa5693b6d710b19a9101d6cb0625f8b6f1fc.patch @@ -0,0 +1,23 @@ +From ed0ffa5693b6d710b19a9101d6cb0625f8b6f1fc Mon Sep 17 00:00:00 2001 +From: Rui Chen +Date: Fri, 24 Feb 2023 09:12:06 +0000 +Subject: [PATCH] Update `pyproject.toml` to include `version` + +--- + pyproject.toml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pyproject.toml b/pyproject.toml +index 0125edf..4956b85 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,5 +1,6 @@ + [project] + name = "mat" ++version = "0.13.3" + readme = "README.md" + requires-python = ">=3.9" + +-- +GitLab + diff --git a/mat2/key b/mat2/key new file mode 100644 index 0000000..34c750f --- /dev/null +++ b/mat2/key @@ -0,0 +1 @@ +gpg -v --recv-key 04D041E8171901CC diff --git a/mat2/mat2-fix-tests.patch b/mat2/mat2-fix-tests.patch new file mode 100644 index 0000000..3a571dc --- /dev/null +++ b/mat2/mat2-fix-tests.patch @@ -0,0 +1,39 @@ +From daa17a3e9c3e7ac5a97e7c7ab10a382abd7d7562 Mon Sep 17 00:00:00 2001 +From: jvoisin +Date: Sun, 12 Mar 2023 13:18:39 +0100 +Subject: [PATCH] Fix the CI on Archlinux + +--- + tests/test_libmat2.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/tests/test_libmat2.py b/tests/test_libmat2.py +index b71f7c2..ee43fba 100644 +--- a/tests/test_libmat2.py ++++ b/tests/test_libmat2.py +@@ -480,11 +480,12 @@ class TestCleaning(unittest.TestCase): + 'expected_meta': { + 'AverageBitrate': 465641, + 'BufferSize': 0, +- 'CompatibleBrands': ['isom', 'iso2', 'avc1', 'mp41'], +- 'ColorProfiles': 'nclx', + 'ColorPrimaries': 'BT.709', ++ 'ColorProfiles': 'nclx', + 'ColorRepresentation': 'nclx 1 1 1', ++ 'CompatibleBrands': ['isom', 'iso2', 'avc1', 'mp41'], + 'CompressorID': 'avc1', ++ 'CompressorName': 'JVT/AVC Coding', + 'GraphicsMode': 'srcCopy', + 'HandlerDescription': 'SoundHandler', + 'HandlerType': 'Metadata', +@@ -495,6 +496,7 @@ class TestCleaning(unittest.TestCase): + 'MediaDataOffset': 48, + 'MediaDataSize': 379872, + 'MediaHeaderVersion': 0, ++ 'MediaLanguageCode': 'eng', + 'MinorVersion': '0.2.0', + 'MovieDataOffset': 48, + 'MovieHeaderVersion': 0, +-- +GitLab + diff --git a/mat2/time b/mat2/time new file mode 100644 index 0000000..c97c606 --- /dev/null +++ b/mat2/time @@ -0,0 +1,6 @@ + + +real 1m55.032s +user 1m19.692s +sys 0m4.993s + diff --git a/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.0 b/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.0 deleted file mode 100644 index effa489..0000000 --- a/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.0 +++ /dev/null @@ -1,52 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Lionel Landwerlin -Date: Sun, 12 Jun 2022 23:59:05 +0300 -Subject: [PATCH] anv: force MEDIA_INTERFACE_DESCRIPTOR_LOAD reemit after - 3D->GPGPU switch - -Seems to fix a hang in the following titles : - - Age of Empire 4 - - Monster Hunter Rise - -where the HW is hung on a PIPE_CONTROL after a GPGPU_WALKER but no -MEDIA_INTERFACE_DESCRIPTOR_LOAD was emitted since the switch from 3D -to GPGPU. - -This would happen in the following case : - - vkCmdBindPipeline(COMPUTE, cs_pipeline); - vkCmdDispatch(...); - vkCmdBindPipeline(GRAPHICS, gfx_pipeline); - vkCmdDraw(...); - vkCmdDispatch(...); - -Signed-off-by: Lionel Landwerlin ---- - src/intel/vulkan/genX_cmd_buffer.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c -index 17629fb7ac87..1651c29d9ebd 100644 ---- a/src/intel/vulkan/genX_cmd_buffer.c -+++ b/src/intel/vulkan/genX_cmd_buffer.c -@@ -6003,6 +6003,20 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, - } - #endif - -+#if GFX_VERx10 == 120 -+ /* Undocumented workaround to force the re-emission of -+ * MEDIA_INTERFACE_DESCRIPTOR_LOAD when switching from 3D to Compute -+ * pipeline without rebinding a pipeline : -+ * vkCmdBindPipeline(COMPUTE, cs_pipeline); -+ * vkCmdDispatch(...); -+ * vkCmdBindPipeline(GRAPHICS, gfx_pipeline); -+ * vkCmdDraw(...); -+ * vkCmdDispatch(...); -+ */ -+ if (pipeline == _3D) -+ cmd_buffer->state.compute.pipeline_dirty = true; -+#endif -+ - /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction] - * PIPELINE_SELECT [DevBWR+]": - * diff --git a/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.old b/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.old deleted file mode 100644 index 19c21a0..0000000 --- a/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch.old +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Lionel Landwerlin -Date: Sun, 12 Jun 2022 23:59:05 +0300 -Subject: [PATCH] anv: force MEDIA_INTERFACE_DESCRIPTOR_LOAD reemit after - 3D->GPGPU switch - -Seems to fix a hang in Age of Empire 4 where the HW is hung on a -PIPE_CONTROL after a GPGPU_WALKER but no -MEDIA_INTERFACE_DESCRIPTOR_LOAD was emitted since the switch from 3D -to GPGPU. - -This would happen in the following case : - - vkCmdBindPipeline(COMPUTE, cs_pipeline); - vkCmdDispatch(...); - vkCmdBindPipeline(GRAPHICS, gfx_pipeline); - vkCmdDraw(...); - vkCmdDispatch(...); - -Signed-off-by: Lionel Landwerlin ---- - src/intel/vulkan/genX_cmd_buffer.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c -index 1aa997f2ade2..2e9979c8f63e 100644 ---- a/src/intel/vulkan/genX_cmd_buffer.c -+++ b/src/intel/vulkan/genX_cmd_buffer.c -@@ -5955,6 +5955,11 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, - } - #endif - -+#if GFX_VERx10 == 120 -+ if (pipeline == _3D) -+ cmd_buffer->state.compute.pipeline_dirty = true; -+#endif -+ - /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction] - * PIPELINE_SELECT [DevBWR+]": - * diff --git a/mesa/0001-iris-implement-inter-context-busy-tracking.patch b/mesa/0001-iris-implement-inter-context-busy-tracking.patch deleted file mode 100644 index 8e37e77..0000000 --- a/mesa/0001-iris-implement-inter-context-busy-tracking.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 07dc3d4238e57901ccf98e0b506d9aad2c86b9d9 Mon Sep 17 00:00:00 2001 -From: Paulo Zanoni -Date: Mon, 10 Jan 2022 17:18:05 -0800 -Subject: [PATCH] iris: implement inter-context busy-tracking - -Previously, no buffers were ever marked as EXEC_OBJECT_ASYNC so the -Kernel would ensure dependency tracking for us. After we implemented -explicit busy tracking in commit 89a34cb8450a, only the external -objects kept relying on the Kernel's implicit tracking and Iris did -inter-batch busy tracking, meaning we lost inter-screen and -inter-context synchronization. This seemed fine to me since, as far as -I understood, it is the duty of the application to synchronize itself -against multiple screens and contexts. - -The problem here is that applications were actually relying on the old -behavior where the Kernel guarantees synchronization, so 89a34cb8450a -can be seen as a regression. This commit addresses the inter-context -synchronization case. - -Cc: mesa-stable -Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5731 -Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5812 -Fixes: 89a34cb8450a ("iris: switch to explicit busy tracking") -Tested-by: Konstantin Kharlamov -Signed-off-by: Paulo Zanoni -Signed-off-by: Laurent Carlier ---- - src/gallium/drivers/iris/iris_batch.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c -index b7bde60aae7..1b0c5896d4f 100644 ---- a/src/gallium/drivers/iris/iris_batch.c -+++ b/src/gallium/drivers/iris/iris_batch.c -@@ -835,6 +835,12 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write) - move_syncobj_to_batch(batch, &deps->write_syncobjs[other_batch_idx], - I915_EXEC_FENCE_WAIT); - -+ /* If it's being written by our screen, wait on it too. This is relevant -+ * when there are multiple contexts on the same screen. */ -+ if (deps->write_syncobjs[batch_idx]) -+ move_syncobj_to_batch(batch, &deps->write_syncobjs[batch_idx], -+ I915_EXEC_FENCE_WAIT); -+ - struct iris_syncobj *batch_syncobj = iris_batch_get_signal_syncobj(batch); - - if (write) { -@@ -847,6 +853,8 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write) - - move_syncobj_to_batch(batch, &deps->read_syncobjs[other_batch_idx], - I915_EXEC_FENCE_WAIT); -+ move_syncobj_to_batch(batch, &deps->read_syncobjs[batch_idx], -+ I915_EXEC_FENCE_WAIT); - - } else { - /* If we're reading, replace the other read from our batch index. */ --- -2.35.0 - diff --git a/mesa/0002-intel-fs-always-mask-the-bottom-bits-of-the-sampler-.patch b/mesa/0002-intel-fs-always-mask-the-bottom-bits-of-the-sampler-.patch deleted file mode 100644 index ef12fda..0000000 --- a/mesa/0002-intel-fs-always-mask-the-bottom-bits-of-the-sampler-.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Lionel Landwerlin -Date: Sat, 25 Jun 2022 23:38:45 +0300 -Subject: [PATCH] intel/fs: always mask the bottom bits of the sampler extended - descriptor - -Fixes a hang in Age Of Empire 4. The HW is hang with the sampler input -unit busy. Replaying on simulation showed the extended message length -in the extended descriptor is invalid. Since the Anv ensures the input -is correct in anv_surface_state_to_handle(), the likely reason for -this issue is the use of VK_VALVE_mutable_descriptor_type and the -application leaving a previous value for a different descriptor type. - -Signed-off-by: Lionel Landwerlin ---- - src/intel/compiler/brw_fs.cpp | 2 +- - .../compiler/brw_lower_logical_sends.cpp | 20 +++++++++++++++---- - 2 files changed, 17 insertions(+), 5 deletions(-) - -diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp -index 624454676031..061eb7d603bb 100644 ---- a/src/intel/compiler/brw_fs.cpp -+++ b/src/intel/compiler/brw_fs.cpp -@@ -4439,7 +4439,7 @@ brw_fb_write_msg_control(const fs_inst *inst, - return mctl; - } - -- /** -+/** - * Predicate the specified instruction on the sample mask. - */ - void -diff --git a/src/intel/compiler/brw_lower_logical_sends.cpp b/src/intel/compiler/brw_lower_logical_sends.cpp -index 1ff064d342ae..90cb00daeb9b 100644 ---- a/src/intel/compiler/brw_lower_logical_sends.cpp -+++ b/src/intel/compiler/brw_lower_logical_sends.cpp -@@ -1117,30 +1117,42 @@ lower_sampler_logical_send_gfx7(const fs_builder &bld, fs_inst *inst, opcode op, - inst->src[1] = brw_imm_ud(0); - } else if (surface_handle.file != BAD_FILE) { - /* Bindless surface */ -+ const fs_builder ubld = bld.group(1, 0).exec_all(); - assert(devinfo->ver >= 9); - inst->desc = brw_sampler_desc(devinfo, - GFX9_BTI_BINDLESS, - sampler.file == IMM ? sampler.ud % 16 : 0, - msg_type, - simd_mode, - 0 /* return_format unused on gfx7+ */); - - /* For bindless samplers, the entire address is included in the message - * header so we can leave the portion in the message descriptor 0. - */ - if (sampler_handle.file != BAD_FILE || sampler.file == IMM) { - inst->src[0] = brw_imm_ud(0); - } else { -- const fs_builder ubld = bld.group(1, 0).exec_all(); - fs_reg desc = ubld.vgrf(BRW_REGISTER_TYPE_UD); - ubld.SHL(desc, sampler, brw_imm_ud(8)); - inst->src[0] = desc; - } - -- /* We assume that the driver provided the handle in the top 20 bits so -- * we can use the surface handle directly as the extended descriptor. -+ /* We previously assumed that the driver provided the handle in the top -+ * 20 bits (leaving the bottom 12 bits at 0). But with extensions like -+ * VK_VALVE_mutable_descriptor_type, the application is more in control -+ * of the content of VkDescriptors which is where we store -+ * surface/sampler offsets. We experience GPU hangs because the -+ * application left an invalid value in the descriptor (probably used -+ * for another descriptor type than sampler) and the lower 12bits of the -+ * surface handle overlapping with the extended descriptor length make -+ * the HW hang. The following AND() clears those bits and fixes a hang -+ * in Age Of Empire 4. - */ -- inst->src[1] = retype(surface_handle, BRW_REGISTER_TYPE_UD); -+ fs_reg ex_desc = ubld.vgrf(BRW_REGISTER_TYPE_UD); -+ ubld.AND(ex_desc, -+ retype(surface_handle, BRW_REGISTER_TYPE_UD), -+ brw_imm_ud(INTEL_MASK(31, 12))); -+ inst->src[1] = component(ex_desc, 0); - } else { - /* Immediate portion of the descriptor */ - inst->desc = brw_sampler_desc(devinfo, diff --git a/mesa/0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch b/mesa/0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch deleted file mode 100644 index 425857a..0000000 --- a/mesa/0002-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Kai-Heng Feng -Date: Thu, 29 Dec 2022 13:43:27 +0800 -Subject: [PATCH] iris: Retry DRM_IOCTL_I915_GEM_EXECBUFFER2 on ENOMEM -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We are seeing endless DRM_IOCTL_SYNCOBJ_WAIT ioctl when system memory is -under pressured. - -Commit f9d8d9acbb6a ("iris: Avoid abort() if kernel can't allocate -memory") avoids the abort() on ENOMEM by resetting the batch. However, -when there's an ongoing OpenGL query, resetting the batch will make the -snapshots_landed never be flipped, so iris_get_query_result() gets stuck -in the while loop forever. - -Since there's no guarantee that the next batch after resetting won't hit -ENOMEM, so instead of resetting the batch, be patient and wait until kernel has -enough memory. Once the batch is submiited and snapshots_landed gets -flipped, iris_get_query_result() can proceed normally. - -Reviewed-by: José Roberto de Souza -Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6851 -Part-of: ---- - src/gallium/drivers/iris/iris_batch.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c -index c7a08a0e1f5f..deab85ce4aaf 100644 ---- a/src/gallium/drivers/iris/iris_batch.c -+++ b/src/gallium/drivers/iris/iris_batch.c -@@ -981,9 +981,14 @@ submit_batch(struct iris_batch *batch) - } - - int ret = 0; -- if (!batch->screen->devinfo->no_hw && -- intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf)) -- ret = -errno; -+ if (!batch->screen->devinfo->no_hw) { -+ do { -+ ret = intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf); -+ } while (ret && errno == ENOMEM); -+ -+ if (ret) -+ ret = -errno; -+ } - - simple_mtx_unlock(bo_deps_lock); - diff --git a/mesa/0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch b/mesa/0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch deleted file mode 100644 index a66637c..0000000 --- a/mesa/0003-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Kai-Heng Feng -Date: Thu, 29 Dec 2022 14:01:31 +0800 -Subject: [PATCH] Revert "iris: Avoid abort() if kernel can't allocate memory" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit f9d8d9acbb6a620684fb4dac4affe25816587d92. - -Now ENOMEM is handled in submit_batch(), we don't need to check it for -resetting anymore. - -Reviewed-by: José Roberto de Souza -Part-of: ---- - src/gallium/drivers/iris/iris_batch.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c -index deab85ce4aaf..2993f0ab7ee8 100644 ---- a/src/gallium/drivers/iris/iris_batch.c -+++ b/src/gallium/drivers/iris/iris_batch.c -@@ -1097,9 +1097,8 @@ _iris_batch_flush(struct iris_batch *batch, const char *file, int line) - * with a new logical context, and inform iris_context that all state - * has been lost and needs to be re-initialized. If this succeeds, - * dubiously claim success... -- * Also handle ENOMEM here. - */ -- if ((ret == -EIO || ret == -ENOMEM) && replace_kernel_ctx(batch)) { -+ if (ret == -EIO && replace_kernel_ctx(batch)) { - if (batch->reset->reset) { - /* Tell gallium frontends the device is lost and it was our fault. */ - batch->reset->reset(batch->reset->data, PIPE_GUILTY_CONTEXT_RESET); diff --git a/mesa/0003-intel-fs-fix-scheduling-of-HALT-instructions.patch b/mesa/0003-intel-fs-fix-scheduling-of-HALT-instructions.patch deleted file mode 100644 index d8b44a8..0000000 --- a/mesa/0003-intel-fs-fix-scheduling-of-HALT-instructions.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Lionel Landwerlin -Date: Mon, 3 Apr 2023 14:52:59 +0300 -Subject: [PATCH] intel/fs: fix scheduling of HALT instructions - -With the following test : - -dEQP-VK.spirv_assembly.instruction.terminate_invocation.terminate.no_out_of_bounds_load - -There is a : - -shader_start: - ... <- no control flow - g0 = some_alu - g1 = fbl - g2 = broadcast g3, g1 - g4 = get_buffer_size g2 - ... <- no control flow - halt <- on some lanes - g5 = send , g4 - -eliminate_find_live_channel will remove the fbl/broadcast because it -assumes lane0 is active at get_buffer_size : - -shader_start: - ... <- no control flow - g0 = some_alu - g4 = get_buffer_size g0 - ... <- no control flow - halt <- on some lanes - g5 = send , g4 - -But then the instruction scheduler will move the get_buffer_size after -the halt : - -shader_start: - ... <- no control flow - halt <- on some lanes - g0 = some_alu - g4 = get_buffer_size g0 - g5 = send , g4 - -get_buffer_size pulls the surface index from lane0 in g0 which could -have been turned off by the halt and we end up accessing an invalid -surface handle. - -Signed-off-by: Lionel Landwerlin -Cc: mesa-stable ---- - .../compiler/brw_schedule_instructions.cpp | 46 +++++++++++++++++++ - 1 file changed, 46 insertions(+) - -diff --git a/src/intel/compiler/brw_schedule_instructions.cpp b/src/intel/compiler/brw_schedule_instructions.cpp -index 3286e3f83b96..43f63784b2e8 100644 ---- a/src/intel/compiler/brw_schedule_instructions.cpp -+++ b/src/intel/compiler/brw_schedule_instructions.cpp -@@ -651,6 +651,7 @@ public: - ralloc_free(this->mem_ctx); - } - void add_barrier_deps(schedule_node *n); -+ void add_cross_lane_deps(schedule_node *n); - void add_dep(schedule_node *before, schedule_node *after, int latency); - void add_dep(schedule_node *before, schedule_node *after); - -@@ -1098,6 +1099,28 @@ is_scheduling_barrier(const backend_instruction *inst) - inst->has_side_effects(); - } - -+static bool -+has_cross_lane_access(const fs_inst *inst) -+{ -+ if (inst->opcode == SHADER_OPCODE_BROADCAST || -+ inst->opcode == SHADER_OPCODE_READ_SR_REG || -+ inst->opcode == SHADER_OPCODE_CLUSTER_BROADCAST || -+ inst->opcode == SHADER_OPCODE_SHUFFLE || -+ inst->opcode == FS_OPCODE_LOAD_LIVE_CHANNELS || -+ inst->opcode == SHADER_OPCODE_FIND_LAST_LIVE_CHANNEL || -+ inst->opcode == SHADER_OPCODE_FIND_LIVE_CHANNEL) -+ return true; -+ -+ for (unsigned s = 0; s < inst->sources; s++) { -+ if (inst->src[s].file == VGRF) { -+ if (inst->src[s].stride == 0) -+ return true; -+ } -+ } -+ -+ return false; -+} -+ - /** - * Sometimes we really want this node to execute after everything that - * was before it and before everything that followed it. This adds -@@ -1128,6 +1151,25 @@ instruction_scheduler::add_barrier_deps(schedule_node *n) - } - } - -+/** -+ * Because some instructions like HALT can disable lanes, scheduling prior to -+ * a cross lane access should not be allowed, otherwise we could end up with -+ * later instructions accessing uninitialized data. -+ */ -+void -+instruction_scheduler::add_cross_lane_deps(schedule_node *n) -+{ -+ schedule_node *prev = (schedule_node *)n->prev; -+ -+ if (prev) { -+ while (!prev->is_head_sentinel()) { -+ if (has_cross_lane_access((fs_inst *)prev->inst)) -+ add_dep(prev, n, 0); -+ prev = (schedule_node *)prev->prev; -+ } -+ } -+} -+ - /* instruction scheduling needs to be aware of when an MRF write - * actually writes 2 MRFs. - */ -@@ -1165,6 +1207,10 @@ fs_instruction_scheduler::calculate_deps() - if (is_scheduling_barrier(inst)) - add_barrier_deps(n); - -+ if (inst->opcode == BRW_OPCODE_HALT || -+ inst->opcode == SHADER_OPCODE_HALT_TARGET) -+ add_cross_lane_deps(n); -+ - /* read-after-write deps. */ - for (int i = 0; i < inst->sources; i++) { - if (inst->src[i].file == VGRF) { diff --git a/mesa/note-22.3.0--22.2.3 b/mesa/note-22.3.0--22.2.3 deleted file mode 100644 index f2cc9a9..0000000 --- a/mesa/note-22.3.0--22.2.3 +++ /dev/null @@ -1,6 +0,0 @@ -yesterday Dec3/2022 arch testing had pkg 22.3.0-3 on repository, indicating a 3 rebuild of the 22.3.0 version, so we built our own accordingly as an 03. -Mesa pkgs broke X, possibly because they were building mesa against something else they retracted. -Today the PKGBUILD still show pkgrel -3 as current while the pkg on repository is -1 and it is impossible to see what dependency has caused this. -All we can do for now is leave the current extra/ version on 22.2.3-02 and wait for the next move by Arch. - - diff --git a/meson/meson-reference-1.0.0.3 b/meson/meson-reference-1.0.0.3 deleted file mode 100644 index a3d6d0f..0000000 --- a/meson/meson-reference-1.0.0.3 +++ /dev/null @@ -1,14321 +0,0 @@ -.P -.TH "meson-reference" "3" "2022-12-23" -.P -.SH NAME -.P -meson-reference v1.0.0 - a reference for meson functions and objects -.P -.SH DESCRIPTION -This manual is divided into two sections, \fBFUNCTIONS\fR and \fBOBJECTS\fR. \fBFUNCTIONS\fR contains a reference for all meson functions and methods. Methods are denoted by \fIobject_name\fR.\fImethod_name\fR(). \fBOBJECTS\fR contains additional information about each object. -.P -.SH FUNCTIONS -.P -.SS add_global_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR add_global_arguments( -.br -.RS 4 -Compiler argument..., -.br -language:, -.br -native: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Adds global arguments to the compiler command line. -.RE - -\fBVARARGS\fR -.RS 4 -\fBCompiler argument\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The compiler arguments to add -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBlanguage\fR -\fIlist[str]\fR, \fBrequired\fR -.br -.RS 2 -Specifies the language(s) that the arguments should be -applied to. If a list of languages is given, the arguments are added -to each of the corresponding compiler command lines. Note that there -is no way to remove an argument set in this way. If you have an -argument that is only used in a subset of targets, you have to specify -it in per-target flags. -.RE - -\fBnative\fR -\fIbool\fR, default: false, since 0.48.0 -.br -.RS 2 -A boolean specifying whether the arguments should be -applied to the native or cross compilation. If `true` the arguments -will only be used for native compilations. If `false` the arguments -will only be used in cross compilations. If omitted, the flags are -added to native compilations if compiling natively and cross -compilations (only) when cross compiling. -.RE - -.RE -\fBNOTES\fR -.RS 4 -Usually you should use \fIadd_project_arguments\fR instead, because that works even when you project is used as a subproject. -You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...` -.RE -.RE -.P -.SS add_global_link_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR add_global_link_arguments( -.br -.RS 4 -Linker argument..., -.br -language:, -.br -native: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Adds global arguments to the linker command line. - -Like \fIadd_global_arguments\fR but the arguments are passed to the linker. -.RE - -\fBVARARGS\fR -.RS 4 -\fBLinker argument\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The linker arguments to add -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBlanguage\fR -\fIlist[str]\fR, \fBrequired\fR -.br -.RS 2 -Specifies the language(s) that the arguments should be -applied to. If a list of languages is given, the arguments are added -to each of the corresponding compiler command lines. Note that there -is no way to remove an argument set in this way. If you have an -argument that is only used in a subset of targets, you have to specify -it in per-target flags. -.RE - -\fBnative\fR -\fIbool\fR, default: false, since 0.48.0 -.br -.RS 2 -A boolean specifying whether the arguments should be -applied to the native or cross compilation. If `true` the arguments -will only be used for native compilations. If `false` the arguments -will only be used in cross compilations. If omitted, the flags are -added to native compilations if compiling natively and cross -compilations (only) when cross compiling. -.RE - -.RE -\fBNOTES\fR -.RS 4 -Usually you should use \fIadd_project_link_arguments\fR instead, because that works even when you project is used as a subproject. -You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...` -.RE -.RE -.P -.SS add_languages() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR add_languages(Language..., native:, required: \fBtrue\fR) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Add programming languages used by the project. - -This is equivalent to having -them in the `project` declaration. This function is usually used to -add languages that are only used under some conditions. - -Returns `true` if all languages specified were found and `false` otherwise. - -If `native` is omitted, the languages may be used for either build or host -machine, but are never required for the build machine. (i.e. it is equivalent -to `add_languages(\fBlangs\fR, native: false, required: \fBrequired\fR) and -add_languages(\fBlangs\fR, native: true, required: false)`. This default behaviour -may change to `native: false` in a future Meson version. -.RE - -\fBVARARGS\fR -.RS 4 -\fBLanguage\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The languages to add -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBnative\fR -\fIbool\fR, since 0.54.0 -.br -.RS 2 -If set to `true`, the language will be used to compile for the build -machine, if `false`, for the host machine. -.RE - -\fBrequired\fR -\fIbool\fR, default: true -.br -.RS 2 -If set to `true`, Meson will halt if any of the languages -specified are not found. \fB(since 0.47.0)\fR The value of a -\fI`feature`\fR[1] option can also be passed. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -project('foobar', 'c') -.br - -.br -if compiling_for_osx -.br - add_languages('objc') -.br -endif -.br -if add_languages('cpp', required : false) -.br - executable('cpp-app', 'main.cpp') -.br -endif -.br - -.br -# More code... -.br -.RE - -.RE -.RE -.P -.SS add_project_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR add_project_arguments( -.br -.RS 4 -Compiler argument..., -.br -language:, -.br -native: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Adds project specific arguments to the compiler command line. - -This function behaves in the same way as \fIadd_global_arguments\fR except -that the arguments are only used for the current project, they won't -be used in any other subproject. -.RE - -\fBVARARGS\fR -.RS 4 -\fBCompiler argument\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The compiler arguments to add -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBlanguage\fR -\fIlist[str]\fR, \fBrequired\fR -.br -.RS 2 -Specifies the language(s) that the arguments should be -applied to. If a list of languages is given, the arguments are added -to each of the corresponding compiler command lines. Note that there -is no way to remove an argument set in this way. If you have an -argument that is only used in a subset of targets, you have to specify -it in per-target flags. -.RE - -\fBnative\fR -\fIbool\fR, default: false, since 0.48.0 -.br -.RS 2 -A boolean specifying whether the arguments should be -applied to the native or cross compilation. If `true` the arguments -will only be used for native compilations. If `false` the arguments -will only be used in cross compilations. If omitted, the flags are -added to native compilations if compiling natively and cross -compilations (only) when cross compiling. -.RE - -.RE -\fBNOTES\fR -.RS 4 -You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...` -.RE -.RE -.P -.SS add_project_dependencies() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR add_project_dependencies( -.br -.RS 4 -dependencies..., -.br -language:, -.br -native: \fBfalse\fR, -.br -.RE -) - -since 0.63.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Adds arguments to the compiler and linker command line, so that the -given set of dependencies is included in all build products for this -project. -.RE - -\fBVARARGS\fR -.RS 4 -\fBdependencies\fR -\fIdep\fR, 0...N times -.br -.RS 2 -The dependencies to add; if internal dependencies are included, they must not include any built object. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBlanguage\fR -\fIlist[str]\fR, \fBrequired\fR -.br -.RS 2 -Specifies the language(s) that the arguments should be -applied to. If a list of languages is given, the arguments are added -to each of the corresponding compiler command lines. Note that there -is no way to remove an argument set in this way. If you have an -argument that is only used in a subset of targets, you have to specify -it in per-target flags. -.RE - -\fBnative\fR -\fIbool\fR, default: false, since 0.48.0 -.br -.RS 2 -A boolean specifying whether the arguments should be -applied to the native or cross compilation. If `true` the arguments -will only be used for native compilations. If `false` the arguments -will only be used in cross compilations. If omitted, the flags are -added to native compilations if compiling natively and cross -compilations (only) when cross compiling. -.RE - -.RE -.RE -.P -.SS add_project_link_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR add_project_link_arguments( -.br -.RS 4 -Linker argument..., -.br -language:, -.br -native: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Adds global arguments to the linker command line. - -Like \fIadd_global_arguments\fR but the arguments are passed to the linker. -.RE - -\fBVARARGS\fR -.RS 4 -\fBLinker argument\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The linker arguments to add -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBlanguage\fR -\fIlist[str]\fR, \fBrequired\fR -.br -.RS 2 -Specifies the language(s) that the arguments should be -applied to. If a list of languages is given, the arguments are added -to each of the corresponding compiler command lines. Note that there -is no way to remove an argument set in this way. If you have an -argument that is only used in a subset of targets, you have to specify -it in per-target flags. -.RE - -\fBnative\fR -\fIbool\fR, default: false, since 0.48.0 -.br -.RS 2 -A boolean specifying whether the arguments should be -applied to the native or cross compilation. If `true` the arguments -will only be used for native compilations. If `false` the arguments -will only be used in cross compilations. If omitted, the flags are -added to native compilations if compiling natively and cross -compilations (only) when cross compiling. -.RE - -.RE -\fBNOTES\fR -.RS 4 -You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...` -.RE -.RE -.P -.SS add_test_setup() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR add_test_setup( -.br -.RS 4 -name, -.br -env:, -.br -exclude_suites:, -.br -exe_wrapper:, -.br -gdb: \fBfalse\fR, -.br -is_default: \fBfalse\fR, -.br -timeout_multiplier: \fB1\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Add a custom test setup. This setup can be used to run the tests with a -custom setup, for example under Valgrind. - -To use the test setup, run `meson test --setup=\fBname\fR` inside the -build dir. - -Note that all these options are also available while running the -`meson test` script for running tests instead of `ninja test` or -`msbuild RUN_TESTS.vcxproj`, etc depending on the backend. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the test setup -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBenv\fR -\fIenv | list[str] | dict[str]\fR -.br -.RS 2 -environment variables to set -, such as `['NAME1=value1', 'NAME2=value2']`, -or an \fIenv\fR object which allows more sophisticated -environment juggling. \fB(Since 0.52.0)\fR A dictionary is also accepted. -.RE - -\fBexclude_suites\fR -\fIlist[str]\fR, since 0.57.0 -.br -.RS 2 -A list of test suites that should be excluded when using this setup. Suites specified in the `--suite` option to `meson test` will always run, overriding `add_test_setup` if necessary. -.RE - -\fBexe_wrapper\fR -\fIlist[str | external_program]\fR -.br -.RS 2 -The command or script followed by the arguments to it -.RE - -\fBgdb\fR -\fIbool\fR, default: false -.br -.RS 2 -If `true`, the tests are also run under `gdb` -.RE - -\fBis_default\fR -\fIbool\fR, default: false, since 0.49.0 -.br -.RS 2 -Set whether this is the default test setup. -If `true`, the setup will be used whenever `meson test` is run -without the `--setup` option. -.RE - -\fBtimeout_multiplier\fR -\fIint\fR, default: 1 -.br -.RS 2 -A number to multiply the test timeout with. -\fBSince 0.57\fR if timeout_multiplier is `<= 0` the test has infinite duration, -in previous versions of Meson the test would fail with a timeout immediately. -.RE - -.RE -.RE -.P -.SS alias_target() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIalias_tgt\fR alias_target(target_name, Dep...) - -since 0.52.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function creates a new top-level target. Like all top-level -targets, this integrates with the selected backend. For instance, with -you can run it as `meson compile target_name`. This is a dummy target -that does not execute any command, but ensures that all dependencies -are built. Dependencies can be any build target (e.g. return value of -\fIexecutable\fR, \fIcustom_target\fR, etc) -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the alias target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBDep\fR -\fItgt\fR, 1...N times -.br -.RS 2 -The targets to depend on -.RE - -.RE -.RE -.P -.SS assert() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR assert(condition, [message]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Abort with an error message if `condition` evaluates to `false`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBcondition\fR -\fIbool\fR, \fBrequired\fR -.br -.RS 2 -Abort if this evaluates to `false` -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBmessage\fR -\fIstr\fR -.br -.RS 2 -The error message to print. -.RE - -.RE -\fBNOTES\fR -.RS 4 -The `message` argument is optional since 0.53.0 and defaults to print the condition statement. -.RE -.RE -.P -.SS benchmark() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR benchmark( -.br -.RS 4 -name, -.br -executable, -.br -args:, -.br -depends:, -.br -env:, -.br -priority: \fB0\fR, -.br -protocol: \fB'exitcode'\fR, -.br -should_fail: \fBfalse\fR, -.br -suite:, -.br -timeout: \fB30\fR, -.br -verbose: \fBfalse\fR, -.br -workdir:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Creates a benchmark item that will be run when the benchmark target is -run. The behavior of this function is identical to \fItest\fR -except for: - -* benchmark() has no `is_parallel` keyword because benchmarks are not run in parallel -.br -* benchmark() does not automatically add the `MALLOC_PERTURB_` environment variable - -Defined tests can be run in a backend-agnostic way by calling -`meson test` inside the build dir, or by using backend-specific -commands, such as `ninja test` or `msbuild RUN_TESTS.vcxproj`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR test id -.RE - -\fBexecutable\fR -\fIexe | jar | external_program | file\fR, \fBrequired\fR -.br -.RS 2 -The program to execute -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str | file | tgt]\fR -.br -.RS 2 -Arguments to pass to the executable -.RE - -\fBdepends\fR -\fIlist[build_tgt | custom_tgt]\fR, since 0.46.0 -.br -.RS 2 -specifies that this test depends on the specified -target(s), even though it does not take any of them as a command -line argument. This is meant for cases where test finds those -targets internally, e.g. plugins or globbing. Those targets are built -before test is executed even if they have `build_by_default : false`. -.RE - -\fBenv\fR -\fIenv | list[str] | dict[str]\fR -.br -.RS 2 -environment variables to set, such as `['NAME1=value1', -\'NAME2=value2']`, or an \fIenv\fR object which allows more sophisticated -environment juggling. \fB(Since 0.52.0)\fR A dictionary is also accepted. -.RE - -\fBpriority\fR -\fIint\fR, default: 0, since 0.52.0 -.br -.RS 2 -specifies the priority of a test. Tests with a -higher priority are \fBstarted\fR before tests with a lower priority. -The starting order of tests with identical priorities is -implementation-defined. The default priority is 0, negative numbers are -permitted. -.RE - -\fBprotocol\fR -\fIstr\fR, default: 'exitcode', since 0.50.0 -.br -.RS 2 -specifies how the test results are parsed and can -be one of `exitcode`, `tap`, or `gtest`. For more information about test -harness protocol read \fIUnit Tests\fR[2]. The following values are -accepted: - -- `exitcode`: the executable's exit code is used by the test harness to record the outcome of the test). -.br -- `tap`: \fITest Anything Protocol\fR[3]. -.br -- `gtest` \fB(since 0.55.0)\fR: for Google Tests. -.br -- `rust` \fB(since 0.56.0)\fR: for native rust tests -.RE - -\fBshould_fail\fR -\fIbool\fR, default: false -.br -.RS 2 -when true the test is considered passed if the -executable returns a non-zero return value (i.e. reports an error) -.RE - -\fBsuite\fR -\fIstr | list[str]\fR -.br -.RS 2 -`'label'` (or list of labels `['label1', 'label2']`) -attached to this test. The suite name is qualified by a (sub)project -name resulting in `(sub)project_name:label`. In the case of a list -of strings, the suite names will be `(sub)project_name:label1`, -`(sub)project_name:label2`, etc. -.RE - -\fBtimeout\fR -\fIint\fR, default: 30 -.br -.RS 2 -the amount of seconds the test is allowed to run, a test -that exceeds its time limit is always considered failed, defaults to -30 seconds. \fBSince 0.57\fR if timeout is `<= 0` the test has infinite duration, -in previous versions of Meson the test would fail with a timeout immediately. -.RE - -\fBverbose\fR -\fIbool\fR, default: false, since 0.62.0 -.br -.RS 2 -if true, forces the test results to be logged as if `--verbose` was passed -to `meson test`. -.RE - -\fBworkdir\fR -\fIstr\fR -.br -.RS 2 -absolute path that will be used as the working directory -for the test -.RE - -.RE -\fBNOTES\fR -.RS 4 -Prior to 0.52.0 benchmark would warn that `depends` and `priority` were unsupported, this is incorrect. -.RE -.RE -.P -.SS both_libraries() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIboth_libs\fR both_libraries( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -darwin_versions:, -.br -dependencies:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -pic:, -.br -prelink:, -.br -rust_crate_type:, -.br -sources:, -.br -soversion:, -.br -version:, -.br -vs_module_defs:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Builds both a static and shared library with the given sources. -Positional and keyword arguments are otherwise the same as for -\fIlibrary\fR. Source files will be compiled only once and -object files will be reused to build both shared and static libraries, -unless `b_staticpic` user option or `pic` argument are set to false in -which case sources will be compiled twice. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[4] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[5] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[6] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdarwin_versions\fR -\fIstr | int | list[str]\fR, since 0.48.0 -.br -.RS 2 -Defines the `compatibility version` and `current version` for the dylib on macOS. -If a list is specified, it must be -either zero, one, or two elements. If only one element is specified -or if it's not a list, the specified value will be used for setting -both compatibility version and current version. If unspecified, the -`soversion` will be used as per the aforementioned rules. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[7] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBpic\fR -\fIbool\fR, since 0.36.0 -.br -.RS 2 -Builds the library as positional independent code -(so it can be linked into a shared library). This -option has no effect on Windows and OS X since it doesn't make -sense on Windows and PIC cannot be disabled on OS X. -.RE - -\fBprelink\fR -\fIbool\fR, since 0.57.0 -.br -.RS 2 -If `true` the object files in the target will be prelinked, -meaning that it will contain only one prelinked -object file rather than the individual object files. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBsoversion\fR -\fIstr | int\fR -.br -.RS 2 -A string or integer specifying the soversion of this shared library, -such as `0`. On Linux and Windows this is used to set the -soversion (or equivalent) in the filename. For example, if -`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one -of the aliases of the Linux shared library would be -`libfoo.so.4`. If this is not specified, the first part of `version` -is used instead (see below). For example, if `version` is `3.6.0` and -`soversion` is not defined, it is set to `3`. -.RE - -\fBversion\fR -\fIstr\fR -.br -.RS 2 -A string specifying the version of this shared library, -such as `1.1.0`. On Linux and OS X, this is used to set the shared -library version in the filename, such as `libfoo.so.1.1.0` and -`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used -instead (see above). -.RE - -\fBvs_module_defs\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Specify a Microsoft module definition file for controlling symbol exports, -etc., on platforms where that is possible (e.g. Windows). -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[8] -for the full list. -.RE - -.RE -.RE -.P -.SS build_target() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbuild_tgt\fR build_target( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -darwin_versions:, -.br -dependencies:, -.br -export_dynamic:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implib:, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -java_resources:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -main_class:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -pic:, -.br -pie:, -.br -prelink:, -.br -rust_crate_type:, -.br -sources:, -.br -soversion:, -.br -target_type:, -.br -version:, -.br -vs_module_defs:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Creates a build target whose type can be set dynamically with the -`target_type` keyword argument. - -`target_type` may be set to one of: - -- `executable` (see \fIexecutable\fR) -.br -- `shared_library` (see \fIshared_library\fR) -.br -- `shared_module` (see \fIshared_module\fR) -.br -- `static_library` (see \fIstatic_library\fR) -.br -- `both_libraries` (see \fIboth_libraries\fR) -.br -- `library` (see \fIlibrary\fR) -.br -- `jar` (see \fIjar\fR) - -This declaration: -.RS 4 -executable() -.br -.RE -is equivalent to this: -.RS 4 -build_target(, target_type : 'executable') -.br -.RE -The lists for the kwargs (such as `sources`, `objects`, and `dependencies`) are -always flattened, which means you can freely nest and add lists while -creating the final list. - -The returned object also has methods that are documented in \fIbuild_tgt\fR. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdarwin_versions\fR -\fIstr | int | list[str]\fR, since 0.48.0 -.br -.RS 2 -Defines the `compatibility version` and `current version` for the dylib on macOS. -If a list is specified, it must be -either zero, one, or two elements. If only one element is specified -or if it's not a list, the specified value will be used for setting -both compatibility version and current version. If unspecified, the -`soversion` will be used as per the aforementioned rules. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBexport_dynamic\fR -\fIbool\fR, since 0.45.0 -.br -.RS 2 -when set to true causes the target's symbols to be - dynamically exported, allowing modules built using the - \fIshared_module\fR function to refer to functions, - variables and other symbols defined in the executable itself. Implies - the `implib` argument. -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplib\fR -\fIbool | str\fR, since 0.42.0 -.br -.RS 2 -When set to true, an import library is generated for the -executable (the name of the import library is based on \fBexe_name\fR). -Alternatively, when set to a string, that gives the base name for -the import library. The import library is used when the returned -build target object appears in `link_with:` elsewhere. Only has any -effect on platforms where that is meaningful (e.g. Windows). Implies -the `export_dynamic` argument. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBjava_resources\fR -\fIstructured_src\fR, since 0.62.0 -.br -.RS 2 -Resources to be added to the jar -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBmain_class\fR -\fIstr\fR -.br -.RS 2 -Main class for running the built jar -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBpic\fR -\fIbool\fR, since 0.36.0 -.br -.RS 2 -Builds the library as positional independent code -(so it can be linked into a shared library). This -option has no effect on Windows and OS X since it doesn't make -sense on Windows and PIC cannot be disabled on OS X. -.RE - -\fBpie\fR -\fIbool\fR, since 0.49.0 -.br -.RS 2 -Build a position-independent executable. -.RE - -\fBprelink\fR -\fIbool\fR, since 0.57.0 -.br -.RS 2 -If `true` the object files in the target will be prelinked, -meaning that it will contain only one prelinked -object file rather than the individual object files. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBsoversion\fR -\fIstr | int\fR -.br -.RS 2 -A string or integer specifying the soversion of this shared library, -such as `0`. On Linux and Windows this is used to set the -soversion (or equivalent) in the filename. For example, if -`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one -of the aliases of the Linux shared library would be -`libfoo.so.4`. If this is not specified, the first part of `version` -is used instead (see below). For example, if `version` is `3.6.0` and -`soversion` is not defined, it is set to `3`. -.RE - -\fBtarget_type\fR -\fIstr\fR -.br -.RS 2 -The actual target to build -.RE - -\fBversion\fR -\fIstr\fR -.br -.RS 2 -A string specifying the version of this shared library, -such as `1.1.0`. On Linux and OS X, this is used to set the shared -library version in the filename, such as `libfoo.so.1.1.0` and -`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used -instead (see above). -.RE - -\fBvs_module_defs\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Specify a Microsoft module definition file for controlling symbol exports, -etc., on platforms where that is possible (e.g. Windows). -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -.RE -.P -.SS configuration_data() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIcfg_data\fR configuration_data([data]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Creates an empty configuration object. You should add your -configuration with the \fIcfg_data\fR method calls and -finally use it in a call to \fIconfigure_file\fR. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBdata\fR -\fIdict[str | bool | int]\fR, since 0.49.0 -.br -.RS 2 -Optional dictionary to specify an initial data set. If -provided, each key/value pair is added into the \fIcfg_data\fR object -as if the \fIcfg_data.set\fR method was called for each of them. -.RE - -.RE -.RE -.P -.SS configure_file() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIfile\fR configure_file( -.br -.RS 4 -capture: \fBfalse\fR, -.br -command:, -.br -configuration:, -.br -copy: \fBfalse\fR, -.br -depfile:, -.br -encoding: \fB'utf-8'\fR, -.br -format: \fB'meson'\fR, -.br -input:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_tag:, -.br -output:, -.br -output_format:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function can run in three modes depending on the keyword arguments -passed to it. - -When a \fIcfg_data\fR object is passed -to the `configuration:` keyword argument, it takes a template file as -the `input:` (optional) and produces the `output:` (required) by -substituting values from the configuration data as detailed in \fIthe -configuration file documentation\fR[9]. \fB(since 0.49.0)\fR -A dictionary can be passed instead of a -\fIcfg_data\fR object. - -When a list of strings is passed to the `command:` keyword argument, -it takes any source or configured file as the `input:` and assumes -that the `output:` is produced when the specified command is run. - -\fB(since 0.47.0)\fR When the `copy:` keyword argument is set to `true`, -this function will copy the file provided in `input:` to a file in the -build directory with the name `output:` in the current directory. -.RE - -\fBKWARGS\fR -.RS 4 -\fBcapture\fR -\fIbool\fR, default: false, since 0.41.0 -.br -.RS 2 -When this argument is set to true, -Meson captures `stdout` of the `command` and writes it to the target -file specified as `output`. -.RE - -\fBcommand\fR -\fIlist[str | file]\fR -.br -.RS 2 -As explained above, if specified, Meson does not create -the file itself but rather runs the specified command, which allows -you to do fully custom file generation. \fB(since 0.52.0)\fR The command can contain -file objects and more than one file can be passed to the `input` keyword -argument, see \fIcustom_target\fR for details about string -substitutions. -.RE - -\fBconfiguration\fR -\fIcfg_data | dict[str | int | bool]\fR -.br -.RS 2 -As explained above, when passed this will provide the replacement -data for the input file (if provided) or key value pairs to be -written to the output. -.RE - -\fBcopy\fR -\fIbool\fR, default: false, since 0.47.0 -.br -.RS 2 -As explained above, if specified Meson only -copies the file from input to output. -.RE - -\fBdepfile\fR -\fIstr\fR, since 0.52.0 -.br -.RS 2 -A dependency file that the command can write listing -all the additional files this target depends on. A change -in any one of these files triggers a reconfiguration. -.RE - -\fBencoding\fR -\fIstr\fR, default: 'utf-8', since 0.47.0 -.br -.RS 2 -Set the file encoding for the input and output file. -The supported encodings are those of python3, see -\fIstandard-encodings\fR[10]. -.RE - -\fBformat\fR -\fIstr\fR, default: 'meson', since 0.46.0 -.br -.RS 2 -The format of defines. It defaults to `'meson'`, and so substitutes -`#mesondefine` statements and variables surrounded by `@` characters, you can also use `'cmake'` -to replace `#cmakedefine` statements and variables with the `${variable}` syntax. Finally you can use -`'cmake@'` in which case substitutions will apply on `#cmakedefine` statements and variables with -the `@variable@` syntax. -.RE - -\fBinput\fR -\fIstr | file\fR -.br -.RS 2 -The input file name. If it's not specified in configuration -mode, all the variables in the `configuration:` object (see above) -are written to the `output:` file. -.RE - -\fBinstall\fR -\fIbool\fR, default: false, since 0.50.0 -.br -.RS 2 -When true, this generated file is installed during -the install step, and `install_dir` must be set and not empty. When false, this -generated file is not installed regardless of the value of `install_dir`. -When omitted it defaults to true when `install_dir` is set and not empty, -false otherwise. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -The subdirectory to install the generated file to -(e.g. `share/myproject`), if omitted or given the value of empty -string, the file is not installed. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default the file has no install -tag which means it is not being installed when `--tags` argument is specified. -.RE - -\fBoutput\fR -\fIstr\fR -.br -.RS 2 -The output file name. \fB(since 0.41.0)\fR may contain -`@PLAINNAME@` or `@BASENAME@` substitutions. In configuration mode, -the permissions of the input file (if it is specified) are copied to -the output file. -.RE - -\fBoutput_format\fR -\fIstr\fR, since 0.47.0 -.br -.RS 2 -The format of the output to generate when no input -was specified. It defaults to `c`, in which case preprocessor directives -will be prefixed with `#`, you can also use `nasm`, in which case the -prefix will be `%`. -.RE - -.RE -.RE -.P -.SS custom_target() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIcustom_tgt\fR custom_target( -.br -.RS 4 -[name], -.br -build_always:, -.br -build_always_stale: \fBfalse\fR, -.br -build_by_default:, -.br -capture: \fBfalse\fR, -.br -command:, -.br -console:, -.br -depend_files:, -.br -depends:, -.br -depfile:, -.br -env:, -.br -feed: \fBfalse\fR, -.br -input:, -.br -install:, -.br -install_dir:, -.br -install_mode:, -.br -install_tag:, -.br -output:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Create a custom top level build target. The only positional argument -is the name of this target and cannot contain path separators (`/` or `\`). -The name of custom target might not be used by every backends, for instance with -the Ninja backend, `subdir/meson.build` containing the example below, -`ninja -C builddir foo` or `ninja -C builddir subdir/foo` won't work, -it is instead `ninja -C builddir subdir/file.txt`. However, `meson compile subdir/foo` -is accepted. -.RS 4 -custom_target('foo', output: 'file.txt', ...) -.br -.RE -\fBSince 0.60.0\fR the name argument is optional and defaults to the basename of the first -output (`file.txt` in the example above). - -The list of strings passed to the `command` keyword argument accept -the following special string substitutions: - -- `@INPUT@`: the full path to the input passed to `input`. If more than one input is specified, all of them will be substituted as separate arguments only if the command uses `'@INPUT@'` as a standalone-argument. For instance, this would not work: `command : ['cp', './@INPUT@']`, but this would: `command : ['cp', '@INPUT@']`. -.br -- `@OUTPUT@`: the full path to the output passed to `output`. If more than one outputs are specified, the behavior is the same as `@INPUT@`. -.br -- `@INPUT0@` `@INPUT1@` `...`: the full path to the input with the specified array index in `input` -.br -- `@OUTPUT0@` `@OUTPUT1@` `...`: the full path to the output with the specified array index in `output` -.br -- `@OUTDIR@`: the full path to the directory where the output(s) must be written -.br -- `@DEPFILE@`: the full path to the dependency file passed to `depfile` -.br -- `@PLAINNAME@`: the input filename, without a path -.br -- `@BASENAME@`: the input filename, with extension removed -.br -- `@PRIVATE_DIR@` \fB(since 0.50.1)\fR: path to a directory where the custom target must store all its intermediate files. -.br -- `@SOURCE_ROOT@`: the path to the root of the source tree. Depending on the backend, this may be an absolute or a relative to current workdir path. -.br -- `@BUILD_ROOT@`: the path to the root of the build tree. Depending on the backend, this may be an absolute or a relative to current workdir path. -.br -- `@CURRENT_SOURCE_DIR@`: this is the directory where the currently processed meson.build is located in. Depending on the backend, this may be an absolute or a relative to current workdir path. - -\fB(since 0.47.0)\fR The `depfile` keyword argument also accepts the -`@BASENAME@` and `@PLAINNAME@` substitutions. - -The returned object also has methods that are documented in \fIcustom_tgt\fR. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBname\fR -\fIstr\fR -.br -.RS 2 -The \fBunique\fR id of the custom target - -This posarg is optional \fBsince 0.60.0\fR. It defaults to the basename -of the first output. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBbuild_always\fR -\fIbool\fR, \fBdeprecated\fR since 0.47.0 -.br -.RS 2 -If `true` this target is always considered out of -date and is rebuilt every time. Equivalent to setting both -`build_always_stale` and `build_by_default` to true. -.RE - -\fBbuild_always_stale\fR -\fIbool\fR, default: false, since 0.47.0 -.br -.RS 2 -If `true` the target is always considered out of date. -Useful for things such as build timestamps or revision control tags. -The associated command is run even if the outputs are up to date. -.RE - -\fBbuild_by_default\fR -\fIbool\fR, since 0.38.0 -.br -.RS 2 -Causes, when set to true, to -have this target be built by default. This means it will be built when -`meson compile` is called without any arguments. The default value is `false`. - -\fB(since 0.50.0)\fR If `build_by_default` is explicitly set to false, `install` -will no longer override it. If `build_by_default` is not set, `install` will -still determine its default. -.RE - -\fBcapture\fR -\fIbool\fR, default: false -.br -.RS 2 -There are some compilers that can't be told to write -their output to a file but instead write it to standard output. When -this argument is set to true, Meson captures `stdout` and writes it -to the target file. Note that your command argument list may not -contain `@OUTPUT@` when capture mode is active. -.RE - -\fBcommand\fR -\fIlist[str | file | exe | external_program]\fR -.br -.RS 2 -Command to run to create outputs from inputs. The command -may be strings or the return value of functions that return file-like -objects such as \fIfind_program\fR, -\fIexecutable\fR, \fIconfigure_file\fR, -\fIfiles\fR, \fIcustom_target\fR, etc. -Meson will automatically insert the appropriate dependencies on -targets and files listed in this keyword argument. -Note: always specify commands in array form `['commandname', -\'-arg1', '-arg2']` rather than as a string `'commandname -arg1 --arg2'` as the latter will \fBnot\fR work. -.RE - -\fBconsole\fR -\fIbool\fR, since 0.48.0 -.br -.RS 2 -Keyword argument conflicts with `capture`, and is meant -for commands that are resource-intensive and take a long time to -finish. With the Ninja backend, setting this will add this target -to \fINinja's `console` pool\fR[11], -which has special properties such as not buffering stdout and -serializing all targets in this pool. -.RE - -\fBdepend_files\fR -\fIlist[str | file]\fR -.br -.RS 2 -files (\fIstr\fR, -\fIfile\fR, or the return value of \fIconfigure_file\fR that -this target depends on but are not listed in the `command` keyword -argument. Useful for adding regen dependencies. -.RE - -\fBdepends\fR -\fIlist[build_tgt | custom_tgt]\fR -.br -.RS 2 -Specifies that this target depends on the specified -target(s), even though it does not take any of them as a command -line argument. This is meant for cases where you have a tool that -e.g. does globbing internally. Usually you should just put the -generated sources as inputs and Meson will set up all dependencies -automatically. -.RE - -\fBdepfile\fR -\fIstr\fR -.br -.RS 2 -A dependency file that the command can write listing -all the additional files this target depends on, for example a C -compiler would list all the header files it included, and a change -in any one of these files triggers a recompilation. - -\fB(since 0.47.0)\fR the `@BASENAME@` and `@PLAINNAME@` substitutions -are also accepted. -.RE - -\fBenv\fR -\fIenv | list[str] | dict[str]\fR, since 0.57.0 -.br -.RS 2 -environment variables to set, such as -`{'NAME1': 'value1', 'NAME2': 'value2'}` or `['NAME1=value1', 'NAME2=value2']`, -or an \fIenv\fR object which allows more -sophisticated environment juggling. -.RE - -\fBfeed\fR -\fIbool\fR, default: false, since 0.59.0 -.br -.RS 2 -There are some compilers that can't be told to read -their input from a file and instead read it from standard input. When this -argument is set to `true`, Meson feeds the input file to `stdin`. Note that -your argument list may not contain `@INPUT@` when feed mode is active. -.RE - -\fBinput\fR -\fIlist[str | file]\fR -.br -.RS 2 -List of source files. \fB(since 0.41.0)\fR the list is flattened. -.RE - -\fBinstall\fR -\fIbool\fR -.br -.RS 2 -When true, one or more files of this target are installed during the install step (see `install_dir` for details). -.RE - -\fBinstall_dir\fR -\fIstr | list[str | bool]\fR -.br -.RS 2 -If only one install_dir is provided, all outputs are installed there. -\fBSince 0.40.0\fR Allows you to specify the installation directory for each -corresponding output. For example: -.RS 4 -custom_target('different-install-dirs', -.br - output : ['first.file', 'second.file'], -.br - install : true, -.br - install_dir : ['somedir', 'otherdir']) -.br -.RE -This would install `first.file` to `somedir` and `second.file` to `otherdir`. - -To only install some outputs, pass `false` for the outputs that you -don't want installed. For example: -.RS 4 - custom_target('only-install-second', -.br - output : ['first.file', 'second.file'], -.br - install : true, -.br - install_dir : [false, 'otherdir']) -.br -.RE -This would install `second.file` to `otherdir` and not install `first.file`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -The file mode and optionally the owner/uid and group/gid. -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_tag\fR -\fIlist[str]\fR, since 0.60.0 -.br -.RS 2 -A list of strings, one per output, used by the `meson install --tags` command -to install only a subset of the files. - -By default all outputs have no install tag which means they are not being -installed when `--tags` argument is specified. If only one tag is specified, -it is assumed that all outputs have the same tag. `false` can be used for -outputs that have no tag or are not installed. -.RE - -\fBoutput\fR -\fIlist[str]\fR -.br -.RS 2 -List of output files. -.RE - -.RE -\fBNOTES\fR -.RS 4 -Assuming that `command:` is executed by a POSIX `sh` shell -is not portable, notably to Windows. Instead, consider using a -`native: true` \fIexecutable\fR, or a python script. -.RE -.RE -.P -.SS debug() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR debug(message, msg...) - -since 0.63.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Write the argument string to the meson build log. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBmessage\fR -\fIstr | int | bool | list[str | int | bool] | dict[str | int | bool]\fR, \fBrequired\fR -.br -.RS 2 -The message to print -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBmsg\fR -\fIstr | int | bool | list[str | int | bool] | dict[str | int | bool]\fR, 0...N times -.br -.RS 2 -Additional parameters will be separated by spaces -.RE - -.RE -.RE -.P -.SS declare_dependency() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdep\fR declare_dependency( -.br -.RS 4 -compile_args:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -dependencies:, -.br -include_directories:, -.br -link_args:, -.br -link_whole:, -.br -link_with:, -.br -sources:, -.br -variables:, -.br -version:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function returns a \fIdep\fR object that -behaves like the return value of \fIdependency\fR but is -internal to the current build. The main use case for this is in -subprojects. This allows a subproject to easily specify how it should -be used. This makes it interchangeable with the same dependency that -is provided externally by the system. -.RE - -\fBKWARGS\fR -.RS 4 -\fBcompile_args\fR -\fIlist[str]\fR -.br -.RS 2 -Compile arguments to use. -.RE - -\fBd_import_dirs\fR -\fIlist[inc | str]\fR, since 0.62.0 -.br -.RS 2 -the directories to add to the string search path (i.e. `-J` switch for DMD). -Must be \fIinc\fR objects or plain strings. -.RE - -\fBd_module_versions\fR -\fIstr | int | list[str | int]\fR, since 0.62.0 -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -Other dependencies needed to use this dependency. -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -the directories to add to header search path, -must be \fIinc\fR objects or \fB(since 0.50.0)\fR plain strings. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Link arguments to use. -.RE - -\fBlink_whole\fR -\fIlist[lib]\fR, since 0.46.0 -.br -.RS 2 -Libraries to link fully, same as \fIexecutable\fR. -.RE - -\fBlink_with\fR -\fIlist[lib]\fR -.br -.RS 2 -Libraries to link against. -.RE - -\fBsources\fR -\fIlist[str | file | custom_tgt | custom_idx | generated_list]\fR -.br -.RS 2 -sources to add to targets -(or generated header files -that should be built before sources including them are built) -.RE - -\fBvariables\fR -\fIdict[str] | list[str]\fR, since 0.54.0 -.br -.RS 2 -a dictionary of arbitrary strings, -this is meant to be used -in subprojects where special variables would be provided via cmake or -pkg-config. \fBsince 0.56.0\fR it can also be a list of `'key=value'` strings. -.RE - -\fBversion\fR -\fIstr\fR -.br -.RS 2 -the version of this dependency, -such as `1.2.3`. Defaults to the project version. -.RE - -.RE -.RE -.P -.SS dependency() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdep\fR dependency( -.br -.RS 4 -names..., -.br -allow_fallback:, -.br -default_options:, -.br -disabler: \fBfalse\fR, -.br -fallback:, -.br -include_type: \fB'preserve'\fR, -.br -language:, -.br -method: \fB'auto'\fR, -.br -native: \fBfalse\fR, -.br -not_found_message:, -.br -required: \fBtrue\fR, -.br -static: \fBfalse\fR, -.br -version:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Finds an external dependency (usually a library installed on your -system) with the given name with `pkg-config` and \fIwith -CMake\fR[12] if `pkg-config` fails. Additionally, -frameworks (OSX only) and \fIlibrary-specific fallback detection -logic\fR[13] -are also supported. - -\fBSince 0.60.0\fR more than one name can be provided, they will be tried in order -and the first name to be found will be used. The fallback subproject will be -used only if none of the names are found on the system. Once one of the name has -been found, all other names are added into the cache so subsequent calls for any -of those name will return the same value. This is useful in case a dependency -could have different names, such as `png` and `libpng`. - -\fB Since \fR0.64.0* a dependency fallback can be provided by WrapDB. Simply download -the database locally using `meson wrap update-db` command and Meson will -automatically fallback to subprojects provided by WrapDB if the dependency is -not found on the system and the project does not ship their own `.wrap` file. - -Dependencies can also be resolved in two other ways: - -* if the same name was used in a `meson.override_dependency` prior to the call to `dependency`, the overriding dependency will be returned unconditionally; that is, the overriding dependency will be used independent of whether an external dependency is installed in the system. Typically, `meson.override_dependency` will have been used by a subproject. - -* by a fallback subproject which, if needed, will be brought into the current build specification as if \fI`subproject()`\fR had been called. The subproject can be specified with the `fallback` argument. Alternatively, if the `fallback` argument is absent, \fBsince 0.55.0\fR Meson can automatically identify a subproject as a fallback if a wrap file \fIprovides\fR[14] the dependency, or if a subproject has the same name as the dependency. In the latter case, the subproject must use `meson.override_dependency` to specify the replacement, or Meson will report a hard error. See the \fIWrap documentation\fR[13] for more details. This automatic search can be controlled using the `allow_fallback` keyword argument. - -If `dependency_name` is `''`, the dependency is always not found. So -with `required: false`, this always returns a dependency object for -which the `found()` method returns `false`, and which can be passed -like any other dependency to the `dependencies:` keyword argument of a -`build_target`. This can be used to implement a dependency which is -sometimes not required e.g. in some branches of a conditional, or with -a `fallback:` kwarg, can be used to declare an optional dependency -that only looks in the specified subproject, and only if that's -allowed by `--wrap-mode`. - -The returned object \fIdep\fR also has additional methods. -.RE - -\fBVARARGS\fR -.RS 4 -\fBnames\fR -\fIstr\fR, 1...N times, since 0.60.0 -.br -.RS 2 -The names of the dependency to look up. The dependencies are looked up in -the order they are provided here. The first found dependency will then be -used. The fallback subproject will be used only if none of the names are -found on the system. Once one of the name has been found, all other names -are added into the cache so subsequent calls for any of those name will -return the same value. This is useful in case a dependency could have -different names, such as `png` and `libpng`. - -\fB\fRNOTE:\fB\fR Before \fB0.60.0\fR only a single dependency name was allowed. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBallow_fallback\fR -\fIbool\fR, since 0.56.0 -.br -.RS 2 -Specifies whether Meson should automatically pick a fallback subproject -in case the dependency -is not found in the system. If `true` and the dependency is not found -on the system, Meson will fallback to a subproject that provides this -dependency. If `false`, Meson will not fallback even if a subproject -provides this dependency. By default, Meson will do so if `required` -is `true` or \fI`enabled`\fR[0]; see the \fIWrap -documentation\fR[13] -for more details. -.RE - -\fBdefault_options\fR -\fIlist[str]\fR, since 0.38.0 -.br -.RS 2 -An array of default option values -that override those set in the subproject's `meson_options.txt` -(like `default_options` in \fIproject\fR, they only have -effect when Meson is run for the first time, and command line -arguments override any default options in build files) -.RE - -\fBdisabler\fR -\fIbool\fR, default: false, since 0.49.0 -.br -.RS 2 -Returns a \fIdisabler\fR object instead of a not-found dependency -if this kwarg is set to `true` and the dependency couldn't be found. -.RE - -\fBfallback\fR -\fIlist[str] | str\fR -.br -.RS 2 -Manually specifies a subproject fallback -to use in case the dependency is not found in the system. -This is useful if the automatic search is not applicable or if you -want to support versions of Meson older than 0.55.0. If the value is an -array `['subproj_name', 'subproj_dep']`, the first value is the name -of the subproject and the second is the variable name in that -subproject that contains a dependency object such as the return -value of \fIdeclare_dependency\fR or -\fIdependency\fR, etc. Note that this means the -fallback dependency may be a not-found dependency, in which -case the value of the `required:` kwarg will be obeyed. -\fBSince 0.54.0\fR the value can be a single string, the subproject name; -in this case the subproject must use -`meson.override_dependency('dependency_name', subproj_dep)` -to specify the dependency object used in the superproject. -If the value is an empty list, it has the same effect as -`allow_fallback: false`. -.RE - -\fBinclude_type\fR -\fIstr\fR, default: 'preserve', since 0.52.0 -.br -.RS 2 -An enum flag, marking how the dependency -flags should be converted. Supported values are `'preserve'`, `'system'` and -`'non-system'`. System dependencies may be handled differently on some -platforms, for instance, using `-isystem` instead of `-I`, where possible. -If `include_type` is set to `'preserve'`, no additional conversion will be -performed. -.RE - -\fBlanguage\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Defines what language-specific dependency to find -if it's available for multiple languages. -.RE - -\fBmethod\fR -\fIstr\fR, default: 'auto', since 0.40.0 -.br -.RS 2 -Defines the way the dependency is detected, the default is -`auto` but can be overridden to be e.g. `qmake` for Qt development, -and \fIdifferent dependencies support different values\fR[15] -for this (though `auto` will work on all of them) -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -If set to `true`, causes Meson to find the dependency on -the build machine system rather than the host system (i.e. where the -cross compiled binary will run on), usually only needed if you build -a tool to be used during compilation. -.RE - -\fBnot_found_message\fR -\fIstr\fR, since 0.50.0 -.br -.RS 2 -An optional string that will be printed as a \fImessage\fR if the dependency was not found. -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: true -.br -.RS 2 -When set to `false`, Meson will proceed with the build -even if the dependency is not found. - -When set to a \fI`feature`\fR[0] option, the feature -will control if it is searched and whether to fail if not found. - -\fB(since 0.47.0)\fR The value of a `feature` option can also be passed. -.RE - -\fBstatic\fR -\fIbool\fR, default: false -.br -.RS 2 -Tells the dependency provider to try to get static -libraries instead of dynamic ones (note that this is not supported -by all dependency backends) - -\fBSince 0.60.0\fR it also sets `default_library` option accordingly on the fallback -subproject if it was not set explicitly in `default_options` keyword argument. -.RE - -\fBversion\fR -\fIstr\fR, since 0.37.0 -.br -.RS 2 -Specifies the required version, -a string containing a -comparison operator followed by the version string, examples include -`>1.0.0`, `<=2.3.5` or `3.1.4` for exact matching. -You can also specify multiple restrictions by passing a list to this -keyword argument, such as: `['>=3.14.0', '<=4.1.0']`. -These requirements are never met if the version is unknown. -.RE - -.RE -\fBNOTES\fR -.RS 4 -This function supports additional \fIlibrary-specific\fR[12] keyword arguments that may also be accepted (e.g. `modules` specifies submodules to use for dependencies such as Qt5 or Boost. `components` allows the user to manually add CMake `COMPONENTS` for the `find_package` lookup) -.RE -.RE -.P -.SS disabler() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdisabler\fR disabler() - -since 0.44.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a \fIdisabler\fR object. -.RE - -.RE -.P -.SS environment() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIenv\fR environment([env], method:, separator:) - -since 0.35.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an empty \fIenv\fR object. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBenv\fR -\fIstr | list[str] | dict[str] | dict[list[str]]\fR, since 0.52.0 -.br -.RS 2 -If provided, each key/value pair is added into the \fIenv\fR object -as if \fIenv.set\fR method was called for each of them. -Since \fB0.62.0\fR list of strings is allowed in dictionary values. In that -case values are joined using the separator. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBmethod\fR -\fIstr\fR, since 0.62.0 -.br -.RS 2 -Must be one of 'set', 'prepend', or 'append' -(defaults to 'set'). Controls if initial values defined in the first -positional argument are prepended, appended or replace the current value -of the environment variable. -.RE - -\fBseparator\fR -\fIstr\fR, since 0.62.0 -.br -.RS 2 -The separator to use for the initial values defined in -the first positional argument. If not explicitly specified, the default -path separator for the host operating system will be used, i.e. ';' for -Windows and ':' for UNIX/POSIX systems. -.RE - -.RE -.RE -.P -.SS error() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR error(message, msg...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Print the argument string and halts the build process. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBmessage\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The message to print -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBmsg\fR -\fIstr\fR, 0...N times, since 0.58.0 -.br -.RS 2 -Additional parameters will be separated by spaces -.RE - -.RE -.RE -.P -.SS executable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIexe\fR executable( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -dependencies:, -.br -export_dynamic:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implib:, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -pie:, -.br -rust_crate_type:, -.br -sources:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Creates a new executable. The first argument specifies its name and -the remaining positional arguments define the input files to use. - -The lists for the kwargs (such as `sources`, `objects`, and `dependencies`) are -always flattened, which means you can freely nest and add lists while -creating the final list. - -The returned object also has methods that are documented in \fIexe\fR. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBexport_dynamic\fR -\fIbool\fR, since 0.45.0 -.br -.RS 2 -when set to true causes the target's symbols to be - dynamically exported, allowing modules built using the - \fIshared_module\fR function to refer to functions, - variables and other symbols defined in the executable itself. Implies - the `implib` argument. -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplib\fR -\fIbool | str\fR, since 0.42.0 -.br -.RS 2 -When set to true, an import library is generated for the -executable (the name of the import library is based on \fBexe_name\fR). -Alternatively, when set to a string, that gives the base name for -the import library. The import library is used when the returned -build target object appears in `link_with:` elsewhere. Only has any -effect on platforms where that is meaningful (e.g. Windows). Implies -the `export_dynamic` argument. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBpie\fR -\fIbool\fR, since 0.49.0 -.br -.RS 2 -Build a position-independent executable. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -\fBWARNINGS\fR -.RS 4 -The `link_language` kwarg was broken until 0.55.0 -.RE -.RE -.P -.SS files() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[file]\fR files(file...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This command takes the strings given to it in arguments and returns -corresponding File objects that you can use as sources for build -targets. The difference is that file objects remember the subdirectory -they were defined in and can be used anywhere in the source tree. -.RE - -\fBVARARGS\fR -.RS 4 -\fBfile\fR -\fIstr\fR, 0...N times -.br -.RS 2 -Path to the file. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 -As an example suppose you have source file `foo.cpp` in subdirectory -`bar1` and you would like to use it in a build target that is defined -in `bar2`. To make this happen you first create the object in `bar1` -like this: -.RS 4 - foofile = files('foo.cpp') -.br -.RE -Then you can use it in `bar2` like this: -.RS 4 - executable('myprog', 'myprog.cpp', foofile, ...) -.br -.RE -Meson will then do the right thing. -.RE -.RE -.P -.SS find_program() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIexternal_program\fR find_program( -.br -.RS 4 -program_name, -.br -fallback..., -.br -dirs:, -.br -disabler: \fBfalse\fR, -.br -native: \fBfalse\fR, -.br -required: \fBtrue\fR, -.br -version:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -`program_name` here is a string that can be an executable or script -to be searched for in `PATH` or other places inside the project. -The search order is: - -1. Program overrides set via \fImeson.override_find_program\fR -1. \fI`[provide]` sections\fR[13] - in subproject wrap files, if \fI`wrap_mode`\fR[16] is - set to `forcefallback` -1. \fI`[binaries]` section\fR[17] in your machine files -1. Directories provided using the `dirs:` kwarg (see below) -1. Project's source tree relative to the current subdir - - If you use the return value of \fIconfigure_file\fR, the - current subdir inside the build tree is used instead -1. `PATH` environment variable -1. \fI`[provide]` sections\fR[13] in - subproject wrap files, if \fI`wrap_mode`\fR[15] is - set to anything other than `nofallback` - -Meson will also autodetect scripts with a shebang line and run them -with the executable/interpreter specified in it both on Windows -(because the command invocator will reject the command otherwise) and -Unixes (if the script file does not have the executable bit set). -Hence, you \fBmust not\fR manually add the interpreter while using this -script as part of a list of commands. Since \fB0.50.0\fR if the "python3" -program is requested and it is not found in the system, Meson will return -its current interpreter. - -If you need to check for a program in a non-standard location, you can -just pass an absolute path to `find_program`, e.g. -.RS 4 -setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false) -.br -.RE -It is also possible to pass an array to `find_program` in case you -need to construct the set of paths to search on the fly: -.RS 4 -setcap = find_program(['setcap', '/usr/sbin/setcap', '/sbin/setcap'], required : false) -.br -.RE -The returned \fIexternal_program\fR object also has documented methods. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBprogram_name\fR -\fIstr | file\fR, \fBrequired\fR -.br -.RS 2 -The name of the program to search, or a \fIfile\fR object to be used -without searching. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBfallback\fR -\fIstr | file\fR, 0...N times, since 0.37.0 -.br -.RS 2 -These parameters are used as fallback names to search for. -This is meant to be used for cases where the -program may have many alternative names, such as `foo` and -`foo.py`. The function will check for the arguments one by one and the -first one that is found is returned. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdirs\fR -\fIlist[str]\fR, since 0.53.0 -.br -.RS 2 -extra list of absolute paths where to look for program names. -.RE - -\fBdisabler\fR -\fIbool\fR, default: false, since 0.49.0 -.br -.RS 2 -If `true` and the program couldn't be found, return a \fIdisabler\fR object -instead of a not-found object. -.RE - -\fBnative\fR -\fIbool\fR, default: false, since 0.43.0 -.br -.RS 2 -Defines how this executable should be searched. By default -it is set to `false`, which causes Meson to first look for the -executable in the cross file (when cross building) and if it is not -defined there, then from the system. If set to `true`, the cross -file is ignored and the program is only searched from the system. -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: true -.br -.RS 2 -When `true`, Meson will abort if no program can be found. -If `required` is set to `false`, -Meson continue even if none of the programs can be found. You can -then use the `.found()` method on the returned \fIexternal_program\fR to check -whether it was found or not. \fB(since 0.47.0)\fR The value of a -\fI`feature`\fR[0] option can also be passed to the -`required` keyword argument. -.RE - -\fBversion\fR -\fIstr\fR, since 0.52.0 -.br -.RS 2 -specifies the required version, see -\fIdependency\fR for argument format. The version of the program -is determined by running `program_name --version` command. If stdout is empty -it fallbacks to stderr. If the output contains more text than simply a version -number, only the first occurrence of numbers separated by dots is kept. -If the output is more complicated than that, the version checking will have to -be done manually using \fIrun_command\fR. -.RE - -.RE -.RE -.P -.SS generator() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIgenerator\fR generator( -.br -.RS 4 -exe, -.br -arguments:, -.br -capture: \fBfalse\fR, -.br -depends:, -.br -depfile:, -.br -output:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -See also: \fIcustom_target\fR - -This function creates a \fIgenerator\fR object that can -be used to run custom compilation commands. The only positional -argument is the executable to use. It can either be a self-built -executable or one returned by find_program. - -The template strings passed to all the keyword arguments accept -the following special substitutions: - -- `@PLAINNAME@`: the complete input file name, e.g: `foo.c` becomes `foo.c` (unchanged) -.br -- `@BASENAME@`: the base of the input filename, e.g.: `foo.c.y` becomes `foo.c` (extension is removed) - -Each string passed to the `output` keyword argument \fBmust\fR be -constructed using one or both of these two substitutions. - -In addition to the above substitutions, the `arguments` keyword -argument also accepts the following: - -- `@OUTPUT@`: the full path to the output file -.br -- `@INPUT@`: the full path to the input file -.br -- `@DEPFILE@`: the full path to the depfile -.br -- `@SOURCE_DIR@`: the full path to the root of the source tree -.br -- `@CURRENT_SOURCE_DIR@`: this is the directory where the currently processed meson.build is located in -.br -- `@BUILD_DIR@`: the full path to the root of the build dir where the output will be placed - -NOTE: Generators should only be used for outputs that will \fB\fR\fBonly\fR\fB\fR -be used as inputs for a \fIbuild_target\fR or a \fIcustom_target\fR. -When you use the processed output of a -generator in multiple targets, the generator will be run multiple -times to create outputs for each target. Each output will be created -in a target-private directory `@BUILD_DIR@`. - -If you want to generate files for general purposes such as for -generating headers to be used by several sources, or data that will be -installed, and so on, use a \fIcustom_target\fR instead. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBexe\fR -\fIexe | external_program\fR, \fBrequired\fR -.br -.RS 2 -Executable for the command to run -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBarguments\fR -\fIlist[str]\fR -.br -.RS 2 -A list of template strings that will be the command line arguments passed to the executable. -.RE - -\fBcapture\fR -\fIbool\fR, default: false, since 0.43.0 -.br -.RS 2 -When this argument is set to true, Meson captures `stdout` -of the `executable` and writes it to the target file -specified as `output`. -.RE - -\fBdepends\fR -\fIlist[build_tgt | custom_tgt]\fR, since 0.51.0 -.br -.RS 2 -An array of build targets that must be built before -this generator can be run. This is used if you have a generator that calls -a second executable that is built in this project. -.RE - -\fBdepfile\fR -\fIstr\fR -.br -.RS 2 -A template string pointing to a dependency file that a -generator can write listing all the additional files this target -depends on, for example a C compiler would list all the header files -it included, and a change in any one of these files triggers a -recompilation, -.RE - -\fBoutput\fR -\fIlist[str]\fR -.br -.RS 2 -Template string (or list of template strings) defining -how an output file name is (or multiple output names are) generated -from a single source file name. -.RE - -.RE -.RE -.P -.SS get_option() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr | int | bool | feature | list[str | int | bool]\fR get_option( -.br -.RS 4 -option_name, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Obtains the value of the \fIproject build option\fR[18] -specified in the positional argument. - -Note that the value returned for built-in options that end in `dir` -such as `bindir` and `libdir` is usually a path relative to (and -inside) the `prefix` but you should not rely on that, as it can also -be an absolute path \fIin some cases\fR[19]. -\fI`install_dir` arguments\fR[20] handle that as expected -but if you need an absolute path, e.g. to use in a define etc., -you should use the path concatenation operator like this: -`get_option('prefix') / get_option('localstatedir')`. -Never manually join paths as if they were strings. - -For options of type `feature` a -\fIfeature\fR option object -is returned instead of a string. -See \fI`feature` options\fR[0] -documentation for more details. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBoption_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the option to query -.RE - -.RE -.RE -.P -.SS get_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIany\fR get_variable(variable_name, [default]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function can be used to dynamically obtain a variable. `res = -get_variable(varname, fallback)` takes the value of `varname` (which -must be a string) and stores the variable of that name into `res`. If -the variable does not exist, the variable `fallback` is stored to -`res`instead. If a fallback is not specified, then attempting to read -a non-existing variable will cause a fatal error. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvariable_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the variable to get -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBdefault\fR -\fIany\fR -.br -.RS 2 -Fallback value to return when the variable does not exist -.RE - -.RE -.RE -.P -.SS import() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fImodule\fR import(module_name, disabler:, required: \fBtrue\fR) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Imports the given extension module. Returns an object that can be used to call -the methods of the module. Here's an example for a hypothetical `testmod` -module. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBmodule_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the module to import. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdisabler\fR -\fIbool\fR, since 0.59.0 -.br -.RS 2 -Returns a \fIdisabler\fR object when not found. -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: true, since 0.59.0 -.br -.RS 2 -When set to `false`, Meson will proceed with the build even if the module is not found. -When set to a \fI`feature`\fR[0] option, the feature will control if it is searched and whether to fail if not found. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -tmod = import('testmod') -.br -tmod.do_something() -.br -.RE - -.RE -.RE -.P -.SS include_directories() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIinc\fR include_directories(includes..., is_system: \fBfalse\fR) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an opaque object which contains the directories (relative to -the current directory) given in the positional arguments. The result -can then be passed to the `include_directories:` keyword argument when -building executables or libraries. You can use the returned object in -any subdirectory you want, Meson will make the paths work -automatically. - -Note that this function call itself does not add the directories into -the search path, since there is no global search path. For something -like that, see \fI`add_project_arguments()`\fR. - -See also `implicit_include_directories` parameter of -\fIexecutable\fR, which adds current source and build -directories to include path. - -Each directory given is converted to two include paths: one that is -relative to the source root and one relative to the build root. -.RE - -\fBVARARGS\fR -.RS 4 -\fBincludes\fR -\fIstr\fR, 0...N times -.br -.RS 2 -Include paths to add. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBis_system\fR -\fIbool\fR, default: false -.br -.RS 2 -If set to `true`, flags the specified directories as system directories. -This means that -they will be used with the `-isystem` compiler argument rather than -`-I` on compilers that support this flag (in practice everything -except Visual Studio). -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 -For example, with the following source tree layout in -`/home/user/project.git`: - -`meson.build`: -.RS 4 -project(...) -.br - -.br -subdir('include') -.br -subdir('src') -.br - -.br -\... -.br -.RE -`include/meson.build`: -.RS 4 -inc = include_directories('.') -.br - -.br -\... -.br -.RE -`src/meson.build`: -.RS 4 -sources = [...] -.br - -.br -executable('some-tool', sources, -.br - include_directories : inc, -.br - ...) -.br - -.br -\... -.br -.RE -If the build tree is `/tmp/build-tree`, the following include paths -will be added to the `executable()` call: `-I/tmp/build-tree/include --I/home/user/project.git/include`. -.RE -.RE -.P -.SS install_data() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR install_data( -.br -.RS 4 -file..., -.br -install_dir:, -.br -install_mode:, -.br -install_tag:, -.br -preserve_path: \fBfalse\fR, -.br -rename:, -.br -sources:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs files from the source tree that are listed as positional arguments. - -See \fIInstalling\fR[19] for more examples. -.RE - -\fBVARARGS\fR -.RS 4 -\fBfile\fR -\fIfile | str\fR, 0...N times -.br -.RS 2 -Files to install. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -The absolute or relative path to the installation directory. -If this is a relative path, it is assumed to be relative to the prefix. - -If omitted, the directory defaults to `{datadir}/{projectname}` \fB(since 0.45.0)\fR. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.38.0 -.br -.RS 2 -specify the file mode in symbolic format and -optionally the owner/uid and group/gid for the installed files. For -example: - -`install_mode: 'rw-r--r--'` for just the file mode - -`install_mode: ['rw-r--r--', 'nobody', 'nogroup']` for the file mode and the user/group - -`install_mode: ['rw-r-----', 0, 0]` for the file mode and uid/gid - -To leave any of these three as the default, specify `false`. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default these files have no install -tag which means they are not being installed when `--tags` argument is specified. -.RE - -\fBpreserve_path\fR -\fIbool\fR, default: false, since 0.64.0 -.br -.RS 2 -Disable stripping child-directories from data files when installing. - -This is equivalent to GNU Automake's `nobase` option. -.RE - -\fBrename\fR -\fIlist[str]\fR, since 0.46.0 -.br -.RS 2 -If specified renames each source file into corresponding file from `rename` list. -Nested paths are allowed and they are -joined with `install_dir`. Length of `rename` list must be equal to -the number of sources. -.RE - -\fBsources\fR -\fIlist[file | str]\fR -.br -.RS 2 -Additional files to install. -.RE - -.RE -.RE -.P -.SS install_emptydir() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR install_emptydir(dirpath..., install_mode:, install_tag:) - -since 0.60.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs a new directory entry to the location specified by the positional -argument. If the directory exists and is not empty, the contents are left in -place. -.RE - -\fBVARARGS\fR -.RS 4 -\fBdirpath\fR -\fIstr\fR, 0...N times -.br -.RS 2 -Directory to create during installation. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBinstall_mode\fR -\fIlist[str | int]\fR -.br -.RS 2 -Specify the file mode in symbolic format and optionally the owner/uid and -group/gid for the created directory. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_tag\fR -\fIstr\fR -.br -.RS 2 -A string used by the `meson install --tags` command to install only a -subset of the files. By default this directory has no install tag which -means it is not installed when the `--tags` argument is specified. -.RE - -.RE -.RE -.P -.SS install_headers() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR install_headers( -.br -.RS 4 -file..., -.br -install_dir:, -.br -install_mode:, -.br -preserve_path: \fBfalse\fR, -.br -subdir:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs the specified header files from the source tree into the -system header directory (usually `/{prefix}/include`) during the -install step. This directory can be overridden by specifying it with -the `install_dir` keyword argument. If you just want to install into a -subdirectory of the system header directory, then use the `subdir` -argument. As an example if this has the value `myproj` then the -headers would be installed to `/{prefix}/include/myproj`. -.RE - -\fBVARARGS\fR -.RS 4 -\fBfile\fR -\fIfile | str\fR, 0...N times -.br -.RS 2 -Header files to install. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -Where to install to. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBpreserve_path\fR -\fIbool\fR, default: false, since 0.63.0 -.br -.RS 2 -Disable stripping child-direcories from header files when installing. - -This is equivalent to GNU Automake's `nobase` option. -.RE - -\fBsubdir\fR -\fIstr\fR -.br -.RS 2 -Install to the `subdir` subdirectory of the default includedir. - -Incompatible with the `install_dir` kwarg. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 -For example, this will install `common.h` and `kola.h` into -`/{prefix}/include`: -.RS 4 -install_headers('common.h', 'proj/kola.h') -.br -.RE -This will install `common.h` and `kola.h` into `/{prefix}/include/myproj`: -.RS 4 -install_headers('common.h', 'proj/kola.h', subdir : 'myproj') -.br -.RE -This will install `common.h` and `kola.h` into `/{prefix}/cust/myproj`: -.RS 4 -install_headers('common.h', 'proj/kola.h', install_dir : 'cust', subdir : 'myproj') -.br -.RE -This will install `common.h` into `/{prefix}/include` and `kola.h` -into `/{prefix}/include/proj/`: -.RS 4 -install_headers('common.h, 'proj/kola.h', preserve_path : true) -.br -.RE - -.RE -.RE -.P -.SS install_man() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR install_man(file..., install_dir:, install_mode:, locale:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs the specified man files from the source tree into system's man directory -during the install step. This directory can be -overridden by specifying it with the `install_dir` keyword argument. - -\fB(since 0.49.0)\fR [manpages are no longer compressed implicitly][install_man_49]. - -[install_man_49]: -https://mesonbuild.com/Release-notes-for-0-49-0.html#manpages-are-no-longer-compressed-implicitly -.RE - -\fBVARARGS\fR -.RS 4 -\fBfile\fR -\fIfile | str\fR, 0...N times -.br -.RS 2 -Man pages to install. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -Where to install to. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBlocale\fR -\fIstr\fR, since 0.58.0 -.br -.RS 2 -Can be used to specify the locale -into which the -man page will be installed within the manual page directory tree. -An example manual might be `foo.fr.1` with a locale of `fr`, such -that `{mandir}/{locale}/man{num}/foo.1` becomes the installed file. -.RE - -.RE -.RE -.P -.SS install_subdir() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR install_subdir( -.br -.RS 4 -subdir_name, -.br -exclude_directories:, -.br -exclude_files:, -.br -install_dir:, -.br -install_mode:, -.br -install_tag:, -.br -strip_directory: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs the entire given subdirectory and its contents from the -source tree to the location specified by the keyword argument -`install_dir`. - -\fB(since 0.45.0, deprecated since 0.60.0)\fR If the subdirectory does not exist -in the source tree, an empty directory is created in the specified location. -A newly created subdirectory may only be created in the keyword argument -`install_dir`. There are a number of flaws with this method, and it was never -intentionally designed to work this way, please use \fIinstall_emptydir\fR -instead. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBsubdir_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The sub-directory to install -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBexclude_directories\fR -\fIlist[str]\fR, since 0.47.0 -.br -.RS 2 -A list of directory names that should not be installed. -Names are interpreted as paths relative to the `subdir_name` location. -.RE - -\fBexclude_files\fR -\fIlist[str]\fR -.br -.RS 2 -A list of file names that should not be installed. -Names are interpreted as paths relative to the `subdir_name` location. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -Where to install to. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default these files have no install -tag which means they are not being installed when `--tags` argument is specified. -.RE - -\fBstrip_directory\fR -\fIbool\fR, default: false, since 0.45.0 -.br -.RS 2 -Install directory contents. -If `strip_directory=true` only the last component of the source path is used. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 -For a given directory `foo`: -.RS 4 -text -.br -foo/ -.br - bar/ -.br - file1 -.br - file2 -.br -.RE -`install_subdir('foo', install_dir : 'share', strip_directory : false)` creates -.RS 4 -text -.br -share/ -.br - foo/ -.br - bar/ -.br - file1 -.br - file2 -.br -.RE -`install_subdir('foo', install_dir : 'share', strip_directory : true)` creates -.RS 4 -text -.br -share/ -.br - bar/ -.br - file1 -.br - file2 -.br -.RE -`install_subdir('foo/bar', install_dir : 'share', strip_directory : false)` creates -.RS 4 -text -.br -share/ -.br - bar/ -.br - file1 -.br -.RE -`install_subdir('foo/bar', install_dir : 'share', strip_directory : true)` creates -.RS 4 -text -.br -share/ -.br - file1 -.br -.RE -`install_subdir('new_directory', install_dir : 'share')` creates -.RS 4 -text -.br -share/ -.br - new_directory/ -.br -.RE - -.RE -.RE -.P -.SS install_symlink() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR install_symlink( -.br -.RS 4 -link_name, -.br -install_dir:, -.br -install_tag:, -.br -pointing_to:, -.br -.RE -) - -since 0.61.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs a symbolic link to `pointing_to` target under install_dir. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBlink_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the created link under `install_dir`. -It cannot contain path separators. Those should go in `install_dir`. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBinstall_dir\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The absolute or relative path to the installation directory for the links. -If this is a relative path, it is assumed to be relative to the prefix. -.RE - -\fBinstall_tag\fR -\fIstr\fR -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default these files have no install -tag which means they are not being installed when `--tags` argument is specified. -.RE - -\fBpointing_to\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Target to point the link to. -Can be absolute or relative and that will be respected when creating the link. -.RE - -.RE -.RE -.P -.SS is_disabler() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR is_disabler(var) - -since 0.52.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if a variable is a disabler and false otherwise. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvar\fR -\fIany\fR, \fBrequired\fR -.br -.RS 2 -The variable to test -.RE - -.RE -.RE -.P -.SS is_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR is_variable(var) - -since 0.52.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if a variable of the given name exists and false otherwise. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvar\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The variable to test -.RE - -.RE -.RE -.P -.SS jar() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIjar\fR jar( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -dependencies:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -java_resources:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -main_class:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -rust_crate_type:, -.br -sources:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Build a jar from the specified Java source files. Keyword arguments -are the same as \fIexecutable\fR's, with the addition of -`main_class` which specifies the main class to execute when running -the jar with `java -jar file.jar`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBjava_resources\fR -\fIstructured_src\fR, since 0.62.0 -.br -.RS 2 -Resources to be added to the jar -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBmain_class\fR -\fIstr\fR -.br -.RS 2 -Main class for running the built jar -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -.RE -.P -.SS join_paths() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR join_paths(part...) - -since 0.36.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Joins the given strings into a file system path segment. For example -`join_paths('foo', 'bar')` results in `foo/bar`. If any one of the -individual segments is an absolute path, all segments before it are -dropped. That means that `join_paths('foo', '/bar')` returns `/bar`. - -\fB(since 0.49.0)\fR Using the `/` operator on strings is equivalent to calling -\fIjoin_paths\fR. -.RS 4 -# res1 and res2 will have identical values -.br -res1 = join_paths(foo, bar) -.br -res2 = foo / bar -.br -.RE - -.RE - -\fBVARARGS\fR -.RS 4 -\fBpart\fR -\fIstr\fR, 1...N times -.br -.RS 2 -The path parts to join. -.RE - -.RE -\fBWARNINGS\fR -.RS 4 -Don't use \fIjoin_paths\fR for sources in \fIlibrary\fR and \fIexecutable\fR. You should use \fIfiles\fR instead. -.RE -.RE -.P -.SS library() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlib\fR library( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -darwin_versions:, -.br -dependencies:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -pic:, -.br -prelink:, -.br -rust_crate_type:, -.br -sources:, -.br -soversion:, -.br -version:, -.br -vs_module_defs:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Builds a library that is either static, shared or both depending on -the value of `default_library` -user \fIoption\fR[21]. -You should use this instead of \fIshared_library\fR, -\fIstatic_library\fR or -\fIboth_libraries\fR most of the time. This allows you -to toggle your entire project (including subprojects) from shared to -static with only one option. This option applies to libraries being -built internal to the entire project. For external dependencies, the -default library type preferred is shared. This can be adapted on a per -library basis using the \fIdependency\fR `static` keyword. - -The keyword arguments for this are the same as for -\fIbuild_target\fR -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdarwin_versions\fR -\fIstr | int | list[str]\fR, since 0.48.0 -.br -.RS 2 -Defines the `compatibility version` and `current version` for the dylib on macOS. -If a list is specified, it must be -either zero, one, or two elements. If only one element is specified -or if it's not a list, the specified value will be used for setting -both compatibility version and current version. If unspecified, the -`soversion` will be used as per the aforementioned rules. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBpic\fR -\fIbool\fR, since 0.36.0 -.br -.RS 2 -Builds the library as positional independent code -(so it can be linked into a shared library). This -option has no effect on Windows and OS X since it doesn't make -sense on Windows and PIC cannot be disabled on OS X. -.RE - -\fBprelink\fR -\fIbool\fR, since 0.57.0 -.br -.RS 2 -If `true` the object files in the target will be prelinked, -meaning that it will contain only one prelinked -object file rather than the individual object files. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBsoversion\fR -\fIstr | int\fR -.br -.RS 2 -A string or integer specifying the soversion of this shared library, -such as `0`. On Linux and Windows this is used to set the -soversion (or equivalent) in the filename. For example, if -`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one -of the aliases of the Linux shared library would be -`libfoo.so.4`. If this is not specified, the first part of `version` -is used instead (see below). For example, if `version` is `3.6.0` and -`soversion` is not defined, it is set to `3`. -.RE - -\fBversion\fR -\fIstr\fR -.br -.RS 2 -A string specifying the version of this shared library, -such as `1.1.0`. On Linux and OS X, this is used to set the shared -library version in the filename, such as `libfoo.so.1.1.0` and -`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used -instead (see above). -.RE - -\fBvs_module_defs\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Specify a Microsoft module definition file for controlling symbol exports, -etc., on platforms where that is possible (e.g. Windows). -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -.RE -.P -.SS message() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR message(text, more_text...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function prints its argument to stdout. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtext\fR -\fIstr | int | bool | list[str | int | bool] | dict[str | int | bool]\fR, \fBrequired\fR -.br -.RS 2 -The message to print. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBmore_text\fR -\fIstr | int | bool | list[str | int | bool] | dict[str | int | bool]\fR, 0...N times, since 0.54.0 -.br -.RS 2 -Additional text that will be printed separated by spaces. -.RE - -.RE -.RE -.P -.SS project() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR project( -.br -.RS 4 -project_name, -.br -language..., -.br -default_options:, -.br -license:, -.br -meson_version:, -.br -subproject_dir: \fB'subprojects'\fR, -.br -version:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -The first function called in each project, to initialize Meson. - -The first argument to this function must be a string defining the name -of this project. - -The project name can be any string you want, it's not used for -anything except descriptive purposes. However since it is written to -e.g. the dependency manifest is usually makes sense to have it be the -same as the project tarball or pkg-config name. So for example you -would probably want to use the name _libfoobar_ instead of _The Foobar -Library_. - -It may be followed by the list of programming languages that the project uses. - -\fB(since 0.40.0)\fR The list of languages is optional. - -These languages may be used both for `native: false` (the default) -(host machine) targets and for `native: true` (build machine) targets. -\fB(since 0.56.0)\fR The build machine compilers for the specified -languages are not required. - -Supported values for languages are `c`, `cpp` (for `C++`), `cuda`, `d`, -`objc`, `objcpp`, `fortran`, `java`, `cs` (for `C#`), `vala` and `rust`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBproject_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the project. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBlanguage\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The languages that Meson should initialize. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdefault_options\fR -\fIlist[str]\fR -.br -.RS 2 -Accecpts strings in the form `key=value` -which have the same format as options to `meson configure`. -For example to set the default project type you would -set this: `default_options : ['buildtype=debugoptimized']`. Note -that these settings are only used when running Meson for the first -time. Global options such as `buildtype` can only be specified in -the master project, settings in subprojects are ignored. Project -specific options are used normally even in subprojects. -.RE - -\fBlicense\fR -\fIstr | list[str]\fR -.br -.RS 2 -Takes a string or array of strings describing the license(s) the code is under. - -This \fBshould\fR be an \fISPDX license expression\fR[22], -using the standardized license identifier from the \fISPDX license -list\fR[23]. Usually this would be something like -`license : 'GPL-2.0-or-later'`. If there are multiple licenses you can use the -`AND` and `OR` operators to join them: `license : 'Apache-2.0 OR GPL-2.0'`. - -For backwards compatibility reasons you can also pass an array of -licenses here. This is not recommended, as it is ambiguous: `license : -['Apache-2.0', 'GPL-2.0-only']` instead use an SPDX espression: `license -: 'Apache-2.0 OR GPL-2.0-only'`, which makes it clear that the license -mean OR, not AND. - -Note that the text is informal and is only written to the dependency -manifest. Meson does not do any license validation, you are responsible -for verifying that you abide by all licensing terms. You can access the -value in your Meson build files with `meson.project_license()`. -.RE - -\fBmeson_version\fR -\fIstr\fR -.br -.RS 2 -Takes a string describing which Meson version the project requires. -Usually something like `>=0.28.0`. -.RE - -\fBsubproject_dir\fR -\fIstr\fR, default: 'subprojects' -.br -.RS 2 -Specifies the top level directory name that holds Meson subprojects. -This is only meant as a compatibility option -for existing code bases that house their embedded source code in a -custom directory. All new projects should not set this but instead -use the default value. It should be noted that this keyword -argument is ignored inside subprojects. There can be only one -subproject dir and it is set in the top level Meson file. -.RE - -\fBversion\fR -\fIstr | file\fR -.br -.RS 2 -A free form string describing the version of this project. -You can access the value in your Meson build files -with \fImeson.project_version\fR. \fB(Since 0.57.0)\fR this can also be a -\fIfile\fR object pointing to a file that contains exactly one line of -text. -.RE - -.RE -.RE -.P -.SS range() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIrange\fR range([start], [stop], [step]) - -since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Return an opaque object that can be only be used in `foreach` statements. - -
\fIrange\fR range(\fIint\fR stop)
-\fIrange\fR range(\fIint\fR start, \fIint\fR stop[, \fIint\fR step])
- -- `start` must be integer greater or equal to 0. Defaults to 0. -.br -- `stop` must be integer greater or equal to `start`. -.br -- `step` must be integer greater or equal to 1. Defaults to 1. - -It cause the `foreach` loop to be called with the value from `start` included -to `stop` excluded with an increment of `step` after each loop. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBstart\fR -\fIint\fR, default: 0 -.br -.RS 2 -The start of the range -.RE - -\fBstop\fR -\fIint\fR -.br -.RS 2 -The end of the range -.RE - -\fBstep\fR -\fIint\fR, default: 1 -.br -.RS 2 -The loop increment -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -# Loop 15 times with i from 0 to 14 included. -.br -foreach i : range(15) -.br - ... -.br -endforeach -.br -.RE -The range object can also be assigned to a variable and indexed. -.RS 4 -r = range(5, 10, 2) -.br -assert(r[2] == 9) -.br -.RE - -.RE -.RE -.P -.SS run_command() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIrunresult\fR run_command( -.br -.RS 4 -command..., -.br -capture: \fBtrue\fR, -.br -check: \fBfalse\fR, -.br -env:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Runs the command specified in positional arguments. `command` can be a -string, or the output of \fIfind_program\fR, -\fIfiles\fR or \fIconfigure_file\fR, or \fIa -compiler object\fR. - -Returns a \fIrunresult\fR object containing the result -of the invocation. The command is run from an \fBunspecified\fR directory, -and Meson will set three environment variables `MESON_SOURCE_ROOT`, -`MESON_BUILD_ROOT` and `MESON_SUBDIR` that specify the source -directory, build directory and subdirectory the target was defined in, -respectively. - -See also \fIExternal commands\fR[24]. -.RE - -\fBVARARGS\fR -.RS 4 -\fBcommand\fR -\fIstr | file | external_program\fR, 0...N times -.br -.RS 2 -The command to execute during the setup process. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBcapture\fR -\fIbool\fR, default: true, since 0.47.0 -.br -.RS 2 -If `true`, any output generated on stdout will be captured and returned by -the `.stdout()` method. If it is false, then `.stdout()` will return an -empty string. -.RE - -\fBcheck\fR -\fIbool\fR, default: false, since 0.47.0 -.br -.RS 2 -If `true`, the exit status code of the command will be checked, -and the configuration will fail if it is non-zero. Note that -the default value will be `true` in future releases. -.RE - -\fBenv\fR -\fIenv | list[str] | dict[str]\fR, since 0.50.0 -.br -.RS 2 -environment variables to set, -such as `['NAME1=value1', 'NAME2=value2']`, -or an \fIenv\fR object which allows more sophisticated -environment juggling. \fB(Since 0.52.0)\fR A dictionary is also accepted. -.RE - -.RE -.RE -.P -.SS run_target() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIrun_tgt\fR run_target(target_name, command:, depends:, env:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function creates a new top-level target that runs a specified -command with the specified arguments. Like all top-level targets, this -integrates with the selected backend. For instance, you can run it as -`meson compile target_name`. Note that a run target produces no output -as far as Meson is concerned. It is only meant for tasks such as -running a code formatter or flashing an external device's firmware -with a built file. - -The command is run from an \fBunspecified\fR directory, and Meson will set -three environment variables `MESON_SOURCE_ROOT`, `MESON_BUILD_ROOT` -and `MESON_SUBDIR` that specify the source directory, build directory -and subdirectory the target was defined in, respectively. - -\fBSince 0.57.0\fR The template strings passed to `command` keyword arguments accept -the following special substitutions: -- `@SOURCE_ROOT@`: the path to the root of the source tree. Depending on the backend, this may be an absolute or a relative to current workdir path. -.br -- `@BUILD_ROOT@`: the path to the root of the build tree. Depending on the backend, this may be an absolute or a relative to current workdir path. -.br -- `@CURRENT_SOURCE_DIR@` \fBSince 0.57.1\fR: this is the directory where the currently processed meson.build is located in. Depending on the backend, this may be an absolute or a relative to current workdir path. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the run target -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBcommand\fR -\fIlist[exe| external_program | custom_tgt | file | str]\fR -.br -.RS 2 -A list containing the command to run and the arguments -to pass to it. Each list item may be a string or a target. For -instance, passing the return value of \fIexecutable\fR -as the first item will run that executable, or passing a string as -the first item will find that command in `PATH` and run it. -.RE - -\fBdepends\fR -\fIlist[build_tgt | custom_tgt]\fR -.br -.RS 2 -A list of targets that this target depends on but which -are not listed in the command array (because, for example, the -script does file globbing internally) -.RE - -\fBenv\fR -\fIenv | list[str] | dict[str]\fR, since 0.57.0 -.br -.RS 2 -environment variables to set, such as -`{'NAME1': 'value1', 'NAME2': 'value2'}` or `['NAME1=value1', 'NAME2=value2']`, -or an \fIenv\fR object which allows more sophisticated environment juggling. -.RE - -.RE -.RE -.P -.SS set_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR set_variable(variable_name, value) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Assigns a value to the given variable name. Calling -`set_variable('foo', bar)` is equivalent to `foo = bar`. - -\fB(since 0.46.1)\fR The `value` parameter can be an array type. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvariable_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to set -.RE - -\fBvalue\fR -\fIany\fR, \fBrequired\fR -.br -.RS 2 -The value to set the variable to -.RE - -.RE -.RE -.P -.SS shared_library() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlib\fR shared_library( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -darwin_versions:, -.br -dependencies:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -rust_crate_type:, -.br -sources:, -.br -soversion:, -.br -version:, -.br -vs_module_defs:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Builds a shared library with the given sources. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdarwin_versions\fR -\fIstr | int | list[str]\fR, since 0.48.0 -.br -.RS 2 -Defines the `compatibility version` and `current version` for the dylib on macOS. -If a list is specified, it must be -either zero, one, or two elements. If only one element is specified -or if it's not a list, the specified value will be used for setting -both compatibility version and current version. If unspecified, the -`soversion` will be used as per the aforementioned rules. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBsoversion\fR -\fIstr | int\fR -.br -.RS 2 -A string or integer specifying the soversion of this shared library, -such as `0`. On Linux and Windows this is used to set the -soversion (or equivalent) in the filename. For example, if -`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one -of the aliases of the Linux shared library would be -`libfoo.so.4`. If this is not specified, the first part of `version` -is used instead (see below). For example, if `version` is `3.6.0` and -`soversion` is not defined, it is set to `3`. -.RE - -\fBversion\fR -\fIstr\fR -.br -.RS 2 -A string specifying the version of this shared library, -such as `1.1.0`. On Linux and OS X, this is used to set the shared -library version in the filename, such as `libfoo.so.1.1.0` and -`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used -instead (see above). -.RE - -\fBvs_module_defs\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Specify a Microsoft module definition file for controlling symbol exports, -etc., on platforms where that is possible (e.g. Windows). -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -.RE -.P -.SS shared_module() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbuild_tgt\fR shared_module( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -dependencies:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -rust_crate_type:, -.br -sources:, -.br -vs_module_defs:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) - -since 0.37.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Builds a shared module with the given sources. - -This is useful for building modules that will be `dlopen()`ed and -hence may contain undefined symbols that will be provided by the -library that is loading it. - -If you want the shared module to be able to refer to functions and -variables defined in the \fIexecutable\fR it is loaded by, -you will need to set the `export_dynamic` argument of the executable to -`true`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBvs_module_defs\fR -\fIstr | file | custom_tgt | custom_idx\fR, since 0.52.0 -.br -.RS 2 -Specify a Microsoft module definition file for controlling symbol exports, -etc., on platforms where that is possible (e.g. Windows). -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -\fBNOTES\fR -.RS 4 -*Linking to a shared module on platforms other than Android is deprecated, and will be an error -in the future*. -It was previously allowed because it was the only way to have a shared-library-like target that -contained references to undefined symbols. However, since 0.40.0, the `override_options:` -\fIbuild_target\fR keyword argument can be used to create such a \fIshared_library\fR by passing -`override_options: 'b_lundef=false'`. Shared modules have other characteristics that make -them incompatible with linking, such as a lack of SONAME. -On macOS and iOS, linking to shared modules is disallowed by the linker, so we disallow it at -configure time. -On Android, if a shared module `foo` uses symbols from another shared module `bar`, `foo` must -also be linked to `bar`. Hence, linking one shared module to another will always be allowed when -building for Android. -.RE -.RE -.P -.SS static_library() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlib\fR static_library( -.br -.RS 4 -target_name, -.br -source..., -.br -_args:, -.br -_pch:, -.br -build_by_default: \fBtrue\fR, -.br -build_rpath:, -.br -d_debug:, -.br -d_import_dirs:, -.br -d_module_versions:, -.br -d_unittest: \fBfalse\fR, -.br -dependencies:, -.br -extra_files:, -.br -gnu_symbol_visibility:, -.br -gui_app: \fBfalse\fR, -.br -implicit_include_directories: \fBtrue\fR, -.br -include_directories:, -.br -install: \fBfalse\fR, -.br -install_dir:, -.br -install_mode:, -.br -install_rpath:, -.br -install_tag:, -.br -link_args:, -.br -link_depends:, -.br -link_language:, -.br -link_whole:, -.br -link_with:, -.br -name_prefix:, -.br -name_suffix:, -.br -native: \fBfalse\fR, -.br -objects:, -.br -override_options:, -.br -pic:, -.br -prelink:, -.br -rust_crate_type:, -.br -sources:, -.br -win_subsystem: \fB'console'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Builds a static library with the given sources. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtarget_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR name of the build target -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fB_args\fR -\fIlist[str]\fR -.br -.RS 2 -compiler flags to use for the given language; -eg: `cpp_args` for C++ -.RE - -\fB_pch\fR -\fIstr\fR -.br -.RS 2 -precompiled header file to use for the given language -.RE - -\fBbuild_by_default\fR -\fIbool\fR, default: true, since 0.38.0 -.br -.RS 2 -Causes, when set to `true`, to have this target be built by default. -This means it will be built when `meson compile` is called without any -arguments. The default value is `true` for all built target types. -.RE - -\fBbuild_rpath\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -A string to add to target's rpath definition in the build dir, -but which will be removed on install -.RE - -\fBd_debug\fR -\fIlist[str]\fR -.br -.RS 2 -The \fID version identifiers\fR[5] to add -during the compilation of D source files. -.RE - -\fBd_import_dirs\fR -\fIlist[str]\fR -.br -.RS 2 -List of directories to look in for string imports used in the D programming language. -.RE - -\fBd_module_versions\fR -\fIlist[str | int]\fR -.br -.RS 2 -List of module version identifiers set when compiling D sources. -.RE - -\fBd_unittest\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, the D modules are compiled in debug mode. -.RE - -\fBdependencies\fR -\fIlist[dep]\fR -.br -.RS 2 -one or more dependency objects -created with -\fIdependency\fR or \fIcompiler.find_library\fR -(for external deps) or \fIdeclare_dependency\fR -(for deps built by the project) -.RE - -\fBextra_files\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Not used for the build itself but are shown as source files in IDEs -that group files by targets (such as Visual Studio) -.RE - -\fBgnu_symbol_visibility\fR -\fIstr\fR, since 0.48.0 -.br -.RS 2 -Specifies how symbols should be exported, see -e.g \fIthe GCC Wiki\fR[6] for more -information. This value can either be an empty string or one of -`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which -is the same as `hidden` but also includes things like C++ implicit -constructors as specified in the GCC manual. Ignored on compilers that -do not support GNU visibility arguments. -.RE - -\fBgui_app\fR -\fIbool\fR, default: false, \fBdeprecated\fR since 0.56.0 -.br -.RS 2 -When set to true flags this target as a GUI application -on platforms where this makes a differerence, \fB\fRdeprecated\fB\fR since -0.56.0, use `win_subsystem` instead. -.RE - -\fBimplicit_include_directories\fR -\fIbool\fR, default: true, since 0.42.0 -.br -.RS 2 -Controls whether Meson adds the current source and build directories to the include path -.RE - -\fBinclude_directories\fR -\fIlist[inc | str]\fR -.br -.RS 2 -one or more objects created with the \fIinclude_directories\fR function, -or \fB(since 0.50.0)\fR strings, which will be transparently expanded to include directory objects -.RE - -\fBinstall\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to true, this executable should be installed. -.RE - -\fBinstall_dir\fR -\fIstr\fR -.br -.RS 2 -override install directory for this file. If the value is a relative path, -it will be considered relative the `prefix` option. -For example, if you want to install plugins into a subdir, you'd use -something like this: `install_dir : get_option('libdir') / 'projectname-1.0'`. -.RE - -\fBinstall_mode\fR -\fIlist[str | int]\fR, since 0.47.0 -.br -.RS 2 -Specify the file mode in symbolic format -and optionally the owner/uid and group/gid for the installed files. - -See the `install_mode` kwarg of \fIinstall_data\fR for more information. -.RE - -\fBinstall_rpath\fR -\fIstr\fR -.br -.RS 2 -A string to set the target's rpath to after install -(but \fBnot\fR before that). On Windows, this argument has no effect. -.RE - -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. By default all build targets have the -tag `runtime` except for static libraries that have the `devel` tag. -.RE - -\fBlink_args\fR -\fIlist[str]\fR -.br -.RS 2 -Flags to use during linking. You can use UNIX-style -flags here for all platforms. -.RE - -\fBlink_depends\fR -\fIstr | file | custom_tgt | custom_idx\fR -.br -.RS 2 -Strings, files, or custom targets the link step depends on -such as a symbol visibility map. The purpose is to -automatically trigger a re-link (but not a re-compile) of the target -when this file changes. -.RE - -\fBlink_language\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -Makes the linker for this target be for the specified language. -It is generally unnecessary to set -this, as Meson will detect the right linker to use in most cases. There are -only two cases where this is needed. One, your main function in an -executable is not in the language Meson picked, or second you want to force -a library to use only one ABI. - -\fB(broken until 0.55.0)\fR -.RE - -\fBlink_whole\fR -\fIlist[lib | custom_tgt | custom_idx]\fR, since 0.40.0 -.br -.RS 2 -Links all contents of the given static libraries -whether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC. - -\fB(since 0.41.0)\fR If passed a list that list will be flattened. - -\fB(since 0.51.0)\fR This argument also accepts outputs produced by -custom targets. The user must ensure that the output is a library in -the correct format. -.RE - -\fBlink_with\fR -\fIlist[lib | custom_tgt | custom_idx]\fR -.br -.RS 2 -One or more shared or static libraries -(built by this project) that this target should be linked with. \fB(since 0.41.0)\fR If passed a -list this list will be flattened. \fB(since 0.51.0)\fR The arguments can also be custom targets. -In this case Meson will assume that merely adding the output file in the linker command -line is sufficient to make linking work. If this is not sufficient, -then the build system writer must write all other steps manually. -.RE - -\fBname_prefix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the prefix for the -target output filename by overriding the default (only used for -libraries). By default this is `lib` on all platforms and compilers, -except for MSVC shared libraries where it is omitted to follow -convention, and Cygwin shared libraries where it is `cyg`. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBname_suffix\fR -\fIstr | list[void]\fR -.br -.RS 2 -The string that will be used as the extension for the -target by overriding the default. By default on Windows this is -`exe` for executables and on other platforms it is omitted. - -For shared libraries, the default value -is `dylib` on macOS, `dll` on Windows, and `so` everywhere else. -For static libraries, it is `a` everywhere. By convention MSVC -static libraries use the `lib` suffix, but we use `a` to avoid a -potential name clash with shared libraries which also generate -import libraries with a `lib` suffix. - -Set this to `[]`, or omit the keyword argument for the default behaviour. -.RE - -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -Controls whether the target is compiled for the build or host machines. -.RE - -\fBobjects\fR -\fIlist[extracted_obj | file | str]\fR -.br -.RS 2 -List of object files that should be linked in this target. -These can include third party products you don't have source to, -or object files produced by other build targets. -.RE - -\fBoverride_options\fR -\fIlist[str]\fR, since 0.40.0 -.br -.RS 2 -takes an array of strings in the same format as `project`'s `default_options` -overriding the values of these options -for this target only. -.RE - -\fBpic\fR -\fIbool\fR, since 0.36.0 -.br -.RS 2 -Builds the library as positional independent code -(so it can be linked into a shared library). This -option has no effect on Windows and OS X since it doesn't make -sense on Windows and PIC cannot be disabled on OS X. -.RE - -\fBprelink\fR -\fIbool\fR, since 0.57.0 -.br -.RS 2 -If `true` the object files in the target will be prelinked, -meaning that it will contain only one prelinked -object file rather than the individual object files. -.RE - -\fBrust_crate_type\fR -\fIstr\fR, since 0.42.0 -.br -.RS 2 -Set the specific type of rust crate to compile (when compiling rust). - -If the target is an \fIexecutable\fR this defaults to "bin", the only -allowed value. - -If it is a \fIstatic_library\fR it defaults to "lib", and may be "lib", -"staticlib", or "rlib". If "lib" then Rustc will pick a default, "staticlib" -means a C ABI library, "rlib" means a Rust ABI. - -If it is a \fIshared_library\fR it defaults to "lib", and may be "lib", -"dylib", "cdylib", or "proc-macro". If "lib" then Rustc will pick a -default, "cdylib" means a C ABI library, "dylib" means a Rust ABI, and -"proc-macro" is a special rust proceedural macro crate. - -"proc-macro" is new in 0.62.0. -.RE - -\fBsources\fR -\fIstr | file | custom_tgt | custom_idx | generated_list | structured_src\fR -.br -.RS 2 -Additional source files. Same as the source varargs. -.RE - -\fBwin_subsystem\fR -\fIstr\fR, default: 'console', since 0.56.0 -.br -.RS 2 -Specifies the subsystem type to use -on the Windows platform. Typical values include `console` for text -mode programs and `windows` for gui apps. The value can also contain -version specification such as `windows,6.0`. See \fIMSDN -documentation\fR[7] -for the full list. -.RE - -.RE -.RE -.P -.SS structured_sources() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstructured_src\fR structured_sources(root, [additional]) - -since 0.62.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Create a StructuredSource object, which is opaque and may be passed as a source -to any build_target (including static_library, shared_library, executable, -etc.). This is useful for languages like Rust, which use the filesystem layout -to determine import names. This is only allowed in Rust targets, and cannot be -mixed with non structured inputs. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBroot\fR -\fIlist[str | file | custom_tgt | custom_idx | generated_list]\fR, \fBrequired\fR -.br -.RS 2 -Sources to put at the root of the generated structure -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBadditional\fR -\fIdict[str | file | custom_tgt | custom_idx | generated_list]\fR -.br -.RS 2 -Additional sources, where the key is the directory under the root to place -the values -.RE - -.RE -.RE -.P -.SS subdir() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR subdir(dir_name, if_found:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Enters the specified subdirectory and executes the `meson.build` file in it. -Once that is done, it returns and execution continues on the -line following this `subdir()` command. Variables defined in that -`meson.build` file are then available for use in later parts of the -current build file and in all subsequent build files executed with -`subdir()`. - -Note that this means that each `meson.build` file in a source tree can -and must only be executed once. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBdir_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Directory relative to the current `meson.build` to enter. - -Cannot contain `..` -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBif_found\fR -\fIlist[dep]\fR, since 0.44.0 -.br -.RS 2 -Only enter the subdir if all \fIdep.found\fR methods return `true`. -.RE - -.RE -.RE -.P -.SS subdir_done() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR subdir_done() - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Stops further interpretation of the Meson script file from the point -of the invocation. All steps executed up to this point are valid and -will be executed by Meson. This means that all targets defined before -the call of \fIsubdir_done\fR will be build. - -If the current script was called by `subdir` the execution returns to -the calling directory and continues as if the script had reached the -end. If the current script is the top level script Meson configures -the project as defined up to this point. -.RE - -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -project('example exit', 'cpp') -.br -executable('exe1', 'exe1.cpp') -.br -subdir_done() -.br -executable('exe2', 'exe2.cpp') -.br -.RE -The executable `exe1` will be build, while the executable `exe2` is not -build. -.RE -.RE -.P -.SS subproject() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIsubproject\fR subproject( -.br -.RS 4 -subproject_name, -.br -default_options:, -.br -required: \fBtrue\fR, -.br -version:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Takes the project specified in the positional argument and brings that -in the current build specification by returning a \fIsubproject\fR object. -Subprojects must always be placed inside -the `subprojects` directory at the top source directory. So for -example a subproject called `foo` must be located in -`${MESON_SOURCE_ROOT}/subprojects/foo`. - -- `default_options` \fB(since 0.37.0)\fR: an array of default option values that override those set in the subproject's `meson_options.txt` (like `default_options` in `project`, they only have effect when Meson is run for the first time, and command line arguments override any default options in build files). \fB(since 0.54.0)\fR: `default_library` built-in option can also be overridden. -.br -- `version`: works just like the same as in `dependency`. It specifies what version the subproject should be, as an example `>=1.0.1` -.br -- `required` \fB(since 0.48.0)\fR: By default, `required` is `true` and Meson will abort if the subproject could not be setup. You can set this to `false` and then use the `.found()` method on the \fIsubproject\fR object. You may also pass the value of a \fI`feature`\fR[0] option, same as \fIdependency\fR. - -Note that you can use the returned \fIsubproject\fR object -to access any variable in the -subproject. However, if you want to use a dependency object from -inside a subproject, an easier way is to use the `fallback:` keyword -argument to \fIdependency\fR. - -\fISee additional documentation\fR[25]. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBsubproject_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the subproject. The subproject must exist in the `subprojects` -directory (or the directory specified in the `subproject_dir` of -\fIproject\fR) as a directory or wrap file. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdefault_options\fR -\fIlist[str]\fR, since 0.37.0 -.br -.RS 2 -An array of default option values -that override those set in the subproject's `meson_options.txt` -(like `default_options` in \fIproject\fR, they only have effect when -Meson is run for the first time, and command line arguments override -any default options in build files). \fB(since 0.54.0)\fR: `default_library` -built-in option can also be overridden. -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: true, since 0.48.0 -.br -.RS 2 -Works just the same as in \fIdependency\fR. -.RE - -\fBversion\fR -\fIstr\fR -.br -.RS 2 -Works just like the same as in \fIdependency\fR. -It specifies what version the subproject should be, as an example `>=1.0.1`. -.RE - -.RE -.RE -.P -.SS summary() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR summary( -.br -.RS 4 -key_or_dict, -.br -[value], -.br -bool_yn: \fBfalse\fR, -.br -list_sep:, -.br -section:, -.br -.RE -) - -since 0.53.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function is used to summarize build configuration at the end of the build -process. This function provides a way for projects (and subprojects) to report -this information in a clear way. - -The content is a series of key/value pairs grouped into sections. If -the section keyword argument is omitted, those key/value pairs are -implicitly grouped into a section with no title. key/value pairs can -optionally be grouped into a dictionary, but keep in mind that -dictionaries do not guarantee ordering. `key` must be string, -`value` can be: - -- an integer, boolean or string -.br -- \fBsince 0.57.0\fR an external program or a dependency -.br -- \fBsince 0.58.0\fR a feature option -.br -- a list of those. - -Instead of calling summary as `summary(key, value)`, it is also possible to -directly pass a dictionary to the \fIsummary\fR function, as seen in the example -below. - -`summary()` can be called multiple times as long as the same -section/key pair doesn't appear twice. All sections will be collected -and printed at the end of the configuration in the same order as they -have been called. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBkey_or_dict\fR -\fIstr | dict[str | bool | int | dep | external_program | list[str | bool | int | dep | external_program]]\fR, \fBrequired\fR -.br -.RS 2 -The name of the new entry, or a dict containing multiple entries. If a -dict is passed it is equivalent to calling summary() once for each -key-value pair. Keep in mind that dictionaries do not guarantee -ordering. -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBvalue\fR -\fIstr | bool | int | dep | external_program | list[str | bool | int | dep | external_program]\fR -.br -.RS 2 -The value to print for the `key`. Only valid if `key_or_dict` is a str. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBbool_yn\fR -\fIbool\fR, default: false -.br -.RS 2 -Convert bool values to yes and no -.RE - -\fBlist_sep\fR -\fIstr\fR, since 0.54.0 -.br -.RS 2 -The separator to use when printing list values in this summary. If no -separator is given, each list item will be printed on its own line. -.RE - -\fBsection\fR -\fIstr\fR -.br -.RS 2 -The section to put this summary information under. If the section keyword argument is omitted, key/value pairs are implicitly grouped into a section with no title. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 -Example `meson.build`: -.RS 4 -project('My Project', version : '1.0') -.br -summary({'bindir': get_option('bindir'), -.br - 'libdir': get_option('libdir'), -.br - 'datadir': get_option('datadir'), -.br - }, section: 'Directories') -.br -summary({'Some boolean': false, -.br - 'Another boolean': true, -.br - 'Some string': 'Hello World', -.br - 'A list': ['string', 1, true], -.br - }, section: 'Configuration') -.br -.RE -Output: -.RS 4 -My Project 1.0 -.br - -.br - Directories -.br - prefix : /opt/gnome -.br - bindir : bin -.br - libdir : lib/x86_64-linux-gnu -.br - datadir : share -.br - -.br - Configuration -.br - Some boolean : False -.br - Another boolean: True -.br - Some string : Hello World -.br - A list : string -.br - 1 -.br - True -.br -.RE - -.RE -.RE -.P -.SS test() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR test( -.br -.RS 4 -name, -.br -executable, -.br -args:, -.br -depends:, -.br -env:, -.br -is_parallel: \fBtrue\fR, -.br -priority: \fB0\fR, -.br -protocol: \fB'exitcode'\fR, -.br -should_fail: \fBfalse\fR, -.br -suite:, -.br -timeout: \fB30\fR, -.br -verbose: \fBfalse\fR, -.br -workdir:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Defines a test to run with the test harness. Takes two positional -arguments, the first is the name of the test and the second is the -executable to run. The executable can be an \fIexe\fR object returned by -\fIexecutable\fR or an \fIexternal_program\fR object] returned by -\fIfind_program\fR. - -\fB(since 0.55.0)\fR When cross compiling, if an exe_wrapper is needed and -defined the environment variable `MESON_EXE_WRAPPER` will be set to -the string value of that wrapper (implementation detail: using -`mesonlib.join_args`). Test scripts may use this to run cross built -binaries. If your test needs `MESON_EXE_WRAPPER` in cross build -situations it is your responsibility to return code 77 to tell the -harness to report "skip". - -By default, environment variable -\fI`MALLOC_PERTURB_`\fR[26] -is automatically set by `meson test` to a random value between 1..255. -This can help find memory leaks on configurations using glibc, -including with non-GCC compilers. However, this can have a performance -impact, and may fail a test due to external libraries whose internals -are out of the user's control. To check if this feature is causing an -expected runtime crash, disable the feature by temporarily setting -environment variable `MALLOC_PERTURB_=0`. While it's preferable to -only temporarily disable this check, if a project requires permanent -disabling of this check in meson.build do like: -.RS 4 -nomalloc = environment({'MALLOC_PERTURB_': '0'}) -.br - -.br -test(..., env: nomalloc, ...) -.br -.RE -In addition to running individual executables as test cases, `test()` -can also be used to invoke an external test harness. In this case, -it is best to use `verbose: true` \fB(since 0.62.0)\fR and, if supported -by the external harness, `protocol: 'tap'` \fB(since 0.50.0)\fR. This will -ensure that Meson logs each subtest as it runs, instead of including -the whole log at the end of the run. - -Defined tests can be run in a backend-agnostic way by calling -`meson test` inside the build dir, or by using backend-specific -commands, such as `ninja test` or `msbuild RUN_TESTS.vcxproj`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The \fBunique\fR test id -.RE - -\fBexecutable\fR -\fIexe | jar | external_program | file\fR, \fBrequired\fR -.br -.RS 2 -The program to execute -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str | file | tgt]\fR -.br -.RS 2 -Arguments to pass to the executable -.RE - -\fBdepends\fR -\fIlist[build_tgt | custom_tgt]\fR, since 0.46.0 -.br -.RS 2 -specifies that this test depends on the specified -target(s), even though it does not take any of them as a command -line argument. This is meant for cases where test finds those -targets internally, e.g. plugins or globbing. Those targets are built -before test is executed even if they have `build_by_default : false`. -.RE - -\fBenv\fR -\fIenv | list[str] | dict[str]\fR -.br -.RS 2 -environment variables to set, such as `['NAME1=value1', -\'NAME2=value2']`, or an \fIenv\fR object which allows more sophisticated -environment juggling. \fB(Since 0.52.0)\fR A dictionary is also accepted. -.RE - -\fBis_parallel\fR -\fIbool\fR, default: true -.br -.RS 2 -when false, specifies that no other test must be -running at the same time as this test -.RE - -\fBpriority\fR -\fIint\fR, default: 0, since 0.52.0 -.br -.RS 2 -specifies the priority of a test. Tests with a -higher priority are \fBstarted\fR before tests with a lower priority. -The starting order of tests with identical priorities is -implementation-defined. The default priority is 0, negative numbers are -permitted. -.RE - -\fBprotocol\fR -\fIstr\fR, default: 'exitcode', since 0.50.0 -.br -.RS 2 -specifies how the test results are parsed and can -be one of `exitcode`, `tap`, or `gtest`. For more information about test -harness protocol read \fIUnit Tests\fR[1]. The following values are -accepted: - -- `exitcode`: the executable's exit code is used by the test harness to record the outcome of the test). -.br -- `tap`: \fITest Anything Protocol\fR[2]. -.br -- `gtest` \fB(since 0.55.0)\fR: for Google Tests. -.br -- `rust` \fB(since 0.56.0)\fR: for native rust tests -.RE - -\fBshould_fail\fR -\fIbool\fR, default: false -.br -.RS 2 -when true the test is considered passed if the -executable returns a non-zero return value (i.e. reports an error) -.RE - -\fBsuite\fR -\fIstr | list[str]\fR -.br -.RS 2 -`'label'` (or list of labels `['label1', 'label2']`) -attached to this test. The suite name is qualified by a (sub)project -name resulting in `(sub)project_name:label`. In the case of a list -of strings, the suite names will be `(sub)project_name:label1`, -`(sub)project_name:label2`, etc. -.RE - -\fBtimeout\fR -\fIint\fR, default: 30 -.br -.RS 2 -the amount of seconds the test is allowed to run, a test -that exceeds its time limit is always considered failed, defaults to -30 seconds. \fBSince 0.57\fR if timeout is `<= 0` the test has infinite duration, -in previous versions of Meson the test would fail with a timeout immediately. -.RE - -\fBverbose\fR -\fIbool\fR, default: false, since 0.62.0 -.br -.RS 2 -if true, forces the test results to be logged as if `--verbose` was passed -to `meson test`. -.RE - -\fBworkdir\fR -\fIstr\fR -.br -.RS 2 -absolute path that will be used as the working directory -for the test -.RE - -.RE -.RE -.P -.SS unset_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR unset_variable(varname) - -since 0.60.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Unsets a variable. -Referencing a variable which has been unset is an error until it has been set again. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The variable to unset. -.RE - -.RE -.RE -.P -.SS vcs_tag() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIcustom_tgt\fR vcs_tag( -.br -.RS 4 -command:, -.br -fallback: \fB[[meson.project_version]]\fR, -.br -input:, -.br -output:, -.br -replace_string: \fB'@VCS_TAG@'\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -This command detects revision control commit information at build time -and places it in the specified output file. This file is guaranteed to -be up to date on every build. Keywords are similar to \fIcustom_target\fR. - -Meson will read the contents of `input`, substitute the -`replace_string` with the detected revision number, and write the -result to `output`. This method returns a -\fIcustom_tgt\fR object that (as usual) should be -used to signal dependencies if other targets use the file outputted -by this. - -For example, if you generate a header with this and want to use that -in a build target, you must add the return value to the sources of -that build target. Without that, Meson will not know the order in -which to build the targets. - -If you desire more specific behavior than what this command provides, -you should use \fIcustom_target\fR. -.RE - -\fBKWARGS\fR -.RS 4 -\fBcommand\fR -\fIlist[exe | external_program | custom_tgt | file | str]\fR -.br -.RS 2 -The command to execute, see \fIcustom_target\fR for details -on how this command must be specified. - -This parameter is optional. If it is absent, Meson will try -its best to find a suitable default command. - -\fB(since 0.62.0)\fR \fIfile\fR is accepted. - -\fB(since 0.63.0)\fR \fIcustom_tgt\fR, \fIexe\fR, and \fIexternal_program\fR are accepted. -.RE - -\fBfallback\fR -\fIstr\fR, default: [[meson.project_version]] -.br -.RS 2 -Version number to use when no revision control information is present, -such as when building from a release tarball. -.RE - -\fBinput\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -File to modify (e.g. `version.c.in`). -.RE - -\fBoutput\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -File to write the results to (e.g. `version.c`). -.RE - -\fBreplace_string\fR -\fIstr\fR, default: '@VCS_TAG@' -.br -.RS 2 -String in the input file to substitute with the commit information. -.RE - -.RE -.RE -.P -.SS warning() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR warning(text, more_text...) - -since 0.44.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -This function prints its argument to stdout prefixed with WARNING:. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtext\fR -\fIstr | int | bool | list[str | int | bool] | dict[str | int | bool]\fR, \fBrequired\fR -.br -.RS 2 -The message to print. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBmore_text\fR -\fIstr | int | bool | list[str | int | bool] | dict[str | int | bool]\fR, 0...N times, since 0.54.0 -.br -.RS 2 -Additional text that will be printed separated by spaces. -.RE - -.RE -.RE -.P -.SS bool.to_int() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR bool.to_int() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `1` if `true` and `0` if `false` -.RE - -.RE -.P -.SS bool.to_string() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR bool.to_string([true_str], [false_str]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the string `'true'` if the boolean is true or `'false'` otherwise. -You can also pass it two strings as positional -arguments to specify what to return for true/false. For instance, -`bool.to_string('yes', 'no')` will return `yes` if the boolean is -true and `no` if it is false. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBtrue_str\fR -\fIstr\fR, default: 'true' -.br -.RS 2 -The string to return when the boolean is `true` -.RE - -\fBfalse_str\fR -\fIstr\fR, default: 'false' -.br -.RS 2 -The string to return when the boolean is `false` -.RE - -.RE -.RE -.P -.SS both_libs.get_shared_lib() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlib\fR both_libs.get_shared_lib() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the stored shared library -.RE - -.RE -.P -.SS both_libs.get_static_lib() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlib\fR both_libs.get_static_lib() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the stored static library -.RE - -.RE -.P -.SS build_machine.cpu() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_machine.cpu() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a more specific CPU name, such as `i686`, `amd64`, etc. -.RE - -.RE -.P -.SS build_machine.cpu_family() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_machine.cpu_family() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the CPU family name. -\fIThis table\fR[27] contains -all known CPU families. These are guaranteed to continue working. -.RE - -.RE -.P -.SS build_machine.endian() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_machine.endian() -.RE - -\fBDESCRIPTION\fR -.RS 4 -returns `'big'` on big-endian systems and `'little'` on little-endian systems. -.RE - -.RE -.P -.SS build_machine.system() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_machine.system() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the operating system name. -\fIThis table\fR[28] Lists -all of the currently known Operating System names, these are -guaranteed to continue working. -.RE - -.RE -.P -.SS build_tgt.extract_all_objects() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIextracted_obj\fR build_tgt.extract_all_objects( -.br -.RS 4 -recursive: \fBtrue\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Acts the same as `extract_objects`, but returns all object files generated -by this target. - -By default only objects built for this target are returned to maintain -backward compatibility with previous versions. The default value for the -`recursive` kwarg will eventually be changed to `true` in a future version. -.RE - -\fBKWARGS\fR -.RS 4 -\fBrecursive\fR -\fIbool\fR, default: true, since 0.46.0 -.br -.RS 2 -Also return objects passed to the `objects` argument of this target. -.RE - -.RE -.RE -.P -.SS build_tgt.extract_objects() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIextracted_obj\fR build_tgt.extract_objects(source...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an opaque value representing the object files generated for those -source files. This is typically used to take single object files and link -them to unit tests or to compile some source files with custom flags. To -use the object file(s) in another build target, use the -`objects:` keyword argument to a \fIbuild_target\fR or include them in the command -line of a \fIcustom_target\fR. -.RE - -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file\fR, 1...N times -.br -.RS 2 -Source filenames for which the built objects should be extracted. -.RE - -.RE -.RE -.P -.SS build_tgt.found() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR build_tgt.found() - -since 0.59.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Always returns `true`. This function is meant to make executables -objects feature compatible with \fIexternal_program\fR objects. This -simplifies use-cases where an executable is used instead of -an \fIexternal_program\fR. -.RE - -.RE -.P -.SS build_tgt.full_path() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_tgt.full_path() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a full path pointing to the result target file. -\fB\fRNOTE:\fB\fR In most cases using the object itself will do the same job -as this and will also allow Meson to setup inter-target dependencies -correctly. Please file a bug if that doesn't work for you. -.RE - -.RE -.P -.SS build_tgt.name() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_tgt.name() - -since 0.54.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the name of the target. -.RE - -.RE -.P -.SS build_tgt.path() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR build_tgt.path() - -\fBdeprecated\fR since 0.59.0, since 0.59.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Does the exact same as \fIbuild_tgt.full_path\fR. \fB\fRNOTE\fB\fR: This -function is solely kept for compatebility with \fIexternal_program\fR objects. -It will be removed once the, also deprecated, corresponding `path()` -function in the \fIexternal_program\fR object is removed. -.RE - -.RE -.P -.SS build_tgt.private_dir_include() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIinc\fR build_tgt.private_dir_include() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a value that works like \fIinclude_directories\fR, but points to the -private directory of this target. Usually only needed if an another target -needs to access some generated internal headers of this target. -.RE - -.RE -.P -.SS cfg_data.get() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr | int | bool\fR cfg_data.get(varname, [default_value]) - -since 0.38.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the value of `varname`, if the -value has not been set returns `default_value` if it is defined -\fB(since 0.38.0)\fR and errors out if not -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to query -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBdefault_value\fR -\fIstr | int | bool\fR -.br -.RS 2 -The default value to return when `varname` does not exist -.RE - -.RE -.RE -.P -.SS cfg_data.get_unquoted() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr | int | bool\fR cfg_data.get_unquoted(varname, [default_value]) - -since 0.44.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the value -of `varname` but without surrounding double quotes (`"`). If the value has -not been set returns `default_value` if it is defined and errors out if not. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to query -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBdefault_value\fR -\fIstr | int | bool\fR -.br -.RS 2 -The default value to return when `varname` does not exist -.RE - -.RE -.RE -.P -.SS cfg_data.has() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR cfg_data.has(varname) -.RE - -\fBDESCRIPTION\fR -.RS 4 -returns `true` if the specified variable is set -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to query -.RE - -.RE -.RE -.P -.SS cfg_data.keys() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR cfg_data.keys() - -since 0.57.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an array of keys of -the configuration data object. - -You can iterate over this array with the \fI`foreach` -statement\fR[29]. -.RE - -.RE -.P -.SS cfg_data.merge_from() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR cfg_data.merge_from(other) - -since 0.42.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Takes as argument a different -configuration data object and copies all entries from that object to -the current. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBother\fR -\fIcfg_data\fR, \fBrequired\fR -.br -.RS 2 -The other \fIcfg_data\fR object to merge into this one. -.RE - -.RE -.RE -.P -.SS cfg_data.set() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR cfg_data.set(varname, value, description:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Sets a variable to a given value -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to set -.RE - -\fBvalue\fR -\fIstr | int | bool\fR, \fBrequired\fR -.br -.RS 2 -The value to set -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdescription\fR -\fIstr\fR -.br -.RS 2 -Message / Comment that will be written in the -result file. The replacement assumes a file with C syntax. If your -generated file is source code in some other language, you probably -don't want to add a description field because it most likely will -cause a syntax error. -.RE - -.RE -.RE -.P -.SS cfg_data.set10() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR cfg_data.set10(varname, value, description:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Is the same as \fIcfg_data.set\fR but the value -is either `true` or `false` and will be written as 1 or 0, -respectively -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to set -.RE - -\fBvalue\fR -\fIbool | int\fR, \fBrequired\fR -.br -.RS 2 -The value to set as either `1` or `0` - -Passing numbers was never intended to work, and since 0.62 it has been -deprecated. It will be removed in a future version of Meson. If you -need to pass numbers use the `.set` method. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdescription\fR -\fIstr\fR -.br -.RS 2 -Message / Comment that will be written in the -result file. The replacement assumes a file with C syntax. If your -generated file is source code in some other language, you probably -don't want to add a description field because it most likely will -cause a syntax error. -.RE - -.RE -\fBWARNINGS\fR -.RS 4 -numeric values < 0 have the surprising behavior of being converted to `true`, values > 1 have the more expected but unintentional behavior of being interpreted as `true`. -.RE -.RE -.P -.SS cfg_data.set_quoted() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR cfg_data.set_quoted(varname, value, description:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Is same as \fIcfg_data.set\fR but quotes the value in double quotes (`"`) -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to set -.RE - -\fBvalue\fR -\fIstr | int | bool\fR, \fBrequired\fR -.br -.RS 2 -The value to set -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdescription\fR -\fIstr\fR -.br -.RS 2 -Message / Comment that will be written in the -result file. The replacement assumes a file with C syntax. If your -generated file is source code in some other language, you probably -don't want to add a description field because it most likely will -cause a syntax error. -.RE - -.RE -.RE -.P -.SS cmake.subproject_options() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIcmake_options\fR cmake.subproject_options() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an empty `cmake_options` object. -.RE - -.RE -.P -.SS cmake_options.add_cmake_defines() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR cmake_options.add_cmake_defines(defines...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Add CMake defines (`-D=`) to the CMake commandline -.RE - -\fBVARARGS\fR -.RS 4 -\fBdefines\fR -\fIdict[str]\fR, 0...N times -.br -.RS 2 -A `key` `value` map of CMake defines to add (`-D=`) -.RE - -.RE -.RE -.P -.SS compiler.alignment() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR compiler.alignment(typename, args:, dependencies:, prefix:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the alignment of the specified type. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtypename\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the type to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.check_header() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.check_header( -.br -.RS 4 -header_name, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -required: \fBfalse\fR, -.br -.RE -) - -since 0.47.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the specified header is \fBusable\fR -with the specified prefix, dependencies, and arguments. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBheader_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The header to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: false, since 0.50.0 -.br -.RS 2 -When set to `true`, Meson will halt if the header check fails. -When set to a \fI`feature`\fR[0] option, the feature will control if it is searched and whether to fail if not found. -.RE - -.RE -.RE -.P -.SS compiler.cmd_array() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR compiler.cmd_array() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an array containing the command(s) for the compiler. -.RE - -.RE -.P -.SS compiler.compiles() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.compiles( -.br -.RS 4 -code, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -name:, -.br -no_builtin_args: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the code compiles. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBcode\fR -\fIstr | file\fR, \fBrequired\fR -.br -.RS 2 -The source code to check. - -If a string is passed, the code is used directly. If a \fIfile\fR object -is passed, its content is used for the compiler check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBname\fR -\fIstr\fR -.br -.RS 2 -The name to use for printing a message about the compiler check. -If this keyword argument is not passed, no message will be printed about the check. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -.RE -.RE -.P -.SS compiler.compute_int() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR compiler.compute_int( -.br -.RS 4 -expr, -.br -args:, -.br -dependencies:, -.br -guess:, -.br -high: \fB1024\fR, -.br -include_directories:, -.br -low: \fB-1024\fR, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) - -since 0.40.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Computes the value of the given expression -(as an example `1 + 2`). When cross compiling this is evaluated with -an iterative algorithm, you can specify keyword arguments `low` -(defaults to -1024), `high` (defaults to 1024) and `guess` to -specify max and min values for the search and the value to try -first. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBexpr\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The expression to compute. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBguess\fR -\fIint\fR -.br -.RS 2 -The value to try first. -.RE - -\fBhigh\fR -\fIint\fR, default: 1024 -.br -.RS 2 -The max value. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBlow\fR -\fIint\fR, default: -1024 -.br -.RS 2 -The min value. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.find_library() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdep\fR compiler.find_library( -.br -.RS 4 -libname, -.br -dirs:, -.br -disabler: \fBfalse\fR, -.br -has_headers:, -.br -header_args:, -.br -header_dependencies:, -.br -header_include_directories:, -.br -header_no_builtin_args: \fBfalse\fR, -.br -header_prefix:, -.br -required: \fBtrue\fR, -.br -static: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Tries to find the library specified in the positional argument. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBlibname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The library to find. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdirs\fR -\fIlist[str]\fR -.br -.RS 2 -Additional directories to search in. - -By default the library is searched for in the system library directory -(e.g. /usr/lib). Specifying more directories here, causes Meson to search -in those directories as well as the system directories. -.RE - -\fBdisabler\fR -\fIbool\fR, default: false, since 0.49.0 -.br -.RS 2 -If `true`, this method will return a \fIdisabler\fR on a failed check. -.RE - -\fBhas_headers\fR -\fIlist[str]\fR, since 0.50.0 -.br -.RS 2 -List of headers that must be found as well. -This check is equivalent to checking each header with a -\fIcompiler.has_header\fR call. - -When used, kwargs that \fIcompiler.has_header\fR would accept can be -passed here prefixed with `header_`, and will have the same effect on -the header check. -.RE - -\fBheader_args\fR -\fIlist[str]\fR, since 0.51.0 -.br -.RS 2 -When the `has_headers` kwarg is also used, this argument is passed to -\fIcompiler.has_header\fR as `args`. -.RE - -\fBheader_dependencies\fR -\fIdep | list[dep]\fR, since 0.51.0 -.br -.RS 2 -When the `has_headers` kwarg is also used, this argument is passed to -\fIcompiler.has_header\fR as `dependencies`. -.RE - -\fBheader_include_directories\fR -\fIinc | list[inc]\fR, since 0.51.0 -.br -.RS 2 -When the `has_headers` kwarg is also used, this argument is passed to -\fIcompiler.has_header\fR as `include_directories`. -.RE - -\fBheader_no_builtin_args\fR -\fIbool\fR, default: false, since 0.51.0 -.br -.RS 2 -When the `has_headers` kwarg is also used, this argument is passed to -\fIcompiler.has_header\fR as `no_builtin_args`. -.RE - -\fBheader_prefix\fR -\fIstr\fR, since 0.51.0 -.br -.RS 2 -When the `has_headers` kwarg is also used, this argument is passed to -\fIcompiler.has_header\fR as `prefix`. -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: true -.br -.RS 2 -If set `true`, Meson will abort with an error if the library could not -be found. Otherwise, Meson will continue and the found method of the -returned object will return `false`. - -When set to a \fI`feature`\fR[0] option, the feature -will control if it is searched and whether to fail if not found. - -\fB(since 0.47.0)\fR The value of a `feature` option can also be passed here. -.RE - -\fBstatic\fR -\fIbool\fR, default: false, since 0.51.0 -.br -.RS 2 -If `true`, the search is limited to static libraries only. -Setting this value to `false` (the default) will search for both shared -\fBand\fR static libraries. -.RE - -.RE -.RE -.P -.SS compiler.first_supported_argument() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR compiler.first_supported_argument(arg...) - -since 0.43.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Given a list of strings, returns a single-element list containing the first -argument that passes the \fIcompiler.has_argument\fR test or an empty array if -none pass. -.RE - -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The arguments to check. -.RE - -.RE -.RE -.P -.SS compiler.first_supported_link_argument() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR compiler.first_supported_link_argument(arg...) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Given a list of strings, returns the first argument that passes the -\fIcompiler.has_link_argument\fR test or an empty array if none pass. -.RE - -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The link arguments to check. -.RE - -.RE -.RE -.P -.SS compiler.get_argument_syntax() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR compiler.get_argument_syntax() - -since 0.49.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -returns a string identifying the type of arguments the compiler takes. -Can be one of `gcc`, `msvc`, or an undefined -string value. This method is useful for identifying compilers that are not -gcc or msvc, but use the same argument syntax as one of those two compilers -such as clang or icc, especially when they use different syntax on different -operating systems. -.RE - -.RE -.P -.SS compiler.get_define() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR compiler.get_define( -.br -.RS 4 -definename, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) - -since 0.40.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the given preprocessor symbol's value -as a string or empty string if it is not defined. - -\fB(since 0.47.0)\fR This method will concatenate string literals as -the compiler would. E.g. `"a" "b"` will become `"ab"`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBdefinename\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The define to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.get_id() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR compiler.get_id() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string identifying the compiler. -For example, `gcc`, `msvc`, \fIand more\fR[30]. -.RE - -.RE -.P -.SS compiler.get_linker_id() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR compiler.get_linker_id() - -since 0.53.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string identifying the linker. -For example, `ld.bfd`, `link`, \fIand more\fR[31]. -.RE - -.RE -.P -.SS compiler.get_supported_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR compiler.get_supported_arguments( -.br -.RS 4 -arg..., -.br -checked: \fB'off'\fR, -.br -.RE -) - -since 0.43.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an array containing only the arguments supported by the compiler, -as if \fIcompiler.has_argument\fR were called on them individually. -.RE - -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The arguments to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBchecked\fR -\fIstr\fR, default: 'off', since 0.59.0 -.br -.RS 2 -Supported values: - - `'off'`: Quietely ignore unsupported arguments - - `'warn'`: Print a warning for unsupported arguments - - `'require'`: Abort if at least one argument is not supported -.RE - -.RE -.RE -.P -.SS compiler.get_supported_function_attributes() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR compiler.get_supported_function_attributes() - -since 0.48.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an array containing any names that are supported GCC style attributes. -Equivalent to \fIcompiler.has_function_attribute\fR was called on each of -them individually. -.RE - -.RE -.P -.SS compiler.get_supported_link_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR compiler.get_supported_link_arguments(arg...) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an array containing only the arguments supported by the compiler, -as if \fIcompiler.has_link_argument\fR were called on them individually. -.RE - -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The link arguments to check. -.RE - -.RE -.RE -.P -.SS compiler.has_argument() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_argument(argument) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the compiler accepts the specified command line argument, -that is, can compile code without erroring out or printing a warning about -an unknown flag. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBargument\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The argument to check. -.RE - -.RE -.RE -.P -.SS compiler.has_function() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_function( -.br -.RS 4 -funcname, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the given function is provided -by the standard library or a library passed in with the `args` keyword. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBfuncname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The function to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.has_function_attribute() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_function_attribute(name) - -since 0.48.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the compiler supports the GNU style (`__attribute__(...)`) `name`. -This is preferable to manual compile checks as it may be optimized for compilers that -do not support such attributes. -\fIThis table\fR[32] lists all of the supported attributes. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The attribute name to check. -.RE - -.RE -.RE -.P -.SS compiler.has_header() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_header( -.br -.RS 4 -header_name, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -required: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the specified header is \fBexists\fR -with the specified prefix, dependencies, and arguments. - -This method is faster than \fIcompiler.check_header\fR since it only does a -pre-processor check. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBheader_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The header to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: false, since 0.50.0 -.br -.RS 2 -When set to `true`, Meson will halt if the header check fails. -When set to a \fI`feature`\fR[0] option, the feature will control if it is searched and whether to fail if not found. -.RE - -.RE -.RE -.P -.SS compiler.has_header_symbol() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_header_symbol( -.br -.RS 4 -header, -.br -symbol, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -required: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Detects whether a particular symbol is declared in the specified header. - -Symbols here include function, variable, `#define`, type definition, etc. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBheader\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The header to check. -.RE - -\fBsymbol\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The symbol to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -\fBrequired\fR -\fIbool | feature\fR, default: false, since 0.50.0 -.br -.RS 2 -When set to `true`, Meson will halt if the header check fails. -When set to a \fI`feature`\fR[0] option, the feature will control if it is searched and whether to fail if not found. -.RE - -.RE -.RE -.P -.SS compiler.has_link_argument() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_link_argument(argument) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the linker accepts the specified command line argument, -that is, can -compile and link code without erroring out or printing a warning -about an unknown flag. Link arguments will be passed to the -compiler, so should usually have the `-Wl,` prefix. On VisualStudio -a `/link` argument will be prepended. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBargument\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The argument to check. -.RE - -.RE -.RE -.P -.SS compiler.has_member() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_member( -.br -.RS 4 -typename, -.br -membername, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the type has the specified member. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtypename\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The type to check. -.RE - -\fBmembername\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The member to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.has_members() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_members( -.br -.RS 4 -typename, -.br -member..., -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the type has \fBall\fR the specified members. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtypename\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The type to check. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBmember\fR -\fIstr\fR, 1...N times -.br -.RS 2 -The members to check -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.has_multi_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_multi_arguments(arg...) - -since 0.37.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -the same as \fIcompiler.has_argument\fR but takes multiple arguments -and uses them all in a single compiler invocation. -.RE - -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The arguments to check. -.RE - -.RE -.RE -.P -.SS compiler.has_multi_link_arguments() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_multi_link_arguments(arg...) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -the same as \fIcompiler.has_link_argument\fR but takes multiple arguments -and uses them all in a single compiler invocation. -.RE - -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The link arguments to check. -.RE - -.RE -.RE -.P -.SS compiler.has_type() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.has_type( -.br -.RS 4 -typename, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the specified token is a type. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtypename\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The type to check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.links() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.links( -.br -.RS 4 -code, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -name:, -.br -no_builtin_args: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the code compiles and links. - -\fBSince 0.60.0\fR, if the `file` object's -suffix does not match the compiler object's language, the compiler -corresponding to the suffix is used to compile the source, while the -target of the `links` method is used to link the resulting object file. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBcode\fR -\fIstr | file\fR, \fBrequired\fR -.br -.RS 2 -The source code to check. - -If a string is passed, the code is used directly. If a \fIfile\fR object -is passed, its content is used for the compiler check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBname\fR -\fIstr\fR -.br -.RS 2 -The name to use for printing a message about the compiler check. -If this keyword argument is not passed, no message will be printed about the check. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -.RE -.RE -.P -.SS compiler.preprocess() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[custom_idx]\fR compiler.preprocess( -.br -.RS 4 -source..., -.br -compile_args:, -.br -include_directories:, -.br -output:, -.br -.RE -) - -since 0.64.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Preprocess a list of source files but do not compile them. The preprocessor -will receive the same arguments (include directories, defines, etc) as with -normal compilation. That includes for example args added with -`add_project_arguments()`, or on the command line with `-Dc_args=-DFOO`. -.RE - -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 0...N times -.br -.RS 2 -Input source to compile. The following types are supported: - -- Strings relative to the current source directory -.br -- \fIfile\fR objects defined in any preceding build file -.br -- The return value of configure-time generators such as \fIconfigure_file\fR -.br -- The return value of build-time generators such as \fIcustom_target\fR or \fIgenerator.process\fR - -These input files can be sources, objects, libraries, or any other -file. Meson will automatically categorize them based on the extension -and use them accordingly. For instance, sources (`.c`, `.cpp`, -`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and -libraries (`.so`, `.dll`, etc) will be linked. - -With the Ninja backend, Meson will create a build-time \fIorder-only -dependency\fR[3] on -all generated input files, including unknown files. This is needed to -bootstrap the generation of the real dependencies in the -\fIdepfile\fR[4] generated -by your compiler to determine when to rebuild sources. Ninja relies on -this dependency file for all input files, generated and non-generated. -The behavior is similar for other backends. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBcompile_args\fR -\fIlist[str]\fR -.br -.RS 2 -Extra flags to pass to the preprocessor -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBoutput\fR -\fIstr\fR -.br -.RS 2 -Template for name of preprocessed files: `@PLAINNAME@` is replaced by -the source filename and `@BASENAME@` is replaced by the source filename -without its extension. -.RE - -.RE -.RE -.P -.SS compiler.run() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIrunresult\fR compiler.run( -.br -.RS 4 -code, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -name:, -.br -no_builtin_args: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Attempts to compile and execute the given code fragment. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBcode\fR -\fIstr | file\fR, \fBrequired\fR -.br -.RS 2 -The source code to check. - -If a string is passed, the code is used directly. If a \fIfile\fR object -is passed, its content is used for the compiler check. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBname\fR -\fIstr\fR -.br -.RS 2 -The name to use for printing a message about the compiler check. -If this keyword argument is not passed, no message will be printed about the check. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -.RE -.RE -.P -.SS compiler.sizeof() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR compiler.sizeof( -.br -.RS 4 -typename, -.br -args:, -.br -dependencies:, -.br -include_directories:, -.br -no_builtin_args: \fBfalse\fR, -.br -prefix:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -returns the size of the given type (e.g. `'int'`) or -1 if the type is unknown. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBtypename\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The type to compute. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBargs\fR -\fIlist[str]\fR -.br -.RS 2 -Used to pass a list of compiler arguments. -Defining include paths for headers not in the default include path -via `-Isome/path/to/header` is generally supported, however, usually not -recommended. - -This is because include directories can also be specified via the -`include_directories` or the `dependency` kwarg (if present). -The same is also true for passing libraries to link with `-lfoo`. -.RE - -\fBdependencies\fR -\fIdep | list[dep]\fR -.br -.RS 2 -Additionally dependencies required for compiling and / or linking. -.RE - -\fBinclude_directories\fR -\fIinc | list[inc]\fR, since 0.38.0 -.br -.RS 2 -Extra directories for header searches. -.RE - -\fBno_builtin_args\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true`, the compiler arguments controlled by built-in configuration options are not added. -.RE - -\fBprefix\fR -\fIstr | list[str]\fR -.br -.RS 2 -Used to add `#include`s and other things that are required -for the symbol to be declared. Since 1.0.0 an array is accepted -too. When an array is passed, the items are concatenated together -separated by a newline. -System definitions should be passed via compiler args -(eg: `_GNU_SOURCE` is often required for some symbols to be exposed -on Linux, and it should be passed via `args` keyword argument). -.RE - -.RE -.RE -.P -.SS compiler.symbols_have_underscore_prefix() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR compiler.symbols_have_underscore_prefix() - -since 0.37.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the C symbol mangling is one underscore (`_`) prefixed to the symbol. -.RE - -.RE -.P -.SS compiler.version() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR compiler.version() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the compiler's version number as a string. -.RE - -.RE -.P -.SS custom_idx.full_path() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR custom_idx.full_path() - -since 0.54.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a full path pointing to the result target file -NOTE: In most cases using the object itself will do the same job as -this and will also allow Meson to setup inter-target dependencies -correctly. Please file a bug if that doesn't work for you. - -See \fIcustom_tgt.full_path\fR -.RE - -.RE -.P -.SS custom_tgt.[index]() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIcustom_idx\fR custom_tgt.[index]() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an opaque object that references this target, and -can be used as a source in other targets. When it is used as such it -will make that target depend on this custom target, but the only -source added will be the one that corresponds to the index of the -custom target's output argument. -.RE - -.RE -.P -.SS custom_tgt.full_path() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR custom_tgt.full_path() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a full path pointing to the result target file -NOTE: In most cases using the object itself will do the same job as -this and will also allow Meson to setup inter-target dependencies -correctly. Please file a bug if that doesn't work for you. -\fB(since 0.54.0)\fR It can be also called on indexes objects: -`custom_targets[i].full_path()`. -.RE - -.RE -.P -.SS custom_tgt.to_list() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[custom_idx]\fR custom_tgt.to_list() - -since 0.54.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a list of opaque objects that references this target, -and can be used as a source in other targets. This can be used to -iterate outputs with `foreach` loop. -.RE - -.RE -.P -.SS dep.as_link_whole() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdep\fR dep.as_link_whole() - -since 0.56.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Only dependencies created with \fIdeclare_dependency\fR, -returns a copy of the dependency object with all -link_with arguments changed to link_whole. This is useful for example for -fallback dependency from a subproject built with `default_library=static`. -Note that all `link_with` objects must be static libraries otherwise an error -will be raised when trying to `link_whole` a shared library. -.RE - -.RE -.P -.SS dep.as_system() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdep\fR dep.as_system([value]) - -since 0.52.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a copy of the dependency object, which has changed the value of `include_type` -to `value`. The `value` argument is optional and -defaults to `'preserve'`. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBvalue\fR -\fIstr\fR -.br -.RS 2 -The new value. See \fIdependency\fR for supported values. -.RE - -.RE -.RE -.P -.SS dep.found() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR dep.found() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the dependency was found. -.RE - -.RE -.P -.SS dep.get_configtool_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.get_configtool_variable(var_name) - -\fBdeprecated\fR since 0.56.0, since 0.44.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Gets the command line argument from the config tool (with `--` prepended), or, -if invoked on a non config-tool dependency, error out. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvar_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the variable to query -.RE - -.RE -.RE -.P -.SS dep.get_pkgconfig_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.get_pkgconfig_variable( -.br -.RS 4 -var_name, -.br -default:, -.br -define_variable:, -.br -.RE -) - -\fBdeprecated\fR since 0.56.0, since 0.36.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Gets the pkg-config variable specified, -or, if invoked on a non pkg-config -dependency, error out. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvar_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the variable to query -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBdefault\fR -\fIstr\fR, since 0.45.0 -.br -.RS 2 -The value to return if the variable was not found. -A warning is issued if the variable is not defined and this kwarg is not set. -.RE - -\fBdefine_variable\fR -\fIlist[str]\fR, since 0.44.0 -.br -.RS 2 -You can also redefine a -variable by passing a list to this kwarg -that can affect the retrieved variable: `['prefix', '/'])`. -.RE - -.RE -.RE -.P -.SS dep.get_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.get_variable( -.br -.RS 4 -[varname], -.br -cmake:, -.br -configtool:, -.br -default_value:, -.br -internal:, -.br -pkgconfig:, -.br -pkgconfig_define:, -.br -.RE -) - -since 0.51.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -A generic variable getter method, which replaces the -`get_\fBtype\fR_variable` methods. This allows one to get the variable -from a dependency without knowing specifically how that dependency -was found. If `default_value` is set and the value cannot be gotten -from the object then `default_value` is returned, if it is not set -then an error is raised. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBvarname\fR -\fIstr\fR, since 0.58.0 -.br -.RS 2 -This argument is used as a default value -for `cmake`, `pkgconfig`, `configtool` and `internal` keyword -arguments. It is useful in the common case where `pkgconfig` and `internal` -use the same variable name, in which case it's easier to write `dep.get_variable('foo')` -instead of `dep.get_variable(pkgconfig: 'foo', internal: 'foo')`. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBcmake\fR -\fIstr\fR -.br -.RS 2 -The CMake variable name -.RE - -\fBconfigtool\fR -\fIstr\fR -.br -.RS 2 -The configtool variable name -.RE - -\fBdefault_value\fR -\fIstr\fR -.br -.RS 2 -The default value to return when the variable does not exist -.RE - -\fBinternal\fR -\fIstr\fR, since 0.54.0 -.br -.RS 2 -The internal variable name -.RE - -\fBpkgconfig\fR -\fIstr\fR -.br -.RS 2 -The pkgconfig variable name -.RE - -\fBpkgconfig_define\fR -\fIlist[str]\fR -.br -.RS 2 -See \fIdep.get_pkgconfig_variable\fR -.RE - -.RE -.RE -.P -.SS dep.include_type() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.include_type() - -since 0.52.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the value set by the `include_type` kwarg. -.RE - -.RE -.P -.SS dep.name() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.name() - -since 0.48.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the name of the dependency that was searched. -Returns `'internal'` for dependencies created with -\fIdeclare_dependency\fR. -.RE - -.RE -.P -.SS dep.partial_dependency() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIdep\fR dep.partial_dependency( -.br -.RS 4 -compile_args: \fBfalse\fR, -.br -includes: \fBfalse\fR, -.br -link_args: \fBfalse\fR, -.br -links: \fBfalse\fR, -.br -sources: \fBfalse\fR, -.br -.RE -) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a new dependency object with the same name, version, found status, -type name, and methods as the object that called it. This new -object will only inherit other attributes from its parent as -controlled by keyword arguments. - -If the parent has any dependencies, those will be applied to the new -partial dependency with the same rules. So, given: -.RS 4 -dep1 = declare_dependency(compile_args : '-Werror=foo', link_with : 'libfoo') -.br -dep2 = declare_dependency(compile_args : '-Werror=bar', dependencies : dep1) -.br -dep3 = dep2.partial_dependency(compile_args : true) -.br -.RE -dep3 will add `['-Werror=foo', '-Werror=bar']` to the compiler args -of any target it is added to, but libfoo will not be added to the -link_args. - -The following arguments will add the following attributes: - -- compile_args: any arguments passed to the compiler -.br -- link_args: any arguments passed to the linker -.br -- links: anything passed via link_with or link_whole -.br -- includes: any include_directories -.br -- sources: any compiled or static sources the dependency has -.RE - -\fBKWARGS\fR -.RS 4 -\fBcompile_args\fR -\fIbool\fR, default: false -.br -.RS 2 -Whether to include compile_args -.RE - -\fBincludes\fR -\fIbool\fR, default: false -.br -.RS 2 -Whether to include includes -.RE - -\fBlink_args\fR -\fIbool\fR, default: false -.br -.RS 2 -Whether to include link_args -.RE - -\fBlinks\fR -\fIbool\fR, default: false -.br -.RS 2 -Whether to include links -.RE - -\fBsources\fR -\fIbool\fR, default: false -.br -.RS 2 -Whether to include sources -.RE - -.RE -\fBWARNINGS\fR -.RS 4 -A bug present until 0.50.1 results in the above behavior not working correctly. -.RE -.RE -.P -.SS dep.type_name() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.type_name() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string describing the type of the -dependency, the most common values are `internal` for deps created -with \fIdeclare_dependency\fR and `pkgconfig` for system dependencies -obtained with Pkg-config. -.RE - -.RE -.P -.SS dep.version() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR dep.version() -.RE - -\fBDESCRIPTION\fR -.RS 4 -the version number as a string, -for example `1.2.8`. -`unknown` if the dependency provider doesn't support determining the -version. -.RE - -.RE -.P -.SS dict.get() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIany\fR dict.get(key, [fallback]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -returns the value for the key given as first -argument if it is present in the dictionary, or the optional -fallback value given as the second argument. If a single argument -was given and the key was not found, causes a fatal error -.RE - -\fBPOSARGS\fR -.RS 4 -\fBkey\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The key to query. -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBfallback\fR -\fIany\fR -.br -.RS 2 -Fallback value that is returned if the key is not in the \fIdict\fR. -.RE - -.RE -.RE -.P -.SS dict.has_key() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR dict.has_key(key) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the dictionary contains the key given as argument, `false` otherwise. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBkey\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The key to query. -.RE - -.RE -.RE -.P -.SS dict.keys() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR dict.keys() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns an array of keys in the dictionary. -.RE - -.RE -.P -.SS disabler.found() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR disabler.found() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Always returns `false` -.RE - -.RE -.P -.SS env.append() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR env.append(variable, Value..., separator:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -appends the given values to -the old value of the environment variable, e.g. `env.append('FOO', -\'BAR', 'BAZ', separator : ';')` produces `BOB;BAR;BAZ` if `FOO` had -the value `BOB` and plain `BAR;BAZ` if the value was not defined. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvariable\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The variable to modify -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBValue\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The values to append -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBseparator\fR -\fIstr\fR -.br -.RS 2 -The separator to use. If not explicitly specified, the default path -separator for the host operating system will be used, i.e. ';' for -Windows and ':' for UNIX/POSIX systems. -.RE - -.RE -.RE -.P -.SS env.prepend() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR env.prepend(variable, Value..., separator:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Same as `append` except that it writes to the beginning of the variable. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvariable\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The variable to modify -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBValue\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The values to prepend -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBseparator\fR -\fIstr\fR -.br -.RS 2 -The separator to use. If not explicitly specified, the default path -separator for the host operating system will be used, i.e. ';' for -Windows and ':' for UNIX/POSIX systems. -.RE - -.RE -.RE -.P -.SS env.set() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR env.set(variable, Value..., separator:) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Sets the environment variable -specified in the first argument to the values in the varargs -joined by the separator. For instance, `env.set('FOO', 'BAR'),` sets envvar -`FOO` to value `BAR`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvariable\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The variable to modify -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBValue\fR -\fIstr\fR, 0...N times -.br -.RS 2 -The values to set -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBseparator\fR -\fIstr\fR -.br -.RS 2 -The separator to use. If not explicitly specified, the default path -separator for the host operating system will be used, i.e. ';' for -Windows and ':' for UNIX/POSIX systems. -.RE - -.RE -.RE -.P -.SS external_program.found() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR external_program.found() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the executable was found. -.RE - -.RE -.P -.SS external_program.full_path() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR external_program.full_path() - -since 0.55.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string pointing to the script or executable. - -\fB\fRNOTE:\fB\fR You should not usually need to use this method. Passing the -object itself should work in most contexts where a program can appear, -and allows Meson to setup inter-target dependencies correctly (for -example in cases where a program might be overridden by a \fIbuild_tgt\fR). -Only use this if you specifically need a string, such as when embedding -a program path into a header file. - -For example: -.RS 4 -run_command(find_program('foo'), 'arg1', 'arg2') -.br -.RE - -.RE - -.RE -.P -.SS external_program.path() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR external_program.path() - -\fBdeprecated\fR since 0.55.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -\fBDeprecated:\fR Use \fIexternal_program.full_path\fR instead. - -Returns a string pointing to the script or executable. - -\fB\fRNOTE:\fB\fR You should not usually need to use this method. Passing the -object itself should work in most contexts where a program can appear, -and allows Meson to setup inter-target dependencies correctly (for -example in cases where a program might be overridden by a \fIbuild_tgt\fR). -Only use this if you specifically need a string, such as when embedding -a program path into a header file. - -For example: -.RS 4 -run_command(find_program('foo'), 'arg1', 'arg2') -.br -.RE - -.RE - -.RE -.P -.SS external_program.version() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR external_program.version() - -since 0.62.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -The version number as a string, for example `1.2.8`. - -`unknown` if the program cannot determine the version via a `--version` argument. -.RE - -.RE -.P -.SS feature.allowed() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR feature.allowed() - -since 0.59.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the feature was set to `'enabled'` or `'auto'` -.RE - -.RE -.P -.SS feature.auto() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR feature.auto() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the feature was set to `'auto'` -.RE - -.RE -.P -.SS feature.disable_auto_if() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIfeature\fR feature.disable_auto_if(value) - -since 0.59.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the feature, with `'auto'` converted to `'disabled'` if value is true. - -| Feature / Condition | `value = true` | `value = false` | -| ------------------- | -------------- | --------------- | -| Enabled | Enabled | Enabled | -| Disabled | Disabled | Disabled | -| Auto | Disabled | Auto | -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvalue\fR -\fIbool\fR, \fBrequired\fR -.br -.RS 2 -See the table above -.RE - -.RE -.RE -.P -.SS feature.disabled() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR feature.disabled() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the feature was set to `'disabled'` -.RE - -.RE -.P -.SS feature.enabled() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR feature.enabled() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the feature was set to `'enabled'` -.RE - -.RE -.P -.SS feature.require() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIfeature\fR feature.require(value, error_message: \fB''\fR) - -since 0.59.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the object itself if the value is true; an error if the object is -`'enabled'` and the value is false; a disabled feature if the object -is `'auto'` or `'disabled'` and the value is false. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvalue\fR -\fIbool\fR, \fBrequired\fR -.br -.RS 2 -The value to check -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBerror_message\fR -\fIstr\fR, default: '' -.br -.RS 2 -The error Message to print if the check fails -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 -`require` is useful to restrict the applicability of `'auto'` features, -for example based on other features or on properties of the host machine: -.RS 4 -if get_option('directx').require(host_machine.system() == 'windows', -.br - error_message: 'DirectX only available on Windows').allowed() then -.br - src += ['directx.c'] -.br - config.set10('HAVE_DIRECTX', true) -.br -endif -.br -.RE - -.RE -.RE -.P -.SS generator.process() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIgenerated_list\fR generator.process( -.br -.RS 4 -source..., -.br -extra_args:, -.br -preserve_path_from:, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Takes a list of files, causes them to be processed and returns an object containing the result -which can then, for example, be passed into a build target definition. -.RE - -\fBVARARGS\fR -.RS 4 -\fBsource\fR -\fIstr | file | custom_tgt | custom_idx | generated_list\fR, 1...N times -.br -.RS 2 -List of sources to process. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBextra_args\fR -\fIlist[str]\fR -.br -.RS 2 -If present, will be used to replace an entry `@EXTRA_ARGS@` in the argument list. -.RE - -\fBpreserve_path_from\fR -\fIstr\fR, since 0.45.0 -.br -.RS 2 -If given, specifies that the output files need to maintain their directory structure -inside the target temporary directory. The most common value for this is -`meson.current_source_dir()`. With this value when a file called -`subdir/one.input` is processed it generates a file `{target private -directory}/subdir/one.out` as opposed to `{target private -directory}/one.out`. -.RE - -.RE -.RE -.P -.SS int.is_even() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR int.is_even() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the number is even. -.RE - -.RE -.P -.SS int.is_odd() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR int.is_odd() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the number is odd -.RE - -.RE -.P -.SS int.to_string() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR int.to_string() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the value of the number as a string. -.RE - -.RE -.P -.SS list.contains() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR list.contains(item) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the array contains the object -given as argument, `false` otherwise -.RE - -\fBPOSARGS\fR -.RS 4 -\fBitem\fR -\fIany\fR, \fBrequired\fR -.br -.RS 2 -The item to check -.RE - -.RE -.RE -.P -.SS list.get() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIany\fR list.get(index, [fallback]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -returns the object at the given index, -negative indices count from the back of the array, indexing out of -bounds returns the `fallback` value \fB(since 0.38.0)\fR or, if it is -not specified, causes a fatal error -.RE - -\fBPOSARGS\fR -.RS 4 -\fBindex\fR -\fIint\fR, \fBrequired\fR -.br -.RS 2 -Index of the list position to query. Negative values start at the end of the list -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBfallback\fR -\fIany\fR -.br -.RS 2 -Fallback value that is returned if the index is out of range. -.RE - -.RE -.RE -.P -.SS list.length() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR list.length() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the current size of the array / list. -.RE - -.RE -.P -.SS meson.add_devenv() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.add_devenv(env, method:, separator:) - -since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -add an \fIenv\fR object (returned by \fIenvironment\fR) -to the list of environments that will be applied when using \fI`meson devenv`\fR[33] -command line. - -This is useful for developers who wish to use the project without -installing it, it is often needed to set for example the path to plugins -directory, etc. Alternatively, a list or dictionary can be passed as first -argument. -.RS 4 -devenv = environment() -.br -devenv.set('PLUGINS_PATH', meson.current_build_dir()) -.br -\... -.br -meson.add_devenv(devenv) -.br -.RE -After configuring and compiling that project, a terminal can be opened with -the environment set: -.RS 4 -sh -.br -$ meson devenv -C -.br -$ echo $PLUGINS_PATH -.br -/path/to/source/subdir -.br -.RE -See \fI`meson devenv`\fR[32] command documentation for a list of -environment variables that are set by default by Meson. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBenv\fR -\fIenv | str | list[str] | dict[str] | dict[list[str]]\fR, \fBrequired\fR -.br -.RS 2 -The \fIenv\fR object to add. -Since \fB0.62.0\fR list of strings is allowed in dictionary values. In that -case values are joined using the separator. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBmethod\fR -\fIstr\fR, since 0.62.0 -.br -.RS 2 -Must be one of 'set', 'prepend', or 'append' -(defaults to 'set'). Controls if initial values defined in the first -positional argument are prepended, appended or replace the current value -of the environment variable. -.RE - -\fBseparator\fR -\fIstr\fR, since 0.62.0 -.br -.RS 2 -The separator to use for the initial values defined in -the first positional argument. If not explicitly specified, the default -path separator for the host operating system will be used, i.e. ';' for -Windows and ':' for UNIX/POSIX systems. -.RE - -.RE -.RE -.P -.SS meson.add_dist_script() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.add_dist_script(script_name, arg...) - -since 0.48.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Causes the script given as argument to run during `dist` -operation after the -distribution source has been generated but before it is -archived. Note that this runs the script file that is in the -_staging_ directory, not the one in the source directory. If the -script file can not be found in the staging directory, it is a hard -error. The `MESON_DIST_ROOT` environment variables is set when dist scripts is -run. - -\fB(since 0.54.0)\fR The `MESON_SOURCE_ROOT` and `MESON_BUILD_ROOT` -environment variables are set when dist scripts are run. They are path to the -root source and build directory of the main project, even when the script -comes from a subproject. - -\fB(since 0.58.0)\fR This command can be invoked from a subproject, it was a hard -error in earlier versions. Subproject dist scripts will only be executed -when running `meson dist --include-subprojects`. `MESON_PROJECT_SOURCE_ROOT`, -`MESON_PROJECT_BUILD_ROOT` and `MESON_PROJECT_DIST_ROOT` environment -variables are set when dist scripts are run. They are identical to -`MESON_SOURCE_ROOT`, `MESON_BUILD_ROOT` and `MESON_DIST_ROOT` for main project -scripts, but for subproject scripts they have the path to the root of the -subproject appended, usually `subprojects/`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBscript_name\fR -\fIstr | file | external_program\fR, \fBrequired\fR -.br -.RS 2 -The script to execute. - -\fB(since 0.55.0)\fR The output of \fIfind_program\fR as well as strings are accepted. - -\fB(since 0.57.0)\fR \fIfile\fR objects and the output of \fIconfigure_file\fR may be used. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr | file | external_program\fR, 0...N times, since 0.49.0 -.br -.RS 2 -Additional arguments - -\fB(since 0.55.0)\fR The output of \fIconfigure_file\fR, \fIfiles\fR, and \fIfind_program\fR -as well as strings are accepted. -.RE - -.RE -.RE -.P -.SS meson.add_install_script() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.add_install_script( -.br -.RS 4 -script_name, -.br -arg..., -.br -install_tag:, -.br -skip_if_destdir: \fBfalse\fR, -.br -.RE -) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Causes the script given as an argument to be run during the install step, -this script will have the environment variables `MESON_SOURCE_ROOT`, -`MESON_BUILD_ROOT`, `MESON_INSTALL_PREFIX`, -`MESON_INSTALL_DESTDIR_PREFIX`, and `MESONINTROSPECT` set. -All positional arguments are passed as parameters. - -\fB(since 0.54.0)\fR If `meson install` is called with the `--quiet` option, the -environment variable `MESON_INSTALL_QUIET` will be set. - -Meson uses the `DESTDIR` environment variable as set by the -inherited environment to determine the (temporary) installation -location for files. Your install script must be aware of this while -manipulating and installing files. The correct way to handle this is -with the `MESON_INSTALL_DESTDIR_PREFIX` variable which is always set -and contains `DESTDIR` (if set) and `prefix` joined together. This -is useful because both are usually absolute paths and there are -platform-specific edge-cases in joining two absolute paths. - -In case it is needed, `MESON_INSTALL_PREFIX` is also always set and -has the value of the `prefix` option passed to Meson. - -`MESONINTROSPECT` contains the path to the introspect command that -corresponds to the `meson` executable that was used to configure the -build. (This might be a different path than the first executable -found in `PATH`.) It can be used to query build configuration. Note -that the value will contain many parts, f.ex., it may be `python3 -/path/to/meson.py introspect`. The user is responsible for splitting -the string to an array if needed by splitting lexically like a UNIX -shell would. If your script uses Python, `shlex.split()` is the -easiest correct way to do this. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBscript_name\fR -\fIstr | file | external_program | exe | custom_tgt | custom_idx\fR, \fBrequired\fR -.br -.RS 2 -The script to execute. - -\fB(since 0.55.0)\fR The output of \fIfind_program\fR, \fIexecutable\fR, -\fIcustom_target\fR, as well as strings are accepted. - -\fB(since 0.57.0)\fR \fIfile\fR objects and the output of \fIconfigure_file\fR may be used. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr | file | external_program | exe | custom_tgt | custom_idx\fR, 0...N times, since 0.49.0 -.br -.RS 2 -Additional arguments - -\fB(since 0.55.0)\fR The output of \fIfind_program\fR, \fIexecutable\fR, -\fIcustom_target\fR, as well as strings are accepted. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBinstall_tag\fR -\fIstr\fR, since 0.60.0 -.br -.RS 2 -A string used by the `meson install --tags` command -to install only a subset of the files. -By default the script has no install tag which means it is not being run when -`meson install --tags` argument is specified. -.RE - -\fBskip_if_destdir\fR -\fIbool\fR, default: false, since 0.57.0 -.br -.RS 2 -If `true` the script will not be run if DESTDIR is set during installation. -This is useful in the case the script updates system wide -cache that is only needed when copying files into final destination. -.RE - -.RE -.RE -.P -.SS meson.add_postconf_script() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.add_postconf_script(script_name, arg...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Runs the given command after all project files have been generated. -This script will have the environment variables -`MESON_SOURCE_ROOT` and `MESON_BUILD_ROOT` set. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBscript_name\fR -\fIstr | file | external_program\fR, \fBrequired\fR -.br -.RS 2 -The script to execute. - -\fB(since 0.55.0)\fR The output of \fIfind_program\fR as well as strings are accepted. - -\fB(since 0.57.0)\fR \fIfile\fR objects and the output of \fIconfigure_file\fR may be used. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBarg\fR -\fIstr | file | external_program\fR, 0...N times, since 0.49.0 -.br -.RS 2 -Additional arguments - -\fB(since 0.55.0)\fR The output of \fIconfigure_file\fR, \fIfiles\fR, and \fIfind_program\fR -as well as strings are accepted. -.RE - -.RE -.RE -.P -.SS meson.backend() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.backend() - -since 0.37.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string representing the current backend: - -- `ninja` -.br -- `vs2010` -.br -- `vs2012` -.br -- `vs2013` -.br -- `vs2015` -.br -- `vs2017` -.br -- `vs2019` -.br -- `vs2022` -.br -- `xcode` -.RE - -.RE -.P -.SS meson.build_root() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.build_root() - -\fBdeprecated\fR since 0.56.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the build root directory. -This function will return the -build root of the parent project if called from a subproject, which is usually -not what you want. Try using \fImeson.current_build_dir\fR or \fImeson.project_build_root\fR. -In the rare cases where the root of the main project is needed, -use \fImeson.global_build_root\fR that has the same behaviour but with a more explicit -name. -.RE - -.RE -.P -.SS meson.can_run_host_binaries() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR meson.can_run_host_binaries() - -since 0.55.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if the build machine can run binaries compiled for the host. -This returns `true` unless you are -cross compiling, need a helper to run host binaries, and don't have one. -For example when cross compiling from Linux to Windows, one can use `wine` -as the helper. -.RE - -.RE -.P -.SS meson.current_build_dir() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.current_build_dir() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the current build directory. -.RE - -.RE -.P -.SS meson.current_source_dir() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.current_source_dir() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string to the current source directory. -.RE - -\fBNOTES\fR -.RS 4 -\fB\fRYou do not need to use this function!\fB\fR - -When passing files from the current source directory to a function since -that is the default. Also, you can use the \fIfiles\fR function to -refer to files in the current or any other source directory instead -of constructing paths manually with \fImeson.current_source_dir\fR. -.RE -.RE -.P -.SS meson.get_compiler() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIcompiler\fR meson.get_compiler(language, native: \fBfalse\fR) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a \fIcompiler\fR object describing a compiler. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBlanguage\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The language of the compiler to return. - -See our \fIlist of supported languages\fR[34]. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -When set to `true` Meson returns the compiler for the build -machine (the "native" compiler) and when `false` it returns the host -compiler (the "cross" compiler). If `native` is omitted, Meson -returns the "cross" compiler if we're currently cross-compiling and -the "native" compiler if we're not. -.RE - -.RE -.RE -.P -.SS meson.get_cross_property() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIany\fR meson.get_cross_property(propname, [fallback_value]) - -\fBdeprecated\fR since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the given property from a cross file, the optional fallback_value -is returned if not cross compiling or the given property is not found. - -This method is replaced by \fImeson.get_external_property\fR. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBpropname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the property in the cross / native file. -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBfallback_value\fR -\fIany\fR -.br -.RS 2 -Value to return if `propname` is not set in the machine file. -.RE - -.RE -.RE -.P -.SS meson.get_external_property() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIany\fR meson.get_external_property( -.br -.RS 4 -propname, -.br -[fallback_value], -.br -native:, -.br -.RE -) - -since 0.54.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the given property from a native or cross file. -The optional fallback_value is returned if the given property is not found. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBpropname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the property in the cross / native file. -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBfallback_value\fR -\fIany\fR -.br -.RS 2 -Value to return if `propname` is not set in the machine file. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBnative\fR -\fIbool\fR -.br -.RS 2 -Setting `native` to `true` forces retrieving a variable from the -native file, even when cross-compiling. -If `native: false` or not specified, the variable is retrieved from the -cross-file if cross-compiling, and from the native-file when not cross-compiling. -.RE - -.RE -.RE -.P -.SS meson.global_build_root() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.global_build_root() - -since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the build root directory. -This function will return the build root of the -main project if called from a subproject, which is usually not what you want. -It is usually preferable to use \fImeson.current_build_dir\fR or \fImeson.project_build_root\fR. -.RE - -.RE -.P -.SS meson.global_source_root() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.global_source_root() - -since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the source root directory -This function will return the source root of the -main project if called from a subproject, which is usually not what you want. -It is usually preferable to use \fImeson.current_source_dir\fR or \fImeson.project_source_root\fR. -.RE - -.RE -.P -.SS meson.has_exe_wrapper() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR meson.has_exe_wrapper() - -\fBdeprecated\fR since 0.55.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Use \fImeson.can_run_host_binaries\fR instead. -.RE - -.RE -.P -.SS meson.has_external_property() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR meson.has_external_property(propname, native:) - -since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Checks whether the given property exist in a native or cross file. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBpropname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the property in the cross / native file. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBnative\fR -\fIbool\fR -.br -.RS 2 -Setting `native` to `true` forces retrieving a variable from the -native file, even when cross-compiling. -If `native: false` or not specified, the variable is retrieved from the -cross-file if cross-compiling, and from the native-file when not cross-compiling. -.RE - -.RE -.RE -.P -.SS meson.install_dependency_manifest() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.install_dependency_manifest(output_name) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Installs a manifest file -containing a list of all subprojects, their versions and license -files to the file name given as the argument. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBoutput_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -Name of the manifest file to install -.RE - -.RE -.RE -.P -.SS meson.is_cross_build() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR meson.is_cross_build() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the current build is a \fIcross build\fR[35] and `false` otherwise. -.RE - -.RE -.P -.SS meson.is_subproject() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR meson.is_subproject() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the current project is being built as a subproject of some other project and `false` otherwise. -.RE - -.RE -.P -.SS meson.is_unity() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR meson.is_unity() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` when doing a \fIunity build\fR[36] (multiple sources are combined before compilation to reduce build time) and `false` otherwise. -.RE - -.RE -.P -.SS meson.override_dependency() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.override_dependency( -.br -.RS 4 -name, -.br -dep_object, -.br -native: \fBfalse\fR, -.br -static:, -.br -.RE -) - -since 0.54.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Specifies that whenever \fIdependency\fR with `name` is used, Meson should not -look it up on the system but instead return `dep_object`, which may either be -the result of \fIdependency\fR or \fIdeclare_dependency\fR. - -Doing this in a subproject allows the parent -project to retrieve the dependency without having to know the dependency -variable name: `dependency(name, fallback : subproject_name)`. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the dependency to override. -.RE - -\fBdep_object\fR -\fIdep\fR, \fBrequired\fR -.br -.RS 2 -The dependency to set as the override for `name`. -.RE - -.RE -\fBKWARGS\fR -.RS 4 -\fBnative\fR -\fIbool\fR, default: false -.br -.RS 2 -If set to `true`, the dependency is always overwritten for the build machine. -Otherwise, the dependency is overwritten for the host machine, which -differs from the build machine when cross-compiling. -.RE - -\fBstatic\fR -\fIbool\fR, since 0.60.0 -.br -.RS 2 -Used to override static and/or shared dependencies separately. -If not specified it is assumed -`dep_object` follows `default_library` option value. -.RE - -.RE -.RE -.P -.SS meson.override_find_program() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIvoid\fR meson.override_find_program(progname, program) - -since 0.46.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -specifies that whenever \fIfind_program\fR is used to find a program -named `progname`, Meson should not look it up on the system but -instead return `program`, which may either be the result of -\fIfind_program\fR, \fIconfigure_file\fR or \fIexecutable\fR. - -\fB(since 0.55.0)\fR If a version -check is passed to \fIfind_program\fR for a program that has been overridden with -an executable, the current project version is used. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBprogname\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the program to override. -.RE - -\fBprogram\fR -\fIexe | file | external_program\fR, \fBrequired\fR -.br -.RS 2 -The program to set as the override for `progname`. -.RE - -.RE -.RE -.P -.SS meson.project_build_root() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.project_build_root() - -since 0.56.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the build root directory of the current (sub)project. -.RE - -.RE -.P -.SS meson.project_license() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR meson.project_license() - -since 0.45.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the array of licenses specified in \fIproject\fR function call. -.RE - -.RE -.P -.SS meson.project_name() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.project_name() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the project name specified in the \fIproject\fR function call. -.RE - -.RE -.P -.SS meson.project_source_root() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.project_source_root() - -since 0.56.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the source root directory of the current (sub)project. -.RE - -.RE -.P -.SS meson.project_version() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.project_version() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns the version string specified in \fIproject\fR function call. -.RE - -.RE -.P -.SS meson.source_root() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.source_root() - -\fBdeprecated\fR since 0.56.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a string with the absolute path to the source root directory. - -This function will return the source root of the -parent project if called from a subproject, which is usually not what you want. -Try using \fImeson.current_source_dir\fR or \fImeson.project_source_root\fR. -In the rare cases where the root of the main project is needed, -use \fImeson.global_source_root\fR that has the same behaviour but with a more explicit -name. -.RE - -\fBNOTES\fR -.RS 4 -You should use the \fIfiles\fR function -to refer to files in the root source directory instead of -constructing paths manually with \fImeson.source_root\fR. -.RE -.RE -.P -.SS meson.version() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR meson.version() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Return a string with the version of Meson. -.RE - -.RE -.P -.SS module.found() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR module.found() - -since 0.59.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if the module was successfully imported, otherwise `false`. -.RE - -.RE -.P -.SS runresult.compiled() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR runresult.compiled() -.RE - -\fBDESCRIPTION\fR -.RS 4 -If `true`, the compilation succeeded, if `false` it did not -and the other methods return unspecified data. This is only available -for `compiler.run()` results. -.RE - -.RE -.P -.SS runresult.returncode() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR runresult.returncode() -.RE - -\fBDESCRIPTION\fR -.RS 4 -The return code of executing the compiled binary -.RE - -.RE -.P -.SS runresult.stderr() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR runresult.stderr() -.RE - -\fBDESCRIPTION\fR -.RS 4 -The standard error produced when the command was run. -.RE - -.RE -.P -.SS runresult.stdout() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR runresult.stdout() -.RE - -\fBDESCRIPTION\fR -.RS 4 -The standard out produced when the command was run. -.RE - -.RE -.P -.SS str.contains() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR str.contains(fragment) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns `true` if string contains the string specified as the argument. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBfragment\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The string fragment to check -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -target = 'x86_FreeBSD' -.br -is_fbsd = target.to_lower().contains('freebsd') -.br -# is_fbsd now has the boolean value 'true' -.br -.RE - -.RE -.RE -.P -.SS str.endswith() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR str.endswith(fragment) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if string ends with the string specified as the argument. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBfragment\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The string fragment to check -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -target = 'x86_FreeBSD' -.br -is_bsd = target.to_lower().endswith('bsd') # boolean value 'true' -.br -.RE - -.RE -.RE -.P -.SS str.format() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.format(fmt, value...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Strings can be built using the string formatting functionality. - -See \fIthe Meson syntax entry\fR[37] for more -information. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBfmt\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The string to format. - -The formatting works by replacing placeholders of type `@number@` with -the corresponding varargs. -.RE - -.RE -\fBVARARGS\fR -.RS 4 -\fBvalue\fR -\fIint | bool | str\fR, 0...N times -.br -.RS 2 -The values to replace the @number@ placeholders in the format string. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -template = 'string: @0@, number: @1@, bool: @2@' -.br -res = template.format('text', 1, true) -.br -# res now has value 'string: text, number: 1, bool: true' -.br -.RE - -.RE -.RE -.P -.SS str.join() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.join(strings...) -.RE - -\fBDESCRIPTION\fR -.RS 4 -The opposite of split, -for example `'.'.join(['a', 'b', 'c']` yields `'a.b.c'`. -.RE - -\fBVARARGS\fR -.RS 4 -\fBstrings\fR -\fIstr\fR, 0...N times, since 0.60.0 -.br -.RS 2 -The strings to join with the current string. - -Before Meson \fB0.60.0\fR this function only accepts a single positional -argument of the type \fIlist[str\fR]. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -# Similar to the Python str.join() -.br -output = ' '.join(['foo', 'bar']) -.br -# Output value is 'foo bar' -.br -pathsep = ':' -.br -path = pathsep.join(['/usr/bin', '/bin', '/usr/local/bin']) -.br -# path now has the value '/usr/bin:/bin:/usr/local/bin' -.br -.RE - -.RE -.RE -.P -.SS str.replace() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.replace(old, new) - -since 0.58.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Search all occurrences of `old` and and replace it with `new` -.RE - -\fBPOSARGS\fR -.RS 4 -\fBold\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The substring to search -.RE - -\fBnew\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The replacement string -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -# Replaces all instances of one substring with another -.br -s = 'semicolons;as;separators' -.br -s = s.replace('as', 'are') -.br -# 's' now has the value of 'semicolons;are;separators' -.br -.RE - -.RE -.RE -.P -.SS str.split() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIlist[str]\fR str.split([split_string]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Splits the string at the specified character -(or whitespace if not set) and returns the parts in an -array. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBsplit_string\fR -\fIstr\fR -.br -.RS 2 -Specifies the character / substring where to split the string. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -# Similar to the Python str.split() -.br -components = 'a b c d '.split() -.br -# components now has the value ['a', 'b', 'c', 'd'] -.br -components = 'a b c d '.split(' ') -.br -# components now has the value ['a', 'b', '', '', 'c', 'd', ''] -.br -.RE - -.RE -.RE -.P -.SS str.startswith() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR str.startswith(fragment) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns true if string starts with the string specified as the argument. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBfragment\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The string fragment to check -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -target = 'x86_FreeBSD' -.br -is_x86 = target.startswith('x86') # boolean value 'true' -.br -.RE - -.RE -.RE -.P -.SS str.strip() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.strip([strip_chars]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Removes leading/ending spaces and newlines from the string. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBstrip_chars\fR -\fIstr\fR, since 0.43.0 -.br -.RS 2 -All characters in this string will be stripped. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -# Similar to the Python str.strip(). Removes leading/ending spaces and newlines -.br -define = ' -Dsomedefine ' -.br -stripped_define = define.strip() -.br -# 'stripped_define' now has the value '-Dsomedefine' -.br -.RE - -.RE -.RE -.P -.SS str.substring() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.substring([start], [end]) - -since 0.56.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns a substring specified from `start` to `end`. -Both `start` and `end` arguments are optional, so, for example, `'foobar'.substring()` will return `'foobar'`. - -The method accepts negative values where negative `start` is relative to the end of -string `len(string) - start` as well as negative `end`. -.RE - -\fBOPTARGS\fR -.RS 4 -\fBstart\fR -\fIint\fR -.br -.RS 2 -The start position -.RE - -\fBend\fR -\fIint\fR -.br -.RS 2 -The end position -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -# Similar to the Python str[start:end] syntax -.br -target = 'x86_FreeBSD' -.br -platform = target.substring(0, 3) # prefix string value 'x86' -.br -system = target.substring(4) # suffix string value 'FreeBSD' -.br -.RE -Example with negative values: -.RS 4 -string = 'foobar' -.br -string.substring(-5, -3) # => 'oo' -.br -string.substring(1, -1) # => 'ooba' -.br -.RE - -.RE -.RE -.P -.SS str.to_int() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIint\fR str.to_int() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Converts the string to an int and throws an error if it can't be -.RE - -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -version = '1' -.br -# Converts the string to an int and throws an error if it can't be -.br -ver_int = version.to_int() -.br -.RE - -.RE -.RE -.P -.SS str.to_lower() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.to_lower() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Converts all characters to lower case -.RE - -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -target = 'x86_FreeBSD' -.br -lower = target.to_lower() # t now has the value 'x86_freebsd' -.br -.RE - -.RE -.RE -.P -.SS str.to_upper() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.to_upper() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Converts all characters to upper case -.RE - -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -target = 'x86_FreeBSD' -.br -upper = target.to_upper() # t now has the value 'X86_FREEBSD' -.br -.RE - -.RE -.RE -.P -.SS str.underscorify() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIstr\fR str.underscorify() -.RE - -\fBDESCRIPTION\fR -.RS 4 -Creates a string where every non-alphabetical non-number character is replaced with `_`. -.RE - -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -name = 'Meson Docs.txt#Reference-manual' -.br -# Replaces all characters other than `a-zA-Z0-9` with `_` (underscore) -.br -# Useful for substituting into #defines, filenames, etc. -.br -underscored = name.underscorify() -.br -# underscored now has the value 'Meson_Docs_txt_Reference_manual' -.br -.RE - -.RE -.RE -.P -.SS str.version_compare() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR str.version_compare(compare_string) -.RE - -\fBDESCRIPTION\fR -.RS 4 -Does semantic version comparison. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBcompare_string\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The string to compare to. -.RE - -.RE -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -version = '1.2.3' -.br -# Compare version numbers semantically -.br -is_new = version.version_compare('>=2.0') -.br -# is_new now has the boolean value false -.br -# Supports the following operators: '>', '<', '>=', '<=', '!=', '==', '=' -.br -.RE -Meson version comparison conventions include: -.RS 4 -\'3.6'.version_compare('>=3.6.0') == false -.br -.RE -It is best to be unambiguous and specify the full revision level to compare. -.RE -.RE -.P -.SS subproject.found() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIbool\fR subproject.found() - -since 0.48.0 -.RE - -\fBDESCRIPTION\fR -.RS 4 -Returns whether the subproject was successfully setup. -.RE - -.RE -.P -.SS subproject.get_variable() -.RS 0 -\fBSYNOPSIS\fR -.RS 4 -\fIany\fR subproject.get_variable(var_name, [fallback]) -.RE - -\fBDESCRIPTION\fR -.RS 4 -fetches the specified variable from inside the subproject. -This is useful to, for instance, get a -\fIdeclare_dependency\fR from the \fIsubproject\fR[24]. - -If the variable does not exist, the variable `fallback` is returned. -If a fallback is not specified, then attempting to read a non-existing -variable will cause a fatal error. -.RE - -\fBPOSARGS\fR -.RS 4 -\fBvar_name\fR -\fIstr\fR, \fBrequired\fR -.br -.RS 2 -The name of the variable to query -.RE - -.RE -\fBOPTARGS\fR -.RS 4 -\fBfallback\fR -\fIany\fR -.br -.RS 2 -The fallback value to return if `var_name` does not exist. -.RE - -.RE -.RE -.P -.SH OBJECTS -.P -.SS alias_tgt -.RS 2 -\fBextends: \fRtgt -.br -\fBreturned_by: \fRalias_target -.br - -Opaque object returned by \fIalias_target\fR. - -.RE -.P -.SS any -.RS 2 -\fBreturned_by: \fRget_variable, get, get, get_cross_property, get_external_property, get_variable -.br - -A placeholder representing all types. -This includes builtin, as well as returned objects. - -.RE -.P -.SS bool -.RS 2 -\fBreturned_by: \fRadd_languages, get_option, is_disabler, is_variable, found, get, get_unquoted, has, check_header, compiles, has_argument, has_function, has_function_attribute, has_header, has_header_symbol, has_link_argument, has_member, has_members, has_multi_arguments, has_multi_link_arguments, has_type, links, symbols_have_underscore_prefix, found, has_key, found, found, allowed, auto, disabled, enabled, is_even, is_odd, contains, can_run_host_binaries, has_exe_wrapper, has_external_property, is_cross_build, is_subproject, is_unity, found, compiled, contains, endswith, startswith, version_compare, found -.br - -A boolean object which is either `true` or `false` - -.RE -.P -.SS both_libs -.RS 2 -since 0.46.0 -.br -\fBextends: \fRlib -.br -\fBreturned_by: \fRboth_libraries -.br - -Container for both a static and shared library. - -.RE -.P -.SS build_machine -.RS 2 -\fBextended_by: \fRhost_machine, target_machine -.br - -Provides information about the build machine -- the machine that is doing the actual compilation. -See \fICross-compilation\fR[34]. - -Currently, these values are populated using -\fI`platform.system()`\fR[38] and -\fI`platform.machine()`\fR[39]. -If you think the returned values for any of these are incorrect for -your system or CPU, or if your OS is not in the linked table, please -\fIfile a bug\fR[40] report -with details and we'll look into it. - -.RE -.P -.SS build_tgt -.RS 2 -\fBextends: \fRtgt -.br -\fBreturned_by: \fRbuild_target, shared_module -.br -\fBextended_by: \fRexe, jar, lib -.br - -A build target is either an executable, shared library, static library, -both shared and static library or shared module. - -.RE -.P -.SS cfg_data -.RS 2 -\fBreturned_by: \fRconfiguration_data -.br - -This object encapsulates -configuration values to be used for generating configuration files. A -more in-depth description can be found in the \fIthe configuration wiki -page\fR[8]. - -.RE -.P -.SS cmake -.RS 2 - -The CMake module - -.RE -.P -.SS cmake_options -.RS 2 -since 0.55.0 -.br -\fBreturned_by: \fRsubproject_options -.br - -Central configuration object for CMake subprojects - -.RE -.P -.SS compiler -.RS 2 -\fBreturned_by: \fRget_compiler -.br - -This object is returned by \fImeson.get_compiler\fR. -It represents a compiler for a given language and allows you to query its properties. - -\fBNOTES\fR -.RS 4 -These compiler checks do not use compiler arguments added -with `add_*_arguments()`, via `-Dlang_args` on the command-line, or -through `CFLAGS`/`LDFLAGS`, etc in the environment. Hence, you can -trust that the tests will be fully self-contained, and won't fail -because of custom flags added by other parts of the build file or by -users. -Note that if you have a single prefix with all your dependencies, you -might find it easier to append to the environment variables -`C_INCLUDE_PATH` with GCC/Clang and `INCLUDE` with MSVC to expand the -default include path, and `LIBRARY_PATH` with GCC/Clang and `LIB` with -MSVC to expand the default library search path. - -However, with GCC, these variables will be ignored when -cross-compiling. In that case you need to use a specs file. See: -http://www.mingw.org/wiki/SpecsFileHOWTO -.RE -.RE -.P -.SS custom_idx -.RS 2 -\fBreturned_by: \fR[index] -.br - -References a specific output file of a \fIcustom_tgt\fR object. - -.RE -.P -.SS custom_tgt -.RS 2 -\fBextends: \fRtgt -.br -\fBreturned_by: \fRcustom_target, vcs_tag -.br - -This object is returned by \fIcustom_target\fR and contains a target with the following methods: - -.RE -.P -.SS dep -.RS 2 -\fBreturned_by: \fRdeclare_dependency, dependency, find_library, as_link_whole, as_system, partial_dependency -.br - -Abstract representation of a dependency - -.RE -.P -.SS dict -.RS 2 -since 0.47.0 -.br - -Stores a mapping of strings to other objects. See \fIdictionaries\fR[41]. - -You can also iterate over dictionaries with the \fI`foreach` -statement\fR[28]. - -\fB(since 0.48.0)\fR Dictionaries can be added (e.g. `d1 = d2 + d3` and `d1 += d2`). -Values from the second dictionary overrides values from the first. - -.RE -.P -.SS disabler -.RS 2 -\fBreturned_by: \fRdisabler -.br - -A disabler object is an object that behaves in much the same way as -NaN numbers do in floating point math. That is when used in any -statement (function call, logical op, etc) they will cause the -statement evaluation to immediately short circuit to return a disabler -object. A disabler object has one method: - -.RE -.P -.SS env -.RS 2 -\fBreturned_by: \fRenvironment -.br - -This object is returned by \fIenvironment\fR and stores -detailed information about how environment variables should be set -during tests. It should be passed as the `env` keyword argument to -tests and other functions. - -\fBSince 0.58.0\fR \fIenv.append\fR and \fIenv.prepend\fR can be called multiple times -on the same `varname`. Earlier Meson versions would warn and only the last -operation took effect. - -\fBEXAMPLE\fR -.RS 4 - -.RS 4 -env = environment() -.br - -.br -# MY_PATH will be '0:1:2:3' -.br -env.set('MY_PATH', '1') -.br -env.append('MY_PATH', '2') -.br -env.append('MY_PATH', '3') -.br -env.prepend('MY_PATH', '0') -.br -.RE - -.RE -.RE -.P -.SS exe -.RS 2 -\fBextends: \fRbuild_tgt -.br -\fBreturned_by: \fRexecutable -.br - -An executable - -.RE -.P -.SS external_program -.RS 2 -\fBreturned_by: \fRfind_program -.br - -Opaque object representing an external program - -.RE -.P -.SS extracted_obj -.RS 2 -\fBreturned_by: \fRextract_all_objects, extract_objects -.br - -Opaque object representing extracted object files from build targets - -.RE -.P -.SS feature -.RS 2 -since 0.47.0 -.br -\fBreturned_by: \fRget_option, disable_auto_if, require -.br - -Meson object representing a \fI`feature` options\fR[0] - -.RE -.P -.SS file -.RS 2 -\fBreturned_by: \fRconfigure_file -.br - -Opaque object that stores the path to an existing file - -.RE -.P -.SS generated_list -.RS 2 -\fBreturned_by: \fRprocess -.br - -Opaque object representing the result of a \fIgenerator.process\fR call. - -.RE -.P -.SS generator -.RS 2 -\fBreturned_by: \fRgenerator -.br - -This object is returned by \fIgenerator\fR and contains a -generator that is used to transform files from one type to another by -an executable (e.g. `idl` files into source code and headers). - -.RE -.P -.SS host_machine -.RS 2 -\fBextends: \fRbuild_machine -.br - -Provides information about the host machine -- the machine on which the -compiled binary will run. See -\fICross-compilation\fR[34]. - -It has the same methods as \fIbuild_machine\fR. - -When not cross-compiling, all the methods return the same values as -\fIbuild_machine\fR (because the build machine is the host machine) - -Note that while cross-compiling, it simply returns the values defined -in the cross-info file. - -.RE -.P -.SS inc -.RS 2 -\fBreturned_by: \fRinclude_directories, private_dir_include -.br - -Opaque wrapper for storing include directories - -.RE -.P -.SS int -.RS 2 -\fBreturned_by: \fRget_option, to_int, get, get_unquoted, alignment, compute_int, sizeof, length, returncode, to_int -.br - -All integer numbers. See \fINumbers\fR[42] for more information. - -.RE -.P -.SS jar -.RS 2 -\fBextends: \fRbuild_tgt -.br -\fBreturned_by: \fRjar -.br - -A Java JAR build target - -.RE -.P -.SS lib -.RS 2 -\fBextends: \fRbuild_tgt -.br -\fBreturned_by: \fRlibrary, shared_library, static_library, get_shared_lib, get_static_lib -.br -\fBextended_by: \fRboth_libs -.br - -Represents either a shared or static library - -.RE -.P -.SS list -.RS 2 -\fBreturned_by: \fRfiles, get_option, keys, cmd_array, first_supported_argument, first_supported_link_argument, get_supported_arguments, get_supported_function_attributes, get_supported_link_arguments, preprocess, to_list, keys, project_license, split -.br - -An array of elements. See \fIarrays\fR[43]. - -.RE -.P -.SS meson -.RS 2 - -The `meson` object allows you to introspect various properties of the -system. This object is always mapped in the `meson` variable. - -.RE -.P -.SS module -.RS 2 -\fBreturned_by: \fRimport -.br - -Base type for all modules. - -Modules provide their own specific implementation methods, but all modules -proivide the following methods: - -.RE -.P -.SS range -.RS 2 -since 0.58.0 -.br -\fBreturned_by: \fRrange -.br - -Opaque object that can be used in a loop and accessed via `[num]`. - -.RE -.P -.SS run_tgt -.RS 2 -\fBextends: \fRtgt -.br -\fBreturned_by: \fRrun_target -.br - -Opaque object returned by \fIrun_target\fR. - -.RE -.P -.SS runresult -.RS 2 -\fBreturned_by: \fRrun_command, run -.br - -This object encapsulates the result of trying to compile and run a -sample piece of code with \fIcompiler.run\fR or -\fIrun_command\fR. - -.RE -.P -.SS str -.RS 2 -\fBreturned_by: \fRget_option, join_paths, to_string, cpu, cpu_family, endian, system, full_path, name, path, get, get_unquoted, get_argument_syntax, get_define, get_id, get_linker_id, version, full_path, full_path, get_configtool_variable, get_pkgconfig_variable, get_variable, include_type, name, type_name, version, full_path, path, version, to_string, backend, build_root, current_build_dir, current_source_dir, global_build_root, global_source_root, project_build_root, project_name, project_source_root, project_version, source_root, version, stderr, stdout, format, join, replace, strip, substring, to_lower, to_upper, underscorify -.br - -All \fIstrings\fR[44] have the following methods. Strings -are immutable, all operations return their results as a new string. - -.RE -.P -.SS structured_src -.RS 2 -\fBreturned_by: \fRstructured_sources -.br - -Opaque object returned by \fIstructured_sources\fR. - -.RE -.P -.SS subproject -.RS 2 -\fBreturned_by: \fRsubproject -.br - -This object is returned by \fIsubproject\fR and is an opaque object representing it. - -.RE -.P -.SS target_machine -.RS 2 -\fBextends: \fRbuild_machine -.br - -Provides information about the target machine -- the machine on which -the compiled binary's output will run. Hence, this object should only -be used while cross-compiling a compiler. See -\fICross-compilation\fR[34]. - -It has the same methods as \fIbuild_machine\fR. - -When all compilation is 'native', all the methods return the same -values as \fIbuild_machine\fR (because the build machine is the host -machine and the target machine). - -Note that while cross-compiling, it simply returns the values defined -in the cross-info file. If `target_machine` values are not defined in -the cross-info file, `host_machine` values are returned instead. - -.RE -.P -.SS tgt -.RS 2 -\fBextended_by: \fRalias_tgt, build_tgt, custom_tgt, run_tgt -.br - -Opaque base object for all Meson targets - -.RE -.P -.SS void -.RS 2 -\fBreturned_by: \fRadd_global_arguments, add_global_link_arguments, add_project_arguments, add_project_dependencies, add_project_link_arguments, add_test_setup, assert, benchmark, debug, error, install_data, install_emptydir, install_headers, install_man, install_subdir, install_symlink, message, project, set_variable, subdir, subdir_done, summary, test, unset_variable, warning, merge_from, set, set10, set_quoted, add_cmake_defines, append, prepend, set, add_devenv, add_dist_script, add_install_script, add_postconf_script, install_dependency_manifest, override_dependency, override_find_program -.br - -Indicates that the function does not return anything. -Similar to `void` in C and C++ - -.RE -.P -.SH SEE ALSO -[1] Build-options.md#features -.br -[2] Unit-tests.md -.br -[3] https://www.testanything.org/ -.br -[4] https://ninja-build.org/manual.html#ref_dependencies -.br -[5] https://ninja-build.org/manual.html#ref_headers -.br -[6] https://dlang.org/spec/version.html#version -.br -[7] https://gcc.gnu.org/wiki/Visibility -.br -[8] https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem -.br -[9] Configuration.md -.br -[10] https://docs.python.org/3/library/codecs.html#standard-encodings -.br -[11] https://ninja-build.org/manual.html#_the_literal_console_literal_pool -.br -[12] Dependencies.md#cmake -.br -[13] Dependencies.md#dependencies-with-custom-lookup-functionality -.br -[14] Wrap-dependency-system-manual.md#provide-section -.br -[15] -Dependencies.md#dependencies-with-custom-lookup-functionality -.br -[16] Builtin-options.md#core-options -.br -[17] Machine-files.md#binaries -.br -[18] Build-options.md -.br -[19] Builtin-options.md#universal-options -.br -[20] Installing.md -.br -[21] https://mesonbuild.com/Builtin-options.html -.br -[22] https://spdx.dev/ids/ -.br -[23] https://spdx.org/licenses/ -.br -[24] External-commands.md -.br -[25] Subprojects.md -.br -[26] http://man7.org/linux/man-pages/man3/mallopt.3.html -.br -[27] Reference-tables.md#cpu-families -.br -[28] Reference-tables.md#operating-system-names -.br -[29] Syntax.md#foreach-statements -.br -[30] Reference-tables.md#compiler-ids -.br -[31] Reference-tables.md#linker-ids -.br -[32] Reference-tables.md#gcc-__attribute__ -.br -[33] Commands.md#devenv -.br -[34] Reference-tables.md#language-arguments-parameter-names -.br -[35] Cross-compilation.md -.br -[36] Unity-builds.md -.br -[37] Syntax.md#string-formatting -.br -[38] https://docs.python.org/3.7/library/platform.html#platform.system -.br -[39] https://docs.python.org/3.7/library/platform.html#platform.machine -.br -[40] https://github.com/mesonbuild/meson/issues/new -.br -[41] Syntax.md#dictionaries -.br -[42] Syntax.md#numbers -.br -[43] Syntax.md#arrays -.br -[44] Syntax.md#strings -.br diff --git a/meson/meson-reference-1.0.0.json b/meson/meson-reference-1.0.0.json deleted file mode 100644 index cd3c3f7..0000000 --- a/meson/meson-reference-1.0.0.json +++ /dev/null @@ -1 +0,0 @@ -{"version_major": 1, "version_minor": 1, "meson_version": "1.0.0", "functions": {"add_global_arguments": {"name": "add_global_arguments", "description": "Adds global arguments to the compiler command line.", "since": null, "deprecated": null, "notes": ["Usually you should use [[add_project_arguments]] instead, because that works even when you project is used as a subproject.", "You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...`"], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"language": {"name": "language", "description": "Specifies the language(s) that the arguments should be\napplied to. If a list of languages is given, the arguments are added\nto each of the corresponding compiler command lines. Note that there\nis no way to remove an argument set in this way. If you have an\nargument that is only used in a subset of targets, you have to specify\nit in per-target flags.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "A boolean specifying whether the arguments should be\napplied to the native or cross compilation. If `true` the arguments\nwill only be used for native compilations. If `false` the arguments\nwill only be used in cross compilations. If omitted, the flags are\nadded to native compilations if compiling natively and cross\ncompilations (only) when cross compiling.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Compiler argument", "description": "The compiler arguments to add", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_global_link_arguments": {"name": "add_global_link_arguments", "description": "Adds global arguments to the linker command line.\n\nLike [[add_global_arguments]] but the arguments are passed to the linker.", "since": null, "deprecated": null, "notes": ["Usually you should use [[add_project_link_arguments]] instead, because that works even when you project is used as a subproject.", "You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...`"], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"language": {"name": "language", "description": "Specifies the language(s) that the arguments should be\napplied to. If a list of languages is given, the arguments are added\nto each of the corresponding compiler command lines. Note that there\nis no way to remove an argument set in this way. If you have an\nargument that is only used in a subset of targets, you have to specify\nit in per-target flags.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "A boolean specifying whether the arguments should be\napplied to the native or cross compilation. If `true` the arguments\nwill only be used for native compilations. If `false` the arguments\nwill only be used in cross compilations. If omitted, the flags are\nadded to native compilations if compiling natively and cross\ncompilations (only) when cross compiling.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Linker argument", "description": "The linker arguments to add", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_languages": {"name": "add_languages", "description": "Add programming languages used by the project.\n\nThis is equivalent to having\nthem in the `project` declaration. This function is usually used to\nadd languages that are only used under some conditions.\n\nReturns `true` if all languages specified were found and `false` otherwise.\n\nIf `native` is omitted, the languages may be used for either build or host\nmachine, but are never required for the build machine. (i.e. it is equivalent\nto `add_languages(*langs*, native: false, required: *required*) and\nadd_languages(*langs*, native: true, required: false)`. This default behaviour\nmay change to `native: false` in a future Meson version.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\nproject('foobar', 'c')\n\nif compiling_for_osx\n add_languages('objc')\nendif\nif add_languages('cpp', required : false)\n executable('cpp-app', 'main.cpp')\nendif\n\n# More code...\n```\n", "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {"native": {"name": "native", "description": "If set to `true`, the language will be used to compile for the build\nmachine, if `false`, for the host machine.\n", "since": "0.54.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "If set to `true`, Meson will halt if any of the languages\nspecified are not found. *(since 0.47.0)* The value of a\n[`feature`](Build-options.md#features) option can also be passed.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Language", "description": "The languages to add", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_project_arguments": {"name": "add_project_arguments", "description": "Adds project specific arguments to the compiler command line.\n\nThis function behaves in the same way as [[add_global_arguments]] except\nthat the arguments are only used for the current project, they won't\nbe used in any other subproject.", "since": null, "deprecated": null, "notes": ["You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...`"], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"language": {"name": "language", "description": "Specifies the language(s) that the arguments should be\napplied to. If a list of languages is given, the arguments are added\nto each of the corresponding compiler command lines. Note that there\nis no way to remove an argument set in this way. If you have an\nargument that is only used in a subset of targets, you have to specify\nit in per-target flags.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "A boolean specifying whether the arguments should be\napplied to the native or cross compilation. If `true` the arguments\nwill only be used for native compilations. If `false` the arguments\nwill only be used in cross compilations. If omitted, the flags are\nadded to native compilations if compiling natively and cross\ncompilations (only) when cross compiling.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Compiler argument", "description": "The compiler arguments to add", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_project_dependencies": {"name": "add_project_dependencies", "description": "Adds arguments to the compiler and linker command line, so that the\ngiven set of dependencies is included in all build products for this\nproject.", "since": "0.63.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"language": {"name": "language", "description": "Specifies the language(s) that the arguments should be\napplied to. If a list of languages is given, the arguments are added\nto each of the corresponding compiler command lines. Note that there\nis no way to remove an argument set in this way. If you have an\nargument that is only used in a subset of targets, you have to specify\nit in per-target flags.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "A boolean specifying whether the arguments should be\napplied to the native or cross compilation. If `true` the arguments\nwill only be used for native compilations. If `false` the arguments\nwill only be used in cross compilations. If omitted, the flags are\nadded to native compilations if compiling natively and cross\ncompilations (only) when cross compiling.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "dependencies", "description": "The dependencies to add; if internal dependencies are included, they must not include any built object.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}], "type_str": "dep", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_project_link_arguments": {"name": "add_project_link_arguments", "description": "Adds global arguments to the linker command line.\n\nLike [[add_global_arguments]] but the arguments are passed to the linker.", "since": null, "deprecated": null, "notes": ["You must pass always arguments individually `arg1, arg2, ...` rather than as a string `'arg1 arg2', ...`"], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"language": {"name": "language", "description": "Specifies the language(s) that the arguments should be\napplied to. If a list of languages is given, the arguments are added\nto each of the corresponding compiler command lines. Note that there\nis no way to remove an argument set in this way. If you have an\nargument that is only used in a subset of targets, you have to specify\nit in per-target flags.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "A boolean specifying whether the arguments should be\napplied to the native or cross compilation. If `true` the arguments\nwill only be used for native compilations. If `false` the arguments\nwill only be used in cross compilations. If omitted, the flags are\nadded to native compilations if compiling natively and cross\ncompilations (only) when cross compiling.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Linker argument", "description": "The linker arguments to add", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_test_setup": {"name": "add_test_setup", "description": "Add a custom test setup. This setup can be used to run the tests with a\ncustom setup, for example under Valgrind.\n\nTo use the test setup, run `meson test --setup=*name*` inside the\nbuild dir.\n\nNote that all these options are also available while running the\n`meson test` script for running tests instead of `ninja test` or\n`msbuild RUN_TESTS.vcxproj`, etc depending on the backend.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"name": {"name": "name", "description": "The name of the test setup", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"env": {"name": "env", "description": "environment variables to set\n, such as `['NAME1=value1', 'NAME2=value2']`,\nor an [[@env]] object which allows more sophisticated\nenvironment juggling. *(Since 0.52.0)* A dictionary is also accepted.\n", "since": null, "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "env|list[str]|dict[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "exclude_suites": {"name": "exclude_suites", "description": "A list of test suites that should be excluded when using this setup. Suites specified in the `--suite` option to `meson test` will always run, overriding `add_test_setup` if necessary.", "since": "0.57.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "exe_wrapper": {"name": "exe_wrapper", "description": "The command or script followed by the arguments to it", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "external_program", "holds": []}]}], "type_str": "list[str|external_program]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gdb": {"name": "gdb", "description": "If `true`, the tests are also run under `gdb`", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "is_default": {"name": "is_default", "description": "Set whether this is the default test setup.\nIf `true`, the setup will be used whenever `meson test` is run\nwithout the `--setup` option.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "timeout_multiplier": {"name": "timeout_multiplier", "description": "A number to multiply the test timeout with.\n*Since 0.57* if timeout_multiplier is `<= 0` the test has infinite duration,\nin previous versions of Meson the test would fail with a timeout immediately.\n", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "1", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "alias_target": {"name": "alias_target", "description": "This function creates a new top-level target. Like all top-level\ntargets, this integrates with the selected backend. For instance, with\nyou can run it as `meson compile target_name`. This is a dummy target\nthat does not execute any command, but ensures that all dependencies\nare built. Dependencies can be any build target (e.g. return value of\n[[executable]], [[custom_target]], etc)", "since": "0.52.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "alias_tgt", "holds": []}], "returns_str": "alias_tgt", "posargs": {"target_name": {"name": "target_name", "description": "The name of the alias target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "Dep", "description": "The targets to depend on", "since": null, "deprecated": null, "type": [{"obj": "tgt", "holds": []}], "type_str": "tgt", "required": false, "default": null, "min_varargs": 1, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "assert": {"name": "assert", "description": "Abort with an error message if `condition` evaluates to `false`.", "since": null, "deprecated": null, "notes": ["The `message` argument is optional since 0.53.0 and defaults to print the condition statement."], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"condition": {"name": "condition", "description": "Abort if this evaluates to `false`", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"message": {"name": "message", "description": "The error message to print.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "benchmark": {"name": "benchmark", "description": "Creates a benchmark item that will be run when the benchmark target is\nrun. The behavior of this function is identical to [[test]]\nexcept for:\n\n* benchmark() has no `is_parallel` keyword because benchmarks are not run in parallel\n* benchmark() does not automatically add the `MALLOC_PERTURB_` environment variable\n\nDefined tests can be run in a backend-agnostic way by calling\n`meson test` inside the build dir, or by using backend-specific\ncommands, such as `ninja test` or `msbuild RUN_TESTS.vcxproj`.", "since": null, "deprecated": null, "notes": ["Prior to 0.52.0 benchmark would warn that `depends` and `priority` were unsupported, this is incorrect."], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"name": {"name": "name", "description": "The *unique* test id", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "executable": {"name": "executable", "description": "The program to execute", "since": null, "deprecated": null, "type": [{"obj": "exe", "holds": []}, {"obj": "jar", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "file", "holds": []}], "type_str": "exe|jar|external_program|file", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Arguments to pass to the executable", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "tgt", "holds": []}]}], "type_str": "list[str|file|tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depends": {"name": "depends", "description": "specifies that this test depends on the specified\ntarget(s), even though it does not take any of them as a command\nline argument. This is meant for cases where test finds those\ntargets internally, e.g. plugins or globbing. Those targets are built\nbefore test is executed even if they have `build_by_default : false`.\n", "since": "0.46.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "build_tgt", "holds": []}, {"obj": "custom_tgt", "holds": []}]}], "type_str": "list[build_tgt|custom_tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "env": {"name": "env", "description": "environment variables to set, such as `['NAME1=value1',\n'NAME2=value2']`, or an [[@env]] object which allows more sophisticated\nenvironment juggling. *(Since 0.52.0)* A dictionary is also accepted.\n", "since": null, "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "env|list[str]|dict[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "priority": {"name": "priority", "description": "specifies the priority of a test. Tests with a\nhigher priority are *started* before tests with a lower priority.\nThe starting order of tests with identical priorities is\nimplementation-defined. The default priority is 0, negative numbers are\npermitted.\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "0", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "protocol": {"name": "protocol", "description": "specifies how the test results are parsed and can\nbe one of `exitcode`, `tap`, or `gtest`. For more information about test\nharness protocol read [Unit Tests](Unit-tests.md). The following values are\naccepted:\n\n- `exitcode`: the executable's exit code is used by the test harness\n to record the outcome of the test).\n- `tap`: [Test Anything Protocol](https://www.testanything.org/).\n- `gtest` *(since 0.55.0)*: for Google Tests.\n- `rust` *(since 0.56.0)*: for native rust tests\n", "since": "0.50.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'exitcode'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "should_fail": {"name": "should_fail", "description": "when true the test is considered passed if the\nexecutable returns a non-zero return value (i.e. reports an error)\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "suite": {"name": "suite", "description": "`'label'` (or list of labels `['label1', 'label2']`)\nattached to this test. The suite name is qualified by a (sub)project\nname resulting in `(sub)project_name:label`. In the case of a list\nof strings, the suite names will be `(sub)project_name:label1`,\n`(sub)project_name:label2`, etc.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "timeout": {"name": "timeout", "description": "the amount of seconds the test is allowed to run, a test\nthat exceeds its time limit is always considered failed, defaults to\n30 seconds. *Since 0.57* if timeout is `<= 0` the test has infinite duration,\nin previous versions of Meson the test would fail with a timeout immediately.\n", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "30", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "verbose": {"name": "verbose", "description": "if true, forces the test results to be logged as if `--verbose` was passed\nto `meson test`.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "workdir": {"name": "workdir", "description": "absolute path that will be used as the working directory\nfor the test\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "both_libraries": {"name": "both_libraries", "description": "Builds both a static and shared library with the given sources.\nPositional and keyword arguments are otherwise the same as for\n[[library]]. Source files will be compiled only once and\nobject files will be reused to build both shared and static libraries,\nunless `b_staticpic` user option or `pic` argument are set to false in\nwhich case sources will be compiled twice.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "both_libs", "holds": []}], "returns_str": "both_libs", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "darwin_versions": {"name": "darwin_versions", "description": "Defines the `compatibility version` and `current version` for the dylib on macOS.\nIf a list is specified, it must be\neither zero, one, or two elements. If only one element is specified\nor if it's not a list, the specified value will be used for setting\nboth compatibility version and current version. If unspecified, the\n`soversion` will be used as per the aforementioned rules.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|int|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pic": {"name": "pic", "description": "Builds the library as positional independent code\n(so it can be linked into a shared library). This\noption has no effect on Windows and OS X since it doesn't make\nsense on Windows and PIC cannot be disabled on OS X.\n", "since": "0.36.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prelink": {"name": "prelink", "description": "If `true` the object files in the target will be prelinked,\nmeaning that it will contain only one prelinked\nobject file rather than the individual object files.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "soversion": {"name": "soversion", "description": "A string or integer specifying the soversion of this shared library,\nsuch as `0`. On Linux and Windows this is used to set the\nsoversion (or equivalent) in the filename. For example, if\n`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one\nof the aliases of the Linux shared library would be\n`libfoo.so.4`. If this is not specified, the first part of `version`\nis used instead (see below). For example, if `version` is `3.6.0` and\n`soversion` is not defined, it is set to `3`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}], "type_str": "str|int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "A string specifying the version of this shared library,\nsuch as `1.1.0`. On Linux and OS X, this is used to set the shared\nlibrary version in the filename, such as `libfoo.so.1.1.0` and\n`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used\ninstead (see above).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "vs_module_defs": {"name": "vs_module_defs", "description": "Specify a Microsoft module definition file for controlling symbol exports,\netc., on platforms where that is possible (e.g. Windows).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "build_target": {"name": "build_target", "description": "Creates a build target whose type can be set dynamically with the\n`target_type` keyword argument.\n\n`target_type` may be set to one of:\n\n- `executable` (see [[executable]])\n- `shared_library` (see [[shared_library]])\n- `shared_module` (see [[shared_module]])\n- `static_library` (see [[static_library]])\n- `both_libraries` (see [[both_libraries]])\n- `library` (see [[library]])\n- `jar` (see [[jar]])\n\nThis declaration:\n\n```meson\nexecutable()\n```\n\nis equivalent to this:\n\n```meson\nbuild_target(, target_type : 'executable')\n```\n\nThe lists for the kwargs (such as `sources`, `objects`, and `dependencies`) are\nalways flattened, which means you can freely nest and add lists while\ncreating the final list.\n\nThe returned object also has methods that are documented in [[@build_tgt]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "build_tgt", "holds": []}], "returns_str": "build_tgt", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "darwin_versions": {"name": "darwin_versions", "description": "Defines the `compatibility version` and `current version` for the dylib on macOS.\nIf a list is specified, it must be\neither zero, one, or two elements. If only one element is specified\nor if it's not a list, the specified value will be used for setting\nboth compatibility version and current version. If unspecified, the\n`soversion` will be used as per the aforementioned rules.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|int|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "export_dynamic": {"name": "export_dynamic", "description": "when set to true causes the target's symbols to be\n dynamically exported, allowing modules built using the\n [[shared_module]] function to refer to functions,\n variables and other symbols defined in the executable itself. Implies\n the `implib` argument.\n", "since": "0.45.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implib": {"name": "implib", "description": "When set to true, an import library is generated for the\nexecutable (the name of the import library is based on *exe_name*).\nAlternatively, when set to a string, that gives the base name for\nthe import library. The import library is used when the returned\nbuild target object appears in `link_with:` elsewhere. Only has any\neffect on platforms where that is meaningful (e.g. Windows). Implies\nthe `export_dynamic` argument.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "str", "holds": []}], "type_str": "bool|str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "java_resources": {"name": "java_resources", "description": "Resources to be added to the jar", "since": "0.62.0", "deprecated": null, "type": [{"obj": "structured_src", "holds": []}], "type_str": "structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "main_class": {"name": "main_class", "description": "Main class for running the built jar", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pic": {"name": "pic", "description": "Builds the library as positional independent code\n(so it can be linked into a shared library). This\noption has no effect on Windows and OS X since it doesn't make\nsense on Windows and PIC cannot be disabled on OS X.\n", "since": "0.36.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pie": {"name": "pie", "description": "Build a position-independent executable.", "since": "0.49.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prelink": {"name": "prelink", "description": "If `true` the object files in the target will be prelinked,\nmeaning that it will contain only one prelinked\nobject file rather than the individual object files.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "soversion": {"name": "soversion", "description": "A string or integer specifying the soversion of this shared library,\nsuch as `0`. On Linux and Windows this is used to set the\nsoversion (or equivalent) in the filename. For example, if\n`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one\nof the aliases of the Linux shared library would be\n`libfoo.so.4`. If this is not specified, the first part of `version`\nis used instead (see below). For example, if `version` is `3.6.0` and\n`soversion` is not defined, it is set to `3`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}], "type_str": "str|int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "target_type": {"name": "target_type", "description": "The actual target to build", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "A string specifying the version of this shared library,\nsuch as `1.1.0`. On Linux and OS X, this is used to set the shared\nlibrary version in the filename, such as `libfoo.so.1.1.0` and\n`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used\ninstead (see above).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "vs_module_defs": {"name": "vs_module_defs", "description": "Specify a Microsoft module definition file for controlling symbol exports,\netc., on platforms where that is possible (e.g. Windows).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "configuration_data": {"name": "configuration_data", "description": "Creates an empty configuration object. You should add your\nconfiguration with the [[@cfg_data]] method calls and\nfinally use it in a call to [[configure_file]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "cfg_data", "holds": []}], "returns_str": "cfg_data", "posargs": {}, "optargs": {"data": {"name": "data", "description": "Optional dictionary to specify an initial data set. If\nprovided, each key/value pair is added into the [[@cfg_data]] object\nas if the [[cfg_data.set]] method was called for each of them.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "dict[str|bool|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "configure_file": {"name": "configure_file", "description": "This function can run in three modes depending on the keyword arguments\npassed to it.\n\nWhen a [[@cfg_data]] object is passed\nto the `configuration:` keyword argument, it takes a template file as\nthe `input:` (optional) and produces the `output:` (required) by\nsubstituting values from the configuration data as detailed in [the\nconfiguration file documentation](Configuration.md). *(since 0.49.0)*\nA dictionary can be passed instead of a\n[[@cfg_data]] object.\n\nWhen a list of strings is passed to the `command:` keyword argument,\nit takes any source or configured file as the `input:` and assumes\nthat the `output:` is produced when the specified command is run.\n\n*(since 0.47.0)* When the `copy:` keyword argument is set to `true`,\nthis function will copy the file provided in `input:` to a file in the\nbuild directory with the name `output:` in the current directory.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "file", "holds": []}], "returns_str": "file", "posargs": {}, "optargs": {}, "kwargs": {"capture": {"name": "capture", "description": "When this argument is set to true,\nMeson captures `stdout` of the `command` and writes it to the target\nfile specified as `output`.\n", "since": "0.41.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "command": {"name": "command", "description": "As explained above, if specified, Meson does not create\nthe file itself but rather runs the specified command, which allows\nyou to do fully custom file generation. *(since 0.52.0)* The command can contain\nfile objects and more than one file can be passed to the `input` keyword\nargument, see [[custom_target]] for details about string\nsubstitutions.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}]}], "type_str": "list[str|file]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "configuration": {"name": "configuration", "description": "As explained above, when passed this will provide the replacement\ndata for the input file (if provided) or key value pairs to be\nwritten to the output.\n", "since": null, "deprecated": null, "type": [{"obj": "cfg_data", "holds": []}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "cfg_data|dict[str|int|bool]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "copy": {"name": "copy", "description": "As explained above, if specified Meson only\ncopies the file from input to output.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depfile": {"name": "depfile", "description": "A dependency file that the command can write listing\nall the additional files this target depends on. A change\nin any one of these files triggers a reconfiguration.\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "encoding": {"name": "encoding", "description": "Set the file encoding for the input and output file.\nThe supported encodings are those of python3, see\n[standard-encodings](https://docs.python.org/3/library/codecs.html#standard-encodings).\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'utf-8'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "format": {"name": "format", "description": "The format of defines. It defaults to `'meson'`, and so substitutes\n`#mesondefine` statements and variables surrounded by `@` characters, you can also use `'cmake'`\nto replace `#cmakedefine` statements and variables with the `${variable}` syntax. Finally you can use\n`'cmake@'` in which case substitutions will apply on `#cmakedefine` statements and variables with\nthe `@variable@` syntax.\n", "since": "0.46.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'meson'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "input": {"name": "input", "description": "The input file name. If it's not specified in configuration\nmode, all the variables in the `configuration:` object (see above)\nare written to the `output:` file.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When true, this generated file is installed during\nthe install step, and `install_dir` must be set and not empty. When false, this\ngenerated file is not installed regardless of the value of `install_dir`.\nWhen omitted it defaults to true when `install_dir` is set and not empty,\nfalse otherwise.\n", "since": "0.50.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "The subdirectory to install the generated file to\n(e.g. `share/myproject`), if omitted or given the value of empty\nstring, the file is not installed.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default the file has no install\ntag which means it is not being installed when `--tags` argument is specified.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "output": {"name": "output", "description": "The output file name. *(since 0.41.0)* may contain\n`@PLAINNAME@` or `@BASENAME@` substitutions. In configuration mode,\nthe permissions of the input file (if it is specified) are copied to\nthe output file.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "output_format": {"name": "output_format", "description": "The format of the output to generate when no input\nwas specified. It defaults to `c`, in which case preprocessor directives\nwill be prefixed with `#`, you can also use `nasm`, in which case the\nprefix will be `%`.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "custom_target": {"name": "custom_target", "description": "Create a custom top level build target. The only positional argument\nis the name of this target and cannot contain path separators (`/` or `\\`).\nThe name of custom target might not be used by every backends, for instance with\nthe Ninja backend, `subdir/meson.build` containing the example below,\n`ninja -C builddir foo` or `ninja -C builddir subdir/foo` won't work,\nit is instead `ninja -C builddir subdir/file.txt`. However, `meson compile subdir/foo`\nis accepted.\n```meson\ncustom_target('foo', output: 'file.txt', ...)\n```\n\n*Since 0.60.0* the name argument is optional and defaults to the basename of the first\noutput (`file.txt` in the example above).\n\nThe list of strings passed to the `command` keyword argument accept\nthe following special string substitutions:\n\n- `@INPUT@`: the full path to the input passed to `input`. If more than\n one input is specified, all of them will be substituted as separate\n arguments only if the command uses `'@INPUT@'` as a\n standalone-argument. For instance, this would not work: `command :\n ['cp', './@INPUT@']`, but this would: `command : ['cp', '@INPUT@']`.\n- `@OUTPUT@`: the full path to the output passed to `output`. If more\n than one outputs are specified, the behavior is the same as\n `@INPUT@`.\n- `@INPUT0@` `@INPUT1@` `...`: the full path to the input with the specified array index in `input`\n- `@OUTPUT0@` `@OUTPUT1@` `...`: the full path to the output with the specified array index in `output`\n- `@OUTDIR@`: the full path to the directory where the output(s) must be written\n- `@DEPFILE@`: the full path to the dependency file passed to `depfile`\n- `@PLAINNAME@`: the input filename, without a path\n- `@BASENAME@`: the input filename, with extension removed\n- `@PRIVATE_DIR@` *(since 0.50.1)*: path to a directory where the custom target must store all its intermediate files.\n- `@SOURCE_ROOT@`: the path to the root of the source tree. Depending on the backend,\n this may be an absolute or a relative to current workdir path.\n- `@BUILD_ROOT@`: the path to the root of the build tree. Depending on the backend,\n this may be an absolute or a relative to current workdir path.\n- `@CURRENT_SOURCE_DIR@`: this is the directory where the currently\n processed meson.build is located in. Depending on the backend,\n this may be an absolute or a relative to current workdir path.\n\n*(since 0.47.0)* The `depfile` keyword argument also accepts the\n`@BASENAME@` and `@PLAINNAME@` substitutions.\n\nThe returned object also has methods that are documented in [[@custom_tgt]].", "since": null, "deprecated": null, "notes": ["Assuming that `command:` is executed by a POSIX `sh` shell\nis not portable, notably to Windows. Instead, consider using a\n`native: true` [[executable]], or a python script.\n"], "warnings": [], "example": null, "returns": [{"obj": "custom_tgt", "holds": []}], "returns_str": "custom_tgt", "posargs": {}, "optargs": {"name": {"name": "name", "description": "The *unique* id of the custom target\n\nThis posarg is optional *since 0.60.0*. It defaults to the basename\nof the first output.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {"build_always": {"name": "build_always", "description": "If `true` this target is always considered out of\ndate and is rebuilt every time. Equivalent to setting both\n`build_always_stale` and `build_by_default` to true.\n", "since": null, "deprecated": "0.47.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_always_stale": {"name": "build_always_stale", "description": "If `true` the target is always considered out of date.\nUseful for things such as build timestamps or revision control tags.\nThe associated command is run even if the outputs are up to date.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to true, to\nhave this target be built by default. This means it will be built when\n`meson compile` is called without any arguments. The default value is `false`.\n\n*(since 0.50.0)* If `build_by_default` is explicitly set to false, `install`\nwill no longer override it. If `build_by_default` is not set, `install` will\nstill determine its default.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "capture": {"name": "capture", "description": "There are some compilers that can't be told to write\ntheir output to a file but instead write it to standard output. When\nthis argument is set to true, Meson captures `stdout` and writes it\nto the target file. Note that your command argument list may not\ncontain `@OUTPUT@` when capture mode is active.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "command": {"name": "command", "description": "Command to run to create outputs from inputs. The command\nmay be strings or the return value of functions that return file-like\nobjects such as [[find_program]],\n[[executable]], [[configure_file]],\n[[files]], [[custom_target]], etc.\nMeson will automatically insert the appropriate dependencies on\ntargets and files listed in this keyword argument.\nNote: always specify commands in array form `['commandname',\n'-arg1', '-arg2']` rather than as a string `'commandname -arg1\n-arg2'` as the latter will *not* work.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "exe", "holds": []}, {"obj": "external_program", "holds": []}]}], "type_str": "list[str|file|exe|external_program]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "console": {"name": "console", "description": "Keyword argument conflicts with `capture`, and is meant\nfor commands that are resource-intensive and take a long time to\nfinish. With the Ninja backend, setting this will add this target\nto [Ninja's `console` pool](https://ninja-build.org/manual.html#_the_literal_console_literal_pool),\nwhich has special properties such as not buffering stdout and\nserializing all targets in this pool.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depend_files": {"name": "depend_files", "description": "files ([[@str]],\n[[@file]], or the return value of [[configure_file]] that\nthis target depends on but are not listed in the `command` keyword\nargument. Useful for adding regen dependencies.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}]}], "type_str": "list[str|file]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depends": {"name": "depends", "description": "Specifies that this target depends on the specified\ntarget(s), even though it does not take any of them as a command\nline argument. This is meant for cases where you have a tool that\ne.g. does globbing internally. Usually you should just put the\ngenerated sources as inputs and Meson will set up all dependencies\nautomatically.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "build_tgt", "holds": []}, {"obj": "custom_tgt", "holds": []}]}], "type_str": "list[build_tgt|custom_tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depfile": {"name": "depfile", "description": "A dependency file that the command can write listing\nall the additional files this target depends on, for example a C\ncompiler would list all the header files it included, and a change\nin any one of these files triggers a recompilation.\n\n*(since 0.47.0)* the `@BASENAME@` and `@PLAINNAME@` substitutions\nare also accepted.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "env": {"name": "env", "description": "environment variables to set, such as\n`{'NAME1': 'value1', 'NAME2': 'value2'}` or `['NAME1=value1', 'NAME2=value2']`,\nor an [[@env]] object which allows more\nsophisticated environment juggling.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "env|list[str]|dict[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "feed": {"name": "feed", "description": "There are some compilers that can't be told to read\ntheir input from a file and instead read it from standard input. When this\nargument is set to `true`, Meson feeds the input file to `stdin`. Note that\nyour argument list may not contain `@INPUT@` when feed mode is active.\n", "since": "0.59.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "input": {"name": "input", "description": "List of source files. *(since 0.41.0)* the list is flattened.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}]}], "type_str": "list[str|file]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When true, one or more files of this target are installed during the install step (see `install_dir` for details).", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "If only one install_dir is provided, all outputs are installed there.\n*Since 0.40.0* Allows you to specify the installation directory for each\ncorresponding output. For example:\n```meson\ncustom_target('different-install-dirs',\n output : ['first.file', 'second.file'],\n install : true,\n install_dir : ['somedir', 'otherdir'])\n```\nThis would install `first.file` to `somedir` and `second.file` to `otherdir`.\n\nTo only install some outputs, pass `false` for the outputs that you\ndon't want installed. For example:\n```meson\n custom_target('only-install-second',\n output : ['first.file', 'second.file'],\n install : true,\n install_dir : [false, 'otherdir'])\n```\nThis would install `second.file` to `otherdir` and not install `first.file`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|list[str|bool]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "The file mode and optionally the owner/uid and group/gid.\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A list of strings, one per output, used by the `meson install --tags` command\nto install only a subset of the files.\n\nBy default all outputs have no install tag which means they are not being\ninstalled when `--tags` argument is specified. If only one tag is specified,\nit is assumed that all outputs have the same tag. `false` can be used for\noutputs that have no tag or are not installed.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "output": {"name": "output", "description": "List of output files.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "debug": {"name": "debug", "description": "Write the argument string to the meson build log.", "since": "0.63.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"message": {"name": "message", "description": "The message to print", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|int|bool|list[str|int|bool]|dict[str|int|bool]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "msg", "description": "Additional parameters will be separated by spaces", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|int|bool|list[str|int|bool]|dict[str|int|bool]", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "declare_dependency": {"name": "declare_dependency", "description": "This function returns a [[@dep]] object that\nbehaves like the return value of [[dependency]] but is\ninternal to the current build. The main use case for this is in\nsubprojects. This allows a subproject to easily specify how it should\nbe used. This makes it interchangeable with the same dependency that\nis provided externally by the system.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "dep", "holds": []}], "returns_str": "dep", "posargs": {}, "optargs": {}, "kwargs": {"compile_args": {"name": "compile_args", "description": "Compile arguments to use.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "the directories to add to the string search path (i.e. `-J` switch for DMD).\nMust be [[@inc]] objects or plain strings.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "str|int|list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Other dependencies needed to use this dependency.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "the directories to add to header search path,\nmust be [[@inc]] objects or *(since 0.50.0)* plain strings.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Link arguments to use.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Libraries to link fully, same as [[executable]].", "since": "0.46.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}]}], "type_str": "list[lib]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "Libraries to link against.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}]}], "type_str": "list[lib]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "sources to add to targets\n(or generated header files\nthat should be built before sources including them are built)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}]}], "type_str": "list[str|file|custom_tgt|custom_idx|generated_list]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "variables": {"name": "variables", "description": "a dictionary of arbitrary strings,\nthis is meant to be used\nin subprojects where special variables would be provided via cmake or\npkg-config. *since 0.56.0* it can also be a list of `'key=value'` strings.\n", "since": "0.54.0", "deprecated": null, "type": [{"obj": "dict", "holds": [{"obj": "str", "holds": []}]}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "dict[str]|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "the version of this dependency,\nsuch as `1.2.3`. Defaults to the project version.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "dependency": {"name": "dependency", "description": "Finds an external dependency (usually a library installed on your\nsystem) with the given name with `pkg-config` and [with\nCMake](Dependencies.md#cmake) if `pkg-config` fails. Additionally,\nframeworks (OSX only) and [library-specific fallback detection\nlogic](Dependencies.md#dependencies-with-custom-lookup-functionality)\nare also supported.\n\n*Since 0.60.0* more than one name can be provided, they will be tried in order\nand the first name to be found will be used. The fallback subproject will be\nused only if none of the names are found on the system. Once one of the name has\nbeen found, all other names are added into the cache so subsequent calls for any\nof those name will return the same value. This is useful in case a dependency\ncould have different names, such as `png` and `libpng`.\n\n* Since *0.64.0* a dependency fallback can be provided by WrapDB. Simply download\nthe database locally using `meson wrap update-db` command and Meson will\nautomatically fallback to subprojects provided by WrapDB if the dependency is\nnot found on the system and the project does not ship their own `.wrap` file.\n\nDependencies can also be resolved in two other ways:\n\n* if the same name was used in a `meson.override_dependency` prior to\n the call to `dependency`, the overriding dependency will be returned\n unconditionally; that is, the overriding dependency will be used\n independent of whether an external dependency is installed in the system.\n Typically, `meson.override_dependency` will have been used by a\n subproject.\n\n* by a fallback subproject which, if needed, will be brought into the current\n build specification as if [`subproject()`](#subproject) had been called.\n The subproject can be specified with the `fallback` argument. Alternatively,\n if the `fallback` argument is absent, *since 0.55.0* Meson can\n automatically identify a subproject as a fallback if a wrap file\n [provides](Wrap-dependency-system-manual.md#provide-section) the\n dependency, or if a subproject has the same name as the dependency.\n In the latter case, the subproject must use `meson.override_dependency` to\n specify the replacement, or Meson will report a hard error. See the\n [Wrap documentation](Wrap-dependency-system-manual.md#provide-section)\n for more details. This automatic search can be controlled using the\n `allow_fallback` keyword argument.\n\nIf `dependency_name` is `''`, the dependency is always not found. So\nwith `required: false`, this always returns a dependency object for\nwhich the `found()` method returns `false`, and which can be passed\nlike any other dependency to the `dependencies:` keyword argument of a\n`build_target`. This can be used to implement a dependency which is\nsometimes not required e.g. in some branches of a conditional, or with\na `fallback:` kwarg, can be used to declare an optional dependency\nthat only looks in the specified subproject, and only if that's\nallowed by `--wrap-mode`.\n\nThe returned object [[@dep]] also has additional methods.", "since": null, "deprecated": null, "notes": ["This function supports additional [library-specific](Dependencies.md#dependencies-with-custom-lookup-functionality) keyword arguments that may also be accepted (e.g. `modules` specifies submodules to use for dependencies such as Qt5 or Boost. `components` allows the user to manually add CMake `COMPONENTS` for the `find_package` lookup)"], "warnings": [], "example": null, "returns": [{"obj": "dep", "holds": []}], "returns_str": "dep", "posargs": {}, "optargs": {}, "kwargs": {"allow_fallback": {"name": "allow_fallback", "description": "Specifies whether Meson should automatically pick a fallback subproject\nin case the dependency\nis not found in the system. If `true` and the dependency is not found\non the system, Meson will fallback to a subproject that provides this\ndependency. If `false`, Meson will not fallback even if a subproject\nprovides this dependency. By default, Meson will do so if `required`\nis `true` or [`enabled`](Build-options.md#features); see the [Wrap\ndocumentation](Wrap-dependency-system-manual.md#provide-section)\nfor more details.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "default_options": {"name": "default_options", "description": "An array of default option values\nthat override those set in the subproject's `meson_options.txt`\n(like `default_options` in [[project]], they only have\neffect when Meson is run for the first time, and command line\narguments override any default options in build files)\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "disabler": {"name": "disabler", "description": "Returns a [[disabler]] object instead of a not-found dependency\nif this kwarg is set to `true` and the dependency couldn't be found.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "fallback": {"name": "fallback", "description": "Manually specifies a subproject fallback\nto use in case the dependency is not found in the system.\nThis is useful if the automatic search is not applicable or if you\nwant to support versions of Meson older than 0.55.0. If the value is an\narray `['subproj_name', 'subproj_dep']`, the first value is the name\nof the subproject and the second is the variable name in that\nsubproject that contains a dependency object such as the return\nvalue of [[declare_dependency]] or\n[[dependency]], etc. Note that this means the\nfallback dependency may be a not-found dependency, in which\ncase the value of the `required:` kwarg will be obeyed.\n*Since 0.54.0* the value can be a single string, the subproject name;\nin this case the subproject must use\n`meson.override_dependency('dependency_name', subproj_dep)`\nto specify the dependency object used in the superproject.\nIf the value is an empty list, it has the same effect as\n`allow_fallback: false`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "str", "holds": []}], "type_str": "list[str]|str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_type": {"name": "include_type", "description": "An enum flag, marking how the dependency\nflags should be converted. Supported values are `'preserve'`, `'system'` and\n`'non-system'`. System dependencies may be handled differently on some\nplatforms, for instance, using `-isystem` instead of `-I`, where possible.\nIf `include_type` is set to `'preserve'`, no additional conversion will be\nperformed.\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'preserve'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "language": {"name": "language", "description": "Defines what language-specific dependency to find\nif it's available for multiple languages.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "method": {"name": "method", "description": "Defines the way the dependency is detected, the default is\n`auto` but can be overridden to be e.g. `qmake` for Qt development,\nand [different dependencies support different values](\nDependencies.md#dependencies-with-custom-lookup-functionality)\nfor this (though `auto` will work on all of them)\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'auto'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "If set to `true`, causes Meson to find the dependency on\nthe build machine system rather than the host system (i.e. where the\ncross compiled binary will run on), usually only needed if you build\na tool to be used during compilation.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "not_found_message": {"name": "not_found_message", "description": "An optional string that will be printed as a [[message]] if the dependency was not found.", "since": "0.50.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "When set to `false`, Meson will proceed with the build\neven if the dependency is not found.\n\nWhen set to a [`feature`](Build-options.md#features) option, the feature\nwill control if it is searched and whether to fail if not found.\n\n*(since 0.47.0)* The value of a `feature` option can also be passed.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "static": {"name": "static", "description": "Tells the dependency provider to try to get static\nlibraries instead of dynamic ones (note that this is not supported\nby all dependency backends)\n\n*Since 0.60.0* it also sets `default_library` option accordingly on the fallback\nsubproject if it was not set explicitly in `default_options` keyword argument.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "Specifies the required version,\na string containing a\ncomparison operator followed by the version string, examples include\n`>1.0.0`, `<=2.3.5` or `3.1.4` for exact matching.\nYou can also specify multiple restrictions by passing a list to this\nkeyword argument, such as: `['>=3.14.0', '<=4.1.0']`.\nThese requirements are never met if the version is unknown.\n", "since": "0.37.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "names", "description": "The names of the dependency to look up. The dependencies are looked up in\nthe order they are provided here. The first found dependency will then be\nused. The fallback subproject will be used only if none of the names are\nfound on the system. Once one of the name has been found, all other names\nare added into the cache so subsequent calls for any of those name will\nreturn the same value. This is useful in case a dependency could have\ndifferent names, such as `png` and `libpng`.\n\n**NOTE:** Before *0.60.0* only a single dependency name was allowed.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": 1, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "disabler": {"name": "disabler", "description": "Returns a [[@disabler]] object.", "since": "0.44.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "disabler", "holds": []}], "returns_str": "disabler", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "environment": {"name": "environment", "description": "Returns an empty [[@env]] object.", "since": "0.35.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "env", "holds": []}], "returns_str": "env", "posargs": {}, "optargs": {"env": {"name": "env", "description": "If provided, each key/value pair is added into the [[@env]] object\nas if [[env.set]] method was called for each of them.\nSince *0.62.0* list of strings is allowed in dictionary values. In that\ncase values are joined using the separator.\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}]}], "type_str": "str|list[str]|dict[str]|dict[list[str]]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {"method": {"name": "method", "description": "Must be one of 'set', 'prepend', or 'append'\n(defaults to 'set'). Controls if initial values defined in the first\npositional argument are prepended, appended or replace the current value\nof the environment variable.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "separator": {"name": "separator", "description": "The separator to use for the initial values defined in\nthe first positional argument. If not explicitly specified, the default\npath separator for the host operating system will be used, i.e. ';' for\nWindows and ':' for UNIX/POSIX systems.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": false}, "error": {"name": "error", "description": "Print the argument string and halts the build process.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"message": {"name": "message", "description": "The message to print", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "msg", "description": "Additional parameters will be separated by spaces", "since": "0.58.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": false}, "executable": {"name": "executable", "description": "Creates a new executable. The first argument specifies its name and\nthe remaining positional arguments define the input files to use.\n\nThe lists for the kwargs (such as `sources`, `objects`, and `dependencies`) are\nalways flattened, which means you can freely nest and add lists while\ncreating the final list.\n\nThe returned object also has methods that are documented in [[@exe]].", "since": null, "deprecated": null, "notes": [], "warnings": ["The `link_language` kwarg was broken until 0.55.0"], "example": null, "returns": [{"obj": "exe", "holds": []}], "returns_str": "exe", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "export_dynamic": {"name": "export_dynamic", "description": "when set to true causes the target's symbols to be\n dynamically exported, allowing modules built using the\n [[shared_module]] function to refer to functions,\n variables and other symbols defined in the executable itself. Implies\n the `implib` argument.\n", "since": "0.45.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implib": {"name": "implib", "description": "When set to true, an import library is generated for the\nexecutable (the name of the import library is based on *exe_name*).\nAlternatively, when set to a string, that gives the base name for\nthe import library. The import library is used when the returned\nbuild target object appears in `link_with:` elsewhere. Only has any\neffect on platforms where that is meaningful (e.g. Windows). Implies\nthe `export_dynamic` argument.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "str", "holds": []}], "type_str": "bool|str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pie": {"name": "pie", "description": "Build a position-independent executable.", "since": "0.49.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "files": {"name": "files", "description": "This command takes the strings given to it in arguments and returns\ncorresponding File objects that you can use as sources for build\ntargets. The difference is that file objects remember the subdirectory\nthey were defined in and can be used anywhere in the source tree.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "As an example suppose you have source file `foo.cpp` in subdirectory\n`bar1` and you would like to use it in a build target that is defined\nin `bar2`. To make this happen you first create the object in `bar1`\nlike this:\n\n```meson\n foofile = files('foo.cpp')\n```\n\nThen you can use it in `bar2` like this:\n\n```meson\n executable('myprog', 'myprog.cpp', foofile, ...)\n```\n\nMeson will then do the right thing.\n", "returns": [{"obj": "list", "holds": [{"obj": "file", "holds": []}]}], "returns_str": "list[file]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "file", "description": "Path to the file.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "find_program": {"name": "find_program", "description": "`program_name` here is a string that can be an executable or script\nto be searched for in `PATH` or other places inside the project.\nThe search order is:\n\n1. Program overrides set via [[meson.override_find_program]]\n1. [`[provide]` sections](Wrap-dependency-system-manual.md#provide-section)\n in subproject wrap files, if [`wrap_mode`](Builtin-options.md#core-options) is\n set to `forcefallback`\n1. [`[binaries]` section](Machine-files.md#binaries) in your machine files\n1. Directories provided using the `dirs:` kwarg (see below)\n1. Project's source tree relative to the current subdir\n - If you use the return value of [[configure_file]], the\n current subdir inside the build tree is used instead\n1. `PATH` environment variable\n1. [`[provide]` sections](Wrap-dependency-system-manual.md#provide-section) in\n subproject wrap files, if [`wrap_mode`](Builtin-options.md#core-options) is\n set to anything other than `nofallback`\n\nMeson will also autodetect scripts with a shebang line and run them\nwith the executable/interpreter specified in it both on Windows\n(because the command invocator will reject the command otherwise) and\nUnixes (if the script file does not have the executable bit set).\nHence, you *must not* manually add the interpreter while using this\nscript as part of a list of commands. Since *0.50.0* if the \"python3\"\nprogram is requested and it is not found in the system, Meson will return\nits current interpreter.\n\nIf you need to check for a program in a non-standard location, you can\njust pass an absolute path to `find_program`, e.g.\n\n```meson\nsetcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)\n```\n\nIt is also possible to pass an array to `find_program` in case you\nneed to construct the set of paths to search on the fly:\n\n```meson\nsetcap = find_program(['setcap', '/usr/sbin/setcap', '/sbin/setcap'], required : false)\n```\n\nThe returned [[@external_program]] object also has documented methods.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "external_program", "holds": []}], "returns_str": "external_program", "posargs": {"program_name": {"name": "program_name", "description": "The name of the program to search, or a [[@file]] object to be used\nwithout searching.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"dirs": {"name": "dirs", "description": "extra list of absolute paths where to look for program names.", "since": "0.53.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "disabler": {"name": "disabler", "description": "If `true` and the program couldn't be found, return a [[@disabler]] object\ninstead of a not-found object.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Defines how this executable should be searched. By default\nit is set to `false`, which causes Meson to first look for the\nexecutable in the cross file (when cross building) and if it is not\ndefined there, then from the system. If set to `true`, the cross\nfile is ignored and the program is only searched from the system.\n", "since": "0.43.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "When `true`, Meson will abort if no program can be found.\nIf `required` is set to `false`,\nMeson continue even if none of the programs can be found. You can\nthen use the `.found()` method on the returned [[@external_program]] to check\nwhether it was found or not. *(since 0.47.0)* The value of a\n[`feature`](Build-options.md#features) option can also be passed to the\n`required` keyword argument.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "specifies the required version, see\n[[dependency]] for argument format. The version of the program\nis determined by running `program_name --version` command. If stdout is empty\nit fallbacks to stderr. If the output contains more text than simply a version\nnumber, only the first occurrence of numbers separated by dots is kept.\nIf the output is more complicated than that, the version checking will have to\nbe done manually using [[run_command]].\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "fallback", "description": "These parameters are used as fallback names to search for.\nThis is meant to be used for cases where the\nprogram may have many alternative names, such as `foo` and\n`foo.py`. The function will check for the arguments one by one and the\nfirst one that is found is returned.\n", "since": "0.37.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "generator": {"name": "generator", "description": "See also: [[custom_target]]\n\nThis function creates a [[@generator]] object that can\nbe used to run custom compilation commands. The only positional\nargument is the executable to use. It can either be a self-built\nexecutable or one returned by find_program.\n\nThe template strings passed to all the keyword arguments accept\nthe following special substitutions:\n\n- `@PLAINNAME@`: the complete input file name, e.g: `foo.c` becomes `foo.c` (unchanged)\n- `@BASENAME@`: the base of the input filename, e.g.: `foo.c.y` becomes `foo.c` (extension is removed)\n\nEach string passed to the `output` keyword argument *must* be\nconstructed using one or both of these two substitutions.\n\nIn addition to the above substitutions, the `arguments` keyword\nargument also accepts the following:\n\n- `@OUTPUT@`: the full path to the output file\n- `@INPUT@`: the full path to the input file\n- `@DEPFILE@`: the full path to the depfile\n- `@SOURCE_DIR@`: the full path to the root of the source tree\n- `@CURRENT_SOURCE_DIR@`: this is the directory where the currently processed meson.build is located in\n- `@BUILD_DIR@`: the full path to the root of the build dir where the output will be placed\n\nNOTE: Generators should only be used for outputs that will ***only***\nbe used as inputs for a [[build_target]] or a [[custom_target]].\nWhen you use the processed output of a\ngenerator in multiple targets, the generator will be run multiple\ntimes to create outputs for each target. Each output will be created\nin a target-private directory `@BUILD_DIR@`.\n\nIf you want to generate files for general purposes such as for\ngenerating headers to be used by several sources, or data that will be\ninstalled, and so on, use a [[custom_target]] instead.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "generator", "holds": []}], "returns_str": "generator", "posargs": {"exe": {"name": "exe", "description": "Executable for the command to run", "since": null, "deprecated": null, "type": [{"obj": "exe", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "exe|external_program", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"arguments": {"name": "arguments", "description": "A list of template strings that will be the command line arguments passed to the executable.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "capture": {"name": "capture", "description": "When this argument is set to true, Meson captures `stdout`\nof the `executable` and writes it to the target file\nspecified as `output`.\n", "since": "0.43.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depends": {"name": "depends", "description": "An array of build targets that must be built before\nthis generator can be run. This is used if you have a generator that calls\na second executable that is built in this project.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "build_tgt", "holds": []}, {"obj": "custom_tgt", "holds": []}]}], "type_str": "list[build_tgt|custom_tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depfile": {"name": "depfile", "description": "A template string pointing to a dependency file that a\ngenerator can write listing all the additional files this target\ndepends on, for example a C compiler would list all the header files\nit included, and a change in any one of these files triggers a\nrecompilation,\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "output": {"name": "output", "description": "Template string (or list of template strings) defining\nhow an output file name is (or multiple output names are) generated\nfrom a single source file name.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "get_option": {"name": "get_option", "description": "Obtains the value of the [project build option](Build-options.md)\nspecified in the positional argument.\n\nNote that the value returned for built-in options that end in `dir`\nsuch as `bindir` and `libdir` is usually a path relative to (and\ninside) the `prefix` but you should not rely on that, as it can also\nbe an absolute path [in some cases](Builtin-options.md#universal-options).\n[`install_dir` arguments](Installing.md) handle that as expected\nbut if you need an absolute path, e.g. to use in a define etc.,\nyou should use the path concatenation operator like this:\n`get_option('prefix') / get_option('localstatedir')`.\nNever manually join paths as if they were strings.\n\nFor options of type `feature` a\n[[@feature]] option object\nis returned instead of a string.\nSee [`feature` options](Build-options.md#features)\ndocumentation for more details.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "returns_str": "str|int|bool|feature|list[str|int|bool]", "posargs": {"option_name": {"name": "option_name", "description": "Name of the option to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_variable": {"name": "get_variable", "description": "This function can be used to dynamically obtain a variable. `res =\nget_variable(varname, fallback)` takes the value of `varname` (which\nmust be a string) and stores the variable of that name into `res`. If\nthe variable does not exist, the variable `fallback` is stored to\n`res`instead. If a fallback is not specified, then attempting to read\na non-existing variable will cause a fatal error.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "any", "holds": []}], "returns_str": "any", "posargs": {"variable_name": {"name": "variable_name", "description": "Name of the variable to get", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"default": {"name": "default", "description": "Fallback value to return when the variable does not exist", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": false}, "import": {"name": "import", "description": "Imports the given extension module. Returns an object that can be used to call\nthe methods of the module. Here's an example for a hypothetical `testmod`\nmodule.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntmod = import('testmod')\ntmod.do_something()\n```\n", "returns": [{"obj": "module", "holds": []}], "returns_str": "module", "posargs": {"module_name": {"name": "module_name", "description": "Name of the module to import.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"disabler": {"name": "disabler", "description": "Returns a [[@disabler]] object when not found.", "since": "0.59.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "When set to `false`, Meson will proceed with the build even if the module is not found.\nWhen set to a [`feature`](Build-options.md#features) option, the feature will control if it is searched and whether to fail if not found.", "since": "0.59.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "include_directories": {"name": "include_directories", "description": "Returns an opaque object which contains the directories (relative to\nthe current directory) given in the positional arguments. The result\ncan then be passed to the `include_directories:` keyword argument when\nbuilding executables or libraries. You can use the returned object in\nany subdirectory you want, Meson will make the paths work\nautomatically.\n\nNote that this function call itself does not add the directories into\nthe search path, since there is no global search path. For something\nlike that, see [`add_project_arguments()`](#add_project_arguments).\n\nSee also `implicit_include_directories` parameter of\n[[executable]], which adds current source and build\ndirectories to include path.\n\nEach directory given is converted to two include paths: one that is\nrelative to the source root and one relative to the build root.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "For example, with the following source tree layout in\n`/home/user/project.git`:\n\n`meson.build`:\n```meson\nproject(...)\n\nsubdir('include')\nsubdir('src')\n\n...\n```\n\n`include/meson.build`:\n```meson\ninc = include_directories('.')\n\n...\n```\n\n`src/meson.build`:\n```meson\nsources = [...]\n\nexecutable('some-tool', sources,\n include_directories : inc,\n ...)\n\n...\n```\n\nIf the build tree is `/tmp/build-tree`, the following include paths\nwill be added to the `executable()` call: `-I/tmp/build-tree/include\n-I/home/user/project.git/include`.\n", "returns": [{"obj": "inc", "holds": []}], "returns_str": "inc", "posargs": {}, "optargs": {}, "kwargs": {"is_system": {"name": "is_system", "description": "If set to `true`, flags the specified directories as system directories.\nThis means that\nthey will be used with the `-isystem` compiler argument rather than\n`-I` on compilers that support this flag (in practice everything\nexcept Visual Studio).\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "includes", "description": "Include paths to add.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "install_data": {"name": "install_data", "description": "Installs files from the source tree that are listed as positional arguments.\n\nSee [Installing](Installing.md) for more examples.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"install_dir": {"name": "install_dir", "description": "The absolute or relative path to the installation directory.\nIf this is a relative path, it is assumed to be relative to the prefix.\n\nIf omitted, the directory defaults to `{datadir}/{projectname}` *(since 0.45.0)*.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "specify the file mode in symbolic format and\noptionally the owner/uid and group/gid for the installed files. For\nexample:\n\n`install_mode: 'rw-r--r--'` for just the file mode\n\n`install_mode: ['rw-r--r--', 'nobody', 'nogroup']` for the file mode and the user/group\n\n`install_mode: ['rw-r-----', 0, 0]` for the file mode and uid/gid\n\nTo leave any of these three as the default, specify `false`.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default these files have no install\ntag which means they are not being installed when `--tags` argument is specified.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "preserve_path": {"name": "preserve_path", "description": "Disable stripping child-directories from data files when installing.\n\nThis is equivalent to GNU Automake's `nobase` option.\n", "since": "0.64.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rename": {"name": "rename", "description": "If specified renames each source file into corresponding file from `rename` list.\nNested paths are allowed and they are\njoined with `install_dir`. Length of `rename` list must be equal to\nthe number of sources.\n", "since": "0.46.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional files to install.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "file", "description": "Files to install.", "since": null, "deprecated": null, "type": [{"obj": "file", "holds": []}, {"obj": "str", "holds": []}], "type_str": "file|str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "install_emptydir": {"name": "install_emptydir", "description": "Installs a new directory entry to the location specified by the positional\nargument. If the directory exists and is not empty, the contents are left in\nplace.", "since": "0.60.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format and optionally the owner/uid and\ngroup/gid for the created directory.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command to install only a\nsubset of the files. By default this directory has no install tag which\nmeans it is not installed when the `--tags` argument is specified.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "dirpath", "description": "Directory to create during installation.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "install_headers": {"name": "install_headers", "description": "Installs the specified header files from the source tree into the\nsystem header directory (usually `/{prefix}/include`) during the\ninstall step. This directory can be overridden by specifying it with\nthe `install_dir` keyword argument. If you just want to install into a\nsubdirectory of the system header directory, then use the `subdir`\nargument. As an example if this has the value `myproj` then the\nheaders would be installed to `/{prefix}/include/myproj`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "For example, this will install `common.h` and `kola.h` into\n`/{prefix}/include`:\n\n```meson\ninstall_headers('common.h', 'proj/kola.h')\n```\n\nThis will install `common.h` and `kola.h` into `/{prefix}/include/myproj`:\n\n```meson\ninstall_headers('common.h', 'proj/kola.h', subdir : 'myproj')\n```\n\nThis will install `common.h` and `kola.h` into `/{prefix}/cust/myproj`:\n\n```meson\ninstall_headers('common.h', 'proj/kola.h', install_dir : 'cust', subdir : 'myproj')\n```\n\nThis will install `common.h` into `/{prefix}/include` and `kola.h`\ninto `/{prefix}/include/proj/`:\n\n```meson\ninstall_headers('common.h, 'proj/kola.h', preserve_path : true)\n```\n", "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"install_dir": {"name": "install_dir", "description": "Where to install to.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "preserve_path": {"name": "preserve_path", "description": "Disable stripping child-direcories from header files when installing.\n\nThis is equivalent to GNU Automake's `nobase` option.\n", "since": "0.63.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "subdir": {"name": "subdir", "description": "Install to the `subdir` subdirectory of the default includedir.\n\nIncompatible with the `install_dir` kwarg.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "file", "description": "Header files to install.", "since": null, "deprecated": null, "type": [{"obj": "file", "holds": []}, {"obj": "str", "holds": []}], "type_str": "file|str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "install_man": {"name": "install_man", "description": "Installs the specified man files from the source tree into system's man directory\nduring the install step. This directory can be\noverridden by specifying it with the `install_dir` keyword argument.\n\n*(since 0.49.0)* [manpages are no longer compressed implicitly][install_man_49].\n\n[install_man_49]:\nhttps://mesonbuild.com/Release-notes-for-0-49-0.html#manpages-are-no-longer-compressed-implicitly", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {"install_dir": {"name": "install_dir", "description": "Where to install to.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "locale": {"name": "locale", "description": "Can be used to specify the locale\ninto which the\nman page will be installed within the manual page directory tree.\nAn example manual might be `foo.fr.1` with a locale of `fr`, such\nthat `{mandir}/{locale}/man{num}/foo.1` becomes the installed file.\n", "since": "0.58.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "file", "description": "Man pages to install.", "since": null, "deprecated": null, "type": [{"obj": "file", "holds": []}, {"obj": "str", "holds": []}], "type_str": "file|str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "install_subdir": {"name": "install_subdir", "description": "Installs the entire given subdirectory and its contents from the\nsource tree to the location specified by the keyword argument\n`install_dir`.\n\n*(since 0.45.0, deprecated since 0.60.0)* If the subdirectory does not exist\nin the source tree, an empty directory is created in the specified location.\nA newly created subdirectory may only be created in the keyword argument\n`install_dir`. There are a number of flaws with this method, and it was never\nintentionally designed to work this way, please use [[install_emptydir]]\ninstead.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "For a given directory `foo`:\n```text\nfoo/\n bar/\n file1\n file2\n```\n`install_subdir('foo', install_dir : 'share', strip_directory : false)` creates\n```text\nshare/\n foo/\n bar/\n file1\n file2\n```\n\n`install_subdir('foo', install_dir : 'share', strip_directory : true)` creates\n```text\nshare/\n bar/\n file1\n file2\n```\n\n`install_subdir('foo/bar', install_dir : 'share', strip_directory : false)` creates\n```text\nshare/\n bar/\n file1\n```\n\n`install_subdir('foo/bar', install_dir : 'share', strip_directory : true)` creates\n```text\nshare/\n file1\n```\n\n`install_subdir('new_directory', install_dir : 'share')` creates\n```text\nshare/\n new_directory/\n```\n", "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"subdir_name": {"name": "subdir_name", "description": "The sub-directory to install", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"exclude_directories": {"name": "exclude_directories", "description": "A list of directory names that should not be installed.\nNames are interpreted as paths relative to the `subdir_name` location.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "exclude_files": {"name": "exclude_files", "description": "A list of file names that should not be installed.\nNames are interpreted as paths relative to the `subdir_name` location.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "Where to install to.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default these files have no install\ntag which means they are not being installed when `--tags` argument is specified.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "strip_directory": {"name": "strip_directory", "description": "Install directory contents.\nIf `strip_directory=true` only the last component of the source path is used.\n", "since": "0.45.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "install_symlink": {"name": "install_symlink", "description": "Installs a symbolic link to `pointing_to` target under install_dir.", "since": "0.61.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"link_name": {"name": "link_name", "description": "Name of the created link under `install_dir`.\nIt cannot contain path separators. Those should go in `install_dir`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"install_dir": {"name": "install_dir", "description": "The absolute or relative path to the installation directory for the links.\nIf this is a relative path, it is assumed to be relative to the prefix.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default these files have no install\ntag which means they are not being installed when `--tags` argument is specified.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pointing_to": {"name": "pointing_to", "description": "Target to point the link to.\nCan be absolute or relative and that will be respected when creating the link.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "is_disabler": {"name": "is_disabler", "description": "Returns true if a variable is a disabler and false otherwise.", "since": "0.52.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"var": {"name": "var", "description": "The variable to test", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "is_variable": {"name": "is_variable", "description": "Returns true if a variable of the given name exists and false otherwise.", "since": "0.52.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"var": {"name": "var", "description": "The variable to test", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "jar": {"name": "jar", "description": "Build a jar from the specified Java source files. Keyword arguments\nare the same as [[executable]]'s, with the addition of\n`main_class` which specifies the main class to execute when running\nthe jar with `java -jar file.jar`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "jar", "holds": []}], "returns_str": "jar", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "java_resources": {"name": "java_resources", "description": "Resources to be added to the jar", "since": "0.62.0", "deprecated": null, "type": [{"obj": "structured_src", "holds": []}], "type_str": "structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "main_class": {"name": "main_class", "description": "Main class for running the built jar", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "join_paths": {"name": "join_paths", "description": "Joins the given strings into a file system path segment. For example\n`join_paths('foo', 'bar')` results in `foo/bar`. If any one of the\nindividual segments is an absolute path, all segments before it are\ndropped. That means that `join_paths('foo', '/bar')` returns `/bar`.\n\n*(since 0.49.0)* Using the `/` operator on strings is equivalent to calling\n[[join_paths]].\n\n```meson\n# res1 and res2 will have identical values\nres1 = join_paths(foo, bar)\nres2 = foo / bar\n```", "since": "0.36.0", "deprecated": null, "notes": [], "warnings": ["Don't use [[join_paths]] for sources in [[library]] and [[executable]]. You should use [[files]] instead."], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "part", "description": "The path parts to join.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": 1, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "library": {"name": "library", "description": "Builds a library that is either static, shared or both depending on\nthe value of `default_library`\nuser [option](https://mesonbuild.com/Builtin-options.html).\nYou should use this instead of [[shared_library]],\n[[static_library]] or\n[[both_libraries]] most of the time. This allows you\nto toggle your entire project (including subprojects) from shared to\nstatic with only one option. This option applies to libraries being\nbuilt internal to the entire project. For external dependencies, the\ndefault library type preferred is shared. This can be adapted on a per\nlibrary basis using the [[dependency]] `static` keyword.\n\nThe keyword arguments for this are the same as for\n[[build_target]]", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "lib", "holds": []}], "returns_str": "lib", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "darwin_versions": {"name": "darwin_versions", "description": "Defines the `compatibility version` and `current version` for the dylib on macOS.\nIf a list is specified, it must be\neither zero, one, or two elements. If only one element is specified\nor if it's not a list, the specified value will be used for setting\nboth compatibility version and current version. If unspecified, the\n`soversion` will be used as per the aforementioned rules.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|int|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pic": {"name": "pic", "description": "Builds the library as positional independent code\n(so it can be linked into a shared library). This\noption has no effect on Windows and OS X since it doesn't make\nsense on Windows and PIC cannot be disabled on OS X.\n", "since": "0.36.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prelink": {"name": "prelink", "description": "If `true` the object files in the target will be prelinked,\nmeaning that it will contain only one prelinked\nobject file rather than the individual object files.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "soversion": {"name": "soversion", "description": "A string or integer specifying the soversion of this shared library,\nsuch as `0`. On Linux and Windows this is used to set the\nsoversion (or equivalent) in the filename. For example, if\n`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one\nof the aliases of the Linux shared library would be\n`libfoo.so.4`. If this is not specified, the first part of `version`\nis used instead (see below). For example, if `version` is `3.6.0` and\n`soversion` is not defined, it is set to `3`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}], "type_str": "str|int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "A string specifying the version of this shared library,\nsuch as `1.1.0`. On Linux and OS X, this is used to set the shared\nlibrary version in the filename, such as `libfoo.so.1.1.0` and\n`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used\ninstead (see above).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "vs_module_defs": {"name": "vs_module_defs", "description": "Specify a Microsoft module definition file for controlling symbol exports,\netc., on platforms where that is possible (e.g. Windows).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "message": {"name": "message", "description": "This function prints its argument to stdout.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"text": {"name": "text", "description": "The message to print.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|int|bool|list[str|int|bool]|dict[str|int|bool]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "more_text", "description": "Additional text that will be printed separated by spaces.", "since": "0.54.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|int|bool|list[str|int|bool]|dict[str|int|bool]", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": false}, "project": {"name": "project", "description": "The first function called in each project, to initialize Meson.\n\nThe first argument to this function must be a string defining the name\nof this project.\n\nThe project name can be any string you want, it's not used for\nanything except descriptive purposes. However since it is written to\ne.g. the dependency manifest is usually makes sense to have it be the\nsame as the project tarball or pkg-config name. So for example you\nwould probably want to use the name _libfoobar_ instead of _The Foobar\nLibrary_.\n\nIt may be followed by the list of programming languages that the project uses.\n\n*(since 0.40.0)* The list of languages is optional.\n\nThese languages may be used both for `native: false` (the default)\n(host machine) targets and for `native: true` (build machine) targets.\n*(since 0.56.0)* The build machine compilers for the specified\nlanguages are not required.\n\nSupported values for languages are `c`, `cpp` (for `C++`), `cuda`, `d`,\n`objc`, `objcpp`, `fortran`, `java`, `cs` (for `C#`), `vala` and `rust`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"project_name": {"name": "project_name", "description": "The name of the project.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"default_options": {"name": "default_options", "description": "Accecpts strings in the form `key=value`\nwhich have the same format as options to `meson configure`.\nFor example to set the default project type you would\nset this: `default_options : ['buildtype=debugoptimized']`. Note\nthat these settings are only used when running Meson for the first\ntime. Global options such as `buildtype` can only be specified in\nthe master project, settings in subprojects are ignored. Project\nspecific options are used normally even in subprojects.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "license": {"name": "license", "description": "Takes a string or array of strings describing the license(s) the code is under.\n\nThis *should* be an [SPDX license expression](https://spdx.dev/ids/),\nusing the standardized license identifier from the [SPDX license\nlist](https://spdx.org/licenses/). Usually this would be something like\n`license : 'GPL-2.0-or-later'`. If there are multiple licenses you can use the\n`AND` and `OR` operators to join them: `license : 'Apache-2.0 OR GPL-2.0'`.\n\nFor backwards compatibility reasons you can also pass an array of\nlicenses here. This is not recommended, as it is ambiguous: `license :\n['Apache-2.0', 'GPL-2.0-only']` instead use an SPDX espression: `license\n: 'Apache-2.0 OR GPL-2.0-only'`, which makes it clear that the license\nmean OR, not AND.\n\nNote that the text is informal and is only written to the dependency\nmanifest. Meson does not do any license validation, you are responsible\nfor verifying that you abide by all licensing terms. You can access the\nvalue in your Meson build files with `meson.project_license()`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "meson_version": {"name": "meson_version", "description": "Takes a string describing which Meson version the project requires.\nUsually something like `>=0.28.0`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "subproject_dir": {"name": "subproject_dir", "description": "Specifies the top level directory name that holds Meson subprojects.\nThis is only meant as a compatibility option\nfor existing code bases that house their embedded source code in a\ncustom directory. All new projects should not set this but instead\nuse the default value. It should be noted that this keyword\nargument is ignored inside subprojects. There can be only one\nsubproject dir and it is set in the top level Meson file.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'subprojects'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "A free form string describing the version of this project.\nYou can access the value in your Meson build files\nwith [[meson.project_version]]. *(Since 0.57.0)* this can also be a\n[[@file]] object pointing to a file that contains exactly one line of\ntext.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "language", "description": "The languages that Meson should initialize.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "range": {"name": "range", "description": "Return an opaque object that can be only be used in `foreach` statements.\n\n
[[@range]] range([[@int]] stop)\n[[@range]] range([[@int]] start, [[@int]] stop[, [[@int]] step])
\n\n- `start` must be integer greater or equal to 0. Defaults to 0.\n- `stop` must be integer greater or equal to `start`.\n- `step` must be integer greater or equal to 1. Defaults to 1.\n\nIt cause the `foreach` loop to be called with the value from `start` included\nto `stop` excluded with an increment of `step` after each loop.", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "example": "```meson\n# Loop 15 times with i from 0 to 14 included.\nforeach i : range(15)\n ...\nendforeach\n```\n\nThe range object can also be assigned to a variable and indexed.\n```meson\nr = range(5, 10, 2)\nassert(r[2] == 9)\n```\n", "returns": [{"obj": "range", "holds": []}], "returns_str": "range", "posargs": {}, "optargs": {"start": {"name": "start", "description": "The start of the range", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "0", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "stop": {"name": "stop", "description": "The end of the range", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "step": {"name": "step", "description": "The loop increment", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "1", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "run_command": {"name": "run_command", "description": "Runs the command specified in positional arguments. `command` can be a\nstring, or the output of [[find_program]],\n[[files]] or [[configure_file]], or [a\ncompiler object](#compiler-object).\n\nReturns a [[@runresult]] object containing the result\nof the invocation. The command is run from an *unspecified* directory,\nand Meson will set three environment variables `MESON_SOURCE_ROOT`,\n`MESON_BUILD_ROOT` and `MESON_SUBDIR` that specify the source\ndirectory, build directory and subdirectory the target was defined in,\nrespectively.\n\nSee also [External commands](External-commands.md).", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "runresult", "holds": []}], "returns_str": "runresult", "posargs": {}, "optargs": {}, "kwargs": {"capture": {"name": "capture", "description": "If `true`, any output generated on stdout will be captured and returned by\nthe `.stdout()` method. If it is false, then `.stdout()` will return an\nempty string.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "check": {"name": "check", "description": "If `true`, the exit status code of the command will be checked,\nand the configuration will fail if it is non-zero. Note that\nthe default value will be `true` in future releases.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "env": {"name": "env", "description": "environment variables to set,\nsuch as `['NAME1=value1', 'NAME2=value2']`,\nor an [[@env]] object which allows more sophisticated\nenvironment juggling. *(Since 0.52.0)* A dictionary is also accepted.\n", "since": "0.50.0", "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "env|list[str]|dict[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "command", "description": "The command to execute during the setup process.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "str|file|external_program", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "run_target": {"name": "run_target", "description": "This function creates a new top-level target that runs a specified\ncommand with the specified arguments. Like all top-level targets, this\nintegrates with the selected backend. For instance, you can run it as\n`meson compile target_name`. Note that a run target produces no output\nas far as Meson is concerned. It is only meant for tasks such as\nrunning a code formatter or flashing an external device's firmware\nwith a built file.\n\nThe command is run from an *unspecified* directory, and Meson will set\nthree environment variables `MESON_SOURCE_ROOT`, `MESON_BUILD_ROOT`\nand `MESON_SUBDIR` that specify the source directory, build directory\nand subdirectory the target was defined in, respectively.\n\n*Since 0.57.0* The template strings passed to `command` keyword arguments accept\nthe following special substitutions:\n- `@SOURCE_ROOT@`: the path to the root of the source tree. Depending on the backend,\n this may be an absolute or a relative to current workdir path.\n- `@BUILD_ROOT@`: the path to the root of the build tree. Depending on the backend,\n this may be an absolute or a relative to current workdir path.\n- `@CURRENT_SOURCE_DIR@` *Since 0.57.1*: this is the directory where the currently\n processed meson.build is located in. Depending on the backend,\n this may be an absolute or a relative to current workdir path.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "run_tgt", "holds": []}], "returns_str": "run_tgt", "posargs": {"target_name": {"name": "target_name", "description": "The name of the run target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"command": {"name": "command", "description": "A list containing the command to run and the arguments\nto pass to it. Each list item may be a string or a target. For\ninstance, passing the return value of [[executable]]\nas the first item will run that executable, or passing a string as\nthe first item will find that command in `PATH` and run it.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "exe", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[exe|external_program|custom_tgt|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depends": {"name": "depends", "description": "A list of targets that this target depends on but which\nare not listed in the command array (because, for example, the\nscript does file globbing internally)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "build_tgt", "holds": []}, {"obj": "custom_tgt", "holds": []}]}], "type_str": "list[build_tgt|custom_tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "env": {"name": "env", "description": "environment variables to set, such as\n`{'NAME1': 'value1', 'NAME2': 'value2'}` or `['NAME1=value1', 'NAME2=value2']`,\nor an [[@env]] object which allows more sophisticated environment juggling.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "env|list[str]|dict[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "set_variable": {"name": "set_variable", "description": "Assigns a value to the given variable name. Calling\n`set_variable('foo', bar)` is equivalent to `foo = bar`.\n\n*(since 0.46.1)* The `value` parameter can be an array type.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"variable_name": {"name": "variable_name", "description": "The name of the variable to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "value": {"name": "value", "description": "The value to set the variable to", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": false}, "shared_library": {"name": "shared_library", "description": "Builds a shared library with the given sources.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "lib", "holds": []}], "returns_str": "lib", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "darwin_versions": {"name": "darwin_versions", "description": "Defines the `compatibility version` and `current version` for the dylib on macOS.\nIf a list is specified, it must be\neither zero, one, or two elements. If only one element is specified\nor if it's not a list, the specified value will be used for setting\nboth compatibility version and current version. If unspecified, the\n`soversion` will be used as per the aforementioned rules.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|int|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "soversion": {"name": "soversion", "description": "A string or integer specifying the soversion of this shared library,\nsuch as `0`. On Linux and Windows this is used to set the\nsoversion (or equivalent) in the filename. For example, if\n`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one\nof the aliases of the Linux shared library would be\n`libfoo.so.4`. If this is not specified, the first part of `version`\nis used instead (see below). For example, if `version` is `3.6.0` and\n`soversion` is not defined, it is set to `3`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}], "type_str": "str|int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "A string specifying the version of this shared library,\nsuch as `1.1.0`. On Linux and OS X, this is used to set the shared\nlibrary version in the filename, such as `libfoo.so.1.1.0` and\n`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used\ninstead (see above).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "vs_module_defs": {"name": "vs_module_defs", "description": "Specify a Microsoft module definition file for controlling symbol exports,\netc., on platforms where that is possible (e.g. Windows).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "shared_module": {"name": "shared_module", "description": "Builds a shared module with the given sources.\n\nThis is useful for building modules that will be `dlopen()`ed and\nhence may contain undefined symbols that will be provided by the\nlibrary that is loading it.\n\nIf you want the shared module to be able to refer to functions and\nvariables defined in the [[executable]] it is loaded by,\nyou will need to set the `export_dynamic` argument of the executable to\n`true`.", "since": "0.37.0", "deprecated": null, "notes": ["*Linking to a shared module on platforms other than Android is deprecated, and will be an error\nin the future*.\nIt was previously allowed because it was the only way to have a shared-library-like target that\ncontained references to undefined symbols. However, since 0.40.0, the `override_options:`\n[[build_target]] keyword argument can be used to create such a [[shared_library]] by passing\n`override_options: 'b_lundef=false'`. Shared modules have other characteristics that make\nthem incompatible with linking, such as a lack of SONAME.\nOn macOS and iOS, linking to shared modules is disallowed by the linker, so we disallow it at\nconfigure time.\nOn Android, if a shared module `foo` uses symbols from another shared module `bar`, `foo` must\nalso be linked to `bar`. Hence, linking one shared module to another will always be allowed when\nbuilding for Android.\n"], "warnings": [], "example": null, "returns": [{"obj": "build_tgt", "holds": []}], "returns_str": "build_tgt", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "vs_module_defs": {"name": "vs_module_defs", "description": "Specify a Microsoft module definition file for controlling symbol exports,\netc., on platforms where that is possible (e.g. Windows).\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "static_library": {"name": "static_library", "description": "Builds a static library with the given sources.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "lib", "holds": []}], "returns_str": "lib", "posargs": {"target_name": {"name": "target_name", "description": "The *unique* name of the build target", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"_args": {"name": "_args", "description": "compiler flags to use for the given language;\neg: `cpp_args` for C++\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "_pch": {"name": "_pch", "description": "precompiled header file to use for the given language", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_by_default": {"name": "build_by_default", "description": "Causes, when set to `true`, to have this target be built by default.\nThis means it will be built when `meson compile` is called without any\narguments. The default value is `true` for all built target types.\n", "since": "0.38.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "build_rpath": {"name": "build_rpath", "description": "A string to add to target's rpath definition in the build dir,\nbut which will be removed on install\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_debug": {"name": "d_debug", "description": "The [D version identifiers](https://dlang.org/spec/version.html#version) to add\nduring the compilation of D source files.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_import_dirs": {"name": "d_import_dirs", "description": "List of directories to look in for string imports used in the D programming language.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_module_versions": {"name": "d_module_versions", "description": "List of module version identifiers set when compiling D sources.", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "d_unittest": {"name": "d_unittest", "description": "When set to true, the D modules are compiled in debug mode.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "one or more dependency objects\ncreated with\n[[dependency]] or [[compiler.find_library]]\n(for external deps) or [[declare_dependency]]\n(for deps built by the project)\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "extra_files": {"name": "extra_files", "description": "Not used for the build itself but are shown as source files in IDEs\nthat group files by targets (such as Visual Studio)\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gnu_symbol_visibility": {"name": "gnu_symbol_visibility", "description": "Specifies how symbols should be exported, see\ne.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more\ninformation. This value can either be an empty string or one of\n`default`, `internal`, `hidden`, `protected` or `inlineshidden`, which\nis the same as `hidden` but also includes things like C++ implicit\nconstructors as specified in the GCC manual. Ignored on compilers that\ndo not support GNU visibility arguments.\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "gui_app": {"name": "gui_app", "description": "When set to true flags this target as a GUI application\non platforms where this makes a differerence, **deprecated** since\n0.56.0, use `win_subsystem` instead.\n", "since": null, "deprecated": "0.56.0", "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "implicit_include_directories": {"name": "implicit_include_directories", "description": "Controls whether Meson adds the current source and build directories to the include path", "since": "0.42.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "one or more objects created with the [[include_directories]] function,\nor *(since 0.50.0)* strings, which will be transparently expanded to include directory objects\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "inc", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[inc|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install": {"name": "install", "description": "When set to true, this executable should be installed.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_dir": {"name": "install_dir", "description": "override install directory for this file. If the value is a relative path,\nit will be considered relative the `prefix` option.\nFor example, if you want to install plugins into a subdir, you'd use\nsomething like this: `install_dir : get_option('libdir') / 'projectname-1.0'`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_mode": {"name": "install_mode", "description": "Specify the file mode in symbolic format\nand optionally the owner/uid and group/gid for the installed files.\n\nSee the `install_mode` kwarg of [[install_data]] for more information.\n", "since": "0.47.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}]}], "type_str": "list[str|int]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_rpath": {"name": "install_rpath", "description": "A string to set the target's rpath to after install\n(but *not* before that). On Windows, this argument has no effect.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files. By default all build targets have the\ntag `runtime` except for static libraries that have the `devel` tag.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Flags to use during linking. You can use UNIX-style\nflags here for all platforms.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_depends": {"name": "link_depends", "description": "Strings, files, or custom targets the link step depends on\nsuch as a symbol visibility map. The purpose is to\nautomatically trigger a re-link (but not a re-compile) of the target\nwhen this file changes.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_language": {"name": "link_language", "description": "Makes the linker for this target be for the specified language.\nIt is generally unnecessary to set\nthis, as Meson will detect the right linker to use in most cases. There are\nonly two cases where this is needed. One, your main function in an\nexecutable is not in the language Meson picked, or second you want to force\na library to use only one ABI.\n\n*(broken until 0.55.0)*\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_whole": {"name": "link_whole", "description": "Links all contents of the given static libraries\nwhether they are used by not, equivalent to the `-Wl,--whole-archive` argument flag of GCC.\n\n*(since 0.41.0)* If passed a list that list will be flattened.\n\n*(since 0.51.0)* This argument also accepts outputs produced by\ncustom targets. The user must ensure that the output is a library in\nthe correct format.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_with": {"name": "link_with", "description": "One or more shared or static libraries\n(built by this project) that this target should be linked with. *(since 0.41.0)* If passed a\nlist this list will be flattened. *(since 0.51.0)* The arguments can also be custom targets.\nIn this case Meson will assume that merely adding the output file in the linker command\nline is sufficient to make linking work. If this is not sufficient,\nthen the build system writer must write all other steps manually.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "lib", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}]}], "type_str": "list[lib|custom_tgt|custom_idx]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_prefix": {"name": "name_prefix", "description": "The string that will be used as the prefix for the\ntarget output filename by overriding the default (only used for\nlibraries). By default this is `lib` on all platforms and compilers,\nexcept for MSVC shared libraries where it is omitted to follow\nconvention, and Cygwin shared libraries where it is `cyg`.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name_suffix": {"name": "name_suffix", "description": "The string that will be used as the extension for the\ntarget by overriding the default. By default on Windows this is\n`exe` for executables and on other platforms it is omitted.\n\nFor shared libraries, the default value\nis `dylib` on macOS, `dll` on Windows, and `so` everywhere else.\nFor static libraries, it is `a` everywhere. By convention MSVC\nstatic libraries use the `lib` suffix, but we use `a` to avoid a\npotential name clash with shared libraries which also generate\nimport libraries with a `lib` suffix.\n\nSet this to `[]`, or omit the keyword argument for the default behaviour.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "void", "holds": []}]}], "type_str": "str|list[void]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "native": {"name": "native", "description": "Controls whether the target is compiled for the build or host machines.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "objects": {"name": "objects", "description": "List of object files that should be linked in this target.\nThese can include third party products you don't have source to,\nor object files produced by other build targets.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "extracted_obj", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[extracted_obj|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "override_options": {"name": "override_options", "description": "takes an array of strings in the same format as `project`'s `default_options`\noverriding the values of these options\nfor this target only.\n", "since": "0.40.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pic": {"name": "pic", "description": "Builds the library as positional independent code\n(so it can be linked into a shared library). This\noption has no effect on Windows and OS X since it doesn't make\nsense on Windows and PIC cannot be disabled on OS X.\n", "since": "0.36.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prelink": {"name": "prelink", "description": "If `true` the object files in the target will be prelinked,\nmeaning that it will contain only one prelinked\nobject file rather than the individual object files.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "rust_crate_type": {"name": "rust_crate_type", "description": "Set the specific type of rust crate to compile (when compiling rust).\n\nIf the target is an [[executable]] this defaults to \"bin\", the only\nallowed value.\n\nIf it is a [[static_library]] it defaults to \"lib\", and may be \"lib\",\n\"staticlib\", or \"rlib\". If \"lib\" then Rustc will pick a default, \"staticlib\"\nmeans a C ABI library, \"rlib\" means a Rust ABI.\n\nIf it is a [[shared_library]] it defaults to \"lib\", and may be \"lib\",\n\"dylib\", \"cdylib\", or \"proc-macro\". If \"lib\" then Rustc will pick a\ndefault, \"cdylib\" means a C ABI library, \"dylib\" means a Rust ABI, and\n\"proc-macro\" is a special rust proceedural macro crate.\n\n\"proc-macro\" is new in 0.62.0.\n", "since": "0.42.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Additional source files. Same as the source varargs.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}, {"obj": "structured_src", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list|structured_src", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "win_subsystem": {"name": "win_subsystem", "description": "Specifies the subsystem type to use\non the Windows platform. Typical values include `console` for text\nmode programs and `windows` for gui apps. The value can also contain\nversion specification such as `windows,6.0`. See [MSDN\ndocumentation](https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem)\nfor the full list.\n", "since": "0.56.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'console'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "structured_sources": {"name": "structured_sources", "description": "Create a StructuredSource object, which is opaque and may be passed as a source\nto any build_target (including static_library, shared_library, executable,\netc.). This is useful for languages like Rust, which use the filesystem layout\nto determine import names. This is only allowed in Rust targets, and cannot be\nmixed with non structured inputs.", "since": "0.62.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "structured_src", "holds": []}], "returns_str": "structured_src", "posargs": {"root": {"name": "root", "description": "Sources to put at the root of the generated structure", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}]}], "type_str": "list[str|file|custom_tgt|custom_idx|generated_list]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"additional": {"name": "additional", "description": "Additional sources, where the key is the directory under the root to place\nthe values\n", "since": null, "deprecated": null, "type": [{"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}]}], "type_str": "dict[str|file|custom_tgt|custom_idx|generated_list]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "subdir": {"name": "subdir", "description": "Enters the specified subdirectory and executes the `meson.build` file in it.\nOnce that is done, it returns and execution continues on the\nline following this `subdir()` command. Variables defined in that\n`meson.build` file are then available for use in later parts of the\ncurrent build file and in all subsequent build files executed with\n`subdir()`.\n\nNote that this means that each `meson.build` file in a source tree can\nand must only be executed once.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"dir_name": {"name": "dir_name", "description": "Directory relative to the current `meson.build` to enter.\n\nCannot contain `..`\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"if_found": {"name": "if_found", "description": "Only enter the subdir if all [[dep.found]] methods return `true`.", "since": "0.44.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "subdir_done": {"name": "subdir_done", "description": "Stops further interpretation of the Meson script file from the point\nof the invocation. All steps executed up to this point are valid and\nwill be executed by Meson. This means that all targets defined before\nthe call of [[subdir_done]] will be build.\n\nIf the current script was called by `subdir` the execution returns to\nthe calling directory and continues as if the script had reached the\nend. If the current script is the top level script Meson configures\nthe project as defined up to this point.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": "```meson\nproject('example exit', 'cpp')\nexecutable('exe1', 'exe1.cpp')\nsubdir_done()\nexecutable('exe2', 'exe2.cpp')\n```\n\nThe executable `exe1` will be build, while the executable `exe2` is not\nbuild.\n", "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "subproject": {"name": "subproject", "description": "Takes the project specified in the positional argument and brings that\nin the current build specification by returning a [[@subproject]] object.\nSubprojects must always be placed inside\nthe `subprojects` directory at the top source directory. So for\nexample a subproject called `foo` must be located in\n`${MESON_SOURCE_ROOT}/subprojects/foo`.\n\n- `default_options` *(since 0.37.0)*: an array of default option values\n that override those set in the subproject's `meson_options.txt`\n (like `default_options` in `project`, they only have effect when\n Meson is run for the first time, and command line arguments override\n any default options in build files). *(since 0.54.0)*: `default_library`\n built-in option can also be overridden.\n- `version`: works just like the same as in `dependency`.\n It specifies what version the subproject should be, as an example `>=1.0.1`\n- `required` *(since 0.48.0)*: By default, `required` is `true` and\n Meson will abort if the subproject could not be setup. You can set\n this to `false` and then use the `.found()` method on the [[@subproject]]\n object. You may also pass the value of a\n [`feature`](Build-options.md#features) option, same as\n [[dependency]].\n\nNote that you can use the returned [[@subproject]] object\nto access any variable in the\nsubproject. However, if you want to use a dependency object from\ninside a subproject, an easier way is to use the `fallback:` keyword\nargument to [[dependency]].\n\n[See additional documentation](Subprojects.md).", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "subproject", "holds": []}], "returns_str": "subproject", "posargs": {"subproject_name": {"name": "subproject_name", "description": "Name of the subproject. The subproject must exist in the `subprojects`\ndirectory (or the directory specified in the `subproject_dir` of\n[[project]]) as a directory or wrap file.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"default_options": {"name": "default_options", "description": "An array of default option values\nthat override those set in the subproject's `meson_options.txt`\n(like `default_options` in [[project]], they only have effect when\nMeson is run for the first time, and command line arguments override\nany default options in build files). *(since 0.54.0)*: `default_library`\nbuilt-in option can also be overridden.\n", "since": "0.37.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "Works just the same as in [[dependency]].\n", "since": "0.48.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "version": {"name": "version", "description": "Works just like the same as in [[dependency]].\nIt specifies what version the subproject should be, as an example `>=1.0.1`.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "summary": {"name": "summary", "description": "This function is used to summarize build configuration at the end of the build\nprocess. This function provides a way for projects (and subprojects) to report\nthis information in a clear way.\n\nThe content is a series of key/value pairs grouped into sections. If\nthe section keyword argument is omitted, those key/value pairs are\nimplicitly grouped into a section with no title. key/value pairs can\noptionally be grouped into a dictionary, but keep in mind that\ndictionaries do not guarantee ordering. `key` must be string,\n`value` can be:\n\n- an integer, boolean or string\n- *since 0.57.0* an external program or a dependency\n- *since 0.58.0* a feature option\n- a list of those.\n\nInstead of calling summary as `summary(key, value)`, it is also possible to\ndirectly pass a dictionary to the [[summary]] function, as seen in the example\nbelow.\n\n`summary()` can be called multiple times as long as the same\nsection/key pair doesn't appear twice. All sections will be collected\nand printed at the end of the configuration in the same order as they\nhave been called.", "since": "0.53.0", "deprecated": null, "notes": [], "warnings": [], "example": "Example `meson.build`:\n```meson\nproject('My Project', version : '1.0')\nsummary({'bindir': get_option('bindir'),\n 'libdir': get_option('libdir'),\n 'datadir': get_option('datadir'),\n }, section: 'Directories')\nsummary({'Some boolean': false,\n 'Another boolean': true,\n 'Some string': 'Hello World',\n 'A list': ['string', 1, true],\n }, section: 'Configuration')\n```\n\nOutput:\n```\nMy Project 1.0\n\n Directories\n prefix : /opt/gnome\n bindir : bin\n libdir : lib/x86_64-linux-gnu\n datadir : share\n\n Configuration\n Some boolean : False\n Another boolean: True\n Some string : Hello World\n A list : string\n 1\n True\n```\n", "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"key_or_dict": {"name": "key_or_dict", "description": "The name of the new entry, or a dict containing multiple entries. If a\ndict is passed it is equivalent to calling summary() once for each\nkey-value pair. Keep in mind that dictionaries do not guarantee\nordering.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "int", "holds": []}, {"obj": "dep", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "int", "holds": []}, {"obj": "dep", "holds": []}, {"obj": "external_program", "holds": []}]}]}], "type_str": "str|dict[str|bool|int|dep|external_program|list[str|bool|int|dep|external_program]]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"value": {"name": "value", "description": "The value to print for the `key`. Only valid if `key_or_dict` is a str.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "int", "holds": []}, {"obj": "dep", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "int", "holds": []}, {"obj": "dep", "holds": []}, {"obj": "external_program", "holds": []}]}], "type_str": "str|bool|int|dep|external_program|list[str|bool|int|dep|external_program]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {"bool_yn": {"name": "bool_yn", "description": "Convert bool values to yes and no", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "list_sep": {"name": "list_sep", "description": "The separator to use when printing list values in this summary. If no\nseparator is given, each list item will be printed on its own line.\n", "since": "0.54.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "section": {"name": "section", "description": "The section to put this summary information under. If the section keyword argument is omitted, key/value pairs are implicitly grouped into a section with no title.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": false}, "test": {"name": "test", "description": "Defines a test to run with the test harness. Takes two positional\narguments, the first is the name of the test and the second is the\nexecutable to run. The executable can be an [[@exe]] object returned by\n[[executable]] or an [[@external_program]] object] returned by\n[[find_program]].\n\n*(since 0.55.0)* When cross compiling, if an exe_wrapper is needed and\ndefined the environment variable `MESON_EXE_WRAPPER` will be set to\nthe string value of that wrapper (implementation detail: using\n`mesonlib.join_args`). Test scripts may use this to run cross built\nbinaries. If your test needs `MESON_EXE_WRAPPER` in cross build\nsituations it is your responsibility to return code 77 to tell the\nharness to report \"skip\".\n\nBy default, environment variable\n[`MALLOC_PERTURB_`](http://man7.org/linux/man-pages/man3/mallopt.3.html)\nis automatically set by `meson test` to a random value between 1..255.\nThis can help find memory leaks on configurations using glibc,\nincluding with non-GCC compilers. However, this can have a performance\nimpact, and may fail a test due to external libraries whose internals\nare out of the user's control. To check if this feature is causing an\nexpected runtime crash, disable the feature by temporarily setting\nenvironment variable `MALLOC_PERTURB_=0`. While it's preferable to\nonly temporarily disable this check, if a project requires permanent\ndisabling of this check in meson.build do like:\n\n```meson\nnomalloc = environment({'MALLOC_PERTURB_': '0'})\n\ntest(..., env: nomalloc, ...)\n```\n\nIn addition to running individual executables as test cases, `test()`\ncan also be used to invoke an external test harness. In this case,\nit is best to use `verbose: true` *(since 0.62.0)* and, if supported\nby the external harness, `protocol: 'tap'` *(since 0.50.0)*. This will\nensure that Meson logs each subtest as it runs, instead of including\nthe whole log at the end of the run.\n\nDefined tests can be run in a backend-agnostic way by calling\n`meson test` inside the build dir, or by using backend-specific\ncommands, such as `ninja test` or `msbuild RUN_TESTS.vcxproj`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"name": {"name": "name", "description": "The *unique* test id", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "executable": {"name": "executable", "description": "The program to execute", "since": null, "deprecated": null, "type": [{"obj": "exe", "holds": []}, {"obj": "jar", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "file", "holds": []}], "type_str": "exe|jar|external_program|file", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Arguments to pass to the executable", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "tgt", "holds": []}]}], "type_str": "list[str|file|tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "depends": {"name": "depends", "description": "specifies that this test depends on the specified\ntarget(s), even though it does not take any of them as a command\nline argument. This is meant for cases where test finds those\ntargets internally, e.g. plugins or globbing. Those targets are built\nbefore test is executed even if they have `build_by_default : false`.\n", "since": "0.46.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "build_tgt", "holds": []}, {"obj": "custom_tgt", "holds": []}]}], "type_str": "list[build_tgt|custom_tgt]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "env": {"name": "env", "description": "environment variables to set, such as `['NAME1=value1',\n'NAME2=value2']`, or an [[@env]] object which allows more sophisticated\nenvironment juggling. *(Since 0.52.0)* A dictionary is also accepted.\n", "since": null, "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "env|list[str]|dict[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "is_parallel": {"name": "is_parallel", "description": "when false, specifies that no other test must be\nrunning at the same time as this test\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "priority": {"name": "priority", "description": "specifies the priority of a test. Tests with a\nhigher priority are *started* before tests with a lower priority.\nThe starting order of tests with identical priorities is\nimplementation-defined. The default priority is 0, negative numbers are\npermitted.\n", "since": "0.52.0", "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "0", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "protocol": {"name": "protocol", "description": "specifies how the test results are parsed and can\nbe one of `exitcode`, `tap`, or `gtest`. For more information about test\nharness protocol read [Unit Tests](Unit-tests.md). The following values are\naccepted:\n\n- `exitcode`: the executable's exit code is used by the test harness\n to record the outcome of the test).\n- `tap`: [Test Anything Protocol](https://www.testanything.org/).\n- `gtest` *(since 0.55.0)*: for Google Tests.\n- `rust` *(since 0.56.0)*: for native rust tests\n", "since": "0.50.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'exitcode'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "should_fail": {"name": "should_fail", "description": "when true the test is considered passed if the\nexecutable returns a non-zero return value (i.e. reports an error)\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "suite": {"name": "suite", "description": "`'label'` (or list of labels `['label1', 'label2']`)\nattached to this test. The suite name is qualified by a (sub)project\nname resulting in `(sub)project_name:label`. In the case of a list\nof strings, the suite names will be `(sub)project_name:label1`,\n`(sub)project_name:label2`, etc.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "timeout": {"name": "timeout", "description": "the amount of seconds the test is allowed to run, a test\nthat exceeds its time limit is always considered failed, defaults to\n30 seconds. *Since 0.57* if timeout is `<= 0` the test has infinite duration,\nin previous versions of Meson the test would fail with a timeout immediately.\n", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "30", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "verbose": {"name": "verbose", "description": "if true, forces the test results to be logged as if `--verbose` was passed\nto `meson test`.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "workdir": {"name": "workdir", "description": "absolute path that will be used as the working directory\nfor the test\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "unset_variable": {"name": "unset_variable", "description": "Unsets a variable.\nReferencing a variable which has been unset is an error until it has been set again.", "since": "0.60.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"varname": {"name": "varname", "description": "The variable to unset.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "vcs_tag": {"name": "vcs_tag", "description": "This command detects revision control commit information at build time\nand places it in the specified output file. This file is guaranteed to\nbe up to date on every build. Keywords are similar to [[custom_target]].\n\nMeson will read the contents of `input`, substitute the\n`replace_string` with the detected revision number, and write the\nresult to `output`. This method returns a\n[[@custom_tgt]] object that (as usual) should be\nused to signal dependencies if other targets use the file outputted\nby this.\n\nFor example, if you generate a header with this and want to use that\nin a build target, you must add the return value to the sources of\nthat build target. Without that, Meson will not know the order in\nwhich to build the targets.\n\nIf you desire more specific behavior than what this command provides,\nyou should use [[custom_target]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "custom_tgt", "holds": []}], "returns_str": "custom_tgt", "posargs": {}, "optargs": {}, "kwargs": {"command": {"name": "command", "description": "The command to execute, see [[custom_target]] for details\non how this command must be specified.\n\nThis parameter is optional. If it is absent, Meson will try\nits best to find a suitable default command.\n\n*(since 0.62.0)* [[@file]] is accepted.\n\n*(since 0.63.0)* [[@custom_tgt]], [[@exe]], and [[@external_program]] are accepted.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "exe", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "file", "holds": []}, {"obj": "str", "holds": []}]}], "type_str": "list[exe|external_program|custom_tgt|file|str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "fallback": {"name": "fallback", "description": "Version number to use when no revision control information is present,\nsuch as when building from a release tarball.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "[[meson.project_version]]", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "input": {"name": "input", "description": "File to modify (e.g. `version.c.in`).", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "output": {"name": "output", "description": "File to write the results to (e.g. `version.c`).", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "replace_string": {"name": "replace_string", "description": "String in the input file to substitute with the commit information.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'@VCS_TAG@'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "warning": {"name": "warning", "description": "This function prints its argument to stdout prefixed with WARNING:.", "since": "0.44.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"text": {"name": "text", "description": "The message to print.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|int|bool|list[str|int|bool]|dict[str|int|bool]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "more_text", "description": "Additional text that will be printed separated by spaces.", "since": "0.54.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}]}], "type_str": "str|int|bool|list[str|int|bool]|dict[str|int|bool]", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": false}}, "objects": {"alias_tgt": {"name": "alias_tgt", "description": "Opaque object returned by [[alias_target]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "tgt", "returned_by": ["alias_target"], "extended_by": [], "methods": {}}, "any": {"name": "any", "description": "A placeholder representing all types.\nThis includes builtin, as well as returned objects.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": false, "example": null, "extends": null, "returned_by": ["get_variable", "get", "get", "get_cross_property", "get_external_property", "get_variable"], "extended_by": [], "methods": {}}, "bool": {"name": "bool", "description": "A boolean object which is either `true` or `false`", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": false, "example": null, "extends": null, "returned_by": ["add_languages", "get_option", "is_disabler", "is_variable", "found", "get", "get_unquoted", "has", "check_header", "compiles", "has_argument", "has_function", "has_function_attribute", "has_header", "has_header_symbol", "has_link_argument", "has_member", "has_members", "has_multi_arguments", "has_multi_link_arguments", "has_type", "links", "symbols_have_underscore_prefix", "found", "has_key", "found", "found", "allowed", "auto", "disabled", "enabled", "is_even", "is_odd", "contains", "can_run_host_binaries", "has_exe_wrapper", "has_external_property", "is_cross_build", "is_subproject", "is_unity", "found", "compiled", "contains", "endswith", "startswith", "version_compare", "found"], "extended_by": [], "methods": {"to_int": {"name": "to_int", "description": "Returns `1` if `true` and `0` if `false`", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "to_string": {"name": "to_string", "description": "Returns the string `'true'` if the boolean is true or `'false'` otherwise.\nYou can also pass it two strings as positional\narguments to specify what to return for true/false. For instance,\n`bool.to_string('yes', 'no')` will return `yes` if the boolean is\ntrue and `no` if it is false.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {"true_str": {"name": "true_str", "description": "The string to return when the boolean is `true`", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'true'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "false_str": {"name": "false_str", "description": "The string to return when the boolean is `false`", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'false'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "both_libs": {"name": "both_libs", "description": "Container for both a static and shared library.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "lib", "returned_by": ["both_libraries"], "extended_by": [], "methods": {"get_shared_lib": {"name": "get_shared_lib", "description": "Returns the stored shared library", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "lib", "holds": []}], "returns_str": "lib", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_static_lib": {"name": "get_static_lib", "description": "Returns the stored static library", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "lib", "holds": []}], "returns_str": "lib", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "build_machine": {"name": "build_machine", "description": "Provides information about the build machine -- the machine that is doing the actual compilation.\nSee [Cross-compilation](Cross-compilation.md).\n\nCurrently, these values are populated using\n[`platform.system()`](https://docs.python.org/3.7/library/platform.html#platform.system) and\n[`platform.machine()`](https://docs.python.org/3.7/library/platform.html#platform.machine).\nIf you think the returned values for any of these are incorrect for\nyour system or CPU, or if your OS is not in the linked table, please\n[file a bug](https://github.com/mesonbuild/meson/issues/new) report\nwith details and we'll look into it.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "BUILTIN", "is_container": false, "example": null, "extends": null, "returned_by": [], "extended_by": ["host_machine", "target_machine"], "methods": {"cpu": {"name": "cpu", "description": "Returns a more specific CPU name, such as `i686`, `amd64`, etc.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "cpu_family": {"name": "cpu_family", "description": "Returns the CPU family name.\n[This table](Reference-tables.md#cpu-families) contains\nall known CPU families. These are guaranteed to continue working.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "endian": {"name": "endian", "description": "returns `'big'` on big-endian systems and `'little'` on little-endian systems.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "system": {"name": "system", "description": "Returns the operating system name.\n[This table](Reference-tables.md#operating-system-names) Lists\nall of the currently known Operating System names, these are\nguaranteed to continue working.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "build_tgt": {"name": "build_tgt", "description": "A build target is either an executable, shared library, static library,\nboth shared and static library or shared module.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "tgt", "returned_by": ["build_target", "shared_module"], "extended_by": ["exe", "jar", "lib"], "methods": {"extract_all_objects": {"name": "extract_all_objects", "description": "Acts the same as `extract_objects`, but returns all object files generated\nby this target.\n\nBy default only objects built for this target are returned to maintain\nbackward compatibility with previous versions. The default value for the\n`recursive` kwarg will eventually be changed to `true` in a future version.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "extracted_obj", "holds": []}], "returns_str": "extracted_obj", "posargs": {}, "optargs": {}, "kwargs": {"recursive": {"name": "recursive", "description": "Also return objects passed to the `objects` argument of this target.\n", "since": "0.46.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "extract_objects": {"name": "extract_objects", "description": "Returns an opaque value representing the object files generated for those\nsource files. This is typically used to take single object files and link\nthem to unit tests or to compile some source files with custom flags. To\nuse the object file(s) in another build target, use the\n`objects:` keyword argument to a [[build_target]] or include them in the command\nline of a [[custom_target]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "extracted_obj", "holds": []}], "returns_str": "extracted_obj", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "source", "description": "Source filenames for which the built objects should be extracted.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": false, "default": null, "min_varargs": 1, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "found": {"name": "found", "description": "Always returns `true`. This function is meant to make executables\nobjects feature compatible with [[@external_program]] objects. This\nsimplifies use-cases where an executable is used instead of\nan [[@external_program]].", "since": "0.59.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "full_path": {"name": "full_path", "description": "Returns a full path pointing to the result target file.\n**NOTE:** In most cases using the object itself will do the same job\nas this and will also allow Meson to setup inter-target dependencies\ncorrectly. Please file a bug if that doesn't work for you.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "name": {"name": "name", "description": "Returns the name of the target.", "since": "0.54.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "path": {"name": "path", "description": "Does the exact same as [[build_tgt.full_path]]. **NOTE**: This\nfunction is solely kept for compatebility with [[@external_program]] objects.\nIt will be removed once the, also deprecated, corresponding `path()`\nfunction in the [[@external_program]] object is removed.", "since": "0.59.0", "deprecated": "0.59.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "private_dir_include": {"name": "private_dir_include", "description": "Returns a value that works like [[include_directories]], but points to the\nprivate directory of this target. Usually only needed if an another target\nneeds to access some generated internal headers of this target.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "inc", "holds": []}], "returns_str": "inc", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "cfg_data": {"name": "cfg_data", "description": "This object encapsulates\nconfiguration values to be used for generating configuration files. A\nmore in-depth description can be found in the [the configuration wiki\npage](Configuration.md).", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["configuration_data"], "extended_by": [], "methods": {"get": {"name": "get", "description": "Returns the value of `varname`, if the\nvalue has not been set returns `default_value` if it is defined\n*(since 0.38.0)* and errors out if not", "since": "0.38.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}], "returns_str": "str|int|bool", "posargs": {"varname": {"name": "varname", "description": "The name of the variable to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"default_value": {"name": "default_value", "description": "The default value to return when `varname` does not exist", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}], "type_str": "str|int|bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_unquoted": {"name": "get_unquoted", "description": "Returns the value\nof `varname` but without surrounding double quotes (`\"`). If the value has\nnot been set returns `default_value` if it is defined and errors out if not.", "since": "0.44.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}], "returns_str": "str|int|bool", "posargs": {"varname": {"name": "varname", "description": "The name of the variable to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"default_value": {"name": "default_value", "description": "The default value to return when `varname` does not exist", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}], "type_str": "str|int|bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "has": {"name": "has", "description": "returns `true` if the specified variable is set", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"varname": {"name": "varname", "description": "The name of the variable to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "keys": {"name": "keys", "description": "Returns an array of keys of\nthe configuration data object.\n\nYou can iterate over this array with the [`foreach`\nstatement](Syntax.md#foreach-statements).", "since": "0.57.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "merge_from": {"name": "merge_from", "description": "Takes as argument a different\nconfiguration data object and copies all entries from that object to\nthe current.", "since": "0.42.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"other": {"name": "other", "description": "The other [[@cfg_data]] object to merge into this one.", "since": null, "deprecated": null, "type": [{"obj": "cfg_data", "holds": []}], "type_str": "cfg_data", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "set": {"name": "set", "description": "Sets a variable to a given value", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"varname": {"name": "varname", "description": "The name of the variable to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "value": {"name": "value", "description": "The value to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}], "type_str": "str|int|bool", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"description": {"name": "description", "description": "Message / Comment that will be written in the\nresult file. The replacement assumes a file with C syntax. If your\ngenerated file is source code in some other language, you probably\ndon't want to add a description field because it most likely will\ncause a syntax error.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "set10": {"name": "set10", "description": "Is the same as [[cfg_data.set]] but the value\nis either `true` or `false` and will be written as 1 or 0,\nrespectively", "since": null, "deprecated": null, "notes": [], "warnings": ["numeric values < 0 have the surprising behavior of being converted to `true`, values > 1 have the more expected but unintentional behavior of being interpreted as `true`."], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"varname": {"name": "varname", "description": "The name of the variable to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "value": {"name": "value", "description": "The value to set as either `1` or `0`\n\nPassing numbers was never intended to work, and since 0.62 it has been\ndeprecated. It will be removed in a future version of Meson. If you\nneed to pass numbers use the `.set` method.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "int", "holds": []}], "type_str": "bool|int", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"description": {"name": "description", "description": "Message / Comment that will be written in the\nresult file. The replacement assumes a file with C syntax. If your\ngenerated file is source code in some other language, you probably\ndon't want to add a description field because it most likely will\ncause a syntax error.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "set_quoted": {"name": "set_quoted", "description": "Is same as [[cfg_data.set]] but quotes the value in double quotes (`\"`)", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"varname": {"name": "varname", "description": "The name of the variable to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "value": {"name": "value", "description": "The value to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "int", "holds": []}, {"obj": "bool", "holds": []}], "type_str": "str|int|bool", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"description": {"name": "description", "description": "Message / Comment that will be written in the\nresult file. The replacement assumes a file with C syntax. If your\ngenerated file is source code in some other language, you probably\ndon't want to add a description field because it most likely will\ncause a syntax error.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}}}, "cmake": {"name": "cmake", "description": "The CMake module", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "MODULE", "is_container": false, "example": null, "extends": null, "returned_by": [], "extended_by": [], "methods": {"subproject_options": {"name": "subproject_options", "description": "Returns an empty `cmake_options` object.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "cmake_options", "holds": []}], "returns_str": "cmake_options", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "cmake_options": {"name": "cmake_options", "description": "Central configuration object for CMake subprojects", "since": "0.55.0", "deprecated": null, "notes": [], "warnings": [], "defined_by_module": "cmake", "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["subproject_options"], "extended_by": [], "methods": {"add_cmake_defines": {"name": "add_cmake_defines", "description": "Add CMake defines (`-D=`) to the CMake commandline", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "defines", "description": "A `key` `value` map of CMake defines to add (`-D=`)", "since": null, "deprecated": null, "type": [{"obj": "dict", "holds": [{"obj": "str", "holds": []}]}], "type_str": "dict[str]", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}}}, "compiler": {"name": "compiler", "description": "This object is returned by [[meson.get_compiler]].\nIt represents a compiler for a given language and allows you to query its properties.", "since": null, "deprecated": null, "notes": ["These compiler checks do not use compiler arguments added\nwith `add_*_arguments()`, via `-Dlang_args` on the command-line, or\nthrough `CFLAGS`/`LDFLAGS`, etc in the environment. Hence, you can\ntrust that the tests will be fully self-contained, and won't fail\nbecause of custom flags added by other parts of the build file or by\nusers.\n", "Note that if you have a single prefix with all your dependencies, you\nmight find it easier to append to the environment variables\n`C_INCLUDE_PATH` with GCC/Clang and `INCLUDE` with MSVC to expand the\ndefault include path, and `LIBRARY_PATH` with GCC/Clang and `LIB` with\nMSVC to expand the default library search path.\n\nHowever, with GCC, these variables will be ignored when\ncross-compiling. In that case you need to use a specs file. See:\nhttp://www.mingw.org/wiki/SpecsFileHOWTO\n"], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["get_compiler"], "extended_by": [], "methods": {"alignment": {"name": "alignment", "description": "Returns the alignment of the specified type.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {"typename": {"name": "typename", "description": "The name of the type to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "check_header": {"name": "check_header", "description": "Returns true if the specified header is *usable*\nwith the specified prefix, dependencies, and arguments.", "since": "0.47.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"header_name": {"name": "header_name", "description": "The header to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "When set to `true`, Meson will halt if the header check fails.\nWhen set to a [`feature`](Build-options.md#features) option, the feature will control if it is searched and whether to fail if not found.", "since": "0.50.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "cmd_array": {"name": "cmd_array", "description": "Returns an array containing the command(s) for the compiler.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "compiles": {"name": "compiles", "description": "Returns true if the code compiles.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"code": {"name": "code", "description": "The source code to check.\n\nIf a string is passed, the code is used directly. If a [[@file]] object\nis passed, its content is used for the compiler check.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name": {"name": "name", "description": "The name to use for printing a message about the compiler check.\nIf this keyword argument is not passed, no message will be printed about the check.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "compute_int": {"name": "compute_int", "description": "Computes the value of the given expression\n(as an example `1 + 2`). When cross compiling this is evaluated with\nan iterative algorithm, you can specify keyword arguments `low`\n(defaults to -1024), `high` (defaults to 1024) and `guess` to\nspecify max and min values for the search and the value to try\nfirst.", "since": "0.40.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {"expr": {"name": "expr", "description": "The expression to compute.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "guess": {"name": "guess", "description": "The value to try first.", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "high": {"name": "high", "description": "The max value.", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "1024", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "low": {"name": "low", "description": "The min value.", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "-1024", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "find_library": {"name": "find_library", "description": "Tries to find the library specified in the positional argument.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "dep", "holds": []}], "returns_str": "dep", "posargs": {"libname": {"name": "libname", "description": "The library to find.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"dirs": {"name": "dirs", "description": "Additional directories to search in.\n\nBy default the library is searched for in the system library directory\n(e.g. /usr/lib). Specifying more directories here, causes Meson to search\nin those directories as well as the system directories.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "disabler": {"name": "disabler", "description": "If `true`, this method will return a [[@disabler]] on a failed check.", "since": "0.49.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "has_headers": {"name": "has_headers", "description": "List of headers that must be found as well.\nThis check is equivalent to checking each header with a\n[[compiler.has_header]] call.\n\nWhen used, kwargs that [[compiler.has_header]] would accept can be\npassed here prefixed with `header_`, and will have the same effect on\nthe header check.\n", "since": "0.50.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "header_args": {"name": "header_args", "description": "When the `has_headers` kwarg is also used, this argument is passed to\n[[compiler.has_header]] as `args`.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "header_dependencies": {"name": "header_dependencies", "description": "When the `has_headers` kwarg is also used, this argument is passed to\n[[compiler.has_header]] as `dependencies`.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "header_include_directories": {"name": "header_include_directories", "description": "When the `has_headers` kwarg is also used, this argument is passed to\n[[compiler.has_header]] as `include_directories`.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "header_no_builtin_args": {"name": "header_no_builtin_args", "description": "When the `has_headers` kwarg is also used, this argument is passed to\n[[compiler.has_header]] as `no_builtin_args`.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "header_prefix": {"name": "header_prefix", "description": "When the `has_headers` kwarg is also used, this argument is passed to\n[[compiler.has_header]] as `prefix`.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "If set `true`, Meson will abort with an error if the library could not\nbe found. Otherwise, Meson will continue and the found method of the\nreturned object will return `false`.\n\nWhen set to a [`feature`](Build-options.md#features) option, the feature\nwill control if it is searched and whether to fail if not found.\n\n*(since 0.47.0)* The value of a `feature` option can also be passed here.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "true", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "static": {"name": "static", "description": "If `true`, the search is limited to static libraries only.\nSetting this value to `false` (the default) will search for both shared\n*and* static libraries.\n", "since": "0.51.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "first_supported_argument": {"name": "first_supported_argument", "description": "Given a list of strings, returns a single-element list containing the first\nargument that passes the [[compiler.has_argument]] test or an empty array if\nnone pass.", "since": "0.43.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "The arguments to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "first_supported_link_argument": {"name": "first_supported_link_argument", "description": "Given a list of strings, returns the first argument that passes the\n[[compiler.has_link_argument]] test or an empty array if none pass.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "The link arguments to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "get_argument_syntax": {"name": "get_argument_syntax", "description": "returns a string identifying the type of arguments the compiler takes.\nCan be one of `gcc`, `msvc`, or an undefined\nstring value. This method is useful for identifying compilers that are not\ngcc or msvc, but use the same argument syntax as one of those two compilers\nsuch as clang or icc, especially when they use different syntax on different\noperating systems.", "since": "0.49.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_define": {"name": "get_define", "description": "Returns the given preprocessor symbol's value\nas a string or empty string if it is not defined.\n\n*(since 0.47.0)* This method will concatenate string literals as\nthe compiler would. E.g. `\"a\" \"b\"` will become `\"ab\"`.", "since": "0.40.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {"definename": {"name": "definename", "description": "The define to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "get_id": {"name": "get_id", "description": "Returns a string identifying the compiler.\nFor example, `gcc`, `msvc`, [and more](Reference-tables.md#compiler-ids).", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_linker_id": {"name": "get_linker_id", "description": "Returns a string identifying the linker.\nFor example, `ld.bfd`, `link`, [and more](Reference-tables.md#linker-ids).", "since": "0.53.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_supported_arguments": {"name": "get_supported_arguments", "description": "Returns an array containing only the arguments supported by the compiler,\nas if [[compiler.has_argument]] were called on them individually.", "since": "0.43.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {"checked": {"name": "checked", "description": "Supported values:\n - `'off'`: Quietely ignore unsupported arguments\n - `'warn'`: Print a warning for unsupported arguments\n - `'require'`: Abort if at least one argument is not supported\n", "since": "0.59.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "'off'", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "arg", "description": "The arguments to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "get_supported_function_attributes": {"name": "get_supported_function_attributes", "description": "Returns an array containing any names that are supported GCC style attributes.\nEquivalent to [[compiler.has_function_attribute]] was called on each of\nthem individually.", "since": "0.48.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_supported_link_arguments": {"name": "get_supported_link_arguments", "description": "Returns an array containing only the arguments supported by the compiler,\nas if [[compiler.has_link_argument]] were called on them individually.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "The link arguments to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "has_argument": {"name": "has_argument", "description": "Returns `true` if the compiler accepts the specified command line argument,\nthat is, can compile code without erroring out or printing a warning about\nan unknown flag.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"argument": {"name": "argument", "description": "The argument to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "has_function": {"name": "has_function", "description": "Returns true if the given function is provided\nby the standard library or a library passed in with the `args` keyword.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"funcname": {"name": "funcname", "description": "The function to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "has_function_attribute": {"name": "has_function_attribute", "description": "Returns `true` if the compiler supports the GNU style (`__attribute__(...)`) `name`.\nThis is preferable to manual compile checks as it may be optimized for compilers that\ndo not support such attributes.\n[This table](Reference-tables.md#gcc-__attribute__) lists all of the supported attributes.", "since": "0.48.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"name": {"name": "name", "description": "The attribute name to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "has_header": {"name": "has_header", "description": "Returns true if the specified header is *exists*\nwith the specified prefix, dependencies, and arguments.\n\nThis method is faster than [[compiler.check_header]] since it only does a\npre-processor check.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"header_name": {"name": "header_name", "description": "The header to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "When set to `true`, Meson will halt if the header check fails.\nWhen set to a [`feature`](Build-options.md#features) option, the feature will control if it is searched and whether to fail if not found.", "since": "0.50.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "has_header_symbol": {"name": "has_header_symbol", "description": "Detects whether a particular symbol is declared in the specified header.\n\nSymbols here include function, variable, `#define`, type definition, etc.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"header": {"name": "header", "description": "The header to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "symbol": {"name": "symbol", "description": "The symbol to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "required": {"name": "required", "description": "When set to `true`, Meson will halt if the header check fails.\nWhen set to a [`feature`](Build-options.md#features) option, the feature will control if it is searched and whether to fail if not found.", "since": "0.50.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}, {"obj": "feature", "holds": []}], "type_str": "bool|feature", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "has_link_argument": {"name": "has_link_argument", "description": "Returns `true` if the linker accepts the specified command line argument,\nthat is, can\ncompile and link code without erroring out or printing a warning\nabout an unknown flag. Link arguments will be passed to the\ncompiler, so should usually have the `-Wl,` prefix. On VisualStudio\na `/link` argument will be prepended.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"argument": {"name": "argument", "description": "The argument to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "has_member": {"name": "has_member", "description": "Returns true if the type has the specified member.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"typename": {"name": "typename", "description": "The type to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "membername": {"name": "membername", "description": "The member to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "has_members": {"name": "has_members", "description": "Returns `true` if the type has *all* the specified members.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"typename": {"name": "typename", "description": "The type to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "member", "description": "The members to check", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": 1, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "has_multi_arguments": {"name": "has_multi_arguments", "description": "the same as [[compiler.has_argument]] but takes multiple arguments\nand uses them all in a single compiler invocation.", "since": "0.37.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "The arguments to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "has_multi_link_arguments": {"name": "has_multi_link_arguments", "description": "the same as [[compiler.has_link_argument]] but takes multiple arguments\nand uses them all in a single compiler invocation.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "The link arguments to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "has_type": {"name": "has_type", "description": "Returns `true` if the specified token is a type.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"typename": {"name": "typename", "description": "The type to check.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "links": {"name": "links", "description": "Returns true if the code compiles and links.\n\n*Since 0.60.0*, if the `file` object's\nsuffix does not match the compiler object's language, the compiler\ncorresponding to the suffix is used to compile the source, while the\ntarget of the `links` method is used to link the resulting object file.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"code": {"name": "code", "description": "The source code to check.\n\nIf a string is passed, the code is used directly. If a [[@file]] object\nis passed, its content is used for the compiler check.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name": {"name": "name", "description": "The name to use for printing a message about the compiler check.\nIf this keyword argument is not passed, no message will be printed about the check.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "preprocess": {"name": "preprocess", "description": "Preprocess a list of source files but do not compile them. The preprocessor\nwill receive the same arguments (include directories, defines, etc) as with\nnormal compilation. That includes for example args added with\n`add_project_arguments()`, or on the command line with `-Dc_args=-DFOO`.", "since": "0.64.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "custom_idx", "holds": []}]}], "returns_str": "list[custom_idx]", "posargs": {}, "optargs": {}, "kwargs": {"compile_args": {"name": "compile_args", "description": "Extra flags to pass to the preprocessor\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "output": {"name": "output", "description": "Template for name of preprocessed files: `@PLAINNAME@` is replaced by\nthe source filename and `@BASENAME@` is replaced by the source filename\nwithout its extension.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "Input source to compile. The following types are supported:\n\n- Strings relative to the current source directory\n- [[@file]] objects defined in any preceding build file\n- The return value of configure-time generators such as [[configure_file]]\n- The return value of build-time generators such as\n [[custom_target]] or [[generator.process]]\n\nThese input files can be sources, objects, libraries, or any other\nfile. Meson will automatically categorize them based on the extension\nand use them accordingly. For instance, sources (`.c`, `.cpp`,\n`.vala`, `.rs`, etc) will be compiled and objects (`.o`, `.obj`) and\nlibraries (`.so`, `.dll`, etc) will be linked.\n\nWith the Ninja backend, Meson will create a build-time [order-only\ndependency](https://ninja-build.org/manual.html#ref_dependencies) on\nall generated input files, including unknown files. This is needed to\nbootstrap the generation of the real dependencies in the\n[depfile](https://ninja-build.org/manual.html#ref_headers) generated\nby your compiler to determine when to rebuild sources. Ninja relies on\nthis dependency file for all input files, generated and non-generated.\nThe behavior is similar for other backends.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "run": {"name": "run", "description": "Attempts to compile and execute the given code fragment.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "runresult", "holds": []}], "returns_str": "runresult", "posargs": {"code": {"name": "code", "description": "The source code to check.\n\nIf a string is passed, the code is used directly. If a [[@file]] object\nis passed, its content is used for the compiler check.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}], "type_str": "str|file", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "name": {"name": "name", "description": "The name to use for printing a message about the compiler check.\nIf this keyword argument is not passed, no message will be printed about the check.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "sizeof": {"name": "sizeof", "description": "returns the size of the given type (e.g. `'int'`) or -1 if the type is unknown.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {"typename": {"name": "typename", "description": "The type to compute.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"args": {"name": "args", "description": "Used to pass a list of compiler arguments.\nDefining include paths for headers not in the default include path\nvia `-Isome/path/to/header` is generally supported, however, usually not\nrecommended.\n\nThis is because include directories can also be specified via the\n`include_directories` or the `dependency` kwarg (if present).\nThe same is also true for passing libraries to link with `-lfoo`.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dependencies": {"name": "dependencies", "description": "Additionally dependencies required for compiling and / or linking.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}, {"obj": "list", "holds": [{"obj": "dep", "holds": []}]}], "type_str": "dep|list[dep]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "include_directories": {"name": "include_directories", "description": "Extra directories for header searches.", "since": "0.38.0", "deprecated": null, "type": [{"obj": "inc", "holds": []}, {"obj": "list", "holds": [{"obj": "inc", "holds": []}]}], "type_str": "inc|list[inc]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "no_builtin_args": {"name": "no_builtin_args", "description": "When set to `true`, the compiler arguments controlled by built-in configuration options are not added.", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "prefix": {"name": "prefix", "description": "Used to add `#include`s and other things that are required\nfor the symbol to be declared. Since 1.0.0 an array is accepted\ntoo. When an array is passed, the items are concatenated together\nseparated by a newline.\nSystem definitions should be passed via compiler args\n(eg: `_GNU_SOURCE` is often required for some symbols to be exposed\non Linux, and it should be passed via `args` keyword argument).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "str|list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "symbols_have_underscore_prefix": {"name": "symbols_have_underscore_prefix", "description": "Returns `true` if the C symbol mangling is one underscore (`_`) prefixed to the symbol.", "since": "0.37.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "version": {"name": "version", "description": "Returns the compiler's version number as a string.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "custom_idx": {"name": "custom_idx", "description": "References a specific output file of a [[@custom_tgt]] object.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["[index]"], "extended_by": [], "methods": {"full_path": {"name": "full_path", "description": "Returns a full path pointing to the result target file\nNOTE: In most cases using the object itself will do the same job as\nthis and will also allow Meson to setup inter-target dependencies\ncorrectly. Please file a bug if that doesn't work for you.\n\nSee [[custom_tgt.full_path]]", "since": "0.54.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "custom_tgt": {"name": "custom_tgt", "description": "This object is returned by [[custom_target]] and contains a target with the following methods:", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "tgt", "returned_by": ["custom_target", "vcs_tag"], "extended_by": [], "methods": {"[index]": {"name": "[index]", "description": "Returns an opaque object that references this target, and\ncan be used as a source in other targets. When it is used as such it\nwill make that target depend on this custom target, but the only\nsource added will be the one that corresponds to the index of the\ncustom target's output argument.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "custom_idx", "holds": []}], "returns_str": "custom_idx", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "full_path": {"name": "full_path", "description": "Returns a full path pointing to the result target file\nNOTE: In most cases using the object itself will do the same job as\nthis and will also allow Meson to setup inter-target dependencies\ncorrectly. Please file a bug if that doesn't work for you.\n*(since 0.54.0)* It can be also called on indexes objects:\n`custom_targets[i].full_path()`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "to_list": {"name": "to_list", "description": "Returns a list of opaque objects that references this target,\nand can be used as a source in other targets. This can be used to\niterate outputs with `foreach` loop.", "since": "0.54.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "custom_idx", "holds": []}]}], "returns_str": "list[custom_idx]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "dep": {"name": "dep", "description": "Abstract representation of a dependency", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["declare_dependency", "dependency", "find_library", "as_link_whole", "as_system", "partial_dependency"], "extended_by": [], "methods": {"as_link_whole": {"name": "as_link_whole", "description": "Only dependencies created with [[declare_dependency]],\nreturns a copy of the dependency object with all\nlink_with arguments changed to link_whole. This is useful for example for\nfallback dependency from a subproject built with `default_library=static`.\nNote that all `link_with` objects must be static libraries otherwise an error\nwill be raised when trying to `link_whole` a shared library.", "since": "0.56.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "dep", "holds": []}], "returns_str": "dep", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "as_system": {"name": "as_system", "description": "Returns a copy of the dependency object, which has changed the value of `include_type`\nto `value`. The `value` argument is optional and\ndefaults to `'preserve'`.", "since": "0.52.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "dep", "holds": []}], "returns_str": "dep", "posargs": {}, "optargs": {"value": {"name": "value", "description": "The new value. See [[dependency]] for supported values.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "found": {"name": "found", "description": "Returns whether the dependency was found.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_configtool_variable": {"name": "get_configtool_variable", "description": "Gets the command line argument from the config tool (with `--` prepended), or,\nif invoked on a non config-tool dependency, error out.", "since": "0.44.0", "deprecated": "0.56.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {"var_name": {"name": "var_name", "description": "Name of the variable to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_pkgconfig_variable": {"name": "get_pkgconfig_variable", "description": "Gets the pkg-config variable specified,\nor, if invoked on a non pkg-config\ndependency, error out.", "since": "0.36.0", "deprecated": "0.56.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {"var_name": {"name": "var_name", "description": "Name of the variable to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"default": {"name": "default", "description": "The value to return if the variable was not found.\nA warning is issued if the variable is not defined and this kwarg is not set.\n", "since": "0.45.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "define_variable": {"name": "define_variable", "description": "You can also redefine a\nvariable by passing a list to this kwarg\nthat can affect the retrieved variable: `['prefix', '/'])`.\n", "since": "0.44.0", "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "get_variable": {"name": "get_variable", "description": "A generic variable getter method, which replaces the\n`get_*type*_variable` methods. This allows one to get the variable\nfrom a dependency without knowing specifically how that dependency\nwas found. If `default_value` is set and the value cannot be gotten\nfrom the object then `default_value` is returned, if it is not set\nthen an error is raised.", "since": "0.51.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {"varname": {"name": "varname", "description": "This argument is used as a default value\nfor `cmake`, `pkgconfig`, `configtool` and `internal` keyword\narguments. It is useful in the common case where `pkgconfig` and `internal`\nuse the same variable name, in which case it's easier to write `dep.get_variable('foo')`\ninstead of `dep.get_variable(pkgconfig: 'foo', internal: 'foo')`.\n", "since": "0.58.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {"cmake": {"name": "cmake", "description": "The CMake variable name", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "configtool": {"name": "configtool", "description": "The configtool variable name", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "default_value": {"name": "default_value", "description": "The default value to return when the variable does not exist", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "internal": {"name": "internal", "description": "The internal variable name", "since": "0.54.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pkgconfig": {"name": "pkgconfig", "description": "The pkgconfig variable name", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "pkgconfig_define": {"name": "pkgconfig_define", "description": "See [[dep.get_pkgconfig_variable]]", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "include_type": {"name": "include_type", "description": "Returns the value set by the `include_type` kwarg.", "since": "0.52.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "name": {"name": "name", "description": "Returns the name of the dependency that was searched.\nReturns `'internal'` for dependencies created with\n[[declare_dependency]].", "since": "0.48.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "partial_dependency": {"name": "partial_dependency", "description": "Returns a new dependency object with the same name, version, found status,\ntype name, and methods as the object that called it. This new\nobject will only inherit other attributes from its parent as\ncontrolled by keyword arguments.\n\nIf the parent has any dependencies, those will be applied to the new\npartial dependency with the same rules. So, given:\n\n```meson\ndep1 = declare_dependency(compile_args : '-Werror=foo', link_with : 'libfoo')\ndep2 = declare_dependency(compile_args : '-Werror=bar', dependencies : dep1)\ndep3 = dep2.partial_dependency(compile_args : true)\n```\n\ndep3 will add `['-Werror=foo', '-Werror=bar']` to the compiler args\nof any target it is added to, but libfoo will not be added to the\nlink_args.\n\nThe following arguments will add the following attributes:\n\n- compile_args: any arguments passed to the compiler\n- link_args: any arguments passed to the linker\n- links: anything passed via link_with or link_whole\n- includes: any include_directories\n- sources: any compiled or static sources the dependency has", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": ["A bug present until 0.50.1 results in the above behavior not working correctly."], "example": null, "returns": [{"obj": "dep", "holds": []}], "returns_str": "dep", "posargs": {}, "optargs": {}, "kwargs": {"compile_args": {"name": "compile_args", "description": "Whether to include compile_args", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "includes": {"name": "includes", "description": "Whether to include includes", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "link_args": {"name": "link_args", "description": "Whether to include link_args", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "links": {"name": "links", "description": "Whether to include links", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "sources": {"name": "sources", "description": "Whether to include sources", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "type_name": {"name": "type_name", "description": "Returns a string describing the type of the\ndependency, the most common values are `internal` for deps created\nwith [[declare_dependency]] and `pkgconfig` for system dependencies\nobtained with Pkg-config.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "version": {"name": "version", "description": "the version number as a string,\nfor example `1.2.8`.\n`unknown` if the dependency provider doesn't support determining the\nversion.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "dict": {"name": "dict", "description": "Stores a mapping of strings to other objects. See [dictionaries](Syntax.md#dictionaries).\n\nYou can also iterate over dictionaries with the [`foreach`\nstatement](Syntax.md#foreach-statements).\n\n*(since 0.48.0)* Dictionaries can be added (e.g. `d1 = d2 + d3` and `d1 += d2`).\nValues from the second dictionary overrides values from the first.", "since": "0.47.0", "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": true, "example": null, "extends": null, "returned_by": [], "extended_by": [], "methods": {"get": {"name": "get", "description": "returns the value for the key given as first\nargument if it is present in the dictionary, or the optional\nfallback value given as the second argument. If a single argument\nwas given and the key was not found, causes a fatal error", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "any", "holds": []}], "returns_str": "any", "posargs": {"key": {"name": "key", "description": "The key to query.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"fallback": {"name": "fallback", "description": "Fallback value that is returned if the key is not in the [[@dict]].", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": false}, "has_key": {"name": "has_key", "description": "Returns `true` if the dictionary contains the key given as argument, `false` otherwise.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"key": {"name": "key", "description": "The key to query.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "keys": {"name": "keys", "description": "Returns an array of keys in the dictionary.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "disabler": {"name": "disabler", "description": "A disabler object is an object that behaves in much the same way as\nNaN numbers do in floating point math. That is when used in any\nstatement (function call, logical op, etc) they will cause the\nstatement evaluation to immediately short circuit to return a disabler\nobject. A disabler object has one method:", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["disabler"], "extended_by": [], "methods": {"found": {"name": "found", "description": "Always returns `false`", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "env": {"name": "env", "description": "This object is returned by [[environment]] and stores\ndetailed information about how environment variables should be set\nduring tests. It should be passed as the `env` keyword argument to\ntests and other functions.\n\n*Since 0.58.0* [[env.append]] and [[env.prepend]] can be called multiple times\non the same `varname`. Earlier Meson versions would warn and only the last\noperation took effect.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": "```meson\nenv = environment()\n\n# MY_PATH will be '0:1:2:3'\nenv.set('MY_PATH', '1')\nenv.append('MY_PATH', '2')\nenv.append('MY_PATH', '3')\nenv.prepend('MY_PATH', '0')\n```\n", "extends": null, "returned_by": ["environment"], "extended_by": [], "methods": {"append": {"name": "append", "description": "appends the given values to\nthe old value of the environment variable, e.g. `env.append('FOO',\n'BAR', 'BAZ', separator : ';')` produces `BOB;BAR;BAZ` if `FOO` had\nthe value `BOB` and plain `BAR;BAZ` if the value was not defined.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"variable": {"name": "variable", "description": "The variable to modify", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"separator": {"name": "separator", "description": "The separator to use. If not explicitly specified, the default path\nseparator for the host operating system will be used, i.e. ';' for\nWindows and ':' for UNIX/POSIX systems.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Value", "description": "The values to append", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "prepend": {"name": "prepend", "description": "Same as `append` except that it writes to the beginning of the variable.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"variable": {"name": "variable", "description": "The variable to modify", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"separator": {"name": "separator", "description": "The separator to use. If not explicitly specified, the default path\nseparator for the host operating system will be used, i.e. ';' for\nWindows and ':' for UNIX/POSIX systems.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Value", "description": "The values to prepend", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "set": {"name": "set", "description": "Sets the environment variable\nspecified in the first argument to the values in the varargs\njoined by the separator. For instance, `env.set('FOO', 'BAR'),` sets envvar\n`FOO` to value `BAR`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"variable": {"name": "variable", "description": "The variable to modify", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"separator": {"name": "separator", "description": "The separator to use. If not explicitly specified, the default path\nseparator for the host operating system will be used, i.e. ';' for\nWindows and ':' for UNIX/POSIX systems.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "Value", "description": "The values to set", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}}}, "exe": {"name": "exe", "description": "An executable", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "build_tgt", "returned_by": ["executable"], "extended_by": [], "methods": {}}, "external_program": {"name": "external_program", "description": "Opaque object representing an external program", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["find_program"], "extended_by": [], "methods": {"found": {"name": "found", "description": "Returns whether the executable was found.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "full_path": {"name": "full_path", "description": "Returns a string pointing to the script or executable.\n\n**NOTE:** You should not usually need to use this method. Passing the\nobject itself should work in most contexts where a program can appear,\nand allows Meson to setup inter-target dependencies correctly (for\nexample in cases where a program might be overridden by a [[build_tgt]]).\nOnly use this if you specifically need a string, such as when embedding\na program path into a header file.\n\nFor example:\n\n```meson\nrun_command(find_program('foo'), 'arg1', 'arg2')\n```", "since": "0.55.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "path": {"name": "path", "description": "*Deprecated:* Use [[external_program.full_path]] instead.\n\nReturns a string pointing to the script or executable.\n\n**NOTE:** You should not usually need to use this method. Passing the\nobject itself should work in most contexts where a program can appear,\nand allows Meson to setup inter-target dependencies correctly (for\nexample in cases where a program might be overridden by a [[build_tgt]]).\nOnly use this if you specifically need a string, such as when embedding\na program path into a header file.\n\nFor example:\n\n```meson\nrun_command(find_program('foo'), 'arg1', 'arg2')\n```", "since": null, "deprecated": "0.55.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "version": {"name": "version", "description": "The version number as a string, for example `1.2.8`.\n\n`unknown` if the program cannot determine the version via a `--version` argument.", "since": "0.62.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "extracted_obj": {"name": "extracted_obj", "description": "Opaque object representing extracted object files from build targets", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["extract_all_objects", "extract_objects"], "extended_by": [], "methods": {}}, "feature": {"name": "feature", "description": "Meson object representing a [`feature` options](Build-options.md#features)", "since": "0.47.0", "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["get_option", "disable_auto_if", "require"], "extended_by": [], "methods": {"allowed": {"name": "allowed", "description": "Returns whether the feature was set to `'enabled'` or `'auto'`", "since": "0.59.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "auto": {"name": "auto", "description": "Returns whether the feature was set to `'auto'`", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "disable_auto_if": {"name": "disable_auto_if", "description": "Returns the feature, with `'auto'` converted to `'disabled'` if value is true.\n\n| Feature / Condition | `value = true` | `value = false` |\n| ------------------- | -------------- | --------------- |\n| Enabled | Enabled | Enabled |\n| Disabled | Disabled | Disabled |\n| Auto | Disabled | Auto |", "since": "0.59.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "feature", "holds": []}], "returns_str": "feature", "posargs": {"value": {"name": "value", "description": "See the table above", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "disabled": {"name": "disabled", "description": "Returns whether the feature was set to `'disabled'`", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "enabled": {"name": "enabled", "description": "Returns whether the feature was set to `'enabled'`", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "require": {"name": "require", "description": "Returns the object itself if the value is true; an error if the object is\n`'enabled'` and the value is false; a disabled feature if the object\nis `'auto'` or `'disabled'` and the value is false.", "since": "0.59.0", "deprecated": null, "notes": [], "warnings": [], "example": "`require` is useful to restrict the applicability of `'auto'` features,\nfor example based on other features or on properties of the host machine:\n\n```\nif get_option('directx').require(host_machine.system() == 'windows',\n error_message: 'DirectX only available on Windows').allowed() then\n src += ['directx.c']\n config.set10('HAVE_DIRECTX', true)\nendif\n```\n", "returns": [{"obj": "feature", "holds": []}], "returns_str": "feature", "posargs": {"value": {"name": "value", "description": "The value to check", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"error_message": {"name": "error_message", "description": "The error Message to print if the check fails", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "''", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}}}, "file": {"name": "file", "description": "Opaque object that stores the path to an existing file", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["configure_file"], "extended_by": [], "methods": {}}, "generated_list": {"name": "generated_list", "description": "Opaque object representing the result of a [[generator.process]] call.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["process"], "extended_by": [], "methods": {}}, "generator": {"name": "generator", "description": "This object is returned by [[generator]] and contains a\ngenerator that is used to transform files from one type to another by\nan executable (e.g. `idl` files into source code and headers).", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["generator"], "extended_by": [], "methods": {"process": {"name": "process", "description": "Takes a list of files, causes them to be processed and returns an object containing the result\nwhich can then, for example, be passed into a build target definition.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "generated_list", "holds": []}], "returns_str": "generated_list", "posargs": {}, "optargs": {}, "kwargs": {"extra_args": {"name": "extra_args", "description": "If present, will be used to replace an entry `@EXTRA_ARGS@` in the argument list.\n", "since": null, "deprecated": null, "type": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "type_str": "list[str]", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "preserve_path_from": {"name": "preserve_path_from", "description": "If given, specifies that the output files need to maintain their directory structure\ninside the target temporary directory. The most common value for this is\n`meson.current_source_dir()`. With this value when a file called\n`subdir/one.input` is processed it generates a file `{target private\ndirectory}/subdir/one.out` as opposed to `{target private\ndirectory}/one.out`.\n", "since": "0.45.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "source", "description": "List of sources to process.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}, {"obj": "generated_list", "holds": []}], "type_str": "str|file|custom_tgt|custom_idx|generated_list", "required": false, "default": null, "min_varargs": 1, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}}}, "host_machine": {"name": "host_machine", "description": "Provides information about the host machine -- the machine on which the\ncompiled binary will run. See\n[Cross-compilation](Cross-compilation.md).\n\nIt has the same methods as [[@build_machine]].\n\nWhen not cross-compiling, all the methods return the same values as\n[[@build_machine]] (because the build machine is the host machine)\n\nNote that while cross-compiling, it simply returns the values defined\nin the cross-info file.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "BUILTIN", "is_container": false, "example": null, "extends": "build_machine", "returned_by": [], "extended_by": [], "methods": {}}, "inc": {"name": "inc", "description": "Opaque wrapper for storing include directories", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["include_directories", "private_dir_include"], "extended_by": [], "methods": {}}, "int": {"name": "int", "description": "All integer numbers. See [Numbers](Syntax.md#numbers) for more information.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": false, "example": null, "extends": null, "returned_by": ["get_option", "to_int", "get", "get_unquoted", "alignment", "compute_int", "sizeof", "length", "returncode", "to_int"], "extended_by": [], "methods": {"is_even": {"name": "is_even", "description": "Returns true if the number is even.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "is_odd": {"name": "is_odd", "description": "Returns true if the number is odd", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "to_string": {"name": "to_string", "description": "Returns the value of the number as a string.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "jar": {"name": "jar", "description": "A Java JAR build target", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "build_tgt", "returned_by": ["jar"], "extended_by": [], "methods": {}}, "lib": {"name": "lib", "description": "Represents either a shared or static library", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "build_tgt", "returned_by": ["library", "shared_library", "static_library", "get_shared_lib", "get_static_lib"], "extended_by": ["both_libs"], "methods": {}}, "list": {"name": "list", "description": "An array of elements. See [arrays](Syntax.md#arrays).", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": true, "example": null, "extends": null, "returned_by": ["files", "get_option", "keys", "cmd_array", "first_supported_argument", "first_supported_link_argument", "get_supported_arguments", "get_supported_function_attributes", "get_supported_link_arguments", "preprocess", "to_list", "keys", "project_license", "split"], "extended_by": [], "methods": {"contains": {"name": "contains", "description": "Returns `true` if the array contains the object\ngiven as argument, `false` otherwise", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"item": {"name": "item", "description": "The item to check", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": false}, "get": {"name": "get", "description": "returns the object at the given index,\nnegative indices count from the back of the array, indexing out of\nbounds returns the `fallback` value *(since 0.38.0)* or, if it is\nnot specified, causes a fatal error", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "any", "holds": []}], "returns_str": "any", "posargs": {"index": {"name": "index", "description": "Index of the list position to query. Negative values start at the end of the list", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"fallback": {"name": "fallback", "description": "Fallback value that is returned if the index is out of range.", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": false}, "length": {"name": "length", "description": "Returns the current size of the array / list.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "meson": {"name": "meson", "description": "The `meson` object allows you to introspect various properties of the\nsystem. This object is always mapped in the `meson` variable.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "BUILTIN", "is_container": false, "example": null, "extends": null, "returned_by": [], "extended_by": [], "methods": {"add_devenv": {"name": "add_devenv", "description": "add an [[@env]] object (returned by [[environment]])\nto the list of environments that will be applied when using [`meson devenv`](Commands.md#devenv)\ncommand line.\n\nThis is useful for developers who wish to use the project without\ninstalling it, it is often needed to set for example the path to plugins\ndirectory, etc. Alternatively, a list or dictionary can be passed as first\nargument.\n\n``` meson\ndevenv = environment()\ndevenv.set('PLUGINS_PATH', meson.current_build_dir())\n...\nmeson.add_devenv(devenv)\n```\n\nAfter configuring and compiling that project, a terminal can be opened with\nthe environment set:\n\n```sh\n$ meson devenv -C \n$ echo $PLUGINS_PATH\n/path/to/source/subdir\n```\n\nSee [`meson devenv`](Commands.md#devenv) command documentation for a list of\nenvironment variables that are set by default by Meson.", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"env": {"name": "env", "description": "The [[@env]] object to add.\nSince *0.62.0* list of strings is allowed in dictionary values. In that\ncase values are joined using the separator.\n", "since": null, "deprecated": null, "type": [{"obj": "env", "holds": []}, {"obj": "str", "holds": []}, {"obj": "list", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "str", "holds": []}]}, {"obj": "dict", "holds": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}]}], "type_str": "env|str|list[str]|dict[str]|dict[list[str]]", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"method": {"name": "method", "description": "Must be one of 'set', 'prepend', or 'append'\n(defaults to 'set'). Controls if initial values defined in the first\npositional argument are prepended, appended or replace the current value\nof the environment variable.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "separator": {"name": "separator", "description": "The separator to use for the initial values defined in\nthe first positional argument. If not explicitly specified, the default\npath separator for the host operating system will be used, i.e. ';' for\nWindows and ':' for UNIX/POSIX systems.\n", "since": "0.62.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "add_dist_script": {"name": "add_dist_script", "description": "Causes the script given as argument to run during `dist`\noperation after the\ndistribution source has been generated but before it is\narchived. Note that this runs the script file that is in the\n_staging_ directory, not the one in the source directory. If the\nscript file can not be found in the staging directory, it is a hard\nerror. The `MESON_DIST_ROOT` environment variables is set when dist scripts is\nrun.\n\n*(since 0.54.0)* The `MESON_SOURCE_ROOT` and `MESON_BUILD_ROOT`\nenvironment variables are set when dist scripts are run. They are path to the\nroot source and build directory of the main project, even when the script\ncomes from a subproject.\n\n*(since 0.58.0)* This command can be invoked from a subproject, it was a hard\nerror in earlier versions. Subproject dist scripts will only be executed\nwhen running `meson dist --include-subprojects`. `MESON_PROJECT_SOURCE_ROOT`,\n`MESON_PROJECT_BUILD_ROOT` and `MESON_PROJECT_DIST_ROOT` environment\nvariables are set when dist scripts are run. They are identical to\n`MESON_SOURCE_ROOT`, `MESON_BUILD_ROOT` and `MESON_DIST_ROOT` for main project\nscripts, but for subproject scripts they have the path to the root of the\nsubproject appended, usually `subprojects/`.", "since": "0.48.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"script_name": {"name": "script_name", "description": "The script to execute.\n\n*(since 0.55.0)* The output of [[find_program]] as well as strings are accepted.\n\n*(since 0.57.0)* [[@file]] objects and the output of [[configure_file]] may be used.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "str|file|external_program", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "Additional arguments\n\n*(since 0.55.0)* The output of [[configure_file]], [[files]], and [[find_program]]\nas well as strings are accepted.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "str|file|external_program", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_install_script": {"name": "add_install_script", "description": "Causes the script given as an argument to be run during the install step,\nthis script will have the environment variables `MESON_SOURCE_ROOT`,\n`MESON_BUILD_ROOT`, `MESON_INSTALL_PREFIX`,\n`MESON_INSTALL_DESTDIR_PREFIX`, and `MESONINTROSPECT` set.\nAll positional arguments are passed as parameters.\n\n*(since 0.54.0)* If `meson install` is called with the `--quiet` option, the\nenvironment variable `MESON_INSTALL_QUIET` will be set.\n\nMeson uses the `DESTDIR` environment variable as set by the\ninherited environment to determine the (temporary) installation\nlocation for files. Your install script must be aware of this while\nmanipulating and installing files. The correct way to handle this is\nwith the `MESON_INSTALL_DESTDIR_PREFIX` variable which is always set\nand contains `DESTDIR` (if set) and `prefix` joined together. This\nis useful because both are usually absolute paths and there are\nplatform-specific edge-cases in joining two absolute paths.\n\nIn case it is needed, `MESON_INSTALL_PREFIX` is also always set and\nhas the value of the `prefix` option passed to Meson.\n\n`MESONINTROSPECT` contains the path to the introspect command that\ncorresponds to the `meson` executable that was used to configure the\nbuild. (This might be a different path than the first executable\nfound in `PATH`.) It can be used to query build configuration. Note\nthat the value will contain many parts, f.ex., it may be `python3\n/path/to/meson.py introspect`. The user is responsible for splitting\nthe string to an array if needed by splitting lexically like a UNIX\nshell would. If your script uses Python, `shlex.split()` is the\neasiest correct way to do this.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"script_name": {"name": "script_name", "description": "The script to execute.\n\n*(since 0.55.0)* The output of [[find_program]], [[executable]],\n[[custom_target]], as well as strings are accepted.\n\n*(since 0.57.0)* [[@file]] objects and the output of [[configure_file]] may be used.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "exe", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|external_program|exe|custom_tgt|custom_idx", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"install_tag": {"name": "install_tag", "description": "A string used by the `meson install --tags` command\nto install only a subset of the files.\nBy default the script has no install tag which means it is not being run when\n`meson install --tags` argument is specified.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "skip_if_destdir": {"name": "skip_if_destdir", "description": "If `true` the script will not be run if DESTDIR is set during installation.\nThis is useful in the case the script updates system wide\ncache that is only needed when copying files into final destination.\n", "since": "0.57.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": {"name": "arg", "description": "Additional arguments\n\n*(since 0.55.0)* The output of [[find_program]], [[executable]],\n[[custom_target]], as well as strings are accepted.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}, {"obj": "exe", "holds": []}, {"obj": "custom_tgt", "holds": []}, {"obj": "custom_idx", "holds": []}], "type_str": "str|file|external_program|exe|custom_tgt|custom_idx", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "add_postconf_script": {"name": "add_postconf_script", "description": "Runs the given command after all project files have been generated.\nThis script will have the environment variables\n`MESON_SOURCE_ROOT` and `MESON_BUILD_ROOT` set.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"script_name": {"name": "script_name", "description": "The script to execute.\n\n*(since 0.55.0)* The output of [[find_program]] as well as strings are accepted.\n\n*(since 0.57.0)* [[@file]] objects and the output of [[configure_file]] may be used.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "str|file|external_program", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "arg", "description": "Additional arguments\n\n*(since 0.55.0)* The output of [[configure_file]], [[files]], and [[find_program]]\nas well as strings are accepted.\n", "since": "0.49.0", "deprecated": null, "type": [{"obj": "str", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "str|file|external_program", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "backend": {"name": "backend", "description": "Returns a string representing the current backend:\n\n- `ninja`\n- `vs2010`\n- `vs2012`\n- `vs2013`\n- `vs2015`\n- `vs2017`\n- `vs2019`\n- `vs2022`\n- `xcode`", "since": "0.37.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "build_root": {"name": "build_root", "description": "Returns a string with the absolute path to the build root directory.\nThis function will return the\nbuild root of the parent project if called from a subproject, which is usually\nnot what you want. Try using [[meson.current_build_dir]] or [[meson.project_build_root]].\nIn the rare cases where the root of the main project is needed,\nuse [[meson.global_build_root]] that has the same behaviour but with a more explicit\nname.", "since": null, "deprecated": "0.56.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "can_run_host_binaries": {"name": "can_run_host_binaries", "description": "Returns true if the build machine can run binaries compiled for the host.\nThis returns `true` unless you are\ncross compiling, need a helper to run host binaries, and don't have one.\nFor example when cross compiling from Linux to Windows, one can use `wine`\nas the helper.", "since": "0.55.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "current_build_dir": {"name": "current_build_dir", "description": "Returns a string with the absolute path to the current build directory.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "current_source_dir": {"name": "current_source_dir", "description": "Returns a string to the current source directory.", "since": null, "deprecated": null, "notes": ["**You do not need to use this function!**\n\nWhen passing files from the current source directory to a function since\nthat is the default. Also, you can use the [[files]] function to\nrefer to files in the current or any other source directory instead\nof constructing paths manually with [[meson.current_source_dir]].\n"], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_compiler": {"name": "get_compiler", "description": "Returns a [[@compiler]] object describing a compiler.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "compiler", "holds": []}], "returns_str": "compiler", "posargs": {"language": {"name": "language", "description": "The language of the compiler to return.\n\nSee our [list of supported languages](Reference-tables.md#language-arguments-parameter-names).\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"native": {"name": "native", "description": "When set to `true` Meson returns the compiler for the build\nmachine (the \"native\" compiler) and when `false` it returns the host\ncompiler (the \"cross\" compiler). If `native` is omitted, Meson\nreturns the \"cross\" compiler if we're currently cross-compiling and\nthe \"native\" compiler if we're not.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "get_cross_property": {"name": "get_cross_property", "description": "Returns the given property from a cross file, the optional fallback_value\nis returned if not cross compiling or the given property is not found.\n\nThis method is replaced by [[meson.get_external_property]].", "since": null, "deprecated": "0.58.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "any", "holds": []}], "returns_str": "any", "posargs": {"propname": {"name": "propname", "description": "Name of the property in the cross / native file.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"fallback_value": {"name": "fallback_value", "description": "Value to return if `propname` is not set in the machine file.", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": false}, "get_external_property": {"name": "get_external_property", "description": "Returns the given property from a native or cross file.\nThe optional fallback_value is returned if the given property is not found.", "since": "0.54.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "any", "holds": []}], "returns_str": "any", "posargs": {"propname": {"name": "propname", "description": "Name of the property in the cross / native file.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"fallback_value": {"name": "fallback_value", "description": "Value to return if `propname` is not set in the machine file.", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {"native": {"name": "native", "description": "Setting `native` to `true` forces retrieving a variable from the\nnative file, even when cross-compiling.\nIf `native: false` or not specified, the variable is retrieved from the\ncross-file if cross-compiling, and from the native-file when not cross-compiling.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": false}, "global_build_root": {"name": "global_build_root", "description": "Returns a string with the absolute path to the build root directory.\nThis function will return the build root of the\nmain project if called from a subproject, which is usually not what you want.\nIt is usually preferable to use [[meson.current_build_dir]] or [[meson.project_build_root]].", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "global_source_root": {"name": "global_source_root", "description": "Returns a string with the absolute path to the source root directory\nThis function will return the source root of the\nmain project if called from a subproject, which is usually not what you want.\nIt is usually preferable to use [[meson.current_source_dir]] or [[meson.project_source_root]].", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "has_exe_wrapper": {"name": "has_exe_wrapper", "description": "Use [[meson.can_run_host_binaries]] instead.", "since": null, "deprecated": "0.55.0", "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "has_external_property": {"name": "has_external_property", "description": "Checks whether the given property exist in a native or cross file.", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"propname": {"name": "propname", "description": "Name of the property in the cross / native file.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"native": {"name": "native", "description": "Setting `native` to `true` forces retrieving a variable from the\nnative file, even when cross-compiling.\nIf `native: false` or not specified, the variable is retrieved from the\ncross-file if cross-compiling, and from the native-file when not cross-compiling.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "install_dependency_manifest": {"name": "install_dependency_manifest", "description": "Installs a manifest file\ncontaining a list of all subprojects, their versions and license\nfiles to the file name given as the argument.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"output_name": {"name": "output_name", "description": "Name of the manifest file to install", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "is_cross_build": {"name": "is_cross_build", "description": "Returns `true` if the current build is a [cross build](Cross-compilation.md) and `false` otherwise.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "is_subproject": {"name": "is_subproject", "description": "Returns `true` if the current project is being built as a subproject of some other project and `false` otherwise.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "is_unity": {"name": "is_unity", "description": "Returns `true` when doing a [unity build](Unity-builds.md) (multiple sources are combined before compilation to reduce build time) and `false` otherwise.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "override_dependency": {"name": "override_dependency", "description": "Specifies that whenever [[dependency]] with `name` is used, Meson should not\nlook it up on the system but instead return `dep_object`, which may either be\nthe result of [[dependency]] or [[declare_dependency]].\n\nDoing this in a subproject allows the parent\nproject to retrieve the dependency without having to know the dependency\nvariable name: `dependency(name, fallback : subproject_name)`.", "since": "0.54.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"name": {"name": "name", "description": "The name of the dependency to override.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "dep_object": {"name": "dep_object", "description": "The dependency to set as the override for `name`.", "since": null, "deprecated": null, "type": [{"obj": "dep", "holds": []}], "type_str": "dep", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {"native": {"name": "native", "description": "If set to `true`, the dependency is always overwritten for the build machine.\nOtherwise, the dependency is overwritten for the host machine, which\ndiffers from the build machine when cross-compiling.\n", "since": null, "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "false", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "static": {"name": "static", "description": "Used to override static and/or shared dependencies separately.\nIf not specified it is assumed\n`dep_object` follows `default_library` option value.\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "bool", "holds": []}], "type_str": "bool", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "varargs": null, "arg_flattening": true}, "override_find_program": {"name": "override_find_program", "description": "specifies that whenever [[find_program]] is used to find a program\nnamed `progname`, Meson should not look it up on the system but\ninstead return `program`, which may either be the result of\n[[find_program]], [[configure_file]] or [[executable]].\n\n*(since 0.55.0)* If a version\ncheck is passed to [[find_program]] for a program that has been overridden with\nan executable, the current project version is used.", "since": "0.46.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "void", "holds": []}], "returns_str": "void", "posargs": {"progname": {"name": "progname", "description": "The name of the program to override.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "program": {"name": "program", "description": "The program to set as the override for `progname`.", "since": null, "deprecated": null, "type": [{"obj": "exe", "holds": []}, {"obj": "file", "holds": []}, {"obj": "external_program", "holds": []}], "type_str": "exe|file|external_program", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "project_build_root": {"name": "project_build_root", "description": "Returns a string with the absolute path to the build root directory of the current (sub)project.", "since": "0.56.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "project_license": {"name": "project_license", "description": "Returns the array of licenses specified in [[project]] function call.", "since": "0.45.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "project_name": {"name": "project_name", "description": "Returns the project name specified in the [[project]] function call.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "project_source_root": {"name": "project_source_root", "description": "Returns a string with the absolute path to the source root directory of the current (sub)project.", "since": "0.56.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "project_version": {"name": "project_version", "description": "Returns the version string specified in [[project]] function call.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "source_root": {"name": "source_root", "description": "Returns a string with the absolute path to the source root directory.\n\nThis function will return the source root of the\nparent project if called from a subproject, which is usually not what you want.\nTry using [[meson.current_source_dir]] or [[meson.project_source_root]].\nIn the rare cases where the root of the main project is needed,\nuse [[meson.global_source_root]] that has the same behaviour but with a more explicit\nname.", "since": null, "deprecated": "0.56.0", "notes": ["You should use the [[files]] function\nto refer to files in the root source directory instead of\nconstructing paths manually with [[meson.source_root]].\n"], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "version": {"name": "version", "description": "Return a string with the version of Meson.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "module": {"name": "module", "description": "Base type for all modules.\n\nModules provide their own specific implementation methods, but all modules\nproivide the following methods:", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["import"], "extended_by": [], "methods": {"found": {"name": "found", "description": "Returns `true` if the module was successfully imported, otherwise `false`.", "since": "0.59.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "range": {"name": "range", "description": "Opaque object that can be used in a loop and accessed via `[num]`.", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["range"], "extended_by": [], "methods": {}}, "run_tgt": {"name": "run_tgt", "description": "Opaque object returned by [[run_target]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": "tgt", "returned_by": ["run_target"], "extended_by": [], "methods": {}}, "runresult": {"name": "runresult", "description": "This object encapsulates the result of trying to compile and run a\nsample piece of code with [[compiler.run]] or\n[[run_command]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["run_command", "run"], "extended_by": [], "methods": {"compiled": {"name": "compiled", "description": "If `true`, the compilation succeeded, if `false` it did not\nand the other methods return unspecified data. This is only available\nfor `compiler.run()` results.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "returncode": {"name": "returncode", "description": "The return code of executing the compiled binary", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "stderr": {"name": "stderr", "description": "The standard error produced when the command was run.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "stdout": {"name": "stdout", "description": "The standard out produced when the command was run.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "str": {"name": "str", "description": "All [strings](Syntax.md#strings) have the following methods. Strings\nare immutable, all operations return their results as a new string.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": false, "example": null, "extends": null, "returned_by": ["get_option", "join_paths", "to_string", "cpu", "cpu_family", "endian", "system", "full_path", "name", "path", "get", "get_unquoted", "get_argument_syntax", "get_define", "get_id", "get_linker_id", "version", "full_path", "full_path", "get_configtool_variable", "get_pkgconfig_variable", "get_variable", "include_type", "name", "type_name", "version", "full_path", "path", "version", "to_string", "backend", "build_root", "current_build_dir", "current_source_dir", "global_build_root", "global_source_root", "project_build_root", "project_name", "project_source_root", "project_version", "source_root", "version", "stderr", "stdout", "format", "join", "replace", "strip", "substring", "to_lower", "to_upper", "underscorify"], "extended_by": [], "methods": {"contains": {"name": "contains", "description": "Returns `true` if string contains the string specified as the argument.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntarget = 'x86_FreeBSD'\nis_fbsd = target.to_lower().contains('freebsd')\n# is_fbsd now has the boolean value 'true'\n```\n", "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"fragment": {"name": "fragment", "description": "The string fragment to check", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "endswith": {"name": "endswith", "description": "Returns true if string ends with the string specified as the argument.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntarget = 'x86_FreeBSD'\nis_bsd = target.to_lower().endswith('bsd') # boolean value 'true'\n```\n", "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"fragment": {"name": "fragment", "description": "The string fragment to check", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "format": {"name": "format", "description": "Strings can be built using the string formatting functionality.\n\nSee [the Meson syntax entry](Syntax.md#string-formatting) for more\ninformation.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntemplate = 'string: @0@, number: @1@, bool: @2@'\nres = template.format('text', 1, true)\n# res now has value 'string: text, number: 1, bool: true'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {"fmt": {"name": "fmt", "description": "The string to format.\n\nThe formatting works by replacing placeholders of type `@number@` with\nthe corresponding varargs.\n", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": {"name": "value", "description": "The values to replace the @number@ placeholders in the format string.", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}, {"obj": "bool", "holds": []}, {"obj": "str", "holds": []}], "type_str": "int|bool|str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": false}, "join": {"name": "join", "description": "The opposite of split,\nfor example `'.'.join(['a', 'b', 'c']` yields `'a.b.c'`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\n# Similar to the Python str.join()\noutput = ' '.join(['foo', 'bar'])\n# Output value is 'foo bar'\npathsep = ':'\npath = pathsep.join(['/usr/bin', '/bin', '/usr/local/bin'])\n# path now has the value '/usr/bin:/bin:/usr/local/bin'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": {"name": "strings", "description": "The strings to join with the current string.\n\nBefore Meson *0.60.0* this function only accepts a single positional\nargument of the type [[list[str]]].\n", "since": "0.60.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": null, "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "arg_flattening": true}, "replace": {"name": "replace", "description": "Search all occurrences of `old` and and replace it with `new`", "since": "0.58.0", "deprecated": null, "notes": [], "warnings": [], "example": "```meson\n# Replaces all instances of one substring with another\ns = 'semicolons;as;separators'\ns = s.replace('as', 'are')\n# 's' now has the value of 'semicolons;are;separators'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {"old": {"name": "old", "description": "The substring to search", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "new": {"name": "new", "description": "The replacement string", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "split": {"name": "split", "description": "Splits the string at the specified character\n(or whitespace if not set) and returns the parts in an\narray.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\n# Similar to the Python str.split()\ncomponents = 'a b c d '.split()\n# components now has the value ['a', 'b', 'c', 'd']\ncomponents = 'a b c d '.split(' ')\n# components now has the value ['a', 'b', '', '', 'c', 'd', '']\n```\n", "returns": [{"obj": "list", "holds": [{"obj": "str", "holds": []}]}], "returns_str": "list[str]", "posargs": {}, "optargs": {"split_string": {"name": "split_string", "description": "Specifies the character / substring where to split the string.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "startswith": {"name": "startswith", "description": "Returns true if string starts with the string specified as the argument.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntarget = 'x86_FreeBSD'\nis_x86 = target.startswith('x86') # boolean value 'true'\n```\n", "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"fragment": {"name": "fragment", "description": "The string fragment to check", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "strip": {"name": "strip", "description": "Removes leading/ending spaces and newlines from the string.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\n# Similar to the Python str.strip(). Removes leading/ending spaces and newlines\ndefine = ' -Dsomedefine '\nstripped_define = define.strip()\n# 'stripped_define' now has the value '-Dsomedefine'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {"strip_chars": {"name": "strip_chars", "description": "All characters in this string will be stripped.", "since": "0.43.0", "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "substring": {"name": "substring", "description": "Returns a substring specified from `start` to `end`.\nBoth `start` and `end` arguments are optional, so, for example, `'foobar'.substring()` will return `'foobar'`.\n\nThe method accepts negative values where negative `start` is relative to the end of\nstring `len(string) - start` as well as negative `end`.", "since": "0.56.0", "deprecated": null, "notes": [], "warnings": [], "example": "```meson\n# Similar to the Python str[start:end] syntax\ntarget = 'x86_FreeBSD'\nplatform = target.substring(0, 3) # prefix string value 'x86'\nsystem = target.substring(4) # suffix string value 'FreeBSD'\n```\n\nExample with negative values:\n\n```meson\nstring = 'foobar'\nstring.substring(-5, -3) # => 'oo'\nstring.substring(1, -1) # => 'ooba'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {"start": {"name": "start", "description": "The start position", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}, "end": {"name": "end", "description": "The end position", "since": null, "deprecated": null, "type": [{"obj": "int", "holds": []}], "type_str": "int", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "to_int": {"name": "to_int", "description": "Converts the string to an int and throws an error if it can't be", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\nversion = '1'\n# Converts the string to an int and throws an error if it can't be\nver_int = version.to_int()\n```\n", "returns": [{"obj": "int", "holds": []}], "returns_str": "int", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "to_lower": {"name": "to_lower", "description": "Converts all characters to lower case", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntarget = 'x86_FreeBSD'\nlower = target.to_lower() # t now has the value 'x86_freebsd'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "to_upper": {"name": "to_upper", "description": "Converts all characters to upper case", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\ntarget = 'x86_FreeBSD'\nupper = target.to_upper() # t now has the value 'X86_FREEBSD'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "underscorify": {"name": "underscorify", "description": "Creates a string where every non-alphabetical non-number character is replaced with `_`.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\nname = 'Meson Docs.txt#Reference-manual'\n# Replaces all characters other than `a-zA-Z0-9` with `_` (underscore)\n# Useful for substituting into #defines, filenames, etc.\nunderscored = name.underscorify()\n# underscored now has the value 'Meson_Docs_txt_Reference_manual'\n```\n", "returns": [{"obj": "str", "holds": []}], "returns_str": "str", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "version_compare": {"name": "version_compare", "description": "Does semantic version comparison.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": "```meson\nversion = '1.2.3'\n# Compare version numbers semantically\nis_new = version.version_compare('>=2.0')\n# is_new now has the boolean value false\n# Supports the following operators: '>', '<', '>=', '<=', '!=', '==', '='\n```\n\nMeson version comparison conventions include:\n\n```meson\n'3.6'.version_compare('>=3.6.0') == false\n```\n\nIt is best to be unambiguous and specify the full revision level to compare.\n", "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {"compare_string": {"name": "compare_string", "description": "The string to compare to.", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}}}, "structured_src": {"name": "structured_src", "description": "Opaque object returned by [[structured_sources]].", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["structured_sources"], "extended_by": [], "methods": {}}, "subproject": {"name": "subproject", "description": "This object is returned by [[subproject]] and is an opaque object representing it.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": ["subproject"], "extended_by": [], "methods": {"found": {"name": "found", "description": "Returns whether the subproject was successfully setup.", "since": "0.48.0", "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "bool", "holds": []}], "returns_str": "bool", "posargs": {}, "optargs": {}, "kwargs": {}, "varargs": null, "arg_flattening": true}, "get_variable": {"name": "get_variable", "description": "fetches the specified variable from inside the subproject.\nThis is useful to, for instance, get a\n[[declare_dependency]] from the [subproject](Subprojects.md).\n\nIf the variable does not exist, the variable `fallback` is returned.\nIf a fallback is not specified, then attempting to read a non-existing\nvariable will cause a fatal error.", "since": null, "deprecated": null, "notes": [], "warnings": [], "example": null, "returns": [{"obj": "any", "holds": []}], "returns_str": "any", "posargs": {"var_name": {"name": "var_name", "description": "The name of the variable to query", "since": null, "deprecated": null, "type": [{"obj": "str", "holds": []}], "type_str": "str", "required": true, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "optargs": {"fallback": {"name": "fallback", "description": "The fallback value to return if `var_name` does not exist.", "since": null, "deprecated": null, "type": [{"obj": "any", "holds": []}], "type_str": "any", "required": false, "default": "", "min_varargs": null, "max_varargs": null, "notes": [], "warnings": []}}, "kwargs": {}, "varargs": null, "arg_flattening": false}}}, "target_machine": {"name": "target_machine", "description": "Provides information about the target machine -- the machine on which\nthe compiled binary's output will run. Hence, this object should only\nbe used while cross-compiling a compiler. See\n[Cross-compilation](Cross-compilation.md).\n\nIt has the same methods as [[@build_machine]].\n\nWhen all compilation is 'native', all the methods return the same\nvalues as [[@build_machine]] (because the build machine is the host\nmachine and the target machine).\n\nNote that while cross-compiling, it simply returns the values defined\nin the cross-info file. If `target_machine` values are not defined in\nthe cross-info file, `host_machine` values are returned instead.", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "BUILTIN", "is_container": false, "example": null, "extends": "build_machine", "returned_by": [], "extended_by": [], "methods": {}}, "tgt": {"name": "tgt", "description": "Opaque base object for all Meson targets", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "RETURNED", "is_container": false, "example": null, "extends": null, "returned_by": [], "extended_by": ["alias_tgt", "build_tgt", "custom_tgt", "run_tgt"], "methods": {}}, "void": {"name": "void", "description": "Indicates that the function does not return anything.\nSimilar to `void` in C and C++", "since": null, "deprecated": null, "notes": [], "warnings": [], "defined_by_module": null, "object_type": "ELEMENTARY", "is_container": false, "example": null, "extends": null, "returned_by": ["add_global_arguments", "add_global_link_arguments", "add_project_arguments", "add_project_dependencies", "add_project_link_arguments", "add_test_setup", "assert", "benchmark", "debug", "error", "install_data", "install_emptydir", "install_headers", "install_man", "install_subdir", "install_symlink", "message", "project", "set_variable", "subdir", "subdir_done", "summary", "test", "unset_variable", "warning", "merge_from", "set", "set10", "set_quoted", "add_cmake_defines", "append", "prepend", "set", "add_devenv", "add_dist_script", "add_install_script", "add_postconf_script", "install_dependency_manifest", "override_dependency", "override_find_program"], "extended_by": [], "methods": {}}}, "objects_by_type": {"elementary": ["any", "bool", "dict", "int", "list", "str", "void"], "builtins": ["build_machine", "host_machine", "meson", "target_machine"], "returned": ["alias_tgt", "both_libs", "build_tgt", "cfg_data", "compiler", "custom_idx", "custom_tgt", "dep", "disabler", "env", "exe", "external_program", "extracted_obj", "feature", "file", "generated_list", "generator", "inc", "jar", "lib", "module", "range", "run_tgt", "runresult", "structured_src", "subproject", "tgt"], "modules": {"cmake": ["cmake_options"]}}} \ No newline at end of file diff --git a/mpv/PKGBUILD b/mpv/PKGBUILD new file mode 100644 index 0000000..326b638 --- /dev/null +++ b/mpv/PKGBUILD @@ -0,0 +1,108 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=mpv +epoch=1 +_tag='3996724d3fa1c51cc7998f3de2e22e2c99e6d270' # git rev-parse v${pkgver} +pkgver=0.36.0 +pkgrel=01 +pkgdesc='a free, open source, and cross-platform media player - alsa no-pipew' +url='https://mpv.io/' +depends=('alsa-lib' 'libasound.so' 'desktop-file-utils' 'ffmpeg' 'libavcodec.so' 'libavdevice.so' + 'libavfilter.so' 'libavformat.so' 'libavutil.so' 'libswresample.so' 'libswscale.so' + 'glibc' 'hicolor-icon-theme' 'jack' 'libjack.so' 'lcms2' 'liblcms2.so' 'libarchive' + 'libarchive.so' 'libass' 'libass.so' 'libbluray' 'libbluray.so' 'libcdio' + 'libcdio-paranoia' 'libdrm' 'libdvdnav' 'libdvdread' 'libegl' 'libgl' 'libglvnd' + 'libjpeg' 'libjpeg.so' 'libplacebo' 'libplacebo.so' 'libpulse' 'libpulse.so' + 'libva' 'libva.so' 'libva-drm.so' 'libva-wayland.so' 'libva-x11.so' 'libvdpau' 'libx11' + 'libxext' 'libxinerama' 'libxkbcommon' 'libxkbcommon.so' 'libxpresent' 'libxrandr' 'libxss' + 'libxv' 'luajit' 'mesa' 'mujs' 'rubberband' 'librubberband.so' 'shaderc' + 'libshaderc_shared.so' 'uchardet' 'vulkan-icd-loader' 'wayland' 'zlib') +makedepends=('git' 'meson' 'python-docutils' 'ladspa' 'wayland-protocols' + 'ffnvcodec-headers' 'vulkan-headers') +optdepends=('yt-dlp: for video-sharing websites playback' + 'youtube-dl: for video-sharing websites playback') +provides=('libmpv.so') +conflicts=(mpv-git) +#options=('debug' '!emptydirs') ## uncomment this line to have the debug pkg produced +options=('!emptydirs') +#install=mpv.install +source=("git+https://github.com/mpv-player/mpv.git#tag=${_tag}?signed") + +#pkgver() { +# cd ${pkgname} +# ./version.sh | sed s/-/_/g +#} + +#prepare() { +# cd "${pkgname}" +# +## Fix build with new libplacebo +# git cherry-pick -n \ +# 985655ebfd77ceddc44d76f8cc6dc446002f34ee \ +# a5961ad096b1361a12f836c8b170fc748f46962a \ +# 3a2f8d42ab203c961e50ce198ca4eb232de3819a +# +#} + +build() { + local _meson_options=( + --auto-features auto + -Dlibmpv=true + -Dpipewire=disabled + -Dcaca=disabled + -Dcdda=enabled + -Ddvbin=enabled + -Ddvdnav=enabled + -Dlibarchive=enabled + ) + + arch-meson "${pkgname}" build "${_meson_options[@]}" + + meson compile -C build +} + +check() { + meson test -C build +} + +package() { + meson install -C build --destdir "${pkgdir}" + + # delete private entries only required for static linking + sed -i -e '/Requires.private/d' -e '/Libs.private/d' "${pkgdir}"/usr/lib/pkgconfig/mpv.pc + + install -m0644 "${pkgname}"/DOCS/{encoding.rst,tech-overview.txt} \ + "${pkgdir}"/usr/share/doc/mpv + + install -m0644 "${pkgname}"/TOOLS/lua/* \ + -D -t "${pkgdir}"/usr/share/mpv/scripts +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +# We link against libraries that are licensed GPLv3 explicitly, so our +# package is GPLv3 only as well. (Is this still correct?) +license=('GPL3') + +validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 + +# validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 # not to be used with git +# # only with signed releases + +sha256sums=(SKIP) + +## a7005010e7cecbe1423b6c79a3c87bde4bc683dedd9a2258d31774a4bd305263 mpv-1:0.36.0-01-x86_64.pkg.tar.lz + + +# Note to packager: +ls -l *pkg.tar.lz +echo "you must rename this package to meet SF naming before you move to the repo" +mv $(ls -l $pkgname*pkg.tar.lz) $pkgname-$epoch_$pkgver-$pkgrel-$arch.pkg.tar.lz >pkg-mv.log + diff --git a/mpv/PKGBUILD-arch b/mpv/PKGBUILD-arch new file mode 100644 index 0000000..70e4387 --- /dev/null +++ b/mpv/PKGBUILD-arch @@ -0,0 +1,70 @@ +# Maintainer: Christian Hesse +# Maintainer: Robin Candau +# Contributor: Bartłomiej Piotrowski +# Contributor: Eivind Uggedal + +pkgname=mpv +epoch=1 +_tag='3996724d3fa1c51cc7998f3de2e22e2c99e6d270' # git rev-parse v${pkgver} +pkgver=0.36.0 +pkgrel=1 +pkgdesc='a free, open source, and cross-platform media player' +arch=('x86_64') +# We link against libraries that are licensed GPLv3 explicitly, so our +# package is GPLv3 only as well. (Is this still correct?) +license=('GPL3') +url='https://mpv.io/' +depends=('alsa-lib' 'libasound.so' 'desktop-file-utils' 'ffmpeg' 'libavcodec.so' 'libavdevice.so' + 'libavfilter.so' 'libavformat.so' 'libavutil.so' 'libswresample.so' 'libswscale.so' + 'glibc' 'hicolor-icon-theme' 'jack' 'libjack.so' 'lcms2' 'liblcms2.so' 'libarchive' + 'libarchive.so' 'libass' 'libass.so' 'libbluray' 'libbluray.so' 'libcdio' + 'libcdio-paranoia' 'libdrm' 'libdvdnav' 'libdvdread' 'libegl' 'libgl' 'libglvnd' + 'libjpeg' 'libjpeg.so' 'libplacebo' 'libplacebo.so' 'libpulse' 'libpulse.so' + 'libva' 'libva.so' 'libva-drm.so' 'libva-wayland.so' 'libva-x11.so' 'libvdpau' 'libx11' + 'libxext' 'libxinerama' 'libxkbcommon' 'libxkbcommon.so' 'libxpresent' 'libxrandr' 'libxss' + 'libxv' 'luajit' 'mesa' 'mujs' 'libpipewire' 'rubberband' 'librubberband.so' 'shaderc' + 'libshaderc_shared.so' 'uchardet' 'vulkan-icd-loader' 'wayland' 'zlib') +makedepends=('git' 'meson' 'python-docutils' 'ladspa' 'wayland-protocols' + 'ffnvcodec-headers' 'vulkan-headers') +optdepends=('yt-dlp: for video-sharing websites playback' + 'youtube-dl: for video-sharing websites playback') +provides=('libmpv.so') +options=('!emptydirs') +validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 +source=("git+https://github.com/mpv-player/mpv.git#tag=${_tag}?signed") +sha256sums=('SKIP') + +build() { + local _meson_options=( + --auto-features auto + + -Dlibmpv=true + + -Dcaca=disabled + -Dcdda=enabled + -Ddvbin=enabled + -Ddvdnav=enabled + -Dlibarchive=enabled + ) + + arch-meson "${pkgname}" build "${_meson_options[@]}" + + meson compile -C build +} + +check() { + meson test -C build +} + +package() { + meson install -C build --destdir "${pkgdir}" + + # delete private entries only required for static linking + sed -i -e '/Requires.private/d' -e '/Libs.private/d' "${pkgdir}"/usr/lib/pkgconfig/mpv.pc + + install -m0644 "${pkgname}"/DOCS/{encoding.rst,tech-overview.txt} \ + "${pkgdir}"/usr/share/doc/mpv + + install -m0644 "${pkgname}"/TOOLS/lua/* \ + -D -t "${pkgdir}"/usr/share/mpv/scripts +} diff --git a/mpv/PKGBUILD-aur b/mpv/PKGBUILD-aur new file mode 100644 index 0000000..8a42730 --- /dev/null +++ b/mpv/PKGBUILD-aur @@ -0,0 +1,158 @@ +# Maintainer: Philip Sequeira +# Contributor: Rudolf Polzer +# Contributor: Bartłomiej Piotrowski +# Contributor: Eivind Uggedal + +_opt_features=( + + # Disabled by default, need to be enabled every build: + + #dvd + #cd + #sdl2 + #openal + + # mpv supports lua52 and luajit, and will automatically enable Lua support if + # either is installed. If both are installed, it will choose lua52. The choice + # is made at compile time and only one of the two can be enabled. The two + # options below, when uncommented, will force selection of their respective + # implementations even if the other is installed, as well as adding the + # appropriate dependency. + + #lua + luajit + + # The rest of these are autodetected, and are just provided to set + # dependencies the first time you build. If you have the dependencies + # installed, subsequent builds will pick them up automatically. + + #javascript + + x11 + wayland + + libplacebo # Vulkan and vo=gpu-next (latter sometimes needs libplacebo-git) + + #uchardet + #rubberband + + # Features disabled by default, but don't require any extra dependencies on an + # Arch system: + + dvbin + +) + +# Note: The configure script will automatically enable most optional features it +# finds support for on your system. The dependencies of the built package will +# be updated based on dynamic libraries, but if you want to avoid linking +# against something you have installed, you'll have to disable it in the +# configure below. + +pkgname=mpv-git +_gitname=mpv +pkgver=0.35.0_135_g9b59d39a3a +pkgrel=1 +pkgdesc='Video player based on MPlayer/mplayer2 (git version)' +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +license=('GPL') +url='https://mpv.io' +_undetected_depends=('hicolor-icon-theme') +depends=('ffmpeg' "${_undetected_depends[@]}") +optdepends=('yt-dlp: for video-sharing websites playback (preferred over youtube-dl)' + 'youtube-dl: for video-sharing websites playback') +makedepends=('git' + 'meson' + 'python-docutils' # for rst2man, to generate manpage + 'pacman-contrib' # for pactree, used in find-deps.py + 'vulkan-headers') +provides=('mpv' 'libmpv.so') +conflicts=('mpv') +options=('!emptydirs') +install=mpv.install +source=('git+https://github.com/mpv-player/mpv' + 'find-deps.py') +sha256sums=('SKIP' + '1ba780ede4a28b68ae5b7ab839958ff91ed01d3c6c1d24cce8a5dd24492f8d2b') + +_opt_extra_flags=() + +for feature in "${_opt_features[@]}"; do + case "$feature" in + dvd) + depends+=('libdvdnav') + _opt_extra_flags+=('-Ddvdnav=enabled') + ;; + cd) + depends+=('libcdio-paranoia') + _opt_extra_flags+=('-Dcdda=enabled') + ;; + lua) + depends+=('lua52') + _opt_extra_flags+=('-Dlua=enabled' '-Dlua=lua52') + ;; + luajit) + depends+=('luajit') + _opt_extra_flags+=('-Dlua=enabled' '-Dlua=luajit') + ;; + javascript) + depends+=('mujs') + _opt_extra_flags+=('-Djavascript=enabled') + ;; + x11) + depends+=('libxinerama' 'libxpresent' 'libxss') + _opt_extra_flags+=('-Dx11=enabled') + ;; + wayland) + depends+=('wayland' 'libxkbcommon') + makedepends+=('wayland-protocols') + _opt_extra_flags+=('-Dwayland=enabled') + ;; + sdl2|openal|libplacebo|uchardet|rubberband) + depends+=("$feature") + _opt_extra_flags+=("-D${feature}=enabled") + ;; + dvbin) + _opt_extra_flags+=("-D${feature}=enabled") + ;; + *) + echo "ERROR: Unknown feature option: $feature" >&2 + exit 1 + esac +done + +pkgver() { + cd "$srcdir/$_gitname" + ./version.py | sed s/-/_/g +} + +build() { + cd "$srcdir/$_gitname" + + # Removing build dir, if present, ensures features omitted from the configure + # command get their default values, and cleans up after waf if it was + # previously used (which can cause the build to fail otherwise). + # Downside is wasted recompilation. + rm -rf build + + meson setup build \ + --prefix=/usr \ + --sysconfdir=/etc \ + --buildtype=plain \ + --wrap-mode=nodownload \ + -Dlibmpv=true \ + "${_opt_extra_flags[@]}" + + meson compile -C build +} + +package() { + cd "$srcdir/$_gitname" + meson install -C build --no-rebuild --destdir="$pkgdir" + + # Update dependencies automatically based on dynamic libraries + _detected_depends=($(python3 "$srcdir"/find-deps.py "$pkgdir"/usr/{bin/mpv,lib/libmpv.so})) + echo 'Auto-detected dependencies:' + echo "${_detected_depends[@]}" | fold -s -w 79 | sed 's/^/ /' + depends=("${_detected_depends[@]}" "${_undetected_depends[@]}") +} diff --git a/mpv/PKGBUILD.good b/mpv/PKGBUILD.good new file mode 100644 index 0000000..5e565d5 --- /dev/null +++ b/mpv/PKGBUILD.good @@ -0,0 +1,68 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcomm/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=mpv +epoch=1 +_tag='33f10b1aee5fef45960728fe8595d1603c8a9a85' # git rev-parse v${pkgver} +pkgver=0.35.0 +pkgrel=04 +pkgdesc='a free, open source, and cross-platform media player' +arch=('x86_64') +# We link against libraries that are licensed GPLv3 explicitly, so our +# package is GPLv3 only as well. (Is this still correct?) +url='https://mpv.io/' +depends=('alsa-lib' 'desktop-file-utils' 'ffmpeg' 'glibc' 'hicolor-icon-theme' 'jack' 'lcms2' 'libarchive' + 'libass' 'libbluray' 'libcdio' 'libcdio-paranoia' 'libdrm' 'libdvdnav' 'libdvdread' 'libegl' 'libgl' 'libglvnd' + 'libjpeg' 'libplacebo' 'libpulse' 'libva' 'libvdpau' 'libx11' 'libxext' 'libxinerama' 'libxkbcommon' + 'libxpresent' 'libxrandr' 'libxss' 'libxv' 'luajit' 'mesa' 'mujs' 'rubberband' 'shaderc' + 'uchardet' 'vulkan-icd-loader' 'wayland' 'xdg-utils' 'zlib') +makedepends=('git' 'python-docutils' 'ladspa' 'wayland-protocols' + 'ffnvcodec-headers' 'vulkan-headers' 'waf') +optdepends=('yt-dlp: for video-sharing websites playback' + 'youtube-dl: for video-sharing websites playback') +provides=('libmpv.so') +conflicts=(mpv-git) +#options=('debug' '!emptydirs') ## uncomment this line to have the debug pkg produced +options=('!emptydirs') +source=("git+https://github.com/mpv-player/mpv.git#tag=${_tag}?signed") + +build() { + cd ${pkgname} + + waf configure --prefix=/usr \ + --confdir=/etc/mpv \ + --enable-cdda \ + --enable-dvb \ + --enable-dvdnav \ + --enable-libarchive \ + --enable-libmpv-shared \ + --disable-build-date \ + --disable-pipewire \ + --disable-caca + + waf build +} + +package() { + cd ${pkgname} + + waf install --destdir="$pkgdir" + + install -m0644 DOCS/{encoding.rst,tech-overview.txt} \ + "$pkgdir"/usr/share/doc/mpv + + install -m0644 TOOLS/lua/* \ + -D -t "$pkgdir"/usr/share/mpv/scripts +} + +#---- license gpg-key sha256sums ---- + +license=('GPL3') + +validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 + +sha256sums=(SKIP) diff --git a/mpv/PKGBUILD.with-lib-deps b/mpv/PKGBUILD.with-lib-deps new file mode 100644 index 0000000..5895b57 --- /dev/null +++ b/mpv/PKGBUILD.with-lib-deps @@ -0,0 +1,75 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcomm/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=mpv +epoch=1 +_tag='33f10b1aee5fef45960728fe8595d1603c8a9a85' # git rev-parse v${pkgver} +pkgver=0.35.0 +pkgrel=03 +pkgdesc='a free, open source, and cross-platform media player' +arch=('x86_64') +# We link against libraries that are licensed GPLv3 explicitly, so our +# package is GPLv3 only as well. (Is this still correct?) +url='https://mpv.io/' +depends=('alsa-lib' 'libasound.so' 'desktop-file-utils' 'ffmpeg' 'libavcodec.so' 'libavdevice.so' + 'libavfilter.so' 'libavformat.so' 'libavutil.so' 'libswresample.so' 'libswscale.so' + 'glibc' 'hicolor-icon-theme' 'jack' 'libjack.so' 'lcms2' 'liblcms2.so' 'libarchive' + 'libarchive.so' 'libass' 'libass.so' 'libbluray' 'libbluray.so' 'libcdio' + 'libcdio-paranoia' 'libdrm' 'libdvdnav' 'libdvdread' 'libegl' 'libgl' 'libglvnd' + 'libjpeg' 'libjpeg.so' 'libplacebo' 'libplacebo.so' 'libpulse' 'libpulse.so' + 'libva' 'libva.so' 'libva-drm.so' 'libva-wayland.so' 'libva-x11.so' 'libvdpau' 'libx11' + 'libxext' 'libxinerama' 'libxkbcommon' 'libxkbcommon.so' 'libxpresent' 'libxrandr' 'libxss' + 'libxv' 'luajit' 'mesa' 'mujs' 'rubberband' 'librubberband.so' 'shaderc' + 'libshaderc_shared.so' 'uchardet' 'vulkan-icd-loader' 'wayland' 'xdg-utils' + 'zlib') +makedepends=('git' 'python-docutils' 'ladspa' 'wayland-protocols' + 'ffnvcodec-headers' 'vulkan-headers' 'waf') +optdepends=('yt-dlp: for video-sharing websites playback' + 'youtube-dl: for video-sharing websites playback') +provides=('libmpv.so') +#options=('debug' '!emptydirs') ## uncomment this line to have the debug pkg produced +options=('!emptydirs') +source=("git+https://github.com/mpv-player/mpv.git#tag=${_tag}?signed") + +build() { + cd ${pkgname} + + waf configure --prefix=/usr \ + --confdir=/etc/mpv \ + --enable-cdda \ + --enable-dvb \ + --enable-dvdnav \ + --enable-libarchive \ + --enable-libmpv-shared \ + --disable-build-date \ + --disable-pipewire \ + --disable-caca + + waf build +} + +package() { + cd ${pkgname} + + waf install --destdir="$pkgdir" + + install -m0644 DOCS/{encoding.rst,tech-overview.txt} \ + "$pkgdir"/usr/share/doc/mpv + + install -m0644 TOOLS/lua/* \ + -D -t "$pkgdir"/usr/share/mpv/scripts +} + +#---- license gpg-key sha256sums ---- + +license=('GPL3') + +validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 + +sha256sums=(SKIP) + + diff --git a/mpv/clean b/mpv/clean new file mode 100644 index 0000000..c919c07 --- /dev/null +++ b/mpv/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,mpv} diff --git a/mpv/deps b/mpv/deps new file mode 100644 index 0000000..0f41592 --- /dev/null +++ b/mpv/deps @@ -0,0 +1,140 @@ +alsa-topology-conf +alsa-ucm-conf +aom +cairo +dav1d +fftw +flac +fontconfig +freetype2 +fribidi +gdk-pixbuf2 +giflib +glslang +graphite +gsm +harfbuzz +hidapi +hwloc +l-smash +lame +libasyncns +libavc1394 +libbs2b +libdatrie +libedit +libepoxy +libice +libiec61883 +libmfx +libmodplug +libnsl +libogg +libomxil-bellagio +libpciaccess +libpng +libraw1394 +librsvg +libsamplerate +libsm +libsndfile +libsoxr +libssh +libthai +libtheora +libtiff +libunwind +libusb +libvorbis +libvpx +libwebp +libxcursor +libxdamage +libxfixes +libxft +libxml2 +libxmu +libxrender +libxshmfence +libxt +libxxf86vm +llvm-libs +lm_sensors +lzo +ocl-icd +opencore-amr +openjpeg2 +openmpi +openpmix +opus +pango +perl-error +perl-mailtools +perl-timedate +pixman +python +rav1e +sdl2 +shared-mime-info +speex +speexdsp +spirv-tools +srt +svt-av1 +sysfsutils +v4l-utils +vid.stab +vmaf +x264 +x265 +xkeyboard-config +xorg-xprop +xorg-xset +xvidcore +zimg +alsa-lib +desktop-file-utils +ffmpeg +ffnvcodec-headers +git +hicolor-icon-theme +jack2 +ladspa +lcms2 +libass +libbluray +libcdio +libcdio-paranoia +libdrm +libdvdnav +libdvdread +libglvnd +libjpeg-turbo +libplacebo +libpulse +libva +libvdpau +libx11 +libxext +libxinerama +libxkbcommon +libxpresent +libxrandr +libxss +libxv +luajit +mesa +mujs +python-docutils +rubberband +shaderc +uchardet +vulkan-headers +vulkan-icd-loader +waf +wayland +wayland-protocols +xdg-utils +libgit2 +meson + diff --git a/mpv/find-deps.py b/mpv/find-deps.py new file mode 100755 index 0000000..6c137a1 --- /dev/null +++ b/mpv/find-deps.py @@ -0,0 +1,48 @@ +#!/usr/bin/python3 + +""" +Usage: find-deps.py [ ...] + +Finds (pacman/ALPM) dependencies for a binary or set of binaries based +on dynamically linked libraries. + +""" + +import sys +import os +import subprocess +import re + +def subprocess_get_lines(args, fail_okay=False): + try: + output = subprocess.check_output(args) + except subprocess.CalledProcessError as e: + if fail_okay: + output = e.output + else: + raise + return output.decode().splitlines() + +# Get the filenames of the libs we need +del os.environ['LD_LIBRARY_PATH'], os.environ['LD_PRELOAD'] # otherwise fakeroot will interfere +ldd_output = subprocess_get_lines(['ldd'] + sys.argv[1:]) +regex = re.compile(r' => (.*) \(0x[0-9a-f]+\)$') +libs = set(match.group(1) for match in map(regex.search, ldd_output) if match) + +# Figure out which packages own them +deps = set(subprocess_get_lines( + ['pacman', '--query', '--owns', '--quiet'] + list(libs), + fail_okay=True +)) + +# Remove redundant dependencies +needed = set(deps) +for pkg in deps: + if pkg not in needed: + continue # this subtree has already been pruned + redundant = subprocess_get_lines( + ['pactree', '--unique', pkg] + )[1:] # first line is pkg itself + needed.difference_update(redundant) + +print(' '.join(sorted(needed))) diff --git a/mpv/key b/mpv/key new file mode 100644 index 0000000..7425f2d --- /dev/null +++ b/mpv/key @@ -0,0 +1,2 @@ +gpg -v --recv-keys 8D769208D5E31419 + diff --git a/mpv/mpv.install b/mpv/mpv.install new file mode 100644 index 0000000..8ebd029 --- /dev/null +++ b/mpv/mpv.install @@ -0,0 +1,25 @@ +pre_install() { + cat <<'EOF' +NOTE: mpv has several optional features that are automatically enabled if the + required libraries are present at configure time. This package does not + include any of the optional features as dependencies by default (but it + does add depends for whatever is linked against when building the + package). If you want to use any optional features that require libraries + you don't currently have installed, please install those libraries and + rebuild the package. A frequently desired optional feature is Lua support, + which is necessary for the on-screen controller "GUI", youtube-dl + integration, and other extension scripts. Lua support can be provided by + lua52 or luajit. Some common features are listed in _opt_features near the + top of the PKGBUILD; uncomment to add the relevant dependencies. +EOF +} + +pre_upgrade() { + if (( $(vercmp $2 0.34.0_348_g3d459832a8) < 0 )) && pacman --deptest libxinerama libxrandr libxss >/dev/null && ! pacman --deptest libxpresent >/dev/null; then + cat <<'EOF' +WARNING: You likely had X11 support enabled for mpv, but it is not enabled in + this build because new dependency libxpresent is not installed. If you + need X11 support, please install libxpresent and rebuild mpv-git. +EOF + fi +} diff --git a/mpv/time b/mpv/time new file mode 100644 index 0000000..35a0fe6 --- /dev/null +++ b/mpv/time @@ -0,0 +1,6 @@ + + +real 1m24.401s +user 3m37.584s +sys 0m11.157s + diff --git a/nbd/0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch b/nbd/0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch new file mode 100644 index 0000000..54a5c9d --- /dev/null +++ b/nbd/0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch @@ -0,0 +1,88 @@ +From cf5a4c1792a25e0eed4627640d7db0ab1eb949e3 Mon Sep 17 00:00:00 2001 +From: Wouter Verhelst +Date: Thu, 27 Apr 2023 15:35:40 +0200 +Subject: [PATCH 1/1] nbd-server: do not straddle uses of GThreadPool across a + fork() + +We created the thread pool at the main initialization, before forking +off a child. This used to work just fine, but as of GLib 2.76, this no +longer works due to changes internal to the implementation of +GThreadPool. + +Since we don't need to use the thread pool before the fork() call +anyway, stop trying to do so and avoid the problem altogether. + +Closes: gh-146 +--- + nbd-server.c | 18 ++++++------------ + 1 file changed, 6 insertions(+), 12 deletions(-) + +diff --git a/nbd-server.c b/nbd-server.c +index fe97ca7..aec2b28 100644 +--- a/nbd-server.c ++++ b/nbd-server.c +@@ -200,7 +200,7 @@ char default_authname[] = SYSCONFDIR "/nbd-server/allow"; /**< default name of a + #include + + /* Our thread pool */ +-GThreadPool *tpool; ++GThreadPool *tpool = NULL; + + /* A work package for the thread pool functions */ + struct work_package { +@@ -2895,7 +2895,6 @@ static int mainloop_threaded(CLIENT* client) { + req->type = ntohl(req->type); + req->len = ntohl(req->len); + +- + if(req->magic != htonl(NBD_REQUEST_MAGIC)) + err("Protocol error: not enough magic."); + +@@ -2934,9 +2933,7 @@ void destroy_pid_t(gpointer data) { + g_free(data); + } + +-static pid_t +-spawn_child(int* socket) +-{ ++static pid_t spawn_child(int* socket) { + pid_t pid; + sigset_t newset; + sigset_t oldset; +@@ -3019,6 +3016,7 @@ handle_modern_connection(GArray *const servers, const int sock, struct generic_c + } + /* Child just continues. */ + } ++ tpool = g_thread_pool_new(handle_request, NULL, genconf->threads, FALSE, NULL); + + sock_flags_old = fcntl(net, F_GETFL, 0); + if (sock_flags_old == -1) { +@@ -3151,11 +3149,11 @@ static int append_new_servers(GArray *const servers, struct generic_conf *gencon + int retval = -1; + + new_servers = parse_cfile(config_file_pos, genconf, true, gerror); +- g_thread_pool_set_max_threads(tpool, genconf->threads, NULL); +- if (!new_servers) ++ if(tpool) g_thread_pool_set_max_threads(tpool, genconf->threads, NULL); ++ if(!new_servers) + goto out; + +- for (i = 0; i < new_servers->len; ++i) { ++ for(i = 0; i < new_servers->len; ++i) { + SERVER *new_server = g_array_index(new_servers, SERVER*, i); + + if (new_server->servename +@@ -3701,10 +3699,6 @@ int main(int argc, char *argv[]) { + } + if (!dontfork) + daemonize(); +-#if HAVE_OLD_GLIB +- g_thread_init(NULL); +-#endif +- tpool = g_thread_pool_new(handle_request, NULL, genconf.threads, FALSE, NULL); + + setup_servers(servers, genconf.modernaddr, genconf.modernport, + genconf.unixsock, genconf.flags); +-- +2.40.1 + diff --git a/nbd/PKGBUILD b/nbd/PKGBUILD new file mode 100644 index 0000000..3923d95 --- /dev/null +++ b/nbd/PKGBUILD @@ -0,0 +1,72 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=nbd +pkgver=3.25 +pkgrel=01 +pkgdesc='tools for network block devices, allowing you to use remote block devices over TCP/IP w/o systemd' +#url='https://nbd.sourceforge.io/' +url='https://github.com/NetworkBlockDevice/nbd/' +depends=('glib2' 'gnutls' 'libnl') +backup=('etc/nbd-server/config') +source=("https://github.com/NetworkBlockDevice/${pkgname}/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.xz" +#"https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.xz" +# '0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch' + 'config' + 'sysusers_nbd.conf') + +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + +# patch -Np1 < ../0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --enable-syslog \ + --disable-systemd + make +} + +# checks still fail... +#check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# +# make check +#} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + install -D -m0644 systemd/nbd@.service "${pkgdir}"/usr/lib/systemd/system/nbd@.service + + install -D -m0644 "${srcdir}"/config "${pkgdir}"/etc/nbd-server/config +# install -D -m0644 "${srcdir}"/nbd.service "${pkgdir}"/usr/lib/systemd/system/nbd.service + install -D -m0644 "${srcdir}"/sysusers_nbd.conf "${pkgdir}"/usr/lib/sysusers.d/nbd.conf + + install -D -m0644 doc/README "${pkgdir}"/usr/share/doc/nbd/README + rm -rf $pkgdir/usr/lib/systemd +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL') + +sha256sums=(f5c8fd0fcb57b1c926594d0e57f356432ee08678bef1d40d088f0830f0cbdd0a # nbd-3.25.tar.xz +# e3e7f82d754f8b7306c3b7e85a471b60aa7a0066f702521959b5b2618e540689 # 0001-nbd-server-do-not-straddle-uses-of-GThreadPool-across-a-fork.patch + ee2e9fbbeb8a8b9b71d16b6f32eb41788f6def9d00cc4a47897ed3cb97cdde7c # config + 3fd98fe87d0b31b82126dc669f00355865f58fae81af3fccbc0d06504baef6cd) # sysusers_nbd.conf + +## 89b9d298c65d2d4ef48b21f18b7fc60f086aa553e54b403eaa17c65ac1d1320d nbd-3.25-01-x86_64.pkg.tar.lz diff --git a/nbd/PKGBUILD-arch b/nbd/PKGBUILD-arch new file mode 100644 index 0000000..58900de --- /dev/null +++ b/nbd/PKGBUILD-arch @@ -0,0 +1,53 @@ +# Maintainer: Christian Hesse +# Contributor: Sven-Hendrik Haase +# Contributor: Ionut Biru +# Contributor: Gerhard Brauer + +pkgname=nbd +pkgver=3.25 +pkgrel=1 +pkgdesc='tools for network block devices, allowing you to use remote block devices over TCP/IP' +arch=('x86_64') +url='https://github.com/NetworkBlockDevice/nbd/' +license=('GPL') +depends=('glib2' 'gnutls' 'libnl') +backup=('etc/nbd-server/config') +source=("https://github.com/NetworkBlockDevice/${pkgname}/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.xz" + 'config' + 'nbd.service' + 'sysusers_nbd.conf') +sha256sums=('f5c8fd0fcb57b1c926594d0e57f356432ee08678bef1d40d088f0830f0cbdd0a' + 'ee2e9fbbeb8a8b9b71d16b6f32eb41788f6def9d00cc4a47897ed3cb97cdde7c' + '1b1add55d82d7623eabf7ff3dfec15c1fbe3c340fa74160df3d60e91eb1c71ba' + '3fd98fe87d0b31b82126dc669f00355865f58fae81af3fccbc0d06504baef6cd') +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --enable-syslog + + make +} + +# checks still fail... +#check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# +# make check +#} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + install -D -m0644 systemd/nbd@.service "${pkgdir}"/usr/lib/systemd/system/nbd@.service + + install -D -m0644 "${srcdir}"/config "${pkgdir}"/etc/nbd-server/config + install -D -m0644 "${srcdir}"/nbd.service "${pkgdir}"/usr/lib/systemd/system/nbd.service + install -D -m0644 "${srcdir}"/sysusers_nbd.conf "${pkgdir}"/usr/lib/sysusers.d/nbd.conf + + install -D -m0644 doc/README "${pkgdir}"/usr/share/doc/nbd/README +} diff --git a/nbd/clean b/nbd/clean new file mode 100644 index 0000000..45aa1ef --- /dev/null +++ b/nbd/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,nbd*tar.xz} diff --git a/nbd/config b/nbd/config new file mode 100644 index 0000000..d0c6eda --- /dev/null +++ b/nbd/config @@ -0,0 +1,21 @@ +[generic] + # The [generic] section is required, even if nothing is specified + # there. + # When either of these options are specified, nbd-server drops + # privileges to the given user and group after opening ports, but + # _before_ opening files. + user = nbd + group = nbd +[export1] + exportname = /export/nbd/export1-file + authfile = /export/nbd/export1-authfile + timeout = 30 + filesize = 10000000 + readonly = false + multifile = false + copyonwrite = false + prerun = dd if=/dev/zero of=%s bs=1k count=500 + postrun = rm -f %s +[otherexport] + exportname = /export/nbd/experiment + # The other options are all optional. diff --git a/nbd/deps b/nbd/deps new file mode 100644 index 0000000..f53af8e --- /dev/null +++ b/nbd/deps @@ -0,0 +1,3 @@ +bison + + diff --git a/nbd/sysusers_nbd.conf b/nbd/sysusers_nbd.conf new file mode 100644 index 0000000..fff6bc5 --- /dev/null +++ b/nbd/sysusers_nbd.conf @@ -0,0 +1 @@ +u nbd - "Network Block Device" /var/empty diff --git a/nbd/time b/nbd/time new file mode 100644 index 0000000..455be16 --- /dev/null +++ b/nbd/time @@ -0,0 +1,6 @@ + + +real 0m11.528s +user 0m10.233s +sys 0m2.032s + diff --git a/ninja/PKGBUILD b/ninja/PKGBUILD index d16c379..0451b95 100644 --- a/ninja/PKGBUILD +++ b/ninja/PKGBUILD @@ -7,9 +7,8 @@ pkgname=ninja pkgver=1.11.1 -pkgrel=02 +pkgrel=03 pkgdesc='Small build system with a focus on speed' -arch=(x86_64) url='https://ninja-build.org/' depends=(gcc-libs) makedepends=(python re2c emacs-nox) @@ -32,6 +31,8 @@ check() { package() { cd ninja-$pkgver + + local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") install -m755 -D ninja "$pkgdir/usr/bin/ninja" install -m644 -D doc/manual.asciidoc "$pkgdir/usr/share/doc/ninja/manual.asciidoc" @@ -40,15 +41,17 @@ package() { install -m644 -D misc/ninja-mode.el "$pkgdir/usr/share/emacs/site-lisp/ninja-mode.el" install -m644 -D misc/ninja-mode.elc "$pkgdir/usr/share/emacs/site-lisp/ninja-mode.elc" install -m644 -D misc/ninja.vim "$pkgdir/usr/share/vim/vimfiles/syntax/ninja.vim" - install -m644 -D misc/ninja_syntax.py "$pkgdir/usr/lib/python3.10/site-packages/ninja_syntax.py" + install -m644 -D misc/ninja_syntax.py "$pkgdir/$site_packages/ninja_syntax.py" install -m644 -D misc/bash-completion "$pkgdir/usr/share/bash-completion/completions/ninja" install -m644 -D misc/zsh-completion "$pkgdir/usr/share/zsh/site-functions/_ninja" } -#---- license gpg-key sha256sums ---- +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) license=(Apache) sha256sums=(03b7ea14bf04b87cbdd64b9a1262577093e177f8e5662515de77f3a796b75951) # ninja-1.11.1.zip - +## 1f10911ddecc26d6f4b72ae6a0a483d0689068251332130835724f92d2d69879 ninja-1.11.1-03-x86_64.pkg.tar.lz diff --git a/ninja/PKGBUILD-arch b/ninja/PKGBUILD-arch index af38b1f..686abfb 100644 --- a/ninja/PKGBUILD-arch +++ b/ninja/PKGBUILD-arch @@ -5,7 +5,7 @@ pkgname=ninja pkgver=1.11.1 -pkgrel=2 +pkgrel=3 pkgdesc='Small build system with a focus on speed' arch=(x86_64) url='https://ninja-build.org/' @@ -34,6 +34,8 @@ check() { package() { cd ninja-$pkgver + local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") + install -m755 -D ninja "$pkgdir/usr/bin/ninja" install -m644 -D doc/manual.asciidoc "$pkgdir/usr/share/doc/ninja/manual.asciidoc" install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" @@ -41,7 +43,7 @@ package() { install -m644 -D misc/ninja-mode.el "$pkgdir/usr/share/emacs/site-lisp/ninja-mode.el" install -m644 -D misc/ninja-mode.elc "$pkgdir/usr/share/emacs/site-lisp/ninja-mode.elc" install -m644 -D misc/ninja.vim "$pkgdir/usr/share/vim/vimfiles/syntax/ninja.vim" - install -m644 -D misc/ninja_syntax.py "$pkgdir/usr/lib/python3.10/site-packages/ninja_syntax.py" + install -m644 -D misc/ninja_syntax.py "$pkgdir/$site_packages/ninja_syntax.py" install -m644 -D misc/bash-completion "$pkgdir/usr/share/bash-completion/completions/ninja" install -m644 -D misc/zsh-completion "$pkgdir/usr/share/zsh/site-functions/_ninja" diff --git a/nut/PKGBUILD b/nut/PKGBUILD new file mode 100644 index 0000000..2dfdd4f --- /dev/null +++ b/nut/PKGBUILD @@ -0,0 +1,109 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=nut +pkgver=2.8.0 +pkgrel=03 +pkgdesc='A collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware' +arch=(x86_64) +url=https://networkupstools.org/ +depends=(gcc-libs glibc libtool libusb-compat neon net-snmp openssl) +makedepends=(asciidoc gd git python) +optdepends=('gd: CGI support') +provides=(network-ups-tools) +conflicts=(network-ups-tools) +replaces=(network-ups-tools) +options=(!makeflags) +backup=( + etc/nut/hosts.conf + etc/nut/nut.conf + etc/nut/ups.conf + etc/nut/upsd.conf + etc/nut/upsd.users + etc/nut/upsmon.conf + etc/nut/upssched.conf + etc/nut/upsstats.html + etc/nut/upsstats-single.html +) +_tag=ff16dabca191e5fd8ddc20137317bdebee554d8d +source=( + git+https://github.com/networkupstools/nut.git#tag=${_tag} + nut.sysusers + nut.tmpfiles + nut-lowspeed-buffer-size.patch + nut-no-libdummy.patch + nut-openssl-1.1.patch + nut-snmp-usb-order.patch +) + +pkgver() { + cd nut + git describe --tags | sed 's/^v//' +} + +prepare() { + cd nut + ./autogen.sh +} + +build() { + cd nut + ./configure \ + --prefix=/usr \ + --datadir=/usr/share/nut \ + --libexecdir=/usr/lib/nut \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/nut \ + --disable-static \ + --with-user=nut \ + --with-groups=nut \ + --with-altpidpath=/run/nut \ + --with-cgipath=/usr/share/nut/cgi \ + --with-drvpath=/usr/lib/nut \ + --with-htmlpath=/usr/share/nut/html \ + --with-pidpath=/run/nut \ + --with-statepath=/var/lib/nut \ + --with-systemdsystemunitdir=no \ + --with-udev-dir=/usr/lib/udev \ + --with-cgi \ + --with-dev \ + --with-doc=man \ + --with-libltdl \ + --with-neon \ + --with-openssl \ + --with-serial \ + --with-snmp \ + --with-usb \ + --without-dbus \ + --without-avahi \ + --without-ipmi \ + --without-freeipmi \ + --without-powerman \ + --without-wrap + make +} + +package() { + make DESTDIR="${pkgdir}" -C nut install + find "${pkgdir}"/etc/nut -name *.sample -exec rename '.sample' '' {} \; + install -Dm 644 nut.sysusers "${pkgdir}"/usr/lib/sysusers.d/nut.conf + install -Dm 644 nut.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/nut.conf +} + +#---- license gpg-key sha256sums ---- + +license=(GPL2 GPL3) + +sha256sums=(SKIP # git + 3001e24969545136361670c5d615684d2b37830525e090c2ab3bcfa90d90e4ac # nut.sysusers + c924ccaae9ec75ee7795c872e1708d10201402642a6d5de2304cc644744bbcc5 # nut.tmpfiles + 40d6fc328ad2e127f580bb359bd5c2fb721a2c6cf1860334be96c18552d6f8f7 # nut-lowspeed-buffer-size.patch + b35a8d28fde10668e8e54e97be9c5505f296c989e67da847c5abf1acab6a219b # nut-no-libdummy.patch + 717e116aa93f42ccca901de920da3ff97407672003f721b4976caf525f3e5f08 # nut-openssl-1.1.patch + c2c7d3b72f94f9c7987ab047bba466923c63ddb80b468485f100b1e44997ec84) # nut-snmp-usb-order.patch + + diff --git a/nut/PKGBUILD-arch b/nut/PKGBUILD-arch new file mode 100644 index 0000000..ece4e61 --- /dev/null +++ b/nut/PKGBUILD-arch @@ -0,0 +1,121 @@ +# Maintainer: Maxime Gauduin +# Contributor: Florian Bruhin +# Contributor: Alex Reznichenko +# Contributor: Roman Kyrylych +# Contributor: Giuseppe Lucarelli +# Contributor: Dan Ziemba + +pkgname=nut +pkgver=2.8.0 +pkgrel=3 +pkgdesc='A collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware' +arch=(x86_64) +url=https://networkupstools.org/ +license=( + GPL2 + GPL3 +) +depends=( + gcc-libs + glibc + libtool + libusb-compat + neon + net-snmp + openssl +) +makedepends=( + asciidoc + gd + git + python + systemd +) +optdepends=('gd: CGI support') +provides=(network-ups-tools) +conflicts=(network-ups-tools) +replaces=(network-ups-tools) +options=(!makeflags) +backup=( + etc/nut/hosts.conf + etc/nut/nut.conf + etc/nut/ups.conf + etc/nut/upsd.conf + etc/nut/upsd.users + etc/nut/upsmon.conf + etc/nut/upssched.conf + etc/nut/upsstats.html + etc/nut/upsstats-single.html +) +_tag=ff16dabca191e5fd8ddc20137317bdebee554d8d +source=( + git+https://github.com/networkupstools/nut.git#tag=${_tag} + nut.sysusers + nut.tmpfiles + nut-lowspeed-buffer-size.patch + nut-no-libdummy.patch + nut-openssl-1.1.patch + nut-snmp-usb-order.patch +) +b2sums=('SKIP' + 'b136678723bae38f2e1b99d682e5bad6c4387c2d709052681f1dc0d41e8dd6d061115f6d3e573400bded671296ca61e5e194258e801c83f26bf309313b3f2319' + 'b5466d4142fdeadd07859c030a9e6f7a73f1a4f3902a07b6e8b9a5ead738279ff557ac21770edef21e55b015a3b19cd9579e638da0a37f102ed130ed749ac03b' + 'cdd11335a8d60b2cada25a2cd9be2d0f1c911029a46e3adf8eda7d8687c1b2caf0fd66cd92c41ecbd660d44bc2606e92aa81d4a2c9746b2ef9e15c4048679487' + '0314fe2358fab9d49a8bc5b939c2855151c4f35b2b51e6d1accf25469c9d55831960cd5f9b53ee151fb5a45ae7068c9bfcc91c84a7623b783f6c3c5d5da75d65' + '17877276e46372aa17d357efc0851b9cdb33b14ac0c40913b47ea513a8ecaa6eebe3241ae8b324583070d76b6c12d3cf18c043778754b5774af846fb8a33b4d7' + 'e39f049413cb3d393befe5795c895128271f4ca2791b5723eba5c5f20be0b770369ee6144a1e5d6793727709b1ba578d8ace6cbf91695a2771453047827e5334') + +pkgver() { + cd nut + git describe --tags | sed 's/^v//' +} + +prepare() { + cd nut + ./autogen.sh +} + +build() { + cd nut + ./configure \ + --prefix=/usr \ + --datadir=/usr/share/nut \ + --libexecdir=/usr/lib/nut \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/nut \ + --disable-static \ + --with-user=nut \ + --with-group=nut \ + --with-altpidpath=/run/nut \ + --with-cgipath=/usr/share/nut/cgi \ + --with-drvpath=/usr/lib/nut \ + --with-htmlpath=/usr/share/nut/html \ + --with-pidpath=/run/nut \ + --with-statepath=/var/lib/nut \ + --with-systemdsystemunitdir=/usr/lib/systemd/system \ + --with-udev-dir=/usr/lib/udev \ + --with-cgi \ + --with-dev \ + --with-doc=man \ + --with-libltdl \ + --with-neon \ + --with-openssl \ + --with-serial \ + --with-snmp \ + --with-usb \ + --without-avahi \ + --without-ipmi \ + --without-freeipmi \ + --without-powerman \ + --without-wrap + make +} + +package() { + make DESTDIR="${pkgdir}" -C nut install + find "${pkgdir}"/etc/nut -name *.sample -exec rename '.sample' '' {} \; + install -Dm 644 nut.sysusers "${pkgdir}"/usr/lib/sysusers.d/nut.conf + install -Dm 644 nut.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/nut.conf +} + +# vim: ts=2 sw=2 et: diff --git a/nut/clean b/nut/clean new file mode 100644 index 0000000..d31334b --- /dev/null +++ b/nut/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,nut} diff --git a/nut/conf b/nut/conf new file mode 100644 index 0000000..c330b64 --- /dev/null +++ b/nut/conf @@ -0,0 +1,12 @@ + --with-systemdsystemunitdir=DIR + Directory for systemd service files (auto) + --with-systemdshutdowndir=DIR + Directory for systemd shutdown scripts (auto) + --with-systemdtmpfilesdir=DIR + Directory for systemd tmpfiles scripts (auto) + modbus, cgi, dev, avahi, linux_i2c + --with-modbus build and install modbus drivers (auto) + [--with-modbus-includes=CFLAGS] + include flags for the libmodbus library + [--with-modbus-libs=LIBS] + linker flags for the libmodbus library diff --git a/nut/deps b/nut/deps new file mode 100644 index 0000000..f2f8b75 --- /dev/null +++ b/nut/deps @@ -0,0 +1,12 @@ +libusb-compat +neon +net-snmp +asciidoc +gd +git +python +libgit2 + + +autoconf +automake diff --git a/nut/nut-lowspeed-buffer-size.patch b/nut/nut-lowspeed-buffer-size.patch new file mode 100644 index 0000000..d9f786d --- /dev/null +++ b/nut/nut-lowspeed-buffer-size.patch @@ -0,0 +1,19 @@ +http://bugs.gentoo.org/show_bug.cgi?id=318937 +http://boxster.ghz.cc/projects/nut/changeset/2407 + +Respun from nut-2.4.3-lowspeed-buffer-size.patch + +Index: a/drivers/libhid.c +=================================================================== +--- a/drivers/libhid.c ++++ b/drivers/libhid.c +@@ -477,7 +477,7 @@ + */ + int HIDGetEvents(hid_dev_handle_t udev, HIDData_t **event, int eventsize) + { +- unsigned char buf[SMALLBUF]; ++ unsigned char buf[8]; /* Maximum size for low-speed USB devices */ + int itemCount = 0; + int buflen, r, i; + HIDData_t *pData; + diff --git a/nut/nut-no-libdummy.patch b/nut/nut-no-libdummy.patch new file mode 100644 index 0000000..da93df9 --- /dev/null +++ b/nut/nut-no-libdummy.patch @@ -0,0 +1,14 @@ +diff --git a/drivers/Makefile.am b/drivers/Makefile.am +index 99614ca..42b3611 100644 +--- a/drivers/Makefile.am ++++ b/drivers/Makefile.am +@@ -267,5 +267,6 @@ dist_noinst_HEADERS = apc-mib.h apc-hid.h baytech-mib.h bcmxcp.h \ + + # Define a dummy library so that Automake builds rules for the + # corresponding object files. This library is not actually built, +-EXTRA_LIBRARIES = libdummy.a +-libdummy_a_SOURCES = main.c dstate.c serial.c ++EXTRA_LIBRARIES = ++#EXTRA_LIBRARIES = libdummy.a ++#libdummy_a_SOURCES = main.c dstate.c serial.c + diff --git a/nut/nut-openssl-1.1.patch b/nut/nut-openssl-1.1.patch new file mode 100644 index 0000000..5d1c2af --- /dev/null +++ b/nut/nut-openssl-1.1.patch @@ -0,0 +1,151 @@ +From da1f5aa699f54e0f6977ab64a3bc2f90a51c3104 Mon Sep 17 00:00:00 2001 +From: Arjen de Korte +Date: Mon, 27 Nov 2017 21:10:13 +0100 +Subject: [PATCH] Add support for openssl-1.1.0 + +--- a/clients/upsclient.c ++++ b/clients/upsclient.c +@@ -299,11 +299,6 @@ + { + #ifdef WITH_OPENSSL + int ret, ssl_mode = SSL_VERIFY_NONE; +-#if OPENSSL_VERSION_NUMBER >= 0x10000000L +- const SSL_METHOD *ssl_method; +-#else +- SSL_METHOD *ssl_method; +-#endif + #elif defined(WITH_NSS) /* WITH_OPENSSL */ + SECStatus status; + #endif /* WITH_OPENSSL | WITH_NSS */ +@@ -315,22 +310,32 @@ + } + + #ifdef WITH_OPENSSL +- +- SSL_library_init(); +- SSL_load_error_strings(); + +- ssl_method = TLSv1_client_method(); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ SSL_load_error_strings(); ++ SSL_library_init(); + +- if (!ssl_method) { +- return 0; +- } ++ ssl_ctx = SSL_CTX_new(SSLv23_client_method()); ++#else ++ ssl_ctx = SSL_CTX_new(TLS_client_method()); ++#endif + +- ssl_ctx = SSL_CTX_new(ssl_method); + if (!ssl_ctx) { + upslogx(LOG_ERR, "Can not initialize SSL context"); + return -1; + } + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ /* set minimum protocol TLSv1 */ ++ SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); ++#else ++ ret = SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION); ++ if (ret != 1) { ++ upslogx(LOG_ERR, "Can not set minimum protocol to TLSv1"); ++ return -1; ++ } ++#endif ++ + if (!certpath) { + if (certverify == 1) { + upslogx(LOG_ERR, "Can not verify certificate if any is specified"); +@@ -737,7 +742,7 @@ + switch(res) + { + case 1: +- upsdebugx(3, "SSL connected"); ++ upsdebugx(3, "SSL connected (%s)", SSL_get_version(ups->ssl)); + break; + case 0: + upslog_with_errno(1, "SSL_connect do not accept handshake."); +--- a/clients/upssched.c ++++ b/clients/upssched.c +@@ -794,7 +794,7 @@ + } + + if (!strcmp(cmd, "EXECUTE")) { +- if (ca1 == '\0') { ++ if (ca1[0] == '\0') { + upslogx(LOG_ERR, "Empty EXECUTE command argument"); + return; + } +--- a/m4/nut_check_libopenssl.m4 ++++ b/m4/nut_check_libopenssl.m4 +@@ -58,7 +58,7 @@ + + dnl check if openssl is usable + AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT]) +- AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no]) ++ AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no]) + + if test "${nut_have_openssl}" = "yes"; then + nut_with_ssl="yes" +--- a/server/netssl.c ++++ b/server/netssl.c +@@ -274,7 +274,7 @@ + { + case 1: + client->ssl_connected = 1; +- upsdebugx(3, "SSL connected"); ++ upsdebugx(3, "SSL connected (%s)", SSL_get_version(client->ssl)); + break; + + case 0: +@@ -370,13 +370,7 @@ + { + #ifdef WITH_NSS + SECStatus status; +-#elif defined(WITH_OPENSSL) +-#if OPENSSL_VERSION_NUMBER >= 0x10000000L +- const SSL_METHOD *ssl_method; +-#else +- SSL_METHOD *ssl_method; +-#endif +-#endif /* WITH_NSS|WITH_OPENSSL */ ++#endif /* WITH_NSS */ + + if (!certfile) { + return; +@@ -386,18 +380,29 @@ + + #ifdef WITH_OPENSSL + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_load_error_strings(); + SSL_library_init(); + +- if ((ssl_method = TLSv1_server_method()) == NULL) { ++ ssl_ctx = SSL_CTX_new(SSLv23_server_method()); ++#else ++ ssl_ctx = SSL_CTX_new(TLS_server_method()); ++#endif ++ ++ if (!ssl_ctx) { + ssl_debug(); +- fatalx(EXIT_FAILURE, "TLSv1_server_method failed"); ++ fatalx(EXIT_FAILURE, "SSL_CTX_new failed"); + } + +- if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ /* set minimum protocol TLSv1 */ ++ SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); ++#else ++ if (SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION) != 1) { + ssl_debug(); +- fatalx(EXIT_FAILURE, "SSL_CTX_new failed"); ++ fatalx(EXIT_FAILURE, "SSL_CTX_set_min_proto_version(TLS1_VERSION)"); + } ++#endif + + if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { + ssl_debug(); diff --git a/nut/nut-snmp-usb-order.patch b/nut/nut-snmp-usb-order.patch new file mode 100644 index 0000000..cfdbbc9 --- /dev/null +++ b/nut/nut-snmp-usb-order.patch @@ -0,0 +1,38 @@ +The code that generates the SNMP and USB headers to compile against does not +have a deterministic order, leading to different results at times. + +Signed-off-by: Robin H. Johnson + +diff -Nuar --exclude .libs --exclude '*.o' --exclude core nut-2.7.1.orig/tools/nut-snmpinfo.py nut-2.7.1/tools/nut-snmpinfo.py +--- nut-2.7.1.orig/tools/nut-snmpinfo.py 2014-01-04 19:08:19.117150636 -0800 ++++ nut-2.7.1/tools/nut-snmpinfo.py 2013-07-26 12:41:11.000000000 -0700 +@@ -78,7 +78,9 @@ + output_file.write( "/* SNMP IDs device table */\n" ) + output_file.write( "static snmp_device_id_t snmp_device_table[] = {\n" ) + +-for filename in glob.glob('../drivers/*-mib.c'): ++mibs = glob.glob('../drivers/*-mib.c') ++mibs.sort() ++for filename in mibs: + list_of_line = open(filename,'r').read().split(';') + for line in list_of_line: + if "mib2nut_info_t" in line: +diff -Nuar --exclude .libs --exclude '*.o' --exclude core nut-2.7.1.orig/tools/nut-usbinfo.pl nut-2.7.1/tools/nut-usbinfo.pl +--- nut-2.7.1.orig/tools/nut-usbinfo.pl 2014-01-04 19:12:45.595949760 -0800 ++++ nut-2.7.1/tools/nut-usbinfo.pl 2013-11-17 11:27:38.000000000 -0800 +@@ -75,7 +75,12 @@ + + ################# MAIN ################# + +-find(\&find_usbdevs,$scanPath); ++find({ ++ wanted => \&find_usbdevs, ++ follow => 1, ++ preprocess => sub { return sort @_ }, ++ }, ++ $scanPath); + &gen_usb_files; + + ################# SUB METHOD ################# + + diff --git a/nut/nut.sysusers b/nut/nut.sysusers new file mode 100644 index 0000000..476b038 --- /dev/null +++ b/nut/nut.sysusers @@ -0,0 +1,2 @@ +u nut - "Network UPS Tools" /var/lib/nut +m nut uucp diff --git a/nut/nut.tmpfiles b/nut/nut.tmpfiles new file mode 100644 index 0000000..279b92b --- /dev/null +++ b/nut/nut.tmpfiles @@ -0,0 +1,6 @@ +d /run/nut 0700 nut nut - +d /var/lib/nut 0700 nut nut - +z /etc/nut/upsd.conf 0640 root nut - +z /etc/nut/upsd.users 0640 root nut - +z /etc/nut/upsmon.conf 0640 root nut - + diff --git a/nut/sums b/nut/sums new file mode 100644 index 0000000..f2c7e89 --- /dev/null +++ b/nut/sums @@ -0,0 +1,6 @@ +nut.sysusers +nut.tmpfiles +nut-lowspeed-buffer-size.patch +nut-no-libdummy.patch +nut-openssl-1.1.patch +nut-snmp-usb-order.patch diff --git a/nut/time b/nut/time new file mode 100644 index 0000000..1c7b092 --- /dev/null +++ b/nut/time @@ -0,0 +1,6 @@ + + +real 0m34.043s +user 0m30.028s +sys 0m5.194s + diff --git a/nvme-cli b/nvme-cli deleted file mode 120000 index f15b629..0000000 --- a/nvme-cli +++ /dev/null @@ -1 +0,0 @@ -../jobcomm/nvme-cli \ No newline at end of file diff --git a/nvme-cli/PKGBUILD b/nvme-cli/PKGBUILD new file mode 100644 index 0000000..0975000 --- /dev/null +++ b/nvme-cli/PKGBUILD @@ -0,0 +1,60 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=nvme-cli +pkgver=2.5 +pkgrel=02 +pkgdesc="NVM-Express user space tooling for Linux w/o systemd" +url="https://github.com/linux-nvme/nvme-cli" +# git is needed to provide the source with a workaround file to cover for the absense of libnvme.so +makedepends=('meson' 'asciidoc' 'xmlto' 'python-nose2' 'autopep8' 'python-flake8-isort' 'git' 'mypy' 'swig') +depends=('util-linux' 'libnvme') +#options=(debug strip) ## uncomment this line to produce debug pkg +options=(strip) +install=nvme-cli.install +# checkdepends=('python2-nose' 'python-nose') +source=("$pkgname-$pkgver.tar.gz::https://github.com/linux-nvme/${pkgname}/archive/v${pkgver}.tar.gz") + +build() { + cd "${pkgname}-${pkgver}" + meson setup \ + --prefix /usr \ + --libexecdir lib \ + --sbindir bin \ + --sysconfdir /etc \ + --buildtype plain \ + --auto-features enabled \ + -D b_lto=true -D b_pie=true \ + -D docs=man -D docs-build=true \ + -D systemddir=false \ + -D udevrulesdir=lib/udev/rules.d \ + .build +} + +# Tests require a working NVME disk. +# check() { +# cd "${pkgname}-${pkgver}" +# make test +# } + +package() { + cd "${pkgname}-${pkgver}" + DESTDIR="$pkgdir" meson install -C .build + rm -rf $pkgdir/usr/false + +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL') + +sha256sums=(e84bdba276aadcddda8cf5d412e934cc5673af15132ea02180deb5d06af73146) # nvme-cli-2.5.tar.gz + +## abd374100d30f6a51273701ad23e5fbe732a41b06a6ee2cbca2772a1ff1af05f nvme-cli-2.5-02-x86_64.pkg.tar.lz + diff --git a/nvme-cli/PKGBUILD-arch b/nvme-cli/PKGBUILD-arch new file mode 100644 index 0000000..12c0b88 --- /dev/null +++ b/nvme-cli/PKGBUILD-arch @@ -0,0 +1,47 @@ +# Maintainer: Morten Linderud +# Contributor: Devin Cofer +# Contributor: DriverX +# Contributor: Nicolas Quiénot +# Contributor: Martin Schrodt + +pkgname=nvme-cli +pkgver=2.5 +pkgrel=1 +pkgdesc="NVM-Express user space tooling for Linux" +arch=('x86_64') +url="https://github.com/linux-nvme/nvme-cli" +license=('GPL') +makedepends=('systemd' 'meson' 'git' 'asciidoc' 'xmlto' 'swig') +depends=('util-linux' 'libsystemd' 'libnvme') +options=(strip) +install=nvme-cli.install +# checkdepends=('python2-nose' 'python-nose') +source=("$pkgname-$pkgver.tar.gz::https://github.com/linux-nvme/${pkgname}/archive/v${pkgver}.tar.gz") +sha256sums=('e84bdba276aadcddda8cf5d412e934cc5673af15132ea02180deb5d06af73146') + +build() { + cd "${pkgname}-${pkgver}" + meson setup \ + --prefix /usr \ + --sysconfdir /etc \ + --libexecdir lib \ + --sbindir bin \ + --buildtype plain \ + --auto-features enabled \ + -D b_lto=true -D b_pie=true \ + -D docs=man -D docs-build=true \ + -D systemddir=lib/systemd/system/ \ + -D udevrulesdir=lib/udev/rules.d \ + .build +} + +# Tests require a working NVME disk. +# check() { +# cd "${pkgname}-${pkgver}" +# make test +# } + +package() { + cd "${pkgname}-${pkgver}" + DESTDIR="$pkgdir" meson install -C .build +} diff --git a/nvme-cli/PKGBUILD-git b/nvme-cli/PKGBUILD-git new file mode 100644 index 0000000..14a75bb --- /dev/null +++ b/nvme-cli/PKGBUILD-git @@ -0,0 +1,50 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=nvme-cli-git +pkgver=r3013.2aa27212 +pkgrel=02 +pkgdesc='NVM-Express user space tooling for Linux' +arch=('x86_64') +url="https://github.com/linux-nvme/nvme-cli" +depends=('util-linux' ) +makedepends=('meson' 'git') +provides=('nvme-cli') +conflicts=('nvme-cli') +source=("$pkgname::git+https://github.com/linux-nvme/nvme-cli.git") +install=nvme-cli-git.install + +pkgver() { + cd "${pkgname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + cd "${pkgname}" + meson setup \ + --prefix /usr \ + --libexecdir lib \ + --sbindir bin \ + --buildtype plain \ + --auto-features enabled \ + -D b_lto=true -D b_pie=true \ + -D udevrulesdir=lib/udev/rules.d \ + .build +} + +package() { + cd "${pkgname}" + DESTDIR="$pkgdir" meson install -C .build + rm -rf $pkgdir/usr/lib/systemd +} + +#---- license gpg-key sha256sums ---- + +license=('GPL') + +sha256sums=('SKIP') + diff --git a/recutils/clean b/nvme-cli/clean similarity index 100% rename from recutils/clean rename to nvme-cli/clean diff --git a/nvme-cli/deps b/nvme-cli/deps new file mode 100644 index 0000000..55f4dde --- /dev/null +++ b/nvme-cli/deps @@ -0,0 +1,14 @@ +meson +python-nose2 +autopep8 +python-flake8-isort +asciidoc +xmlto +cmake +git +mypy + +swig +nvme-cli +libnvme + diff --git a/nvme-cli/deps-git b/nvme-cli/deps-git new file mode 100644 index 0000000..f8e3d29 --- /dev/null +++ b/nvme-cli/deps-git @@ -0,0 +1,6 @@ +meson +git +python-nose2 +autopep8 +python-flake8-isort +nvme-cli diff --git a/nvme-cli/nvme-cli-git.install b/nvme-cli/nvme-cli-git.install new file mode 100644 index 0000000..6babfeb --- /dev/null +++ b/nvme-cli/nvme-cli-git.install @@ -0,0 +1,8 @@ +post_install(){ + if [ ! -f /etc/nvme/hostnqn ]; then + nvme gen-hostnqn > /etc/nvme/hostnqn + fi + if [ ! -f /etc/nvme/hostid ]; then + uuidgen > /etc/nvme/hostid + fi +} diff --git a/nvme-cli/nvme-cli.install b/nvme-cli/nvme-cli.install new file mode 100644 index 0000000..6babfeb --- /dev/null +++ b/nvme-cli/nvme-cli.install @@ -0,0 +1,8 @@ +post_install(){ + if [ ! -f /etc/nvme/hostnqn ]; then + nvme gen-hostnqn > /etc/nvme/hostnqn + fi + if [ ! -f /etc/nvme/hostid ]; then + uuidgen > /etc/nvme/hostid + fi +} diff --git a/nvme-cli/time b/nvme-cli/time new file mode 100644 index 0000000..33da6dc --- /dev/null +++ b/nvme-cli/time @@ -0,0 +1,6 @@ + + +real 1m9.045s +user 2m45.477s +sys 0m16.126s + diff --git a/nvtop/PKGBUILD b/nvtop/PKGBUILD new file mode 100644 index 0000000..f15aa60 --- /dev/null +++ b/nvtop/PKGBUILD @@ -0,0 +1,39 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=nvtop +pkgver=3.0.2 +pkgrel=01 +pkgdesc="GPUs process monitoring for AMD, Intel and NVIDIA" +url="https://github.com/Syllo/nvtop" +depends=('ncurses') +makedepends=('cmake' 'libdrm') +source=("https://github.com/Syllo/nvtop/archive/$pkgver/$pkgname-$pkgver.tar.gz") + +build() { + cd $pkgname-$pkgver + + cmake -DCMAKE_INSTALL_PREFIX=/usr -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON . + make +} + +package() { + cd $pkgname-$pkgver + + make DESTDIR="$pkgdir/" install +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL3') + +sha256sums=(63fa45a2d675fe5320704850c216da6a6bb2edaf09821c26b3800fa7744bae00) # nvtop-3.0.2.tar.gz + +## 75e0bed8d12de751d2c819217389764ed10d71c8399d1e1508065783714ec9c9 nvtop-3.0.2-01-x86_64.pkg.tar.lz + diff --git a/nvtop/PKGBUILD-arch b/nvtop/PKGBUILD-arch new file mode 100644 index 0000000..0fa5ebf --- /dev/null +++ b/nvtop/PKGBUILD-arch @@ -0,0 +1,27 @@ +# Maintainer: Felix Yan +# Contributor: Maxime Schmitt + +pkgname=nvtop +pkgver=3.0.2 +pkgrel=1 +pkgdesc="GPUs process monitoring for AMD, Intel and NVIDIA" +arch=('x86_64') +url="https://github.com/Syllo/nvtop" +license=('GPL3') +depends=('ncurses' 'systemd-libs') +makedepends=('cmake' 'libdrm' 'systemd') +source=("https://github.com/Syllo/nvtop/archive/$pkgver/$pkgname-$pkgver.tar.gz") +sha512sums=('e5f23796c37b21f9e16f90b6aecce010239f736e60698fec22f663afef24439680132cb4bf08c56b9c05a9a69fa81421fed46c392adc06435f5209552337caed') + +build() { + cd $pkgname-$pkgver + + cmake -DCMAKE_INSTALL_PREFIX=/usr -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON . + make +} + +package() { + cd $pkgname-$pkgver + + make DESTDIR="$pkgdir/" install +} diff --git a/nvtop/clean b/nvtop/clean new file mode 100644 index 0000000..a66ae04 --- /dev/null +++ b/nvtop/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,*tar.gz} diff --git a/nvtop/deps b/nvtop/deps new file mode 100644 index 0000000..c4eda2d --- /dev/null +++ b/nvtop/deps @@ -0,0 +1,4 @@ +cmake +libdrm + + diff --git a/nvtop/time b/nvtop/time new file mode 100644 index 0000000..9e620ec --- /dev/null +++ b/nvtop/time @@ -0,0 +1,6 @@ + + +real 0m8.129s +user 0m7.118s +sys 0m1.180s + diff --git a/opensmtpd/PKGBUILD b/opensmtpd/PKGBUILD new file mode 100644 index 0000000..21a3919 --- /dev/null +++ b/opensmtpd/PKGBUILD @@ -0,0 +1,82 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=opensmtpd +pkgver=7.3.0p1 +pkgrel=01 +pkgdesc="Free implementation of the server-side SMTP protocol on libressl w/o systemd " +url="https://www.opensmtpd.org/" +depends=(libevent openssl pam libxcrypt zlib) +makedepends=(bison) +optdepends=('opensmtpd-filter-rspamd: rspamd integration') +provides=(smtp-server smtp-forwarder) +conflicts=(smtp-server smtp-forwarder) +backup=(etc/smtpd/smtpd.conf etc/smtpd/aliases) +options=(emptydirs) +source=("https://www.opensmtpd.org/archives/${pkgname}-${pkgver}.tar.gz" + $pkgname.sysusers + $pkgname.install) + +# smtpd.service +# smtpd.socket) +install=${pkgname}.install + +prepare() { + sed -ri 's,/etc/mail,/etc/smtpd,g' ${pkgname}-${pkgver}/usr.sbin/smtpd/smtpd.conf +} + +build() { + cd ${pkgname}-${pkgver} + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/smtpd \ + --sbindir=/usr/bin \ + --libexecdir=/usr/lib/smtpd \ + --with-bundled-libtls \ + --with-path-mbox=/var/spool/mail \ + --with-path-empty=/var/empty \ + --with-path-socket=/run \ + --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \ + --with-user-smtpd=smtpd \ + --with-user-queue=smtpq \ + --with-group-queue=smtpq \ + --with-auth-pam + + make +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install SMTPD_QUEUE_USER=92 + + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/sendmail + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/mailq + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/newaliases + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/makemap + + install -Dm644 etc/aliases -t "${pkgdir}"/etc/smtpd/ + + install -Dm644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/ + +# install -Dm644 ../smtpd.service -t "${pkgdir}"/usr/lib/systemd/system/ +# install -Dm644 ../smtpd.socket -t "${pkgdir}"/usr/lib/systemd/system/ + install -Dm644 ../opensmtpd.sysusers "${pkgdir}"/usr/lib/sysusers.d/opensmtpd.conf +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(custom) + +sha256sums=(1b46cd41a1c2738757cc3a0e4aea71f3c6db56def727f7261bcd362583345a07 # opensmtpd-7.3.0p1.tar.gz + 699c5f5596d9db725d4d302c24f10dbc6f31749836be690b3f056f817de82d83 # opensmtpd.sysusers + d49f106bd55701e75ca820db262e427dcdb50837b0a06a7043e051dc2608b676) # opensmtpd.install + +## 26190af0d42a1097790c21f633ec1c8fc5cfcd78ada4481e22a310440ac7a7ea opensmtpd-7.3.0p1-01-x86_64.pkg.tar.lz diff --git a/opensmtpd/PKGBUILD-arch b/opensmtpd/PKGBUILD-arch new file mode 100644 index 0000000..29fc425 --- /dev/null +++ b/opensmtpd/PKGBUILD-arch @@ -0,0 +1,72 @@ +# Maintainer: Lukas Fleischer +# Maintainer: Bruno Pagani +# Contributor: T.J. Townsend +# Contributor: Sébastien Luttringer +# Contributor: parchd + +pkgname=opensmtpd +pkgver=7.3.0p1 +pkgrel=1 +pkgdesc="Free implementation of the server-side SMTP protocol" +arch=(x86_64) +url="https://www.opensmtpd.org/" +license=(custom) +depends=(libevent openssl pam libxcrypt zlib) +optdepends=('opensmtpd-filter-rspamd: rspamd integration') +provides=(smtp-server smtp-forwarder) +conflicts=(smtp-server smtp-forwarder) +backup=(etc/smtpd/smtpd.conf etc/smtpd/aliases) +options=(emptydirs) +source=("https://www.opensmtpd.org/archives/${pkgname}-${pkgver}.tar.gz" + opensmtpd.sysusers + smtpd.service + smtpd.socket) +sha256sums=('1b46cd41a1c2738757cc3a0e4aea71f3c6db56def727f7261bcd362583345a07' + 'b38b64f1457b7227d55585edc711cce525e089516d16b093e6c44387380e6b13' + 'abf5baeb2a87c60d668ad18ea41cc08cab7a4f76339dd6df05de15cdaadaf922' + '32d46de5562d01de445d04c93bcc9f94bf103539b676e449c32e3603a3866cf8') +install=${pkgname}.install + +prepare() { + sed -ri 's,/etc/mail,/etc/smtpd,g' ${pkgname}-${pkgver}/usr.sbin/smtpd/smtpd.conf +} + +build() { + cd ${pkgname}-${pkgver} + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/smtpd \ + --sbindir=/usr/bin \ + --libexecdir=/usr/lib/smtpd \ + --with-bundled-libtls \ + --with-path-mbox=/var/spool/mail \ + --with-path-empty=/var/empty \ + --with-path-socket=/run \ + --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \ + --with-user-smtpd=smtpd \ + --with-user-queue=smtpq \ + --with-group-queue=smtpq \ + --with-auth-pam + + make +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install SMTPD_QUEUE_USER=92 + + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/sendmail + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/mailq + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/newaliases + ln -s /usr/bin/smtpctl "${pkgdir}"/usr/bin/makemap + + install -Dm644 etc/aliases -t "${pkgdir}"/etc/smtpd/ + + install -Dm644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/ + + install -Dm644 ../smtpd.service -t "${pkgdir}"/usr/lib/systemd/system/ + install -Dm644 ../smtpd.socket -t "${pkgdir}"/usr/lib/systemd/system/ + install -Dm644 ../opensmtpd.sysusers "${pkgdir}"/usr/lib/sysusers.d/opensmtpd.conf +} diff --git a/opensmtpd/clean b/opensmtpd/clean new file mode 100644 index 0000000..f8aeb11 --- /dev/null +++ b/opensmtpd/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,opensmtpd*tar.gz} diff --git a/opensmtpd/configure b/opensmtpd/configure new file mode 100644 index 0000000..eef01b4 --- /dev/null +++ b/opensmtpd/configure @@ -0,0 +1,135 @@ +`configure' configures OpenSMTPD portable to adapt to many kinds of systems. + +Usage: src/opensmtpd-6.8.0p2/configure [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print `checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for `--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or `..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [/usr/local] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, `make install' will install all the files in +`/usr/local/bin', `/usr/local/lib' etc. You can specify +an installation prefix other than `/usr/local' using `--prefix', +for instance `--prefix=$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/opensmtpd] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-strip Disable calling strip(1) on install + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-libs Specify additional libraries to link with + --without-rpath Disable auto-added -R linker paths + --with-cflags Specify additional flags to pass to compiler + --with-cppflags Specify additional flags to pass to preprocessor + --with-ldflags Specify additional flags to pass to linker + --with-Werror Build main code with -Werror + --with-pie Build Position Independent Executables if possible + --with-mantype=man|cat|doc Set man page type + --with-auth-bsdauth Enable bsd_auth(3) authentication support + --with-auth-pam=SERVICE Enable PAM authentication support (default=smtpd) + --with-user-smtpd=user Specify non-privileged user for smtpd (default=_smtpd) + --with-user-queue=user Specify non-privileged user for queue process (default=_smtpq) + --with-group-queue=group Specify non-privileged group for offline queue (default=_smtpq) + --with-path-queue=PATH Specify path to queue directory (default=/var/spool/smtpd) + --with-path-empty=PATH Specify path to empty directory (default=/var/empty) + --with-path-mbox=PATH Specify path to mbox directory (default=/var/spool/mail) + --with-path-socket=PATH Specify path to smtpd.sock directory (default=/var/run) + --with-path-pidfile=PATH Specify path to smtpd.pid directory (default=/var/run) + --with-path-CAfile=FILE Specify path to CA certificate (default=/etc/ssl/cert.pem) + --with-libfts=PATH Specify path to libfts installation (default: none, part of libc) + --with-libevent=PATH Specify path to libevent installation + --with-libssl=PATH Specify path to libssl installation + --with-libz=PATH Specify path to libz installation + --with-table-db Enable building of table-db backend (default=no) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. + YFLAGS The list of arguments that will be passed by default to $YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +OpenSMTPD home page: . diff --git a/opensmtpd/deps b/opensmtpd/deps new file mode 100644 index 0000000..f53af8e --- /dev/null +++ b/opensmtpd/deps @@ -0,0 +1,3 @@ +bison + + diff --git a/opensmtpd/opensmtpd.install b/opensmtpd/opensmtpd.install new file mode 100644 index 0000000..2f59d59 --- /dev/null +++ b/opensmtpd/opensmtpd.install @@ -0,0 +1,18 @@ +post_install() { + # Fix ownership of smtpctl for old systems + sysusers /usr/lib/sysusers.d/opensmtpd.conf + chgrp smtpq /usr/bin/smtpctl + chmod 2555 /usr/bin/smtpctl + echo "for runit link /usr/lib/runit/sv/opensmtpd to /etc/runit/runsvdir/default/ " + echo "for 66 install opensmtpd-66serv and 66-enable -t treename opensmptpd " +} + +post_upgrade() { + post_install + echo "for runit link /usr/lib/runit/sv/opensmtpd to /etc/runit/runsvdir/default/ " + echo "for 66 install opensmtpd-66serv and 66-enable -t treename opensmptpd " +} + +post_uninstall() { + echo "remember to disable the runit and/or 66 openntpd service" +} diff --git a/opensmtpd/opensmtpd.sysusers b/opensmtpd/opensmtpd.sysusers new file mode 100644 index 0000000..4e79b9d --- /dev/null +++ b/opensmtpd/opensmtpd.sysusers @@ -0,0 +1,4 @@ +u smtpd 191 "SMTP Daemon" - +u smtpq 192 "SMTP Queue" - + +m smtpd root diff --git a/opensmtpd/smtpd.service b/opensmtpd/smtpd.service new file mode 100644 index 0000000..74722db --- /dev/null +++ b/opensmtpd/smtpd.service @@ -0,0 +1,11 @@ +[Unit] +Description=OpenSMTPD +Requires=network-online.target +After=network-online.target + +[Service] +Type=forking +ExecStart=/usr/bin/smtpd + +[Install] +WantedBy=multi-user.target diff --git a/opensmtpd/time b/opensmtpd/time new file mode 100644 index 0000000..765cdee --- /dev/null +++ b/opensmtpd/time @@ -0,0 +1,6 @@ + + +real 0m35.812s +user 0m32.291s +sys 0m4.961s + diff --git a/os-prober/PKGBUILD b/os-prober/PKGBUILD new file mode 100644 index 0000000..e99b0b0 --- /dev/null +++ b/os-prober/PKGBUILD @@ -0,0 +1,56 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgbase=os-prober-patched +pkgname=os-prober +pkgver=1.81 +pkgrel=01 +pkgdesc="Utility to detect other OSes on a set of drives)" +url='https://joeyh.name/code/os-prober/' +#url="http://joey.kitenet.net/code/os-prober/" +arch=('x86_64') +provides=('os-prober' 'os-prober-garuda') +conflicts=('os-prober-btrfs' 'os-prober-garuda') +replaces=('os-prober-garuda') +source=(http://http.debian.net/debian/pool/main/o/${pkgname}/${pkgname}_${pkgver}.tar.xz) + +prepare() { + cd ${pkgname}-${pkgver} + + # adjust lib dir to allow detection of 64-bit distros + sed -i -e "s:/lib/ld\*\.so\*:/lib*/ld*.so*:g" os-probes/mounted/common/90linux-distro + rm -f Makefile +} + +build() { + cd ${pkgname}-${pkgver} + make newns +} + +package() { + cd ${pkgname}-${pkgver} + depends=(sh which) + install -Dm 755 os-prober linux-boot-prober -t "${pkgdir}/usr/bin" + install -Dm 755 newns -t "${pkgdir}/usr/lib/os-prober" + install -Dm 755 common.sh -t "${pkgdir}/usr/share/os-prober" + + for dir in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do + install -dm 755 "${pkgdir}/usr/lib/${dir}" + install -m 755 -t "${pkgdir}/usr/lib/${dir}" "${dir}"/common/* + [[ -d "${dir}"/x86 ]] && cp -r "${dir}"/x86/* "${pkgdir}/usr/lib/${dir}" + done + + install -Dm 755 os-probes/mounted/powerpc/20macosx "${pkgdir}"/usr/lib/os-probes/mounted/20macosx + install -dm 755 "${pkgdir}"/var/lib/os-prober +} + +#---- license gpg-key sha256sums ---- + +license=('GPL3') + +sha256sums=(2fd928ec86538227711e2adf49cfd6a1ef74f6bb3555c5dad4e0425ccd978883) # os-prober_1.81.tar.xz + diff --git a/os-prober/PKGBUILD-arch b/os-prober/PKGBUILD-arch new file mode 100644 index 0000000..81c3191 --- /dev/null +++ b/os-prober/PKGBUILD-arch @@ -0,0 +1,46 @@ +# Maintainer: Levente Polyak +# Contributor: Timothy Redaelli +# Contributor: darkcoder + +pkgname=os-prober +pkgver=1.81 +pkgrel=1 +pkgdesc='Utility to detect other OSes on a set of drives' +url='https://joeyh.name/code/os-prober/' +arch=('x86_64') +license=('GPL3') +depends=('sh') +source=(http://http.debian.net/debian/pool/main/o/${pkgname}/${pkgname}_${pkgver}.tar.xz) +sha512sums=('ffb0e618f9e58a7a8e4a265d253bad4e168c220697216684acb38dbfa20680e552eb7c5f3d2186cd750c61a8929bf152527aa85c39318ed8b025a4ffffadde50') +b2sums=('0159870612d265c5e610e093a8839129aa9dc111a6f3abee65a6044b4c997ba65a69f70deca246bde53c1cf5314812312178e82c0893093d9f23ced3b0176f9d') + +prepare() { + cd ${pkgname}-${pkgver} + # adjust lib dir to allow detection of 64-bit distros + sed -i -e "s:/lib/ld\*\.so\*:/lib*/ld*.so*:g" os-probes/mounted/common/90linux-distro + rm -f Makefile +} + +build() { + cd ${pkgname}-${pkgver} + make newns +} + +package() { + cd ${pkgname}-${pkgver} + + install -Dm 755 os-prober linux-boot-prober -t "${pkgdir}/usr/bin" + install -Dm 755 newns -t "${pkgdir}/usr/lib/os-prober" + install -Dm 755 common.sh -t "${pkgdir}/usr/share/os-prober" + + for dir in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do + install -dm 755 "${pkgdir}/usr/lib/${dir}" + install -m 755 -t "${pkgdir}/usr/lib/${dir}" "${dir}"/common/* + [[ -d "${dir}"/x86 ]] && cp -r "${dir}"/x86/* "${pkgdir}/usr/lib/${dir}" + done + + install -Dm 755 os-probes/mounted/powerpc/20macosx "${pkgdir}"/usr/lib/os-probes/mounted/20macosx + install -dm 755 "${pkgdir}"/var/lib/os-prober +} + +# vim: ts=2 sw=2 et: diff --git a/os-prober/PKGBUILD-aur b/os-prober/PKGBUILD-aur new file mode 100644 index 0000000..20ef8ac --- /dev/null +++ b/os-prober/PKGBUILD-aur @@ -0,0 +1,102 @@ +# Maintainer: Librewish +# Contributor: Levente Polyak +# Contributor: Timothy Redaelli +# Contributor: darkcoder +pkgname=os-prober-btrfs +_pkgname=os-prober +pkgver=1.79 +pkgrel=3 +pkgdesc="Utility to detect other OSes on a set of drives (with additional patches to detect btrfs systems and other systems)" +url="http://joey.kitenet.net/code/os-prober/" +arch=('x86_64') +license=('GPL3') +depends=('sh') +provides=('os-prober' 'os-prober-garuda') +conflicts=('os-prober' 'os-prober-garuda') +replaces=('os-prober-garuda') +source=(http://http.debian.net/debian/pool/main/o/${_pkgname}/${_pkgname}_${pkgver}.tar.xz + os-prober-frugalware.diff + os-prober-mdraidfix.patch + os-prober-btrfsfix.patch + os-prober-bootpart-name-fix.patch + os-prober-mounted-partitions-fix.patch + os-prober-factor-out-logger.patch + os-prober-factored-logger-efi-fix.patch + os-prober-umount-fix.patch + os-prober-grub2-parsefix.patch + os-prober-grub2-multiple-images.patch + os-prober-grepfix.patch + os-prober-gentoo-fix.patch + fix-blkid-path.patch) +md5sums=('08d3bfff00f1f7c068ce509656728eba' + '2ae284a2fc6cafb6ec4af0f44d3c3e48' + 'fa2c878cbb8af6b6dc57b6cd966520ec' + 'b71e32f69569f8ad693a19c7129cadf2' + '672f301022bdb4a2962e9c7f8af05f21' + '3c15707f9abbf2867d44886a77dbf74a' + '7e4c8f98ff7763472bc46adb4f9119c2' + '1a09f769d1e966c773b8885a9b0be44e' + '69e5e23a35a2756fcb9d649d0ae2eea5' + 'b81bdf05173269ccce91c9a81ce4bfe8' + '2ac73c1c9f3ff32c4c5670f5fbda9f0d' + 'ed3242f992b525a4af0a9df9af51e334' + 'ec05aaa35c83ab669291e8895c252cc8' + '20dc42ef9b69f79b920380cd95191ed3') +sha256sums=('abe6317d078c4e51e322e62036b6df4a698bfe80c5be110a08894841179810ee' + '9a6c22c91ea5955d665bc20d85d899f6721875a6216862d59a1b7f3f4241fd02' + '092b0caef6fff45560531c0735e9449cb05a677e2296d72b5a0b4fb568fa4476' + '0ebfd75cfc82cfba2d239986ad68213dc8ee92943a1c68111b34e3fefc360232' + 'c3d094f02b8a00026af10fdfe2ea9286cd1af6a1e25afcc82f3b234bdb64b86f' + '7a9c4a0f5bba4053b1bbf1640c854aee83f526fd086c94bc7691e1d3cb28afb7' + 'b5c41ac1bc1a4544dd2d9efdcf190d6e5c2f0822b6d0e5fc8f7e6e5222da1d8d' + '08bf632e4716a3a63bd8f20e729c540754b676b23f4f82ff9156c448910c6f94' + '81a5ce0c5e784480dff7520bdfada8f80dfe96b101e14e41bca2d0992e863e68' + 'afc201d4d71525b73ffa365f7c667148e007836567be4c8ec25ea661d43b43f8' + '07b919c7559ce6c5a8d8907d752366fc97ccf40b7ad54cbb2de904a9dd373efd' + 'a9331117892dd9876b346d941969f70da96d54ce122d7a5ff40d9efe36aded42' + '02741e0edbc46327501be5d74977ff2bffa5ddaffe6a55a689e38ce4b8372444' + '87bbb0f69ebb47f5136291d6851967fba791db4f27d8883b35fc5be1653ff7a6') + +prepare() { + cd ${_pkgname} + + patch -p1 -i "$srcdir"/os-prober-frugalware.diff + patch -p1 -i "$srcdir"/os-prober-mdraidfix.patch + patch -p1 -i "$srcdir"/os-prober-btrfsfix.patch + patch -p1 -i "$srcdir"/os-prober-bootpart-name-fix.patch + patch -p1 -i "$srcdir"/os-prober-mounted-partitions-fix.patch + patch -p1 -i "$srcdir"/os-prober-factor-out-logger.patch + patch -p1 -i "$srcdir"/os-prober-factored-logger-efi-fix.patch + patch -p1 -i "$srcdir"/os-prober-umount-fix.patch + patch -p1 -i "$srcdir"/os-prober-grub2-parsefix.patch + patch -p1 -i "$srcdir"/os-prober-grub2-multiple-images.patch + patch -p1 -i "$srcdir"/os-prober-grepfix.patch + patch -p1 -i "$srcdir"/os-prober-gentoo-fix.patch + patch -p1 -i "$srcdir"/fix-blkid-path.patch + + # adjust lib dir to allow detection of 64-bit distros + sed -i -e "s:/lib/ld\*\.so\*:/lib*/ld*.so*:g" os-probes/mounted/common/90linux-distro + rm -f Makefile +} + +build() { + cd ${_pkgname} + make newns +} + +package() { + cd ${_pkgname} + + install -Dm 755 os-prober linux-boot-prober -t "${pkgdir}/usr/bin" + install -Dm 755 newns -t "${pkgdir}/usr/lib/os-prober" + install -Dm 755 common.sh -t "${pkgdir}/usr/share/os-prober" + + for dir in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do + install -dm 755 "${pkgdir}/usr/lib/${dir}" + install -m 755 -t "${pkgdir}/usr/lib/${dir}" "${dir}"/common/* + [[ -d "${dir}"/x86 ]] && cp -r "${dir}"/x86/* "${pkgdir}/usr/lib/${dir}" + done + + install -Dm 755 os-probes/mounted/powerpc/20macosx "${pkgdir}"/usr/lib/os-probes/mounted/20macosx + install -dm 755 "${pkgdir}"/var/lib/os-prober +} diff --git a/os-prober/clean b/os-prober/clean new file mode 100644 index 0000000..7821ce3 --- /dev/null +++ b/os-prober/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,os-pr*.tar.xz} diff --git a/os-prober/deps b/os-prober/deps new file mode 100644 index 0000000..139597f --- /dev/null +++ b/os-prober/deps @@ -0,0 +1,2 @@ + + diff --git a/os-prober/os-prober-frugalware.diff b/os-prober/os-prober-frugalware.diff new file mode 100644 index 0000000..b1c99e4 --- /dev/null +++ b/os-prober/os-prober-frugalware.diff @@ -0,0 +1,13 @@ +diff --git a/os-probes/mounted/common/90linux-distro b/os-probes/mounted/common/90linux-distro +index 144320f..d5158cf 100755 +--- a/os-probes/mounted/common/90linux-distro ++++ b/os-probes/mounted/common/90linux-distro +@@ -111,7 +111,7 @@ if ls "$dir"/lib*/ld*.so* >/dev/null 2>/dev/null; then + long="Caldera OpenLinux" + elif [ -e "$dir/etc/frugalware-release" ]; then + short="Frugalware Linux" +- long="$(cat "$dir/etc/frugalware-release")" ++ long="$(cat $dir/etc/frugalware-release) - $(ls $dir/boot/vmlinuz-*|sed -n 's|.*vmlinuz-||;$ p')" + elif [ -e "$dir/etc/kdemar-release" ]; then + short="K-DEMar" + long="$(printf "K-DEMar GNU/Linux (%s)\n" "$(cat "$dir/etc/kdemar-release")")" diff --git a/os-prober/sums b/os-prober/sums new file mode 100644 index 0000000..b82065a --- /dev/null +++ b/os-prober/sums @@ -0,0 +1,15 @@ +os-prober_1.79.tar.xz +os-prober-frugalware.diff +fix-blkid-path.patch +os-prober-bootpart-name-fix.patch +os-prober-btrfsfix.patch +os-prober-factored-logger-efi-fix.patch +os-prober-factor-out-logger.patch +os-prober-gentoo-fix.patch +os-prober-grepfix.patch +os-prober-grub2-multiple-images.patch +os-prober-grub2-parsefix.patch +os-prober-linux-secure-boot.patch +os-prober-mdraidfix.patch +os-prober-mounted-partitions-fix.patch +os-prober-umount-fix.patch diff --git a/os-prober/time b/os-prober/time new file mode 100644 index 0000000..3021ba6 --- /dev/null +++ b/os-prober/time @@ -0,0 +1,6 @@ + + +real 0m1.619s +user 0m1.510s +sys 0m0.270s + diff --git a/ostree/PKGBUILD b/ostree/PKGBUILD new file mode 100644 index 0000000..b364956 --- /dev/null +++ b/ostree/PKGBUILD @@ -0,0 +1,104 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +#_name=libostree +pkgname=ostree +pkgver=2023.5 +_commit=518cd46f6c78d6ae5c0a93355dbf63aa86cbd7e4 # tags/v2023.5 +pkgrel=01 +pkgdesc="Operating system and container binary deployment and upgrades - no systemd no avahi" +url="https://ostreedev.github.io/ostree/" +depends=(bash fuse3 gcc-libs glibc libgpg-error libsodium sh util-linux zlib) + +makedepends=(curl e2fsprogs git glib2 gobject-introspection gpgme + gtk-doc libarchive libsoup libxslt mkinitcpio openssl python xz) +#checkdepends=(cpio elfutils gjs parallel python-yaml syslinux) +checkdepends=(cpio elfutils gjs parallel python-yaml syslinux) +source=(git+https://github.com/ostreedev/ostree#tag=$_commit + + git+https://github.com/mendsley/bsdiff + git+https://gitlab.gnome.org/GNOME/libglnx.git + $pkgname-2023.1-use_fuse3.patch) +provides=(libostree-1.so) +# upstream ticket about chain of trust: +# https://github.com/ostreedev/ostree/issues/2349 + +prepare() { + cd $pkgname + + # use fusemount3 (fuse3) + git apply -3 ../$pkgname-2023.1-use_fuse3.patch + + # remove failing test: https://github.com/ostreedev/ostree/issues/2790 + sed -e '/test-signed-pull-summary.sh/d' -i Makefile-tests.am + + git submodule init + git submodule set-url bsdiff "$srcdir/bsdiff" + git submodule set-url libglnx "$srcdir/libglnx" + git -c protocol.file.allow=always submodule update + + NOCONFIGURE=1 ./autogen.sh +} + +build() { + cd $pkgname + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --sbindir=/usr/bin \ + --libexecdir=/usr/lib \ + --disable-static \ + --enable-experimental-api \ + --enable-gtk-doc \ + --with-builtin-grub2-mkconfig \ + --with-curl \ + --with-dracut \ + --with-ed25519-libsodium \ + --with-mkinitcpio \ + --with-openssl \ + --disable-avahi + + # circumvent overlinking + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +check() { + make check -k -C $pkgname +} + +package() { + depends+=( + curl libcurl.so + glib2 libgio-2.0.so libglib-2.0.so libgobject-2.0.so + gpgme libgpgme.so + libarchive libarchive.so + libsoup libsoup-2.4.so + openssl libcrypto.so + xz liblzma.so + ) + + make DESTDIR="$pkgdir" install -C $pkgname + install -vDm 644 $pkgname/COPYING -t "$pkgdir/usr/share/licenses/$pkgname/" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(custom:LGPL2) + +validpgpkeys=('1CEC7A9DF7DA85ABEF843DC0A866D7CCAE087291') # Colin Walters + +sha256sums=(SKIP + SKIP + SKIP + 6cc1e10db1f8c744eec5d128ad7bcd5aa92a8da167784f6727d832c9a4c545bb) # ostree-2023.1-use_fuse3.patch + +## 7dbc9ab3f7c558a60a60b65fd54378c4c63c41820aef69469a15958e7b7da308 ostree-2023.5-01-x86_64.pkg.tar.lz diff --git a/ostree/PKGBUILD-arch b/ostree/PKGBUILD-arch new file mode 100644 index 0000000..704bcde --- /dev/null +++ b/ostree/PKGBUILD-arch @@ -0,0 +1,126 @@ +# Maintainer: David Runge +# Contributor: Jan Alexander Steffens (heftig) +# Contributor: Mirco Tischler + +pkgname=ostree +_commit=518cd46f6c78d6ae5c0a93355dbf63aa86cbd7e4 # tags/v2023.5 +pkgver=2023.5 +pkgrel=1 +pkgdesc="Operating system and container binary deployment and upgrades" +url="https://ostreedev.github.io/ostree/" +arch=(x86_64) +license=(custom:LGPL2) +depends=( + bash + fuse3 + gcc-libs + glibc + libgpg-error + libsodium + sh + util-linux + zlib +) +makedepends=( + avahi + curl + e2fsprogs + git + glib2 + gobject-introspection + gpgme + gtk-doc + libarchive + libsoup + libxslt + mkinitcpio + openssl + python + systemd + xz +) +checkdepends=( + cpio + elfutils + gjs + parallel + python-yaml + syslinux +) +provides=(libostree-1.so) +source=( + git+https://github.com/ostreedev/ostree#tag=$_commit + git+https://github.com/mendsley/bsdiff + git+https://gitlab.gnome.org/GNOME/libglnx.git + $pkgname-2023.1-use_fuse3.patch +) +b2sums=('SKIP' + 'SKIP' + 'SKIP' + 'cfff162120f70995e18ec56454711501391b97456e2a0f34643c9d2a9c2b50b4d76afc2e2fc50ea28e8a773c618215d6cb855b96663f69dc5cc93bc5766f3f28') +# upstream ticket about chain of trust: +# https://github.com/ostreedev/ostree/issues/2349 +validpgpkeys=('1CEC7A9DF7DA85ABEF843DC0A866D7CCAE087291') # Colin Walters + +prepare() { + cd $pkgname + + # use fusemount3 (fuse3) + git apply -3 ../$pkgname-2023.1-use_fuse3.patch + + # remove failing test: https://github.com/ostreedev/ostree/issues/2790 + sed -e '/test-signed-pull-summary.sh/d' -i Makefile-tests.am + + git submodule init + git submodule set-url bsdiff "$srcdir/bsdiff" + git submodule set-url libglnx "$srcdir/libglnx" + git -c protocol.file.allow=always submodule update + + NOCONFIGURE=1 ./autogen.sh +} + +build() { + local configure_options=( + --prefix=/usr + --sysconfdir=/etc + --localstatedir=/var + --sbindir=/usr/bin + --libexecdir=/usr/lib + --disable-static + --enable-experimental-api + --enable-gtk-doc + --with-builtin-grub2-mkconfig + --with-curl + --with-dracut + --with-ed25519-libsodium + --with-mkinitcpio + --with-openssl + ) + + cd $pkgname + ./configure "${configure_options[@]}" + # prevent overlinking due to libtool + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +check() { + make check -k -C $pkgname +} + +package() { + depends+=( + avahi libavahi-client.so libavahi-common.so libavahi-glib.so + curl libcurl.so + glib2 libgio-2.0.so libglib-2.0.so libgobject-2.0.so + gpgme libgpgme.so + libarchive libarchive.so + libsoup libsoup-2.4.so + openssl libcrypto.so + systemd-libs libsystemd.so + xz liblzma.so + ) + + make DESTDIR="$pkgdir" install -C $pkgname + install -vDm 644 $pkgname/COPYING -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/ostree/clean b/ostree/clean new file mode 100644 index 0000000..c7938da --- /dev/null +++ b/ostree/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,ostree,bsdiff,libglnx} diff --git a/ostree/deps b/ostree/deps new file mode 100644 index 0000000..7256d65 --- /dev/null +++ b/ostree/deps @@ -0,0 +1,19 @@ +fuse3 +libsodium +git +gobject-introspection +gtk-doc +libsoup +libxslt +mkinitcpio +python +cpio +gjs +parallel +python-yaml +syslinux +autoconf +automake +bison + + diff --git a/ostree/ostree-2023.1-use_fuse3.patch b/ostree/ostree-2023.1-use_fuse3.patch new file mode 100644 index 0000000..c1b345e --- /dev/null +++ b/ostree/ostree-2023.1-use_fuse3.patch @@ -0,0 +1,74 @@ +diff --git i/docs/buildsystem-and-repos.md w/docs/buildsystem-and-repos.md +index e265ee7a..2e9250d5 100644 +--- i/docs/buildsystem-and-repos.md ++++ w/docs/buildsystem-and-repos.md +@@ -151,7 +151,7 @@ rofiles-fuse exampleos-build mnt + # Now run global "triggers", generate cache files: + ldconfig -r mnt + (Insert other programs here) +-fusermount -u mnt ++fusermount3 -u mnt + ostree --repo=build-repo commit -b exampleos/x86_64/standard --link-checkout-speedup exampleos-build + ``` + +diff --git i/man/rofiles-fuse.xml w/man/rofiles-fuse.xml +index f4d23739..e8569130 100644 +--- i/man/rofiles-fuse.xml ++++ w/man/rofiles-fuse.xml +@@ -89,7 +89,7 @@ $ mkdir mnt/anewdir + $ rm mnt/someoriginalcontent -rf + + # Commit and cleanup +-$ fusermount -u mnt ++$ fusermount3 -u mnt + $ ostree --repo=repo commit --link-checkout-speedup -b somebranch -s 'Commit new content' --tree=dir=branch-checkout + $ rm mnt branch-checkout -rf + +diff --git i/tests/libtest.sh w/tests/libtest.sh +index 264094b1..cd1e0986 100755 +--- i/tests/libtest.sh ++++ w/tests/libtest.sh +@@ -683,7 +683,7 @@ skip_one_without_strace_fault_injection() { + } + + skip_without_fuse () { +- fusermount --version >/dev/null 2>&1 || skip "no fusermount" ++ fusermount3 --version >/dev/null 2>&1 || skip "no fusermount3" + + capsh --print | grep -q 'Bounding set.*[^a-z]cap_sys_admin' || \ + skip "No cap_sys_admin in bounding set, can't use FUSE" +diff --git i/tests/test-demo-buildsystem.sh w/tests/test-demo-buildsystem.sh +index 2dc78dc3..50995b87 100755 +--- i/tests/test-demo-buildsystem.sh ++++ w/tests/test-demo-buildsystem.sh +@@ -55,7 +55,7 @@ exampleos_recompose() { + # Now that we have our rootfs, run triggers + rofiles-fuse exampleos-build mnt + demo_triggers mnt/ +- fusermount -u mnt ++ fusermount3 -u mnt + + # Then we commit it, using --link-checkout-speedup to effectively + # only re-checksum the ldconfig file. We also have dummy commit +diff --git i/tests/test-rofiles-fuse.sh w/tests/test-rofiles-fuse.sh +index a56a76c6..c61945d6 100755 +--- i/tests/test-rofiles-fuse.sh ++++ w/tests/test-rofiles-fuse.sh +@@ -37,7 +37,7 @@ $OSTREE checkout -H test2 checkout-test2 + + rofiles-fuse checkout-test2 mnt + cleanup_fuse() { +- fusermount -u ${test_tmpdir}/mnt || true ++ fusermount3 -u ${test_tmpdir}/mnt || true + } + libtest_exit_cmds+=(cleanup_fuse) + assert_file_has_content mnt/firstfile first +@@ -133,7 +133,7 @@ echo "ok flock" + + copyup_reset() { + cd ${test_tmpdir} +- fusermount -u mnt ++ fusermount3 -u mnt + rm checkout-test2 -rf + $OSTREE checkout -H test2 checkout-test2 + rofiles-fuse --copyup checkout-test2 mnt diff --git a/ostree/time b/ostree/time new file mode 100644 index 0000000..3c5c4d7 --- /dev/null +++ b/ostree/time @@ -0,0 +1,6 @@ + + +real 18m7.486s +user 4m26.224s +sys 1m33.603s + diff --git a/pacman-contrib/0001-pactree-fix-compilation-with-pacman-6.patch b/pacman-contrib/0001-pactree-fix-compilation-with-pacman-6.patch new file mode 100644 index 0000000..82bb311 --- /dev/null +++ b/pacman-contrib/0001-pactree-fix-compilation-with-pacman-6.patch @@ -0,0 +1,44 @@ +From fd21ee241c85856be941e41942d6c179ca713c41 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz via pacman-contrib +Date: Fri, 21 May 2021 00:30:07 -0400 +Subject: [PATCH] pactree: fix compilation with pacman 6 + +In "add front-end provided context to callbacks", libalpm gained a new +argument to callbacks which we don't use and is only needed by some +frontends wishing to do stuff with the callback state. NULL it and move +on with life, just like pacman itself did. + +Signed-off-by: Eli Schwartz +Signed-off-by: Daniel M. Capella +--- + src/pactree.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/pactree.c b/src/pactree.c +index e8f5086..9e6ac1b 100644 +--- a/src/pactree.c ++++ b/src/pactree.c +@@ -135,8 +135,10 @@ static const char *dbpath = DBPATH; + static const char *configfile = CONFFILE; + static const char *gpgdir = GPGDIR; + +-void cb_log(alpm_loglevel_t level, const char *fmt, va_list args) ++void cb_log(void *ctx, alpm_loglevel_t level, const char *fmt, va_list args) + { ++ (void)ctx; ++ + switch(level) { + case ALPM_LOG_ERROR: + fprintf(stderr, "%s%s%s", color->error, "error: ", +@@ -621,7 +623,7 @@ int main(int argc, char *argv[]) + } + + if(debug) { +- alpm_option_set_logcb(handle, cb_log); ++ alpm_option_set_logcb(handle, cb_log, NULL); + } + + /* no need to fail on error here */ +-- +2.31.1 + diff --git a/pacman-contrib/PKGBUILD b/pacman-contrib/PKGBUILD new file mode 100644 index 0000000..47cb555 --- /dev/null +++ b/pacman-contrib/PKGBUILD @@ -0,0 +1,67 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=pacman-contrib +pkgver=1.9.1 +pkgrel=01 +pkgdesc="Contributed scripts and tools for pacman systems w/o systemd" +url="https://gitlab.archlinux.org/pacman/pacman-contrib" +groups=( jobbot ) +depends=('fakeroot' 'pacman' 'perl') +makedepends=('asciidoc' 'git') +optdepends=('diffutils: for pacdiff' + 'findutils: for pacdiff --find' + 'mlocate: for pacdiff --locate' + 'sudo: privilege elevation for several scripts' + 'vim: default merge program for pacdiff') +#source=("$url/-/archive/v$pkgver/$pkgname-v$pkgver.tar.gz") +#source=("git+$url.git") +source=("git+$url.git#tag=v$pkgver") + +prepare() { +# cd $pkgname-v$pkgver + cd $pkgname + ./autogen.sh +} + +build() { +# cd $pkgname-v$pkgver + cd $pkgname + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + make +} + +check() { +# cd $pkgname-v$pkgver + cd $pkgname + make check +} + +package() { +# cd $pkgname-v$pkgver + cd $pkgname + make DESTDIR="$pkgdir" install + rm -rf $pkgdir/usr/lib +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL') + +validpgpkeys=('5134EF9EAF65F95B6BB1608E50FB9B273A9D0BB5' # Johannes Löthberg + '04DC3FB1445FECA813C27EFAEA4F7B321A906AD9') # Daniel M. Capella + +sha256sums=(SKIP) ## pacman-contrib.git + +## 78f0dca0fc36638a79b97ef6f181d8a76528b25dcf917fb0a1a008c9dd6cc618 pacman-contrib-1.9.1-01-x86_64.pkg.tar.lz + diff --git a/pacman-contrib/PKGBUILD-arch b/pacman-contrib/PKGBUILD-arch new file mode 100644 index 0000000..410fc14 --- /dev/null +++ b/pacman-contrib/PKGBUILD-arch @@ -0,0 +1,47 @@ +# Maintainer: Johannes Löthberg +# Maintainer: Daniel M. Capella + +pkgname=pacman-contrib +pkgver=1.9.1 +pkgrel=1 +pkgdesc='Contributed scripts and tools for pacman systems' +arch=('x86_64') +url=https://gitlab.archlinux.org/pacman/pacman-contrib +license=('GPL') +depends=('fakeroot' 'pacman' 'perl') +makedepends=('asciidoc' 'git') +optdepends=('diffutils: for pacdiff' + 'findutils: for pacdiff --find' + 'mlocate: for pacdiff --locate' + 'sudo: privilege elevation for several scripts' + 'vim: default merge program for pacdiff') +source=("git+$url.git#tag=v$pkgver") +b2sums=('SKIP') +validpgpkeys=('04DC3FB1445FECA813C27EFAEA4F7B321A906AD9') # Daniel M. Capella +# '5134EF9EAF65F95B6BB1608E50FB9B273A9D0BB5') # Johannes Löthberg + +prepare() { + cd $pkgname + ./autogen.sh +} + +build() { + cd $pkgname + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + make +} + +check() { + cd $pkgname + make check +} + +package() { + cd $pkgname + make DESTDIR="$pkgdir" install +} + +# vim:set ts=2 sw=2 et: diff --git a/pacman-contrib/clean b/pacman-contrib/clean new file mode 100644 index 0000000..86aa81a --- /dev/null +++ b/pacman-contrib/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,pacman-contrib} diff --git a/pacman-contrib/configure b/pacman-contrib/configure new file mode 100644 index 0000000..0fa03ac --- /dev/null +++ b/pacman-contrib/configure @@ -0,0 +1,110 @@ +`configure' configures pacman-contrib 1.4.0 to adapt to many kinds of systems. + +Usage: src/pacman-contrib-v1.5.0/configure [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print `checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for `--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or `..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [/usr/local] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, `make install' will install all the files in +`/usr/local/bin', `/usr/local/lib' etc. You can specify +an installation prefix other than `/usr/local' using `--prefix', +for instance `--prefix=$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/pacman-contrib] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-doc prevent make from looking at doc/ dir + --enable-debug enable debugging support + --enable-warningflags enable extra compiler warning flags + --enable-git-version enable use of git version in version string if + available + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-root-dir=PATH set the location of the root operating directory + --with-vim-dir=PATH set the location of the vim runtime file directory + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + LIBARCHIVE_CFLAGS + C compiler flags for LIBARCHIVE, overriding pkg-config + LIBARCHIVE_LIBS + linker flags for LIBARCHIVE, overriding pkg-config + LIBALPM_CFLAGS + C compiler flags for LIBALPM, overriding pkg-config + LIBALPM_LIBS + linker flags for LIBALPM, overriding pkg-config + LIBMAKEPKGDIR + value of libmakepkgdir for libmakepkg, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . diff --git a/pacman-contrib/deps b/pacman-contrib/deps new file mode 100644 index 0000000..52039a2 --- /dev/null +++ b/pacman-contrib/deps @@ -0,0 +1,6 @@ +asciidoc +autoconf +automake +git + + diff --git a/pacman-contrib/time b/pacman-contrib/time new file mode 100644 index 0000000..37390b5 --- /dev/null +++ b/pacman-contrib/time @@ -0,0 +1,6 @@ + + +real 0m10.266s +user 0m7.123s +sys 0m1.105s + diff --git a/patchelf/PKGBUILD b/patchelf/PKGBUILD new file mode 100644 index 0000000..ebc84ed --- /dev/null +++ b/patchelf/PKGBUILD @@ -0,0 +1,45 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=patchelf +pkgver=0.18.0 +pkgrel=01 +pkgdesc='Small utility to modify the dynamic linker and RPATH of ELF executables' +url='https://nixos.org/patchelf.html' +depends=('gcc-libs') +source=(https://github.com/NixOS/patchelf/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz) + +prepare() { + cd ${pkgname}-${pkgver} + autoreconf -fiv +} + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr + make +} + +check() { + cd ${pkgname}-${pkgver} + make -C tests -j1 check +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install +} + +#---- arch license gpg-key & sha256sums ---- + +arch=('x86_64') + +license=('GPL3') + +sha256sums=(1451d01ee3a21100340aed867d0b799f46f0b1749680028d38c3f5d0128fb8a7) # patchelf-0.18.0.tar.gz + +## 4f7a7afb3df956058508c5c32a7f166a3c1e15a104a8a7db32f803ccdefc5299 patchelf-0.18.0-01-x86_64.pkg.tar.lz diff --git a/patchelf/PKGBUILD-arch b/patchelf/PKGBUILD-arch new file mode 100644 index 0000000..76e36bf --- /dev/null +++ b/patchelf/PKGBUILD-arch @@ -0,0 +1,39 @@ +# Maintainer: Levente Polyak +# Maintainer: T.J. Townsend +# Contributor: Daniel Wallace +# Contributor: xduugu + +pkgname=patchelf +pkgver=0.18.0 +pkgrel=1 +pkgdesc='Small utility to modify the dynamic linker and RPATH of ELF executables' +url='https://nixos.org/patchelf.html' +arch=('x86_64') +license=('GPL3') +depends=('gcc-libs') +source=(https://github.com/NixOS/patchelf/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz) +sha512sums=('6a917d7336b1e8c59f42d4cd1dc725df1378d77657fce13cb31547da1d4805b9df8a834a7b8408fda8aa1dbeb37d0cdca74d8698844ea2f44149f800b802dea6') +b2sums=('e6ce4ec3bd89c280bb37230dbeb566b803f09900006e79f7dba74f138f66e17746d331baea4def6a43163024b3d86aa8dbac9b2c6545ac146298a8b84373d03b') + +prepare() { + cd ${pkgname}-${pkgver} + autoreconf -fiv +} + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr + make +} + +check() { + cd ${pkgname}-${pkgver} + make -C tests -j1 check +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install +} + +# vim: ts=2 sw=2 et: diff --git a/patchelf/clean b/patchelf/clean new file mode 100644 index 0000000..17665f6 --- /dev/null +++ b/patchelf/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,patchelf*tar.gz} diff --git a/gnurl/deps b/patchelf/deps similarity index 100% rename from gnurl/deps rename to patchelf/deps diff --git a/patchelf/time b/patchelf/time new file mode 100644 index 0000000..217fefe --- /dev/null +++ b/patchelf/time @@ -0,0 +1,6 @@ + + +real 0m14.750s +user 0m13.076s +sys 0m0.781s + diff --git a/pbget/PKGBUILD b/pbget/PKGBUILD deleted file mode 100644 index 6f0f7c3..0000000 --- a/pbget/PKGBUILD +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcomm/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=pbget -pkgver=2021.12 -pkgrel=04 -pkgdesc='Retrieve PKGBUILDs and local source files from Git, ABS and the AUR for makepkg.' -url="https://xyne.dev/projects/pbget" -depends=(git pm2ml python3 python3-aur python3-xcgf python3-xcpf) -source=( - $url/src/$pkgname-$pkgver.tar.xz - $url/src/$pkgname-$pkgver.tar.xz.sig -) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -sha256sums=(45a63dd2188ab76a9f5a6160a2f25b7e1b1f780eb4208c17674c1568268fc8b8 # pbget-2021.12.tar.xz - df94439e285c93203126733d4727174626e929f77e6dd235e049b6c1aa10bcc7) # pbget-2021.12.tar.xz.sig - -## 95ff01c4fbfb97d7862e64f5252b8ef8a7d8b1955003d7e5c0050a0a4cae8d45 pbget-2021.12-03-x86_64.pkg.tar.lz diff --git a/pbget/PKGBUILD-arch b/pbget/PKGBUILD-arch deleted file mode 100644 index 14a190f..0000000 --- a/pbget/PKGBUILD-arch +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcomm/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=pbget -pkgver=2021.12 -pkgrel=04 -pkgdesc='Retrieve PKGBUILDs and local source files from Git, ABS and the AUR for makepkg.' -url="https://xyne.dev/projects/pbget" -depends=(git pm2ml python3 python3-aur python3-xcgf python3-xcpf) -source=( - $url/src/$pkgname-$pkgver.tar.xz - $url/src/$pkgname-$pkgver.tar.xz.sig -) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -sha256sums=(45a63dd2188ab76a9f5a6160a2f25b7e1b1f780eb4208c17674c1568268fc8b8 # pbget-2021.12.tar.xz - df94439e285c93203126733d4727174626e929f77e6dd235e049b6c1aa10bcc7) # pbget-2021.12.tar.xz.sig - -## diff --git a/pbget/PKGBUILD-aur b/pbget/PKGBUILD-aur deleted file mode 100644 index 4c167cb..0000000 --- a/pbget/PKGBUILD-aur +++ /dev/null @@ -1,30 +0,0 @@ -#Maintainer: Xyne -pkgname=pbget -pkgver=2021.12 -pkgrel=3 -pkgdesc='Retrieve PKGBUILDs and local source files from Git, ABS and the AUR for makepkg.' -arch=(any) -license=(GPL) -url="https://xyne.dev/projects/pbget" -depends=(git pm2ml python3 python3-aur python3-xcgf python3-xcpf) -source=( - https://xyne.dev/projects/pbget/src/pbget-2021.12.tar.xz - https://xyne.dev/projects/pbget/src/pbget-2021.12.tar.xz.sig -) -sha512sums=( - 286cf77c13caabefd24d583bb5b5b04ce2467a299507e0c64cb21f53004ab4eac8db878f48dde31e15f9ac50b761262e87c8dc7cfb9acb4b74a315f25e31cda0 - 96269f75c7d11eea8ee0ca5890de7cbd2ece102269963eab1942503447d1604325ce36d5f88bb3124624b88be97bb607758ca0ffa6dde91bea51a7703f34c8e3 -) -md5sums=( - 0d5bd5b5f676c34226571275a07cbad7 - a180313e00fecc8b19701b0285ea33c9 -) -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - -# vim: set ts=2 sw=2 et: diff --git a/pbget/clean b/pbget/clean deleted file mode 100644 index 5c830fd..0000000 --- a/pbget/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,pbg*xz*} diff --git a/pbget/deps b/pbget/deps deleted file mode 100644 index d6ad9f6..0000000 --- a/pbget/deps +++ /dev/null @@ -1,6 +0,0 @@ -git -pm2ml -python -python3-aur -python3-xcgf -python3-xcpf diff --git a/pbget/key b/pbget/key deleted file mode 100644 index a1edbee..0000000 --- a/pbget/key +++ /dev/null @@ -1,2 +0,0 @@ -#gpg -v --recv-key 1D1F0DC78F173680 -gpg -v --recv-key 12C6F735F7A9A519 diff --git a/pbget/py-deps-order b/pbget/py-deps-order deleted file mode 100644 index 629d871..0000000 --- a/pbget/py-deps-order +++ /dev/null @@ -1,6 +0,0 @@ -../python3-memoizedb/deps:python -../python3-xcgf/deps:python -../python3-xcpf/deps:pyalpm python-pyxdg python3 python3-memoizedb python3-xcgf -../pm2ml/deps:python python3-aur python3-xcgf python3-xcpf -../python3-aur/deps:p2lm pyalpm python-pyxdg python python3-xcgf python3-xcpf - pyalpm python-pyxdg python python3-xcgf python3-xcpf diff --git a/pbget/time b/pbget/time deleted file mode 100644 index 72f0be8..0000000 --- a/pbget/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m2.194s -user 0m1.540s -sys 0m0.474s - diff --git a/pcsclite/PKGBUILD b/pcsclite/PKGBUILD new file mode 100644 index 0000000..08a5787 --- /dev/null +++ b/pcsclite/PKGBUILD @@ -0,0 +1,63 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +# Source Website : https://git.sr.ht/~kennylevinsen/seatd +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=pcsclite +pkgver=2.0.0 +pkgrel=01 +pkgdesc="PC/SC Architecture smartcard middleware library w/o systemd" +url='https://pcsclite.apdu.fr/' +depends=(libeudev polkit) +makedepends=('polkit') +optdepends=( + 'python: API call trace logging with the pcsc-spy' + 'ccid: USB Chip/Smart Card Interface Devices driver' +) +provides=('libpcsclite.so' 'libpcscspy.so') +#options=('!docs') # uncomment this to produce the documents pkg, otherwise the same as arch +source=("https://pcsclite.apdu.fr/files/pcsc-lite-${pkgver}.tar.bz2"{,.asc}) + +build() { + cd "pcsc-lite-$pkgver" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --disable-static \ + --enable-filter \ + --enable-ipcdir=/run/pcscd \ + --enable-libudev \ + --enable-polkit \ + --enable-usbdropdir=/usr/lib/pcsc/drivers \ + --with-systemdsystemunitdir=no \ + --disable-libsystemd \ + --disable-documentation + + make +} + +package() { + cd "pcsc-lite-$pkgver" + make DESTDIR="$pkgdir" install + + install -D -m0644 "$srcdir/pcsc-lite-$pkgver/COPYING" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -d "$pkgdir/usr/lib/pcsc/drivers" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=('x86_64') + +license=('BSD') + +validpgpkeys=('F5E11B9FFE911146F41D953D78A1B4DFE8F9C57E') # Ludovic Rousseau + +sha256sums=(d6c3e2b64510e5ed6fcd3323febf2cc2a8e5fda5a6588c7671f2d77f9f189356 # pcsc-lite-2.0.0.tar.bz2 + 8ee817108e132bdd7c17c0d0ab8ca8e9477ad51587ee660dc19822434c21f175) # pcsc-lite-2.0.0.tar.bz2.asc + +## 1f3bbac44c4c4bb5f7bace74f1a9f46aed1627cac6c71c811a9d7f4f147ce90b pcsclite-2.0.0-01-x86_64.pkg.tar.lz diff --git a/pcsclite/PKGBUILD-arch b/pcsclite/PKGBUILD-arch new file mode 100644 index 0000000..ae567c6 --- /dev/null +++ b/pcsclite/PKGBUILD-arch @@ -0,0 +1,51 @@ +# Maintainer: Alad Wenter +# Maintainer: Christian Hesse +# Contributor: Giovanni Scafora +# Contributor: Daniel Plaza + +pkgname=pcsclite +pkgver=2.0.0 +pkgrel=1 +pkgdesc="PC/SC Architecture smartcard middleware library" +arch=('x86_64') +url='https://pcsclite.apdu.fr/' +license=('BSD') +depends=('libsystemd.so' 'libudev.so' 'libpolkit-gobject-1.so') +makedepends=('systemd' 'polkit') +optdepends=( + 'python: API call trace logging with the pcsc-spy' + 'ccid: USB Chip/Smart Card Interface Devices driver' +) +provides=('libpcsclite.so' 'libpcscspy.so') +validpgpkeys=('F5E11B9FFE911146F41D953D78A1B4DFE8F9C57E') # Ludovic Rousseau +source=("https://pcsclite.apdu.fr/files/pcsc-lite-${pkgver}.tar.bz2"{,.asc}) +sha256sums=('d6c3e2b64510e5ed6fcd3323febf2cc2a8e5fda5a6588c7671f2d77f9f189356' + 'SKIP') + +build() { + cd "pcsc-lite-$pkgver" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --disable-static \ + --enable-filter \ + --enable-ipcdir=/run/pcscd \ + --enable-libudev \ + --enable-usbdropdir=/usr/lib/pcsc/drivers \ + --enable-polkit \ + --with-systemdsystemunitdir=/usr/lib/systemd/system + + make +} + +package() { + cd "pcsc-lite-$pkgver" + make DESTDIR="$pkgdir" install + + install -D -m0644 "$srcdir/pcsc-lite-$pkgver/COPYING" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -d "$pkgdir/usr/lib/pcsc/drivers" +} + +# vim:set sw=2 sts=-1 et: diff --git a/pcsclite/clean b/pcsclite/clean new file mode 100644 index 0000000..8a5319e --- /dev/null +++ b/pcsclite/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,pcsc-lite*.tar.bz2*} diff --git a/pcsclite/deps b/pcsclite/deps new file mode 100644 index 0000000..c44db99 --- /dev/null +++ b/pcsclite/deps @@ -0,0 +1,4 @@ +python +polkit + + diff --git a/pcsclite/key b/pcsclite/key new file mode 100644 index 0000000..e1636bc --- /dev/null +++ b/pcsclite/key @@ -0,0 +1 @@ +gpg --recv-keys 78A1B4DFE8F9C57E diff --git a/pcsclite/note b/pcsclite/note new file mode 100644 index 0000000..a1a3261 --- /dev/null +++ b/pcsclite/note @@ -0,0 +1 @@ +this is from community so upgcomm diff --git a/pcsclite/time b/pcsclite/time new file mode 100644 index 0000000..f6b199c --- /dev/null +++ b/pcsclite/time @@ -0,0 +1,6 @@ + + +real 0m13.540s +user 0m10.552s +sys 0m1.210s + diff --git a/pcsclite/upgcomm b/pcsclite/upgcomm new file mode 100644 index 0000000..e69de29 diff --git a/perl-linux-desktopfiles/PKGBUILD b/perl-linux-desktopfiles/PKGBUILD deleted file mode 100644 index acd7b77..0000000 --- a/perl-linux-desktopfiles/PKGBUILD +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=perl-linux-desktopfiles -_pkgname=Linux-DesktopFiles -pkgver=0.25 -pkgrel=06 -pkgdesc="Linux::DesktopFiles - a very fast Perl module for parsing the Linux desktop files." -arch=('any') -url="https://metacpan.org/pod/Linux::DesktopFiles" -source=("http://cpan.metacpan.org/authors/id/T/TR/TRIZEN/$_pkgname-$pkgver.tar.gz") -options=('!emptydirs') -depends=('perl>=5.14.0') -makedepends=('perl-module-build') # 'perl-module-build' - -build() { - cd "$_pkgname-$pkgver" - perl Build.PL --destdir "${pkgdir}" --installdirs vendor - ./Build -} - -check() { - cd "$_pkgname-$pkgver" - ./Build test -} - -package() { - cd "$_pkgname-$pkgver" - ./Build install -} - -#---- license gpg-key sha256sums ---- - -license=(PerlArtistic GPL) - -sha256sums=(60377a74fba90fa465200ee1c7430dbdde69d454d85f9ee101c039803a07e5f5) # Linux-DesktopFiles-0.25.tar.gz diff --git a/perl-linux-desktopfiles/clean b/perl-linux-desktopfiles/clean deleted file mode 100644 index 8fe68a8..0000000 --- a/perl-linux-desktopfiles/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,perl*gz,Lin*.tar.gz} diff --git a/perl-linux-desktopfiles/deps b/perl-linux-desktopfiles/deps deleted file mode 100644 index 804c284..0000000 --- a/perl-linux-desktopfiles/deps +++ /dev/null @@ -1 +0,0 @@ -perl-module-build diff --git a/perl-linux-desktopfiles/time b/perl-linux-desktopfiles/time deleted file mode 100644 index 8e39f04..0000000 --- a/perl-linux-desktopfiles/time +++ /dev/null @@ -1,4 +0,0 @@ - -real 0m2.509s -user 0m2.111s -sys 0m0.342s diff --git a/php7/PKGBUILD b/php7/PKGBUILD new file mode 100644 index 0000000..3e7f8b1 --- /dev/null +++ b/php7/PKGBUILD @@ -0,0 +1,354 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgbase=php7 +pkgname=(php7 php7-cgi php7-apache php7-fpm php7-embed php7-phpdbg php7-dblib php7-enchant + php7-gd php7-imap php7-intl php7-sodium php7-odbc php7-pgsql php7-pspell php7-snmp + php7-sqlite php7-tidy php7-xsl) +pkgver=7.4.33 +pkgrel=01 +arch=(x86_64) +url='https://www.php.net/' +makedepends=(apache aspell c-client db enchant-pure gd gmp icu libsodium libxslt libzip net-snmp + postgresql-libs sqlite tidy unixodbc curl libtool postfix freetds pcre2 libnsl + oniguruma) +checkdepends=(procps-ng) +#options=(debug) ## uncomment this line to produce the php7-debug pkg +source=("https://php.net/distributions/php-${pkgver}.tar.xz"{,.asc} + 'php7-openssl3-eof.patch::https://github.com/php/php-src/commit/74f75db0c3665677ec006cd379fd561feacffdc6.patch' + 'php7-openssl3.patch::https://github.com/php/php-src/commit/a0972deb0f441fc7991001cb51efc994b70a3b51.patch' + apache.patch apache.conf php-fpm.tmpfiles php.ini.patch + enchant-2.patch php7.patch) +# systemd patch removed 'php-fpm.patch' + +_interpreter=${pkgver%.*} + +prepare() { + cd "${srcdir}/php-${pkgver}" + + patch -p1 -i "${srcdir}/php7-openssl3.patch" + patch -p1 -i "${srcdir}/php7-openssl3-eof.patch" + + patch -p0 -i "${srcdir}/apache.patch" +# patch -p0 -i "${srcdir}/php-fpm.patch" + patch -p0 -i "${srcdir}/php.ini.patch" + patch -p0 -i "${srcdir}/enchant-2.patch" + patch -p0 -i "${srcdir}/php7.patch" + autoconf + + rm tests/output/stream_isatty_*.phpt +} + +build() { + # http://site.icu-project.org/download/61#TOC-Migration-Issues + CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1' + + local _phpconfig="--srcdir=../php-${pkgver} \ + --config-cache \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/php7 \ + --localstatedir=/var \ + --with-layout=GNU \ + --with-config-file-path=/etc/php7 \ + --with-config-file-scan-dir=/etc/php7/conf.d \ + --disable-rpath \ + --mandir=/usr/share/man \ + --libdir=/usr/lib/php7 \ + --datarootdir=/usr/share/php7 \ + --datadir=/usr/share/php7 \ + --program-suffix=7 \ + --includedir=/usr/include/php7 \ + --disable-gcc-global-regs \ + " + + local _phpextensions="\ + --enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-dba=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd=shared \ + --enable-intl=shared \ + --enable-mbstring \ + --enable-pcntl \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-db4=/usr \ + --with-enchant=shared \ + --with-external-gd \ + --with-external-pcre \ + --with-ffi=shared \ + --with-gdbm \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-imap-ssl \ + --with-imap=shared \ + --with-kerberos \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-mhash \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --with-mysqli=shared,mysqlnd \ + --with-openssl \ + --with-password-argon2 \ + --with-pdo-dblib=shared,/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared \ + --with-pgsql=shared \ + --with-pspell=shared \ + --with-readline \ + --with-snmp=shared \ + --with-sodium=shared \ + --with-sqlite3=shared \ + --with-tidy=shared \ + --with-unixODBC=shared \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zip=shared \ + --with-zlib \ + " + + EXTENSION_DIR=/usr/lib/php7/modules + export EXTENSION_DIR + + mkdir "${srcdir}/build" + cd "${srcdir}/build" + ln -s ../php-${pkgver}/configure + ./configure ${_phpconfig} \ + --enable-cgi \ + --enable-fpm \ + --with-fpm-systemd=no \ + --with-fpm-acl \ + --with-fpm-user=http \ + --with-fpm-groups=http \ + --enable-embed=shared \ + ${_phpextensions} + make + + # apache + # reuse the previous run; this will save us a lot of time + cp -a "${srcdir}/build" "${srcdir}/build-apache" + cd "${srcdir}/build-apache" + ./configure ${_phpconfig} \ + --with-apxs2 \ + ${_phpextensions} + make + + # phpdbg + cp -a "${srcdir}/build" "${srcdir}/build-phpdbg" + cd "${srcdir}/build-phpdbg" + ./configure ${_phpconfig} \ + --enable-phpdbg \ + ${_phpextensions} + make +} + +check() { + cd "${srcdir}/build" + + # Check if sendmail was configured correctly (FS#47600) + sapi/cli/php -n -r 'echo ini_get("sendmail_path");' | grep -q '/usr/bin/sendmail' + + export REPORT_EXIT_STATUS=1 + export NO_INTERACTION=1 + export SKIP_ONLINE_TESTS=1 + export SKIP_SLOW_TESTS=1 + export TEST_PHP_ARGS="-j$(nproc)" + export TESTS='tests Zend' + + make test +} + +package_php7() { + pkgdesc='A general-purpose scripting language that is especially suited to web development w/o systemd' + depends=('libxml2' 'curl' 'libzip' 'pcre2' 'argon2' 'oniguruma') + provides=(php-interpreter=$_interpreter) + backup=('etc/php7/php.ini') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" install-{modules,cli,build,headers,programs,pharcmd} + install -D -m644 "${srcdir}/php-${pkgver}/php.ini-production" "${pkgdir}/etc/php7/php.ini" + install -d -m755 "${pkgdir}/etc/php7/conf.d/" + + # remove static modules + rm -f "${pkgdir}/usr/lib/php7/modules/"*.a + # remove modules provided by sub packages + rm -f "${pkgdir}/usr/lib/php7/modules/"{enchant,gd,imap,intl,sodium,odbc,pdo_dblib,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so + # remove empty directory + rmdir "${pkgdir}/usr/include/php7/php/include" +} + +package_php7-cgi() { + pkgdesc='CGI and FCGI SAPI for PHP w/o systemd' + depends=('php7') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" install-cgi +} + +package_php7-apache() { + pkgdesc='Apache SAPI for PHP w/o systemd' + depends=('php7' 'apache' 'libnsl') + backup=('etc/httpd/conf/extra/php7_module.conf') + + install -D -m755 "${srcdir}/build-apache/libs/libphp7.so" "${pkgdir}/usr/lib/httpd/modules/libphp7.so" + install -D -m644 "${srcdir}/apache.conf" "${pkgdir}/etc/httpd/conf/extra/php7_module.conf" +} + +package_php7-fpm() { + pkgdesc='FastCGI Process Manager for PHP w/o systemd' + depends=('php7') + backup=('etc/php7/php-fpm.conf' 'etc/php7/php-fpm.d/www.conf') + options=('!emptydirs') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" install-fpm + install -D -m644 "${srcdir}/php-fpm.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/php-fpm7.conf" +} + +package_php7-embed() { + pkgdesc='Embedded PHP SAPI library w/o systemd' + depends=('php7' 'libnsl' 'libxcrypt') + options=('!emptydirs') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" PHP_SAPI=embed install-sapi +} + +package_php7-phpdbg() { + pkgdesc='Interactive PHP debugger w/o systemd' + depends=('php7') + options=('!emptydirs') + + cd "${srcdir}/build-phpdbg" + make -j1 INSTALL_ROOT="${pkgdir}" install-phpdbg +} + +package_php7-dblib() { + pkgdesc='dblib module for PHP w/o systemd' + depends=('php7' 'freetds') + + install -D -m755 "${srcdir}/build/modules/pdo_dblib.so" "${pkgdir}/usr/lib/php7/modules/pdo_dblib.so" +} + +package_php7-enchant() { + pkgdesc='enchant module for PHP w/o systemd' + depends=('php7' 'enchant-pure') + + install -D -m755 "${srcdir}/build/modules/enchant.so" "${pkgdir}/usr/lib/php7/modules/enchant.so" +} + +package_php7-gd() { + pkgdesc='gd module for PHP w/o systemd' + depends=('php7' 'gd') + + install -D -m755 "${srcdir}/build/modules/gd.so" "${pkgdir}/usr/lib/php7/modules/gd.so" +} + +package_php7-imap() { + pkgdesc='imap module for PHP w/o systemd' + depends=('php7' 'c-client' 'libxcrypt') + + install -D -m755 "${srcdir}/build/modules/imap.so" "${pkgdir}/usr/lib/php7/modules/imap.so" +} + +package_php7-intl() { + pkgdesc='intl module for PHP w/o systemd' + depends=('php7' 'icu') + + install -D -m755 "${srcdir}/build/modules/intl.so" "${pkgdir}/usr/lib/php7/modules/intl.so" +} + +package_php7-sodium() { + pkgdesc='sodium module for PHP w/o systemd' + depends=('php7' 'libsodium') + + + install -D -m755 "${srcdir}/build/modules/sodium.so" "${pkgdir}/usr/lib/php7/modules/sodium.so" +} + +package_php7-odbc() { + pkgdesc='ODBC modules for PHP w/o systemd' + depends=('php7' 'unixodbc') + + install -D -m755 "${srcdir}/build/modules/odbc.so" "${pkgdir}/usr/lib/php7/modules/odbc.so" + install -D -m755 "${srcdir}/build/modules/pdo_odbc.so" "${pkgdir}/usr/lib/php7/modules/pdo_odbc.so" +} + +package_php7-pgsql() { + pkgdesc='PostgreSQL modules for PHP w/o systemd' + depends=('php7' 'postgresql-libs') + + install -D -m755 "${srcdir}/build/modules/pgsql.so" "${pkgdir}/usr/lib/php7/modules/pgsql.so" + install -D -m755 "${srcdir}/build/modules/pdo_pgsql.so" "${pkgdir}/usr/lib/php7/modules/pdo_pgsql.so" +} + +package_php7-pspell() { + pkgdesc='pspell module for PHP w/o systemd' + depends=('php7' 'aspell') + + install -D -m755 "${srcdir}/build/modules/pspell.so" "${pkgdir}/usr/lib/php7/modules/pspell.so" +} + +package_php7-snmp() { + pkgdesc='snmp module for PHP w/o systemd' + depends=('php7' 'net-snmp') + + install -D -m755 "${srcdir}/build/modules/snmp.so" "${pkgdir}/usr/lib/php7/modules/snmp.so" +} + +package_php7-sqlite() { + pkgdesc='sqlite module for PHP w/o systemd' + depends=('php7' 'sqlite') + + install -D -m755 "${srcdir}/build/modules/sqlite3.so" "${pkgdir}/usr/lib/php7/modules/sqlite3.so" + install -D -m755 "${srcdir}/build/modules/pdo_sqlite.so" "${pkgdir}/usr/lib/php7/modules/pdo_sqlite.so" +} + +package_php7-tidy() { + pkgdesc='tidy module for PHP w/o systemd' + depends=('php7' 'tidy') + + install -D -m755 "${srcdir}/build/modules/tidy.so" "${pkgdir}/usr/lib/php7/modules/tidy.so" +} + +package_php7-xsl() { + pkgdesc='xsl module for PHP w/o systemd' + depends=('php7' 'libxslt') + + install -D -m755 "${srcdir}/build/modules/xsl.so" "${pkgdir}/usr/lib/php7/modules/xsl.so" +} + +#---- license gpg-key sha256sums ---- + +license=(PHP) + +validpgpkeys=(5A52880781F755608BF815FC910DEB46F53EA312 + 42670A7FE4D0441C8E4632349E4FDC074A4EF02D) + +sha256sums=(924846abf93bc613815c55dd3f5809377813ac62a9ec4eb3778675b82a27b927 # php-7.4.33.tar.xz + 569a01c7c605a4571fdf7dfadfff4215cc4a63ea5d474c7ec92bd7b4fecfffcb # php-7.4.33.tar.xz.asc + c3e892a045e864dd9cce30a64e243e3516a51c9d3498137e5f8f2dce8cdd2b7f # php7-openssl3-eof.patch + 8ffecdd493e69b58b46fc278e4911ba79de382cfdd34734f8609c11aa489e8e8 # php7-openssl3.patch + b4ea038f2863801175d6c4e74c685913feecdd5be3d49aff7d9b3fa92d8c4159 # apache.patch + ebc0af1ef3a6baccb013d0ccb29923895a7b22ff2d032e3bba802dc6328301ce # apache.conf + 46c720063fa0def3ecc788c442a8fcc01c92edae2bd44eb45c2c946e3a1896c7 # php-fpm.tmpfiles + e02f657e2661ad01081835ded7fcdb0fbe9177b7d0acc4aeaae4164a593a991f # php.ini.patch + d94d22ad8bcd13829addda84e9de6b73fa04be9bc6da8622086c7e19c97ab724 # enchant-2.patch + 52d7d524ce54c73afde7ddc21b354e76578c8a83fbad0496a743c1ea4916bfe1) # php7.patch + + + diff --git a/php7/PKGBUILD-arch b/php7/PKGBUILD-arch new file mode 100644 index 0000000..3b0edff --- /dev/null +++ b/php7/PKGBUILD-arch @@ -0,0 +1,358 @@ +# Maintainer: Pierre Schmitz +# Contributor: Matt Harrison + +pkgbase=php7 +pkgname=('php7' + 'php7-cgi' + 'php7-apache' + 'php7-fpm' + 'php7-embed' + 'php7-phpdbg' + 'php7-dblib' + 'php7-enchant' + 'php7-gd' + 'php7-imap' + 'php7-intl' + 'php7-sodium' + 'php7-odbc' + 'php7-pgsql' + 'php7-pspell' + 'php7-snmp' + 'php7-sqlite' + 'php7-tidy' + 'php7-xsl') +pkgver=7.4.33 +pkgrel=4 +arch=('x86_64') +license=('PHP') +url='https://www.php.net/' +makedepends=('apache' 'aspell' 'c-client' 'enchant' 'gd' 'gmp' 'icu' 'libsodium' 'libxslt' 'libzip' 'net-snmp' + 'postgresql-libs' 'sqlite' 'systemd' 'tidy' 'unixodbc' 'curl' 'libtool' 'postfix' 'freetds' 'pcre2' 'libnsl' + 'oniguruma') +checkdepends=('procps-ng') +options=(debug) +source=("https://php.net/distributions/php-${pkgver}.tar.xz"{,.asc} + 'php7-openssl3.patch::https://github.com/php/php-src/commit/a0972deb0f441fc7991001cb51efc994b70a3b51.patch' + 'php7-openssl3-eof.patch::https://github.com/php/php-src/commit/74f75db0c3665677ec006cd379fd561feacffdc6.patch' + 'apache.patch' 'apache.conf' 'php-fpm.patch' 'php-fpm.tmpfiles' 'php.ini.patch' + 'enchant-2.patch' 'php7.patch') +sha512sums=('499b63b99e5d8e8082ff89d3a91b4cb9a593ea7553b96e48863414c13d2e50275904ed29070e2232e529ee91160f505e6060a4d129cb5bf098aa5b6ea0928d3d' + 'SKIP' + '07b9ba019221cce6f73ebf1fdc6124f0730e42d19b9e0f846d132423da3b820439d4cba61fff8e65937c955ba985889f0c57ed2f94f380213e7279b0531c6444' + '46112bf170c6f1772792c02d6cabd1219aa0d5e3123551cd2bbed480f7cf87743eece89539e3d62eacd312fd025235bb9f5ac1c771bd18ae5b606ae48a7bf222' + '284e3c0fe3ded0ff3e7d53f2769ea207b4591ef42abeff2d8604e87fe379929bd3b19ff294a729834f339a9da85ae7d4a7d8605890677222f78601b4f2b22247' + 'eccbe1a0c7b2757ab3c982c871cc591a66ad70f085aaa0d44f93cacacedc7b8fd21b8d0c66471327ff070db1bab1ab83a802f6fa190f33bdd74c134975e3910e' + 'bf43a99b464a873986954233e2df4841eeab21a6d359a777b7514a4fa34462c9f0fd85243086122ed50c766d5b60fb83f9f181a9b43ae1b527672a4f3b8d8eed' + '7248e9a93faebb86b156130b6ecd8c9733ae8dfa2789c738f9db5a2ab2daee294132b7d8a5a59c860e9e235fdc1bc6a9e9b8b410a23ccc5c6627297d834d3120' + '642e9f84d9d0df96e5d9bafcd3aed7aab3b4374e7917be98e9fa386919c64e9a27ac2daace99b4fcaa7256cca60a87d22893c2ef5383e5353926d8869fda376d' + '5d7d44d692848fbb952e17e5bd6dffa79b764526e4940fbe0a5138ad62cb41abdb8c9bb8dd64cd1d0b488c74972bcf3f9c6d32a3bbeac90982fdf6321d3ec788' + 'f8c197fb657958016340db87de3e3427cc692cccc791e88c650362ed89bfd3be6180e430e5c446d19566b7e66225f9fa8cbed46a0909c87d6e046e65135d3031') +validpgpkeys=('5A52880781F755608BF815FC910DEB46F53EA312' + '42670A7FE4D0441C8E4632349E4FDC074A4EF02D') +_interpreter=${pkgver%.*} + +prepare() { + cd "${srcdir}/php-${pkgver}" + + patch -p1 -i "${srcdir}/php7-openssl3.patch" + patch -p1 -i "${srcdir}/php7-openssl3-eof.patch" + + patch -p0 -i "${srcdir}/apache.patch" + patch -p0 -i "${srcdir}/php-fpm.patch" + patch -p0 -i "${srcdir}/php.ini.patch" + patch -p0 -i "${srcdir}/enchant-2.patch" + patch -p0 -i "${srcdir}/php7.patch" + autoconf + + rm tests/output/stream_isatty_*.phpt +} + +build() { + # http://site.icu-project.org/download/61#TOC-Migration-Issues + CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1' + + local _phpconfig="--srcdir=../php-${pkgver} \ + --config-cache \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/php7 \ + --localstatedir=/var \ + --with-layout=GNU \ + --with-config-file-path=/etc/php7 \ + --with-config-file-scan-dir=/etc/php7/conf.d \ + --disable-rpath \ + --mandir=/usr/share/man \ + --libdir=/usr/lib/php7 \ + --datarootdir=/usr/share/php7 \ + --datadir=/usr/share/php7 \ + --program-suffix=7 \ + --includedir=/usr/include/php7 \ + --disable-gcc-global-regs \ + " + + local _phpextensions="\ + --enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-dba=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd=shared \ + --enable-intl=shared \ + --enable-mbstring \ + --enable-pcntl \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sockets=shared \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-enchant=shared \ + --with-external-gd \ + --with-external-pcre \ + --with-ffi=shared \ + --with-gdbm \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-imap-ssl \ + --with-imap=shared \ + --with-kerberos \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-mhash \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --with-mysqli=shared,mysqlnd \ + --with-openssl \ + --with-password-argon2 \ + --with-pdo-dblib=shared,/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared \ + --with-pgsql=shared \ + --with-pspell=shared \ + --with-readline \ + --with-snmp=shared \ + --with-sodium=shared \ + --with-sqlite3=shared \ + --with-tidy=shared \ + --with-unixODBC=shared \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zip=shared \ + --with-zlib \ + " + + EXTENSION_DIR=/usr/lib/php7/modules + export EXTENSION_DIR + + mkdir "${srcdir}/build" + cd "${srcdir}/build" + ln -s ../php-${pkgver}/configure + ./configure ${_phpconfig} \ + --enable-cgi \ + --enable-fpm \ + --with-fpm-systemd \ + --with-fpm-acl \ + --with-fpm-user=http \ + --with-fpm-group=http \ + --enable-embed=shared \ + ${_phpextensions} + make + + # apache + # reuse the previous run; this will save us a lot of time + cp -a "${srcdir}/build" "${srcdir}/build-apache" + cd "${srcdir}/build-apache" + ./configure ${_phpconfig} \ + --with-apxs2 \ + ${_phpextensions} + make + + # phpdbg + cp -a "${srcdir}/build" "${srcdir}/build-phpdbg" + cd "${srcdir}/build-phpdbg" + ./configure ${_phpconfig} \ + --enable-phpdbg \ + ${_phpextensions} + make +} + +check() { + cd "${srcdir}/build" + + # Check if sendmail was configured correctly (FS#47600) + sapi/cli/php -n -r 'echo ini_get("sendmail_path");' | grep -q '/usr/bin/sendmail' + + export REPORT_EXIT_STATUS=1 + export NO_INTERACTION=1 + export SKIP_ONLINE_TESTS=1 + export SKIP_SLOW_TESTS=1 + export TEST_PHP_ARGS="-j$(nproc)" + export TESTS='tests Zend' + + make test +} + +package_php7() { + pkgdesc='A general-purpose scripting language that is especially suited to web development' + depends=('libxml2' 'curl' 'libzip' 'pcre2' 'argon2' 'oniguruma') + provides=(php-interpreter=$_interpreter) + backup=('etc/php7/php.ini') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" install-{modules,cli,build,headers,programs,pharcmd} + install -D -m644 "${srcdir}/php-${pkgver}/php.ini-production" "${pkgdir}/etc/php7/php.ini" + install -d -m755 "${pkgdir}/etc/php7/conf.d/" + + # remove static modules + rm -f "${pkgdir}/usr/lib/php7/modules/"*.a + # remove modules provided by sub packages + rm -f "${pkgdir}/usr/lib/php7/modules/"{enchant,gd,imap,intl,sodium,odbc,pdo_dblib,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so + # remove empty directory + rmdir "${pkgdir}/usr/include/php7/php/include" +} + +package_php7-cgi() { + pkgdesc='CGI and FCGI SAPI for PHP' + depends=('php7') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" install-cgi +} + +package_php7-apache() { + pkgdesc='Apache SAPI for PHP' + depends=('php7' 'apache' 'libnsl') + backup=('etc/httpd/conf/extra/php7_module.conf') + + install -D -m755 "${srcdir}/build-apache/libs/libphp7.so" "${pkgdir}/usr/lib/httpd/modules/libphp7.so" + install -D -m644 "${srcdir}/apache.conf" "${pkgdir}/etc/httpd/conf/extra/php7_module.conf" +} + +package_php7-fpm() { + pkgdesc='FastCGI Process Manager for PHP' + depends=('php7' 'systemd') + backup=('etc/php7/php-fpm.conf' 'etc/php7/php-fpm.d/www.conf') + options=('!emptydirs') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" install-fpm + install -D -m644 sapi/fpm/php-fpm.service "${pkgdir}/usr/lib/systemd/system/php-fpm7.service" + install -D -m644 "${srcdir}/php-fpm.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/php-fpm7.conf" +} + +package_php7-embed() { + pkgdesc='Embedded PHP SAPI library' + depends=('php7' 'systemd-libs' 'libnsl' 'libxcrypt') + options=('!emptydirs') + + cd "${srcdir}/build" + make -j1 INSTALL_ROOT="${pkgdir}" PHP_SAPI=embed install-sapi +} + +package_php7-phpdbg() { + pkgdesc='Interactive PHP debugger' + depends=('php7') + options=('!emptydirs') + + cd "${srcdir}/build-phpdbg" + make -j1 INSTALL_ROOT="${pkgdir}" install-phpdbg +} + +package_php7-dblib() { + pkgdesc='dblib module for PHP' + depends=('php7' 'freetds') + + install -D -m755 "${srcdir}/build/modules/pdo_dblib.so" "${pkgdir}/usr/lib/php7/modules/pdo_dblib.so" +} + +package_php7-enchant() { + pkgdesc='enchant module for PHP' + depends=('php7' 'enchant') + + install -D -m755 "${srcdir}/build/modules/enchant.so" "${pkgdir}/usr/lib/php7/modules/enchant.so" +} + +package_php7-gd() { + pkgdesc='gd module for PHP' + depends=('php7' 'gd') + + install -D -m755 "${srcdir}/build/modules/gd.so" "${pkgdir}/usr/lib/php7/modules/gd.so" +} + +package_php7-imap() { + pkgdesc='imap module for PHP' + depends=('php7' 'c-client' 'libxcrypt') + + install -D -m755 "${srcdir}/build/modules/imap.so" "${pkgdir}/usr/lib/php7/modules/imap.so" +} + +package_php7-intl() { + pkgdesc='intl module for PHP' + depends=('php7' 'icu') + + install -D -m755 "${srcdir}/build/modules/intl.so" "${pkgdir}/usr/lib/php7/modules/intl.so" +} + +package_php7-sodium() { + pkgdesc='sodium module for PHP' + depends=('php7' 'libsodium') + + + install -D -m755 "${srcdir}/build/modules/sodium.so" "${pkgdir}/usr/lib/php7/modules/sodium.so" +} + +package_php7-odbc() { + pkgdesc='ODBC modules for PHP' + depends=('php7' 'unixodbc') + + install -D -m755 "${srcdir}/build/modules/odbc.so" "${pkgdir}/usr/lib/php7/modules/odbc.so" + install -D -m755 "${srcdir}/build/modules/pdo_odbc.so" "${pkgdir}/usr/lib/php7/modules/pdo_odbc.so" +} + +package_php7-pgsql() { + pkgdesc='PostgreSQL modules for PHP' + depends=('php7' 'postgresql-libs') + + install -D -m755 "${srcdir}/build/modules/pgsql.so" "${pkgdir}/usr/lib/php7/modules/pgsql.so" + install -D -m755 "${srcdir}/build/modules/pdo_pgsql.so" "${pkgdir}/usr/lib/php7/modules/pdo_pgsql.so" +} + +package_php7-pspell() { + pkgdesc='pspell module for PHP' + depends=('php7' 'aspell') + + install -D -m755 "${srcdir}/build/modules/pspell.so" "${pkgdir}/usr/lib/php7/modules/pspell.so" +} + +package_php7-snmp() { + pkgdesc='snmp module for PHP' + depends=('php7' 'net-snmp') + + install -D -m755 "${srcdir}/build/modules/snmp.so" "${pkgdir}/usr/lib/php7/modules/snmp.so" +} + +package_php7-sqlite() { + pkgdesc='sqlite module for PHP' + depends=('php7' 'sqlite') + + install -D -m755 "${srcdir}/build/modules/sqlite3.so" "${pkgdir}/usr/lib/php7/modules/sqlite3.so" + install -D -m755 "${srcdir}/build/modules/pdo_sqlite.so" "${pkgdir}/usr/lib/php7/modules/pdo_sqlite.so" +} + +package_php7-tidy() { + pkgdesc='tidy module for PHP' + depends=('php7' 'tidy') + + install -D -m755 "${srcdir}/build/modules/tidy.so" "${pkgdir}/usr/lib/php7/modules/tidy.so" +} + +package_php7-xsl() { + pkgdesc='xsl module for PHP' + depends=('php7' 'libxslt') + + install -D -m755 "${srcdir}/build/modules/xsl.so" "${pkgdir}/usr/lib/php7/modules/xsl.so" +} diff --git a/php7/apache.conf b/php7/apache.conf new file mode 100644 index 0000000..b516b5e --- /dev/null +++ b/php7/apache.conf @@ -0,0 +1,13 @@ +# Required modules: dir_module, php7_module + + + + DirectoryIndex index.php index.html + + SetHandler application/x-httpd-php + + + SetHandler application/x-httpd-php-source + + + diff --git a/php7/apache.patch b/php7/apache.patch new file mode 100644 index 0000000..c64021b --- /dev/null +++ b/php7/apache.patch @@ -0,0 +1,10 @@ +--- sapi/apache2handler/config.m4.orig ++++ sapi/apache2handler/config.m4 +@@ -111,7 +111,6 @@ + PHP_BUILD_THREAD_SAFE + fi + else +- APACHE_THREADED_MPM=`$APXS_HTTPD -V 2>/dev/null | grep 'threaded:.*yes'` + if test -n "$APACHE_THREADED_MPM"; then + PHP_BUILD_THREAD_SAFE + fi diff --git a/php7/clean b/php7/clean new file mode 100644 index 0000000..446f51e --- /dev/null +++ b/php7/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,php-7*.tar.xz*} diff --git a/php7/deps b/php7/deps new file mode 100644 index 0000000..1f6e277 --- /dev/null +++ b/php7/deps @@ -0,0 +1,19 @@ +apache +postgresql-libs +tidy +unixodbc +freetds +autoconf +aspell +c-client +enchant-pure +gd +libsodium +libxslt +libzip +net-snmp +postfix +libnsl +oniguruma +argon2 + diff --git a/php7/enchant-2.patch b/php7/enchant-2.patch new file mode 100644 index 0000000..5aee2f7 --- /dev/null +++ b/php7/enchant-2.patch @@ -0,0 +1,49 @@ +--- ext/enchant/config.m4.orig ++++ ext/enchant/config.m4 +@@ -4,7 +4,7 @@ + [Include Enchant support])]) + + if test "$PHP_ENCHANT" != "no"; then +- PKG_CHECK_MODULES([ENCHANT], [enchant]) ++ PKG_CHECK_MODULES([ENCHANT], [enchant-2]) + + PHP_EVAL_INCLINE($ENCHANT_CFLAGS) + PHP_EVAL_LIBLINE($ENCHANT_LIBS, ENCHANT_SHARED_LIBADD) +--- ext/enchant/enchant.c.orig ++++ ext/enchant/enchant.c +@@ -738,7 +738,7 @@ + for (i = 0; i < n_sugg; i++) { + add_next_index_string(sugg, suggs[i]); + } +- enchant_dict_free_suggestions(pdict->pdict, suggs); ++ enchant_dict_free_string_list(pdict->pdict, suggs); + } + + +@@ -793,7 +793,7 @@ + add_next_index_string(return_value, suggs[i]); + } + +- enchant_dict_free_suggestions(pdict->pdict, suggs); ++ enchant_dict_free_string_list(pdict->pdict, suggs); + } + } + /* }}} */ +@@ -813,7 +813,7 @@ + + PHP_ENCHANT_GET_DICT; + +- enchant_dict_add_to_personal(pdict->pdict, word, wordlen); ++ enchant_dict_add(pdict->pdict, word, wordlen); + } + /* }}} */ + +@@ -851,7 +851,7 @@ + + PHP_ENCHANT_GET_DICT; + +- RETURN_BOOL(enchant_dict_is_in_session(pdict->pdict, word, wordlen)); ++ RETURN_BOOL(enchant_dict_is_added(pdict->pdict, word, wordlen)); + } + /* }}} */ + diff --git a/php7/key b/php7/key new file mode 100644 index 0000000..d7cccdd --- /dev/null +++ b/php7/key @@ -0,0 +1,2 @@ +gpg --recv-keys 910DEB46F53EA312 + diff --git a/php7/php-fpm.patch b/php7/php-fpm.patch new file mode 100644 index 0000000..462a0cf --- /dev/null +++ b/php7/php-fpm.patch @@ -0,0 +1,76 @@ +--- sapi/fpm/Makefile.frag.orig ++++ sapi/fpm/Makefile.frag +@@ -15,8 +15,8 @@ + else \ + echo "Installing PHP FPM defconfig: $(INSTALL_ROOT)$(sysconfdir)/" && \ + $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d; \ +- $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default; \ +- $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf.default; \ ++ $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf; \ ++ $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf; \ + fi + + @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/" +--- sapi/fpm/php-fpm.conf.in.orig ++++ sapi/fpm/php-fpm.conf.in +@@ -14,14 +14,14 @@ + ; Pid file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: none +-;pid = run/php-fpm.pid ++;pid = /run/php-fpm7/php-fpm.pid + + ; Error log file + ; If it's set to "syslog", log is sent to syslogd instead of being written + ; into a local file. + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: log/php-fpm.log +-;error_log = log/php-fpm.log ++error_log = syslog + + ; syslog_facility is used to specify what type of program is logging the + ; message. This lets syslogd specify that messages from different facilities +--- sapi/fpm/www.conf.in.orig ++++ sapi/fpm/www.conf.in +@@ -33,7 +33,7 @@ + ; (IPv6 and IPv4-mapped) on a specific port; + ; '/path/to/unix/socket' - to listen on a unix socket. + ; Note: This value is mandatory. +-listen = 127.0.0.1:9000 ++listen = /run/php-fpm7/php-fpm.sock + + ; Set listen(2) backlog. + ; Default Value: 511 (-1 on FreeBSD and OpenBSD) +@@ -45,8 +45,8 @@ + ; and group can be specified either by name or by their numeric IDs. + ; Default Values: user and group are set as the running user + ; mode is set to 0660 +-;listen.owner = @php_fpm_user@ +-;listen.group = @php_fpm_group@ ++listen.owner = @php_fpm_user@ ++listen.group = @php_fpm_group@ + ;listen.mode = 0660 + ; When POSIX Access Control Lists are supported you can set them using + ; these options, value is a comma separated list of user/group names. +@@ -371,7 +371,7 @@ + ; Chdir to this directory at the start. + ; Note: relative path can be used. + ; Default Value: current directory or / when chroot +-;chdir = /var/www ++;chdir = /srv/http + + ; Redirect worker stdout and stderr into main error log. If not set, stdout and + ; stderr will be redirected to /dev/null according to FastCGI specs. +--- sapi/fpm/php-fpm.service.in.orig ++++ sapi/fpm/php-fpm.service.in +@@ -8,8 +8,8 @@ + + [Service] + Type=@php_fpm_systemd@ +-PIDFile=@EXPANDED_LOCALSTATEDIR@/run/php-fpm.pid +-ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf ++PIDFile=/run/php-fpm7/php-fpm.pid ++ExecStart=@EXPANDED_SBINDIR@/php-fpm7 --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf + ExecReload=/bin/kill -USR2 $MAINPID + + # Set up a new file system namespace and mounts private /tmp and /var/tmp directories diff --git a/php7/php-fpm.tmpfiles b/php7/php-fpm.tmpfiles new file mode 100644 index 0000000..2167bde --- /dev/null +++ b/php7/php-fpm.tmpfiles @@ -0,0 +1 @@ +d /run/php-fpm7 755 root root diff --git a/php7/php.ini.patch b/php7/php.ini.patch new file mode 100644 index 0000000..f08f353 --- /dev/null +++ b/php7/php.ini.patch @@ -0,0 +1,77 @@ +--- php.ini-production.orig ++++ php.ini-production +@@ -756,7 +756,7 @@ + + ; Directory in which the loadable extensions (modules) reside. + ; http://php.net/extension-dir +-;extension_dir = "./" ++extension_dir = "/usr/lib/php7/modules/" + ; On windows: + ;extension_dir = "ext" + +@@ -904,49 +904,45 @@ + ; deprecated in a future PHP major version. So, when it is possible, please + ; move to the new ('extension=) syntax. + ; +-; Notes for Windows environments : +-; +-; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +-; extension folders as well as the separate PECL DLL download (PHP 5+). +-; Be sure to appropriately set the extension_dir directive. +-; ++;extension=bcmath + ;extension=bz2 +-;extension=curl ++;extension=calendar ++extension=curl ++;extension=dba ++;extension=enchant ++;extension=exif + ;extension=ffi + ;extension=ftp +-;extension=fileinfo +-;extension=gd2 ++;extension=gd + ;extension=gettext + ;extension=gmp +-;extension=intl ++;extension=iconv + ;extension=imap ++;extension=intl + ;extension=ldap +-;extension=mbstring +-;extension=exif ; Must be after mbstring as it depends on it + ;extension=mysqli +-;extension=oci8_12c ; Use with Oracle Database 12c Instant Client + ;extension=odbc +-;extension=openssl +-;extension=pdo_firebird ++;zend_extension=opcache ++;extension=pdo_dblib + ;extension=pdo_mysql +-;extension=pdo_oci + ;extension=pdo_odbc + ;extension=pdo_pgsql + ;extension=pdo_sqlite + ;extension=pgsql ++;extension=pspell + ;extension=shmop +- +-; The MIBS data available in the PHP distribution must be installed. +-; See http://www.php.net/manual/en/snmp.installation.php + ;extension=snmp +- + ;extension=soap + ;extension=sockets + ;extension=sodium + ;extension=sqlite3 ++;extension=sysvmsg ++;extension=sysvsem ++;extension=sysvshm + ;extension=tidy + ;extension=xmlrpc + ;extension=xsl ++extension=zip + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; diff --git a/php7/php7-openssl3-eof.patch b/php7/php7-openssl3-eof.patch new file mode 100644 index 0000000..928cd9e --- /dev/null +++ b/php7/php7-openssl3-eof.patch @@ -0,0 +1,78 @@ +From 74f75db0c3665677ec006cd379fd561feacffdc6 Mon Sep 17 00:00:00 2001 +From: Jakub Zelenka +Date: Sun, 15 May 2022 13:49:17 +0100 +Subject: [PATCH] Fix bug #79589: ssl3_read_n:unexpected eof while reading + +The unexpected EOF failure was introduced in OpenSSL 3.0 to prevent +truncation attack. However there are many non complaint servers and +it is causing break for many users including potential majority +of those where the truncation attack is not applicable. For that reason +we try to keep behavior consitent with older OpenSSL versions which is +also the path chosen by some other languages and web servers. + +Closes GH-8369 +--- + NEWS | 4 ++++ + ext/openssl/tests/bug79589.phpt | 21 +++++++++++++++++++++ + ext/openssl/xp_ssl.c | 5 +++++ + 3 files changed, 30 insertions(+) + create mode 100644 ext/openssl/tests/bug79589.phpt + +diff --git a/NEWS b/NEWS +index e270ad3f1821..83a891b47d06 100644 +--- a/NEWS ++++ b/NEWS +@@ -11,6 +11,10 @@ PHP NEWS + . Fixed bug GH-8461 (tracing JIT crash after function/method change). + (Arnaud, Dmitry) + ++- OpenSSL: ++ . Fixed bug #79589 (error:14095126:SSL routines:ssl3_read_n:unexpected eof ++ while reading). (Jakub Zelenka) ++ + - SPL: + . Fixed bug GH-8235 (iterator_count() may run indefinitely). (cmb) + +diff --git a/ext/openssl/tests/bug79589.phpt b/ext/openssl/tests/bug79589.phpt +new file mode 100644 +index 000000000000..5d277e8c63ce +--- /dev/null ++++ b/ext/openssl/tests/bug79589.phpt +@@ -0,0 +1,21 @@ ++--TEST-- ++Bug #65538: TLS unexpected EOF failure ++--EXTENSIONS-- ++openssl ++--SKIPIF-- ++ ++--FILE-- ++ ['verify_peer'=> false]]) ++); ++echo gettype($release); ++ ++?> ++--EXPECT-- ++string +diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c +index 918b3ca5b21d..ce23fb29f429 100644 +--- a/ext/openssl/xp_ssl.c ++++ b/ext/openssl/xp_ssl.c +@@ -1639,6 +1639,11 @@ int php_openssl_setup_crypto(php_stream *stream, + + ssl_ctx_options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS; + ++#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF ++ /* Only for OpenSSL 3+ to keep OpenSSL 1.1.1 behavior */ ++ ssl_ctx_options |= SSL_OP_IGNORE_UNEXPECTED_EOF; ++#endif ++ + if (!GET_VER_OPT("disable_compression") || zend_is_true(val)) { + ssl_ctx_options |= SSL_OP_NO_COMPRESSION; + } diff --git a/php7/php7-openssl3.patch b/php7/php7-openssl3.patch new file mode 100644 index 0000000..cbce517 --- /dev/null +++ b/php7/php7-openssl3.patch @@ -0,0 +1,23 @@ +From a0972deb0f441fc7991001cb51efc994b70a3b51 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Sun, 8 Aug 2021 17:38:30 +0200 +Subject: [PATCH] minimal fix for openssl 3.0 (#7002) + +--- + ext/openssl/openssl.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c +index de115dd9eb98..7a244f106fe0 100644 +--- a/ext/openssl/openssl.c ++++ b/ext/openssl/openssl.c +@@ -1209,7 +1209,9 @@ PHP_MINIT_FUNCTION(openssl) + REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOSIGS", CMS_NOSIGS, CONST_CS|CONST_PERSISTENT); + + REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_CS|CONST_PERSISTENT); ++#ifdef RSA_SSLV23_PADDING + REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT); ++#endif + REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_CS|CONST_PERSISTENT); + diff --git a/php7/php7.patch b/php7/php7.patch new file mode 100644 index 0000000..3334d72 --- /dev/null +++ b/php7/php7.patch @@ -0,0 +1,11 @@ +--- scripts/phpize.m4.orig ++++ scripts/phpize.m4 +@@ -51,7 +51,7 @@ + PHP_ARG_WITH([php-config],, + [AS_HELP_STRING([--with-php-config=PATH], + [Path to php-config [php-config]])], +- [php-config], ++ [php-config7], + [no]) + + dnl For BC. diff --git a/php7/sums b/php7/sums new file mode 100644 index 0000000..da70f7a --- /dev/null +++ b/php7/sums @@ -0,0 +1,8 @@ +php-7.4.30.tar.xz +php-7.4.30.tar.xz.asc +apache.patch +apache.conf +php-fpm.tmpfiles +php.ini.patch +enchant-2.patch +php7.patch diff --git a/php7/time b/php7/time new file mode 100644 index 0000000..578b4a0 --- /dev/null +++ b/php7/time @@ -0,0 +1,5 @@ + +real 7m9.038s +user 16m22.176s +sys 1m9.543s + diff --git a/pm2ml/PKGBUILD b/pm2ml/PKGBUILD deleted file mode 100644 index 6db9570..0000000 --- a/pm2ml/PKGBUILD +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=pm2ml -pkgver=2021.11.20.1 -pkgrel=04 -pkgdesc='Generate metalinks for downloading Pacman packages and databases.' -url="https://xyne.dev/projects/pm2ml" -depends=(pyalpm python3 python3-xcgf python3-xcpf) -optdepends=('aria2: ppl script support.' 'python3-aur: AUR support' 'reflector: Reflector support') -backup=(etc/ppl.conf) -source=(https://xyne.dev/projects/pm2ml/src/pm2ml-2021.11.20.1.tar.xz{,.sig}) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 - for foo_ in ppl pplsyu ppls; do - install -Dm755 "$foo_" "$pkgdir/usr/bin/$foo_" - done - install -Dm644 "ppl.conf" "$pkgdir/etc/ppl.conf" -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -#validpgpkeys=('EC3CBE7F607D11E663149E811D1F0DC78F173680') -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -sha256sums=(5a8e16af5a6c3f634275ee2721f984917d2f25806b2d51517d3ecd855e97278c # pm2ml-2021.11.20.1.tar.xz - 8fc97e1f14a5f563dda18148af025e5a79e60337c0bb407c600975f6f813dc5d) # pm2ml-2021.11.20.1.tar.xz.sig - -## 3d370d2d9b88c8da3b3500040cdb9673845dd208f263c199fb97d785aabd690a pm2ml-2021.11.20.1-04-x86_64.pkg.tar.lz diff --git a/pm2ml/PKGBUILD-aur b/pm2ml/PKGBUILD-aur deleted file mode 100644 index 494cfd4..0000000 --- a/pm2ml/PKGBUILD-aur +++ /dev/null @@ -1,36 +0,0 @@ -#Maintainer: Xyne -pkgname=pm2ml -pkgver=2021.11.20.1 -pkgrel=4 -pkgdesc='Generate metalinks for downloading Pacman packages and databases.' -arch=(any) -license=(GPL) -url="https://xyne.dev/projects/pm2ml" -depends=(pyalpm python3 python3-xcgf python3-xcpf) -optdepends=('aria2: ppl script support.' 'python3-aur: AUR support' 'reflector: Reflector support') -backup=(etc/ppl.conf) -source=( - https://xyne.dev/projects/pm2ml/src/pm2ml-2021.11.20.1.tar.xz - https://xyne.dev/projects/pm2ml/src/pm2ml-2021.11.20.1.tar.xz.sig -) -sha512sums=( - 293cc288509ffc57c232e67e6c99e5de57a259440705ee239b1741f07f39cbdafbc8fa0e17cc9c3d22cf544fcebd3f46c4811e00070d9f0865ea687288dcab07 - e2f384bc6eb32aeba8d8a533e200aa9d307a50680fc95cecaefdba0143446ea13716b7a2eea7079a3fba78cb1cb613c93a9b6265c2dc07f5cafab51747979d5d -) -md5sums=( - e03e44428baec1cbdc24561843ad67da - dd861a7b1bef4d6b4b9f93a313d688fc -) -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 - for foo_ in ppl pplsyu ppls; do - install -Dm755 "$foo_" "$pkgdir/usr/bin/$foo_" - done - install -Dm644 "ppl.conf" "$pkgdir/etc/ppl.conf" -} - -# vim: set ts=2 sw=2 et: diff --git a/pm2ml/clean b/pm2ml/clean deleted file mode 100644 index a847d25..0000000 --- a/pm2ml/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,pm2*xz*} diff --git a/pm2ml/deps b/pm2ml/deps deleted file mode 100644 index 5ac43c0..0000000 --- a/pm2ml/deps +++ /dev/null @@ -1,4 +0,0 @@ -pyalpm -python -python3-xcgf -python3-xcpf diff --git a/pm2ml/key b/pm2ml/key deleted file mode 100644 index a1edbee..0000000 --- a/pm2ml/key +++ /dev/null @@ -1,2 +0,0 @@ -#gpg -v --recv-key 1D1F0DC78F173680 -gpg -v --recv-key 12C6F735F7A9A519 diff --git a/pm2ml/time b/pm2ml/time deleted file mode 100644 index 6aa8167..0000000 --- a/pm2ml/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m3.575s -user 0m1.739s -sys 0m0.484s - diff --git a/python-pyexiftool/PKGBUILD b/python-pyexiftool/PKGBUILD deleted file mode 100644 index 8b2956d..0000000 --- a/python-pyexiftool/PKGBUILD +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgbase=pyexiftool -_pkgname=PyExifTool -pkgname='python-pyexiftool' -pkgver=0.5.5 -pkgrel=02 -pkgdesc="Library to communicate with an instance of ExifTool command-line application" -arch=('any') -url="https://github.com/sylikc/${pkgbase}" -makedepends=("python-pip") -_pkgname_prefix="${_pkgname:0:1}" -_pkgname_underscored="${_pkgname//-/_}" -_pkgurl="https://files.pythonhosted.org/packages/py3/$_pkgname_prefix/$_pkgname/$_pkgname_underscored-$pkgver-py3-none-any.whl" -source=("$_pkgurl") - -package() { - cd "$srcdir" || exit - PIP_CONFIG_FILE=/dev/null pip install \ - --root="$pkgdir" \ - --isolated \ - --ignore-installed \ - --no-deps \ - --no-compile \ - --no-warn-script-location \ - ${_pkgname//-/_}-$pkgver-py3-none-any.whl - python -O -m compileall -s "$pkgdir" "$pkgdir/usr/lib/" - mapfile -t direct_url_file < <(find "$pkgdir"/usr/lib -type f -name 'direct_url.json') - rm -rvf "${direct_url_file[@]}" || true - install -Dm644 "${_pkgname//-/_}-$pkgver.dist-info/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -#---- license gpg-key sha256sums ---- - -license=("GPL3") - -sha256sums=(7048aab1cb83726d7bf0113a5acb9d9d52f9e16817e39595fa59c8ea0563bf5a) # PyExifTool-0.5.5-py3-none-any.whl - -## 5a88793ebba32012968a8a447672e16b65a20eb7e7c8f126adf6a988340378d7 python-pyexiftool-0.5.5-02-any.pkg.tar.lz - diff --git a/python-pyexiftool/PKGBUILD-aur b/python-pyexiftool/PKGBUILD-aur deleted file mode 100644 index 27dc70f..0000000 --- a/python-pyexiftool/PKGBUILD-aur +++ /dev/null @@ -1,36 +0,0 @@ -# Maintainer: samarthj -# Contributor: Levente Polyak - -# shellcheck disable=2034,2148,2154 - -pkgbase=pyexiftool -_pkgname=PyExifTool -pkgname='python-pyexiftool' -pkgver=0.5.4 -pkgrel=1 -pkgdesc="Library to communicate with an instance of ExifTool command-line application" -arch=('any') -url="https://github.com/sylikc/${pkgbase}" -license=("GPL3") -makedepends=("python-pip") -_pkgname_prefix="${_pkgname:0:1}" -_pkgname_underscored="${_pkgname//-/_}" -_pkgurl="https://files.pythonhosted.org/packages/py3/$_pkgname_prefix/$_pkgname/$_pkgname_underscored-$pkgver-py3-none-any.whl" -source=("$_pkgurl") -sha512sums=('b83607a01878506174b674be3be10773b12c5c674ba1fc1e1ca46ae7fcb037da3b4c4a99d1fafc4369a413cd472588f3109fe9c85d1c3607a58983e4249e1e46') - -package() { - cd "$srcdir" || exit - PIP_CONFIG_FILE=/dev/null pip install \ - --root="$pkgdir" \ - --isolated \ - --ignore-installed \ - --no-deps \ - --no-compile \ - --no-warn-script-location \ - ${_pkgname//-/_}-$pkgver-py3-none-any.whl - python -O -m compileall -s "$pkgdir" "$pkgdir/usr/lib/" - mapfile -t direct_url_file < <(find "$pkgdir"/usr/lib -type f -name 'direct_url.json') - rm -rvf "${direct_url_file[@]}" || true - install -Dm644 "${_pkgname//-/_}-$pkgver.dist-info/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} diff --git a/python-pyexiftool/clean b/python-pyexiftool/clean deleted file mode 100644 index fe8831a..0000000 --- a/python-pyexiftool/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,PyExif*.whl} diff --git a/python-pyexiftool/deps b/python-pyexiftool/deps deleted file mode 100644 index 311c1b8..0000000 --- a/python-pyexiftool/deps +++ /dev/null @@ -1 +0,0 @@ -python-pip diff --git a/python-pyexiftool/time b/python-pyexiftool/time deleted file mode 100644 index 450b89a..0000000 --- a/python-pyexiftool/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m2.625s -user 0m1.989s -sys 0m0.273s - diff --git a/python-pytest b/python-pytest deleted file mode 120000 index d248c15..0000000 --- a/python-pytest +++ /dev/null @@ -1 +0,0 @@ -../jobcomm/python-pytest \ No newline at end of file diff --git a/python-pytest/PKGBUILD b/python-pytest/PKGBUILD new file mode 100644 index 0000000..a0154ec --- /dev/null +++ b/python-pytest/PKGBUILD @@ -0,0 +1,67 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=python-pytest +pkgver=7.4.0 +pkgrel=01 +pkgdesc="Simple powerful testing with Python" +url="https://pytest.org/" +depends=('python-iniconfig' 'python-packaging' 'python-pluggy') # 'python-attrs' 'python-exceptiongroup' 'python-tomli') +makedepends=('python-build' 'python-installer' 'python-setuptools' + 'python-wheel') +checkdepends=('python-argcomplete' 'python-attrs' 'python-hypothesis' + 'python-nose' 'python-pygments' 'python-requests' 'python-xmlschema' + # Unlisted, but actually used. Check again after a while: + 'lsof' 'python-decorator' 'python-docutils' 'python-jinja' + 'python-numpy' 'python-pexpect' 'python-exceptiongroup' + 'python-pytest-xdist' 'python-twisted') +source=("https://files.pythonhosted.org/packages/source/p/pytest/pytest-$pkgver.tar.gz") + +# Remove dep on setuptools_scm +prepare() { + cd pytest-$pkgver + sed -i "/^\[metadata\]/a version = $pkgver + /setuptools-scm/d" setup.cfg + sed -i '/setuptools-scm\|wheel/d + /\[tool.setuptools_scm\]/,/^$/d' pyproject.toml + +} + +build() { + cd pytest-$pkgver + python -m build --wheel --skip-dependency-check --no-isolation +} + +check() { + cd pytest-$pkgver + python -m venv --system-site-packages test-env + test-env/bin/python -m installer dist/*.whl + # https://github.com/pytest-dev/pytest/issues/10042 + test-env/bin/python -m pytest -o xfail_strict=False +} + +package() { + cd pytest-$pkgver + python -m installer --destdir="$pkgdir" dist/*.whl + + # Symlink license file + local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") + install -d "$pkgdir"/usr/share/licenses/$pkgname + ln -s "$site_packages"/pytest-$pkgver.dist-info/LICENSE \ + "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('MIT') + +sha256sums=(b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a) # pytest-7.4.0.tar.gz + +## 5e3e2c4e1e99c18f7b357f8cd54b8bc95d10e42b2a42e403b93b437501b67e7d python-pytest-7.4.0-01-x86_64.pkg.tar.lz + diff --git a/python-pytest/PKGBUILD-arch b/python-pytest/PKGBUILD-arch new file mode 100644 index 0000000..0a93f33 --- /dev/null +++ b/python-pytest/PKGBUILD-arch @@ -0,0 +1,57 @@ +# Maintainer: Felix Yan +# Maintainer: Daniel M. Capella +# Contributor: Felix Kaiser + +pkgname=python-pytest +pkgver=7.4.0 +pkgrel=1 +pkgdesc="Simple powerful testing with Python" +arch=('any') +license=('MIT') +url="https://pytest.org/" +depends=('python-iniconfig' 'python-packaging' 'python-pluggy') +makedepends=('python-build' 'python-installer' 'python-setuptools' + 'python-wheel') +checkdepends=('python-argcomplete' 'python-attrs' 'python-hypothesis' + 'python-nose' 'python-pygments' 'python-requests' + 'python-xmlschema' + # Unlisted, but actually used. Check again after a while: + 'lsof' 'python-decorator' 'python-docutils' + 'python-exceptiongroup' 'python-jinja' 'python-numpy' + 'python-pexpect' 'python-pytest-xdist' 'python-twisted') +source=("https://files.pythonhosted.org/packages/source/p/pytest/pytest-$pkgver.tar.gz") +sha256sums=('b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a') +b2sums=('59b9e90ab226dd317a5beeb0b189d0e323379e781dcca3fc7aa37ab7ef6d623a25f6f50e4b648cd274bdbc202e914fd393749d093a4c9d8c2f19124403d6b4fe') + +# Remove dep on setuptools_scm +prepare() { + cd pytest-$pkgver + sed -i "/^\[metadata\]/a version = $pkgver + /setuptools-scm/d" setup.cfg + sed -i '/setuptools-scm\|wheel/d + /\[tool.setuptools_scm\]/,/^$/d' pyproject.toml +} + +build() { + cd pytest-$pkgver + python -m build --wheel --skip-dependency-check --no-isolation +} + +check() { + cd pytest-$pkgver + python -m venv --system-site-packages test-env + test-env/bin/python -m installer dist/*.whl + # https://github.com/pytest-dev/pytest/issues/10042 + test-env/bin/python -m pytest -o xfail_strict=False +} + +package() { + cd pytest-$pkgver + python -m installer --destdir="$pkgdir" dist/*.whl + + # Symlink license file + local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") + install -d "$pkgdir"/usr/share/licenses/$pkgname + ln -s "$site_packages"/pytest-$pkgver.dist-info/LICENSE \ + "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} diff --git a/python-pytest/clean b/python-pytest/clean new file mode 100644 index 0000000..be3c064 --- /dev/null +++ b/python-pytest/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,pytest*.tar.gz} diff --git a/python-pytest/deps b/python-pytest/deps new file mode 100644 index 0000000..1e36240 --- /dev/null +++ b/python-pytest/deps @@ -0,0 +1,26 @@ +python-iniconfig +python-packaging +python-pluggy +python-build +python-installer +python-setuptools +python-wheel +python-argcomplete +python-attrs +python-hypothesis +python-nose +python-requests +python-xmlschema +lsof +python-decorator +python-docutils +python-jinja +python-numpy +python-pexpect +python-pygments +python-pytest-xdist +python-twisted +python-typing_extensions + + +python-exceptiongroup diff --git a/python-pytest/deps.old b/python-pytest/deps.old new file mode 100644 index 0000000..73d7ff2 --- /dev/null +++ b/python-pytest/deps.old @@ -0,0 +1,29 @@ +python-attrs +python-exceptiongroup +python-iniconfig +python-packaging +python-pluggy +python-tomli +python-build +python-installer +python-setuptools +python-wheel +python-argcomplete +python-hypothesis +python-nose +python-requests +python-xmlschema +lsof +python-asynctest +python-decorator +python-docutils +python-jinja +python-numpy +python-pexpect +python-pygments +python-pytest-xdist +python-twisted + + + +python-typing_extensions diff --git a/python-pytest/old-deps b/python-pytest/old-deps new file mode 100644 index 0000000..640470c --- /dev/null +++ b/python-pytest/old-deps @@ -0,0 +1,26 @@ +python-attrs +python-exceptiongroup +python-iniconfig +python-packaging +python-pluggy +python-tomli +python-build +python-installer +python-setuptools +python-wheel +python-argcomplete +python-hypothesis +python-nose +python-requests +python-xmlschema +lsof +python-asynctest +python-decorator +python-docutils +python-jinja +python-numpy +python-pexpect +python-pygments +python-pytest-xdist +python-twisted + diff --git a/python-pytest/pytest-fix_test_raising_repr_test.patch b/python-pytest/pytest-fix_test_raising_repr_test.patch new file mode 100644 index 0000000..4d77786 --- /dev/null +++ b/python-pytest/pytest-fix_test_raising_repr_test.patch @@ -0,0 +1,34 @@ +From b55e264a675f7621b8351e227b93742f19e01c7d Mon Sep 17 00:00:00 2001 +From: Daniel Valenzuela +Date: Wed, 9 Nov 2022 19:43:10 -0300 +Subject: [PATCH] Fix test_raising_repr test + +Closes #10473 + +Python <3.11 versions depend on `exceptiongroup>=1.0.0rc8`, and they released version `1.0.1` +6 days ago (2022/11/03) that as a side-effect changed the output of exceptions. +--- + testing/test_assertion.py | 10 +--------- + 1 file changed, 1 insertion(+), 9 deletions(-) + +diff --git a/testing/test_assertion.py b/testing/test_assertion.py +index d8844f2e41..7574592210 100644 +--- a/testing/test_assertion.py ++++ b/testing/test_assertion.py +@@ -1664,15 +1664,7 @@ def test_raising_repr(): + """ + ) + result = pytester.runpytest() +- if sys.version_info >= (3, 11): +- # python 3.11 has native support for un-str-able exceptions +- result.stdout.fnmatch_lines( +- ["E AssertionError: "] +- ) +- else: +- result.stdout.fnmatch_lines( +- ["E AssertionError: "] +- ) ++ result.stdout.fnmatch_lines(["E AssertionError: "]) + + + def test_issue_1944(pytester: Pytester) -> None: diff --git a/python-pytest/time b/python-pytest/time new file mode 100644 index 0000000..263029b --- /dev/null +++ b/python-pytest/time @@ -0,0 +1,5 @@ + +real 3m6.264s +user 2m50.774s +sys 0m10.813s + diff --git a/python-pyudev b/python-pyudev deleted file mode 120000 index 8741ade..0000000 --- a/python-pyudev +++ /dev/null @@ -1 +0,0 @@ -../jobcomm/python-pyudev \ No newline at end of file diff --git a/python-pyudev/0001-tests-fix-tests-for-pytest-4.0.patch b/python-pyudev/0001-tests-fix-tests-for-pytest-4.0.patch new file mode 100644 index 0000000..579534d --- /dev/null +++ b/python-pyudev/0001-tests-fix-tests-for-pytest-4.0.patch @@ -0,0 +1,64 @@ +From cc04bc5ca08e4761b41c5cf220889c4233f157a0 Mon Sep 17 00:00:00 2001 +From: FFY00 +Date: Fri, 24 May 2019 19:08:41 +0100 +Subject: [PATCH] tests: fix tests for pytest 4.0 + +--- + tests/plugins/mock_libudev.py | 6 ++++-- + tests/plugins/privileged.py | 5 +++-- + tests/plugins/travis.py | 5 +++-- + 3 files changed, 10 insertions(+), 6 deletions(-) + +diff --git a/tests/plugins/mock_libudev.py b/tests/plugins/mock_libudev.py +index aefeb31..0bde07b 100644 +--- a/tests/plugins/mock_libudev.py ++++ b/tests/plugins/mock_libudev.py +@@ -32,6 +32,7 @@ + from contextlib import contextmanager + from collections import namedtuple + ++import pytest + import mock + + Node = namedtuple('Node', 'name value next') +@@ -93,5 +94,6 @@ def libudev_list(libudev, function, items): + EXPOSED_FUNCTIONS = [libudev_list] + + +-def pytest_namespace(): +- return dict((f.__name__, f) for f in EXPOSED_FUNCTIONS) ++def pytest_configure(): ++ for f in EXPOSED_FUNCTIONS: ++ setattr(pytest, f.__name__, f) +diff --git a/tests/plugins/privileged.py b/tests/plugins/privileged.py +index 92328b9..c636980 100644 +--- a/tests/plugins/privileged.py ++++ b/tests/plugins/privileged.py +@@ -71,5 +71,6 @@ def unload_dummy(): + EXPOSED_FUNCTIONS = [load_dummy, unload_dummy] + + +-def pytest_namespace(): +- return dict((f.__name__, f) for f in EXPOSED_FUNCTIONS) ++def pytest_configure(): ++ for f in EXPOSED_FUNCTIONS: ++ setattr(pytest, f.__name__, f) +diff --git a/tests/plugins/travis.py b/tests/plugins/travis.py +index 46466c2..15a780e 100644 +--- a/tests/plugins/travis.py ++++ b/tests/plugins/travis.py +@@ -38,8 +38,9 @@ def is_on_travis_ci(): + EXPOSED_FUNCTIONS = [is_on_travis_ci] + + +-def pytest_namespace(): +- return dict((f.__name__, f) for f in EXPOSED_FUNCTIONS) ++def pytest_configure(): ++ for f in EXPOSED_FUNCTIONS: ++ setattr(pytest, f.__name__, f) + + + def pytest_runtest_setup(item): +-- +2.21.0 + diff --git a/python-pyudev/PKGBUILD b/python-pyudev/PKGBUILD new file mode 100644 index 0000000..076dbb2 --- /dev/null +++ b/python-pyudev/PKGBUILD @@ -0,0 +1,71 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +_pkgname=pyudev +pkgname=python-$_pkgname +pkgver=0.24.1 +pkgrel=01 +url='https://github.com/pyudev/pyudev' +pkgdesc='Python bindings to libudev w/o systemd' +depends=('python-six') +#makedepends=('python-setuptools' 'python-sphinx' 'python-mock') +#checkdepends=('python-pytest-runner' 'python-docutils' 'python-mock' 'python-hypothesis') +makedepends=('python-build' 'python-installer' 'python-setuptools' 'python-wheel' 'python-sphinx') +checkdepends=('python-pytest' 'python-docutils' 'python-hypothesis' 'python-pip') +optdepends=('python-pyqt5: PyQt integration' + 'pyside2: PySide integration' + 'python-wxpython: WX integration') +source=("$_pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz") + +prepare() { + cd $_pkgname-$pkgver + + # Remove failing tests (we can't test udev inside makepkg) + rm tests/test_{util,discover,device,monitor,enumerate,observer}.py + + # Fix documentation build + sed -i "s|os.path.join(doc_directory, os.pardir)|os.path.join(doc_directory, os.pardir, 'src')| + s|b'autodoc-process-docstring'|'autodoc-process-docstring'|" doc/conf.py +} + +build() { + cd $_pkgname-$pkgver + + python -m build -nw + + # Generate documentation + sphinx-apidoc -f -e -o doc src/pyudev + sphinx-build -a -b html doc doc/html +} + +check() { + cd $_pkgname-$pkgver + + PYTHONPATH=src python -m pytest +} + +package() { + cd $_pkgname-$pkgver + + python -m installer -d "$pkgdir" dist/*.whl + + # Install documentation + install -dm 755 "$pkgdir"/usr/share/doc/$pkgname + cp -r -a --no-preserve=ownership doc/html "$pkgdir"/usr/share/doc/$pkgname + rm -rf "$pkgdir"/usr/share/doc/$pkgname/html/.doctrees +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('LGPL') + +sha256sums=(b277149ebca914d3f5daff1a7fa1e0d00bea9c4950af8ac95d9a8a83f2937c79) # pyudev-0.24.1.tar.gz + +## 51e9b3d7b6e429bf0400e06eba50022ea6da4d4dfb742e07fe6abdc47738a9ff python-pyudev-0.24.1-01-x86_64.pkg.tar.lz + diff --git a/python-pyudev/PKGBUILD-arch b/python-pyudev/PKGBUILD-arch new file mode 100644 index 0000000..5ba2314 --- /dev/null +++ b/python-pyudev/PKGBUILD-arch @@ -0,0 +1,60 @@ +# Maintainer: Filipe Laíns (FFY00) +# Contributor: Andrea Scarpino +# Contributor: examon +# Contributor: Sebastian Wiesner +# Contributor: Dwight Schauer + +_pkgname=pyudev +pkgname=python-$_pkgname +pkgver=0.24.1 +pkgrel=1 +arch=('any') +url='https://github.com/pyudev/pyudev' +license=('LGPL') +pkgdesc='Python bindings to libudev' +depends=('python-six' 'systemd') +makedepends=('python-build' 'python-installer' 'python-setuptools' 'python-wheel' 'python-sphinx') +checkdepends=('python-pytest' 'python-docutils' 'python-hypothesis' 'python-pip') +optdepends=('python-pyqt5: PyQt integration' + 'pyside2: PySide integration' + 'python-wxpython: WX integration') +source=("$_pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz") +sha512sums=('68d64113a465588411e494a010e1b19f68ed0f8fabff154d6f3066a22ff38fcd52ee73b9a00be15f5e51ea38152cd97f2ff3fda406981431a6d5a6fa0484e874') + +prepare() { + cd $_pkgname-$pkgver + + # Remove failing tests (we can't test udev inside makepkg) + rm tests/test_{util,discover,device,monitor,enumerate,observer}.py + + # Fix documentation build + sed -i "s|os.path.join(doc_directory, os.pardir)|os.path.join(doc_directory, os.pardir, 'src')| + s|b'autodoc-process-docstring'|'autodoc-process-docstring'|" doc/conf.py +} + +build() { + cd $_pkgname-$pkgver + + python -m build -nw + + # Generate documentation + sphinx-apidoc -f -e -o doc src/pyudev + sphinx-build -a -b html doc doc/html +} + +check() { + cd $_pkgname-$pkgver + + PYTHONPATH=src python -m pytest +} + +package() { + cd $_pkgname-$pkgver + + python -m installer -d "$pkgdir" dist/*.whl + + # Install documentation + install -dm 755 "$pkgdir"/usr/share/doc/$pkgname + cp -r -a --no-preserve=ownership doc/html "$pkgdir"/usr/share/doc/$pkgname + rm -rf "$pkgdir"/usr/share/doc/$pkgname/html/.doctrees +} diff --git a/python-pyudev/clean b/python-pyudev/clean new file mode 100644 index 0000000..fa330a5 --- /dev/null +++ b/python-pyudev/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,pyu*.tar.gz} diff --git a/python-pyudev/deps b/python-pyudev/deps new file mode 100644 index 0000000..8d3298d --- /dev/null +++ b/python-pyudev/deps @@ -0,0 +1,13 @@ +python-six +python-setuptools +python-sphinx +python-pytest-runner +python-docutils +python-hypothesis +eudev +python-build +python-installer +python-wheel +python-pip +python-typing_extensions + diff --git a/python-pyudev/time b/python-pyudev/time new file mode 100644 index 0000000..b135725 --- /dev/null +++ b/python-pyudev/time @@ -0,0 +1,5 @@ + +real 0m6.720s +user 0m5.971s +sys 0m0.764s + diff --git a/python-zipp b/python-zipp deleted file mode 120000 index 7106e78..0000000 --- a/python-zipp +++ /dev/null @@ -1 +0,0 @@ -../jobcomm/python-zipp \ No newline at end of file diff --git a/python-zipp/PKGBUILD b/python-zipp/PKGBUILD new file mode 100644 index 0000000..9267f8e --- /dev/null +++ b/python-zipp/PKGBUILD @@ -0,0 +1,48 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=python-zipp +pkgver=3.16.2 +_commit=5f03323a4bde1ee0f1c8c3c7e29c2de64ce92044 +pkgrel=01 +pkgdesc="Pathlib-compatible object wrapper for zip files" +url="https://github.com/jaraco/zipp" +depends=('python') +makedepends=('git' 'python-build' 'python-installer' 'python-setuptools-scm' 'python-wheel') +#3.14.0 checkdepends=('python-jaraco.itertools' 'python-func-timeout' 'python-more-itertools') +checkdepends=('python-pytest' 'python-pytest-enabler' 'python-pytest-mypy' + 'python-jaraco.itertools' 'python-more-itertools' 'python-big-o' 'python-pytest-ignore-flaky') +#source=("https://github.com/jaraco/zipp/archive/v$pkgver/$pkgname-$pkgver.tar.gz") +source=("git+https://github.com/jaraco/zipp.git#commit=$_commit") +#export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver + +build() { + cd zipp + python -m build -nw +} + +check() { + cd zipp + pytest +} + +package() { + cd zipp + python -m installer --destdir="$pkgdir" dist/*.whl + install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/ +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('MIT') + +sha256sums=(SKIP) + +## 37d53f41e607df314f980d67b8dc5e8da98b44e88b9c87caa80fb173fd67aff5 python-zipp-3.16.2-01-x86_64.pkg.tar.lz + diff --git a/python-zipp/PKGBUILD-arch b/python-zipp/PKGBUILD-arch new file mode 100644 index 0000000..2d25db9 --- /dev/null +++ b/python-zipp/PKGBUILD-arch @@ -0,0 +1,32 @@ +# Maintainer: Felix Yan + +pkgname=python-zipp +pkgver=3.16.2 +_commit=5f03323a4bde1ee0f1c8c3c7e29c2de64ce92044 +pkgrel=1 +pkgdesc="Pathlib-compatible object wrapper for zip files" +url="https://github.com/jaraco/zipp" +license=('MIT') +arch=('any') +depends=('python') +makedepends=('git' 'python-build' 'python-installer' 'python-setuptools-scm' 'python-wheel') +checkdepends=('python-pytest' 'python-pytest-enabler' 'python-pytest-mypy' 'python-jaraco.itertools' + 'python-more-itertools' 'python-big-o' 'python-pytest-ignore-flaky') +source=("git+https://github.com/jaraco/zipp.git#commit=$_commit") +sha512sums=('SKIP') + +build() { + cd zipp + python -m build -nw +} + +check() { + cd zipp + pytest +} + +package() { + cd zipp + python -m installer --destdir="$pkgdir" dist/*.whl + install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/ +} diff --git a/python-zipp/clean b/python-zipp/clean new file mode 100644 index 0000000..7f2cc14 --- /dev/null +++ b/python-zipp/clean @@ -0,0 +1,2 @@ +rm -rf {src,pkg,p*.gz,zipp} + diff --git a/python-zipp/deps b/python-zipp/deps new file mode 100644 index 0000000..b5f1fb2 --- /dev/null +++ b/python-zipp/deps @@ -0,0 +1,16 @@ +python +python-build +python-installer +python-setuptools-scm +python-wheel +python-jaraco.itertools +python-big-o +libnsl +git +python-typing_extensions +python-pytest +python-pytest-enabler +python-pytest-mypy +python-pytest-ignore-flaky + + diff --git a/python-zipp/time b/python-zipp/time new file mode 100644 index 0000000..3e97be8 --- /dev/null +++ b/python-zipp/time @@ -0,0 +1,6 @@ + + +real 0m24.349s +user 0m22.153s +sys 0m1.428s + diff --git a/python2-mutagen/PKGBUILD b/python2-mutagen/PKGBUILD deleted file mode 100644 index 5541e05..0000000 --- a/python2-mutagen/PKGBUILD +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -_name=mutagen -pkgname=python2-mutagen -pkgver=1.43.1 -pkgrel=01 -arch=('any') -pkgdesc="An audio metadata tag reader and writer (python2 library)" -url="https://github.com/quodlibet/mutagen" -depends=('python2-setuptools') -source=("https://github.com/quodlibet/${_name}/releases/download/release-$pkgver/${_name}-$pkgver.tar.gz"{,.sig}) - -prepare() { - mv -v "${_name}-${pkgver}" "${pkgname}-${pkgver}" - cd "${pkgname}-$pkgver" - for script in {mid3{cp,iconv,v2},moggsplit,mutagen-{inspect,pony}}; do - sed -e "s/${script}/${script}2/g" -i setup.py - mv -v "man/${script}"{,2}.1 - done -} - -build() { - cd "${pkgname}-${pkgver}" - python2 setup.py build -} - -package() { - cd "${pkgname}-${pkgver}" - python2 setup.py install --skip-build \ - --optimize=1 \ - --prefix=/usr \ - --root="${pkgdir}" - install -vDm 644 {NEWS,README.rst} \ - -t "${pkgdir}/usr/share/doc/${pkgname}" -} - -#---- license gpg-key sha256sums ---- - -license=('GPL2') - -validpgpkeys=('0EBF782C5D53F7E5FB02A66746BD761F7A49B0EC') # Christoph Reiter - -sha256sums=(d873baeb7815311d3420aab0a1d83f050f628228cbc2d6045a14a16460411bc9 # mutagen-1.43.1.tar.gz - 1deb4c09ab8e0264dcc5176f2001d732f70ec6d28266a20a9dc856c26bd6856d) # mutagen-1.43.1.tar.gz.sig diff --git a/python2-mutagen/PKGBUILD-aur b/python2-mutagen/PKGBUILD-aur deleted file mode 100644 index 598cc92..0000000 --- a/python2-mutagen/PKGBUILD-aur +++ /dev/null @@ -1,41 +0,0 @@ -# Maintainer: -# Contributor: Bastien Traverse -# Contributor: David Runge - -_name=mutagen -pkgname=python2-mutagen -pkgver=1.43.1 -pkgrel=1 -arch=('any') -pkgdesc="An audio metadata tag reader and writer (python2 library)" -url="https://github.com/quodlibet/mutagen" -license=('GPL2') -depends=('python2-setuptools') -source=("https://github.com/quodlibet/${_name}/releases/download/release-$pkgver/${_name}-$pkgver.tar.gz"{,.sig}) -sha256sums=('d873baeb7815311d3420aab0a1d83f050f628228cbc2d6045a14a16460411bc9' - 'SKIP') -validpgpkeys=('0EBF782C5D53F7E5FB02A66746BD761F7A49B0EC') # Christoph Reiter - -prepare() { - mv -v "${_name}-${pkgver}" "${pkgname}-${pkgver}" - cd "${pkgname}-$pkgver" - for script in {mid3{cp,iconv,v2},moggsplit,mutagen-{inspect,pony}}; do - sed -e "s/${script}/${script}2/g" -i setup.py - mv -v "man/${script}"{,2}.1 - done -} - -build() { - cd "${pkgname}-${pkgver}" - python2 setup.py build -} - -package() { - cd "${pkgname}-${pkgver}" - python2 setup.py install --skip-build \ - --optimize=1 \ - --prefix=/usr \ - --root="${pkgdir}" - install -vDm 644 {NEWS,README.rst} \ - -t "${pkgdir}/usr/share/doc/${pkgname}" -} diff --git a/python2-mutagen/clean b/python2-mutagen/clean deleted file mode 100644 index 7ac74f7..0000000 --- a/python2-mutagen/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,mut*.tar.gz*} diff --git a/python2-mutagen/deps b/python2-mutagen/deps deleted file mode 100644 index 9fada9f..0000000 --- a/python2-mutagen/deps +++ /dev/null @@ -1 +0,0 @@ -python2-setuptools diff --git a/python2-mutagen/key b/python2-mutagen/key deleted file mode 100644 index 653400e..0000000 --- a/python2-mutagen/key +++ /dev/null @@ -1 +0,0 @@ -gpg -v --recv-key 5A62D0CAB6264964 diff --git a/python2-mutagen/time b/python2-mutagen/time deleted file mode 100644 index fdb0e52..0000000 --- a/python2-mutagen/time +++ /dev/null @@ -1,4 +0,0 @@ - -real 0m3.360s -user 0m2.800s -sys 0m0.511s diff --git a/python2-pdfrw/PKGBUILD b/python2-pdfrw/PKGBUILD deleted file mode 100644 index ecaf687..0000000 --- a/python2-pdfrw/PKGBUILD +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -_pypiname=pdfrw -pkgname=python2-pdfrw -pkgver=0.4 -pkgrel=03 -pkgdesc='Convert restructured text to PDF via reportlab.' -arch=('any') -url="https://github.com/pmaupin/$_pypiname" -makedepends=('python-setuptools' 'python2-setuptools') -source=("$_pypiname-$pkgver.tar.gz::https://github.com/pmaupin/$_pypiname/archive/v$pkgver.tar.gz") - -prepare(){ - cp -r "$srcdir/$_pypiname-$pkgver" "$srcdir/$_pypiname-$pkgver-py2" -} - -package() { - depends=('python2') - cd "$srcdir/$_pypiname-$pkgver-py2" - python2 setup.py install --root="$pkgdir" -O1 - install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" -} - -#---- license gpg-key sha256sums ---- - -license=('MIT') - -sha256sums=(f4da059213a0fdf8f63aa3f711cfbc25a5100333514b396f71bb90cb7bd4365f) # pdfrw-0.4.tar.gz diff --git a/python2-pdfrw/PKGBUILD-aur b/python2-pdfrw/PKGBUILD-aur deleted file mode 100644 index 16ffc28..0000000 --- a/python2-pdfrw/PKGBUILD-aur +++ /dev/null @@ -1,26 +0,0 @@ -# Maintainer: Jiachen Yang -# AUR Maintainer: GI Jack - -_pypiname=pdfrw -pkgname=python2-pdfrw -pkgver=0.4 -pkgrel=3 -pkgdesc='Convert restructured text to PDF via reportlab.' -arch=('any') -url="https://github.com/pmaupin/$_pypiname" -license=('MIT') -makedepends=('python-setuptools' 'python2-setuptools') -source=("$_pypiname-$pkgver.tar.gz::https://github.com/pmaupin/$_pypiname/archive/v$pkgver.tar.gz") -md5sums=('8dc599a0c808a15f1499c0116ee3c92d') - -prepare(){ - cp -r "$srcdir/$_pypiname-$pkgver" "$srcdir/$_pypiname-$pkgver-py2" -} - -package() { - depends=('python2') - cd "$srcdir/$_pypiname-$pkgver-py2" - python2 setup.py install --root="$pkgdir" -O1 - install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" -} - diff --git a/python2-pdfrw/clean b/python2-pdfrw/clean deleted file mode 100644 index 3f1a111..0000000 --- a/python2-pdfrw/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,pdfrw*tar.gz} diff --git a/python2-pdfrw/deps b/python2-pdfrw/deps deleted file mode 100644 index a0cbae3..0000000 --- a/python2-pdfrw/deps +++ /dev/null @@ -1,2 +0,0 @@ -python-setuptools -python2-setuptools diff --git a/python2-pdfrw/time b/python2-pdfrw/time deleted file mode 100644 index 80d405d..0000000 --- a/python2-pdfrw/time +++ /dev/null @@ -1,4 +0,0 @@ -real 0m1.888s -user 0m1.597s -sys 0m0.367s - diff --git a/python2-pyexiftool/PKGBUILD b/python2-pyexiftool/PKGBUILD deleted file mode 100644 index 465986e..0000000 --- a/python2-pyexiftool/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# Maintainer: ArchStrike -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=python2-pyexiftool-git -pkgver=20141008.r29 -pkgrel=02 -pkgdesc="A Python library to communicate with an instance of Phil Harvey's excellent ExifTool command-line application." -arch=('any') -url='https://github.com/smarnach/pyexiftool' -depends=('perl-image-exiftool') -makedepends=('git' 'python2-setuptools') -provides=('python2-pyexiftool') -source=("${pkgname}::git+https://github.com/smarnach/pyexiftool.git") - -pkgver() { - cd "${pkgname}" - printf "%s.r%s" "$(git show -s --format=%ci master | sed 's/\ .*//g;s/-//g')" "$(git rev-list --count HEAD)" -} - -prepare(){ - grep -iRl 'python' "${pkgname}" | xargs sed -i 's|#!.*/usr/bin/python|#!/usr/bin/python2|;s|#!.*/usr/bin/env python$|#!/usr/bin/env python2|' -} - -package() { - cd "${pkgname}" - python2 setup.py install --root="$pkgdir" --optimize=1 - install -Dm644 COPYING.BSD "$pkgdir/usr/share/licenses/$pkgname/COPYING.BSD" - install -Dm644 COPYING.GPL "$pkgdir/usr/share/licenses/$pkgname/COPYING.GPL" -} - -#---- license gpg-key sha256sums ---- - -license=('BSD' 'GPL') - -sha256sums=(SKIP) diff --git a/python2-pyexiftool/PKGBUILD-archstrike b/python2-pyexiftool/PKGBUILD-archstrike deleted file mode 100644 index 1a6d266..0000000 --- a/python2-pyexiftool/PKGBUILD-archstrike +++ /dev/null @@ -1,32 +0,0 @@ -# Maintainer: ArchStrike - -buildarch=1 - -pkgname=python2-pyexiftool-git -pkgver=20141008.r29 -pkgrel=2 -pkgdesc="A Python library to communicate with an instance of Phil Harvey's excellent ExifTool command-line application." -arch=('any') -url='https://github.com/smarnach/pyexiftool' -license=('BSD' 'GPL') -depends=('perl-image-exiftool') -makedepends=('git' 'python2-setuptools') -provides=('python2-pyexiftool') -source=("${pkgname}::git+https://github.com/smarnach/pyexiftool.git") -sha512sums=('SKIP') - -pkgver() { - cd "${pkgname}" - printf "%s.r%s" "$(git show -s --format=%ci master | sed 's/\ .*//g;s/-//g')" "$(git rev-list --count HEAD)" -} - -prepare(){ - grep -iRl 'python' "${pkgname}" | xargs sed -i 's|#!.*/usr/bin/python|#!/usr/bin/python2|;s|#!.*/usr/bin/env python$|#!/usr/bin/env python2|' -} - -package() { - cd "${pkgname}" - python2 setup.py install --root="$pkgdir" --optimize=1 - install -Dm644 COPYING.BSD "$pkgdir/usr/share/licenses/$pkgname/COPYING.BSD" - install -Dm644 COPYING.GPL "$pkgdir/usr/share/licenses/$pkgname/COPYING.GPL" -} diff --git a/python2-pyexiftool/clean b/python2-pyexiftool/clean deleted file mode 100644 index 44d0553..0000000 --- a/python2-pyexiftool/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,python2-pyexiftool-git} diff --git a/python2-pyexiftool/deps b/python2-pyexiftool/deps deleted file mode 100644 index 3cbfefe..0000000 --- a/python2-pyexiftool/deps +++ /dev/null @@ -1,2 +0,0 @@ -git python2-setuptools -perl-image-exiftool diff --git a/python2-pyexiftool/time b/python2-pyexiftool/time deleted file mode 100644 index e0d8ead..0000000 --- a/python2-pyexiftool/time +++ /dev/null @@ -1,4 +0,0 @@ - -real 0m3.509s -user 0m1.372s -sys 0m0.281s diff --git a/python3-aur/PKGBUILD b/python3-aur/PKGBUILD deleted file mode 100644 index 7e8cea3..0000000 --- a/python3-aur/PKGBUILD +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=python3-aur -pkgver=2021.11.20.1 -pkgrel=04 -pkgdesc='AUR-related modules and helper utilities (aurploader, aurquery, aurtomatic).' -url="https://xyne.dev/projects/python3-aur" -depends=(pyalpm python-pyxdg python3 python3-xcgf python3-xcpf) -optdepends=('curl: Aurploader support' 'git: Clone AUR Git repositories.') -replaces=(aurploader) -conflicts=(aurploader) -provides=(aurploader) -source=(https://xyne.dev/projects/python3-aur/src/python3-aur-2021.11.20.1.tar.xz{,.sig}) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -#validpgpkeys=('EC3CBE7F607D11E663149E811D1F0DC78F173680') -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') # "Xyne. (Replaces EC3CBE7F607D11E663149E811D1F0DC78F173680.) " - -sha256sums=(57ddff68a3ef19c5ede4f71f8a80f97b33ba0d26a8c9f5f7c06f16fa3822722e # python3-aur-2021.11.20.1.tar.xz - 088f14e3b7a061639c1416f226ee8c74b78f47cfc79e8fc9ed11866fe2ecac2e) # python3-aur-2021.11.20.1.tar.xz.sig - -## f161ebafcb604f69c35ef5ac137782760d240916c6b780b14e2c7fa04a128b56 python3-aur-2021.11.20.1-04-x86_64.pkg.tar.lz diff --git a/python3-aur/PKGBUILD-aur b/python3-aur/PKGBUILD-aur deleted file mode 100644 index d8b4ea0..0000000 --- a/python3-aur/PKGBUILD-aur +++ /dev/null @@ -1,35 +0,0 @@ -#Maintainer: Xyne -pkgname=python3-aur -pkgver=2021.11.20.1 -pkgrel=4 -pkgdesc='AUR-related modules and helper utilities (aurploader, aurquery, aurtomatic).' -arch=(any) -license=(GPL) -url="https://xyne.dev/projects/python3-aur" -depends=(pyalpm python-pyxdg python3 python3-xcgf python3-xcpf) -optdepends=('curl: Aurploader support' 'git: Clone AUR Git repositories.') -replaces=(aurploader) -conflicts=(aurploader) -provides=(aurploader) -source=( - https://xyne.dev/projects/python3-aur/src/python3-aur-2021.11.20.1.tar.xz - https://xyne.dev/projects/python3-aur/src/python3-aur-2021.11.20.1.tar.xz.sig -) -sha512sums=( - 3224921db2fceb34d709d42ca4551419960749130a9a7b09584547257fb00c3eab1b30a335526670e0427f5ae06d641f80c6bad71def5869abf29116ed5bbc64 - cd1ed420aa8ba4948301007cc114f738c177c293731979c32a58c1fc5b131adbfc5c70482a2d98137c48a4654159f2e842061f300e97c0e06decfff2bcdcca55 -) -md5sums=( - 5d42d70c86aa9c717d92065d63c38d43 - e002ab0bf32ae781eb45b31cf3275834 -) -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - - -# vim: set ts=2 sw=2 et: diff --git a/python3-aur/clean b/python3-aur/clean deleted file mode 100644 index 0326671..0000000 --- a/python3-aur/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,python3*xz*} diff --git a/python3-aur/deps b/python3-aur/deps deleted file mode 100644 index 1b355ee..0000000 --- a/python3-aur/deps +++ /dev/null @@ -1,5 +0,0 @@ -pyalpm -python-pyxdg -python -python3-xcgf -python3-xcpf diff --git a/python3-aur/key b/python3-aur/key deleted file mode 100644 index a1edbee..0000000 --- a/python3-aur/key +++ /dev/null @@ -1,2 +0,0 @@ -#gpg -v --recv-key 1D1F0DC78F173680 -gpg -v --recv-key 12C6F735F7A9A519 diff --git a/python3-aur/time b/python3-aur/time deleted file mode 100644 index fda4d1c..0000000 --- a/python3-aur/time +++ /dev/null @@ -1 +0,0 @@ -3s diff --git a/python3-memoizedb/PKGBUILD b/python3-memoizedb/PKGBUILD deleted file mode 100644 index e578d49..0000000 --- a/python3-memoizedb/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=python3-memoizedb -pkgver=2021 -pkgrel=04 -pkgdesc='Generic data retrieval memoizer that uses an sqlite database to cache data.' -arch=(any) -url="https://xyne.dev/projects/python3-memoizedb" -depends=(python3) -source=( - https://xyne.dev/projects/python3-memoizedb/src/python3-memoizedb-2021.tar.xz - https://xyne.dev/projects/python3-memoizedb/src/python3-memoizedb-2021.tar.xz.sig -) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -#validpgpkeys=('EC3CBE7F607D11E663149E811D1F0DC78F173680') -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') # "Xyne. (Replaces EC3CBE7F607D11E663149E811D1F0DC78F173680.) " - -sha256sums=(4edc3b6c65812c2bea70ceb8e4a11b911519a376c33c7884177f8dcd77150744 # python3-memoizedb-2021.tar.xz - 4dfb9a3ba5b63bc73db68e2413800c98d6cbff4f536ba9672cb766973db22f11) # python3-memoizedb-2021.tar.xz.sig - -## 134037460a72107f764142b1e68a0196d5821280d7aaca36b385ae967a74df08 python3-memoizedb-2021-04-x86_64.pkg.tar.lz diff --git a/python3-memoizedb/PKGBUILD-aur b/python3-memoizedb/PKGBUILD-aur deleted file mode 100644 index bc00272..0000000 --- a/python3-memoizedb/PKGBUILD-aur +++ /dev/null @@ -1,31 +0,0 @@ -#Maintainer: Xyne -pkgname=python3-memoizedb -pkgver=2021 -pkgrel=4 -pkgdesc='Generic data retrieval memoizer that uses an sqlite database to cache data.' -arch=(any) -license=(GPL) -url="https://xyne.dev/projects/python3-memoizedb" -depends=(python3) -source=( - https://xyne.dev/projects/python3-memoizedb/src/python3-memoizedb-2021.tar.xz - https://xyne.dev/projects/python3-memoizedb/src/python3-memoizedb-2021.tar.xz.sig -) -sha512sums=( - 33667aa062742bcc42410048b8c397031103aac144e863ad074d60e8169611d849a589e331407c26c49d9de4ebd9281978ef2d8b0ee058b4df1db8458f1c6aaf - 1ec38f2f93ff40a3c507442a0f1984025108f17c04de695c621307f29198ff6f4dd6fea846b0a721fa19e0fe787f0cb0f551f658646fe2fc32fa3c2aa108555f -) -md5sums=( - 6c522e5b6aea2360a5e3cf4fe1dd05b6 - 23c23a0dfc1b3258815cd7431002fd2d -) -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - - -# vim: set ts=2 sw=2 et: diff --git a/python3-memoizedb/clean b/python3-memoizedb/clean deleted file mode 100644 index ed52448..0000000 --- a/python3-memoizedb/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,py*.tar.xz*} diff --git a/python3-memoizedb/deps b/python3-memoizedb/deps deleted file mode 100644 index fdc793e..0000000 --- a/python3-memoizedb/deps +++ /dev/null @@ -1 +0,0 @@ -python diff --git a/python3-memoizedb/key b/python3-memoizedb/key deleted file mode 100644 index a1edbee..0000000 --- a/python3-memoizedb/key +++ /dev/null @@ -1,2 +0,0 @@ -#gpg -v --recv-key 1D1F0DC78F173680 -gpg -v --recv-key 12C6F735F7A9A519 diff --git a/python3-memoizedb/time b/python3-memoizedb/time deleted file mode 100644 index d928da6..0000000 --- a/python3-memoizedb/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m1.595s -user 0m1.406s -sys 0m0.318s - diff --git a/python3-xcgf/PKGBUILD b/python3-xcgf/PKGBUILD deleted file mode 100644 index eac5389..0000000 --- a/python3-xcgf/PKGBUILD +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=python3-xcgf -pkgver=2021 -pkgrel=04 -pkgdesc='Xyne'"'"'s common generic functions, for internal use.' -arch=(any) -url="https://xyne.dev/projects/python3-xcgf" -depends=(python3) -source=( - https://xyne.dev/projects/python3-xcgf/src/python3-xcgf-2021.tar.xz - https://xyne.dev/projects/python3-xcgf/src/python3-xcgf-2021.tar.xz.sig -) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -#validpgpkeys=('EC3CBE7F607D11E663149E811D1F0DC78F173680') -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') # "Xyne. (Replaces EC3CBE7F607D11E663149E811D1F0DC78F173680.) " - -sha256sums=(d5890c8adbb57f835e7b6c0e705359cdec85fcc093152cc508ffedacbfd868e0 # python3-xcgf-2021.tar.xz - 1dfcefcb24a704e5311d97415fb09858ce0cfd180acd458efcf9e149e89c5543) # python3-xcgf-2021.tar.xz.sig - -## 27b8eb40674d738757949331d0567fca79027716f5fc14b2cf3cb914c74dd3c4 python3-xcgf-2021-04-x86_64.pkg.tar.lz diff --git a/python3-xcgf/PKGBUILD-aur b/python3-xcgf/PKGBUILD-aur deleted file mode 100644 index 14d47e3..0000000 --- a/python3-xcgf/PKGBUILD-aur +++ /dev/null @@ -1,30 +0,0 @@ -#Maintainer: Xyne -pkgname=python3-xcgf -pkgver=2021 -pkgrel=4 -pkgdesc='Xyne'"'"'s common generic functions, for internal use.' -arch=(any) -license=(GPL) -url="https://xyne.dev/projects/python3-xcgf" -depends=(python3) -source=( - https://xyne.dev/projects/python3-xcgf/src/python3-xcgf-2021.tar.xz - https://xyne.dev/projects/python3-xcgf/src/python3-xcgf-2021.tar.xz.sig -) -sha512sums=( - a42a45cdfcb5b65a866be13c0bad06b2f6b251d5bfe9353f045e8eed87850129a949708aec6ae470117a22dbd290552f4d046ecbfa960f8f9f56fbbad38bc081 - 6a9176b36fc765b79fbfb760cab377ea10b4aa6d2e0d7cd1abda45e732abfb3df107d3f984b3643003bd944bac43ae9a6c14346f4a7eae94cf86409beb0144c9 -) -md5sums=( - 61ff53d3820358dfbadb3e146024636a - d610729af1a2b70a1390579c6a1c324f -) -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - -# vim: set ts=2 sw=2 et: diff --git a/python3-xcgf/clean b/python3-xcgf/clean deleted file mode 100644 index 0326671..0000000 --- a/python3-xcgf/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,python3*xz*} diff --git a/python3-xcgf/deps b/python3-xcgf/deps deleted file mode 100644 index fdc793e..0000000 --- a/python3-xcgf/deps +++ /dev/null @@ -1 +0,0 @@ -python diff --git a/python3-xcgf/key b/python3-xcgf/key deleted file mode 100644 index a1edbee..0000000 --- a/python3-xcgf/key +++ /dev/null @@ -1,2 +0,0 @@ -#gpg -v --recv-key 1D1F0DC78F173680 -gpg -v --recv-key 12C6F735F7A9A519 diff --git a/python3-xcgf/time b/python3-xcgf/time deleted file mode 100644 index 4e2df94..0000000 --- a/python3-xcgf/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m1.577s -user 0m1.334s -sys 0m0.377s - diff --git a/python3-xcpf/PKGBUILD b/python3-xcpf/PKGBUILD deleted file mode 100644 index adf5380..0000000 --- a/python3-xcpf/PKGBUILD +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=python3-xcpf -pkgver=2021.12 -pkgrel=03 -pkgdesc='Xyne'"'"'s common Pacman functions, for internal use.' -url="https://xyne.dev/projects/$pkgname" -depends=(pyalpm python-pyxdg python3 python3-memoizedb python3-xcgf) -optdepends=('rsync: Retrieve ABS files via rsync.') -source=( $url/src/$pkgname-$pkgver.tar.xz{,.sig} ) - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - -#---- arch license gpg-key & sha256sums ---- - -arch=(x86_64) - -license=(GPL) - -#validpgpkeys=('EC3CBE7F607D11E663149E811D1F0DC78F173680') -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') # "Xyne. (Replaces EC3CBE7F607D11E663149E811D1F0DC78F173680.) " - -sha256sums=(bb87539d8af8bf970edccf828fc080cf2461abb5406250924e4f2c160ad40c4d # python3-xcpf-2021.12.tar.xz - 44c4c8b601caccefe0806a07d07ffb85f55602c30bf4d5a60c75059290763149) # python3-xcpf-2021.12.tar.xz.sig - -## 12fc36151931046e7384dcdac85cd8a0700342d81e364a41d0d39d15b37ab426 python3-xcpf-2021.12-03-x86_64.pkg.tar.lz diff --git a/python3-xcpf/PKGBUILD-aur b/python3-xcpf/PKGBUILD-aur deleted file mode 100644 index 2029cca..0000000 --- a/python3-xcpf/PKGBUILD-aur +++ /dev/null @@ -1,31 +0,0 @@ -#Maintainer: Xyne -pkgname=python3-xcpf -pkgver=2021.12 -pkgrel=3 -pkgdesc='Xyne'"'"'s common Pacman functions, for internal use.' -arch=(any) -license=(GPL) -url="https://xyne.dev/projects/python3-xcpf" -depends=(pyalpm python-pyxdg python3 python3-memoizedb python3-xcgf) -optdepends=('rsync: Retrieve ABS files via rsync.') -source=( - https://xyne.dev/projects/python3-xcpf/src/python3-xcpf-2021.12.tar.xz - https://xyne.dev/projects/python3-xcpf/src/python3-xcpf-2021.12.tar.xz.sig -) -sha512sums=( - adbc0d3174a7ed9371266a9b6a5f979ae3b1fff48954077418b89f7b4da11c9b30179715ce6b7e3aa070db2779cc96620d07476ace53e9858bf95aa8e9fd61e9 - 0e8f0a2b64c6ad6326ecadb8e4c30420fd8d22ffe149ed0548cb6ceec8619acaf9f15b5cb485fc2e96e436eee29b45775b8187e9c7828157ffae967b9e9040bf -) -md5sums=( - 9aa0bec60b5706d9e3c2bd45dd69091f - 4fe01a5258f5bc39058f8803a7a918c3 -) -validpgpkeys=('D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519') - -package () -{ - cd "$srcdir/$pkgname-$pkgver" - python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 -} - -# vim: set ts=2 sw=2 et: diff --git a/python3-xcpf/clean b/python3-xcpf/clean deleted file mode 100644 index 0326671..0000000 --- a/python3-xcpf/clean +++ /dev/null @@ -1 +0,0 @@ -rm -rf {src,pkg,python3*xz*} diff --git a/python3-xcpf/deps b/python3-xcpf/deps deleted file mode 100644 index 3063832..0000000 --- a/python3-xcpf/deps +++ /dev/null @@ -1,5 +0,0 @@ -pyalpm -python-pyxdg -python -python3-memoizedb -python3-xcgf diff --git a/python3-xcpf/key b/python3-xcpf/key deleted file mode 100644 index a1edbee..0000000 --- a/python3-xcpf/key +++ /dev/null @@ -1,2 +0,0 @@ -#gpg -v --recv-key 1D1F0DC78F173680 -gpg -v --recv-key 12C6F735F7A9A519 diff --git a/python3-xcpf/time b/python3-xcpf/time deleted file mode 100644 index aa7baac..0000000 --- a/python3-xcpf/time +++ /dev/null @@ -1,6 +0,0 @@ - - -real 0m1.791s -user 0m1.482s -sys 0m0.457s - diff --git a/recutils/PKGBUILD b/recutils/PKGBUILD deleted file mode 100644 index 1753888..0000000 --- a/recutils/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/bash -# JOBoRun : Jwm OpenBox Obarun RUNit -# Maintainer : Joe Bo Run -# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" -# Website : https://pozol.eu -#-----------------------------------------| DESCRIPTION |--------------------------------------- - -pkgname=recutils -pkgver=1.9 -pkgrel=01 -pkgdesc="Set of tools and libraries to access plain text databases called recfiles." -arch=(i686 x86_64) -url="https://www.gnu.org/software/recutils/" -depends=('libgcrypt') -checkdepends=('check') -# Jose E. Marchesi -source=("https://ftp.gnu.org/gnu/recutils/$pkgname-$pkgver.tar.gz" - "https://ftp.gnu.org/gnu/recutils/$pkgname-$pkgver.tar.gz.sig") - -build() { - cd "$pkgname-$pkgver" - ./configure --prefix=/usr - make -} - -check() { - cd "$pkgname-$pkgver" - make -k check -} - -package() { - cd "$pkgname-$pkgver" - make DESTDIR="$pkgdir/" install -} - -#---- license gpg-key sha256sums ---- - -license=('GPL') - -validpgpkeys=("BDFA5717FC1DD35C2C3832A23EF90523B304AF08") - -sha256sums=(6301592b0020c14b456757ef5d434d49f6027b8e5f3a499d13362f205c486e0e # recutils-1.9.tar.gz - acc417c04795fff819a516520dc0d976eb15f3789d041abcf77a1fd52fb24891) # recutils-1.9.tar.gz.sig - diff --git a/recutils/PKGBUILD-aur b/recutils/PKGBUILD-aur deleted file mode 100644 index e592dde..0000000 --- a/recutils/PKGBUILD-aur +++ /dev/null @@ -1,36 +0,0 @@ -# Maintainer: Stefan Haller -pkgname=recutils -pkgver=1.9 -pkgrel=1 -pkgdesc="Set of tools and libraries to access plain text databases called recfiles." -arch=(i686 x86_64) -url="https://www.gnu.org/software/recutils/" -license=('GPL') -depends=('libgcrypt') -checkdepends=('check') -# Jose E. Marchesi -validpgpkeys=("BDFA5717FC1DD35C2C3832A23EF90523B304AF08") -source=( - "https://ftp.gnu.org/gnu/recutils/$pkgname-$pkgver.tar.gz" - "https://ftp.gnu.org/gnu/recutils/$pkgname-$pkgver.tar.gz.sig" -) -sha256sums=( - '6301592b0020c14b456757ef5d434d49f6027b8e5f3a499d13362f205c486e0e' - 'SKIP' -) - -build() { - cd "$pkgname-$pkgver" - ./configure --prefix=/usr - make -} - -check() { - cd "$pkgname-$pkgver" - make -k check -} - -package() { - cd "$pkgname-$pkgver" - make DESTDIR="$pkgdir/" install -} diff --git a/recutils/deps b/recutils/deps deleted file mode 100644 index f03fc12..0000000 --- a/recutils/deps +++ /dev/null @@ -1 +0,0 @@ -check diff --git a/recutils/key b/recutils/key deleted file mode 100644 index 9f82259..0000000 --- a/recutils/key +++ /dev/null @@ -1 +0,0 @@ -gpg --recv-keys 3EF90523B304AF08 diff --git a/recutils/time b/recutils/time deleted file mode 100644 index 0101cfa..0000000 --- a/recutils/time +++ /dev/null @@ -1,5 +0,0 @@ - -real 0m45.397s -user 1m25.798s -sys 0m9.931s - diff --git a/redis/PKGBUILD b/redis/PKGBUILD new file mode 100644 index 0000000..3dd78f1 --- /dev/null +++ b/redis/PKGBUILD @@ -0,0 +1,60 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=redis +pkgver=7.2.0 +pkgrel=01 +pkgdesc='An in-memory database that persists on disk w/o systemd' +url='https://redis.io/' +depends=('jemalloc' 'grep' 'shadow') +# arch note: # pkg-config fails to detect systemd libraries if systemd is not installed +# joborun: # wow, that's good to know, someone else is trying building it without systemd :) +makedepends=('openssl') +backup=('etc/redis/redis.conf' + 'etc/redis/sentinel.conf') +install=redis.install +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/redis/redis/archive/${pkgver}.tar.gz" + redis.sysusers + redis.tmpfiles + redis.conf-sane-defaults.patch + redis-5.0-use-system-jemalloc.patch) + +prepare() { + cd $pkgname-$pkgver + patch -Np1 < ../redis.conf-sane-defaults.patch + patch -Np1 < ../redis-5.0-use-system-jemalloc.patch +} + +build() { + make BUILD_TLS=yes \ + USE_SYSTEMD=no \ + -C $pkgname-$pkgver +} + +package() { + cd $pkgname-$pkgver + make PREFIX="$pkgdir"/usr install + + install -Dm644 COPYING "$pkgdir"/usr/share/licenses/redis/LICENSE + install -Dm644 -t "$pkgdir"/etc/redis redis.conf sentinel.conf + install -Dm644 "$srcdir"/redis.sysusers "$pkgdir"/usr/lib/sysusers.d/redis.conf + install -Dm644 "$srcdir"/redis.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/redis.conf +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('BSD') + +sha256sums=(b594b6eae1a69fd1c081ebfcc9bd9bc9843ba120a2b3960c45f3eeee1f34e0e6 # redis-7.2.0.tar.gz + 78f6ab83408956a9afaf28689128f382545c901f172cd5b670724c73f6896d5d # redis.sysusers + cea6449811610ceff50913a611844b18c1bddebeb89a4de575c5df7cba66cea7 # redis.tmpfiles + 24d8f61325dd7c400d7cdff43d697f4b5b5f0466c90ba5a7e8cb9e9d1f39953a # redis.conf-sane-defaults.patch + 54f45fa129dcb64924ccbad7116417dcb8791e665a097a0969fc8e1b4d3b2b33) # redis-5.0-use-system-jemalloc.patch + +## 58f5654525ad49e268e81dfd87957eeef2f92cef643e71080b57000c38a5b695 redis-7.2.0-01-x86_64.pkg.tar.lz diff --git a/redis/PKGBUILD-arch b/redis/PKGBUILD-arch new file mode 100644 index 0000000..ee38a2c --- /dev/null +++ b/redis/PKGBUILD-arch @@ -0,0 +1,57 @@ +# Maintainer: Andrew Crerar +# Maintainer: Frederik Schwan +# Contributor: Sergej Pupykin +# Contributor: Bartłomiej Piotrowski +# Contributor: Jan-Erik Rediger +# Contributor: nofxx .com> + +pkgname=redis +pkgver=7.2.0 +pkgrel=1 +pkgdesc='An in-memory database that persists on disk' +arch=('x86_64') +url='https://redis.io/' +license=('BSD') +depends=('jemalloc' 'grep' 'shadow' 'systemd-libs') +# pkg-config fails to detect systemd libraries if systemd is not installed +makedepends=('systemd' 'openssl') +backup=('etc/redis/redis.conf' + 'etc/redis/sentinel.conf') +install=redis.install +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/redis/redis/archive/${pkgver}.tar.gz" + redis.service + redis-sentinel.service + redis.sysusers + redis.tmpfiles + redis.conf-sane-defaults.patch + redis-5.0-use-system-jemalloc.patch) +sha512sums=('3ec6f2a89027d0762534d0a139344367148c3901c76c93005eb5d9dc15442021ab47d5185a49a67ebed3c24ece75b65360cbf7577461a8b5516e449ed56c65cd' + '8abf27f173a4532295dafd91b8e6e226e4376f1b2543c911e4fa60466d50523ada4dcfe520a738fd756c5725f4319153a0c0b26f6cdba234775114c72e4e7865' + '2314c26920f5f0989fb98622f594b621a0b5035525146263da3fdfe640257118e03fc1903c15a62bcd4fbf260e0dcbf9249088292323739a607a11c9630795bf' + '2227dfb41bf5112f91716f011862ba5fade220aea3b6a8134a5a05ee3af6d1cca05b08d793a486be97df98780bf43ac5dc4e5e9989ae0c5cd4e1eedb6cee5d71' + '149e56c5da953e61d2f3864949c38d3f36d2ab1af6c74571ae36fa9ec991dee93dcac81e3caff69ac581a5218405f3e896b5dc58b9474f997bff48f5af06ee68' + 'f45b5d20769159faeeb705e1bb9e4fdc3d74c0779b476cada829bfb49014c6ba6cd78d1d2751bf39acb6db4528281e9cab3aca684cadf687eb5fad10c7453154' + '0acb08a6e0eaba239db7461bcfeddfbe0c1aaa517dc33c3918c9e991a1d5067cfe135b7f75085caade8c3ababd51ec9cefcc4120f57818bea1f7029a548a7732') + +prepare() { + cd $pkgname-$pkgver + patch -Np1 < ../redis.conf-sane-defaults.patch + patch -Np1 < ../redis-5.0-use-system-jemalloc.patch +} + +build() { + make BUILD_TLS=yes \ + USE_SYSTEMD=yes \ + -C $pkgname-$pkgver +} + +package() { + cd $pkgname-$pkgver + make PREFIX="$pkgdir"/usr install + + install -Dm644 COPYING "$pkgdir"/usr/share/licenses/redis/LICENSE + install -Dm644 -t "$pkgdir"/etc/redis redis.conf sentinel.conf + install -Dm644 -t "$pkgdir"/usr/lib/systemd/system/ ../redis.service ../redis-sentinel.service + install -Dm644 "$srcdir"/redis.sysusers "$pkgdir"/usr/lib/sysusers.d/redis.conf + install -Dm644 "$srcdir"/redis.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/redis.conf +} diff --git a/redis/clean b/redis/clean new file mode 100644 index 0000000..fcaaeaa --- /dev/null +++ b/redis/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,redis*.tar.gz*} diff --git a/redis/deps b/redis/deps new file mode 100644 index 0000000..659f7fd --- /dev/null +++ b/redis/deps @@ -0,0 +1,4 @@ +jemalloc +at-spi2-core + + diff --git a/redis/redis-5.0-use-system-jemalloc.patch b/redis/redis-5.0-use-system-jemalloc.patch new file mode 100644 index 0000000..7597a7e --- /dev/null +++ b/redis/redis-5.0-use-system-jemalloc.patch @@ -0,0 +1,15 @@ +diff --git a/src/Makefile b/src/Makefile +index 3bc9f11c0..a4b23d986 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -229,8 +229,8 @@ endif + + ifeq ($(MALLOC),jemalloc) + DEPENDENCY_TARGETS+= jemalloc +- FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include +- FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS) ++ FINAL_CFLAGS+= -DUSE_JEMALLOC -DJEMALLOC_NO_DEMANGLE -I/usr/include/jemalloc ++ FINAL_LIBS := -ljemalloc $(FINAL_LIBS) + endif + + ifeq ($(BUILD_TLS),yes) diff --git a/redis/redis-sentinel.service b/redis/redis-sentinel.service new file mode 100644 index 0000000..2b9c7bc --- /dev/null +++ b/redis/redis-sentinel.service @@ -0,0 +1,24 @@ +[Unit] +Description=High availability daemon for Redis +After=network.target + +[Service] +Type=notify +User=redis +Group=redis +ExecStart=/usr/bin/redis-sentinel /etc/redis/sentinel.conf --supervised systemd +TimeoutStartSec=60 +TimeoutStopSec=60 +CapabilityBoundingSet= +PrivateTmp=true +PrivateDevices=true +ProtectSystem=full +ProtectHome=true +ReadWritePaths=/etc/redis/ +NoNewPrivileges=true +RuntimeDirectory=redis +RuntimeDirectoryMode=755 +LimitNOFILE=10032 + +[Install] +WantedBy=multi-user.target diff --git a/redis/redis.conf-sane-defaults.patch b/redis/redis.conf-sane-defaults.patch new file mode 100644 index 0000000..5f76098 --- /dev/null +++ b/redis/redis.conf-sane-defaults.patch @@ -0,0 +1,13 @@ +diff --git a/redis.conf b/redis.conf +index 465d56fc0..9c1bd1ed1 100644 +--- a/redis.conf ++++ b/redis.conf +@@ -441,7 +441,7 @@ rdb-del-sync-files no + # The Append Only File will also be created inside this directory. + # + # Note that you must specify a directory here, not a file name. +-dir ./ ++dir /var/lib/redis/ + + ################################# REPLICATION ################################# + diff --git a/redis/redis.install b/redis/redis.install new file mode 100644 index 0000000..4d286d6 --- /dev/null +++ b/redis/redis.install @@ -0,0 +1,7 @@ +post_upgrade() { + if (( $(vercmp $2 6.2.1-2) < 0 )); then + echo "" + echo "Note: The redis config has been moved from /etc/redis.conf to /etc/redis/redis.conf" + echo "" + fi +} diff --git a/redis/redis.service b/redis/redis.service new file mode 100644 index 0000000..06fcdae --- /dev/null +++ b/redis/redis.service @@ -0,0 +1,23 @@ +[Unit] +Description=Advanced key-value store +After=network.target + +[Service] +Type=notify +User=redis +Group=redis +ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd +TimeoutStartSec=60 +TimeoutStopSec=60 +CapabilityBoundingSet= +PrivateTmp=true +PrivateDevices=true +ProtectSystem=full +ProtectHome=true +NoNewPrivileges=true +RuntimeDirectory=redis +RuntimeDirectoryMode=755 +LimitNOFILE=10032 + +[Install] +WantedBy=multi-user.target diff --git a/redis/redis.sysusers b/redis/redis.sysusers new file mode 100644 index 0000000..2dee7d5 --- /dev/null +++ b/redis/redis.sysusers @@ -0,0 +1 @@ +u redis - "Redis in-memory data structure store" /var/lib/redis diff --git a/redis/redis.tmpfiles b/redis/redis.tmpfiles new file mode 100644 index 0000000..7d979f2 --- /dev/null +++ b/redis/redis.tmpfiles @@ -0,0 +1,3 @@ +d /var/lib/redis 0700 redis redis +d /etc/redis 0755 root redis +f /etc/redis/sentinel.conf 0664 root redis diff --git a/redis/sums b/redis/sums new file mode 100644 index 0000000..0519c83 --- /dev/null +++ b/redis/sums @@ -0,0 +1,4 @@ +redis.sysusers +redis.tmpfiles +redis.conf-sane-defaults.patch +redis-5.0-use-system-jemalloc.patch diff --git a/redis/time b/redis/time new file mode 100644 index 0000000..78742ad --- /dev/null +++ b/redis/time @@ -0,0 +1,6 @@ + + +real 2m21.159s +user 3m7.613s +sys 0m12.441s + diff --git a/samba/PKGBUILD-arch.new b/samba/PKGBUILD-arch.new deleted file mode 100644 index 9eb2e29..0000000 --- a/samba/PKGBUILD-arch.new +++ /dev/null @@ -1,209 +0,0 @@ -# Maintainer: Tobias Powalowski -# Contributor: judd -# Contributor: Michael Hansen -# Contributor: Marco A Rojas -# Contributor: Netanel Shine -# Contributor: ngoonee -# Contributor: Adam Russell -# Contributor: Dhananjay Sathe - -pkgbase=samba -pkgname=('libwbclient' 'smbclient' 'samba') -pkgver=4.18.0 -pkgrel=2 -arch=(x86_64) -url="https://www.samba.org" -license=('GPL3') -makedepends=('python' 'python-markdown' 'python-dnspython' 'docbook-xsl' 'pkg-config' 'libbsd' 'popt' 'libcups' - 'readline' 'tevent' 'acl' 'libldap' 'libcap' 'ldb' 'krb5' 'pam' - 'systemd' 'gnutls' 'talloc' 'tdb' 'dbus' - 'perl-parse-yapp' 'libnsl' 'libtirpc' 'rpcsvc-proto' 'jansson' - 'liburing' 'perl-json' 'glusterfs') -optdepends=( - 'python-dnspython: samba_dnsupdate and samba_upgradedns in AD setup' - 'python-markdown: for samba-tool domain schemeupgrade' - 'glusterfs: for vfs_glusterfs support' -) -source=(https://us1.samba.org/samba/ftp/stable/${pkgbase}-${pkgver}.tar{.gz,.asc} - samba.logrotate - samba.pam - samba.conf) -validpgpkeys=('81F5E2832BD2545A1897B713AA99442FB680B620') #Samba Distribution Verification Key -sha512sums=('bc0eb8bc62fd2c4aa94b452a79e0a31fb3ad52bd46535b5f4c5eff4de8781419c3eb066a8394e704e7d4097c9651932a8de76d5b37cc05547d9a3ed48bf157ae' - 'SKIP' - '2ba0691ded467e4d6e40821f6de58c00f8962209efe2e60284c0c87756ab471c22c3d63b77d506e48c90ed0d852a2a24e41be1d499cf74a73cb99da0b503c858' - '1e6183ab0eb812b3ef687ac2c26ce78f7cb30540f606d20023669ac00ba04075487fb72e4dc89cc05dab0269ff6aca98fc1167cc75669c225b88b592482fbf67' - 'e46ee848baabb261e7468ecee43aba4d001a24f86f5322ae522abdb75030fd0ebd9063b9df0be3576c4d1654d81331f5e389aee16ec2fa138259ae4728e94efc') -### UNINSTALL dmapi package before building!!! - -# Use samba-pkg as a staging directory for the split packages -# (This is so RPATHS and symlinks are generated correctly via -# make install, but the otherwise unsplit pieces can be split) -build() { - _pkgsrc="${srcdir}"/samba-pkg - rm -rf ${_pkgsrc} - _samba4_idmap_modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2 - _samba4_pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4 - _samba4_auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4 - cd samba-${pkgver} - ./configure --enable-fhs \ - --prefix=/usr \ - --sysconfdir=/etc \ - --sbindir=/usr/bin \ - --libdir=/usr/lib \ - --libexecdir=/usr/lib/samba \ - --localstatedir=/var \ - --with-configdir=/etc/samba \ - --with-lockdir=/var/cache/samba \ - --with-sockets-dir=/run/samba \ - --with-piddir=/run \ - --with-ads \ - --with-ldap \ - --with-winbind \ - --with-acl-support \ - --with-systemd \ - --systemd-install-services \ - --with-pam \ - --with-pammodulesdir=/usr/lib/security \ - --bundled-libraries=!tdb,!talloc,!pytalloc-util,!tevent,!popt,!ldb,!pyldb-util \ - --with-shared-modules=${_samba4_idmap_modules},${_samba4_pdb_modules},${_samba4_auth_modules},vfs_io_uring \ - --disable-rpath-install \ - --with-profiling-data - - # Add this to the options once it's working... - #--with-system-mitkrb5 /opt/heimdal - make - make DESTDIR="${_pkgsrc}/" install - - # This gets skipped somehow - if [ ! -e "${_pkgsrc}"/usr/bin/smbtar ]; then - install -m755 "${srcdir}"/samba-${pkgver}/source3/script/smbtar "${_pkgsrc}"/usr/bin/ - fi -} - -package_libwbclient() { -pkgdesc="winbind client library" -depends=('libbsd') - - _pkgsrc="${srcdir}"/samba-pkg - install -d -m755 "${pkgdir}"/usr/lib - for lib in "${_pkgsrc}"/usr/lib/libwbclient.so*; do - mv ${lib} "${pkgdir}"/usr/lib/ - done - install -d -m755 "${pkgdir}"/usr/lib/pkgconfig - mv "${_pkgsrc}"/usr/lib/pkgconfig/wbclient.pc "${pkgdir}"/usr/lib/pkgconfig/ - install -d -m755 "${pkgdir}"/usr/include/samba-4.0 - mv "${_pkgsrc}"/usr/include/samba-4.0/wbclient.h "${pkgdir}"/usr/include/samba-4.0/ -} - -package_smbclient() { -pkgdesc="Tools to access a server's filespace and printers via SMB" -depends=('popt' 'cifs-utils' 'tdb' 'ldb' - 'tevent' 'python' 'talloc' 'readline' 'gnutls' - 'libbsd' 'libldap' 'libcups' 'libarchive' 'libnsl' 'jansson' - 'libldb.so' 'libtdb.so' 'libtevent.so' 'libreadline.so' 'icu' - 'libwbclient') - - _smbclient_bins=('smbclient' 'rpcclient' 'smbspool' - 'smbtree' 'smbcacls' 'smbcquotas' 'smbget' 'net' - 'nmblookup' 'smbtar') - _pkgsrc="${srcdir}"/samba-pkg - install -d -m755 "${pkgdir}"/usr/bin - for bin in ${_smbclient_bins[@]}; do - mv "${_pkgsrc}"/usr/bin/${bin} "${pkgdir}"/usr/bin/ - done - - # smbclient binaries link to the majority of the samba - # libs, so this is a shortcut instead of resolving the - # whole dependency tree by hand - install -d -m755 "${pkgdir}"/usr/lib - for lib in "${_pkgsrc}"/usr/lib/lib*.so*; do - mv ${lib} "${pkgdir}"/usr/lib/ - done - - install -d -m755 "${pkgdir}"/usr/lib/samba - for lib in "${_pkgsrc}"/usr/lib/samba/lib*.so*; do - mv ${lib} "${pkgdir}"/usr/lib/samba/ - done - - install -d -m755 "${pkgdir}"/usr/lib/pkgconfig - mv "${_pkgsrc}"/usr/lib/pkgconfig/smbclient.pc "${pkgdir}"/usr/lib/pkgconfig/ - mv "${_pkgsrc}"/usr/lib/pkgconfig/netapi.pc "${pkgdir}"/usr/lib/pkgconfig/ - - install -d -m755 "${pkgdir}"/usr/share/man/man1 - install -d -m755 "${pkgdir}"/usr/share/man/man7 - install -d -m755 "${pkgdir}"/usr/share/man/man8 - for bin in ${_smbclient_bins[@]}; do - if [ -e "${_pkgsrc}"/usr/share/man/man1/${bin}.1 ]; then - mv "${_pkgsrc}"/usr/share/man/man1/${bin}.1 "${pkgdir}"/usr/share/man/man1/ - fi - if [ -e "${_pkgsrc}"/usr/share/man/man8/${bin}.8 ]; then - mv "${_pkgsrc}"/usr/share/man/man8/${bin}.8 "${pkgdir}"/usr/share/man/man8/ - fi - done - mv "${_pkgsrc}"/usr/share/man/man7/libsmbclient.7 "${pkgdir}"/usr/share/man/man7/ - - install -d -m755 "${pkgdir}"/usr/include/samba-4.0 - mv "${_pkgsrc}"/usr/include/samba-4.0/libsmbclient.h "${pkgdir}"/usr/include/samba-4.0/ - mv "${_pkgsrc}"/usr/include/samba-4.0/netapi.h "${pkgdir}"/usr/include/samba-4.0/ - - mkdir -p "${pkgdir}"/usr/lib/cups/backend - ln -sf /usr/bin/smbspool "${pkgdir}"/usr/lib/cups/backend/smb -} - -package_samba() { -pkgdesc="SMB Fileserver and AD Domain server" -depends=('popt' 'libcups' 'libcap>=2.16' 'gnutls>=2.4.1' - 'talloc' 'ldb' 'libbsd' 'python' 'tdb' "smbclient>=$pkgver" 'gpgme' - 'libldb.so' 'libtdb.so' 'libtevent.so' 'liburing' 'libwbclient' ) -optdepends=('python-dnspython: netads_dns.py, dnsresolver.py and traffic_packets.py ' - 'python-markdown: ms_schema_markdown.py and ms_forest_updates_markdown.py' - "python-cryptography: lockout_tests.py gp_cert_auto_enroll_ext.py \ - gpo.py and kcrypto.py") -backup=(etc/logrotate.d/samba - etc/pam.d/samba - etc/conf.d/samba) -install=samba.install - - # Everything that libwbclient and smbclient didn't install goes - # into the samba package... - mv "${_pkgsrc}"/* "${pkgdir}" - rmdir "${_pkgsrc}" - - # Make admin scripts look in the right place for the samba python module - for script in bin/samba_dnsupdate bin/samba_kcc bin/samba_spnupdate \ - bin/samba_upgradedns bin/samba-tool - do - sed -i "/^sys\.path\.insert/ a\ -sys.path.insert(0, '/usr/lib/python${_pyver}/site-packages')" \ - "${pkgdir}"/usr/${script} - done - - # packaging/wscript_build to use /etc/conf.d - sed -i -e '/^EnvironmentFile/ s/sysconfig/conf.d/' "${pkgdir}"/usr/lib/systemd/system/*.service - install -d -m755 "${pkgdir}"/etc/conf.d - install -m644 "${srcdir}"/samba-${pkgver}/packaging/systemd/samba.sysconfig "${pkgdir}"/etc/conf.d/samba - - # create ephemeral dirs via tmpfiles rather than shipping them in package - install -D -m644 "${srcdir}"/samba.conf "${pkgdir}"/usr/lib/tmpfiles.d/samba.conf - # create config dir - install -d -m755 "${pkgdir}"/etc/samba - - mkdir -p "${pkgdir}"/etc/samba/private - chmod 700 "${pkgdir}"/etc/samba/private - - install -D -m644 "${srcdir}"/samba.logrotate "${pkgdir}"/etc/logrotate.d/samba - install -D -m644 "${srcdir}"/samba.pam "${pkgdir}"/etc/pam.d/samba - - # spool directory - install -d -m1777 "${pkgdir}"/var/spool/samba - - rm -rf "${pkgdir}"/run - rm -rf "${pkgdir}"/var/run - rm -rf "${pkgdir}"/etc/sysconfig - - # copy ldap example - install -D -m644 "${srcdir}"/samba-${pkgver}/examples/LDAP/samba.schema "${pkgdir}"/usr/share/doc/samba/examples/LDAP/samba.schema -} - -# vim: ts=2 sw=2 et: diff --git a/samba/samba-4.18.0.tar.asc b/samba/samba-4.18.0.tar.asc deleted file mode 100644 index 4017e05..0000000 --- a/samba/samba-4.18.0.tar.asc +++ /dev/null @@ -1,4 +0,0 @@ -

503 Service Unavailable

-No server is available to handle this request. - - diff --git a/sdl/0001-SDL-1.2.15-no-default-backing-store.patch b/sdl/0001-SDL-1.2.15-no-default-backing-store.patch new file mode 100644 index 0000000..1288d3c --- /dev/null +++ b/sdl/0001-SDL-1.2.15-no-default-backing-store.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 31 Aug 2021 22:40:44 +0000 +Subject: [PATCH] SDL-1.2.15-no-default-backing-store + +Do not harness backing store by default + +xorg-server 1.15 enables backing store if composite extension is enabled +(default settings). Harnessing backing store through compositor leads to +tearing effect. + +This patch reverts default harnessing backing store to conditional use if +SDL_VIDEO_X11_BACKINGSTORE environment variable exists. + + + +--- + src/video/x11/SDL_x11video.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c +index bbf0d5d0ffc9..c365e7a2ab72 100644 +--- a/src/video/x11/SDL_x11video.c ++++ b/src/video/x11/SDL_x11video.c +@@ -1093,7 +1093,7 @@ static int X11_CreateWindow(_THIS, SDL_Surface *screen, + } + } + +-#if 0 /* This is an experiment - are the graphics faster now? - nope. */ ++#if 1 /* This is an experiment - are the graphics faster now? - nope. */ + if ( SDL_getenv("SDL_VIDEO_X11_BACKINGSTORE") ) + #endif + /* Cache the window in the server, when possible */ diff --git a/sdl/0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch b/sdl/0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch new file mode 100644 index 0000000..948cd7a --- /dev/null +++ b/sdl/0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 1 Jan 2013 21:25:15 +0100 +Subject: [PATCH] x11: Bypass SetGammaRamp when changing gamma + +Recent Xorg has broken dynamic colors setting, so calling SDL_SetGamme() +does not have any effect here. Recent means xorg-server >= 1.7, since 2010. +See . +--- + src/video/SDL_gamma.c | 15 ++------------- + 1 file changed, 2 insertions(+), 13 deletions(-) + +diff --git a/src/video/SDL_gamma.c b/src/video/SDL_gamma.c +index 4fd037019f3a..464ab8827d62 100644 +--- a/src/video/SDL_gamma.c ++++ b/src/video/SDL_gamma.c +@@ -92,22 +92,11 @@ static void CalculateGammaFromRamp(float *gamma, Uint16 *ramp) + + int SDL_SetGamma(float red, float green, float blue) + { +- int succeeded; ++ int succeeded = -1; + SDL_VideoDevice *video = current_video; + SDL_VideoDevice *this = current_video; + +- succeeded = -1; +- /* Prefer using SetGammaRamp(), as it's more flexible */ +- { +- Uint16 ramp[3][256]; +- +- CalculateGammaRamp(red, ramp[0]); +- CalculateGammaRamp(green, ramp[1]); +- CalculateGammaRamp(blue, ramp[2]); +- succeeded = SDL_SetGammaRamp(ramp[0], ramp[1], ramp[2]); +- } +- if ( (succeeded < 0) && video->SetGamma ) { +- SDL_ClearError(); ++ if ( video->SetGamma ) { + succeeded = video->SetGamma(this, red, green, blue); + } + return succeeded; diff --git a/sdl/0003-sdl-1.2.14-fix-mouse-clicking.patch b/sdl/0003-sdl-1.2.14-fix-mouse-clicking.patch new file mode 100644 index 0000000..47cd8e6 --- /dev/null +++ b/sdl/0003-sdl-1.2.14-fix-mouse-clicking.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 31 Aug 2021 22:41:53 +0000 +Subject: [PATCH] sdl-1.2.14-fix-mouse-clicking + +--- + src/video/x11/SDL_x11events.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c +index be19a69a8b81..9f13b4640c3e 100644 +--- a/src/video/x11/SDL_x11events.c ++++ b/src/video/x11/SDL_x11events.c +@@ -451,12 +451,15 @@ printf("Mode: NotifyGrab\n"); + if ( xevent.xcrossing.mode == NotifyUngrab ) + printf("Mode: NotifyUngrab\n"); + #endif +- if ( this->input_grab == SDL_GRAB_OFF ) { +- posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS); ++ if ( (xevent.xcrossing.mode != NotifyGrab) && ++ (xevent.xcrossing.mode != NotifyUngrab) ) { ++ if ( this->input_grab == SDL_GRAB_OFF ) { ++ posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS); ++ } ++ posted = SDL_PrivateMouseMotion(0, 0, ++ xevent.xcrossing.x, ++ xevent.xcrossing.y); + } +- posted = SDL_PrivateMouseMotion(0, 0, +- xevent.xcrossing.x, +- xevent.xcrossing.y); + } + break; + diff --git a/sdl/0004-sdl-1.2.14-disable-mmx.patch b/sdl/0004-sdl-1.2.14-disable-mmx.patch new file mode 100644 index 0000000..d481d8a --- /dev/null +++ b/sdl/0004-sdl-1.2.14-disable-mmx.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 31 Aug 2021 22:42:24 +0000 +Subject: [PATCH] sdl-1.2.14-disable-mmx + +and another one from FS#26020 +--- + src/video/SDL_yuv_sw.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/video/SDL_yuv_sw.c b/src/video/SDL_yuv_sw.c +index c555ce06c261..86f436b1b371 100644 +--- a/src/video/SDL_yuv_sw.c ++++ b/src/video/SDL_yuv_sw.c +@@ -89,6 +89,8 @@ + #include "SDL_yuvfuncs.h" + #include "SDL_yuv_sw_c.h" + ++#undef __OPTIMIZE__ ++ + /* The functions used to manipulate software video overlays */ + static struct private_yuvhwfuncs sw_yuvfuncs = { + SDL_LockYUV_SW, diff --git a/sdl/PKGBUILD b/sdl/PKGBUILD new file mode 100644 index 0000000..52e7d83 --- /dev/null +++ b/sdl/PKGBUILD @@ -0,0 +1,80 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=sdl +pkgver=1.2.15+r461+gd4b1811e +pkgrel=01 +epoch=1 +pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard 1:1.2.15 ver" +arch=('x86_64') +url="https://www.libsdl.org" +depends=('glibc' 'libxext' 'libxrender' 'libx11') +makedepends=('alsa-lib' 'mesa' 'libpulse' 'glu' 'git') +optdepends=('alsa-lib: ALSA audio driver' + 'libpulse: PulseAudio audio driver') +provides=('sdl=1:1.2.15.r461.gd4b1811e') +conflicts=(sdl12-compat) +options=('staticlibs') +_commit=d4b1811edcbd2cc14b192c0dc7b4d5f25cc8864d # refs/heads/main +#_commit=457d4e55ffe1b6ad4c4fa4559dbda8360bf8253d # refs/tags/release-1.2.15 +source=("git+https://github.com/libsdl-org/SDL-1.2#commit=$_commit" + 0001-SDL-1.2.15-no-default-backing-store.patch + 0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + 0003-sdl-1.2.14-fix-mouse-clicking.patch + 0004-sdl-1.2.14-disable-mmx.patch) + +pkgver() { + cd SDL-1.2 + git describe --tags | sed 's/^release-//;s/[^-]*-g/r&/;s/-/+/g' +# git describe --long --tags | sed 's/^release-//;s/\([^-]*-\)g/r\1/;s/-/./g' + } + +prepare() { + cd SDL-1.2 + + git apply -3 ../0001-SDL-1.2.15-no-default-backing-store.patch + + # https://bugs.freedesktop.org/show_bug.cgi?id=27222 + git apply -3 ../0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + + git apply -3 ../0003-sdl-1.2.14-fix-mouse-clicking.patch + git apply -3 ../0004-sdl-1.2.14-disable-mmx.patch + + ./autogen.sh +} + +build() { + cd SDL-1.2 + CFLAGS+=' -ffat-lto-objects' + ./configure --prefix=/usr --disable-nasm --enable-alsa \ + --with-x --disable-rpath --disable-static + make +} + +package() { + cd SDL-1.2 + make DESTDIR="$pkgdir" install +} + +#---- license gpg-key sha256sums ---- + +license=('LGPL') + +validpgpkeys=('1528635D8053A57F77D1E08630A59377A7763BE6') # Sam Lantinga + +sha256sums=(SKIP + 658a3467f285201431a274339bd5b35a15c6b12156d8b19b21d66546ab8512bc # 0001-SDL-1.2.15-no-default-backing-store.patch + 786c55a1e2c3bd5d68d5649d6f4325ec22109ea3453e73d8d173966798a36538 # 0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + c2be5af8e1fe36d3771972de4575d30b48372bb94f53433a3ae8cff030d1724d # 0003-sdl-1.2.14-fix-mouse-clicking.patch + 62275b1b2f8e79d5f12126a79994733dcd13d62954391fcdf93c76f35fde55a0) # 0004-sdl-1.2.14-disable-mmx.patch + + +# Note to packager: +ls -l *pkg.tar.lz +echo "you must rename this package to meet SF naming before you move to the repo" +mv $(ls -l $pkgname*pkg.tar.lz) $pkgname-$epoch_$pkgver-$pkgrel-$arch.pkg.tar.lz >pkg-mv.log + diff --git a/sdl/PKGBUILD-arch b/sdl/PKGBUILD-arch new file mode 100644 index 0000000..633ee80 --- /dev/null +++ b/sdl/PKGBUILD-arch @@ -0,0 +1,61 @@ +# Contributor: Jan Alexander Steffens (heftig) +# Contributor: Allan McRae +# Contributor: dorphell + +pkgname=sdl +pkgver=1.2.15+r406+gf1caf909 +pkgrel=1 +epoch=1 +pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard" +arch=('x86_64') +url="https://www.libsdl.org" +license=('LGPL') +depends=('glibc' 'libxext' 'libxrender' 'libx11') +makedepends=('alsa-lib' 'mesa' 'libpulse' 'glu' 'git') +optdepends=('alsa-lib: ALSA audio driver' + 'libpulse: PulseAudio audio driver') +options=('staticlibs') +_commit=f1caf90987baf134acdfa6fc29d0b684b00c4989 # main +source=("git+https://github.com/libsdl-org/SDL-1.2#commit=$_commit" + 0001-SDL-1.2.15-no-default-backing-store.patch + 0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + 0003-sdl-1.2.14-fix-mouse-clicking.patch + 0004-sdl-1.2.14-disable-mmx.patch) +sha256sums=('SKIP' + '658a3467f285201431a274339bd5b35a15c6b12156d8b19b21d66546ab8512bc' + '786c55a1e2c3bd5d68d5649d6f4325ec22109ea3453e73d8d173966798a36538' + 'c2be5af8e1fe36d3771972de4575d30b48372bb94f53433a3ae8cff030d1724d' + '62275b1b2f8e79d5f12126a79994733dcd13d62954391fcdf93c76f35fde55a0') +validpgpkeys=('1528635D8053A57F77D1E08630A59377A7763BE6') # Sam Lantinga + +pkgver() { + cd SDL-1.2 + git describe --tags | sed 's/^release-//;s/[^-]*-g/r&/;s/-/+/g' +} + +prepare() { + cd SDL-1.2 + + git apply -3 ../0001-SDL-1.2.15-no-default-backing-store.patch + + # https://bugs.freedesktop.org/show_bug.cgi?id=27222 + git apply -3 ../0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + + git apply -3 ../0003-sdl-1.2.14-fix-mouse-clicking.patch + git apply -3 ../0004-sdl-1.2.14-disable-mmx.patch + + ./autogen.sh +} + +build() { + cd SDL-1.2 + CFLAGS+=' -ffat-lto-objects' + ./configure --prefix=/usr --disable-nasm --enable-alsa \ + --with-x --disable-rpath --disable-static + make +} + +package() { + cd SDL-1.2 + make DESTDIR="$pkgdir" install +} diff --git a/sdl/PKGBUILD-aur b/sdl/PKGBUILD-aur new file mode 100644 index 0000000..73e8741 --- /dev/null +++ b/sdl/PKGBUILD-aur @@ -0,0 +1,61 @@ +# Contributor: Jan Alexander Steffens (heftig) +# Contributor: Allan McRae +# Contributor: dorphell + +pkgname=sdl +pkgver=1.2.15+r430+gdff35e7a +pkgrel=1 +epoch=1 +pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard" +arch=('x86_64') +url="https://www.libsdl.org" +license=('LGPL') +depends=('glibc' 'libxext' 'libxrender' 'libx11') +makedepends=('alsa-lib' 'mesa' 'libpulse' 'glu' 'git') +optdepends=('alsa-lib: ALSA audio driver' + 'libpulse: PulseAudio audio driver') +options=('staticlibs') +_commit=dff35e7a6694acbd14c6222363b3e69f1bd1b96c # main +source=("git+https://github.com/libsdl-org/SDL-1.2#commit=$_commit" + 0001-SDL-1.2.15-no-default-backing-store.patch + 0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + 0003-sdl-1.2.14-fix-mouse-clicking.patch + 0004-sdl-1.2.14-disable-mmx.patch) +sha256sums=('SKIP' + '658a3467f285201431a274339bd5b35a15c6b12156d8b19b21d66546ab8512bc' + '786c55a1e2c3bd5d68d5649d6f4325ec22109ea3453e73d8d173966798a36538' + 'c2be5af8e1fe36d3771972de4575d30b48372bb94f53433a3ae8cff030d1724d' + '62275b1b2f8e79d5f12126a79994733dcd13d62954391fcdf93c76f35fde55a0') +validpgpkeys=('1528635D8053A57F77D1E08630A59377A7763BE6') # Sam Lantinga + +pkgver() { + cd SDL-1.2 + git describe --tags | sed 's/^release-//;s/[^-]*-g/r&/;s/-/+/g' +} + +prepare() { + cd SDL-1.2 + + git apply -3 ../0001-SDL-1.2.15-no-default-backing-store.patch + + # https://bugs.freedesktop.org/show_bug.cgi?id=27222 + git apply -3 ../0002-x11-Bypass-SetGammaRamp-when-changing-gamma.patch + + git apply -3 ../0003-sdl-1.2.14-fix-mouse-clicking.patch + git apply -3 ../0004-sdl-1.2.14-disable-mmx.patch + + ./autogen.sh +} + +build() { + cd SDL-1.2 + CFLAGS+=' -ffat-lto-objects' + ./configure --prefix=/usr --disable-nasm --enable-alsa \ + --with-x --disable-rpath --disable-static + make +} + +package() { + cd SDL-1.2 + make DESTDIR="$pkgdir" install +} diff --git a/sdl/PKGBUILD-aur-git b/sdl/PKGBUILD-aur-git new file mode 100644 index 0000000..4d25738 --- /dev/null +++ b/sdl/PKGBUILD-aur-git @@ -0,0 +1,40 @@ +# Maintainer: Rafał Kozdrój +# Contributor: Jan Alexander Steffens (heftig) +# Contributor: Allan McRae +# Contributor: dorphell + +_pkgname=sdl +pkgname=$_pkgname-git +pkgver=1.2.15.r336.08d4c52c +pkgrel=1 +pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard" +arch=('x86_64') +url="https://www.libsdl.org" +license=('LGPL') +depends=('glibc' 'libxext' 'libxrender' 'libx11') +makedepends=('alsa-lib' 'mesa' 'libpulse' 'glu' 'git') +optdepends=('alsa-lib: ALSA audio driver' + 'libpulse: PulseAudio audio driver') +provides=("$_pkgname=$pkgver") +conflicts=("$_pkgname") +options=('staticlibs') +source=("git+https://github.com/libsdl-org/SDL-1.2.git") +md5sums=('SKIP') + +pkgver() { + cd "SDL-1.2" + git describe --long --tags | sed 's/^release-//;s/\([^-]*-\)g/r\1/;s/-/./g' +} + +build() { + cd "SDL-1.2" + ./autogen.sh + ./configure --prefix=/usr --disable-nasm --enable-alsa \ + --with-x --disable-rpath --disable-static + make +} + +package() { + cd "SDL-1.2" + make DESTDIR="$pkgdir/" install +} diff --git a/sdl/clean b/sdl/clean new file mode 100644 index 0000000..e772ab0 --- /dev/null +++ b/sdl/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,SDL-1.2} diff --git a/sdl/deps b/sdl/deps new file mode 100644 index 0000000..6ce3c46 --- /dev/null +++ b/sdl/deps @@ -0,0 +1,10 @@ +libxext +libxrender +libx11 +alsa-lib +mesa +libpulse +glu +git +autoconf +autoconf diff --git a/sdl/key b/sdl/key new file mode 100644 index 0000000..2c78f6d --- /dev/null +++ b/sdl/key @@ -0,0 +1,2 @@ +gpg --recv-keys 30A59377A7763BE6 + diff --git a/sdl/time b/sdl/time new file mode 100644 index 0000000..713787d --- /dev/null +++ b/sdl/time @@ -0,0 +1,6 @@ + + +real 0m30.500s +user 0m27.969s +sys 0m3.944s + diff --git a/sdl12-compat/PKGBUILD b/sdl12-compat/PKGBUILD new file mode 100644 index 0000000..43425fc --- /dev/null +++ b/sdl12-compat/PKGBUILD @@ -0,0 +1,41 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=sdl12-compat +pkgver=1.2.64 +pkgrel=01 +pkgdesc="SDL 1.2 runtime compatibility library using SDL 2.0" +url="https://github.com/libsdl-org/sdl12-compat" +depends=('sdl2' 'glu') +makedepends=('cmake') +conflicts=('sdl') +provides=('sdl=1:1.2.15+r406+gf1caf909-1') +replaces=('sdl<=1:1.2.15+r406+gf1caf909') +source=("https://github.com/libsdl-org/sdl12-compat/archive/refs/tags/release-${pkgver}.tar.gz") + +build() { + mkdir -p build + cd build + cmake -DCMAKE_INSTALL_PREFIX=/usr ../sdl12-compat-release-${pkgver} + make +} + +package() { + cd build + make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}/sdl12-compat-release-${pkgver}/LICENSE.txt" "${pkgdir}/usr/share/licenses/$pkgname/LICENSE" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(MIT) + +sha256sums=(3e308e817c7f0c6383225485e9a67bf1119ad684b8cc519038671cc1b5d29861) # release-1.2.60.tar.gz + +## 3324f93d198b8817c6eeb26de775b723129de119ae66fa6866cc4e79a209313d sdl12-compat-1.2.64-01-x86_64.pkg.tar.lz diff --git a/sdl12-compat/PKGBUILD-arch b/sdl12-compat/PKGBUILD-arch new file mode 100644 index 0000000..69a964f --- /dev/null +++ b/sdl12-compat/PKGBUILD-arch @@ -0,0 +1,29 @@ +# Maintainer: Jelle van der Waa + +pkgname=sdl12-compat +pkgver=1.2.64 +pkgrel=1 +pkgdesc="SDL 1.2 runtime compatibility library using SDL 2.0" +url="https://github.com/libsdl-org/sdl12-compat" +depends=('sdl2' 'glu') +makedepends=('cmake') +arch=('x86_64') +conflicts=('sdl') +provides=('sdl=1:1.2.15+r406+gf1caf909-1') +replaces=('sdl<=1:1.2.15+r406+gf1caf909') +license=('MIT') +source=("https://github.com/libsdl-org/sdl12-compat/archive/refs/tags/release-${pkgver}.tar.gz") +sha256sums=('3e308e817c7f0c6383225485e9a67bf1119ad684b8cc519038671cc1b5d29861') + +build() { + mkdir -p build + cd build + cmake -DCMAKE_INSTALL_PREFIX=/usr ../sdl12-compat-release-${pkgver} + make +} + +package() { + cd build + make DESTDIR="${pkgdir}" install + install -Dm644 "${srcdir}/sdl12-compat-release-${pkgver}/LICENSE.txt" "${pkgdir}/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/sdl12-compat/clean b/sdl12-compat/clean new file mode 100644 index 0000000..5ad349b --- /dev/null +++ b/sdl12-compat/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,release-1.2*} diff --git a/sdl12-compat/deps b/sdl12-compat/deps new file mode 100644 index 0000000..2ebb0e9 --- /dev/null +++ b/sdl12-compat/deps @@ -0,0 +1,5 @@ +cmake +sdl2 +glu + + diff --git a/sdl12-compat/key b/sdl12-compat/key new file mode 100644 index 0000000..d99bfa2 --- /dev/null +++ b/sdl12-compat/key @@ -0,0 +1,2 @@ + + diff --git a/sdl12-compat/time b/sdl12-compat/time new file mode 100644 index 0000000..73ee8ca --- /dev/null +++ b/sdl12-compat/time @@ -0,0 +1,6 @@ + + +real 0m11.741s +user 0m10.533s +sys 0m1.336s + diff --git a/seatd/PKGBUILD b/seatd/PKGBUILD new file mode 100644 index 0000000..a35c6a0 --- /dev/null +++ b/seatd/PKGBUILD @@ -0,0 +1,57 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=seatd +pkgver=0.8.0 +pkgrel=01 +pkgdesc="A minimal seat management daemon, and a universal seat management library" +url="https://sr.ht/~kennylevinsen/seatd/" +provides=("libseat.so") +replaces=("libseat") +makedepends=('meson' 'ninja' 'scdoc') +source=("$pkgname-$pkgver.tar.gz::https://git.sr.ht/~kennylevinsen/seatd/archive/$pkgver.tar.gz" + "sysuser.conf") + +build() { + mkdir build + meson --prefix=/usr \ + --buildtype=plain \ + -Dexamples="disabled" \ + -Dserver="enabled" \ + -Dlibseat-logind="disabled" \ + -Dman-pages="enabled" \ + "$pkgname-$pkgver" \ + build + ninja -C build +} + +check() { + ninja -C build test +} + +package() { + DESTDIR="$pkgdir/" ninja -C build install + install -Dm644 "$pkgname-$pkgver/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" + +# # Allow users in the "seat" group to access seatd, and provide a service +# # that will be necessary for e.g. wlroots-based seat management +# install -Dm644 "seatd-$pkgver/contrib/systemd/seatd.service" \ +# -t "$pkgdir/usr/lib/systemd/system/" + install -Dm644 "sysuser.conf" "$pkgdir/usr/lib/sysusers.d/seatd.conf" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('MIT') + +sha256sums=(a562a44ee33ccb20954a1c1ec9a90ecb2db7a07ad6b18d0ac904328efbcf65a0 # seatd-0.8.0.tar.gz + e833292adf5da25b5258a5209c258f0e4c12e1d6fe81cf228fd0cfb575080d78) # sysuser.conf + +## 5d722f2383252626df8a88646804fc7afa375dd92e5745be8b49e07463850c91 seatd-0.8.0-01-x86_64.pkg.tar.lz + diff --git a/seatd/PKGBUILD-arch b/seatd/PKGBUILD-arch new file mode 100644 index 0000000..37a2e75 --- /dev/null +++ b/seatd/PKGBUILD-arch @@ -0,0 +1,53 @@ +# Maintainer: Brett Cornwall + +pkgname=seatd +pkgver=0.8.0 +pkgrel=1 +pkgdesc="A minimal seat management daemon, and a universal seat management library" +arch=(x86_64) +url="https://sr.ht/~kennylevinsen/seatd/" +license=('MIT') +provides=("libseat.so") +replaces=("libseat") +makedepends=( + 'meson' + 'ninja' + 'scdoc' + 'systemd' +) +depends=( + 'systemd-libs' +) +source=( + "$pkgname-$pkgver.tar.gz::https://git.sr.ht/~kennylevinsen/seatd/archive/$pkgver.tar.gz" + "sysuser.conf" +) +sha256sums=('a562a44ee33ccb20954a1c1ec9a90ecb2db7a07ad6b18d0ac904328efbcf65a0' + 'e833292adf5da25b5258a5209c258f0e4c12e1d6fe81cf228fd0cfb575080d78') +build() { + mkdir build + meson --prefix=/usr \ + --buildtype=plain \ + -Dexamples="disabled" \ + -Dserver="enabled" \ + -Dlibseat-logind="systemd" \ + -Dman-pages="enabled" \ + "seatd-$pkgver" \ + build + ninja -C build +} + +check() { + ninja -C build test +} + +package() { + DESTDIR="$pkgdir/" ninja -C build install + install -Dm644 "seatd-$pkgver/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" + + # Allow users in the "seat" group to access seatd, and provide a service + # that will be necessary for e.g. wlroots-based seat management + install -Dm644 "seatd-$pkgver/contrib/systemd/seatd.service" \ + -t "$pkgdir/usr/lib/systemd/system/" + install -Dm644 "sysuser.conf" "$pkgdir/usr/lib/sysusers.d/seatd.conf" +} diff --git a/seatd/clean b/seatd/clean new file mode 100644 index 0000000..bffeaa9 --- /dev/null +++ b/seatd/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,seatd*tar.gz} diff --git a/seatd/deps b/seatd/deps new file mode 100644 index 0000000..b8712d2 --- /dev/null +++ b/seatd/deps @@ -0,0 +1,6 @@ + + +meson +ninja +scdoc + diff --git a/seatd/sysuser.conf b/seatd/sysuser.conf new file mode 100644 index 0000000..e8ccaaf --- /dev/null +++ b/seatd/sysuser.conf @@ -0,0 +1 @@ +g seat - - diff --git a/seatd/time b/seatd/time new file mode 100644 index 0000000..d33cd27 --- /dev/null +++ b/seatd/time @@ -0,0 +1,6 @@ + + +real 0m4.594s +user 0m6.565s +sys 0m0.774s + diff --git a/sshfs/PKGBUILD b/sshfs/PKGBUILD new file mode 100644 index 0000000..1b18cfc --- /dev/null +++ b/sshfs/PKGBUILD @@ -0,0 +1,48 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=sshfs +pkgver=3.7.3 +pkgrel=01 +pkgdesc="FUSE client based on the SSH File Transfer Protocol" +arch=('x86_64') +url="https://github.com/libfuse/sshfs" +depends=(fuse3 glib2 openssh) +makedepends=('meson' 'python-docutils') +source=(https://github.com/libfuse/sshfs/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.xz{,.asc}) +# https://github.com/libfuse/sshfs/commit/508e8cb0.patch) + +prepare() { + cd $pkgname-$pkgver +# patch -p1 -i ../508e8cb0.patch # Fix typo that prevents passing the PubkeyAcceptedKeyTypes option to ssh + rm -rf build + mkdir build + cd build + arch-meson .. +} + +build() { + cd $pkgname-$pkgver/build + ninja +} + +package() { + cd $pkgname-$pkgver/build + + DESTDIR="$pkgdir" ninja install +} + +#---- license gpg-key sha256sums ---- + +license=(GPL) + +validpgpkeys=('ED31791B2C5C1613AF388B8AD113FCAC3C4E599F') # Nikolaus Rath + +sha256sums=(5218ce7bdd2ce0a34137a0d7798e0f6d09f0e6d21b1e98ee730a18b0699c2e99 # sshfs-3.7.3.tar.xz + 6ec65377c6da471e509eb0d5583408b46840f6959f13b45385b1acd81692e7bf) # sshfs-3.7.3.tar.xz.asc + + diff --git a/sshfs/PKGBUILD-arch b/sshfs/PKGBUILD-arch new file mode 100644 index 0000000..ae5984a --- /dev/null +++ b/sshfs/PKGBUILD-arch @@ -0,0 +1,37 @@ +# Maintainer: Giancarlo Razzolini +# Contributor: Antonio Rojas +# Contributor: Giovanni Scafora + +pkgname=sshfs +pkgver=3.7.3 +pkgrel=1 +pkgdesc="FUSE client based on the SSH File Transfer Protocol" +arch=('x86_64') +url="https://github.com/libfuse/sshfs" +license=(GPL) +depends=(fuse3 glib2 openssh) +makedepends=('meson' 'python-docutils') +source=(https://github.com/libfuse/sshfs/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.xz{,.asc}) +sha256sums=('5218ce7bdd2ce0a34137a0d7798e0f6d09f0e6d21b1e98ee730a18b0699c2e99' + 'SKIP') +validpgpkeys=('ED31791B2C5C1613AF388B8AD113FCAC3C4E599F') # Nikolaus Rath + +prepare() { + cd $pkgname-$pkgver + + rm -rf build + mkdir build + cd build + arch-meson .. +} + +build() { + cd $pkgname-$pkgver/build + ninja +} + +package() { + cd $pkgname-$pkgver/build + + DESTDIR="$pkgdir" ninja install +} diff --git a/sshfs/clean b/sshfs/clean new file mode 100644 index 0000000..842798f --- /dev/null +++ b/sshfs/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,sshfs-3*,*.patch} diff --git a/sshfs/deps b/sshfs/deps new file mode 100644 index 0000000..82ef00c --- /dev/null +++ b/sshfs/deps @@ -0,0 +1,6 @@ +fuse3 +openssh +meson +python-docutils + + diff --git a/sshfs/key b/sshfs/key new file mode 100644 index 0000000..c32df88 --- /dev/null +++ b/sshfs/key @@ -0,0 +1 @@ +gpg -v --recv-key D113FCAC3C4E599F diff --git a/sshfs/time b/sshfs/time new file mode 100644 index 0000000..17045f3 --- /dev/null +++ b/sshfs/time @@ -0,0 +1,5 @@ + +real 0m3.426s +user 0m3.013s +sys 0m0.424s + diff --git a/tor/PKGBUILD b/tor/PKGBUILD new file mode 100644 index 0000000..99d8bf7 --- /dev/null +++ b/tor/PKGBUILD @@ -0,0 +1,92 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=tor +pkgver=0.4.7.14 +pkgrel=01 +pkgdesc='An anonymizing overlay network. w/o zstd and systemd' +#url='https://www.torproject.org/dist' +url="https://dist.torproject.org" +conflicts=('tor-git') +provides=('tor-git') +#backup=( +# 'etc/tor/torrc') + +depends=('openssl' 'libevent' 'bash' 'libseccomp' 'xz') +makedepends=('ca-certificates' 'asciidoc') +checkdepends=('python') +optdepends=('torsocks: allow transparent SOCKS proxying' + 'obfs4proxy: obfuscating pluggable transport proxy' + 'meek: obfuscating pluggable transport proxy') + + +source=("$url/$pkgname-$pkgver.tar.gz"{,.sha256sum{,.asc}} + 'tor.tmpfiles' 'tor.sysusers') +prepare() { + cd "$pkgname-$pkgver" +} + +build() { + cd "$pkgname-$pkgver" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-zstd \ + --disable-zstd-advanced-apis \ + --disable-systemd \ + --disable-html-manual \ + --disable-ipv6 \ + --enable-lzma \ + --enable-xz \ + --disable-dependency-tracking \ + --disable-unittests \ + --enable-pic + + make +} + +check() { + cd "$pkgname-$pkgver" + make check ||true +} + +package() { + cd "$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + + install -Dm644 "$srcdir/tor.sysusers" "$pkgdir/usr/lib/sysusers.d/tor.conf" + install -Dm644 "$srcdir/tor.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/tor.conf" + + # patch upstream configuration file +# patch -Np1 < "$srcdir/torrc.patch" + + install -Dm 0644 src/config/torrc.sample "$pkgdir"/etc/tor/torrc + chown -R 43:43 "${pkgdir}"/etc/tor/torrc +# rm "$pkgdir"/etc/tor/torrc.sample + + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('BSD') + +validpgpkeys=(2133BC600AB133E1D826D173FE43009C4607B1FB # Nick Mathewson + F65CE37F04BA5B360AE6EE17C218525819F78451 # Roger Dingledine + 1C1BC007A9F607AA8152C040BEA7B180B1491921) # Alexander Færøy + +sha256sums=(a5ac67f6466380fc05e8043d01c581e4e8a2b22fe09430013473e71065e65df8 # tor-0.4.7.14.tar.gz + f782d37c8d88807777b239a9f3d6c8a7bc0ae68363165117a965726fff944e7a # tor-0.4.7.14.tar.gz.sha256sum + eaab0050aa468db9480e55e80f509fc722912f1b06268fa94a1f4e10360147e4 # tor-0.4.7.14.tar.gz.sha256sum.asc + 06c00318d84ead3f939b267c7ae9e4cc1cd90c534d0b57ddd2595fee9065ee7f # tor.tmpfiles + 231405d1fbbcc68168248f93edd19ae14b60f66bb4d1c8e46ead1d4cd8e0ae7c) # tor.sysusers + +## b7fd05795f5d7be870e081913ea06fe1aac2cc6caaab8d54e184d96f174a4104 tor-0.4.7.14-01-x86_64.pkg.tar.lz + diff --git a/tor/PKGBUILD-arch b/tor/PKGBUILD-arch new file mode 100644 index 0000000..708dddc --- /dev/null +++ b/tor/PKGBUILD-arch @@ -0,0 +1,69 @@ +# Maintainer: Lukas Fleischer +# Maintainer: Levente Polyak +# Maintainer: kpcyrd +# Contributor: Daniel Micay +# Contributor: simo +# Contributor: Sid Karunaratne + +pkgname=tor +pkgver=0.4.7.14 +pkgrel=1 +pkgdesc='Anonymizing overlay network.' +arch=('x86_64') +url='https://www.torproject.org/download/tor/' +license=('BSD') +depends=('openssl' 'libevent' 'bash' 'libseccomp' 'zstd' 'libcap' 'systemd-libs' + 'libsystemd.so' 'libzstd.so' 'libseccomp.so' 'libcap.so') +optdepends=('torsocks: for torify') +makedepends=('ca-certificates' 'systemd') +backup=('etc/tor/torrc') +source=("https://dist.torproject.org/${pkgname}-${pkgver}.tar.gz"{,.sha256sum{,.asc}} + 'torrc.patch' + 'tor.sysusers' + 'tor.tmpfiles' + 'tor.service') +b2sums=('909bf9bbff68179f4aa66a875cd42b1ecebe2767c1789f46c0cc9cb67eaeb6777d1f42d68caa89cfad424069f50953c57461d39edbd776dfed453226f6e2250f' + '41e0ceb68f7de77dcd74b7c48b733e18f2a452d82e588425a1fb25c92017208dd5c2dca588d32910ca13a6366ae1d1f76f758b76bf217e8bdad37f24a63436f3' + 'SKIP' + '3359e138d823a77df2a42ce3fe8c6ecb4004e9ec191863db7857aceea7c136c78f09518b1a199dfd3215f5d61f1c060f4a0e2141c5bdb6b847af60fb6e9a81a7' + '9053da53926f2120ac57b6c1442238f5bbd89bf9270347c4e00b721b39939bebc6adfcf814a9d7289dfd14d085d91c193529305336db93190da5b7f586a031df' + '5d55d9a7e42b6ce78b8ab985bab37afe8f0bacddb5abd895c4a490adb8f98b9422f90b40066fef05ecf37b7b21e80aadc615c4b7f6e12b05581304113a1b1f1d' + '327c1a35c3d4c44f93edb47959c8c41ab6af4cbfcbb8f4e9f54f2f69d17d148bf85e2d2c8aefe2d3165e123056dd68a248af78d1ba713b94a4e6d27a9cf412f1') +validpgpkeys=( + '2133BC600AB133E1D826D173FE43009C4607B1FB' # Nick Mathewson + 'B74417EDDF22AC9F9E90F49142E86A2A11F48D36' # David Goulet + '1C1BC007A9F607AA8152C040BEA7B180B1491921' # Alexander Færøy +) + +prepare() { + # verify the signed sums match the expected source tarball + sha256sum -c ${pkgname}-${pkgver}.tar.gz.sha256sum + cd ${pkgname}-${pkgver} + # uncomment essential config sections in the torrc file + patch -Np1 < "${srcdir}/torrc.patch" +} + +build() { + cd ${pkgname}-${pkgver} + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + make +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install + mv "${pkgdir}"/etc/tor/torrc{.sample,} + + # install arch custom files + install -Dm 644 "${srcdir}"/*.service -t "${pkgdir}"/usr/lib/systemd/system + install -Dm 644 "${srcdir}"/tor.sysusers "${pkgdir}"/usr/lib/sysusers.d/tor.conf + install -Dm 644 "${srcdir}"/tor.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/tor.conf + + install -Dm 644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname} +} + +# vim: ts=2 sw=2 et: diff --git a/tor/clean b/tor/clean new file mode 100644 index 0000000..eee9252 --- /dev/null +++ b/tor/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,tor*gz*} diff --git a/tor/deps b/tor/deps new file mode 100644 index 0000000..fa252fd --- /dev/null +++ b/tor/deps @@ -0,0 +1,4 @@ +asciidoc +python + + diff --git a/tor/key b/tor/key new file mode 100644 index 0000000..eb47d28 --- /dev/null +++ b/tor/key @@ -0,0 +1,3 @@ +gpg --recv-keys 42E86A2A11F48D36 +gpg -v --recv-keys 6AFEE6D49E92B601 +gpg -v --recv-keys BE6A0531C18A9179 diff --git a/tor/time b/tor/time new file mode 100644 index 0000000..5b1ded9 --- /dev/null +++ b/tor/time @@ -0,0 +1,6 @@ + + +real 1m46.965s +user 1m40.544s +sys 0m9.080s + diff --git a/tor/tor.service b/tor/tor.service new file mode 100644 index 0000000..f91b63a --- /dev/null +++ b/tor/tor.service @@ -0,0 +1,35 @@ +# tor.service -- this systemd configuration file for Tor sets up a +# relatively conservative, hardened Tor service. You may need to +# edit it if you are making changes to your Tor configuration that it +# does not allow. Package maintainers: this should be a starting point +# for your tor.service; it is not the last point. + +[Unit] +Description=Anonymizing overlay network for TCP +After=syslog.target network.target nss-lookup.target + +[Service] +Type=notify +NotifyAccess=all +ExecStartPre=/usr/bin/tor -f /etc/tor/torrc --verify-config +ExecStart=/usr/bin/tor -f /etc/tor/torrc +ExecReload=/bin/kill -HUP ${MAINPID} +KillSignal=SIGINT +TimeoutSec=60 +Restart=on-failure +WatchdogSec=1m +LimitNOFILE=32768 + +# Hardening +PrivateTmp=yes +PrivateDevices=yes +ProtectHome=yes +ProtectSystem=full +ReadOnlyDirectories=/ +ReadWriteDirectories=-/var/lib/tor +ReadWriteDirectories=-/var/log/tor +NoNewPrivileges=yes +CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE CAP_DAC_READ_SEARCH + +[Install] +WantedBy=multi-user.target diff --git a/tor/tor.sysusers b/tor/tor.sysusers new file mode 100644 index 0000000..f095f61 --- /dev/null +++ b/tor/tor.sysusers @@ -0,0 +1 @@ +u tor 43 "TOR Network Daemon" /var/lib/tor diff --git a/tor/tor.sysusers-arch b/tor/tor.sysusers-arch new file mode 100644 index 0000000..1f039ff --- /dev/null +++ b/tor/tor.sysusers-arch @@ -0,0 +1 @@ +u tor 43 - /var/lib/tor diff --git a/tor/tor.tmpfiles b/tor/tor.tmpfiles new file mode 100644 index 0000000..6fbd391 --- /dev/null +++ b/tor/tor.tmpfiles @@ -0,0 +1,3 @@ +d /var/lib/tor 0700 tor tor - - +d /var/log/tor 0700 tor tor - - +d /etc/tor 0700 tor tor - - diff --git a/tor/tor.tmpfiles-arch b/tor/tor.tmpfiles-arch new file mode 100644 index 0000000..ed8beb4 --- /dev/null +++ b/tor/tor.tmpfiles-arch @@ -0,0 +1 @@ +d /var/lib/tor 0700 tor tor - - diff --git a/tor/torrc.patch b/tor/torrc.patch new file mode 100644 index 0000000..0f3c849 --- /dev/null +++ b/tor/torrc.patch @@ -0,0 +1,28 @@ +--- a/src/config/torrc.sample.in 2021-03-10 19:59:10.123456789 +0100 ++++ b/src/config/torrc.sample.in 2021-03-10 19:59:10.123456789 +0100 +@@ -11,6 +11,7 @@ + ## + ## Tor will look for this file in various places based on your platform: + ## https://www.torproject.org/docs/faq#torrc ++User tor + + ## Tor opens a SOCKS proxy on port 9050 by default -- even if you don't + ## configure one below. Set "SOCKSPort 0" if you plan to run Tor only +@@ -39,7 +40,7 @@ + ## Send every possible message to @LOCALSTATEDIR@/log/tor/debug.log + #Log debug file @LOCALSTATEDIR@/log/tor/debug.log + ## Use the system log instead of Tor's logfiles +-#Log notice syslog ++Log notice syslog + ## To send all messages to stderr: + #Log debug stderr + +@@ -50,7 +51,7 @@ + + ## The directory for keeping all the keys/etc. By default, we store + ## things in $HOME/.tor on Unix, and in Application Data\tor on Windows. +-#DataDirectory @LOCALSTATEDIR@/lib/tor ++DataDirectory @LOCALSTATEDIR@/lib/tor + + ## The port on which Tor will listen for local connections from Tor + ## controller applications, as documented in control-spec.txt. diff --git a/tor/torrc.patch-arch b/tor/torrc.patch-arch new file mode 100644 index 0000000..0f3c849 --- /dev/null +++ b/tor/torrc.patch-arch @@ -0,0 +1,28 @@ +--- a/src/config/torrc.sample.in 2021-03-10 19:59:10.123456789 +0100 ++++ b/src/config/torrc.sample.in 2021-03-10 19:59:10.123456789 +0100 +@@ -11,6 +11,7 @@ + ## + ## Tor will look for this file in various places based on your platform: + ## https://www.torproject.org/docs/faq#torrc ++User tor + + ## Tor opens a SOCKS proxy on port 9050 by default -- even if you don't + ## configure one below. Set "SOCKSPort 0" if you plan to run Tor only +@@ -39,7 +40,7 @@ + ## Send every possible message to @LOCALSTATEDIR@/log/tor/debug.log + #Log debug file @LOCALSTATEDIR@/log/tor/debug.log + ## Use the system log instead of Tor's logfiles +-#Log notice syslog ++Log notice syslog + ## To send all messages to stderr: + #Log debug stderr + +@@ -50,7 +51,7 @@ + + ## The directory for keeping all the keys/etc. By default, we store + ## things in $HOME/.tor on Unix, and in Application Data\tor on Windows. +-#DataDirectory @LOCALSTATEDIR@/lib/tor ++DataDirectory @LOCALSTATEDIR@/lib/tor + + ## The port on which Tor will listen for local connections from Tor + ## controller applications, as documented in control-spec.txt. diff --git a/torsocks/PKGBUILD b/torsocks/PKGBUILD new file mode 100644 index 0000000..e14bb1b --- /dev/null +++ b/torsocks/PKGBUILD @@ -0,0 +1,71 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +_pkgname=torsocks +#pkgname=torsocks-git +pkgname=torsocks +pkgver=2.4.0 +pkgrel=03 +pkgdesc='Wrapper to safely torify applications' +#url='https://gitweb.torproject.org/torsocks.git/' +url='https://gitlab.torproject.org/tpo/core/torsocks' +conflicts=('torsocks-git') +provides=('torsocks') +depends=('tor') +backup=("etc/tor/$_pkgname.conf") +#source=(https://people.torproject.org/~dgoulet/$_pkgname/$_pkgname-$pkgver.tar.xz{,.asc}) +#source=("${url}/-/archive/v$pkgver/torsocks-v$pkgver.tar.gz") +_commit=afe9dea542a8b495dbbbbe5e4b98a33cde06729b # tags/v2.4.0 +source=("git+https://git.torproject.org/$_pkgname.git#commit=$_commit") #branch=master") +install=$pkgname.install + +#pkgver() { +# cd $_pkgname +# git describe |sed 's/^v//;s/-/./g' +#} + +prepare() { + cd $_pkgname + ./autogen.sh +} + +build() { +# cd $pkgname-v$pkgver + cd $_pkgname +# autoreconf -vfi + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc + make +} + +check() { + cd $_pkgname + make check +} + +package() { +# cd $pkgname-v$pkgver + cd $_pkgname + make DESTDIR="$pkgdir" install + install -Dm644 extras/torsocks-bash_completion "$pkgdir/usr/share/bash-completion/completions/torsocks" + install -Dm644 extras/torsocks-zsh_completion "$pkgdir/usr/share/zsh/site-functions/_torsocks" + install -Dm644 gpl-2.0.txt "$pkgdir/usr/share/licenses/torsocks/LICENSE" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL2') + +validpgpkeys=('B74417EDDF22AC9F9E90F49142E86A2A11F48D36') + +#sha256sums=(c01b471d89eda9f3c8dcb85a448e8066692d0707f9ff8b2ac7e665a602291b87) # torsocks-v2.4.0.tar.gz +sha256sums=(SKIP) + +## 02d9db673c6c1d68badb29fcc6840b84c9cb0400c265e76efdcfbc21eebe1123 torsocks-2.4.0-03-x86_64.pkg.tar.lz diff --git a/torsocks/PKGBUILD-arch b/torsocks/PKGBUILD-arch new file mode 100644 index 0000000..f026859 --- /dev/null +++ b/torsocks/PKGBUILD-arch @@ -0,0 +1,34 @@ +# Maintainer: Levente Polyak +# Contributor: Daniel Micay +# Contributor: Nicolas Pouillard +# Contributor: Rorschach + +pkgname=torsocks +pkgver=2.4.0 +pkgrel=1 +pkgdesc='Wrapper to safely torify applications' +url='https://gitlab.torproject.org/tpo/core/torsocks' +arch=('x86_64') +license=('GPL2') +depends=('tor') +backup=("etc/tor/${pkgname}.conf") +#source=(https://people.torproject.org/~dgoulet/${pkgname}/${pkgname}-${pkgver}.tar.xz{,.asc}) +source=("${url}/-/archive/v${pkgver}/torsocks-v${pkgver}.tar.gz") +sha512sums=('7d625ce3a4600f87b86ae9ac79dfd206e7709cb0bafe0b7afcf33a6f1825f968cc63ad3e23c584582b244647bdeafbfdbfc54f7c81e521b0a3d278a1483ce86e') +validpgpkeys=('B74417EDDF22AC9F9E90F49142E86A2A11F48D36') + +build() { + cd ${pkgname}-v${pkgver} + autoreconf -vfi + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc + make +} + +package() { + cd ${pkgname}-v${pkgver} + make DESTDIR="${pkgdir}" install +} + +# vim: ts=2 sw=2 et: diff --git a/torsocks/PKGBUILD-aur.git b/torsocks/PKGBUILD-aur.git new file mode 100644 index 0000000..ea25ddf --- /dev/null +++ b/torsocks/PKGBUILD-aur.git @@ -0,0 +1,46 @@ +# Contributor: skydrome +# Maintainer: skydrome + +pkgname=torsocks-git +pkgver=2.3.0.1.g4c00ec8 +pkgrel=1 +pkgdesc='Torsocks allows you to use most socks-friendly applications in a safe way with Tor.' +url='https://gitweb.torproject.org/torsocks.git' +license=('GPL2') +arch=('i686' 'x86_64') +conflicts=('torsocks') +provides=('torsocks') +backup=('etc/tor/torsocks.conf') +source=("git+https://git.torproject.org/torsocks.git#branch=master") +md5sums=('SKIP') + +pkgver() { + cd torsocks + git describe |sed 's/^v//;s/-/./g' +} + +prepare() { + cd torsocks + ./autogen.sh +} + +build() { + cd torsocks + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc + make +} + +check() { + cd torsocks + make check +} + +package() { + cd torsocks + make DESTDIR="$pkgdir" install + install -Dm644 extras/torsocks-bash_completion "$pkgdir/usr/share/bash-completion/completions/torsocks" + install -Dm644 extras/torsocks-zsh_completion "$pkgdir/usr/share/zsh/site-functions/_torsocks" + install -Dm644 gpl-2.0.txt "$pkgdir/usr/share/licenses/torsocks/LICENSE" +} diff --git a/torsocks/clean b/torsocks/clean new file mode 100644 index 0000000..661e8e4 --- /dev/null +++ b/torsocks/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,torsocks*.tar.gz*,torsocks} diff --git a/torsocks/deps b/torsocks/deps new file mode 100644 index 0000000..919bd30 --- /dev/null +++ b/torsocks/deps @@ -0,0 +1,4 @@ +tor-alpha +autoconf +automake +git diff --git a/torsocks/key b/torsocks/key new file mode 100644 index 0000000..46fb85f --- /dev/null +++ b/torsocks/key @@ -0,0 +1 @@ +gpg --recv-keys 42E86A2A11F48D36 diff --git a/torsocks/time b/torsocks/time new file mode 100644 index 0000000..7cc1a9b --- /dev/null +++ b/torsocks/time @@ -0,0 +1,5 @@ + +real 0m9.476s +user 0m15.460s +sys 0m1.912s + diff --git a/torsocks/torsocks.install b/torsocks/torsocks.install new file mode 100644 index 0000000..7b2ac6c --- /dev/null +++ b/torsocks/torsocks.install @@ -0,0 +1,8 @@ +post_install() { + post_upgrade +} + +post_upgrade() { + chown -R tor:tor /etc/tor + chmod -R 700 /etc/tor +} diff --git a/ttf-liberation/PKGBUILD b/ttf-liberation/PKGBUILD new file mode 100644 index 0000000..92c6bd1 --- /dev/null +++ b/ttf-liberation/PKGBUILD @@ -0,0 +1,34 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=ttf-liberation +pkgver=2.1.5 +pkgrel=01 +pkgdesc='Font family which aims at metric compatibility with Arial, Times New Roman, and Courier New' +arch=('any') +url=https://github.com/liberationfonts/liberation-fonts +makedepends=('fontforge' 'python-fonttools') +provides=('ttf-font') +groups=(joborun-pkg-X) +source=("$url/archive/$pkgver/liberation-fonts-$pkgver.tar.gz") + +build() { + cd liberation-fonts-$pkgver + make build +} + +package() { + cd liberation-fonts-$pkgver + install -Dm644 -t "$pkgdir/usr/share/fonts/${pkgname#ttf-}" \ + liberation-fonts-ttf-$pkgver/*.ttf + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE +} + +#---- license gpg-key sha256sums ---- + +license=('custom:OFL') + +sha256sums=(9a823ccb33c8a8a865e84b982bcdc44d03ba4914adb91e6000df035dc0e55936) # liberation-fonts-2.1.5.tar.gz diff --git a/ttf-liberation/PKGBUILD-arch b/ttf-liberation/PKGBUILD-arch new file mode 100644 index 0000000..a552f56 --- /dev/null +++ b/ttf-liberation/PKGBUILD-arch @@ -0,0 +1,31 @@ +# Maintainer: Lukas Fleischer +# Maintainer: Daniel M. Capella +# Contributor: Ronald van Haren +# Contributor: Roman Kyrylych +# Contributor: Andreas Zwinkau +# Contributor: rabyte +# Contributor: Stefan Husmann < stefan-husmann@t-online.de> + +pkgname=ttf-liberation +pkgver=2.1.5 +pkgrel=1 +pkgdesc='Font family which aims at metric compatibility with Arial, Times New Roman, and Courier New' +arch=('any') +url=https://github.com/liberationfonts/liberation-fonts +license=('custom:OFL') +makedepends=('fontforge' 'python-fonttools') +provides=('ttf-font') +source=("$url/archive/$pkgver/liberation-fonts-$pkgver.tar.gz") +b2sums=('8e8ed55456823c61dc8c622a9674c540770abc944ce87bd96ae64a8f13b450e5386335e9f24723344a9e7f882b8e323f4a43231b4659c117c5b7670027f42199') + +build() { + cd liberation-fonts-$pkgver + make build +} + +package() { + cd liberation-fonts-$pkgver + install -Dm644 -t "$pkgdir/usr/share/fonts/${pkgname#ttf-}" \ + liberation-fonts-ttf-$pkgver/*.ttf + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE +} diff --git a/ttf-liberation/clean b/ttf-liberation/clean new file mode 100644 index 0000000..af8b46d --- /dev/null +++ b/ttf-liberation/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,*tar.gz*} diff --git a/ttf-liberation/deps b/ttf-liberation/deps new file mode 100644 index 0000000..e38234f --- /dev/null +++ b/ttf-liberation/deps @@ -0,0 +1 @@ +fontforge python-fonttools diff --git a/ttf-liberation/time b/ttf-liberation/time new file mode 100644 index 0000000..cd4063a --- /dev/null +++ b/ttf-liberation/time @@ -0,0 +1,5 @@ + +real 0m4.467s +user 0m4.179s +sys 0m0.322s + diff --git a/udisks2/PKGBUILD b/udisks2/PKGBUILD new file mode 100644 index 0000000..c4b3b9a --- /dev/null +++ b/udisks2/PKGBUILD @@ -0,0 +1,94 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=udisks2 +pkgver=2.9.4 +pkgrel=05 +pkgdesc="Disk Management Service, version 2 w/o systemd zram systemd-swap" +# piece of junk software coming from none other than the source of trouble +# they have added systemd-swap functionality to disk management just to exclude +# its use from non-systemd systems, zram is the victim +# since we are based on Arch we must issue junky solutions for junky software +url="http://www.freedesktop.org/wiki/Software/udisks/" +depends=('acl' 'polkit' 'glib2' 'gcc-libs' 'glibc' 'libatasmart' 'libgudev' 'libblockdev' 'util-linux-libs') +makedepends=('gobject-introspection' 'parted' 'libiscsi' 'gtk-doc') +optdepends=('gptfdisk: GUID partition table support' + 'parted: partition management' + 'gptfdisk: GUID partition table support' + 'ntfs-3g: NTFS filesystem management support' + 'dosfstools: VFAT filesystem management support') +provides=("udisks2=${pkgver}") +conflicts=('udisks2-nosystemd' 'udisks2-eudev') +replaces=('udisks2-nosystemd' 'udisks2-eudev') +options=(!libtool) +backup=('etc/udisks2/udisks2.conf') +#source=(https://github.com/storaged-project/udisks/archive/udisks-$pkgver.tar.gz +# disable_logind_support.patch +# remove_check.patch) +source=("https://github.com/storaged-project/udisks/releases/download/udisks-$pkgver/udisks-$pkgver.tar.bz2" + disable_logind_support.patch + remove_check.patch + 'udisk2-2.9.4-do-not-free-static-daemon-resources.patch::https://patch-diff.githubusercontent.com/raw/storaged-project/udisks/pull/926.patch') + +prepare() { + cd "udisks-$pkgver" + + # It should fix an issue when udisks is asking to enter an user password on + # every (un)mount operation if installed together with systemd package and any + # initsystem which supports tmpfiles.d configs. + patch -p1 -i "$srcdir"/disable_logind_support.patch + + # Allow to build with ZRAM support but without systemd installed + patch -p1 -i "$srcdir"/remove_check.patch + + # https://bugs.archlinux.org/task/76345 + # https://github.com/storaged-project/udisks/pull/926 + patch -Np1 -i ../udisk2-2.9.4-do-not-free-static-daemon-resources.patch + +# NOCONFIGURE=1 ./autogen.sh +} + +build() { +# since systemd expanded to systemd-swap used by zram zram support must be dropped + cd "udisks-$pkgver" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-zram=no \ + --sbindir=/usr/bin \ + --libexecdir=/usr/lib \ + --with-systemdsystemunitdir=no \ + --enable-gtk-doc + +#enable_available_modules=yes + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make +} + +package() { + cd udisks-$pkgver + make DESTDIR="$pkgdir" install + +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL2') + +sha256sums=(b6b60ebab0d5e09624120c5d158882e87d8c2473db60783b63deeba74cb18d1c # udisks-2.9.4.tar.bz2 +# 5917ad67f33648935748cb98f71668431ab07ce4dc4cfd5403e0c0a2af48696a # udisks-2.9.4.tar.gz + 53eb9e7f350d76cee03b1e4ad406eaf8bbf239b8d27be696a07d39fd121916ba # disable_logind_support.patch + b10d969d29bf2bc39c66241bac32b3bd83267f9e57273cc8781dff6e9b773c43 # remove_check.patch + 8e77b2f4e1b9e5dd8df06a0f360735c9b1b9ad8de6cc06d69ff43ac53cb6bd57) # udisk2-2.9.4-do-not-free-static-daemon-resources.patch + +## 43c3a09eb4789802fb495d2f491beabc2794c24861130bee4c1fb93332b3e04e udisks2-2.9.4-05-x86_64.pkg.tar.lz + diff --git a/udisks2/PKGBUILD-arch b/udisks2/PKGBUILD-arch new file mode 100644 index 0000000..f060149 --- /dev/null +++ b/udisks2/PKGBUILD-arch @@ -0,0 +1,46 @@ +# Maintainer: Felix Yan +# Contributor: Ionut Biru + +pkgname=udisks2 +pkgver=2.9.4 +pkgrel=4 +pkgdesc="Disk Management Service, version 2" +arch=('x86_64') +url="https://www.freedesktop.org/wiki/Software/udisks/" +license=('GPL2') +depends=('acl' 'polkit' 'glib2' 'gcc-libs' 'glibc' 'libatasmart' 'libgudev' 'libblockdev' + 'systemd-libs' 'util-linux-libs') +makedepends=('gobject-introspection' 'gtk-doc') +backup=('etc/udisks2/udisks2.conf') +source=("https://github.com/storaged-project/udisks/releases/download/udisks-$pkgver/udisks-$pkgver.tar.bz2" + 'udisk2-2.9.4-do-not-free-static-daemon-resources.patch::https://patch-diff.githubusercontent.com/raw/storaged-project/udisks/pull/926.patch') +sha512sums=('35f5429bc2a7092aa659cba9296837d127e2b17c23ab23111d0d9b230d15ef5a6965e112b1f3829748a69a52fb5b09722153f86f1ef70977b3ad7b7a4ec40ec5' + 'a14cd7c6c52d585b145e96a8b111bd173a06c3bb58dc55db5e099677f24464f23caede27c260ddebcad07a6a9b0872878054a749346c2142e6dd3bdb240c9202') + +prepare() { + cd udisks-$pkgver + # https://bugs.archlinux.org/task/76345 + # https://github.com/storaged-project/udisks/pull/926 + patch -Np1 -i ../udisk2-2.9.4-do-not-free-static-daemon-resources.patch +} + +build() { + cd udisks-$pkgver + ./configure --prefix=/usr --sysconfdir=/etc \ + --sbindir=/usr/bin --libexecdir=/usr/lib \ + --with-systemdsystemunitdir=/usr/lib/systemd/system \ + --localstatedir=/var --disable-static \ + --enable-gtk-doc enable_available_modules=yes + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +check() { + cd udisks-$pkgver + make check +} + +package() { + cd udisks-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/udisks2/PKGBUILD-aur b/udisks2/PKGBUILD-aur new file mode 100644 index 0000000..c55d814 --- /dev/null +++ b/udisks2/PKGBUILD-aur @@ -0,0 +1,63 @@ +# Maintainer: Alexey D. +# Contributor: Felix Yan +# Contributor: Ionut Biru + +pkgname=udisks2-nosystemd +pkgver=2.9.2 +pkgrel=1 +pkgdesc="Disk Management Service, version 2" +arch=('i686' 'x86_64') +url="http://www.freedesktop.org/wiki/Software/udisks" +license=('GPL2') +groups=('eudev-base') +depends=('polkit-consolekit' 'libatasmart' 'libgudev' 'libblockdev>=2.24') +makedepends=('docbook-xsl' 'gobject-introspection' 'parted' 'libiscsi' 'gtk-doc') +optdepends=('gptfdisk: GUID partition table support' + 'parted: partition management' + 'gptfdisk: GUID partition table support' + 'ntfs-3g: NTFS filesystem management support' + 'dosfstools: VFAT filesystem management support' + 'libiscsi: iSCSI support') +provides=("udisks2=${pkgver}") +conflicts=('udisks2' 'udisks2-eudev') +replaces=('udisks2' 'udisks2-eudev') +options=(!libtool) +backup=('etc/udisks2/udisks2.conf') +source=(https://github.com/storaged-project/udisks/archive/udisks-$pkgver.tar.gz + disable_logind_support.patch + remove_check.patch) +sha512sums=('8c4cd266d97fd01e8b7b6e15e53774a52d723a5b382307c6fefba0ec1eda0178caa760358260180da6cc793af73fd40499b09a2c271d83524a81a260072432e6' + '22041d363bd7e7a6cc3a7c49c169800a0fad0bc5d3fba5f8663bcd26e2ea09ed78dbdd31ace26a9700863d565be6026b4d2259d5ebbf234ad8571ce2795588ad' + 'e98ef1d34b690e776dfaa9b8a801a98bac395aad38db55933caa843f685471ce9ccfe63287507396925234d17768400d8c38d735f209e515c708f7515ea7ba4f') + +prepare() { + cd "udisks-udisks-$pkgver" + + # It should fix an issue when udisks is asking to enter an user password on + # every (un)mount operation if installed together with systemd package and any + # initsystem which supports tmpfiles.d configs. + patch -p1 -i "$srcdir"/disable_logind_support.patch + + # Allow to build with ZRAM support but without systemd installed + patch -p1 -i "$srcdir"/remove_check.patch + + NOCONFIGURE=1 ./autogen.sh +} + +build() { + cd "udisks-udisks-$pkgver" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --sbindir=/usr/bin \ + --libexecdir=/usr/lib \ + --enable-gtk-doc enable_available_modules=yes + make +} + +package() { + cd "udisks-udisks-$pkgver" + make DESTDIR="$pkgdir" install +} diff --git a/udisks2/clean b/udisks2/clean new file mode 100644 index 0000000..fd42365 --- /dev/null +++ b/udisks2/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,ud*.tar.bz2*} diff --git a/gnunet/.config b/udisks2/configure similarity index 52% rename from gnunet/.config rename to udisks2/configure index 920175a..17300fe 100644 --- a/gnunet/.config +++ b/udisks2/configure @@ -1,4 +1,4 @@ -`configure' configures gnunet 0.16.2-18-ga5b0a1d36 to adapt to many kinds of systems. +`configure' configures udisks 2.9.4 to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... @@ -47,7 +47,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/gnunet] + --docdir=DIR documentation root [DATAROOTDIR/doc/udisks] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -58,14 +58,9 @@ Program names: --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR - System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] - --target=TARGET configure for building compilers for TARGET [HOST] Optional Features: --disable-option-checking ignore unrecognized --enable/--with options @@ -73,50 +68,40 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-debug=[yes/info/profile/no] + compile with debugging --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build - --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) - --disable-largefile omit support for large files - --disable-documentation do not build the documentation - --enable-texi2mdoc-generation - generate and install texi2mdoc output - --enable-documentation-only - build only the documentation - --disable-include-manpages - do not include man pages during installation - --enable-texinfo4 Use Texinfo version 4 specific switches - --enable-gcc-hardening enable compiler security checks - --enable-linker-hardening - enable linker security options - --enable-sanitizer enable address and undefined behaviour sanitizers - --enable-logging[=value] - enable logging calls; possible values: - yes,no,verbose,veryverbose (default yes) - --enable-poisoning enable poisoning of freed memory (good for - debugging) - --disable-rpath do not hardcode runtime library paths + --enable-gtk-doc use gtk-doc to build documentation [[default=no]] + --enable-gtk-doc-html build documentation in html format [[default=yes]] + --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] + --enable-man generate man pages [default=auto] + --enable-daemon build udisks daemon [default=yes] + --enable-introspection=[no/auto/yes] + Enable introspection for this build + --enable-fhs-media Mount devices in /media instead of /run/media + [default=no] + --disable-acl disable acl support + --enable-lvm2 enable LVM2 support + --enable-lvmcache enable LVMCache support + --enable-iscsi enable iSCSI support + --enable-btrfs enable BTRFS support + --enable-zram enable ZRAM support + --enable-lsm enable LibStorageMgmt support + --enable-bcache enable Bcache support + --enable-vdo enable VDO support --disable-nls do not use Native Language Support - --enable-nse-histogram have NSE send timestamp information to testbed - logger for generating a histogram of received - messages. NOT useful for production (default is no) - --disable-testruns disable running tests on make check - --enable-benchmarks enable benchmarking (default is no) - --enable-javaports use non-zero ports for services with Java bindings - (default is no) - --enable-experimental enable experimental code paths (default is no) - --enable-malicious enable malicious code path (only for testing; - default is no) - --disable-autostart do not start peer services by default - --enable-heapstats enable expensive heap statistics - --enable-coverage compile the library with code coverage support - --enable-transport-timing-diagnostic - enable logging of transport (not TNG) sending times + --disable-rpath do not hardcode runtime library paths Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -129,51 +114,18 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-autoconf use a different autoconf for regeneration of - Makefiles - --with-autoheader use a different autoheader for regeneration of - Makefiles - --with-automake use a different automake for regeneration of - Makefiles - --with-aclocal use a different aclocal for regeneration of - Makefiles - --with-x use the X Window System - --with-python-sys-prefix - use Python's sys.prefix and sys.exec_prefix values - --with-python_prefix override the default PYTHON_PREFIX - --with-python_exec_prefix - override the default PYTHON_EXEC_PREFIX - --with-perl=PATH Look for Perl in PATH - --with-gnunet-logread Install gnunet-logread - --with-libgcrypt-prefix=PFX - prefix where LIBGCRYPT is installed (optional) - --with-bluetooth=PFX base of libbluetooth installation - --with-zbar=PFX base of libzbar installation - --with-png=PFX base of libpng installation - --with-pabc=PFX base of libpabc installation - --with-jansson=PFX base of libjansson installation - --with-pulse=PFX base of libpulse installation - --with-opus=PFX base of libopus installation - --with-ogg=PFX base of libogg installation - --with-libgnurl=PREFIX look for the gnurl library in PREFIX/lib and headers - in PREFIX/include - --with-libcurl=PREFIX look for the curl library in PREFIX/lib and headers - in PREFIX/include - --with-extractor=PFX base of libextractor installation - --with-ltdl=PFX base of libltdl installation - --with-libidn=PFX base of libidn/libidn2 installation - --with-zlib=PFX base of zlib installation + --with-html-dir=PATH path to installed docs + --with-udevdir=DIR Directory for udev + --with-systemdsystemunitdir=DIR + Directory for systemd service files + --with-tmpfilesdir=DIR Directory for configuring creation of files at boot + --with-modloaddir=DIR Directory for configuring kernel modules to load at + boot + --with-modprobedir=DIR Directory for modprobe configuration + --with-zramconfdir=DIR Directory for ZRAM configuration --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-libunistring-prefix[=DIR] search for libunistring in DIR/include and DIR/lib - --without-libunistring-prefix don't search for libunistring in includedir and libdir - --with-sqlite3=PFX base of libsqlite3 installation - --with-postgresql=[ARG] use PostgreSQL library [default=yes], optionally - specify path to pg_config - --with-mysql=PFX base of mysql installation - --with-microhttpd=PFX base of libmicrohttpd installation - --with-gnutls=PFX base of gnutls installation --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir @@ -185,30 +137,74 @@ Some influential environment variables: LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory + CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - LT_SYS_LIBRARY_PATH - User-defined run-time library search path. - XMKMF Path to xmkmf, Makefile generator for X Window System - CPP C preprocessor - PYTHON the Python interpreter + GTKDOC_DEPS_CFLAGS + C compiler flags for GTKDOC_DEPS, overriding pkg-config + GTKDOC_DEPS_LIBS + linker flags for GTKDOC_DEPS, overriding pkg-config GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config - GST_CFLAGS C compiler flags for GST, overriding pkg-config - GST_LIBS linker flags for GST, overriding pkg-config - POSTGRESQL_CPPFLAGS - cpp flags for PostgreSQL overriding detected flags - POSTGRESQL_LIBFLAGS - libs for PostgreSQL overriding detected flags - POSTGRESQL_LDFLAGS - linker flags for PostgreSQL overriding detected flags - MHD_CFLAGS C compiler flags for MHD, overriding pkg-config - MHD_LIBS linker flags for MHD, overriding pkg-config + GIO_CFLAGS C compiler flags for GIO, overriding pkg-config + GIO_LIBS linker flags for GIO, overriding pkg-config + POLKIT_GOBJECT_1_CFLAGS + C compiler flags for POLKIT_GOBJECT_1, overriding pkg-config + POLKIT_GOBJECT_1_LIBS + linker flags for POLKIT_GOBJECT_1, overriding pkg-config + POLKIT_AGENT_1_CFLAGS + C compiler flags for POLKIT_AGENT_1, overriding pkg-config + POLKIT_AGENT_1_LIBS + linker flags for POLKIT_AGENT_1, overriding pkg-config + GUDEV_CFLAGS + C compiler flags for GUDEV, overriding pkg-config + GUDEV_LIBS linker flags for GUDEV, overriding pkg-config + GMODULE_CFLAGS + C compiler flags for GMODULE, overriding pkg-config + GMODULE_LIBS + linker flags for GMODULE, overriding pkg-config + BLOCKDEV_CFLAGS + C compiler flags for BLOCKDEV, overriding pkg-config + BLOCKDEV_LIBS + linker flags for BLOCKDEV, overriding pkg-config + LIBATASMART_CFLAGS + C compiler flags for LIBATASMART, overriding pkg-config + LIBATASMART_LIBS + linker flags for LIBATASMART, overriding pkg-config + LIBMOUNT_CFLAGS + C compiler flags for LIBMOUNT, overriding pkg-config + LIBMOUNT_LIBS + linker flags for LIBMOUNT, overriding pkg-config + LIBMOUNT_UTAB_CFLAGS + C compiler flags for LIBMOUNT_UTAB, overriding pkg-config + LIBMOUNT_UTAB_LIBS + linker flags for LIBMOUNT_UTAB, overriding pkg-config + LIBUUID_CFLAGS + C compiler flags for LIBUUID, overriding pkg-config + LIBUUID_LIBS + linker flags for LIBUUID, overriding pkg-config + LIBSYSTEMD_LOGIN_CFLAGS + C compiler flags for LIBSYSTEMD_LOGIN, overriding pkg-config + LIBSYSTEMD_LOGIN_LIBS + linker flags for LIBSYSTEMD_LOGIN, overriding pkg-config + LIBELOGIND_CFLAGS + C compiler flags for LIBELOGIND, overriding pkg-config + LIBELOGIND_LIBS + linker flags for LIBELOGIND, overriding pkg-config + LIBLSM_CFLAGS + C compiler flags for LIBLSM, overriding pkg-config + LIBLSM_LIBS linker flags for LIBLSM, overriding pkg-config + LIBCONFIG_CFLAGS + C compiler flags for LIBCONFIG, overriding pkg-config + LIBCONFIG_LIBS + linker flags for LIBCONFIG, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . diff --git a/gconf/deps b/udisks2/deps similarity index 54% rename from gconf/deps rename to udisks2/deps index c7b46bf..f01d399 100644 --- a/gconf/deps +++ b/udisks2/deps @@ -1,11 +1,13 @@ polkit -dbus-glib -python -git -intltool -gtk-doc +libatasmart +libgudev +libblockdev gobject-introspection -gnome-common -automake -autoconf +parted +libiscsi +gtk-doc gettext +automake +eudev + + diff --git a/udisks2/disable_logind_support.patch b/udisks2/disable_logind_support.patch new file mode 100644 index 0000000..3e7b184 --- /dev/null +++ b/udisks2/disable_logind_support.patch @@ -0,0 +1,10 @@ +--- udisks-udisks-2.9.0_orig/configure.ac 2020-05-26 18:07:07.000000000 +0300 ++++ udisks-udisks-2.9.0/configure.ac 2020-06-04 10:07:53.578649448 +0300 +@@ -201,6 +201,7 @@ + [PKG_CHECK_MODULES(LIBSYSTEMD_LOGIN, [libsystemd-login >= 44 libsystemd-daemon], + [have_libsystemd_login=yes], + [have_libsystemd_login=no])]) ++ have_libsystemd_login=no + if test "x$have_libsystemd_login" = "xyes"; then + AC_DEFINE([HAVE_LIBSYSTEMD_LOGIN], 1, [Define to 1 if libsystemd-login is available]) + fi diff --git a/udisks2/remove_check.patch b/udisks2/remove_check.patch new file mode 100644 index 0000000..ff39df5 --- /dev/null +++ b/udisks2/remove_check.patch @@ -0,0 +1,16 @@ +diff --git a/configure.ac b/configure.ac +index b5f25905..b9a15afb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -463,11 +463,6 @@ if test "x$enable_zram" = "xyes" \ + fi + fi + +- # needs systemd +- if test -z "$systemdsystemunitdir"; then +- AC_MSG_ERROR([systemd is required for ZRAM support]) +- fi +- + have_zram="yes" + + if test "$have_kbd" = "yes" -a "$have_swap" = "yes"; then diff --git a/udisks2/time b/udisks2/time new file mode 100644 index 0000000..059fd7d --- /dev/null +++ b/udisks2/time @@ -0,0 +1,6 @@ + + +real 2m4.493s +user 2m1.166s +sys 0m6.733s + diff --git a/udisks2/udisk2-2.9.4-do-not-free-static-daemon-resources.patch b/udisks2/udisk2-2.9.4-do-not-free-static-daemon-resources.patch new file mode 100644 index 0000000..18a4ed0 --- /dev/null +++ b/udisks2/udisk2-2.9.4-do-not-free-static-daemon-resources.patch @@ -0,0 +1,74 @@ +From d205057296957d6064825252a3d3377e809d6fed Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Wed, 6 Oct 2021 17:12:13 +0200 +Subject: [PATCH] udiskslinuxmountoptions: Do not free static daemon resources + +The GResource instance returned from udisks_daemon_resources_get_resource() +that calls g_static_resource_get_resource() internally is marked as +'(transfer none)' and should not be freed. In fact that causes double +free inside the g_static_resource_fini() atexit handler leading +to memory corruption causing random failures of further atexit +handlers such as cryptsetup and openssl destructors. + + Invalid read of size 4 + at 0x4BB03A4: g_resource_unref (gresource.c:527) + by 0x4BB2150: g_static_resource_fini (gresource.c:1449) + by 0x4010ADB: _dl_fini (dl-fini.c:139) + by 0x4EF0DF4: __run_exit_handlers (exit.c:113) + by 0x4EF0F6F: exit (exit.c:143) + by 0x4ED9566: __libc_start_call_main (libc_start_call_main.h:74) + by 0x4ED960B: __libc_start_main@@GLIBC_2.34 (libc-start.c:409) + by 0x128774: (below main) (in udisks/src/.libs/udisksd) + Address 0x5cc5fc0 is 0 bytes inside a block of size 16 free'd + at 0x48430E4: free (vg_replace_malloc.c:755) + by 0x4DB10BC: g_free (gmem.c:199) + by 0x4BB2148: g_static_resource_fini (gresource.c:1448) + by 0x4010ADB: _dl_fini (dl-fini.c:139) + by 0x4EF0DF4: __run_exit_handlers (exit.c:113) + by 0x4EF0F6F: exit (exit.c:143) + by 0x4ED9566: __libc_start_call_main (libc_start_call_main.h:74) + by 0x4ED960B: __libc_start_main@@GLIBC_2.34 (libc-start.c:409) + by 0x128774: (below main) (in udisks/src/.libs/udisksd) + Block was alloc'd at + at 0x484086F: malloc (vg_replace_malloc.c:380) + by 0x4DB47A8: g_malloc (gmem.c:106) + by 0x4BB19C7: UnknownInlinedFun (gresource.c:545) + by 0x4BB19C7: g_resource_new_from_data (gresource.c:613) + by 0x4BB1A88: register_lazy_static_resources_unlocked (gresource.c:1374) + by 0x4BB218C: UnknownInlinedFun (gresource.c:1393) + by 0x4BB218C: UnknownInlinedFun (gresource.c:1387) + by 0x4BB218C: g_static_resource_get_resource (gresource.c:1472) + by 0x14F6A3: UnknownInlinedFun (udisks-daemon-resources.c:284) + by 0x14F6A3: udisks_linux_mount_options_get_builtin (udiskslinuxmountoptions.c:612) + by 0x12CC6E: udisks_daemon_constructed (udisksdaemon.c:441) + by 0x4D1ED96: g_object_new_internal (gobject.c:1985) + by 0x4D20227: g_object_new_valist (gobject.c:2288) + by 0x4D2075C: g_object_new (gobject.c:1788) + by 0x129A5F: udisks_daemon_new (udisksdaemon.c:619) + by 0x129AD5: on_bus_acquired (main.c:63) + by 0x4C35C95: connection_get_cb.lto_priv.0 (gdbusnameowning.c:504) + by 0x4BD3F99: g_task_return_now (gtask.c:1219) + by 0x4BD419A: UnknownInlinedFun (gtask.c:1289) + by 0x4BD419A: g_task_return (gtask.c:1245) + by 0x4C31D51: bus_get_async_initable_cb (gdbusconnection.c:7433) + by 0x4BD3F99: g_task_return_now (gtask.c:1219) + by 0x4BD3FDC: complete_in_idle_cb (gtask.c:1233) + by 0x4DA852A: g_idle_dispatch (gmain.c:5897) + by 0x4DAC33E: UnknownInlinedFun (gmain.c:3381) + by 0x4DAC33E: g_main_context_dispatch (gmain.c:4099) +--- + src/udiskslinuxmountoptions.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/udiskslinuxmountoptions.c b/src/udiskslinuxmountoptions.c +index 7729d40159..819c9ba96a 100644 +--- a/src/udiskslinuxmountoptions.c ++++ b/src/udiskslinuxmountoptions.c +@@ -614,7 +614,6 @@ udisks_linux_mount_options_get_builtin (void) + "/org/freedesktop/UDisks2/data/builtin_mount_options.conf", + G_RESOURCE_LOOKUP_FLAGS_NONE, + &error); +- g_resource_unref (daemon_resource); + + if (builtin_opts_bytes == NULL) + { diff --git a/umockdev/PKGBUILD b/umockdev/PKGBUILD new file mode 100644 index 0000000..aed51b7 --- /dev/null +++ b/umockdev/PKGBUILD @@ -0,0 +1,46 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=umockdev +pkgver=0.17.18 +pkgrel=01 +pkgdesc="Record/mock hardware devices for bug reports and regression tests w/o systemd" +url="https://github.com/martinpitt/umockdev/" +depends=('libgudev') +makedepends=('meson' 'gobject-introspection' 'gtk-doc' 'vala') +#source=($pkgname-$pkgver.tar.gz::https://github.com/martinpitt/$pkgname/archive/$pkgver.tar.gz) +source=(https://github.com/martinpitt/umockdev/releases/download/$pkgver/$pkgname-$pkgver.tar.xz) + +build() { + cd $pkgname-$pkgver + + arch-meson -Dgtk_doc=true ../build + ninja -v -C ../build +} + +check() { + cd $pkgname-$pkgver + + meson test -C ../build --print-errorlogs +} + +package() { + cd $pkgname-$pkgver + + DESTDIR="${pkgdir}" meson install -C ../build +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('LGPL') + +sha256sums=(466ad3e0c715e56f50ea6a965165823d073a84137acb8a1e39b66573648a985f) # umockdev-0.17.18.tar.gz + +## d42f8e5a67cd551013cf06ba26d37180bfbdc9e6e67ea95e90426bf8e3973dac umockdev-0.17.18-01-x86_64.pkg.tar.lz + diff --git a/umockdev/PKGBUILD-arch b/umockdev/PKGBUILD-arch new file mode 100644 index 0000000..973f8b9 --- /dev/null +++ b/umockdev/PKGBUILD-arch @@ -0,0 +1,34 @@ +# Maintainer: Jaroslav Lichtblau +# Contributor: Marcin (CTRL) Wieczorek +# Contributor: Xiao-Long Chen + +pkgname=umockdev +pkgver=0.17.18 +pkgrel=1 +pkgdesc="Record/mock hardware devices for bug reports and regression tests" +arch=('x86_64') +url="https://github.com/martinpitt/umockdev/" +license=('LGPL') +depends=('systemd' 'libgudev') +makedepends=('meson' 'gobject-introspection' 'gtk-doc' 'vala') +source=(https://github.com/martinpitt/umockdev/releases/download/$pkgver/$pkgname-$pkgver.tar.xz) +sha256sums=('466ad3e0c715e56f50ea6a965165823d073a84137acb8a1e39b66573648a985f') + +build() { + cd $pkgname-$pkgver + + arch-meson -Dgtk_doc=true ../build + ninja -v -C ../build +} + +check() { + cd $pkgname-$pkgver + + meson test -C ../build --print-errorlogs +} + +package() { + cd $pkgname-$pkgver + + DESTDIR="${pkgdir}" meson install -C ../build +} diff --git a/umockdev/clean b/umockdev/clean new file mode 100644 index 0000000..3f5e386 --- /dev/null +++ b/umockdev/clean @@ -0,0 +1 @@ +rm -rf {umockdev*.tar.xz,src,pkg} diff --git a/umockdev/deps b/umockdev/deps new file mode 100644 index 0000000..78f44bf --- /dev/null +++ b/umockdev/deps @@ -0,0 +1,10 @@ +libgudev +meson +gobject-introspection +gtk-doc +vala +libmicrohttpd +valgrind +eudev + + diff --git a/umockdev/time b/umockdev/time new file mode 100644 index 0000000..a76808d --- /dev/null +++ b/umockdev/time @@ -0,0 +1,6 @@ + + +real 0m7.164s +user 0m5.051s +sys 0m0.897s + diff --git a/unbound/PKGBUILD b/unbound/PKGBUILD new file mode 100644 index 0000000..5fe59cb --- /dev/null +++ b/unbound/PKGBUILD @@ -0,0 +1,102 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=unbound +pkgver=1.17.1 +pkgrel=02 +pkgdesc="Validating, recursive, and caching DNS resolver w/o systemd" +url="https://unbound.net/" +depends=(dnssec-anchors fstrm hiredis ldns libnghttp2 libsodium ) +makedepends=(expat protobuf-c python swig ) +optdepends=( + 'expat: for unbound-anchor' + 'sh: for unbound-control-setup' + 'python: for python-bindings' +) +provides=(libunbound.so) +backup=(etc/$pkgname/$pkgname.conf) +source=( + https://unbound.net/downloads/$pkgname-$pkgver.tar.gz{,.asc} + $pkgname-1.14.0-trust_anchor_file.patch + $pkgname-sysusers.conf + $pkgname-tmpfiles.conf + $pkgname-trusted-key.hook +) + +prepare() { + # enable trusted-anchor-file and set it to an unbound specific location + patch -p1 -d $pkgname-$pkgver -i ../$pkgname-1.14.0-trust_anchor_file.patch + cd $pkgname-$pkgver + autoreconf -fiv +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --sbindir=/usr/bin \ + --disable-rpath \ + --enable-dnscrypt \ + --enable-dnstap \ + --enable-pie \ + --enable-relro-now \ + --enable-subnet \ + --disable-systemd \ + --disable-ipv6 \ + --enable-tfo-client \ + --enable-tfo-server \ + --enable-cachedb \ + --with-libhiredis \ + --with-conf-file=/etc/unbound/unbound.conf \ + --with-pidfile=/run/unbound.pid \ + --with-rootkey-file=/etc/trusted-key.key \ + --with-libevent \ + --with-libnghttp2 \ + --with-pyunbound + # prevent excessive overlinking due to libtool + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +check() { + cd ${pkgname}-${pkgver} + make -k check +} + +package() { + depends+=(libprotobuf-c.so + libevent libevent-2.1.so + openssl libcrypto.so libssl.so) + + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install +# install -vDm 644 contrib/${pkgname}.service -t "${pkgdir}"/usr/lib/systemd/system/ + install -vDm 644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/ + install -vDm 644 ../${pkgname}-sysusers.conf "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf + install -vDm 644 ../${pkgname}-tmpfiles.conf "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf + # libalpm hook to copy the dnssec-anchors provided key to /etc/unbound + install -vDm 644 ../unbound-trusted-key.hook -t "${pkgdir}"/usr/share/libalpm/hooks/ +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=(BSD) + +validpgpkeys=(EDFAA3F2CA4E6EB05681AF8E9F6F1C2D7E045F8D) # W.C.A. Wijngaards + +sha256sums=(ee4085cecce12584e600f3d814a28fa822dfaacec1f94c84bfd67f8a5571a5f4 # unbound-1.17.1.tar.gz + b66a35d11545a1334b8aec1848c8c7ee0e01ef4a2950f2260a7c26b6fd61bfbf # unbound-1.17.1.tar.gz.asc + 8e6e831e87484f8969a79bcd216b08b147935597c303101dad7ea1eb4cf3d326 # unbound-1.14.0-trust_anchor_file.patch + 85b8f00881fb93bcce83bdfe3246463a396eb5b352c0d7f5fca32fcb839d22fa # unbound-sysusers.conf + 31a573f43287dd7e3678be1680388bfc7d8dee8280eb2443f521a4b349aaa6b6 # unbound-tmpfiles.conf + afb7a0a5e2da327c27c8f666b1ffaf34689121684c301928624221ac1d0c066a) # unbound-trusted-key.hook + +## 449cf24e3c9a046c5edd6a35526370da1c8dd63885cdb414828b3fccd81dd3d4 unbound-1.17.1-02-x86_64.pkg.tar.lz diff --git a/unbound/PKGBUILD-arch b/unbound/PKGBUILD-arch new file mode 100644 index 0000000..982c4fa --- /dev/null +++ b/unbound/PKGBUILD-arch @@ -0,0 +1,103 @@ +# Maintainer: David Runge +# Maintainer: Bruno Pagani +# Maintainer: T.J. Townsend +# Contributor: Gaetan Bisson +# Contributor: Hisato Tatekura +# Contributor: Massimiliano Torromeo + +pkgname=unbound +pkgver=1.17.1 +pkgrel=2 +pkgdesc="Validating, recursive, and caching DNS resolver" +arch=(x86_64) +url="https://unbound.net/" +license=(BSD) +depends=(dnssec-anchors fstrm hiredis ldns libnghttp2 libsodium) +makedepends=(expat libevent openssl protobuf-c python swig systemd) +optdepends=( + 'expat: for unbound-anchor' + 'sh: for unbound-control-setup' + 'python: for python-bindings' +) +provides=(libunbound.so) +backup=(etc/$pkgname/$pkgname.conf) +source=( + https://unbound.net/downloads/$pkgname-$pkgver.tar.gz{,.asc} + $pkgname-1.14.0-trust_anchor_file.patch + $pkgname-sysusers.conf + $pkgname-tmpfiles.conf + $pkgname-trusted-key.hook +) +sha512sums=('10dd4c3aff77f1c0d19eb3c66956ed6ef1aae19e827d0b3259dc75d9de28dedd41862982a299e67ee07e17fb52058b4beee9d4b1d3bb0a3f633b9ba5b864d168' + 'SKIP' + '9590d3d459d96f99cbc7482fae0f5318dd22a034e45cff18079e4f3c9f9c3c1d7af90cdd5353fb469eac08c535555fd164097b496286b807b2117e8a3a6cd304' + 'ef71d4e9b0eb0cc602d66bd0573d9424578fe33ef28a852c582d56f0fd34fdd63046c365ef7aed8b84a461b81254240af7ad3fd539da72f9587817d21bd6c585' + '6b1849ae9d7cf427f6fa6cd0590e8f8c3f06210d2d6795e543b0f325a9e866db0f5db2275a29fa90f688783c0dd16f19c8a49a9817d5f5444e13f8f2df3ff712' + '613826cdf5ab6e77f2805fa2aa65272508dcd11090add1961b3df6dfac3b67db016bc9f45fbcf0ef0de82b2d602c153d5263a488027a6cf13a72680b581b266d') +b2sums=('c2dec1608e28302da33ee72144bb8eb16cdff2e949e548f9ea5edb10b370e396085de641446b1f94daeb96a48a02f9361ebae69f72f3d449575fe3ce93dcdb5b' + 'SKIP' + '0978ab5c0474ed29de9c0904a46d114413e094dafeadaac4f10cdbc19e4152fcc064d7cdb8c331da7c2531075aa699326b84e21da1a8218a6f00a10f0e107b3d' + '292a3c2e5fde292a03b6c9b2ddabd5089f52e73b50a404c3d9f54c1a43184924b661a21eea61cc521c594c1005a3b40b630fa585a38195c61298f9b24b248b92' + 'd3951006b43068be904c6b91a9e0563d56228225854e12b40abbdd4ba9b47338e97265837297a6de879acbc8051bb749163f9457683f5e12fc29ac2e7b687fd3' + 'd28785390eb6c125bd26ca11f097fe8864b080482157deeb7c70e9bee47ff2844abaed574db59a7c152ed3ec0acba05cfee4c3751f7a9f553320b064578f86c7') +validpgpkeys=(EDFAA3F2CA4E6EB05681AF8E9F6F1C2D7E045F8D) # W.C.A. Wijngaards + +prepare() { + # enable trusted-anchor-file and set it to an unbound specific location + patch -p1 -d $pkgname-$pkgver -i ../$pkgname-1.14.0-trust_anchor_file.patch + cd $pkgname-$pkgver + autoreconf -fiv +} + +build() { + local configure_options=( + --prefix=/usr + --sysconfdir=/etc + --localstatedir=/var + --sbindir=/usr/bin + --disable-rpath + --enable-dnscrypt + --enable-dnstap + --enable-pie + --enable-relro-now + --enable-subnet + --enable-systemd + --enable-tfo-client + --enable-tfo-server + --enable-cachedb + --with-libhiredis + --with-conf-file=/etc/unbound/unbound.conf + --with-pidfile=/run/unbound.pid + --with-rootkey-file=/etc/trusted-key.key + --with-libevent + --with-libnghttp2 + --with-pyunbound + ) + + cd $pkgname-$pkgver + ./configure "${configure_options[@]}" + # prevent excessive overlinking due to libtool + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +check() { + make -k check -C $pkgname-$pkgver +} + +package() { + depends+=( + libevent libevent-2.1.so + openssl libcrypto.so libssl.so + protobuf-c libprotobuf-c.so + systemd-libs libsystemd.so + ) + + make DESTDIR="$pkgdir" install -C $pkgname-$pkgver + install -vDm 644 $pkgname-$pkgver/contrib/$pkgname.service -t "$pkgdir/usr/lib/systemd/system/" + install -vDm 644 $pkgname-$pkgver/LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/" + install -vDm 644 $pkgname-sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" + install -vDm 644 $pkgname-tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + # libalpm hook to copy the dnssec-anchors provided key to /etc/unbound + install -vDm 644 unbound-trusted-key.hook -t "$pkgdir/usr/share/libalpm/hooks/" +} diff --git a/unbound/clean b/unbound/clean new file mode 100644 index 0000000..473b774 --- /dev/null +++ b/unbound/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,*.tar.gz*} diff --git a/unbound/deps b/unbound/deps new file mode 100644 index 0000000..e531beb --- /dev/null +++ b/unbound/deps @@ -0,0 +1,12 @@ +dnssec-anchors +fstrm +hiredis +ldns +libsodium +protobuf-c +python +swig +autoconf +automake + + diff --git a/unbound/key b/unbound/key new file mode 100644 index 0000000..db746b6 --- /dev/null +++ b/unbound/key @@ -0,0 +1 @@ +gpg -v --recv-key 9F6F1C2D7E045F8D diff --git a/unbound/time b/unbound/time new file mode 100644 index 0000000..f0d8b1e --- /dev/null +++ b/unbound/time @@ -0,0 +1,5 @@ + +real 1m18.666s +user 2m57.157s +sys 0m15.458s + diff --git a/unbound/unbound-1.14.0-trust_anchor_file.patch b/unbound/unbound-1.14.0-trust_anchor_file.patch new file mode 100644 index 0000000..39abd28 --- /dev/null +++ b/unbound/unbound-1.14.0-trust_anchor_file.patch @@ -0,0 +1,12 @@ +diff -ruN a/doc/example.conf.in b/doc/example.conf.in +--- a/doc/example.conf.in 2021-12-09 08:55:44.000000000 +0100 ++++ b/doc/example.conf.in 2021-12-11 23:42:13.542310886 +0100 +@@ -533,7 +533,7 @@ + # with several entries, one file per entry. + # Zone file format, with DS and DNSKEY entries. + # Note this gets out of date, use auto-trust-anchor-file please. +- # trust-anchor-file: "" ++ trust-anchor-file: "/etc/unbound/trusted-key.key" + + # Trusted key for validation. DS or DNSKEY. specify the RR on a + # single line, surrounded by "". TTL is ignored. class is IN default. diff --git a/unbound/unbound-sysusers.conf b/unbound/unbound-sysusers.conf new file mode 100644 index 0000000..3cd34bf --- /dev/null +++ b/unbound/unbound-sysusers.conf @@ -0,0 +1 @@ +u unbound - "unbound" /etc/unbound diff --git a/unbound/unbound-tmpfiles.conf b/unbound/unbound-tmpfiles.conf new file mode 100644 index 0000000..7de06d4 --- /dev/null +++ b/unbound/unbound-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/unbound/trusted-key.key - - - - /etc/trusted-key.key diff --git a/unbound/unbound-trusted-key.hook b/unbound/unbound-trusted-key.hook new file mode 100644 index 0000000..a9c6bf5 --- /dev/null +++ b/unbound/unbound-trusted-key.hook @@ -0,0 +1,10 @@ +[Trigger] +Type = Path +Target = etc/trusted-key.key +Operation = Install +Operation = Upgrade + +[Action] +Description = Updating trusted-key.key for unbound... +When = PostTransaction +Exec = /bin/cp -f /etc/trusted-key.key /etc/unbound/ diff --git a/unrtf/PKGBUILD b/unrtf/PKGBUILD new file mode 100644 index 0000000..3fc3af7 --- /dev/null +++ b/unrtf/PKGBUILD @@ -0,0 +1,43 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=unrtf +pkgver=0.21.10 +pkgrel=02 +pkgdesc="Command-line program which converts RTF documents to other formats" +url="https://www.gnu.org/software/unrtf/unrtf.html" +depends=('glibc') +changelog=$pkgname.changelog +source=(https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz{,.sig}) + +build() { + cd "${srcdir}"/$pkgname-$pkgver + + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}"/$pkgname-$pkgver + + make DESTDIR="${pkgdir}" install +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL3') + +validpgpkeys=('46EA854F5FC5F5A0A9D2BFE89175BF0B3EC83090') # Dave Davey (lgf) + +sha256sums=(b49f20211fa69fff97d42d6e782a62d7e2da670b064951f14bbff968c93734ae # unrtf-0.21.10.tar.gz + 6d9c595d9d052984865a215bb2c2a9c62cdbb8e54253082ae999bb74a724b0a3) # unrtf-0.21.10.tar.gz.sig + +## 7a328befa5547b8462989206d43161a5ebcf063ee69a13ec869b00d1f4b926ec unrtf-0.21.10-02-x86_64.pkg.tar.lz + + diff --git a/unrtf/PKGBUILD-arch b/unrtf/PKGBUILD-arch new file mode 100644 index 0000000..2d37dc4 --- /dev/null +++ b/unrtf/PKGBUILD-arch @@ -0,0 +1,30 @@ +# Maintainer: Jaroslav Lichtblau +# Contributor: Alexander Fehr +# Contributor: froggie + +pkgname=unrtf +pkgver=0.21.10 +pkgrel=2 +pkgdesc="Command-line program which converts RTF documents to other formats" +arch=('x86_64') +url="https://www.gnu.org/software/unrtf/unrtf.html" +license=('GPL3') +depends=('glibc') +changelog=$pkgname.changelog +source=(https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz{,.sig}) +sha256sums=('b49f20211fa69fff97d42d6e782a62d7e2da670b064951f14bbff968c93734ae' + 'SKIP') +validpgpkeys=('46EA854F5FC5F5A0A9D2BFE89175BF0B3EC83090') # Dave Davey (lgf) + +build() { + cd "${srcdir}"/$pkgname-$pkgver + + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}"/$pkgname-$pkgver + + make DESTDIR="${pkgdir}" install +} diff --git a/unrtf/clean b/unrtf/clean new file mode 100644 index 0000000..abefeb7 --- /dev/null +++ b/unrtf/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,*.gz*} diff --git a/unrtf/configure b/unrtf/configure new file mode 100644 index 0000000..66d22f1 --- /dev/null +++ b/unrtf/configure @@ -0,0 +1,91 @@ +`configure' configures unrtf 0.21.10 to adapt to many kinds of systems. + +Usage: ./configure [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print `checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for `--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or `..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [/usr/local] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, `make install' will install all the files in +`/usr/local/bin', `/usr/local/lib' etc. You can specify +an installation prefix other than `/usr/local' using `--prefix', +for instance `--prefix=$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/unrtf] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . diff --git a/unrtf/deps b/unrtf/deps new file mode 100644 index 0000000..d99bfa2 --- /dev/null +++ b/unrtf/deps @@ -0,0 +1,2 @@ + + diff --git a/unrtf/key b/unrtf/key new file mode 100644 index 0000000..eb46c62 --- /dev/null +++ b/unrtf/key @@ -0,0 +1 @@ +gpg -v --recv-key 9175BF0B3EC83090 diff --git a/unrtf/time b/unrtf/time new file mode 100644 index 0000000..7118f0a --- /dev/null +++ b/unrtf/time @@ -0,0 +1,6 @@ + + +real 0m5.140s +user 0m4.407s +sys 0m0.751s + diff --git a/unrtf/unrtf.changelog b/unrtf/unrtf.changelog new file mode 100644 index 0000000..664ccb2 --- /dev/null +++ b/unrtf/unrtf.changelog @@ -0,0 +1,29 @@ +2018-11-24 Jaroslav Lichtblau + * unrtf 0.21.10-1 + +2017-01-05 Jaroslav Lichtblau + * unrtf 0.21.9-2 FS#52362 fix + +2015-03-17 Jaroslav Lichtblau + * unrtf 0.21.9-1 + +2014-12-16 Jaroslav Lichtblau + * unrtf 0.21.7-1 + +2013-08-08 Jaroslav Lichtblau + * unrtf 0.21.5-1 + +2013-04-20 Jaroslav Lichtblau + * unrtf 0.21.3-1 + +2011-12-08 Jaroslav Lichtblau + * unrtf 0.21.2 + +2010-01-18 Jaroslav Lichtblau + * Update to major release 0.21.1 + +2009-05-31 Jaroslav Lichtblau + * FS#14043 fixed + +2009-03-25 Jaroslav Lichtblau + * Update to major release 0.21.0 diff --git a/upower/.gitignore b/upower/.gitignore deleted file mode 100644 index 8f0693b..0000000 --- a/upower/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/PKGBUILD -/PKGBUILD-arch.new diff --git a/upower/PKGBUILD b/upower/PKGBUILD new file mode 100644 index 0000000..9080234 --- /dev/null +++ b/upower/PKGBUILD @@ -0,0 +1,63 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=upower +pkgver=1.90.2 +pkgrel=01 +pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics w/o systemd" +url="https://upower.freedesktop.org" +depends=(libimobiledevice libgudev usbmuxd) +makedepends=(docbook-xsl gobject-introspection python git gtk-doc meson) +checkdepends=(python-{dbus,dbusmock,gobject} umockdev) +backup=(etc/UPower/UPower.conf) +# options=(debug) ## uncomment this to have the debug pkg produced +_commit=8dcf54440d7eb58b75d7982bc1c29ee35dccf0c2 # tags/v1.90.2^0 +source=("git+https://gitlab.freedesktop.org/upower/upower.git#commit=$_commit") + +pkgver() { + cd upower + git describe --tags | sed -e 's/^v\|^UPOWER_//;s/_/\./g;s/[^-]*-g/r&/;s/-/+/g' +} + +prepare() { + cd upower + +# # Fix use of libimobiledevice +# git cherry-pick -n 81a89385a45d3de1028bcd86b3688fb465b4035c + +} + +build() { + arch-meson upower build \ + -D systemdsystemunitdir=no + meson compile -C build +} + +#check() { +# meson test -C build --print-errorlogs +#} + +package() { + depends+=(libg{lib,object,io}-2.0.so) + provides+=(libupower-glib.so) + + meson install -C build --destdir "$pkgdir" + + # Remove installed-tests + rm -rv "$pkgdir"/usr/{lib/upower,share/installed-tests} + +} + +#---- arch license gpg-key && sha256sums ---- + +arch=(x86_64) + +license=(GPL) + +sha256sums=(SKIP) + +## diff --git a/upower/PKGBUILD-arch.new b/upower/PKGBUILD-arch.new new file mode 100644 index 0000000..b0000ce --- /dev/null +++ b/upower/PKGBUILD-arch.new @@ -0,0 +1,65 @@ +# Maintainer: Jan Alexander Steffens (heftig) +# Contributor: Jan de Groot + +pkgname=upower +pkgver=1.90.2 +pkgrel=1 +pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics" +url="https://upower.freedesktop.org" +arch=(x86_64) +license=(GPL) +depends=( + libgudev + libimobiledevice + systemd + usbmuxd +) +makedepends=( + docbook-xsl + git + gobject-introspection + gtk-doc + meson + python +) +checkdepends=( + python-dbus + python-dbusmock + python-gobject + python-packaging + umockdev +) +backup=(etc/UPower/UPower.conf) +_commit=8dcf54440d7eb58b75d7982bc1c29ee35dccf0c2 # tags/v1.90.2^0 +source=("git+https://gitlab.freedesktop.org/upower/upower.git#commit=$_commit") +b2sums=('SKIP') + +pkgver() { + cd upower + git describe --tags | sed -e 's/^v\|^UPOWER_//;s/_/\./g;s/[^-]*-g/r&/;s/-/+/g' +} + +prepare() { + cd upower +} + +build() { + arch-meson upower build + meson compile -C build +} + +check() { + meson test -C build --print-errorlogs +} + +package() { + depends+=(libg{lib,object,io}-2.0.so) + provides+=(libupower-glib.so) + + meson install -C build --destdir "$pkgdir" + + # Remove installed-tests + rm -rv "$pkgdir"/usr/{lib/upower,share/installed-tests} +} + +# vim:set sw=2 sts=-1 et: diff --git a/usb_modeswitch/PKGBUILD b/usb_modeswitch/PKGBUILD new file mode 100644 index 0000000..352be7b --- /dev/null +++ b/usb_modeswitch/PKGBUILD @@ -0,0 +1,59 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=usb_modeswitch +pkgver=2.6.1 +pkgrel=03 +_pkgdata=20191128 +pkgdesc="Activating switchable USB devices on Linux w/o systemd" +arch=('x86_64') +url="http://www.draisberghof.de/usb_modeswitch/" +depends=('libusb' 'tcl') +makedepends=('gcc' 'make') +backup=("etc/$pkgname.conf") +source=("http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-${pkgver}.tar.bz2" + "http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-${_pkgdata}.tar.bz2" + "usb-modeswitch-${pkgver}-device_reference.txt::http://www.draisberghof.de/usb_modeswitch/device_reference.txt") + +prepare() { + cd "$srcdir"/usb-modeswitch-$pkgver/ + sed -i 's|/usr/sbin/usb_mode|/usr/bin/usb_mode|g' usb_modeswitch{.conf,_dispatcher.tcl,.sh} +} + +build() { + cd "$srcdir"/usb-modeswitch-$pkgver/ + make clean + make SBINDIR=/usr/bin +} + +package() { + cd "$srcdir"/usb-modeswitch-$pkgver/ + + mkdir -p "$pkgdir"/usr/lib/udev + mkdir -p "$pkgdir"/etc + mkdir -p "$pkgdir"/usr/share/man/man1 + + make \ + DESTDIR="$pkgdir" \ + UDEVDIR="$pkgdir"/usr/lib/udev \ + SBINDIR="$pkgdir"/usr/bin \ + install + + cp "$srcdir"/usb-modeswitch-${pkgver}-device_reference.txt "$pkgdir"/etc/usb_modeswitch.setup + + cd "$srcdir"/usb-modeswitch-data-${_pkgdata} + make DESTDIR="$pkgdir" install RULESDIR="$pkgdir"/usr/lib/udev/rules.d +} + +#---- license gpg-key sha256sums ---- + +license=('GPL') + +sha256sums=('5195d9e136e52f658f19e9f93e4f982b1b67bffac197d0a455cd8c2cd245fa34' + '3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9' + '846b45a82a31c9755ab86d9c051e706aff445e1e793575b7ae195a4edeb4d594') + diff --git a/usb_modeswitch/PKGBUILD-arch b/usb_modeswitch/PKGBUILD-arch new file mode 100644 index 0000000..e60228a --- /dev/null +++ b/usb_modeswitch/PKGBUILD-arch @@ -0,0 +1,51 @@ +# Maintainer: Sergej Pupykin + +pkgname=usb_modeswitch +pkgver=2.6.1 +pkgrel=3 +_pkgdata=20191128 +pkgdesc="Activating switchable USB devices on Linux." +arch=('x86_64') +url="http://www.draisberghof.de/usb_modeswitch/" +license=('GPL') +depends=('libusb' 'tcl') +makedepends=('gcc' 'make' 'systemd') +backup=("etc/$pkgname.conf") +source=("http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-${pkgver}.tar.bz2" + "http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-${_pkgdata}.tar.bz2" + "usb-modeswitch-${pkgver}-device_reference.txt::http://www.draisberghof.de/usb_modeswitch/device_reference.txt") +sha256sums=('5195d9e136e52f658f19e9f93e4f982b1b67bffac197d0a455cd8c2cd245fa34' + '3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9' + '846b45a82a31c9755ab86d9c051e706aff445e1e793575b7ae195a4edeb4d594') + +prepare() { + cd "$srcdir"/usb-modeswitch-$pkgver/ + sed -i 's|/usr/sbin/usb_mode|/usr/bin/usb_mode|g' usb_modeswitch{.conf,_dispatcher.tcl,.sh} +} + +build() { + cd "$srcdir"/usb-modeswitch-$pkgver/ + make clean + make SBINDIR=/usr/bin +} + +package() { + cd "$srcdir"/usb-modeswitch-$pkgver/ + + mkdir -p "$pkgdir"/usr/lib/udev + mkdir -p "$pkgdir"/etc + mkdir -p "$pkgdir"/usr/share/man/man1 + mkdir -p "$pkgdir"/usr/lib/systemd/system + + make \ + DESTDIR="$pkgdir" \ + UDEVDIR="$pkgdir"/usr/lib/udev \ + SBINDIR="$pkgdir"/usr/bin \ + SYSDIR="$pkgdir"/usr/lib/systemd/system \ + install + + cp "$srcdir"/usb-modeswitch-${pkgver}-device_reference.txt "$pkgdir"/etc/usb_modeswitch.setup + + cd "$srcdir"/usb-modeswitch-data-${_pkgdata} + make DESTDIR="$pkgdir" install RULESDIR="$pkgdir"/usr/lib/udev/rules.d +} diff --git a/usb_modeswitch/clean b/usb_modeswitch/clean new file mode 100644 index 0000000..8fa4f51 --- /dev/null +++ b/usb_modeswitch/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,*.tar.bz2,usb*.txt} diff --git a/usb_modeswitch/deps b/usb_modeswitch/deps new file mode 100644 index 0000000..08ef48d --- /dev/null +++ b/usb_modeswitch/deps @@ -0,0 +1,2 @@ +libusb +tcl diff --git a/usb_modeswitch/time b/usb_modeswitch/time new file mode 100644 index 0000000..327ff2b --- /dev/null +++ b/usb_modeswitch/time @@ -0,0 +1,4 @@ + +real 0m8.259s +user 0m4.443s +sys 0m0.732s diff --git a/viewnior/PKGBUILD b/viewnior/PKGBUILD new file mode 100644 index 0000000..acb976e --- /dev/null +++ b/viewnior/PKGBUILD @@ -0,0 +1,49 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=viewnior +pkgver=1.8 +pkgrel=05 +pkgdesc="A simple, fast and elegant image viewer program" +url="https://siyanpanayotov.com/project/viewnior" +depends=('gtk2' 'exiv2') +makedepends=('meson') +optdepends=('webp-pixbuf-loader') +source=(https://github.com/hellosiyan/Viewnior/archive/$pkgname-$pkgver.tar.gz + exiv2-0.28.patch) + +prepare() { +# Fix build with exiv2 0.28 + patch -d Viewnior-viewnior-$pkgver -p1 < exiv2-0.28.patch +} + +build() { + cd Viewnior-viewnior-$pkgver + arch-meson build + ninja -C build +} + +check() { + cd Viewnior-viewnior-$pkgver + meson test -C build +} + +package() { + cd Viewnior-viewnior-$pkgver + DESTDIR="$pkgdir" meson install -C build +} + +#---- arch license gpg-key and sha256sums ---- + +arch=(x86_64) + +license=(GPL3) + +sha256sums=(b9319171ebca23929e6ea8039c194b1595d92e764db5e3890836fb5c36e233b0 # viewnior-1.8.tar.gz + 307550f68decc1d2bd67bb0c5ec52205c654446fcd06c6ea14973406790535c3) # exiv2-0.28.patch + +## 8a02fb5fcd24a44be26907d61a302f23f451e8af163312f122ccaad75ae9b29b viewnior-1.8-05-x86_64.pkg.tar.lz diff --git a/viewnior/PKGBUILD-arch b/viewnior/PKGBUILD-arch new file mode 100644 index 0000000..dc96edd --- /dev/null +++ b/viewnior/PKGBUILD-arch @@ -0,0 +1,39 @@ +# Maintainer: Sergej Pupykin +# Contributor: Christoph Zeiler +# Maintainer: M Rawash + +pkgname=viewnior +pkgver=1.8 +pkgrel=5 +pkgdesc="A simple, fast and elegant image viewer program" +arch=('x86_64') +url="https://siyanpanayotov.com/project/viewnior" +license=('GPL3') +depends=('gtk2' 'exiv2') +makedepends=('meson') +optdepends=('webp-pixbuf-loader') +source=(https://github.com/hellosiyan/Viewnior/archive/viewnior-$pkgver.tar.gz + exiv2-0.28.patch) +sha256sums=('b9319171ebca23929e6ea8039c194b1595d92e764db5e3890836fb5c36e233b0' + '307550f68decc1d2bd67bb0c5ec52205c654446fcd06c6ea14973406790535c3') + +prepare() { +# Fix build with exiv2 0.28 + patch -d Viewnior-viewnior-$pkgver -p1 < exiv2-0.28.patch +} + +build() { + cd Viewnior-viewnior-$pkgver + arch-meson build + ninja -C build +} + +check() { + cd Viewnior-viewnior-$pkgver + meson test -C build +} + +package() { + cd Viewnior-viewnior-$pkgver + DESTDIR="$pkgdir" meson install -C build +} diff --git a/viewnior/clean b/viewnior/clean new file mode 100644 index 0000000..f8c4867 --- /dev/null +++ b/viewnior/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,viewnior*tar.gz*} diff --git a/viewnior/deps b/viewnior/deps new file mode 100644 index 0000000..5068ab8 --- /dev/null +++ b/viewnior/deps @@ -0,0 +1,5 @@ +gtk2 +exiv2 +meson +at-spi2-core + diff --git a/viewnior/exiv2-0.28.patch b/viewnior/exiv2-0.28.patch new file mode 100644 index 0000000..73d5f44 --- /dev/null +++ b/viewnior/exiv2-0.28.patch @@ -0,0 +1,145 @@ +From b6bb81a1b46e911d15bbf9a730972523de177705 Mon Sep 17 00:00:00 2001 +From: tastytea +Date: Tue, 16 May 2023 10:54:40 +0200 +Subject: [PATCH 1/2] change exiv2 AutoPtr to unique_ptr + +exiv2-0.28.0 removed Exiv2::Image::AutoPtr and added +Exiv2::Image::UniquePtr instead. since it's a typedef for +std::unique_ptr, i'm using that directly instead of adding a +condition on the exiv2 version. +--- + src/uni-exiv2.cpp | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +diff --git a/src/uni-exiv2.cpp b/src/uni-exiv2.cpp +index 0d14b9f..77064c2 100644 +--- a/src/uni-exiv2.cpp ++++ b/src/uni-exiv2.cpp +@@ -22,12 +22,13 @@ + + #include + #include ++#include + + #include "uni-exiv2.hpp" + + #define ARRAY_SIZE(array) (sizeof array/sizeof(array[0])) + +-static Exiv2::Image::AutoPtr cached_image; ++static std::unique_ptr cached_image; + + extern "C" + void +@@ -35,8 +36,8 @@ uni_read_exiv2_map(const char *uri, void (*callback)(const char*, const char*, v + { + Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute); + try { +- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(uri); +- if ( image.get() == 0 ) { ++ std::unique_ptr image = Exiv2::ImageFactory::open(uri); ++ if (image == nullptr) { + return; + } + +@@ -91,14 +92,14 @@ uni_read_exiv2_to_cache(const char *uri) + { + Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute); + +- if ( cached_image.get() != NULL ) { ++ if (cached_image != nullptr) { + cached_image->clearMetadata(); +- cached_image.reset(NULL); ++ cached_image.reset(nullptr); + } + + try { + cached_image = Exiv2::ImageFactory::open(uri); +- if ( cached_image.get() == 0 ) { ++ if (cached_image == nullptr) { + return 1; + } + +@@ -116,13 +117,13 @@ uni_write_exiv2_from_cache(const char *uri) + { + Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute); + +- if ( cached_image.get() == NULL ) { ++ if (cached_image == nullptr) { + return 1; + } + + try { +- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(uri); +- if ( image.get() == 0 ) { ++ std::unique_ptr image = Exiv2::ImageFactory::open(uri); ++ if (image == nullptr) { + return 2; + } + +@@ -130,7 +131,7 @@ uni_write_exiv2_from_cache(const char *uri) + image->writeMetadata(); + + cached_image->clearMetadata(); +- cached_image.reset(NULL); ++ cached_image.reset(nullptr); + + return 0; + } catch (Exiv2::AnyError& e) { + +From 47d0b98cb46526aa8aa035bebcabc14a11fa57ee Mon Sep 17 00:00:00 2001 +From: tastytea +Date: Tue, 16 May 2023 11:17:00 +0200 +Subject: [PATCH 2/2] add support for exiv-0.28.0 errors + +exiv2-0.28.0 changed Exiv2::AnyError to Exiv2::Error. +--- + src/uni-exiv2.cpp | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/src/uni-exiv2.cpp b/src/uni-exiv2.cpp +index 77064c2..567a50f 100644 +--- a/src/uni-exiv2.cpp ++++ b/src/uni-exiv2.cpp +@@ -28,6 +28,15 @@ + + #define ARRAY_SIZE(array) (sizeof array/sizeof(array[0])) + ++#define EXIV_ERROR Exiv2::AnyError ++#ifdef EXIV2_VERSION ++ #ifdef EXIV2_TEST_VERSION ++ #if EXIV2_TEST_VERSION(0,28,0) ++ #define EXIV_ERROR Exiv2::Error ++ #endif ++ #endif ++#endif ++ + static std::unique_ptr cached_image; + + extern "C" +@@ -81,7 +90,7 @@ uni_read_exiv2_map(const char *uri, void (*callback)(const char*, const char*, v + } + } + } +- } catch (Exiv2::AnyError& e) { ++ } catch (EXIV_ERROR& e) { + std::cerr << "Exiv2: '" << e << "'\n"; + } + } +@@ -104,7 +113,7 @@ uni_read_exiv2_to_cache(const char *uri) + } + + cached_image->readMetadata(); +- } catch (Exiv2::AnyError& e) { ++ } catch (EXIV_ERROR& e) { + std::cerr << "Exiv2: '" << e << "'\n"; + } + +@@ -134,7 +143,7 @@ uni_write_exiv2_from_cache(const char *uri) + cached_image.reset(nullptr); + + return 0; +- } catch (Exiv2::AnyError& e) { ++ } catch (EXIV_ERROR& e) { + std::cerr << "Exiv2: '" << e << "'\n"; + } + diff --git a/viewnior/fix-appdata.patch b/viewnior/fix-appdata.patch new file mode 100644 index 0000000..90a2a18 --- /dev/null +++ b/viewnior/fix-appdata.patch @@ -0,0 +1,23 @@ +From 1b1731f3c957e380173251166fcf3c58bbdff60a Mon Sep 17 00:00:00 2001 +From: Siyan Panayotov +Date: Wed, 23 May 2018 19:13:04 +0200 +Subject: [PATCH] Fix invalid XML in viewnior.appdata.xml + +--- + data/viewnior.appdata.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/data/viewnior.appdata.xml b/data/viewnior.appdata.xml +index 95f4976..35d7bbe 100644 +--- a/data/viewnior.appdata.xml ++++ b/data/viewnior.appdata.xml +@@ -22,5 +22,5 @@ + https://siyanpanayotov.com/images/vnr_pref_window.png + https://siyanpanayotov.com/images/vnr_navigation_window.png + +- contact_AT_siyanpanayotov.com +- +\ No newline at end of file ++ contact_AT_siyanpanayotov.com ++ +\ No newline at end of file diff --git a/viewnior/time b/viewnior/time new file mode 100644 index 0000000..b52f84e --- /dev/null +++ b/viewnior/time @@ -0,0 +1,6 @@ + + +real 0m9.327s +user 0m13.318s +sys 0m1.837s + diff --git a/xfsdump/PKGBUILD b/xfsdump/PKGBUILD new file mode 100644 index 0000000..23963bf --- /dev/null +++ b/xfsdump/PKGBUILD @@ -0,0 +1,45 @@ +#!/usr/bin/bash +# JOBoRun : Jwm OpenBox Obarun RUNit +# Maintainer : Joe Bo Run +# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" +# Website : https://pozol.eu +#-----------------------------------------| DESCRIPTION |--------------------------------------- + +pkgname=xfsdump +pkgver=3.1.12 +pkgrel=01 +pkgdesc="Additional XFS filesystem utilities" +url="http://xfs.org" +depends=('xfsprogs' 'attr' 'acl' 'dmapi' 'util-linux-libs' 'gcc-libs' 'ncurses' 'glibc') +source=(https://kernel.org/pub/linux/utils/fs/xfs/xfsdump/xfsdump-${pkgver}.tar.{xz,sign}) + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr --sbindir=/usr/bin INSTALL_USER=root INSTALL_GROUP=root + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + + # root /sbin directory can't be overridden properly with configure, + # so move files manually + mv -vf "${pkgdir}/sbin/"* "${pkgdir}/usr/bin/" + rmdir "${pkgdir}/sbin" +} + +#---- arch license gpg-key & sha256sums ---- + +arch=(x86_64) + +license=('GPL') + +validpgpkeys=('2B8185919E8D248981869DED20AE1692E13DDEE0' # # Eric R. Sandeen + '4020459E58C1A52511F5399113F703E6C11CF6F0') # # Carlos Eduardo Maiolino + +sha256sums=(f39c4c1b306b2dd7ec979c0e94d60fe69083d2ecf9af051cac5ef3bed772c74a # xfsdump-3.1.12.tar.xz + 11e781f437cf4e46c47222549508691fc5b8eac59c039d165380525805f53830) # xfsdump-3.1.12.tar.sign + +## 1eabcec46e2d0286d92d8a82b12a376ad5610dc07651422ac50c766804b45c19 xfsdump-3.1.12-01-x86_64.pkg.tar.lz + diff --git a/xfsdump/PKGBUILD-arch b/xfsdump/PKGBUILD-arch new file mode 100644 index 0000000..09f6665 --- /dev/null +++ b/xfsdump/PKGBUILD-arch @@ -0,0 +1,37 @@ +# Maintainer: Jiachen YANG +# Contributor: Allen Wild +# Contributor: judd +# Contributor: dkaylor +# Contributor: Pablo Lezaeta + +pkgname=xfsdump +pkgver=3.1.12 +pkgrel=1 +pkgdesc="Additional XFS filesystem utilities" +arch=(x86_64) +url="http://xfs.org" +license=('GPL') +depends=('xfsprogs' 'attr' 'acl' 'dmapi' 'util-linux-libs' 'gcc-libs' 'ncurses' 'glibc') +source=(https://kernel.org/pub/linux/utils/fs/xfs/xfsdump/xfsdump-${pkgver}.tar.{xz,sign}) +# Eric R. Sandeen +# Carlos Eduardo Maiolino +validpgpkeys=('2B8185919E8D248981869DED20AE1692E13DDEE0' +'4020459E58C1A52511F5399113F703E6C11CF6F0') +sha256sums=('f39c4c1b306b2dd7ec979c0e94d60fe69083d2ecf9af051cac5ef3bed772c74a' + 'SKIP') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr --sbindir=/usr/bin INSTALL_USER=root INSTALL_GROUP=root + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + + # root /sbin directory can't be overridden properly with configure, + # so move files manually + mv -vf "${pkgdir}/sbin/"* "${pkgdir}/usr/bin/" + rmdir "${pkgdir}/sbin" +} diff --git a/xfsdump/clean b/xfsdump/clean new file mode 100644 index 0000000..3c50faa --- /dev/null +++ b/xfsdump/clean @@ -0,0 +1 @@ +rm -rf {src,pkg,xfsdum*tar.*} diff --git a/xfsdump/deps b/xfsdump/deps new file mode 100644 index 0000000..4a18f26 --- /dev/null +++ b/xfsdump/deps @@ -0,0 +1,6 @@ +xfsprogs +dmapi +gettext +libxml2 + + diff --git a/xfsdump/key b/xfsdump/key new file mode 100644 index 0000000..f187079 --- /dev/null +++ b/xfsdump/key @@ -0,0 +1,2 @@ +gpg -v --recv-key 20AE1692E13DDEE0 +gpg -v --recv-key B45618C36A24FD23 diff --git a/xfsdump/time b/xfsdump/time new file mode 100644 index 0000000..908d051 --- /dev/null +++ b/xfsdump/time @@ -0,0 +1,6 @@ + + +real 0m28.148s +user 0m26.828s +sys 0m2.474s + diff --git a/xorg-xinput/xinput-1.6.4.tar.xz b/xorg-xinput/xinput-1.6.4.tar.xz deleted file mode 100644 index ec13487f329255719f95394a82f97a845c8d8368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153160 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�v0>7`#fyvZSG>1qbp8Icz)kef0hTW5nO^f|%Kmmn(aK}7F_x>3@DJ@ToZ*M= zs;tk5rl+k1Yw=Hjn`I;qgo00~M+Iu}WsA2)f>#lSfi<(QFpKI=%CG|t5eqF5D%kk7 z0Y$ndx9K|bQ+J{XMgc5xI95a#EfGtkx2)N(%iiSelcAHOohKJ|Z!xbQ;SQ>VHBNMP^Mg>W{IomxOMgnob~ld<>xd(cfyx*Gq2|j=9r!63@`W@V!!EHvR@y zxnOB!S)bDLf8Xf!4am?ek%qBGt(`q%az%)oI8nS=a`W9YmYRQFVk|d!r7Ml@Mg4ri zB|!-9MdnfM5p2V<-??Fzydr#DRswGR!!a2zM-HtVC$B0u9>*<^)rdpMUz1Lzkr|w*q3Ol@$goz?f zY%{8Px;M4R7fGUG<%+CQzlWHd|8*`AzUQ7=hWT#fq2*@d$sU|q;%U+x-Q3$s#+skO zqt7Datm0XjvgK2{e>4C5#rr?fWX0QZ0sXM_C7~Jb3!_bl;b)jGLqXKSq6kyBhP#KuaiXK+zWX?FO!pp2@N4`3g#vaanMm)!hx4K}n zhgpQr0Ha4UWr#d~Kt)2EV&xPiZS#_+0(C4KQFOoB`{&>x++rDb8!1#a5rO)sJUBCh zlk(@^HLZUCqvF7sC9G6i@wXi`jGuLO*5LItU_kFKRfQ`>j`l~YoWN|+)q0t5qCH&& z1-U=RFXL`6=#r&YMPaa~p20tvB!k>(C0hkrLn_D>d~?J80351gU4{=RLix!gPD?R*|MU{*o#5pGw z<0yQFNSI$mx7(R^HNMrbv=JCUH_AXCU@`*x@jpa4c>JNSSX#Ddx|qeNm7_dq~@33@)XVJ5?uzM-&Ktj;9-V~I&y(O*=OpGm&XX?q7a%A zP<1F^Pm;s=OlY|T=Hvza!gdxj?Fot*L3VFvz7^;oyU8U3>VI^JxRVa+#S}cnL!Mv|79Vnj;Zvc&Xr9U**XhucZe>E_O7^I zP2U-Msmg9awbqQ=ADJU>q%J_`y5d$-kL7?J$b{(2R`0uH^Ajz5Rgq@XT(T4# zC(ADCNyFBadr{HH`FX=}csYN5l`kBmpLNcg+W~X)M_je4PCUS<)02taLJJO@#fLoU%og1G z0-~XJH9IewG~lY?`(?k8Ln~(krE1X+=gqdnDBph!WGtjPj_xP%@t4bvbzN(nEFv## z4TKIY?0CKCCyIp-q|uC_gUg`vl8>-qK+n~h)tUMZ-UX6k%m3zFaU#39{I|@sg=Wt11P-Q!t^TNW<)3wO^hBqQrWJ>0DSdU$oLyX3iA=vk zlSq0#9DmFWnuD^Z34==y4yG5GUE6K*G!Bxysq|Z8bx6F7ma_gI#D7F(ivY~}@xiVZ zr^J|e9CColva==0ZslDh?Y?$#^;k7J=;q@Ew+ki8t;Jsm$l`B?;a>;@C5KLL4BWmE zUUh;G-OB1wLx`0mNUCUxgwPH>9&aKUJ`dnI1Lffpbk%G;T+MpD@)f(esNNZ)QAu)A%47k{lcp^vDdoFzYU-BCSLKGPo7LjOvY z(tb(p?eEzJ{mw~EBL(-!fNDMrsmT?uP^@K_#$y0;gQlN-Li#kBsxU+^r1e;jV2XLC}amF2PN^ba&pVheqa5Da4qqP{v9=Bw&@ss?-z$eGfUl*qZnUvy4(=2;7CJW^<+MCYMf}`N7q)^y9 z9|3vOh|l?wg51Zu8bTDkyU)BdZo zcF~Pi2vnS6`-1z)ZB3Duqhm!Is%&(!6sTSNSUEW``^w!-yR`r1q`8R&bC$XulCk}m+idhl3=ntCe_1-IGXAauM%5K}^itSipe_(Hj!Tq) zSvQPHK+0Z4^GAoWjh}2={UdhZzD9e$HN+~?++b4^UcyHB@u47Jyofxrue)xzqNWBX z;H$zp0ru3O<$?X@+jlz!;=n2qOj7rX!rcf?A&*n|<4n~7ENojlOmRfWy_H5f#YQy^ zX+#LU>E=;HjFFQv!hU`VEq1l-j~>TfIM#H-Yo)rp#tu8>{u#r=We@62%3|-!FPxkU z2fZm0O)2-48tn*ye*sj6AOE2yN)1cl09wTJ*wK(4=#xm0w$j$M>b z=D8{+@05X`j1q!~U<86=D~Bym9Auz>9vu?QiB>RO%0b*V4nuGs#Z4BZst9MM3^8^t zc!q2ae-sXtgno^;T~>=vk;wMX{%#_0cR1e^J_wP{LOOmq-ce~H7nc2NZMjIRf>}Uo z;iP}N1Qu7dHt`HnOVv|SlzK(fGyFl3u1(X!=;a`|E^<(b z=@U#l`hEzrCc8^KS^#^4(eqWb(B&^YuF4NdYVrGPvms(BcVsG@Z+*0(a~d_%^lCSU zgmou3xpko^2x43Qx>7_4Xg-kpa+W;bZEH5MEfR75&_ww36F>LD9CTxyD~GO7^6CSa zS7tPXTqgYQaJ&^}!?VcRW;yPt=Ke&-D4Onx57$#le27g424+Bxz6f7a{z5f9{(11T)K!I$SRxF!p|EZ8|)}7;c18H?y z?dr?T*7&|~0_}wO0qnrv%0Pa>%V>99@WVz>bH8em0zby`QCWe+siqFhQYvs$PS`g! zc3Na%oas3YvcyX}*jvADS5xt;wd@V%#N0<{&AvMQUoc^Uqft2i1A>J%1MaF%TO_zW znJeC^2XIB}tV{QqmLe_&L9f5=oUs@k`zsiz^05c|O>C{NoFA=S2v>B-oD&P8e3{yJ zL+T&mUyZE+Z5_!FQ~_pfz3?LomU8gq?JksaK|ABwZSHK2e2K3dh=YdzNk4k8y)^YLkyMRozlwHCw;BGkI5=}>l@LI&>AS{ujL?>^)iH$Kl z89sI@Efu0Z-Wf>$u5;pLx&xg|_8c16T57B*V?5@|2Ka5nm}f&Z!|8z<*2z9RljWeQ zZ?NYuaeWDt$9S2^W4ujb;66}+Q_J@tHrz2fNK9{-qF{&fqjGTBqHs*wdI{n;g8;NP z4r9Fy`l~iaCRc73&~d7*z;ILo4bG;L-c%$gRs+U4Lvh7l`}vzH;jZA$iu85=m|I^P zRK($+6D-e^6snwJvsg6itMs&;G>&ej-{!VSpjbSesiq>3Okqg{pXoDqIJ;O|BAGXf z&2w?A{2pIUls@6gM%ebqSvPGl!ut6hD-(-Za3_agd34B=c#nM)-0As=a{Lq{giYE! z_#ark>dq_3^N&#IB6`Sh;M-gqvhR`g=oe}>So$g&S>l?f^| zSH?nKD;RI${TyI1QEGZX%4`R=OA-3sTD5>kD`E~*4Aw{9&~B@VQ|gz*eyw~5G{j0B z*B^(DM`?UeF{&`SSPTuJeIyAfqo~5`d=MyQe^~j>^MFRrqW&~kQr<_PzBtbd(u23t z3S;SuCn2q zD2NBOfH|e!ju%892?aObG(H2IX0(V2L{gM$zAngeYMiP4Eq*63TtGAgjd+$H0#{uF z{D_+RnZ$XM1xObB8+SlitCYNh;|c~5{(WMEfV!buWgxtv)3!|(~kiHjsFo+HrB&EQ=m|g zBXAyXZO0X1%x#RP`Ht76^j3YGi?OD)vR+j;1=nb{BWz`*gv;G$j@s);WzY{}?Lll2 zF7{zI2{21&P> z+<&_SkS7eca2|p9K)ab`#zxYlueSMEkZ;!1rqJ5CmRrEVpO;X#oigJgVG$gD(d3oME``QnwMZhS;_ouBflI zH8rmxn`k%stAad{0fzgRr)oo|qDusSHs3QJWxRgZBE|@WZ>%C#5NH5f0GZ;~qIHK0pvD1cs@H_vE11v7 z0oQDXxyX#Vl&^a0F83!~-IQdhhra={<0-vX;5NrE$84m}qVoDRlN< z!l}1TIAnYVtYgFNOb7Qz37TMzhhm%^%%F*)%8_zHS=-N4_;##{`<-t}B=o0dLMn-z zC?)~iQwWt{HKp9`Zu-c`zQtjWh`s|Lz=>dscIdWfTma-fZ{0f?&}GmFo9L=nHK}xR&^^(e)<~-f$Hezh0)8gDs|=vNptD0d$HOQaQ12G+_7v zz-a~HnNH8@4B0PWtWNO3))qh8ik>>LueaIPy3mtYilfG5Qn)zp*iV@#azM$wuBg5<<6O%TXua&w| zx;+UBAm~4wLA~whBkmW8r$BqSNv%INB87f1h=$fZpF^Dt{Z(hhRnd6XDHaBK)HJwC z-G?X~hKSqs(DV5iI4;i!FQR% z^G>9lIZBCgS0Q~F2c=uZ!J~DYAI^ z$qerJ+n1_y)D<^Yk{L+P9?-im^E#TcKq1rb&*zb3g`) zo#Q)^Vpt3tAv4=Rc1HOfS1ctn_3*)%79J39o_ncIR?Cl3-N~dW5sqZt_=A#!p?jM? z5F3Z{)pZZReTf$0OhbTjD}8%^6)3tXb0%tDf$t1J!9QF{VBTcVW`@bl?p~4mcWq*u z5?kClNy#vo;1sPtSqo ze-{Fe$^if{WR#`TQdcIum_q2EBakX@oH6uWa#nu%U(zuOEm$lE3|(+pH} zr*7vTr(ACE-U>c>z23yGeMDV+lCoHQTHGnKUTu$5Z z$pk$oAF=VF##ADKH6oOKjv&#Z(-scQkh~Rho5|AP<=_%3I$?$QsW#dLA2m*>8wuQx z42x8~oq+UNoh=(C(IHYrr^CtbG35@pzT&d&RO&j&EZ|X6BFxg-#IdDJA~jZX zVGv}8mL(~+Eua>8ip+ETIJ^?xSN%OvlGE+(t81@b_)1Am_J+`QvOi(|ap9QuO=%Ek zs9nY3OgG5RMLp^ByYHz_NSa~(?>PLlECj0;$z0u5>-(O0(wew#XjA0)vhT=FA%Mqo z%_rfP{D7g)?l^+&B;o%6TtCmkMIxdotRahY9)iQI)YF^xHnud?EUKlJe$ z;as`elp=BgDac`d{TKzL`Dn!$EshupA~G%N8$r0))uUKwhzGYU!6qp^O59n}k0AQI z*6H)3veo?p{azW%x_w3$I2@f(LrJ8?+h63$$WlB~*3Lh$5!;>7_OSiplX{+rHC==% ztYVBE=CRTfrilz9oE27B-83b!S1&ot7-YiEE<<}13ugN6tRT!T(2rx7p71W+fgsUp zKgfy)HH{PWJA%Tn(P&m!efx1&^P`%;o{ul_h z+3MCM8$cC1Fwyxq{3 zx9d&QKc*q4{K7tR#;Y{U7CB1EV!?!n7lfPAu?}J}&sp|O75KGHn+7zFE*OvlV&OXf zR`i1upKi@?&QPo{SoE#q@o&sG2CTzyZB9;k0PQ6tqcZQy*46SSqLP*n@# zY-NfhzxG)MSMMZvZE@2(Pi|Q@tGBDbG~@wWb^j3EoPixY9mT2zFx8h zfZAu%VTwJ;RhLZNjDHoKSE27ET;JDgj#XcRf0$-pQZN6h^#tb3?jO5P%Mz+Usm&aY zXeg_vyYa7Sv8vk9FY5|@1jQtM3^Kp*J=#M{V46DBz0j}YMkQ-c!VeO*)+-sn}srds~zaYEDwkGGh z@CK!5EM#`A7gOyge?T4o=nd9b6#=jOwIePqUi!f8`M_`a`a%Bw*sN+B=e$i%Cr8VY z1<(zA3;Y4S2r2ug1a~Z@ERI|4h1QuBWP2m{AS8-~x&2em!-Zc3l&6{UX#6aRMZt|A zGsQ`Cb9j)*j@LHJnG6)U83MsDcc;qmMfMMpTWg*Q%HlF;0Zxf10Y2YH)9{ig8Tz$v z36P>gs(1I64A|7xIk~w(w9h8ASw9gvs-ceOw%QDLD9+X>T*mU%7gA!igMh!6fdk4z z^B{NXmbX}$6{(sxhO6j)4$P*NOR=q-@_kUYrRt}!*D(cI_%r*WLStD5Zz}-U*5HjH zepmaQfQbu;P-O79kWW;WnXfyZ{=K((=2r+AUJwn)CT7eMXM=78D~M=q~2T zh+8T;t#U4qT9HF z&$x5wZLKK&$veV0>FVZLg$!Q0@urt`bIg|~lVK0#NQfbVFAX6M z6p0zj7BG(@a}I3GI?N9qa$AtBm>ey}J;}?n_;{bh6H_S2>b33r;B^+((4K1j9gkMm zC5q_0X-lkOxjQ++Un)D_UtTLSTKzVBinn`P2zgYXTjb44LEwB{C~&GwM1tW?O$dTq zc-wL3`rH>&c7o-i>jGFc(9YVfw?B%XVc$U%w6H_Oqhej+r{c@G80&9VRR_x3Vv=?{ zfO&INekHcIy$!I!mph=8D0Bf;&^6RSW!E^j4t3OY1No?{WJ`~FVvfT5*j~YmB2XEr&C`EOf04&SWUF@$#6Hs8=Iu1=iPH;#gUQ?c+V}jo(n|qD2FuXOLu4>n)?1 z991L-_w$D9Q)Q2TtIM;NsjO~9iUvnB#D$ARL%1{d_r~I=F(y0*|32eUzs7w9KtJX@ zi+yJtcn$ypaT=gZCi*e@O76sU)8Pdf7Fr!NkL0QQ*D9U00s^;qS3F`Fytk*GY{m}Bm6xq5bxUF)ed4e()*Z_2L#5|E4B{%jOilQ%pt>y2; zNAcBrrGErZq9C1W(#nS21oo&q$JMU^0ch2TO(ZXvi4*KgaM$?tAXCRtf-2&N$xc$I zM7mq&U_)E#@d!Lrx8}A1*M6t(>l_xjF@jX7j^W_RlTuR{pfrljtBdUhj2SqmSJuoR zdGIMG`H9aCJa!-Bb%!3Khn*a;m*!i-syPjzAZlI0{BYRF@Mm%rt}5CD6p@9WibxNJ zKjs&A=~e7V#GeVWh9s71TMTHg3nT;5P_!uL{zy{BV5VFyP~}tBMf_B*+%#4h@2Fk} zA7??WTABr~uYXZGOIayLJj&j6zm_Xh6f%So0i_o5?7HvnFW5b49zURRI4|4^kJ@4u zL*GHa?fiDMoT>KYC~!Oe4j}kmm`NZmNE6-xH1l0Dul`dP@J+%s=8f~)IYsEEJC3D6 znl7q6#bSAk7byZiAvN+pFG-u91$>2eW3f)?%qv6>l ziTE9Wvy9D!Lj$@&+bFAtd9Xabl&!K}P}-39b~cirD+bq&6$J9X#n(X=*DC%2ccr+L zn0qhBq$+d3=me17l=7e~jv!EHRiXZ)j1b&eu_xOU*m?8S{Gc_3P@(D{oR&UODYQ;F z(M&}>bT8XYf@c&%i}N-|VA291s$I&Oiz1Qm%R@#dL?s!p1Gx<@fFKibD$rP@dc#C2d zcoXGXa9SIgq|MCp#1Nn-G21JQ0uVyM2eINukR>G2b!JjEcVx{^R4#Eat6E)}6>G{h zxi9^+CHGkp2HddT7k=D^eNQ72dP$HkMMPC z>*C&A;?Sb8Y<;7+r9s;2a>V%01tS;Sl|W2L1T0TVY-EiFdl6(Gp?+eg8nPaiXsvC8 z`T*a61qzT31+7xRdBv+algHewaayd#!`*QpnE?4f-|y}E@~|6`IQ5no`I$tG4d1_d zQ4amU+xItT?M9;6HD8O9y;en!l)0h(juYwOZ-S^x$cXM8GHC!X4Zqe$LGwMrFmLJK zhN{8bmdc<(iy2G6#cd#&2fWRwPGMaFg`m-4(P`|dJ&-AkmY_!WHEKg&gi9XjOQxZy z3E^i1q@orPr>@}XL70m^B69Nd*qLuhaQco7 z!PGXL`1j}b5yK5PcJO5L3yYF`G+M%w;^Dn^+#o-G~4=M($x3=ys4-NQ5SF5rN1_<{e?dkB2Ejh zR_8H6M+a)+cb0g*|6QZ3LJGAC8;Rr){GIe2pRU6+y1t1#kHQaH-kN=Zkc3y~TbGQG z`A-V{C#3^~y09cC9SlY}tJuiTBqqwyQd(9i{9S_siKj6<2*!r}mZ|!3uvcyRPP}1; zKMHHTcK8^wdaz`dTP9>yTUIyv)?2_pQ;6 zRmoZ?!C00{Q7~oo1(b9MR@6KhymOmD&#Sg_pvt>|)z%(V%0~m?!U5l-G^P{}Mz9hV z!_OC!CKDf+-~TE=gNMZFAi6djXr|+p$&}HmP*W=(utIBLgv3l>l+suDpIn*JwFZ~* zd%zjA47YZi96S@s=slk92^8K8Nt!XkX+PV*FgB=<+N!EQ&E9s6+8B)hiYSNDT~?Qs z3d2F?F6@;Bp-(E1Bn{Ea<>!1<=H;SqXpWqymq7Nrz1-j{mK&&JtixCD^rae~xBztA%0;q{I*6E}EG++YN=XUgRb=6&6a z9Hm)=a`|ZEtM!cLs+Kf8%`Mi8YB+m=0i=+nQXn0k3vA0WVfuomxiuEW&>c8Vy&DLP2??EJU9@%%?yj2^(P)pp^`Fh`=k@a%0BcYo{sva zf$Un+u8#@$#Fz7WQ^TW>4eh%`eC!Hs58KhF6iO6>DaN+R3q6QW>Q)1YfoFFi?AL|F zCBcyoCwXoMiSt*rcmtcEQzN{6lfr&o@l7p}i-a+=mWDLpq@P6Bgli|^6H&yoBO(pu zCnj0d=x-#vN6!40E-a?N5Dw56%?#h;-!(e zzjF=UuR)B)k+MJ1C6diG*~j<5{_Ao#n*grqY;2TLh)IJsW9u8W$V@jnx0axghc`7s zuVQ}TBh~<^Pz9${+u*oFCGZhYH2AJhR2Vv7^y#2}VzSc7d!}+ug3HoA6TI5D8PMc8 zW6U+o$nT|C`yWZ`_&G26Ajaj2O-}#Eb@)tROV2u**zu*?y25tLFL1Guh(I8)B_DuHcYl0-rsIy^n3jG)T zw+KqfCJCg#nu=Rmkl4ms1+d$$Hoa_5!yQtY$+<)`>uhn(%rlay`>&xEzf;V^Zy8qs zg%Nuzta41-X!f!qF9)?0lX)WBo+z9^aza_{{VfKd5;s^9r|$xwN7w((FW#f-WAEvu z5IG>MO~>a|<;=%t!_J3mJl#KXj{Zqlp9%{vF5ktB<)!-QEneQv;Ec(2~p{P6M54N zdA70(@dlOxlOAIo-8!7p!b&AdR!l;dRE(}ofE1vkXiC-x>yeX6?29N$KpIqaxu(^J zIE{BeF)O)XIx}2YU_)l5QMuCg%Yt|hv8}U9{fOec(g+m*P&Sa6#*aGz*@w3nTUa4_ z-IzzLr9cH2|HZ`GZehN6PLv4dy1i)!jhrj!$OzZwP!fZldM%a(@;t{-V>{!0YX#mn zTOD*cfT6KhK%z|U(cb18W%Yoy|1CWUYr(Cw z2AmM^yHJ}-5$Gw{-bycfT*3SU-U9vl0lK-B(22-PQY@z6xOsrY5-eq5r3mj``%Y3> zr=g%?B<&fkDQu8oKdaMPc0(pR6C63)PWBxv*8R72zBj%&g(xn;IADgikLyV3VdV0Z z<8)&^W1Xr1Tg4%e@+Eyhu91kY68OjSowbzDBRUOUr^*nUwA>neqg zPBRUdQ#OuVOM{u0GBRrR8OYEO@*>7n(vIs`1~SRcBnlNvNAuK0Oi$ssJzgQY38zi_v$I%0Zs zYA;X(zdE7K8_BKln>D_I{NZwvP0`{xg_%D~6{Tg)!F3hW-N-3f>64*}tHA}sb}6>4Ah z(ss(13ouFvVL9}uXql8Dw+tKdv5Cibr)kxqm1&}=K2MZDaQz%v?~DQ>1nxrdx{_%21s>Q^SXq&vPy{64NM2T++#X*A#r=p0d@%^4^p^`_i|vi8=9t z;oHO^jMraNt33`Cu=KmEh}#(v<DNSTFi#B2m%?9!SlX3Z-@y^+G>2d zU498LtXYm^yb^Z!Fx(9Ma%p{ngysAmNHwNmtU0N_uYaS*SC4VP{iPsy#C!#4+^#?D zi!zYV-BO=27>wG6WAQfVAHjEYjS*M$d=rl-6S_4Z z(z?8t+8Kt@8%b@M7@(O`;#p+Y$^&x5f%Q}G4>m?wn#t?f@$=_<83N$Y{k;_K^s=&nlhJvyV6gM#Ez`t zBUn2?ss0$&S?0hV9-HaUTrcj(lHw1a3bur|Ej25cIah;_eQ|9(7z|vfC-*sEL!$JO zc|k}Tl2Z6>{|o27PWQ=g>jSTnk1V-?3Le|B1F-ElMdM9z!?=l!bOJgpSbu(VK#2?s z(=c_y(}ur2_E9P(aP*@hTxV4?8i_>vIP5w^c=r1e^+6!`3&uow)8(r?7ppD|I6pEb z+XzSRONju$>PUq9MOugA3J3ck(%8Y3G>=9ifmf{+23bWKtxU=V1wZJdNAd`N?VRQh!Sl6X{#G})rSw*v1v$YdkUe-f$Mee6*TriF@azO3*>D1 z+phRf=B~(VH?ItVBs?SGRs165us}3|(c0g2Z)3CS!7gQUvAUB>0lPnLfb`!HQIR!d zHDDhb)vFJHQ9U$k=p?c7PE2A7VQpI*VbOfMp8%Ebt4@6Rdu=ar%<1-49dXv0)BfWq z04QP4AVj=aEYN*?w`roKlZ)Ib%2=nS^7tUJ zjf4T&C`=d%iL3bechIoGFXs7dF3Rv!peZ@~0cFBvOt35NcE@cqlRerF8&bQP?Vaoz z$4O75goe8#>(gI3DS(--!z1BB999~Em=$8c8g@(;ori|O2h?*#m6!`QonH)r!FO{# z#&tdDcY3m!4w|&eV~y0ct+I05xX%r)WxuX$dy@bY6#g!wf*-?VI(f_qsjm~ukWwxN z$N;}vHf(DXB@*oj-Y_t&5XG%&PA|8F&K^Z{qdgm){O7_u3IGAv87Ml5KD?FKa4U&z zqFsaoXMPQ>+RU}m4#on4NwAbSyVhI5pK1j!Go&sA2T)6FWOk7+2QwG%d#S(9z$J`@ z{t7YbFEZGHBi%anJGFS+d0!)lMHHLN;`F6W;sHzaOav52W-N5p4oGi}v({Z9?;SFV zb7N|(Vnki?u!N`paDl1}`%5`xz$A z8MCamw<_KtAN+DDxFsb}OyH1eG+i=#o=UPJ$YY=w1TU;kyS=D`(< z2A~DJ8?chSt4Os@$&kDUFy`CNW0-MNtZ|_kS@)f$;4-{YBg>b}#Yl&kIjph7co2~mh7X{9U3zkG3!q6F$!Jk~~ z+XqxO6p2aMp)zncOso>f!El}8YP=oNCDGQsT$i5tSUbs|J6W&HfZSh};?u$lp?%#t zXbHLFeW%aW59y(b$9SEJEs`?*zJG_v`@q#WcIp(H>>$|vw*Ob z7>M>liX-&p5(KUc^aD-1nv{!OYUxDPx7Mu z#=hF-dEgJ;qFNAtEw8j>ob>>v(64y@i;rDJ-3s6;d}BGwoj3EACxrl1@?ZIcV-IyhK*nsZQ{fhHGI5-XVgJ%_$8Pz#5%-g z5?Mh}0LRT6+}K6Le;UAcQ5Aaht|fYEf1>O~dt1Q^-f z=TKmttm*bn&7a#vEEhuhx@NlwFV;qL;5yt%L1DAjR%cbI8|33|ADJ0y#{T_}93n@1 zOJIjZ?A31@Czy%(V$0vqUOzo!_9(doPH~ijkMkwl*KsjtsW`KN9C;N8_nM)QSmk-O zpat+kP1+C8f~Tg2+^hb-($U}RJC-0-Tft}%YA|N#c5X7XHC*{9kfB|Hvw+V_#z$f#^jE=d zF_Nb`>lU^O3!_#8)ePa+zf6-t1F&Of?R57d(10~vTC!`gq{4=Yu}n#Swl+vYaD}>elr1E@gGsfSuBU)cSGiYQX8sBf*B? zH4S(&eI-<;P}9FUDFlLL00%H45VDV6=1@7Mgf_}1GBVb`j4QtFVCL=%{iWB95qXsw zUnrP!`)6ul_Rc;s{8VVbk3heqY{gHtDk`(Csr2$2u|BgVKbQ$SF#+E8=-^|1b2L(f zF#(R&wQpVVW;s4Yl(jZP+`94of;br4VfMls7oo5uRCHt$M@sJ}RFj&RNtb{!qgr(r z2PS}9xZp6nKDFloha$5E{BhpBdC=Jc|4~R8lm2l&Pj!Jv7EJF;FF4`tN&B?qjrL%r z4b&<@YuHi(!TV=1zT ztlb4Ffw>I*hAjVC6#HE2HwL=C71LXu*65;j84)EJekg9jn(ut$#YXYmcuD8l)Bj{g z!;PSOpeAa~8vG6O(8@J|C3u`0$QeUgFMX^f5P2$^WG2sTug(8C+?a%5<;gaXrfhQ_nX>M68oa-^8key@FDA8NIQ!P_mjxwQgrH?v95<8JnJ+99{UTYC3dqOxiKDUmZ4B&HY`02^zqdw0IF=U zA)h5vbFigBa$3GG_cruq!co=MyC#(>t4gQPTg|y6K1YgXA{?7d8t=aJ6Wv07Xl;H3%_;qFu z^?Eg_)-$|suE^?D*RJN6Bj}e*ALTd4n}HRER)XJ`@Cfl{l3`!OsrkwcBdxthyGE}H zGbW?xOmQk8OHch4bXF0=dfMn@`|f-pzO z!pr(|X9{UjNe7)X_9nt0JSOYS8LzAizAlJ6y8^mfk>OB|ekVWj#WdA2;}e2)5YrqR_j`Y$SwC7N`U`z1AM0dl3an0F*jWAfSs1#ds=9RTwv|2 zP>A8WkQc(`Br`Usvnyvt83=wvXCn3uXp%STQ9U%m>%hJzk5#tW;yA8`i6vziNH@x) z-P{go``qB~2|P%51PWFp>_jrCli=O;3t@DkX`kp6V+Dao0aRh;iWs~~w$(Q|@4zP? zkH7xQi`6Kc+)C0Yne!^pM^h#QBUas(l!u{2>Wu@^smS>Qu(C|Yw8Vx z!TaSS8CvQ(VmF_CX16>On_2QdzuWdbn(>=|AXlr!=+i+o^VzQzWISQn&U0#pbnF)6 z_-!dkws+(KQE;`A=a}}#8NzAW=Lg;f(}7X?5+Yo}l9HO`rmxzgSl0QL@7TCYYlZlO zuwotw9>1xANgBzLH=O5s=z{KXT4D*mxc^|j!*G#6l{!9~es;cgd1!A>@J0Ddy(N!A zf?B7~;}>IA(l|<;bFDS4n3#n#YFD(NBI|&?6sRvH{xV)q(p;eTTkCufWf;|~?j34{ zuXS=l)L_bbrokP0Nw6$!@F#*$!kNZpdF?irKJNwSNW94d1|KdHc$>a8tpOCPpOR}dDi2ZnyEy(xu!Rp<)kNewhYIJlf3Ny8C=`LRCcq;1 z%%Mo5yCZ@8v)*W2mVv+R1tiS z0WuV}un$L2;5%1Oi|}m(ieNX6Qp+&`{g$-2;gteBfIOBu=_{Y(uH(A{83q5oO7fq= z-fev2dX$5HvgCI5Z+pI|Zs6d1>~=CeT7u=B!cJhug?w5MBE|i**ASN z<2w9RR3&TK^Yt0Ks8*&{;!=zu5Ri0kdI4@$^g8N8+wYeT_zG$*>{)}Ic~mJFEHfV2 z8dY2iIOZ)b?Ca3fB`@To%IN6=+hll6{JGFS9vKD`qeUS3D&H4CQwQP&&jJ50bk6Z{3$HU2Y&jdFMr11(w7JByz+o=6$v9 z>9Q&)(P~~Rq@I2>G>aWC+ja}90%uOH9ew+q(IvtBdwOf`uwsUfaR}F1S4e|^CWyD- zT91muNy^d*%8`JVn3GvOPea(DKj?yy9dS7$KhJpqpVxJ3AS?AoAA@SBz0{VGFSFZ-6KAg>!ZnnK>!N@UEcjaP`FueB&BM7dG*kV zNqM4oeSAia(ETph+|uST@~a%$%f6i}DL0)lemY;x@smdwmzVuC`=3zDDFf5_z~;$Y zfuRn2GF1s*FKB(YS~c~Qs?7`31rf96{r=kHX5#wkgEF?qAN_N5H>^8bn`54Fm}gbx zf8LesgA6Ki9}NWYhTaSa;Eu6jHX603lT|yR)l&QQ2(cJ*9#ItV*N(r_xl&Se1*E00 zfRx~d5KPqWpBY|}VhGw}c$!K9C35a77y-MR#Oxt3xt0%7Z zLi0h>d5u!MZ~x4nm_z{jt?o%!jo3BpqrVq`rAVQ+3SuQlVF9}FTutogxbgnq91Ze! zZ%GoY>2Aa{v?=t=p@}txH85={TcIxnWP}?va3Po2>b)ijj;@0Ic9DL*@XLfwa!bvpPQ^|HDNXM0LJ_ z88El`alayqA;9i7{KD>{J@yRkO*1>X9GUDt8RGK?&{$BTEK@%>x!{5RS&>=Gs|WmN zPlUL0f#<9-n3!tWORtp9760;@ROz}Zz3HzjrQd6_fNvOHd2iLEK3;Yose+X&WWd8a z3!s+@Gzw6Zc(tBih~Q8 z+P_`S%SW5C1|8sC~Ren)Xg?Y$TZ&6mFlx#*ktE-zX(Y>SRWeN7-Inh3MD@3Ki|o)oB%Waf%k9Rt@{aA|=tYcEEe- zi1QNjr{u{*nrxiL>ng|kdSoLVkv&X|O@B4P!fyCQ76!+2=^&VeA`uYePc8p$wFDNU z_%7yIurfU}YVd_+k;0s4A}p}YIN&<35`Gs1^LeO!#@>7PLLvMtAgRUu&V8uCgAOC6 zgm0}hSXaIhWRW(@E9S>>zenr{{sooxT$zlIuaDNrxk=9TQbzN`L)+ds_F}}d5JcRdEXF+XO6AX zb!(tDS&Eh5+Cn)aA4!)m?)#L6O&ahed{%75e1bHK?P23qb!c@YoWk?_@d$7?7x)YH ztYKrmH&cRA-WczYHLq&lrjsq8Dd5DQZEPvoLP)V*%DATv#eZjTgm;mGNzw`le~S-+ zqHmz)S;@9+6uFH6mX^opcgYg+eslX>?_jX61GP;KR)2n~%lHsQz|Yj+C%oGjIVR5bMDun$i z(FhvjlFOKW`&gcnIC>gSzWa>Q{yjPvlk6P!ZoS)k)EQYWSOMR2!6=!IxT9=Gc~Wgh zqkB)LQxX76R;@pbLtT$m3wb*h^p;)#y)vmI4qpJ9WmpNcWkP|2+0eVtDD3Qt9y9JH zC^SR?1hF}M)M(YBOd1-Ec0GY^2Oec7_682l3p-SJI-jbkzPgzq&M z!yJBPHvtR^11|OOv`$EJVI@UIjB{2kn8~A|d!xS0n$wm- zr8Z7M`qN1b?HQ}StRS9HmI5%PW8{EYC(B~HmSnjK@@G;0JFGE*@=j?~r5lGZONp;n zV(f!j&)Y5oLSo)< zTcOVnFZ13uAzca;7U)ym`OZWvPlT)j^9+G3`o{QWf#vdzK;a`Z91pGa?%tbapLdV| zyKnC&fs6o>MwH|EadP{c9<^QWJtK7)l89jSU*tDh3wH6B^>Gon9+;JCVe;Brf+mx~ zUBRXQ%4QB=u5>fSX(CDez_t+DEX zM+cWUHsC71&Y}jmooL4AHu|lH(-G?=BNn)&aff2Rrc(Lrwp$_QL!)vBINdmim>mk2 z)Jl;qcd{*A}E8u8s!`T=m!9c(jCLNB6}iVp$&ZkCTa>5bH~3 zja)X!mt5*Af3K9Y-AKt@fiY`f&USQgK}b2{LtzsbzW4r&z;BrYtTb=jA=sZkwkKN} zs_agwl@CX96qn19fSB#rQjV{p^K_Fz3)I_GNlZ94djpJ&v!+Cv3v{f)7n=wyL7*33 z_;Ps2$zb`d+n9;LFvjxl-n*wN5f2WNv-3-S4nusYVb`hIVnMDr_R`FBB6axgJQ;EF zB=Jn89=mOf$!(E^liKAQHit1}_B3$1KR}R&ZlaSq8(08SK0QVqj#Z6gsq{cH4Ka^4 zojB$^N^LHp=o5LJRbK${LGY>Nx5P8&@qPuwjqRgZik}fEXq0c-s%>o3&prW>%zj^7 zTPzbv%^V0Vd9OLUw-AeY?}qyvEgbVIm3FP&TRP-KzX4}JeKJIfaJE%v1n;}4fz|R5 z_K_k&LA$^Snd4|eFnl6RinXwMG?{09OHkj`WH^oXmeIC_7dRjjC(89$T@@CV<$D=e zmsn$&in)@=kjIm=2(vAx)VBL>UnKNnbGtS-J3p-^J*i0K*UXwWP5~#_&F! zGs@1(8~N42-Grvw)ekU1J;%JwZ;qA4(d`cjG3&;W#mVP{EhUs*xt(h_0uk4DKkSk;v2wtGq(kry@ z*2+B4fv;C+hJ~9#iR0Pp0OXbk#m5ZUsoW-B@tGWIQ7)g*k)UkzIAqjaQ`bMx_dCpe zU3}_2GPE=#t83H^#V)1ITcuc0`FZICt~#paCxWTXZyUB>_&{_Hypn-|%!bOqH>}A= zJ(e5$8HWP^UdjMIpbf8+FqAo`Cr{ZZLci?9VkgfptJH+#j5C|bTTT6M>tSq@i7oZY zig4e_H}wnr2(wUVtKB7S7>kFjVB8!n&p;vULtNd#|1$RP(BL(n9r)y0wskBTiJ;1VzCK@zyz1^T{5E{BKH{= zx-NpVwqEs|VNY6Gh$Uon9zn}>HZ{3T-Z;0lhUj9l4Ruic3qJrqmO$#|-UGlMT*K&R z^L?2mS?#v*`0A0MM>?f;JMxX~EiXI>Z!T``eLjXn5nl|GvT{teg5? z+ozbR<9R0{-+nJkl;I}Inp3+sI$SE}4c)17c#`~-;M%KKYYN*|bq9VHLV#ew zKf6e35M?k*XNP>wd~U|RzNn_u(XQO$2&$Hc7osKLR$IPir*cU2SJRf72Ll*ZBhPY~ zV~5@&>4h8G1~D{gCr*z<6JlpZ(l3f^6A@t%J#Id<^4TPAZ&bnc$#Ng_sJZPV6todl zhGL8K+hiUSCkW>oik4V|mQn#;=rP&p@+9f>F4U!9(dW{}f?qe*(v~Nwx@MZc(6I{( z^Tp5J+@}Ax7}F^AB#l|A+R&2i#2ACcDH@?pAUVy-KJj~q?wgJ~h_Hgt|0@vHP_0G+ zFM`(^?y`F9rp`UAhuS8LCHT8X-aU~xZGTioG?pPdAk=ew7{7C9RT<;+u6*dtg79WJ zw|)+U0IV`X{R36EzEJ9=z`T2iD#~@Q5=yc2@t^&r@;R(FRzWyF5C3+R;qXk&oIO?uO5)aTq#KmZG1K2U441zd zjT@o?d-zG5bgt89ByE=)n>XP?tXH&qig$us;@RffG+NfQ)8~(lRfeRL&^fnJi!oL@ zYxg~C`ehTU{1BpGeS8vgMRWLr9lxLx;z0*ceNAqNaDu0L9`Pb3|8`zrrixX0kS9S5 ztg+QX9fDbfx_e04uQ+VD6XkL2TjmiI^}n{-;!SJP78YC1jcvp*=AreNphUTYP>UOL z?b>EIqn@gN`Fd%Qm@&J@jh1R`nhuP~;Nn~B*7j*?F1z>$5w;B@pq}yVSN!b(-5`;U zoi)lFA1=56X;{d3o^FoteGbW`bbRK~oUd`>zElWaIKM$u9bH<=@_R`R$eFv_r1(pb z8}=zu6!yn;$F@Nho}?~rkU`o}njpJOUB3N06z}EJyZ+hf#fDzq4@7?^uhLJ09yg7- z@q=)7rF&thf!=u??U`O;h!HbW;xgbq3v^fYig-KYql>(*lSY_I*aLoHi8GUPq_gdZ z#3ZKid?FgLH$D>G69IBz+aeHmX>~c43;Xa-5xWSS+hsD0EL$apSuyui`44#m_21KSlt)c|n*_7r5M-#*M)tOz< z#*i)rRAMA8TtHzqn?!IAJ8lM3rO}cwrpFH#|g}Lq+_RMaRKU5dQo9G z+cb=-8vcvN(JomC3!LCghA{K`Vxx;`9tI?xOQ?yXM=`>zB7DPXHozHHQF53c%7fnvD$nXtZx)ceN(?scV z{@f2Y(Uxgs)L2pULC3?^G62Z_wk@}I#a0ugEa2p8m~ zQRahKWQMFu`qeu7)BF)Eb(vh|J76I*RK?CrwE=}_2ls2g?kzY(97TM$&8@WE>~uD~ zaL?&I9Yvch?U2H{lTMhAEy!N4;i7ls^^tm+i|n=H*ui{xXaAHwG`an%G&S;TNVp}iy}n|(B@ zIc02lpb5QepUJ;jzq4#Y;0cO+GIb#^zZyRnaO=80Ur zgdDQB60}>SLH3myGgepeI3-ZEm>i2SELO$>5S+q1@lrX)EZ^=!@%oMjMBA=+rCEF&7mA>a=?CT>6BM*LA^mTwEfO9q! zxm+#c3e~YnIpw+Q$7|#fPXsSqZeMpC%O%OB$lQaZuO6-wc%pyCcvK%i_@8p7ki-4JjPjE)lht zH3Zn7hnFj(GW*E4^li#Gd=Y<7$x9bH0-;JM^G&7nQZXn+D%UGFiZBBOA!KXet8Z&$ z|BN~ZwMMyNx@=qKi1>7uXLjcYpzVsLPW0F*pREo`Yv@3inMcb1ClvMr5Je3L5(GA3 z$QRAic*f*yrT9Wi`xXIg+&4%%nCU1nRWD%`hxJr}Ssh@uq@D2{`rZi3d^xd2oQ)ZUanL7&S2Mrr9!U zG$M=bL>qWE_wiVztrV2VS?kGda{vPVN9l^RSyUA~JnWO;4xVlSJjduI0Eyuq@jHFF zx8^piOQ$|Y6)dOXQs0EjXqd^5ePAuz^7?z;63;-dxS3|WGJ0t)l88TekGWJKZyJuI zM5=Wwg*myc_G6ps;3`7(F<0{4bRkCKRKE7G#r%Ue**6hbahEPXV`wkt$UqOPSI*K% zSV>9ScnXJG7A6!#2B?{?t5<~gG2&HgU9_hIT8Q13OXgf?pRIut`yVi6V?&7LCz3N6 z&Kn$==UMyk{pjN8r--clIjKt`xLqlA`n)ojK8^sQQOgQfXjQ@1w`!al-J??_n`4l( zh!k4C*R=<$w~)+Kwe5Stx%yS&3QeMvoO)p!#Qe7|)tDEBSE;P_#+#k9l?V*{QNwhj zg`0xW9_SHNQ#$6XsiWl2fE|2XGl=epROeA=oHM$nWY?jTfK{VapEml<=YpH)*M=xf zMi1@}0>w(v`RU8}U*L(p>88Dn8E$X588!stYmB=#e*AMJg7>s~nhDFE#zG4O@|0J= zdxl`z3RCnLMz-`B!^G&Co^Mjs)t!soV~0?19D^?%C7BiS9E{@r@9%?GsWxHjhIT{i zaD#UOnXqQon8l5kTX9g!?MpZ*-v9y?UJ{J$-+k-uQ>80^4&63 zpJ4!vY?l6EfNFQ}Qzh&Vk z#}EH4Az=kbDKzv8YFh08-AP<)Y}8%Md)6lLEUe;VRFtPrtO2F%mU~($Bp)jQqKFK5 zIS+t#XxJWv--^n6iw}3k#DG)>m>}GFl5-ZD#7SX15!cY>fBnf6%>%Egd*Sazw$HE6IM(Xp zTLAb0At_{vJgQ48>NV&~YGGYT&zty+w&*7b6acA@aq#*9W4(3XU%fn}ogPGgsk*m|`pl7XL5TN#w zEK(W2NzbR3%oLu-?c%e$i*Cb&$QWiT4_m0uD2m@z)$k^3l82CfSs}E|ngIalBl0km zB-X-qVy{~J_3N0W0bxd2y&9(vn7rpiI$!_Kaz8{1q+4zkg^R2B8?&}=+91Ly8?6B} zw?+kmdDkLfUYG6q-?RDHa6sS>tbR4v22iYVbbFgXj&8@XSBCnJUYc;gGTT3+dv8~k z>MPX&(gN??@>-Ft6F&^BuRPiRB6etQnXj1kkHLO;*j&51FZ=`9qjCb>oJR83z%L=e z4d@hka!J+FYjF4}AVyy>HoM79Ml6Gbr!&(@XTqS2A-dQ*atV`ob??Bh&8c<U|6 z&p+9N{oBySQ5@SRBI9%Kt((?N&mRR_)t=h^R8dsuQP2WNB##^u8U#?mnnEvJEOu{C zTYqSwG|!p2V=W0M?qe0^STV=a9Ka2m;s{ldA^jV5txy0}hODXnII z((ukc-JFKPSx#UQJ<#?xP%0mDO0fCur!Z`n5x&s|x;V-;ydPvM7g{^gsqEz=oj#pJ z0d6&?>p>E*_(9boUg9im?mh^Rehqcq!Xo5jFPT}nzF)+c1&kTlkgiAX+T}W~k@*bL znGOd#e;bX3s$~WTXY+I-aU#O^f-C8e?MG*W=!dXQpYp+x{g;5q8uaKyU!Oa#ie^=K0A4yGogf4r!BQ_yA+!m1+KkmCs-Pa8v z%fUNJbMSaAN->QtBVk=}Ylzzac%sbiA4TkfP~f1vEsPTP>u@i3(vj&l6Ud_q-3v-O z7s*jC&HH1F9dFKB_uNG^^8;ZOC{=Rx+Bqh-sJaexaD5{Bdnr!B^=l2@-!&QN%7?l&qj|)HKVrR$VYZneOm?JnAbXQ^6 z_KK;~)8VbHT6s~ciYF4Akl6DwH;xCEwVi+_x4d6O-n>)*FCLCtv;-D`B&uW)> z97>P1RDxu?kU!k<^x(?Ht9&8iAV*R-WcZ)PYox5z7mi*J7a7^s+9wN$=!?RnoZU`9 zZ_pDHPF@ej6VEaQs!e-}$rg-K%;I9Zyt*v3(r=T?GPhY3EZKyTYHe^~lt$vwMRD5P z4~+F5ObxW{yfO)CI31&>eiL|qPrS%o3KvNj;x?J4Iv;<%K=!Vh=ZM_|^33verIPth zroH<=R5+dK;8LTK0gf%ah^4SEuG z_04CQK!{E!WHHisiRA8&H}ns_&<$GOM}`+=#Wh3ER5>RdQ07Kxh98BSMk2xhtE5KC zIr5T&9@SIsEba4wrxmvETY*yg&t25_uTbsRQqV8IUKHX#7L3h`XoQtXg>-}D{eq$* z6=LZwf7t%o#jh8;w~b{n9yb~F+1$_guAG#)nfh#|#RWJ~2Tq8E-eM1s+`w+ygV8)1 z0Jeh_mhIJ$MAW<69bUSl+DHOi%$2+xlG*OI(p%v2qEJ)3e*f<$0v|k;uBV>X)M#Lp z(c2iK*eXhKUc}E#*z(-V@Bni{1!%wm8v#Z?HiKgoihS@xLRzLLGBGYmS2<+ORe)+J%kE7)my2DQnr3_cSgfe+ z=0D9sc*`?8XXHU}TUChUaeAp{=`o~{Dh|%k^HeH;Vx446rH@S;Ll=Y(oQh(!x=YTm>*&{ylwxM}L96V>l&c^Sm+rg(?Nw*S8zL?Rfl2bRJE z3FywKz}tsoyruDFVZQytcgN9rg>4ATzc*J&tUP%leqwz5h*k9+4cTjT9S$Hq&|QvI zX6K*Y$?Z!E%oI z2l<1GE7dmS(`ICE%sgNL{!D20zZOeDr|72zmzL(6=LZ=b z4$7}R%^8xe$_Y_za&B}nQx=!qRV%B_!+*-@^-=Wmn)(9Tiw?y#7}(N&I*Hh#^!m&Be-{yk)RN1oaOi8-S`ig`-=Wx6m6{nPzBa`L% ziQDZwQhug7n+I^NSRM?=YMe&~%q;FW(dK~m&qB&&viFMhlBox`EUjSdKUVFh5r5)Q zG2R*HSQDIe@nzbVUA{Gsi!g%tY8Q10lKBR1on;P1LVOUFds+`l(DVtIf z+M?^8mnMvZY8m+d*ODrW?B-$waY^R^)|Lv;`MbHePKp}^Q1q_XNd63sBA zy#OZz-mBZd(+yA@6#BorjrOt(x&~--{zmr|RRON3#8kDjRgnC=&-wcLn)TeY(~fQo ziLt(xIv8dS&nWsbm8 zr>ewx)i)W7ZVB%wERxM?KSWMaVM})je-J-ne%mUmrhjdRPT>x5vg4VmBs$MDL)|dq zE#C+5@c5i@%}z@6N?rll`XJJL-WCwURLUr_(ezp6HN3TYNj+QN6c;9253%~5iEkjm zkmgN*tCTm~2{p*WN`+zmwlscFqc>HWtfuQH`D2YIp7^WeDAATaRH~8P8>+#2J{IIH zMSK}fn3!~{L7ZUNX48^%#p`d)J+}_XW#P$G z!Fj%ktnrRm|67O1e3ph={P!*PGUhQU+wqyWWrG2h4_Q^uMdi^LCyr$&vf@XXi^2&I zodQ4xs_fB|1)DUV_EV%D?FrwrD&F|2q>vDSbqxI0aj zXq%8LT+^-EOJUes{T8_2Fv;i> zBgiVE@}K63X;`Ht*HlF#l{Be$?$C4E6qqegZBOOurDYf8Dfe&qHPHcA7ljz47*mk* zkEZopsTk7$AZ>}ll=DEISK~XZNnMdd{THLs9w*8oeDFtvB>0cWrzp%eZ=>d*a!q0t z8v3mOfge2(ujIXaDPV0+?ohcK9sj9PP<`!~f&s8bz&yM)skh3ApPAp}-`0YQz^hD3 z0regG9?6$F4LRFn!hZg6c{D!3PFZ0SmA16e?eBl3uP54nObvPlOoCH4;;k>#AeRH! zb9=n1J{g3DEJ)cj4y1_<2sAe+fKA4pml?p6B{V}Xw~Q_#FH!c{nw3i;!5knmkicbd zJaAov^Oe|N3zx|X$tkgLD6=qpCL5KNOPFmry+zS8hYR$U|M?xd0Lwg5W?K!-%k4}< z<6}a>{HMg{j;spnJA1+M27be`1}~vC!n_*O-~!*zb6;_k@2jkP^KQ**Yw4qU9FX$) zk_We&_1YO{#H$`U9n%&r-<6cLH}iIwZLO3+0x8nuKswpTzu%93oVQ8fL|_EQ_`P0m z%Aj;{^KMx-qZ!#Fu-=Rh2y$e{Ouao`_)1Q?k}Rg<=ftf(rMO9?aWf)29F%N*=<#IL zTxj93VlD?iogzWmt)(m?yT;Nw=2&T2;c5Gzs$xSMT$G4cY9tq5VoP`OIlC2XlpYVH zT>n>Sp`|^%xjfpy_7Sbm9gG8sHaiof(MbLIe*Wc~1QR;P<{FDOG~%2lSq`NOGUQAG zqa9k%ro+6;_Y7w1Rg13=DPuiIGAJjB9W`sbI@W-ASQ*BdZq0Y(<76BKWBovjB z1t!J?)9PMZi1S+mtqs?i*zpk=D9&35F&FX*Zq6VBUInAH5Cr z0q#81o{Cg(HZxv~XvahhLaQ{Yp_2TIoJ4u#Ga)rKuXCK@-aM55>SOgO(E`-)C}XI7 zYdPj>eW5)pj$d7oq!un0L9LA1;DSn>gMn1i^OX^`+|Rta6q}9QpNRfiJhIavDS-fW@)im6(>(&jGToke@-aHlkyQ-gi39D#nkxW{4?lB)h?df{c zGsPzga(Uj;5QxB@c$Yu=<(XUpr99|dDOYj% zzi<@1V7O!Ko>#M6)t=q3;J^Vmomb4qwmA(_%ZP9V-83m*Q-IGk>unre6OuM7WQ7C` zosOsBhw}y3Y@PW+GId209d)>!a;1tacQT8FZTtM_V_i4(ve*xD)NxcvHIWD@lXenN z9Yf2DHZY%baqx`5xYfrx;J}`Z@wZ^N*|#b-7c-yR4&2QZiJ9X_^qm~X&=-&W$dL(g z|7#iFRTtVfI5GRS>;O6_E7#Ci`M%*Phy~u2Q=l|g!#t82R-JF7r{uQf=RbZ;$kR~_ zVHAdXU^k08AuTkVe0D5zCP8^Odr#0^AhA~uzN__{M_;!&^#J&trU?Gov^*L4J1vY{{% zy!YDwr-!!!A9m#WT$6lAp@<%I^U*pQqt#$n1Y1x}qAy)jsYP zt-T9giWnsql}4-ak)=pPL*s=Y%k(FX4)1pIwM8%BXc|kdZDBj|=Q?bFbe8kH(w34t z>>x|zz|@!?8a?vR98Y3QwpG~12^d6!=X99fyfaibTr8K;QsxZ>R3T=tPjfY+(x+_f z5gb2eGcKrvn=+K80R5@-y|h(Vx&nbE)_K4ZQbCoccK-5C)FhdNARl$^_L%?J>w~5B z;Mc%=C|g!P^a+rLad(|y$4Df$rsS||r`sbjPY@Lo|Joy0D&kG1Scg_ypiAbpU@)zS zK^TChs(bt*7W>>t4{`y_mqIX**4}O~JR+nb37eg7kz3*3C@3rhcmpss{P{P#xc+w^YDhf6 z^$E7>k+^~KOAQX2|E{JPe@C6cIq#}#rj5<#D*8DRXD;(lo^d!wM4f6RF@}uD9DVSM z#G=FQ;;bjB_d}n9X*+Lyk0L__wOhi5GfBIV-n>xyCwe)FA0T+pHP)gBS=}~>B~rDz zKA8+B$bA}1$BVpy2mRA-tBFQObO`K5u?D<`=4AkDatyj z*XJ1*^+&fX=V}+Iwz?_0IF7Q`w{NtRDdkhycmjh8KSIhioOOc?vx8hKRQK9TlEJLCW z?8x{u!r{(UlRN&)}ZM5-qyw=m>#*kWnJ-6Up zvT3U{oV9@-Qc{4jG&58a>4XEpb@!08XKzt1SYKXqBN1R;CA9YluJ(~C*p=rTzXFYp z4~|jw@TYlk2DRjg`}g-yhT&?`b&}cC887bxBk_RK4o}`sKqjYw#%C?nghz z?>nJj8t3mVW~_X_{W8t;Yu*M-186{@mL3Lvu3cS(Ed)|Kp!H4C_D;DZ`t!q`44{NL{M2sDQm@_HIH+fdr7z8rvY zl6S2yjZmOf@^P^IblV=T?7$jIH#3M!FCNVE@z%Vf>u=2lHxUIpiy$ebs9~st>au=) zhy$0pkH;-((R-?ji9nSKd^R~_YWg-RCgp(8ghri=piijEEl!TM6I*GR)Xd@6IzWt; z($J~HjZk~D`-&tt=X|I0a9?d|28co)-p!5-y2+^e(uMQO&v|Pg2deLx%S=qKs!daI zlbp?M@oOf0Vjy(OeTNu7nnxxWbq$jP^xmj+nTM8UQgjv8G}V%)71E!fpf+4UfFm9Y zqVIFOG|(&a7w1*8+2pv@rE#Xbx(BhvnNH>g6Xr0QvjyYcPIoIro%%2vEbd&W*xJJF zCl!Tri0psoM~G>+W*{xxk`28X_S!wd4F}TPXdZby1 z&Oa+c0@HPZDXXlwH4H12o}`-60X%o>>DeX8YrQI6%O7O!vAchUn=2^FvONxKJqur` zH#}kI?~;n<)1F@ZFwWinXN#G_5fV(a!$eRWaQi0k51kEN%zkNhTaUaAfvH-3rE}}? z3lxH$zzrA zXc`hNqVIT0CtwW*boF={lSi3`#-Gu#EIifGHk0`06WIO=2UQu@(`|sY(zi>{6+EgS z@+gAjkBn;iIhF~IU8SU~|E$W<8^ZSF6FB*+gddXc{{Zunue^RTxh4NH<`zUN8loT` z_0m5HPUyH^+3itOHI?`aV)Vm4bDinNyVFwJr0!Cc#Drug78B*%1xmj+9)3`A&SmR< zmo9+Jjp@3Ax=>)Jen=l=ka$!gp19fW&mq>BGDcbpguV%EF%{L<65&FI_f*mH3j2m~ z28JhbkoP<4NJNqcDyR%*S`u+pyFuvAk0IVm*o7(Wu8L;HavtCu6 za5@n?fC%aGkzx&snY~x=e*3IC?#K*_bc}Pw3}2B-GOM|$sMYBMD2r`p zo`$dY2HN<@^rU`0h1V620eo%E>B+!USKqv+1o_GyCbHM>Xs4Bvn?^2@#P9#F-|v*2 zj1u!f_VZUfz%r`;6Ygtm_y#!hllpTgww>pPaDZSGjo>mBVh~(|wvp%et;-whqX>_| zrQOY`#R@s)SnpJg-jUKSHHmV;4gmt`eRr@=KgEdz<7py8miKEkwWVAc=O}h}o6#=@ zsw8(T#R?_$az!PnA*hPta1FH+*SmLz0btG6jcei|14fSt?-e#@adPnZ+$ z*9$nr(c$OX&&%#MTc$^bkHA6><%LH49u7NiB05Y*CWd)~bO{Qg*Dyxz6)tYCkameV z$M(Z|GQnRb)8^{Bqa7}Za(6|KP^8?EX-e}V1)_GS@L>G1kdIXuCd^b_y9~CtdILFM zAW(c!)I;h;yh2)RQ@elwWtKY<#hXw~(%R*M>aa-*W(LBp&en3u0`J%$wKQ%HO52BA zkC2Iq5tj_!e;o`M?v>Z1E=t=GBLLhq2rJN01NI2xv@tK=w!F&2`w$&yFVrp^P@n~+ z`d~&^Yg~}EZgic|>=kPoIE&-qx!l>j*6ARWl8Wd-+1D>$xU>g=5wmAoFWA1=yQ0U8~;motmGyWD8CA^F$oT{k4zWo;4 zn*#gqxbOE3y2eqY{u|iGE!7q<02>`J`tTXrN9U$D*Fkg(ksc}2gwyRj7`N( zV-ZxPX;{uMkDC0#r~%4{uN+0~5g_X!QZ9ksTtxu?vTYp$v;q^Unwa?d`BVlRQLAM1Zf%P!nM$IJMfiIu?%2Qv34sJH zCcm}?T}-|=>EvGBIB;4d@dE;u=dn`i)n7{j)$6+=qTP3gRtZ8JyDGsUx~wg{o_2}c z2{QP$$D`Z2L(U)`Wz;bq8tkq^0I@x?sFC61$d3VndrSXUNSoM#jaZdFZ>E~0y z-sQY-Flca2TDBo0Xe}2%FOeDuap@gsY>7w;$>Nc<%{n`(L%y8N7;}WmZEG`mLsr=K zkiSMhpf1(RzX(;r8+a_(lUem(5|nr5^np-s?G9C_DzAC|9w#DE*H zLX&gFK6ShUxUWWWt zTQr1x6O^puo$k2im#SyGY86l{e>#Cg34Vwy{H$0KEBvM`+8HCL zeic4r{M$`n4tFof<7pw(b5zj}X^78^KPkI;W?1MlyDt&S+yv{tF<5caKoj@_0`aiD zbFACvIhE#|E}G1>S5(Ny`%wz-2=(@`4f6bkkrv@&%6Q2dFVi%jzUgJ=x&@_MSv+k6 zAoLD&cZdj>s^{n8tcJ9yCsKN`ft~HC*Q%{Jyj?GLHK{i6W{OCJ5ykN5;2xD)V+MHX zx0rntj4F97d%2TA_OMHk6T$U8U4d2h3eW1h0%Zz{1SG%J{AJB9f=$rf@$}o+zJOUeEsq5Kn=$lE3L%)MVo>Dv<2JmvkXzY!AV(uv2ecz=B8cpYp2N$!ubwJCS&Ic&~T=Q@k8D zT>E%SM^NtEr0i3JDp8VMaMQ{WLO{x5OU1I$?`c9W_7BmK2@ie7r`p%|!rV^M8kozG zm$sr(9kz|5Pq#7owe7prrDw#mO9Nxa1TSUrP(G)(d`(LwX`l5IsPUnF_E8Q zh&(0q2CX{Va8_C90TB_bf0Nc&f$qZcYZGKDDhelQaY_)`=U8476bnc;{2@O9bt|m5 zorNQM*ZWT;=Yyutrv=Mhdh+lFutpO?VqWzlRyjx!%=U&pG%QJ}me`h!x8Eb?9e1{g z7-X7TqAO1ZifzTFP(`HDAV(k(2#__kF1je?46pQ7-)nB4B57h(UOSS*sBZgWo~8$ka+$BJKj95Ndk~FnNweBftu<>NhUGDxmx9x4_Q+ zQXRs6x~=XjB&%naI4sdjR#BzF92;j|!DAL6w%{*;Z5kuqIx`NvcYUaBIVft4RJLs& z4Cf?cZ6_^by16gnb}t#uvL}XVM+PsU?_KF zL&8(nU*C8^4zKS5Lo%R(?XPH9R&*Y+Ox)5$r@jyZU4;}jk@BmYX&dOs@9a{#TpPAN zazeGtVgHS=>Rm%e7d43oX5E%0P<~!@>^+FQiMlzN*OV1|EZb&FK7~1_@^y{ z18^f8T5{sV#1EF2dDG75Yf`3n40(D@HV@O=Tj)WeHtsO+hiMjZ+-+7_W3xBNttnl5w-!WV8hrCaj_cVl3ps%vNAE$xljskZ~3h;96 zzal=z_#qbYr44(9PKXjJ$tF#iJ@@a%g-R3Wk9~I4i3@MS*oK5x38TBZaa^s=N>Q%o zObiA=y#!>&i$(~NxAKEfq?NkwG@oC`jV2qIBL-A)zlD=%Qb zvwbm>{7k}xZ#5?HUd^IPEoktdT+!;spSHlH-e%p(mN^lf#4NF!6JUJDD#*W(lwD3K ziG&S{0D+^`u)(6C8e69xGmWa!YDj_mm&*QyHSfo29}(Q7!q&c}-U zm*!#>6kF+L99>z+XhFM8;YkAF$WsAPY8-oYU}*0)WlI1#3o$NWD;c78w`U-=r$AiG zLNAA#hk-q(7MsA96Sqsn6L>RV+!ml=Mu!2Q#zjuE-JDc~f$?HNinV6GtvRkuD=&gw z2~gpjwU{6-;#VyAm*0{a|S%nj6=#zJ5gNR%7(qeY{s+R<#`&!hh4wxysocB{|x97 z!OmvOvgFvZri_}z4B#TTEf!IrKM{gP+?>}^+Vlp~*vNow<8NF@qzg$#V9IWQ+hFl^ z5A|KLdlXJ;6|-~|1xurGh(0a`vdM$0B%bDAZn5%Bf&05e#O<}Da`&l$&sPzfZwCV$#yaMBCDregR-BHrp(1+Lj> zkrw-El4J^LCRfPMYfQ|nJrsQ=%;98!dJDpG#jPA?avHBH;MKdfpR<<@Gx1nCl!pV* zDf{)Et4hj?hpBCpPISKH2n#6TZ@@m7;KHA!L1atG6Cgzw(%NS|0)Z1|^kW=KNOKpv zu#5#2#D6WhpyW-20yWlNlV0^Q&(P(pu1Q$1EK=d8-mz1TpnnE2ynPtwKh(PmDH~77 zIZL`^Ehrk3j*|1tq0HPhrvGATBpqa&Qgb1hkiW(E`;1u)e5E)cNRd_oc8Q`}`M}IH zSPop%jg-g5E+U5$3ZU6S7_G|W$*DNtVJ|G)Vl9Qdl{*ZmD@F4a?VDVe2Q_&`cGf1A zkL(j}M=3fD;_a`0+0mky05xLq?ea~Ln|$1|qdn}D@4lHgdI^q6geuMU2OwwMRrsvO zk8+X~6nP2p!VkE|nhh?54F>uu;D^v1F{?K*dG)goV%p2D=psR$rNa1H_!TtF*ml}v zgT%>AN>QH|OZ0Tk-?>O{xrlO|!9d7D%*yQ|$?&Cz8wq;!zgujxxUl-~-!FegxXNC`wt_0n<=iA;$W0Yp6qNs~(ls5f7iaZMdD_v^ zEwuErniY`y!`MW=-XW`Hsh=4oI-9&tvk3(b@h{>0-6^ov6xT*1)eg3w!=3R5#ILW$ zcHf;sDk%m%%ydVyMs5^7|KHJ-o3RhGc<~~zS`x@rTu$tyE>cWpk&jL;9kvFmY(kvW zpiw?+5#vcvNf-5FjrsMgLqIS3SczT`KX^!`qrBf~UpUwfl%RtORn-^lh{ouRln%ft zbr!X@ycf?pd&nQAcfe}jVrV{2B&z=yKw!2#l`@G8FMMpW7Jide8YS%r(>9d@m9(l$ zO;}!NDTfO}+gGE@M$?K~QBrzPKFR@`3E>YV9mi*x_(Ie2Sc%LB7ibREO4?F~mT-pe zMO&-ssY_fQu;+PO z$9X}hwbJZhWABL^VT)DH)+wERke1w474Lm+`Vqy+R#gY6;`Q}D3jP)w6JF}&qMM74m(G|;fwXOr4ODkBINCTbx0R{{&x0$QX2Vv{XAR@t8#9n>xdlypItD0;G zfnvP%SZ>I)YbNE>bZ~8cGnVN=O=h?g2>X3vDny=t+0BC#&0+FCkBHZl>mw9GK#~S`t8ywhc$YyI4?mV_9^|D;Irt_6U(;=?3D+Ml%Hg7qn6^GDF1Yqsy zzC-gRPs=PaFlyU8T8k^l>LUMNG2f!?1}xpZjm|=7LU9LM0)78K57TUx!K48W%V>`rr|7R#l4SomRHf?Kdsls zPxwQ#PeO$Xd=g%K3C(!>7g{@5#t-PYlytwv&0r!09H=7YS1OnGHNk!n5+@>@;f?0j zbWIu+y@8-bD_q&QuxIR<(dc#ji@h8>!KuQ7#0RHgog5^ooBIYY{eJs7kYnH{(xf}1 zon=e0O)M(o4*bs1OQ6_KV0sFl-!Mp9R-!D`kBRtXY4$4>f8e8!tc(0k0pb;g6PSPc z-Pa*Kw8K`v3`-vaMQoAos3k>HYP{e0i(Vq`vwS<_I%4wgnS|Ttw?li@dL_&~2U22b z`K5Nz&%g00prc_E0HR%%s;!Y%Z7_~<$*AX8ogfQk#HMm~ z>z*%q?5&TlW5FYZ^FPEJu48XzBNZp+5-a=z9urLVwsFC}Ks z-D2sPj8lT@>;pw3X^L7GGhWS4w#pd80(O!NUe`)|ywgSbeyctDC3F5F0&;$FS2R&6 zT8?Cqv>n7L3HQr$*@do{ajb9~{{=IY_jj;bZGHP+0K%{Y6|b;~xWfQ+8~l$@_I7C- zJbMSMYRk*IXB5Lq&jFQ?EbY*!dLPj|FoOELBUl#34Z?xv<3qB+nzU-V8*ctWKI$W} zYS=FI2m4u}rc0Q3akLvb=X==|=YeolbWe`3*5MH2@)Gj`4;X4PlnvUy+VS>>qYi_yFq^iAIN(VN=k9RlicZ_e6RyG;hy*$sAPtFYN~pk%#~SmJb8;yjy3ix`oJoS3TUXUw7vYL*L3ax4fld~ zd>0Vw1t=5Jw>H_(WyJIy6RWiVZ=UT0oqG@>pM@HF5XH*OIDh#G+&y#PFB&20>>XW3*?6jyO9%Cwp(%U{0{7t zuw*89h+*Ou%Q)isU$z3OizkuORwQ{B(;76a97;A{%UnG)kwUjT#cbNDYqnR%B4IyQ zm_D)$s0cxyXPR=%Bv24-wfmnJgv3My#^1D+&C5_uo57K0At#4 zNY(N|xf!kHd55j@asye&n8M<6s(hIE+|oyjl>szGwmR^eBXeb6rE2+MO9(MyaUz9V zGXuat1~MvQZse9ry1wHiXf%}$XX|N%A8DZv$UBf08JBMHuGn)bC+LRzIbZ^a+5v-N ze0~M^m3>sr!AD|&>sX?1EXr8czh$be7P*!HCoCz*dw!+5E@|bBS8&ir{WG6*^UH0mKKDACUfvj;f+lJD(w-C`5X^P#I z`YR|L=QKfA(F>2G^uawTna{k=i0{$z7$mX-2|bXIp6beD=Aq2cNF1i5zrz~c1nZPh zNuf8{b6Ni+fAN0_jB>3gi;f7bar-U;Al=aHH^W{GOwD+`A)ZFV%E|EK?VNT3 zj|b@r3f?)&Oz#2d`wHwKkfA{&H9<-r!nmz$ig2Rv>uC8DDox z5;AE-IQZxOa`_WHgfK28-9F7}Xpu|nCR=}nr2(qAB)SwlR^hI${`)>%r*I)NJ<~;V zvfj{mW@1g*#Im8liJT@J7pH)pX^^tom@Q8jFzl>}Y^rVwI7~ftyoRm1u~ziwythf?`kyECGcyyT})G zg29^9E+|eqY?LaSR!xB-3k(J?eEl=F?EbZ9c`HtLX%a(up&F5Pt>l|#BO-9~*zM*r z!ypID8m{&1#WV;6ZkTo1p4I`&hJ0r>cXN{<&O!UPDEhjxbU^eI;G0dylequ4Gn zKXf#@HL7^nAdlvPt8Mp6CQ*jgrA-7$B;kV@<{;8zj9#^>B{6;^3(=Lk<80*vUi3#x za;@yoMzof`Ugue38ZOT57P{bgxzM7IY;iX7JZ|2O`t-VZD)_FQcX?6p6>j@Bfqy~_jeKZh4>kT(U0w(;HSPL zf-5!@vN-;X_|z9aT3y<`5V`XuNF~;;dHSanB@oN7R@ed6*O3#RRYd*6`z~efCp{$#!X^;I%}o8ie1!D*1@E*!RdP zSJ`aQuCU!$FIkAenoOyh_v)JFS)7HMsb`+3NlEyNreae%B~4^b#u$njk?Q^)RRa|J$OCHxrdYJBc~kGBV0C!b`H1nP~jzVpG0-5NlPb zj8C+1FWVOnPz|FkLgY~7Ip~$*XC{(uFuVstIf>s9YZ;B5-fLB_>^MeECZI#77~|C- zmCzZFEj{$U|NdUc$^bp`D{-BkV}!eAJ&5x5o`w94#ppL)b8RzK<-TW2X}9EyV}O2x z*ba`iRji$gc?o`n3aXFW=l8o&&j1D^bj%m`+TM^62BePg%w^iq8ri%UfMnYX&dvhy zj z3B9?t0oP=LJ;*;-6t?_Fqtl%@b(MkK7fh(d-5IGUT5|1Tvq_ga^;ZWbI;5}!nV!q) z6MfY=+TW>kqd|CPxs`!@_umi)P;%M_VV0E_f^vl@oTe+hEHS~i)MogYe8tw#Ge9)3 za^;>ncoFMR!UhtgPsanZudjZwciBUh>{y37)h7kcz(}hn%VPQ;P~e>*woL)hv&ujt z{;8tCv%l8!Z6N!6k47m&u*}{lM#nBM1Fp)nJ)BumK@R0qSB5H1)|*@8`75GX4ztxw z9Htrg2M1$zV&wl(qYdA|mD|m~w6;MF zv|s<9PD-{|8z(zs+2%zoBTrs_^5(0i2M=s z00E;UC3Mtl`bpWTG=d`c@aD#+MTQxG@TC4l<*14X2NL?Cg&A3x<0EFz}!H|#osAk;VELqrbi;z!fyQiREHb>|?pRd`#XnxxH$eU(c z?uribX*VPMceZ@_|N2Wfw-Jv)F~Cw(Ap1rRmhVAVI7xz#WQ8As4Dk0ilKtAWEf#ZL z4qJq^ULriPmBOUHT>FHH%?{dGL>d&&f4Mz7JqYo$+TA>=739DQqK`%9MzV*9iAXZ( z!V@mM2^<0QIBpN&fccY>k*+^wdCf~u0~+!sJNQi!2twim5>v?q$7A zQV@h`oJG8ahc?)XJx6U8R`&Z|snwU4et`%os_qE;({5-eNOkU<0z;H=A2^}#Ms2zM z2WFFZm9+TXD+Hic>7n_fFs__zp_G8HARz(nWF38I>k{?*@);B}hXNyR-mnW1RbJXL zM|+I8>>#YxTLt{$2z*!x_oL7)m0;2CL=Jl(NUtt%nv3#^8Kj=QaS&&ok5)jG)pctT#Zm1&p5nUP z7{jS%>Ed9z-FtN|pDzv9RlN{fx&IE#^J5D5{Px)@I3F}MZHuW(P-S*<$yk%RSv~+x z*=&Mo&RH~UZHq#%osU5J+*6K z8b69Z29cMUq8&RG=_YnG7-n#!W%m31vik1B{2sp+Dzq~CHXaqjOFiIk@Dm-1DMsp? z%}`#a13}mt*hM=I>S{{s@-rA#6huuBB09Vo5bT8(C^VBId`2VXWpG~ID6^hz3-zj) zW>Mo=^Wk7~C*kdN1fz5cc2+k6*T-C!s95W1Mlpblp9us_09lqK0Fa2gMd=abSBFY& zghGtGgFY2NiJ+79MD4}G0%5p+Wn{B&T?HxVGlTt)US8Xua-<%_+$!IOB=thXK_{dk zD?aEt5E*pmZ9lGcRF`XPvju!n;b$Gu=)yI4=+oya!aja|9Nt_WA(in!wwS>;pGo|u z?Z?pjv(tf3`&$vHR$fX;5T6fGavo4r2D<1TH-Pen$kXt*XSNk)Gxl$)js+K4+si8< znPHJnFKS62R#GP_ExyLt%(NgTkv3)6s0A^^1tljU|CdC^i<73LFNk#gH$vT@AVlRX z!Kf4n^{`rNREq1>iOFTUAFGUUo!l}Oi~;-BNk^Gil3S96a{~`LGguJz|4MqR3{c3- zt^mmSIdhHi0ij3laGY)P}c)tm#`7f)6oxhYKN ze}+p_S#L}&wsR8Q{BX)@Bc+l{);vL6(Gbl6$@fd8M9B8kuw^a#=@Opf$fT&*w1uF8 z-zbT>>*jFlqKLKJtd}d8#N#Cn^{iFmZ2JLM1H&(Z8PtHzx?{iy(8K>@i)zZ{*=>_p z)=3z#3v*4uH`<1ufq#~`5V*9kJ3NM>{JBH9@_AnGKpJuBXA46!$^*xT@2Z`Apd>^kG7Ed0%_-=(5m z1cB#`G6ro|z8rmW(3=Cmoeux0xX>*f#MwH^HY+R={HE-0hG9;tcr4heCYIdkDD(+< z>12YZ3>6jJ&j%ZV9I#eb12ifIA5RVI^fz#zZER!_^4OwziI2PzoG-qX zn)DCCwT5WsBx{B)c!e{_$JDW@EpP=Jm2~Z&^SCxlR4plD#RY^G>wtck(o_c{$6&^< zo&$V@T)Uh2gm_h>5H5~+56G1j(ACO};8@@^?lty^MBYjQ!$=H%@pf9-93OZMQEy*zGO43TKZWFp|O6YB*-}XV&%J2h<;((qAg=L-M3|i{MBS_XXG+e*jC1ViCq9fbbZ{D)khdsm(22 za(G-q$12R07ZtX_%ac7mX1e#i8mdKlynP;M?LO{WKpp_)i5J~NQ5yN!(iHzF5U04*!gl31eSvZGB=U*Ioexh82qd;Y{!anl@1bfagmnCKc!62vlW<4SkYo0NnNH!x6ahcz z0kZwl-&qI{Y6%~x^1%fVF0dc#PxICxpyRSJErH5?k+OhohC%gkLCcJ-lqULENgecF1jI4PXu`RHMpVEaJ)<(M7 z7YU>=;oG61nSie^ok(}z{KbG^2yexxhg%jgj#>dtVAtEix(@1?K(I~;pP9AA^oZgh z>Zd4qZq!JuHUjzcaETV!ykzhE{}(I$%ed%j`q^@T|&Z$SG_ysFW1ERkC{UFpzuR2`cD^h zR%rd#c&Rp5V^f}Z@Q`NP`Wha_z^KAWi~yvdJy%5LoL#OfDh_AQn~idNNNjSDU)lo= zNGiDsxTjn%tjNO~F?58JI>hyMqqx4zS2Z`Y-jXRGItrSRCq?W8P;;q0y69Pm{m@h> zXd)s(f*~;N51pDb9t>Npciank!UPJF0+(l`Kjq@au_jKtDrJO|MUROGpr@oKpQ;}qE!P;S^?_RX@(}E`nUeiqagUa6)N9_ zH4U0%)ro^rrXXz1p+>N8Kl0d6dqE;1MU*m>QKylRLTV{A3;=XbLg!#??uUsNDgTLL ziBie)S|Su?%kqhrq!`I^PnmGedEg7^#soPGKl9BGDBVv0hUwa^PNIMTGa@HAWG0v+ zAThl1;~ocTgEjRLRgl&ph$_ERSi&PPrWN9JxGWK+){HuD>!3iPpmK59uVqaM`hA%G z^~3aY3Kf%Gb}oUki5?n(>~K}(US;E!TpkL`RwX^9T*L)}f#3czvdgW%9rC&n(?>$$ z|Hb^Z^7J(=@xZgiM4l=e2jxgc!z37qzZ8qj2?WP*R-TPdpgVrioF3)CCuD$Ir=)ZpLT*CFE@4PYD(5TqQI zQ7}44D#ZhJ#K$sxwF~pH{i$pY#nCdCc1v9J&c$*iONB+50LGg8h~`O8zefugQW;I- z@bc|i4cfLPMa4nE7`!2`qGMDUf833WrFF1ndBCU}l2AtsW1LoLrV7u;9eiY&U}wG2 zF!2X=Z~Y2UoFG=%5ns4pF^qhR2INBr7WWQIE63BD11AN5YdFHQ4tU2=P-K4?rVRbj z1ilL{2&ZbP2y@-byLGoX(Z3mr(7+3_j4|<9q}Q3c2`WyT`b2veE{-e}8e%_b7G<)k z=31`>$8QXQYnR{bO_7xlS(+Zs5x9MO*>mPBdt9j{xq#sH%gFTgHHxl$erx{j{`jMx zE)FzToJ+M}x#Wcyyl|=M#2Ec1>J5C?`KzhhOff_ed7plp7RPGe&aRjukY#ur9)WrG zGDc$TJ1?=uvm_HZxa6i4_5qEe%$&9I*gdZ7)=EDS81*khu(A-TUE-yz?jmdSCE&29 zZ?}RJ%zlo%UUfkRxD8#8j1nUTCrC600$fz==k&srocL+Tntd~GEm9IdTNNl4@N5V| z5F^r%ft2ph5jqe>|0do{^+?Iuy*9<#9&exa3_40~wG}(%$h?BmGa$WbP&;tc<-jl$ z6J!CNiJ(%=KxN4+>Ncdg&HnYuA@$w1jd(m0`QF{nLms0jL7RucXDUsru591}iU2~+ z7<@Ox(<)>n|7&#^l}hwvVE4{a@1wVnW4A>v80b7e5rAYuMR&brq~#zo2nFO_9{t%2 zASbsrM=`=d^P5`bzQNE@8`yqHP5j_~YG~*!UljsznfSPr0#`LAPmryxtnm^)!$BmXY26xxqi3wZ33_P+C9t^1@e`y#QHpO1 zB?(+_hdXLdPJ?Vu*rWOR96SQiFT-{`@6DZX-+_P>c_B+o!>ih1Otcx4JJV9o9F3m1 zRaym?gw%DN^b&(H%)Ck0*Z@sWc+J47F96;tpw?Yevm2bk=H0Bl%!XoLW=VrT``hF0LJGM;ScqSXE9oFWy)c5e z6sUH7gR5BfRa(i0Rbcf3mTN0>zIaOo%K<%uaJ*42E3ZF*s>CPoty4jSe!pr4ENLLZ`_{W*@@a10>GD222nlf;!Syr;wTEW06*e?X zwrsryFcpCSbLE8FDN4X#4WG`@)^(Y*ZsChj;xgU?BXH{TEfiJg(;OEiz{8W-KT1yh(s-E&x~Gj*tHxEB7I0B^`!TDD<^gOr(xg-SMB$1-ujx=B zpzIBSnpErL7casIX#L@#yhN+aVSjS5Vsv3xO0pmqJmQ25)yQilsXCxIu5>SgREE)Y zyk9~pbnhS00?Yv;UfA`?FQvz1@1-Hp^z&hoCSk|4lAW2BgJZk8+4hzKw2JmzocjX% zi^-{zr^desM|@^SVVxJso9d1_Vlus7QsP+j^Y|{@!6>INOW^i`M4*KP{SJ!m1Eguw zGZvb~*Vbe=LV2v>f>W~$$U}oAg8*7HZ)|2KZ(H~J70m;JAIRQJ9sm$&Z}i3S{bBIX z&d6*2ubP0(j&Sd!lQ)X+NCt7;3L6l9a6Rf>?$_l8!3Cx*;RilFJgtDb@S4b%tBemd zR10)rHXi2&jXntmw6gG+P)wUh_F}Uc!OPt5WPK}JKm}u{PyHc}*~a=bEA)S=|0`WM z&U&KqLI7CbmNdIt5!iyq|3hwNuq*9u|f#+;uS&y>1GBCP%Mx{VFI}OphU1-i{>I9M@Zj0I-*YY)=D`BVPO!SvLaXx zVQ&Y?6~mnqn!A1W>{0)2$(!#qa9y=;ppD0XZ48a-^LUs%;KyKzbyU0ZrNS; z+^NJ}GR{3{0$!6~eFD#^mDM}0sQN<+{3AY0^pq|V?B*Yh*9g(YYw|2zO_%wXlGBh~ zgNntz{O3CQn%jW;XZdOcrhD(}B?zg9-G;;Zfjr-CgQ3j%M za1eVd&7ec0m6Z6;bW2zWr|#e}gl>M83@O%%{vqM19drtOE}4%R|9|=x5V{!$2%v83 z>*r|fd}eNq7OUPrOprLd|J^n^pzI2HRNNZu55p`r)D$~r7{p2+f)}@aa26h7D59FZ z#MDmMn96P`OGTd6ZUWQ-{)}LvydNDv!Im85nz0G+*wKM%E7Ik`yLuZ-IEHHHF7XlWpc&@BcbY18g1*oLb&Omk~jKGIscHKqE#}55JxL3%jnY zG?hlc;2UZIPy^}h4$fiy_RuYybK6~7Qazvr#Phzs>*818L@sEC>^5d_IW#{wUaZ>T zo71isX0Z*FEjpJ{E&~2$-RlANU9miQg~}^Q05lu3;#S@>C%izjal9_KMLG#7&!ibmRL;HK3 zu{Ip!X51F}!!87$t$4w>&tKx83dAlGu$03i;B9vL;2bdAVcR!HSwqd0Jd#ZQhs)#GPcnR-i+kRp;&{y8fxlV%|oCW*JNy@ zYtQ2Xa)zxvTZ|?ABtH|AbpE}UTO9Mq%h}1zx7SSP8G}|FH0Y16bZkm@kyQA1)e#=(#k=|Su7dR2EMfoxa=qUg)=($Z&zB*&L*I6~SBuL{@d0Lyy zPEfbRANO5Z@AH(t5?FH;rCUZMW`szywWIBGP}gc&X;E#evxSN z`4pY}#O{U_xnk*)d8|JI23$;v1rk`&mA;NcFQRWf>EBrmAvMM`h&%>RtU*rr>%9K+ zDnA~=p%eR)$Nf;3-{JMBi;)YC46N~0au^l$2~g0*C-+-l$*F|BS`E-4M-cPHDt5-s z-JcHK(81)AYoJWi%m&IJ^I9H*L2TmV!4d*JW#BCF_Hx1o$1bfs@`jJ7bVs3RApX^5 zAI*0H;l_z4xhxj5G>Noo^7zis*1(O|Xyl*2T6C)VqIi>C6317VXqCMgzZ2TQ2l0s! zKURr|R0FJTg74PWb=?#DvAm56$2E(hW0ae3{f}u?)&D)MPd8f%2}5gdl-DJhe4s|4 zoj*HimGiDN)}V!}`&hrbNI8-RLpfYBr z)f;i#FuY1`P-Rj!a>tGo-FVGkMP?ZCxX(XphzAR$ao%m?lv)x^-j!*WuK>z=jrSph z0lq^hX&WdX>KmF55gRL@4#h!_aT2S~62*|1)obI9AOg@Z=+@v-6(OSH&Zi?xVwtVk zXrocTPGqaJ?*GQs@)7ArKe9PHP#}G%zdY=li7pl?2%2+GHCF+ETVFtV=Vk>hgBd7- zE&7-f-2kkwGe%x}5mH`=Byvp!94pKflt2xW#xGCMRQXV-)0tSUyd*VeggS?gLsAZc z*JM)?*eH*`0)YtHcKwotm;H z(QC%2MT^?NKuFZ~WmAbLLB@YJa=^P4hK?0Wh!U-rnCfwXsY(b$y#=f&h(yjUM$Gxu!x>H89HiBw4+o%#I!Qr8&rscG z)@PeA|RP*9Kbb!#~0A?noO;ca| zPaXq#e%O?4f4el{G;=pft#@HBV|+j~lRK zUqw=b`UZ-be27-wI4$(xBwv<6z8P`*H)pv*1#wigDD=GSJ!z(cn87iQ#FYEC!Tm~u zq-`w4=5zR`o>VtyOOA=$@F9^f7j~fKbEGjuoO8Q5*UbR_CuemFUXyv` zKM>X|Qgs&ha&9F~JSU~NnfV#$ia9>z!`er^uKt3m5P1w;fsM!W=OL*+_bK2i~_Z-j)wI89|enS54WTZT(;@?w1We zKbOQHqdpY^z=VI{8;0X;jTW_{7sVQcklHfBYM^E~yK3-m5D1dC4Eh*|0cNf6{>Gai zyfZjNz}k8okJ4mr?WljjOm`0r-qaTRf+fL4pJ$E~9Gp3`%!>)ZsDzq;3N~(`f*q6)Les14HXMOc?`J2kSR_oJ?+!{2dSW zvNY}dPQJtbF;>3mcfS<|{#-uoESYi@Yh`fDIfLflEk5n(#T_~@>A;!ptZCGdp&2?vB zSnC`wb?Wh$)8`KF-r|1p07nSe=uGXE`yy?62dGtaDHX#|-$EfR?kVlk%g1dD@i;v8 zPP*&5^CUvedQsRn_uuLT;sA`t0I10M-zh$Jw1iEHL}tn)n*yUaO6Xu4lbu0iQYGE= z!R>~P1>P*LnJ8WOhJ#p>6KYP{Eq~0s?STCImkbi`SVycA5qz=W`zkL_Z2ON{MYt! zQdjM7WA*1|`wyEGv+!r`OAV(H`W$ps@hl1Mj78mXSw=AhA*SD)D33LNl@eQWJ-d#@ zqprL%1{V@ejFql-LnH~I}uv!^j?Mv5VrbICk4N8J`TC49_S`VldJhP3&0dK@h!8v=QjEN9LBv11y zRX0bCxCimg2h*}|^D*BR{K?gi{WHnfhfSRXH#3`!)vw(EV1_r_(7GlGIIB<;q+(!_ zi}R+e!2f+9VBZh2Co+(8rqU8!Sy?QA-vrZQX8z6K3rG(LAAGW6C!@~k-FurCSf(0& zaLkhWyGYMbJ`hAPjcVDWGlDJ1pp*=b-p|b`MnJZIZ}r#{WS<|2ErC7B@Y|m89EgXfh|W$d$h!@*Am6`ffkkd21*S0VE^>Z zSp*Tq))q3p!^mG{(vfpu(tYz(kSYLS)e`bkO6UdLitUW+5-+|;ls@f~vxuoKL2(L( zerN17aun>%2W-%#`TlfAbcwu&F$_q)!QbH-5Fc(XPdP`EI#vV2m0ZwHHjUsH=!UY! z$A@!ki7blK${QL!CDarf`!?rOx!S=8q=Yh3WU{rhtLFZyr)PFpDZz_NRPuv{FQzDa zGX{-~G4=YMifYVeXxS@L(ZfwZQ97z8z_u+<$P!>gmuDFskoRul;WeX*0&R_2amFCv zvhWRBvALO-c16PF9*ArmN=urTOnlA~!7|M43gRFF+w%W$!gG-0Y3*NweVn=Nhsrcm z)jW?&wm_)Wi~DTqwcSWv>gJpM7Iu>4;*%{8GrL77qsj~tf)#*0g)Gx4coQSl7!>?Pu*a`_CsGHUbHd`0NB{OgF=>dRps^O1MJEXYDk(hwLB7Sf-r%J)s8+5O|33vtaWv2agH{T06p<^P9@iN zW$@XYx&I;vbhziU$BMaJ#WxV8^!@+RHo+jDf6W{AFn60bGD>(zH;q?J{P^i z=+_g4-iCB$u|qDg89vI&@Nh!S---kJ{Xbqz7&H$0Kv{nQF(kkUKMFga)mAA=#oVEYG=4@iD%&BjFi zUXk-sek_>@6V+8MBJV*%Zv&l-Cp`nrwo3bXKOM#?U>q>v`nT`fws5NE6eYWUp?`qSTPjedipdf+Xc=5OMPb_4D@^8^*7cK%OLDXR4fyUey@P8AHS^gO#gaw}e`j93XrPjG z_bCB5(zkI{0OX3m6HoI7b8TZk?lHA}CQ zPL4`K68KbW`qV;i?2$E9C^*I_&`Y@V2)eP63^JQ70)Zc)Hak@FlBZYAiGM!&NA)KA z?D%h&#?$@N#*&F)^+;sg#Nut36dZyK1FAkWgbYJz)?PXFxSzfROJ z;fln6<8g=!rwFUfH?xAJW8J|Pd2YU`{WKL|#?j^An9-r#tx(NFc-MV4$?H|#hWwJ2 z<(ah9N8^(L^c$C2v|iuZs}k9$4G(9fSDq|PS$GS&-XBaF%g976Veg66I5^CZ;_aZ~ z;OIvzs0&;yhlMTy8EPPjbW0GJOL?#{c!i6sDT-F9A_I(6cJF$8Mn*|xllnb$Nx0d{ zCYe)!At&-KM9^P$=bVhUKLlRl)8PrtH{5foL_6tlC+efM;shtXHM#lMl%fYe=8gSC(H`Y-%}U3T(WbCw2&Jdq@wKV5%VPNc;pH-T*!s zHE#UuJ)OvCh65%p=#DF$$k|2*N|;Y8SbZ=QWj1FV@J zth+%Jqi0PVa@;amd$)b;N1K4K`oBLKzB%wi8=JIwx<^&JqqshLi6}K40E^qDiMi1C zLpv&V&!dRfvXk$4?6_n{Xw#s+-Cc!+m4?-$KRnI-BXZz+JL1GH(9^H_yT&T|L2F_tG;hpt66MB z-uIT+jvc2rZ8-T&yZ@yudbozf6W;tVz?F_;PpX!~#@+VOG`~L>vnoaK-i1d^Ul?o3D+5{D+;)jb z=fb1H^9kg|#u=6Nq*qGNT7g{IuFse!(ynAeXBQw=AN|Tk7!6gmM}W5+PCOKnZdF?` z1K0Vbomk-Pm7Pf5WbfiF2+~{J0xd_NFGG&hoVnZ^$})wO1c<9CYquZaxw|zjS}Amn zpWDb^SRa% zVBt>7P^IZ{OQ1|=Lw_jJG+*GviR=>{s;<(7h|ZCkk#cDahUS63{caP_W{*b>lt9$KY4%F54nn zcT0D=!U78(F-^i|_nFoQ5C;rfu8C`vS5libUE?Sx@14la`OF@7K_pARYMdfSZFmmD z)0em0wdBReAtW|GJ6Gn8TJVU|2BLGsk^K+p68hL3jTw{6MlMm89KSF{U*}$`qju%$ zDdsaZdaAz^o>?o{U>YVNgLJu6^QQxB!s%iTrvp8vQE2or^V^-rIine%*+D}#^r1f+ zIJaOJu~tImu2}EnSIxSg2|e>%1@2h1N{0)Y?JX?aa;tDCvj3d)S=<;oSd$KHkWlfO z#+4+W*Htt7HcK22Kv78Qs_Hi9^q8IWT<`2EOiegA4LPoZH;RlLK2)q0fFJ(?dRxoM z4bve9|K6kI<;0D~cfr&mO-DX35^u7ZH34`#mgXel_zyQ&VKlAcR z%1iLTpuG?348d5T(p&p;#x5CQpcNo*Fk*as+9r2iNGTP53BW z1$FvEI+y})w~Nfy4J#IKxm(0=>U(onUtC#$3E!%70_B`}3MMJ4f{Pbex4mucoD00l zsA1w?%S>m7=4W6zbv%RJ-;m?VOtMz2Zg_TDUX_RHBX-_k;6GKGBP)fuW$PCV;Cb{e z@FLELGXq5yJy+^VQ!6^!9U7_i2Fx$QltAJ6EILf63>{uQ=Bt=qOt1%JCkcX7+m?3F z3qQZ{B+nECaj@tGi}<`95khD8wLm}eixNrXq)TSrcC=AG3#gs90w|aJS5pldw6>1 zxh%BKTeR?uK7uY(tI30K=Tz-!((NoOHVlW0SEb)_R<=%>+3Si9Ut^KZ*Zu-=@aaKh z)`wcrXrpL}_&hXu1&m^|jQ;D7E<5T-Z4HGj)YeJd48_00o-XJ0$@V2~x@~!N5MVNX#NP}b%sjt?`byxRvt^S|L{kLc% zLsHgrKQK5$taLzEt)38`^=HAf6f}H}5}>sFtoWz|+?W$cOibe>vwyB0y*|=PcX#5? zNw)2IUaNg6CQIByYxhYz~=?q;CTQkK-RxY%Ogz|J?B_$Y)(W)#PAngjs%0i4W&8+o+F~+Rvr~C zNq7a^qE9Z(6nMJB{Vbc=10{xWhhxpGyP$oVQr3T~Ul%|En9+Z`u7~oHhP+3(p1Cex zI56f>Z3QJ7;zVA1JwPGAUim^TPCpBA7`Bd8J>T)c0MqCP-cf(b9RIw->)A`ypaO24 zS^}$=0IbR*wlE}_1Y&d-#zl>@ZIGrG?g4CW%Gvfc%>0^dFokt#z|-o#(A>NBGHMGgJFUJ}%jmq;QfIpo ziysSb3=|0gBTlWTn#C#*C9?%9W5^w}I}h#co6k`z(uQH|KWsCz{n2uyzgP5N1CZ;9cyx>rzXznd6D73?gqIv* zo_3Sw$}jTSLbmx7?;{I2<45;rnxd5fC%Cdt%b zULlyKSIg9q4%j&L7dsQl7$5l~f$0VRPZxuH+EZo2uI_=UBa8-7RSV1?3=GSnlD!NT z$`4fR4y&4}1}`M5l@uaX(`<#dOx5Gny)j z=`IT)0w4*i;KXJGh!R=B==6{RfKa@zvZVrif%m(`7Y zte(0pd&p&sFV9(azxr zf1cWcA}>Vl5>8Xs)32X>l+-Vz5=6F#R7(0vJ*a$3;1R+(N*6U+@j!;& zmBIRbGLp4S;q)%-z43x@;qYiq5|ALQ-8R_Y3H(dgqnzleK#6AB;QuDE59tqBK9wvk zzh-F#I5cfj(e!(|Tb+IX#N+5}xEq&$cR3JP-1BXrnyQK$^f$Kjtk1}NWrl%wYT_=l z#O;Bfk|u;Fd#5|ULN2N#(2ut{kP_md^Zf0FC~>dy2AyI$IfKa;ymw3x5zXaO_!)mM zqvl=MN8EpLzjf9?(s>3^w}w#RqW>3;fD{)ZV@qj~M0b z;#sq~!jJ^r$FN8T4Xb`IIN`KjHJ^V?zW@Lr7^4>3jBX(aLs=14JD{$LP zXqV<82M?(STN&y6dcSi!oI0qHxY!eH69~G-k4xc&uu8`tI=;|X$F-m3ho#Qcm79^H`lC4{KLqA>DRxddp(LYz8r z8MrpNjg5&Af`he=+i(VGCO>l+8tw3LTuT=|sm@G^{8rX~+O`F)3hyQaEhQ1Ow z$`Mem{R=l=aRUluuVVjf2jB!3U5_6(7Ji zVoC=zr$1vYkI_O~)I5T+_|`cI%7?oj4+t@CpJa(Mz`N>FF0pAC4LJ2v7eLCW=C7=d zUIkt>@#LAkWa>boF;wRt^JdB@X@)q_lnm+L8jGmT^(Dr1$-WWgnwZlsIRLhx#Bv|f ziJ7IP3Vm8Zw21a|^SYY13~zbi;bf2H7qv3B8;!*~5aI~Jjs-Rbvn3RQV8w>}o({Ne zw>y0buyj2bIij{osMv$z`avp*?Yp3-ffsw<>G14c7hMFz`~@aS=;KnJ`F@`|3+7-X zTJD1J00-ba6G-AN5O` zQ@DBi++;|HM#*gn_mvo$mBe`P9VpuqK^7p9q(rxu8*hOzMyS$SYq$nJB=Cv5^zLb~ zkD$S^6*y>S7X zwbKLFW2dXjs?dMnVLzbcmz`i({3p-7J|e98wM7J;8DmhhAMoh`j_t9LZf-n0Y-ItRA%}hNwx4+Lw`b|i+uLwi2u=#-Lvw~ zaEg0Au=lL_E5%t^3mQGolxudK;ntyh!(alKj6C_XeoL(PL!h_nu!_b%q+3k=Z|wq0Dg8I<`M!qhzLE>oLAo`%+62$N+FNrSw+Q-tPc zH2T@{`250k+F$^nbMnZwc!~Na2i!n%hOj=B>JfZFr(2g36+AsNmuo&UqMA*7cE`gH z$YT>$8Jl7zMG0OM4YGygcn>KH;14V@qbVb;Aioa2nC$t|N2_b8MdBE!7vt{y#ntAl zTk8ecXnTI!j2yxF9EXRXzha;NKm2eoVzVz{1KuTcIdjtx&EO$}TB6rBcCTK16rlTF zBZ&6j)C}{vRsgQ-bgn1P(2h#+?M_k6SDITa!1cOAJP&#{H+hW9Vr|q9apa<*rw~!g zRzeTT#q_Y+a2ZoSDAx1Liam5&G+`1pg7hz_i^)?Cb~6WavaCGHzS3Dp$%L@rxgACG zaqkHOr{MM9rc0F+XV^>Br1DO873_0Ni}T_}L}mw+E3pRwpJ*DIA-dQ}U@$T`;NbmM znByF}P`b*L)4yFJ1t3_Lw?a=M2hOwz_Q*VoV<~&AP*4RX3{N1? zpm*Uf!+lE1@(tO-XT3)K3-VY?LE!#ym)}7x)>2hQ!kt$eDSRAJ&j-j|mAMbs!4^D} za2^xvWORit&Vl|cm81>lPEfqB35z%eS%mviE8_vHPKkKBI|6-@E1U+}&ElT|czW#O zmRgJJJ^hoYPYh_epR)kW!=Nl(eiurg`RvnWrH|MX6>m+-H=XYy*HS{hLG{~7PY5oO#? zQy~DE#XrV@n+twES7Q$EqV8Vg8&|^Mv{K%nL%$!pSj$0YFg_KxBzD4Q6eW{sM)tho zjvrR4NNysn2r}(adT6~pi$Q)fTFwx~FX<1BTI%~11@TzTw`d?Vm9p6oq6l_|W-vyy zu0b-;^qaC=KG&?`mA)9iBjj{;#xj;dR=@>ZD#HH{SNQ5`AB5|At!HdR>=&0K5f4bS z)~)i51z;f7fvtOi>5LtGC_9k?I_-6?#t^KiM64X4tV0EG)BQ#8!&W`GgCiTqD3JA} z-pLLMxOm>0PC&jZEycNq(>XyJQofPFYoXLGcYNWou|>FKkjrC`pN+b^T7+ra4_{6) zTHK8px*%WnMwFrB_5o$X`AC}`6GpBzC*jr?_6$|S2knL)m~xe#fb{1Nuzm#(-1dGE z)^hG{@BOGID=@JJpyd!d2LS`VR zd~{w+0et`I=k8)+IzxIpaxuC4oZ8qy6TQpt2-XA5S0Ic3n{=%fcbQ@YGZEBcL+?@E z=f53edLwR7Sj51lfc2o8Vv_|;Vc2SgFy`d?TGkzrC0;_okD}m$5E6ZAvm;3Fxjo!r z%~^khF&@*l>;Bgp*#%nAN&6l&IaO9C0wDUa?M4JM`+n=~2Qjw5fsyG%pg^tE%LjIs zS&G|eRAI*&shxoQdyh;x!Ja%dI_DY&lBrFv9E&0CvAWa-3-zF_(9KrU;3ao_q%Tql z?yBZb2j&ofP9YJd4RCHez!ZMzl|{P=wydu;{X5B$M`?83jm<>Gb)ur{QadtX28={1 z?efK*(rhr{X%-|k%4J*AC{f84&?g_+)^o2-hu~FF_3!949LtY8W`$$^^x!OZ$P$>k zV7Y$34p3y{>PB-Ic+wa-?^!Yq7Q<~y2h_z&s!a~RpQI5vi)(>lNkltCoEC@;m`;|@ zu2kFlavY@x}`U$ z12=&Bm*0>)E4F*@sfkYOp8o=hYx&%`WIcrtIgL`N)J`I^v-cmN6X`X?m4)|0VJ+}K z(%Nx^R zJG&?x;!E$(BoTw<(IlcabH%m);#mj(ne&tVWD&6 z*~PuzzFL?AlFJ&R{3jpJgjMBB4QR9bft?Ob)1u32!wSJ=97Gudh_9w2UI2ey z9kA+$EqUDHfx&EfHMG0y?0tDj)AS=6dzxQVdH@Dp7K4|$+R)jj>YnUZTfYfLfY<|LGfdCX3%0c49Xtcc_3}c|Jh%b3$~K#TJ%K7 zn*9mVl5^Su1b3Q@7dlX(ZxWQnUCOr-yH|6eQO{eemWan)}= zsB{v(R}!h6PIWLfNM7>kFPuQq%O{3uwM@xhAGwtIH+^dc#^fr_yRI^G_6P50ifrj~ zDxz=iyw?9Spk7QVm=Y)J8F!EK z=$jooBCC2#ydyJ0lCEFwARF9mh+fB&BK7+n(q8;JoGZL?$_UTs3xa-ByrzM;ozHSm zj1xgp25Rn9JeGc-D+K`jnaL~)?9Wg40%!^#H}zw^&Vn5Fw$7>2V%#icD;iMt9kKMfSvUJ`63xccs6To|*?0 zaCqj5vawBrZd@F;dFfL!kK5L^gecr)a2U}t{|0JS$^1Q%s`eFSX?q6(D7Yr4)^ zxwRn8h)Ggyxe<5hv9{FD-eioT?<8MssbbU69?s%fh&=y`JH!rzYTs?rUNj%(6~+e1%gvP9L_xy{hPmFl*XcK_IBPp+=&TqEyQb)EDkVfo7&VT&=@PQe_$bQ1B$ zfyvHT{&FyeEZ0C?+LPt?As4c7rF3F(=cX>d|A(}`c9NK6Pd-U%x!%%W03XuXIad$Z zG{$?P6H7QJet1S$vwU&jYYYMX{}vgbQrF4CH4KAK8Gvud#cyM0sqDmDi=O-wvDwti zr-o0gyFD;NFqqs9r}Z60n27PlY_6 zoL_=j0N!(#b3A70BmLz@G`k*H#(;JV%QRtwSNAjvj#D`Q?*?G8!IjZB%p&e`<$u(2 zBF4TxLwNj!4>`D^lFGR?X+y6Q>$2_tSR^@p?!)faf_H9y!d0wo=3ETKv_J?4bF@Qg zN0x2;mL-#06`{;Ng^Cgvw&C?3%`YZp!w$_{!tOH8{TM3K?DZ);-@-Kg0~+aecs)Jl0&afwsw%yzPbD4E612&=uwUbGz zq;}Ox*dSB@OE-cX7b>d*<=X%40Yw1ELJy@xg3OILT3MX%(QXF3c{LVsLy{jomu}Cp zW&_k^@EL(lNoK@wnNc=ED(c!@8t1)8%H=ik%_0@P%YO!qvE#^Q!IEaf5u=@Gk&ihm z0g@*P;Bk;D;xGS*nk|L?fq{3UNz&-pm{WlPz27dn`gaXok}|g5?^Le5ChR78X>uVIn_&atiF3CVGJN9AX{0qo_w6qwM#*Pr=R)j|NO0>@2bcsN6U8tCo)VM!h$mG5 za8HM(y`L%X6+c8nu2){ztx&}>CFmr4K9lkbD%KD)qM@>74}Ml%m1J3 za<@Ga>GX8xn`5-BG=-upR*85g4pyem`afvUdi&&e9Zn%ZVL0E$UdN{-IxA&K{F?P? zorMTU(BA$;(6LuMZ!GD}hxnOIUU)=#Vp;Jbt+vqUVbuW=(;!@{SV7+RQA-T<7QJ0= z+4usKUyZ1$tlCzM11J01P6K6?C{Qy8ZcJDiA*@w?@OaAPx+TYSD^q{yyG=nIn(hyY z2K}-c?lnk(3^kIygVXEs3xt^h{jUjkluGC&bmUsduFCkj|%z;66`=?(hBo6R^((z3f zCWd;fHsroD^7QEkw<5)ETUTsSEjPLpG*Dq}cO?JKw*~G;{2hgu7F1aa-1JUC41Ou2 zBn$~!tq#gZQtTt)T!f%I#MZ>g3q?cDTc;sbQE=%8)#J}e;-m#BN!0@^#6((;TbCU~ zVPic?xDX>Jh=aa_7FRaELM-l%9T?PF>JFL>B7YVb9-OI<0@h%HN|9I5liR5p0S{DFf<83_M<9~b~0UCZ`U`g84IZa8)CM}WEjGiXw9g+ron zJy@=sQFRo^=xxiG(Fj3d_Wx={wZUg!6 zQyK>VKQwo}nT z_m)Lk{IR648q+TNkM7)ERYEoph9lxzA&i`B??Pr$71A|T^Wn0u3F|c2?F+$5A4tQ* z3TgJNYloM2P0l@z@4jnZthdR0sqxlze#MRB86t5gg29){6eoWpZzR?g&Ru!imV_6h zxZOOIU0BJF{@%E0KDS}MO=|W*AL`6zjT_4Jhu<@FXBKI|QS~YO1I3gkeK99iy=0-! z2HMRB3m3*KJ;$E4R;A<3YA<_Xm+dp7%m`mHK^HerJyxwox-0DfS3C31$ZrgtwgUC* zBmR`H;DDP#74S}4$aAKQnr(yiR3753I zoRXd#+VNDgg|2XeW{_C~KRNiRt-v|MxkXd-br|teGV?EDLD{+qI7Zz+eGY`EBd~~*%XNW)PsBWkp67R@Z zf{quEOi#>!Zbi0B0F1641>mvcEX0nj`UaxvPb5C_xw3T3Kkw#K1f8%SGbp0Uu?s}8 z-R~&3C;3SHP>PKMHNRj!NL2(k@Vs6pL4A0ox8-Hadihz0_!2egQgwxcwyX~{dsYPUPPJgf=iGDRJrCxB7_pIxCp zcf4h#mHlD>t`2eUDxBGf+A@Rm=kon3W=T(Cj_>Cv=!yJ_3iP9lJ&~217^j;^0f;qSA@g)~NAqLHK-U`WJwn_&;}sp~~~Y#PC7Q3ceM8#C9w z1pu?>jV~tr34TMb=PRhc{tmTOrXBQu7uW2UMMk?2Q$m1WB2FT1<|xiIj}F^Jyr2UP zF}m5`EhyHvaU&pO1*(KGv2dR%L(Z34h2L(1`87YxC!V*anOk_bSRS2*H1)R=bp2oF z!dw2x_y;e-OblVhscqlrd7RIeCyoA&9F3OEz&E^a^3G`NY-E{%&Z&5zZmn`-wmBMWc+EzqtKgV_xkY=&5VD^vlBi`Kt=qWk9RBm4utu zGyiPHVrgFgI*LQyvmf(MP^>Wk)3wEuYVr5fbPsn-WH{dtY?V0O=_(34iD?E3@y3vN z;Nr@8!D}a|n`p6$;141(nK)CA zADd$i>Lg7dQysuDmL1F~`(t;BGH3f6KVP4v%ujN61U%SDF&W1a{ICYZtR%y2pU0Fn ztuqIgfShX^?gR+0qlTcXT1st?p9ka0&?PN%hz#eBZkH*gwg#*Q6R($ zuia+@?s5-x^KP07u0#)V3L{KXh60GXabN6nJxA7*Mz&3UGRo^ zCD%$@f)h$0105#>5tN5?86Oiwfp=u^N9Ywx>0pa{go#A$RFrgn2`@jk{0C(BhZ+ESrREA+ql3b#Qo z(}(ciJe(^7-tlV~d;(3+q;0CT@AEG5H~MjK+M8YPJpBOGlgy}U=USNo^o_pW(hq`z zUgG=24(*05(*SiDIWkG5ymrN71;vbcwkr-jxkxwe19eX)CAnr`f%yRtn z7#siC3}zPl%F0If9M1k&{VTLjR>do9A2^3=eDS=6_WoN3BLH(C>#0YTv&1!E+CBaT zMSt5E0$yF!k{N6&Np*HGS}L_2e3JB02AqYnjB+H%=A4yRGncPSwsujC>rzwD6 z2Zl<^B20v+1jy+Zgjz-95)DUotpN40ihY_M)6@~1q#tno3&K7N;p(KN9v-@}Zg;;^np}+j-(^+&8Al1N_CRNvLd@T=vjKE~h{`h&%oS}e9H+G%LKP+*R_ zr6KsWPT3nv{wU<7N-DFu-Xr|zA|tUALt)PuuT>%Cx)4@!CT9a;1r{a65*4^Qf}To~ z&s5q`(2+W>_wT69DhApiCJG|k2B)B8P@zdXfuRgLqZ>sQ7S}q=2;mh%Cne%%v`l}7tw9!bH-FRtVi z%+@J3QF<@o3eJyx9o&R>{j#4nGGvQ+MI!R~K8rcOp&FAxt-qO>Ra|TE>7XMr4_z9dMEW5FoVm#hOrWFgr zsoHR^n#P{j|A#{HC2@qzCxIK+0#W60f*lRZMj>UM z;LC-(Y-&^CXND#(B1l-~(HE}6ghg6>UkY0=!k6id5$FZx7qUy2uJ8zr%YYgHLtFGH zwuykj%p})o)!|sK^t)kO?;V1{6ylK~VJyXpJ$hv|w+o_l+rO)l6g>xND_Dt36Z66& zoM2g-Y{k_H98s8~uQL)W*P3NylHHw0JRYmtx(|Uy`6fW{t1ZEdYwYqO0%cH~E5~?m z=eC;0j-_2(7le>n7Qee}z45R5eRp?h+df&tboKDo1L$0Kf^I6S82#8X8ZK4=sI>>j zo{AZtoS*4X;yv@pvM}am!iRmtv|;hW1OKNro#H?{#^=%w@pi7 zPrTk9asbzcvVidZmyF%9mho2UM&wr)F=3TvL`ln6f-X`$aNNRApNbS(^e57jW8YCdtYFwl=X3f6{R zKaIvKHnS>_%n{)L>g+n$qQ!8#tQZGk4^!ubCg z(tm6;zVkoI-CEFvdx25fHY=M%`+3OeahSCcH=83wDAJWSWu`DFtAC#{ONYE{qA~`m zBcj5au5+eZ4=dern$^2WrUsXpHJp7zZpzQFHBp1ss-<_EL&()g6hN-~Lbi=Ui?w%c zZ-~6u6m>?)=OZ`ICEvmaQS471r+Wvsg=h&-D9{6J6r*dos}A(BcG;VLYg_nnbWK<= z`v+RWOhwB$#Gd8w6uC|f417y~KT}0mMKpa)UtvgZ2`J;x4GQpoFfLpk7_SgEX^|gw zxe!xSj4^~@zwCYFoxEF5+i=&Y4@`~&-g{lQl^RJIFD37x8=<>uw>5c*apm<(Ad4EY zzc`TQhiS*;+5-1L$@*YH^&_WQk%o4BV`ERLb{PozPI-P+1v2tzN}NsnW4!X?wL!_p zo@J_LDASE@$B~@&O2qYF+q~9Q#}7(7n!y5e&1>o9rPD0Z`2wCQ+q|w9^}N4V<9uGq zh(RF6(lk`+B4J*lt*Xq;dihElx&{_SeF{Lj=+z6ck*EUcAIyxpbnF9kOT=5r_0Ay`S{O`S9@Rve z980)q-Rl9WJe8oi8Pc(#8G!Wr)va|6dC4a=rUWLxs?K@>Am6f^?XHsTITBeM z;JXKXCO)UgsO-OzE=N=tuj3n%05Ppv{mA_l3Kb z5tjT=T`7x33*Ewr@#s1DqI$Z-xLZ)@eKwf5jy+a0QH^vBFBPFjrQL-6Ns4fH+Ztu% z2T9}4{K^9&hOcfH=*i^p(1_{~Qkt(bSJ#fih_!cxfo|z5#Q?_>n^E1m$8mgiH5zL! z$El06Q3-V^$Mz@FAO`sEkqcaM8%j&3`&fRy6uoQ10aLtH(WgE$R|SaXoWE!T^S+&e zg*{?dIr%KXRokC~pS><;u1m;AhO`~fy}rwT&y1*Ur!D4hZ-q&#$$jad^j8Q6c+jqZ zef7@>=QEq2~(y#<+=awtv&-Cz#v-c22XQRh*woeJ+j1Sr0W^XXue zwuR|=MxEr2EstK-C~+bbE{y$=P-}R=ym)bcW=Ld5Z{;CnJDLqcFpG8%5)3*z3Ybst zu}ss&Bl|JK4bZfwE~PBeI>)t; zc2LCK9VNM#_^0TT^&Hf5Y-=-~_4SZrheQr0oWhliu`c57L5fy71W+V?ZIgBhIB2Kj zZlJ1@+%Z{=`zj>+jDu}9p)1*4vyaH*q!)Hd>)2V@F}}0EO`!|cnT%LU5_0a9$#eG$ zG&C=be_#=?3bsQU-S%5Bis-nw$J-8II3JOP#B!cYESvCi{K3WCb>U2O?WUi722#xE zaHN-&Z2hIH`>_S$pz9}o>J+;kQm5Nj{^*J`RcC1?YmALcZbTcN`suuYmrLm8DLVUN zR7i6+`DczG85a%(*T4=?M(8yzNRXFdGQ{VDm>R6DTJfV77?~doI;9IkNr<$eBxhLD zoVh$f0`)^csluuAtWZFPx936IIji&vh)l~^S$xG$c?q%!0y*5QDuocGCz^O{%Yz3j z-~*_ODS}1Io;hO9IhD-uq4>Z9AOU;XF|g6FVdrq2H=C+ts9T+MXQ@!_mSKieMBE_v zK*pr?ML)Qq8$Y#HU0mj-sD@;+x}+4@HC97&geOuF0Elc0|pIuFZ-t#UtZsOV-oy8^VWj{x@?H?L57f$_!M zdV~JvAz<^$YJZ{T^hH^35+AI_m^?q&mBW|8RQeucGkwG|67S+8TyQ%QMC<{!#FEKw zB5+4&?Pvf%uQigtymo11HeJ(3aK<|WO8P>`2atzZq&ec}^NmMoQ+@$K%8j-0@3l0( zHBoh-596EIeq!{I_2RN)F^s2fBgRMLyJ%$tH1!~(S*#*X*Wk#2^ea}%hjtV|7$ub% zh+(S#(MUvC(K#!jfnL4^ui9)G*<4rE56V7o{7&0I$=S4i!@ng!#>b1WnvyF=DXJ(u zCOP5Gd&dcDlf;smeBC5j+zFAKAw!CIGkC!4*(%2nS^K;CjG23L zLzTH&1LS&n^I_xo-Zu^UY=evNtjpW2kejD3q9dKYHR2gC;xsAXTQdbMwE5y>67Y7CwIHp$oy0>sf9)M z$#aypy<~!pE0mv)$%crf$e!hk5pUSQVot^w&1} zu#EvBQu0LUsIRabeLLS}FJ$t<6&Vv@EJ+l_h*;BGDJ2;Fv4lt>Rkv>S+6y!G70r#F zgTzs=`d+s6x>%Y9YQ^ALI;Kur#jsE@=9EwU34VVsd%zTEh2#D>TRzOC& zbeABXxv<*|cD50>vyAFBYAv?pSZ2y&1gYU>2Lta*tX0o4^@p&lGkAuMbyt7|k^b9O*=^ZOrZ$>iCaeFVQN1 zdqSA`oM8p!v0_WZC^bds_dAuwA}HDrqpTeeHW%1e`}$3`!P~3PMwdN<2Mc^%a8pzB z0I)O(BjokA{~PGVG36%jLt9n#2F%ZBTEcMW1qOmZ{Bhd+?A;iuKhh}N&8BGzC6f5g zc2e1*wVEB619OY3b2>p3lnb_-r6xRTp}!4w2`HnLV$OS`Tgk=HhNIaRn|0_=!rlZA zRDS=b2+btG-hEek}>%ui7q|14f1ff^(^J&NjmBM~Aq z6r`qMxDp58VYKL*D@-!m6J-XPxE9`ey zBxP5K$K6hJA+htzeI=NEArlE8(XhH?<=zMA^x zOi=vi&#+J|cGnx`xKlNZACY_AdTR3SN|7iBUHwKP$Q;8VSLa*?hRmCYro`>?H51MA z#wZHw#Gw~cm*7xO(+LuXirR8)37}@3#nCtGy>s2hmm|!N{x3D3BCEUS_87R%MBoGJ zG!)1I_lq|F8GIn_ZsMV;N;EYW7hbg>Ip!^K9-9G6xg7+h;8L60-SMApsj75SvUhZA zlT~Y-2tI_{C=)`swNn^1i*}ENAt|u!y9g>C=?q zW_RmMd6HeKxXij*zg6;_EmoEWKw59%*gqn&;Bt}#TERKdY#few=Avl6BjYF zE--7%DWx0uZKh2)u{o+dh|;o#QIk^4=2qmV*8TNFjF56zp{H74-bf=Ynp57V?AU`I}w^RR0+6m-W z;bY_K&4pUdd{YoV+!nJfK9 za#Rng17ECI7T@*4A<;_M)m*zi;5I)qj1ayzPqm3hq&lv;cpolvP8Yu9A?X7HD z=>(`1xiBrS$mwr=naNNj-*O=HGlYSo6R=^M8%coGn&vutda5|a*PLqKe6s1^yRrH1 zfYymQLQmt^F=PAIfUTO8Ek$Iz9FqPweh> zG0-68?5+bj`hRJi%etwu1%Eh|0V%%kYIq6Ubob{Ly!;s~HT)71CY`$=5u~&^Q_Y;1U_jMtkKw6RfyN;yP zs4$9E&EDywk(bDFDsr)M0N|4Gs%C6l_F@Wl0Ltp@;z8+QuplE=1E^shMck4=fwg?_ z0crN^XRW3R&PFK3^X$JDbBNr7Wx=Lr#lVT@p`*O{Sdfz_9kv=JDPHv@49F?K7G71) zFd%-tco{SmutPUz@VP?%=O>l3?oJ|pO{kBP>%_=`D>m=gU4TmhGB+xjVtELry93mR zTib^B3|GS9-2E5CvaLqC)8|d3G{W%c@J<~Z;7GQ)e0jSmB~;hm{q*)$n$|zXSw@Qt zF(r@x)$lkZ?hX%C61n2jj#!WUTH~^`1vuo$7|E_!fqN0_BOia%$Ki`*jml zx-jhrld-nr(;KAnq!FRYiINPZ2ZH0iGyy|D7Ao{Vz70^SH5$ySpIFRdFgk&K%18F+ z99q`65mH|N2TZBrtbYSA=i$SD@^_c;>KPZs?p*LJFhC$$7Fyqlm!r3_Efa-+=i~wo zM451u- zT)G|XIXGsLvNAq!uu4gZ`k7e~Q#EP-yiXA`QG=jqILKt9MeO?RP&2y!4V0!+P(_Sx zO!Vh>v4kXCI@`ems!2|o*mnwrUD*S*qg>2u?~3*`h*ELAe?B=dKU}nvSE00{ax&D0 z)D4QiCJivgpn$aH{fNIIW|zo6x7WXcGmx`-(2eKUtG&mdF7Bd!;rka#TJmkW$oo#O zRHQ9(58&{eW6f^*BL5f)C@#Q0i0S6oFCUv;LB5vR2n@?8HizXj@RB zcHZ?MH~~VD$a2O{B>W5o^~3^i473aa>iCLsvOtj*nmjNd7ySGrlP6p`YGe5#kWvl! z{LCaG6T41TkzIyT{sfEK`_1t(evh;GU`kGHqM`6$qXL*)OSx`+|43`+&|dr)oq=6A zIO%(Mx{W$8O!5$ur)*G#9f; zg#A8ojgovfG_fym*;_KnB>_LTHVHohWBF8)010$|#lo)*T4na4F#?|S9Y;r4`r2w3&^cRGtBXjwYoBn@u6D1xUQ_(wtqy=9 zT=-j%SDgVpyiIE@A!G4lA1y?!u7RpZM~#b_5Yl7nHmKRz;C)B6tGDpgF2a1y_T zSI+LEH+Xc3^paVuDA|iXUywe<&mtrX4$j99?npC0)#~Wozl#I|2@`lL`3Gh&YHm^9 zdoybtm%taGaWfp}{DTzLoX z7G`sV)d7!nUrdhWqracm-axVz$!onGTw}Qd;-~k>LrKCIT{jrZ= zm3vp`?NZw7fAG5Zn6}jRf*vZp1`t=y;-UV`dW_&~Pn`RG3mne?r9UNtoRNJo80y*$VJ+@7M7XRIQAWUm^a- zLP-?E`XAHCQbgRz4+wIbS+8;0Yb(z4v72X!k>=V_OM8ZixC?b}69F=i0$pDtTgFBr%r2{U7W@y8-2y~Q zjfLImv^G-3Q@FtH$u2c;JA4B4bb8b6-M`q;?Vr5NaM_jUMm0MSUOM*FEo+ia-UlOD z-L6HPjmkK8Q6vcl1)(PY|1hji2W|0zEoB#~v^%nc1V;U=I{l=_avrs77`XlSII1D< zouVmw6)_er&R8rS9Lq%0mtT>Qhf=kp~Z@f|z%RxULp``oEmxR^Z$Hc|L@y0mszroBp2?euiL< z(-{vSBn!cYL3HT;m#a+^D;GCLsdK(Yb8;K{s^Q$y)<_;O(IPIc0FM98C{%z_J=JXe zE2$GV*)>_vu*6`D$ieu2GW_vg1q6R@2MINn+x!@m&a^0!Mt3Ch8hntuDxU?V@dY}X zS5t^j3gBPG>amDFjgCJXs4b(sMi~4ge3nkte@-E!Ekia?E6xlTc|1I<#&a`LpI*+r zjJOJmlC@=%Z~AhK3<7r@(bl62>d|0NOpsY+6Nl8TWJ}G}a#A;CB z=XOB0H@UUQQk`ri=q$`n6?S!{J#$1)50CFkB2$u)i44!p?3eO| z?ZLd_F7o)H6#jI<{nc)~(L7J`wJd zYb?lZ5UezY^+R-t38RR3XBzV&4aS*!?=TX@jIpgM^DxtBxbXYbCvUXgw!B}Y_diBb z5K|bXc8pR;<(prUFO)4oXQB8Jla*PtO`;Oqfdz|ijyQ*l$g1+I&M6>+csd6d=S535 zmiCcPr+exl19Dxwj+L1y$M0ZTU35}^{rZNLUgd}7XJ!9c!II-fxL>nr7;rq9-$c}W z`Efka@ikrKjrW}LQM1g!{_5k!1{=+4ZM#{u3=Xko%{w{iChJ(Qmm`}e)bB2mw_zCY z+cqHAc1D}=G89lMNxw)mNL0{kGgA!tB~SX`_dQ7m za3(KDIF{4Sc3J?uQ~R9z;zNek&CPLCIzy7`uGi{CdTk2OVx8qLu*85`liM}v&Zk?3 zVm#BA?s=K3$F+(O5<=HKl(^93 z+jf07ijNQzsnRZr`U<~`^h2U_40KzPi5@@pj#>W*lEx&8L@xeYyz^tpSXP`EDCxf5}6wXooV2Jm&wxBc{>_D4ou5>o+B; zYMUgD1-{c_u^&J(>M~Lh?Dl;?4oXI!W~?RSN*!0D*-N!|_LxCg3B zWK2lL+%)xcHC2ZJr}59v!!*_d@PiLQiuO7Cx)wgN6inmu9D04ItCBDpAE*7otRA@RdfLwU4~+YF^gBCL~kF@Bs^mPNg%2>gp$ z<#J${kQ)@lv_RZ_Ub6bg9`kdU)T)DmcgCcm+e`pajrdi~W<5hm6CdFKqJLlYMS!Vv z&UG+dRT{SV32C`lAn&s(%w;pWL|zS}>`Me_(7?6tNlhN!;Ov3*Kv9e;iq{cXHP}4f%7~*||Mz8*wE$)9Ip{F0=SSDP> zqb!K){0(>~hdn_h7mkIuZ#2_V#{Ftr3UWBhg&6L|6Ut|l$0U#YGhnYjkg5@YY*y(z z+zQ((I6l2PnN7#=+!yQ7t_eI_5q9>9$DrS2)H$LD%uAJe-bI1G>e6v&V7}ou@pNq? zIRrW?p&~xzgDU6@Ag~uW!BI0KL;`V9YeURvF1ImviJEj||17MZmOdpKkAcrWudA2UUxm;msXP3VCsembs30*P*iE<(F+^v-6u;2 z8oy8FC4N9Ej4U5YsvCw^aVl^sA&I~^{hMct6?|)zclVkk6!U&gvOOOj4F_&OYO=6&{9WanHntpO=JL-COfq3H1yB=@cImZn-B zXj04h5{-z#X_YhQR^uETzqj$Glnb0$#>6{a_Bn?EE=$^FZM52>e0%Ub2csA9L12sc z`naD3^8L6Q7ed|Jo*qk_scLCERDY*Wwxqt#`2_>=Nb+<2&KWXvoAgSxU^ZOAy(4l! zA?N31%XYC(pSk!;pfsE$aVXFc1}FCpt`;>a`EIl;WfnKzBxl9mf=qIVtHv9y#>%nc zC=AWaFQbf;FlpI)LpjuG$NmTYtkj<^y{(g`T9k8)0SFvgX6Aj%TcV7HiCnrI4of6y zvc5tBR*k!&y9z0-Yg!NSY|UZL86M!eP99CJ7z=3ErZEBtEodaRTRi8dyy`-#-=#nk z$(^9FtC2DpEed?thnw|d)_mK5(W;^k@U zRMc=1%paG*s+6fUuY`_i*~l~8(vzq5_njj5lBiWYC&0xjb{tiu<(> zcwkTk;w*+wa3({R&a1y@Zd8L-oU9`bIwOlu$hPMQvT~Ki)ZK1$(F}YAsLjt>Bz0|J zW*id}G;n(f-MO_%+IaZ?xqAt#^=~B<=uA{rq*m&F{i0d8DedFnzJDdxyfP#7vXYy; zMk!>Agw?Lzem~y(U2Q#%Bc>Y#RRZTzJ!`XH>CjGnINoc9@g-UyYS|SiZ2d<3aOqu35qr-q%{_R7@TXCC%i#7v?cDys|pQv;UtytEAqcY=j>Mk$;>1igc z1#?e%>dby#*-{PmoQ_H>q2FcsT zj0SS_99;X9^%~-gI@Aj~wx(E-;;ExUL-)a-Z$g^?yltliE#60K0d&=kc-)nVk>4YX z# zOeLRUl}3oRYB{di^6Tk{+#bDfV0r_N&u1UCwPD}Q`iW<-l{lg-_p8x^rwg~A}h6;TE<%J}NC<8K;d5kx>a=CGhu z-(F`Wwy`blOAadaxeF9T3NI?_v87|Kwb(g^_eGL-TEc_;zUqL;ZfW`!uB?%!N2;-d zO$G^$GO1SjO^^+992=EZxFQ0mk9Q!8`y=WN5rKqz0Hqqg=^8XG2UA}SXt|9`mBJ>_ zR?*%VqL{c1Ox}*TVi1x>XfS9(^iN*M6tkl>+mbg{jMh55B0Sn1`r|xUs01gw4_`Wh zD8FMXcUWMiUS`QiA1Jw$zoo#2lj3R_&6eF4<>z1=a=$H5d~(IQutyde5eg-QB_b!1 zIhTG}fi>ONHfS-NRn~FIbHNpS3HczIGinf>{Y$33G?Rm}(eI)33)_>^77#?4s?ZMj z0g)81N* zvOPX*QI`6hvrdn%wntCu_yR1z^%Lo|kb6TKc$P-wgQ6+NXWuZHtPH)ylrB5J^c#;^ zEO~!}nDFJ62P%UI!S~ePGWYQoxN~P3+BDV!{dV^R~oI@I=zC+=fE@+_YRe_~} z3JRqIxoc3ND!YV^!i%|E*T05Pn{91x=&(wkqPhHYO zhvbmcjvaiF!md;SVg07j%HSFhxMYQ8ZPWh7>GhvNEsn^-B?Q;{rEfp9v$Y+)D@26O ze(g=EE7s%grb?Ss11)M=cGmRx1NYsc`i6&Ou;ZMGg;j3};Wan7A8&E9n4+bL1m!l8yi zr%6h9^EsAX3eCTUdR2b3`08Ds0Dwq$2{%k2Lp65I-15mQ1qY+6C}MQ zb<$k0SM~^lhCa==*S4gxwgydy3aMV5Xb7|p{W<)tf$LSvIOrAlBsf&evWle`=@u2M zkYn5)cUUR1Q~^X83rrV*<_@2Jt9_!}pvSZB+41?DlPf27yYa7s;KbA3LhHWEmtMp; zwtIJBqgNGrBNM~yW|T1S%LJ=eDBp5~q!eT7yp*ZO)Fuh~Xbh)^^}nI^I-9Xx8RXmfpL zJsPZ_Mr(}R+}$jg52AUa{?!3oECZ1Du&2taYw9nF;>pw7&9zTVzk%`yu1-1yFXZAT zqH3!4iF-Qpc;xl|En5m0>`z7UG1zCrjtVmFZA z5mS8AnI!&Ij^I1Fd89}IP-AK^p}tfPPRx-8RjE}Tb;znYfkcvbv^_@>79Ln*um7(f zC5@a@W`4vFYIp?_G;zp>TaDcpVypuj>U)F@Xmth%dvVJ>_z=>gMgIm1A`0Zx48E#^ zOSpgeO*^zMeI@B8S+ZsZKdj*2Tja1o%WJ8nK=?7_lSp&st&?7n57&O;M?5YzxZcsM zi2&}g1TOO6h|2~$ySOkE3lHhcONK+NNoyfi)(w(o;I(X?)At}kxE=$Iz5;VjNHznG z$J9%B3hs3m9vjrZJu%m^q4{-`KCEVysZOBUznq&W|C4Vf?NBNA@?CNxqqfAclihXWfS1--f#*eib=ebOr49&f!bwut`@w8 zftVa8^x~LVo+g9IOG+z1FU5u0ND3DQSwVh7EK2nd(SZ?Hx0kNEb~iu~f1?M9`ZW?C ztLZ(sG-^S4l{SHT(E=ycDITt>mN|S6MuI`TbhI&D=$LpgWm3CI(XIx}SLVG^m{(-( zP@4Sr*>aVt1g%2_y5tm>7Nt-6PokdEla$+#$^PjwcOo7{gUx2|-K^97s+-8M1~sATEnSONIWjRBbDLtIhnjM6%oNq^!uF!T~0d zjmHaFrg`+vhV>}h{l|b6bS&Oo_NkplZ&ek_>A*XGWXRBBHy4E`bPq$SwfyB9WQJTc z*J!tXSJHke>6IIuXiB2`7c?ryKn<-0Oi0{4kH87a4$UCv&{@pdOSOX=?`rmG>MyE} z8*+RR|3Wt&2>r<(zw>#_U$8pXlF{gC1#eZCPN+mKa&<>nHX%WmJDD&5YPZa-**Q3~ z#Tu5-K2oZ%3`S(E6 zL)i+&#G@W!c7fS;uj8C(tNw3jk5_AV<(Xl!s)d<q5g|rhAlj8Lq11QK3+@xE zS-^-PsZuD{0LT2MkkL$6PEw@Dvn*M9Nm90wq0w|5ve-X4Zpl~xu(Yz$JmASNF&x_zA;Q<3PPti3)GcHhYw|_~ zmQ8OH>bf~DYK89wUn-81G%rJ>j>WR`+N~;mO$z>dIC2#1EV|zR$zRm!El2`Y7}HB) zX0stna=th?@W~Q+4Vb%M-F|bN4&Gs(qb2`Rok1Ub7V;1=b{ZwdgAUZFCWWHC!bLD@ zT?Gw)YkY;)2wJxflSh-(p~nMjPRdqZUA+8Uyy0L=m$hBV34Un5Is;#{0QU}3F(<(# z%ovj%N6EesG+9$5c|;(x%eO7d-)TZve+-n0U&~Xoj&jY23c)v)-70`Hc1?&yrc0m+ z6SbgZw0KGr)@Ut_3((OZh3dc^lP|HpIeIUazO8D|fhiJn!5RkUfHClJouYEEE8sFi zgvu*%F}Yf&hPAW<)zV4WybEN>s-VZ5bwm{`s;3056cehRs3jT29HW^%zy6nZzDW0p zaR(m8+~otaj@@36FJIez+WS4%osIaYd4Z=A-WXQv3+9pyV6pQ%-^dl_kAjfTMx~qOsEhQF}ZdZ+)KymtS04GuRK#q1Q|EchDqv zA+<3zfzC9!m;3c(oXAP+SlX$TLx*dp=-)+ZOqCej{K_4EIxZPMw^HHTLagWKNmc@ro zoSOPAC-?&x+QUk+tmtE1)(m+A&AE(lPVN#3sI)atfCbR)UiG_GPOa^Q5(nry;H~y0 z7emU?hCUTG|5yYJL=Uaos(0Lo9&R`ipB<9F%7pc0bkB%;1o z2S2hqbQ%K1@vnEP9kA$Wd|#=OM~_-pF@VXQc8p&wuXV(Xu|Zekg;U~G6usf_TYGC& zC1_+A+rjHe%|%=~o4LEOKWNQnLsw&=;Ie2rnbOd^<4(a zZ4H>9rB=f+vS%&`rO?iYIcJQAKkYA!H1Vh&U74V~KS-_Nm^ zTQZ0Q@c3Ec<~eVicjUPk8j+BucpdUMGW02*;vJ%mCIq!s( z&6u7QWV5KFqyh_lCzM!eNdWGoAQc^Hj;F@D1~Ud!s)BVAQa8?pQiRYBTd*#TmuO2b zXocp+o7xJ8j8dTElj#C5p041als#W#xu60u&<~=zifC*GHE9W_$tcyynv=Fz;l-c@ zB8_K)s2`jsMI$NKt+LiiCHQtnq`PW-m~|3PAP?G&f@hjWMS_j@c1HGF2$u%xSK7`8 zulp2X1-$+~4$cf}@^<<6ymW0brNvQ-I6#&ZvUq|gDNxVPzt2hE3k?W!uh8)!T=(pu zO^(Vv)%R6!AWAJO-PC)r`5q%WvEdx%w|0(_4YAE2pm~ zVohV+bkFJop>U-%KV#M#>a}Ve_7o}&FS+e;qy<)7Jp9ZqBkSU|ptO1ouvx5F8*15B zk#d;SeXiSc+~FY_UhX}vsd84fuzFBe4HR^NHSH%?6A;1W z%FTC8uMu#LLva^GXXr8l#Sya|t^%w275~`VWnOopyATWF4X%XD>^ZQYp!YVpG>RD4+ib#T}boA74* zrrnjt)7dQxHi)0Y56py%J81nsp}t^>jfnh=Ak#NH-NCn-ZiTKm>scsSPQdkSuxJ>k z$KOO@t{Q_1zpD!<%?ApM-+aJTV5CJF#-(slu`u_a)h_L*#m$FGg``K5a{O_wqojRu z!bu7rxVZ8IJTjOnt7i=nN|+Gs0##x-IgYH4eiTAaTXKsSuGh6#qkhd`B9wlms^j~3 z)>U^AO0O&Ju+Lisbo}W{&)ih6zxYH~6Zs4UQYF0?SbIkF@eHiw7eoZpTiNV!~QtXCJ zCSN5X4|sGqlzT_NF|OSC=>>mCuo|cByf}x9ZuECxhQ<4^Ua|Dr44}xyYK3+y7-=r6 z{mUD_xVqQYRWK-zubAO2VdnB8Pi`U*yvbN;Kv;Eqmx&uRNfa}6kCP9%ri8vE965^0 zwQ1_?h=7i4Y|QM=-`FML%GV(k3fa+i6pp?v!97n9=sM43!S$28^IKU7I(ESd2j0>{ zA>q7{hyXnCwPe{#(;k3&vppdw7GW;CQ+U8rasILat^_{BdK^dQ11j!_-Q~1Wb_*H5 zyL?s0qC7du)6NR2aYBfR(Y--if4i1VP;r?Lj9<;ZJOPNN7X~l2*g|Fge+v&r{O5u| z2yQAX4)W#~8cd=lj@GZVM~>5*R5yr;*Gumgn0jGw@4g~>`|N>lP4HIA1c7}y!fvCX zPGN;_D)fwt4;AP^)lykjYRW}b&VN}v*oJUu0l32uwPqS?2ZVEc)l3jV74?m=0OO=e z9z+I)sNg}jx6T)uA)(yb`a*%!LF?PLQt(-jL!yXb;mwNi03S<8YtZuHrwzmDo9kfSzbjR@BGu$v1 zAzNwd>I2qSD5iVIacRL9^ek;E^hddp;*9I#k%L1S%Ra~02YcCnwj z9gJDAvZ&!hq3uqlBZC5vgh^sY{mlZk!W>SG74Gf^U&5#t6K)s zM})eg#kK5Jg$qklXe@s^_J3DS9ppIHyhRJ0rbzzJ8Js{egj}`X3dGcKRB#)THhMk=HYjeCfl}c1=V-B!g`r8!? zxD$m8fk*&TN`tY-x3I{WlPH??#?=#wp+wLXt)4$}$@Pd&(*?S>wp+Jk7;U0Yo37bY zD%EWpzbzY3G@i$H|0y`&We-K1lJ;v26!xcDkL2uwo^wd%?{&E}i+VpLq>)?)#3fI- z98WXIW{N{K2se&`H_k5TlDp!fs7RBXou&_)`7rrN-{6*+S+F~}7!6$9y2w6TAl-Dd zKDFPzRvjuuy&faF*tF(T6}gPIlhG7zO|+>uCwmFGLsfd~q2vd^NN)Gjzw1=}5e!gY zgQnCXVI2yi_!tXn~>cpDI*Yk-E_6x(hk9+&A2qO5<%;4rjETZx}CmtZZS? zrZ)3Je5-+2{)z62K`y8`pKD3C!5P}r8dsW8Q(+aB~H#!f1{gw$gVl>HWgCrM{Jmk`|TPfP96f7VEHC)+^aJxKD1zT zNgw89sV@x6fv%Xh(2e@q5lOZiQWlv6};_My2>+QW3}Gly|ELXdp`ZmE!&kIP#n z3|Wa>J;R32DsLf8C93{I_ABxbmMaqASIR@30s09G#ez)%!BeO?b zhO9$bHLBH~S7dS^ekG?%nUQHC>in+l!j#}l zyTXc4)7x|GK&3c;Q~)&>l!<(g_M*`EIoZ=t-!KPMSE4pi8>6_V*b~`V0(>gY2uXx0 z$YzAj&7Knbd`H`oeN(=63sPiB}=%7hatw^smi~-#(oa6)b(L}T?5kc0Q;a7 zKNryb#ng>vMZ~6RQzAP5ZHre_B$*DUWPE2tCQXP`9Z)c^K+z>wo`u@CAs8@xRlDwh zXb3f+ZVvug{}xM@8m>&sdj-%b^c<;3%CLJ5BS~JgTCiJAj!gNJxC3|Iaj9i)>r0`#>+P2+L}CH>2sPdhUobj0vMnd}F@Fb6EGF&51@a5q zEf=qa5+QlJwKjTbV@i(zWMETjNo>W4>|)A(0g+?6B&$RjGl^PKcTwvx6LUG-zmpHM z++ftVObGMYXdA~rm0ndPaSDvzmem*(e4YENm+YkmcvW-u9)*@GZ!%GyvcPv%B~s_g8RH|V!n zf^tQu?d1y$f*oeo{xyMGB5M5ipRp~~fwoVW@t7FG+%nB!Y~Nl3=)G%1=$Yd!Dfq1zX1s{3D8 zu-D|V#)6m;m^LkxY>x%Jw2QYSc|s1cy(nBmIkY>4zeQKuDAULLX_=z;uguKtX{SY= z(kKMn*hEC7lq~Z2CCCNb+#qf{YB>YzsOUMqLGJPRPC@tcm>>2Nf>X!5{^Rw!WHYiN zwZ`p>g$9omOcj6UxNfOOfMaS20>&j;b%7DUAhAbrTIp0CPl+&1x$vE=9}Hy}HXUBu zLXg4u3P8{Uv1TbaIe|0|i1>3^g?P|vc%~m(2v;(ZN?F=kD7IF0L~^S+uxM|^Vs0H- zg4`PpR?9UNlDNJIP|hQw_70yT6Q~lK&6{JQV{3x5{PGy5&EFjGZtsTN6+L?|Q&@h9 zr$0MvO3hBCC66}9P@rxPd&Fg<(aDV5o_8WyaQeXzpU>s&rWnn)QV_@o+Ng|tZ5KUa z)yi{a?*cs>C!!is)HIHeqB^fSlW)@OiCq@GRB{grPp0GSpzIYj6v4wH|mj zZDMeTFf4ZNGH#Nmk&l%XlM+lmk&xJE|IzTsmHVdE)Q3Xaf9Lt^^9>xmV8n>c;m6sWrWNeTXyX~i!J9-A}- z$99DpNkC!6$#aF<(9>!}0*a-LOR0~7xVbd>rt4IEuD2h>y=~PKQ4xwXFFcGM&>aAA zlsNBfbHHrB@oesxno$SKH%v7)A1<1>@;I_x(oAZ0Tiu^>w|9?s?50wMfWitWC!Tw0 zK3Sb*gl4B#ns%WjMbz{&xW(%Dqux+D<9j6o{#8Tn*Z|k7)@@&Hw7W!ZJK6bg%&efT z;KDBfHL}SRGRF4f^d<1zGcFnbKm=~u2Icx5WvMt1NL~7441M93r#4Rd88I#p2H`*7 zj;9K5Sfr`?o*O!{{d#JWeO<-(Ba)kEf%p0B=a7}~`a8lnc$-!3NNSuYOcg-Q?fn>y zX*N9yG3TvFqCRgF6w~T1_7-y*8B%Mj1%Eih_jLN}ZHE{Y{oB75#{Y+JDj3grNY~>0 zMpF$Nu__D|F%1hwL32v=l%p==r+fZ!&#sS`Pd57YkKsR=EXO%w;_&l`bkKE!WOIwV zdVu2}&11{J+B$tV=uq5m@M>U6!)W@ql4G*Yj_u45NAV6?!8Q@#Q}gHaU)+!E|0GY7 zYpnu5=d*0}hX-ESFcb2gEx8Z7qw<+=)JCHm@aAL(W2@MnI1;AAN5yi-l-ShsP(zQ8 zX^53&kc9jq9vv=T$CM|Ot~4c^+n{S}b`Ja>_^=KLmhszU%fh9YiX?EmbdGV?{%hmm zfi+7#1(I$kAW5HcIIKuLZYq8ZETSS<+^s(pYT^-}ZUIY_Ve8wqKt=v>*vc&}fx#3U zqw9`!ZANc?%$HLNvZaseQ|7J1z_eHeJd5m)l&-a8%OGU;rIIot>p@GQ{ON<+z*<{I|uxT<$&wy(%(! zH-x~Ny3<8^>+_wDCs(@9Cl^YtgWo>?ZgpzFV9ZHa6GjOgRV02{%P|$(MMj^%HzV3S z-(`itXw;D{oW~jvaJQ3-a4o312|UKhPpPVX=J}@+nKlJk-(b2%qZR`NENW4GZ8v1b z4V_~SPZEv#lw1(ZETn~m<^54iJ-j%S+)mItGol@XCY!E}U;WWs*3%t79=0i%@J{OQ?G>f*#cOFcPOl5-;8A3R%PMPs0KHxq8je zOEEg05@peXzQ)8&@o}*Yf+C0$+5GscAruPqKx`qA*AW#y8Hrig5E?s)AMl)nl=L;vc-w)VHGjZ@U*=)XROPyA0c-3?U z?!eUb;f$RVs^oAl%YsaY^xm9J1kqDhvsvuP&D9u8PFFE#_B-rP%BFKIh_l6ShmyZn zr{bmkbc@~%Kav0AJ1Hc$*x1?$_9T5cDA1dOW0tJSS>N-cP5^NQh{QgokL^LG>~r8QIBPO&;k;4hAYJ)qp_!{F7O9+UMp+CT({I)uOO!ZI4|A1#)hzb7gC zo{qF<6wvhRp`IugV*b&o$ST0GL_}R!EOPg1c6r{+>Q%faj7uKPwO?LCVregYV1+rF zDZq51m9$B^xHJ~men-WB^eJqWo^%5Da7tBLae!tXGju;i6-#inRCPxeDpY^OP`-cz zTQmwO-`oB?TrD!X0DVu!n(V$&4>%}E70zGDf4la_Eq#YsQTx)-;&?~09*n`*ekn~f zWgjfr{Q7u?WfsBa2wS4VM-evi;nN z9bkL5+sQVUlH-NPq@EkMeQH&u0)!|q;G&s5RYuBu6c0j&Bc2zrBua7A^J&uy$08_E zgD{1ZeZ77pj(YnC5BJh-b>r=fYi&081A)q$X^?{EzT!zd<&0TEe5rwn_CcJGCAO+V$S3*z<&#KxkKSbn@8i zn3%v7IJM6)1so=d?*wQTWu(>(@^7dCbwM3|L-N0(YN3t#{oOb;B%DEqne!M(Y&fr-Q9mm5p0K%DAZmlZh-*D{NQ%FKnA{%8C zZ?WbJ;vMsXqWCWoBG1!OY;NiVDF;-yX?_l@)lY{5!MREIz_~Fr>tjIC%l@>Nk06$f z|Et8H7GF+b8s7F$k+8quvF$#`)KAP|?|cSEKnV@(9@IHc0!vZppatWb_~a$1&@lhQ z-!zTER<630RkR*jPLnGsbjrGNXe=%^f7&IVVX0@#P<+bx3}pr9miemY99&1?T5T1J z%i0c51>2vsgm@P_lN^R7%AAmMS^6)i=?tv0ozjPu{|g`S$#43tMN-8#Y~Zpe4T*p^ zUo_cK;RdA4x?%!giRHC!hQO;pPco71zgYb$FLM!OHM)U9Zlx$7^MZy-z;vk=tboby zCs3jT{S;t7`DxeGoW>-=aPv7ziR3D+gr;=y6?3A{s=qC~uSk2!(FpS!$SfJvn)=wH zP?}D(jagxO_dQGI`tR2A>TV@rIQ!kIL@KL+&9h7Gn>M^^@gut?PK;7_d$EE~4L zJyXnOy6aQ9V;Km3)%Vyp0W^nXXrn90&48mBmGZNZ@DgF7`@n76ctW?}D#KlO=Q5px zQ(CUzsrd6+{;+Niwk5e?nEc_e_9^mIbS700eN`+=WJzKChHz1SHYPV*fw);@r?k-h zPlwBS7XG}YzHymz+mzE>fXH{NwLc2+&!{L`@`F{Z)DW7A=eV`7{o z&Mjy9+Pjn4%_Z82VwZ4F%xZ{8-WlH`0ZG`)1CTi>OqorY90)FPH8`*xPnHaE|i zJf>sxPJPD=rZH8@f)!IsU!rXN3kuC*3|;`{(m&6sTi2a(fJJTO2?c-yr7$VmLfAzg z7r@*n@H%oXMGuE%nJwewp8`=eLiUij;Cz7mC0d3L7j5sNnN18G;?8f&z#1Q~PK)k>Gqj=1{ zUo`O`d`wK*S4g^ZP2=+rX1A>-etZvwjFST6ca!d$GYiI6iH2IB#$~)C&Zb|<76FSX zGagah*RZWwyMhlX-C$`TdeMov@+T0qC(H$pDbZAS$W`cgOaAa#EPkPEW<=d?ZI2qi zplaI94-5Gd6T!vKdx>}xTkr%|-wkK=xn2bEayS-Ko6B>~HXFi&wP1Zyt~8+DNM@fy zoo=8WKx`_bNgV%j5nZj=5SANXp%ivec2DH%aMW^;Hqkgh4UwEMt=YTE_@A7!l+H}p z5A2MG*|^=cfrCgj{${G$SGvjSgt2J%y?_tb_Tv<{0N9(L?K~EDmawXA56Sq(;fcSv zPOek$!XYWrRX2J8r?${2tEgfH@33&_s((YBI9 zRmB#tM+FE12Gqd=^ZP%9@{7dNBg2spSl{mSgWa5xpsXh zM=FwRPmAbd=!fLgb1yL~5aU)`)}2LzCgRj(zXSG21lqRGuuKqxm;I;KQmkRY>#th#o~F7eZkEN^J@N81xnXRUYpj!I2lqH0rp{W*8D2dg-i=1s>UMG5Av zTN`zr=5d3YsLP1{io~a>5u0b~P6T$03M2d!K*Pym19HW@+L0Eb5N|u(ld+J;^hB0a z)JM^r8bp?T6+8q&kk#X-_n?KwuQVBe5>7^v=d~LVID& z30G=*ATIdWqImicY*|L!{zke<$pc*`l%46_{%EC*PjONr?*dq{pnJ?AhG0=Ub3yI~ zF?_`rKgikax`^C z-kN;o(mM3L5`Y?Ar9*+|M*yV?M$rV6HS+ncG_PTtSwg!iRaL_K?0_M_{_1k?Ky1@lDy-ccy{awsdPPU&3-I^BgsWs6h0up0%A@W`xB09Tt zt3^EQ`nM)ZobWLF-th3s)CeCzYXALWHZiTvc0-AO%m_0Obfg zi47+7jEWZb;NJ?zvU5GhrrZa4c{NO@02YzXo}⪙eUjm#S!-K4;}toj;%Wu*J{43 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 X34pLWoYwguvBYQl0ssI200dcD^sWvs diff --git a/xorg-xinput/xinput-1.6.4.tar.xz.sig b/xorg-xinput/xinput-1.6.4.tar.xz.sig deleted file mode 100644 index 33478cabe7df961ba63f35fe39187bcb68893f36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeB(WnmCxVvrS6WUx`Hj~ANI2{rFcuNVBq2ufQg(8VVIvV vkB#G})rauKh38HR?p_`lf3aGhVZpLDPa0Nc^*$-<-@jK(s_9v^%^4d2%dIJ8