diff --git a/.cvsignore b/.cvsignore index e69de29..2da4d24 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1,5 @@ +.build*.log +*.rpm +i386 +x86_64 +lloyd-yajl-45a1bdb.tar.gz diff --git a/lloyd-yajl-lib64.patch b/lloyd-yajl-lib64.patch new file mode 100644 index 0000000..9e6b887 --- /dev/null +++ b/lloyd-yajl-lib64.patch @@ -0,0 +1,23 @@ +diff -rup lloyd-yajl-45a1bdb.orig/src/CMakeLists.txt lloyd-yajl-45a1bdb.new/src/CMakeLists.txt +--- lloyd-yajl-45a1bdb.orig/src/CMakeLists.txt 2009-10-29 23:35:39.000000000 +0000 ++++ lloyd-yajl-45a1bdb.new/src/CMakeLists.txt 2009-12-07 17:20:20.000000000 +0000 +@@ -37,7 +37,7 @@ SET (PUB_HDRS api/yajl_parse.h api/yajl_ + #ADD_DEFINITIONS(-DYAJL_LEXER_DEBUG) + + # set up some paths +-SET (libDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib) ++SET (libDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/${LIB_INSTALL_DIR}) + SET (incDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/include/yajl) + + # set the output path for libraries +@@ -71,8 +71,8 @@ ENDFOREACH (header ${PUB_HDRS}) + INCLUDE_DIRECTORIES(${incDir}/..) + + IF(NOT WIN32) +- INSTALL(TARGETS yajl LIBRARY DESTINATION lib) +- INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib) ++ INSTALL(TARGETS yajl LIBRARY DESTINATION ${LIB_INSTALL_DIR}) ++ INSTALL(TARGETS yajl_s ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + INSTALL(DIRECTORY api/ DESTINATION include/yajl + FILES_MATCHING PATTERN "*.h") + ENDIF() diff --git a/sources b/sources index e69de29..57397d3 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +3b6551d07d493817f87624fa73dc7d5e lloyd-yajl-45a1bdb.tar.gz diff --git a/yajl.spec b/yajl.spec new file mode 100644 index 0000000..f226743 --- /dev/null +++ b/yajl.spec @@ -0,0 +1,111 @@ +Name: yajl +Version: 1.0.7 +Release: 2%{?dist} +Summary: Yet Another JSON Library (YAJL) + +Group: Development/Libraries +License: BSD +URL: http://lloyd.github.com/yajl/ + +# +# NB, upstream does not provide pre-built tar.gz downloads. Instead +# they make you use the 'on the fly' generated tar.gz from GITHub's +# web interface +# +# The Source0 for any version is obtained by a URL +# +# http://github.com/lloyd/yajl/tarball/1.0.7 +# +# Which causes a download of a archive named after +# the GIT hash corresponding to the version tag +# +# eg lloyd-yajl-45a1bdb.tar.gz +# +# NB even though the tar.gz is generated on the fly by GITHub it +# will always have identical md5sum +# +# So for new versions, update 'githash' to match the hash of the +# GIT tag associated with updated 'Version:' field just above +%global githash 45a1bdb +Source0: lloyd-%{name}-%{githash}.tar.gz +Patch1: lloyd-%{name}-lib64.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: cmake + +%package devel +Summary: Libraries, includes, etc to develop with YAJL +Requires: %{name} = %{version}-%{release} + +%description +Yet Another JSON Library. YAJL is a small event-driven +(SAX-style) JSON parser written in ANSI C, and a small +validating JSON generator. + +%description devel +Yet Another JSON Library. YAJL is a small event-driven +(SAX-style) JSON parser written in ANSI C, and a small +validating JSON generator. + +This sub-package provides the libraries and includes +necessary for developing against the YAJL library + +%prep +%setup -q -n lloyd-%{name}-%{githash} +# Fix lib vs lib64 problems +%patch1 -p1 + +%build +# NB, we are not using upstream's 'configure'/'make' +# wrapper, instead we use cmake directly to better +# align with Fedora standards +mkdir build +cd build +%cmake .. +make VERBOSE=1 %{?_smp_mflags} + + +%install +rm -rf $RPM_BUILD_ROOT +cd build +make install DESTDIR=$RPM_BUILD_ROOT + +# No static libraries +rm -f $RPM_BUILD_ROOT%{_libdir}/libyajl_s.a + + +%check +cd test +./run_tests.sh + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc COPYING ChangeLog README TODO +%{_bindir}/json_reformat +%{_bindir}/json_verify +%{_libdir}/libyajl.so.1 +%{_libdir}/libyajl.so.1.0.7 + +%files devel +%defattr(-,root,root,-) +%doc COPYING +%dir %{_includedir}/yajl +%{_includedir}/yajl/yajl_common.h +%{_includedir}/yajl/yajl_gen.h +%{_includedir}/yajl/yajl_parse.h +%{_libdir}/libyajl.so + + +%changelog +* Tue Dec 8 2009 Daniel P. Berrange - 1.0.7-2 +- Change use of 'define' to 'global' + +* Mon Dec 7 2009 Daniel P. Berrange - 1.0.7-1 +- Initial Fedora package