summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 1f83bdd40df25907ac7c7349f8a873c414bd4c73 (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Maintainer: AntiCompositeNumber <anticompositenumber@gmail.com>
# Contributor: Laurent Carlier <lordheavym@gmail.com>
# Contributor: Alexander F Rødseth <xyproto@archlinux.org>
# Contributor: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>

pkgname=bsd-games2
pkgver=2.17
pkgrel=20
pkgdesc='Linux port of the collection of BSD command line games, "junk pile" included'
url='https://ibiblio.org/pub/linux/games/'
arch=('x86_64')
install="$pkgname.install"
license=('BSD')
depends=('gcc-libs' 'words' 'sh')
makedepends=('flex' 'bison' 'm4')
provides=('bsd-games')
conflicts=('bsd-games')
source=(
  "$pkgname-$pkgver.tar.gz::https://www.ibiblio.org/pub/linux/games/bsd-games-$pkgver.tar.gz"
  config.params
  stdio.h.diff
  gamescreen.h.diff
  getline.diff
  number.c.diff
  bsd-games-2.17-64bit.patch
  bad-ntohl-cast.diff
  null-check.diff
  hunt-sigpause.diff
)
md5sums=('238a38a3a017ca9b216fc42bde405639'
         '0d11fba067dafb30425dac49ad454df1'
         '784f68c796b9e099ac008aecef1af998'
         '9c0fa6e2345bd0a7945c9a41d5ba68aa'
         '5356bd6999ae53dd27cb2a0f837a3e70'
         '47249a90f38ccb4dd07625b245bbc728'
         '257813b76a41c8b2c02701571c804227'
         '3d21a9dad2e603ddf3842972e4ff85a1'
         'a43ca0b4b9ebc4eec26372c52014ac0a'
         '4e31136605d341ff4ec81a053f742853')

prepare() {
  cd "bsd-games-$pkgver"

  [ "$CARCH" = "x86_64" ] && patch -p1 < "$srcdir/bsd-games-2.17-64bit.patch"
  cp "${srcdir}/config.params" .

  # Several games use their own internal functions named getline.  All
  # are different, and none is the getline from glibc.  So we need a patch
  # in order to compile.  Each internal getline function is prefixed
  # with the name of the game.  -- Chris Brannon
  patch -p1 -i "${srcdir}/getline.diff"

  patch -p1 -i "${srcdir}/stdio.h.diff"
  patch -p1 -i "${srcdir}/gamescreen.h.diff"

  # Incorporated some fixes from Debian
  patch -p1 -i "${srcdir}/number.c.diff"
  # ntohl returns uint32_t, not unsigned long:
  patch -p1 -i "${srcdir}/bad-ntohl-cast.diff"
  # And add a NULL pointer check to the "hunt" program, fixing a segfault.
  patch -p1 -i "${srcdir}/null-check.diff"
  # Remove sigpause in "hunt", see https://bugzilla.redhat.com/show_bug.cgi?id=2152550
  patch -p1 -i "${srcdir}/hunt-sigpause.diff"

  sed -i "s/FISH/GO-FISH/g; s/\.Nm fish/\.Nm go-fish/g" fish/fish.6
  sed -i "s/tenths/tenth/g" tests/number.-0.1
  sed -i "s/Elegy{ Written in a Country Church{-| }Yard:/Elegy{ Written in a Country Church{-| }Yard}:/g" \
     quiz/datfiles/poetry
  sed -i "s/\.tI friend/\.It friend/g" hunt/hunt/hunt.6.in
  sed -i "s/it\'s initial/its initial/g" backgammon/teachgammon/ttext1.c
  sed -i "s/two player\'s/two players/g" backgammon/teachgammon/ttext2.c
  sed -i  "s/\.I range/\.It range/g" arithmetic/arithmetic.6
  sed -i "s/game were the/game where the/g" gomoku/gomoku.6

  # The wargames script expects binaries in /usr/games, and this
  # path is hard-coded.
  # Prior to release 2.17-10 of the ArchLinux package, wargames was
  # broken, since binaries are in /usr/bin instead.
  sed -i -e 's|/usr/games|/usr/bin|g' wargames/wargames


  # Use CFLAGS from makepkg instead.
  # -Werror=format-security had to be disabled because this code was written
  # back when printf was cool and security hadn't been invented yet.
  echo "bsd_games_cfg_other_cflags='${CFLAGS} -Wno-error=format-security'" >> config.params
}

build() {
  cd "bsd-games-$pkgver"

  ./configure
  make
}

package() {
  cd "bsd-games-$pkgver"

  sed -i "s%PKGDIR%$pkgdir%g" hide-game install-man install-score Makeconfig subst.sed
  make install
  # This make install command does install to $pkgdir, because of the
  # change to config.params in the build function.

  # Fix permissions
  rmdir "${pkgdir}/tmp"
  install -dm755  "${pkgdir}/usr/share/bsdgames/data/hack/save"
  chown -R root:games "${pkgdir}/var/lib/bsdgames"
  chmod 664 "${pkgdir}"/var/lib/bsdgames/*
  chmod 664 "${pkgdir}"/var/lib/bsdgames/{hack,phantasia}/*
  chmod 775 "${pkgdir}"/var/lib/bsdgames/{hack,phantasia}

  # Remove conflict with xscreensaver and fish
  mv "${pkgdir}/usr/bin/fish" "${pkgdir}/usr/bin/go-fish"
  mv "${pkgdir}/usr/share/man/man6/fish.6.gz" "${pkgdir}/usr/share/man/man6/go-fish.6.gz"
  mv "${pkgdir}/usr/share/man/man6/worm.6.gz" \
    "${pkgdir}/usr/share/man/man6/worm-game.6.gz"

  # Install documentation and license
  install -dm755 "$pkgdir/usr/share/doc/bsd-games"
  install -m644 AUTHORS NEWS BUGS ChangeLog "$pkgdir/usr/share/doc/bsd-games" \

  rm "${pkgdir}/usr/share/doc/trek.me"
  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/bsd-games/COPYING"
}

# vim:set ts=2 sw=2 et: