git: 2b5fb0cc4041 - main - texproc/sasso: New port: Fast and conformant Sass to CSS compiler
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 05 Aug 2026 01:35:51 UTC
The branch main has been updated by tagattie:
URL: https://cgit.FreeBSD.org/ports/commit/?id=2b5fb0cc40415e0f2e77deb6b7a6208d1da1aa5f
commit 2b5fb0cc40415e0f2e77deb6b7a6208d1da1aa5f
Author: Benjamin Jacobs <freebsd@dev.thsi.be>
AuthorDate: 2026-07-17 13:59:23 +0000
Commit: Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-08-05 01:35:20 +0000
texproc/sasso: New port: Fast and conformant Sass to CSS compiler
Sasso is a compiler for Sass, the Syntactically Awesome Style Sheets
language, written in Rust. Sass provides features such as variables,
nesting, mixins, inheritance and imports, which allows one to write
CSS (Cascading Style Sheets) more easily and tersely.
Sasso supports both the SCSS syntax -- a superset of CSS3 -- and the
older indended Sass syntax. It aims for a perfect compatibility with
the current release of Dart Sass, the reference implementation of the
Sass language. It is tested against the official Sass Spec Suite where
it achieves a 100% success rate on the subset implemented by Dart
Sass, producing byte-for-byte identical outputs.
WWW: https://github.com/momiji-rs/sasso
PR: 296857
Reported by: Benjamin Jacobs <freebsd@dev.thsi.be> (new maintainer)
---
textproc/Makefile | 1 +
textproc/sasso/Makefile | 23 ++++++++
textproc/sasso/Makefile.crates | 59 ++++++++++++++++++++
textproc/sasso/distinfo | 121 +++++++++++++++++++++++++++++++++++++++++
textproc/sasso/pkg-descr | 11 ++++
5 files changed, 215 insertions(+)
diff --git a/textproc/Makefile b/textproc/Makefile
index 0fac6c9453de..f0a1d80eefa8 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -2142,6 +2142,7 @@
SUBDIR += sansi
SUBDIR += sarep
SUBDIR += sassc
+ SUBDIR += sasso
SUBDIR += saxon-he
SUBDIR += sc-aspell
SUBDIR += scdoc
diff --git a/textproc/sasso/Makefile b/textproc/sasso/Makefile
new file mode 100644
index 000000000000..168d036fa27e
--- /dev/null
+++ b/textproc/sasso/Makefile
@@ -0,0 +1,23 @@
+PORTNAME= sasso
+DISTVERSION= 0.8.1
+CATEGORIES= textproc
+MASTER_SITES= https://github.com/momiji-rs/sasso/releases/download/v${DISTVERSION}/
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= freebsd@dev.thsi.be
+COMMENT= Fast and conformant Sass to CSS compiler
+WWW= https://github.com/momiji-rs/sasso
+
+LICENSE= APACHE20 MIT
+LICENSE_COMB= dual
+LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE
+LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT
+
+USES= cargo tar:xz
+
+PLIST_FILES= bin/${PORTNAME}
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKDIR}/target/release/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/textproc/sasso/Makefile.crates b/textproc/sasso/Makefile.crates
new file mode 100644
index 000000000000..4ddefb477e59
--- /dev/null
+++ b/textproc/sasso/Makefile.crates
@@ -0,0 +1,59 @@
+CARGO_CRATES= aho-corasick-1.1.4 \
+ anstyle-1.0.14 \
+ anyhow-1.0.103 \
+ approx-0.5.1 \
+ autocfg-1.5.1 \
+ bitflags-2.13.0 \
+ cc-1.2.65 \
+ cfg-if-1.0.4 \
+ cfg_aliases-0.2.1 \
+ clap-4.6.1 \
+ clap_builder-4.6.0 \
+ clap_lex-1.1.0 \
+ codspeed-5.0.0 \
+ codspeed-divan-compat-5.0.0 \
+ codspeed-divan-compat-macros-5.0.0 \
+ codspeed-divan-compat-walltime-5.0.0 \
+ colored-3.1.1 \
+ condtype-1.3.0 \
+ divan-macros-0.1.17 \
+ either-1.16.0 \
+ equivalent-1.0.2 \
+ errno-0.3.14 \
+ find-msvc-tools-0.1.9 \
+ getrandom-0.4.3 \
+ glob-0.3.3 \
+ hashbrown-0.17.1 \
+ indexmap-2.14.0 \
+ itertools-0.14.0 \
+ itoa-1.0.18 \
+ libc-0.2.186 \
+ linux-raw-sys-0.12.1 \
+ memchr-2.8.2 \
+ nix-0.31.3 \
+ num-traits-0.2.19 \
+ proc-macro-crate-3.5.0 \
+ proc-macro2-1.0.106 \
+ quote-1.0.46 \
+ r-efi-6.0.0 \
+ regex-1.12.4 \
+ regex-automata-0.4.14 \
+ regex-lite-0.1.9 \
+ regex-syntax-0.8.11 \
+ rustix-1.1.4 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_json-1.0.150 \
+ shlex-2.0.1 \
+ statrs-0.18.0 \
+ syn-2.0.118 \
+ terminal_size-0.4.4 \
+ toml_datetime-1.1.1+spec-1.1.0 \
+ toml_edit-0.25.12+spec-1.1.0 \
+ toml_parser-1.1.2+spec-1.1.0 \
+ unicode-ident-1.0.24 \
+ windows-link-0.2.1 \
+ windows-sys-0.61.2 \
+ winnow-1.0.3 \
+ zmij-1.0.21
diff --git a/textproc/sasso/distinfo b/textproc/sasso/distinfo
new file mode 100644
index 000000000000..ec1617dd93ea
--- /dev/null
+++ b/textproc/sasso/distinfo
@@ -0,0 +1,121 @@
+TIMESTAMP = 1784295458
+SHA256 (sasso-0.8.1.tar.xz) = 81906316bef92a76f15ddef610804d2b061f0d27c8f89282aad020dbb7147f12
+SIZE (sasso-0.8.1.tar.xz) = 799644
+SHA256 (rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
+SIZE (rust/crates/aho-corasick-1.1.4.crate) = 184015
+SHA256 (rust/crates/anstyle-1.0.14.crate) = 940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000
+SIZE (rust/crates/anstyle-1.0.14.crate) = 17787
+SHA256 (rust/crates/anyhow-1.0.103.crate) = 2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3
+SIZE (rust/crates/anyhow-1.0.103.crate) = 48746
+SHA256 (rust/crates/approx-0.5.1.crate) = cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6
+SIZE (rust/crates/approx-0.5.1.crate) = 15100
+SHA256 (rust/crates/autocfg-1.5.1.crate) = f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53
+SIZE (rust/crates/autocfg-1.5.1.crate) = 18911
+SHA256 (rust/crates/bitflags-2.13.0.crate) = b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8
+SIZE (rust/crates/bitflags-2.13.0.crate) = 51280
+SHA256 (rust/crates/cc-1.2.65.crate) = e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96
+SIZE (rust/crates/cc-1.2.65.crate) = 95435
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
+SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
+SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
+SHA256 (rust/crates/clap-4.6.1.crate) = 1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51
+SIZE (rust/crates/clap-4.6.1.crate) = 61836
+SHA256 (rust/crates/clap_builder-4.6.0.crate) = 714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f
+SIZE (rust/crates/clap_builder-4.6.0.crate) = 171122
+SHA256 (rust/crates/clap_lex-1.1.0.crate) = c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9
+SIZE (rust/crates/clap_lex-1.1.0.crate) = 13470
+SHA256 (rust/crates/codspeed-5.0.0.crate) = ea0fb765e7d2f2f24c2eb54537b7f1e172644ba6079f3a219ca86f5a2df99eff
+SIZE (rust/crates/codspeed-5.0.0.crate) = 647121
+SHA256 (rust/crates/codspeed-divan-compat-5.0.0.crate) = 89276c4bd8c74194a511652233a74097648f7bbf0fa19b9f3ecce3f0d2772692
+SIZE (rust/crates/codspeed-divan-compat-5.0.0.crate) = 18999
+SHA256 (rust/crates/codspeed-divan-compat-macros-5.0.0.crate) = c8b0dcdb5a2cc3469fd6625db381149d4caa42009864b8e1877b9f67fc3b2e02
+SIZE (rust/crates/codspeed-divan-compat-macros-5.0.0.crate) = 5408
+SHA256 (rust/crates/codspeed-divan-compat-walltime-5.0.0.crate) = d54a197bce62fc237bfbc17b299fedf2a091ac62f0a0c24b885a9e6c85abdd30
+SIZE (rust/crates/codspeed-divan-compat-walltime-5.0.0.crate) = 97224
+SHA256 (rust/crates/colored-3.1.1.crate) = faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34
+SIZE (rust/crates/colored-3.1.1.crate) = 36216
+SHA256 (rust/crates/condtype-1.3.0.crate) = baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af
+SIZE (rust/crates/condtype-1.3.0.crate) = 12634
+SHA256 (rust/crates/divan-macros-0.1.17.crate) = 8dc51d98e636f5e3b0759a39257458b22619cac7e96d932da6eeb052891bb67c
+SIZE (rust/crates/divan-macros-0.1.17.crate) = 15322
+SHA256 (rust/crates/either-1.16.0.crate) = 91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e
+SIZE (rust/crates/either-1.16.0.crate) = 21248
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
+SIZE (rust/crates/errno-0.3.14.crate) = 12002
+SHA256 (rust/crates/find-msvc-tools-0.1.9.crate) = 5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582
+SIZE (rust/crates/find-msvc-tools-0.1.9.crate) = 31493
+SHA256 (rust/crates/getrandom-0.4.3.crate) = 300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099
+SIZE (rust/crates/getrandom-0.4.3.crate) = 52437
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
+SHA256 (rust/crates/hashbrown-0.17.1.crate) = ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a
+SIZE (rust/crates/hashbrown-0.17.1.crate) = 155512
+SHA256 (rust/crates/indexmap-2.14.0.crate) = d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9
+SIZE (rust/crates/indexmap-2.14.0.crate) = 104085
+SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285
+SIZE (rust/crates/itertools-0.14.0.crate) = 152715
+SHA256 (rust/crates/itoa-1.0.18.crate) = 8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682
+SIZE (rust/crates/itoa-1.0.18.crate) = 15935
+SHA256 (rust/crates/libc-0.2.186.crate) = 68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66
+SIZE (rust/crates/libc-0.2.186.crate) = 821883
+SHA256 (rust/crates/linux-raw-sys-0.12.1.crate) = 32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53
+SIZE (rust/crates/linux-raw-sys-0.12.1.crate) = 3006116
+SHA256 (rust/crates/memchr-2.8.2.crate) = 88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4
+SIZE (rust/crates/memchr-2.8.2.crate) = 99069
+SHA256 (rust/crates/nix-0.31.3.crate) = cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d
+SIZE (rust/crates/nix-0.31.3.crate) = 347476
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/proc-macro-crate-3.5.0.crate) = e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f
+SIZE (rust/crates/proc-macro-crate-3.5.0.crate) = 12709
+SHA256 (rust/crates/proc-macro2-1.0.106.crate) = 8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934
+SIZE (rust/crates/proc-macro2-1.0.106.crate) = 59765
+SHA256 (rust/crates/quote-1.0.46.crate) = dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368
+SIZE (rust/crates/quote-1.0.46.crate) = 31628
+SHA256 (rust/crates/r-efi-6.0.0.crate) = f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf
+SIZE (rust/crates/r-efi-6.0.0.crate) = 65303
+SHA256 (rust/crates/regex-1.12.4.crate) = f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba
+SIZE (rust/crates/regex-1.12.4.crate) = 153468
+SHA256 (rust/crates/regex-automata-0.4.14.crate) = 6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f
+SIZE (rust/crates/regex-automata-0.4.14.crate) = 618012
+SHA256 (rust/crates/regex-lite-0.1.9.crate) = cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973
+SIZE (rust/crates/regex-lite-0.1.9.crate) = 96166
+SHA256 (rust/crates/regex-syntax-0.8.11.crate) = d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4
+SIZE (rust/crates/regex-syntax-0.8.11.crate) = 359055
+SHA256 (rust/crates/rustix-1.1.4.crate) = b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190
+SIZE (rust/crates/rustix-1.1.4.crate) = 425241
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_json-1.0.150.crate) = e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9
+SIZE (rust/crates/serde_json-1.0.150.crate) = 155574
+SHA256 (rust/crates/shlex-2.0.1.crate) = f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba
+SIZE (rust/crates/shlex-2.0.1.crate) = 19332
+SHA256 (rust/crates/statrs-0.18.0.crate) = 2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e
+SIZE (rust/crates/statrs-0.18.0.crate) = 156842
+SHA256 (rust/crates/syn-2.0.118.crate) = 1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422
+SIZE (rust/crates/syn-2.0.118.crate) = 305533
+SHA256 (rust/crates/terminal_size-0.4.4.crate) = 230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874
+SIZE (rust/crates/terminal_size-0.4.4.crate) = 10022
+SHA256 (rust/crates/toml_datetime-1.1.1+spec-1.1.0.crate) = 3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7
+SIZE (rust/crates/toml_datetime-1.1.1+spec-1.1.0.crate) = 17982
+SHA256 (rust/crates/toml_edit-0.25.12+spec-1.1.0.crate) = d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7
+SIZE (rust/crates/toml_edit-0.25.12+spec-1.1.0.crate) = 68620
+SHA256 (rust/crates/toml_parser-1.1.2+spec-1.1.0.crate) = a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526
+SIZE (rust/crates/toml_parser-1.1.2+spec-1.1.0.crate) = 35485
+SHA256 (rust/crates/unicode-ident-1.0.24.crate) = e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75
+SIZE (rust/crates/unicode-ident-1.0.24.crate) = 49298
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/windows-sys-0.61.2.crate) = ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc
+SIZE (rust/crates/windows-sys-0.61.2.crate) = 2517186
+SHA256 (rust/crates/winnow-1.0.3.crate) = 0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1
+SIZE (rust/crates/winnow-1.0.3.crate) = 187990
+SHA256 (rust/crates/zmij-1.0.21.crate) = b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa
+SIZE (rust/crates/zmij-1.0.21.crate) = 26665
diff --git a/textproc/sasso/pkg-descr b/textproc/sasso/pkg-descr
new file mode 100644
index 000000000000..f1d88e508664
--- /dev/null
+++ b/textproc/sasso/pkg-descr
@@ -0,0 +1,11 @@
+Sasso is a compiler for Sass, the Syntactically Awesome Style Sheets
+language, written in Rust. Sass provides features such as variables,
+nesting, mixins, inheritance and imports, which allows one to write
+CSS (Cascading Style Sheets) more easily and tersely.
+
+Sasso supports both the SCSS syntax -- a superset of CSS3 -- and the
+older indended Sass syntax. It aims for a perfect compatibility with
+the current release of Dart Sass, the reference implementation of the
+Sass language. It is tested against the official Sass Spec Suite where
+it achieves a 100% success rate on the subset implemented by Dart
+Sass, producing byte-for-byte identical outputs.