summaryrefslogtreecommitdiff
path: root/src/lib/repo/arch32.sh
blob: 3ee248e52faf8031259ca8131c2d8f4a37e28a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# does local adaptions needed to build for Archlinux32
pkgctl_repo_patch_arch32() {
  local pkgname="$1"
  
  # add the remote branch with our patches
  git -C "${pkgname}" remote add -m master archlinux32 git://git.archlinux32.org/packages
  git -C "${pkgname}" fetch --depth 1 archlinux32

  # extend architecture with our architecture
  awk -i inplace '!/^arch=[^#]*any/ {gsub(/^arch=\(/,"arch=(i486 i686 pentium4 ")}; {print}' \
    "${pkgname}/PKGBUILD"
  
  # iterate the arch32 diffs in the archlinux32/master branch (we don't know
  # the destination repo, so we just scan both 'core' and 'extra' as well as
  # 'build-support')
  listfile=$(mktemp --tmpdir="${WORKDIR}" pkgctl-arch32.XXXXXXXXXX)
  >"${listfile}"
  for repo in core extra build-support; do
    git -C "${pkgname}" ls-tree -r --name-only archlinux32/master "${repo}/${pkgname}" >>"${listfile}"
  done
  for file in $(cat "${listfile}"); do
    if [[ "${file##*/}" = "PKGBUILD" ]]; then
      if [ -f "${pkgname}/PKGBUILD" ]; then
        printf "\n\n# -- Arch32 specific --\n\n" >> "${pkgname}/PKGBUILD"
        git -C "${pkgname}" show archlinux32/master:"${file}" >> "${pkgname}/PKGBUILD"
      else
        git -C "${pkgname}" show archlinux32/master:"${file}" > "${pkgname}/PKGBUILD"
      fi
    else
      git -C "${pkgname}" show archlinux32/master:"${file}" > "${pkgname}/${file##*/}"
    fi
  done
}