2015年2月27日 星期五

Install Native GTK+/GTK+3 in OSX

1. Install Homebrew (http://brew.sh/)
2. Install gtk+, gtk+3 with config
  >> brew install gtk+ gtk+3 --without-x --without-x11 --with-gtk+3

If already install gtk+ and gtk+3 in OSX, remove it.
  >> brew deps gtk+ | xargs brew remove --force
  >> brew deps gtk+3 | xargs brew remove --force


Test Program:

main.c
#include <stdio.h>
#include <gtk/gtk.h>

int main (int argc, char *argv[])
{
  GtkWidget *window;
  gtk_init (&argc, &argv);
  printf ("GTK Ver: %d.%d.%d\n", gtk_major_version, gtk_minor_version, gtk_micro_version);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW(window), "GTK");
  g_signal_connect (window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
  gtk_widget_show (window);
  gtk_main ();
  return 0;
}


Makefile
# Makefile of gtk+-2.0
all:
    gcc `pkg-config --cflags gtk+-2.0` -o main main.c `pkg-config --libs gtk+-2.0`


Makefile
# Makefile of gtk+-3.0
all:
    gcc `pkg-config --cflags gtk+-3.0` -o main main.c `pkg-config --libs gtk+-3.0`


If meet 'xcb-shm' not found issue, please
export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
or
echo "export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig" >> ~/.profile


2015年2月13日 星期五

OpenShift Redmine with private Bitbucket

1. Use redmine_bitbucket plugin
  (git@bitbucket.org:steveqx/redmine_bitbucket.git)
2. In "plugins" directory:
  $ git submodule add -f git@bitbucket.org:steveqx/redmine_bitbucket.git
3. git push
4. Migrate db:
  $ rhc ssh
  $ cd ~/app-root/repo
  $ RAILS_ENV=production rake redmine:plugs NAME=redmine_bitbucket
5. Generate ssh key for private repos (id_rsa, id_rsa.pub)
  $ rhc ssh
  $ ssh-keygen -t rsa -f ~/app-root/data/id_rsa
6. Upload "id_rsa.pub" to Bitbucket private repo's "Deployment keys"
7. Add "~/app-root/data/wrapper.sh" with "chmod a+x ~/app-root/data/wrapper.sh"
  #!/bin/bash
  ssh -i $OPENSHIFT_DATA_DIR/id_rsa -o StrictHostKeyChecking=no $1 $2
8. Modify "plugins/redmine_bitbucket/lib/system_command.rb"
  about line 10:
    success = Kernel.system("#{command} > # {logfile.path} 2>&1")
  to:
    success = Kernel.system("GIT_SSH=$OPENSHIFT_DATA_DIR/wrapper.sh #{command} > #{logfile.path} 2>&1")
9. Restart
  $ rhc ssh
  $ ctl_all restart
10. Setting hook path in Bitbucket:
  http://[redmine_url]/hooks/bitbucket/[project_name]