aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Jacobs <freebsd@dev.thsi.be>2026-07-17 13:59:23 +0000
committerHiroki Tagato <tagattie@FreeBSD.org>2026-08-05 01:35:20 +0000
commit2b5fb0cc40415e0f2e77deb6b7a6208d1da1aa5f (patch)
treee99e78e2287924454a6e3c81334e537a553efbfa
parent74f66c958dfb8108877b1804373e2fd40f30c08f (diff)
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)
-rw-r--r--textproc/Makefile1
-rw-r--r--textproc/sasso/Makefile23
-rw-r--r--textproc/sasso/Makefile.crates59
-rw-r--r--textproc/sasso/distinfo121
-rw-r--r--textproc/sasso/pkg-descr11
5 files changed, 215 insertions, 0 deletions
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.