Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Aug 2026 01:35:51 +0000
From:      Hiroki Tagato <tagattie@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Benjamin Jacobs <freebsd@dev.thsi.be>
Subject:   git: 2b5fb0cc4041 - main - texproc/sasso: New port: Fast and conformant Sass to CSS compiler
Message-ID:  <6a729377.37ea6.436ab933@gitrepo.freebsd.org>

index | next in thread | raw e-mail

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.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a729377.37ea6.436ab933>