Nmap Development mailing list archives

Nmap Source Code Evolution...


From: "Luis MartinGarcia." <luis.mgarc () gmail com>
Date: Sun, 14 Oct 2012 22:28:33 +0200

Hi all,

Today I've been working on a couple of things that show the evolution of
Nmap's source code over the years. The most interesting one is this video:

  http://youtu.be/7rlF1MSAbXk (YouTube version)
  http://recursos.aldabaknocking.com/nmap_video/nmap_evolution.mpg 
(high res file for direct download)

The other thing is a report in HTML format:

  http://recursos.aldabaknocking.com/nmap_stats/

Here's some info about how I made it:

VIDEO:

The animation is done using the gource tool. It is based on the entire
SVN repo. At first I did it only against the nmap dir, but then I
realized that,  that way, only bugfixes and merges are shown, missing
all commits people do on their nmap-exp branches.

Note that the data is only from 2005 until now. For some reason, the SVN
repo does not contain proper commit information until 2005.

Here's the process I followed:

- Get gource v0.38 from: http://code.google.com/p/gource/

- Install gource:
  - Dependencies:    
    - SDL 1.2 (libsdl1.2-dev)
    - SDL Image 1.2 (libsdl-image1.2-dev)
    - PCRE3 (libpcre3-dev)
    - Freetype 2 (libfreetype6-dev)
    - GLEW (libglew-dev)
    - GLM (libglm-dev) >= 0.9.3
    - Boost Filesystem >= 1.46 (libboost-filesystem-dev)
    - In a Debian-based system:
      - sudo apt-get install libsdl1.2-dev  libsdl-image1.2-dev
libpcre3-dev libfreetype6-dev libglew1.6-dev libglm-dev
libboost-filesystem-dev
  - I modified a few of the images that gource uses by default (dir
gource-0.38/data)
    - Changed the default circles that represent files with small squares
    - Changed the user image with this one:
      - http://en.opensuse.org/images/0/0b/Icon-user.png
    - Changed default font to "Ubuntu Mono Regular"
      - http://font.ubuntu.com/
      - Replacing the FreeSans.ttf included in gource.
  - In the gource source dir: ./configure && make && sudo make install

- Clone the SVN repo with git:
  - git svn clone https://svn.nmap.org
  - Takes a long time...

- Extract logs from the git repo:
  - Gource can work directly against the git dir but it errored out for
the whole nmap
    repo. It works if you only checkout part of it, like nmap-exp. So
for it to work
    on the whole thing I had to generate the log manually:
  - git log --reverse --raw --pretty=raw > nmap_log.txt

- Do the magic:
  - gource --viewport 1024x768 --max-files 99999 -disable-progress
-stop-at-end -s 0.15 -user-scale 2 -highlight-all-users
-background-colour 000000 --elasticity 0.001 --output-ppm-stream -
--output-framerate 60 nmap_log.txt |  avconv -y -r 60 -f image2pipe
-vcodec ppm -i - -b 16484K nmap.mp4

- Install kdenlive
  - sudo apt-get install kdenlive

- Edit the video with kdenlive, adding the intro, the credits, and the
soundtrack.

- Re-encode the video with kdenlive.

- Done!

STATS:

For this I simply used gitstats.

 - sudo apt-get install gitstats
 - gitstats svn.nmap.org/ nmap_stats/

Best regards,

Luis MartinGarcia.



_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://seclists.org/nmap-dev/


Current thread: