Bump version to 0.36.9
[cygport.git] / cygclass / ggz.cygclass
blobdacb8173353d0c64241eab12c1bb74f3efd7de41
1 ################################################################################
3 # ggz.cygclass - functions for building GGZ packages
5 # Part of cygport - Cygwin packaging application
6 # Copyright (C) 2006-2020 Cygport authors
7 # Provided by the Cygwin project <https://cygwin.com/>
9 # cygport is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
14 # cygport is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with cygport.  If not, see <https://www.gnu.org/licenses/>.
22 ################################################################################
24 #****ih* Cygclasses/ggz.cygclass
25 #  DESCRIPTION
26 #  The GGZ Gaming Zone is a framework for hosting and playing multi-player
27 #  games over the Internet.  The project provides a server for self-hosting,
28 #  client libraries, and client games.
30 #  This cygclass is used for building GGZ upstream components and provides
31 #  functions for installing third-party clients.
32 #  NOTE
33 #  Upstream development seems to have ceased, and projects which previously
34 #  provided GGZ functionality have removed those dependencies.  Therefore, this
35 #  cygclass is deprecated and may be removed in the future.
36 #****
38 #****io* ggz.cygclass/CATEGORY (ggz)
39 #  DEFINITION
40 CATEGORY="Games"
41 #****
42 #****io* ggz.cygclass/SUMMARY (ggz)
43 #  DEFINITION
44 SUMMARY="GGZ Gaming Zone ${PN#ggz-} component"
45 #****
46 #****io* ggz.cygclass/HOMEPAGE (ggz)
47 #  DEFINITION
48 HOMEPAGE="http://dev.ggzgamingzone.org/"
49 #****
50 #****io* ggz.cygclass/SRC_URI (ggz)
51 #  DEFINITION
52 SRC_URI="http://ftp.ggzgamingzone.org/pub/ggz/${PV}/${P}.tar.gz "
53 #****
55 #****id* ggz.cygclass/GGZ_MODULES_DIR
56 #  DESCRIPTION
57 #  The directory where GGZ ModuleInfo description files are installed.
58 #****
59 GGZ_MODULES_DIR=/etc/ggz/modules
61 export ac_cv_header_winsock_h=no
62 export ac_cv_header_winsock2_h=no
64 #****iI* ggz.cygclass/ggz_postinst
65 #  DESCRIPTION
66 #  Creates postinstall and preremove scripts which de/register GGZ ModuleInfo
67 #  description files with ggz-config.
68 #****
69 ggz_postinst() {
70         local g
72         rm -f ${D}/etc/ggz.modules
74         if defined GGZMODS
75         then
76                 doggzmod ${GGZMODS}
77         fi
79         for g in $(ls ${D}${GGZ_MODULES_DIR}/* 2> /dev/null)
80         do
81                 dodir /etc/postinstall /etc/preremove
83                 cat >> ${D}/etc/postinstall/${PN}.sh <<-_EOF
84                         /usr/bin/ggz-config --force --install --modfile=${GGZ_MODULES_DIR}/${g##*/}
85                         _EOF
87                 cat >> ${D}/etc/preremove/${PN}.sh <<-_EOF
88                         /usr/bin/ggz-config --remove --modfile=${GGZ_MODULES_DIR}/${g##*/}
89                         _EOF
90         done
93 #****iI* ggz.cygclass/doggzmod
94 #  SYNOPSIS
95 #  doggzmod DESCRIPTION_FILE [DESCRIPTION_FILE] ...
96 #  DESCRIPTION
97 #  Installs the given GGZ ModuleInfo description file(s) into GGZ_MODULES_DIR.
98 #  As such files are often generically named (e.g. "module.dsc"), files are
99 #  automatically renamed to reflect the name of the program specified in their
100 #  CommandLine attribute.
101 #****
102 doggzmod() {
103         local cl
104         local m
106         for m in ${@}
107         do
108                 if [ ! -e ${m} ]
109                 then
110                         error "doggzmod: ${m}: file not found"
111                 fi
113                 cl=$(sed -n -e 's|^CommandLine *= *\([^ ]*\).*|\1|gp' ${m})
115                 insinto ${GGZ_MODULES_DIR}
116                 newins ${m} ${cl##*/}.dsc
117         done
120 #****io* ggz.cygclass/src_install (ggz)
121 #  DEFINITION
122 src_install() {
123         cd ${B}
124         cyginstall
125         ggz_postinst
127 #****
129 readonly -f ggz_postinst doggzmod