*** empty log message ***

svn path=/trunk/boinc/; revision=2269
This commit is contained in:
Karl Chen 2003-09-05 22:12:34 +00:00
parent ce576eb9f7
commit 41d262b095
12 changed files with 142 additions and 93 deletions

View File

@ -6163,3 +6163,20 @@ David Sept 5 2003
db_ops.php
sched/
*.C
Karl 2003/09/05
- restructured application add system; rewrote update_versions:
- applications now go in <config.xml:apps_dir>/APPLICATION/
- update_versions checks for all versions of core client and all
applications, regardless of package version
py/Boinc/
configxml.py
database.py
db_mid.py
tools.py (new)
tools/
add.py
update_versions

17
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh
# From configure.ac Revision: 1.37 .
# From configure.ac Revision: 1.40 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.57 for BOINC 2.01.
#
@ -7835,5 +7835,18 @@ fi
echo "--- Configured BOINC 2.01 ---"
test/test_sanity.py
test/test_sanity.py || (
cat <<EOF
The framework sanity check failed.
If you only want to compile the client or compile the server, this may be okay.
If you want to develop BOINC and be able to run the automated tests, you need
a MySQL server installed and running, with permission to create databases.
EOF
)

View File

@ -153,7 +153,20 @@ AC_CONFIG_HEADER([config.h])
AC_OUTPUT
[
echo "--- Configured BOINC AC_PACKAGE_VERSION ---"
test/test_sanity.py
test/test_sanity.py || (
cat <<EOF
The framework sanity check failed.
If you only want to compile the client or compile the server, this may be okay.
If you want to develop BOINC and be able to run the automated tests, you need
a MySQL server installed and running, with permission to create databases.
EOF
)
]

View File

@ -24,7 +24,9 @@ at <code>configure</code>-time.
If you modify <code>Makefile.am</code>, you need to
regenerate <code>Makefile.in</code> using <code>automake</code>, and
your machine-dependent <code>Makefile</code>
using <code>config.status</code>.
using <code>config.status</code>. (The <code>boinc/_autosetup</code>
script takes care of all of these; run this script every time you modify
a makefile.)
</td></tr>
<tr><td nowrap><code>configure --enable-maintainer-mode</code></td>
<td>Enabled</td><td>

View File

