Skip to content

Commit

Permalink
app-emulation/crossover-bin: Bump to 17.5.1
Browse files Browse the repository at this point in the history
This also includes a fix for the install process breaking when a recent
version of konqueror is installed. Crossover relies on it for KDE
version detection while Konqueror in its infinite wisdom decided to open
things with write permissions, which are sandbox violations. Right now,
the fix is only in 17.5.1. I need to talk to upstream and think about
this some more before I decide the proper course of action.

Package-Manager: Portage-2.3.40, Repoman-2.3.9
  • Loading branch information
ryao committed Sep 3, 2018
1 parent 0dcdf48 commit 5ca765e
Show file tree
Hide file tree
Showing 2 changed files with 158 additions and 0 deletions.
1 change: 1 addition & 0 deletions app-emulation/crossover-bin/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ DIST install-crossover-15.3.1.bin 80774288 BLAKE2B 3d3fd83ee426a66ead3c88f4ca584
DIST install-crossover-16.0.0.bin 197872657 BLAKE2B d500ed4f6a426154b376ead6c2b50eb21a403303561078dc51982a5147af23261dda9892717c16c6e2f3b2a30ffc84e73070cd330bea70ba89c79180c4933297 SHA512 184533679ddf3918ab5fc00b01452d868c694fbc7ccb5484c88822cc52da067fd1a0be0387e4050e40d9b367052158faec27dc06f6a371a044b5a1782950e780
DIST install-crossover-16.2.5.bin 198336730 BLAKE2B a11252dab552846fe0a1527cd59cd62907142385062b744591cef6707213d03945879fc5da6bcfaaa315967c51ae15159ad14d8519407542b82f0eb53c5fd02e SHA512 17cb711e7257f094e9ccf939edc1ca6be362f18b86078fe307b7e1337850e182d02fde087789f13ea2bf96ca89736f941c1a7bd93ff1b37a78fe8f846a1d5e22
DIST install-crossover-17.5.0.bin 198287744 BLAKE2B c594192927874e5a80626ad110f0089f2bf8b7385a16ff7755923d63ebb0559b1aa505ec4e8b6f85253ac13736b7f9af178c64ed042a515d31cd4565295db163 SHA512 8592d2c91c437d62d1fd5fecf6230eeabfe56c38f49ea795bf4d3b51d8ae4399f1b01801d60dcccb94caeb4dd662675c2739f730f39ef178db32dd4f72182197
DIST install-crossover-17.5.1.bin 198278549 BLAKE2B e53504177eb4a4030a31ae73baf26144375dd559bcd58af3ef05364cfb7a00b8cd68d879e6ef31e92b165876e4c3f85ebcb823dd6585c3edcb8e4cafb76d8e59 SHA512 d1e41c5290c56bbb23a6317e91800d7c23d2b4389ebf08ef4416718103aa06b05b33c655d3ef413fe76773dd3599d8fe3d4ea64274fcc18518923990f980bf2a
157 changes: 157 additions & 0 deletions app-emulation/crossover-bin/crossover-bin-17.5.1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="threads"

inherit python-single-r1 unpacker

DESCRIPTION="Commercial version of app-emulation/wine with paid support."
HOMEPAGE="http://www.codeweavers.com/products/crossover/"
SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin"

LICENSE="CROSSOVER-3"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
RESTRICT="bindist test"
QA_FLAGS_IGNORED="opt/cxoffice/.*"
QA_PRESTRIPPED="opt/cxoffice/lib/.*
opt/cxoffice/bin/cxburner
opt/cxoffice/bin/cxntlm_auth
opt/cxoffice/bin/wineserver
opt/cxoffice/bin/unrar
opt/cxoffice/bin/wine-preloader
opt/cxoffice/bin/cxdiag
opt/cxoffice/bin/cxgettext
opt/cxoffice/bin/wineloader
"
S="${WORKDIR}"

DEPEND="dev-lang/perl
app-arch/unzip
${PYTHON_DEPS}"

RDEPEND="${DEPEND}
!prefix? ( sys-libs/glibc )
>=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
dev-python/dbus-python[${PYTHON_USEDEP}]
dev-util/desktop-file-utils
!app-emulation/crossover-office-pro-bin
!app-emulation/crossover-office-bin
capi? ( net-libs/libcapi[abi_x86_32(-)] )
cups? ( net-print/cups[abi_x86_32(-)] )
gsm? ( media-sound/gsm[abi_x86_32(-)] )
jpeg? ( virtual/jpeg[abi_x86_32(-)] )
lcms? ( media-libs/lcms:2 )
ldap? ( net-nds/openldap[abi_x86_32(-)] )
gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] )
mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] )
nls? ( sys-devel/gettext[abi_x86_32(-)] )
openal? ( media-libs/openal[abi_x86_32(-)] )
opencl? ( virtual/opencl[abi_x86_32(-)] )
opengl? (
virtual/glu[abi_x86_32(-)]
virtual/opengl[abi_x86_32(-)]
)
png? ( media-libs/libpng:0[abi_x86_32(-)] )
scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
v4l? ( media-libs/libv4l[abi_x86_32(-)] )
media-libs/alsa-lib[abi_x86_32(-)]
>=media-libs/freetype-2.0.0[abi_x86_32(-)]
media-libs/mesa[abi_x86_32(-)]
sys-auth/nss-mdns[abi_x86_32(-)]
sys-apps/util-linux[abi_x86_32(-)]
sys-libs/ncurses:5/5[abi_x86_32(-)]
sys-libs/zlib[abi_x86_32(-)]
x11-libs/libICE[abi_x86_32(-)]
x11-libs/libSM[abi_x86_32(-)]
x11-libs/libX11[abi_x86_32(-)]
x11-libs/libXau[abi_x86_32(-)]
x11-libs/libXdmcp[abi_x86_32(-)]
x11-libs/libXext[abi_x86_32(-)]
x11-libs/libXi[abi_x86_32(-)]
x11-libs/libXrandr[abi_x86_32(-)]
x11-libs/libXxf86vm[abi_x86_32(-)]
x11-libs/libxcb[abi_x86_32(-)]"

pkg_nofetch() {
einfo "Please visit ${HOMEPAGE}"
einfo "and place ${A} in ${DISTDIR}"
}

src_unpack() {
# self unpacking zip archive; unzip warns about the exe stuff
unpack_zip ${A}
}

src_prepare() {
python_fix_shebang .

sed -i \
-e "s:xdg_install_icons(:&\"${ED}\".:" \
-e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \
-e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \
"${S}/lib/perl/CXMenuXDG.pm"

# Remove unnecessary files
rm -r license.txt guis/ || die "Could not remove files"
use doc || rm -r doc/ || die "Could not remove files"
}

src_install() {
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover

# Install documentation
dodoc README changelog.txt
rm README changelog.txt || die "Could not remove README and changelog.txt"

# Install files
dodir /opt/cxoffice
#cp -r ./* "${ED}opt/cxoffice" \
find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \
|| die "Could not install into ${ED}opt/cxoffice"

# Install configuration file
insinto /opt/cxoffice/etc
doins share/crossover/data/cxoffice.conf

# Konqueror in its infinite wisdom decides to try opening things for
# writing, which are sandbox violations. This breaks the install process if
# it is installed, so we ninja edit it to false so it so doesn't run.
sed -i -e 's/cxwhich konqueror/false &/' "${ED}opt/cxoffice/bin/locate_gui.sh" \
|| die "Could not apply workaround for konqueror"

# Install menus
# XXX: locate_gui.sh automatically detects *-application-merged directories
# This means what we install will vary depending on the contents of
# /etc/xdg, which is a QA violation. It is not clear how to resolve this.
XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
"${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
|| die "Could not install menus"

# Revert ninja edit
sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}opt/cxoffice/bin/locate_gui.sh" \
|| die "Could not apply workaround for konqueror"

rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
|| die "Could not remove uninstall menus"
sed -i \
-e "s:\"${ED}\".::" \
-e "s:${ED}::" \
"${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \
|| die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
sed -i -e "s:${ED}:/:" \
"${ED}usr/share/applications/"*"CrossOver.desktop" \
|| die "Could not fix paths of *.desktop files"
}

pkg_postinst() {
einfo "${P} is open source software with the exception of the GUI."
einfo "Source code can be obtained from:"
einfo
einfo "https://media.codeweavers.com/pub/crossover/source/crossover-sources-${PV}.tar.gz"
}

0 comments on commit 5ca765e

Please sign in to comment.