Winter 2010 Posters/GCC4.5 Packaging/ViewSource Packaging

From CDOT Wiki
Revision as of 22:51, 16 April 2010 by JonathanDeni (talk | contribs) (Description of work + goals)
Jump to: navigation, search

Project Name

DXR Project


Jonathan Deni & Boris Chao

Description of work + goals

  • Goal

Our Primary Goal and Focus was to package the DXR 'viewsource' web application tool and dependencies, (Dehydra and Jshydra), as a first step towards packaging the full DXR system for wide, reliable distribution. DXR contains components such as Dehydra, Jshydra, Viewsource, and a Modified GCC compiler. DXR was originally created by David Humphrey as an experiment. This experiment was designed to use static analysis data from mozilla's static analysis tools (Dehydra and Jshydra) in terms of source code cross-reference. We had to essentially build each of these packages from scratch in an attempt to put it all together and hopefully have it placed in the next Fedora 13/14 distribution.

  • Definition of Packaging

Packaging is defined as the process of archiving files together along with information about the package, like its current version, a description of what the package is meant to do, etc. Packages are deployed in order to solve a software issue or resolve a package dependency. New version of packages are constantly coming out with new features, patches, and fixes that improve upon the last. Packages are what make up any Linux system and as such are a very fundamental part of any open source project. However, packaging is not limited to only open source projects, mainframe software, Windows software, etc. are all packaged.

Packages are all grouped together in what are called "Package Repositories" developed and maintained by "Repo Masters". This is where the packages come from when you "yum install" any package off your machine. The DXR repository is located on scotland and can be accessed through the web browser - DXR

  • Dehydra

Dehydra is a static analysis tool able to analyze application specif C++ codes. Dehydra can be compared to as a searching tool as well. It is able to display a vast amount of information consisely using Javascripts. This tool is able to help fromo bugs in source codes, which is provides more error checking than C++ is able to by itself. Dehydra is a plugin for GCC, which make it easy to use for projects that supports GCC.

  • JSHyrda

JSHydra is static tool that is able to analyze general JavaScript Code. It was formed with the concept of previous tools Dehydra and Treehydra, which performs C++ code analysis. The backend of this tool, breaks down the Javascript code using a SpiderMonkey Engine. The breakdown of the codes are executed by running Javascripts.

  • Viewsource

Viewsource is a web-based interface to Mozilla's static analysis tools, Dehydra and JShydra. Dehydra is used to analyze C/C++ source code and JShydra is used to analyze JavaScript. Essentially you would take source code and place it into the textbox provided in the web application and select either the JShydra or Dehydra button and view the output.

  • GCC (GNU Compiler Collection)

GCC is a compilation of compilers, and was originally written for the GNU operating system. Here is a list of front end compilers in its collection: C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages.

Results + What we’ve accomplished

  • Viewsource

Viewsource was built and has been deployed on one of the CDOT machine’s, everything was ready and waiting for Dehydra + Jshydra.

(Viewsource Screenshot)

Both Dehydra and Jshydra where built and finished with no errors that we knew of, although the true test would be when we incorporate GCC with it. So far Viewsource and Dehydra are ready for fedora review while Jshydra still has to be prepared.

  • Dehydra

Our challenge in building Dehydra is there are no prior package release of this tool as we are the first ones to create it, so we had nothing to refer to and check if we are doing everything correctly.

Our solution was to follow the installation guide off the Mozilla Dehydra site, and built a spec file around it. During the process I have encountered lots of small errors, with the help and reviewing Fedoras Packaging outline, we were able to overcome these obstacles. Most of these errors are related to where I install the files at the end of the installation.

At the end, we were able to build the Dehydra package. We created two packages one for the x86-64 architecture and one for the i386 architecture. At this current stage and time we are unable to test out the package to see if it works. We are waiting for our other project (GCC Packaging) to complete in order to test it as they go hand in hand. We have placed our packages in our repo and can be accessed at any time.

(Dehydra Screenshot 64 + 32 bit)

  • GCC –

(build-failure-64bit.png) + (build-failure-32bit.png)

Summary and set of conclusions

All of the other fundamental components are built however our project's completion process is still being impeded due to GCC. Once GCC is finished it will be tested with the other components and then GCC and jshydra will be prepped according to the fedora review guidelines and we will have our DXR complete.

Acknowledgements and Links


  • Fedora
  • Seneca
  • gcc
  • Mozzila


All pictures can be found here