# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit autotools desktop DESCRIPTION="The fast and light GNUstep window manager" HOMEPAGE="https://www.windowmaker.org/" if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://repo.or.cz/wmaker-crm.git" SRC_URI="https://www.windowmaker.org/pub/source/release/WindowMaker-extra-0.1.tar.gz" else MY_P="WindowMaker-${PV}" SRC_URI=" https://github.com/window-maker/wmaker/releases/download/wmaker-${PV}/${MY_P}.tar.gz https://www.windowmaker.org/pub/source/release/WindowMaker-extra-0.1.tar.gz " S="${WORKDIR}/${MY_P}" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris" fi # WRASTER_CURRENT-WRASTER_AGE.WINGS_CURRENT-WINGS_AGE.WUTIL_CURRENT-WUTIL_AGE from configure.ac LICENSE="GPL-2" SLOT="0/6.3.5" IUSE="gif imagemagick jpeg modelock nls png tiff webp xinerama +xpm xrandr" DEPEND=" media-libs/fontconfig media-libs/libexif x11-libs/libX11 x11-libs/libXext x11-libs/libXres >=x11-libs/libXft-2.1.0 x11-libs/libXmu x11-libs/libXpm x11-libs/libXt x11-libs/libXv x11-libs/pango gif? ( >=media-libs/giflib-4.1.0-r3:= ) imagemagick? ( >=media-gfx/imagemagick-7:0= ) jpeg? ( media-libs/libjpeg-turbo:= ) nls? ( virtual/libintl ) png? ( media-libs/libpng:= ) tiff? ( media-libs/tiff:= ) webp? ( media-libs/libwebp:= ) xinerama? ( x11-libs/libXinerama ) xrandr? ( x11-libs/libXrandr ) " RDEPEND="${DEPEND}" BDEPEND="nls? ( >=sys-devel/gettext-0.10.39 )" DOCS=( AUTHORS BUGFORM BUGS ChangeLog INSTALL-WMAKER FAQ NEWS README README.definable-cursor README.i18n TODO ) src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack fi default } src_prepare() { # Fix some paths for file in WindowMaker/*menu* util/wmgenmenu.c; do if [[ -r $file ]] ; then sed -i -e "s|/usr/local/GNUstep/Applications/WPrefs.app|${EPREFIX}/usr/bin/|g;" "$file" || die sed -i -e "s|/usr/local/share/WindowMaker|${EPREFIX}/usr/share/WindowMaker|g;" "$file" || die sed -i -e "s|/opt/share/WindowMaker|${EPREFIX}/usr/share/WindowMaker|g;" "$file" || die fi done # Not relevant downstram sed -e '/check-local/d' -i Makefile.am || die default # Fix issues with ignored cflags and mystery linkage to glib, freetype and harfbuzz eautoreconf } src_configure() { # sanity check subslot to kick would be drive by bumpers local detected_abi for lib in WRASTER WINGS WUTIL; do # On Linux libtool will decide soname as CURRENT-AGE rather than just CURRENT local current="$(sed -n -e "s/${lib}_CURRENT=\([0-9]*\)/\1/p" configure.ac)" local age="$(sed -n -e "s/${lib}_AGE=\([0-9]*\)/\1/p" configure.ac)" detected_abi+="$((current-age))." done detected_abi="${detected_abi%.}" if [[ "${SLOT}" != "0/${detected_abi}" ]]; then if [[ ${PV} == 9999 ]]; then eerror "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}." else die "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}." fi fi local -a myeconfargs=( --localedir="${EPREFIX}"/usr/share/locale --sysconfdir="${EPREFIX}"/etc/X11 --disable-static --enable-usermenu --with-incs-from= --with-libs-from= --with-pixmapdir="${EPREFIX}"/usr/share/pixmaps --with-x # image format types $(use_enable gif) $(use_enable imagemagick magick) $(use_enable jpeg) $(use_enable png) $(use_enable tiff) $(use_enable webp) $(use_enable xpm) # optional X capabilities $(use_enable modelock) $(use_enable xinerama) $(use_enable xrandr randr) ) # NLS depends on whether LINGUAS is empty if use nls; then myeconfargs+=( LINGUAS="${LINGUAS:-$(cd po; x=(*.po); echo ${x[*]%.po})}" ) else myeconfargs+=( LINGUAS= ) fi econf "${myeconfargs[@]}" pushd ../WindowMaker-extra-0.1 &>/dev/null || die econf } src_compile() { emake # WindowMaker Extra Package (themes and icons) emake -C ../WindowMaker-extra-0.1 } src_install() { default # WindowMaker Extra emake -C ../WindowMaker-extra-0.1 DESTDIR="${D}" install newdoc ../WindowMaker-extra-0.1/README README.extra # create wmaker session shell script echo "#!/usr/bin/env bash" > wmaker echo "${EPREFIX}/usr/bin/wmaker" >> wmaker exeinto /etc/X11/Sessions/ doexe wmaker insinto /usr/share/xsessions doins "${FILESDIR}"/wmaker.desktop make_desktop_entry /usr/bin/wmaker find "${ED}" -type f -name '*.la' -delete || die }