LinkShare rotating banner
Showing posts with label windows. Show all posts
Showing posts with label windows. Show all posts

Friday, June 28, 2013

Download Windows Vista K with SP2 integrated

Windows Vista service pack 2 provides many security fixes and brings performance improvements to the good, old Windows Vista operating system. Download the ISO file using the magnet links below:

Wednesday, April 10, 2013

Windows 7 Boot Floppy For OEM Activation

Although floppy diskettes are now obsolete and has become a thing of the past, they can be quite useful when Windows 7 or Windows Vista need to be activated. Floppy diskettes can only hold 1.44 MB of data, but that's enough for holding tools necessary for Windows activation. The floppy will contain MS-DOS system files, GRUB4DOS and tools to soft-mod the BIOS. Unfortunately, new and recent computers don't have floppy drives. Still, we can work around without a floppy if we use a USB flash drive or a bootloader, such as syslinux. Get the floppy image here.

The bootable floppy runs a small program that artificially inserts OEM SLIC signature into BIOS for the purpose of Windows activation before booting into Windows. There are 3 utilities included in the floppy.

  • loadslic.exe
  • softmod.exe
  • grub.exe

Loadslic and softmod do the same job of loading SLIC into BIOS. Softmod loads a file named SLIC.BIN into BIOS, but loadslic contains a SLIC code in itself. If you want to change the OEM SLIC loaded by loadslic, you have to hack the loadslic binary with a hex editor. The AUTOEXEC.BAT file by default runs softmod, but you can edit AUTOEXEC.BAT to have it run loadslic. The following is AUTOEXEC.BAT contents:

@ECHO OFF
SOFTMOD
GRUB

Get the SLIC file for your computer and save it as SLIC.BIN. Then, create an empty file named WIN7 in C:\BOOT folder. This file is used to tell GRUB which partition you want to boot. The following is MENU.LST contents that Grub uses to find and boot Windows.

timeout 0
default 0
fallback 0
hiddenmenu

title Windows 7
find --set-root /boot/win7
chainloader /bootmgr

Finally, write the floppy image to a floppy with Winimage and restart the computer. If you don't have a floppy, use another bootloader, such as syslinux, to boot from the floppy image. Once you get into Windows, use slmgr to activate Windows.

slmgr -ilc oemcert.xrm-ms
slmgr -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Install GRUB4DOS and Use loadslic command to Activate Windows 7/Vista and Server 2008/2011

One of the activation methods available for activating Windows is by using the mechanism called “System Locked Pre-installation” (also known as SLP).

This method is widely used on computers and hardware sold by OEM manufacturers. Microsoft has come up with this scheme to allow hardware vendors to mass-produce and sell computers with Windows pre-installed. Computers that are activated using SLP method each have a vendor-specific signature embedded in the BIOS, called SLIC (software licensing description table).

To use the SLP method, the computer must have a special BIOS that has OEM SLIC signature. The SLIC signature is unique for each OEM computer-manufacturer. You may be tempted to flash the BIOS with a SLP-enabled BIOS, but it is not safe and may break the computer system or make it unbootable. There are safer alternatives, and the most widely used artificial SLP activation method is by using a special version of GRUB4DOS patched with loadslic command. The patched GRUB4DOS is able to allow SLP activation for Windows 7, Windows Vista, Windows Server 2011 and Windows Server 2008 (available here).

First, use bootlace.com under DOS to install GRLDR bootstrap code to MBR. Alternatively, you can use install-mbr command under Linux to install generic MBR code to MBR. The reason for doing this is because the MBR code installed by Windows doesn't allow booting from non-Microsoft bootloader.

Then, with 7-zip (or WinRar or Winzip), copy the SCRIPTS folder from inside the OpenLoader.rar package to C:\Windows\Setup. Right-click on GRUB.CMD, and run it as Administrator. Upon reboot, a standard Grub4Dos menu is displayed with boot options. In the menu, you can choose one of several SLIC codes from major computer vendors. After choosing one and booting Windows with software-modified OEM SLIC BIOS, you should be able to activate Windows by using the slmgr commands like this.

slmgr -ilc oemcert.xrm-ms
slmgr -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Using the slmgr script requires the Administrator privilege. Open the Command Prompt (cmd.exe) as Administrator and type the above commands. Replace oemcert.xrm-ms with the actual digital certificate for the hardware vendor listed in your BIOS. And type the actual 25-digit OEM key in place of XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.

Saturday, April 6, 2013

Activate Windows 7, Windows 8, Office 2010 and Office 2013 with KMS Nano

KMS Nano or KMSnano is a little KMS activation tool that works inside a Qemu virtual machine. It can be used to activate the following Microsoft products.

  • Windows Vista Professional and Windows Vista Enterprise
  • Windows 7 Professional and Windows 7 Enterprise
  • Windows 8 Pro and Windows 8 Enterprise
  • Microsoft Office 2010, Visio 2010 and Project 2010
  • Microsoft Office 2013, Visio 2013 and Project 2013

KMS Nano can be found in a few places on the Internet. Try the following locations.

Friday, April 5, 2013

윈도 7 서비스 팩 1 한국어 통합판

최근 업데이트된 윈도 7 서비스 팩 1 한국어 버전을 모두 모아 하나의 DVD 디스크로 만든 겁니다. 설치 디스크 하나로 모든 버전 설치가 가능한 윈도 7 서비스 팩 1 한국어 통합판 ISO 토렌트입니다. 많이 공유하시고 시드 유지 바랍니다.

torrent 받기: windows_7_sp1_11in1_korean.torrent
magnet 링크: magnet:?xt=urn:btih:540925E417DC52E9E3838BCD7B5AA7C3C4779AA9

포함된 버전:

  1. 윈도 7 STARTER K (32 비트)
  2. 윈도 7 HOME BASIC K (32 비트)
  3. 윈도 7 HOME PREMIUM K (32 비트)
  4. 윈도 7 PROFESSIONAL K (32 비트)
  5. 윈도 7 ULTIMATE K (32 비트)
  6. 윈도 7 ENTERPRISE K (32 비트)
  7. 윈도 7 HOME BASIC K (64 비트)
  8. 윈도 7 HOME PREMIUM K (64 비트)
  9. 윈도 7 PROFESSIONAL K (64 비트)
  10. 윈도 7 ULTIMATE K (64 비트)
  11. 윈도 7 ENTERPRISE K (64 비트)

Thursday, April 4, 2013

All Editions of Korean Windows 7 SP1 including Enterprise and Professional

Korean editions of Windows 7 are noted for having K attached to their names. For example, there are Windows 7 Professional K and Windows 7 Ultimate K for advanced Korean users. If you are a Korean speaker or do business in Korean, you may want to install and use Korean Windows. You can use aria2, transmission-cli and sancho to download Korean Windows 7. For example, the aria2 command to download Windows 7 K editions would be:

aria2c "magnet:?xt=urn:btih:H3K37RU7JM42WZZZBAPDMCPTQE3VHUXA"

The magnet link (inside the quote) will let you download both 32-bit and 64-bit editions of Windows 7 Korean editions, including Home Premium, Professional, Ultimate and Enterprise.

Friday, March 1, 2013

Download Microsoft Office 2013

Microsoft Office 2013 is out with new looks and features. This latest release of Microsoft Office features a flat and square design and integrates the free SkyDrive cloud storage service from Microsoft. Office 2013 is a trialware, meaning that you can try it for 30 days until you purchase a license key from Microsoft. Please be aware that Microsoft Office 2013 only supports Windows 7, Windows 8, Windows 2008 R2 and any later versions of Windows, so it won't run on Windows XP or Windows Vista.

Microsoft Outlook 2013

If you want to download, install and try Microsoft Office 2013, there are downloadable ISO copies of Corporate Volume License editions of Microsoft Office 2013 available on bittorrent peer-to-peer file-sharing network. You can use any bittorrent application, but aria2 or transmission is recommended. In the following examples, transmission-cli can be used instead of aria2c.

To download English Volume License edition of Office Professional Plus 2013, type the following command on Command Prompt. This torrent contains both 32-bit and 64-bit editions of Microsoft Office 2013.

aria2c "magnet:?xt=urn:btih:N4CRYICBV3R2JO5CKFNWCVJ76FXKJLFB"

To download X86 Volume English edition of Microsoft Visio Professional 2013, type the following command on Command Prompt. A torrent is also available here.

aria2c "magnet:?xt=urn:btih:BVEARE7CO2PTBJXLBWVOHWAPVWQBENQ2"

To download X64 Volume English edition of Microsoft Visio Professional 2013, type the following command on Command Prompt. A torrent is also available here.

aria2c "magnet:?xt=urn:btih:Q37EIBGSJOBBNJG2E2AHOZQHWCC4D5IK"

To download X86 Volume English edition of Microsoft Project Professional 2013, type the following command on Command Prompt. A torrent is also available here.

aria2c "magnet:?xt=urn:btih:LKWVAEFXJNGNYA37ZV6YBAKC3AXNM45U"

To download X64 Volume English edition of Microsoft Project Professional 2013, type the following command on Command Prompt. A torrent is also available here.

aria2c "magnet:?xt=urn:btih:LRYKC5N22ILNC6Y6U7DTLECDGC3VOTMU"

When you use aria2 or transmission, please be patient with the program as it takes time to find the peers. Once you download the ISO, burn the ISO using a free ISO-burning tool, such as CDBurnerXP or ImgBurn. No product key or serial number is necessary when you install any of the above Volume License editions of Microsoft Office, Visio or Project Professional 2013. However, you may use the product for 30 days without restriction. After that, you need to activate the product to continue using it. Read this post to find out how to activate Microsoft Office 2013.

Also Read

Monday, October 1, 2012

Bittorrent Info Hash Values for Windows 8 ISO

Windows 8 ISO files have the following BTIH hash values. Use them with my aria2 script to download Windows 8.




  1. en_windows_8_x86_dvd_915417.iso

    C5D92B32277685436DEDE9957B80083D26062C03
  2. en_windows_8_x64_dvd_915440.iso

    144C7E2B46103FF84F83A1E6A12D66B740F00CF6

Sunday, September 30, 2012

To Compile ndiswrapper 1.58rc1 for Linux 3.5.4

ndiswrapper allows Linux users to use Windows drivers for PCI/USB network adapters on Linux. If you own a network device for which Linux support is still absent or premature, then you need to compile ndiswrapper yourself and install Windows driver for your network device. Fortunately, today's Linux supports most network devices out-of-box, so most distributions don't bother to include ndiswrapper. However, I am compiling ndiswrapper believing that Windows NDIS drivers would outperform native Linux drivers.





To my surprise, building the latest version of ndiswrapper (1.58rc1) did not require any patch. After compiling Linux 3.5.4, I downloaded the ndiswrapper source from the sourceforge site. I chose the testing version because I thought it would work better with Linux 3.5.x. I unpacked the source.



tar xzvf ndiswrapper-1.58rc1.tar.gz
cd ndiswrapper-1.58rc1


I typed the following commands to compile and install ndiswrapper.



KVERS=3.5.4 make uninstall
KVERS=3.5.4 make
KVERS=3.5.4 make install


Then, I generated modules.* files again.



depmod -e -m -F /boot/System.map-3.5.4 3.5.4


The following files were installed by ndiswrapper.



/lib/modules/3.5.4/misc/ndiswrapper.ko
/sbin/loadndisdriver
/usr/sbin/ndiswrapper
/usr/sbin/ndiswrapper-buginfo
/usr/share/man/man8/loadndisdriver.8
/usr/share/man/man8/ndiswrapper.8


Also read:



Saturday, September 8, 2012

Building MPlayer and Mencoder for Windows

MPlayer logo

MPlayer is one of my favorite media players. It is used with a frontend like smplayer, gnome-mplayer and MPlayerGUI to provide a good alternative to Windows Media Player. Although there are already several Win32 builds of MPlayer on the net, I like to build MPlayer on my own using MinGW compiler because I want to optimize my build for my CPU. So I installed MinGW and compiled MPlayer as follows.





  1. Build ffmpeg statically or dynamically as shown in this post.



  2. (Optional) Compile the lzo library:

    ./configure --prefix=/mingw && make && make install


  3. (Optional) Fribidi is a rendering library for right-to-left scripts, such as Arabic and Hebrew. If you are a speaker of such right-to-left languages, compile fribidi statically as shown below:


    ./configure --prefix=/mingw --disable-shared --disable-debug
    make
    make install

    More information can be found here.



  4. Download JPEG source from ijg.org and complie JPEG:

    ./configure --prefix=/mingw --enable-static
    make
    make install


  5. Compile libPNG:

    ./configure --prefix=/mingw --disable-shared
    make
    make install


  6. Compile libiconv, Freetype, expat and fontconfig statically in that order:

    ./configure --prefix=/mingw --disable-shared
    make install


  7. Compile libdca:

    ./configure --prefix=/mingw
    make
    make install


  8. (Optional) Download DirectX headers from any of the following locations and unpack them in /mingw/include:



  9. Download the latest mplayer source (mplayer-export-snapshot.tar.bz2) and unpack it. (patch 1 and patch 2)

    tar xjvf mplayer-export-snapshot.tar.bz2
    cd mplayer-export-2010-02-07/

    Then, run ./configure:


    CPPFLAGS='-DFRIBIDI_ENTRY="" ' ./configure --prefix=/mingw --enable-runtime-cpudetection --enable-static --enable-theora --enable-fribidi --disable-ffmpeg_a --disable-gl --disable-vidix --yasm=/mingw/bin/yasm --extra-libs='-lfribidi'

    The CPPFLAGS value allows fribidi to be linked statically.



  10. Build Mplayer:

    make


    After successful build, strip the executables:


    strip m*.exe


    Optionally, compress the executables with upx:


    upx --best --strip-relocs=0 mplayer.exe
    upx --best --strip-relocs=0 mencoder.exe


  11. Download MPlayer codecs from here. The MPlayer codecs for Windows platform has a filename like windows-essential-20071007.zip. Extract the codecs package and you'll get a folder "windows-essential-20071007". Rename it as "codecs" and move the "codecs" folder inside where mplayer.exe file is located.



  12. Make sure that HOME environment variable is set to your personal folder(for example, C:\Users\Jocelyn). Upon the first run of mplayer, a new folder named mplayer will be created in your HOME folder. Copy codecs.conf to the mplayer folder. The "config" file stores default options for playing movie files. Open the "config" file and make changes as follows:


    # Write your default config options here!
    cdrom-device=D:
    dvd-device=D:
    ao=dsound
    vo=direct3d
    font=C:\WINDOWS\FONTS\MALGUN.TTF
    framedrop=yes
    subcp=cp949



My win32 build of mplayer can be downloaded from here. It is recommended that the zip archive should be extracted in C:\Program Files.



Running MPlayer


Now, let's try mplayer. First, get a movie file ready. In the Command Prompt, type a command in the following form:



mplayer mymoviefile.avi


Alternatively,



mplayer -vo direct3d -ao win32 -font C:\WINDOWS\FONTS\Tahoma.ttf -framedrop mymoviefile.avi


A new window will pop up with the movie playing inside it.



The next step is to get and set up SMPlayer.

Sunday, September 2, 2012

Setting Up Cygwin For C/C++ Software Development on Windows

Cygwin provides a Unix-like environment for Windows users. Cygwin is useful for people who want to learn Unix or popular Linux without having to install Unix or Linux. Cygwin can also be used to port Linux applications to Windows or develop genuine Windows applications. To install Cygwin, download setup.exe from the Cygwin website and run it.



Cygwin Packages for Software Development


In addition to the default packages, select the following packages for common development environment:


  • bison
  • gettext-devel
  • libtool
  • make
  • patch
  • pkg-config


To select a package for installation, type the name of the package in the Search box, expand the categories by clicking a plus, and clicking on the package until its version number shows up.



cygwin_setup_mingw64

If you want to develop software applications that depend on cygwin1.dll (which emulates Unix on Windows), install one of the following packages. This is when you want to port Linux applications to Windows with little modification.


  • gcc-g++

    outdated version 3.4.4
  • gcc4-g++

    GCC 4.x that links applications with cygwin1.dll


If you want to develop pure Windows applications, install one of the following packages.


  • mingw-gcc-g++

    The original MinGW compiler from mingw.org can't build 64-bit applications.
  • mingw64-i686-gcc-g++

    New MinGW compiler from mingw-w64.sourceforge.net.
  • mingw64-x86_64-gcc-g++

    Install these to develop 64-bit Windows applications.


When you see the Resolving Dependencies window, just accept and click Next.


cygwin_setup_dependencies

Setting HOME Variable


Setting the environment variable %HOME% is useful for various reasons. First of all, it allows regular users to compile freely in their user folder without requiring access to C:\Cygwin. Secondly, it allows users to save user-specific configuration in their user folder. For example, user configuration files such as .profile, .gtkrc-2.0, .fonts.conf and .pango-aliases can be saved in the folder specified by %HOME%.


Set HOME environment variable for MinGW and Cygwin

Setting Up mingw* compiler for Cygwin


The file C:\Cygwin\etc\fstab is used to set up mount points in Cygwin. If you installed mingw64 packages, open the file C:\Cygwin\etc\fstab in a text editor and append the following line.


/usr/i686-w64-mingw32/sys-root/mingw /mingw none bind

Start the Cygwin terminal and type the following commands to set up Cygwin for Windows compilation.


ln -s /usr/bin/i686-w64-mingw32-g++.exe /usr/i686-w64-mingw32/bin/g++.exe
ln -s /usr/bin/i686-w64-mingw32-gcc.exe /usr/i686-w64-mingw32/bin/gcc.exe

Also, set up some environment variables.


export CFLAGS="-march=pentium2 -mtune=i586 -mthreads -mms-bitfields -O2"
export CXXFLAGS="-march=pentium2 -mtune=i586 -mthreads -mms-bitfields -O2"
export CPPFLAGS="-I/mingw/include"
export LDFLAGS="-L/mingw/lib -Wl,--enable-auto-image-base -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
export PATH=/mingw/bin:/usr/i686-w64-mingw32/bin:/usr/local/bin:/usr/bin
export PKG_CONFIG_PATH=/mingw/lib/pkgconfig


Setting Up gcc* Compiler for Cygwin


If you installed the gcc4 compiler (as opposed to mingw*), set up some environment variables to customize your build environment. I usually type the following commands:


CC="/usr/bin/gcc.exe"
CFLAGS="-march=pentium2 -mtune=i586 -mthreads -mms-bitfields -O2"
CPPFLAGS="-I/usr/include"
CXXFLAGS="-march=pentium2 -mtune=i586 -mthreads -mms-bitfields -O2"
LDFLAGS="-L/usr/lib -Wl,--enable-auto-image-base -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
export CC CFLAGS CPPFLAGS CXXFLAGS LDFLAGS

Saturday, July 10, 2010

List of Useful Software for Windows



I just finished setting up my laptop. It's got Windows 7 Home Premium installed. The following is a list of software I installed onto my laptop:





Related Posts


Wednesday, June 30, 2010

Install Windows XP on a USB flash/hard drive

I am building a new PC from old spare parts. The new PC will be used mainly for the Internet, so a hard drive won't be necessary unless there's a need to download music and movies. I'm going to put together a computer with no internal storage, but use a USB stick as the main storage. Windows XP Professional will be installed on the USB stick, and the computer will boot up from the USB stick. Here I show how to install XP onto a USB stick and boot the PC from it. You should have the following ready.





