0

I installed Poco library on my Arch64 system using AUR. Sources were downloaded, compiled and the package succesfully installed. But now I need to patch the PKGBUILD so that I can compile 32-bit version of the library and install it next to the 64-bit version.

This is the original PKGBUILD:

# Maintainer: Robert Knauer 
# Contributor: Rodrigo Grumiche Silva 
# Contributor: nozog
# Contributor: davidhjelm
# Contributor: Ray Kohler 
# Contributor: Nathan Owe 

pkgname=poco
pkgver=1.4.6
pkgrel=1
pkgdesc="C++ class libraries for network-centric, portable applications, complete edition"
arch=('i686' 'x86_64')
url="http://www.pocoproject.org/"
license=('custom:boost')
depends=('unixodbc' 'libmysqlclient' 'openssl')
makedepends=('gcc' 'make' 'unixodbc' 'libmysqlclient' 'openssl' 'chrpath')
source=(
  "${pkgname}-${pkgver}-all.tar.gz"::"https://sourceforge.net/projects/${pkgname}/files/sources/${pkgname}-${pkgver}/${pkgname}-${pkgver}-all.tar.gz/download"
)
sha256sums=(
  'cf8229310f047e731cc6273a8df55e03b76f0ed7d5b5d251f99a0f80f6c2c763'
)

build()
{
  cd "${srcdir}/${pkgname}-${pkgver}-all"
  ./configure --prefix=/usr --no-samples --no-tests
  make ODBCLIBDIR="/usr/lib"
}

package()
{
  cd "${srcdir}/${pkgname}-${pkgver}-all"
  make ODBCLIBDIR="/usr/lib" DESTDIR="${pkgdir}" install
  install -Dm644 'LICENSE' "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
  # remove rpath information from binaries
  chrpath -d "${pkgdir}/usr/bin/cpspc"
  chrpath -d "${pkgdir}/usr/bin/cpspcd"
  chrpath -d "${pkgdir}/usr/bin/f2cpspd"
  chrpath -d "${pkgdir}/usr/bin/f2cpsp"
  # remove debugging libraries
  rm "${pkgdir}/usr/lib/libPoco"*"d.so"*
}

The first thing I tried was to take a look at another lib32-* AUR package, but I failed even to add the -m32 flag.

1

You need to,

  1. Change package name to lib32-XX

  2. place a export CFLAGS="-m32" prior to make or ./configure (In this case would be the build() function

  3. And you need to alter the installation path, to /usr/lib32, in this case it "could" be all occurrence of ODBCLIBDIR="/usr/lib", worth a try

And examine the contents of pkg before install anything, see if it's right.

  • From some reason CFLAGS (and CXXFLAGS, CPPFLAGS, LDFLAGS) are ignored. I found a --cflags switch in configure script, but this adds -m32 only in compilation phase, not in the linker. -Wl,-m32 does not help. – Adam Trhon Feb 20 '13 at 11:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.