aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-libs/gtkd/gtkd-3.10.0-r1.ebuild5
-rw-r--r--dev-libs/gtkd/gtkd-3.10.0-r2.ebuild5
-rw-r--r--dev-util/dub/dub-1.38.1-r1.ebuild126
-rw-r--r--dev-util/serve-d/Manifest17
-rw-r--r--dev-util/serve-d/serve-d-0.8.0_beta17.ebuild144
-rw-r--r--eclass/dub.eclass312
-rw-r--r--net-misc/onedrive/onedrive-2.4.25-r1.ebuild13
-rw-r--r--sys-fs/btdu/Manifest5
-rw-r--r--sys-fs/btdu/btdu-0.5.1.ebuild45
-rw-r--r--sys-fs/btdu/metadata.xml7
-rw-r--r--x11-terms/tilix/tilix-1.9.6-r2.ebuild9
11 files changed, 671 insertions, 17 deletions
diff --git a/dev-libs/gtkd/gtkd-3.10.0-r1.ebuild b/dev-libs/gtkd/gtkd-3.10.0-r1.ebuild
index 653a41e..55d4108 100644
--- a/dev-libs/gtkd/gtkd-3.10.0-r1.ebuild
+++ b/dev-libs/gtkd/gtkd-3.10.0-r1.ebuild
@@ -5,7 +5,7 @@ EAPI=7
DESCRIPTION="GtkD is a D binding and OO wrapper of GTK+"
HOMEPAGE="http://gtkd.org/"
-LICENSE="LGPL-3"
+LICENSE="LGPL-3+-with-gtkd-exceptions test? ( LGPL-3+ )"
SLOT="3"
KEYWORDS="amd64 x86"
@@ -34,7 +34,8 @@ RDEPEND="
GTKD_USE_FLAGS=(gtk opengl sourceview gstreamer vte peas)
GTKD_LIB_NAMES=(gtkd gtkdgl gtkdsv gstreamerd vted peasd)
GTKD_SRC_DIRS=( gtkd gtkdgl sourceview gstreamer vte peas)
-IUSE="${GTKD_USE_FLAGS[@]:1} static-libs"
+IUSE="${GTKD_USE_FLAGS[@]:1} static-libs test"
+RESTRICT="!test? ( test )"
MAJOR=$(ver_cut 1)
MINOR=$(ver_cut 2-)
diff --git a/dev-libs/gtkd/gtkd-3.10.0-r2.ebuild b/dev-libs/gtkd/gtkd-3.10.0-r2.ebuild
index 5381385..9d898df 100644
--- a/dev-libs/gtkd/gtkd-3.10.0-r2.ebuild
+++ b/dev-libs/gtkd/gtkd-3.10.0-r2.ebuild
@@ -8,7 +8,7 @@ inherit multilib-minimal
DESCRIPTION="GtkD is a D binding and OO wrapper of GTK+"
HOMEPAGE="https://gtkd.org/"
SRC_URI="https://gtkd.org/Downloads/sources/GtkD-${PV}.zip"
-LICENSE="LGPL-3"
+LICENSE="LGPL-3+-with-gtkd-exceptions test? ( LGPL-3+ )"
SLOT="3"
KEYWORDS="~amd64 ~x86"
@@ -45,7 +45,8 @@ GTKD_LIB_NAMES=(gtkd gtkdgl gtkdsv gstreamerd vted peasd)
GTKD_SRC_DIRS=( gtkd gtkdgl sourceview gstreamer vte peas)
# static-libs I have no idea about. It makes a "static-library" that
# dynamically links phobos and uses dl to open the gtk+ libs at runtime.
-IUSE="${GTKD_USE_FLAGS[@]:1} static-libs"
+IUSE="${GTKD_USE_FLAGS[@]:1} static-libs test"
+RESTRICT="!test? ( test )"
REQUIRED_USE=${DLANG_REQUIRED_USE}
MAJOR=$(ver_cut 1)
diff --git a/dev-util/dub/dub-1.38.1-r1.ebuild b/dev-util/dub/dub-1.38.1-r1.ebuild
new file mode 100644
index 0000000..43506d2
--- /dev/null
+++ b/dev-util/dub/dub-1.38.1-r1.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DLANG_COMPAT=( dmd-2_{106..109} gdc-1{3,4} ldc2-1_{35..39} )
+DUB_DEPENDENCIES=(
+ gitcompatibledubpackage@1.0.1
+ gitcompatibledubpackage@1.0.4
+ urld@2.1.1
+)
+inherit dlang-single dub shell-completion
+
+DESCRIPTION="Package and build management system for D"
+HOMEPAGE="https://code.dlang.org/"
+
+GITHUB_URI="https://codeload.github.com/dlang"
+SRC_URI="
+ ${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${P}.tar.gz
+ test? ( ${DUB_DEPENDENCIES_URIS} )
+"
+LICENSE="MIT"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+RDEPEND+=" virtual/pkgconfig"
+
+src_unpack() {
+ dub_gen_settings
+ unpack "${P}.tar.gz"
+ use test && dub_copy_dependencies_locally "${DUB_DEPENDENCIES[@]}"
+}
+
+src_configure() {
+ # gdc generates unaligned memory accesses with optimizations and avx
+ # enabled. It has been fixed upstream. See:
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171
+ # Fixed in >=sys-devel/gcc-13.2.1_p20240330. Adding -mno-sse2 makes
+ # tests fail so defer to removing the common way users get avx
+ # instructions enabled (-march=native) and warn them.
+ if [[ ${ARCH} == amd64 && ${EDC} == gdc-13 && ${DCFLAGS} == *-march=native* ]]; then
+ ewarn "<sys-devel/gcc-13.2.1_p20240330 is known to generate invalid code"
+ ewarn "on amd64 with certain flags. For this reason -march=native will be"
+ ewarn "removed from your flags. Feel free to use -march=<cpu> to bypass this"
+ ewarn "precaution."
+ ewarn ""
+ ewarn "See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171"
+ dlang-filter-dflags "gdc*" "-march=native"
+ fi
+}
+
+src_compile() {
+ local imports=source versions="DubApplication DubUseCurl"
+ dlang_compile_bin bin/dub $(<build-files.txt)
+
+ # Generate man pages. Rebuilds dub so put it behind a USE flag.
+ if use doc; then
+ einfo "Generating man pages"
+ # You're supposed to be able to do ./bin/dub scrips/man/gen_man.d
+ # but it gives linking errors with gdc.
+
+ # $imports is set up above.
+ versions=DubUseCurl
+ dlang_compile_bin scripts/man/gen_man{,.d} \
+ $(sed '/^source\/app.d$/d' build-files.txt)
+ ./scripts/man/gen_man || die "Could not generate man pages"
+ fi
+}
+
+src_test() {
+ # Setup the environment for the tests.
+ local -x DUB="${S}/bin/dub"
+
+ # Note, disabling tests is possible yet very hard. You have to
+ # create a bash variable containing a regex (to be used in =~) that
+ # matches all the tests that you want *to* run. It's probably easier
+ # to delete the subdirectory under ${S}/test.
+
+ # Tries to connect to github.com and fails due to the network sandbox
+ rm -rf "${S}/test/git-dependency" || die
+ # Doesn't work on non amd64/x86
+ if [[ ${ARCH} != @(amd64|x86) ]]; then
+ rm -rf test/issue1447-build-settings-vars || die
+ fi
+
+ # gdc-13 doesn't support #include's in its importC implementation.
+ if [[ ${EDC} == gdc-13 ]]; then
+ rm -rf "${S}/test/use-c-sources" || die
+ fi
+
+ # See https://bugs.gentoo.org/921581 we have to remove -op (preserve
+ # source path for output files) from the flags lest the sandbox
+ # trips us up. This shouldn't be a problem anymore with dlang-single.
+ dlang-filter-dflags "*" "--op" "-op"
+
+ # Use -Wno-error or equivalent
+ local -x DFLAGS="${DCFLAGS} ${DLANG_LDFLAGS} $(dlang_get_wno_error_flag)"
+
+ # Run the unittests in the source files.
+ "${DUB}" test --verbose -c application || die
+
+ # Some tests overwrite DUB_HOME messing up the configuration file
+ # so put it in one of the other available locations
+ mkdir -p "${S}/bin/../etc/dub" || die
+ cp "${DUB_HOME}/settings.json" "${S}/bin/../etc/dub/settings.json" || die
+
+ # Run the integration tests.
+ FRONTEND="$(dlang_get_fe_version)" test/run-unittest.sh \
+ || die "Tests failed"
+}
+
+src_install() {
+ dobin bin/dub
+ dodoc README.md
+
+ # Make sure there are no man files in any other section.
+ use doc && doman scripts/man/*.1
+
+ newbashcomp scripts/bash-completion/${PN}.bash ${PN}
+ dozshcomp scripts/zsh-completion/_${PN}
+ dofishcomp scripts/fish-completion/${PN}.fish
+}
diff --git a/dev-util/serve-d/Manifest b/dev-util/serve-d/Manifest
index bedec91..6d53a02 100644
--- a/dev-util/serve-d/Manifest
+++ b/dev-util/serve-d/Manifest
@@ -4,31 +4,45 @@ DIST botan-math-1.0.3.zip 20009 BLAKE2B 7f087f9f8048d817e59004a725e6a33bf6577179
DIST cachetools-0.4.1.zip 2254928 BLAKE2B c0ccc604e35af4d9305edce56e24e7fdbd15a9244ef7259349edb3cf08459de3d81d19e466ce9bf81b0742a7d50f85c1542572923fed4265486f4d5de86b2b38 SHA512 24a652bed78212efd594abd8602775692a4a0bcaa7a590f280ce36a34e2fcca5e8268e8c86ded5d855a9a1cbd80b8c73b405471407a2e9d2bf1417133d7dd0ec
DIST dcd-0.16.0-beta.2.zip 364145 BLAKE2B 94adfc0eab31bd40f8e9a1ac56beb995280379a81045d581f34db52e83d9c2b986ff01f1113725383c54932f49c5b6a24d9d319ef5735ad6655fa7d1c0e55f78 SHA512 2e99fd65a3bb89d55e209cbd004fa4592c5da98e905fd117a1595a0f0d4ff90ac4651fc29214fb00fb6b53982b8506b493d829809a0692391d69ce3d06cac3c3
DIST dfmt-0.15.0.zip 317025 BLAKE2B 56414994e667d88fee2e157ff0f0e868d782514253116ee402d8a34ab1ba76b5af68715a80d8471982f45a23fe7e3d3412239de30336634d23adb7f76b71c0cd SHA512 6294445ed7a77c4b39985a75e9470efb2485c75172293c0b8f0423fe20863aaf1ff3bf47bd37e5f900930d52372453988e1419266f81b95629961b3b7da7352c
+DIST dfmt-0.15.1.zip 316024 BLAKE2B 870e46d41ef0ee7a22fb5a02a73897094e28d3d2668a9df51d49bdceeee82ba08158384789bc4f22cdb860c5d757fda5029174555db6e838cb4e91eab0294617 SHA512 deb488c4a39a60b775e89fdf28f507d12f8827e3ffa07a2a35f1e8527bb2efc379cb8bfd15bbbee267b9cf2df610acd47e2aabe2ae737e0bec993005e1f0861f
DIST diet-complete-0.0.3.zip 26469 BLAKE2B 8245bb736ee825389d8a51781598d887ee4b6d419daa5744cf8809bc7a81e2f94e35ce75be9641f9dabf5b54235a08224e405bcb9194d52b90180f1effebfaf4 SHA512 c07d70c2b0e7ebb35075d088cb421e3c59cc60d1a799d13052f420c566be039538eccf36c843925baf43eb320171db16565dacdf1551b74efcd467351e385082
DIST diet-ng-1.8.1.zip 57049 BLAKE2B 0c095008928eebc5964b4f6112dddec22c1ac757abbe51fafb79661ad9e71dbd93ec4836176921ae79c29222f80999067f8d8970d250911e1ad4ff7ac424f7e1 SHA512 0717abd6c14da984cc723e715f813128274dced16914cf7b83aaf33014a10e8bf98e7cda30afbf040969378c9378d6554328dcfcc7fe4ac97f11ce62af9abca6
DIST dscanner-0.16.0-beta.2.zip 175589 BLAKE2B c31040370d0a9970f57661be72340482242f2cebe1afd13cb6f3298f013aee156f6fd94450bdded4a834788731da971f02fa485b9bca8c50f21b4175dc61dad9 SHA512 a839e81f3b0e57d94a68004c921acbe8d7d8bfba6bd28c388ba097adc872c0818821ff83f71aa49d6f829bb306296c3e5784ce3f8efd0d6c0d7d0423fd238cc4
+DIST dscanner-0.16.0-beta.4.zip 181526 BLAKE2B b1458d494f1a11a70a3d51101dd0c4b8029b7367693e4992c0615aacc490d14a95df12b9ad721a71717b4809477b224dd92c4cc3638792c0e0278dc9c1954673 SHA512 0c92846fd378938e3103697ff11055983bcdfca874c5f2f541a63088b9fa0cb9170e1d0eabec0ce4e667f2604af0a741dbe0bcb181067b3d569a820bbe7ca779
DIST dub-1.33.1.zip 1817213 BLAKE2B f41cbb21558f50ec0adf5063d69fade7562ae085258eb725ea74840be36cf513d24dece4eb0f020f139f8caca6d282608e99f90f348581aca187da3731b2f60b SHA512 6fd6bc26c0e4f5df36371cdc208e5ab92adab10fea3093cd04b64d2bc80c32624907bae06301512408acbc3ce754847d7b732393e650b6174ec08319ecbc9a52
+DIST dub-1.36.0.zip 1850855 BLAKE2B c9a4089f13f0f80c77bb5be2bab1869a1abafdde7da8d8dd963b6e8f18d602801149c2b4d1b538f2424c21e9ddea7905570568fa047bc922ec2d0041ce817fd8 SHA512 5dfadcdc28ff09a8ee3aadac0305e9b988561a3ae087df63e6162dba116cfc386aae4be485eeccfd19465b5b24b73250f90d6c5cf8de474700485a8dbb135713
DIST emsi_containers-0.9.0.zip 70600 BLAKE2B e00d94acde01f5757928bda3adad945dcb38692544f91011aa05ff2fbd859f00c5ba67d1ec3bda5f4c90d42086d1ea65d418dafd02abdc8a7a7854707b2ebaf1 SHA512 cf599b675860bb91958bf78ba225e0d1755fec49ca1c1854d71f05ead6fd6037c30dfcc351e68accdbf42b9acc87c05731b8f8ac123962560869f46d4843c004
DIST eventcore-0.9.25.zip 173520 BLAKE2B cf547a44f534d1a186e9198e59e1d0ff7274babf2c1fe7b288c5052aee732eda29e4294ce924d192d027713af41e6f16f6a88f2539942a169153f1b177de5b9d SHA512 ba4d91aef8116d605d2a8ba8bf026a8e6acd163adc1350b1133776c93e58be4399efbd8b6b8b582be1924d848f3412836d34c959b532d71faa3c6f393adcb1e0
+DIST eventcore-0.9.28.zip 173901 BLAKE2B 54887bba898c8e691ff663323b3c6fa2c7301b70b6c00a9dcd5b9d89deff57516065a5a51a712bb58038c0d09f53d7b71a49b5f3663520aa5554878f57e8ee36 SHA512 ce91398d80d061feef9c6469dea9e1beda8a53f9cd2dbe52a76ab15bdba372c45303df2cb97af5a58c9e79a8d763d418667b05e3c9f3cc76569b722491858c34
DIST fuzzymatch-1.0.0.zip 9473 BLAKE2B 2dfbb967cb95c6241f72e3e30ce16dd616aed36f7ecb4d0d8e71a43d93fb0ee80e7762df8bdae8a192d1d004119f89f1db78f92aeee57d1fb0c0160dadb84aaf SHA512 9e2e039e8071120a01e09db13ce1f242d9690e5c19bdd2b28525a259d02d32165454c0f463860634bc4f522f41ff219858555178a38be40b0dcede83fba0cd01
+DIST gitcompatibledubpackage-1.0.4.zip 2041 BLAKE2B 595080956881fd86753b17cdbb12108ab03161806ca51c748017f29251dd47a95a0aebde4442db1783602cfa67a9593014ebb6ca591dcfec2b08eef3d737e2cc SHA512 12057117be99bb4d2351af74cfd36c050734383bfc44b185cf5f9737d982e9fd6840f6968a3246b625d4ec90e9d30f5e394f8fa1febb85464429d771bc8062d0
DIST inifiled-1.3.3.zip 10073 BLAKE2B 0a46ae4ea5475dbc4c1f6572e984316fad6dddae8867772c81b1d73fd8b5e962211262611be18d54e8683e5870b682e49ef0592dc3b3b6251ce054509d38f83a SHA512 f8c68f35a6a651d40f692f5f012d1f31be1750ff0423dbca1f812edd852e249d2c38fc98534c5ec901e5e35cd34eadb19f00fd2ae13fbfd7e4515a62efe92af4
DIST isfreedesktop-0.1.1.zip 3051 BLAKE2B 2a74ce6dfe0c9e2024032e8907cfa5506709954ef21e559256e452f7d789c7be94508f72aad26f64354567ca95a00f890f2125d48bbf6aea8092379ce574c038 SHA512 8d0a9c7305a8d8c7aea1847f1f10297da39cf2ad6f71fb609307ad4561e4c061ef9751e00b22c4bd8ff28e7692f5b34b32c397a9cba632f69b7c02d69078ca3a
DIST libasync-0.8.6.zip 165715 BLAKE2B 567761125bad13599a1380caf96fa14dc9c8804da718220e914a0ef0a22b2e9569b0a1a409b9b8a4eb4dd8bef2c324eb39e2b5bcc7e98780b3a718d686844fe2 SHA512 c7d2d125ce0404e96bfd3422cde79aff5a75cba925c426be2b407de45bc419754f08934b6aa19df8a25eca1a2265f81da1ec011cc8687bc9590390dc5767ec33
DIST libddoc-0.8.0.zip 27894 BLAKE2B e9b6cb653f404387dc70a93a2332c7b2d2cb69b48769ee1864338ba5c0f2fedc70c6176108e8584e6b6d6d9a6bec1cc7a657dbbdec9da887b1d5852604862bbc SHA512 f50e1746bd5f6e2fd2b7018568050637a329ee4bfd533361e34efe35837f4ffbc2ae94146c1a32d55aa6a2e1dbde9a797e78f638b8fc49a7a2ec0478fdc46a4a
DIST libdparse-0.23.2.zip 192466 BLAKE2B 96fb06d0952719dd9e9856efb2fb3fa125c8e5b7026d15e309dff380bee1e451ab9a5009fca1ee0f9f2ba55dc11ad318fc8214e7fbd2fcb47fdd8ec3fe9d1f00 SHA512 9abc405caf9090eae98ee7945d6c0dbd35c75426b3ffef13f2510e134864d3d58a512bce603c6b379ef695aca7b24d251fedb6cc933521af8cdd58edb3f3d3a3
+DIST memutils-1.0.10.zip 56693 BLAKE2B 1097169253905383acdc0a093ba5e82efa38fb5cd50f44967bb27d829392d8463786fc1e6acf7656905d8f80e4823f0943046439db501a2a75323c7cd0a9aca0 SHA512 a64f94f58261e5e8448868b37544b91a2de26fa3bbc1e6a89e7af2d6b15c6e9cfd6641f2872fc5c2713b22951f52fff2944055033a944a7a81d50593239f729b
DIST memutils-1.0.9.zip 56034 BLAKE2B e825f09ca86e6776263fa6ea176077f850c0866555bd617c64100c24a6bbfee8da9bb13bccf9aa0a01f4976259366c2a6db7b5b771c5e627e371077b26bdb31a SHA512 dff56bff6e27952a3b9460f8cddc1d089bf4ce8d84fc4879a1daecd60113f42037d17c3ffc4418ad02795bbf8db772af986af9459e026b92bfea3653f115e9cc
DIST mir-algorithm-3.20.4.zip 636242 BLAKE2B e0e8edfa5850808fa4721acbc550614376ce724b5af7b391e8fb8ec0d3879597206cafe529072fccc702b2f5cfce41c04c64bb1f3eac561ec16390b3696e94c5 SHA512 2fb6fd9099910d2ab59ef38e745e786589b6a7951fe0f6bc367247881d51cea9d09329fce2b5c56ce34ef0bc403d3f651b5235a68523c4d289dcfa0a2204b669
+DIST mir-algorithm-3.21.0.zip 636917 BLAKE2B e72be714b598beab8f2ed096ae74bed6fb4dbcc05548b87e9f9da9bad0c27f9c9436a739ff0acf63981e992629a442a6edd2cc4e46236d7171cc389bf2b8919f SHA512 c862a396bfee857d7f270e67db26f1a5b6b814cb31221f5ba5f17e51005ba5701676285646e233f563811acbb0d053ca44281f4ea4ffd3001d57ef2af0006c1c
DIST mir-core-1.5.5.zip 97922 BLAKE2B 9dbcf239385abf1f8f64a6f729379dd40f7c2dcf4f3306a20d38c8d831347c00661461386fa54b2885cf3d4216ce5e4d50753e89d02157c9878898ae607e6982 SHA512 dc0d1203e48041d5fbfc03cfca8ecdb89e0c76f04e9db2061839b62c07daa7e75cc1637c800a57e0e3ef8d5e17f32653a5d31c4594dd067c97ed2f876585d32f
+DIST mir-core-1.7.0.zip 99247 BLAKE2B e6bf67c38cf6fa4cc3fc6f001af1751b5f6e7ba073bf736388344e3e09a28a483a4f7cc3caaca500b9932696b5e33baf684a047ee967094e3554c23f3cba560d SHA512 763adfb63161e7aa0f78b3dc3e1b748227d3a04d652a93a45789a79418e9314230ac69a053f804dcc7a706cc33815a6bd0e568e839c5fc8c3cf328a71cebc072
DIST mir-cpuid-1.2.10.zip 25661 BLAKE2B 45f501ec3e6b6ebd483ff999d3e1d5a28c8e380e24f9ceea18cc05d5f3256cb0f75d5360f52ef0e53678477dd2d39d1e01a48bde9a889e5aee0657617984db9e SHA512 6baa282d5f5dc66bd7f1c6e1a5ef731a4dced8651019e7a05a82ac8b628c8fff42acbced131e89a2e4a54dfba008ba9e20cad6a2d6bc2f8a0ad6f841796ea355
+DIST mir-cpuid-1.2.11.zip 25689 BLAKE2B 7ea32f0c23f15b9c6153013b22a852b84e43342f889ba66e80c7ebdcccd7102e9ab8cc26686f88fd64a8a8d227f01f6a73277621b06a4238483dc631e47d3660 SHA512 a8615366fd7d83c79818086657558d598b96a9af4362ab4957a18a9a2fd3b7da11ca4af24f22e9502dd068d38ca5ce7b8cfa37614e5071080171fb448fe6f9fd
DIST mir-ion-2.1.8.zip 536679 BLAKE2B b8e5cb4ff539cf06b68f211ff618f0d7eb7fe23dd28ee654dafd27d373f6d03f499500450f54b22fe0a7c4ed909e40c0d9910441ae2aa91aa00138715261a890 SHA512 06a6428e6ac07994e6b9c4a8c6935cdc503d115474622a0fa9f922d950d0e0c4c2aaef2ad7fadc376f526c660ccc6775b8da829c7846820312388bfe35e61a06
+DIST mir-ion-2.2.1.zip 536785 BLAKE2B 4d836dc695a2409fe59b92fc8dc0ce902d281b6e458aa1b244521aca4b28710c58c9eec3b3e369197284e48a055c18e72b49ad5059b4c731d704eb01cc79032d SHA512 264cfe5b955c51a2eea7f41f01ac095271939e7ddbd58be2521c687ca57f5c51363d251570928d6d37a1fe1f428c2a3ecf78cd3914d3bdc421fea70a3bd41b4c
DIST mir-linux-kernel-1.0.1.zip 77709 BLAKE2B ce06e2b202f641b21dcfb6436506654540eae5c234826a0c374e5f0dc894eddf4a95ccead70c973856a06af9abac6918d8ac62728c219683b617f2dc379bc2d0 SHA512 326dffeb1d28d80c18b38e0b62a75a08512114a159680d06cb480538cbda7449f80b1b4405ee25f03586e43676bc349c5bb58f8eb1166c5f446b3cc51a4a6353
DIST msgpack-d-1.0.4.zip 159970 BLAKE2B ddc8f653e32c2e1d813b359ca5cd6ffc144ac029964e35392071cfaf387714bde6bced8bfe9a1b0c4f4d0fa33b3d2405334c3134a8d1180eb763dfd6d8ee7048 SHA512 1f7dedb3b97020255d8171223200a6249006653490c6127f87a3145ad129d0d28c5c35ff49b80d8b56cc116d5348f828552247fe5e705dd4d63edcc4357caa0e
+DIST msgpack-d-1.0.5.zip 160333 BLAKE2B eea11c4999cb43b68622a81d97c9bd459c4d0b1f8460b4c169afb35eade99f1bf5f2f1a5ffd5849ab00b5a7c632841fcf86aa6a3e6a71eaac4ba45b50c7d092d SHA512 202b09e5e202b05a0a7df2ce71c7f8086d0811bb16a4e5c8ac3b0f3a62863b528aee371c31a8efd8eeeb60102fce98b2fe9aefc639a37fa58ee53120fd2538bc
DIST openssl-3.3.0.zip 2175674 BLAKE2B d6187757958ae2cece13bfe5049271ee0aa9f6c6178c681a6f51ff400f6d9d6b0c93074580e7a3792ffec8fd71be56558d674b5f2036facea5db772f27581a5d SHA512 49e41a356bdc2f56d18595e54720464a03158be970834bd62a2812c71f7e3369847bd841861d6407155cad4d6cd19a1250423149555146b6ef7680f33f206719
+DIST openssl-3.3.3.zip 2176223 BLAKE2B c45eb8f16429bfa2cbd0377bfdbd96e029cef9342dc82cffaaa781907fb0b9303de970ecb4dc656f07545113e1a5d55c65f136c91ceadf626ffec8ecac7e9acf SHA512 60c2ec32e03cdad2eb156c3e8ebc5a9ea2861ea5ccb16291e27fea4c7431e2a9c75b9937915fbdec136915c9c2862774e08aca186cbce52e15b671c257a5a9b0
DIST openssl-static-1.0.2+3.0.8.zip 35844001 BLAKE2B ae5e0207cd4b166a68d3ae531cadea9559de9ae9955648406053e6c0b27a897b768071a62692e3e90ca379d83d7cc6e80db2da7a00db575abe0a6442cbea62e4 SHA512 60861f9394e8cea95f566a1dadc1f37e2ac9ae10fbe52060005e29f5a5c45cba138e1c25395be4eda0a935cfafa49d123339daf0551a75f1f9050925c270882e
DIST requests-2.1.1.zip 608517 BLAKE2B 24d078c1103ce10c6ac3aa3436ece1f37e93aefe199fb5b75661afe183c4b5e986e2d13c9530f8b58bac87cdf8791762b14b7adda6d706073e8dee95f3747061 SHA512 528c6d563808c4d089e89f8fcb9e7e347934e9c948e827bbe7f7611bc18a4fe4c1c5d45873041d75c51d783ba1caa5d48ab9b459f7a520d420a01abdede21d37
+DIST requests-2.1.3.zip 608602 BLAKE2B 36368f4c2e22c5f4137d2242a375dd2f0ce23ccdb4112ab024e88437081e861ab1dae110c003434c8dfe47c73d899d4606a3cfca426fe8c9ac02497d5abe82cf SHA512 b8227dca8d3f773bf7049ca07584e2f21f5c2d8b8da93fa23f4130d582641467b6f708c9c82f01cfa3a9a508ebeff91fdbd6f947edcf6e997a76524078405bd0
DIST rm-rf-0.1.0.zip 1746 BLAKE2B 1634cce773cbc0c257006ca60ddb4249978a80b8a2019c88820d7f6d61786c8cab47b1d12e409cf6c7844b843f0da42e6e652e37d21f1ae50c4bbe30b5955850 SHA512 652d0ed64d3ab9ecb3648c2cedb6f80d4cb3fdff97d9e1ced52f1c3cb6a403c3759e9fcea6e727cee2c8cc1df14ebddaa1715bfc939d779475f92cc25f9e98d9
DIST sdlfmt-0.1.1.zip 19696 BLAKE2B d566bbebcaf4b3181b5bbd3986252bc06de7d9ec11bdfd43633ba84de23ab39f1212858db7a7c7dba3d0c28f33c2e772a52d35e88df1604fbcddd34155434c81 SHA512 d64bbd52cfca9fb19e16af3e5f712ad9adb1c9b4c945e0629894fc97744049b13716a0731df51404d2499c4b5a0ce1a4200a430d7c296f14c14946ce0ca08b8b
DIST sdlite-1.1.2.zip 17376 BLAKE2B 91147bbdf9eba4d0daafeed3bce079afdd1f101fc45f2eb8c8ad64fc48dd4617ce6ad4ca2f3cc13ec3b4f2c569ca5ab122dc8c61f0012b5d6e4092b1a25f4228 SHA512 320d83831413dc3197364142df93e34249b0a9b81d07bd94214dc22193d73f9e2c8d8f79c169f690f5b30e0fb8ca760d6dd7d8e7648923941a408da90d68f0eb
+DIST serve-d-0.8.0-beta.17.zip 426973 BLAKE2B 3a7cb7c627a47a6d342f6ee6389d83637fb8d7a9726fc96e7cc25579a01004f35edc417b86a9b1bb00cf9847e27ff04a08cea72400735181c7edc8906ab67d87 SHA512 defb2cc9879121e6d56392cd0c6b3d08259fa09c5a04fcb4156bb31ae95153ea02d673030f145f09f85b5ed1e5c0e686325a263a018f563df3b759da9e132693
DIST serve-d-0.8.0_beta15.zip 420782 BLAKE2B 0a507c9e61f4cbe19074522600ea9d44cf9fae9af672a352514f89d9d45718966e115a1396721d8003174edde3176adaa3c61108d96e6c1d9e9e3c0c3c29980a SHA512 1967517fce65ba4a38dbf8b69876a12393b09cca1fddd321e30b0df8479c29e259b0432330c1b0a5bce6301ec0ac09954d3b1685e6d1f92e96915546b8c9691c
DIST silly-1.1.1.zip 41851 BLAKE2B ef244037a90411d102a68682100f6b80f2523dc339b390fc0b19bfc33b660e4249a38917fa6a0915b9e20ee96b3e73ba6d2a7ae37452b90f13e0144070cfd528 SHA512 da868446eebc3c3dffea64a71f46849385cbbdc43494ad5f31ca74b90f104b2a9c790076ab394d9e320a7ac54f87a0882fb602e38554d175de142901bc04e5b7
DIST standardpaths-0.8.2.zip 19648 BLAKE2B d93950d1fd324cf16512fc5c275fb1b68136656455929cff93e4d857b27038a8b8407c83cc1283875e4b843910e2e02b1d9434ef42c5d15ed4d0ec28acf54b71 SHA512 961752bb9a8c8398f6226951a0adf2462e40e977c6aa60a6a6bdde2e95f24ddc4a373f72fba4521bdcd02d2b8e1d7122d9b604ae4e91b45993e6461db4d279ef
@@ -36,6 +50,9 @@ DIST stdx-allocator-2.77.5.zip 119932 BLAKE2B 143afc788fc68d6bb356449c7a04f34279
DIST taggedalgebraic-0.11.22.zip 25727 BLAKE2B 2449d0a68a77890332401ce6e74aca1b86e0b75857fbacf5704cb9d88b21fe86f0f882226a77fd754acd0f02d8357f44f6a8c2f01a5c4c93064a81b5f3436034 SHA512 6d405d7e83a9a72524121abb9170f6d99c210fc12f670eed1056b65866e411b5ea19ea076a80bde061d10ae6895b4e364afd8e246738250dc98885df7087e9b9
DIST test_allocator-0.3.4.zip 6128 BLAKE2B cb30faa8606d14f3d4ff3f1e875f0da1acaa561b1c047f1a1aed0a674f90b5928541fc6a6f789ae765aa096fd77622347ffd4b17c2e55b69aa3aadaf216e0c9b SHA512 1adc80cae2410d832a61a39025487cd80a727f75ade5c11d564af27517cd3d8b77b71f21a37e151e356a0276cb3d3c5d28e5e464b36ff34e91a8b7a2a87b5dd8
DIST unit-threaded-0.10.8.zip 121340 BLAKE2B 962c75ae4111344c20229660514f259099c6b67a5babf7bb1b740e072c7223300a6758e1246fddc493606a63047547409123036523d86cac421537beeb5a1f8c SHA512 07be27652f43746d7823959c3327d0f48e8b77c1fa2ded0a0965512edcfebd3e521f2177a0446db6c2a2950d76f7dd3f6530cca4d988f720e8623dc84778a990
+DIST vibe-container-1.1.0.zip 17219 BLAKE2B 727767cb85148a6ef3dd80a5e08e7227072af38058c52fd1cbf5cc2bf9e3874b6f5fdb818fff2c86c7366adca05301412fb250350a808303ab16da48b84121c0 SHA512 54e41c7f80b23cfa7a9142b9638139bf46ba5545c95e7f248f6c49195243fca9a7dc046218c700bd9bc655ff87a4c9a9a76025b5e7386ae5b2a5eb03b61cc6ec
DIST vibe-core-2.2.0.zip 193504 BLAKE2B 9f45019edf10e20ab57bf67c033be6779f4c632daca630b6dc879f4a0a306900763325e7e7b6a69d76d4fa4af5eeeb9fdbf107864afe7c39d225af57b92a4a1b SHA512 f7329ad430228f727c3c13e3a584394c5f2da82f7825a3c55c2e9d674527d6c7e271040c5c516b46956e2eb756bfd9895f9fea2bd035430f2f55fc9d62502377
+DIST vibe-core-2.7.4.zip 195593 BLAKE2B 5e7a8229cc1f4b1d7b94523c7d068e899f74fc86c4af9d9a8122969216deb7124582c7835b4f131cd3baeed7a4adc03bc5fb46516400bc4edf576b046d08e39e SHA512 86e2fd03ff43522cf91d048e3c0f953e4a80a1251358a8582b4eb3fbfa406cd9a89ab306becb1a0c1e6a3bcb1003bc082099d70a68bef58816b7686d0aee9b90
DIST vibe-d-0.9.6.zip 4046046 BLAKE2B b19255033041453fd4f445ee87846d29904d4a5653f2116eea8cb6079f9627a2d192058bb4b61be1ad60603f63365d02576ff66cb43a340713c4bdec077b9f65 SHA512 1d842ef26d319324fe390701cd03b746be90d4cf1019f7cbadb20088dedbfc654383598057d9029296c4712cd6a57e7384446f47cfda7789db3854a82773ed2c
+DIST vibe-d-0.9.7.zip 4049466 BLAKE2B f3199b7af47b2524f82cef999a71cf5b7cffc4350f2f135f6f09378a4be7f3002b1ee98565bbd1d9e038043f7ada3e53f78030e6f791a1bcd2d6520c2ae0f622 SHA512 c8cae7c29d71251f13678a97eb4e158024310fb8dc6018d84dce7136607fd469ab9dd7e552d516b3ad89e81c2df715c94212426c00ae84e95e52e49bcb8be75d
DIST xdgpaths-0.2.5.zip 7485 BLAKE2B 30fae47316c1c57eab5de21192a7183c5d6cba63dec3f1823a2814b5fe28dad85f5790672df2b8314d7c2ee1c155861ce73bc182e5010759fb7bd9a301e455c5 SHA512 2e90ced57d97189001d0c9e8007ddbe309233b3574c714c85e90cd05fc23ef7edac51c7cc1f55be1f5f79e96a1985dbf849103e7ce91ac7b896e5f4a38c6fd38
diff --git a/dev-util/serve-d/serve-d-0.8.0_beta17.ebuild b/dev-util/serve-d/serve-d-0.8.0_beta17.ebuild
new file mode 100644
index 0000000..5a0dd02
--- /dev/null
+++ b/dev-util/serve-d/serve-d-0.8.0_beta17.ebuild
@@ -0,0 +1,144 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_rs 3 - 4 .)" # 0.8.0_beta15 -> 0.8.0-beta.15
+# gdc currently fails due to a bug in mir-cpuid, see: https://github.com/libmir/mir-cpuid/pull/46
+DLANG_COMPAT=( dmd-2_{106..109} ldc2-1_{35..39} )
+DUB_DEPENDENCIES=(
+ "automem@0.6.9"
+ "cachetools@0.4.1"
+ "dcd@0.16.0-beta.2"
+ "dfmt@0.15.1"
+ "diet-complete@0.0.3"
+ "diet-ng@1.8.1"
+ "dscanner@0.16.0-beta.4"
+ "dub@1.36.0"
+ "emsi_containers@0.9.0"
+ "eventcore@0.9.28"
+ "fuzzymatch@1.0.0"
+ "inifiled@1.3.3"
+ "isfreedesktop@0.1.1"
+ "libasync@0.8.6"
+ "libddoc@0.8.0"
+ "libdparse@0.23.2"
+ "memutils@1.0.10"
+ "mir-algorithm@3.21.0"
+ "mir-core@1.7.0"
+ "mir-cpuid@1.2.11"
+ "mir-ion@2.2.1"
+ "mir-linux-kernel@1.0.1"
+ "msgpack-d@1.0.5"
+ "openssl@3.3.3"
+ "openssl-static@1.0.2+3.0.8"
+ "requests@2.1.3"
+ "rm-rf@0.1.0"
+ "sdlfmt@0.1.1"
+ "sdlite@1.1.2"
+ "serve-d@0.8.0-beta.17"
+ "silly@1.1.1"
+ "standardpaths@0.8.2"
+ "stdx-allocator@2.77.5"
+ "taggedalgebraic@0.11.22"
+ "test_allocator@0.3.4"
+ "unit-threaded@0.10.8"
+ "vibe-container@1.1.0"
+ "vibe-core@2.7.4"
+ "vibe-d@0.9.7"
+ "xdgpaths@0.2.5"
+)
+inherit check-reqs dlang-single dub multiprocessing
+DUB_TEST_DEP="gitcompatibledubpackage@1.0.4"
+
+DESCRIPTION="Microsoft language server protocol implementation for D"
+HOMEPAGE="https://github.com/Pure-D/serve-d"
+SRC_URI="
+ ${DUB_DEPENDENCIES_URIS}
+ test? ( $(dub_dependencies_uris "${DUB_TEST_DEP}") )
+"
+S="${WORKDIR}/${PN}-${MY_PV}"
+LICENSE="MIT BSD"
+LICENSE+=" Apache-2.0 Boost-1.0 BSD GPL-3 LGPL-3 MIT openssl public-domain Unlicense"
+LICENSE+=" test? ( ISC public-domain )" # test dependencies. These do _not_ map to test? () in SRC_URI
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+CHECKREQS_MEMORY="10G" # mir is a chonker
+
+# Lower versions of dcd won't immediately fail but they won't work as
+# intended (no autocompletion for example).
+COMMON_DEPEND=">=dev-util/dcd-0.15.2"
+RDEPEND+=" ${COMMON_DEPEND}"
+BDEPEND+=" test? ( ${COMMON_DEPEND} )"
+
+src_unpack() {
+ dub_src_unpack
+ use test && dub_copy_dependencies_locally "${DUB_TEST_DEP}"
+}
+
+src_configure() {
+ # There's an issue with ldc that when -mcpu=native is specified you
+ # get an llvm stack trace. It seems to be related to the use of
+ # certain intrinsics that depend on the target cpu.
+ if [[ ${EDC} == ldc2* && ${DCFLAGS} == *-mcpu=native* ]]; then
+ ewarn "-mcpu=native causes issues with ldc2 so it will be removed"
+ ewarn "from your flags."
+ ewarn "See: https://github.com/libmir/mir-ion/pull/46"
+ fi
+ dlang-filter-dflags "ldc2*" "-mcpu=native"
+
+ # See https://issues.dlang.org/show_bug.cgi?id=24406 and
+ # https://github.com/Pure-D/serve-d/issues/360
+ # In short, we have to remove -O from DCFLAGS for dmd.
+ if [[ ${EDC} == dmd* && ${DCFLAGS} == *-O* ]]; then
+ ewarn "Optimizations will be turned off for this build with dmd"
+ ewarn "See: https://github.com/Pure-D/serve-d/issues/360"
+ fi
+ dlang-filter-dflags "dmd*" "-O*"
+}
+
+src_test() {
+ # Tests all submodules in dub.json.
+ local subpkg
+ for subpkg in ":http" ":protocol" ":lsp" ":serverbase" ":dcd" ":workspace-d" ""; do
+ edub test ${subpkg} --build=unittest -- --threads="$(makeopts_jobs)"
+ done
+
+ edub build --root=null_server
+ edub run --root=null_server_test
+
+ # A simplified version for ${S}/test/runtests.sh
+ pushd test > /dev/null || die
+
+ # Tries to update dependencies timing out for each one which sums up
+ # to about 4 minutes of doing nothing. There is no direct way to
+ # configure the code not to contact https://code.dlang.org
+ rm -rf tc_dub || die
+ # Uses basename to run compiler binaries which happens to work since
+ # dlang-utils.eclass creates symlinks for them. Like tc_dub spends
+ # ~40 seconds waiting for code.dlang.org
+ rm -rf tc_dub_empty || die
+
+ local testcase
+ for testcase in tc*; do
+ pushd "${testcase}" > /dev/null || die
+ einfo "Running testcase ${testcase}"
+ edub run
+ popd > /dev/null || die
+ done
+ popd > /dev/null || die
+}
+
+src_install() {
+ dobin "${S}/serve-d"
+ dodoc README.md editor-*.md
+}
+
+pkg_postinst() {
+ elog "You will need to configure your editor to use serve-d."
+ elog "For instructions check out the README and editor-* files in"
+ elog " ${EROOT}/usr/share/doc/${PF}"
+}
diff --git a/eclass/dub.eclass b/eclass/dub.eclass
new file mode 100644
index 0000000..41fff29
--- /dev/null
+++ b/eclass/dub.eclass
@@ -0,0 +1,312 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: dub.eclass
+# @MAINTAINER:
+# Andrei Horodniceanu <a.horodniceanu@proton.me>
+# @AUTHOR:
+# Andrei Horodniceanu <a.horodniceanu@proton.me>
+# @BUGREPORTS:
+# Please report bugs via https://github.com/gentoo/dlang/issues
+# @VCSURL: https://github.com/gentoo/dlang
+# @SUPPORTED_EAPIS: 8
+# @BLURB: common functions and variables for dub builds
+# @DESCRIPTION:
+# This eclass provides a wrapper for calling dub as well as default
+# implementations for src_compile and src_test. It also provides
+# dub_src_unpack which will make dub dependencies available as well
+# as configure it to work best in an ebuild environment.
+#
+# By default this eclass will set *DEPEND to depend on both dub and a D
+# compiler. For this reason you *must* inherit either dlang-single or
+# dlang-r1 before inheriting dub. The only alternative is using
+# DUB_OPTIONAL.
+# @EXAMPLE:
+# A program using dub.eclass:
+#
+# @CODE
+# DLANG_COMPAT=( dmd-2_109 gdc-1{3,4} ldc2-1_39 )
+# DUB_DEPENDENCIES=(
+# "automem@0.6.9"
+# "cachetools@0.4.1"
+# "dcd@0.16.0-beta.2"
+# "program@8.0.3"
+# "silly@1.1.1"
+# )
+# inherit dlang-single dub
+# SRC_URI="${DUB_DEPENDENCIES_URIS}"
+#
+# src_install() {
+# dobin "${S}/program"
+# }
+# @CODE
+
+case ${EAPI} in
+ 8) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+if [[ ! ${_DUB_ECLASS} ]]; then
+_DUB_ECLASS=1
+
+inherit dlang-utils edo
+
+# @ECLASS_VARIABLE: DUB_DEPEND
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Dependency string on dev-util/dub and other needed programs that can
+# be used in BDEPEND when DUB_OPTIONAL is set. When DUB_OPTIONAL is
+# empty the dependency is added automatically to BDEPEND.
+DUB_DEPEND=">=dev-util/dub-1.38.0 app-arch/unzip"
+# 1.38 - respect skipRegistry value in configuration file
+
+EDUB_HOME="${WORKDIR}/dub_home"
+
+# @ECLASS_VARIABLE: DUB_OPTIONAL
+# @DEFAULT_UNSET
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Setting this to a non-empty value inhibits the eclass from modifying
+# variables like *DEPEND and REQUIRED_USE and from exporting phase
+# functions.
+#
+# If set, you may need to call dub_gen_settings or dub_src_unpack
+# manually.
+
+# @ECLASS_VARIABLE: DUB_DEPENDENCIES
+# @DEFAULT_UNSET
+# @PRE_INHERIT
+# @DESCRIPTION:
+# A bash array of dub dependencies. Each dependency should be a string
+# in the form `name@version`.
+#
+# Example:
+# @CODE
+# DUB_DEPENDENCIES=(
+# "dfmt@0.15.1"
+# "silly@1.1.1"
+# )
+# @CODE
+
+# @ECLASS_VARIABLE: DUB_DEPENDENCIES_URIS
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# The transformed DUB_DEPENDENCIES as a string to be placed in
+# SRC_URI
+
+# @FUNCTION: dub_dependencies_uris
+# @USAGE: [dependencies]...
+# @DESCRIPTION:
+# print a string to be placed in SRC_URI for all the dependencies given
+# as arguments. Each dependency should be in the form `name@version`,
+# just like the elements in DUB_DEPENDENCIES.
+dub_dependencies_uris() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local registry="https://code.dlang.org/packages"
+ local dep name ver
+ for dep; do
+ name="${dep%@*}"
+ ver="${dep#*@}"
+ echo "${registry}/${name}/${ver}.zip -> ${name}-${ver}.zip"
+ done
+}
+
+# @FUNCTION: _handle_dub_variables
+# @INTERNAL
+# @DESCRIPTION:
+# Verify that DUB_DEPENDENCIES is set appropriately, transform it into
+# DUB_DEPENDENCIES_URIS, and set any other variables.
+_handle_dub_variables() {
+ [[ -v DUB_DEPENDENCIES && ${DUB_DEPENDENCIES@a} != *a* ]] \
+ && die "DUB_DEPENDENCIES must be an array"
+ export DUB_DEPENDENCIES_URIS="$(dub_dependencies_uris "${DUB_DEPENDENCIES[@]}")"
+
+ [[ ${DUB_OPTIONAL} ]] && return
+
+ if ! has dlang-single ${INHERITED} && ! has dlang-r1 ${INHERITED}; then
+ eerror
+ eerror "dlang-single or dlang-r1 have not been inherited before dub.eclass"
+ eerror "and DUB_OPTIONAL has not been set."
+ eerror "Please inherit dlang-single or dlang-r1 before inheriting dub."
+ die "Neither dlang-single nor dlang-r1 are inherited"
+ fi
+
+ [[ ${CATEGORY}/${PN} != dev-util/dub ]] \
+ && BDEPEND="${DUB_DEPEND}"
+
+ BDEPEND+=" ${DLANG_DEPS}"
+ DEPEND="${DLANG_DEPS}"
+ RDEPEND="${DLANG_DEPS}"
+ REQUIRED_USE="${DLANG_REQUIRED_USE}"
+}
+_handle_dub_variables
+unset -f _handle_dub_variables
+
+# @FUNCTION: edub
+# @USAGE: [dub_args]...
+# @DESCRIPTION:
+# A dub wrapper that will automatically set relevant variables and die
+# on failure. nonfatal can be used with edub.
+#
+# Meaningful variables for this function are:
+#
+# $DC - typically set by dlang-r1.eclass or dlang-single.eclass to point
+# to the D compiler and respected by dub.
+#
+# $DFLAGS - dub will use these flags when compiling + linking. If the
+# variable is unset (empty does not count) this eclass will default to
+# "${DCFLAGS} ${DLANG_LDFLAGS} /-Wno-error/" for its value.
+#
+# $NO_COLOR - if non-empty dub will not print colors
+edub() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local -x DFLAGS=${DFLAGS-${DCFLAGS} ${DLANG_LDFLAGS} $(dlang_get_wno_error_flag)}
+ local -x DC=${DC} NO_COLOR=${NO_COLOR}
+ # FIXME dub directly calls pkg-config without a way to configure it
+
+ debug-print "${FUNCNAME}: DC=${DC}"
+ debug-print "${FUNCNAME}: DFLAGS=${DFLAGS}"
+
+ edo dub --verbose "${@}"
+}
+
+# @ECLASS_VARIABLE: DUB_LOCAL_REGISTRY
+# @DESCRIPTION:
+# A directory in which dub package archives can be placed for dub to be
+# able to fetch them in the future. This is useful only if dub _must_
+# perform a fetch operation, perhaps as part of tests, in all other
+# cases DUB_DEPENDENCIES should be used instead.
+#
+# You can use dub_copy_dependencies_locally as a convenience function.
+#
+# Example:
+# @CODE
+# src_unpack() {
+# dub_src_unpack
+# use test && dub_copy_dependencies_locally "my_packages@1.1.0"
+# }
+# src_test() {
+# dub_src_test
+#
+# # additional test that performs `dub fetch my_package@1.1.0`
+# }
+# @CODE
+DUB_LOCAL_REGISTRY="${EDUB_HOME}/local_registry"
+
+# @FUNCTION: dub_copy_dependencies_locally
+# @USAGE: [dependencies]...
+# @DESCRIPTION:
+# Copy the given dependencies to ${DUB_LOCAL_REGISTRY}. This function
+# can only be called inside src_unpack.
+#
+# The format of the arguments is the same as the format of
+# ${DUB_DEPENDENCIES}.
+dub_copy_dependencies_locally() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ [[ ${EBUILD_PHASE} == unpack ]] \
+ || die "${FUNCNAME} must only be called inside src_unpack"
+
+ local dep
+ for dep; do
+ einfo "Making ${dep} available locally"
+ cp "${DISTDIR}/${dep/@/-}.zip" "${DUB_LOCAL_REGISTRY}" || die
+ done
+}
+
+# @FUNCTION: dub_gen_settings
+# @DESCRIPTION:
+# Generate a settings.json file for dub.
+dub_gen_settings() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ mkdir -p "${EDUB_HOME}" || die "Could not create dub home directory"
+ mkdir -p "${DUB_LOCAL_REGISTRY}" || die "Could not create dub registry directory"
+
+ # dub merges the settings from all configuration files so settings
+ # which greatly change the build need to be set to a safe
+ # value. Unfortunately the 'customCachePaths' and 'registryUrls'
+ # settings are cumulative, i.e. they will append to the previous
+ # value, not overwrite it.
+ cat > "${EDUB_HOME}/settings.json" <<-EOF || die "Failed to create dub settings.json file"
+ {
+ "registryUrls": [
+ "file://${DUB_LOCAL_REGISTRY}"
+ ],
+ "skipRegistry": "standard",
+
+ "customCachePaths": [],
+ "defaultCompiler": "",
+ "defaultArchitecture": ""
+ }
+ EOF
+
+ export DUB_HOME="${EDUB_HOME}"
+}
+
+# @FUNCTION: dub_src_unpack
+# @DESCRIPTION:
+# Unpack all sources and generate a dub configuration file
+dub_src_unpack() {
+ dub_gen_settings
+
+ # DUB_DEPENDENCIES can contain entries like:
+ # dfmt@0.15.1 which maps to the archive dmft-0.15.1.zip
+ #
+ # There can also be dependencies like:
+ # botan-math@1.0.4 -> botan-math-1.0.4.zip
+ # botan@1.13.6 -> botan-1.13.6.zip
+ #
+ # Because of the ambiguous `-' character create a map
+ # from the archive back to the dependency.
+ local -A dubFiles
+ local dep
+ for dep in "${DUB_DEPENDENCIES[@]}"; do
+ dubFiles["${dep/@/-}.zip"]="${dep}"
+ done
+
+ local dubFetch=(
+ dub
+ --skip-registry=all
+ --registry="file://${DISTDIR}"
+ fetch
+ )
+ local dep file
+ for file in ${A}; do
+ if [[ ${dubFiles[${file}]} ]]; then
+ # file can be 'dfmt-0.15.1.zip'
+ # in which case dubFiles[${file}] wil be 'dfmt@0.15.1'
+ dep="${dubFiles[${file}]}"
+ edo "${dubFetch[@]}" "${dep}"
+
+ # If it's the main package extract it for ${S}.
+ # In case of prereleases:
+ # serve-d-0.8.0_beta17 -> serve-d-0.8.0-beta.17.zip
+ [[ ${file} == ${PN}-$(ver_rs 3 - 4 .)* ]] \
+ && unpack "${file}"
+ else
+ unpack "${file}"
+ fi
+ done
+}
+
+# @FUNCTION: dub_src_compile
+# @DESCRIPTION:
+# Compile the package using dub
+dub_src_compile() {
+ edub build
+}
+
+# @FUNCTION: dub_src_test
+# @DESCRIPTION:
+# Test the package using dub
+dub_src_test() {
+ edub test
+}
+
+fi
+
+[[ ${DUB_OPTIONAL} ]] \
+ || EXPORT_FUNCTIONS src_unpack src_compile src_test
diff --git a/net-misc/onedrive/onedrive-2.4.25-r1.ebuild b/net-misc/onedrive/onedrive-2.4.25-r1.ebuild
index b88b785..14fa9e7 100644
--- a/net-misc/onedrive/onedrive-2.4.25-r1.ebuild
+++ b/net-misc/onedrive/onedrive-2.4.25-r1.ebuild
@@ -3,6 +3,9 @@
EAPI=8
+DLANG_COMPAT=( dmd-2_{106..109} ldc2-1_{35..39} )
+inherit bash-completion-r1 dlang-single systemd
+
DESCRIPTION="Free Client for OneDrive on Linux"
HOMEPAGE="https://abraunegg.github.io/"
SRC_URI="https://codeload.github.com/abraunegg/onedrive/tar.gz/v${PV} -> ${P}.tar.gz"
@@ -10,11 +13,9 @@ LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
+# no straight forward way to run unittests. Probably need to do DFLAGS=-unittest econf
IUSE="debug libnotify"
-
-DLANG_COMPAT=( dmd-2_{106..108} ldc2-1_{35..38} )
-
-inherit dlang-single systemd bash-completion-r1
+RESTRICT=test
REQUIRED_USE=${DLANG_REQUIRED_USE}
RDEPEND="
@@ -55,8 +56,4 @@ pkg_postinst() {
elog "OneDrive Free Client needs to be authorized to access your data before the"
elog "first use. To do so, run onedrive in a terminal for the user in question and"
elog "follow the steps on screen."
- elog
- ewarn "When upgrading from 2.3 you are required to reauthorise your client."
- ewarn "This is due to changing the client identifier to assist with resolving"
- ewarn "the correct handling of 429 error responses (activityLimitReached)"
}
diff --git a/sys-fs/btdu/Manifest b/sys-fs/btdu/Manifest
new file mode 100644
index 0000000..d956f89
--- /dev/null
+++ b/sys-fs/btdu/Manifest
@@ -0,0 +1,5 @@
+DIST ae-0.0.3236.zip 670165 BLAKE2B d6ca10a81a235bc2d19dc5c46f25158a19ebf950a7878d29723bf464c4a8f9d113a0084694f0ceafdf1ba3db6f11992961ce490747b2cbc171642e9f05846d8c SHA512 bf758929c839f80c07a301388b57813f9864a75504b6cc3019d43b887ee03f8321327f3e0bacf33053b60153ad50142869b9e2a7d0c7cbe35b1c2ec3c529b9c1
+DIST btdu-0.5.1.zip 59342 BLAKE2B 7401e49cc43d879af6bb69d1e8d39daaaafece4c5320797cd6fa14bdb040f553c1fc27124c095d5b0e075b8252ed948cab3d676b7db307b6d8e5343846cee0fb SHA512 aaa1e34caa9087101b0d50f32b55a27d9cc3118774fac1320d5d214c12f6971f1cd89fe6dae8184e8c61b980ec78bd58fbc373031e8dcd38b751be083a5fb327
+DIST btrfs-0.0.18.zip 47737 BLAKE2B 3b539559dfa4a0cfe3265144f5d72f316517d5276b6ced8340e6377864ecf61bb2188db844095cf5d29fbb2b4e19bf49e685b339f075154f00250bc0ac96b6ba SHA512 044960d27032e7d6ee70cd4aaca5c9a59f2c8ad54222be1da7710ade50d3c0cab72cabb4474cd1045484959b00921307a67d79eef3afd80e7be781320ddd33eb
+DIST emsi_containers-0.9.0.zip 70600 BLAKE2B e00d94acde01f5757928bda3adad945dcb38692544f91011aa05ff2fbd859f00c5ba67d1ec3bda5f4c90d42086d1ea65d418dafd02abdc8a7a7854707b2ebaf1 SHA512 cf599b675860bb91958bf78ba225e0d1755fec49ca1c1854d71f05ead6fd6037c30dfcc351e68accdbf42b9acc87c05731b8f8ac123962560869f46d4843c004
+DIST ncurses-1.0.0.zip 164010 BLAKE2B 43eaaad7e86c198f3b1918f8c06c7b0e70609d8fc905a02f00ac2b6344962cd40c79f9a26f765d8823cef8f83b8c742eff5642bd7e0ece7f98c094092eb8025c SHA512 908934f17b65014c741ef0f22eb2e8cbcf67a5b784326c614773c690bdfb236fd3c58a32f94762e62737f4c26b7318fcbe69284fdcd9ae67a125af2aa446e165
diff --git a/sys-fs/btdu/btdu-0.5.1.ebuild b/sys-fs/btdu/btdu-0.5.1.ebuild
new file mode 100644
index 0000000..99a72d8
--- /dev/null
+++ b/sys-fs/btdu/btdu-0.5.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# gdc-13 is disabled due to: https://gcc.gnu.org/PR111650
+# gdc-14 is disabled due to: https://gcc.gnu.org/PR116373
+DLANG_COMPAT=( dmd-2_10{6..9} ldc2-1_3{5..9} )
+DUB_DEPENDENCIES=(
+ "ae@0.0.3236"
+ "btdu@0.5.1"
+ "btrfs@0.0.18"
+ "emsi_containers@0.9.0"
+ "ncurses@1.0.0"
+)
+inherit dlang-single dub
+
+DESCRIPTION="Sampling disk usage profiler for btrfs"
+HOMEPAGE="https://github.com/CyberShadow/btdu"
+SRC_URI="${DUB_DEPENDENCIES_URIS}"
+
+LICENSE="GPL-2"
+LICENSE+=" Boost-1.0 GPL-2 MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+# Relevant tests require a btrfs filesystem.
+RESTRICT="test"
+
+COMMON_DEPEND="sys-libs/zlib sys-libs/ncurses:="
+DEPEND+=" ${COMMON_DEPEND}"
+RDEPEND+=" ${COMMON_DEPEND}"
+
+DOCS=( README.md CONCEPTS.md )
+
+src_test() {
+ # Enabling unittests runs the unittests in the dependencies which
+ # may not all be relevant for this package.
+ edub test --build=unittest
+}
+
+src_install() {
+ dobin "${S}/btdu"
+ doman btdu.1
+ einstalldocs
+}
diff --git a/sys-fs/btdu/metadata.xml b/sys-fs/btdu/metadata.xml
new file mode 100644
index 0000000..6a96176
--- /dev/null
+++ b/sys-fs/btdu/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <remote-id type="github">CyberShadow/btdu</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/x11-terms/tilix/tilix-1.9.6-r2.ebuild b/x11-terms/tilix/tilix-1.9.6-r2.ebuild
index 39b0252..cf99b76 100644
--- a/x11-terms/tilix/tilix-1.9.6-r2.ebuild
+++ b/x11-terms/tilix/tilix-1.9.6-r2.ebuild
@@ -3,6 +3,9 @@
EAPI=8
+DLANG_COMPAT=( dmd-2_10{6..9} gdc-1{3,4} ldc2-1_{35..39} )
+inherit dlang-single gnome2-utils meson optfeature
+
DESCRIPTION="A tiling terminal emulator for Linux using GTK+ 3"
HOMEPAGE="https://gnunn1.github.io/tilix-web/"
@@ -21,11 +24,7 @@ KEYWORDS="~amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
-DLANG_COMPAT=( dmd-2_10{6..8} gdc-1{3,4} ldc2-1_{35..38} )
-
-inherit dlang-single gnome2-utils meson optfeature
-
-# Older gcc ICEs due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113125
+# Older gcc ICEs due to https://gcc.gnu.org/PR113125
MY_DLANG_DEPS="${DLANG_DEPS}
$(dlang_gen_cond_dep '
>=sys-devel/gcc-13.3:13