app-misc/bcompare - 5.2.2.32209-r1 (ruizhi-overlay)

Search

Install

Install this version:

emerge -a =app-misc/bcompare-5.2.2.32209-r1

Package Information

Description:
Compare, merge files and folders using simple, powerful commands
Homepage:
https://www.scootersoftware.com
License:
Bcompare

Ebuild Details

Version EAPI Keywords Slot
5.2.2.32209-r1 8 amd64 0
View Raw Ebuild
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop toolchain-funcs xdg-utils

DESCRIPTION="Compare, merge files and folders using simple, powerful commands"
HOMEPAGE="https://www.scootersoftware.com"
SRC_URI="
	https://www.scootersoftware.com/${P}.x86_64.tar.gz
	https://downloads.sourceforge.net/sevenzip/7-Zip/26.00/7z2600-src.tar.xz
"

LICENSE="Bcompare"
SLOT="0"
KEYWORDS="amd64"
IUSE="caja kde nautilus nemo thunar"
QA_PREBUILT="
	usr/lib/beyondcompare/*
	usr/lib/beyondcompare/ext/*
	usr/lib*/caja/extensions-2.0/bcompare-ext-caja.so
	usr/lib*/nautilus/extensions-4/bcompare-ext-nautilus.so
	usr/lib*/nemo/extensions-3.0/bcompare-ext-nemo.so
	usr/lib*/qt6/plugins/kf6/kfileitemaction/bcompare_ext_kde6.so
	usr/lib*/thunarx-3/bcompare-ext-thunarx.so
"

RESTRICT="bindist mirror strip"
RDEPEND="
	app-arch/7zip
	app-arch/bzip2
	app-arch/unrar
	dev-libs/libqt6pas
	dev-qt/qtbase:6[gui,widgets]
	sys-apps/dbus
	virtual/zlib
	x11-libs/libX11
	x11-libs/libxkbcommon
	caja? ( mate-base/caja )
	kde? ( kde-frameworks/kio:6 )
	nautilus? ( gnome-base/nautilus )
	nemo? ( gnome-extra/nemo )
	thunar? ( xfce-base/thunar )
"
BDEPEND="
	app-arch/xz-utils[extra-filters(+)]
"

src_unpack() {
	unpack ${P}.x86_64.tar.gz
	unpack 7z2600-src.tar.xz
}

src_compile() {
	# Remove -Werror to avoid build failures from harmless warnings
	sed -i 's/-Werror //g' "${WORKDIR}/CPP/7zip/7zip_gcc.mak" || die

	pushd "${WORKDIR}/CPP/7zip/Bundles/Format7zF" > /dev/null || die
	emake -f makefile.gcc \
		CC="$(tc-getCC)" \
		CXX="$(tc-getCXX)"
	popd > /dev/null || die
}