@ -2,7 +2,9 @@
# $Id$
# change boinc version number in configure.ac
# Change boinc version number in configure.ac and generate files.
# syntax: set-version 7.17
die()
{

View File

@ -2,9 +2,9 @@
include $(top_srcdir)/Makefile.incl
bin_PROGRAMS = create_work add country_select sign_executable
bin_PROGRAMS = create_work old_add country_select sign_executable
EXTRA_DIST = make_project
EXTRA_DIST = make_project add.py update_version
# TODO: use libboinc for these:
@ -26,22 +26,22 @@ create_work_DEPENDENCIES = $(LIBRSA)
create_work_LDADD = $(RSA_LIBS) $(MYSQL_LIBS)
## deprecated
add_SOURCES = \
add.C \
backend_lib.C \
process_result_template.C \
../lib/md5_file.C \
../lib/md5.c \
../lib/parse.C \
../lib/util.C \
../db/boinc_db.C \
../db/db_base.C \
../lib/crypt.C \
../sched/sched_config.C \
old_add_SOURCES = \
add.C \
backend_lib.C \
process_result_template.C \
../lib/md5_file.C \
../lib/md5.c \
../lib/parse.C \
../lib/util.C \
../db/boinc_db.C \
../db/db_base.C \
../lib/crypt.C \
../sched/sched_config.C \
backend_lib.h
add_DEPENDENCIES = $(LIBRSA)
add_LDADD = $(RSA_LIBS) $(MYSQL_LIBS)
old_add_DEPENDENCIES = $(LIBRSA)
old_add_LDADD = $(RSA_LIBS) $(MYSQL_LIBS)
sign_executable_SOURCES = \
sign_executable.C \

View File

@ -168,9 +168,9 @@ AM_CPPFLAGS = \
# programs linking to it:
LIBRSA = $(top_builddir)/RSAEuro/source/librsaeuro.a
bin_PROGRAMS = create_work add country_select sign_executable
bin_PROGRAMS = create_work old_add country_select sign_executable
EXTRA_DIST = make_project
EXTRA_DIST = make_project add update_version
# TODO: use libboinc for these:
@ -192,23 +192,23 @@ create_work_SOURCES = \
create_work_DEPENDENCIES = $(LIBRSA)
create_work_LDADD = $(RSA_LIBS) $(MYSQL_LIBS)
add_SOURCES = \
add.C \
backend_lib.C \
process_result_template.C \
../lib/md5_file.C \
../lib/md5.c \
../lib/parse.C \
../lib/util.C \
../db/boinc_db.C \
../db/db_base.C \
../lib/crypt.C \
../sched/sched_config.C \
old_add_SOURCES = \
add.C \
backend_lib.C \
process_result_template.C \
../lib/md5_file.C \
../lib/md5.c \
../lib/parse.C \
../lib/util.C \
../db/boinc_db.C \
../db/db_base.C \
../lib/crypt.C \
../sched/sched_config.C \
backend_lib.h
add_DEPENDENCIES = $(LIBRSA)
add_LDADD = $(RSA_LIBS) $(MYSQL_LIBS)
old_add_DEPENDENCIES = $(LIBRSA)
old_add_LDADD = $(RSA_LIBS) $(MYSQL_LIBS)
sign_executable_SOURCES = \
sign_executable.C \
@ -225,16 +225,10 @@ subdir = tools
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = boinc_path_config.py
bin_PROGRAMS = create_work$(EXEEXT) add$(EXEEXT) country_select$(EXEEXT) \
sign_executable$(EXEEXT)
bin_PROGRAMS = create_work$(EXEEXT) old_add$(EXEEXT) \
country_select$(EXEEXT) sign_executable$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
am_add_OBJECTS = add.$(OBJEXT) backend_lib.$(OBJEXT) \
process_result_template.$(OBJEXT) md5_file.$(OBJEXT) \
md5.$(OBJEXT) parse.$(OBJEXT) util.$(OBJEXT) boinc_db.$(OBJEXT) \
db_base.$(OBJEXT) crypt.$(OBJEXT) sched_config.$(OBJEXT)
add_OBJECTS = $(am_add_OBJECTS)
add_LDFLAGS =
am_country_select_OBJECTS = country_select.$(OBJEXT) countries.$(OBJEXT)
country_select_OBJECTS = $(am_country_select_OBJECTS)
country_select_LDADD = $(LDADD)
@ -246,6 +240,12 @@ am_create_work_OBJECTS = create_work.$(OBJEXT) backend_lib.$(OBJEXT) \
db_base.$(OBJEXT) crypt.$(OBJEXT) sched_config.$(OBJEXT)
create_work_OBJECTS = $(am_create_work_OBJECTS)
create_work_LDFLAGS =
am_old_add_OBJECTS = add.$(OBJEXT) backend_lib.$(OBJEXT) \
process_result_template.$(OBJEXT) md5_file.$(OBJEXT) \
md5.$(OBJEXT) parse.$(OBJEXT) util.$(OBJEXT) boinc_db.$(OBJEXT) \
db_base.$(OBJEXT) crypt.$(OBJEXT) sched_config.$(OBJEXT)
old_add_OBJECTS = $(am_old_add_OBJECTS)
old_add_LDFLAGS =
am_sign_executable_OBJECTS = sign_executable.$(OBJEXT) \
md5_file.$(OBJEXT) md5.$(OBJEXT) crypt.$(OBJEXT)
sign_executable_OBJECTS = $(am_sign_executable_OBJECTS)
@ -272,10 +272,10 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(add_SOURCES) $(country_select_SOURCES) \
$(create_work_SOURCES) $(sign_executable_SOURCES)
DIST_SOURCES = $(country_select_SOURCES) $(create_work_SOURCES) \
$(old_add_SOURCES) $(sign_executable_SOURCES)
DIST_COMMON = $(top_srcdir)/Makefile.incl Makefile.am Makefile.in
SOURCES = $(add_SOURCES) $(country_select_SOURCES) $(create_work_SOURCES) $(sign_executable_SOURCES)
SOURCES = $(country_select_SOURCES) $(create_work_SOURCES) $(old_add_SOURCES) $(sign_executable_SOURCES)
all: all-am
@ -312,6 +312,10 @@ uninstall-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
countries.$(OBJEXT): ../lib/countries.C
country_select$(EXEEXT): $(country_select_OBJECTS) $(country_select_DEPENDENCIES)
@rm -f country_select$(EXEEXT)
$(CXXLINK) $(country_select_LDFLAGS) $(country_select_OBJECTS) $(country_select_LDADD) $(LIBS)
md5_file.$(OBJEXT): ../lib/md5_file.C
md5.$(OBJEXT): ../lib/md5.c
parse.$(OBJEXT): ../lib/parse.C
@ -320,16 +324,12 @@ boinc_db.$(OBJEXT): ../db/boinc_db.C
db_base.$(OBJEXT): ../db/db_base.C
crypt.$(OBJEXT): ../lib/crypt.C
sched_config.$(OBJEXT): ../sched/sched_config.C
add$(EXEEXT): $(add_OBJECTS) $(add_DEPENDENCIES)
@rm -f add$(EXEEXT)
$(CXXLINK) $(add_LDFLAGS) $(add_OBJECTS) $(add_LDADD) $(LIBS)
countries.$(OBJEXT): ../lib/countries.C
country_select$(EXEEXT): $(country_select_OBJECTS) $(country_select_DEPENDENCIES)
@rm -f country_select$(EXEEXT)
$(CXXLINK) $(country_select_LDFLAGS) $(country_select_OBJECTS) $(country_select_LDADD) $(LIBS)
create_work$(EXEEXT): $(create_work_OBJECTS) $(create_work_DEPENDENCIES)
@rm -f create_work$(EXEEXT)
$(CXXLINK) $(create_work_LDFLAGS) $(create_work_OBJECTS) $(create_work_LDADD) $(LIBS)
old_add$(EXEEXT): $(old_add_OBJECTS) $(old_add_DEPENDENCIES)
@rm -f old_add$(EXEEXT)
$(CXXLINK) $(old_add_LDFLAGS) $(old_add_OBJECTS) $(old_add_LDADD) $(LIBS)
sign_executable$(EXEEXT): $(sign_executable_OBJECTS) $(sign_executable_DEPENDENCIES)
@rm -f sign_executable$(EXEEXT)
$(CXXLINK) $(sign_executable_LDFLAGS) $(sign_executable_OBJECTS) $(sign_executable_LDADD) $(LIBS)
@ -381,6 +381,28 @@ distclean-depend:
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`
countries.o: ../lib/countries.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT countries.o -MD -MP -MF "$(DEPDIR)/countries.Tpo" \
@am__fastdepCXX_TRUE@ -c -o countries.o `test -f '../lib/countries.C' || echo '$(srcdir)/'`../lib/countries.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/countries.Tpo" "$(DEPDIR)/countries.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/countries.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/countries.C' object='countries.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/countries.Po' tmpdepfile='$(DEPDIR)/countries.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o countries.o `test -f '../lib/countries.C' || echo '$(srcdir)/'`../lib/countries.C
countries.obj: ../lib/countries.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT countries.obj -MD -MP -MF "$(DEPDIR)/countries.Tpo" \
@am__fastdepCXX_TRUE@ -c -o countries.obj `if test -f '../lib/countries.C'; then $(CYGPATH_W) '../lib/countries.C'; else $(CYGPATH_W) '$(srcdir)/../lib/countries.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/countries.Tpo" "$(DEPDIR)/countries.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/countries.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/countries.C' object='countries.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/countries.Po' tmpdepfile='$(DEPDIR)/countries.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o countries.obj `if test -f '../lib/countries.C'; then $(CYGPATH_W) '../lib/countries.C'; else $(CYGPATH_W) '$(srcdir)/../lib/countries.C'`
md5_file.o: ../lib/md5_file.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT md5_file.o -MD -MP -MF "$(DEPDIR)/md5_file.Tpo" \
@am__fastdepCXX_TRUE@ -c -o md5_file.o `test -f '../lib/md5_file.C' || echo '$(srcdir)/'`../lib/md5_file.C; \
@ -535,28 +557,6 @@ sched_config.obj: ../sched/sched_config.C
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sched_config.obj `if test -f '../sched/sched_config.C'; then $(CYGPATH_W) '../sched/sched_config.C'; else $(CYGPATH_W) '$(srcdir)/../sched/sched_config.C'`
countries.o: ../lib/countries.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT countries.o -MD -MP -MF "$(DEPDIR)/countries.Tpo" \
@am__fastdepCXX_TRUE@ -c -o countries.o `test -f '../lib/countries.C' || echo '$(srcdir)/'`../lib/countries.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/countries.Tpo" "$(DEPDIR)/countries.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/countries.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/countries.C' object='countries.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/countries.Po' tmpdepfile='$(DEPDIR)/countries.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o countries.o `test -f '../lib/countries.C' || echo '$(srcdir)/'`../lib/countries.C
countries.obj: ../lib/countries.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT countries.obj -MD -MP -MF "$(DEPDIR)/countries.Tpo" \
@am__fastdepCXX_TRUE@ -c -o countries.obj `if test -f '../lib/countries.C'; then $(CYGPATH_W) '../lib/countries.C'; else $(CYGPATH_W) '$(srcdir)/../lib/countries.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/countries.Tpo" "$(DEPDIR)/countries.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/countries.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/countries.C' object='countries.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/countries.Po' tmpdepfile='$(DEPDIR)/countries.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o countries.obj `if test -f '../lib/countries.C'; then $(CYGPATH_W) '../lib/countries.C'; else $(CYGPATH_W) '$(srcdir)/../lib/countries.C'`
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \

View File

@ -96,7 +96,7 @@ void add_project() {
strcpy(project.long_name, project_long_name);
retval = project.insert();
if (retval) {
boinc_db_print_error("project.insert()");
boinc_db.print_error("project.insert()");
}
}
@ -114,7 +114,7 @@ void add_app() {
app.min_version = version;
retval = app.insert();
if (retval) {
boinc_db_print_error("app.insert()");
boinc_db.print_error("app.insert()");
}
}
@ -136,7 +136,7 @@ void add_platform() {
platform.create_time = time(0);
retval = platform.insert();
if (retval) {
boinc_db_print_error("platform.insert()");
boinc_db.print_error("platform.insert()");
}
}
@ -221,7 +221,7 @@ void add_core_version() {
retval = platform.lookup(buf);
if (retval) {
fprintf(stderr, "add_core_version(): can't find platform %s\n", platform_name);
boinc_db_print_error("platform.lookup()");
boinc_db.print_error("platform.lookup()");
return;
}
core_version.platformid = platform.id;
@ -237,7 +237,7 @@ void add_core_version() {
core_version.create_time = time(0);
retval = core_version.insert();
if (retval) {
boinc_db_print_error("core_version.insert()");
boinc_db.print_error("core_version.insert()");
}
}
@ -260,7 +260,7 @@ void add_app_version() {
retval = app.lookup(buf);
if (retval) {
fprintf(stderr, "add_app_version(): can't find app %s\n", app_name);
boinc_db_print_error("app.lookup()");
boinc_db.print_error("app.lookup()");
return;
}
app_version.appid = app.id;
@ -268,7 +268,7 @@ void add_app_version() {
retval = platform.lookup(buf);
if (retval) {
fprintf(stderr, "add_app_version(): can't find platform %s\n", platform_name);
boinc_db_print_error("platform.lookup()");
boinc_db.print_error("platform.lookup()");
return;
}
app_version.platformid = platform.id;
@ -318,7 +318,7 @@ void add_app_version() {
app_version.create_time = time(0);
retval = app_version.insert();
if (retval) {
boinc_db_print_error("app_version.insert()");
boinc_db.print_error("app_version.insert()");
return;
}
}
@ -342,7 +342,7 @@ void add_user() {
}
retval = user.insert();
if (retval) {
boinc_db_print_error("user.insert()");
boinc_db.print_error("user.insert()");
return;
}
}
@ -426,7 +426,7 @@ int main(int argc, char** argv) {
strcpy(code_sign_keyfile, argv[++i]);
}
}
retval = boinc_db_open(db_name, db_passwd);
retval = boinc_db.open(db_name, db_passwd);
if (retval) {
fprintf(stderr, "can't open DB %s\n", db_name);
exit(1);
@ -446,6 +446,6 @@ int main(int argc, char** argv) {
} else {
printf("Unrecognized command\n");
}
boinc_db_close();
boinc_db.close();
exit(0);
}

View File

@ -171,7 +171,7 @@ int main(int argc, char** argv) {
#undef CHKARG
#undef CHKARG_STR
if (boinc_db_open(db_name, db_passwd)) {
if (boinc_db.open(db_name, db_passwd)) {
fprintf(stderr, "create_work: error opening database.\n" );
exit(0);
}
@ -224,5 +224,5 @@ int main(int argc, char** argv) {
);
if (retval) fprintf(stderr, "create_work: %d\n", retval);
}
boinc_db_close();
boinc_db.close();
}

View File

@ -4,7 +4,9 @@
# Creates a new BOINC project.
# TODO: use database.py (mainly for setup_project.py)
# TOOD: don't add app / app version here.
# TODO: don't add app / app version here.
# TODO: create 'apps' subdirectory and set it in config.xml
# TODO: use configxml module
import sys, os, getopt, re
sys.path.append('../py')

View File

@ -15,8 +15,8 @@ file names must be of the form NAME_VERSION_PLATFORM[.ext]:
astropulse_7.17_i686-pc-linux-gnu.gz
astropulse_7.17_windows_intelx86.exe
The name and extensions .gz, .exe, .sit are ignored. Platform strings must
match the names of platforms in the database.
The prefix name and extensions .gz, .exe, .sit are ignored. Platform strings
must match the names of platforms in the database.
"""