Let's begin.




  1. Get your Windows XP installation CD and copy its contents to an empty folder on the hard drive. If you don't have the CD, use utorrent or emule to download the ISO file.



    Then, use 7-zip to extract the contents of the ISO file into an empty folder.



  2. Start the Command Prompt, go to the I386 subfolder and type the following commands to uncompress the USB driver files:


    CD I386
    EXPAND -I USB.IN_
    EXPAND -I USBPORT.IN_
    EXPAND -I USBSTOR.IN_

    We'll get 3 new files: USB.INF, USBPORT.INF and USBSTOR.INF. Remove the original .IN_ files.


    ERASE USB.IN_ USBPORT.IN_ USBSTOR.IN_


  3. Edit TXTSETUP.SIF to include USB storage support at the initial stage of Windows XP installation. The highlighted entries were copied from the [InputDevicesSupport.Load] section to the [BootBusExtenders.Load] section:

    [BootBusExtenders.Load]
    pci = pci.sys
    acpi = acpi.sys
    isapnp = isapnp.sys
    acpiec = acpiec.sys
    ohci1394 = ohci1394.sys
    usbehci = usbehci.sys
    usbohci = usbohci.sys
    usbuhci = usbuhci.sys
    usbhub = usbhub.sys
    usbstor = usbstor.sys


    Likewise for [BootBusExtenders] and [InputDevicesSupport]:



    [BootBusExtenders]
    pci = "PCI Bus Driver",files.pci,pci
    acpi = "ACPI Plug & Play Bus Driver",files.acpi,acpi
    isapnp = "ISA Plug & Play Bus Driver",files.isapnp,isapnp
    acpiec = "ACPI Embedded Controller Driver",files.none,acpiec
    ohci1394 = "IEEE 1394 Bus OHCI Compliant Port Driver",files.ohci1394,ohci1394
    usbehci = "Enhanced Host Controller",files.usbehci,usbehci
    usbohci = "Open Host Controller",files.usbohci,usbohci
    usbuhci = "Universal Host Controller",files.usbuhci,usbuhci
    usbhub = "Generic USB Hub Driver",files.usbhub,usbhub
    usbstor = "USB Storage Class Driver",files.usbstor,usbstor


    Insert the following in the [HiveInfs.Fresh] section:


    [HiveInfs.Fresh]
    AddReg = hivedef.inf,AddReg
    AddReg = hivesys.inf,AddReg
    AddReg = hivesft.inf,AddReg
    AddReg = hivecls.inf,AddReg
    AddReg = hiveusd.inf,AddReg
    AddReg = dmreg.inf,DM.AddReg
    AddReg = usbboot.inf,usbservices


    Then, in the [SourceDisksFiles] section:



    [SourceDisksFiles]
    usbboot.inf = 1,,,,,,_x,3,,3
    bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
    kdcom.dll = 1,,,,,,3_,2,0,0,,1,2


    Save and close TXTSETUP.SIF.



  4. Edit DOSNET.INF so that the second [Files] section looks like this:

    [Files]
    d1,usbboot.inf
    d1,_default.pif
    d1,12520437.cpx
    d1,12520850.cpx


  5. Edit USB.INF as follows:


    [StandardHub.AddService]
    DisplayName = %StandardHub.SvcDesc%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 0 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbhub.sys
    LoadOrderGroup = Boot Bus Extender

    [CommonClassParent.AddService]
    DisplayName = %GenericParent.SvcDesc%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 0 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbccgp.sys
    LoadOrderGroup = Boot Bus Extender



  6. Modify USBPORT.INF like this.


    [EHCI.AddService]
    DisplayName = %EHCIMP.SvcDesc%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 0 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbehci.sys
    LoadOrderGroup = Boot Bus Extender


    [OHCI.AddService]
    DisplayName = %OHCIMP.SvcDesc%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 0 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbohci.sys
    LoadOrderGroup = Boot Bus Extender


    [UHCI.AddService]
    DisplayName = %UHCIMP.SvcDesc%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 0 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbuhci.sys
    LoadOrderGroup = Boot Bus Extender


    [ROOTHUB.AddService]
    DisplayName = %ROOTHUB.SvcDesc%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 0 ; SERVICE_DEMAND_START
    ErrorControl = 1 ; SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbhub.sys
    LoadOrderGroup = Boot Bus Extender


  7. Edit USBSTOR.INF:


    [USBSTOR.AddService]
    DisplayName = %USBSTOR.SvcDesc%
    ServiceType = 1
    StartType = 0
    Tag = 3

    ErrorControl = 1
    ServiceBinary = %12%\USBSTOR.SYS
    LoadOrderGroup = Boot Bus Extender


  8. Create a new file USBBOOT.INF with the following contents:


    [usbservices]

    HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver"
    HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1
    HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved"
    HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS"
    HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0
    HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1

    HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1
    HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0
    HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1

    HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1
    HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0
    HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1

    HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"Microsoft USB Universal Host Controller Miniport Driver"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1
    HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0
    HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Type",0x00010001,1

    HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1
    HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys"
    HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0
    HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1


  9. If you haven't erased the original .IN_ files, do so now.


    erase USB.IN_
    erase USBPORT.IN_
    erase USBSTOR.IN_

    Compress the modified files with cabarc.


    cabarc n USB.IN_ usb.inf
    cabarc n USBPORT.IN_ usbport.inf
    cabarc n USBSTOR.IN_ usbstor.inf

    You'll get 3 compressed files with IN_ extension.



  10. Put these files back into the I386 subfolder of the Windows XP installation folder.

    • DOSNET.INF
    • TXTSETUP.SIF
    • USB.IN_
    • USBBOOT.INF
    • USBPORT.IN_
    • USBSTOR.IN_


  11. You'll need this boot sector (w2ksect.bin) to make your new CD bootable. Put w2ksect.bin inside the main folder containing XP files.



  12. Now, let's burn a new CD containing Windows XP files. Start ImgBurn and select Write files/folders to disc. Click the Browser for a folder... icon and select the folder containing Windows XP files. Then, set up options as follows.










    Insert a blank CD into your optical drive and burn it.



  13. Plug in your USB flash drive or USB hard drive to your computer and run the HP USB Disk Storage Format Tool. On Windows Vista or Windows 7, run it as administrator.




  14. From the I386 folder of XP installation CD, copy the following files to the USB drive:



    • ntldr
    • ntdetect.com

    Then, create a new file boot.ini with the following contents. Put it on the USB drive.


    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect


  15. Run the Partition Table Editor (PTEDIT32.EXE) as administrator. Select your USB drive from Hard Disk pulldown menu.




    Change the type of primary partition on the USB drive from 00 to 80. Click the Save Changes button.



    Partition Information should read FAT16X, Bootable



  16. Remove your hard drive from the computer. Then, connect your USB flash drive directly to your computer.



  17. Change the boot order in the BIOS so that your computer can boot from a USB drive. Typical BIOS options are as follows:


    • USB HDD
    • USB Hard Drive


  18. Insert your new Windows XP CD your burned above and boot your computer with it. During installation, don't format the USB drive. Just leave it as is.



  19. After successfully installing Windows XP on your USB drive, install the EWF or FBWF filter.



Monday, May 31, 2010

Compiling GTK+ for Windows with MinGW

GTK+ is a set of open-source widget libraries that are mature, functional and portable. GTK+ library is mainly used by many Linux programs. I am building a complete stack of GTK+ 2.x library before beginning my programming projects. This tutorial makes use of the free MinGW compiler to build GTK+.



If you haven't installed MinGW yet, read this tutorial on installing MinGW in Windows. Alternatively, you can also install MinGW Portable on your USB flash drive so you can enjoy compiling anywhere. GTK+ depends on many basic libraries that provide image, localization, font and other functions. These prerequisite libraries have be compiled first. Once you've installed MinGW and MSYS, launch MSYS. The following steps require you to type commands into MSYS console.




  1. Zlib 1.2.7


    Zlib is an essential compression library required by png, tiff and cairo. Get the zlib source and unpack it:

    tar xzvf zlib-1.2.7.tar.gz
    cd zlib-1.2.7/

    Compile zlib like this:


    make -f win32/Makefile.gcc

    Then, manually copy the files as follows:


    cp -iv zlib1.dll /mingw/bin
    cp -iv zconf.h zlib.h /mingw/include
    cp -iv libz.a /mingw/lib
    cp -iv libz.dll.a /mingw/lib


  2. libiconv 1.14


    libiconv is a character-set conversion library, and is needed by gettext. Download the libiconv source and compile libiconv:


    ./configure --prefix=/mingw
    make
    make install


  3. gettext 0.18.1.1


    GNU gettext is a tool for localizing and translating programs. Build gettext like this:


    ./configure --prefix=/mingw --enable-threads=win32 --enable-relocatable
    cd gettext-runtime/
    make
    make install


  4. glib 2.32.4


    glib's configure script requires pkg-config.exe and msgfmt.exe in the PATH. Download the executables and save them in /mingw/bin. Remember to set the system-wide environment variable PKG_CONFIG_PATH:


    export PKG_CONFIG_PATH=/mingw/lib/pkgconfig

    glib 2.30 and later depends on libffi. Compile libffi like this:


    ./configure --prefix=/mingw && make && make install

    Then, get the glib source from ftp.gnome.org and compile glib as follows:


    ./configure --prefix=/mingw --with-threads=win32 --with-pcre=internal --disable-debug
    make
    make install


  5. ATK 2.4.0


    Download ATK from here. Compile it like this:


    ./configure --prefix=/mingw
    make
    make install


  6. libpng 1.5.12


    PNG can be compiled like this:


    ./configure --prefix=/mingw
    make
    make install


  7. Optional libraries


    The following libraries are optional, but many GTK+ packages include them. It's up to you to decide whether to compile them or not.



    As usual, compile any of them like this:


    ./configure --prefix=/mingw && make && make install


  8. Pixman 0.26.2 and Cairo 1.12.2


    Get Pixman and Cairo from cairographics.org. Compile Pixman as follows:


    ./configure --prefix=/mingw

    make

    make install

    Then, compile cairo:


    ./configure --prefix=/mingw --enable-pthread
    make
    make install


  9. Pango Library 1.30.1


    Compile Pango like this:


    ./configure --prefix=/mingw --with-included-modules=yes

    make

    make install


  10. gdk-pixbuf 2.26.2


    Download and compile gdk-pixbuf:


    ./configure --prefix=/mingw --without-libjasper --with-included-loaders=yes --disable-modules --disable-debug
    make
    make install


  11. GTK+ 2.24.11 and GTK+ 3.4.2


    At last, we are ready to compile GTK+ for Windows. I compiled GTK+ like this:


    ./configure --prefix=/mingw --with-included-immodules=ime --disable-modules --disable-debug

    make

    make install


    To test your newly compiled GTK+ library, run gtk-demo.exe or testgtk.exe.



Wednesday, May 19, 2010

My Windows Vista/7 Power Settings

Here are my power settings on Windows Vista or Windows 7. I find the default setting annoying or inadequate, especially the Start menu power button triggering sleep.




  • Lid Close Action
    • On Battery: Sleep
    • Plugged in: Do nothing


  • Power Button Action
    • On Battery: Hibernate
    • Plugged in: Hibernate


  • Sleep Button
    • On Battery: Sleep
    • Plugged in: Hibernate


  • Start menu power button
    • On Battery: Shut down
    • Plugged in: Shut down

Friday, June 12, 2009

Packaging, Installing and Configuring GTK+ 2 for Windows

After compiling GTK+ for Windows, we're ready to install and set up GTK+. First, make a Zip archive containing the following files, preserving the directory structure:


bin/charset.dll
bin/cjpeg.exe
bin/djpeg.exe
bin/fc-cache.exe
bin/fc-cat.exe
bin/fc-list.exe
bin/fc-match.exe
bin/gdk-pixbuf-query-loaders.exe
bin/gspawn-win32-helper-console.exe
bin/gspawn-win32-helper.exe
bin/gtk-query-immodules-2.0.exe
bin/iconv.dll
bin/iconv.exe
bin/intl.dll
bin/jpegtran.exe
bin/libatk-1.0-0.dll
bin/libcairo-2.dll
bin/libcharset-1.dll
bin/libexpat-1.dll
bin/libfontconfig-1.dll
bin/libfreetype-6.dll
bin/libgailutil-18.dll
bin/libgdk-win32-2.0-0.dll
bin/libgdk_pixbuf-2.0-0.dll
bin/libgio-2.0-0.dll
bin/libglib-2.0-0.dll
bin/libgmodule-2.0-0.dll
bin/libgobject-2.0-0.dll
bin/libgthread-2.0-0.dll
bin/libgtk-win32-2.0-0.dll
bin/libiconv-2.dll
bin/libintl-8.dll
bin/libjpeg-62.dll
bin/libjpeg-7.dll
bin/libpango-1.0-0.dll
bin/libpangocairo-1.0-0.dll
bin/libpangoft2-1.0-0.dll
bin/libpangowin32-1.0-0.dll
bin/libpixman-1-0.dll
bin/libpng-3.dll
bin/libpng12-0.dll
bin/libtiff-3.dll
bin/libtiffxx-3.dll
bin/libxml2-2.dll
bin/pango-querymodules.exe
bin/rdjpgcom.exe
bin/wrjpgcom.exe
bin/xmlwf.exe
bin/zlib1.dll
etc/fonts/conf.avail/10-autohint.conf
etc/fonts/conf.avail/10-no-sub-pixel.conf
etc/fonts/conf.avail/10-sub-pixel-bgr.conf
etc/fonts/conf.avail/10-sub-pixel-rgb.conf
etc/fonts/conf.avail/10-sub-pixel-vbgr.conf
etc/fonts/conf.avail/10-sub-pixel-vrgb.conf
etc/fonts/conf.avail/10-unhinted.conf
etc/fonts/conf.avail/20-fix-globaladvance.conf
etc/fonts/conf.avail/20-unhint-small-vera.conf
etc/fonts/conf.avail/25-unhint-nonlatin.conf
etc/fonts/conf.avail/30-metric-aliases.conf
etc/fonts/conf.avail/30-urw-aliases.conf
etc/fonts/conf.avail/40-nonlatin.conf
etc/fonts/conf.avail/45-latin.conf
etc/fonts/conf.avail/49-sansserif.conf
etc/fonts/conf.avail/50-user.conf
etc/fonts/conf.avail/51-local.conf
etc/fonts/conf.avail/60-latin.conf
etc/fonts/conf.avail/65-fonts-persian.conf
etc/fonts/conf.avail/65-khmer.conf
etc/fonts/conf.avail/65-nonlatin.conf
etc/fonts/conf.avail/69-unifont.conf
etc/fonts/conf.avail/70-no-bitmaps.conf
etc/fonts/conf.avail/70-yes-bitmaps.conf
etc/fonts/conf.avail/80-delicious.conf
etc/fonts/conf.avail/90-synthetic.conf
etc/fonts/conf.d/20-fix-globaladvance.conf
etc/fonts/conf.d/20-unhint-small-vera.conf
etc/fonts/conf.d/30-metric-aliases.conf
etc/fonts/conf.d/30-urw-aliases.conf
etc/fonts/conf.d/40-nonlatin.conf
etc/fonts/conf.d/45-latin.conf
etc/fonts/conf.d/49-sansserif.conf
etc/fonts/conf.d/50-user.conf
etc/fonts/conf.d/51-local.conf
etc/fonts/conf.d/60-latin.conf
etc/fonts/conf.d/65-fonts-persian.conf
etc/fonts/conf.d/65-nonlatin.conf
etc/fonts/conf.d/69-unifont.conf
etc/fonts/conf.d/80-delicious.conf
etc/fonts/conf.d/90-synthetic.conf
etc/fonts/conf.d/README
etc/fonts/fonts.conf
etc/fonts/fonts.dtd
etc/gtk-2.0/gdk-pixbuf.loaders
etc/gtk-2.0/gtk.immodules
etc/gtk-2.0/gtkrc
etc/gtk-2.0/im-multipress.conf
etc/pango/pango.modules
lib/charset.alias
lib/gtk-2.0/2.10.0/engines/libpixmap.dll
lib/gtk-2.0/2.10.0/engines/libwimp.dll
lib/gtk-2.0/2.10.0/immodules/im-am-et.dll
lib/gtk-2.0/2.10.0/immodules/im-cedilla.dll
lib/gtk-2.0/2.10.0/immodules/im-cyrillic-translit.dll
lib/gtk-2.0/2.10.0/immodules/im-inuktitut.dll
lib/gtk-2.0/2.10.0/immodules/im-ipa.dll
lib/gtk-2.0/2.10.0/immodules/im-multipress.dll
lib/gtk-2.0/2.10.0/immodules/im-thai.dll
lib/gtk-2.0/2.10.0/immodules/im-ti-er.dll
lib/gtk-2.0/2.10.0/immodules/im-ti-et.dll
lib/gtk-2.0/2.10.0/immodules/im-viqr.dll
lib/gtk-2.0/modules/libgail.dll
lib/locale/af/LC_MESSAGES/atk10.mo
lib/locale/af/LC_MESSAGES/gtk20-properties.mo
lib/locale/af/LC_MESSAGES/gtk20.mo
lib/locale/am/LC_MESSAGES/atk10.mo
lib/locale/am/LC_MESSAGES/glib20.mo
lib/locale/am/LC_MESSAGES/gtk20-properties.mo
lib/locale/am/LC_MESSAGES/gtk20.mo
lib/locale/ang/LC_MESSAGES/gtk20-properties.mo
lib/locale/ang/LC_MESSAGES/gtk20.mo
lib/locale/ar/LC_MESSAGES/atk10.mo
lib/locale/ar/LC_MESSAGES/glib20.mo
lib/locale/ar/LC_MESSAGES/gtk20-properties.mo
lib/locale/ar/LC_MESSAGES/gtk20.mo
lib/locale/as/LC_MESSAGES/atk10.mo
lib/locale/as/LC_MESSAGES/glib20.mo
lib/locale/as/LC_MESSAGES/gtk20-properties.mo
lib/locale/as/LC_MESSAGES/gtk20.mo
lib/locale/ast/LC_MESSAGES/gtk20-properties.mo
lib/locale/ast/LC_MESSAGES/gtk20.mo
lib/locale/az/LC_MESSAGES/atk10.mo
lib/locale/az/LC_MESSAGES/glib20.mo
lib/locale/az/LC_MESSAGES/gtk20-properties.mo
lib/locale/az/LC_MESSAGES/gtk20.mo
lib/locale/az_IR/LC_MESSAGES/gtk20-properties.mo
lib/locale/az_IR/LC_MESSAGES/gtk20.mo
lib/locale/be/LC_MESSAGES/atk10.mo
lib/locale/be/LC_MESSAGES/glib20.mo
lib/locale/be/LC_MESSAGES/gtk20-properties.mo
lib/locale/be/LC_MESSAGES/gtk20.mo
lib/locale/be@latin/LC_MESSAGES/atk10.mo
lib/locale/be@latin/LC_MESSAGES/glib20.mo
lib/locale/be@latin/LC_MESSAGES/gtk20-properties.mo
lib/locale/be@latin/LC_MESSAGES/gtk20.mo
lib/locale/bg/LC_MESSAGES/atk10.mo
lib/locale/bg/LC_MESSAGES/glib20.mo
lib/locale/bg/LC_MESSAGES/gtk20-properties.mo
lib/locale/bg/LC_MESSAGES/gtk20.mo
lib/locale/bn/LC_MESSAGES/atk10.mo
lib/locale/bn/LC_MESSAGES/glib20.mo
lib/locale/bn/LC_MESSAGES/gtk20-properties.mo
lib/locale/bn/LC_MESSAGES/gtk20.mo
lib/locale/bn_IN/LC_MESSAGES/atk10.mo
lib/locale/bn_IN/LC_MESSAGES/glib20.mo
lib/locale/bn_IN/LC_MESSAGES/gtk20-properties.mo
lib/locale/bn_IN/LC_MESSAGES/gtk20.mo
lib/locale/br/LC_MESSAGES/gtk20-properties.mo
lib/locale/br/LC_MESSAGES/gtk20.mo
lib/locale/bs/LC_MESSAGES/atk10.mo
lib/locale/bs/LC_MESSAGES/glib20.mo
lib/locale/bs/LC_MESSAGES/gtk20-properties.mo
lib/locale/bs/LC_MESSAGES/gtk20.mo
lib/locale/ca/LC_MESSAGES/atk10.mo
lib/locale/ca/LC_MESSAGES/glib20.mo
lib/locale/ca/LC_MESSAGES/gtk20-properties.mo
lib/locale/ca/LC_MESSAGES/gtk20.mo
lib/locale/ca@valencia/LC_MESSAGES/glib20.mo
lib/locale/ca@valencia/LC_MESSAGES/gtk20-properties.mo
lib/locale/ca@valencia/LC_MESSAGES/gtk20.mo
lib/locale/crh/LC_MESSAGES/gtk20-properties.mo
lib/locale/crh/LC_MESSAGES/gtk20.mo
lib/locale/cs/LC_MESSAGES/atk10.mo
lib/locale/cs/LC_MESSAGES/glib20.mo
lib/locale/cs/LC_MESSAGES/gtk20-properties.mo
lib/locale/cs/LC_MESSAGES/gtk20.mo
lib/locale/cy/LC_MESSAGES/atk10.mo
lib/locale/cy/LC_MESSAGES/glib20.mo
lib/locale/cy/LC_MESSAGES/gtk20-properties.mo
lib/locale/cy/LC_MESSAGES/gtk20.mo
lib/locale/da/LC_MESSAGES/atk10.mo
lib/locale/da/LC_MESSAGES/glib20.mo
lib/locale/da/LC_MESSAGES/gtk20-properties.mo
lib/locale/da/LC_MESSAGES/gtk20.mo
lib/locale/de/LC_MESSAGES/atk10.mo
lib/locale/de/LC_MESSAGES/glib20.mo
lib/locale/de/LC_MESSAGES/gtk20-properties.mo
lib/locale/de/LC_MESSAGES/gtk20.mo
lib/locale/dz/LC_MESSAGES/atk10.mo
lib/locale/dz/LC_MESSAGES/glib20.mo
lib/locale/dz/LC_MESSAGES/gtk20-properties.mo
lib/locale/dz/LC_MESSAGES/gtk20.mo
lib/locale/el/LC_MESSAGES/atk10.mo
lib/locale/el/LC_MESSAGES/glib20.mo
lib/locale/el/LC_MESSAGES/gtk20-properties.mo
lib/locale/el/LC_MESSAGES/gtk20.mo
lib/locale/en_CA/LC_MESSAGES/atk10.mo
lib/locale/en_CA/LC_MESSAGES/glib20.mo
lib/locale/en_CA/LC_MESSAGES/gtk20-properties.mo
lib/locale/en_CA/LC_MESSAGES/gtk20.mo
lib/locale/en_GB/LC_MESSAGES/atk10.mo
lib/locale/en_GB/LC_MESSAGES/glib20.mo
lib/locale/en_GB/LC_MESSAGES/gtk20-properties.mo
lib/locale/en_GB/LC_MESSAGES/gtk20.mo
lib/locale/eo/LC_MESSAGES/atk10.mo
lib/locale/eo/LC_MESSAGES/glib20.mo
lib/locale/eo/LC_MESSAGES/gtk20-properties.mo
lib/locale/eo/LC_MESSAGES/gtk20.mo
lib/locale/es/LC_MESSAGES/atk10.mo
lib/locale/es/LC_MESSAGES/glib20.mo
lib/locale/es/LC_MESSAGES/gtk20-properties.mo
lib/locale/es/LC_MESSAGES/gtk20.mo
lib/locale/et/LC_MESSAGES/atk10.mo
lib/locale/et/LC_MESSAGES/glib20.mo
lib/locale/et/LC_MESSAGES/gtk20-properties.mo
lib/locale/et/LC_MESSAGES/gtk20.mo
lib/locale/eu/LC_MESSAGES/atk10.mo
lib/locale/eu/LC_MESSAGES/glib20.mo
lib/locale/eu/LC_MESSAGES/gtk20-properties.mo
lib/locale/eu/LC_MESSAGES/gtk20.mo
lib/locale/fa/LC_MESSAGES/atk10.mo
lib/locale/fa/LC_MESSAGES/glib20.mo
lib/locale/fa/LC_MESSAGES/gtk20-properties.mo
lib/locale/fa/LC_MESSAGES/gtk20.mo
lib/locale/fi/LC_MESSAGES/atk10.mo
lib/locale/fi/LC_MESSAGES/glib20.mo
lib/locale/fi/LC_MESSAGES/gtk20-properties.mo
lib/locale/fi/LC_MESSAGES/gtk20.mo
lib/locale/fr/LC_MESSAGES/atk10.mo
lib/locale/fr/LC_MESSAGES/glib20.mo
lib/locale/fr/LC_MESSAGES/gtk20-properties.mo
lib/locale/fr/LC_MESSAGES/gtk20.mo
lib/locale/ga/LC_MESSAGES/atk10.mo
lib/locale/ga/LC_MESSAGES/glib20.mo
lib/locale/ga/LC_MESSAGES/gtk20-properties.mo
lib/locale/ga/LC_MESSAGES/gtk20.mo
lib/locale/gl/LC_MESSAGES/atk10.mo
lib/locale/gl/LC_MESSAGES/glib20.mo
lib/locale/gl/LC_MESSAGES/gtk20-properties.mo
lib/locale/gl/LC_MESSAGES/gtk20.mo
lib/locale/gu/LC_MESSAGES/atk10.mo
lib/locale/gu/LC_MESSAGES/glib20.mo
lib/locale/gu/LC_MESSAGES/gtk20-properties.mo
lib/locale/gu/LC_MESSAGES/gtk20.mo
lib/locale/he/LC_MESSAGES/atk10.mo
lib/locale/he/LC_MESSAGES/glib20.mo
lib/locale/he/LC_MESSAGES/gtk20-properties.mo
lib/locale/he/LC_MESSAGES/gtk20.mo
lib/locale/hi/LC_MESSAGES/atk10.mo
lib/locale/hi/LC_MESSAGES/glib20.mo
lib/locale/hi/LC_MESSAGES/gtk20-properties.mo
lib/locale/hi/LC_MESSAGES/gtk20.mo
lib/locale/hr/LC_MESSAGES/atk10.mo
lib/locale/hr/LC_MESSAGES/glib20.mo
lib/locale/hr/LC_MESSAGES/gtk20-properties.mo
lib/locale/hr/LC_MESSAGES/gtk20.mo
lib/locale/hu/LC_MESSAGES/atk10.mo
lib/locale/hu/LC_MESSAGES/glib20.mo
lib/locale/hu/LC_MESSAGES/gtk20-properties.mo
lib/locale/hu/LC_MESSAGES/gtk20.mo
lib/locale/hy/LC_MESSAGES/glib20.mo
lib/locale/hy/LC_MESSAGES/gtk20-properties.mo
lib/locale/hy/LC_MESSAGES/gtk20.mo
lib/locale/ia/LC_MESSAGES/gtk20-properties.mo
lib/locale/ia/LC_MESSAGES/gtk20.mo
lib/locale/id/LC_MESSAGES/atk10.mo
lib/locale/id/LC_MESSAGES/glib20.mo
lib/locale/id/LC_MESSAGES/gtk20-properties.mo
lib/locale/id/LC_MESSAGES/gtk20.mo
lib/locale/io/LC_MESSAGES/gtk20-properties.mo
lib/locale/io/LC_MESSAGES/gtk20.mo
lib/locale/is/LC_MESSAGES/atk10.mo
lib/locale/is/LC_MESSAGES/glib20.mo
lib/locale/is/LC_MESSAGES/gtk20-properties.mo
lib/locale/is/LC_MESSAGES/gtk20.mo
lib/locale/it/LC_MESSAGES/atk10.mo
lib/locale/it/LC_MESSAGES/glib20.mo
lib/locale/it/LC_MESSAGES/gtk20-properties.mo
lib/locale/it/LC_MESSAGES/gtk20.mo
lib/locale/ja/LC_MESSAGES/atk10.mo
lib/locale/ja/LC_MESSAGES/glib20.mo
lib/locale/ja/LC_MESSAGES/gtk20-properties.mo
lib/locale/ja/LC_MESSAGES/gtk20.mo
lib/locale/ka/LC_MESSAGES/atk10.mo
lib/locale/ka/LC_MESSAGES/glib20.mo
lib/locale/ka/LC_MESSAGES/gtk20-properties.mo
lib/locale/ka/LC_MESSAGES/gtk20.mo
lib/locale/kn/LC_MESSAGES/atk10.mo
lib/locale/kn/LC_MESSAGES/glib20.mo
lib/locale/kn/LC_MESSAGES/gtk20-properties.mo
lib/locale/kn/LC_MESSAGES/gtk20.mo
lib/locale/ko/LC_MESSAGES/atk10.mo
lib/locale/ko/LC_MESSAGES/glib20.mo
lib/locale/ko/LC_MESSAGES/gtk20-properties.mo
lib/locale/ko/LC_MESSAGES/gtk20.mo
lib/locale/ku/LC_MESSAGES/atk10.mo
lib/locale/ku/LC_MESSAGES/glib20.mo
lib/locale/ku/LC_MESSAGES/gtk20-properties.mo
lib/locale/ku/LC_MESSAGES/gtk20.mo
lib/locale/li/LC_MESSAGES/atk10.mo
lib/locale/li/LC_MESSAGES/gtk20-properties.mo
lib/locale/li/LC_MESSAGES/gtk20.mo
lib/locale/lt/LC_MESSAGES/atk10.mo
lib/locale/lt/LC_MESSAGES/glib20.mo
lib/locale/lt/LC_MESSAGES/gtk20-properties.mo
lib/locale/lt/LC_MESSAGES/gtk20.mo
lib/locale/lv/LC_MESSAGES/atk10.mo
lib/locale/lv/LC_MESSAGES/glib20.mo
lib/locale/lv/LC_MESSAGES/gtk20-properties.mo
lib/locale/lv/LC_MESSAGES/gtk20.mo
lib/locale/mai/LC_MESSAGES/atk10.mo
lib/locale/mai/LC_MESSAGES/glib20.mo
lib/locale/mai/LC_MESSAGES/gtk20-properties.mo
lib/locale/mai/LC_MESSAGES/gtk20.mo
lib/locale/mg/LC_MESSAGES/glib20.mo
lib/locale/mi/LC_MESSAGES/gtk20-properties.mo
lib/locale/mi/LC_MESSAGES/gtk20.mo
lib/locale/mk/LC_MESSAGES/atk10.mo
lib/locale/mk/LC_MESSAGES/glib20.mo
lib/locale/mk/LC_MESSAGES/gtk20-properties.mo
lib/locale/mk/LC_MESSAGES/gtk20.mo
lib/locale/ml/LC_MESSAGES/atk10.mo
lib/locale/ml/LC_MESSAGES/glib20.mo
lib/locale/ml/LC_MESSAGES/gtk20-properties.mo
lib/locale/ml/LC_MESSAGES/gtk20.mo
lib/locale/mn/LC_MESSAGES/atk10.mo
lib/locale/mn/LC_MESSAGES/glib20.mo
lib/locale/mn/LC_MESSAGES/gtk20-properties.mo
lib/locale/mn/LC_MESSAGES/gtk20.mo
lib/locale/mr/LC_MESSAGES/atk10.mo
lib/locale/mr/LC_MESSAGES/glib20.mo
lib/locale/mr/LC_MESSAGES/gtk20-properties.mo
lib/locale/mr/LC_MESSAGES/gtk20.mo
lib/locale/ms/LC_MESSAGES/atk10.mo
lib/locale/ms/LC_MESSAGES/glib20.mo
lib/locale/ms/LC_MESSAGES/gtk20-properties.mo
lib/locale/ms/LC_MESSAGES/gtk20.mo
lib/locale/nb/LC_MESSAGES/atk10.mo
lib/locale/nb/LC_MESSAGES/glib20.mo
lib/locale/nb/LC_MESSAGES/gtk20-properties.mo
lib/locale/nb/LC_MESSAGES/gtk20.mo
lib/locale/ne/LC_MESSAGES/atk10.mo
lib/locale/ne/LC_MESSAGES/glib20.mo
lib/locale/ne/LC_MESSAGES/gtk20-properties.mo
lib/locale/ne/LC_MESSAGES/gtk20.mo
lib/locale/nl/LC_MESSAGES/atk10.mo
lib/locale/nl/LC_MESSAGES/glib20.mo
lib/locale/nl/LC_MESSAGES/gtk20-properties.mo
lib/locale/nl/LC_MESSAGES/gtk20.mo
lib/locale/nn/LC_MESSAGES/atk10.mo
lib/locale/nn/LC_MESSAGES/glib20.mo
lib/locale/nn/LC_MESSAGES/gtk20-properties.mo
lib/locale/nn/LC_MESSAGES/gtk20.mo
lib/locale/nso/LC_MESSAGES/gtk20-properties.mo
lib/locale/nso/LC_MESSAGES/gtk20.mo
lib/locale/oc/LC_MESSAGES/atk10.mo
lib/locale/oc/LC_MESSAGES/glib20.mo
lib/locale/oc/LC_MESSAGES/gtk20-properties.mo
lib/locale/oc/LC_MESSAGES/gtk20.mo
lib/locale/or/LC_MESSAGES/atk10.mo
lib/locale/or/LC_MESSAGES/glib20.mo
lib/locale/or/LC_MESSAGES/gtk20-properties.mo
lib/locale/or/LC_MESSAGES/gtk20.mo
lib/locale/pa/LC_MESSAGES/atk10.mo
lib/locale/pa/LC_MESSAGES/glib20.mo
lib/locale/pa/LC_MESSAGES/gtk20-properties.mo
lib/locale/pa/LC_MESSAGES/gtk20.mo
lib/locale/pl/LC_MESSAGES/atk10.mo
lib/locale/pl/LC_MESSAGES/glib20.mo
lib/locale/pl/LC_MESSAGES/gtk20-properties.mo
lib/locale/pl/LC_MESSAGES/gtk20.mo
lib/locale/ps/LC_MESSAGES/atk10.mo
lib/locale/ps/LC_MESSAGES/glib20.mo
lib/locale/ps/LC_MESSAGES/gtk20-properties.mo
lib/locale/ps/LC_MESSAGES/gtk20.mo
lib/locale/pt/LC_MESSAGES/atk10.mo
lib/locale/pt/LC_MESSAGES/glib20.mo
lib/locale/pt/LC_MESSAGES/gtk20-properties.mo
lib/locale/pt/LC_MESSAGES/gtk20.mo
lib/locale/pt_BR/LC_MESSAGES/atk10.mo
lib/locale/pt_BR/LC_MESSAGES/glib20.mo
lib/locale/pt_BR/LC_MESSAGES/gtk20-properties.mo
lib/locale/pt_BR/LC_MESSAGES/gtk20.mo
lib/locale/ro/LC_MESSAGES/atk10.mo
lib/locale/ro/LC_MESSAGES/glib20.mo
lib/locale/ro/LC_MESSAGES/gtk20-properties.mo
lib/locale/ro/LC_MESSAGES/gtk20.mo
lib/locale/ru/LC_MESSAGES/atk10.mo
lib/locale/ru/LC_MESSAGES/glib20.mo
lib/locale/ru/LC_MESSAGES/gtk20-properties.mo
lib/locale/ru/LC_MESSAGES/gtk20.mo
lib/locale/rw/LC_MESSAGES/atk10.mo
lib/locale/rw/LC_MESSAGES/glib20.mo
lib/locale/rw/LC_MESSAGES/gtk20-properties.mo
lib/locale/rw/LC_MESSAGES/gtk20.mo
lib/locale/si/LC_MESSAGES/atk10.mo
lib/locale/si/LC_MESSAGES/glib20.mo
lib/locale/si/LC_MESSAGES/gtk20-properties.mo
lib/locale/si/LC_MESSAGES/gtk20.mo
lib/locale/sk/LC_MESSAGES/atk10.mo
lib/locale/sk/LC_MESSAGES/glib20.mo
lib/locale/sk/LC_MESSAGES/gtk20-properties.mo
lib/locale/sk/LC_MESSAGES/gtk20.mo
lib/locale/sl/LC_MESSAGES/atk10.mo
lib/locale/sl/LC_MESSAGES/glib20.mo
lib/locale/sl/LC_MESSAGES/gtk20-properties.mo
lib/locale/sl/LC_MESSAGES/gtk20.mo
lib/locale/sq/LC_MESSAGES/atk10.mo
lib/locale/sq/LC_MESSAGES/glib20.mo
lib/locale/sq/LC_MESSAGES/gtk20-properties.mo
lib/locale/sq/LC_MESSAGES/gtk20.mo
lib/locale/sr/LC_MESSAGES/atk10.mo
lib/locale/sr/LC_MESSAGES/glib20.mo
lib/locale/sr/LC_MESSAGES/gtk20-properties.mo
lib/locale/sr/LC_MESSAGES/gtk20.mo
lib/locale/sr@ije/LC_MESSAGES/atk10.mo
lib/locale/sr@ije/LC_MESSAGES/glib20.mo
lib/locale/sr@ije/LC_MESSAGES/gtk20-properties.mo
lib/locale/sr@ije/LC_MESSAGES/gtk20.mo
lib/locale/sr@latin/LC_MESSAGES/atk10.mo
lib/locale/sr@latin/LC_MESSAGES/glib20.mo
lib/locale/sr@latin/LC_MESSAGES/gtk20-properties.mo
lib/locale/sr@latin/LC_MESSAGES/gtk20.mo
lib/locale/sv/LC_MESSAGES/atk10.mo
lib/locale/sv/LC_MESSAGES/glib20.mo
lib/locale/sv/LC_MESSAGES/gtk20-properties.mo
lib/locale/sv/LC_MESSAGES/gtk20.mo
lib/locale/ta/LC_MESSAGES/atk10.mo
lib/locale/ta/LC_MESSAGES/glib20.mo
lib/locale/ta/LC_MESSAGES/gtk20-properties.mo
lib/locale/ta/LC_MESSAGES/gtk20.mo
lib/locale/te/LC_MESSAGES/atk10.mo
lib/locale/te/LC_MESSAGES/glib20.mo
lib/locale/te/LC_MESSAGES/gtk20-properties.mo
lib/locale/te/LC_MESSAGES/gtk20.mo
lib/locale/th/LC_MESSAGES/atk10.mo
lib/locale/th/LC_MESSAGES/glib20.mo
lib/locale/th/LC_MESSAGES/gtk20-properties.mo
lib/locale/th/LC_MESSAGES/gtk20.mo
lib/locale/tk/LC_MESSAGES/atk10.mo
lib/locale/tk/LC_MESSAGES/gtk20-properties.mo
lib/locale/tk/LC_MESSAGES/gtk20.mo
lib/locale/tl/LC_MESSAGES/glib20.mo
lib/locale/tr/LC_MESSAGES/atk10.mo
lib/locale/tr/LC_MESSAGES/glib20.mo
lib/locale/tr/LC_MESSAGES/gtk20-properties.mo
lib/locale/tr/LC_MESSAGES/gtk20.mo
lib/locale/tt/LC_MESSAGES/atk10.mo
lib/locale/tt/LC_MESSAGES/glib20.mo
lib/locale/tt/LC_MESSAGES/gtk20-properties.mo
lib/locale/tt/LC_MESSAGES/gtk20.mo
lib/locale/ug/LC_MESSAGES/atk10.mo
lib/locale/uk/LC_MESSAGES/atk10.mo
lib/locale/uk/LC_MESSAGES/glib20.mo
lib/locale/uk/LC_MESSAGES/gtk20-properties.mo
lib/locale/uk/LC_MESSAGES/gtk20.mo
lib/locale/ur/LC_MESSAGES/gtk20-properties.mo
lib/locale/ur/LC_MESSAGES/gtk20.mo
lib/locale/uz/LC_MESSAGES/gtk20-properties.mo
lib/locale/uz/LC_MESSAGES/gtk20.mo
lib/locale/uz@cyrillic/LC_MESSAGES/gtk20-properties.mo
lib/locale/uz@cyrillic/LC_MESSAGES/gtk20.mo
lib/locale/vi/LC_MESSAGES/atk10.mo
lib/locale/vi/LC_MESSAGES/glib20.mo
lib/locale/vi/LC_MESSAGES/gtk20-properties.mo
lib/locale/vi/LC_MESSAGES/gtk20.mo
lib/locale/wa/LC_MESSAGES/atk10.mo
lib/locale/wa/LC_MESSAGES/glib20.mo
lib/locale/wa/LC_MESSAGES/gtk20-properties.mo
lib/locale/wa/LC_MESSAGES/gtk20.mo
lib/locale/xh/LC_MESSAGES/atk10.mo
lib/locale/xh/LC_MESSAGES/glib20.mo
lib/locale/xh/LC_MESSAGES/gtk20-properties.mo
lib/locale/xh/LC_MESSAGES/gtk20.mo
lib/locale/yi/LC_MESSAGES/atk10.mo
lib/locale/yi/LC_MESSAGES/glib20.mo
lib/locale/yi/LC_MESSAGES/gtk20-properties.mo
lib/locale/yi/LC_MESSAGES/gtk20.mo
lib/locale/zh_CN/LC_MESSAGES/atk10.mo
lib/locale/zh_CN/LC_MESSAGES/glib20.mo
lib/locale/zh_CN/LC_MESSAGES/gtk20-properties.mo
lib/locale/zh_CN/LC_MESSAGES/gtk20.mo
lib/locale/zh_HK/LC_MESSAGES/atk10.mo
lib/locale/zh_HK/LC_MESSAGES/glib20.mo
lib/locale/zh_HK/LC_MESSAGES/gtk20-properties.mo
lib/locale/zh_HK/LC_MESSAGES/gtk20.mo
lib/locale/zh_TW/LC_MESSAGES/atk10.mo
lib/locale/zh_TW/LC_MESSAGES/glib20.mo
lib/locale/zh_TW/LC_MESSAGES/gtk20-properties.mo
lib/locale/zh_TW/LC_MESSAGES/gtk20.mo
share/locale/*/LC_MESSAGES/atk10.mo
share/locale/*/LC_MESSAGES/glib20.mo
share/locale/*/LC_MESSAGES/gtk20-properties.mo
share/locale/*/LC_MESSAGES/gtk20.mo
share/locale/be/LC_MESSAGES/gettext-runtime.mo
share/locale/ca/LC_MESSAGES/gettext-runtime.mo
share/locale/ca/LC_MESSAGES/libiconv.mo
share/locale/cs/LC_MESSAGES/gettext-runtime.mo
share/locale/da/LC_MESSAGES/gettext-runtime.mo
share/locale/da/LC_MESSAGES/libiconv.mo
share/locale/de/LC_MESSAGES/gettext-runtime.mo
share/locale/de/LC_MESSAGES/libiconv.mo
share/locale/el/LC_MESSAGES/gettext-runtime.mo
share/locale/en@boldquot/LC_MESSAGES/gettext-runtime.mo
share/locale/en@quot/LC_MESSAGES/gettext-runtime.mo
share/locale/eo/LC_MESSAGES/libiconv.mo
share/locale/es/LC_MESSAGES/gettext-runtime.mo
share/locale/es/LC_MESSAGES/libiconv.mo
share/locale/et/LC_MESSAGES/gettext-runtime.mo
share/locale/fi/LC_MESSAGES/gettext-runtime.mo
share/locale/fi/LC_MESSAGES/libiconv.mo
share/locale/fr/LC_MESSAGES/gettext-runtime.mo
share/locale/fr/LC_MESSAGES/libiconv.mo
share/locale/ga/LC_MESSAGES/libiconv.mo
share/locale/gl/LC_MESSAGES/gettext-runtime.mo
share/locale/gl/LC_MESSAGES/libiconv.mo
share/locale/hr/LC_MESSAGES/libiconv.mo
share/locale/hu/LC_MESSAGES/libiconv.mo
share/locale/id/LC_MESSAGES/gettext-runtime.mo
share/locale/id/LC_MESSAGES/libiconv.mo
share/locale/it/LC_MESSAGES/gettext-runtime.mo
share/locale/it/LC_MESSAGES/libiconv.mo
share/locale/ja/LC_MESSAGES/gettext-runtime.mo
share/locale/ko/LC_MESSAGES/gettext-runtime.mo
share/locale/locale.alias
share/locale/nl/LC_MESSAGES/gettext-runtime.mo
share/locale/nn/LC_MESSAGES/gettext-runtime.mo
share/locale/no/LC_MESSAGES/gettext-runtime.mo
share/locale/pl/LC_MESSAGES/gettext-runtime.mo
share/locale/pt/LC_MESSAGES/gettext-runtime.mo
share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo
share/locale/pt_BR/LC_MESSAGES/libiconv.mo
share/locale/ro/LC_MESSAGES/gettext-runtime.mo
share/locale/ro/LC_MESSAGES/libiconv.mo
share/locale/ru/LC_MESSAGES/gettext-runtime.mo
share/locale/ru/LC_MESSAGES/libiconv.mo
share/locale/sk/LC_MESSAGES/gettext-runtime.mo
share/locale/sk/LC_MESSAGES/libiconv.mo
share/locale/sl/LC_MESSAGES/gettext-runtime.mo
share/locale/sl/LC_MESSAGES/libiconv.mo
share/locale/sr/LC_MESSAGES/gettext-runtime.mo
share/locale/sv/LC_MESSAGES/gettext-runtime.mo
share/locale/sv/LC_MESSAGES/libiconv.mo
share/locale/tr/LC_MESSAGES/gettext-runtime.mo
share/locale/tr/LC_MESSAGES/libiconv.mo
share/locale/uk/LC_MESSAGES/gettext-runtime.mo
share/locale/uk/LC_MESSAGES/libiconv.mo
share/locale/zh_CN/LC_MESSAGES/gettext-runtime.mo
share/locale/zh_TW/LC_MESSAGES/gettext-runtime.mo
share/man/man1/cjpeg.1
share/man/man1/djpeg.1
share/man/man1/envsubst.1
share/man/man1/gettext.1
share/man/man1/glib-genmarshal.1
share/man/man1/glib-gettextize.1
share/man/man1/glib-mkenums.1
share/man/man1/gobject-query.1
share/man/man1/gtester-report.1
share/man/man1/gtester.1
share/man/man1/iconv.1
share/man/man1/jpegtran.1
share/man/man1/ngettext.1
share/man/man1/pango-querymodules.1
share/man/man1/pango-view.1.gz
share/man/man1/rdjpgcom.1
share/man/man1/wrjpgcom.1
share/man/man1/xmlwf.1
share/man/man3/bind_textdomain_codeset.3
share/man/man3/bindtextdomain.3
share/man/man3/dcgettext.3
share/man/man3/dcngettext.3
share/man/man3/dgettext.3
share/man/man3/dngettext.3
share/man/man3/gettext.3
share/man/man3/iconv.3
share/man/man3/iconv_close.3
share/man/man3/iconv_open.3
share/man/man3/libpng.3
share/man/man3/libpngpf.3
share/man/man3/ngettext.3
share/man/man3/textdomain.3
share/man/man5/png.5
share/themes/Default/gtk-2.0-key/gtkrc
share/themes/Emacs/gtk-2.0-key/gtkrc
share/themes/MS-Windows/gtk-2.0/gtkrc
share/themes/Raleigh/gtk-2.0/gtkrc

