Insanely Awesome Web Interface for Your Git Repos

Almost 80-90 people visit How To: Install and Configure GitWeb everyday in search of setting up a web interface for their git repositories. Though gitweb is nice, it’s a bit painful to setup and the web interface is not that appealing. The other day I received this email from Klaus Silveira

Hello Kulbir,
I saw your article about installing Gitweb and i decided to send this shameless self-promotion. Maybe you could try my open-source project, GitList https://github.com/klaussilveira/gitlist

I’m looking for beta testers and supporters. FLOSS. :)

So, I thought I’ll just give it a try. Today, I got it working and was blown away by the amazing interface! It’s almost like a super simplified version of GitHub. I was so impressed that I immediately setup a demo website at git.gofedora.com for others to look at and fall in love :-)Another good thing about GitList is that it’s very simple to setup. Below is a step by step process to install and configure GitList to expose your public Git repositories to the internet.

What You Need?

You need the following packages before you can setup GitList.

Installing Required Packages

Most modern operating systems have the above mentioned packages installed by default. Even if you don’t have them already, you can use your OS package manager to install them quickly. To install on Fedora/RedHat/CentOS using yum, use the following command

[root@whitemagnet.com ~]$ yum install php git httpd

For Ubuntu/Debian, use the following command

[root@whitemagnet.com ~]$ apt-get install php git apache2

Assumptions

For setting up GitList, I am assuming the following directory paths and other variables.

  • Path to public Git repositories : /home/saini/code/public/
  • Path to Apache document root : /var/www/html/
  • Path to Git executable : /usr/bin/git (Use “which git” to find out for your OS)
  • Web URL for browsing git repos : mygit.example.com/gitlist/

Installing and Configuring GitList

Follow the following simple steps to install and configure GitList.

Step 1 : Clone GitList repository from GitHub to /var/www/html/gitlist/

[root@whitemagnet.com ~]$ cd /var/www/html/
[root@whitemagnet.com html]$ git clone git://github.com/klaussilveira/gitlist.git gitlist

Step 2 : Create cache directory and make it globally writable

[root@whitemagnet.com ~]$ cd gitlist
[root@whitemagnet.com gitlist]$ mkdir cache
[root@whitemagnet.com gitlist]$ chmod 777 cache

Step 3 : Configure GitList using config.ini

Open the config.ini (in gitlist directory) and set the option properly. Refer the sample shown below.

[git]
client = '/usr/bin/git' ; Your git executable path
repositories = '/home/saini/code/public/' ; Path to your repositories (with ending slash)
 
[app]
baseurl = 'http://mygit.exmaple.com/gitlist' ; Base URL of the application (without ending slash)

Step 4 : Make sure your Apache can read your .htaccess file in gitlist directory

GitList utilizes Apache’s mod_rewrite module to  provide nice URLs. Make sure your Apache is configured to read .htaccess from the gitlist directory. Open your Apache config file (generally located at /etc/httpd/conf/httpd.conf or /etc/apache2/ports.conf) and look for the following

<Directory "/var/www/html">

In this segment, make sure you have AllowOverride All as below.

<Directory "/var/www/html">
# Other lines omitted
AllowOverride All
# Other lines omitted
</Directory>

Step 5 : Reload or restart Apache daemon if needed

[root@whitemagnet.com ~]$ apachctl -k restart (or apache2ctl -k restart for Ubuntu/Debian)

Step 6 : Get some sample repositories in your public repo directory

Get some sample repositories in your public repo directory from GitHub.

[root@whitemagnet.com ~]$ cd /home/saini/code/public/
[root@whitemagnet.com ~]$ git clone git://github.com/kulbirsaini/intelligentmirror.git
[root@whitemagnet.com ~]$ git clone git://github.com/kulbirsaini/Railscasts-Sync.git
[root@whitemagnet.com ~]$ git clone git://github.com/zilkey/active_hash.git

That’s all! Now, go to http://mygit.example.com/gitlist to discover your public git repos via a cool web interface! Leave a comment if you face any issues.

 

News: ATI Catalyst Drivers 10.2 Released. No Fedora 12 Support.

After almost a month, ATI has come up with a new version 10.2 of its Catalyst (fglrx) drivers. The drivers can be download from ATI Catalyst™ 10.2 Proprietary Linux x86 Display Driver Page. As AMD is famous for doing nothing but just incrementing versions of there software, even this version doesn’t support xorg-1.7.4. But if you still want to give it a try, you can download and try installing the driver. Otherwise mesa-experimental drivers are your friend. Checkout the post Fedora 12 and ATI Drivers and save yourself from frustration :)

And yes, lets wait for next version of ATI Drivers :)

 

News : ATI Catalyst Drivers 10.1 Released. Test them now!

After a long, really long wait, AMD has released the next version 10.1 of its ATI Catalyst display drivers (fglrx) for Linux. The drivers can be download from ATI Catalyst™ 10.1 Proprietary Linux x86 Display Driver Page. As previous version turned out to be a big turn off for Fedora community and AMD took a long time for releasing this, I hope they have fixed issues regarding new Xorg version. Fedora folks will really want this version to work, otherwise there will be *blood* 😀 You have got AMD graphics card? What are you waiting for? Download the drivers immediately and test the damn thing! And please let everyone know whether it works for you with details of your graphics card. You know where the howto for installation is ;) How To: Install ATI Catalyst (fglrx) Drivers.

I really hope that things turn out well and you don’t really get to this point. But if these drivers don’t work for you, proceed to the post Fedora 12 ATI Catalyst Drivers and checkout mesa-dri-drivers-experimental.

From the release notes for version 10.1,

Resolved Issues

  • [ATI CatalystTM Control Center] Display Manager Properties tab now properly shows a single mode instead of multiple modes when big desktop mode is enabled.
  • The operating system will no longer fail when switching between virtual desktops.
  • [RHEL 5.4 32-bit] [ATI CatalystTM Control Center] System now functions properly after selecting “Detect Displays” button and hot-plugging a HDMI display.
  • [Ubunut 9.10] X no longer fails after executing multiple Xserver generations with Xinerama enabled.
  • Hotplugging a HDMI monitor or toggling between LCD and HDMI no longer causes the system to stop responding.

Know Issues

  • [RHEL4-U8 32-bit] Corruption may be observed while starting Xserver on some ASICs.
  • Corruption may be observed after 90, 180 or 270 degree desktop rotation on some ASICs.
  • System may stop responding after switching to DC (battery) mode with CrossFireTM enabled and full-screen applications running.
  • System may become unresponsive after executing specific combinations of XRandR reflections and rotations.
  • The output log file may report the Engine Clock or Memory Clock values as 0 MHz on some systems.
  • [RHEL 5.4][ ATI CatalystTM Control Center] Applying customized TV modes might not work properly, pop up message requesting restart will not appear and customized format will not apply.
  • [Ubuntu 9.04 x86 64-bit] Some systems may become unresponsive during video playback with certain Dual Head configurations.
  • [ATI CatalystTM Control Center] Specific customized modes under the HDTV page may fail to apply on some systems.
  • [Ubuntu 9.04] With one DP monitor and one DVI monitor connected in clone mode, unplugging and re-plugging the DVI monitor may cause the system to deadlock.
  • Xserver may fail to launch after enabling CrossFireTM and restarting on some ASICs.
  • [ATI CatalystTM Control Center] Super Anti-Aliasing (16x) mode may not be available on some display adapters with CrossFireTM is enabled.
  • Display rotation may fail to apply from ATI CatalystTM Control Center with desktop effects enabled.
  • [RHEL] Enabling Xinerama may cause input devices (keyboard and mouse) to become inaccessible after restarting Xserver.
  • System may fail to return to console mode after enabling all adapters and exiting Xserver for multi GPU configuration on some ASICs.
  • ATI CatalystTM Control Center may report error when two displays of different maximum resolutions are set in clone mode.
  • [SUSE 11.1 64-bit] Enabling CrossFireTM might fail with some ASICs
  • Scaling setting changes may fail to retain after mode change, reboot or restarting Xserver.
  • [SUSE 11.2 x86] CrossFireTM might not be functional under specific configurations
  • [Ubuntu 9.10] CAL test “completemodulelist.txt” might not execute and throws segmentation fault.
  • [ATI CatalystTM Control Center] Some systems may intermittently stop responding when changing the scaling options.
  • [ATI CatalystTM Control Center] Applying “Size and Position” adjustments for Analog Monitors might not work properly.
  • [Ubuntu 9.04] Some video cards may stop video output signals when monitor has been powered off.
  • [ATI CatalystTM Control Center] Disabled display will become enabled after Xserver restart.
  • Flickering corruption might be visible while running OpenGL applications with CrossFireTM enabled on specific ASICs.
 

