Compare commits
6 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| e2c2cfcd19 | |||
| cd61a961ff | |||
| fd058869cf | |||
| 0e7998e28a | |||
| a3177d9e94 | |||
| 2ec4eb728b |
@@ -1,4 +1,3 @@
|
||||
# skk-dic
|
||||
|
||||
# visit the link and see the last modification time
|
||||
./download-dic.sh 20180307
|
||||
python3 update_skkdic.py
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:35fd0b9d495a0db4d4eda0d0b02542e473d85264dcfaaf481b0e9e69818c4870
|
||||
size 886862
|
||||
3
ddskk-17.1_Neppu.tar.gz
Normal file
3
ddskk-17.1_Neppu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:839be1b26021f3a6e30db7fdc6eedfd1af03dee22ade56d028fde77433a807a3
|
||||
size 952635
|
||||
@@ -1,3 +1,32 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Aug 16 15:44:21 UTC 2025 - Cliff Zhao <qzhao@suse.com>
|
||||
|
||||
- Split ddskk-doc out of ddskk:
|
||||
Since too many documents files installed with the binary package,
|
||||
seperate them to a solo doc package. User could have a choice to
|
||||
install or not.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 28 10:09:45 UTC 2025 - Cliff Zhao <qzhao@suse.com>
|
||||
|
||||
- Split skkdic out of ddskk:
|
||||
* skkdic is seperate project, with it's own upstream;
|
||||
* skkdic has it's own maintenance cycle time;
|
||||
* There may have other package including ibus-skk, ibus-kkc, depending
|
||||
on skkdic, it will importing too many irrelavent packages to SLE and Leap.
|
||||
This makes it impossible to integrate these input methods cleanly.
|
||||
* Do my best to keep the original work the same in respect of original
|
||||
maintainer's hard work.
|
||||
(bsc#1246569)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 28 01:47:23 UTC 2025 - Marguerite Su <i@marguerite.su>
|
||||
|
||||
- Update to ddskk 17.1_Neppu
|
||||
* too long see ChangeLog
|
||||
- Update to skkdic 20250328
|
||||
* auto-updated by python script, have no idea what was changed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 26 08:01:42 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
|
||||
92
ddskk.spec
92
ddskk.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package ddskk
|
||||
#
|
||||
# Copyright (c) 2020 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -19,21 +19,17 @@
|
||||
# Current version does not build with current xemacs, disable for now
|
||||
%define use_xemacs 0
|
||||
Name: ddskk
|
||||
Version: 20160304
|
||||
Version: 20250328
|
||||
Release: 0
|
||||
Summary: SKK (Simple Kana to Kanji Conversion Program) for Emacs
|
||||
License: GPL-2.0-or-later AND SUSE-Permissive AND SUSE-Public-Domain
|
||||
Group: Productivity/Editors/Emacs
|
||||
URL: http://openlab.ring.gr.jp/skk/ddskk.html
|
||||
Source0: https://github.com/skk-dev/ddskk/archive/%{name}-16.2_Warabitai.tar.gz
|
||||
Source0: https://github.com/skk-dev/ddskk/archive/%{name}-17.1_Neppu.tar.gz
|
||||
Source1: suse-start.el
|
||||
Source97: download-dic.sh
|
||||
Source97: update_skkdic.py
|
||||
Source98: README.SUSE
|
||||
Source99: ddskk-rpmlintrc
|
||||
# see README.SUSE for how to generate this file.
|
||||
# NOTE: some dictionary files are not licenced under GPL-2.0+
|
||||
# see commiters.txt
|
||||
Source100: skkdic-20200228.tar.xz
|
||||
Patch2: bugzilla-141756-workaround.patch
|
||||
# PATCH-FIX-OPENSUSE or UPSTREAM -- drop build date to make build reproducible
|
||||
Patch3: ddskk-drop-build-date.patch
|
||||
@@ -76,30 +72,18 @@ aggressively developed.
|
||||
|
||||
%endif
|
||||
|
||||
%package -n skkdic
|
||||
Summary: Main Dictionary for SKK
|
||||
Group: System/I18n/Japanese
|
||||
URL: http://openlab.ring.gr.jp/skk/dic.html
|
||||
Requires(post): info
|
||||
Requires(preun): info
|
||||
Provides: locale(scim-skk:ja)
|
||||
%package doc
|
||||
Summary: Documentation files for the %{name} package
|
||||
Group: Documentation/HTML
|
||||
Requires: %{name} = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n skkdic
|
||||
main dictionary for SKK
|
||||
|
||||
%package -n skkdic-extra
|
||||
Summary: Optional, additional dictionaries for SKK
|
||||
Group: System/I18n/Japanese
|
||||
URL: http://openlab.ring.gr.jp/skk/dic.html
|
||||
|
||||
%description -n skkdic-extra
|
||||
optional, additional dictionaries for SKK
|
||||
%description doc
|
||||
SKK (Simple Kana to Kanji conversion program) is a Japanese input
|
||||
method for Emacs. ddskk-doc contains Changelogs and Readme files.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n ddskk-ddskk-16.2_Warabitai
|
||||
|
||||
tar --strip-components=1 --xz -xf %{S:100} -C dic
|
||||
cp dic/zipcode/SKK-JISYO.* dic/
|
||||
%autosetup -p1 -n ddskk-ddskk-17.1_Neppu
|
||||
|
||||
%build
|
||||
%define emacs_sitelisp_dir %{_datadir}/emacs/site-lisp
|
||||
@@ -178,17 +162,18 @@ fi
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc ChangeLog* READMEs
|
||||
%{emacs_package_dir}
|
||||
%config %{emacs_sitelisp_dir}/suse-start-%{name}.el
|
||||
%dir %{_datadir}/skk/
|
||||
%{_datadir}/skk/NICOLA-SKK.tut
|
||||
%{_datadir}/skk/SKK.tut
|
||||
%{_datadir}/skk/SKK.tut.E
|
||||
%{_datadir}/skk/skk.xpm
|
||||
%{_infodir}/*
|
||||
%exclude %{_datadir}/doc/packages/ddskk/READMEs/README.MacOSX.ja
|
||||
%exclude %{_datadir}/doc/packages/ddskk/READMEs/README.w32.ja.org
|
||||
|
||||
%if %{use_xemacs}
|
||||
%files -n ddskk-xemacs
|
||||
%defattr(-,root,root)
|
||||
%doc ChangeLog* READMEs
|
||||
%dir %{xemacs_package_dir}/
|
||||
%dir %{xemacs_package_dir}/lisp/
|
||||
%dir %{xemacs_package_dir}%{_sysconfdir}/
|
||||
@@ -196,44 +181,7 @@ fi
|
||||
%{xemacs_package_dir}%{_sysconfdir}/*
|
||||
%endif
|
||||
|
||||
%files -n skkdic
|
||||
%defattr(-,root,root)
|
||||
%doc dic/ChangeLog*
|
||||
%license dic/committers.txt
|
||||
%dir %{_datadir}/skk/
|
||||
%{_datadir}/skk/SKK-JISYO.L
|
||||
%{_datadir}/skk/skk.xpm
|
||||
%{_datadir}/skk/SKK.tut
|
||||
%{_datadir}/skk/SKK.tut.E
|
||||
|
||||
%files -n skkdic-extra
|
||||
%defattr(-,root,root)
|
||||
%dir %{_datadir}/skk/
|
||||
%{_datadir}/skk/SKK-JISYO.ML
|
||||
%{_datadir}/skk/SKK-JISYO.M
|
||||
%{_datadir}/skk/SKK-JISYO.zipcode
|
||||
%{_datadir}/skk/SKK-JISYO.office.zipcode
|
||||
# SUSE-Permissive
|
||||
%{_datadir}/skk/SKK-JISYO.pubdic+
|
||||
%{_datadir}/skk/SKK-JISYO.JIS3_4
|
||||
%{_datadir}/skk/SKK-JISYO.JIS2
|
||||
%{_datadir}/skk/SKK-JISYO.S
|
||||
%{_datadir}/skk/SKK-JISYO.JIS2004
|
||||
%{_datadir}/skk/SKK-JISYO.assoc
|
||||
%{_datadir}/skk/SKK-JISYO.china_taiwan
|
||||
%{_datadir}/skk/SKK-JISYO.edict
|
||||
%{_datadir}/skk/SKK-JISYO.fullname
|
||||
%{_datadir}/skk/SKK-JISYO.geo
|
||||
%{_datadir}/skk/SKK-JISYO.itaiji
|
||||
%{_datadir}/skk/SKK-JISYO.itaiji.JIS3_4
|
||||
%{_datadir}/skk/SKK-JISYO.jinmei
|
||||
%{_datadir}/skk/SKK-JISYO.law
|
||||
%{_datadir}/skk/SKK-JISYO.lisp
|
||||
%{_datadir}/skk/SKK-JISYO.mazegaki
|
||||
%{_datadir}/skk/SKK-JISYO.okinawa
|
||||
%{_datadir}/skk/SKK-JISYO.propernoun
|
||||
%{_datadir}/skk/SKK-JISYO.requested
|
||||
%{_datadir}/skk/SKK-JISYO.station
|
||||
%{_datadir}/skk/NICOLA-SKK.tut
|
||||
%files doc
|
||||
%doc ChangeLog* READMEs
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -z $1 ]; then
|
||||
echo Usage: download-dic.sh YYYYMMDD
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
dest=skkdic-$1
|
||||
rm -r $dest
|
||||
# wget -c -r -np -k -L -p http://openlab.ring.gr.jp/skk/skk/dic/
|
||||
mkdir -p $dest
|
||||
find openlab.ring.gr.jp/skk/skk/dic -name "SKK-JISYO.*" -exec cp {} $dest \;
|
||||
|
||||
# remove dictionaries that cannot be packaged
|
||||
rm -f $dest/dic/SKK-JISYO.edict
|
||||
|
||||
mkdir -p $dest/READMEs
|
||||
cp openlab.ring.gr.jp/skk/skk/dic/READMEs/committers.txt $dest/READMEs
|
||||
cp openlab.ring.gr.jp/skk/skk/dic/ChangeLog* $dest
|
||||
|
||||
tar cvJf skkdic-$1.tar.xz $dest
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aee573ff106b8faf2500d7c05e0b6a626a418ec6c29bc29a173be91b40390902
|
||||
size 6272516
|
||||
103
update_skkdic.py
Normal file
103
update_skkdic.py
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import requests
|
||||
from html.parser import HTMLParser
|
||||
from urllib.parse import urljoin, urlparse
|
||||
import os
|
||||
from datetime import datetime
|
||||
import re
|
||||
import tarfile
|
||||
|
||||
class Parser(HTMLParser):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.files = []
|
||||
self.directories = {}
|
||||
self.content = {}
|
||||
self.idx = 0
|
||||
self.last_time = datetime.strptime('1970-01-01', '%Y-%m-%d')
|
||||
|
||||
def handle_starttag(self, tag, attrs):
|
||||
for attr, value in attrs:
|
||||
if attr != 'href':
|
||||
continue
|
||||
if value.endswith("/"):
|
||||
self.directories[self.idx] = value
|
||||
continue
|
||||
elif value.startswith("SKK-JISYO") or value.startswith("ChangeLog") or value == "committers.txt":
|
||||
if value != "SKK-JISYO.edict":
|
||||
self.files.append(value)
|
||||
|
||||
def handle_data(self, data):
|
||||
patt = re.compile(r'\d+-[A-Za-z]+-\d+')
|
||||
match = patt.search(data)
|
||||
if match:
|
||||
mtime = datetime.strptime(match.group(), "%d-%b-%Y")
|
||||
if mtime > self.last_time:
|
||||
self.last_time = mtime
|
||||
else:
|
||||
self.content[self.idx] = data
|
||||
self.idx += 1
|
||||
|
||||
def clean_parent(self):
|
||||
j = 0
|
||||
for i, v in self.directories.items():
|
||||
if self.content[i] == 'Parent Directory':
|
||||
j = i
|
||||
break
|
||||
del self.directories[j]
|
||||
|
||||
SKKDIC_DIR="./skkdic"
|
||||
SERVER_PATH="http://openlab.ring.gr.jp/skk/skk/dic/"
|
||||
|
||||
def fetch_url(url, files):
|
||||
response = requests.get(url)
|
||||
if response.status_code == 200:
|
||||
parser = Parser()
|
||||
parser.feed(str(response.content))
|
||||
parser.clean_parent()
|
||||
last_time = parser.last_time
|
||||
for file in parser.files:
|
||||
files.append(urljoin(url, file))
|
||||
if len(parser.directories) > 0:
|
||||
for directory in parser.directories.values():
|
||||
mtime = fetch_url(urljoin(url, directory), files)
|
||||
if mtime > last_time:
|
||||
last_time = mtime
|
||||
return last_time
|
||||
|
||||
def download_files(files, last_time):
|
||||
for file in files:
|
||||
relpath = file.replace(SERVER_PATH, "")
|
||||
response = requests.get(file)
|
||||
if response.status_code == 200:
|
||||
dest = os.path.join(SKKDIC_DIR + "-" + last_time, relpath)
|
||||
parent = os.path.dirname(dest)
|
||||
if not os.path.exists(parent):
|
||||
os.makedirs(parent)
|
||||
with open(dest, 'wb') as f:
|
||||
f.write(response.content)
|
||||
|
||||
def remove_dir(directory):
|
||||
for f in os.listdir(directory):
|
||||
f = os.path.join(directory, f)
|
||||
if os.path.isfile(f):
|
||||
os.remove(f)
|
||||
elif os.path.isdir(f):
|
||||
remove_dir(f)
|
||||
os.removedirs(directory)
|
||||
|
||||
def main():
|
||||
files = []
|
||||
last_time = datetime.strftime(fetch_url(SERVER_PATH, files), "%Y%m%d")
|
||||
download_files(files, last_time)
|
||||
|
||||
dest = SKKDIC_DIR + "-" + last_time
|
||||
|
||||
with tarfile.open(dest + ".tar.xz", 'w:xz') as archive:
|
||||
for f in os.listdir(dest):
|
||||
archive.add(os.path.join(dest, f))
|
||||
|
||||
remove_dir(dest)
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user