From 4cf98f0b7a89090230bfec52a1de8dacb7588d8e Mon Sep 17 00:00:00 2001 From: Evan Miller Date: Mon, 3 Aug 2020 15:02:20 -0400 Subject: [PATCH] Update README. There's a new fork in town. --- README.md | 227 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 130 insertions(+), 97 deletions(-) diff --git a/README.md b/README.md index 24ca918..56b1afc 100644 --- a/README.md +++ b/README.md @@ -1,128 +1,159 @@ -The original [project repository](https://github.com/brianb/mdbtools) seems to have been abandoned -(no activity from author for over a year). +[![Build Status](https://travis-ci.org/evanmiller/mdbtools.svg?branch=master)](https://travis-ci.org/evanmiller/mdbtools) -In this fork I merged a few PR requests to the original repository as well as added some of my own -fixes. +MDB Tools, where open source goes to die. -# Installing from packages -Since I use these tools in many systems, I packaged it for simpler installation. +This is a fork of a [fork](https://github.com/cyberemissary/mdbtools) of a +[fork](https://github.com/brjohnsn/mdbtools) of a +[fork](https://github.com/leecher1337/mdbtools) of the [original MDB +Tools](https://github.com/brianb/mdbtools) by Brian Buns. I got sick of seeing +the project waste away, so I'm taking the initiative to get MDB Tools +whipped back into shape and properly maintained. -> Had to change package name to avoid collision with original author's package. +A brief history: the last *official* release (version 0.7.1) occurred in 2016. +[cyberemissary](https://github.com/cyberemissary) (whose work this fork is +based on) made a release in December 2018 and called it 0.8.2. *I am not +planning a formal release* but rather collecting and merging patches to submit +upstream. In the meantime you are welcome to use this code base: -## Ubuntu/Debian -> Built on Ubuntu 16.04 LTS only, should work on Debian and similar linux flavors. +https://github.com/evanmiller/mdbtools -```bash -$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7C2FDAFB -$ echo "deb http://apt.cyberemissary.com/ubuntu/ xenial main" | sudo btee -a /etc/apt/sources.list.d/apt.cyberemissary.com.list -$ sudo apt-update -$ sudo apt-get install cyber-mdbtools -``` +Intended focus areas: -## RPM Package -No repository for RPM distribution, but you can install from rpm file: +* Security / fuzz testing +* Continuous integration with Travis and AppVeyor +* Removing dependencies -```bash -# Replace the with the version number you wish to install. For list of versions see the releases on GitHub +A re-formatted and updated README file follows. -$ wget https://rpm.cybercoder.site/rpm/cyber-mdbtools--1.x86_64.rpm -$ rpm -i cyber-mdbtools--1.x86_64.rpm -``` - -> The RPM package was created using `alient` from the DEB package, so it may or may not work on your linux distribution. - -# Contributing -Feel free to submit PR requests here. I will try to review and merge them regularly. - -# mdbtools -_version 0.8.2_ +*In a chipper open-source voice...* Welcome to the exciting world of MDB Tools! In short, MDB Tools is a set of -programs to help you use Microsoft Access file in various settings. The major -pieces are: - -``` -. libmdb - the core library that allows access to MDB files programatically. -. libmdbsql - builds on libmdb to provide a SQL engine (aka Jet) -. utils - provides command line utilities: - mdb-ver -- prints the version (JET 3 or 4) of an mdb file. - mdb-schema -- prints DDL for the specified table. - mdb-export -- export table to CSV format. - mdb-tables -- a simple dump of table names to be used with shell - scripts - mdb-count -- a simple count of number of rows in a table, to be - used in shell scripts and ETL pipelines - mdb-header -- generates a C header to be used in exporting mdb - data to a C prog. - mdb-parsecsv -- generates a C program given a CSV file made with - mdb-export - mdb-sql -- if --enable-sql is specified, a simple SQL engine - (also used by ODBC and gmdb). - - And some utilities useful for debugging: - prcat -- prints the catalog table from an mdb file. - prkkd -- dump of information about design view data given the offset to it. - prtable -- dump of a table definition. - prdata -- dump of the data given a table name. - prole -- dump of ole columns given a table name and sargs. -. mdb-sql - a command line SQL tool that allows one to type sql queries and - get results. -. odbc - An ODBC driver for use with unixODBC or iODBC driver manager. - Allows one to use MDB files with PHP for example. -. gmdb2 - The Gnome MDB File Viewer and debugger. Still alpha, but making - great progress. -. extras - extra command line utilities - mdb-dump -- simple hex dump utility that I've been using to look - at mdb files. -``` - -If you are interested in helping, read the HACKING file for a description of -where the code stands and what has been gleened of the file format. +programs to help you use Microsoft Access file in various settings. The initial goal of these tools is to be able to extract data structures and -data from mdb files. This goal will of course expand over time as the file +data from mdb files. This goal will of course expand over time as the file format becomes more well understood. +# Components + +The major pieces of MDB Tools are: + +## libmdb + +The core library that allows access to MDB files programatically. + +## libmdbsql + +Builds on libmdb to provide a SQL engine (aka Jet) + +## utils + +Provids command line utilities, including: + +### mdb-ver + +Prints the version (JET 3 or 4) of an mdb file. + +### mdb-schema + +Prints DDL for the specified table. + +### mdb-export + +Export table to CSV format. + +### mdb-tables + +A simple dump of table names to be used with shell scripts. + +### mdb-count + +A simple count of number of rows in a table, to be used in shell scripts and ETL pipelines. + +### mdb-header + +Generates a C header to be used in exporting mdb data to a C prog. + +### mdb-parsecsv + +Generates a C program given a CSV file made with mdb-export. + +### mdb-sql + +If --enable-sql is specified, a simple SQL engine (also used by ODBC and gmdb). + +### prcat + +Prints the catalog table from an mdb file. + +### prkkd + +Dump of information about design view data given the offset to it. + +### prtable + +Dump of a table definition. + +### prdata + +Dump of the data given a table name. + +### prole + +Dump of ole columns given a table name and sargs. + +## odbc + +An ODBC driver for use with unixODBC or iODBC driver manager. Allows one to use MDB files with PHP for example. + +## gmdb2 + +The Gnome MDB File Viewer and debugger. Still alpha, but making great progress. + +## src/extras/mdb-hexdump + +Simple hex dump utility that I've been using to look at mdb files. + +# License + Files in libmdb, libmdbsql, and libmdbodbc are licensed under LGPL and the -utilities and gui program are under the GPL, see COPYING.LIB and COPYING files -respectively. +utilities and gui program are under the GPL, see [COPYING.LIB](./COPYING.LIB) +and [COPYING](./COPYING) files respectively. -Requirements: -============= +# Requirements First, you must have reasonably current installations of: - `libtool` - `automake` - `autoconf` (version >= 2.58) -If you don't you should install them first. Sources are available at -ftp.gnu.org. -Second, you need glib. It may come as `glib2.0` and `glib2.0-dev` packages in your -distribution. +* [libtool](https://www.gnu.org/software/libtool/) +* [automake](https://www.gnu.org/software/automake/) +* [autoconf](https://www.gnu.org/software/autoconf/) (version >= 2.58) -If you want to build the SQL engine, you'll need `bison` or `byacc`, and `flex`. +If you want to build the SQL engine, you'll need +[bison](https://www.gnu.org/software/bison/) or +[byacc](https://invisible-island.net/byacc/byacc.html), and +[flex](https://github.com/westes/flex). -If you want to build the ODBC driver, you'll need `unixodbc-dev` (version 2.2.10 or -above) or iodbc. +If you want to build the ODBC driver, you'll need `unixodbc-dev` (version +2.2.10 or above) or [iodbc](http://www.iodbc.org/dataspace/doc/iodbc/wiki/iodbcWiki/WelcomeVisitors). -If you want to build man pages, you'll need `txt2man`. Source is available at -http://mvertes.free.fr/download/. +If you want to build man pages, you'll need +[txt2man](https://github.com/mvertes/txt2man). -If you want to generate the html version of the docbook, you'll need openjade -and basic dsl catalogs. +If you want to generate the html version of the docbook, you'll need +[openjade](http://openjade.sourceforge.net) and basic dsl catalogs. -Installation from source: -========================= +# Installation -Last version is available at https://github.com/cyberemissary/mdbtools +Last version is available at https://github.com/evanmiller/mdbtools ```bash $ autoreconf -i -f ``` If you want to build the html version of the docbook documentation, you need to -set the environment variable DOCBOOK_DSL to the modular dsl translation file. +set the environment variable `DOCBOOK_DSL` to the modular dsl translation file. For exemple, before configure, you need something like: ```bash @@ -148,7 +179,7 @@ mutually exclusive. causes the iODBC driver to be built. ``` -A list of general options is available in the INSTALL file, and +A list of general options is available in the [INSTALL](./INSTALL) file, and `configure --help` will give you the list of mdbtools specific options. ```bash @@ -171,10 +202,12 @@ You can do that running: $ ldconfig ``` +# Hacking -Contacts -======== +If you are interested in helping, read the [HACKING](./HACKING) file for a description of +where the code stands and what has been gleened of the file format. + +# Contact Please send bug reports to the new github repository. -https://github.com/cyberemissary/mdbtools/issues - +https://github.com/evanmiller/mdbtools/issues