News: Will ATI Catalyst Drivers 9.12 work with Fedora 12?

AMD has released the next version 9.12 of its ATI Catalyst display drivers for Linux. The drivers can be download from ATI Catalyst™ 9.12 Proprietary Linux x86 Display Driver Page. As of now, I haven’t tried the drivers on Fedora 12 because supposedly my SMPS is broken :( But since there were a whole lot of bug reports to AMD regarding xorg 1.7 and catalyst, they might have fixed it. Please try and let everyone know if these drivers work with Fedora 12. You know where the howto for installation is 😉 How To: Install ATI Catalyst (fglrx) Drivers.

Also, if these drivers doesn’t work, a lot of people are finding mesa-drivers-experimental a huge success over catalyst drivers. Don’t miss those experimental drivers. Checkout comments on Fedora 12 ATI Catalyst Drivers.

Anyway, let us know whatever works for you :)

 

Fedora 12 ATI Catalyst Drivers

I guess ATI graphics card owners are a bit unlucky! When Fedora 11 was released, we didn’t get the proprietary drivers from AMD for months and the older version didn’t work with default kernel at that time. When Fedora 12 was released, AMD released newer version of Drivers after a few hours. But this time, Xorg becomes a stumbling block and again the driver installation fails for a lot of people!

But Fedora 12 tries to make life a bit easier and may provide support for ATI cards. From Fedora 12 Announcement

Fedora 12 introduces experimental 3D support for AMD Radeon HD 2400 and later graphics cards. To try it out, install the mesa-dri-drivers-experimental package. On many cards, this support should allow desktop effects to be used.

What to do?

Step 1 : Try ATI Catalyst Drivers from AMD

Nobody, so far, has reported the successful installation of ATI Catalyst drivers on Fedora 12. But still if you want to give it a shot (because the uninstall is clean and doesn’t leave a trace of ATI drivers in your system), you can follow How To: Install ATI Catalyst (fglrx) Drivers. If it doesn’t work, just uninstall using the command given at the end of the post.

Step 2 : Try mesa-dri-drivers

Keep in mind that these are experimental drivers and may not work properly or may work partially.

Install the mesa-dri-drivers-experimental from Fedora repositories using Yum.

[root@fedora ~]# yum install mesa-dri-drivers-experimental

Reboot if the drivers are install successfully.

Let me know, if any of the above drivers work for you :)

 

News : Fedora 12 : Constantine Released [All you need to know]

Much awaited Fedora 12 : Constantine has been released and is available now! This post is more of a collection of things you need to know before you go all the way to download Fedora 12 and install or upgrade.

FAQs

Q. What is Fedora?
A. The Fedora Project page describes it in a short and nice way!

Q. I want to know everything about Fedora 12. Where do I find it?
A. You are probably asking for Fedora 12 Release Notes.

Q. Will it work on my machine?
A. What do you have? A server/desktop/laptop/netbook/xo/some-alien-hardware! It’ll work if your machine satisfies the hardware requirements.

Q. I have been using Fedora since long. What are the new features in Fedora 12?
A. Please browse Fedora 12 : Constantine Feature List page.

Q. Ok. I am convinced. From where can I download Fedora 12?
A. Nice! Please visit Download Page for download options. Checkout torrents or select mirror from Fedora mirrors.

Q. No. I don’t want that regular DVD. Do you have something different to offer?
A. Yup! Spins community is doing a wonderful job! Chose one from KDE, LXDE, XFCE, BrOffice, FEL, Games and Edu spins.

Q. I have downloaded the Fedora ISO. How do I install it?
A. There are different ways in which you can install Fedora on your system.

  1. If you don’t have CD/DVD drive, you can follow How To: Install Fedora without CD or DVD.
  2. You can install Fedora using a USB drive. Checkout LiveUSB creator.
  3. You can follow the traditional way. Install using CD/DVD.

Q. I already have Fedora installed on my system. Should I upgrade or re-install?
A. Browse Upgrading Your Current System page and find out yourself.

Q. I think I want to upgrade my Fedora 11 system to Fedora 12. How do I do it using Yum?
A. Learn how to do it from the Yum Guru himself Yum upgrading to fedora 12 from fedora 11 or browse this page on Fedora Docs.

Q. I have ATI graphics card. How do I install Catalyst Display Drivers?
A. Follow How To: Install ATI Catalyst (fglrx) Drivers.

Q. Hey, I am stuck! I need some help. Where should I ask?
A. There are different ways like Real Time Support via IRC, mailing lists, forums etc. in which you can get help on topics related to Fedora. Browse Get Help page to checkout different methods.

Q. I like this Fedora thing. Can I help?
A. There are several ways in which you can help Fedora Project. The simplest way is to help others! Other methods can be ‘Write Documentation’, ‘Design for Fedora’, ‘Spread the Word’ or ‘Write Code’ :) Checkout Join Fedora page.

 

News : ATI Drivers 9.10 Working with 2.6.30+ Kernels

AMD released the next version 9.10 of its ATI Catalyst display drivers for Linux nearly a fortnight ago. The drivers can be download from ATI Catalyst™ 9.9 Proprietary Linux x86 Display Driver Page. The good thing about this version is that a lot of people are reporting that they can get it working on 2.6.30+ kernels. These drivers are lifesaver for people want to keep everything upto date. The corruption around cursor is still present while watching videos or with compiz enabled.

Note1 : The installation process is same as version 9.8 and can be access at How To: Install ATI Catalyst (fglrx) 9.8 Drivers on Fedora 11.
Note2 : If you want to configure dual display follow How To: Configure Dual Display with ATI Radeon (fglrx).

 

How To: Configure Dual Display with ATI Radeon (fglrx)

As promised in my last post (News: ATI Catalyst Display Drivers 9.9 Released), I am back with a post on configuring dual display with ATI Radeon HD Graphics Card and proprietary catalyst (fglrx) drivers from ATI.

Hardware Used

Graphics Card: ATI Radeon HD 3200 (256MB, onboard)
Monitor 0: ViewSonic VG1930WM 1440×900 (19″ LCD, Connected via DVI port)
Monitor 1: Samsung SyncMaster 793S 1280×1024 (17″ CRT, Connected via VGA port)

Types of Dual Display

  • Mirror: Both screens have same content, identical refresh rate and resolution.
  • Clone: Both screens have same content but refresh rates and resolutions can be different.
  • Horizontal: Both screens can have different content, refresh rates and resolution. Screen 1 is left or right of Screen2.
  • Vertical: Same as horizontal. The only difference is that Screen1 is above or below Screen2.

In this post, we are interested in Horizontal setup with xinerama on. This way we can have two desktops allowing full screen modes on both of them and allowing us to drag and drop windows from one screen to the other.

Install ATI Drivers

If you don’t have ATI drivers installed already, follow this How To: Install ATI Catalyst (fglrx) Drivers on Fedora 11 (works for any version of ATI Catalyst drivers).

Generate xorg.conf file

If you don’t see the xorg.conf file at /etc/X11/xorg.conf, then you need to generate it to proceed to next step. Use the following command as root to generate one

[root@fedora ~]$ Xorg -configure

This command will generate the default xorg.conf file at /root/xorg.conf.new. Copy it to /etc/X11/xorg.conf.

[root@fedora ~]$ cp /root/xorg.conf.new /etc/X11/xorg.conf

Backup xorg.conf file

Backup your original xorg.conf file so that you can restore it in case the configuration doesn’t work the way you expected.

[root@fedora ~]$ cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Generate Configuration for Dual Display

Now we are ready to generate the configuration for dual display. Use the following command with appropriate arguments (in accordance with your hardware configuration)

# --screen-layout will place second screen on left of your first screen. Other possible values are right,above,below.
# --xinerama=on option enables you to have two different desktops and one of them being passive.
# You can drag and drop windows from one desktop to the other. Task bars appear only on one of the desktops.
[root@fedora ~]$ aticonfig --initial=dual-head --screen-layout=left --xinerama=on
# --resolution=_screen_number_,widthxheight
[root@fedora ~]$ aticonfig --resolution=0,1440x900 --resolution=1,1280x1024
# Set horizontal sync and vertical refresh rates for both monitors.
[root@fedora ~]$ aticonfig --hsync=0,30-60 --hsync=1,30-60 --vrefresh=0,30-60 --vrefresh=1,30-60

You can download my xorg.conf file via this link.

Reboot or Logout and Login Again

If you just setup your ATI drivers and configured the dual display, you need to reboot so that fglrx module can be loaded properly. If you rebooted after setting up the drivers, just logout and login again to checkout your dual display :) If everything works fine, say thanks to me and if not blame ATI 😛

Adjust DPI for Normal Font Size

I faced a problem with my font sizes being too big while using xinerama. It was easy to fix by adjusting DPI. Go to System -> Preferences -> Appearance. Go to Fonts tab. Click Details located near the bottom right corner. On that window, try descreasing the “Dots Per Inch” value. Mine worked fine with 85 DPI.

Below is an image of my dual display setup. Click to enlarge.

Dual Display Configuration ViewSonic Samsung Using ATI Radeon Catalyst (fglrx)

 

How To: Recover Deleted Files in Linux Using Photorec

Frequently I get messages like “I have accidentally deleted my project. Is there any way to recover it in Linux?” or “I worked really hard on that program and managed to deleted it right before submission :( How do I recover?”. Well I didn’t really have any idea on “How to actually recover deleted files in Linux”.

A few days back I was designing the new logo for Videocache in Inkscape. After finishing the design, I saved the svg file carefully. And deleted other images which I embedded in the logo. A few moments later I realized that I just screwed up myself by deleting all those files as the svg file is now good for nothing.

I searched a lot on recovering files in Linux but in vain. Then a friend (bitgeek) told me about Photorec. I managed to recover all the files using photorec. I thought it would be a good idea to let others know and spread a good word about Photorec. Below is a step by step howto on using Photorec to recover your files.

What is Photorec?

From Photorec website,

PhotoRec is file data recovery software designed to recover lost files including video, documents and archives from Hard Disks and CDRom and lost pictures (thus, its ‘Photo Recovery’ name) from digital camera memory. PhotoRec ignores the filesystem and goes after the underlying data, so it will still work even if your media’s filesystem has been severely damaged or re-formatted.

For This HowTo

Lets say I had a file download_arrow.png in /home/saini/Desktop which I have removed accidentally. Login as root and create a directory recover which will be used to store all the recovered files.

Install testdisk/PhotoRec

Photorec comes as a part of testdisk package in Fedora (I hope its same for other distributions as well). Use yum to install testdisk.

[root@fedora-tips ~]$ yum install testdisk

Launch Photorec

Once you are done with installation. Open a terminal and launch photorec (as root).

[root@fedora-tips recover]$ photorec

Select Hard Disk

If you have more than one hard disk in your system, select the one from which you have deleted the file(s).

PhotoRec Hard Disk Selection

Select Partition Type

If your hard disk has Linux partitions, then select [Intel].

PhotoRec Partition Selection

Select Filetype Option

Move to [File Opt] and press enter. Here you can disable all file types by pressing ‘s’ . Use space to toggle the check button. Now since we removed a png file, we are going to check only png file type.

PhotoRec Filetype Selection

Select Options

Photorec also has a list of different options. Under normal circumstances you don’t need to modify them

PhotoRec Option Selection

Select Partition

Move the selector to the partition from which you have removed the file. Then press enter on search.

PhotoRec Partition Selection

Select Filesystem Type

If you are using Linux, its going to be ext2/ext3/ext4. So the default selection is file.

PhotoRec Partition Selection

Select Space for Analysis

Select free if you didn’t write to that partition after removing the particular file otherwise select whole.

PhotoRec Space Selection

Select a Directory to Recover Files

Now select the path where the recovered files will be stored. Then press ‘Y’.

PhotoRec Recovery Directory Selection

Recovery Progress

Photorec will show how many files it has recovered.

PhotoRec Recovery Progress

All recovered file will be stored in the directory selected above. Open them in a file browser and you’ll get the removed file there. I hope this howto will help you recovering files you accidentally delete :)

 

How To: Install ATI Catalyst (fglrx) Drivers

Note: This How To is valid up to Catalyst Driver version 10.1.
Note: With minor changes this How To may work for other Linux distributions like Mandriva, Suse, Ubuntu, Red Hat, Cent OS etc.

Following the suggestions in comments on my last post about ATI Catalyst (fglrx), I tried to reinstall ATI drivers version 9.8 and finally it worked. I thought of noting down the the process in few simple steps which anyone can follow and get the drivers working on Fedora 11 with latest kernel versions.

Step 1 : Update Kernel, Install kernel-devel

Huge thanks to Richard Lloyd and mxyzptlk2063 for pointing this out.
This step is not necessary. You may like to stick to the kernel version you already have. In case you want the latest kernel, just use yum to get the latest kernel.

Note: Do not forget to update the kernel-devel package as well as its needed to compile the fglrx kernel module.

DONT UPDATE THE KERNEL. Instead stick to whatever kernel version you have. If you have 2.6.30.*, you are unlucky :( Get a kernel version 2.6.29.* and install the kernel-devel for the same.

With Catalyst Driver version 9.10 you can update kernel to latest version before installing the Drivers.

[root@fedora ~]$ yum update kernel
[root@fedora ~]$ yum install kernel-devel

Step 2 : Download Drivers

Download the ATI Catalyst™ 9.8 Proprietary Linux x86 Display Driver from ATI/AMD website.

Step 3 : Install Drivers

Install the drivers that you have downloaded using the following command.

[root@fedora ~]$ bash ./ati-driver-installer-9-8-x86.x86_64.run

Step 4 : Check Installation Result

Check the /usr/share/ati/fglrx-install.log file for result of installation. If there are no errors, proceed to the next step.

Note: You may see lines like this at the end of file

You must change your working directory to /lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
– recreating module dependency list
– trying a sample load of the kernel modules
done.

You can ignore these lines happily if they don’t contain any error message. You don’t really need to execute the command mentioned in those lines.

Step 5 : Blacklist radeon and radeonhd kernel modules

Add these lines to /etc/modprobe.d/blacklist.conf.

blacklist radeon
blacklist radeonhd

Step 6 : Generate initial Xorg configuration file

Note: This step is optional with Catalyst Driver version 9.10, but it wont harm even if you execute this.

You have to generate the initial xorg.conf file which will use fglrx as display device.

[root@fedora ~]$ aticonfig --initial

Step 7 : Modify xorg.conf

Open your /etc/X11/xorg.conf file and add the following line to “Device” section (the one with fglrx as driver)

Option "SWCursor" "true"

Step 8 : Reboot

Reboot your machine. And you’ll have the latest ATI Catalyst drivers working on your Fedora 11 :)

Step 9 : Testing

You can test your newly installed drivers and get the performance benchmarks for your graphics card using the commands below.

[saini@fedora ~]$ glxgears
[saini@fedora ~]$ fgl_glxgears

My graphics card is ATI Radeon HD 3200 (256MB, Onboard) and I get 1500FPS with glxgears and 300FPS with fgl_glxgears.

In case you messup things somewhere, you can uninstall the fglrx drivers using the following command

[root@fedora ~]$ /usr/share/ati/fglrx-uninstall.sh