[Bug 266564] [NEW PORT] x11/eww: ElKowars wacky widgets

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 24 Sep 2022 15:55:17 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266564

Jan Beich <jbeich@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jbeich@FreeBSD.org

--- Comment #2 from Jan Beich <jbeich@FreeBSD.org> ---
Comment on attachment 236775
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=236775
eww-0.4.0

> +USES=	cargo gnome

Whitespace: add one more <tab> after USES=. Otherwise, looks unaligned with the
lines below.

> +USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 pango

glib20 and pango can be omitted as already specified via gtk30. See _IMPL logic
in /usr/ports/Mk/Uses/gnome.mk

> +WRKSRC_SUBDIR=	crates/eww
> +
> +PLIST_FILES=	bin/eww
[...]
> +post-install:
> +	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/eww

eww can be replaced with ${PORTNAME} to make the style easier to unify across
ports or use this port as a template when creating a similar port.

> +WRKSRC_SUBDIR=	crates/eww
> +CARGO_CARGOLOCK=	${WRKSRC}/../../Cargo.lock
> +LICENSE_FILE=	${WRKSRC}/../../LICENSE

Unless ${WRKSRC} contains several unrelated components better set
CARGO_INSTALL_PATH=crates/${PORTNAME}. See also
https://github.com/rust-lang/cargo/issues/4101
crates/eww uses other crates/*, so everything seems related. AUR, Alpine,
NixPkgs seem to build eww package from toplevel directory.

  $ rg CARGO_INSTALL_PATH
  audio/spotify-player/Makefile
  22:CARGO_INSTALL_PATH=  ./spotify_player

  devel/rust-analyzer/Makefile
  189:CARGO_INSTALL_PATH= crates/rust-analyzer

  editors/helix/Makefile
  128:CARGO_INSTALL_PATH= ./helix-term

  games/veloren/Makefile
  752:CARGO_INSTALL_PATH= server-cli voxygen

  math/kalker/Makefile
  84:CARGO_INSTALL_PATH=  ./cli

  math/savage/Makefile
  18:CARGO_INSTALL_PATH=  ./savage

  security/acmed/Makefile
  22:CARGO_INSTALL_PATH=  ./acmed ./tacd

  sysutils/czkawka/Makefile
  347:CARGO_INSTALL_PATH= ${PLIST_FILES:Mbin/*:T}

  sysutils/gstat-rs/Makefile
  94:CARGO_INSTALL_PATH=  gstat

  textproc/meilisearch/Makefile
  24:CARGO_INSTALL_PATH=  meilisearch-http

  www/garage/Makefile
  20:CARGO_INSTALL_PATH=  src/garage

  www/lychee/Makefile
  20:CARGO_INSTALL_PATH=  lychee-bin

  x11/alacritty/Makefile
  223:CARGO_INSTALL_PATH= alacritty

  x11/wezterm/Makefile
  574:CARGO_INSTALL_PATH= ${PLIST_FILES:Mbin/*:T}

  x11-wm/leftwm/Makefile
  162:CARGO_INSTALL_PATH= ./leftwm


> +BUILD_DEPENDS=	rust-nightly>0:lang/rust-nightly
> +CARGO_BUILDDEP=	no

RUSTC_BOOTSTRAP is better than lang/rust-nightly because consumers (reverse
dependencies) are actually tested and fixed on compiler upgrades. Besides,
rust-nightly can be older than rust like now (1.63.0.20220622 vs. 1.63.0
released on 2022-08-08). Also, NixPkgs uses RUSTC_BOOTSTRAP=1 in its eww
package recipe.

  $ rg RUSTC_BOOTSTRAP
  games/veloren/Makefile
  750:CARGO_ENV+=         RUSTC_BOOTSTRAP=1

  net-im/libsignal-client/Makefile
  246:                    RUSTC_BOOTSTRAP=aes,polyval

  net-im/libsignal-node/Makefile
  243:MAKE_ENV+=  RUSTC_BOOTSTRAP=aes,polyval

  security/vaultwarden/Makefile
  375:CARGO_ENV+= RUSTC_BOOTSTRAP=1

  textproc/ripgrep/Makefile
  110:SIMD_MAKE_ENV=      RUSTC_BOOTSTRAP=encoding_rs,packed_simd_2

  www/deno/Makefile
  32:             RUSTC_BOOTSTRAP=1 \

> +OPTIONS_DEFAULT=	X11
> +OPTIONS_SINGLE=		PROTOCOL
> +OPTIONS_SINGLE_PROTOCOL=	WAYLAND X11
>
> +WAYLAND_LIB_DEPENDS=	libgtk-layer-shell.so:x11-toolkits/gtk-layer-shell
> +WAYLAND_VARS=	CARGO_FEATURES+=wayland
> +X11_VARS=	CARGO_FEATURES+=x11

After bug 227509 Wayland should be enabled by default. If it cannot co-exist
with X11 use flavors e.g.,

  FLAVORS=      x11 wayland

  PKGNAMESUFFIX=        -${FLAVOR}
  CARGO_FEATURES=       --no-default-features ${FLAVOR}
  wayland_LIB_DEPENDS=  libgtk-layer-shell.so:x11-toolkits/gtk-layer-shell
  wayland_CONFLICTS_INSTALL=    ${PORTNAME}-x11
  x11_CONFLICTS_INSTALL=        ${PORTNAME}-wayland

To test every flavor use: poudriere bulk -tj 131amd64 x11/eww@all

https://docs.freebsd.org/en/books/porters-handbook/flavors/

-- 
You are receiving this mail because:
You are the assignee for the bug.