�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`�#!/usr/bin/perl -w use strict; use Debian::DictionariesCommon q(:all); use Debconf::Client::ConfModule q(:all); dico_checkroot (); my $triggered; my $skip_symlinks_setting; my $class = "ispell"; my $program = "update-default-$class"; my $debug = 1 if defined $ENV{'DICT_COMMON_DEBUG'}; # Parse options foreach my $option ( @ARGV ){ if ( $option eq "--skip-symlinks" ){ # Do not try to set symlinks at $linkdir. $skip_symlinks_setting++; } elsif ( $option eq "--rebuild" ){ # info is always rebuilt, so this option is not needed. # It is preserved as a no-op for old maintainer scripts. } elsif ( $option eq "--triggered" ){ # Do not try to enable update-default-$class} trigger but run the script. $triggered++; } else { die "update-default-$class: Bad option \"$option\". Aborting..." } } version ('2.0'); updatedb ($class); my $dictionaries = loaddb ($class); # Preprocess default symlinks dico_preprocess_default_symlinks ($class,$dictionaries); # Enable trigger if needed. Exit cleanly on success. unless ( $triggered ){ exit if dico_activate_trigger("update-default-$class"); } my $manual; my $question = "dictionaries-common/default-$class"; my $iquestion = "dictionaries-common/invalid_debconf_value"; my $debconf_dbase_corruption_question = "dictionaries-common/debconf_database_corruption"; my $newflag = "/var/cache/dictionaries-common/flag-$class-new"; # This flag is intended for remove-default-$class. If we are here we do not # need it any longer, so we reset for future apt runs by cleaning it. if ( -f $newflag ){ print STDERR "$program: Removing $newflag\n" if $debug; unlink $newflag or print STDERR " $program: Warning: could not remove $newflag\n"; } my ($ret, $value) = get ($question); if ( $ret == 0 && $value ){ # Question has a value if ( $value =~ m/^Manual.*/i ){ # Question is set to manual mode print STDERR "$program: Manual mode for \"$class\"\n" if $debug; $manual++; } elsif ( not %$dictionaries ) { # Question has a value, but no manual mode and no class elements available. Unset value. print STDERR "$program: No Manual mode and no $class elements. $question unset.\n" if $debug; $value = ""; set($question,$value); $manual++; } else { # Normal case, question has a value and is set to one of the installed class elements. print STDERR "$program: Default is set to \"$value\" for \"$class\"\n" if $debug; } } elsif ( not %$dictionaries ) { # Question is empty. No default nor class elements available. Proceed as for manual. print STDERR "$program: No \"$class\" elements left.\n" if $debug; $manual++; } else { # Question is empty, but $class elements are installed. # This seems to be debconf database corruption. Warn loudly about it. my %class_pkgs = (); foreach my $lang ( keys %{$dictionaries} ){ if ( defined $dictionaries->{$lang}->{'package'} ){ $class_pkgs{$dictionaries->{$lang}->{'package'}}++; } } my $class_packages = join (', ',sort keys %class_pkgs); subst($debconf_dbase_corruption_question,"class_packages",$class_packages); subst($debconf_dbase_corruption_question,"question",$question); fset ($debconf_dbase_corruption_question,"seen","false"); input("high",$debconf_dbase_corruption_question); title ("dictionaries-common: ispell dictionaries"); go (); # Try harder to get a value after default file my $dico_sysdefault = dico_getsysdefault($class); if ( defined $dico_sysdefault ){ # Not undef. Can be an empty or non-empty string. if ( $dico_sysdefault ){ # True: Non-empty string and not 0 if ( defined $dictionaries->{$dico_sysdefault} ){ $value = $dico_sysdefault; set($question,$value); print STDERR "$program: Missing value for \"$question\" question. Using \"$value\"\n"; } } else { # False: The empty string or 0 $value = "Manual symlinks setting (Forced after default file)"; set($question,$value); $manual++; } } } unless ( $manual ){ # Handle invalid debconf values if ( not exists $dictionaries->{$value} ){ # This can happen because either an invalid debconf value or a # void value due to debconf database corruption. Try after stored # values to stay in the safe side. my @available_keys = sort {lc $a cmp lc $b} keys %$dictionaries; my $choices = join (', ', sort {lc $a cmp lc $b} @available_keys); print STDERR "$program: Trying to get a default value from \"$choices\"\n"; my $forced_key = $available_keys[0] || die "$program: Selected ispell dictionary" . " \"$value\" \n" . "does not correspond to any installed package in the system\n" . "and no alternative ispell dictionary could be selected.\n"; # Warn about what might have happened if not debconf database corruption if ( $value ){ subst($iquestion,"value",$value); fset ($iquestion,"seen","false"); input("high",$iquestion); } # Prepare a selection box to get a default. subst ($question, "choices", $choices); # Put sane values in debconf choices field subst ($question, "echoices", $choices); # Put sane values in debconf echoices field set ($question, $forced_key); # Set debconf value to a sane one fset ($question,"seen","false"); input ("critical", $question); title ("dictionaries-common: ispell dictionaries"); go (); ($ret, $value) = get ($question); die "\n Could not get a valid value for debconf question:\n" . "$question\n" if ( $ret != 0 ); # This should never be reached # Set manual flag if needed to avoid later symlinking $manual++ if ( $value =~ m/^Manual.*/i ); } } # Set default value for ispell dictionaries and wordlists if ( $manual ){ dico_setsysdefault ($class,""); } else { dico_setsysdefault ($class,$value); } # This here is only for ispell, not wordlist my $emacsen_default = "nil"; my $cache_dir = "/var/cache/dictionaries-common"; my $emacsen_default_file = "$cache_dir/emacsen-ispell-default.el"; my $ispell_dicts_list = "$cache_dir/ispell-dicts-list.txt"; unless ( $manual ){ # Get ispell default dict for emacsen if ( exists $dictionaries->{$value}{"emacs-display"} and lc($dictionaries->{$value}{"emacs-display"}) eq "no" ){ $emacsen_default = "nil"; } elsif ( exists $dictionaries->{$value}{"emacsen-name"} ){ $emacsen_default = "\"" . $dictionaries->{$value}{"emacsen-name"} . "\""; } elsif( exists $dictionaries->{$value}{"hash-name"} ){ $emacsen_default = "\"" . $dictionaries->{$value}{"hash-name"} . "\""; } } # Printing a plain list with installed ispell dictionaries, open (IDICTS,"> $ispell_dicts_list") || die "Could not open $ispell_dicts_list for writing\n"; print IDICTS ""; # Make sure this is void if no dictionaries available. foreach ( sort keys %{$dictionaries} ){ print IDICTS "$_\n"; } close (IDICTS); # Printing the default ispell dictionary under emacs open (EMISDEFAULT,"> $emacsen_default_file"); print EMISDEFAULT ";; File automatically generated by update-default-ispell ;; ;; Do not manually edit!! Use select-default-ispell script instead (set-variable \'debian-ispell-dictionary $emacsen_default)\n"; close EMISDEFAULT; # Autobuild hashes and emacsen/jed/squirrelmail stuff where appropriate. print STDERR "update-default-$class: Calling ispell-autobuildhash\n" if $debug; system ("ispell-autobuildhash --triggered") == 0 or die "$program: Error running ispell-autobuildhash\n"; build_emacsen_support (); build_jed_support (); build_squirrelmail_support (); # Clean orphaned remove files and its contents. dico_clean_orphaned_removefiles($class,$dictionaries); # -- End of specific ispell support # Set default symlink(s) and complain if not possible. # For ispell dictionaries using auto-buildhash this should not be done # from dictionaries-common postinst, but from ispell dictionaries postinst. # Otherwise this is called before hashes are autobuild and will fail. # d-c.postinst will call update-default-ispell with --skip-symlinks option. unless ( $skip_symlinks_setting or $manual ) { dico_set_default_symlink($class,$value); } # Local Variables: # perl-indent-level: 2 # End: __END__ =head1 NAME update-default-ispell - update default ispell dictionary =head1 SYNOPSIS update-default-ispell [--skip-symlinks] [--triggered] =head1 DESCRIPTION WARNING: Not to be used from the command line unless you know very well what you are doing. This program is intended to be called from ispell dictionary package postinst, from B or from dictionaries-common postinst. When called under dpkg control with the B<--trigger> option the script is run normally, otherwise the dictionaries-common B trigger is enabled for later run. With the B<--skip-symlinks> option the symlinks setting is skipped. This is needed for B when called from dictionaries-common postinst, since autobuilt hashes may not yet be available. When run normally (from the command line or with B<--trigger>) this script rebuilds the info at F after files under F, reads the system default from the debconf database and unless disabled, set default symlinks in F pointing to the appropriate files in F. For ispell this script also updates the system-wide setting F and the emacsen, jed, and SquirrelMail support after known info. =head1 OPTIONS --skip-symlinks Do not try to set symlinks at /etc/dictionaries-common dir. --triggered Run all the code instead of trying to enable update-default-ispell trigger =head1 SEE ALSO The dictionaries-common policy document =head1 AUTHORS Rafael Laboissiere, Agustin Martin Domingo =cut