| 1 | # Copyright 2009 OpenCSW |
|---|
| 2 | # Distributed under the terms of the GNU General Public License v2 |
|---|
| 3 | # $Id$ |
|---|
| 4 | |
|---|
| 5 | # Upstream bug filed: |
|---|
| 6 | # http://bugs.mysql.com/bug.php?id=62567 |
|---|
| 7 | |
|---|
| 8 | PROJ_NAME = mysql |
|---|
| 9 | NAME = $(PROJ_NAME)5 |
|---|
| 10 | BASE_VERSION = 5.0 |
|---|
| 11 | PATCHLEVEL = 96 |
|---|
| 12 | ALTS_PRIO = 50 |
|---|
| 13 | VERSION = $(BASE_VERSION).$(PATCHLEVEL) |
|---|
| 14 | CATEGORIES = server |
|---|
| 15 | |
|---|
| 16 | # Useful when making a series of builds on the same day |
|---|
| 17 | # GARFLAVOR ?= DBG |
|---|
| 18 | |
|---|
| 19 | DISTNAME = mysql-$(VERSION) |
|---|
| 20 | SPKG_SOURCEURL = http://www.mysql.com/ |
|---|
| 21 | |
|---|
| 22 | DESCRIPTION = Multithreaded SQL database server |
|---|
| 23 | define BLURB |
|---|
| 24 | MySQL is a very fast, multi-threaded, multi-user and robust SQL |
|---|
| 25 | (Structured Query Language) database server. |
|---|
| 26 | endef |
|---|
| 27 | |
|---|
| 28 | INITSMF = $(sysconfdir)/init\.d/csw$(NAME) |
|---|
| 29 | |
|---|
| 30 | # Existing databases are in this location |
|---|
| 31 | localstatedir = /var$(BUILD_PREFIX)/$(NAME) |
|---|
| 32 | # To avoid file conflicts |
|---|
| 33 | # datadir = $(prefix)/share/mysql/$(BASE_VERSION) |
|---|
| 34 | |
|---|
| 35 | MYSQL_LIB_VER = 15 |
|---|
| 36 | |
|---|
| 37 | MERGE_DIRS_isa-extra = $(bindir) $(libdir) $(sbindir) $(libexecdir) |
|---|
| 38 | |
|---|
| 39 | PACKAGES += CSWmysql-dev |
|---|
| 40 | SPKG_DESC_CSWmysql-dev = MySQL development files |
|---|
| 41 | PKGFILES_CSWmysql-dev = $(PKGFILES_DEVEL) |
|---|
| 42 | RUNTIME_DEP_PKGS_CSWmysql-dev += CSWlibmysqlclient-r$(MYSQL_LIB_VER) |
|---|
| 43 | RUNTIME_DEP_PKGS_CSWmysql-dev += CSWlibmysqlclient$(MYSQL_LIB_VER) |
|---|
| 44 | CSWmysql-dev_programs += mysql_config |
|---|
| 45 | PKGFILES_CSWmysql-dev += $(foreach bin_name,$(CSWmysql-dev_programs),$(call baseisadirs,$(bindir),$(bin_name))) |
|---|
| 46 | PKGFILES_CSWmysql-dev += $(foreach bin_name,$(CSWmysql-dev_programs),$(mandir)/man1/$(bin_name)\.1) |
|---|
| 47 | PKGFILES_CSWmysql-dev += $(foreach bin_name,$(CSWmysql-dev_programs),/opt/csw/bin/$(bin_name)) |
|---|
| 48 | PKGFILES_CSWmysql-dev += $(foreach bin_name,$(CSWmysql-dev_programs),/opt/csw/sbin/$(bin_name)) |
|---|
| 49 | PKGFILES_CSWmysql-dev += $(mandir)/man1/mysql_config\.1 |
|---|
| 50 | PKGFILES_CSWmysql-dev += $(prefix)/include.* |
|---|
| 51 | PKGFILES_CSWmysql-dev += /opt/csw/include/mysql |
|---|
| 52 | OBSOLETED_BY_CSWmysql-dev = CSWmysql5devel |
|---|
| 53 | CHECKPKG_OVERRIDES_CSWmysql-dev += file-with-bad-content|/usr/local|root$(mandir)/man1/mysql_config.1 |
|---|
| 54 | PACKAGES += CSWlibmysqlclient$(MYSQL_LIB_VER) |
|---|
| 55 | PKGFILES_CSWlibmysqlclient$(MYSQL_LIB_VER) += $(call baseisadirs,$(libdir),libmysqlclient\.so\.$(MYSQL_LIB_VER)(\.\d+)*) |
|---|
| 56 | SPKG_DESC_CSWlibmysqlclient$(MYSQL_LIB_VER) += MySQL $(BASE_VERSION) client library, libmysqlclient.so.$(MYSQL_LIB_VER) |
|---|
| 57 | RUNTIME_DEP_PKGS_CSWlibmysqlclient$(MYSQL_LIB_VER) += CSWlibz1 |
|---|
| 58 | OBSOLETED_BY_CSWlibmysqlclient$(MYSQL_LIB_VER) += CSW$(NAME)rt |
|---|
| 59 | |
|---|
| 60 | PACKAGES += CSWlibmysqlclient-r$(MYSQL_LIB_VER) |
|---|
| 61 | PKGFILES_CSWlibmysqlclient-r$(MYSQL_LIB_VER) += $(call baseisadirs,$(libdir),libmysqlclient_r\.so\.$(MYSQL_LIB_VER)(\.\d+)*) |
|---|
| 62 | SPKG_DESC_CSWlibmysqlclient-r$(MYSQL_LIB_VER) += MySQL $(BASE_VERSION) client library, libmysqlclient_r.so.$(MYSQL_LIB_VER) |
|---|
| 63 | RUNTIME_DEP_PKGS_CSWlibmysqlclient-r$(MYSQL_LIB_VER) += CSWlibz1 |
|---|
| 64 | OBSOLETED_BY_CSWlibmysqlclient-r$(MYSQL_LIB_VER) += CSW$(NAME)rt |
|---|
| 65 | |
|---|
| 66 | # Defining the client programs, which are going to pick up the 32- and 64-bit |
|---|
| 67 | # binaries, symbolic links, isaexec stuff and man pages. |
|---|
| 68 | client_programs += myisamlog |
|---|
| 69 | client_programs += myisampack |
|---|
| 70 | client_programs += mysql |
|---|
| 71 | client_programs += mysqlaccess |
|---|
| 72 | client_programs += mysqladmin |
|---|
| 73 | client_programs += mysqlbin |
|---|
| 74 | client_programs += mysqlbinlog |
|---|
| 75 | client_programs += mysqlcheck |
|---|
| 76 | client_programs += mysql_client_test |
|---|
| 77 | client_programs += mysqldump |
|---|
| 78 | client_programs += mysqlhotcopy |
|---|
| 79 | client_programs += mysqlimport |
|---|
| 80 | client_programs += mysqlshow |
|---|
| 81 | client_programs += mysql_zap |
|---|
| 82 | client_programs += perror |
|---|
| 83 | client_programs += replace |
|---|
| 84 | |
|---|
| 85 | PACKAGES += CSW$(NAME)client |
|---|
| 86 | SPKG_DESC_CSW$(NAME)client = MySQL $(BASE_VERSION) client binaries |
|---|
| 87 | PKGFILES_CSW$(NAME)client = $(bindir) |
|---|
| 88 | PKGFILES_CSW$(NAME)client += $(foreach bin_name,$(client_programs),$(call baseisadirs,$(bindir),$(bin_name))) |
|---|
| 89 | PKGFILES_CSW$(NAME)client += $(foreach bin_name,$(client_programs),$(mandir)/man1/$(bin_name)\.1) |
|---|
| 90 | PKGFILES_CSW$(NAME)client += $(foreach bin_name,$(client_programs),/opt/csw/bin/$(bin_name)) |
|---|
| 91 | PKGFILES_CSW$(NAME)client += $(foreach bin_name,$(client_programs),/opt/csw/sbin/$(bin_name)) |
|---|
| 92 | RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibmysqlclient$(MYSQL_LIB_VER) |
|---|
| 93 | RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibncursesw5 |
|---|
| 94 | RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibz1 |
|---|
| 95 | CHECKPKG_OVERRIDES_CSW$(NAME)client += bad-rpath-entry |
|---|
| 96 | |
|---|
| 97 | PACKAGES += CSW$(NAME) |
|---|
| 98 | SPKG_DESC_CSW$(NAME) = Multithreaded SQL database |
|---|
| 99 | RUNTIME_DEP_PKGS_CSW$(NAME) += CSW$(NAME)client |
|---|
| 100 | RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibmysqlclient$(MYSQL_LIB_VER) |
|---|
| 101 | RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibmysqlclient-r$(MYSQL_LIB_VER) |
|---|
| 102 | RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibwrap1 |
|---|
| 103 | RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibz1 |
|---|
| 104 | # RUNTIME_DEP_PKGS_CSW$(NAME) += CSWcoreutils |
|---|
| 105 | CHECKPKG_OVERRIDES_CSW$(NAME) += bad-rpath-entry |
|---|
| 106 | CHECKPKG_OVERRIDES_CSW$(NAME) += file-with-bad-content |
|---|
| 107 | CHECKPKG_OVERRIDES_CSW$(NAME) += surplus-dependency|CSW$(NAME)client |
|---|
| 108 | # CHECKPKG_OVERRIDES_CSW$(NAME) += surplus-dependency|CSWcoreutils |
|---|
| 109 | |
|---|
| 110 | EXTRA_MERGE_EXCLUDE_FILES += $(prefix)/mysql-test.* |
|---|
| 111 | EXTRA_MERGE_EXCLUDE_FILES += $(prefix)/sql-bench.* |
|---|
| 112 | |
|---|
| 113 | PATCHFILES = 0001-Use-libc-not-libcrypt.patch |
|---|
| 114 | PATCHFILES += 0002-cast-user_info-pw_gid-to-gid_t.patch |
|---|
| 115 | PATCHFILES += 0004-basedir-and-datadir-in-the-cnf-files.patch |
|---|
| 116 | PATCHFILES += 0004-looking-for-ps-use-basename-0.patch |
|---|
| 117 | |
|---|
| 118 | # Enable 64 bits build |
|---|
| 119 | BUILD64 = 1 |
|---|
| 120 | |
|---|
| 121 | EXTRA_CFLAGS = -mt -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__ |
|---|
| 122 | EXTRA_CXXFLAGS = -mt -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__ |
|---|
| 123 | |
|---|
| 124 | MASTER_SITES = http://ftp.heanet.ie/mirrors/www.mysql.com/Downloads/MySQL-5.0/ |
|---|
| 125 | DISTFILES = mysql-$(VERSION).tar.gz |
|---|
| 126 | DISTFILES += csw$(NAME).tpl |
|---|
| 127 | DISTFILES += quick_start-csw |
|---|
| 128 | DISTFILES += README.CSW |
|---|
| 129 | DISTFILES += ChangeLog |
|---|
| 130 | DISTFILES += CSW$(NAME).preinstall |
|---|
| 131 | DISTFILES += CSW$(NAME).postinstall |
|---|
| 132 | DISTFILES += cswusergroup |
|---|
| 133 | |
|---|
| 134 | # TODO: Do the proper prerequsite pkgs. |
|---|
| 135 | BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) |
|---|
| 136 | |
|---|
| 137 | # Set ./configure options |
|---|
| 138 | CONFIGURE_ARGS = $(DIRPATHS) |
|---|
| 139 | CONFIGURE_ARGS += --disable-assembler |
|---|
| 140 | # Why not have a docs package? |
|---|
| 141 | # CONFIGURE_ARGS += --without-docs |
|---|
| 142 | CONFIGURE_ARGS += --enable-local-infile |
|---|
| 143 | CONFIGURE_ARGS += --with-charset=utf8 |
|---|
| 144 | CONFIGURE_ARGS += --with-extra-charsets=all |
|---|
| 145 | CONFIGURE_ARGS += --with-low-memory |
|---|
| 146 | CONFIGURE_ARGS += --with-pthread |
|---|
| 147 | CONFIGURE_ARGS += --with-readline |
|---|
| 148 | CONFIGURE_ARGS += --with-zlib-dir=$(BUILD_PREFIX) |
|---|
| 149 | CONFIGURE_ARGS += --with-ssl=$(BUILD_PREFIX) |
|---|
| 150 | CONFIGURE_ARGS += --with-plugins=max-no-ndb |
|---|
| 151 | CONFIGURE_ARGS += --with-comment="(OpenCSW)" |
|---|
| 152 | CONFIGURE_ARGS += --with-mysqld-user=mysql |
|---|
| 153 | CONFIGURE_ARGS += --with-fast-mutexes |
|---|
| 154 | CONFIGURE_ARGS += --with-libwrap |
|---|
| 155 | CONFIGURE_ARGS += --with-mysqld-libs=-lmtmalloc |
|---|
| 156 | CONFIGURE_ARGS += --with-big-tables |
|---|
| 157 | CONFIGURE_ARGS += --enable-thread-safe-client |
|---|
| 158 | CONFIGURE_ARGS_DBG = --with-debug |
|---|
| 159 | CONFIGURE_ARGS += $(CONFIGURE_ARGS_$(GARFLAVOR)) |
|---|
| 160 | # CONFIGURE_ARGS += --program-suffix= |
|---|
| 161 | CONFIGURE_ARGS += --with-federated-storage-engine |
|---|
| 162 | |
|---|
| 163 | # TODO: Make the tests pass. They don't at the moment. |
|---|
| 164 | SKIPTEST ?= 1 |
|---|
| 165 | TEST_SCRIPTS = custom |
|---|
| 166 | TEST_TARGETS = check |
|---|
| 167 | |
|---|
| 168 | USERGROUP = /etc/opt/csw/pkg/CSW$(NAME)/cswusergroup |
|---|
| 169 | |
|---|
| 170 | PROTOTYPE_MODIFIERS = dbdir |
|---|
| 171 | PROTOTYPE_FILES_dbdir = $(localstatedir) |
|---|
| 172 | PROTOTYPE_USER_dbdir = mysql |
|---|
| 173 | PROTOTYPE_GROUP_dbdir = mysql |
|---|
| 174 | PROTOTYPE_PERMS_dbdir = 0700 |
|---|
| 175 | PROTOTYPE_CLASS_dbdir = ugfiles |
|---|
| 176 | |
|---|
| 177 | CHECKPKG_OVERRIDES_CSW$(NAME)bench += file-with-bad-content |
|---|
| 178 | CHECKPKG_OVERRIDES_CSW$(NAME)bench += surplus-dependency|CSW$(NAME) |
|---|
| 179 | CHECKPKG_OVERRIDES_CSW$(NAME)test += file-with-bad-content |
|---|
| 180 | CHECKPKG_OVERRIDES_CSW$(NAME)test += surplus-dependency|CSW$(NAME) |
|---|
| 181 | |
|---|
| 182 | CHECKPKG_OVERRIDES_CSW$(NAME)client += file-with-bad-content|/usr/local|root$(prefix)/share/man/man1/mysqlaccess.1 |
|---|
| 183 | # This could be reviewed. |
|---|
| 184 | CHECKPKG_OVERRIDES_CSW$(NAME) += file-with-bad-content |
|---|
| 185 | |
|---|
| 186 | EXECUTABLES += comp_err |
|---|
| 187 | EXECUTABLES += innochecksum |
|---|
| 188 | EXECUTABLES += msql2mysql |
|---|
| 189 | EXECUTABLES += my_print_defaults |
|---|
| 190 | EXECUTABLES += myisam_ftdump |
|---|
| 191 | EXECUTABLES += myisamchk |
|---|
| 192 | EXECUTABLES += myisamlog |
|---|
| 193 | EXECUTABLES += myisampack |
|---|
| 194 | EXECUTABLES += mysql |
|---|
| 195 | EXECUTABLES += mysql_client_test |
|---|
| 196 | EXECUTABLES += mysql_convert_table_format |
|---|
| 197 | EXECUTABLES += mysql_explain_log |
|---|
| 198 | EXECUTABLES += mysql_find_rows |
|---|
| 199 | EXECUTABLES += mysql_fix_extensions |
|---|
| 200 | EXECUTABLES += mysql_fix_privilege_tables |
|---|
| 201 | EXECUTABLES += mysql_install_db |
|---|
| 202 | EXECUTABLES += mysql_secure_installation |
|---|
| 203 | EXECUTABLES += mysql_setpermission |
|---|
| 204 | EXECUTABLES += mysql_tableinfo |
|---|
| 205 | EXECUTABLES += mysql_tzinfo_to_sql |
|---|
| 206 | EXECUTABLES += mysql_upgrade |
|---|
| 207 | EXECUTABLES += mysql_upgrade_shell |
|---|
| 208 | EXECUTABLES += mysql_waitpid |
|---|
| 209 | EXECUTABLES += mysql_zap |
|---|
| 210 | EXECUTABLES += mysqlaccess |
|---|
| 211 | EXECUTABLES += mysqladmin |
|---|
| 212 | EXECUTABLES += mysqlbinlog |
|---|
| 213 | EXECUTABLES += mysqlbug |
|---|
| 214 | EXECUTABLES += mysqlcheck |
|---|
| 215 | EXECUTABLES += mysqld_multi |
|---|
| 216 | EXECUTABLES += mysqld_safe |
|---|
| 217 | EXECUTABLES += mysqldump |
|---|
| 218 | EXECUTABLES += mysqldumpslow |
|---|
| 219 | EXECUTABLES += mysqlhotcopy |
|---|
| 220 | EXECUTABLES += mysqlimport |
|---|
| 221 | EXECUTABLES += mysqlshow |
|---|
| 222 | EXECUTABLES += mysqltest |
|---|
| 223 | EXECUTABLES += mysqltestmanager |
|---|
| 224 | EXECUTABLES += mysqltestmanager-pwgen |
|---|
| 225 | EXECUTABLES += mysqltestmanagerc |
|---|
| 226 | EXECUTABLES += perror |
|---|
| 227 | EXECUTABLES += replace |
|---|
| 228 | EXECUTABLES += resolve_stack_dump |
|---|
| 229 | EXECUTABLES += resolveip |
|---|
| 230 | |
|---|
| 231 | # These are harmless, although it would be nice to clean them up eventually. |
|---|
| 232 | # Help appreciated? |
|---|
| 233 | CHECKPKG_OVERRIDES_CSWmysql51 += file-collision|/opt/csw/share/doc/mysql5devel_stub/README.CSW|CSWmysql5|CSWmysql51 |
|---|
| 234 | CHECKPKG_OVERRIDES_CSWmysql51 += file-collision|/opt/csw/share/doc/mysql_dev/README.CSW|CSWmysql5|CSWmysql51 |
|---|
| 235 | CHECKPKG_OVERRIDES_CSWmysql51 += file-collision|/opt/csw/share/info/mysql.info|CSWmysql5|CSWmysql51 |
|---|
| 236 | |
|---|
| 237 | include gar/category.mk |
|---|
| 238 | |
|---|
| 239 | CFLAGS := $(filter-out -I%,$(CFLAGS)) |
|---|
| 240 | |
|---|
| 241 | test-custom: |
|---|
| 242 | alias sh=/usr/bin/bash; \ |
|---|
| 243 | cd $(WORKSRC)/mysql-test; \ |
|---|
| 244 | perl mysql-test-run.pl --mem --big-test --force \ |
|---|
| 245 | --skip-test=archive-big --skip-test=/gis/ |
|---|
| 246 | |
|---|
| 247 | pre-configure-modulated: |
|---|
| 248 | # To work around the following libtool version mismatch problem: |
|---|
| 249 | # libtool: Version mismatch error. This is libtool 2.2.6, but the |
|---|
| 250 | # libtool: definition of this LT_INIT comes from libtool 2.2.6b. |
|---|
| 251 | # libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 |
|---|
| 252 | # http://lists.opencsw.org/pipermail/maintainers/2009-December/005066.html |
|---|
| 253 | cd $(WORKSRC) && autoreconf --force --install --symlink |
|---|
| 254 | @$(MAKECOOKIE) |
|---|
| 255 | |
|---|
| 256 | post-configure-modulated: |
|---|
| 257 | gsed \ |
|---|
| 258 | -e 's+@prefix@+$(prefix)+g' \ |
|---|
| 259 | -e 's+@localstatedir@+$(localstatedir)+g' \ |
|---|
| 260 | -e 's+@sysconfdir@+$(sysconfdir)+g' \ |
|---|
| 261 | -e 's+@bindir@+$(bindir)+g' \ |
|---|
| 262 | -e 's+@BASE_VERSION@+$(BASE_VERSION)+g' \ |
|---|
| 263 | < $(WORKDIR)/csw$(NAME).tpl \ |
|---|
| 264 | > $(WORKDIR)/csw$(NAME) |
|---|
| 265 | @$(MAKECOOKIE) |
|---|
| 266 | |
|---|
| 267 | post-install-modulated: |
|---|
| 268 | (cd $(DESTDIR)$(libdir); gmv -v mysql/* .) |
|---|
| 269 | (cd $(DESTDIR)$(libdir); grmdir -v mysql) |
|---|
| 270 | ginstall -m 755 -d $(DESTDIR)$(sysconfdir)/init.d |
|---|
| 271 | ginstall -m 755 $(WORKDIR)/csw$(NAME) $(DESTDIR)$(sysconfdir)/init.d |
|---|
| 272 | @$(MAKECOOKIE) |
|---|
| 273 | |
|---|
| 274 | post-merge: |
|---|
| 275 | ginstall -m 755 -d $(PKGROOT)$(localstatedir) |
|---|
| 276 | ginstall -m 755 -d $(PKGROOT)$(datadir)/$(NAME)/doc |
|---|
| 277 | ginstall -m 644 $(FILEDIR)/ChangeLog $(PKGROOT)$(datadir)/$(NAME)/doc |
|---|
| 278 | ginstall -m 644 $(FILEDIR)/README.CSW $(PKGROOT)$(datadir)/$(NAME)/doc |
|---|
| 279 | ginstall -m 755 -d $(PKGROOT)/opt/csw/share/$(NAME)/doc |
|---|
| 280 | gln -sf ../../../$(NAME)/share/$(NAME)/doc/README.CSW \ |
|---|
| 281 | $(PKGROOT)/opt/csw/share/$(NAME)/doc/README.CSW |
|---|
| 282 | ginstall -m 755 $(FILEDIR)/quick_start-csw $(PKGROOT)$(datadir)/mysql |
|---|
| 283 | ginstall -m 755 -d $(PKGROOT)$(sysconfdir)/pkg/CSW$(NAME) |
|---|
| 284 | ginstall -m 644 $(FILEDIR)/cswusergroup \ |
|---|
| 285 | $(PKGROOT)$(sysconfdir)/pkg/CSW$(NAME) |
|---|
| 286 | # http://www.opencsw.org/bugtrack/view.php?id=4149 |
|---|
| 287 | ginstall -m 755 -d $(PKGROOT)$(sysconfdir) |
|---|
| 288 | @$(MAKECOOKIE) |
|---|