# This is a sample Vroom input file. It should help you get started. # # Edit this file with your content. Then run `vroom --vroom` to start # the show! # # See `perldoc Vroom::Vroom` for complete details. # ---- config # Basic config options. title: MySQL on Gentoo indent: 0 height: 18 width: 69 skip: 0 # The following options are for Gvim usage. #vim: gvim #guioptions: egmLtT #guicursor: a:blinkon0-ver25-Cursor #guifont: Bitstream_Vera_Sans_Mono:h24 #fuopt: maxhorz,maxvert #exp unstable testing stable ---- center MySQL on Gentoo by Robin Johnson ---- == TOPICS * Gentoo Overview * Gentoo Architectures * Versioning Fun * Major differences * Build featureset * Patching (5.1) * Patching (5.0) * On Testing ---- == Gentoo Overview * 13k packages * "Parent" distro ** 13 known spin-off distributions ** Our tree, plus their own packages/versions replacing in-tree parts ** SystemRescueCD, Ututo, Funtoo, Koraraa, Pentoo, Sabayon, ... * Constant stream of updates (freeze yourself) * Pre 2009 release model ** Media and install environments on strict quarterly time basis * New release model ** Weekly install environments, auto-built ** Feature-based release schedule of special media ---- == Gentoo architectures & variants * 40 architectures/platform combinations, known as "arches" ** 13 core Gentoo arches (Linux kernel, userspace) ** 3 Gentoo-FreeBSD arches (FreeBSD kernel, Gentoo userspace) ** 24 "Prefix" arches *** Gentoo in /usr/local on top of other OS *** *Linux, *BSD, MacOS, IRIX, Interix, Cygwin, Solaris, ... * 271 "profiles" in official tree: arch + build-type + use-model ** Variants: SELinux, Hardened, ABI, Hardware (eg SGI MIPS) ** (none), desktop, server as optional use variant * MySQL presently supported in: ** ALL of core, and Gentoo-FreeBSD. ** Security-Hardened variants ** Prefix support in overlays ---- == Versioning fun * Both "enterprise" & "community" available * 5.0.84 stable * 5.0.90 unstable (equiv. Debian testing) * 5.1.43, 5.4.3, 5.5.1 in package.mask (equiv. Debian unstable) * 5.1 move to unstable on Wednesday * NDB 6.3/7.0 in Overlays (equiv. Debian experimental) * "live" builds of trunks in Overlays * MariaDB in overlays, Drizzle in unstable ---- == Major differences * Distro practices: ** Dynamic linking everywhere ** UTF8 ** 3-way merges of new config files ** Expose buildtime settings to users (USE flags) * For MySQL: ** Default charset & collation are UTF8, not Latin1 ** Dynamic build of embedded libs (if enabled) ---- == Build featureset * Most configure options available as USE flags ** SSL (default on) ** NDB ** embedded mysqld ** set charset back to latin1... ** In-tree extra engines (Archive, Federated, Partition etc) ** Static build ** Big-tables/max-idx-128 ** "minimal" client-only build ** xtradb, pbxt ---- == Patching (5.1) * Applied at build time, not pre-applied * 6 patches * Mostly build-oriented ** Hardening/GNU-stack @progbits in x86 ASM ** GCC min/max macros ** other fixes for new GCC versions ** mysql_config output * Testcase fixups ** charset/utf8 ** false positives ** more on this later ---- == Patching (5.0) * 12 patches * Most of the same as 5.1 series, plus * More build stuff (libtool, mysql_config) * Percona patchset (on by default, w/ off switch) * dynamic building of embedded! ---- == On Testing * Running the testsuite OFTEN ** Developers on average at LEAST once/month per arch ** More than weekly on common profiles ** Slower on other profiles * Changing charset breaks tests * Geometry/GIS (archive_gis) testcases break on big-endian! * SSL certificates cause test failures ("*ssl*") ** Static certificates bad! ** 4.1.*, 5.0.0-5.0.22, 5.1.7: Expires 2013/09/09 ** 5.0.23-5.0.77, 5.1.7-5.1.22?: Expires 2009/01/27 ** 5.0.78-5.0.90, 5.1.??-5.1.42: Expires 2010/01/28 ---- == Other differences * Custom config based on medium.cnf * skip-innodb by default, but other InnoDB settings not commented out * skip-networking by default * /etc/mysql/ for config * SELinux supported ---- == Other Components * MySQL server team != GUI, workbench maintainers * Server team ** MySQL itself ** some connectors/bindings ** CLI tools & tuning ** Some system packages that use MySQL (pam_mysql) * Other maintainers: ** MySQL-proxy ** GUI-tools ** Workbench