src_install() {
	local BC_LIB="/usr/lib/beyondcompare"
	local BC_BIN="/usr/bin"

	# Install lib7z.so built from 7-zip source
	exeinto "${BC_LIB}"
	newexe "${WORKDIR}/CPP/7zip/Bundles/Format7zF/_o/7z.so" lib7z.so

	# BCompare binary
	doexe BCompare

	insinto "${BC_LIB}"
	doins BCompare.mad libcloudstorage.so.22.0

	local ext_files=()
	use caja && ext_files+=( ext/bcompare-ext-caja.amd64.so )
	use kde && ext_files+=( ext/bcompare_ext_kde6.amd64.so )
	use nautilus && ext_files+=(
		ext/bcompare-ext-nautilus.amd64.so
		ext/bcompare-ext-nautilus.amd64.so.ext4
	)
	use nemo && ext_files+=( ext/bcompare-ext-nemo.amd64.so )
	use thunar && ext_files+=( ext/bcompare-ext-thunarx-3.amd64.so )

	if [[ ${#ext_files[@]} -gt 0 ]]; then
		# Skip legacy Qt/i386 plugins that cannot resolve on current Gentoo.
		insinto "${BC_LIB}/ext"
		doins "${ext_files[@]}"
	fi

	# bzip2 compatibility
	dosym ../../$(get_libdir)/libbz2.so.1 "${BC_LIB}/libbz2.so.1.0"

	if use caja; then
		local CAJA_PLUGINS="/usr/$(get_libdir)/caja/extensions-2.0"
		exeinto "${CAJA_PLUGINS}"
		newexe "ext/bcompare-ext-caja.amd64.so" "bcompare-ext-caja.so"
	fi

	# KDE 6 Context Menu Plugin (Optional)
	if use kde; then
		local KDE6_PLUGINS="/usr/$(get_libdir)/qt6/plugins/kf6/kfileitemaction"
		exeinto "${KDE6_PLUGINS}"
		newexe "ext/bcompare_ext_kde6.amd64.so" "bcompare_ext_kde6.so"
	fi

	if use nautilus; then
		local NAUTILUS_PLUGINS="/usr/$(get_libdir)/nautilus/extensions-4"
		exeinto "${NAUTILUS_PLUGINS}"
		newexe "ext/bcompare-ext-nautilus.amd64.so.ext4" "bcompare-ext-nautilus.so"
	fi

	if use nemo; then
		local NEMO_PLUGINS="/usr/$(get_libdir)/nemo/extensions-3.0"
		exeinto "${NEMO_PLUGINS}"
		newexe "ext/bcompare-ext-nemo.amd64.so" "bcompare-ext-nemo.so"
	fi

	if use thunar; then
		local THUNAR_PLUGINS="/usr/$(get_libdir)/thunarx-3"
		exeinto "${THUNAR_PLUGINS}"
		newexe "ext/bcompare-ext-thunarx-3.amd64.so" "bcompare-ext-thunarx.so"
	fi

	# Wrapper Script
	dodir "${BC_BIN}"
	cat <<-EOF >"${ED}${BC_BIN}/bcompare" || die
	#!/bin/sh
	# Force X11 backend for stability
	export QT_QPA_PLATFORM=xcb

	# Suppress Qt noise (QComboBox warnings, etc.)
	export QT_LOGGING_RULES="qt.core.qobject.connect.warning=false;*.debug=false"

	# Use basic dialogs to prevent crashes on high-end desktop environments
	export QT_NO_NATIVE_FILE_DIALOGS=1

	# Prioritize our minimal lib dir
	export LD_LIBRARY_PATH="${BC_LIB}:\${LD_LIBRARY_PATH}"

	# Execute and redirect stderr to silence QThreadStorage cleanup messages
	exec "${BC_LIB}/BCompare" "\$@" 2>/dev/null
	EOF
	fperms +x "${BC_BIN}/bcompare"

	# Integration Files
	domenu bcompare.desktop
	doicon bcompare.png
	insinto /usr/share/mime/packages
	doins bcompare.xml

	insinto /usr/share/pixmaps
	doins bcomparefull32.png bcomparehalf32.png

	dodoc -r help/*

	# revdep-rebuild mask
	insinto /etc/revdep-rebuild
	echo "SEARCH_DIRS_MASK=\"${BC_LIB}\"" > "${T}/20${PN}"
	doins "${T}/20${PN}"
}

pkg_postinst() {
	xdg_desktop_database_update
	xdg_mimeinfo_database_update
}

pkg_postrm() {
	xdg_desktop_database_update
	xdg_mimeinfo_database_update
}

USE Flags

Manage flags for this package: euse -i <flag> -p app-misc/bcompare | euse -E <flag> -p app-misc/bcompare | euse -D <flag> -p app-misc/bcompare

Global/Standard Flags

kde

Inherited Eclasses

Dependencies

RDEPEND

	app-arch/7zip
	app-arch/bzip2
	app-arch/unrar
	dev-libs/libqt6pas
	dev-qt/qtbase:6[gui,widgets]
	sys-apps/dbus
	virtual/zlib
	x11-libs/libX11
	x11-libs/libxkbcommon
	caja? ( mate-base/caja )
	kde? ( kde-frameworks/kio:6 )
	nautilus? ( gnome-base/nautilus )
	nemo? ( gnome-extra/nemo )
	thunar? ( xfce-base/thunar )

BDEPEND

	app-arch/xz-utils[extra-filters(+)]

Manifest for 5.2.2.32209-r1

Type File Size Source URLs
DIST 7z2600-src.tar.xz 1538112 bytes https://downloads.sourceforge.net/sevenzip/7-Zip/26.00/7z2600-src.tar.xz