*/*: sync with upstream

Taken from: FreeBSD
This commit is contained in:
Franco Fichtner 2024-09-04 14:52:12 +02:00
parent 8d461b1e39
commit 222716cfca
1683 changed files with 4116 additions and 55765 deletions

View file

@ -3,7 +3,7 @@ DISTVERSIONPREFIX= v
DISTVERSION= 1.1.1
CATEGORIES= archivers
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Decompression library for RAR, TAR, ZIP and 7z* archives
WWW= https://github.com/selmf/unarr

View file

@ -3,7 +3,7 @@ DISTVERSION= 0.10.3
PORTREVISION= 11
CATEGORIES= audio
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Plays music, and nothing else
WWW= https://gitlab.gnome.org/World/amberol

View file

@ -6,11 +6,13 @@ MASTER_SITES= SUNSITE/apps/sound/players
MAINTAINER= ports@FreeBSD.org
COMMENT= Curses MOD/FNK music tracker
WWW= https://boutell.com/lsm/lsmbyid.cgi/000831
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
DEPRECATED= Software looks abandoned: last release is in 1999 and WWW link had nothing to do with the software. Does not build with GCC 14.2
EXPIRATION_DATE=2024-10-30
BROKEN_armv6= fails to compile: function definition is not allowed here
BROKEN_armv7= fails to compile: function definition is not allowed here

View file

@ -4,7 +4,7 @@ PORTREVISION= 10
CATEGORIES= audio
PKGNAMEPREFIX= gnome-
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Keep the tempo
WWW= https://gitlab.gnome.org/World/metronome

View file

@ -4,7 +4,7 @@ PORTREVISION= 3
CATEGORIES= audio
PKGNAMEPREFIX= gnome-
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Podcast app for GNOME
WWW= https://gitlab.gnome.org/World/podcasts

View file

@ -4,7 +4,7 @@ DISTVERSION= 0.7.7
PORTREVISION= 3
CATEGORIES= audio
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Identify songs in seconds
WWW= https://github.com/SeaDve/Mousai

View file

@ -3,7 +3,7 @@ DISTVERSION= 3.2.0
PORTREVISION= 16
CATEGORIES= audio
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Listen to internet radio
WWW= https://gitlab.gnome.org/World/Shortwave

View file

@ -3,7 +3,7 @@ DISTVERSION= 0.16
PORTREVISION= 3
CATEGORIES= audio
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= GUI tool to split WAV and MP3 files
WWW= https://github.com/thp/wavbreaker

View file

@ -1,6 +1,5 @@
PORTNAME= yosys
DISTVERSIONPREFIX= yosys-
DISTVERSION= 0.44
DISTVERSION= 0.45
CATEGORIES= cad
MAINTAINER= yuri@FreeBSD.org

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1723002938
SHA256 (YosysHQ-yosys-yosys-0.44_GH0.tar.gz) = 3394b1fdb1c67c362513518d6049ef7db72ba45cca629af22bd52bf46b405ed2
SIZE (YosysHQ-yosys-yosys-0.44_GH0.tar.gz) = 2840442
TIMESTAMP = 1725423619
SHA256 (YosysHQ-yosys-0.45_GH0.tar.gz) = a36cc7943094c8ba0118e0ec38c719d2fb9142fe13833d326fa7ba659911c246
SIZE (YosysHQ-yosys-0.45_GH0.tar.gz) = 2921074

View file

@ -208,6 +208,32 @@ bin/yosys-witness
%%DATADIR%%/microchip/uSRAM.txt
%%DATADIR%%/microchip/uSRAM_map.v
%%DATADIR%%/mul2dsp.v
%%DATADIR%%/nanoxplore/arith_map.v
%%DATADIR%%/nanoxplore/brams.txt
%%DATADIR%%/nanoxplore/brams_init.vh
%%DATADIR%%/nanoxplore/brams_map.v
%%DATADIR%%/nanoxplore/cells_bb.v
%%DATADIR%%/nanoxplore/cells_bb_l.v
%%DATADIR%%/nanoxplore/cells_bb_m.v
%%DATADIR%%/nanoxplore/cells_bb_u.v
%%DATADIR%%/nanoxplore/cells_map.v
%%DATADIR%%/nanoxplore/cells_sim.v
%%DATADIR%%/nanoxplore/cells_sim_l.v
%%DATADIR%%/nanoxplore/cells_sim_m.v
%%DATADIR%%/nanoxplore/cells_sim_u.v
%%DATADIR%%/nanoxplore/cells_wrap.v
%%DATADIR%%/nanoxplore/cells_wrap_l.v
%%DATADIR%%/nanoxplore/cells_wrap_m.v
%%DATADIR%%/nanoxplore/cells_wrap_u.v
%%DATADIR%%/nanoxplore/io_map.v
%%DATADIR%%/nanoxplore/latches_map.v
%%DATADIR%%/nanoxplore/rf_init.vh
%%DATADIR%%/nanoxplore/rf_rams_l.txt
%%DATADIR%%/nanoxplore/rf_rams_m.txt
%%DATADIR%%/nanoxplore/rf_rams_map_l.v
%%DATADIR%%/nanoxplore/rf_rams_map_m.v
%%DATADIR%%/nanoxplore/rf_rams_map_u.v
%%DATADIR%%/nanoxplore/rf_rams_u.txt
%%DATADIR%%/nexus/arith_map.v
%%DATADIR%%/nexus/brams.txt
%%DATADIR%%/nexus/brams_map.v

View file

@ -1,7 +1,6 @@
PORTNAME= diesel
DISTVERSIONPREFIX= v
DISTVERSION= 2.2.3
PORTREVISION= 1
DISTVERSION= 2.2.4
CATEGORIES= databases
PKGNAMESUFFIX= -cli
@ -39,12 +38,12 @@ CARGO_CRATES= aho-corasick-1.1.3 \
block-buffer-0.10.4 \
bumpalo-3.16.0 \
byteorder-1.5.0 \
cc-1.1.14 \
cc-1.1.15 \
cfg-if-1.0.0 \
chrono-0.4.38 \
clap-4.5.16 \
clap_builder-4.5.15 \
clap_complete-4.5.23 \
clap_complete-4.5.24 \
clap_derive-4.5.13 \
clap_lex-0.7.2 \
cmake-0.1.51 \
@ -76,7 +75,7 @@ CARGO_CRATES= aho-corasick-1.1.3 \
iana-time-zone-haiku-0.1.2 \
ident_case-1.0.1 \
idna-0.5.0 \
indexmap-2.4.0 \
indexmap-2.5.0 \
insta-1.39.0 \
ipnet-2.9.0 \
ipnetwork-0.20.0 \
@ -103,7 +102,7 @@ CARGO_CRATES= aho-corasick-1.1.3 \
num-integer-0.1.46 \
num-traits-0.2.19 \
once_cell-1.19.0 \
openssl-src-300.3.1+3.3.1 \
openssl-src-300.3.2+3.3.2 \
openssl-sys-0.9.103 \
overload-0.1.1 \
parking_lot-0.12.3 \
@ -129,7 +128,7 @@ CARGO_CRATES= aho-corasick-1.1.3 \
regex-automata-0.4.7 \
regex-syntax-0.6.29 \
regex-syntax-0.8.4 \
rustix-0.38.34 \
rustix-0.38.35 \
ryu-1.0.18 \
scheduled-thread-pool-0.2.7 \
scopeguard-1.2.0 \
@ -144,7 +143,7 @@ CARGO_CRATES= aho-corasick-1.1.3 \
smallvec-1.13.2 \
strsim-0.11.1 \
subtle-2.6.1 \
syn-2.0.75 \
syn-2.0.77 \
tempfile-3.12.0 \
thiserror-1.0.63 \
thiserror-impl-1.0.63 \

View file

@ -1,4 +1,4 @@
TIMESTAMP = 1724475948
TIMESTAMP = 1725423751
SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
@ -35,8 +35,8 @@ SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2
SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
SHA256 (rust/crates/cc-1.1.14.crate) = 50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932
SIZE (rust/crates/cc-1.1.14.crate) = 83005
SHA256 (rust/crates/cc-1.1.15.crate) = 57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6
SIZE (rust/crates/cc-1.1.15.crate) = 83085
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
SHA256 (rust/crates/chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
@ -45,8 +45,8 @@ SHA256 (rust/crates/clap-4.5.16.crate) = ed6719fffa43d0d87e5fd8caeab59be1554fb02
SIZE (rust/crates/clap-4.5.16.crate) = 56627
SHA256 (rust/crates/clap_builder-4.5.15.crate) = 216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6
SIZE (rust/crates/clap_builder-4.5.15.crate) = 163717
SHA256 (rust/crates/clap_complete-4.5.23.crate) = 531d7959c5bbb6e266cecdd0f20213639c3a5c3e4d615f97db87661745f781ff
SIZE (rust/crates/clap_complete-4.5.23.crate) = 51273
SHA256 (rust/crates/clap_complete-4.5.24.crate) = 6d7db6eca8c205649e8d3ccd05aa5042b1800a784e56bc7c43524fde8abbfa9b
SIZE (rust/crates/clap_complete-4.5.24.crate) = 51275
SHA256 (rust/crates/clap_derive-4.5.13.crate) = 501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0
SIZE (rust/crates/clap_derive-4.5.13.crate) = 30132
SHA256 (rust/crates/clap_lex-0.7.2.crate) = 1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97
@ -109,8 +109,8 @@ SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d121
SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
SHA256 (rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
SIZE (rust/crates/idna-0.5.0.crate) = 271940
SHA256 (rust/crates/indexmap-2.4.0.crate) = 93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c
SIZE (rust/crates/indexmap-2.4.0.crate) = 83544
SHA256 (rust/crates/indexmap-2.5.0.crate) = 68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5
SIZE (rust/crates/indexmap-2.5.0.crate) = 85919
SHA256 (rust/crates/insta-1.39.0.crate) = 810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5
SIZE (rust/crates/insta-1.39.0.crate) = 87049
SHA256 (rust/crates/ipnet-2.9.0.crate) = 8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3
@ -163,8 +163,8 @@ SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
SHA256 (rust/crates/openssl-src-300.3.1+3.3.1.crate) = 7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91
SIZE (rust/crates/openssl-src-300.3.1+3.3.1.crate) = 9783559
SHA256 (rust/crates/openssl-src-300.3.2+3.3.2.crate) = a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b
SIZE (rust/crates/openssl-src-300.3.2+3.3.2.crate) = 9792821
SHA256 (rust/crates/openssl-sys-0.9.103.crate) = 7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6
SIZE (rust/crates/openssl-sys-0.9.103.crate) = 71552
SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
@ -215,8 +215,8 @@ SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4
SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
SHA256 (rust/crates/regex-syntax-0.8.4.crate) = 7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b
SIZE (rust/crates/regex-syntax-0.8.4.crate) = 347577
SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
SIZE (rust/crates/rustix-0.38.34.crate) = 365160
SHA256 (rust/crates/rustix-0.38.35.crate) = a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f
SIZE (rust/crates/rustix-0.38.35.crate) = 369206
SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
SIZE (rust/crates/ryu-1.0.18.crate) = 47713
SHA256 (rust/crates/scheduled-thread-pool-0.2.7.crate) = 3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19
@ -245,8 +245,8 @@ SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292
SIZE (rust/crates/subtle-2.6.1.crate) = 14562
SHA256 (rust/crates/syn-2.0.75.crate) = f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9
SIZE (rust/crates/syn-2.0.75.crate) = 268805
SHA256 (rust/crates/syn-2.0.77.crate) = 9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed
SIZE (rust/crates/syn-2.0.77.crate) = 268784
SHA256 (rust/crates/tempfile-3.12.0.crate) = 04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64
SIZE (rust/crates/tempfile-3.12.0.crate) = 34423
SHA256 (rust/crates/thiserror-1.0.63.crate) = c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724
@ -349,5 +349,5 @@ SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bde
SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
SHA256 (diesel-rs-diesel-v2.2.3_GH0.tar.gz) = ce766358766f8593eb06c4a7fc67537195af8fadd690b9e5b1fb17f8b8507e44
SIZE (diesel-rs-diesel-v2.2.3_GH0.tar.gz) = 834824
SHA256 (diesel-rs-diesel-v2.2.4_GH0.tar.gz) = 519e761055dea9abf6172b8ec15c0fd0da53c859e6b6809daeb104bbecd6fe57
SIZE (diesel-rs-diesel-v2.2.4_GH0.tar.gz) = 835234

View file

@ -1,7 +1,6 @@
PORTNAME= goose
DISTVERSIONPREFIX= v
DISTVERSION= 3.21.1
PORTREVISION= 2
DISTVERSION= 3.22.0
CATEGORIES= databases
PKGNAMESUFFIX= -db-migration-tool

View file

@ -1,5 +1,5 @@
TIMESTAMP = 1719210024
SHA256 (go/databases_goose/goose-v3.21.1/v3.21.1.mod) = 92d0df98b07bfb1bcc2f53e3c9612673495042393163cc10ff7ec7fa303a40e6
SIZE (go/databases_goose/goose-v3.21.1/v3.21.1.mod) = 3512
SHA256 (go/databases_goose/goose-v3.21.1/v3.21.1.zip) = 093fc09dbd7d92d1eae13290647f65af8fcf40021c1d15d3a0c1768d5ba94042
SIZE (go/databases_goose/goose-v3.21.1/v3.21.1.zip) = 343040
TIMESTAMP = 1725423754
SHA256 (go/databases_goose/goose-v3.22.0/v3.22.0.mod) = 34a62b3c0a4db6cdf38e308438030824c4e816b038280953eb5aaa1a9dc4bb33
SIZE (go/databases_goose/goose-v3.22.0/v3.22.0.mod) = 3496
SHA256 (go/databases_goose/goose-v3.22.0/v3.22.0.zip) = 5d88b9b8184e18ca4585269ab1842cb21d002fd94d919124b7cd0c84c684c10a
SIZE (go/databases_goose/goose-v3.22.0/v3.22.0.zip) = 345551

View file

@ -1,5 +1,5 @@
PORTNAME= Rose-DB
PORTVERSION= 0.785
PORTVERSION= 0.786
PORTEPOCH= 1
CATEGORIES= databases perl5
MASTER_SITES= CPAN
@ -15,11 +15,11 @@ LICENSE_COMB= dual
BUILD_DEPENDS= ${RUN_DEPENDS}
RUN_DEPENDS= p5-Bit-Vector>=6.4:math/p5-Bit-Vector \
p5-Clone-PP>=0:devel/p5-Clone-PP \
p5-DBI>=0:databases/p5-DBI \
p5-DateTime>=0:devel/p5-DateTime \
p5-DateTime-Format-MySQL>=0:devel/p5-DateTime-Format-MySQL \
p5-DateTime-Format-Oracle>=0:devel/p5-DateTime-Format-Oracle \
p5-DateTime-Format-Pg>=0.11000:devel/p5-DateTime-Format-Pg \
p5-DateTime>=0:devel/p5-DateTime \
p5-DBI>=0:databases/p5-DBI \
p5-Rose-DateTime>=0.532,1:devel/p5-Rose-DateTime \
p5-Rose-Object>=0.854:devel/p5-Rose-Object \
p5-SQL-ReservedWords>=0:databases/p5-SQL-ReservedWords \

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1679499146
SHA256 (Rose-DB-0.785.tar.gz) = 7849307d748d9672b42ef3cd78f83d44dec034cdc94f4d4251d2761e27c67a3c
SIZE (Rose-DB-0.785.tar.gz) = 128450
TIMESTAMP = 1725377468
SHA256 (Rose-DB-0.786.tar.gz) = 3d42a89eeb1f519b54c3fd7bd1be44863fa573677795289ee869006b44575099
SIZE (Rose-DB-0.786.tar.gz) = 128608

View file

@ -3,7 +3,7 @@ DISTVERSION= 0.95.0
PORTREVISION= 9
CATEGORIES= deskutils
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Track your fitness goals
WWW= https://gitlab.gnome.org/World/Health

View file

@ -3,7 +3,7 @@ DISTVERSION= 5.0.0
PORTREVISION= 7
CATEGORIES= deskutils
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Pomodoro timer for the GNOME desktop
WWW= https://gitlab.gnome.org/World/Solanum

View file

@ -629,7 +629,6 @@
SUBDIR += efl
SUBDIR += egypt
SUBDIR += eiffelstudio
SUBDIR += electron27
SUBDIR += electron29
SUBDIR += electron30
SUBDIR += electron31

View file

@ -1,6 +1,6 @@
PORTNAME= aws-crt-cpp
DISTVERSIONPREFIX= v
DISTVERSION= 0.28.1
DISTVERSION= 0.28.2
CATEGORIES= devel
MAINTAINER= eduardo@FreeBSD.org

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1725001437
SHA256 (awslabs-aws-crt-cpp-v0.28.1_GH0.tar.gz) = 084d4b9d1b4aae5873ae69a81b4232360dd8b62bd80c7432fff9503ef263d5fe
SIZE (awslabs-aws-crt-cpp-v0.28.1_GH0.tar.gz) = 356653
TIMESTAMP = 1725363048
SHA256 (awslabs-aws-crt-cpp-v0.28.2_GH0.tar.gz) = 7f27df9d2028008e665bab4b2e094365eac696610610e52182c679a43dbeaf6f
SIZE (awslabs-aws-crt-cpp-v0.28.2_GH0.tar.gz) = 356930

View file

@ -3,7 +3,7 @@ DISTVERSIONPREFIX= v
DISTVERSION= 0.14.0
CATEGORIES= devel
MAINTAINER= jbeich@FreeBSD.org
MAINTAINER= ports@FreeBSD.org
COMMENT= Markup language for GTK user interfaces
WWW= https://gitlab.gnome.org/jwestman/blueprint-compiler

View file

@ -1,7 +1,6 @@
PORTNAME= cargo-llvm-cov
DISTVERSIONPREFIX= v
DISTVERSION= 0.6.11
PORTREVISION= 1
DISTVERSION= 0.6.12
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
@ -21,67 +20,68 @@ GH_ACCOUNT= taiki-e
CARGO_CRATES= aho-corasick-1.1.3 \
anyhow-1.0.86 \
autocfg-1.3.0 \
bitflags-1.3.2 \
bitflags-2.6.0 \
bstr-1.9.1 \
bstr-1.10.0 \
byteorder-1.5.0 \
camino-1.1.7 \
cargo-config2-0.1.26 \
camino-1.1.9 \
cargo-config2-0.1.29 \
cfg-if-1.0.0 \
duct-0.13.7 \
easy-ext-1.0.2 \
equivalent-1.0.1 \
errno-0.3.9 \
fastrand-2.1.0 \
filetime-0.2.23 \
fastrand-2.1.1 \
filetime-0.2.25 \
fs-err-2.11.0 \
glob-0.3.1 \
hashbrown-0.14.5 \
home-0.5.9 \
indexmap-2.2.6 \
indexmap-2.5.0 \
is_executable-1.0.1 \
itoa-1.0.11 \
lcov2cobertura-1.0.5 \
lexopt-0.3.0 \
libc-0.2.155 \
libc-0.2.158 \
libredox-0.1.3 \
linux-raw-sys-0.4.14 \
memchr-2.7.4 \
normpath-1.2.0 \
normpath-1.3.0 \
once_cell-1.19.0 \
opener-0.7.1 \
os_pipe-1.2.0 \
opener-0.7.2 \
os_pipe-1.2.1 \
proc-macro2-1.0.86 \
quick-xml-0.31.0 \
quote-1.0.36 \
redox_syscall-0.4.1 \
regex-1.10.5 \
quote-1.0.37 \
redox_syscall-0.5.3 \
regex-1.10.6 \
regex-automata-0.4.7 \
regex-syntax-0.8.4 \
rustc-demangle-0.1.24 \
rustix-0.38.34 \
rustix-0.38.35 \
rustversion-1.0.17 \
ruzstd-0.7.0 \
ruzstd-0.7.1 \
ryu-1.0.18 \
same-file-1.0.6 \
serde-1.0.204 \
serde_derive-1.0.204 \
serde_json-1.0.120 \
serde_spanned-0.6.6 \
shared_child-1.0.0 \
serde-1.0.209 \
serde_derive-1.0.209 \
serde_json-1.0.127 \
serde_spanned-0.6.7 \
shared_child-1.0.1 \
shell-escape-0.1.5 \
syn-2.0.71 \
syn-2.0.77 \
tar-0.4.41 \
tempfile-3.10.1 \
tempfile-3.12.0 \
termcolor-1.4.1 \
toml_datetime-0.6.6 \
toml_edit-0.22.16 \
toml_datetime-0.6.8 \
toml_edit-0.22.20 \
unicode-ident-1.0.12 \
walkdir-2.5.0 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-util-0.1.8 \
winapi-util-0.1.9 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
windows-sys-0.52.0 \
windows-sys-0.59.0 \
windows-targets-0.52.6 \
windows_aarch64_gnullvm-0.52.6 \
windows_aarch64_msvc-0.52.6 \
@ -91,7 +91,7 @@ CARGO_CRATES= aho-corasick-1.1.3 \
windows_x86_64_gnu-0.52.6 \
windows_x86_64_gnullvm-0.52.6 \
windows_x86_64_msvc-0.52.6 \
winnow-0.6.14 \
winnow-0.6.18 \
xattr-1.3.1
PLIST_FILES= bin/${PORTNAME}

View file

@ -1,22 +1,20 @@
TIMESTAMP = 1721416988
TIMESTAMP = 1725423766
SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
SHA256 (rust/crates/anyhow-1.0.86.crate) = b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da
SIZE (rust/crates/anyhow-1.0.86.crate) = 46741
SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
SHA256 (rust/crates/bstr-1.9.1.crate) = 05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706
SIZE (rust/crates/bstr-1.9.1.crate) = 380305
SHA256 (rust/crates/bstr-1.10.0.crate) = 40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c
SIZE (rust/crates/bstr-1.10.0.crate) = 380426
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
SHA256 (rust/crates/camino-1.1.7.crate) = e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239
SIZE (rust/crates/camino-1.1.7.crate) = 36204
SHA256 (rust/crates/cargo-config2-0.1.26.crate) = d83ce0be8bd1479e5de6202def660e6c7e27e4e0599bffa4fed05bd380ec2ede
SIZE (rust/crates/cargo-config2-0.1.26.crate) = 63535
SHA256 (rust/crates/camino-1.1.9.crate) = 8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3
SIZE (rust/crates/camino-1.1.9.crate) = 37552
SHA256 (rust/crates/cargo-config2-0.1.29.crate) = 1124054becb9262cc15c5e96e82f0d782f2aed3a3034d1f71a6385a6fa9e9595
SIZE (rust/crates/cargo-config2-0.1.29.crate) = 67760
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
SHA256 (rust/crates/duct-0.13.7.crate) = e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c
@ -27,10 +25,10 @@ SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8d
SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
SHA256 (rust/crates/errno-0.3.9.crate) = 534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba
SIZE (rust/crates/errno-0.3.9.crate) = 10690
SHA256 (rust/crates/fastrand-2.1.0.crate) = 9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a
SIZE (rust/crates/fastrand-2.1.0.crate) = 14907
SHA256 (rust/crates/filetime-0.2.23.crate) = 1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd
SIZE (rust/crates/filetime-0.2.23.crate) = 14942
SHA256 (rust/crates/fastrand-2.1.1.crate) = e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6
SIZE (rust/crates/fastrand-2.1.1.crate) = 14983
SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586
SIZE (rust/crates/filetime-0.2.25.crate) = 14940
SHA256 (rust/crates/fs-err-2.11.0.crate) = 88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41
SIZE (rust/crates/fs-err-2.11.0.crate) = 20449
SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
@ -39,8 +37,8 @@ SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b1
SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
SHA256 (rust/crates/home-0.5.9.crate) = e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5
SIZE (rust/crates/home-0.5.9.crate) = 8760
SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
SHA256 (rust/crates/indexmap-2.5.0.crate) = 68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5
SIZE (rust/crates/indexmap-2.5.0.crate) = 85919
SHA256 (rust/crates/is_executable-1.0.1.crate) = fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8
SIZE (rust/crates/is_executable-1.0.1.crate) = 9550
SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
@ -49,70 +47,72 @@ SHA256 (rust/crates/lcov2cobertura-1.0.5.crate) = 3059082d010970e36c402fd43c1211
SIZE (rust/crates/lcov2cobertura-1.0.5.crate) = 10301
SHA256 (rust/crates/lexopt-0.3.0.crate) = baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401
SIZE (rust/crates/lexopt-0.3.0.crate) = 24767
SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
SIZE (rust/crates/libc-0.2.155.crate) = 743539
SHA256 (rust/crates/libc-0.2.158.crate) = d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439
SIZE (rust/crates/libc-0.2.158.crate) = 751340
SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
SIZE (rust/crates/libredox-0.1.3.crate) = 6068
SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89
SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665
SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
SIZE (rust/crates/memchr-2.7.4.crate) = 96670
SHA256 (rust/crates/normpath-1.2.0.crate) = 5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804
SIZE (rust/crates/normpath-1.2.0.crate) = 20107
SHA256 (rust/crates/normpath-1.3.0.crate) = c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed
SIZE (rust/crates/normpath-1.3.0.crate) = 20719
SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
SHA256 (rust/crates/opener-0.7.1.crate) = f8df34be653210fbe9ffaff41d3b92721c56ce82dfee58ee684f9afb5e3a90c0
SIZE (rust/crates/opener-0.7.1.crate) = 19186
SHA256 (rust/crates/os_pipe-1.2.0.crate) = 29d73ba8daf8fac13b0501d1abeddcfe21ba7401ada61a819144b6c2a4f32209
SIZE (rust/crates/os_pipe-1.2.0.crate) = 10615
SHA256 (rust/crates/opener-0.7.2.crate) = d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681
SIZE (rust/crates/opener-0.7.2.crate) = 19229
SHA256 (rust/crates/os_pipe-1.2.1.crate) = 5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982
SIZE (rust/crates/os_pipe-1.2.1.crate) = 10691
SHA256 (rust/crates/proc-macro2-1.0.86.crate) = 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77
SIZE (rust/crates/proc-macro2-1.0.86.crate) = 48958
SHA256 (rust/crates/quick-xml-0.31.0.crate) = 1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33
SIZE (rust/crates/quick-xml-0.31.0.crate) = 172236
SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
SIZE (rust/crates/quote-1.0.36.crate) = 28507
SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
SHA256 (rust/crates/regex-1.10.5.crate) = b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f
SIZE (rust/crates/regex-1.10.5.crate) = 253805
SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af
SIZE (rust/crates/quote-1.0.37.crate) = 28558
SHA256 (rust/crates/redox_syscall-0.5.3.crate) = 2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4
SIZE (rust/crates/redox_syscall-0.5.3.crate) = 23830
SHA256 (rust/crates/regex-1.10.6.crate) = 4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619
SIZE (rust/crates/regex-1.10.6.crate) = 253894
SHA256 (rust/crates/regex-automata-0.4.7.crate) = 38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df
SIZE (rust/crates/regex-automata-0.4.7.crate) = 617582
SHA256 (rust/crates/regex-syntax-0.8.4.crate) = 7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b
SIZE (rust/crates/regex-syntax-0.8.4.crate) = 347577
SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
SIZE (rust/crates/rustix-0.38.34.crate) = 365160
SHA256 (rust/crates/rustix-0.38.35.crate) = a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f
SIZE (rust/crates/rustix-0.38.35.crate) = 369206
SHA256 (rust/crates/rustversion-1.0.17.crate) = 955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6
SIZE (rust/crates/rustversion-1.0.17.crate) = 17621
SHA256 (rust/crates/ruzstd-0.7.0.crate) = 5022b253619b1ba797f243056276bed8ed1a73b0f5a7ce7225d524067644bf8f
SIZE (rust/crates/ruzstd-0.7.0.crate) = 64956
SHA256 (rust/crates/ruzstd-0.7.1.crate) = 1c8b8f3d26bd9f945e5cbae77f7cdfbf37af9a66956f1115eb4516e45df519f4
SIZE (rust/crates/ruzstd-0.7.1.crate) = 65475
SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
SIZE (rust/crates/ryu-1.0.18.crate) = 47713
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
SHA256 (rust/crates/serde-1.0.204.crate) = bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12
SIZE (rust/crates/serde-1.0.204.crate) = 78253
SHA256 (rust/crates/serde_derive-1.0.204.crate) = e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222
SIZE (rust/crates/serde_derive-1.0.204.crate) = 55871
SHA256 (rust/crates/serde_json-1.0.120.crate) = 4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5
SIZE (rust/crates/serde_json-1.0.120.crate) = 147062
SHA256 (rust/crates/serde_spanned-0.6.6.crate) = 79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0
SIZE (rust/crates/serde_spanned-0.6.6.crate) = 9120
SHA256 (rust/crates/shared_child-1.0.0.crate) = b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef
SIZE (rust/crates/shared_child-1.0.0.crate) = 8939
SHA256 (rust/crates/serde-1.0.209.crate) = 99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09
SIZE (rust/crates/serde-1.0.209.crate) = 78364
SHA256 (rust/crates/serde_derive-1.0.209.crate) = a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170
SIZE (rust/crates/serde_derive-1.0.209.crate) = 56023
SHA256 (rust/crates/serde_json-1.0.127.crate) = 8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad
SIZE (rust/crates/serde_json-1.0.127.crate) = 149465
SHA256 (rust/crates/serde_spanned-0.6.7.crate) = eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d
SIZE (rust/crates/serde_spanned-0.6.7.crate) = 9164
SHA256 (rust/crates/shared_child-1.0.1.crate) = 09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c
SIZE (rust/crates/shared_child-1.0.1.crate) = 8967
SHA256 (rust/crates/shell-escape-0.1.5.crate) = 45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f
SIZE (rust/crates/shell-escape-0.1.5.crate) = 6847
SHA256 (rust/crates/syn-2.0.71.crate) = b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462
SIZE (rust/crates/syn-2.0.71.crate) = 266398
SHA256 (rust/crates/syn-2.0.77.crate) = 9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed
SIZE (rust/crates/syn-2.0.77.crate) = 268784
SHA256 (rust/crates/tar-0.4.41.crate) = cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909
SIZE (rust/crates/tar-0.4.41.crate) = 51871
SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
SHA256 (rust/crates/tempfile-3.12.0.crate) = 04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64
SIZE (rust/crates/tempfile-3.12.0.crate) = 34423
SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
SHA256 (rust/crates/toml_datetime-0.6.6.crate) = 4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf
SIZE (rust/crates/toml_datetime-0.6.6.crate) = 11698
SHA256 (rust/crates/toml_edit-0.22.16.crate) = 278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788
SIZE (rust/crates/toml_edit-0.22.16.crate) = 106618
SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41
SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028
SHA256 (rust/crates/toml_edit-0.22.20.crate) = 583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d
SIZE (rust/crates/toml_edit-0.22.20.crate) = 106726
SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
@ -121,12 +121,14 @@ SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe9399
SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
SHA256 (rust/crates/winapi-util-0.1.8.crate) = 4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b
SIZE (rust/crates/winapi-util-0.1.8.crate) = 12416
SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb
SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
@ -145,9 +147,9 @@ SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681
SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
SHA256 (rust/crates/winnow-0.6.14.crate) = 374ec40a2d767a3c1b4972d9475ecd557356637be906f2cb3f7fe17a6eb5e22f
SIZE (rust/crates/winnow-0.6.14.crate) = 162768
SHA256 (rust/crates/winnow-0.6.18.crate) = 68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f
SIZE (rust/crates/winnow-0.6.18.crate) = 163357
SHA256 (rust/crates/xattr-1.3.1.crate) = 8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f
SIZE (rust/crates/xattr-1.3.1.crate) = 12580
SHA256 (taiki-e-cargo-llvm-cov-v0.6.11_GH0.tar.gz) = 92f7abd853a6e2968390ab48fa38268352aff076a0f0c441b34244aee34054de
SIZE (taiki-e-cargo-llvm-cov-v0.6.11_GH0.tar.gz) = 100781
SHA256 (taiki-e-cargo-llvm-cov-v0.6.12_GH0.tar.gz) = 165185c74e59ca26878c989366efe03d2a28409c0bdfb2dcce7ab34580395588
SIZE (taiki-e-cargo-llvm-cov-v0.6.12_GH0.tar.gz) = 101164

View file

@ -1,7 +1,6 @@
PORTNAME= cpp-utilities
DISTVERSIONPREFIX= v
DISTVERSION= 5.26.0-6
DISTVERSIONSUFFIX= -g7992212
DISTVERSION= 5.26.1
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1724387579
SHA256 (Martchus-cpp-utilities-v5.26.0-6-g7992212_GH0.tar.gz) = 1e93929fdda60aff5dbd20e393e12ba573ee71f919258ff89ab598f500fb61f2
SIZE (Martchus-cpp-utilities-v5.26.0-6-g7992212_GH0.tar.gz) = 200793
TIMESTAMP = 1725424025
SHA256 (Martchus-cpp-utilities-v5.26.1_GH0.tar.gz) = 25b02e1d2deb669d2f7f734f8b67653820732703ad00a9cce611dd63a5853f4d
SIZE (Martchus-cpp-utilities-v5.26.1_GH0.tar.gz) = 200895

View file

@ -1,435 +0,0 @@
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER:S/-beta./.b/}
CATEGORIES= devel
MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v27.1.3/:chromium \
https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \
https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts
PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR}
DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \
${CHROMIUM_NODE_MODULES_HASH}:chromium_node \
${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts \
electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= tagattie@FreeBSD.org
COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS
WWW= https://electronjs.org/
LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT
LICENSE_COMB= multi
LICENSE_FILE= ${WRKSRC}/electron/LICENSE
DEPRECATED= EOLed upstream, switch to newer version
EXPIRATION_DATE= 2024-05-31
ONLY_FOR_ARCHS= aarch64 amd64 i386
FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX}
EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX}
PATCH_DEPENDS= git:devel/git \
jq:textproc/jq
BUILD_DEPENDS= gperf:devel/gperf \
yasm:devel/yasm \
${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \
${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \
node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \
npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX}
LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \
libatspi.so:accessibility/at-spi2-core \
libsnappy.so:archivers/snappy \
libFLAC.so:audio/flac \
libopus.so:audio/opus \
libdbus-1.so:devel/dbus \
libicuuc.so:devel/icu \
libepoll-shim.so:devel/libepoll-shim \
libevent.so:devel/libevent \
libffi.so:devel/libffi \
libnotify.so:devel/libnotify \
libpci.so:devel/libpci \
libnspr4.so:devel/nspr \
libre2.so:devel/re2 \
libdrm.so:graphics/libdrm \
libpng.so:graphics/png \
libwayland-client.so:graphics/wayland \
libwebp.so:graphics/webp \
libdav1d.so:multimedia/dav1d \
libva.so:multimedia/libva \
libopenh264.so:multimedia/openh264 \
libfreetype.so:print/freetype2 \
libharfbuzz.so:print/harfbuzz \
libsecret-1.so:security/libsecret \
libnss3.so:security/nss \
libexpat.so:textproc/expat2 \
libxkbcommon.so:x11/libxkbcommon \
libxshmfence.so:x11/libxshmfence \
libfontconfig.so:x11-fonts/fontconfig
RUN_DEPENDS= xdg-open:devel/xdg-utils
TEST_DEPENDS= git:devel/git \
${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \
npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX}
USES= bison compiler:c++17-lang cpe gettext-tools gl gmake gnome \
iconv:wchar_t jpeg localbase:ldflags ninja nodejs:18,build \
pkgconfig python:build,test shebangfix tar:xz xorg
CPE_VENDOR= electronjs
USE_GITHUB= yes
GH_TAGNAME= ${DISTVERSIONPREFIX}${ELECTRON_VER}
GH_TUPLE= nodejs:node:v${NODE_VER}:node \
nodejs:nan:${NAN_VER}:nan \
Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \
ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \
Mantle:Mantle:${MANTLE_VER}:mantle
USE_GL= gbm gl glesv2
USE_GNOME= atk cairo gdkpixbuf2 gtk30 libxml2 libxslt pango
USE_LDCONFIG= ${DATADIR}
USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \
xrender xscrnsaver xtst
SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format
MAKE_ARGS= -C out/${BUILDTYPE}
MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \
CPLUS_INCLUDE_PATH=${LOCALBASE}/include
ALL_TARGET= electron third_party/electron_node:headers
POST_BUILD_TARGETS= licenses version
POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \
electron_mksnapshot_zip
DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
BINARY_ALIAS= python3=${PYTHON_CMD}
NO_WRKSUBDIR= yes
WRKSRC_SUBDIR= src
GN_ARGS+= clang_use_chrome_plugins=false \
enable_backup_ref_ptr_support=false \
enable_hangout_services_extension=true \
enable_nacl=false \
enable_remoting=false \
enable_rust=false \
fatal_linker_warnings=false \
icu_use_data_file=false \
is_clang=true \
optimize_webui=true \
toolkit_views=true \
treat_warnings_as_errors=false \
use_allocator_shim=false \
use_aura=true \
use_custom_libcxx=false \
use_lld=true \
use_partition_alloc=true \
use_partition_alloc_as_malloc=false \
use_sysroot=false \
use_system_freetype=false \
use_system_harfbuzz=true \
use_system_libffi=true \
use_system_libjpeg=true \
use_udev=false \
chrome_pgo_phase=0 \
extra_cflags="${CFLAGS}" \
extra_cxxflags="${CXXFLAGS}" \
extra_ldflags="${LDFLAGS}" \
ffmpeg_branding="${FFMPEG_BRAND}" \
override_electron_version="${ELECTRON_VER}"
# TODO: investigate building with these options:
# use_system_minigbm
GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles
PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \
ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR}
OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE
OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE SNDIO
OPTIONS_EXCLUDE_aarch64=LTO
OPTIONS_GROUP= AUDIO
OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO
OPTIONS_RADIO= KERBEROS
OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT
OPTIONS_SUB= yes
CODECS_DESC= Compile and enable patented codecs like H.264
DIST_DESC= Build distribution zip files
DRIVER_DESC= Install chromedriver
HEIMDAL_BASE_DESC= Heimdal Kerberos (base)
HEIMDAL_DESC= Heimdal Kerberos (security/heimdal)
MIT_DESC= MIT Kerberos (security/krb5)
PIPEWIRE_DESC= Screen capture via PipeWire
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \
alsa-lib>=1.1.1_1:audio/alsa-lib
ALSA_VARS= GN_ARGS+=use_alsa=true
ALSA_VARS_OFF= GN_ARGS+=use_alsa=false
CODECS_VARS= GN_ARGS+=proprietary_codecs=true \
FFMPEG_BRAND="Chrome"
CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \
FFMPEG_BRAND="Chromium"
CUPS_LIB_DEPENDS= libcups.so:print/cups
CUPS_VARS= GN_ARGS+=use_cups=true
CUPS_VARS_OFF= GN_ARGS+=use_cups=false
DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild
DEBUG_VARS= BUILDTYPE=Debug \
GN_FILE=testing.gn \
GN_ARGS+=is_debug=true \
GN_ARGS+=is_component_build=false \
GN_ARGS+=symbol_level=1 \
GN_BOOTSTRAP_FLAGS+=--debug \
WANTSPACE="21 GB"
DEBUG_VARS_OFF= BUILDTYPE=Release \
GN_FILE=release.gn \
GN_ARGS+=blink_symbol_level=0 \
GN_ARGS+=is_debug=false \
GN_ARGS+=is_official_build=true \
GN_ARGS+=symbol_level=0 \
WANTSPACE="14 GB"
DIST_IMPLIES= DRIVER
DRIVER_MAKE_ARGS= chromedriver
HEIMDAL_LIB_DEPENDS= libkrb5.so.26:security/heimdal
KERBEROS_VARS= GN_ARGS+=use_kerberos=true
KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false
LTO_VARS= GN_ARGS+=use_thin_lto=true \
GN_ARGS+=thin_lto_enable_optimizations=true \
WANTSPACE="14 GB"
LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false
MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5
PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \
GN_ARGS+=rtc_link_pipewire=true
PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \
GN_ARGS+=rtc_link_pipewire=false
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true
PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false
# With SNDIO=on we exclude audio_manager_linux from the build (see
# media/audio/BUILD.gn) and use audio_manager_openbsd which does not
# support falling back to ALSA or PulseAudio.
SNDIO_PREVENTS= ALSA PULSEAUDIO
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_VARS= GN_ARGS+=use_sndio=true
SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false
# See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
CHROMIUM_VER= 118.0.5993.159
# See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH
CHROMIUM_NODE_MODULES_HASH= 937cea04689b7b8dcf3cb9adbb12c79d1d6c38bb
# See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH
CHROMIUM_TEST_FONTS_HASH= 336e775eec536b2d785cc80eff6ac39051931286
# See ${WRKSRC}/electron/DEPS for NODE_VER
NODE_VER= 18.17.1
# See ${WRKSRC}/electron/DEPS for NAN_VER
NAN_VER= 16fa32231e2ccd89d2804b3f765319128b20c4ac
# See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER
SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38
# See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER
REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76
# See ${WRKSRC}/electron/DEPS for MANTLE_VER
MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948
YARN_TIMESTAMP= 61171200
.include "Makefile.version"
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so)
IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base
.endif
BINARY_ALIAS+= ar=/usr/bin/llvm-ar \
nm=/usr/bin/llvm-nm
CFLAGS+= -Wno-error=implicit-function-declaration
.if ${ARCH} == "aarch64"
PLIST_SUB+= AARCH64="" \
AMD64="@comment " \
I386="@comment " \
NOT_AARCH64="@comment "
FFMPEG_TARGET= arm64
.elif ${ARCH} == "amd64"
BUILD_DEPENDS+= nasm:devel/nasm
PLIST_SUB+= AARCH64="@comment " \
AMD64="" \
I386="@comment " \
NOT_AARCH64=""
FFMPEG_TARGET= x64
.elif ${ARCH} == "i386"
BUILD_DEPENDS+= nasm:devel/nasm
PLIST_SUB+= AARCH64="@comment " \
AMD64="@comment " \
I386="" \
NOT_AARCH64=""
FFMPEG_TARGET= ia32
.endif
FFMPEG_BDIR= ${WRKSRC}/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND}
FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET}
# Allow relocations against read-only segments (override lld default)
LDFLAGS_i386= -Wl,-znotext
# TODO: -isystem, would be just as ugly as this approach, but more reliably
# build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set.
MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \
CPLUS_INCLUDE_PATH=${LOCALBASE}/include
pre-everything::
@${ECHO_MSG}
@${ECHO_MSG} "To build electron, you should have around 2GB of memory"
@${ECHO_MSG} "and around ${WANTSPACE} of free disk space."
@${ECHO_MSG}
pre-fetch:
@${MKDIR} ${DISTDIR}/${DIST_SUBDIR}
if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \
then ${MKDIR} ${WRKDIR}; \
${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \
${WRKDIR}/.yarnrc; \
${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \
cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \
yarn --frozen-lockfile --ignore-scripts; \
${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \
-e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \
-e 's:\([gu]id\)=[0-9]*:\1=0:g' \
-e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \
-e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \
-e 's:flags=.*:flags=none:' \
-e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \
${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \
@yarn-offline-cache.mtree; \
${RM} -r ${WRKDIR}; \
fi
post-extract:
# Move extracted sources to appropriate locations
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC}
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_nan}-${NAN_VER} \
${WRKSRC}/third_party/nan
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \
${WRKSRC}/third_party/electron_node
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \
${WRKSRC}/third_party/squirrel.mac
${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \
${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \
${WRKSRC}/third_party/squirrel.mac/vendor/Mantle
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts
# Install node modules for electron
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR}
${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc
${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak
${CP} ${FILESDIR}/package.json ${WRKSRC}/electron
cd ${WRKSRC}/electron && \
${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline
pre-patch:
${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC}
# ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete
# ${FIND} ${WRKSRC} -type f -name '*~' -print -delete
pre-configure:
# We used to remove bundled libraries to be sure that chromium uses
# system libraries and not shipped ones.
# cd ${WRKSRC} && ${PYTHON_CMD} \
#./build/linux/unbundle/remove_bundled_libraries.py [list of preserved]
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \
./build/linux/unbundle/replace_gn_files.py --system-libraries \
dav1d flac fontconfig freetype harfbuzz-ng icu libdrm libevent \
libpng libusb libwebp libxml libxslt openh264 opus snappy || ${FALSE}
# Chromium uses an unreleased version of FFmpeg, so configure it
cd ${WRKSRC}/third_party/ffmpeg && \
${PYTHON_CMD} chromium/scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \
--config-only --branding=${FFMPEG_BRAND}
cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h
${MKDIR} ${FFMPEG_CDIR}
.for _e in config.h config.asm config_components.h libavcodec libavformat libavutil
-${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR}
.endfor
do-configure:
# GN generator bootstrapping and generating ninja files
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \
READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \
./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS}
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \
--args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}'
# Setup nodejs dependency
@${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin
${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node
# Setup buildtools/freebsd
@${MKDIR} ${WRKSRC}/buildtools/freebsd
${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd
${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd
${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip
post-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS}
post-build-DIST-on:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS}
cd ${WRKSRC}/out/${BUILDTYPE} && \
${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \
${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \
${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \
${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt
do-install:
${MKDIR} ${STAGEDIR}${DATADIR}
.for f in electron mksnapshot v8_context_snapshot_generator
${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
.for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so
.for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
.for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
${MKDIR} ${STAGEDIR}${DATADIR}/locales
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales
${MKDIR} ${STAGEDIR}${DATADIR}/resources
.for f in default_app.asar
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources
.endfor
cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR}
cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR}
cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR}
${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX}
post-install-DIST-on:
${MKDIR} ${STAGEDIR}${DATADIR}/releases
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases
post-install-DRIVER-on:
${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \
${STAGEDIR}${DATADIR}/chromedriver
do-test:
# Note 1: "npm install" will run before actual tests are executed
# Note 2: Xvfb or something similar is necessary for headless testing
cd ${WRKSRC}/electron && \
${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} LOCAL_GIT_DIRECTORY=${LOCALBASE} \
npm run test -- --ci
.include <bsd.port.post.mk>

View file

@ -1,2 +0,0 @@
ELECTRON_VER= 27.3.11
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}

View file

@ -1,21 +0,0 @@
TIMESTAMP = 1713439063
SHA256 (electron/chromium-118.0.5993.159.tar.xz) = 47fdd7677470f4f4daf68e59dcacbafb99f5ed0c07501162b6af168f760b4359
SIZE (electron/chromium-118.0.5993.159.tar.xz) = 1602730244
SHA256 (electron/937cea04689b7b8dcf3cb9adbb12c79d1d6c38bb) = f7f7f38661b107fc1d91b7918f36362d9180e87f34e3027562eb5db8735746fe
SIZE (electron/937cea04689b7b8dcf3cb9adbb12c79d1d6c38bb) = 8881070
SHA256 (electron/336e775eec536b2d785cc80eff6ac39051931286) = a2ca2962daf482a8f943163541e1c73ba4b2694fabcd2510981f2db4eda493c8
SIZE (electron/336e775eec536b2d785cc80eff6ac39051931286) = 32624734
SHA256 (electron/electron-yarn-cache-27.3.11.tar.xz) = b1d33fa2bf412990a64b1720140fdd712b5945f41f781a4b2c154915061c6d75
SIZE (electron/electron-yarn-cache-27.3.11.tar.xz) = 29116528
SHA256 (electron/electron-electron-v27.3.11_GH0.tar.gz) = ec7ec7ed08e962b69c4bd847ec9ad74932f01233fab3f94b9219ce85f7ba4ba7
SIZE (electron/electron-electron-v27.3.11_GH0.tar.gz) = 11471421
SHA256 (electron/nodejs-node-v18.17.1_GH0.tar.gz) = 1cc1670bc183eaf9e0afe0258391695d1d6ae1be02ba4c26e0218cf5f19b96f7
SIZE (electron/nodejs-node-v18.17.1_GH0.tar.gz) = 112512847
SHA256 (electron/nodejs-nan-16fa32231e2ccd89d2804b3f765319128b20c4ac_GH0.tar.gz) = 3807ae6a1e451a29f068540472f100f9718d457c60ac62f2f8469d1d57475d39
SIZE (electron/nodejs-nan-16fa32231e2ccd89d2804b3f765319128b20c4ac_GH0.tar.gz) = 179355
SHA256 (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01
SIZE (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = 2112918
SHA256 (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 88e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546
SIZE (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 1136238
SHA256 (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = a365df6d83e0be3cc000b70bd39734d80c28f0d9983ebe44698337a2ca464bb1
SIZE (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = 62962

View file

@ -1,26 +0,0 @@
#! /bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
GIT_CMD="git"
PATCH_CMD="${GIT_CMD} apply"
#PATCH_FLAGS="--numstat --check" # for debugging
PATCH_FLAGS="--verbose --reject"
WRKSRC=$1
PATCH_CONF=${WRKSRC}/electron/patches/config.json
${GIT_CMD} status "${WRKSRC}" > /dev/null 2>&1 && IS_GIT_REPO=1
PATCHD_REPOD_PAIRS=$(jq -r '.[] | .patch_dir + ":" + .repo' "${PATCH_CONF}")
for prp in ${PATCHD_REPOD_PAIRS}; do
pd=$(echo "${prp}" | awk -F: '{print $1}' | sed -e 's/src/./')
rd=$(echo "${prp}" | awk -F: '{print $2}' | sed -e 's/src/./')
(cd "${WRKSRC}/${rd}" && \
if [ -n "${IS_GIT_REPO}" ]; then
PATCH_FLAGS="${PATCH_FLAGS} --directory=$(${GIT_CMD} rev-parse --show-prefix)"
fi && \
while read -r p; do
${PATCH_CMD} ${PATCH_FLAGS} "${WRKSRC}/${pd}/${p}"
done < "${WRKSRC}/${pd}/.patches")
done

View file

@ -1,156 +0,0 @@
{
"name": "electron",
"version": "0.0.0-development",
"repository": "https://github.com/electron/electron",
"description": "Build cross platform desktop apps with JavaScript, HTML, and CSS",
"devDependencies": {
"@azure/storage-blob": "^12.9.0",
"@electron/asar": "^3.2.1",
"@electron/docs-parser": "^1.2.0",
"@electron/fiddle-core": "^1.0.4",
"@electron/github-app-auth": "^2.0.0",
"@electron/lint-roller": "^1.8.0",
"@electron/typescript-definitions": "^8.15.2",
"@octokit/rest": "^19.0.7",
"@primer/octicons": "^10.0.0",
"@types/basic-auth": "^1.1.3",
"@types/busboy": "^1.5.0",
"@types/chai": "^4.2.12",
"@types/chai-as-promised": "^7.1.3",
"@types/dirty-chai": "^2.0.2",
"@types/express": "^4.17.13",
"@types/fs-extra": "^9.0.1",
"@types/klaw": "^3.0.1",
"@types/minimist": "^1.2.0",
"@types/mocha": "^7.0.2",
"@types/node": "^18.11.18",
"@types/semver": "^7.3.3",
"@types/send": "^0.14.5",
"@types/split": "^1.0.0",
"@types/stream-json": "^1.5.1",
"@types/temp": "^0.8.34",
"@types/uuid": "^3.4.6",
"@types/w3c-web-serial": "^1.0.3",
"@types/webpack": "^5.28.0",
"@types/webpack-env": "^1.17.0",
"@typescript-eslint/eslint-plugin": "^5.59.7",
"@typescript-eslint/parser": "^5.59.7",
"buffer": "^6.0.3",
"check-for-leaks": "^1.2.1",
"colors": "1.4.0",
"dotenv-safe": "^4.0.4",
"dugite": "^2.3.0",
"eslint": "^8.41.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-mocha": "^7.0.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"eslint-plugin-unicorn": "^46.0.1",
"events": "^3.2.0",
"express": "^4.16.4",
"folder-hash": "^2.1.1",
"fs-extra": "^9.0.1",
"got": "^11.8.5",
"husky": "^8.0.1",
"klaw": "^3.0.0",
"lint": "^1.1.2",
"lint-staged": "^10.2.11",
"minimist": "^1.2.6",
"null-loader": "^4.0.0",
"pre-flight": "^1.1.0",
"process": "^0.11.10",
"remark-cli": "^10.0.0",
"remark-preset-lint-markdown-style-guide": "^4.0.0",
"semver": "^7.5.2",
"shx": "^0.3.2",
"stream-json": "^1.7.1",
"tap-xunit": "^2.4.1",
"temp": "^0.8.3",
"timers-browserify": "1.4.2",
"ts-loader": "^8.0.2",
"ts-node": "6.2.0",
"typescript": "^5.1.2",
"url": "^0.11.0",
"webpack": "^5.76.0",
"webpack-cli": "^4.10.0",
"wrapper-webpack-plugin": "^2.2.0"
},
"private": true,
"scripts": {
"asar": "asar",
"generate-version-json": "node script/generate-version-json.js",
"lint": "node ./script/lint.js && npm run lint:docs",
"lint:js": "node ./script/lint.js --js",
"lint:clang-format": "python3 script/run-clang-format.py -r -c shell/ || (echo \"\\nCode not formatted correctly.\" && exit 1)",
"lint:clang-tidy": "ts-node ./script/run-clang-tidy.ts",
"lint:cpp": "node ./script/lint.js --cc",
"lint:objc": "node ./script/lint.js --objc",
"lint:py": "node ./script/lint.js --py",
"lint:gn": "node ./script/lint.js --gn",
"lint:docs": "remark docs -qf && npm run lint:js-in-markdown && npm run create-typescript-definitions && npm run lint:ts-check-js-in-markdown && npm run lint:docs-fiddles && npm run lint:docs-relative-links && npm run lint:markdown",
"lint:docs-fiddles": "standard \"docs/fiddles/**/*.js\"",
"lint:docs-relative-links": "electron-lint-markdown-links --root docs \"**/*.md\"",
"lint:markdown": "node ./script/lint.js --md",
"lint:ts-check-js-in-markdown": "electron-lint-markdown-ts-check --root docs \"**/*.md\" --ignore \"breaking-changes.md\"",
"lint:js-in-markdown": "electron-lint-markdown-standard --root docs \"**/*.md\"",
"create-api-json": "node script/create-api-json.js",
"create-typescript-definitions": "npm run create-api-json && electron-typescript-definitions --api=electron-api.json && node spec/ts-smoke/runner.js",
"gn-typescript-definitions": "npm run create-typescript-definitions && shx cp electron.d.ts",
"pre-flight": "pre-flight",
"gn-check": "node ./script/gn-check.js",
"gn-format": "python3 script/run-gn-format.py",
"precommit": "lint-staged",
"preinstall": "node -e 'process.exit(0)'",
"pretest": "npm run create-typescript-definitions",
"prepack": "check-for-leaks",
"repl": "node ./script/start.js --interactive",
"start": "node ./script/start.js",
"test": "node ./script/spec-runner.js",
"tsc": "tsc",
"webpack": "webpack"
},
"license": "MIT",
"author": "Electron Community",
"keywords": [
"electron"
],
"lint-staged": {
"*.{js,ts}": [
"node script/lint.js --js --fix --only --"
],
"*.{js,ts,d.ts}": [
"ts-node script/gen-filenames.ts"
],
"*.{cc,mm,c,h}": [
"python3 script/run-clang-format.py -r -c --fix"
],
"*.md": [
"npm run lint:docs"
],
"*.{gn,gni}": [
"npm run gn-check",
"npm run gn-format"
],
"*.py": [
"node script/lint.js --py --fix --only --"
],
"docs/api/**/*.md": [
"ts-node script/gen-filenames.ts",
"electron-markdownlint --config .markdownlint.autofix.json --fix",
"git add filenames.auto.gni"
],
"{*.patch,.patches}": [
"node script/lint.js --patches --only --",
"ts-node script/check-patch-diff.ts"
],
"DEPS": [
"node script/gen-hunspell-filenames.js",
"node script/gen-libc++-filenames.js"
]
},
"resolutions": {
"nan": "nodejs/nan#16fa32231e2ccd89d2804b3f765319128b20c4ac"
}
}

View file

@ -1,89 +0,0 @@
--- BUILD.gn.orig 2023-10-25 09:13:44 UTC
+++ BUILD.gn
@@ -61,7 +61,7 @@ declare_args() {
root_extra_deps = []
}
-if (is_official_build) {
+if (is_official_build && !is_bsd) {
# An official (maximally optimized!) component (optimized for build times)
# build doesn't make sense and usually doesn't work.
assert(!is_component_build)
@@ -95,7 +95,6 @@ group("gn_all") {
"//codelabs",
"//components:components_unittests",
"//components/gwp_asan:gwp_asan_unittests",
- "//infra/orchestrator:orchestrator_all",
"//net:net_unittests",
"//sandbox:sandbox_unittests",
"//services:services_unittests",
@@ -417,7 +416,7 @@ group("gn_all") {
}
}
- if (is_linux || is_chromeos || is_android) {
+ if ((is_linux && !is_bsd) || is_chromeos || is_android) {
deps += [
"//third_party/breakpad:breakpad_unittests",
"//third_party/breakpad:core-2-minidump",
@@ -617,6 +616,15 @@ group("gn_all") {
}
}
+ if (is_bsd) {
+ deps -= [
+ "//third_party/breakpad:dump_syms($host_toolchain)",
+ "//third_party/breakpad:microdump_stackwalk($host_toolchain)",
+ "//third_party/breakpad:minidump_dump($host_toolchain)",
+ "//third_party/breakpad:minidump_stackwalk($host_toolchain)",
+ ]
+ }
+
if (is_mac) {
deps += [
"//third_party/breakpad:dump_syms",
@@ -666,7 +674,7 @@ group("gn_all") {
host_os == "win") {
deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
}
- } else if (!is_android && !is_ios && !is_fuchsia) {
+ } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) {
deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
}
@@ -1097,7 +1105,7 @@ if (use_blink && !is_cronet_build) {
]
}
- if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos) {
+ if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos && !is_bsd) {
script_test("webdriver_wpt_tests") {
script = "//third_party/blink/tools/run_wpt_tests.py"
args = [
@@ -1187,7 +1195,7 @@ if (use_blink && !is_cronet_build) {
data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ]
}
- if (!is_win && !is_android) {
+ if (!is_win && !is_android && !is_bsd) {
data_deps +=
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
}
@@ -1196,7 +1204,7 @@ if (use_blink && !is_cronet_build) {
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
}
- if (is_linux || is_chromeos) {
+ if ((is_linux && !is_bsd) || is_chromeos) {
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
}
@@ -1656,7 +1664,7 @@ group("chromium_builder_perf") {
data_deps += [ "//chrome/test:performance_browser_tests" ]
}
- if (!is_win) {
+ if (!is_win && !is_bsd) {
data_deps +=
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
}

View file

@ -1,11 +0,0 @@
--- apps/ui/views/app_window_frame_view.cc.orig 2022-07-22 17:30:31 UTC
+++ apps/ui/views/app_window_frame_view.cc
@@ -137,7 +137,7 @@ gfx::Rect AppWindowFrameView::GetWindowBoundsForClient
gfx::Rect window_bounds = client_bounds;
// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
// complete.
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Get the difference between the widget's client area bounds and window
// bounds, and grow |window_bounds| by that amount.
gfx::Insets native_frame_insets =

View file

@ -1,14 +0,0 @@
--- ash/display/mirror_window_controller.cc.orig 2023-10-19 19:57:56 UTC
+++ ash/display/mirror_window_controller.cc
@@ -294,7 +294,11 @@ void MirrorWindowController::UpdateWindow(
if (!base::Contains(display_info_list, iter->first,
&display::ManagedDisplayInfo::id)) {
CloseAndDeleteHost(iter->second, true);
+#if defined(__llvm__)
+ mirroring_host_info_map_.erase(iter++);
+#else
iter = mirroring_host_info_map_.erase(iter);
+#endif
} else {
++iter;
}

View file

@ -1,143 +0,0 @@
--- base/BUILD.gn.orig 2023-10-25 09:13:45 UTC
+++ base/BUILD.gn
@@ -198,7 +198,7 @@ buildflag_header("ios_cronet_buildflags") {
flags = [ "CRONET_BUILD=$is_cronet_build" ]
}
-enable_message_pump_epoll = is_linux || is_chromeos || is_android
+enable_message_pump_epoll = (is_linux || is_chromeos || is_android) && !is_bsd
buildflag_header("message_pump_buildflags") {
header = "message_pump_buildflags.h"
header_dir = "base/message_loop"
@@ -1112,11 +1112,23 @@ component("base") {
# Needed for <atomic> if using newer C++ library than sysroot, except if
# building inside the cros_sdk environment - use host_toolchain as a
# more robust check for this.
- if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
+ if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos && !is_bsd)) &&
host_toolchain != "//build/toolchain/cros:host") {
libs += [ "atomic" ]
}
+ # *BSD needs libkvm
+ if (is_bsd) {
+ libs += [ "kvm" ]
+ }
+
+ if (is_freebsd) {
+ libs += [
+ "execinfo",
+ "util",
+ ]
+ }
+
if (use_allocator_shim) {
if (is_apple) {
sources += [ "allocator/early_zone_registration_apple.h" ]
@@ -1136,7 +1148,7 @@ component("base") {
# Allow more direct string conversions on platforms with native utf8
# strings
- if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
+ if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) {
defines += [ "SYSTEM_NATIVE_UTF8" ]
}
@@ -2081,6 +2093,22 @@ component("base") {
]
}
+ if (is_openbsd) {
+ sources += [
+ "process/process_handle_openbsd.cc",
+ "process/process_iterator_openbsd.cc",
+ "process/process_metrics_openbsd.cc",
+ "system/sys_info_openbsd.cc",
+ ]
+ } else if (is_freebsd) {
+ sources += [
+ "process/process_handle_freebsd.cc",
+ "process/process_iterator_freebsd.cc",
+ "process/process_metrics_freebsd.cc",
+ "system/sys_info_freebsd.cc",
+ ]
+ }
+
# iOS
if (is_ios) {
sources += [
@@ -2213,6 +2241,29 @@ component("base") {
}
}
+ if (is_bsd) {
+ sources -= [
+ "files/file_path_watcher_inotify.cc",
+ "files/scoped_file_linux.cc",
+ "system/sys_info_linux.cc",
+ "process/process_iterator_linux.cc",
+ "process/process_linux.cc",
+ "process/process_metrics_linux.cc",
+ "process/process_handle_linux.cc",
+ "profiler/stack_copier_signal.cc",
+ "profiler/stack_copier_signal.h",
+ "profiler/thread_delegate_posix.cc",
+ "profiler/thread_delegate_posix.h",
+ "threading/platform_thread_linux.cc",
+ ]
+ sources += [
+ "files/file_path_watcher_kqueue.cc",
+ "files/file_path_watcher_kqueue.h",
+ "files/file_path_watcher_bsd.cc",
+ "threading/platform_thread_bsd.cc",
+ ]
+ }
+
if (use_blink) {
sources += [
"files/file_path_watcher.cc",
@@ -2223,7 +2274,7 @@ component("base") {
}
if (dep_libevent) {
- deps += [ "//third_party/libevent" ]
+ public_deps += [ "//third_party/libevent" ]
}
if (use_libevent) {
@@ -3597,7 +3648,7 @@ test("base_unittests") {
]
}
- if (is_linux || is_chromeos) {
+ if ((is_linux || is_chromeos) && !is_bsd) {
sources += [
"debug/proc_maps_linux_unittest.cc",
"files/scoped_file_linux_unittest.cc",
@@ -3618,7 +3669,7 @@ test("base_unittests") {
"posix/file_descriptor_shuffle_unittest.cc",
"posix/unix_domain_socket_unittest.cc",
]
- if (!is_nacl && !is_apple) {
+ if (!is_nacl && !is_apple && !is_bsd) {
sources += [
"profiler/stack_base_address_posix_unittest.cc",
"profiler/stack_copier_signal_unittest.cc",
@@ -3629,7 +3680,7 @@ test("base_unittests") {
# Allow more direct string conversions on platforms with native utf8
# strings
- if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
+ if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) {
defines += [ "SYSTEM_NATIVE_UTF8" ]
}
@@ -3885,7 +3936,7 @@ test("base_unittests") {
}
}
- if (is_fuchsia || is_linux || is_chromeos) {
+ if ((is_fuchsia || is_linux || is_chromeos) && !is_bsd) {
sources += [
"debug/elf_reader_unittest.cc",
"debug/test_elf_image_builder.cc",

View file

@ -1,11 +0,0 @@
--- base/allocator/dispatcher/tls.h.orig 2023-05-25 00:41:37 UTC
+++ base/allocator/dispatcher/tls.h
@@ -50,7 +50,7 @@ struct BASE_EXPORT MMapAllocator {
partition_alloc::PartitionPageSize();
#elif BUILDFLAG(IS_APPLE)
constexpr static size_t AllocationChunkSize = 16384;
-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
constexpr static size_t AllocationChunkSize = 16384;
#else
constexpr static size_t AllocationChunkSize = 4096;

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/BUILD.gn.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/BUILD.gn
@@ -562,7 +562,7 @@ source_set("allocator_shim") {
]
configs += [ ":mac_no_default_new_delete_symbols" ]
}
- if (is_chromeos || is_linux) {
+ if ((is_chromeos || is_linux) && !is_bsd) {
sources += [
"shim/allocator_shim_override_cpp_symbols.h",
"shim/allocator_shim_override_glibc_weak_symbols.h",

View file

@ -1,20 +0,0 @@
--- base/allocator/partition_allocator/address_space_randomization.h.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/address_space_randomization.h
@@ -38,7 +38,7 @@ AslrMask(uintptr_t bits) {
#if defined(ARCH_CPU_64_BITS)
- #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
+ #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !BUILDFLAG(IS_BSD)
// We shouldn't allocate system pages at all for sanitizer builds. However,
// we do, and if random hint addresses interfere with address ranges
@@ -124,7 +124,7 @@ AslrMask(uintptr_t bits) {
return AslrAddress(0x20000000ULL);
}
- #elif BUILDFLAG(IS_LINUX)
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// Linux on arm64 can use 39, 42, 48, or 52-bit user space, depending on
// page size and number of levels of translation pages used. We use

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/page_allocator.h.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/page_allocator.h
@@ -258,7 +258,7 @@ void DecommitAndZeroSystemPages(void* address,
// recommitted. Do not assume that this will not change over time.
constexpr PA_COMPONENT_EXPORT(
PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
return false;
#else
return true;

View file

@ -1,38 +0,0 @@
--- base/allocator/partition_allocator/page_allocator_constants.h.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/page_allocator_constants.h
@@ -25,7 +25,7 @@
// elimination.
#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
// This should work for all POSIX (if needed), but currently all other
// supported OS/architecture combinations use either hard-coded values
// (such as x86) or have means to determine these values without needing
@@ -92,7 +92,7 @@ PageAllocationGranularityShift() {
return 14; // 16kB
#elif BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)
return static_cast<size_t>(vm_page_shift);
-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
// arm64 supports 4kb (shift = 12), 16kb (shift = 14), and 64kb (shift = 16)
// page sizes. Retrieve from or initialize cache.
size_t shift = page_characteristics.shift.load(std::memory_order_relaxed);
@@ -113,7 +113,7 @@ PageAllocationGranularity() {
// This is literally equivalent to |1 << PageAllocationGranularityShift()|
// below, but was separated out for IS_APPLE to avoid << on a non-constexpr.
return vm_page_size;
-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
// arm64 supports 4kb, 16kb, and 64kb page sizes. Retrieve from or
// initialize cache.
size_t size = page_characteristics.size.load(std::memory_order_relaxed);
@@ -152,7 +152,7 @@ SystemPageShift() {
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
SystemPageSize() {
#if (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
- (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64))
// This is literally equivalent to |1 << SystemPageShift()| below, but was
// separated out for 64-bit IS_APPLE and arm64 on Linux to avoid << on a
// non-constexpr.

View file

@ -1,16 +0,0 @@
--- base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/page_allocator_internals_posix.h
@@ -403,8 +403,12 @@ bool TryRecommitSystemPagesInternal(
void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
void* ptr = reinterpret_cast<void*>(address);
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+#if BUILDFLAG(IS_BSD)
+ int ret = madvise(ptr, length, MADV_FREE);
+#else
int ret = madvise(ptr, length, MADV_FREE_REUSABLE);
+#endif
if (ret) {
// MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED.
ret = madvise(ptr, length, MADV_DONTNEED);

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/partition_address_space.cc.orig 2023-08-10 01:48:30 UTC
+++ base/allocator/partition_allocator/partition_address_space.cc
@@ -420,7 +420,7 @@ void PartitionAddressSpace::UninitThreadIsolatedPoolFo
}
#endif
-#if BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
PageCharacteristics page_characteristics;

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc.gni.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/partition_alloc.gni
@@ -328,7 +328,7 @@ declare_args() {
# pkeys support is explicitly disabled in all Cronet builds, as some test
# dependencies that use partition_allocator are compiled in AOSP against a
# version of glibc that does not include pkeys syscall numbers.
- enable_pkeys = is_linux && target_cpu == "x64" && !is_cronet_build
+ enable_pkeys = (is_linux && !is_bsd) && target_cpu == "x64" && !is_cronet_build
}
assert(!enable_pkeys || (is_linux && target_cpu == "x64"),
"Pkeys are only supported on x64 linux")

View file

@ -1,32 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h.orig 2023-05-25 00:41:37 UTC
+++ base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h
@@ -24,9 +24,9 @@
// Annotate a function indicating it should not be inlined.
// Use like:
// NOINLINE void DoStuff() { ... }
-#if defined(__clang__) && PA_HAS_ATTRIBUTE(noinline)
+#if defined(__clang__) && (__clang_major__ >= 15) && PA_HAS_ATTRIBUTE(noinline)
#define PA_NOINLINE [[clang::noinline]]
-#elif defined(COMPILER_GCC) && PA_HAS_ATTRIBUTE(noinline)
+#elif (defined(COMPILER_GCC) || defined(__clang__)) && PA_HAS_ATTRIBUTE(noinline)
#define PA_NOINLINE __attribute__((noinline))
#elif defined(COMPILER_MSVC)
#define PA_NOINLINE __declspec(noinline)
@@ -34,7 +34,7 @@
#define PA_NOINLINE
#endif
-#if defined(__clang__) && defined(NDEBUG) && PA_HAS_ATTRIBUTE(always_inline)
+#if defined(__clang__) && (__clang_major__ >= 15) && defined(NDEBUG) && PA_HAS_ATTRIBUTE(always_inline)
#define PA_ALWAYS_INLINE [[clang::always_inline]] inline
#elif defined(COMPILER_GCC) && defined(NDEBUG) && \
PA_HAS_ATTRIBUTE(always_inline)
@@ -53,7 +53,7 @@
// prevent code folding, see NO_CODE_FOLDING() in base/debug/alias.h.
// Use like:
// void NOT_TAIL_CALLED FooBar();
-#if defined(__clang__) && PA_HAS_ATTRIBUTE(not_tail_called)
+#if defined(__clang__) && (__clang_major__ >= 15) && PA_HAS_ATTRIBUTE(not_tail_called)
#define PA_NOT_TAIL_CALLED [[clang::not_tail_called]]
#else
#define PA_NOT_TAIL_CALLED

View file

@ -1,34 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_base/debug/stack_trace_posix.cc.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/partition_alloc_base/debug/stack_trace_posix.cc
@@ -12,11 +12,11 @@
#include <string.h>
#include <unistd.h>
-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_APPLE)
+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
#include <link.h> // For ElfW() macro.
#endif
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
#define HAVE_DLADDR
#include <dlfcn.h>
#endif
@@ -25,7 +25,7 @@ namespace partition_alloc::internal::base::debug {
namespace {
-#if !BUILDFLAG(IS_APPLE)
+#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
constexpr size_t kBufferSize = 4096u;
@@ -359,7 +359,7 @@ void PrintStackTraceInternal(void* const* trace, size_
}
#endif // !BUILDFLAG(IS_APPLE)
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
// Since /proc/self/maps is not available, use dladdr() to obtain module
// names and offsets inside the modules from the given addresses.
void PrintStackTraceInternal(void* const* trace, size_t size) {

View file

@ -1,13 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc
@@ -90,6 +90,10 @@ void RandBytes(void* output, size_t output_length) {
if (getentropy(output, output_length) == 0) {
return;
}
+#elif BUILDFLAG(IS_BSD)
+ if (getentropy(output, output_length) == 0) {
+ return;
+ }
#endif
// If getrandom(2) above returned with an error and the /dev/urandom fallback
// took place on Linux/ChromeOS bots, they would fail with a CHECK in

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_internal_posix.h.orig 2022-07-22 17:30:31 UTC
+++ base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_internal_posix.h
@@ -10,7 +10,7 @@
namespace partition_alloc::internal::base::internal {
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Current thread id is cached in thread local storage for performance reasons.
// In some rare cases it's important to invalidate that cache explicitly (e.g.
// after going through clone() syscall which does not call pthread_atfork()

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc.orig 2022-07-22 17:30:31 UTC
+++ base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc
@@ -17,7 +17,7 @@
#include "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_internal_posix.h"
#include "build/build_config.h"
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <sys/syscall.h>
#include <atomic>
#endif

View file

@ -1,29 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_config.h.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/partition_alloc_config.h
@@ -94,7 +94,7 @@ static_assert(sizeof(void*) != 8, "");
// POSIX is not only UNIX, e.g. macOS and other OSes. We do use Linux-specific
// features such as futex(2).
#define PA_CONFIG_HAS_LINUX_KERNEL() \
- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID))
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD))
// On some platforms, we implement locking by spinning in userspace, then going
// into the kernel only if there is contention. This requires platform support,
@@ -237,7 +237,7 @@ constexpr bool kUseLazyCommit = false;
// On these platforms, lock all the partitions before fork(), and unlock after.
// This may be required on more platforms in the future.
#define PA_CONFIG_HAS_ATFORK_HANDLER() \
- (BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
+ (BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
// PartitionAlloc uses PartitionRootEnumerator to acquire all
// PartitionRoots at BeforeFork and to release at AfterFork.
@@ -284,7 +284,7 @@ constexpr bool kUseLazyCommit = false;
// Also enabled on ARM64 macOS, as the 16kiB pages on this platform lead to
// larger slot spans.
#define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() \
- (BUILDFLAG(IS_LINUX) || (BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64)))
+ (BUILDFLAG(IS_LINUX) || (BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64)) || BUILDFLAG(IS_BSD))
// Enable shadow metadata.
//

View file

@ -1,21 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_constants.h.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/partition_alloc_constants.h
@@ -95,7 +95,7 @@ PartitionPageShift() {
return 18; // 256 KiB
}
#elif (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
- (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64))
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
PartitionPageShift() {
return PageAllocationGranularityShift() + 2;
@@ -297,7 +297,8 @@ constexpr size_t kNumPools = kMaxPoolHandle - 1;
// 8GB for each of the glued pools).
#if BUILDFLAG(HAS_64_BIT_POINTERS)
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || \
- BUILDFLAG(ENABLE_POINTER_COMPRESSION)
+ BUILDFLAG(ENABLE_POINTER_COMPRESSION) || \
+ BUILDFLAG(IS_BSD)
constexpr size_t kPoolMaxSize = 8 * kGiB;
#else
constexpr size_t kPoolMaxSize = 16 * kGiB;

View file

@ -1,16 +0,0 @@
--- base/allocator/partition_allocator/partition_alloc_forward.h.orig 2023-08-10 01:48:30 UTC
+++ base/allocator/partition_allocator/partition_alloc_forward.h
@@ -28,9 +28,13 @@ namespace internal {
// the second one 16. We could technically return something different for
// malloc() and operator new(), but this would complicate things, and most of
// our allocations are presumably coming from operator new() anyway.
+#if defined(__i386__) && defined(OS_FREEBSD)
+constexpr size_t kAlignment = 8;
+#else
constexpr size_t kAlignment =
std::max(alignof(max_align_t),
static_cast<size_t>(__STDCPP_DEFAULT_NEW_ALIGNMENT__));
+#endif
static_assert(kAlignment <= 16,
"PartitionAlloc doesn't support a fundamental alignment larger "
"than 16 bytes.");

View file

@ -1,11 +0,0 @@
--- base/allocator/partition_allocator/partition_page_constants.h.orig 2023-08-10 01:48:30 UTC
+++ base/allocator/partition_allocator/partition_page_constants.h
@@ -16,7 +16,7 @@ namespace partition_alloc::internal {
// (1 << 12 or 1 << 14), as checked in PartitionRoot::Init(). And
// PartitionPageSize() is 4 times the OS page size.
static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
// System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
// currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
// so we use the 16 kiB maximum (64 kiB will crash).

View file

@ -1,38 +0,0 @@
--- base/allocator/partition_allocator/partition_root.cc.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/partition_root.cc
@@ -47,7 +47,7 @@
#include "wow64apiset.h"
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <pthread.h>
#endif
@@ -281,7 +281,7 @@ void PartitionAllocMallocInitOnce() {
return;
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// When fork() is called, only the current thread continues to execute in the
// child process. If the lock is held, but *not* by this thread when fork() is
// called, we have a deadlock.
@@ -379,7 +379,7 @@ static size_t PartitionPurgeSlotSpan(PartitionRoot* ro
constexpr size_t kMaxSlotCount =
(PartitionPageSize() * kMaxPartitionPagesPerRegularSlotSpan) /
MinPurgeableSlotSize();
-#elif BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
+#elif BUILDFLAG(IS_APPLE) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64))
// It's better for slot_usage to be stack-allocated and fixed-size, which
// demands that its size be constexpr. On IS_APPLE and Linux on arm64,
// PartitionPageSize() is always SystemPageSize() << 2, so regardless of
@@ -948,7 +948,7 @@ void PartitionRoot::Init(PartitionOptions opts) {
// apple OSes.
PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) ||
(internal::SystemPageSize() == (size_t{1} << 14)));
-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
// Check runtime pagesize. Though the code is currently the same, it is
// not merged with the IS_APPLE case above as a 1 << 16 case needs to be
// added here in the future, to allow 64 kiB pagesize. That is only

View file

@ -1,53 +0,0 @@
--- base/allocator/partition_allocator/spinning_mutex.cc.orig 2023-05-25 00:41:37 UTC
+++ base/allocator/partition_allocator/spinning_mutex.cc
@@ -18,7 +18,16 @@
#if PA_CONFIG(HAS_LINUX_KERNEL)
#include <errno.h>
+#if defined(OS_OPENBSD)
+#include <sys/time.h>
+#include <sys/futex.h>
+#elif defined(OS_FREEBSD)
+#include <sys/types.h>
+#include <sys/thr.h>
+#include <sys/umtx.h>
+#else
#include <linux/futex.h>
+#endif
#include <sys/syscall.h>
#include <unistd.h>
#endif // PA_CONFIG(HAS_LINUX_KERNEL)
@@ -108,8 +117,16 @@ void SpinningMutex::FutexWait() {
// |kLockedContended| anymore. Note that even without spurious wakeups, the
// value of |state_| is not guaranteed when this returns, as another thread
// may get the lock before we get to run.
+#if defined(OS_FREEBSD)
+ int err = _umtx_op(&state_, UMTX_OP_WAIT_UINT_PRIVATE,
+ kLockedContended, nullptr, nullptr);
+#elif defined(OS_OPENBSD)
+ int err = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+ kLockedContended, nullptr, nullptr);
+#else
int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
kLockedContended, nullptr, nullptr, 0);
+#endif
if (err) {
// These are programming error, check them.
@@ -121,8 +138,16 @@ void SpinningMutex::FutexWait() {
void SpinningMutex::FutexWake() {
int saved_errno = errno;
+#if defined(OS_FREEBSD)
+ long retval = _umtx_op(&state_, UMTX_OP_WAKE_PRIVATE,
+ 1 /* wake up a single waiter */, nullptr, nullptr);
+#elif defined(OS_OPENBSD)
+ long retval = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+ 1 /* wake up a single waiter */, nullptr, nullptr);
+#else
long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
1 /* wake up a single waiter */, nullptr, nullptr, 0);
+#endif
PA_CHECK(retval != -1);
errno = saved_errno;
}

View file

@ -1,50 +0,0 @@
--- base/allocator/partition_allocator/starscan/stack/stack.cc.orig 2023-10-19 19:57:58 UTC
+++ base/allocator/partition_allocator/starscan/stack/stack.cc
@@ -18,6 +18,10 @@
#include <pthread.h>
#endif
+#if BUILDFLAG(IS_BSD)
+#include <pthread_np.h>
+#endif
+
#if defined(LIBC_GLIBC)
extern "C" void* __libc_stack_end;
#endif
@@ -48,6 +52,36 @@ void* GetStackTop() {
void* GetStackTop() {
return pthread_get_stackaddr_np(pthread_self());
+}
+
+#elif defined(OS_OPENBSD)
+
+void* GetStackTop() {
+ stack_t ss;
+ if (pthread_stackseg_np(pthread_self(), &ss) != 0)
+ return nullptr;
+ return reinterpret_cast<uint8_t*>(ss.ss_sp);
+}
+
+#elif defined(OS_FREEBSD)
+
+void* GetStackTop() {
+ pthread_attr_t attr;
+ int error = pthread_attr_init(&attr);
+ if (error) {
+ return nullptr;
+ }
+ error = pthread_attr_get_np(pthread_self(), &attr);
+ if (!error) {
+ void* base;
+ size_t size;
+ error = pthread_attr_getstack(&attr, &base, &size);
+ PA_CHECK(!error);
+ pthread_attr_destroy(&attr);
+ return reinterpret_cast<uint8_t*>(base) + size;
+ }
+ pthread_attr_destroy(&attr);
+ return nullptr;
}
#elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)

View file

@ -1,14 +0,0 @@
--- base/atomicops.h.orig 2023-03-30 00:33:38 UTC
+++ base/atomicops.h
@@ -71,7 +71,11 @@ typedef intptr_t Atomic64;
// Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or
// Atomic64 routines below, depending on your architecture.
+#if !defined(OS_OPENBSD) && defined(__i386__)
+typedef Atomic32 AtomicWord;
+#else
typedef intptr_t AtomicWord;
+#endif
// Atomically execute:
// result = *ptr;

View file

@ -1,98 +0,0 @@
--- base/base_paths_posix.cc.orig 2022-02-28 16:54:41 UTC
+++ base/base_paths_posix.cc
@@ -15,6 +15,7 @@
#include <ostream>
#include <string>
+#include "base/command_line.h"
#include "base/environment.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
@@ -25,9 +26,13 @@
#include "base/process/process_metrics.h"
#include "build/build_config.h"
-#if BUILDFLAG(IS_FREEBSD)
+#if BUILDFLAG(IS_BSD)
#include <sys/param.h>
#include <sys/sysctl.h>
+#if BUILDFLAG(IS_OPENBSD)
+#include <kvm.h>
+#define MAXTOKENS 2
+#endif
#elif BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_AIX)
#include <stdlib.h>
#endif
@@ -68,13 +73,65 @@ bool PathProviderPosix(int key, FilePath* result) {
*result = FilePath(bin_dir);
return true;
#elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_AIX)
- // There is currently no way to get the executable path on OpenBSD
- char* cpath;
- if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
- *result = FilePath(cpath);
- else
- *result = FilePath("/usr/local/chrome/chrome");
- return true;
+ char *cpath;
+#if !BUILDFLAG(IS_AIX)
+ struct kinfo_file *files;
+ kvm_t *kd = NULL;
+ char errbuf[_POSIX2_LINE_MAX];
+ static char retval[PATH_MAX];
+ int cnt;
+ struct stat sb;
+ pid_t cpid = getpid();
+ bool ret = false;
+
+ const base::CommandLine* command_line =
+ base::CommandLine::ForCurrentProcess();
+
+ VLOG(1) << "PathProviderPosix argv: " << command_line->argv()[0];
+
+ if (realpath(command_line->argv()[0].c_str(), retval) == NULL)
+ goto out;
+
+ if (stat(command_line->argv()[0].c_str(), &sb) < 0)
+ goto out;
+
+ if (!command_line->HasSwitch("no-sandbox")) {
+ ret = true;
+ *result = FilePath(retval);
+ VLOG(1) << "PathProviderPosix (sandbox) result: " << retval;
+ goto out;
+ }
+
+ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL)
+ goto out;
+
+ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid,
+ sizeof(struct kinfo_file), &cnt)) == NULL)
+ goto out;
+
+ for (int i = 0; i < cnt; i++) {
+ if (files[i].fd_fd == KERN_FILE_TEXT &&
+ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
+ files[i].va_fileid == sb.st_ino) {
+ ret = true;
+ *result = FilePath(retval);
+ VLOG(1) << "PathProviderPosix result: " << retval;
+ }
+ }
+out:
+ if (kd)
+ kvm_close(kd);
+ if (!ret) {
+#endif
+ if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
+ *result = FilePath(cpath);
+ else
+ *result = FilePath("/usr/local/chrome/chrome");
+ return true;
+#if !BUILDFLAG(IS_AIX)
+ }
+ return ret;
+#endif
#endif
}
case DIR_SRC_TEST_DATA_ROOT: {

View file

@ -1,11 +0,0 @@
--- base/base_switches.cc.orig 2023-10-19 19:57:58 UTC
+++ base/base_switches.cc
@@ -180,7 +180,7 @@ const char kPackageVersionName[] = "package-version-na
const char kPackageVersionCode[] = "package-version-code";
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when
// Crashpad is fully enabled on Linux. Indicates that Crashpad should be
// enabled.

View file

@ -1,11 +0,0 @@
--- base/base_switches.h.orig 2023-10-19 19:57:58 UTC
+++ base/base_switches.h
@@ -62,7 +62,7 @@ extern const char kPackageVersionName[];
extern const char kPackageVersionCode[];
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when
// Crashpad is fully enabled on Linux.
extern const char kEnableCrashpad[];

View file

@ -1,35 +0,0 @@
--- base/compiler_specific.h.orig 2023-05-25 00:41:37 UTC
+++ base/compiler_specific.h
@@ -41,9 +41,9 @@
// Annotate a function indicating it should not be inlined.
// Use like:
// NOINLINE void DoStuff() { ... }
-#if defined(__clang__) && HAS_ATTRIBUTE(noinline)
+#if defined(__clang__) && (__clang_major__ >= 15) && HAS_ATTRIBUTE(noinline)
#define NOINLINE [[clang::noinline]]
-#elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline)
+#elif (defined(COMPILER_GCC) || defined(__clang__)) && HAS_ATTRIBUTE(noinline)
#define NOINLINE __attribute__((noinline))
#elif defined(COMPILER_MSVC)
#define NOINLINE __declspec(noinline)
@@ -51,9 +51,9 @@
#define NOINLINE
#endif
-#if defined(__clang__) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
+#if defined(__clang__) && (__clang_major__ >= 15) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
#define ALWAYS_INLINE [[clang::always_inline]] inline
-#elif defined(COMPILER_GCC) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
+#elif (defined(COMPILER_GCC) || defined(__clang__)) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
#define ALWAYS_INLINE inline __attribute__((__always_inline__))
#elif defined(COMPILER_MSVC) && defined(NDEBUG)
#define ALWAYS_INLINE __forceinline
@@ -69,7 +69,7 @@
// prevent code folding, see NO_CODE_FOLDING() in base/debug/alias.h.
// Use like:
// NOT_TAIL_CALLED void FooBar();
-#if defined(__clang__) && HAS_ATTRIBUTE(not_tail_called)
+#if defined(__clang__) && (__clang_major__ >= 15) && HAS_ATTRIBUTE(not_tail_called)
#define NOT_TAIL_CALLED [[clang::not_tail_called]]
#else
#define NOT_TAIL_CALLED

View file

@ -1,68 +0,0 @@
--- base/debug/debugger_posix.cc.orig 2022-04-21 18:48:31 UTC
+++ base/debug/debugger_posix.cc
@@ -35,6 +35,10 @@
#include <sys/sysctl.h>
#endif
+#if BUILDFLAG(IS_OPENBSD)
+#include <sys/proc.h>
+#endif
+
#if BUILDFLAG(IS_FREEBSD)
#include <sys/user.h>
#endif
@@ -95,32 +99,51 @@ bool BeingDebugged() {
// Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and
// binary interfaces may change.
+#if BUILDFLAG(IS_OPENBSD)
+ struct kinfo_proc *info;
+ size_t info_size;
+#else
struct kinfo_proc info;
size_t info_size = sizeof(info);
+#endif
#if BUILDFLAG(IS_OPENBSD)
if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
return -1;
mib[5] = (info_size / sizeof(struct kinfo_proc));
+ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) {
+ is_set = true;
+ being_debugged = false;
+ return being_debugged;
+ }
+
+ int sysctl_result = sysctl(mib, std::size(mib), info, &info_size, NULL, 0);
#endif
+#if !BUILDFLAG(IS_OPENBSD)
int sysctl_result = sysctl(mib, std::size(mib), &info, &info_size, NULL, 0);
+#endif
DCHECK_EQ(sysctl_result, 0);
if (sysctl_result != 0) {
is_set = true;
being_debugged = false;
- return being_debugged;
+ goto out;
}
// This process is being debugged if the P_TRACED flag is set.
is_set = true;
#if BUILDFLAG(IS_FREEBSD)
being_debugged = (info.ki_flag & P_TRACED) != 0;
-#elif BUILDFLAG(IS_BSD)
- being_debugged = (info.p_flag & P_TRACED) != 0;
+#elif BUILDFLAG(IS_OPENBSD)
+ being_debugged = (info->p_psflags & PS_TRACED) != 0;
#else
being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
+#endif
+
+out:
+#if BUILDFLAG(IS_OPENBSD)
+ free(info);
#endif
return being_debugged;
}

View file

@ -1,18 +0,0 @@
--- base/debug/elf_reader.cc.orig 2023-10-19 19:57:58 UTC
+++ base/debug/elf_reader.cc
@@ -78,6 +78,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base,
bool found = false;
while (current_section < section_end) {
current_note = reinterpret_cast<const Nhdr*>(current_section);
+#if !BUILDFLAG(IS_BSD)
if (current_note->n_type == NT_GNU_BUILD_ID) {
StringPiece note_name(current_section + sizeof(Nhdr),
current_note->n_namesz);
@@ -87,6 +88,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base,
break;
}
}
+#endif
size_t section_size = bits::AlignUp(current_note->n_namesz, 4u) +
bits::AlignUp(current_note->n_descsz, 4u) +

View file

@ -1,11 +0,0 @@
--- base/debug/proc_maps_linux.cc.orig 2022-02-28 16:54:41 UTC
+++ base/debug/proc_maps_linux.cc
@@ -13,7 +13,7 @@
#include "base/strings/string_split.h"
#include "build/build_config.h"
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#include <inttypes.h>
#endif

View file

@ -1,21 +0,0 @@
--- base/debug/stack_trace.cc.orig 2023-03-30 00:33:38 UTC
+++ base/debug/stack_trace.cc
@@ -273,7 +273,9 @@ void StackTrace::Print() const {
}
void StackTrace::OutputToStream(std::ostream* os) const {
+#if !BUILDFLAG(IS_BSD)
OutputToStreamWithPrefix(os, nullptr);
+#endif
}
std::string StackTrace::ToString() const {
@@ -281,7 +283,7 @@ std::string StackTrace::ToString() const {
}
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
std::stringstream stream;
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD)
OutputToStreamWithPrefix(&stream, prefix_string);
#endif
return stream.str();

View file

@ -1,84 +0,0 @@
--- base/debug/stack_trace_posix.cc.orig 2023-10-19 19:57:58 UTC
+++ base/debug/stack_trace_posix.cc
@@ -41,7 +41,7 @@
// execinfo.h and backtrace(3) are really only present in glibc and in macOS
// libc.
#if BUILDFLAG(IS_APPLE) || \
- (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX))
+ (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX) && !BUILDFLAG(IS_BSD))
#define HAVE_BACKTRACE
#include <execinfo.h>
#endif
@@ -59,7 +59,7 @@
#include <AvailabilityMacros.h>
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/debug/proc_maps_linux.h"
#endif
@@ -300,7 +300,7 @@ void PrintToStderr(const char* output) {
std::ignore = HANDLE_EINTR(write(STDERR_FILENO, output, strlen(output)));
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void AlarmSignalHandler(int signal, siginfo_t* info, void* void_context) {
// We have seen rare cases on AMD linux where the default signal handler
// either does not run or a thread (Probably an AMD driver thread) prevents
@@ -317,7 +317,11 @@ void AlarmSignalHandler(int signal, siginfo_t* info, v
"Warning: Default signal handler failed to terminate process.\n");
PrintToStderr("Calling exit_group() directly to prevent timeout.\n");
// See: https://man7.org/linux/man-pages/man2/exit_group.2.html
+#if BUILDFLAG(IS_BSD)
+ _exit(EXIT_FAILURE);
+#else
syscall(SYS_exit_group, EXIT_FAILURE);
+#endif
}
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
// BUILDFLAG(IS_CHROMEOS)
@@ -534,7 +538,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* inf
_exit(EXIT_FAILURE);
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Set an alarm to trigger in case the default handler does not terminate
// the process. See 'AlarmSignalHandler' for more details.
struct sigaction action;
@@ -559,6 +563,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* inf
// signals that do not re-raise autonomously), such as signals delivered via
// kill() and asynchronous hardware faults such as SEGV_MTEAERR, which would
// otherwise be lost when re-raising the signal via raise().
+#if !BUILDFLAG(IS_BSD)
long retval = syscall(SYS_rt_tgsigqueueinfo, getpid(), syscall(SYS_gettid),
info->si_signo, info);
if (retval == 0) {
@@ -573,6 +578,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* inf
if (errno != EPERM) {
_exit(EXIT_FAILURE);
}
+#endif
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
// BUILDFLAG(IS_CHROMEOS)
@@ -821,6 +827,9 @@ class SandboxSymbolizeHelper {
// for the modules that are loaded in the current process.
// Returns true on success.
bool CacheMemoryRegions() {
+#if BUILDFLAG(IS_BSD)
+ return false;
+#else
// Reads /proc/self/maps.
std::string contents;
if (!ReadProcMaps(&contents)) {
@@ -838,6 +847,7 @@ class SandboxSymbolizeHelper {
is_initialized_ = true;
return true;
+#endif
}
// Opens all object files and caches their file descriptors.

View file

@ -1,39 +0,0 @@
--- base/files/dir_reader_linux.h.orig 2022-08-31 12:19:35 UTC
+++ base/files/dir_reader_linux.h
@@ -16,10 +16,16 @@
#include "base/logging.h"
#include "base/posix/eintr_wrapper.h"
+#include "build/build_config.h"
+
// See the comments in dir_reader_posix.h about this.
namespace base {
+#if BUILDFLAG(IS_BSD)
+#include <dirent.h>
+typedef struct dirent linux_dirent;
+#else
struct linux_dirent {
uint64_t d_ino;
int64_t d_off;
@@ -27,6 +33,7 @@ struct linux_dirent {
unsigned char d_type;
char d_name[0];
};
+#endif
class DirReaderLinux {
public:
@@ -61,7 +68,11 @@ class DirReaderLinux {
if (offset_ != size_)
return true;
+#if BUILDFLAG(IS_BSD)
+ const int r = getdents(fd_, reinterpret_cast<char *>(buf_), sizeof(buf_));
+#else
const long r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_));
+#endif
if (r == 0)
return false;
if (r < 0) {

View file

@ -1,20 +0,0 @@
--- base/files/dir_reader_posix.h.orig 2022-06-17 14:20:10 UTC
+++ base/files/dir_reader_posix.h
@@ -17,7 +17,7 @@
// seems worse than falling back to enumerating all file descriptors so we will
// probably never implement this on the Mac.
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#include "base/files/dir_reader_linux.h"
#else
#include "base/files/dir_reader_fallback.h"
@@ -25,7 +25,7 @@
namespace base {
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
typedef DirReaderLinux DirReaderPosix;
#else
typedef DirReaderFallback DirReaderPosix;

View file

@ -1,11 +0,0 @@
--- base/files/file_path_watcher.h.orig 2023-02-01 18:43:07 UTC
+++ base/files/file_path_watcher.h
@@ -59,7 +59,7 @@ class BASE_EXPORT FilePathWatcher {
Type type = Type::kNonRecursive;
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
- BUILDFLAG(IS_FUCHSIA)
+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// The callback will return the full path to a changed file instead of
// the watched path supplied as |path| when Watch is called.
// So the full path can be different from the watched path when a folder is

View file

@ -1,57 +0,0 @@
--- base/files/file_path_watcher_bsd.cc.orig 2022-10-24 13:33:33 UTC
+++ base/files/file_path_watcher_bsd.cc
@@ -0,0 +1,54 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <memory>
+
+#include "base/files/file_path_watcher.h"
+#include "base/files/file_path_watcher_kqueue.h"
+#include "base/memory/ptr_util.h"
+#include "build/build_config.h"
+
+namespace base {
+
+namespace {
+
+class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate {
+ public:
+ FilePathWatcherImpl() = default;
+ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete;
+ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete;
+ ~FilePathWatcherImpl() override = default;
+
+ bool Watch(const FilePath& path,
+ Type type,
+ const FilePathWatcher::Callback& callback) override {
+ DCHECK(!impl_.get());
+ if (type == Type::kRecursive) {
+ if (!FilePathWatcher::RecursiveWatchAvailable())
+ return false;
+ } else {
+ impl_ = std::make_unique<FilePathWatcherKQueue>();
+ }
+ DCHECK(impl_.get());
+ return impl_->Watch(path, type, callback);
+ }
+
+ void Cancel() override {
+ if (impl_.get())
+ impl_->Cancel();
+ set_cancelled();
+ }
+
+ private:
+ std::unique_ptr<PlatformDelegate> impl_;
+};
+
+} // namespace
+
+FilePathWatcher::FilePathWatcher() {
+ DETACH_FROM_SEQUENCE(sequence_checker_);
+ impl_ = std::make_unique<FilePathWatcherImpl>();
+}
+
+} // namespace base

View file

@ -1,10 +0,0 @@
--- base/files/file_path_watcher_kqueue.h.orig 2022-02-07 13:39:41 UTC
+++ base/files/file_path_watcher_kqueue.h
@@ -5,6 +5,7 @@
#ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
#define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+#include <sys/time.h>
#include <sys/event.h>
#include <memory>

View file

@ -1,29 +0,0 @@
--- base/files/file_path_watcher_unittest.cc.orig 2023-10-19 19:57:58 UTC
+++ base/files/file_path_watcher_unittest.cc
@@ -586,7 +586,7 @@ TEST_F(FilePathWatcherTest, WatchDirectory) {
}
delegate.RunUntilEventsMatch(event_expecter);
-#if !BUILDFLAG(IS_APPLE)
+#if !BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD)
ASSERT_TRUE(WriteFile(file1, "content v2"));
// Mac implementation does not detect files modified in a directory.
// TODO(https://crbug.com/1432064): Expect that no events are fired on Mac.
@@ -1525,7 +1525,7 @@ namespace {
enum Permission { Read, Write, Execute };
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
bool ChangeFilePermissions(const FilePath& path, Permission perm, bool allow) {
struct stat stat_buf;
@@ -1559,7 +1559,7 @@ bool ChangeFilePermissions(const FilePath& path, Permi
} // namespace
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD)
// Linux implementation of FilePathWatcher doesn't catch attribute changes.
// http://crbug.com/78043
// Windows implementation of FilePathWatcher catches attribute changes that

View file

@ -1,52 +0,0 @@
--- base/files/file_util_posix.cc.orig 2023-05-25 00:41:38 UTC
+++ base/files/file_util_posix.cc
@@ -756,32 +756,34 @@ bool CreateDirectoryAndGetError(const FilePath& full_p
File::Error* error) {
ScopedBlockingCall scoped_blocking_call(
FROM_HERE, BlockingType::MAY_BLOCK); // For call to mkdir().
+ const FilePath kFileSystemRoot("/");
std::vector<FilePath> subpaths;
// Collect a list of all parent directories.
FilePath last_path = full_path;
- subpaths.push_back(full_path);
+ if (full_path != kFileSystemRoot)
+ subpaths.push_back(full_path);
for (FilePath path = full_path.DirName();
- path.value() != last_path.value(); path = path.DirName()) {
+ (path.value() != last_path.value() &&
+ (path != kFileSystemRoot)); path = path.DirName()) {
subpaths.push_back(path);
last_path = path;
}
// Iterate through the parents and create the missing ones.
for (const FilePath& subpath : base::Reversed(subpaths)) {
- if (DirectoryExists(subpath))
- continue;
- if (mkdir(subpath.value().c_str(), 0700) == 0)
- continue;
- // Mkdir failed, but it might have failed with EEXIST, or some other error
- // due to the directory appearing out of thin air. This can occur if
- // two processes are trying to create the same file system tree at the same
- // time. Check to see if it exists and make sure it is a directory.
- int saved_errno = errno;
- if (!DirectoryExists(subpath)) {
- if (error)
- *error = File::OSErrorToFileError(saved_errno);
- return false;
+ if (!PathExists(subpath)) {
+ if ((mkdir(subpath.value().c_str(), 0700) == -1) &&
+ ((full_path != subpath) ? (errno != ENOENT) : (-1))) {
+ int saved_errno = errno;
+ if (error)
+ *error = File::OSErrorToFileError(saved_errno);
+ return false;
+ }
+ } else if (!DirectoryExists(subpath)) {
+ if (error)
+ *error = File::OSErrorToFileError(ENOTDIR);
+ return false;
}
}
return true;

View file

@ -1,20 +0,0 @@
--- base/files/file_util_unittest.cc.orig 2023-05-25 00:41:38 UTC
+++ base/files/file_util_unittest.cc
@@ -3871,7 +3871,7 @@ TEST_F(FileUtilTest, ReadFileToStringWithNamedPipe) {
}
#endif // BUILDFLAG(IS_WIN)
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
TEST_F(FileUtilTest, ReadFileToStringWithProcFileSystem) {
FilePath file_path("/proc/cpuinfo");
std::string data = "temp";
@@ -4594,7 +4594,7 @@ TEST(FileUtilMultiThreadedTest, MultiThreadedTempFiles
NULL);
#else
size_t bytes_written =
- ::write(::fileno(output_file.get()), content.c_str(), content.length());
+ ::write(fileno(output_file.get()), content.c_str(), content.length());
#endif
EXPECT_EQ(content.length(), bytes_written);
::fflush(output_file.get());

View file

@ -1,12 +0,0 @@
--- base/files/important_file_writer_cleaner.cc.orig 2022-02-28 16:54:41 UTC
+++ base/files/important_file_writer_cleaner.cc
@@ -25,7 +25,8 @@ namespace base {
namespace {
base::Time GetUpperBoundTime() {
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
+// needed because of .CreationTime() pledge
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// If process creation time is not available then use instance creation
// time as the upper-bound for old files. Modification times may be
// rounded-down to coarse-grained increments, e.g. FAT has 2s granularity,

View file

@ -1,11 +0,0 @@
--- base/files/scoped_file.cc.orig 2022-02-28 16:54:41 UTC
+++ base/files/scoped_file.cc
@@ -31,7 +31,7 @@ void ScopedFDCloseTraits::Free(int fd) {
int ret = IGNORE_EINTR(close(fd));
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID)
+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// NB: Some file descriptors can return errors from close() e.g. network
// filesystems such as NFS and Linux input devices. On Linux, macOS, and
// Fuchsia's POSIX layer, errors from close other than EBADF do not indicate

View file

@ -1,11 +0,0 @@
--- base/functional/unretained_traits.h.orig 2023-02-01 18:43:07 UTC
+++ base/functional/unretained_traits.h
@@ -130,7 +130,7 @@ struct TypeSupportsUnretained {
// official builds, and then in non-test code as well.
#if !defined(UNIT_TEST) && !defined(OFFICIAL_BUILD)
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
- defined(FORCE_UNRETAINED_COMPLETENESS_CHECKS_FOR_TESTS)
+ || BUILDFLAGS(IS_BSD) || defined(FORCE_UNRETAINED_COMPLETENESS_CHECKS_FOR_TESTS)
static_assert(IsCompleteTypeV<T> ||
IsIncompleteTypeSafeForUnretained<std::remove_cv_t<T>>,
"T must be fully defined.");

View file

@ -1,20 +0,0 @@
--- base/i18n/icu_util.cc.orig 2023-10-19 19:57:58 UTC
+++ base/i18n/icu_util.cc
@@ -51,7 +51,7 @@
#include "third_party/icu/source/common/unicode/unistr.h"
#endif
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \
BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
#include "third_party/icu/source/i18n/unicode/timezone.h"
#endif
@@ -345,7 +345,7 @@ void InitializeIcuTimeZone() {
FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
icu::TimeZone::adoptDefault(
icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id)));
-#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
+#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
// To respond to the time zone change properly, the default time zone
// cache in ICU has to be populated on starting up.
// See TimeZoneMonitorLinux::NotifyClientsFromImpl().

View file

@ -1,28 +0,0 @@
--- base/linux_util.cc.orig 2023-10-19 19:57:58 UTC
+++ base/linux_util.cc
@@ -15,6 +15,7 @@
#include <iomanip>
#include <memory>
+#include <sstream>
#include "base/base_export.h"
#include "base/files/dir_reader_posix.h"
@@ -135,6 +136,9 @@ void SetLinuxDistro(const std::string& distro) {
}
bool GetThreadsForProcess(pid_t pid, std::vector<pid_t>* tids) {
+#if BUILDFLAG(IS_BSD)
+ return false;
+#else
// 25 > strlen("/proc//task") + strlen(std::to_string(INT_MAX)) + 1 = 22
char buf[25];
strings::SafeSPrintf(buf, "/proc/%d/task", pid);
@@ -152,6 +156,7 @@ bool GetThreadsForProcess(pid_t pid, std::vector<pid_t
}
return true;
+#endif
}
pid_t FindThreadIDWithSyscall(pid_t pid, const std::string& expected_data,

View file

@ -1,31 +0,0 @@
--- base/logging_unittest.cc.orig 2023-02-01 18:43:07 UTC
+++ base/logging_unittest.cc
@@ -32,7 +32,7 @@
#include "base/posix/eintr_wrapper.h"
#endif // BUILDFLAG(IS_POSIX)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
#include <ucontext.h>
#endif
@@ -575,14 +575,18 @@ void CheckCrashTestSighandler(int, siginfo_t* info, vo
// need the arch-specific boilerplate below, which is inspired by breakpad.
// At the same time, on OSX, ucontext.h is deprecated but si_addr works fine.
uintptr_t crash_addr = 0;
-#if BUILDFLAG(IS_MAC)
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD)
crash_addr = reinterpret_cast<uintptr_t>(info->si_addr);
#else // OS_*
ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr);
#if defined(ARCH_CPU_X86)
crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_EIP]);
#elif defined(ARCH_CPU_X86_64)
+#if BUILDFLAG(IS_OPENBSD)
+ crash_addr = static_cast<uintptr_t>(context->sc_rip);
+#else
crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_RIP]);
+#endif
#elif defined(ARCH_CPU_ARMEL)
crash_addr = static_cast<uintptr_t>(context->uc_mcontext.arm_pc);
#elif defined(ARCH_CPU_ARM64)

View file

@ -1,38 +0,0 @@
--- base/memory/discardable_memory.cc.orig 2022-11-30 08:12:58 UTC
+++ base/memory/discardable_memory.cc
@@ -26,7 +26,7 @@ BASE_FEATURE(kMadvFreeDiscardableMemory,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_POSIX)
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
BASE_FEATURE(kDiscardableMemoryBackingTrial,
"DiscardableMemoryBackingTrial",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -52,7 +52,7 @@ const base::FeatureParam<DiscardableMemoryTrialGroup>
namespace {
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
DiscardableMemoryBacking GetBackingForFieldTrial() {
DiscardableMemoryTrialGroup trial_group =
@@ -71,7 +71,7 @@ DiscardableMemoryBacking GetBackingForFieldTrial() {
} // namespace
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Probe capabilities of this device to determine whether we should participate
// in the discardable memory backing trial.
@@ -101,7 +101,7 @@ DiscardableMemory::DiscardableMemory() = default;
DiscardableMemory::~DiscardableMemory() = default;
DiscardableMemoryBacking GetDiscardableMemoryBacking() {
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (DiscardableMemoryBackingFieldTrialIsEnabled()) {
return GetBackingForFieldTrial();
}

View file

@ -1,11 +0,0 @@
--- base/memory/discardable_memory_internal.h.orig 2022-02-28 16:54:41 UTC
+++ base/memory/discardable_memory_internal.h
@@ -10,7 +10,7 @@
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
namespace base {

View file

@ -1,21 +0,0 @@
--- base/memory/madv_free_discardable_memory_posix.cc.orig 2023-05-25 00:41:38 UTC
+++ base/memory/madv_free_discardable_memory_posix.cc
@@ -306,6 +306,10 @@ void MadvFreeDiscardableMemoryPosix::SetKeepMemoryForT
bool MadvFreeDiscardableMemoryPosix::IsResident() const {
DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_);
+// XXX mincore
+#if BUILDFLAG(IS_BSD)
+ return false;
+#else
#if BUILDFLAG(IS_APPLE)
std::vector<char> vec(allocated_pages_);
#else
@@ -321,6 +325,7 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons
return false;
}
return true;
+#endif
}
bool MadvFreeDiscardableMemoryPosix::IsDiscarded() const {

View file

@ -1,29 +0,0 @@
--- base/memory/platform_shared_memory_region.h.orig 2023-08-10 01:48:30 UTC
+++ base/memory/platform_shared_memory_region.h
@@ -16,7 +16,7 @@
#include <stdint.h>
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
namespace content {
class SandboxIPCHandler;
}
@@ -83,7 +83,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion {
kMaxValue = GET_SHMEM_TEMP_DIR_FAILURE
};
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Structure to limit access to executable region creation.
struct ExecutableRegion {
private:
@@ -215,7 +215,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion {
CheckPlatformHandlePermissionsCorrespondToMode);
static PlatformSharedMemoryRegion Create(Mode mode,
size_t size
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
bool executable = false
#endif

View file

@ -1,29 +0,0 @@
--- base/memory/platform_shared_memory_region_posix.cc.orig 2023-02-01 18:43:07 UTC
+++ base/memory/platform_shared_memory_region_posix.cc
@@ -55,7 +55,7 @@ bool CheckFDAccessMode(int fd, int expected_mode) {
} // namespace
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// static
ScopedFD PlatformSharedMemoryRegion::ExecutableRegion::CreateFD(size_t size) {
PlatformSharedMemoryRegion region =
@@ -168,7 +168,7 @@ bool PlatformSharedMemoryRegion::ConvertToUnsafe() {
// static
PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Create(Mode mode,
size_t size
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
bool executable
#endif
@@ -197,7 +197,7 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion:
// flag.
FilePath directory;
if (!GetShmemTempDir(
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
executable,
#else
false /* executable */,

View file

@ -1,28 +0,0 @@
--- base/message_loop/message_pump_glib.cc.orig 2022-08-31 12:19:35 UTC
+++ base/message_loop/message_pump_glib.cc
@@ -8,6 +8,11 @@
#include <glib.h>
#include <math.h>
+#if BUILDFLAG(IS_BSD)
+#include <pthread.h>
+#include <pthread_np.h>
+#endif
+
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/notreached.h"
@@ -51,9 +56,13 @@ int GetTimeIntervalMilliseconds(TimeTicks next_task_ti
}
bool RunningOnMainThread() {
+#if BUILDFLAG(IS_BSD)
+ return pthread_main_np();
+#else
auto pid = getpid();
auto tid = PlatformThread::CurrentId();
return pid > 0 && tid > 0 && pid == tid;
+#endif
}
// A brief refresher on GLib:

View file

@ -1,11 +0,0 @@
--- base/native_library_posix.cc.orig 2022-05-19 14:06:27 UTC
+++ base/native_library_posix.cc
@@ -33,7 +33,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FileP
// http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892,
// and http://crbug.com/40794.
int flags = RTLD_LAZY;
-#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND)
+#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) || BUILDFLAG(IS_BSD)
// Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires
// further investigation, as it might vary across versions. Crash here to
// warn developers that they're trying to rely on uncertain behavior.

View file

@ -1,11 +0,0 @@
--- base/native_library_unittest.cc.orig 2022-10-24 13:33:33 UTC
+++ base/native_library_unittest.cc
@@ -134,7 +134,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
// versions with respect to symbol resolution scope.
// TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255
#if !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \
- !defined(MEMORY_SANITIZER)
+ !defined(MEMORY_SANITIZER) && !BUILDFLAG(IS_BSD)
// Verifies that the |prefer_own_symbols| option satisfies its guarantee that
// a loaded library will always prefer local symbol resolution before

View file

@ -1,16 +0,0 @@
--- base/posix/can_lower_nice_to.cc.orig 2022-02-28 16:54:41 UTC
+++ base/posix/can_lower_nice_to.cc
@@ -11,8 +11,12 @@
#include "build/build_config.h"
+#if BUILDFLAG(IS_FREEBSD)
+#include <sys/param.h>
+#endif
+
// Not defined on AIX by default.
-#if BUILDFLAG(IS_AIX)
+#if BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
#if defined(RLIMIT_NICE)
#error Assumption about OS_AIX is incorrect
#endif

View file

@ -1,39 +0,0 @@
--- base/posix/unix_domain_socket.cc.orig 2022-08-31 12:19:35 UTC
+++ base/posix/unix_domain_socket.cc
@@ -51,7 +51,7 @@ bool CreateSocketPair(ScopedFD* one, ScopedFD* two) {
// static
bool UnixDomainSocket::EnableReceiveProcessId(int fd) {
-#if !BUILDFLAG(IS_APPLE)
+#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
const int enable = 1;
return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0;
#else
@@ -149,7 +149,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd,
const size_t kControlBufferSize =
CMSG_SPACE(sizeof(int) * kMaxFileDescriptors)
-#if !BUILDFLAG(IS_APPLE)
+#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
// macOS does not support ucred.
// macOS supports xucred, but this structure is insufficient.
+ CMSG_SPACE(sizeof(struct ucred))
@@ -177,7 +177,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd,
wire_fds = reinterpret_cast<int*>(CMSG_DATA(cmsg));
wire_fds_len = payload_len / sizeof(int);
}
-#if !BUILDFLAG(IS_APPLE)
+#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
// macOS does not support SCM_CREDENTIALS.
if (cmsg->cmsg_level == SOL_SOCKET &&
cmsg->cmsg_type == SCM_CREDENTIALS) {
@@ -211,6 +211,9 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd,
socklen_t pid_size = sizeof(pid);
if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERPID, &pid, &pid_size) != 0)
pid = -1;
+#elif BUILDFLAG(IS_BSD)
+ NOTIMPLEMENTED();
+ pid = -1;
#else
// |pid| will legitimately be -1 if we read EOF, so only DCHECK if we
// actually received a message. Unfortunately, Linux allows sending zero

View file

@ -1,11 +0,0 @@
--- base/posix/unix_domain_socket_unittest.cc.orig 2023-03-30 00:33:38 UTC
+++ base/posix/unix_domain_socket_unittest.cc
@@ -10,6 +10,8 @@
#include <sys/types.h>
#include <unistd.h>
+#include <signal.h>
+
#include "base/files/file_util.h"
#include "base/files/scoped_file.h"
#include "base/functional/bind.h"

View file

@ -1,11 +0,0 @@
--- base/process/kill.h.orig 2022-05-19 14:06:27 UTC
+++ base/process/kill.h
@@ -113,7 +113,7 @@ BASE_EXPORT TerminationStatus GetTerminationStatus(Pro
BASE_EXPORT TerminationStatus GetKnownDeadTerminationStatus(
ProcessHandle handle, int* exit_code);
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Spawns a thread to wait asynchronously for the child |process| to exit
// and then reaps it.
BASE_EXPORT void EnsureProcessGetsReaped(Process process);

View file

@ -1,11 +0,0 @@
--- base/process/kill_posix.cc.orig 2023-03-30 00:33:38 UTC
+++ base/process/kill_posix.cc
@@ -157,7 +157,7 @@ void EnsureProcessTerminated(Process process) {
0, new BackgroundReaper(std::move(process), Seconds(2)));
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void EnsureProcessGetsReaped(Process process) {
DCHECK(!process.is_current());

View file

@ -1,11 +0,0 @@
--- base/process/launch.h.orig 2023-05-25 00:41:38 UTC
+++ base/process/launch.h
@@ -200,7 +200,7 @@ struct BASE_EXPORT LaunchOptions {
bool clear_environment = false;
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// If non-zero, start the process using clone(), using flags as provided.
// Unlike in clone, clone_flags may not contain a custom termination signal
// that is sent to the parent when the child dies. The termination signal will

View file

@ -1,12 +0,0 @@
--- base/process/launch_posix.cc.orig 2022-08-31 12:19:35 UTC
+++ base/process/launch_posix.cc
@@ -64,6 +64,9 @@
#error "macOS should use launch_mac.cc"
#endif
+#if defined(OS_FREEBSD)
+#pragma weak environ
+#endif
extern char** environ;
namespace base {

View file

@ -1,44 +0,0 @@
--- base/process/memory_linux.cc.orig 2023-02-01 18:43:07 UTC
+++ base/process/memory_linux.cc
@@ -20,6 +20,7 @@
namespace base {
+#if !BUILDFLAG(IS_BSD)
namespace {
void ReleaseReservationOrTerminate() {
@@ -29,12 +30,14 @@ void ReleaseReservationOrTerminate() {
}
} // namespace
+#endif
void EnableTerminationOnHeapCorruption() {
// On Linux, there nothing to do AFAIK.
}
void EnableTerminationOnOutOfMemory() {
+#if !BUILDFLAG(IS_BSD)
// Set the new-out of memory handler.
std::set_new_handler(&ReleaseReservationOrTerminate);
// If we're using glibc's allocator, the above functions will override
@@ -43,8 +46,10 @@ void EnableTerminationOnOutOfMemory() {
#if BUILDFLAG(USE_ALLOCATOR_SHIM)
allocator_shim::SetCallNewHandlerOnMallocFailure(true);
#endif
+#endif
}
+#if !BUILDFLAG(IS_BSD)
// ScopedAllowBlocking() has private constructor and it can only be used in
// friend classes/functions. Declaring a class is easier in this situation to
// avoid adding more dependency to thread_restrictions.h because of the
@@ -104,6 +109,7 @@ bool AdjustOOMScoreHelper::AdjustOOMScore(ProcessId pr
bool AdjustOOMScore(ProcessId process, int score) {
return AdjustOOMScoreHelper::AdjustOOMScore(process, score);
}
+#endif
bool UncheckedMalloc(size_t size, void** result) {
#if BUILDFLAG(USE_ALLOCATOR_SHIM)

View file

@ -1,11 +0,0 @@
--- base/process/process_handle.cc.orig 2022-02-28 16:54:41 UTC
+++ base/process/process_handle.cc
@@ -30,7 +30,7 @@ UniqueProcId GetUniqueIdForProcess() {
: UniqueProcId(GetCurrentProcId());
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_namespace) {
DCHECK(pid_outside_of_namespace != kNullProcessId);

View file

@ -1,11 +0,0 @@
--- base/process/process_handle.h.orig 2022-02-28 16:54:41 UTC
+++ base/process/process_handle.h
@@ -106,7 +106,7 @@ BASE_EXPORT ProcessId GetCurrentProcId();
// processes may be reused.
BASE_EXPORT UniqueProcId GetUniqueIdForProcess();
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// When a process is started in a different PID namespace from the browser
// process, this function must be called with the process's PID in the browser's
// PID namespace in order to initialize its unique ID. Not thread safe.

View file

@ -1,25 +0,0 @@
--- base/process/process_handle_freebsd.cc.orig 2022-04-21 18:48:31 UTC
+++ base/process/process_handle_freebsd.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/process/process_handle.h"
+#include "base/files/file_util.h"
#include <limits.h>
#include <stddef.h>
@@ -15,10 +16,13 @@ namespace base {
ProcessId GetParentProcessId(ProcessHandle process) {
struct kinfo_proc info;
- size_t length;
+ size_t length = sizeof(struct kinfo_proc);
int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process };
if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+ return -1;
+
+ if (length < sizeof(struct kinfo_proc))
return -1;
return info.ki_ppid;

View file

@ -1,89 +0,0 @@
--- base/process/process_handle_openbsd.cc.orig 2022-04-21 18:48:31 UTC
+++ base/process/process_handle_openbsd.cc
@@ -3,8 +3,11 @@
// found in the LICENSE file.
#include "base/process/process_handle.h"
+#include "base/files/file_util.h"
#include <stddef.h>
+#include <sys/param.h>
+#include <sys/proc.h>
#include <sys/sysctl.h>
#include <sys/types.h>
#include <unistd.h>
@@ -12,39 +15,59 @@
namespace base {
ProcessId GetParentProcessId(ProcessHandle process) {
- struct kinfo_proc info;
+ struct kinfo_proc *info;
size_t length;
+ pid_t ppid;
int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
sizeof(struct kinfo_proc), 0 };
if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
return -1;
+ info = (struct kinfo_proc *)malloc(length);
+
mib[5] = (length / sizeof(struct kinfo_proc));
- if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
- return -1;
+ if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
+ ppid = -1;
+ goto out;
+ }
- return info.p_ppid;
+ ppid = info->p_ppid;
+
+out:
+ free(info);
+ return ppid;
}
FilePath GetProcessExecutablePath(ProcessHandle process) {
- struct kinfo_proc kp;
- size_t len;
+ struct kinfo_proc *info;
+ size_t length;
+ char *path = NULL;
int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
sizeof(struct kinfo_proc), 0 };
- if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) == -1)
+ if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) == -1)
return FilePath();
- mib[5] = (len / sizeof(struct kinfo_proc));
- if (sysctl(mib, std::size(mib), &kp, &len, NULL, 0) < 0)
- return FilePath();
- if ((kp.p_flag & P_SYSTEM) != 0)
- return FilePath();
- if (strcmp(kp.p_comm, "chrome") == 0)
- return FilePath(kp.p_comm);
- return FilePath();
+ info = (struct kinfo_proc *)malloc(length);
+
+ mib[5] = (length / sizeof(struct kinfo_proc));
+
+ if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0)
+ goto out;
+
+ if ((info->p_flag & P_SYSTEM) != 0)
+ goto out;
+
+ if (strcmp(info->p_comm, "chrome") == 0) {
+ path = info->p_comm;
+ goto out;
+ }
+
+out:
+ free(info);
+ return FilePath(path);
}
} // namespace base

Some files were not shown because too many files have changed in this diff Show more