You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-overlay/net-print/samsung-unified-linux-driver/samsung-unified-linux-drive...

106 lines
3.3 KiB

# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/apr-util/apr-util-1.3.9.ebuild,v 1.12 2009/11/04 12:12:05 arfrever Exp $
EAPI=4
inherit multilib
DESCRIPTION="Samsung's proprietary printer driver binaries known as UnifiedLinuxDriver"
HOMEPAGE="http://www.samsung.com/us/support/downloads/ML-6512MD/XAA"
SRC_URI="http://org.downloadcenter.samsung.com/downloadfile/ContentsFile.aspx?VPath=DR/201108/20110830105903229/UnifiedLinuxDriver_${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="SAMSUNG-ELECTRONICS-software"
SLOT="0"
KEYWORDS="~amd64 ~x86 -*"
IUSE="+splix"
S=${WORKDIR}/cdroot/Linux
DEPEND="dev-util/bin_replace_string"
# We need libstdc++.so.5
# Splix and we both try to install CMS (color management stuff)
# files. The splix useflag allows the two packages to not clobber
# eachother.
RDEPEND="net-print/cups
sys-libs/libstdc++-v3
splix? ( net-print/splix )
!splix? ( !net-print/splix )"
QA_PRESTRIPPED='/usr/libexec/cups/filter/rastertosamsung.* /usr/lib[0-9]*/libscmssc.so'
QA_SONAME='/usr/lib[0-9]*/libscmssc.so'
pkg_setup() {
local abi="${ABI}"
# does non-portage-multilib take significance in ${ABI}?
[ -z "${abi}" ] && abi="${ARCH}"
# Samsung's choice for how to denote ABIs and libdir within its
# tarball.
case ${abi} in
x86)
SABI=i386
SLIBDIR=lib
;;
amd64)
SABI=x86_64
SLIBDIR=lib64
;;
*)
die "Unable to understand the following value of \${ABI} or \${ARCH}: \`\`${abi}''"
;;
esac
}
src_prepare() {
# The rasterto* cups filters will dlopen() libscmssc.so. However,
# they try to open it at /usr/lib/cups/filter/libscmssc.so,
# /usr/lib64/cups/filter/libscmssc.so, and finally
# ../src/libscmssc.so. We thus hack the first entry to not use an
# absolute path and just throw this binary into the library search
# path. If these filters fail to dlopen() libscmssc.so, the
# printer will print two copies of each page on each page with
# white horizonal bands.
for filter in ${SABI}/at_root/usr/${SLIBDIR}/cups/filter/rasterto*; do
einfo "Replacing dlopen() paths in ${filter}."
bin_replace_string /usr/lib/cups/filter/libscmssc.so libscmssc.so ${filter} || die
done
}
src_install() {
# Currently, we try to install the minimum necessary for
# integrating into CUPS. The UI may come later with a qt4
# useflag... but having a working driver is much more useful than
# a GUI.
insinto /usr/share
doins -r noarch/at_opt/share/images
insinto /usr/share/ppd
doins noarch/at_opt/share/ppd/*.ppd
if ! use splix; then
# rastertosamsungsplc looks for the *.cts file here of
# its own arbitrary choosing.
insinto /usr/share/cups/model/samsung
doins -r noarch/at_opt/share/ppd/cms
fi
# I think that sane support needs the smfpd to be installed and
# running...(?) [this copy of 1.05 doesn't include sane.d stuff)
#insinto /etc/sane.d
#doins -r noarch/at_root/etc/sane.d/*
# required only for scanning?
#dosbin ${SABI}/at_root/usr/sbin/smfpd
exeinto /usr/libexec/cups/filter
doexe ${SABI}/at_root/usr/${SLIBDIR}/cups/filter/rasterto*
# see comment in src_prepare() about libscmssc.so; libscmssc.so
# must currently be placed into the system library search path to
# be found.
dolib ${SABI}/at_root/usr/${SLIBDIR}/cups/filter/libscmssc.so
}