[pacman-dev] Makepkg should set environment variables of dependencies before continuing build()

Allan McRae allan at archlinux.org
Sun Dec 30 11:07:08 EST 2012


On 31/12/12 01:58, Allan McRae wrote:
> On 31/12/12 01:48, Eric Fernandez wrote:
> 
>> Note that "source /etc/profile" in build() is not a good solution, as
>> it runs all profile.d scripts and if one script fails, then the build
>> process is aborted. It is better to fix makepkg upstream. I had a look
>> at the code, and do not understand why run_pacman does not set the
>> variables, but maybe it is a problem of variable space?
>>
> 
> How about:
> 
> source /etc/profile &>/dev/null
> 
> on line 483 of makepkg in the handle_deps function right after
> installing dependencies?
> 

Just to be clear, we already do this and it works:


> makechrootpkg32 -c -r /home/arch/chroot/testing-i686/
==> Creating clean working copy...done
==> Making package: foo 1-1 (Mon Dec 31 02:06:03 EST 2012)
==> Checking runtime dependencies...
==> Installing missing dependencies...
resolving dependencies...
looking for inter-conflicts...

Targets (30): ca-certificates-java-20120608-1  freetype2-2.4.11-2
              hicolor-icon-theme-0.12-2  inputproto-2.2-1  kbproto-1.0.6-1
              libice-1.0.8-1  libjpeg-turbo-1.2.1-1  libpng-1.5.13-1
              libsm-1.2.1-1  libx11-1.5.0-1  libxau-1.0.7-1  libxcb-1.9-1
              libxdmcp-1.1.1-1  libxext-1.3.1-1  libxi-1.6.1-1
libxmu-1.1.1-1
              libxrender-0.9.7-1  libxt-1.1.3-1  libxtst-1.2.1-1
nspr-4.9.4-1
              nss-3.14.1-1  recordproto-1.14.2-1  renderproto-0.11.1-2
              sqlite-3.7.15.1-1  xcb-proto-1.8-1
xdg-utils-1.1.0.git20121008-1
              xextproto-7.2.1-1  xorg-xset-1.2.2-1  xproto-7.0.23-1
              openjdk6-6.b24_1.11.5-1

Total Installed Size:   173.10 MiB

<snip>

==> Checking buildtime dependencies...
==> Retrieving Sources...
==> Extracting Sources...
==> Entering fakeroot environment...
==> Starting package()...
/usr/lib/jvm/java-6-openjdk
==> Tidying install...
  -> Purging unwanted files...
  -> Compressing man and info pages...
  -> Stripping unneeded symbols from binaries and libraries...
==> Creating package...
  -> Generating .PKGINFO file...
==> WARNING: Please add a license line to your PKGBUILD!
    Example for GPL'ed software: license=('GPL').
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: foo 1-1 (Mon Dec 31 02:06:19 EST 2012)



More information about the pacman-dev mailing list