Unpack the Zip archive to a directory, for example, C:\Program Files\Common Files\GTK. Other possible choices for GTK+ installatioon folder could be:


  • C:\Program Files\Common Files\GTK\2.16.4
  • C:\Program Files\GTK\2.16.4
  • C:\Users\Public\GTK\2.16.4
  • C:\Windows\GTK\2.16.4
  • C:\Windows\System
  • C:\Windows\System\GTK\2.16.4
  • C:\Windows\System32
  • C:\Windows\System32\GTK\2.16.4

Then, add the GTK+ directory to %PATH%, as shown below.



Adding GTK bin to %PATH%


This section assumes that you're using Windows Vista. Open the Start menu, right-click on Computer and choose Properties.


Right-Click on Computer

Click on Advanced system settings on the left side of the window.


Vista_System_Properties

At the System Properties dialog, click on Environment Variables at the bottom. At the Environment Variables dialog, click on New. Create a new user variable, PATH as C:\Program Files\Common Files\GTK\bin;%PATH%:




Vista_Environment_Variables
Vista_New_User_Variable

Vista_LANG_variable


You can also define a variable LANG to localize your GTK applications, for example, fr_FR.UTF-8 for French.



Customizing GTK with .gtkrc-2.0


The default GTK look may not be appealing. To customize GTK look, we use GTK themes. When we compile GTK for Windows, we get two GTK theme engines, libpixmap.dll and libwimp.dll. We are going to use the Wimp theme engine, which best matches Windows look. Create a file .../etc/gtk-2.0/gtkrc for systemwide customizaiton with the following contents. Alternatively, create a file .gtkrc-2.0 in your personal folder, for example, C:\Users\Joe\.gtkrc-2.0 .


