diff --git a/.bison.metadata b/.bison.metadata
index 5cddff2..39bb6b9 100644
--- a/.bison.metadata
+++ b/.bison.metadata
@@ -1 +1 @@
-245467c56663ec80fc3e80c38cc1ff18c59d7ecc SOURCES/bison-2.7.tar.xz
+8270497aad88c7dd4f2c317298c50513fb0c3c8e SOURCES/bison-3.0.4.tar.xz
diff --git a/.gitignore b/.gitignore
index a84973b..b239582 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/bison-2.7.tar.xz
+SOURCES/bison-3.0.4.tar.xz
diff --git a/SOURCES/bison-2.7-unused-opts.patch b/SOURCES/bison-2.7-unused-opts.patch
deleted file mode 100644
index 2a2505a..0000000
--- a/SOURCES/bison-2.7-unused-opts.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff -up bison-2.7/src/getargs.c\~ bison-2.7/src/getargs.c
---- bison-2.7/src/getargs.c~	2012-12-05 14:51:18.000000000 +0100
-+++ bison-2.7/src/getargs.c	2013-05-17 17:45:53.188616509 +0200
-@@ -80,7 +80,6 @@ int skeleton_prio = default_prio;
- const char *skeleton = NULL;
- int language_prio = default_prio;
- struct bison_language const *language = &valid_languages[0];
--const char *include = NULL;
- 
- 
- /** Decode an option's set of keys.
-@@ -500,12 +499,10 @@ static char const short_options[] =
-   "b:"
-   "d"
-   "f::"
--  "e"
-   "g::"
-   "h"
-   "k"
-   "l"
--  "n"
-   "o:"
-   "p:"
-   "r:"
-@@ -535,7 +532,6 @@ static struct option const long_options[
- 
-   /* Parser. */
-   { "name-prefix",   required_argument,	  0,   'p' },
--  { "include",       required_argument,   0,   'I' },
- 
-   /* Output. */
-   { "file-prefix", required_argument,	0,   'b' },
-@@ -564,7 +560,6 @@ static struct option const long_options[
-   { "force-define",   required_argument,         0,   'F' },
-   { "locations",      no_argument,		 0, LOCATIONS_OPTION },
-   { "no-lines",       no_argument,               0,   'l' },
--  { "raw",            no_argument,               0,     0 },
-   { "skeleton",       required_argument,         0,   'S' },
-   { "language",       required_argument,         0,   'L' },
-   { "token-table",    no_argument,               0,   'k' },
-@@ -623,10 +618,6 @@ getargs (int argc, char *argv[])
-         }
- 	break;
- 
--      case 'I':
--	include = AS_FILE_NAME (optarg);
--	break;
--
-       case 'L':
- 	language_argmatch (optarg, command_line_prio,
- 			   command_line_location ());
-
-Diff finished.  Fri May 17 17:45:58 2013
diff --git a/SPECS/bison.spec b/SPECS/bison.spec
index 0a2a776..474925e 100644
--- a/SPECS/bison.spec
+++ b/SPECS/bison.spec
@@ -1,17 +1,14 @@
 Summary: A GNU general-purpose parser generator
 Name: bison
-Version: 2.7
-Release: 4%{?dist}
+Version: 3.0.4
+Release: 1%{?dist}
 License: GPLv3+
 Group: Development/Tools
 Source: ftp://ftp.gnu.org/pub/gnu/bison/bison-%{version}.tar.xz
 
-# https://bugzilla.redhat.com/show_bug.cgi?id=948856
-# Submitted for upstream inclusion on 2013-05-17.
-Patch0: bison-2.7-unused-opts.patch
-
 # testsuite dependency
 BuildRequires: autoconf
+BuildRequires: flex
 
 URL: http://www.gnu.org/software/bison/
 BuildRoot: %{_tmppath}/%{name}-root
@@ -77,7 +74,6 @@ Bison manual section for more information.
 
 %prep
 %setup -q
-%patch0 -p1
 
 %build
 %configure
@@ -95,6 +91,18 @@ rm -rf $RPM_BUILD_ROOT
 rm -f $RPM_BUILD_ROOT/%{_bindir}/yacc
 rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/yacc*
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/calc++/*
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/mfcalc/*
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/rpcalc/*
+# These files are duplicated in bison and bison-{version}.
+# Remove the duplicates
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/AUTHORS
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/ChangeLog
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/NEWS
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/README
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/THANKS
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/TODO
+rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/COPYING
 
 %find_lang %{name}
 %find_lang %{name}-runtime
@@ -136,6 +144,12 @@ fi
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Fri Jan 20 2017 Patsy Franklin <pfrankli@redhat.com> - 3.0.4-1
+- Rebase to 3.0.4
+  - Removed obsolete patch.
+  - Added build require of flex so that tests will run.
+  - Removed duplicate/unpackaged files.
+
 * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 2.7-4
 - Mass rebuild 2014-01-24
 
@@ -345,7 +359,7 @@ rm -rf $RPM_BUILD_ROOT
 * Wed Jan 09 2002 Tim Powers <timp@redhat.com>
 - automated rebuild
 
-* Mon Nov 27 2001 Than Ngo <than@redhat.com> 1.30-4
+* Tue Nov 27 2001 Than Ngo <than@redhat.com> 1.30-4
 - add missing Url
 
 * Sun Nov 25 2001 Than Ngo <than@redhat.com> 1.30-3