2009-01-13

OpenSolaris can do CIFS and save my day

The OpenSolaris OpenSolaris CIFS service is really cool and has just saved me from loosing all my digital pictures. I have a laptop with XP that holds all my digital pictures (tens of thousands) and it has started to give up. XP tends to do that over time. So, I realised that I have a desktop with OpenSolaris installed since way back. It has lots of disk so I just did a 'pkg image-update' and there I was with a machine capable of acting as the family workgroup data server via CIFS. Really cool. Google for OpenSolaris CIFS workgroup to learn more. Just a couple of commands and off you go...

2009-01-06

Koha is best with Latin1

So, I've spent like 7 full working days on trying to get Koha to work with UTF-8 for no good at all. I switched all configs to Latin1 and suddenly it works somewhat better. Here's how I did;



vim /etc/apache2/apache2.conf
-----------------------------
#AddCharset UTF-8 .utf8
#AddDefaultCharset UTF-8

AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1



vim /etc/php5/apache2/php.ini
----------------------------
#default_charset = "UTF-8"
default_charset = "ISO-8859-1"



vim /etc/mysql/my.cnf
(pid-file = /var/run/mysqld/mysqld.pid)
---------------------
#[client]
#character_set_client=utf8
#[mysql]
#default-character-set=utf8
#[mysqld]
#init-connect = 'SET NAMES utf8'
#character-set-server=utf8
#collation-server=utf8_swedish_ci



[client]
default-character-set=latin1
#[php-cgi]
#default-character-set=latin1
[mysql]
default-character-set=latin1
#[mysqladmin]
#default-character-set=latin1
[mysqlcheck]
default-character-set=latin1
[mysqldump]
default-character-set=latin1
[mysqlimport]
default-character-set=latin1
[mysqld]
init-connect='SET NAMES latin1'
character-set-server = latin1
default-character-set = latin1
collation-server=utf8_swedish_ci

Koha and UTF-8

So, once again I took the fight with Koha to make it work with non ASCII characters. I set the the following variables for MySQL, Apache and PHP


vim /etc/apache2/apache2.conf
AddCharset UTF-8 .utf8
AddDefaultCharset UTF-8

vim/etc/php5/apache2/php.ini
default_charset = "utf-8"



vim /etc/mysql/my.cnf
[client]
character_set_client=utf8
[mysql]
default-character-set=utf8
[mysqld]
init-connect = 'SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_swedish_ci

/etc/rc3.d/S19mysql restart

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_swedish_ci |
| collation_server | utf8_swedish_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)





However when I try to add an item it cuts of the text at the non ASCII char. Look at these pictures:



Looks good (and a good book too)

Now I import the search result:



See, the prominent writer JMG Le Clézio is imported as "Le Cl", text cut at the é.

I can't put my finger on where the error is but it feels like it's PHP that is bugging me...

Update1: I went into the System Preferences->Intranet and changed Template Encoding to UTF-8 ( from ISO 8859-1). Guess what happened? Now the text is still cut and the non ASCII character is shown like a �

This drives me nuts...

2008-07-23

Install only in global zone

If you have several zones on your machine then you might not want to install all packages into all zones. User tools like StarOffice are mostly only needed in the global zone.

pkgadd -G

will do the trick.

Two ways a pkg can be installed in the global zone only.

a) SUNW_PKG_ALLZONES=false
SUNW_PKG_THISZONE=true

b) SUNW_PKG_ALLZONES=false
SUNW_PKG_THISZONE=false
# pkgadd was run with -G


Trolling though the installed pkginfo files will give you (a), but
not (b). What you're probably looking for is
/var/sadm/install/gz-only-packages. That's a private interface though.





For Blastwave packages one can set the environment variable ADMINFLAG=' -G'
(Looks however that this is also passed to pkgrm which bails out. Have to check this...)
Looks like PKGADDFLAGS=-G is another way. Will check....

2008-07-16

2008-07-13

General instructions on updating to the latest OpenSolaris development build

Corrected instructions from what was first announced. (UNMOUNT)

Enclosed below are revised instructions for using "pkg image-update" to
update to the latest OpenSolaris development builds via
http://pkg.opensolaris.org/

For more information on this command and the Image Packaging System
(IPS) technology, refer to the pkg(1), beadm(1M) and pkg(5) manual
pages and the following documents

Getting Started With the Image Packaging System
http://dlc.sun.com/osol/docs/content/IPS/ggcph.html

Upgrading and Managing Your Boot Environments
http://dlc.sun.com/osol/docs/content/IPS/snap3.html

General instructions for updating to the latest OpenSolaris development build
=============================================================================
1) Before using the "image-update" subcommand, it is recommended that
the latest available version of the IPS software be installed for your
current boot environment (BE)

$ BUILD=`uname -v | sed s/snv_//`
$ pfexec pkg refresh
$ pfexec pkg install SUNWipkg@0.5.11-0.$BUILD
$ pfexec pkg install entire@0.5.11-0.$BUILD

2) Verify the build of OpenSolaris in the current BE

$ echo $BUILD

3) If you are running build 93 or greater, you can use "image-update"
directly as follows

$ pfexec pkg image-update

At this point, you can boot into the updated BE using reboot(1M) or
init(1M) as usual.

4) If you are using a build prior to 93, it is recommended one apply
the update directly to an alternate BE in order to work-around

2387 libbe.so:beCopy() frees nvlist variables before using them
http://defect.opensolaris.org/bz/show_bug.cgi?id=2387

First, display the list of the existing BEs on the system

$ beadm list
BE Active Active on Mountpoint Space
Name reboot Used
---- ------ --------- ---------- -----
opensolaris no no - 3.92G
opensolaris-1 yes yes - 17.06M

Next, choose the name of a new BE - if the most recent created BE is of
the form "opensolaris-" where is an integer, then a suitable
choice for the new BE is "opensolaris-". In the above example,
the new BE would be "opensolaris-2".

Finally, execute the following sequence of commands to create, mount
and update the new BE

$ pfexec beadm create opensolaris-
$ mkdir /tmp/mnt$$
$ pfexec beadm mount opensolaris- /tmp/mnt$$
$ pfexec pkg -R /tmp/mnt$$ image-update

5) If you are running build 86, the following step is required in order
to work-around

1979 libbe: be_activate needs to run installgrub
http://defect.opensolaris.org/bz/show_bug.cgi?id=1979

>>>>>>>>>> IMPORTANT <<<<<<<<<<

Due to changes in the GRUB boot system, one must manually update the
Master Boot Record (MBR) to include these latest changes. Failure to
follow these instructions when updating from 2008.05 (build 86) to a
later build will result in a system that does not boot by default and
instead the original BE must be manually selected.

Update the GRUB configuration on your ZFS boot device(s) using

$ pfexec /tmp/mnt$$/boot/solaris/bin/update_grub -R /tmp/mnt$$

6) Unmount and activate the newly created BE

$ pfexec beadm unmount opensolaris-
$ pfexec beadm activate opensolaris-

At this point, you can boot into the updated BE using reboot(1M) or
init(1M) as usual.