gtk-theme-name = "MS-Windows"

style "user-font"
{
font_name="Sans 9"
}
widget_class "*" style "user-font"

This assumes that you have the file libwimp.dll and also a theme directory at .../share/themes/MS-Windows . You can also specify other fonts, such as Serif 10 or Arial Bold Italic 10. Start a GTK application like Pidgin, GIMP or X-Chat and check if it looks good.



Compatibility with Pidgin


If you have compiled GTK on your own following my tutorial but Pidgin installer without GTK+ won't install because it can't find your GTK+, you can use PeaZip to manually extract files from the installer. Remember to move subfolders in $_OUTDIR to the Pidgin top folder. Then, create a shortcut on your Desktop pointing to C:\Program Files\Pidgin\pidgin.exe.


My GTK compilation will work with Pidgin if the following files are copied into the Pidgin directory:


iconv.dll

intl.dll

zlib1.dll

These files are easily found on the Internet (1).



Personalize Fontconfig and Pango


Now that GTK+ is working, you can further personalize it by tweaking Fontconfig and Pango. To fine-tune fontconfig, edit fonts.conf. To tweak Pango, create a file .pango.aliases in your personal folder and edit it.

Friday, June 5, 2009

Building gtk-gnutella for Windows

I built gtk-gnutella for the Windows platform using MinGW. gtk-gnutella is an application that allows you to share files in the gnutella P2P network. Here I show how I built GTK-gnutella step-by-step:




  1. Install MinGW


    First of all, I installed MinGW. GCC 4.4 and higher versions are recommended.



  2. Compile Pthread and Regex (Optional)


    Build pthread and regex as shown in the following posts.




  3. Build GTK+ Library


    Follow the instruction in the following post to compile the whole GTK+ library.




  4. Build GnuTLS (Optional)


    I think GnuTLS is optional but it provides secure communication between gnutella clients. I chose to build GTK-gnutella with gnuTLS features. So I compiled GnuTLS as shown in this post.



  5. Unpack the Source


    Then, I downloaded the gtk-gnutella source and unpacked it in my HOME directory.


    cd $HOME

    tar xjvf gtk-gnutella-0.96.6.tar.bz2

    cd gtk-gnutella-0.96.6


  6. Run the Configure script


    Then, I ran ./Configure. For convenience, I am providing here my config.sh file generated by the Configure script. You can copy this file to your source tree before running the Configure script.


    #!/bin/sh
    #
    # This file was produced by running the Configure script. It holds all the
    # definitions figured out by Configure. Should you modify one of these values,
    # do not forget to propagate your changes by running "Configure -der". You may
    # instead choose to run each of the .SH files by yourself, or "Configure -S".
    #

    # Package name : gtk-gnutella
    # Source directory : .
    # Configuration time: Wed Aug 15 14:50:53 HST 2012
    # Configured by : Ken
    # Target system : mingw32_nt-6.1 a7n8x 1.0.17(0.4832) 2011-04-24 23:39 i686 msys

    : Configure command line arguments.
    config_arg0='./Configure'
    config_args=''
    config_argc=0

    Author=''
    Date=''
    Header=''
    Id='$Id'
    Locker=''
    Log=''
    RCSfile=''
    Revision=''
    Source=''
    State=''
    _a='.a'
    _exe='.exe'
    _o='.o'
    afs='false'
    afsroot='/afs'
    alignbytes='8'
    aphostname=''
    ar='/mingw/bin/ar'
    archlib='/mingw/lib/gtk-gnutella'
    archlibexp='/mingw/lib/gtk-gnutella'
    archname='i686-mingw'
    archobjs=''
    awk='/bin/awk'
    bash=''
    bin='/mingw/bin'
    binexp='/mingw/bin'
    bison='/bin/bison'
    byacc='byacc'
    byteorder='1234'
    c=''
    cat='/bin/cat'
    cc='/mingw/bin/gcc.exe'
    ccflags='-march=pentium2 -mtune=i586 -pipe -Wall -Wshadow -DMINGW32 -D_POSIX'
    ccname='gcc'
    ccversion=''
    cf_by='Ken'
    cf_time='Wed Aug 15 14:50:53 HST 2012'
    charsize='1'
    chgrp='/bin/chgrp'
    chmod='/bin/chmod'
    chown='/bin/chown'
    clocktype='int'
    comm=''
    compress=''
    contains='grep'
    cp='/bin/cp'
    cpio=''
    cpp='/mingw/bin/cpp'
    cpp_quote=''
    cpp_stuff='42'
    cppfilter=''
    cppflags='-march=pentium2 -mtune=i586 -pipe -Wall -Wshadow -DMINGW32 -D_POSIX'
    cpplast='-'
    cppminus='-'
    cpprun='/mingw/bin/gcc.exe -E'
    cppstdin='/mingw/bin/gcc.exe -E'
    csh=''
    d_access='define'
    d_alarm='undef'
    d_arc4random='undef'
    d_archlib='define'
    d_attribut='define'
    d_backtrace='undef'
    d_bcmp='undef'
    d_bcopy='undef'
    d_bfd_lib='undef'
    d_bindtxtcode='define'
    d_bsd='undef'
    d_built_clz='define'
    d_built_ctz='define'
    d_built_popcount='define'
    d_bzero='undef'
    d_can64='define'
    d_closefrom='undef'
    d_const='define'
    d_dbus='undef'
    d_deflate='define'
    d_dev_poll='undef'
    d_dirent_d_type='undef'
    d_dirnamlen=''
    d_dladdr='undef'
    d_dos='undef'
    d_enablenls='define'
    d_end_symbol='define'
    d_eofnblk='define'
    d_epoll='undef'
    d_etext_symbol='undef'
    d_eunice='undef'
    d_fast_assert='undef'
    d_fork='undef'
    d_ftime='undef'
    d_getaddrinfo='define'
    d_geteuid='undef'
    d_gethname='undef'
    d_getifaddrs='undef'
    d_getinvent='undef'
    d_getlogin='undef'
    d_getppid='undef'
    d_gettblsz='define'
    d_gettext='define'
    d_gettimeod='define'
    d_getuid='undef'
    d_glib='define'
    d_gnulibc='undef'
    d_gnutls='define'
    d_gtk='define'
    d_headless='undef'
    d_herror='undef'
    d_hstrerror='undef'
    d_iconv='define'
    d_ieee754='define'
    d_ilp32='define'
    d_ilp64='undef'
    d_index='undef'
    d_inflate='define'
    d_iptos='undef'
    d_ipv6='define'
    d_isascii='define'
    d_kevent_int_udata='undef'
    d_kqueue='undef'
    d_linux='undef'
    d_locale_charset='undef'
    d_lp64='undef'
    d_lstat='undef'
    d_madvise='undef'
    d_memalign='undef'
    d_memcpy='define'
    d_memmove='define'
    d_mempcpy='undef'
    d_mmap='undef'
    d_msghdr_msg_flags='undef'
    d_nanosleep='undef'
    d_nls='define'
    d_official='define'
    d_open3='define'
    d_os2='undef'
    d_pause='undef'
    d_phostname='undef'
    d_poll='undef'
    d_popen='define'
    d_portable='undef'
    d_posix_fadvise='undef'
    d_posix_memalign='undef'
    d_pread='undef'
    d_preadv='undef'
    d_pwage='undef'
    d_pwchange='undef'
    d_pwclass='undef'
    d_pwcomment='undef'
    d_pwexpire='undef'
    d_pwquota='undef'
    d_pwrite='undef'
    d_pwritev='undef'
    d_recvmsg='undef'
    d_regcomp='define'
    d_regparm='define'
    d_remotectrl='undef'
    d_rusage='undef'
    d_sbrk='undef'
    d_sched_yield='undef'
    d_select='define'
    d_sendfile='undef'
    d_setproctitle='undef'
    d_setsid='undef'
    d_sigaction='undef'
    d_sigprocmask='undef'
    d_sigsetjmp='undef'
    d_sockaddr_in_sin_len='undef'
    d_sockaddr_un='undef'
    d_socker_get='undef'
    d_statfs='undef'
    d_statvfs='undef'
    d_strchr='define'
    d_strlcat='undef'
    d_strlcpy='undef'
    d_sync_atomic='define'
    d_sysctl='undef'
    d_system='define'
    d_times='undef'
    d_ttyname='undef'
    d_uctx_mctx='undef'
    d_uctx_mctx_gregs='undef'
    d_uname='undef'
    d_useglib1='undef'
    d_useglib2='define'
    d_usegtk1='undef'
    d_usegtk2='define'
    d_usleep='define'
    d_voidsig='define'
    d_volatile='define'
    d_vsnprintf='define'
    d_waitpid='undef'
    d_windows='define'
    d_xenix='undef'
    date='/bin/date'
    dbuscflags=''
    dbusconfig='false'
    dbusldflags=''
    defvoidused='15'
    direntrytype=''
    eagain='EAGAIN'
    ebcdic='undef'
    echo='/bin/echo'
    egrep='/bin/egrep'
    emacs=''
    enablenls='true'
    eunicefix=':'
    expr='/bin/expr'
    fieldn='3'
    find=''
    firstmakefile=''
    flex=''
    from=':'
    gcc=''
    gccosandvers=''
    gccversion='4'
    glade='glade-2'
    glibcflags='-mms-bitfields -I/mingw/include/glib-2.0 -I/mingw/lib/glib-2.0/include -I/mingw/include'
    glibconfig='pkg-config glib-2.0 gobject-2.0'
    glibldflags='-L/mingw/lib -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lintl '
    glibpackage='glib-2.0 gobject-2.0'
    glibpth='/mingw/lib'
    glibversion='2'
    gmake=''
    gmsgfmt='/mingw/bin/msgfmt'
    gnulibc_version=''
    gnutlscflags=''
    gnutlsconfig='pkg-config gnutls'
    gnutlsldflags='-L/mingw/lib -lgnutls'
    grep='/bin/grep'
    groupcat=':'
    gtkcflags='-mms-bitfields -I/mingw/include/gtk-2.0 -I/mingw/lib/gtk-2.0/include -I/mingw/include/atk-1.0 -I/mingw/include/cairo -I/mingw/include/gdk-pixbuf-2.0 -I/mingw/include/pango-1.0 -I/mingw/include/glib-2.0 -I/mingw/lib/glib-2.0/include -I/mingw/include -I/mingw/include/pixman-1 -I/mingw/include/libpng15'
    gtkconfig='pkg-config gtk+-2.0'
    gtkgversion='0.98.3'
    gtkldflags='-Wl,-luuid -L/mingw/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -limm32 -lshell32 -lole32 -latk-1.0 -lpangocairo-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl'
    gtkpackage='gtk+-2.0'
    gtkversion='2'
    gzip=''
    h_fcntl='false'
    h_sysfile='true'
    hint='previous'
    hostcat=':'
    huge=''
    i_alloca='undef'
    i_arpainet='undef'
    i_dirent='define'
    i_dlfcn='undef'
    i_execinfo='undef'
    i_fcntl='undef'
    i_iconv='define'
    i_ifaddrs='undef'
    i_inttypes='define'
    i_invent='undef'
    i_langinfo='undef'
    i_libcharset='define'
    i_libintl='define'
    i_limits='define'
    i_linux_netlink='undef'
    i_linux_rtnetlink='undef'
    i_malloc='define'
    i_math='define'
    i_mswsock='define'
    i_netdb='undef'
    i_netif='undef'
    i_netroute='undef'
    i_niin='undef'
    i_niip='undef'
    i_poll='undef'
    i_pthread='define'
    i_pwd='undef'
    i_regex='define'
    i_sched='define'
    i_stdarg='define'
    i_stdlib='define'
    i_string='define'
    i_sysfile='define'
    i_sysin='undef'
    i_sysmman='undef'
    i_sysmount='undef'
    i_sysparam='define'
    i_syspoll='undef'
    i_sysresrc='undef'
    i_sysselct='undef'
    i_syssendfile='undef'
    i_syssock='undef'
    i_sysstat='define'
    i_sysstatvfs='undef'
    i_syssysctl='undef'
    i_systime='define'
    i_systimeb='define'
    i_systimek='undef'
    i_systimes='undef'
    i_systypes='define'
    i_sysun='undef'
    i_sysutsname='undef'
    i_sysvfs='undef'
    i_syswait='undef'
    i_time='undef'
    i_ucontext='undef'
    i_unistd='define'
    i_varargs='undef'
    i_varhdr='stdarg.h'
    i_winsock2='define'
    i_ws2tcpip='define'
    i_zlib='define'
    ieee754_byteorder='1234'
    ilp='32'
    incpath=''
    inews=''
    install='/bin/install.exe'
    installarchlib='/mingw/lib/gtk-gnutella'
    installbin='/mingw/bin'
    installdir='mkdir -p'
    installmansrc=''
    installprivlib='/mingw/lib/gtk-gnutella'
    intsize='4'
    issymlink=''
    ksh=''
    large=''
    ldflags='-Wl,--enable-auto-image-base -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc'
    less=''
    libc=''
    libnames=''
    libpth='/mingw/lib'
    libs='-liberty -lws2_32 -lpthread -lregex -lz -lintl -liconv -limagehlp -liphlpapi -lpowrprof -lpsapi -lkernel32'
    libscheck=''
    libsdirs=' /mingw/lib'
    libsfiles=' libbfd.a libm.a'
    libsfound=' /mingw/lib/libbfd.a /mingw/lib/libm.a'
    libspath=' /mingw/lib /mingw/lib'
    libswanted='bfd iberty sendfile z resolv iconv m intl dl'
    line=''
    lint=''
    lkflags=''
    ln='/bin/ln'
    lns='ln -s'
    locale='/mingw/share/locale'
    localeexp='/mingw/share/locale'
    locincpth=''
    loclibpth=''
    longsize='4'
    lp=''
    lpr=''
    ls=''
    mail=''
    mailx=''
    make='/bin/make'
    make_set_make='#'
    manext='0'
    mansrc=' '
    mansrcexp=''
    medium=''
    mips_type=''
    mkdep='/c/Users/Ken/Downloads/gtk-gnutella-0.98.3/mkdep'
    mkdir='/bin/mkdir'
    models='none'
    more=''
    msgfmt='/mingw/bin/msgfmt'
    msgmerge='/mingw/bin/msgmerge'
    msgmerge_update='/mingw/bin/msgmerge --update'
    mv='/bin/mv'
    myarchname='i686-mingw'
    mydomain=''
    myhostname='lenovo-a8nvm'
    myuname='mingw32_nt-6.1 a7n8x 1.0.17(0.4832) 2011-04-24 23:39 i686 msys '
    n='-n'
    nawk='/bin/nawk'
    nm='/mingw/bin/nm'
    nm_opt=''
    nm_so_opt=''
    nofile=''
    nroff='nroff'
    o_nonblock=''
    official='true'
    optimize='-O2 -g0'
    orderlib='false'
    osname='mingw'
    osvers='1.0.17'
    package='gtk-gnutella'
    passcat=':'
    perl=''
    pg=''
    phostname='hostname'
    pkgsrc='/home/Ken/Downloads/gtk-gnutella-0.98.3'
    plibpth=''
    pmake=''
    pr=''
    prefix='/mingw'
    prefixexp='/mingw'
    privlib='/mingw/lib/gtk-gnutella'
    privlibexp='/mingw/lib/gtk-gnutella'
    prototype='define'
    ptrsize='4'
    ranlib=':'
    rd_nodata=''
    remotectrl='false'
    rm='/bin/rm'
    rmail=''
    run=''
    runnm='false'
    sed='/bin/sed'
    sendmail=''
    sh='/bin/sh'
    shar=''
    sharpbang='#!'
    shortsize='2'
    shsharp='true'
    sig_count='23'
    sig_name='ZERO NUM1 INT NUM3 ILL NUM5 NUM6 NUM7 FPE NUM9 NUM10 SEGV NUM12 NUM13 NUM14 TERM NUM16 NUM17 NUM18 NUM19 NUM20 BREAK ABRT '
    sig_name_init='"ZERO", "NUM1", "INT", "NUM3", "ILL", "NUM5", "NUM6", "NUM7", "FPE", "NUM9", "NUM10", "SEGV", "NUM12", "NUM13", "NUM14", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "NUM20", "BREAK", "ABRT", 0'
    sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 '
    sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0'
    sig_size='23'
    signal_t='void'
    sleep=''
    smail=''
    small=''
    so='dll'
    sockercflags=''
    sockerldflags=''
    sort='/bin/sort'
    spackage='Gtk-gnutella'
    spitshell='cat'
    split=''
    src='.'
    startsh='#!/bin/sh'
    strings='/mingw/include/string.h'
    submit=''
    sysman='/mingw/share/man'
    tablesize='NOFILE'
    tail=''
    tar=''
    targetarch=''
    tbl=''
    tee=''
    test='test'
    timeincl='/mingw/include/sys/time.h '
    to=':'
    touch='/bin/touch'
    tr='/bin/tr'
    trnl='\n'
    troff=''
    uname='/bin/uname'
    uniq='/bin/uniq'
    usecrosscompile='undef'
    usenm='false'
    usrinc='/mingw/include'
    uuname=''
    vi=''
    voidflags='15'
    wc='/bin/wc'
    xgettext='/mingw/bin/xgettext'
    xlibpth='/mingw/lib'
    yacc='bison -y'
    yaccflags=''
    zcat=''
    zip=''
    CONFIG=true

    Alternatively, if your config.sh needs no modification, just run the following commands.


    ./Configure -S
    make depend


  7. Before running make, open src/Makefile and insert -mwindows into the gtk-gnutella section:

  8. gtk-gnutella:  $(OBJ) $(EXTRA)
    $(RM) $@
    if test -f $@$(_EXE); then \
    $(MV) $@$(_EXE) $@~$(_EXE); fi
    $(CC) -o $@ $(OBJ) $(EXTRA) -mwindows $(JLDFLAGS) $(LIBS)

    This prevents GTK-gnutella from outputting error logs to a black console window.



  9. Then, I compiled gtk-gnutella with the following commands:


    make

    make install




gtk-gnutella_winnt

About This Blog

KBlog logo This blog seeks to share useful information on freely available fonts on the Internet. Thanks for visiting the blog and posting your comments.

© Contents by KBlog

© Blogger template by Emporium Digital 2008

Followers

Total Pageviews

CyberChimps Professional WordPress Themes
Powered By Blogger