Add bmake ports for a minimal Wayland desktop
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
*.patch -whitespace
|
||||||
|
ports/**/files/patch-* -whitespace
|
||||||
@@ -6,13 +6,21 @@ machinery lives under `ports/Mk`.
|
|||||||
|
|
||||||
Each port lives below `ports/category/name` and contains a `Makefile`,
|
Each port lives below `ports/category/name` and contains a `Makefile`,
|
||||||
`distinfo`, and `pkg-plist`, plus optional patches and service definitions
|
`distinfo`, and `pkg-plist`, plus optional patches and service definitions
|
||||||
under `files`. A MOUSE release pins one tested commit from this repository,
|
under `files`. Build-only and runtime dependencies remain distinct, so tools
|
||||||
while installed systems may move to later compatible ports revisions without
|
such as GNU make do not become installed dependencies of the software they
|
||||||
|
compile. A MOUSE release pins one tested commit from this repository, while
|
||||||
|
installed systems may move to later compatible ports revisions without
|
||||||
replacing the base system.
|
replacing the base system.
|
||||||
|
|
||||||
The adversarial and demonstration recipes used by the base-system acceptance
|
The collection is driven by BSD make (`bmake`) at every framework and recursive
|
||||||
suite are deliberately not part of this collection. They live in
|
dependency boundary. A recipe invokes GNU make only when its upstream build
|
||||||
`mouse-src/tests/fixtures/ports`.
|
requires it. Rust recipes use checksum-locked crate archives and an offline
|
||||||
|
Cargo source replacement, so Cargo never becomes an undeclared fetcher during
|
||||||
|
the build.
|
||||||
|
|
||||||
|
Packing lists name individual payload files. A list may use `@tree path` for a
|
||||||
|
large data-only directory; the framework verifies that tree in staging and
|
||||||
|
expands it into concrete file ownership records in the resulting package.
|
||||||
|
|
||||||
The shared framework uses the base system's ChimeraUtils `fetch` and `sha256`
|
The shared framework uses the base system's ChimeraUtils `fetch` and `sha256`
|
||||||
commands. TLS trust comes from MOUSE's pinned CA bundle; the ports tree does
|
commands. TLS trust comes from MOUSE's pinned CA bundle; the ports tree does
|
||||||
@@ -21,18 +29,18 @@ not carry private download or cryptographic implementations.
|
|||||||
Run the collection checks with:
|
Run the collection checks with:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make check
|
bmake check
|
||||||
```
|
```
|
||||||
|
|
||||||
On MOUSE, a port's public interface is:
|
On MOUSE, a port's public interface is:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make fetch
|
bmake fetch
|
||||||
make checksum
|
bmake checksum
|
||||||
make build
|
bmake build
|
||||||
make stage
|
bmake stage
|
||||||
make package
|
bmake package
|
||||||
make install
|
bmake install
|
||||||
make deinstall
|
bmake deinstall
|
||||||
make clean
|
bmake clean
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -21,10 +21,25 @@ normalize() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tree_entry() {
|
||||||
|
case "$1" in
|
||||||
|
@tree\ *) printf '%s\n' "${1#@tree }" ;;
|
||||||
|
*) return 1 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
while IFS= read -r entry || [ -n "$entry" ]; do
|
while IFS= read -r entry || [ -n "$entry" ]; do
|
||||||
case "$entry" in
|
case "$entry" in
|
||||||
""|\#*) continue ;;
|
""|\#*) continue ;;
|
||||||
esac
|
esac
|
||||||
|
if tree=$(tree_entry "$entry"); then
|
||||||
|
path=$(normalize "$tree")
|
||||||
|
if [ ! -d "$stage$path" ]; then
|
||||||
|
printf '%s\n' "packing-list tree was not staged: $path" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
continue
|
||||||
|
fi
|
||||||
path=$(normalize "$entry")
|
path=$(normalize "$entry")
|
||||||
if [ ! -f "$stage$path" ] && [ ! -L "$stage$path" ]; then
|
if [ ! -f "$stage$path" ] && [ ! -L "$stage$path" ]; then
|
||||||
printf '%s\n' "packing-list path was not staged: $path" >&2
|
printf '%s\n' "packing-list path was not staged: $path" >&2
|
||||||
@@ -43,6 +58,13 @@ while IFS= read -r relative; do
|
|||||||
case "$entry" in
|
case "$entry" in
|
||||||
""|\#*) continue ;;
|
""|\#*) continue ;;
|
||||||
esac
|
esac
|
||||||
|
if tree=$(tree_entry "$entry"); then
|
||||||
|
normalized=$(normalize "$tree")
|
||||||
|
case "$path" in
|
||||||
|
"$normalized"/*) found=1; break ;;
|
||||||
|
esac
|
||||||
|
continue
|
||||||
|
fi
|
||||||
normalized=$(normalize "$entry")
|
normalized=$(normalize "$entry")
|
||||||
if [ "$normalized" = "$path" ]; then
|
if [ "$normalized" = "$path" ]; then
|
||||||
found=1
|
found=1
|
||||||
|
|||||||
Executable
+36
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if [ "$#" -lt 4 ]; then
|
||||||
|
printf '%s\n' \
|
||||||
|
"usage: checksum-cargo.sh DISTDIR DISTINFO SHA256_COMMAND CRATE/VERSION..." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
distdir=$1
|
||||||
|
distinfo=$2
|
||||||
|
sha256_command=$3
|
||||||
|
shift 3
|
||||||
|
|
||||||
|
for crate in "$@"; do
|
||||||
|
name=${crate%/*}
|
||||||
|
version=${crate##*/}
|
||||||
|
distfile=$name-$version.crate
|
||||||
|
expected=$(sed -n "s/^SHA256 ($distfile) = //p" "$distinfo")
|
||||||
|
case "$expected" in
|
||||||
|
????????????????????????????????????????????????????????????????) ;;
|
||||||
|
*) printf '%s\n' "invalid or missing checksum for $distfile" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
case "$expected" in
|
||||||
|
*[!0-9a-f]*) printf '%s\n' "invalid checksum for $distfile" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
case "${sha256_command##*/}" in
|
||||||
|
sha256sum) actual=$("$sha256_command" "$distdir/$distfile"); actual=${actual%% *} ;;
|
||||||
|
*) actual=$("$sha256_command" -q "$distdir/$distfile") ;;
|
||||||
|
esac
|
||||||
|
[ "$actual" = "$expected" ] || {
|
||||||
|
printf '%s\n' \
|
||||||
|
"$distfile checksum mismatch: expected $expected, got $actual" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
@@ -25,7 +25,10 @@ for distfile in "$@"; do
|
|||||||
case "$expected" in
|
case "$expected" in
|
||||||
*[!0-9a-f]*) printf '%s\n' "invalid checksum for $distfile" >&2; exit 1 ;;
|
*[!0-9a-f]*) printf '%s\n' "invalid checksum for $distfile" >&2; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
actual=$("$sha256_command" -q "$distdir/$distfile")
|
case "${sha256_command##*/}" in
|
||||||
|
sha256sum) actual=$("$sha256_command" "$distdir/$distfile"); actual=${actual%% *} ;;
|
||||||
|
*) actual=$("$sha256_command" -q "$distdir/$distfile") ;;
|
||||||
|
esac
|
||||||
[ "$actual" = "$expected" ] || {
|
[ "$actual" = "$expected" ] || {
|
||||||
printf '%s\n' \
|
printf '%s\n' \
|
||||||
"$distfile checksum mismatch: expected $expected, got $actual" >&2
|
"$distfile checksum mismatch: expected $expected, got $actual" >&2
|
||||||
|
|||||||
Executable
+48
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if [ "$#" -lt 3 ]; then
|
||||||
|
printf '%s\n' "usage: fetch-cargo.sh DISTDIR FETCH_COMMAND CRATE/VERSION..." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
distdir=$1
|
||||||
|
fetch_command=$2
|
||||||
|
shift 2
|
||||||
|
mkdir -p "$distdir"
|
||||||
|
|
||||||
|
fetch_url()
|
||||||
|
{
|
||||||
|
case "${fetch_command##*/}" in
|
||||||
|
curl)
|
||||||
|
"$fetch_command" --fail --location \
|
||||||
|
--connect-timeout 15 --max-time 60 \
|
||||||
|
--speed-limit 1024 --speed-time 30 \
|
||||||
|
--retry 2 --retry-all-errors --retry-max-time 120 \
|
||||||
|
--output "$1" "$2"
|
||||||
|
;;
|
||||||
|
*) "$fetch_command" -o "$1" "$2" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
for crate in "$@"; do
|
||||||
|
case "$crate" in
|
||||||
|
*/*) name=${crate%/*}; version=${crate##*/} ;;
|
||||||
|
*) printf '%s\n' "invalid Cargo crate: $crate" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
case "$name:$version" in
|
||||||
|
*[!A-Za-z0-9_.+:-]*) printf '%s\n' "unsafe Cargo crate: $crate" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
distfile=$name-$version.crate
|
||||||
|
url=https://static.crates.io/crates/$name/$distfile
|
||||||
|
if [ ! -s "$distdir/$distfile" ]; then
|
||||||
|
temporary=$distdir/$distfile.part
|
||||||
|
rm -f "$temporary"
|
||||||
|
if fetch_url "$temporary" "$url"; then
|
||||||
|
mv "$temporary" "$distdir/$distfile"
|
||||||
|
else
|
||||||
|
rm -f "$temporary"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
@@ -13,14 +13,83 @@ fetch_command=$3
|
|||||||
shift 3
|
shift 3
|
||||||
mkdir -p "$distdir"
|
mkdir -p "$distdir"
|
||||||
|
|
||||||
for distfile in "$@"; do
|
fetch_url()
|
||||||
|
{
|
||||||
|
case "${fetch_command##*/}" in
|
||||||
|
curl)
|
||||||
|
"$fetch_command" --fail --location \
|
||||||
|
--connect-timeout 15 --max-time 60 \
|
||||||
|
--speed-limit 1024 --speed-time 30 \
|
||||||
|
--retry 2 --retry-all-errors --retry-max-time 120 \
|
||||||
|
--output "$1" "$2"
|
||||||
|
;;
|
||||||
|
*) "$fetch_command" -o "$1" "$2" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_git_archive()
|
||||||
|
{
|
||||||
|
destination=$1
|
||||||
|
url=$2
|
||||||
|
distfile=$3
|
||||||
|
project=${url##*/}
|
||||||
|
project=${project%.git}
|
||||||
|
revision=${distfile#"$project-"}
|
||||||
|
revision=${revision%.tar}
|
||||||
|
case "$revision" in
|
||||||
|
????????????????????????????????????????) ;;
|
||||||
|
*) printf '%s\n' "invalid Git archive revision: $distfile" >&2; return 1 ;;
|
||||||
|
esac
|
||||||
|
case "$revision" in
|
||||||
|
*[!0-9a-f]*) printf '%s\n' "invalid Git revision: $revision" >&2; return 1 ;;
|
||||||
|
esac
|
||||||
|
repository=$(mktemp -d "${TMPDIR:-/tmp}/mouse-port-git.XXXXXX")
|
||||||
|
if git -C "$repository" init --quiet &&
|
||||||
|
git -C "$repository" remote add origin "$url" &&
|
||||||
|
git -c http.lowSpeedLimit=1024 -c http.lowSpeedTime=30 \
|
||||||
|
-C "$repository" fetch --quiet --depth=1 origin "$revision" &&
|
||||||
|
[ "$(git -C "$repository" rev-parse 'FETCH_HEAD^{commit}')" = "$revision" ] &&
|
||||||
|
git -C "$repository" archive --format=tar \
|
||||||
|
--prefix="$project/" -o "$destination" "$revision"
|
||||||
|
then
|
||||||
|
rm -rf "$repository"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
rm -rf "$repository" "$destination"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
for source in "$@"; do
|
||||||
|
case "$source" in
|
||||||
|
*@https://*)
|
||||||
|
distfile=${source%%@*}
|
||||||
|
url=${source#*@}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
distfile=$source
|
||||||
|
url=$master_sites$distfile
|
||||||
|
;;
|
||||||
|
esac
|
||||||
case "$distfile" in
|
case "$distfile" in
|
||||||
""|*/*) printf '%s\n' "unsafe distfile name: $distfile" >&2; exit 1 ;;
|
""|*/*) printf '%s\n' "unsafe distfile name: $distfile" >&2; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
if [ ! -f "$distdir/$distfile" ]; then
|
case "$url" in
|
||||||
|
https://*) ;;
|
||||||
|
*) printf '%s\n' "distfile URL must use HTTPS: $url" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
if [ ! -s "$distdir/$distfile" ]; then
|
||||||
temporary="$distdir/$distfile.part"
|
temporary="$distdir/$distfile.part"
|
||||||
rm -f "$temporary"
|
rm -f "$temporary"
|
||||||
if "$fetch_command" -o "$temporary" "$master_sites$distfile"; then
|
if case "$url" in
|
||||||
|
*.git) fetch_git_archive "$temporary" "$url" "$distfile" ;;
|
||||||
|
*) fetch_url "$temporary" "$url" ;;
|
||||||
|
esac
|
||||||
|
then
|
||||||
|
[ -s "$temporary" ] || {
|
||||||
|
printf '%s\n' "empty distfile: $distfile" >&2
|
||||||
|
rm -f "$temporary"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
mv "$temporary" "$distdir/$distfile"
|
mv "$temporary" "$distdir/$distfile"
|
||||||
else
|
else
|
||||||
rm -f "$temporary"
|
rm -f "$temporary"
|
||||||
|
|||||||
@@ -1,15 +1,21 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
if [ "$#" -lt 2 ]; then
|
if [ "$#" -lt 3 ]; then
|
||||||
printf '%s\n' \
|
printf '%s\n' \
|
||||||
"usage: install-depends.sh PORTSDIR PACKAGE_COMMAND DEPENDENCY..." >&2
|
"usage: install-depends.sh PORTSDIR PACKAGE_COMMAND BMAKE DEPENDENCY..." >&2
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
portsdir=$1
|
portsdir=$1
|
||||||
package_command=$2
|
package_command=$2
|
||||||
shift 2
|
bmake=$3
|
||||||
|
shift 3
|
||||||
|
|
||||||
|
case "$bmake" in
|
||||||
|
/*/bmake|bmake) ;;
|
||||||
|
*) printf '%s\n' "invalid BSD make command: $bmake" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
for dependency in "$@"; do
|
for dependency in "$@"; do
|
||||||
case "$dependency" in
|
case "$dependency" in
|
||||||
@@ -32,6 +38,6 @@ for dependency in "$@"; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
if ! "$package_command" status "$name" >/dev/null 2>&1; then
|
if ! "$package_command" status "$name" >/dev/null 2>&1; then
|
||||||
make -C "$portsdir/$origin" install
|
"$bmake" -C "$portsdir/$origin" install
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -28,6 +28,31 @@ esac
|
|||||||
rm -rf "$package"
|
rm -rf "$package"
|
||||||
mkdir -p "$package/root"
|
mkdir -p "$package/root"
|
||||||
cp -R "$stage/." "$package/root/"
|
cp -R "$stage/." "$package/root/"
|
||||||
|
: >"$package/+PLIST"
|
||||||
|
while IFS= read -r entry || [ -n "$entry" ]; do
|
||||||
|
case "$entry" in
|
||||||
|
""|\#*) continue ;;
|
||||||
|
@tree\ *)
|
||||||
|
tree=${entry#@tree }
|
||||||
|
case "$tree" in
|
||||||
|
""|/*|.|..|../*|*/../*|*/..|./*|*/./*)
|
||||||
|
printf '%s\n' "unsafe packing-list tree: $tree" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
[ -d "$stage/usr/local/$tree" ] || {
|
||||||
|
printf '%s\n' "packing-list tree was not staged: $tree" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
(
|
||||||
|
cd "$stage/usr/local"
|
||||||
|
find "./$tree" -type f -o -type l
|
||||||
|
) | sed 's#^\./##' | sort >>"$package/+PLIST"
|
||||||
|
;;
|
||||||
|
*) printf '%s\n' "$entry" >>"$package/+PLIST" ;;
|
||||||
|
esac
|
||||||
|
done <"$plist"
|
||||||
|
sort -u "$package/+PLIST" -o "$package/+PLIST"
|
||||||
{
|
{
|
||||||
printf 'name=%s\n' "$name"
|
printf 'name=%s\n' "$name"
|
||||||
printf 'version=%s\n' "$version"
|
printf 'version=%s\n' "$version"
|
||||||
@@ -62,7 +87,6 @@ cp -R "$stage/." "$package/root/"
|
|||||||
done
|
done
|
||||||
printf '\n'
|
printf '\n'
|
||||||
} >"$package/+MANIFEST"
|
} >"$package/+MANIFEST"
|
||||||
cp "$plist" "$package/+PLIST"
|
|
||||||
cp "$distinfo" "$package/+DISTINFO"
|
cp "$distinfo" "$package/+DISTINFO"
|
||||||
cp "$makefile" "$package/+BUILD"
|
cp "$makefile" "$package/+BUILD"
|
||||||
cp "$ports_revision" "$package/+PORTS_REVISION"
|
cp "$ports_revision" "$package/+PORTS_REVISION"
|
||||||
|
|||||||
Executable
+37
@@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if [ "$#" -lt 4 ]; then
|
||||||
|
printf '%s\n' \
|
||||||
|
"usage: vendor-cargo.sh WRKDIR DISTDIR DISTINFO CRATE/VERSION..." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
wrkdir=$1
|
||||||
|
distdir=$2
|
||||||
|
distinfo=$3
|
||||||
|
shift 3
|
||||||
|
vendor=$wrkdir/cargo-vendor
|
||||||
|
config=$wrkdir/cargo-home/config.toml
|
||||||
|
rm -rf "$vendor" "$wrkdir/cargo-home"
|
||||||
|
mkdir -p "$vendor" "${config%/*}"
|
||||||
|
|
||||||
|
for crate in "$@"; do
|
||||||
|
name=${crate%/*}
|
||||||
|
version=${crate##*/}
|
||||||
|
distfile=$name-$version.crate
|
||||||
|
archive=$distdir/$distfile
|
||||||
|
destination=$vendor/$name-$version
|
||||||
|
mkdir -p "$destination"
|
||||||
|
tar -xf "$archive" -C "$destination" --strip-components 1
|
||||||
|
checksum=$(sed -n "s/^SHA256 ($distfile) = //p" "$distinfo")
|
||||||
|
printf '%s\n' "{\"files\":{},\"package\":\"$checksum\"}" \
|
||||||
|
> "$destination/.cargo-checksum.json"
|
||||||
|
done
|
||||||
|
|
||||||
|
{
|
||||||
|
printf '%s\n' '[source.crates-io]'
|
||||||
|
printf '%s\n' 'replace-with = "vendored-sources"'
|
||||||
|
printf '%s\n' '[source.vendored-sources]'
|
||||||
|
printf 'directory = "%s"\n' "$vendor"
|
||||||
|
} > "$config"
|
||||||
+91
-4
@@ -26,16 +26,32 @@ PREFIX?= /usr/local
|
|||||||
DISTDIR?= /var/cache/mouse/ports/distfiles
|
DISTDIR?= /var/cache/mouse/ports/distfiles
|
||||||
WRKDIR?= /var/tmp/mouse-ports/${PORTNAME}-${PORTVERSION}
|
WRKDIR?= /var/tmp/mouse-ports/${PORTNAME}-${PORTVERSION}
|
||||||
WRKSRC?= ${WRKDIR}/source
|
WRKSRC?= ${WRKDIR}/source
|
||||||
|
SOURCE_DIR?= ${WRKSRC}
|
||||||
|
BUILD_DIR?= ${WRKDIR}/build
|
||||||
STAGEDIR?= ${WRKDIR}/stage
|
STAGEDIR?= ${WRKDIR}/stage
|
||||||
PACKAGES?= /var/cache/mouse/packages
|
PACKAGES?= /var/cache/mouse/packages
|
||||||
PKGNAME?= ${PORTNAME}-${PORTVERSION}
|
PKGNAME?= ${PORTNAME}-${PORTVERSION}
|
||||||
PKGDIR?= ${PACKAGES}/${PKGNAME}
|
PKGDIR?= ${PACKAGES}/${PKGNAME}
|
||||||
DISTINFO_FILE?= ${PORTDIR}/distinfo
|
DISTINFO_FILE?= ${PORTDIR}/distinfo
|
||||||
|
DIST_SOURCES?= ${DISTFILES}
|
||||||
|
CARGO_CRATES?=
|
||||||
PLIST?= ${PORTDIR}/pkg-plist
|
PLIST?= ${PORTDIR}/pkg-plist
|
||||||
PORTS_REVISION_FILE?=/usr/share/mouse/ports.revision
|
PORTS_REVISION_FILE?=/usr/share/mouse/ports.revision
|
||||||
RUN_DEPENDS?=
|
RUN_DEPENDS?=
|
||||||
|
BUILD_DEPENDS?=
|
||||||
|
BMAKE?= ${MAKE}
|
||||||
|
BUILD_STYLE?= custom
|
||||||
|
CONFIGURE_ARGS?=
|
||||||
|
BUILD_ARGS?=
|
||||||
|
INSTALL_ARGS?=
|
||||||
|
PATCHFILES?=
|
||||||
NO_EXTRACT?= no
|
NO_EXTRACT?= no
|
||||||
EXTRACT_CMD?= /usr/bin/tar
|
EXTRACT_CMD?= /usr/bin/tar
|
||||||
|
PATCH?= /usr/bin/patch
|
||||||
|
GMAKE?= /usr/bin/gmake
|
||||||
|
MESON?= /usr/local/bin/meson
|
||||||
|
NINJA?= /usr/local/bin/ninja
|
||||||
|
CMAKE?= /usr/local/bin/cmake
|
||||||
|
|
||||||
MOUSE_PACKAGE?= /usr/libexec/mouse-package
|
MOUSE_PACKAGE?= /usr/libexec/mouse-package
|
||||||
MOUSE_FETCH?= /usr/bin/fetch
|
MOUSE_FETCH?= /usr/bin/fetch
|
||||||
@@ -43,24 +59,36 @@ MOUSE_SHA256?= /usr/bin/sha256
|
|||||||
MOUSE_SH?= /bin/sh
|
MOUSE_SH?= /bin/sh
|
||||||
|
|
||||||
FETCH_SCRIPT= ${PORTSDIR}/Mk/Scripts/fetch.sh
|
FETCH_SCRIPT= ${PORTSDIR}/Mk/Scripts/fetch.sh
|
||||||
|
FETCH_CARGO_SCRIPT=${PORTSDIR}/Mk/Scripts/fetch-cargo.sh
|
||||||
CHECKSUM_SCRIPT=${PORTSDIR}/Mk/Scripts/checksum.sh
|
CHECKSUM_SCRIPT=${PORTSDIR}/Mk/Scripts/checksum.sh
|
||||||
|
CHECKSUM_CARGO_SCRIPT=${PORTSDIR}/Mk/Scripts/checksum-cargo.sh
|
||||||
|
VENDOR_CARGO_SCRIPT=${PORTSDIR}/Mk/Scripts/vendor-cargo.sh
|
||||||
PLIST_SCRIPT= ${PORTSDIR}/Mk/Scripts/check-plist.sh
|
PLIST_SCRIPT= ${PORTSDIR}/Mk/Scripts/check-plist.sh
|
||||||
DEPENDS_SCRIPT= ${PORTSDIR}/Mk/Scripts/install-depends.sh
|
DEPENDS_SCRIPT= ${PORTSDIR}/Mk/Scripts/install-depends.sh
|
||||||
PACKAGE_SCRIPT= ${PORTSDIR}/Mk/Scripts/package.sh
|
PACKAGE_SCRIPT= ${PORTSDIR}/Mk/Scripts/package.sh
|
||||||
|
|
||||||
.PHONY: all fetch checksum extract configure build stage stage-qa package \
|
.PHONY: all fetch checksum extract patch build-depends configure build test \
|
||||||
install deinstall status clean do-extract do-configure do-build do-install
|
stage stage-qa package install deinstall status clean do-extract do-patch \
|
||||||
|
do-configure do-build do-test do-install
|
||||||
.MAIN: all
|
.MAIN: all
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
fetch:
|
fetch:
|
||||||
${MOUSE_SH} ${FETCH_SCRIPT} "${DISTDIR}" "${MASTER_SITES}" \
|
${MOUSE_SH} ${FETCH_SCRIPT} "${DISTDIR}" "${MASTER_SITES}" \
|
||||||
"${MOUSE_FETCH}" ${DISTFILES}
|
"${MOUSE_FETCH}" ${DIST_SOURCES}
|
||||||
|
.if !empty(CARGO_CRATES)
|
||||||
|
${MOUSE_SH} ${FETCH_CARGO_SCRIPT} "${DISTDIR}" "${MOUSE_FETCH}" \
|
||||||
|
${CARGO_CRATES}
|
||||||
|
.endif
|
||||||
|
|
||||||
checksum: fetch
|
checksum: fetch
|
||||||
${MOUSE_SH} ${CHECKSUM_SCRIPT} "${DISTDIR}" "${DISTINFO_FILE}" \
|
${MOUSE_SH} ${CHECKSUM_SCRIPT} "${DISTDIR}" "${DISTINFO_FILE}" \
|
||||||
"${MOUSE_SHA256}" ${DISTFILES}
|
"${MOUSE_SHA256}" ${DISTFILES}
|
||||||
|
.if !empty(CARGO_CRATES)
|
||||||
|
${MOUSE_SH} ${CHECKSUM_CARGO_SCRIPT} "${DISTDIR}" \
|
||||||
|
"${DISTINFO_FILE}" "${MOUSE_SHA256}" ${CARGO_CRATES}
|
||||||
|
.endif
|
||||||
|
|
||||||
extract: checksum
|
extract: checksum
|
||||||
rm -rf "${WRKDIR}"
|
rm -rf "${WRKDIR}"
|
||||||
@@ -76,12 +104,24 @@ extract: checksum
|
|||||||
.endif
|
.endif
|
||||||
${MAKE} do-extract
|
${MAKE} do-extract
|
||||||
|
|
||||||
configure: extract
|
patch: extract
|
||||||
|
${MAKE} do-patch
|
||||||
|
|
||||||
|
build-depends:
|
||||||
|
${MOUSE_SH} ${DEPENDS_SCRIPT} "${PORTSDIR}" "${MOUSE_PACKAGE}" \
|
||||||
|
"${BMAKE}" \
|
||||||
|
${BUILD_DEPENDS}
|
||||||
|
|
||||||
|
configure: patch
|
||||||
|
${MAKE} build-depends
|
||||||
${MAKE} do-configure
|
${MAKE} do-configure
|
||||||
|
|
||||||
build: configure
|
build: configure
|
||||||
${MAKE} do-build
|
${MAKE} do-build
|
||||||
|
|
||||||
|
test: build
|
||||||
|
${MAKE} do-test
|
||||||
|
|
||||||
stage: build
|
stage: build
|
||||||
rm -rf "${STAGEDIR}"
|
rm -rf "${STAGEDIR}"
|
||||||
mkdir -p "${STAGEDIR}"
|
mkdir -p "${STAGEDIR}"
|
||||||
@@ -99,6 +139,7 @@ package: stage
|
|||||||
|
|
||||||
install:
|
install:
|
||||||
${MOUSE_SH} ${DEPENDS_SCRIPT} "${PORTSDIR}" "${MOUSE_PACKAGE}" \
|
${MOUSE_SH} ${DEPENDS_SCRIPT} "${PORTSDIR}" "${MOUSE_PACKAGE}" \
|
||||||
|
"${BMAKE}" \
|
||||||
${RUN_DEPENDS}
|
${RUN_DEPENDS}
|
||||||
${MAKE} package
|
${MAKE} package
|
||||||
${MOUSE_PACKAGE} add "${PKGDIR}"
|
${MOUSE_PACKAGE} add "${PKGDIR}"
|
||||||
@@ -117,18 +158,64 @@ do-extract:
|
|||||||
:
|
:
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.if !target(do-patch)
|
||||||
|
do-patch:
|
||||||
|
.for patchfile in ${PATCHFILES}
|
||||||
|
cd "${SOURCE_DIR}" && ${PATCH} -p1 < "${PORTDIR}/files/${patchfile}"
|
||||||
|
.endfor
|
||||||
|
.if !empty(CARGO_CRATES)
|
||||||
|
${MOUSE_SH} ${VENDOR_CARGO_SCRIPT} "${WRKDIR}" "${DISTDIR}" \
|
||||||
|
"${DISTINFO_FILE}" \
|
||||||
|
${CARGO_CRATES}
|
||||||
|
.endif
|
||||||
|
:
|
||||||
|
.endif
|
||||||
|
|
||||||
.if !target(do-configure)
|
.if !target(do-configure)
|
||||||
do-configure:
|
do-configure:
|
||||||
|
.if ${BUILD_STYLE} == "meson"
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
${MESON} setup "${BUILD_DIR}" "${SOURCE_DIR}" \
|
||||||
|
--prefix="${PREFIX}" --libdir=lib --buildtype=release \
|
||||||
|
--wrap-mode=nodownload ${CONFIGURE_ARGS}
|
||||||
|
.elif ${BUILD_STYLE} == "cmake"
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
${CMAKE} -S "${SOURCE_DIR}" -B "${BUILD_DIR}" -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
|
||||||
|
-DCMAKE_INSTALL_LIBDIR=lib ${CONFIGURE_ARGS}
|
||||||
|
.elif ${BUILD_STYLE} == "gnu-configure"
|
||||||
|
cd "${SOURCE_DIR}" && ./configure --prefix="${PREFIX}" ${CONFIGURE_ARGS}
|
||||||
|
.else
|
||||||
:
|
:
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
.if !target(do-build)
|
.if !target(do-build)
|
||||||
do-build:
|
do-build:
|
||||||
|
.if ${BUILD_STYLE} == "meson" || ${BUILD_STYLE} == "cmake"
|
||||||
|
${NINJA} -C "${BUILD_DIR}" ${BUILD_ARGS}
|
||||||
|
.elif ${BUILD_STYLE} == "gnu-configure" || ${BUILD_STYLE} == "gmake"
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} ${BUILD_ARGS}
|
||||||
|
.else
|
||||||
|
:
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.if !target(do-test)
|
||||||
|
do-test:
|
||||||
:
|
:
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if !target(do-install)
|
.if !target(do-install)
|
||||||
do-install:
|
do-install:
|
||||||
|
.if ${BUILD_STYLE} == "meson" || ${BUILD_STYLE} == "cmake"
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install \
|
||||||
|
${INSTALL_ARGS}
|
||||||
|
.elif ${BUILD_STYLE} == "gnu-configure" || ${BUILD_STYLE} == "gmake"
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} DESTDIR="${STAGEDIR}" install \
|
||||||
|
${INSTALL_ARGS}
|
||||||
|
.else
|
||||||
@echo "mouse.port.mk: ${PORTNAME} must define do-install" >&2
|
@echo "mouse.port.mk: ${PORTNAME} must define do-install" >&2
|
||||||
@false
|
@false
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
||||||
|
|||||||
+9
-2
@@ -10,5 +10,12 @@ Every port ends its Makefile with:
|
|||||||
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
```
|
```
|
||||||
|
|
||||||
The collection is intentionally empty until the first real third-party port is
|
`BUILD_DEPENDS` and `RUN_DEPENDS` entries use
|
||||||
accepted. Test-only recipes do not belong here.
|
`package-name:category/port`. Build dependencies are installed before
|
||||||
|
configuration but are not recorded as runtime dependencies in the finished
|
||||||
|
package. The framework and dependency resolver always recurse through
|
||||||
|
`/usr/local/bin/bmake`; a port may invoke GNU make explicitly when its upstream
|
||||||
|
build requires it. `BUILD_STYLE` supplies narrow defaults for Meson, CMake,
|
||||||
|
GNU-configure and GNU-make projects, while recipes retain explicit source,
|
||||||
|
dependency, option and packing-list declarations. Test-only recipes do not
|
||||||
|
belong here.
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
PORTNAME= zstd
|
||||||
|
PORTVERSION= 1.5.7
|
||||||
|
CATEGORIES= archivers
|
||||||
|
MASTER_SITES= https://github.com/facebook/zstd/releases/download/v${PORTVERSION}/
|
||||||
|
DISTFILES= zstd-${PORTVERSION}.tar.gz
|
||||||
|
BUILD_DEPENDS= gmake:devel/gmake
|
||||||
|
MOUSE_BUILD_JOBS?=1
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/zstd-${PORTVERSION}
|
||||||
|
GMAKE= ${PREFIX}/bin/gmake
|
||||||
|
GMAKE_ARGS= CC=cc AR=ar RANLIB=ranlib BACKTRACE=0 \
|
||||||
|
HAVE_LZ4=0 HAVE_LZMA=0 HAVE_ZLIB=1
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
${GMAKE} -C "${SOURCE_DIR}" -j${MOUSE_BUILD_JOBS} \
|
||||||
|
${GMAKE_ARGS} zstd-release
|
||||||
|
${GMAKE} -C "${SOURCE_DIR}/lib" -j${MOUSE_BUILD_JOBS} \
|
||||||
|
${GMAKE_ARGS} libzstd.a-release libzstd.pc
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/include" \
|
||||||
|
"${STAGEDIR}${PREFIX}/lib/pkgconfig" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/zstd" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/man/man1"
|
||||||
|
install -m 0755 "${SOURCE_DIR}/programs/zstd" \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin/zstd"
|
||||||
|
ln -s zstd "${STAGEDIR}${PREFIX}/bin/unzstd"
|
||||||
|
ln -s zstd "${STAGEDIR}${PREFIX}/bin/zstdcat"
|
||||||
|
ln -s zstd "${STAGEDIR}${PREFIX}/bin/zstdmt"
|
||||||
|
install -m 0644 \
|
||||||
|
"${SOURCE_DIR}/lib/zstd.h" \
|
||||||
|
"${SOURCE_DIR}/lib/zstd_errors.h" \
|
||||||
|
"${SOURCE_DIR}/lib/zdict.h" \
|
||||||
|
"${STAGEDIR}${PREFIX}/include/"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/lib/libzstd.a" \
|
||||||
|
"${STAGEDIR}${PREFIX}/lib/libzstd.a"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/lib/libzstd.pc" \
|
||||||
|
"${STAGEDIR}${PREFIX}/lib/pkgconfig/libzstd.pc"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/zstd/LICENSE"
|
||||||
|
sed 's/zstd 1\.5\.6/zstd 1.5.7/' \
|
||||||
|
"${SOURCE_DIR}/programs/zstd.1" > \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/man/man1/zstd.1"
|
||||||
|
ln -s zstd.1 "${STAGEDIR}${PREFIX}/share/man/man1/unzstd.1"
|
||||||
|
ln -s zstd.1 "${STAGEDIR}${PREFIX}/share/man/man1/zstdcat.1"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (zstd-1.5.7.tar.gz) = eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
bin/unzstd
|
||||||
|
bin/zstd
|
||||||
|
bin/zstdcat
|
||||||
|
bin/zstdmt
|
||||||
|
include/zdict.h
|
||||||
|
include/zstd.h
|
||||||
|
include/zstd_errors.h
|
||||||
|
lib/libzstd.a
|
||||||
|
lib/pkgconfig/libzstd.pc
|
||||||
|
share/licenses/zstd/LICENSE
|
||||||
|
share/man/man1/unzstd.1
|
||||||
|
share/man/man1/zstd.1
|
||||||
|
share/man/man1/zstdcat.1
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
PORTNAME= bmake
|
||||||
|
PORTVERSION= 20240909
|
||||||
|
CATEGORIES= devel
|
||||||
|
MASTER_SITES= https://www.crufty.net/ftp/pub/sjg/
|
||||||
|
DISTFILES= bmake-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/bmake
|
||||||
|
|
||||||
|
do-configure:
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
cd "${SOURCE_DIR}" && sh ./boot-strap \
|
||||||
|
--prefix="${PREFIX}" --without-filemon \
|
||||||
|
--objdir "${BUILD_DIR}" op=configure
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
cd "${BUILD_DIR}" && sh ./make-bootstrap.sh
|
||||||
|
|
||||||
|
do-test:
|
||||||
|
cd "${SOURCE_DIR}" && sh ./boot-strap \
|
||||||
|
--prefix="${PREFIX}" --without-filemon \
|
||||||
|
--objdir "${BUILD_DIR}" op=test
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
cd "${SOURCE_DIR}" && env \
|
||||||
|
MAKESYSPATH="${SOURCE_DIR}/mk" \
|
||||||
|
SRCTOP="${SOURCE_DIR}" \
|
||||||
|
OBJTOP="${BUILD_DIR}" \
|
||||||
|
MAKEOBJDIR='$${.CURDIR:S,$${SRCTOP:tA},$${OBJTOP:tA},}' \
|
||||||
|
"${BUILD_DIR}/bmake" -f "${SOURCE_DIR}/Makefile" install \
|
||||||
|
prefix="${PREFIX}" BINDIR="${PREFIX}/bin" DESTDIR="${STAGEDIR}"
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/bmake"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/bmake/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (bmake-20240909.tar.gz) = d4e019e26c64cc8ffcf1cae9bb04fbb13da8fa6f41fb30fd26e221f655d4e84d
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
bin/bmake
|
||||||
|
share/man/man1/bmake.1
|
||||||
|
share/mk/auto.dep.mk
|
||||||
|
share/mk/auto.obj.mk
|
||||||
|
share/mk/autoconf.mk
|
||||||
|
share/mk/autodep.mk
|
||||||
|
share/mk/bsd.dep.mk
|
||||||
|
share/mk/bsd.doc.mk
|
||||||
|
share/mk/bsd.files.mk
|
||||||
|
share/mk/bsd.inc.mk
|
||||||
|
share/mk/bsd.init.mk
|
||||||
|
share/mk/bsd.lib.mk
|
||||||
|
share/mk/bsd.links.mk
|
||||||
|
share/mk/bsd.man.mk
|
||||||
|
share/mk/bsd.nls.mk
|
||||||
|
share/mk/bsd.obj.mk
|
||||||
|
share/mk/bsd.own.mk
|
||||||
|
share/mk/bsd.prog.mk
|
||||||
|
share/mk/bsd.subdir.mk
|
||||||
|
share/mk/cc-wrap.mk
|
||||||
|
share/mk/ccm.dep.mk
|
||||||
|
share/mk/compiler.mk
|
||||||
|
share/mk/cython.mk
|
||||||
|
share/mk/dep.mk
|
||||||
|
share/mk/dirdeps-cache-update.mk
|
||||||
|
share/mk/dirdeps-options.mk
|
||||||
|
share/mk/dirdeps-targets.mk
|
||||||
|
share/mk/dirdeps.mk
|
||||||
|
share/mk/doc.mk
|
||||||
|
share/mk/dpadd.mk
|
||||||
|
share/mk/files.mk
|
||||||
|
share/mk/final.mk
|
||||||
|
share/mk/gendirdeps.mk
|
||||||
|
share/mk/host-target.mk
|
||||||
|
share/mk/host.libnames.mk
|
||||||
|
share/mk/inc.mk
|
||||||
|
share/mk/init.mk
|
||||||
|
share/mk/install-new.mk
|
||||||
|
share/mk/install-sh
|
||||||
|
share/mk/java.mk
|
||||||
|
share/mk/jobs.mk
|
||||||
|
share/mk/ldorder.mk
|
||||||
|
share/mk/lib.mk
|
||||||
|
share/mk/libnames.mk
|
||||||
|
share/mk/libs.mk
|
||||||
|
share/mk/links.mk
|
||||||
|
share/mk/man.mk
|
||||||
|
share/mk/manifest.mk
|
||||||
|
share/mk/meta.autodep.mk
|
||||||
|
share/mk/meta.stage.mk
|
||||||
|
share/mk/meta.subdir.mk
|
||||||
|
share/mk/meta.sys.mk
|
||||||
|
share/mk/meta2deps.py
|
||||||
|
share/mk/meta2deps.sh
|
||||||
|
share/mk/mkopt.sh
|
||||||
|
share/mk/newlog.sh
|
||||||
|
share/mk/nls.mk
|
||||||
|
share/mk/obj.mk
|
||||||
|
share/mk/options.mk
|
||||||
|
share/mk/own.mk
|
||||||
|
share/mk/posix.mk
|
||||||
|
share/mk/prlist.mk
|
||||||
|
share/mk/prog.mk
|
||||||
|
share/mk/progs.mk
|
||||||
|
share/mk/rst2htm.mk
|
||||||
|
share/mk/scripts.mk
|
||||||
|
share/mk/srctop.mk
|
||||||
|
share/mk/stage-install.sh
|
||||||
|
share/mk/subdir.mk
|
||||||
|
share/mk/suffixes.mk
|
||||||
|
share/mk/sys.clean-env.mk
|
||||||
|
share/mk/sys.debug.mk
|
||||||
|
share/mk/sys.dependfile.mk
|
||||||
|
share/mk/sys.dirdeps.mk
|
||||||
|
share/mk/sys.mk
|
||||||
|
share/mk/sys.vars.mk
|
||||||
|
share/mk/sys/AIX.mk
|
||||||
|
share/mk/sys/Cygwin.mk
|
||||||
|
share/mk/sys/Darwin.mk
|
||||||
|
share/mk/sys/Generic.mk
|
||||||
|
share/mk/sys/HP-UX.mk
|
||||||
|
share/mk/sys/IRIX.mk
|
||||||
|
share/mk/sys/Linux.mk
|
||||||
|
share/mk/sys/NetBSD.mk
|
||||||
|
share/mk/sys/OSF1.mk
|
||||||
|
share/mk/sys/OpenBSD.mk
|
||||||
|
share/mk/sys/SCO_SV.mk
|
||||||
|
share/mk/sys/SunOS.mk
|
||||||
|
share/mk/sys/UnixWare.mk
|
||||||
|
share/mk/target-flags.mk
|
||||||
|
share/mk/warnings.mk
|
||||||
|
share/mk/whats.mk
|
||||||
|
share/mk/yacc.mk
|
||||||
|
share/licenses/bmake/LICENSE
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
PORTNAME= gmake
|
||||||
|
PORTVERSION= 4.4.1
|
||||||
|
CATEGORIES= devel
|
||||||
|
MASTER_SITES= https://ftp.gnu.org/gnu/make/
|
||||||
|
DISTFILES= make-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/make-${PORTVERSION}
|
||||||
|
PATCHFILES= patch-c23-musl-prototypes
|
||||||
|
|
||||||
|
do-configure:
|
||||||
|
cd "${SOURCE_DIR}" && \
|
||||||
|
CC=cc CFLAGS="-O2" ./configure \
|
||||||
|
--prefix="${PREFIX}" \
|
||||||
|
--program-prefix=g \
|
||||||
|
--disable-nls \
|
||||||
|
--without-guile
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
cd "${SOURCE_DIR}" && sh ./build.sh
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/gmake" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/man/man1"
|
||||||
|
install -m 0755 "${SOURCE_DIR}/make" \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin/gmake"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/gmake/COPYING"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/doc/make.1" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/man/man1/gmake.1"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (make-4.4.1.tar.gz) = dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
--- a/lib/fnmatch.c
|
||||||
|
+++ b/lib/fnmatch.c
|
||||||
|
@@ -121,7 +121,7 @@
|
||||||
|
whose names are inconsistent. */
|
||||||
|
|
||||||
|
# if !defined _LIBC && !defined getenv
|
||||||
|
-extern char *getenv ();
|
||||||
|
+extern char *getenv (const char *__name);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef errno
|
||||||
|
--- a/src/getopt.c
|
||||||
|
+++ b/src/getopt.c
|
||||||
|
@@ -202,7 +202,7 @@ static char *posixly_correct;
|
||||||
|
whose names are inconsistent. */
|
||||||
|
|
||||||
|
#ifndef getenv
|
||||||
|
-extern char *getenv ();
|
||||||
|
+extern char *getenv (const char *__name);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static char *
|
||||||
|
--- a/src/getopt.h
|
||||||
|
+++ b/src/getopt.h
|
||||||
|
@@ -91,7 +91,7 @@ struct option
|
||||||
|
errors, only prototype getopt for the GNU C library. */
|
||||||
|
extern int getopt (int argc, char *const *argv, const char *shortopts);
|
||||||
|
#else /* not __GNU_LIBRARY__ */
|
||||||
|
-extern int getopt ();
|
||||||
|
+extern int getopt (int argc, char *const *argv, const char *shortopts);
|
||||||
|
#endif /* __GNU_LIBRARY__ */
|
||||||
|
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
|
||||||
|
const struct option *longopts, int *longind);
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
bin/gmake
|
||||||
|
share/licenses/gmake/COPYING
|
||||||
|
share/man/man1/gmake.1
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
PORTNAME= libffi
|
||||||
|
PORTVERSION= 3.5.2
|
||||||
|
CATEGORIES= devel
|
||||||
|
MASTER_SITES= https://github.com/libffi/libffi/releases/download/v${PORTVERSION}/
|
||||||
|
DISTFILES= libffi-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libffi-${PORTVERSION}
|
||||||
|
BUILD_STYLE= gnu-configure
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} DESTDIR="${STAGEDIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/libffi"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/libffi/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (libffi-3.5.2.tar.gz) = f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
PORTNAME= libudev-garden
|
||||||
|
PORTVERSION= 0.2.1
|
||||||
|
CATEGORIES= devel
|
||||||
|
GIT_COMMIT= 04fc426c9f772c01db1655c80c150280b8034fd6
|
||||||
|
MASTER_SITES= https://git.pinkro.se/Rose/gardenhouse/libudev-garden.git
|
||||||
|
DISTFILES= libudev-garden-${GIT_COMMIT}.tar
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libudev-garden
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
BUILD_DEPENDS= meson:devel/meson
|
||||||
|
CONFIGURE_ARGS= -Dstatic=false
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/libudev-garden"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/libudev-garden/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (libudev-garden-04fc426c9f772c01db1655c80c150280b8034fd6.tar) = d7e3ebeb8856fc661b9c92075e3598ee1f1951873766f78122186d9241b70b1c
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include/libudev.h
|
||||||
|
lib/libudev.so
|
||||||
|
lib/libudev.so.1
|
||||||
|
share/licenses/libudev-garden/LICENSE
|
||||||
|
share/pkgconfig/libudev.pc
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
PORTNAME= libdisplay-info
|
||||||
|
PORTVERSION= 0.3.0
|
||||||
|
CATEGORIES= graphics
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/${PORTVERSION}/
|
||||||
|
DISTFILES= libdisplay-info-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libdisplay-info-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
RUN_DEPENDS= hwdata:misc/hwdata
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
rm -f "${STAGEDIR}${PREFIX}/bin/di-edid-decode"
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/libdisplay-info"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/libdisplay-info/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (libdisplay-info-0.3.0.tar.gz) = 2b467e3336aec63819d6aca28d7310d3dc7415b2b3a3c3a5aec9d3727053c078
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
PORTNAME= libdrm
|
||||||
|
PORTVERSION= 2.4.134
|
||||||
|
CATEGORIES= graphics
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/mesa/drm/-/archive/libdrm-${PORTVERSION}/
|
||||||
|
DISTFILES= libdrm-${PORTVERSION}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}libdrm-libdrm-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libdrm-libdrm-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
CONFIGURE_ARGS= -Dintel=disabled -Dradeon=disabled -Damdgpu=disabled \
|
||||||
|
-Dnouveau=disabled -Dvmwgfx=disabled -Domap=disabled \
|
||||||
|
-Dexynos=disabled -Dfreedreno=disabled -Dtegra=disabled \
|
||||||
|
-Dvc4=disabled -Detnaviv=disabled -Dudev=false \
|
||||||
|
-Dtests=false -Dinstall-test-programs=false -Dman-pages=disabled
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (libdrm-2.4.134.tar.gz) = 28af861f62e7a2c3a48c5ff2ad4d01cf440a419f7f877de5caa7f73d3afa5367
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
PORTNAME= pixman
|
||||||
|
PORTVERSION= 0.46.4
|
||||||
|
CATEGORIES= graphics
|
||||||
|
MASTER_SITES= https://xorg.freedesktop.org/releases/individual/lib/
|
||||||
|
DISTFILES= pixman-${PORTVERSION}.tar.xz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/pixman-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
CONFIGURE_ARGS= -Dlibpng=disabled -Dtests=disabled -Ddemos=disabled
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/pixman"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/pixman/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (pixman-0.46.4.tar.xz) = a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
PORTNAME= wayland-protocols
|
||||||
|
PORTVERSION= 1.49
|
||||||
|
CATEGORIES= graphics
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PORTVERSION}/downloads/
|
||||||
|
DISTFILES= wayland-protocols-${PORTVERSION}.tar.xz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/wayland-protocols-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
CONFIGURE_ARGS= -Dtests=false
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/wayland-protocols"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/wayland-protocols/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (wayland-protocols-1.49.tar.xz) = ec4c8f74942d6dff7ace8b4ce4764f0ef9ff618a935d974ea77edee2ad240b14
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@tree share
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
PORTNAME= wayland
|
||||||
|
PORTVERSION= 1.25.0
|
||||||
|
CATEGORIES= graphics
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/wayland/wayland/-/releases/${PORTVERSION}/downloads/
|
||||||
|
DISTFILES= wayland-${PORTVERSION}.tar.xz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/wayland-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
RUN_DEPENDS= expat:textproc/expat libffi:devel/libffi
|
||||||
|
CONFIGURE_ARGS= -Ddocumentation=false -Ddtd_validation=false -Dtests=false
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/wayland"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/wayland/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (wayland-1.25.0.tar.xz) = c065f040afdff3177680600f249727e41a1afc22fccf27222f15f5306faa1f03
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
@tree bin
|
||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
PORTNAME= hwdata
|
||||||
|
PORTVERSION= 0.409
|
||||||
|
CATEGORIES= misc
|
||||||
|
MASTER_SITES= https://github.com/vcrhonek/hwdata/archive/refs/tags/
|
||||||
|
DISTFILES= hwdata-${PORTVERSION}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}v${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/hwdata-${PORTVERSION}
|
||||||
|
RUN_DEPENDS=
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/lib/pkgconfig" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/hwdata" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/hwdata"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/pnp.ids" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/hwdata/pnp.ids"
|
||||||
|
sed -e 's|@prefix@|${PREFIX}|g' \
|
||||||
|
-e 's|@datadir@|${PREFIX}/share|g' \
|
||||||
|
-e 's|@pkgdatadir@|${PREFIX}/share/hwdata|g' \
|
||||||
|
-e 's|@NAME@|hwdata|g' \
|
||||||
|
-e 's|@VERSION@|${PORTVERSION}|g' \
|
||||||
|
"${SOURCE_DIR}/hwdata.pc.in" > \
|
||||||
|
"${STAGEDIR}${PREFIX}/lib/pkgconfig/hwdata.pc"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/hwdata/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (hwdata-0.409.tar.gz) = 23006accc0f931dd5187d0307a57d0744e2b8feb85e73c37bc0f5229fb31eadd
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
PORTNAME= greetd
|
||||||
|
PORTVERSION= 0.10.3
|
||||||
|
CATEGORIES= sysutils
|
||||||
|
MASTER_SITES= https://git.sr.ht/~kennylevinsen/greetd/archive/
|
||||||
|
DISTFILES= greetd-${PORTVERSION}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/greetd-${PORTVERSION}
|
||||||
|
BUILD_DEPENDS= rust:lang/rust
|
||||||
|
RUN_DEPENDS= tuigreet:x11/tuigreet
|
||||||
|
PATCHFILES= patch-mouse-auth
|
||||||
|
CARGO_CRATES= \
|
||||||
|
addr2line/0.21.0 \
|
||||||
|
adler/1.0.2 \
|
||||||
|
async-trait/0.1.80 \
|
||||||
|
backtrace/0.3.71 \
|
||||||
|
bitflags/2.5.0 \
|
||||||
|
bytes/1.6.0 \
|
||||||
|
cc/1.0.95 \
|
||||||
|
cfg-if/1.0.0 \
|
||||||
|
enquote/1.1.0 \
|
||||||
|
getopts/0.2.21 \
|
||||||
|
gimli/0.28.1 \
|
||||||
|
itoa/1.0.11 \
|
||||||
|
libc/0.2.153 \
|
||||||
|
memchr/2.7.2 \
|
||||||
|
miniz_oxide/0.7.2 \
|
||||||
|
mio/0.8.11 \
|
||||||
|
nix/0.27.1 \
|
||||||
|
object/0.32.2 \
|
||||||
|
pin-project-lite/0.2.14 \
|
||||||
|
proc-macro2/1.0.81 \
|
||||||
|
quote/1.0.36 \
|
||||||
|
rpassword/5.0.1 \
|
||||||
|
rustc-demangle/0.1.23 \
|
||||||
|
ryu/1.0.17 \
|
||||||
|
serde/1.0.198 \
|
||||||
|
serde_derive/1.0.198 \
|
||||||
|
serde_json/1.0.116 \
|
||||||
|
signal-hook-registry/1.4.1 \
|
||||||
|
socket2/0.5.6 \
|
||||||
|
syn/2.0.60 \
|
||||||
|
thiserror/1.0.58 \
|
||||||
|
thiserror-impl/1.0.58 \
|
||||||
|
tokio/1.37.0 \
|
||||||
|
tokio-macros/2.2.0 \
|
||||||
|
unicode-ident/1.0.12 \
|
||||||
|
unicode-width/0.1.11 \
|
||||||
|
wasi/0.11.0+wasi-snapshot-preview1 \
|
||||||
|
winapi/0.3.9 \
|
||||||
|
winapi-i686-pc-windows-gnu/0.4.0 \
|
||||||
|
winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||||
|
windows-sys/0.48.0 \
|
||||||
|
windows-sys/0.52.0 \
|
||||||
|
windows-targets/0.48.5 \
|
||||||
|
windows-targets/0.52.5 \
|
||||||
|
windows_aarch64_gnullvm/0.48.5 \
|
||||||
|
windows_aarch64_gnullvm/0.52.5 \
|
||||||
|
windows_aarch64_msvc/0.48.5 \
|
||||||
|
windows_aarch64_msvc/0.52.5 \
|
||||||
|
windows_i686_gnu/0.48.5 \
|
||||||
|
windows_i686_gnu/0.52.5 \
|
||||||
|
windows_i686_gnullvm/0.52.5 \
|
||||||
|
windows_i686_msvc/0.48.5 \
|
||||||
|
windows_i686_msvc/0.52.5 \
|
||||||
|
windows_x86_64_gnu/0.48.5 \
|
||||||
|
windows_x86_64_gnu/0.52.5 \
|
||||||
|
windows_x86_64_gnullvm/0.48.5 \
|
||||||
|
windows_x86_64_gnullvm/0.52.5 \
|
||||||
|
windows_x86_64_msvc/0.48.5 \
|
||||||
|
windows_x86_64_msvc/0.52.5
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
cd "${SOURCE_DIR}" && env CARGO_HOME="${WRKDIR}/cargo-home" \
|
||||||
|
cargo rustc --offline --locked --release \
|
||||||
|
-p greetd --bin greetd -- -C target-feature=+crt-static
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/etc/greetd" \
|
||||||
|
"${STAGEDIR}${PREFIX}/etc/rc.d" \
|
||||||
|
"${STAGEDIR}${PREFIX}/sbin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/greetd"
|
||||||
|
install -m 0755 "${SOURCE_DIR}/target/release/greetd" \
|
||||||
|
"${STAGEDIR}${PREFIX}/sbin/greetd"
|
||||||
|
install -m 0644 "${PORTDIR}/files/config.toml" \
|
||||||
|
"${STAGEDIR}${PREFIX}/etc/greetd/config.toml"
|
||||||
|
install -m 0755 "${PORTDIR}/files/greetd" \
|
||||||
|
"${STAGEDIR}${PREFIX}/etc/rc.d/greetd"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/greetd/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
SHA256 (greetd-0.10.3.tar.gz) = ee5cb70e0add4ca9c9fe57e47581ab0002d44c07743fb5492469f3b570db640b
|
||||||
|
SHA256 (addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
|
||||||
|
SHA256 (adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
|
||||||
|
SHA256 (async-trait-0.1.80.crate) = c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca
|
||||||
|
SHA256 (backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
|
||||||
|
SHA256 (bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
|
||||||
|
SHA256 (bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9
|
||||||
|
SHA256 (cc-1.0.95.crate) = d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b
|
||||||
|
SHA256 (cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
|
||||||
|
SHA256 (enquote-1.1.0.crate) = 06c36cb11dbde389f4096111698d8b567c0720e3452fd5ac3e6b4e47e1939932
|
||||||
|
SHA256 (getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5
|
||||||
|
SHA256 (gimli-0.28.1.crate) = 4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253
|
||||||
|
SHA256 (itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
|
||||||
|
SHA256 (libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
|
||||||
|
SHA256 (memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d
|
||||||
|
SHA256 (miniz_oxide-0.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
|
||||||
|
SHA256 (mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c
|
||||||
|
SHA256 (nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053
|
||||||
|
SHA256 (object-0.32.2.crate) = a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441
|
||||||
|
SHA256 (pin-project-lite-0.2.14.crate) = bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02
|
||||||
|
SHA256 (proc-macro2-1.0.81.crate) = 3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba
|
||||||
|
SHA256 (quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
|
||||||
|
SHA256 (rpassword-5.0.1.crate) = ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb
|
||||||
|
SHA256 (rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
|
||||||
|
SHA256 (ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
|
||||||
|
SHA256 (serde-1.0.198.crate) = 9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc
|
||||||
|
SHA256 (serde_derive-1.0.198.crate) = e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9
|
||||||
|
SHA256 (serde_json-1.0.116.crate) = 3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813
|
||||||
|
SHA256 (signal-hook-registry-1.4.1.crate) = d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1
|
||||||
|
SHA256 (socket2-0.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
|
||||||
|
SHA256 (syn-2.0.60.crate) = 909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3
|
||||||
|
SHA256 (thiserror-1.0.58.crate) = 03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297
|
||||||
|
SHA256 (thiserror-impl-1.0.58.crate) = c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7
|
||||||
|
SHA256 (tokio-1.37.0.crate) = 1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787
|
||||||
|
SHA256 (tokio-macros-2.2.0.crate) = 5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b
|
||||||
|
SHA256 (unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
|
||||||
|
SHA256 (unicode-width-0.1.11.crate) = e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85
|
||||||
|
SHA256 (wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
|
||||||
|
SHA256 (winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
|
||||||
|
SHA256 (winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
|
||||||
|
SHA256 (winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
|
||||||
|
SHA256 (windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
|
||||||
|
SHA256 (windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
|
||||||
|
SHA256 (windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
|
||||||
|
SHA256 (windows-targets-0.52.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb
|
||||||
|
SHA256 (windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
|
||||||
|
SHA256 (windows_aarch64_gnullvm-0.52.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263
|
||||||
|
SHA256 (windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
|
||||||
|
SHA256 (windows_aarch64_msvc-0.52.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6
|
||||||
|
SHA256 (windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
|
||||||
|
SHA256 (windows_i686_gnu-0.52.5.crate) = 88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670
|
||||||
|
SHA256 (windows_i686_gnullvm-0.52.5.crate) = 87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9
|
||||||
|
SHA256 (windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
|
||||||
|
SHA256 (windows_i686_msvc-0.52.5.crate) = db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf
|
||||||
|
SHA256 (windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
|
||||||
|
SHA256 (windows_x86_64_gnu-0.52.5.crate) = 4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9
|
||||||
|
SHA256 (windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
|
||||||
|
SHA256 (windows_x86_64_gnullvm-0.52.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596
|
||||||
|
SHA256 (windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
|
||||||
|
SHA256 (windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[terminal]
|
||||||
|
vt = 1
|
||||||
|
|
||||||
|
[default_session]
|
||||||
|
command = "/usr/local/bin/tuigreet --time --remember --cmd /usr/local/bin/mouse-dwl-session"
|
||||||
|
user = "greeter"
|
||||||
Executable
+26
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# PROVIDE: greetd LOGIN
|
||||||
|
# REQUIRE: gardendevd seatd
|
||||||
|
# AFTER: gardendevd seatd
|
||||||
|
|
||||||
|
. /etc/rc.subr
|
||||||
|
|
||||||
|
name=greetd
|
||||||
|
command=/usr/local/sbin/greetd
|
||||||
|
command_args="-c /usr/local/etc/greetd/config.toml &"
|
||||||
|
start_precmd=greetd_prepare_cache
|
||||||
|
|
||||||
|
greetd_prepare_cache()
|
||||||
|
{
|
||||||
|
mkdir -p /var/cache/tuigreet
|
||||||
|
chown greeter:greeter /var/cache/tuigreet
|
||||||
|
chmod 0755 /var/cache/tuigreet
|
||||||
|
mkdir -p /run/user
|
||||||
|
chown root:root /run/user
|
||||||
|
chmod 0755 /run/user
|
||||||
|
mkdir -p /run/user/1000
|
||||||
|
chown mouse:mouse /run/user/1000
|
||||||
|
chmod 0700 /run/user/1000
|
||||||
|
}
|
||||||
|
|
||||||
|
run_rc_command "$1"
|
||||||
@@ -0,0 +1,346 @@
|
|||||||
|
diff --git a/Cargo.lock b/Cargo.lock
|
||||||
|
index f89b04a..cc0837d 100644
|
||||||
|
--- a/Cargo.lock
|
||||||
|
+++ b/Cargo.lock
|
||||||
|
@@ -124,7 +124,6 @@ dependencies = [
|
||||||
|
"inish",
|
||||||
|
"libc",
|
||||||
|
"nix",
|
||||||
|
- "pam-sys",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"thiserror",
|
||||||
|
@@ -204,15 +203,6 @@ dependencies = [
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
||||||
|
-[[package]]
|
||||||
|
-name = "pam-sys"
|
||||||
|
-version = "0.5.6"
|
||||||
|
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
-checksum = "cd4858311a097f01a0006ef7d0cd50bca81ec430c949d7bf95cbefd202282434"
|
||||||
|
-dependencies = [
|
||||||
|
- "libc",
|
||||||
|
-]
|
||||||
|
-
|
||||||
|
[[package]]
|
||||||
|
name = "pin-project-lite"
|
||||||
|
version = "0.2.14"
|
||||||
|
diff --git a/greetd/Cargo.toml b/greetd/Cargo.toml
|
||||||
|
index a9ac8d1..3e68a98 100644
|
||||||
|
--- a/greetd/Cargo.toml
|
||||||
|
+++ b/greetd/Cargo.toml
|
||||||
|
@@ -12,7 +12,6 @@ debug = []
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
nix = { version = "0.27", features = ["ioctl", "signal", "user", "fs", "mman"] }
|
||||||
|
-pam-sys = "0.5.6"
|
||||||
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
|
serde_json = "1.0"
|
||||||
|
greetd_ipc = { path = "../greetd_ipc", features = ["tokio-codec"] }
|
||||||
|
diff --git a/greetd/src/error.rs b/greetd/src/error.rs
|
||||||
|
index 68aa07c..ca7d4d2 100644
|
||||||
|
--- a/greetd/src/error.rs
|
||||||
|
+++ b/greetd/src/error.rs
|
||||||
|
@@ -33,12 +33,6 @@ impl From<std::io::Error> for Error {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-impl From<crate::pam::PamError> for Error {
|
||||||
|
- fn from(error: crate::pam::PamError) -> Self {
|
||||||
|
- Error::AuthError(error.to_string())
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
impl From<greetd_ipc::codec::Error> for Error {
|
||||||
|
fn from(error: greetd_ipc::codec::Error) -> Self {
|
||||||
|
match error {
|
||||||
|
diff --git a/greetd/src/main.rs b/greetd/src/main.rs
|
||||||
|
index 92a53d4..d63d66e 100644
|
||||||
|
--- a/greetd/src/main.rs
|
||||||
|
+++ b/greetd/src/main.rs
|
||||||
|
@@ -1,7 +1,6 @@
|
||||||
|
mod config;
|
||||||
|
mod context;
|
||||||
|
mod error;
|
||||||
|
-mod pam;
|
||||||
|
mod scrambler;
|
||||||
|
mod server;
|
||||||
|
mod session;
|
||||||
|
diff --git a/greetd/src/server.rs b/greetd/src/server.rs
|
||||||
|
index b215c4a..3fa5a49 100644
|
||||||
|
--- a/greetd/src/server.rs
|
||||||
|
+++ b/greetd/src/server.rs
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-use std::{path::Path, rc::Rc};
|
||||||
|
+use std::rc::Rc;
|
||||||
|
|
||||||
|
use nix::unistd::{chown, getpid, Gid, Uid};
|
||||||
|
use tokio::{
|
||||||
|
@@ -198,31 +198,8 @@ impl Drop for Listener {
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn main(config: Config) -> Result<(), Error> {
|
||||||
|
- let service = if Path::new(&format!("/etc/pam.d/{}", config.file.general.service)).exists() {
|
||||||
|
- &config.file.general.service
|
||||||
|
- } else if Path::new(&format!("/usr/lib/pam.d/{}", config.file.general.service)).exists() {
|
||||||
|
- &config.file.general.service
|
||||||
|
- } else {
|
||||||
|
- return Err(format!("PAM '{}' service missing", config.file.general.service).into());
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- let greeter_service = if Path::new(&format!(
|
||||||
|
- "/etc/pam.d/{}",
|
||||||
|
- config.file.default_session.service
|
||||||
|
- ))
|
||||||
|
- .exists()
|
||||||
|
- {
|
||||||
|
- &config.file.default_session.service
|
||||||
|
- } else if Path::new(&format!(
|
||||||
|
- "/usr/lib/pam.d/{}",
|
||||||
|
- config.file.default_session.service
|
||||||
|
- ))
|
||||||
|
- .exists()
|
||||||
|
- {
|
||||||
|
- &config.file.default_session.service
|
||||||
|
- } else {
|
||||||
|
- service
|
||||||
|
- };
|
||||||
|
+ let service = &config.file.general.service;
|
||||||
|
+ let greeter_service = &config.file.default_session.service;
|
||||||
|
|
||||||
|
let u = nix::unistd::User::from_name(&config.file.default_session.user)?.ok_or(format!(
|
||||||
|
"configured default session user '{}' not found",
|
||||||
|
diff --git a/greetd/src/session/mod.rs b/greetd/src/session/mod.rs
|
||||||
|
index e1a08cb..698425e 100644
|
||||||
|
--- a/greetd/src/session/mod.rs
|
||||||
|
+++ b/greetd/src/session/mod.rs
|
||||||
|
@@ -1,4 +1,3 @@
|
||||||
|
-pub mod conv;
|
||||||
|
pub mod interface;
|
||||||
|
mod prctl;
|
||||||
|
pub mod worker;
|
||||||
|
diff --git a/greetd/src/session/worker.rs b/greetd/src/session/worker.rs
|
||||||
|
index 71c9d10..ede3a6d 100644
|
||||||
|
--- a/greetd/src/session/worker.rs
|
||||||
|
+++ b/greetd/src/session/worker.rs
|
||||||
|
@@ -1,17 +1,43 @@
|
||||||
|
-use std::{env, ffi::CString, os::unix::net::UnixDatagram};
|
||||||
|
+use std::{
|
||||||
|
+ env,
|
||||||
|
+ ffi::CString,
|
||||||
|
+ io::Write,
|
||||||
|
+ os::unix::net::UnixDatagram,
|
||||||
|
+ process::{Command, Stdio},
|
||||||
|
+};
|
||||||
|
|
||||||
|
use nix::{
|
||||||
|
sys::wait::waitpid,
|
||||||
|
unistd::{execve, fork, initgroups, setgid, setsid, setuid, ForkResult},
|
||||||
|
};
|
||||||
|
-use pam_sys::{PamFlag, PamItemType};
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
-use super::{
|
||||||
|
- conv::SessionConv,
|
||||||
|
- prctl::{prctl, PrctlOption},
|
||||||
|
-};
|
||||||
|
-use crate::{error::Error, pam::session::PamSession, terminal};
|
||||||
|
+use super::prctl::{prctl, PrctlOption};
|
||||||
|
+use crate::{error::Error, scrambler::Scrambler, terminal};
|
||||||
|
+
|
||||||
|
+const AUTH_HELPER: &str = "/usr/libexec/mouse-auth";
|
||||||
|
+
|
||||||
|
+fn authenticate(username: &str, mut password: String) -> Result<(), Error> {
|
||||||
|
+ let result = (|| -> std::io::Result<bool> {
|
||||||
|
+ let mut child = Command::new(AUTH_HELPER)
|
||||||
|
+ .stdin(Stdio::piped())
|
||||||
|
+ .stdout(Stdio::null())
|
||||||
|
+ .stderr(Stdio::null())
|
||||||
|
+ .spawn()?;
|
||||||
|
+ if let Some(mut input) = child.stdin.take() {
|
||||||
|
+ input.write_all(username.as_bytes())?;
|
||||||
|
+ input.write_all(b"\n")?;
|
||||||
|
+ input.write_all(password.as_bytes())?;
|
||||||
|
+ input.write_all(b"\n")?;
|
||||||
|
+ }
|
||||||
|
+ Ok(child.wait()?.success())
|
||||||
|
+ })();
|
||||||
|
+ password.scramble();
|
||||||
|
+ match result {
|
||||||
|
+ Ok(true) => Ok(()),
|
||||||
|
+ Ok(false) | Err(_) => Err(Error::AuthError("authentication failed".to_string())),
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||||
|
pub enum AuthMessageType {
|
||||||
|
@@ -100,10 +126,10 @@ impl SessionChildToParent {
|
||||||
|
/// started by Session::start.
|
||||||
|
fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
let mut data = [0; 10240];
|
||||||
|
- let (service, class, user, authenticate, tty, source_profile, listener_path) =
|
||||||
|
+ let (class, username, authenticate_user, tty, source_profile, listener_path) =
|
||||||
|
match ParentToSessionChild::recv(sock, &mut data)? {
|
||||||
|
ParentToSessionChild::InitiateLogin {
|
||||||
|
- service,
|
||||||
|
+ service: _,
|
||||||
|
class,
|
||||||
|
user,
|
||||||
|
authenticate,
|
||||||
|
@@ -111,38 +137,39 @@ fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
source_profile,
|
||||||
|
listener_path,
|
||||||
|
} => (
|
||||||
|
- service,
|
||||||
|
class,
|
||||||
|
- user,
|
||||||
|
+ user.to_owned(),
|
||||||
|
authenticate,
|
||||||
|
tty,
|
||||||
|
source_profile,
|
||||||
|
- listener_path,
|
||||||
|
+ listener_path.to_owned(),
|
||||||
|
),
|
||||||
|
ParentToSessionChild::Cancel => return Err("cancelled".into()),
|
||||||
|
msg => return Err(format!("expected InitiateLogin or Cancel, got: {:?}", msg).into()),
|
||||||
|
};
|
||||||
|
|
||||||
|
- let conv = Box::pin(SessionConv::new(sock));
|
||||||
|
- let mut pam = PamSession::start(service, user, conv)?;
|
||||||
|
-
|
||||||
|
- if authenticate {
|
||||||
|
- pam.authenticate(PamFlag::NONE)?;
|
||||||
|
+ if authenticate_user {
|
||||||
|
+ SessionChildToParent::PamMessage {
|
||||||
|
+ style: AuthMessageType::Secret,
|
||||||
|
+ msg: "Password: ".to_string(),
|
||||||
|
+ }
|
||||||
|
+ .send(sock)?;
|
||||||
|
+ let auth_result = match ParentToSessionChild::recv(sock, &mut data)? {
|
||||||
|
+ ParentToSessionChild::PamResponse {
|
||||||
|
+ resp: Some(password),
|
||||||
|
+ } => authenticate(&username, password),
|
||||||
|
+ ParentToSessionChild::PamResponse { resp: None } | ParentToSessionChild::Cancel => {
|
||||||
|
+ return Err("cancelled".into())
|
||||||
|
+ }
|
||||||
|
+ msg => return Err(format!("expected PamResponse or Cancel, got: {:?}", msg).into()),
|
||||||
|
+ };
|
||||||
|
+ data.fill(0);
|
||||||
|
+ auth_result?;
|
||||||
|
}
|
||||||
|
- pam.acct_mgmt(PamFlag::NONE)?;
|
||||||
|
-
|
||||||
|
- // Not the credentials you think.
|
||||||
|
- pam.setcred(PamFlag::ESTABLISH_CRED)?;
|
||||||
|
|
||||||
|
// Mark authentication as a success.
|
||||||
|
SessionChildToParent::Success.send(sock)?;
|
||||||
|
|
||||||
|
- // Add GREETD_SOCK if this is a greeter session - we do this early as we are about to reuse the
|
||||||
|
- // buffer, invalidating our borrow.
|
||||||
|
- if let SessionClass::Greeter = class {
|
||||||
|
- pam.putenv(&format!("GREETD_SOCK={}", &listener_path))?;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
// Fetch our arguments from the parent.
|
||||||
|
let (env, cmd) = match ParentToSessionChild::recv(sock, &mut data)? {
|
||||||
|
ParentToSessionChild::Args { env, cmd } => (env, cmd),
|
||||||
|
@@ -159,20 +186,18 @@ fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
msg => return Err(format!("expected Start or Cancel, got: {:?}", msg).into()),
|
||||||
|
};
|
||||||
|
|
||||||
|
- let pam_username = pam.get_user()?;
|
||||||
|
-
|
||||||
|
- let user = nix::unistd::User::from_name(&pam_username)?.ok_or("unable to get user info")?;
|
||||||
|
+ let user = nix::unistd::User::from_name(&username)?.ok_or("unable to get user info")?;
|
||||||
|
|
||||||
|
// Make this process a session leader.
|
||||||
|
setsid().map_err(|e| format!("unable to become session leader: {}", e))?;
|
||||||
|
|
||||||
|
+ let xdg_vtnr = match &tty {
|
||||||
|
+ TerminalMode::Terminal { vt, .. } => Some(*vt),
|
||||||
|
+ TerminalMode::Stdin => None,
|
||||||
|
+ };
|
||||||
|
match tty {
|
||||||
|
TerminalMode::Stdin => (),
|
||||||
|
TerminalMode::Terminal { path, vt, switch } => {
|
||||||
|
- // Tell PAM what TTY we're targetting, which is used by logind.
|
||||||
|
- pam.set_item(PamItemType::TTY, &format!("tty{}", vt))?;
|
||||||
|
- pam.putenv(&format!("XDG_VTNR={}", vt))?;
|
||||||
|
-
|
||||||
|
// Opening our target terminal.
|
||||||
|
let target_term = terminal::Terminal::open(&path)?;
|
||||||
|
|
||||||
|
@@ -197,12 +222,7 @@ fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- // PAM has to be provided a bunch of environment variables before
|
||||||
|
- // open_session. We pass any environment variables from our greeter
|
||||||
|
- // through here as well. This allows them to affect PAM (more
|
||||||
|
- // specifically, pam_systemd.so), as well as make it easier to gather
|
||||||
|
- // and set all environment variables later.
|
||||||
|
- let prepared_env = [
|
||||||
|
+ let mut prepared_env = vec![
|
||||||
|
"XDG_SEAT=seat0".to_string(),
|
||||||
|
format!("XDG_SESSION_CLASS={}", class.as_str()),
|
||||||
|
format!("USER={}", user.name),
|
||||||
|
@@ -214,15 +234,12 @@ fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
env::var("TERM").unwrap_or_else(|_| "linux".to_string())
|
||||||
|
),
|
||||||
|
];
|
||||||
|
- for e in env.iter().chain(prepared_env.iter()) {
|
||||||
|
- pam.putenv(e)?;
|
||||||
|
+ if let SessionClass::Greeter = class {
|
||||||
|
+ prepared_env.push(format!("GREETD_SOCK={}", listener_path));
|
||||||
|
+ }
|
||||||
|
+ if let Some(vt) = xdg_vtnr {
|
||||||
|
+ prepared_env.push(format!("XDG_VTNR={}", vt));
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- // Session time!
|
||||||
|
- pam.open_session(PamFlag::NONE)?;
|
||||||
|
-
|
||||||
|
- // We are done with PAM, clear variables that the child will not need.
|
||||||
|
- _ = pam.putenv(&"XDG_SESSION_CLASS");
|
||||||
|
|
||||||
|
// Prepare some strings in C format that we'll need.
|
||||||
|
let cusername = CString::new(user.name)?;
|
||||||
|
@@ -235,13 +252,14 @@ fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
format!("exec {}", cmd.join(" "))
|
||||||
|
};
|
||||||
|
|
||||||
|
- // Extract PAM environment for use with execve below.
|
||||||
|
- let pamenvlist = pam.getenvlist()?;
|
||||||
|
- let envvec = pamenvlist.to_vec();
|
||||||
|
+ let envvec = env
|
||||||
|
+ .iter()
|
||||||
|
+ .chain(prepared_env.iter())
|
||||||
|
+ .map(|entry| CString::new(entry.as_str()))
|
||||||
|
+ .collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
||||||
|
- // PAM is weird and gets upset if you exec from the process that opened
|
||||||
|
- // the session, registering it automatically as a log-out. Thus, we must
|
||||||
|
- // exec in a new child.
|
||||||
|
+ // Keep a privileged outer worker so it can own and reap the session while
|
||||||
|
+ // the inner child runs entirely as the authenticated account.
|
||||||
|
let child = match unsafe { fork() }.map_err(|e| format!("unable to fork: {}", e))? {
|
||||||
|
ForkResult::Parent { child, .. } => child,
|
||||||
|
ForkResult::Child => {
|
||||||
|
@@ -300,15 +318,6 @@ fn worker(sock: &UnixDatagram) -> Result<(), Error> {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- // Close the session. This step requires root privileges to run, as it
|
||||||
|
- // will result in various forms of login teardown (including unmounting
|
||||||
|
- // home folders, telling logind that the session ended, etc.). This is
|
||||||
|
- // why we cannot drop privileges in this process, but must do it in the
|
||||||
|
- // inner-most child.
|
||||||
|
- pam.close_session(PamFlag::NONE)?;
|
||||||
|
- pam.setcred(PamFlag::DELETE_CRED)?;
|
||||||
|
- pam.end()?;
|
||||||
|
-
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
etc/greetd/config.toml
|
||||||
|
etc/rc.d/greetd
|
||||||
|
sbin/greetd
|
||||||
|
share/licenses/greetd/LICENSE
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
PORTNAME= seatd
|
||||||
|
PORTVERSION= 0.9.3
|
||||||
|
CATEGORIES= sysutils
|
||||||
|
MASTER_SITES= https://git.sr.ht/~kennylevinsen/seatd/archive/
|
||||||
|
DISTFILES= seatd-${PORTVERSION}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/seatd-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
BUILD_DEPENDS= meson:devel/meson
|
||||||
|
CONFIGURE_ARGS= -Dexamples=disabled -Dlibseat-logind=disabled \
|
||||||
|
-Dlibseat-seatd=enabled -Dlibseat-builtin=disabled \
|
||||||
|
-Dserver=enabled -Dman-pages=disabled
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/etc/rc.d" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/seatd"
|
||||||
|
install -m 0755 "${PORTDIR}/files/seatd" \
|
||||||
|
"${STAGEDIR}${PREFIX}/etc/rc.d/seatd"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/seatd/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (seatd-0.9.3.tar.gz) = 302564d54d8e28191fadfd734f2675ecb0c9e0615a58011b89ef15dfa4dbaa96
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# PROVIDE: seatd SEAT
|
||||||
|
# REQUIRE: gardendevd
|
||||||
|
# BEFORE: greetd
|
||||||
|
|
||||||
|
. /etc/rc.subr
|
||||||
|
|
||||||
|
name=seatd
|
||||||
|
command=/usr/local/bin/seatd
|
||||||
|
command_args="-g seat &"
|
||||||
|
|
||||||
|
run_rc_command "$1"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
bin/seatd
|
||||||
|
bin/seatd-launch
|
||||||
|
etc/rc.d/seatd
|
||||||
|
include/libseat.h
|
||||||
|
lib/libseat.so
|
||||||
|
lib/libseat.so.1
|
||||||
|
lib/pkgconfig/libseat.pc
|
||||||
|
share/licenses/seatd/LICENSE
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
PORTNAME= expat
|
||||||
|
PORTVERSION= 2.8.2
|
||||||
|
CATEGORIES= textproc
|
||||||
|
MASTER_SITES= https://github.com/libexpat/libexpat/releases/download/R_2_8_2/
|
||||||
|
DISTFILES= expat-${PORTVERSION}.tar.xz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/expat-${PORTVERSION}
|
||||||
|
BUILD_STYLE= gnu-configure
|
||||||
|
CONFIGURE_ARGS= --disable-static
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} DESTDIR="${STAGEDIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/expat"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/expat/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (expat-2.8.2.tar.xz) = 3ad89b8588e6644bd4e49981480d48b21289eebbcd4f0a1a4afb1c29f99b6ab4
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
@tree bin
|
||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
PORTNAME= dwl
|
||||||
|
PORTVERSION= 0.8
|
||||||
|
CATEGORIES= x11
|
||||||
|
GIT_COMMIT= 9b11a49cb757b80f8589088b487b5f1e56643aa1
|
||||||
|
MASTER_SITES= https://git.pupes.org/jachym/dwl/archive/
|
||||||
|
DISTFILES= dwl-${GIT_COMMIT}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}${GIT_COMMIT}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/dwl
|
||||||
|
RUN_DEPENDS= havoc:x11/havoc wlroots:x11/wlroots
|
||||||
|
PATCHFILES= patch-havoc-command
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} \
|
||||||
|
CC=cc PKG_CONFIG=pkgconf PREFIX="${PREFIX}" XWAYLAND=
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} \
|
||||||
|
DESTDIR="${STAGEDIR}" PREFIX="${PREFIX}" install
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/dwl"
|
||||||
|
install -m 0755 "${PORTDIR}/files/mouse-dwl-session" \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin/mouse-dwl-session"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/dwl/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (dwl-9b11a49cb757b80f8589088b487b5f1e56643aa1.tar.gz) = a80cc39794a17b9753349496e2cb127f1de22eb179d78f2c22ef647f2643a654
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
runtime=/run/user/$(id -u)
|
||||||
|
umask 077
|
||||||
|
mkdir -p "$runtime"
|
||||||
|
chmod 0700 "$runtime"
|
||||||
|
export XDG_CURRENT_DESKTOP=dwl
|
||||||
|
export XDG_RUNTIME_DIR="$runtime"
|
||||||
|
export XDG_SESSION_TYPE=wayland
|
||||||
|
export WLR_RENDERER=pixman
|
||||||
|
exec /usr/local/bin/dwl
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
--- a/config.def.h
|
||||||
|
+++ b/config.def.h
|
||||||
|
@@ -105,7 +105,6 @@ static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TA
|
||||||
|
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
||||||
|
|
||||||
|
/* commands */
|
||||||
|
-static const char *termcmd[] = { "foot", NULL };
|
||||||
|
-static const char *menucmd[] = { "wmenu-run", NULL };
|
||||||
|
+static const char *termcmd[] = { "/usr/local/bin/havoc", NULL };
|
||||||
|
|
||||||
|
static const Key keys[] = {
|
||||||
|
@@ -114,3 +113,2 @@ static const Key keys[] = {
|
||||||
|
/* modifier key function argument */
|
||||||
|
- { MODKEY, XKB_KEY_p, spawn, {.v = menucmd} },
|
||||||
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
bin/dwl
|
||||||
|
bin/mouse-dwl-session
|
||||||
|
share/licenses/dwl/LICENSE
|
||||||
|
share/man/man1/dwl.1
|
||||||
|
share/wayland-sessions/dwl.desktop
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
PORTNAME= havoc
|
||||||
|
PORTVERSION= 0.7.0
|
||||||
|
CATEGORIES= x11
|
||||||
|
GIT_COMMIT= e9fd7e2623371338566432d6408267747dbf5146
|
||||||
|
MASTER_SITES= https://github.com/ii8/havoc.git
|
||||||
|
DISTFILES= havoc-${GIT_COMMIT}.tar
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/havoc
|
||||||
|
RUN_DEPENDS= wayland:graphics/wayland \
|
||||||
|
wayland-protocols:graphics/wayland-protocols \
|
||||||
|
libxkbcommon:x11/libxkbcommon
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} \
|
||||||
|
CC=cc CFLAGS="-O2 -DNDEBUG" PKG_CONFIG=pkgconf
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/havoc"
|
||||||
|
install -m 0755 "${SOURCE_DIR}/havoc" \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin/havoc"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/havoc/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (havoc-e9fd7e2623371338566432d6408267747dbf5146.tar) = 387844d919de6671c812d54eae52547e6acee9b7cd7818f2d22d53dbd6b66b42
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
bin/havoc
|
||||||
|
share/licenses/havoc/LICENSE
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
PORTNAME= libevdev
|
||||||
|
PORTVERSION= 1.13.6
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://www.freedesktop.org/software/libevdev/
|
||||||
|
DISTFILES= libevdev-${PORTVERSION}.tar.xz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libevdev-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
CONFIGURE_ARGS= -Dtests=disabled -Ddocumentation=disabled
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/libevdev"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/libevdev/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (libevdev-1.13.6.tar.xz) = 73f215eccbd8233f414737ac06bca2687e67c44b97d2d7576091aa9718551110
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
@tree bin
|
||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
PORTNAME= libinput
|
||||||
|
PORTVERSION= 1.31.3
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/libinput/libinput/-/archive/${PORTVERSION}/
|
||||||
|
DISTFILES= libinput-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libinput-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
RUN_DEPENDS= libudev-garden:devel/libudev-garden \
|
||||||
|
libevdev:x11/libevdev mtdev:x11/mtdev
|
||||||
|
CONFIGURE_ARGS= -Ddocumentation=false -Dlibwacom=false -Ddebug-gui=false \
|
||||||
|
-Dtests=false -Dinstall-tests=false
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
rm -rf "${STAGEDIR}${PREFIX}/bin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/libexec"
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/libinput"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/libinput/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (libinput-1.31.3.tar.gz) = b6749bf6f1890f6631c0a70a027c35fec9d2e096a39f720548896e41474a9854
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
PORTNAME= libxkbcommon
|
||||||
|
PORTVERSION= 1.13.2
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/
|
||||||
|
DISTFILES= xkbcommon-${PORTVERSION}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}xkbcommon-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/libxkbcommon-xkbcommon-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
RUN_DEPENDS= xkeyboard-config:x11/xkeyboard-config
|
||||||
|
CONFIGURE_ARGS= -Denable-tools=false -Denable-x11=false -Denable-wayland=false \
|
||||||
|
-Denable-docs=false -Denable-xkbregistry=false \
|
||||||
|
-Denable-bash-completion=false
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/libxkbcommon"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/libxkbcommon/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (xkbcommon-1.13.2.tar.gz) = acc4d5f7c3cbba5f9f8d08d8bdbeede84ecede46792f47929aa9321873385528
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
PORTNAME= mtdev
|
||||||
|
PORTVERSION= 1.1.7
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://bitmath.org/code/mtdev/
|
||||||
|
DISTFILES= mtdev-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/mtdev-${PORTVERSION}
|
||||||
|
BUILD_STYLE= gnu-configure
|
||||||
|
CONFIGURE_ARGS= --disable-static
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
cd "${SOURCE_DIR}" && ${GMAKE} DESTDIR="${STAGEDIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/mtdev"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/mtdev/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (mtdev-1.1.7.tar.gz) = a55bd02a9af4dd266c0042ec608744fff3a017577614c057da09f1f4566ea32c
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
@tree bin
|
||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,245 @@
|
|||||||
|
PORTNAME= tuigreet
|
||||||
|
PORTVERSION= 0.9.1
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://github.com/apognu/tuigreet/archive/refs/tags/
|
||||||
|
DISTFILES= tuigreet-${PORTVERSION}.tar.gz
|
||||||
|
DIST_SOURCES= ${DISTFILES}@${MASTER_SITES}${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/tuigreet-${PORTVERSION}
|
||||||
|
BUILD_DEPENDS= rust:lang/rust
|
||||||
|
CARGO_CRATES= \
|
||||||
|
addr2line/0.21.0 \
|
||||||
|
adler/1.0.2 \
|
||||||
|
ahash/0.8.11 \
|
||||||
|
aho-corasick/1.1.3 \
|
||||||
|
allocator-api2/0.2.18 \
|
||||||
|
android-tzdata/0.1.1 \
|
||||||
|
android_system_properties/0.1.5 \
|
||||||
|
arc-swap/1.7.1 \
|
||||||
|
async-trait/0.1.80 \
|
||||||
|
autocfg/1.2.0 \
|
||||||
|
backtrace/0.3.71 \
|
||||||
|
bitflags/1.3.2 \
|
||||||
|
bitflags/2.5.0 \
|
||||||
|
block/0.1.6 \
|
||||||
|
block-buffer/0.10.4 \
|
||||||
|
bumpalo/3.16.0 \
|
||||||
|
bytes/1.6.0 \
|
||||||
|
cassowary/0.3.0 \
|
||||||
|
castaway/0.2.2 \
|
||||||
|
cc/1.0.95 \
|
||||||
|
cfg-if/1.0.0 \
|
||||||
|
cfg_aliases/0.1.1 \
|
||||||
|
chrono/0.4.38 \
|
||||||
|
compact_str/0.7.1 \
|
||||||
|
const-random/0.1.18 \
|
||||||
|
const-random-macro/0.1.16 \
|
||||||
|
core-foundation-sys/0.8.6 \
|
||||||
|
cpufeatures/0.2.12 \
|
||||||
|
crossbeam-channel/0.5.12 \
|
||||||
|
crossbeam-utils/0.8.19 \
|
||||||
|
crossterm/0.27.0 \
|
||||||
|
crossterm_winapi/0.9.1 \
|
||||||
|
crunchy/0.2.2 \
|
||||||
|
crypto-common/0.1.6 \
|
||||||
|
dashmap/5.5.3 \
|
||||||
|
deranged/0.3.11 \
|
||||||
|
digest/0.10.7 \
|
||||||
|
displaydoc/0.2.4 \
|
||||||
|
dlv-list/0.5.2 \
|
||||||
|
either/1.11.0 \
|
||||||
|
equivalent/1.0.1 \
|
||||||
|
find-crate/0.6.3 \
|
||||||
|
fluent/0.16.0 \
|
||||||
|
fluent-bundle/0.15.2 \
|
||||||
|
fluent-langneg/0.13.0 \
|
||||||
|
fluent-syntax/0.11.0 \
|
||||||
|
futures/0.3.30 \
|
||||||
|
futures-channel/0.3.30 \
|
||||||
|
futures-core/0.3.30 \
|
||||||
|
futures-executor/0.3.30 \
|
||||||
|
futures-io/0.3.30 \
|
||||||
|
futures-macro/0.3.30 \
|
||||||
|
futures-sink/0.3.30 \
|
||||||
|
futures-task/0.3.30 \
|
||||||
|
futures-util/0.3.30 \
|
||||||
|
generic-array/0.14.7 \
|
||||||
|
getopts/0.2.21 \
|
||||||
|
getrandom/0.2.14 \
|
||||||
|
gimli/0.28.1 \
|
||||||
|
greetd_ipc/0.10.0 \
|
||||||
|
hashbrown/0.14.3 \
|
||||||
|
heck/0.4.1 \
|
||||||
|
hermit-abi/0.3.9 \
|
||||||
|
i18n-config/0.4.6 \
|
||||||
|
i18n-embed/0.14.1 \
|
||||||
|
i18n-embed-fl/0.8.0 \
|
||||||
|
i18n-embed-impl/0.8.3 \
|
||||||
|
iana-time-zone/0.1.60 \
|
||||||
|
iana-time-zone-haiku/0.1.2 \
|
||||||
|
indexmap/2.2.6 \
|
||||||
|
indoc/2.0.5 \
|
||||||
|
intl-memoizer/0.5.1 \
|
||||||
|
intl_pluralrules/7.0.2 \
|
||||||
|
itertools/0.12.1 \
|
||||||
|
itoa/1.0.11 \
|
||||||
|
js-sys/0.3.69 \
|
||||||
|
lazy_static/1.4.0 \
|
||||||
|
libc/0.2.153 \
|
||||||
|
locale_config/0.3.0 \
|
||||||
|
lock_api/0.4.11 \
|
||||||
|
log/0.4.21 \
|
||||||
|
lru/0.12.3 \
|
||||||
|
malloc_buf/0.0.6 \
|
||||||
|
memchr/2.7.2 \
|
||||||
|
miniz_oxide/0.7.2 \
|
||||||
|
mio/0.8.11 \
|
||||||
|
nix/0.28.0 \
|
||||||
|
nu-ansi-term/0.46.0 \
|
||||||
|
num-conv/0.1.0 \
|
||||||
|
num-traits/0.2.18 \
|
||||||
|
num_cpus/1.16.0 \
|
||||||
|
objc/0.2.7 \
|
||||||
|
objc-foundation/0.1.1 \
|
||||||
|
objc_id/0.1.1 \
|
||||||
|
object/0.32.2 \
|
||||||
|
once_cell/1.19.0 \
|
||||||
|
ordered-multimap/0.7.3 \
|
||||||
|
overload/0.1.1 \
|
||||||
|
parking_lot/0.12.1 \
|
||||||
|
parking_lot_core/0.9.9 \
|
||||||
|
paste/1.0.14 \
|
||||||
|
pin-project-lite/0.2.14 \
|
||||||
|
pin-utils/0.1.0 \
|
||||||
|
powerfmt/0.2.0 \
|
||||||
|
ppv-lite86/0.2.17 \
|
||||||
|
proc-macro-error/1.0.4 \
|
||||||
|
proc-macro-error-attr/1.0.4 \
|
||||||
|
proc-macro2/1.0.81 \
|
||||||
|
pure-rust-locales/0.8.1 \
|
||||||
|
quote/1.0.36 \
|
||||||
|
rand/0.8.5 \
|
||||||
|
rand_chacha/0.3.1 \
|
||||||
|
rand_core/0.6.4 \
|
||||||
|
ratatui/0.26.2 \
|
||||||
|
redox_syscall/0.4.1 \
|
||||||
|
regex/1.10.4 \
|
||||||
|
regex-automata/0.4.6 \
|
||||||
|
regex-syntax/0.8.3 \
|
||||||
|
rust-embed/8.3.0 \
|
||||||
|
rust-embed-impl/8.3.0 \
|
||||||
|
rust-embed-utils/8.3.0 \
|
||||||
|
rust-ini/0.21.0 \
|
||||||
|
rustc-demangle/0.1.23 \
|
||||||
|
rustc-hash/1.1.0 \
|
||||||
|
rustversion/1.0.15 \
|
||||||
|
ryu/1.0.17 \
|
||||||
|
same-file/1.0.6 \
|
||||||
|
scopeguard/1.2.0 \
|
||||||
|
self_cell/0.10.3 \
|
||||||
|
self_cell/1.0.3 \
|
||||||
|
serde/1.0.198 \
|
||||||
|
serde_derive/1.0.198 \
|
||||||
|
serde_json/1.0.116 \
|
||||||
|
serde_spanned/0.6.5 \
|
||||||
|
sha2/0.10.8 \
|
||||||
|
sharded-slab/0.1.7 \
|
||||||
|
signal-hook/0.3.17 \
|
||||||
|
signal-hook-mio/0.2.3 \
|
||||||
|
signal-hook-registry/1.4.2 \
|
||||||
|
slab/0.4.9 \
|
||||||
|
smallvec/1.13.2 \
|
||||||
|
smart-default/0.7.1 \
|
||||||
|
smawk/0.3.2 \
|
||||||
|
socket2/0.5.6 \
|
||||||
|
stability/0.2.0 \
|
||||||
|
static_assertions/1.1.0 \
|
||||||
|
strsim/0.10.0 \
|
||||||
|
strum/0.26.2 \
|
||||||
|
strum_macros/0.26.2 \
|
||||||
|
syn/1.0.109 \
|
||||||
|
syn/2.0.60 \
|
||||||
|
textwrap/0.16.1 \
|
||||||
|
thiserror/1.0.59 \
|
||||||
|
thiserror-impl/1.0.59 \
|
||||||
|
thread_local/1.1.8 \
|
||||||
|
time/0.3.36 \
|
||||||
|
time-core/0.1.2 \
|
||||||
|
time-macros/0.2.18 \
|
||||||
|
tiny-keccak/2.0.2 \
|
||||||
|
tinystr/0.7.5 \
|
||||||
|
tokio/1.37.0 \
|
||||||
|
tokio-macros/2.2.0 \
|
||||||
|
toml/0.5.11 \
|
||||||
|
toml/0.8.12 \
|
||||||
|
toml_datetime/0.6.5 \
|
||||||
|
toml_edit/0.22.12 \
|
||||||
|
tracing/0.1.40 \
|
||||||
|
tracing-appender/0.2.3 \
|
||||||
|
tracing-attributes/0.1.27 \
|
||||||
|
tracing-core/0.1.32 \
|
||||||
|
tracing-log/0.2.0 \
|
||||||
|
tracing-subscriber/0.3.18 \
|
||||||
|
trim-in-place/0.1.7 \
|
||||||
|
type-map/0.4.0 \
|
||||||
|
typenum/1.17.0 \
|
||||||
|
unic-langid/0.9.4 \
|
||||||
|
unic-langid-impl/0.9.4 \
|
||||||
|
unicode-ident/1.0.12 \
|
||||||
|
unicode-linebreak/0.1.5 \
|
||||||
|
unicode-segmentation/1.11.0 \
|
||||||
|
unicode-width/0.1.11 \
|
||||||
|
uzers/0.12.0 \
|
||||||
|
valuable/0.1.0 \
|
||||||
|
version_check/0.9.4 \
|
||||||
|
walkdir/2.5.0 \
|
||||||
|
wasi/0.11.0+wasi-snapshot-preview1 \
|
||||||
|
wasm-bindgen/0.2.92 \
|
||||||
|
wasm-bindgen-backend/0.2.92 \
|
||||||
|
wasm-bindgen-macro/0.2.92 \
|
||||||
|
wasm-bindgen-macro-support/0.2.92 \
|
||||||
|
wasm-bindgen-shared/0.2.92 \
|
||||||
|
winapi/0.3.9 \
|
||||||
|
winapi-i686-pc-windows-gnu/0.4.0 \
|
||||||
|
winapi-util/0.1.7 \
|
||||||
|
winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||||
|
windows-core/0.52.0 \
|
||||||
|
windows-sys/0.48.0 \
|
||||||
|
windows-sys/0.52.0 \
|
||||||
|
windows-targets/0.48.5 \
|
||||||
|
windows-targets/0.52.5 \
|
||||||
|
windows_aarch64_gnullvm/0.48.5 \
|
||||||
|
windows_aarch64_gnullvm/0.52.5 \
|
||||||
|
windows_aarch64_msvc/0.48.5 \
|
||||||
|
windows_aarch64_msvc/0.52.5 \
|
||||||
|
windows_i686_gnu/0.48.5 \
|
||||||
|
windows_i686_gnu/0.52.5 \
|
||||||
|
windows_i686_gnullvm/0.52.5 \
|
||||||
|
windows_i686_msvc/0.48.5 \
|
||||||
|
windows_i686_msvc/0.52.5 \
|
||||||
|
windows_x86_64_gnu/0.48.5 \
|
||||||
|
windows_x86_64_gnu/0.52.5 \
|
||||||
|
windows_x86_64_gnullvm/0.48.5 \
|
||||||
|
windows_x86_64_gnullvm/0.52.5 \
|
||||||
|
windows_x86_64_msvc/0.48.5 \
|
||||||
|
windows_x86_64_msvc/0.52.5 \
|
||||||
|
winnow/0.6.6 \
|
||||||
|
zerocopy/0.7.32 \
|
||||||
|
zerocopy-derive/0.7.32 \
|
||||||
|
zeroize/1.7.0
|
||||||
|
|
||||||
|
do-build:
|
||||||
|
cd "${SOURCE_DIR}" && env CARGO_HOME="${WRKDIR}/cargo-home" \
|
||||||
|
cargo rustc --offline --locked --release \
|
||||||
|
--bin tuigreet -- -C target-feature=+crt-static
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
mkdir -p \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/tuigreet"
|
||||||
|
install -m 0755 "${SOURCE_DIR}/target/release/tuigreet" \
|
||||||
|
"${STAGEDIR}${PREFIX}/bin/tuigreet"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/tuigreet/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1,220 @@
|
|||||||
|
SHA256 (tuigreet-0.9.1.tar.gz) = 14fd1fadeb84040eb31901da2b53a48aa55b0fdaccb36d96fa52ce2d2113667f
|
||||||
|
SHA256 (addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
|
||||||
|
SHA256 (adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
|
||||||
|
SHA256 (ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
|
||||||
|
SHA256 (aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
|
||||||
|
SHA256 (allocator-api2-0.2.18.crate) = 5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f
|
||||||
|
SHA256 (android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
|
||||||
|
SHA256 (android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
|
||||||
|
SHA256 (arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457
|
||||||
|
SHA256 (async-trait-0.1.80.crate) = c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca
|
||||||
|
SHA256 (autocfg-1.2.0.crate) = f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
|
||||||
|
SHA256 (backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
|
||||||
|
SHA256 (bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
|
||||||
|
SHA256 (bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
|
||||||
|
SHA256 (block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
|
||||||
|
SHA256 (block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
|
||||||
|
SHA256 (bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
|
||||||
|
SHA256 (bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9
|
||||||
|
SHA256 (cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53
|
||||||
|
SHA256 (castaway-0.2.2.crate) = 8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc
|
||||||
|
SHA256 (cc-1.0.95.crate) = d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b
|
||||||
|
SHA256 (cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
|
||||||
|
SHA256 (cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e
|
||||||
|
SHA256 (chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
|
||||||
|
SHA256 (compact_str-0.7.1.crate) = f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f
|
||||||
|
SHA256 (const-random-0.1.18.crate) = 87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359
|
||||||
|
SHA256 (const-random-macro-0.1.16.crate) = f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e
|
||||||
|
SHA256 (core-foundation-sys-0.8.6.crate) = 06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f
|
||||||
|
SHA256 (cpufeatures-0.2.12.crate) = 53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504
|
||||||
|
SHA256 (crossbeam-channel-0.5.12.crate) = ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95
|
||||||
|
SHA256 (crossbeam-utils-0.8.19.crate) = 248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345
|
||||||
|
SHA256 (crossterm-0.27.0.crate) = f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df
|
||||||
|
SHA256 (crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b
|
||||||
|
SHA256 (crunchy-0.2.2.crate) = 7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7
|
||||||
|
SHA256 (crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
|
||||||
|
SHA256 (dashmap-5.5.3.crate) = 978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856
|
||||||
|
SHA256 (deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4
|
||||||
|
SHA256 (digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
|
||||||
|
SHA256 (displaydoc-0.2.4.crate) = 487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d
|
||||||
|
SHA256 (dlv-list-0.5.2.crate) = 442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f
|
||||||
|
SHA256 (either-1.11.0.crate) = a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2
|
||||||
|
SHA256 (equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
|
||||||
|
SHA256 (find-crate-0.6.3.crate) = 59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2
|
||||||
|
SHA256 (fluent-0.16.0.crate) = 61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7
|
||||||
|
SHA256 (fluent-bundle-0.15.2.crate) = e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd
|
||||||
|
SHA256 (fluent-langneg-0.13.0.crate) = 2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94
|
||||||
|
SHA256 (fluent-syntax-0.11.0.crate) = c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78
|
||||||
|
SHA256 (futures-0.3.30.crate) = 645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0
|
||||||
|
SHA256 (futures-channel-0.3.30.crate) = eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78
|
||||||
|
SHA256 (futures-core-0.3.30.crate) = dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d
|
||||||
|
SHA256 (futures-executor-0.3.30.crate) = a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d
|
||||||
|
SHA256 (futures-io-0.3.30.crate) = a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1
|
||||||
|
SHA256 (futures-macro-0.3.30.crate) = 87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac
|
||||||
|
SHA256 (futures-sink-0.3.30.crate) = 9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5
|
||||||
|
SHA256 (futures-task-0.3.30.crate) = 38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004
|
||||||
|
SHA256 (futures-util-0.3.30.crate) = 3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48
|
||||||
|
SHA256 (generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
|
||||||
|
SHA256 (getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5
|
||||||
|
SHA256 (getrandom-0.2.14.crate) = 94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c
|
||||||
|
SHA256 (gimli-0.28.1.crate) = 4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253
|
||||||
|
SHA256 (greetd_ipc-0.10.0.crate) = 1600ad23798daf53f5c336ebca8a7c603696ef4455103e9c713fab574131eb35
|
||||||
|
SHA256 (hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
|
||||||
|
SHA256 (heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
|
||||||
|
SHA256 (hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
|
||||||
|
SHA256 (i18n-config-0.4.6.crate) = 0c9ce3c48cbc21fd5b22b9331f32b5b51f6ad85d969b99e793427332e76e7640
|
||||||
|
SHA256 (i18n-embed-0.14.1.crate) = 94205d95764f5bb9db9ea98fa77f89653365ca748e27161f5bbea2ffd50e459c
|
||||||
|
SHA256 (i18n-embed-fl-0.8.0.crate) = 8241a781f49e923415e106fcd1f89c3fab92cc9f699a521c56e95dee273903d3
|
||||||
|
SHA256 (i18n-embed-impl-0.8.3.crate) = 81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58
|
||||||
|
SHA256 (iana-time-zone-0.1.60.crate) = e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141
|
||||||
|
SHA256 (iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
|
||||||
|
SHA256 (indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
|
||||||
|
SHA256 (indoc-2.0.5.crate) = b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5
|
||||||
|
SHA256 (intl-memoizer-0.5.1.crate) = c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f
|
||||||
|
SHA256 (intl_pluralrules-7.0.2.crate) = 078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972
|
||||||
|
SHA256 (itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
|
||||||
|
SHA256 (itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
|
||||||
|
SHA256 (js-sys-0.3.69.crate) = 29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d
|
||||||
|
SHA256 (lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
|
||||||
|
SHA256 (libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
|
||||||
|
SHA256 (locale_config-0.3.0.crate) = 08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934
|
||||||
|
SHA256 (lock_api-0.4.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
|
||||||
|
SHA256 (log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
|
||||||
|
SHA256 (lru-0.12.3.crate) = d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc
|
||||||
|
SHA256 (malloc_buf-0.0.6.crate) = 62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb
|
||||||
|
SHA256 (memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d
|
||||||
|
SHA256 (miniz_oxide-0.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
|
||||||
|
SHA256 (mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c
|
||||||
|
SHA256 (nix-0.28.0.crate) = ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4
|
||||||
|
SHA256 (nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
|
||||||
|
SHA256 (num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
|
||||||
|
SHA256 (num-traits-0.2.18.crate) = da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a
|
||||||
|
SHA256 (num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43
|
||||||
|
SHA256 (objc-0.2.7.crate) = 915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1
|
||||||
|
SHA256 (objc-foundation-0.1.1.crate) = 1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9
|
||||||
|
SHA256 (objc_id-0.1.1.crate) = c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b
|
||||||
|
SHA256 (object-0.32.2.crate) = a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441
|
||||||
|
SHA256 (once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
|
||||||
|
SHA256 (ordered-multimap-0.7.3.crate) = 49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79
|
||||||
|
SHA256 (overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
|
||||||
|
SHA256 (parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
|
||||||
|
SHA256 (parking_lot_core-0.9.9.crate) = 4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e
|
||||||
|
SHA256 (paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c
|
||||||
|
SHA256 (pin-project-lite-0.2.14.crate) = bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02
|
||||||
|
SHA256 (pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
|
||||||
|
SHA256 (powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
|
||||||
|
SHA256 (ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
|
||||||
|
SHA256 (proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
|
||||||
|
SHA256 (proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
|
||||||
|
SHA256 (proc-macro2-1.0.81.crate) = 3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba
|
||||||
|
SHA256 (pure-rust-locales-0.8.1.crate) = 1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a
|
||||||
|
SHA256 (quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
|
||||||
|
SHA256 (rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
|
||||||
|
SHA256 (rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
|
||||||
|
SHA256 (rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
|
||||||
|
SHA256 (ratatui-0.26.2.crate) = a564a852040e82671dc50a37d88f3aa83bbc690dfc6844cfe7a2591620206a80
|
||||||
|
SHA256 (redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
|
||||||
|
SHA256 (regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c
|
||||||
|
SHA256 (regex-automata-0.4.6.crate) = 86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea
|
||||||
|
SHA256 (regex-syntax-0.8.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56
|
||||||
|
SHA256 (rust-embed-8.3.0.crate) = fb78f46d0066053d16d4ca7b898e9343bc3530f71c61d5ad84cd404ada068745
|
||||||
|
SHA256 (rust-embed-impl-8.3.0.crate) = b91ac2a3c6c0520a3fb3dd89321177c3c692937c4eb21893378219da10c44fc8
|
||||||
|
SHA256 (rust-embed-utils-8.3.0.crate) = 86f69089032567ffff4eada41c573fc43ff466c7db7c5688b2e7969584345581
|
||||||
|
SHA256 (rust-ini-0.21.0.crate) = 0d625ed57d8f49af6cfa514c42e1a71fadcff60eb0b1c517ff82fe41aa025b41
|
||||||
|
SHA256 (rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
|
||||||
|
SHA256 (rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
|
||||||
|
SHA256 (rustversion-1.0.15.crate) = 80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47
|
||||||
|
SHA256 (ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
|
||||||
|
SHA256 (same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
|
||||||
|
SHA256 (scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
|
||||||
|
SHA256 (self_cell-0.10.3.crate) = e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d
|
||||||
|
SHA256 (self_cell-1.0.3.crate) = 58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba
|
||||||
|
SHA256 (serde-1.0.198.crate) = 9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc
|
||||||
|
SHA256 (serde_derive-1.0.198.crate) = e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9
|
||||||
|
SHA256 (serde_json-1.0.116.crate) = 3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813
|
||||||
|
SHA256 (serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
|
||||||
|
SHA256 (sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8
|
||||||
|
SHA256 (sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6
|
||||||
|
SHA256 (signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801
|
||||||
|
SHA256 (signal-hook-mio-0.2.3.crate) = 29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af
|
||||||
|
SHA256 (signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1
|
||||||
|
SHA256 (slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
|
||||||
|
SHA256 (smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
|
||||||
|
SHA256 (smart-default-0.7.1.crate) = 0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1
|
||||||
|
SHA256 (smawk-0.3.2.crate) = b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c
|
||||||
|
SHA256 (socket2-0.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
|
||||||
|
SHA256 (stability-0.2.0.crate) = 2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a
|
||||||
|
SHA256 (static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
|
||||||
|
SHA256 (strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
|
||||||
|
SHA256 (strum-0.26.2.crate) = 5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29
|
||||||
|
SHA256 (strum_macros-0.26.2.crate) = c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946
|
||||||
|
SHA256 (syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
|
||||||
|
SHA256 (syn-2.0.60.crate) = 909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3
|
||||||
|
SHA256 (textwrap-0.16.1.crate) = 23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9
|
||||||
|
SHA256 (thiserror-1.0.59.crate) = f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa
|
||||||
|
SHA256 (thiserror-impl-1.0.59.crate) = d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66
|
||||||
|
SHA256 (thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c
|
||||||
|
SHA256 (time-0.3.36.crate) = 5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885
|
||||||
|
SHA256 (time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3
|
||||||
|
SHA256 (time-macros-0.2.18.crate) = 3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf
|
||||||
|
SHA256 (tiny-keccak-2.0.2.crate) = 2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237
|
||||||
|
SHA256 (tinystr-0.7.5.crate) = 83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece
|
||||||
|
SHA256 (tokio-1.37.0.crate) = 1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787
|
||||||
|
SHA256 (tokio-macros-2.2.0.crate) = 5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b
|
||||||
|
SHA256 (toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234
|
||||||
|
SHA256 (toml-0.8.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
|
||||||
|
SHA256 (toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
|
||||||
|
SHA256 (toml_edit-0.22.12.crate) = d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef
|
||||||
|
SHA256 (tracing-0.1.40.crate) = c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef
|
||||||
|
SHA256 (tracing-appender-0.2.3.crate) = 3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf
|
||||||
|
SHA256 (tracing-attributes-0.1.27.crate) = 34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7
|
||||||
|
SHA256 (tracing-core-0.1.32.crate) = c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54
|
||||||
|
SHA256 (tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3
|
||||||
|
SHA256 (tracing-subscriber-0.3.18.crate) = ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b
|
||||||
|
SHA256 (trim-in-place-0.1.7.crate) = 343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc
|
||||||
|
SHA256 (type-map-0.4.0.crate) = b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46
|
||||||
|
SHA256 (typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825
|
||||||
|
SHA256 (unic-langid-0.9.4.crate) = 238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516
|
||||||
|
SHA256 (unic-langid-impl-0.9.4.crate) = 4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6
|
||||||
|
SHA256 (unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
|
||||||
|
SHA256 (unicode-linebreak-0.1.5.crate) = 3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f
|
||||||
|
SHA256 (unicode-segmentation-1.11.0.crate) = d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202
|
||||||
|
SHA256 (unicode-width-0.1.11.crate) = e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85
|
||||||
|
SHA256 (uzers-0.12.0.crate) = 7d85875e16d59b3b1549efce83ff8251a64923b03bef94add0a1862847448de4
|
||||||
|
SHA256 (valuable-0.1.0.crate) = 830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d
|
||||||
|
SHA256 (version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
|
||||||
|
SHA256 (walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
|
||||||
|
SHA256 (wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
|
||||||
|
SHA256 (wasm-bindgen-0.2.92.crate) = 4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8
|
||||||
|
SHA256 (wasm-bindgen-backend-0.2.92.crate) = 614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da
|
||||||
|
SHA256 (wasm-bindgen-macro-0.2.92.crate) = a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726
|
||||||
|
SHA256 (wasm-bindgen-macro-support-0.2.92.crate) = e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7
|
||||||
|
SHA256 (wasm-bindgen-shared-0.2.92.crate) = af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96
|
||||||
|
SHA256 (winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
|
||||||
|
SHA256 (winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
|
||||||
|
SHA256 (winapi-util-0.1.7.crate) = 134306a13c5647ad6453e8deaec55d3a44d6021970129e6188735e74bf546697
|
||||||
|
SHA256 (winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
|
||||||
|
SHA256 (windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9
|
||||||
|
SHA256 (windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
|
||||||
|
SHA256 (windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
|
||||||
|
SHA256 (windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
|
||||||
|
SHA256 (windows-targets-0.52.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb
|
||||||
|
SHA256 (windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
|
||||||
|
SHA256 (windows_aarch64_gnullvm-0.52.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263
|
||||||
|
SHA256 (windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
|
||||||
|
SHA256 (windows_aarch64_msvc-0.52.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6
|
||||||
|
SHA256 (windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
|
||||||
|
SHA256 (windows_i686_gnu-0.52.5.crate) = 88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670
|
||||||
|
SHA256 (windows_i686_gnullvm-0.52.5.crate) = 87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9
|
||||||
|
SHA256 (windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
|
||||||
|
SHA256 (windows_i686_msvc-0.52.5.crate) = db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf
|
||||||
|
SHA256 (windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
|
||||||
|
SHA256 (windows_x86_64_gnu-0.52.5.crate) = 4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9
|
||||||
|
SHA256 (windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
|
||||||
|
SHA256 (windows_x86_64_gnullvm-0.52.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596
|
||||||
|
SHA256 (windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
|
||||||
|
SHA256 (windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
|
||||||
|
SHA256 (winnow-0.6.6.crate) = f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352
|
||||||
|
SHA256 (zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be
|
||||||
|
SHA256 (zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6
|
||||||
|
SHA256 (zeroize-1.7.0.crate) = 525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
bin/tuigreet
|
||||||
|
share/licenses/tuigreet/LICENSE
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
PORTNAME= wlroots
|
||||||
|
PORTVERSION= 0.19.3
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/wlroots/wlroots/-/archive/${PORTVERSION}/
|
||||||
|
DISTFILES= wlroots-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
SOURCE_DIR= ${WRKSRC}/wlroots-${PORTVERSION}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
RUN_DEPENDS= libudev-garden:devel/libudev-garden \
|
||||||
|
seatd:sysutils/seatd \
|
||||||
|
wayland:graphics/wayland \
|
||||||
|
wayland-protocols:graphics/wayland-protocols \
|
||||||
|
libdrm:graphics/libdrm \
|
||||||
|
hwdata:misc/hwdata \
|
||||||
|
libdisplay-info:graphics/libdisplay-info \
|
||||||
|
libinput:x11/libinput \
|
||||||
|
libxkbcommon:x11/libxkbcommon \
|
||||||
|
pixman:graphics/pixman
|
||||||
|
CONFIGURE_ARGS= -Dbackends=drm,libinput -Drenderers=[] -Dallocators=[] \
|
||||||
|
-Dsession=enabled -Dxwayland=disabled -Dexamples=false \
|
||||||
|
-Dcolor-management=disabled -Dlibliftoff=disabled
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/wlroots"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/LICENSE" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/wlroots/LICENSE"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (wlroots-0.19.3.tar.gz) = a6ff89b64ea15e424d1b0db4a22145fccf5ec2ff2e7b8af0fa35e2ac8975986f
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@tree include
|
||||||
|
@tree lib
|
||||||
|
@tree share
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
PORTNAME= xkeyboard-config
|
||||||
|
PORTVERSION= 2.48
|
||||||
|
CATEGORIES= x11
|
||||||
|
MASTER_SITES= https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/archive/xkeyboard-config-${PORTVERSION}/
|
||||||
|
DISTFILES= xkeyboard-config-${PORTVERSION}.tar.gz
|
||||||
|
|
||||||
|
GIT_COMMIT= cf8d1151bb4c9ef5b895828d0e6dd7860c0833e0
|
||||||
|
SOURCE_DIR= ${WRKSRC}/xkeyboard-config-xkeyboard-config-${PORTVERSION}-${GIT_COMMIT}
|
||||||
|
BUILD_STYLE= meson
|
||||||
|
CONFIGURE_ARGS= -Dnls=false
|
||||||
|
|
||||||
|
do-install:
|
||||||
|
env DESTDIR="${STAGEDIR}" ${NINJA} -C "${BUILD_DIR}" install
|
||||||
|
mkdir -p "${STAGEDIR}${PREFIX}/share/licenses/xkeyboard-config"
|
||||||
|
install -m 0644 "${SOURCE_DIR}/COPYING" \
|
||||||
|
"${STAGEDIR}${PREFIX}/share/licenses/xkeyboard-config/COPYING"
|
||||||
|
|
||||||
|
.include "${.PARSEDIR}/../../Mk/mouse.port.mk"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
SHA256 (xkeyboard-config-2.48.tar.gz) = 5f6dd3ad8ddeae8f9837ed07c6e58873ed166f8da92d473fba285d0c98a14f13
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@tree share
|
||||||
@@ -6,9 +6,21 @@ root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|||||||
[ -f "$root/ports/Mk/mouse.port.mk" ]
|
[ -f "$root/ports/Mk/mouse.port.mk" ]
|
||||||
[ -x "$root/ports/Mk/Scripts/check-plist.sh" ]
|
[ -x "$root/ports/Mk/Scripts/check-plist.sh" ]
|
||||||
[ -x "$root/ports/Mk/Scripts/checksum.sh" ]
|
[ -x "$root/ports/Mk/Scripts/checksum.sh" ]
|
||||||
|
[ -x "$root/ports/Mk/Scripts/checksum-cargo.sh" ]
|
||||||
[ -x "$root/ports/Mk/Scripts/fetch.sh" ]
|
[ -x "$root/ports/Mk/Scripts/fetch.sh" ]
|
||||||
|
[ -x "$root/ports/Mk/Scripts/fetch-cargo.sh" ]
|
||||||
[ -x "$root/ports/Mk/Scripts/install-depends.sh" ]
|
[ -x "$root/ports/Mk/Scripts/install-depends.sh" ]
|
||||||
[ -x "$root/ports/Mk/Scripts/package.sh" ]
|
[ -x "$root/ports/Mk/Scripts/package.sh" ]
|
||||||
|
[ -x "$root/ports/Mk/Scripts/vendor-cargo.sh" ]
|
||||||
|
|
||||||
|
if grep -REn '(^|[[:space:]])make[[:space:]]+-C' "$root/ports/Mk"; then
|
||||||
|
printf '%s\n' "ports infrastructure must recurse with bmake" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
grep -Fq 'BMAKE?=' "$root/ports/Mk/mouse.port.mk"
|
||||||
|
grep -Fq '"$bmake" -C "$portsdir/$origin" install' \
|
||||||
|
"$root/ports/Mk/Scripts/install-depends.sh"
|
||||||
|
|
||||||
find "$root/ports" -mindepth 2 -maxdepth 2 -type d \
|
find "$root/ports" -mindepth 2 -maxdepth 2 -type d \
|
||||||
! -path "$root/ports/Mk/*" -print |
|
! -path "$root/ports/Mk/*" -print |
|
||||||
|
|||||||
Reference in New Issue
Block a user