diff --git a/.cscope.metadata b/.cscope.metadata new file mode 100644 index 0000000..dfd7fc7 --- /dev/null +++ b/.cscope.metadata @@ -0,0 +1 @@ +cd107a6c6d0700f49b528bbf7b9a43b644dd9494 SOURCES/cscope-15.8.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3028c36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/cscope-15.8.tar.bz2 diff --git a/SOURCES/cscope-15.8-init-function-array-to-unknown.patch b/SOURCES/cscope-15.8-init-function-array-to-unknown.patch new file mode 100644 index 0000000..6c46309 --- /dev/null +++ b/SOURCES/cscope-15.8-init-function-array-to-unknown.patch @@ -0,0 +1,14 @@ +diff -up ./src/find.c.nullfix ./src/find.c +--- ./src/find.c.nullfix 2012-06-15 07:18:11.000000000 -0400 ++++ ./src/find.c 2016-02-11 14:19:45.409675762 -0500 +@@ -1201,7 +1201,9 @@ getposting(void) + static void + putpostingref(POSTING *p, char *pat) + { +- static char function[PATLEN + 1]; /* function name */ ++ // initialize function to "unknown" so that the first line of temp1 ++ // is properly formed if symbol matches a header file entry first time ++ static char function[PATLEN + 1] = "unknown";/* function name */ + + if (p->fcnoffset == 0) { + if (p->type == FCNDEF) { /* need to find the function name */ diff --git a/SOURCES/cscope-invindex-sizing.patch b/SOURCES/cscope-invindex-sizing.patch new file mode 100644 index 0000000..b84aed2 --- /dev/null +++ b/SOURCES/cscope-invindex-sizing.patch @@ -0,0 +1,45 @@ +diff -u -r1.20 invlib.c +--- src/invlib.c 12 Mar 2012 17:57:55 -0000 1.20 ++++ src/invlib.c 10 Jul 2012 19:57:51 -0000 +@@ -169,8 +169,8 @@ + numpost = 1; + + /* set up as though a block had come and gone, i.e., set up for new block */ +- /* FIXME HBB: magic number alert (16) */ +- amtused = 16; /* leave no space - init 3 words + one for luck */ ++ /* 3 longs needed for: numinvitems, next block, and previous block */ ++ amtused = 3 * sizeof(long); + numinvitems = 0; + numlogblk = 0; + lastinblk = sizeof(t_logicalblk); +@@ -371,8 +371,10 @@ + zipf[0]++; + #endif + len = strlen(thisterm); ++ /* length of term rounded up to long boundary */ + wdlen = (len + (sizeof(long) - 1)) / sizeof(long); +- /* HBB FIXME 20060419: magic number: 3 */ ++ /* each term needs 2 longs for its iteminfo and ++ * 1 long for its offset */ + numwilluse = (wdlen + 3) * sizeof(long); + /* new block if at least 1 item in block */ + if (numinvitems && numwilluse + amtused > sizeof(t_logicalblk)) { +@@ -435,7 +437,8 @@ + invcannotwrite(indexfile); + return(0); + } +- amtused = 16; ++ /* 3 longs needed for: numinvitems, next block, and previous block */ ++ amtused = 3 * sizeof(long); + numlogblk++; + /* check if had to back up, if so do it */ + if (backupflag) { +@@ -468,7 +471,7 @@ + while (tptr3 > tptr) + *--tptr2 = *--tptr3; + lastinblk -= j; +- amtused += (8 * backupflag + j); ++ amtused += ((2 * sizeof(long)) * backupflag + j); + for (i = 3; i < (backupflag * 2 + 2); i += 2) { + iteminfo.packword[0] = logicalblk.invblk[i]; + iteminfo.e.offset += (tptr2 - tptr3); diff --git a/SOURCES/cscope-version.patch b/SOURCES/cscope-version.patch new file mode 100644 index 0000000..d9f3b49 --- /dev/null +++ b/SOURCES/cscope-version.patch @@ -0,0 +1,11 @@ +diff -up ./src/version.h.update ./src/version.h +--- ./src/version.h.update 2016-02-17 15:38:30.464094042 -0500 ++++ ./src/version.h 2016-02-17 15:38:38.235314016 -0500 +@@ -42,6 +42,6 @@ + #define CSCOPE_VERSION_H + + #define FILEVERSION 15 /* Initial Open Source and Linux Port */ +-#define FIXVERSION ".7a" /* feature and bug fix version */ ++#define FIXVERSION ".8" /* feature and bug fix version */ + + #endif /* CSCOPE_VERSION_H */ diff --git a/SPECS/cscope.spec b/SPECS/cscope.spec new file mode 100644 index 0000000..2c06351 --- /dev/null +++ b/SPECS/cscope.spec @@ -0,0 +1,229 @@ +Summary: C source code tree search and browse tool +Name: cscope +Version: 15.8 +Release: 10%{?dist} +Source0: https://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{version}.tar.bz2 +URL: http://cscope.sourceforge.net +License: BSD and GPLv2+ +Group: Development/Tools +BuildRoot: %{_tmppath}/%{name}-%{version} +BuildRequires: pkgconfig ncurses-devel flex bison m4 +Requires: emacs-filesystem + +%define cscope_share_path %{_datadir}/cscope +%define emacs_lisp_path %{_datadir}/emacs/site-lisp +%define vim_plugin_path %{_datadir}/vim/vimfiles/plugin + +Patch0: cscope-invindex-sizing.patch +Patch1: cscope-15.8-init-function-array-to-unknown.patch +Patch2: cscope-version.patch + +%description +cscope is a mature, ncurses based, C source code tree browsing tool. It +allows users to search large source code bases for variables, functions, +macros, etc, as well as perform general regex and plain text searches. +Results are returned in lists, from which the user can select individual +matches for use in file editing. + +%prep +%setup -q +%patch0 -p0 +%patch1 -p1 +%patch2 -p1 -z .update + +%build +%configure +make + +%install +rm -rf $RPM_BUILD_ROOT %{name}-%{version}.files +make DESTDIR=$RPM_BUILD_ROOT install +mkdir -p $RPM_BUILD_ROOT/var/lib/cs +mkdir -p $RPM_BUILD_ROOT%{cscope_share_path} +cp -a contrib/xcscope/xcscope.el $RPM_BUILD_ROOT%{cscope_share_path} +cp -a contrib/xcscope/cscope-indexer $RPM_BUILD_ROOT%{_bindir} +cp -a contrib/cctree.vim $RPM_BUILD_ROOT%{cscope_share_path} +for dir in %{emacs_lisp_path} ; do + mkdir -p $RPM_BUILD_ROOT$dir + ln -s %{cscope_share_path}/xcscope.el $RPM_BUILD_ROOT$dir + touch $RPM_BUILD_ROOT$dir/xcscope.elc + echo "%ghost $dir/xcscope.el*" >> %{name}-%{version}.files +done + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -f %{name}-%{version}.files +%defattr(-,root,root,-) +%{_bindir}/* +%dir %{cscope_share_path} +%{cscope_share_path}/ +%{_mandir}/man1/* +%dir /var/lib/cs +%doc AUTHORS COPYING ChangeLog README TODO contrib/cctree.txt + +%triggerin -- emacs, emacs-nox +ln -sf %{cscope_share_path}/xcscope.el %{emacs_lisp_path}/xcscope.el + +%triggerin -- vim-filesystem +ln -sf %{cscope_share_path}/cctree.vim %{vim_plugin_path}/cctree.vim + +%triggerun -- emacs, emacs-nox +[ $2 -gt 0 ] && exit 0 +rm -f %{emacs_lisp_path}/xcscope.el + +%triggerun -- vim-filesystem +[ $2 -gt 0 ] && exit 0 +rm -f %{vim_plugin_path}/cctree.vim + +%changelog +* Wed Jun 07 2017 Neil Horman - 15.8-10 +- Add emacs-nox to triggin install/uninstall (bz 1412326) + +* Wed Feb 17 2016 Neil Horman - 15.8-9 +- Resolves bz 1057132) + +* Thu Feb 11 2016 Neil Horman - 15.8-8 +- Resolves bz 1124571 + +* Fri Jan 24 2014 Daniel Mach - 15.8-7 +- Mass rebuild 2014-01-24 + +* Tue Jan 07 2014 Neil Horman - 15.8-6 +- Remove xemacs-filesystem as a dep (bz 1049179) + +* Fri Dec 27 2013 Daniel Mach - 15.8-5 +- Mass rebuild 2013-12-27 + +* Wed Feb 13 2013 Fedora Release Engineering - 15.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 15.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 10 2012 Neil Horman - 15.8-2 +- Fix inverted index sizing + +* Mon Jun 18 2012 Neil Horman - 15.8 +- Update to latest upstream + +* Mon Mar 12 2012 Neil Horman -15.7a-10 +- Fixed a segfault in invlib construction ( bz 786523) + +* Mon Mar 05 2012 Neil Horman 15.7a-9 +- Fixed a segfault in the symbol assignment search (bz 799643) + +* Fri Jan 13 2012 Fedora Release Engineering - 15.7a-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Jun 30 2011 Neil Horman - 15.7a-7 +- Added LEXERR token to catch bad parsing before we crash (bz717545) + +* Fri Jun 24 2011 Neil Horman - 15.7a-6 +- Fixed licensing for xcscope.el (bz 715898) +- Fixed xemacs pkg. dependency (bz 719523) + +* Wed Jun 01 2011 Neil Horman - 15.7a-5 +- Fix scriptles macro expansion (bz 708499) + +* Thu May 26 2011 Neil Horman - 15.7a-4 +- Added cctree.vim vi plugin + +* Tue Feb 08 2011 Fedora Release Engineering - 15.7a-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Sep 30 2010 Neil Horman - 15.7a-1 +- Update to latest upstream release (bz 569043) + +* Fri Jul 24 2009 Fedora Release Engineering - 15.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jun 12 2009 Neil Horman +- Fix some buffer overflows (bz 505605) + +* Tue Feb 24 2009 Fedora Release Engineering - 15.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Tue Jul 08 2008 Neil Horman -15.6-2.dist +- Grab upstream patch for -q rebuld (bz 436648) + +* Fri Mar 25 2007 Neil Horman -15.6-1.dist +- Rebase to version 15.6 + +* Mon Mar 05 2007 Neil Horman -15.5-15.4.dist +- Make sigwinch handler only register for curses mode (bz 230862) + +* Mon Feb 05 2007 Neil Horman -15.5-15.3.dist +- Fixing dist label in release tag. + +* Thu Feb 01 2007 Neil Horman -15.5-15.2.dist +- Fixing changelog to not have macro in release + +* Wed Aug 23 2006 Neil Horman -15.5-15.1 +- fixed overflows per bz 203651 +- start using {dist} tag to make release numbering easier + +* Mon Jul 17 2006 Jesse Keating - 15.5-14 +- rebuild + +* Fri Jun 23 2006 Neil Horman +- Fix putstring overflow (bz 189666) + +* Fri Jun 23 2006 Neil Horman +- Fix putstring overflow (bz 189666) + +* Fri May 5 2006 Neil Horman +- Adding fix to put SYSDIR in right location (bz190580) + +* Fri Apr 21 2006 Neil Horman - 15.5-13.4 +- adding inverted index overflow patch + +* Fri Feb 10 2006 Jesse Keating - 15.5-13.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 15.5-13.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 16 2005 Jesse Keating +- rebuild on new gcc + +* Tue Nov 30 2004 Neil Horman +- added tempsec patch to fix bz140764/140765 + +* Mon Nov 29 2004 Neil Horman +- updated cscope resize patch to do less work in + signal handler and synced version nr. on dist. + +* Mon Nov 22 2004 Neil Horman +- added cscope-1.5.-resize patch to allow terminal + resizing while cscope is running + +* Tue Oct 5 2004 Neil Horman +- modified cscope-15.5.-inverted patch to be upstream + friendly + +* Tue Sep 28 2004 Neil Horman +- fixed inverted index bug (bz 133942) + +* Mon Sep 13 2004 Frank Ch. Eigler +- bumped release number to a plain "1" + +* Fri Jul 16 2004 Neil Horman +- Added cscope-indexer helper and xcscope lisp addon +- Added man page for xcscope +- Added triggers to add xcscope.el pkg to (x)emacs +- Thanks to Ville, Michael and Jens for thier help :) + +* Fri Jul 2 2004 Neil Horman +- Added upstream ocs fix +- Added feature to find symbol assignments +- Changed default SYSDIR directory to /var/lib/cs +- Incoproated M. Schwendt's fix for ocs -s + +* Fri Jun 18 2004 Neil Horman +- built the package