Created
July 16, 2012 08:03
-
-
Save liweinan/3121454 to your computer and use it in GitHub Desktop.
Frequent errors in RPMs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(Written by David) | |
I just fixed apache-commons-digester which yyang imported from Fedora | |
today (according to the %changelog). This at least gives me an | |
opportunity to discuss what I fixed. | |
Some are really minor and some are crucial. I tried to list absolutely | |
every change. The most important changes were making the maven support | |
work again and fixing the backwards compatibility with the jakarta packages. | |
1.) Removed the mead macro since there was no non-mead code in the .spec. | |
2.) Reset spaces to standard 8 (they were at 7). | |
3.) Removed 'Requires: java' (I am not sure if this one is right, | |
fnasser was just telling me we need it in the products, but is it needed | |
in every package?). | |
4.) Added Epoch to be compatible with older packages (because the | |
Provides/Obsoletes won't have an Epoch either unless added explicitly). | |
5.) Changed Group Development/Libraries -> Development/Java | |
6.) Added BuildRoot definition | |
7.) Fixed Obsoletes without Provides in javadoc package | |
8.) Added `rm -rf %{buildroot}' in %install | |
9.) Added compat jakarta-%{short_name} jar symlinks, both versioned and | |
unversioned. Remember that this was Provided, but a jar symlink was not | |
present for it (fixes backwards compat). | |
10.) Fixed bad javadoc symlinks, one which was even trying to link onto | |
itself (fixes javadoc backwards compat). | |
11.) Added %clean section. | |
12.) Added %post/%postun %update_maven_depmap and Requires(post,postun): | |
jpackage-utils (fixes maven-support). | |
13.) Added %files %defattr. | |
14.) Removed wildcards from file list, made list more explicit. | |
15.) Added newline at end of file (not sure what editor it was that did | |
not do this, but mine adds automatically). | |
--- | |
diff --git a/apache-commons-digester.spec b/apache-commons-digester.spec | |
index 0083669..ec80db8 100644 | |
--- a/apache-commons-digester.spec | |
+++ b/apache-commons-digester.spec | |
@@ -1,35 +1,30 @@ | |
%bcond_without mead | |
-%if %with mead | |
-%bcond_with repolib | |
-%else | |
-%bcond_without repoliba | |
-%endif | |
- | |
%global base_name digester | |
%global short_name commons-%{base_name} | |
-%define reltag _redhat_1 | |
+%define reltag .redhat_1 | |
%define namedreltag -redhat-1 | |
%global namedversion %{version}%{?namedreltag} | |
-Name: apache-%{short_name} | |
-Version: 1.8.1 | |
-Release: 11%{?dist} | |
-Summary: XML to Java object mapping module | |
-Group: Development/Libraries | |
-License: ASL 2.0 | |
-URL: http://commons.apache.org/%{base_name}/ | |
- | |
-BuildArch: noarch | |
- | |
-Requires: java | |
-Requires: jpackage-utils | |
-Requires: apache-commons-beanutils >= 1.8 | |
-Requires: apache-commons-logging >= 1.1.1 | |
- | |
-Provides: jakarta-%{short_name} = %{version}-%{release} | |
-Obsoletes: jakarta-%{short_name} < %{version}-%{release} | |
+Name: apache-%{short_name} | |
+Version: 1.8.1 | |
+Release: 13%{?reltag}%{?dist} | |
+Epoch: 0 | |
+Summary: XML to Java object mapping module | |
+Group: Development/Java | |
+License: ASL 2.0 | |
+URL: http://commons.apache.org/%{base_name}/ | |
+Obsoletes: jakarta-%{short_name} < %{epoch}:%{version}-%{release} | |
+Provides: jakarta-%{short_name} = %{epoch}:%{version}-%{release} | |
+Provides: %{short_name} = %{epoch}:%{version}-%{release} | |
+Requires(post): jpackage-utils | |
+Requires(postun): jpackage-utils | |
+Requires: jpackage-utils | |
+Requires: commons-beanutils >= 0:1.8.0 | |
+Requires: commons-logging >= 0:1.1.1 | |
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root | |
+BuildArch: noarch | |
%description | |
Many projects read XML configuration files to provide initialization of | |
@@ -38,40 +33,60 @@ and the Digester component was designed to provide a common implementation | |
that can be used in many different projects | |
%package javadoc | |
-Summary: API documentation for %{name} | |
-Group: Documentation | |
-Requires: jpackage-utils | |
-Obsoletes: jakarta-%{short_name}-javadoc < %{version}-%{release} | |
+Summary: API documentation for %{short_name} | |
+Group: Documentation | |
+Obsoletes: jakarta-%{short_name}-javadoc < %{epoch}:%{version}-%{release} | |
+Provides: jakarta-%{short_name}-javadoc = %{epoch}:%{version}-%{release} | |
+Requires: jpackage-utils | |
%description javadoc | |
-%{summary}. | |
+API documentation for %{short_name}. | |
%prep | |
%build | |
%install | |
+%{__rm} -rf %{buildroot} | |
+ | |
# jars | |
-install -pD -T %{_sourcedir}/%{short_name}-%{namedversion}.jar %{buildroot}%{_javadir}/%{short_name}-%{namedversion}.jar | |
-ln -s %{short_name}-%{namedversion}.jar %{buildroot}/%{_javadir}/%{name}.jar | |
+%{__mkdir_p} %{buildroot}%{_javadir} | |
+%{__cp} -p %{_sourcedir}/%{short_name}-%{namedversion}.jar %{buildroot}%{_javadir}/%{short_name}-%{namedversion}.jar | |
+%{__ln_s} %{short_name}-%{namedversion}.jar %{buildroot}%{_javadir}/%{short_name}.jar | |
+%{__ln_s} %{short_name}-%{namedversion}.jar %{buildroot}%{_javadir}/jakarta-%{short_name}-%{namedversion}.jar | |
+%{__ln_s} jakarta-%{short_name}-%{namedversion}.jar %{buildroot}%{_javadir}/jakarta-%{short_name}.jar | |
# javadocs | |
install -d -m 755 %{buildroot}%{_javadocdir}/%{name} | |
-%{__unzip} -qq %{_sourcedir}/%{short_name}-%{namedversion}-javadoc.jar -d $RPM_BUILD_ROOT%{_javadocdir}/%{short_name}-%{namedversion}/ | |
-%{__rm} -r $RPM_BUILD_ROOT%{_javadocdir}/%{short_name}-%{namedversion}/META-INF | |
+%{__unzip} -qq %{_sourcedir}/%{short_name}-%{namedversion}-javadoc.jar -d %{buildroot}%{_javadocdir}/%{short_name}-%{namedversion}/ | |
+%{__rm} -r %{buildroot}%{_javadocdir}/%{short_name}-%{namedversion}/META-INF | |
%{__ln_s} %{short_name}-%{namedversion} %{buildroot}%{_javadocdir}/%{short_name} | |
-%{__ln_s} %{short_name}-%{namedversion} %{buildroot}%{_javadocdir}/jakarta-%{short_name} | |
-%{__ln_s} jakarta-%{short_name}-%{namedversion} %{buildroot}%{_javadocdir}/jakarta-%{short_name}-%{namedversion} | |
+%{__ln_s} %{short_name}-%{namedversion} %{buildroot}%{_javadocdir}/jakarta-%{short_name}-%{namedversion} | |
+%{__ln_s} jakarta-%{short_name}-%{namedversion} %{buildroot}%{_javadocdir}/jakarta-%{short_name} | |
# pom | |
-install -pD -T -m 644 %{_sourcedir}/%{short_name}-%{namedversion}.pom %{buildroot}%{_mavenpomdir}/JPP-%{short_name}.pom | |
+%{__mkdir_p} %{buildroot}%{_mavenpomdir} | |
+%{__cp} -p %{_sourcedir}/%{short_name}-%{namedversion}.pom %{buildroot}%{_mavenpomdir}/JPP-%{short_name}.pom | |
%add_to_maven_depmap commons-digester commons-digester %{namedversion} JPP %{short_name} | |
[ -f %{buildroot}%{_mavendepmapfragdir}/%{short_name} ] || %{__mv} %{buildroot}%{_mavendepmapfragdir}/%{name} %{buildroot}%{_mavendepmapfragdir}/%{short_name} | |
+%clean | |
+%{__rm} -rf %{buildroot} | |
+ | |
+%post | |
+%update_maven_depmap | |
+ | |
+%postun | |
+%update_maven_depmap | |
+ | |
%files | |
-%{_mavendepmapfragdir}/* | |
-%{_mavenpomdir}/* | |
-%{_javadir}*/* | |
+%defattr(0644,root,root,0755) | |
+%{_javadir}*/%{short_name}-%{namedversion}.jar | |
+%{_javadir}*/%{short_name}.jar | |
+%{_javadir}*/jakarta-%{short_name}-%{namedversion}.jar | |
+%{_javadir}*/jakarta-%{short_name}.jar | |
+%{_mavenpomdir}/JPP-%{short_name}.pom | |
+%{_mavendepmapfragdir}/%{short_name} | |
%files javadoc | |
%defattr(0644,root,root,0755) | |
@@ -80,7 +95,12 @@ install -pD -T -m 644 %{_sourcedir}/%{short_name}-%{namedversion}.pom %{buildroo | |
%{_javadocdir}/jakarta-%{short_name}-%{namedversion} | |
%{_javadocdir}/jakarta-%{short_name} | |
- | |
%changelog | |
+* Fri Jul 13 2012 David Walluck <dwalluck@redhat.com> 0:1.8.1-13 | |
+- fix Release tag | |
+ | |
+* Fri Jul 13 2012 David Walluck <dwalluck@redhat.com> 0:1.8.1-12 | |
+- fix broken .spec | |
+ | |
* Fri Jul 13 2012 Yong Yang <yyang@redhat.com> - 1.8.1-11 | |
-- Pure mead build | |
\ No newline at end of file | |
+- Pure mead build |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment