Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 338684 Details for
Bug 447288
=dev-db/sqlncli-11.0.1790.0 - New package. - Microsoft® SQL Server® ODBC Driver 1.0 for Linux
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Compensate oversights introduced in the previous ebuild revision
sqlncli-11.0.1790.0.ebuild (text/plain), 5.82 KB, created by
Hugo Mildenberger
on 2013-02-12 12:10:21 UTC
(
hide
)
Description:
Compensate oversights introduced in the previous ebuild revision
Filename:
MIME Type:
Creator:
Hugo Mildenberger
Created:
2013-02-12 12:10:21 UTC
Size:
5.82 KB
patch
obsolete
># Copyright 1999-2013 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 ># $Header: $ > >EAPI=5 >#EAPI=5-hdepend # make HDEPEND work > >#multilib currently only used for get_libdir >inherit eutils multilib versionator > >DESCRIPTION="Microsoft SQL Server ODBC Driver 1.0 for Linux" > >HOMEPAGE="http://www.microsoft.com/en-us/download/details.aspx?id=28160" > >SRC_URI="http://download.microsoft.com/download/6/A/B/6AB27E13-46AE-4CE9-AFFD-406367CADC1D/Linux6/${P}.tar.gz" >#md5: 36aca6fdfaa6e87754c477e08969fed4 >#sha1: ba8a27b1fc91b933a31d987805a6f78e29f893b4 > >LICENSE="MSsqlncli-11" > >RESTRICT="mirror" > >SLOT="0" > >KEYWORDS="~amd64" > >IUSE="doc examples" > >MERGE_TYPE=binary > >HDEPEND="dev-util/patchelf" # does not work with EAPI=5 and portage-2.1.11.50 >DEPEND=${HDEPEND} # workaround > ># The somewhat strange looking dependencies are explained by: ># sys-apps/util-linux <-libuuid.so ># sys-libs/e2fsprogs-libs <-libcom_err.so > >RDEPEND="virtual/libc > virtual/krb5 > dev-libs/openssl > >dev-db/unixODBC-2.3.1[iconv-char-enc-utf8(+),iconv-ucode-enc-utf16le(+)] > sys-apps/util-linux > sys-libs/e2fsprogs-libs" > >MY_PV=$(get_version_component_range 1-2) >MY_BV=$(get_version_component_range 3-4) # MS build number? > ># libsqlncli must remain the first entry because it is referenced referenced >QA_PREBUILT=" opt/microsoft/sqlncli/$(get_libdir)/libsqlncli-${MY_PV}.so.${MY_BV} > opt/microsoft/sqlncli/bin/sqlcmd-${PV} > opt/microsoft/sqlncli/bin/bcp-${PV} > " >src_prepare() { > epatch "${FILESDIR}/${P}"-use-destdir-tempdir.patch > if use examples; then > mkdir -p "${S}/docs/examples" || die > cp -a "${FILESDIR}/examples" "${S}/docs" || die > fi >} > >src_install() { > # Microsoft's install.sh assumes that these directories already exist > dodir "/usr/bin" > dodir "/usr/$(get_libdir)" > > # run the verify step > TEMPDIR="${T}" DESTDIR="${ED}" ./install.sh verify > > # run the install step > TEMPDIR="${T}" DESTDIR="${ED}" ./install.sh install --accept-license --force > > # Remove image path from the driver configuration file which is somehow > # generated by install.sh. It is later used by odbcinst called from > # pkg_postinst() > sed -i -e "s:${ED}:/:" "${ED}/opt/microsoft/sqlncli/${PV}/sqlncli.ini"||die > > # This binary package was released by Microsoft for 64-bit Red Hat > # Enterprise Linux 6 only. Thus it looks in /usr/lib64 for shared > # library versions, which partly aren't available in the portage > # tree anymore. A simple solution for this is problem would consist > # in creating symlinks for each of the missing libraries in /usr/lib64. > # However, this would endanger the system integrity and should be avoided. > # Thus the overall strategy is: > # 1.) Create symbolic links for the needed libraries in > # /opt/microsoft/sqlncli/lib64, pointing to the surrogate library > # available from /usr/lib64/ > # 2.) Set DT_NEEDED in the precompiled binaries to > # /opt/microsoft/sqlncli/lib46, so each pre-compiled binary > # knows where to look for > # 3.) create /usr/lib64/libsqlncli.so as a linker script so > # folks can link the driver directly by simply appending -lsqlncli > # So ... > > # 1.) Create symlinks in /opt/microsoft/[...]/lib64 > # The local variable below is an associative array of shared library > # names which are needed by the pre-compiled Microsoft binaries > # relating these names to the names of actually existing libraries. > # This list was manually created using scanelf --needed > local -A libs=( > [libcrypto.so.10]=libcrypto.so > [libssl.so.10]=libssl.so > [libodbc.so.1]=libodbc.so > [libodbcinst.so.1]=libodbcinst.so > ) > > # create a symlink for each needed library > # e.g. /opt/[...]/lib64/libcrypto.so.10 -> /usr/lib64/libcrypto.so > for i in ${!libs[*]}; do > local replacement=${EPREFIX}/usr/$(get_libdir)/${libs[${i}]} > local needed=opt/microsoft/sqlncli/$(get_libdir)/${i} > dosym "${replacement}" "${needed}" > done > > # 2.) convert QA_PREBUILT into an array (portage needs it as a string) > read -a binaries <<<${QA_PREBUILT} > > # ... and set DT_NEEDED for each of the files named in $binaries > for prebuild in ${binaries[@]}; do > local runpath=${EPREFIX}/opt/microsoft/sqlncli/$(get_libdir)/ > patchelf --set-rpath "${runpath}" "${ED}/${prebuild}" || die > done > > # 3.) provide the possibility to link the client library directly > # via -lsqlncli w/o having to specify the full installation path > local sqllib=${EPREFIX}/${binaries[0]} > local script=${ED}/usr/$(get_libdir)/libsqlncli.so > echo "GROUP ( ${sqllib} )" > "${script}" || die > > # create a symlink from /usr/include/${PN} to /opt/[...]/include > dosym "/opt/microsoft/sqlncli/${PV}/include" "/usr/include/${PN}" > > # install MS produced documentation into /usr instead of /opt > if use doc; then > dodoc "${ED}/opt/microsoft/sqlncli/${PV}/"{README,WARNING} > dohtml -r "${ED}/opt/microsoft/sqlncli/${PV}/docs/en_US/"* > fi > > # also add the added example code to /usr/doc/${PF} > if use examples; then > docompress -x usr/share/doc/${PF}/examples > dodoc -r "${S}"/docs/examples || die > fi > > # Prevent inadequate scripts or copies of files already installed in > # or /usr/share/doc/sqlncli or /usr/portage/licenses to get installed > # in /opt/microsoft/sqlncli/ again. > # All this stuff can't simply be removed already in src_prepare() because > # that implies a complete rewrite of Microsoft's install.sh. > local opt="${ED}/opt/microsoft/sqlncli/${PV}" > rm -r "${opt}/"{docs,install.sh,build_dm.sh,LICENSE,README,WARNING} || die >} > >pkg_postinst() { > odbcinst -i -d -f "${EPREFIX}/opt/microsoft/sqlncli/${PV}/sqlncli.ini" || die > # If ldconfig should complain about $(basename ${binaries[0]}) being > # truncated, then you may have hit a bug in ldconfig. See: > # http://old.nabble.com/ > # ldconfig-problem-with-patchelf-and-64-bit-libs-to28466603.html >} > >pkg_prerm() { > odbcinst -u -d -n "SQL Server Native Client 11.0" || die >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 447288
:
332322
|
332324
|
332326
|
338588
|
338590
|
338594
|
338596
|
338598
|
338600
|
338642
| 338684