/trunk/debian/control |
---|
0,0 → 1,89 |
Source: pyscrabble |
Section: games |
Priority: optional |
Maintainer: Magnus Holmgren <magnus@kibibyte.se> |
Build-Depends: debhelper (>= 5.0.38), dpatch, python |
Build-Depends-Indep: python-central (>= 0.5.6), librsvg2-bin, imagemagick |
Standards-Version: 3.7.2 |
Homepage: http://pyscrabble.sourceforge.net |
XS-Python-Version: current |
Package: pyscrabble-common |
Architecture: all |
Depends: ${misc:Depends}, ${python:Depends}, python-twisted-core |
XB-Python-Version: ${python:Versions} |
Description: a multiplayer scrabble implementation - common files |
PyScrabble is an online, multiplayer implementation of the popular word game |
written in Python and featuring: |
. |
* chat and private messaging (online as well as offline) |
* player rankings and server statistics |
* use of ENABLE (Enhanced North American Benchmark LExicon) for |
English word lookup |
* timed games |
. |
This package contains files common to the client and the server. |
You will need to install pyscrabble to play. |
. |
Notice: Scrabble is a registered trademark belonging to Hasbro Inc in |
the US, and to J.W. Spear & Sons Ltd., a subsidiary of Mattel Inc., |
throughout the rest of the world. Neither the author, Debian, nor |
this game are affiliated with the Scrabble Crossword Game, Hasbro, |
Spear & Sons or Mattel in any fashion. |
Package: pyscrabble |
Architecture: all |
Depends: pyscrabble-common (= ${source:Version}), ${misc:Depends}, |
${python:Depends}, python-pygame, python-gtk2 |
Suggests: pyscrabble-server |
XB-Python-Version: ${python:Versions} |
Description: a multiplayer scrabble implementation written in Python - client part |
PyScrabble is an online, multiplayer implementation of the popular word game |
written in Python and featuring: |
. |
* chat and private messaging (online as well as offline) |
* player rankings and server statistics |
* use of ENABLE (Enhanced North American Benchmark LExicon) for |
English word lookup |
* timed games |
. |
The following languages are supported: |
. |
* English |
* Finnish |
* French |
* German |
* Serbian |
. |
This package contains the client program. |
. |
Notice: Scrabble is a registered trademark belonging to Hasbro Inc in |
the US, and to J.W. Spear & Sons Ltd., a subsidiary of Mattel Inc., |
throughout the rest of the world. Neither the author, Debian, nor |
this game are affiliated with the Scrabble Crossword Game, Hasbro, |
Spear & Sons or Mattel in any fashion. |
Package: pyscrabble-server |
Architecture: all |
Depends: pyscrabble-common (= ${source:Version}), ${misc:Depends}, |
${python:Depends}, python-zodb, python-nevow, adduser |
Suggests: pyscrabble |
XB-Python-Version: ${python:Versions} |
Description: a scrabble implementation written in Python - server part |
PyScrabble is an online, multiplayer implementation of the popular word game |
written in Python and featuring: |
. |
* chat and private messaging (online as well as offline) |
* player rankings and server statistics |
* use of ENABLE (Enhanced North American Benchmark LExicon) for |
English word lookup |
* timed games |
. |
This package contains the server. You do not need to install this |
package if you only plan to connect to existing PyScrabble servers. |
. |
Notice: Scrabble is a registered trademark belonging to Hasbro Inc in |
the US, and to J.W. Spear & Sons Ltd., a subsidiary of Mattel Inc., |
throughout the rest of the world. Neither the author, Debian, nor |
this game are affiliated with the Scrabble Crossword Game, Hasbro, |
Spear & Sons or Mattel in any fashion. |
/trunk/debian/pyscrabble-common.install |
---|
0,0 → 1,13 |
usr/lib/python*/site-packages/pyscrabble/__*__.py |
usr/lib/python*/site-packages/pyscrabble/audit.py |
usr/lib/python*/site-packages/pyscrabble/dist.py |
usr/lib/python*/site-packages/pyscrabble/manager.py |
usr/lib/python*/site-packages/pyscrabble/util.py |
usr/lib/python*/site-packages/pyscrabble/serialize.py |
usr/lib/python*/site-packages/pyscrabble/constants.py |
usr/lib/python*/site-packages/pyscrabble/lookup.py |
usr/lib/python*/site-packages/pyscrabble/exceptions.py |
usr/lib/python*/site-packages/pyscrabble/game |
usr/lib/python*/site-packages/pyscrabble/command |
usr/lib/python*/site-packages/pyscrabble/net/__init__.py |
usr/lib/python*/site-packages/*.egg-info |
/trunk/debian/compat |
---|
0,0 → 1,0 |
5 |
/trunk/debian/pyscrabble.svg |
---|
0,0 → 1,134 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:xlink="http://www.w3.org/1999/xlink" |
version="1.0" |
width="48" |
height="48" |
id="svg2"> |
<defs |
id="defs2161"> |
<linearGradient |
id="linearGradient3322"> |
<stop |
style="stop-color:#fffbb3;stop-opacity:1" |
offset="0" |
id="stop3324" /> |
<stop |
style="stop-color:#ffffff;stop-opacity:1" |
offset="1" |
id="stop3326" /> |
</linearGradient> |
<linearGradient |
x1="6.1415935" |
y1="4.2645912" |
x2="28.514658" |
y2="25.856602" |
id="linearGradient3173" |
xlink:href="#linearGradient3322" |
gradientUnits="userSpaceOnUse" /> |
<linearGradient |
x1="30.174149" |
y1="9.0219412" |
x2="57.566223" |
y2="16.681988" |
id="linearGradient3181" |
xlink:href="#linearGradient3322" |
gradientUnits="userSpaceOnUse" /> |
</defs> |
<g |
transform="translate(-2.0709641,-0.8423864)" |
id="layer1"> |
<g |
transform="matrix(0.9070704,0.4209789,-0.4209789,0.9070704,0,0)" |
id="g13"> |
<rect |
width="26.202082" |
height="26.004381" |
ry="3.9024839" |
x="30.423489" |
y="2.5394692" |
style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.70000005;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:8.85826766;stroke-opacity:1" |
id="tileYshadow" /> |
<rect |
width="26.202082" |
height="26.004381" |
ry="3.9024839" |
x="29.283966" |
y="1.7459282" |
style="opacity:1;fill:url(#linearGradient3181);fill-opacity:1;fill-rule:evenodd;stroke:#8d794c;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:8.85826766;stroke-opacity:1" |
id="tileY" /> |
<path |
d="M 46.84375,8.1875 L 44.78125,9.28125 L 44.40625,9.28125 L 41.375,13.84375 L 40.90625,14.53125 L 40.875,12.53125 L 43.65625,8.4375 L 43.8125,8.1875 L 44.125,8.1875 L 45.8125,8.1875 L 46.84375,8.1875 z " |
style="fill:#8d794c;fill-opacity:1;stroke:none;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3430" /> |
<path |
d="M 40.65625,19.84375 L 39.5625,20.96875 L 40.09375,20.96875 L 41.6875,20.96875 L 42.21875,20.96875 L 42.21875,20.40625 L 42.21875,15.03125 L 46.25,9.0625 L 46.84375,8.1875 L 44.78125,9.28125 L 41.21875,14.53125 L 41.125,14.6875 L 41.125,14.84375 L 41.125,19.84375 L 40.65625,19.84375 z " |
style="fill:#fefefb;fill-opacity:1;stroke:none;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3428" /> |
<path |
d="M 37.96875,8.1875 L 37.375,9.28125 L 40.4375,13.84375 L 40.90625,14.53125 L 40.875,12.53125 L 38.125,8.4375 L 37.96875,8.1875 z " |
style="fill:#fefefb;fill-opacity:1;stroke:none;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3434" /> |
<path |
d="M 37.375,9.28125 L 37.96875,8.1875 L 37.65625,8.1875 L 35.96875,8.1875 L 35.96875,8.75 L 35.53125,9.0625 L 39.5625,15.03125 L 39.5625,20.40625 L 39.5625,20.96875 L 40.65625,19.84375 L 40.65625,14.84375 L 40.65625,14.6875 L 40.5625,14.53125 L 37,9.28125 L 37.375,9.28125 z " |
style="fill:#8d794c;fill-opacity:1;stroke:none;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3436" /> |
<path |
d="M 35.97274,8.7394714 L 37.668053,8.7394714 L 40.902428,13.536346 L 44.113365,8.7394714 L 45.808678,8.7394714 L 41.683678,14.848846 L 41.683678,20.403534 L 40.09774,20.403534 L 40.09774,14.848846 L 35.97274,8.7394714" |
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="letterY" /> |
<path |
d="M 51.277542,20.673149 L 49.783401,23.00811 L 51.277542,23.00811 L 51.277542,20.673149 M 51.122269,20.157524 L 51.866409,20.157524 L 51.866409,23.00811 L 52.490433,23.00811 L 52.490433,23.500298 L 51.866409,23.500298 L 51.866409,24.531548 L 51.277542,24.531548 L 51.277542,23.500298 L 49.302933,23.500298 L 49.302933,22.929008 L 51.122269,20.157524" |
style="font-size:6px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
id="scoreY4" /> |
<path |
d="M 29.908225,24.477376 L 29.838143,5.5589413 C 29.831911,3.8766265 31.356144,2.3820769 33.122915,2.3808636 L 51.972184,2.3679194" |
style="opacity:0.8;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#fefdf8;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
id="path3413" /> |
</g> |
<g |
id="g19"> |
<path |
d="M 8.125,2.25 C 5.9630239,2.25 4.21875,3.9942741 4.21875,6.15625 L 4.21875,24.34375 C 4.21875,26.505726 5.9630239,28.25 8.125,28.25 L 26.53125,28.25 C 28.693226,28.25 30.437501,26.505725 30.4375,24.34375 L 30.4375,6.15625 C 30.4375,3.9942739 28.693226,2.25 26.53125,2.25 L 8.125,2.25 z " |
transform="translate(0.9002141,1.0003907)" |
style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dashoffset:8.85826766;stroke-opacity:1" |
id="tilePshadow" /> |
<path |
d="M 8.125,2.25 C 5.9630239,2.25 4.21875,3.9942741 4.21875,6.15625 L 4.21875,24.34375 C 4.21875,26.505726 5.9630239,28.25 8.125,28.25 L 26.53125,28.25 C 28.693226,28.25 30.437501,26.505725 30.4375,24.34375 L 30.4375,6.15625 C 30.4375,3.9942739 28.693226,2.25 26.53125,2.25 L 8.125,2.25 z " |
transform="translate(-0.3,-0.1999957)" |
style="opacity:1;fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#8d794c;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:8.85826766;stroke-opacity:1" |
id="tileP" /> |
<path |
d="M 26.42889,22.924213 C 26.712091,22.984763 26.932794,23.110739 27.091,23.302143 C 27.251153,23.493551 27.331231,23.729879 27.331234,24.011127 C 27.331231,24.442769 27.182793,24.776753 26.885921,25.013081 C 26.589044,25.249409 26.167169,25.367573 25.620296,25.367573 C 25.436701,25.367573 25.247248,25.349018 25.051937,25.311909 C 24.858577,25.276752 24.658382,25.223042 24.451351,25.150776 L 24.451351,24.579487 C 24.615413,24.675191 24.7951,24.747456 24.990414,24.796284 C 25.185725,24.845112 25.389826,24.869526 25.602718,24.869526 C 25.97381,24.869526 26.256036,24.796284 26.449398,24.649799 C 26.644708,24.503316 26.742364,24.290425 26.742367,24.011127 C 26.742364,23.753317 26.651544,23.552145 26.469906,23.407612 C 26.290216,23.261129 26.03924,23.187887 25.716976,23.187885 L 25.207211,23.187885 L 25.207211,22.701557 L 25.740414,22.701557 C 26.031427,22.70156 26.254083,22.643943 26.408382,22.528706 C 26.562677,22.411521 26.639825,22.243552 26.639828,22.024799 C 26.639825,21.800193 26.559747,21.628319 26.399593,21.509174 C 26.241388,21.388084 26.013849,21.327538 25.716976,21.327534 C 25.554865,21.327538 25.381037,21.345116 25.195492,21.380268 C 25.009944,21.415428 24.805843,21.470116 24.583187,21.544331 L 24.583187,21.016987 C 24.807796,20.954491 25.017756,20.907616 25.21307,20.876362 C 25.410334,20.845116 25.595881,20.829491 25.769711,20.829487 C 26.218927,20.829491 26.574395,20.93203 26.836117,21.137104 C 27.097832,21.340233 27.228692,21.615623 27.228695,21.963276 C 27.228692,22.205466 27.159356,22.410544 27.020687,22.57851 C 26.882012,22.744528 26.684747,22.859763 26.42889,22.924213" |
style="font-size:6px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
id="scoreP3" /> |
<path |
d="M 20.263752,9.4931922 L 19.65112,10.206136 C 19.65112,10.206136 20.587362,11.508696 20.58737,12.647073 C 20.587363,13.797359 20.301013,14.548015 19.684558,15.088011 C 19.072288,15.62853 18.104947,15.957391 16.775495,15.957386 L 14.668933,15.957386 L 14.234245,15.957386 L 14.234245,16.392073 L 14.234245,20.973011 L 13.398308,20.973011 L 12.484739,21.88658 L 12.96362,21.88658 L 14.668933,21.88658 L 15.147814,21.88658 L 15.147814,21.407698 L 15.147814,16.870955 L 16.775495,16.870955 C 18.243636,16.87096 19.449341,16.519927 20.263752,15.800955 C 21.085091,15.081486 21.500929,13.960033 21.500939,12.647073 C 21.50093,11.344535 21.086968,10.214326 20.263752,9.4931922 z " |
style="fill:#fefefb;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3276" /> |
<path |
d="M 20.263752,9.4931922 L 19.65112,10.206136 C 19.039993,9.6618676 18.106085,9.3367731 16.775495,9.3367614 L 13.398308,9.3367614 L 13.398308,20.973011 L 12.484739,21.88658 L 12.484739,21.407698 L 12.484739,8.9020739 L 12.484739,8.4231922 L 12.96362,8.4231922 L 16.775495,8.4231922 C 18.242497,8.4232054 19.448198,8.7668606 20.263752,9.4931922 z " |
style="fill:#8d794c;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3280" /> |
<path |
d="M 18.269426,11.253455 L 18.915495,10.607386 C 19.443624,11.108101 19.68455,11.821528 19.684558,12.647073 C 19.684549,13.477625 19.442217,14.187404 18.915495,14.686761 C 18.385564,15.189165 17.632101,15.422393 16.775495,15.422386 L 14.668933,15.422386 L 14.234245,15.422386 L 15.10362,14.508817 L 16.775495,14.508817 C 17.490441,14.508822 17.941116,14.351949 18.269426,14.040692 C 18.600921,13.726419 18.770983,13.321227 18.770989,12.647073 C 18.770982,11.979098 18.599514,11.566406 18.269426,11.253455 z " |
style="fill:#8d794c;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3255" /> |
<path |
d="M 14.234245,15.422386 L 15.147814,14.553011 L 15.147814,10.78533 L 16.775495,10.78533 C 17.490447,10.785341 17.941115,10.942212 18.269426,11.253455 L 18.915495,10.607386 C 18.385565,10.105005 17.632096,9.8717738 16.775495,9.871761 L 14.668933,9.871761 L 14.234245,9.871761 L 14.234245,10.306448 L 14.234245,14.987698 L 14.234245,15.422386 z " |
style="fill:#fefefb;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="path3259" /> |
<path |
d="M 14.648235,10.304991 L 14.648235,14.994601 L 16.771516,14.994601 C 17.557292,14.994607 18.164738,14.791196 18.59386,14.384366 C 19.022967,13.977551 19.237525,13.397968 19.237532,12.645616 C 19.237525,11.898856 19.022967,11.322059 18.59386,10.915226 C 18.164738,10.508414 17.557292,10.305003 16.771516,10.304991 L 14.648235,10.304991 M 12.959641,8.9173353 L 16.771516,8.9173353 C 18.170312,8.9173478 19.226378,9.2350038 19.93972,9.8703036 C 20.658616,10.500054 21.018069,11.425158 21.018078,12.645616 C 21.018069,13.877239 20.658616,14.807915 19.93972,15.437647 C 19.226378,16.067393 18.170312,16.382263 16.771516,16.382257 L 14.648235,16.382257 L 14.648235,21.397882 L 12.959641,21.397882 L 12.959641,8.9173353" |
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" |
id="letterP" /> |
<path |
d="M 4.5374933,24.728649 L 4.4674108,5.8102166 C 4.4611787,4.1279018 5.9854122,2.6333522 7.7521826,2.6321389 L 26.601452,2.6191947" |
style="opacity:0.8;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#fefdf8;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
id="path3295" /> |
</g> |
</g> |
</svg> |
/trunk/debian/patches/10_installation.dpatch |
---|
0,0 → 1,352 |
#! /bin/sh /usr/share/dpatch/dpatch-run |
## 10_installation.dpatch by Magnus Holmgren <magnus@kibibyte.se> |
## |
## All lines beginning with `## DP:' are a description of the patch. |
## DP: Mostly adapt server to run as a daemon |
@DPATCH@ |
--- pyscrabble-1.6.2.orig/pyscrabble/net/server.py |
+++ pyscrabble-1.6.2/pyscrabble/net/server.py |
@@ -46,7 +46,7 @@ |
self.db = db.DB() |
self.maxUsersLoggedIn = 0 |
self.startDate = util.Time(seconds=time.time(), dispDate=True) |
- self.rankings = rank.Rankings( resources["config"][constants.RANK_CONFIG] ) |
+ self.rankings = rank.Rankings( resources["serverconfig"][constants.RANK_CONFIG] ) |
dir = resources["resources"][constants.DICT_DIR].path |
for lang in os.listdir( dir ): |
--- pyscrabble-1.6.2.orig/pyscrabble/dist.py |
+++ pyscrabble-1.6.2/pyscrabble/dist.py |
@@ -1,8 +1,6 @@ |
import glob |
import os |
import sys |
-from distutils.command.install_lib import install_lib |
-from distutils.command.install_scripts import install_scripts |
APP_NAME = 'pyscrabble' |
@@ -31,50 +29,13 @@ |
RESOURCE_PREFIX = 'resources' |
CONFIG_DIR = get_app_data_dir() |
-if not os.path.exists(CONFIG_DIR): |
- CONFIG_DIR = os.path.join(RESOURCE_PREFIX, 'config') |
-def getLocaleDirs(dir, domain): |
- l = [] |
- |
- langs = os.listdir( dir ) |
- for lang in langs: |
- d = os.path.join(dir,lang,"LC_MESSAGES") |
- path = os.path.join(d, '%s.mo' % domain) |
- l.append( (d,[path]) ) |
- |
- return l |
- |
-def getResourceDirs(dir, ensureLower=True, basePath = None, outdir=None): |
- result = [] |
- absolute = os.path.abspath(dir) |
- |
- base = basePath |
- if base is None: |
- base = os.path.dirname(absolute) |
- else: |
- base = os.path.dirname( os.path.abspath(base) ) |
- |
- for root, dirs, files in os.walk(absolute): |
- if ensureLower and not os.path.basename(root).islower(): continue |
- if len(files) > 0: |
- f = [] |
- d = root[len(base)+1:] |
- if outdir is not None: |
- d = os.path.join(outdir, d) |
- for file in files: |
- f.append( os.path.join(root, file) ) |
- result.append( (d, f) ) |
- return result |
- |
-def getDataFiles(): |
- return getLocaleDirs('resources/locale',APP_NAME) + \ |
- [('resources/images', glob.glob('resources/images/*.*')), \ |
- ('resources/sounds', glob.glob('resources/sounds/*.*')), \ |
- ('config', glob.glob('resources/config/*.cfg')), \ |
- ('resources/web', glob.glob('resources/web/*.*'))] + \ |
- getResourceDirs('resources/dict', True, 'resources') + \ |
- getResourceDirs('resources/letters', True, 'resources') |
+try: |
+ from __installed__ import SERVER_LOG_DIR, SERVER_DB_DIR, SERVER_CONFIG_DIR |
+except ImportError: |
+ SERVER_CONFIG_DIR = os.path.join(RESOURCE_PREFIX, 'config') |
+ SERVER_DB_DIR = CONFIG_DIR |
+ SERVER_LOG_DIR = CONFIG_DIR |
def ensure_config_dir(dir): |
''' |
@@ -86,45 +47,6 @@ |
os.makedirs(dir) |
-class InstallScripts(install_scripts): |
- ''' |
- install_scripts handler to strip any possible ^M's from files so they will run properly on unix |
- ''' |
- |
- def run(self): |
- install_scripts.run(self) |
- for file in self.get_outputs(): |
- self.fix(file) |
- |
- def fix(self, path): |
- f = open(path, "rb") |
- data = f.read().replace("\r\n", "\n") |
- f.close() |
- f = open(path, "w") |
- f.write(data) |
- f.close() |
- |
- |
-class InstallLib(install_lib): |
- |
- def generate_template(self): |
- filename = os.path.join(self.build_dir, APP_NAME, '__installed__.py') |
- self.mkpath(os.path.dirname(filename)) |
- |
- install = self.distribution.get_command_obj('install') |
- datadir = os.path.join(install.prefix, 'share', APP_NAME) |
- |
- fp = open(filename, 'w') |
- fp.write('# Generated by setup.py do not modify\n') |
- fp.write("RESOURCE_PREFIX = '%s'\n" % datadir) |
- fp.close() |
- |
- return filename |
- |
- def install(self): |
- template = self.generate_template() |
- return install_lib.install(self) + [template] |
- |
class Resource(object): |
''' |
Filesystem resource |
--- pyscrabble-1.6.2.orig/pyscrabble/db.py |
+++ pyscrabble-1.6.2/pyscrabble/db.py |
@@ -1,5 +1,4 @@ |
from pyscrabble import constants |
-from pyscrabble import manager |
from ZODB import FileStorage, DB as _DB |
import transaction |
@@ -12,8 +11,10 @@ |
''' |
Initialize the connection to the DB |
''' |
- r = manager.ResourceManager() |
- path = r["config"][constants.DB_LOCATION] |
+ import os |
+ from pyscrabble import dist |
+ |
+ path = os.path.join(dist.SERVER_DB_DIR, constants.DB_LOCATION) |
storage = FileStorage.FileStorage(path) |
db = _DB(storage) |
--- pyscrabble-1.6.2.orig/pyscrabble/manager.py |
+++ pyscrabble-1.6.2/pyscrabble/manager.py |
@@ -36,6 +36,7 @@ |
''' |
self.loaded = True |
+ self["serverconfig"] = dist.Resource( dist.SERVER_CONFIG_DIR ) |
self["config"] = dist.Resource( dist.CONFIG_DIR ) |
self["resources"] = dist.Resource( dist.RESOURCE_PREFIX ) |
--- pyscrabble-1.6.2.orig/server_console.py |
+++ pyscrabble-1.6.2/server_console.py |
@@ -76,15 +76,15 @@ |
''' |
Configure the server |
''' |
- dist.ensure_config_dir(dist.CONFIG_DIR) |
+ dist.ensure_config_dir(dist.SERVER_CONFIG_DIR) |
resources = manager.ResourceManager() |
logging.basicConfig(level=logging.DEBUG, |
format='%(asctime)s %(name)s %(levelname)s %(message)s', |
- filename=resources["config"][constants.LOG_FILE], |
- filemode='w') |
+ filename=os.path.join(dist.SERVER_LOG_DIR, constants.LOG_FILE), |
+ filemode='a') |
- config = resources["config"][constants.SERVER_CONSOLE_CONFIG] |
+ config = resources["serverconfig"][constants.SERVER_CONSOLE_CONFIG] |
if not os.path.exists(config): |
raise IOError, "%s must exist in %s" % (constants.SERVER_CONSOLE_CONFIG, resources["config"].path) |
--- pyscrabble-1.6.2.orig/setup.py |
+++ pyscrabble-1.6.2/setup.py |
@@ -7,20 +7,130 @@ |
HAS_PY2EXE = False |
import glob |
import os |
-import pkg_resources |
+#import pkg_resources |
import sys |
+from distutils.command.install_lib import install_lib |
+from distutils.command.install_scripts import install_scripts |
+from distutils.command.install_data import install_data |
+from distutils.command.install import install |
from pyscrabble.constants import VERSION |
from pyscrabble import util |
from pyscrabble import dist |
-def fix_path(item): |
- if type(item) in (list, tuple): |
- if 'config' in item[0]: |
- return (item[0].replace('config', dist.get_app_data_dir()), item[1]) |
- else: |
- return (item[0].replace('resources/', 'share/pyscrabble/'), item[1]) |
+ |
+def getLocaleDirs(dir, domain): |
+ l = [] |
+ |
+ langs = os.listdir( dir ) |
+ for lang in langs: |
+ d = os.path.join(dir,lang,"LC_MESSAGES") |
+ path = os.path.join(d, '%s.mo' % domain) |
+ l.append( (d,[path]) ) |
+ |
+ return l |
+ |
+def getResourceDirs(dir, ensureLower=True, basePath = None, outdir=None): |
+ result = [] |
+ absolute = os.path.abspath(dir) |
+ |
+ base = basePath |
+ if base is None: |
+ base = os.path.dirname(absolute) |
else: |
- return item |
+ base = os.path.dirname( os.path.abspath(base) ) |
+ |
+ for root, dirs, files in os.walk(absolute): |
+ if ensureLower and not os.path.basename(root).islower(): continue |
+ if len(files) > 0: |
+ f = [] |
+ d = root[len(base)+1:] |
+ if outdir is not None: |
+ d = os.path.join(outdir, d) |
+ for file in files: |
+ f.append( os.path.join(root, file) ) |
+ result.append( (d, f) ) |
+ return result |
+ |
+def getDataFiles(): |
+ return getLocaleDirs('resources/locale',dist.APP_NAME) + \ |
+ [('resources/images', glob.glob('resources/images/*.*')), \ |
+ ('resources/sounds', glob.glob('resources/sounds/*.*')), \ |
+ ('config', glob.glob('resources/config/*.cfg')), \ |
+ ('resources/web', glob.glob('resources/web/*.*'))] + \ |
+ getResourceDirs('resources/dict', True, 'resources') + \ |
+ getResourceDirs('resources/letters', True, 'resources') |
+ |
+class InstallScripts(install_scripts): |
+ ''' |
+ install_scripts handler to strip any possible ^Ms from files so they will run properly on unix |
+ ''' |
+ |
+ def run(self): |
+ install_scripts.run(self) |
+ for file in self.get_outputs(): |
+ self.fix(file) |
+ |
+ def fix(self, path): |
+ f = open(path, "rb") |
+ data = f.read().replace("\r\n", "\n") |
+ f.close() |
+ f = open(path, "w") |
+ f.write(data) |
+ f.close() |
+ |
+ |
+class InstallLib(install_lib): |
+ |
+ def generate_template(self): |
+ filename = os.path.join(self.build_dir, dist.APP_NAME, '__installed__.py') |
+ self.mkpath(os.path.dirname(filename)) |
+ |
+ install = self.distribution.get_command_obj('install') |
+ datadir = os.path.join(install.prefix, 'share', 'games', dist.APP_NAME) |
+ |
+ fp = open(filename, 'w') |
+ fp.write('# Generated by setup.py do not modify\n') |
+ fp.write("RESOURCE_PREFIX = %r\n" % datadir) |
+ fp.write("SERVER_CONFIG_DIR = %r\n" % install.confdir) |
+ fp.write("SERVER_DB_DIR = %r\n" % install.dbdir) |
+ fp.write("SERVER_LOG_DIR = %r\n" % install.logdir) |
+ fp.close() |
+ |
+ return filename |
+ |
+ def install(self): |
+ template = self.generate_template() |
+ return install_lib.install(self) + [template] |
+ |
+class InstallData(install_data): |
+ def fix_path(self, item): |
+ install = self.distribution.get_command_obj('install') |
+ if type(item) in (list, tuple): |
+ if 'config' in item[0]: |
+ return (item[0].replace('config', install.confdir), item[1]) |
+ else: |
+ return (item[0].replace('resources/', 'share/games/pyscrabble/'), item[1]) |
+ else: |
+ return item |
+ |
+ def finalize_options(self): |
+ self.data_files = [ self.fix_path(f) for f in self.data_files ] |
+ install_data.finalize_options(self) |
+ |
+class Install(install): |
+ user_options = install.user_options + [ ('logdir=', None, "log directory"), |
+ ('dbdir=', None, "database directory"), |
+ ('confdir=', None, "configuration directory") ] |
+ |
+ def initialize_options(self): |
+ self.logdir = None |
+ self.dbdir = None |
+ self.confdir = None |
+ install.initialize_options(self) |
+ |
+ def finalize_options(self): |
+ print self.logdir |
+ install.finalize_options(self) |
kwargs = { |
'name': 'pyscrabble', |
@@ -28,7 +138,7 @@ |
'author': 'Kevin Conaway', |
'author_email': 'kevin.a.conaway@gmail.com', |
'url': 'http://pyscrabble.sourceforge.net', |
- 'data_files': dist.getDataFiles(), |
+ 'data_files': getDataFiles(), |
'packages': ['pyscrabble', 'pyscrabble.command', 'pyscrabble.game', 'pyscrabble.gui', 'pyscrabble.net'] |
} |
@@ -77,10 +187,10 @@ |
kwargs['data_files'] += [('.', ['CHANGELOG.txt'])] |
kwargs['data_files'] += [('.', ['LICENSE.txt'])] |
#for egg in eggpacks: |
- # kwargs['data_files'] += dist.getResourceDirs(egg.location, ensureLower=False, basePath=None, outdir='extra') |
+ # kwargs['data_files'] += getResourceDirs(egg.location, ensureLower=False, basePath=None, outdir='extra') |
else: |
kwargs['scripts'] = ['pyscrabble-main.py', 'server_console.py', 'db_upgrade.py'] |
- kwargs['data_files'] = [fix_path(x) for x in kwargs['data_files']] |
- kwargs['cmdclass'] = {'install_lib': dist.InstallLib, 'install_scripts' : dist.InstallScripts} |
+ # kwargs['data_files'] = [fix_path(x) for x in kwargs['data_files']] |
+ kwargs['cmdclass'] = {'install': Install, 'install_lib': InstallLib, 'install_scripts' : InstallScripts, 'install_data': InstallData} |
-setup(**kwargs) |
\ No newline at end of file |
+setup(**kwargs) |
Property changes: |
Added: svn:executable |
## -0,0 +1 ## |
+* |
\ No newline at end of property |
Index: debian/patches/00list |
=================================================================== |
--- debian/patches/00list (nonexistent) |
+++ debian/patches/00list (revision 2) |
@@ -0,0 +1 @@ |
+10_installation |
Index: debian/changelog |
=================================================================== |
--- debian/changelog (nonexistent) |
+++ debian/changelog (revision 2) |
@@ -0,0 +1,6 @@ |
+pyscrabble (1.6.2-1) unstable; urgency=low |
+ |
+ * Initial release (Closes: #416137). |
+ |
+ -- Magnus Holmgren <magnus@kibibyte.se> Wed, 19 Sep 2007 18:09:31 +0200 |
+ |
Index: debian/pyscrabble.menu |
=================================================================== |
--- debian/pyscrabble.menu (nonexistent) |
+++ debian/pyscrabble.menu (revision 2) |
@@ -0,0 +1,8 @@ |
+?package(pyscrabble):\ |
+ needs="X11"\ |
+ section="Games/Board"\ |
+ title="PyScrabble"\ |
+ longtitle="A classic word game"\ |
+ command="/usr/games/pyscrabble"\ |
+ icon16x16="/usr/share/pixmaps/pyscrabble-16x16.xpm"\ |
+ icon32x32="/usr/share/pixmaps/pyscrabble-32x32.xpm" |
Index: debian/rules |
=================================================================== |
--- debian/rules (nonexistent) |
+++ debian/rules (revision 2) |
@@ -0,0 +1,95 @@ |
+#!/usr/bin/make -f |
+# -*- makefile -*- |
+# Sample debian/rules that uses debhelper. |
+# This file was originally written by Joey Hess and Craig Small. |
+# As a special exception, when this file is copied by dh-make into a |
+# dh-make output file, you may use that output file without restriction. |
+# This special exception was added by Craig Small in version 0.37 of dh-make. |
+ |
+# Uncomment this to turn on verbose mode. |
+#export DH_VERBOSE=1 |
+ |
+DESTDIR=$(CURDIR)/debian/tmp |
+ICON_SIZES=16 22 32 48 64 96 |
+PIXMAP_SIZES=16 32 |
+ |
+include /usr/share/dpatch/dpatch.make |
+ |
+clean: clean-patched unpatch |
+ dh_clean |
+ |
+clean-patched: |
+ dh_testdir |
+ dh_testroot |
+ rm -f build-stamp configure-stamp |
+ rm -f pyscrabble-*.png pyscrabble-*.xpm |
+ |
+ python setup.py clean -a |
+ find -name '*.pyc' -delete |
+ |
+build: $(DPATCH_STAMPFN) |
+ python setup.py build |
+ |
+ for size in $(ICON_SIZES); do \ |
+ rsvg -h $$size -w $$size debian/pyscrabble.svg pyscrabble-$$size.png; \ |
+ done |
+ for size in $(PIXMAP_SIZES); do \ |
+ convert pyscrabble-$$size.png pyscrabble-$${size}x$${size}.xpm; \ |
+ done |
+ |
+install: build |
+ dh_testdir |
+ dh_testroot |
+ dh_clean -k |
+ |
+ python setup.py install --no-compile --root=$(DESTDIR) \ |
+ --install-scripts=/usr/games \ |
+ --confdir=/etc/pyscrabble \ |
+ --logdir=/var/log/pyscrabble \ |
+ --dbdir=/var/lib/pyscrabble |
+ mv $(DESTDIR)/usr/games/pyscrabble-main.py $(DESTDIR)/usr/games/pyscrabble |
+ mv $(DESTDIR)/usr/games/server_console.py $(DESTDIR)/usr/games/pyscrabble-server |
+# rm $(DESTDIR)/usr/bin/db_upgrade.py |
+ install -m755 -d $(DESTDIR)/usr/share/pixmaps |
+ install -m644 pyscrabble-*.xpm $(DESTDIR)/usr/share/pixmaps |
+ install -m755 -d $(DESTDIR)/usr/share/icons/hicolor/scalable/apps |
+ gzip < debian/pyscrabble.svg > $(DESTDIR)/usr/share/icons/hicolor/scalable/apps/pyscrabble.svgz |
+ for size in $(ICON_SIZES); do \ |
+ install -m755 -d $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/apps; \ |
+ install -m644 pyscrabble-$$size.png \ |
+ $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/apps/pyscrabble.png; \ |
+ done |
+ install -d -m755 $(DESTDIR)/usr/share/applications/ |
+ install -m644 debian/pyscrabble.desktop $(DESTDIR)/usr/share/applications/ |
+ |
+ |
+ |
+# Build architecture-dependent files here. |
+binary-arch: |
+# We have nothing to do by default. |
+ |
+# Build architecture-independent files here. |
+binary-indep: build install |
+ dh_testdir |
+ dh_testroot |
+ dh_install --sourcedir=debian/tmp |
+ dh_link |
+ dh_pycentral |
+ dh_installchangelogs CHANGELOG.txt |
+ dh_installdocs |
+ dh_installexamples |
+ dh_installman |
+ dh_installinit |
+ dh_installmenu |
+ dh_desktop |
+ dh_strip |
+ dh_compress |
+ dh_fixperms |
+ dh_installdeb |
+ dh_shlibdeps |
+ dh_gencontrol |
+ dh_md5sums |
+ dh_builddeb |
+ |
+binary: binary-indep binary-arch |
+.PHONY: build clean binary-indep binary-arch binary install configure |
/debian/rules |
---|
Property changes: |
Added: svn:executable |
## -0,0 +1 ## |
+* |
\ No newline at end of property |
Index: debian/pyscrabble.install |
=================================================================== |
--- debian/pyscrabble.install (nonexistent) |
+++ debian/pyscrabble.install (revision 2) |
@@ -0,0 +1,10 @@ |
+usr/games/pyscrabble |
+usr/lib/python*/site-packages/pyscrabble/gui |
+usr/lib/python*/site-packages/pyscrabble/net/client.py |
+usr/lib/python*/site-packages/pyscrabble/gtk*.py |
+usr/share/icons |
+usr/share/pixmaps |
+usr/share/applications |
+usr/share/games/pyscrabble/sounds |
+usr/share/games/pyscrabble/images |
+usr/share/games/pyscrabble/locale |
Index: debian/pyscrabble-server.init |
=================================================================== |
--- debian/pyscrabble-server.init (nonexistent) |
+++ debian/pyscrabble-server.init (revision 2) |
@@ -0,0 +1,104 @@ |
+#!/bin/sh |
+### BEGIN INIT INFO |
+# Provides: pyscrabble |
+# Required-Start: $local_fs $remote_fs |
+# Required-Stop: $local_fs $remote_fs |
+# Default-Start: 2 3 4 5 |
+# Default-Stop: S 0 1 6 |
+# Short-Description: PyScrabble server |
+# Description: Controls the PyScrabble server |
+### END INIT INFO |
+# |
+# Author: Will Gray <graywh@gmail.com> |
+# Version: 1 |
+# |
+ |
+set -e |
+ |
+PATH=/sbin:/bin:/usr/bin |
+DESC="PyScrabble server" |
+NAME=python |
+NAME2=pyscrabble-server |
+DAEMON=/usr/games/pyscrabble-server |
+PIDFILE=/var/run/$NAME2.pid |
+SCRIPTNAME=/etc/init.d/$NAME2 |
+ |
+# Gracefully exit if the package has been removed. |
+test -x $DAEMON || exit 0 |
+ |
+USER="pyscrabble" |
+ |
+# Read config file if it is present. |
+if [ -r /etc/default/$NAME2 ] |
+then |
+ . /etc/default/$NAME2 |
+fi |
+ |
+# |
+# Function that starts the daemon/service. |
+# |
+d_start() { |
+ start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE \ |
+ --chuid "$USER" --exec $DAEMON \ |
+ || echo -n " already running" |
+} |
+ |
+# |
+# Function that stops the daemon/service. |
+# |
+d_stop() { |
+ start-stop-daemon --stop --quiet --pidfile $PIDFILE \ |
+ --name $NAME \ |
+ || echo -n " not running" |
+ rm -f $PIDFILE |
+} |
+ |
+case "$1" in |
+ start) |
+ echo -n "Starting $DESC: $NAME2" |
+ d_start |
+ echo "." |
+ ;; |
+ stop) |
+ echo -n "Stopping $DESC: $NAME2" |
+ d_stop |
+ echo "." |
+ ;; |
+ #reload) |
+ # |
+ # If the daemon can reload its configuration without |
+ # restarting (for example, when it is sent a SIGHUP), |
+ # then implement that here. |
+ # |
+ # If the daemon responds to changes in its config file |
+ # directly anyway, make this an "exit 0". |
+ # |
+ # echo -n "Reloading $DESC configuration..." |
+ # d_reload |
+ # echo "done." |
+ #;; |
+ restart|force-reload) |
+ # |
+ # If the "reload" option is implemented, move the "force-reload" |
+ # option to the "reload" entry above. If not, "force-reload" is |
+ # just the same as "restart". |
+ # |
+ echo -n "Restarting $DESC: $NAME2" |
+ d_stop |
+ # One second might not be time enough for a daemon to stop, |
+ # if this happens, d_start will fail (and dpkg will break if |
+ # the package is being upgraded). Change the timeout if needed |
+ # be, or change d_stop to have start-stop-daemon use --retry. |
+ # Notice that using --retry slows down the shutdown process somewhat. |
+ sleep 1 |
+ d_start |
+ echo "." |
+ ;; |
+ *) |
+ # echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 |
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 |
+ exit 1 |
+ ;; |
+esac |
+ |
+exit 0 |
Index: debian/pyscrabble.desktop |
=================================================================== |
--- debian/pyscrabble.desktop (nonexistent) |
+++ debian/pyscrabble.desktop (revision 2) |
@@ -0,0 +1,11 @@ |
+[Desktop Entry] |
+Version=1.0 |
+Name=PyScrabble |
+Comment=A classical game of words |
+Comment[de]=Ein klassisches Wörterspiel |
+Comment[sv]=Ett klassiskt ordspel |
+Exec=pyscrabble |
+Icon=pyscrabble |
+Terminal=false |
+Type=Application |
+Categories=Game;BoardGame;GTK; |
Index: debian/pyscrabble-server.install |
=================================================================== |
--- debian/pyscrabble-server.install (nonexistent) |
+++ debian/pyscrabble-server.install (revision 2) |
@@ -0,0 +1,9 @@ |
+usr/games/pyscrabble-server |
+usr/lib/python*/site-packages/pyscrabble/db.py |
+usr/lib/python*/site-packages/pyscrabble/net/server.py |
+usr/lib/python*/site-packages/pyscrabble/net/site.py |
+usr/lib/python*/site-packages/pyscrabble/net/interfaces.py |
+usr/share/games/pyscrabble/web |
+usr/share/games/pyscrabble/dict |
+usr/share/games/pyscrabble/letters |
+etc/pyscrabble |
Index: debian/watch |
=================================================================== |
--- debian/watch (nonexistent) |
+++ debian/watch (revision 2) |
@@ -0,0 +1,3 @@ |
+version=3 |
+ |
+http://sf.net/pyscrabble/pyscrabble-(.*)-src.zip debian uupdate |
Index: debian/pyscrabble-server.README.Debian |
=================================================================== |
--- debian/pyscrabble-server.README.Debian (nonexistent) |
+++ debian/pyscrabble-server.README.Debian (revision 2) |
@@ -0,0 +1,15 @@ |
+pyscrabble for Debian |
+--------------------- |
+ |
+The pyscrabble-server package installs the PyScrabble server as a |
+daemon along with a System V init script that runs the server under a |
+dedicated user account, created on installation. The original code is |
+modified so that instead of ~/.config/pyscrabble/, it reads the |
+configuration from files in /etc/pyscrabble/, stores the server |
+database in /var/lib/pyscrabble, and writes the log to |
+/var/log/pyscrabble/pyscrabble.log. |
+ |
+My assumption is that most users don't need or want to run their own |
+server. |
+ |
+ -- Magnus Holmgren <magnus@kibibyte.se>, Sun, 30 Sep 2007 20:42:01 +0200 |
Index: debian/copyright |
=================================================================== |
--- debian/copyright (nonexistent) |
+++ debian/copyright (revision 2) |
@@ -0,0 +1,32 @@ |
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on |
+2006-09-20. |
+ |
+It was downloaded from <http://pyscrabble.sourceforge.net/> |
+ |
+Upstream Author: Kevin Conaway <kevin.a.conaway@gmail.com> |
+ |
+Copyright: |
+ |
+ Copyright © 2005-2007 Kevin Conaway |
+ |
+License: |
+ |
+ This package is free software; you can redistribute it and/or modify |
+ it under the terms of the GNU General Public License as published by |
+ the Free Software Foundation; either version 2 of the License, or |
+ (at your option) any later version. |
+ |
+ This package is distributed in the hope that it will be useful, |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ GNU General Public License for more details. |
+ |
+ You should have received a copy of the GNU General Public License |
+ along with this package; if not, write to the Free Software |
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
+ |
+On Debian systems, the complete text of the GNU General |
+Public License can be found in `/usr/share/common-licenses/GPL'. |
+ |
+The Debian packaging is © 2007, Magnus Holmgren <magnus@kibibyte.se> and |
+is licensed under the GPL, see above. |
Index: debian/pyscrabble-server.postinst |
=================================================================== |
--- debian/pyscrabble-server.postinst (nonexistent) |
+++ debian/pyscrabble-server.postinst (revision 2) |
@@ -0,0 +1,12 @@ |
+#!/bin/sh |
+ |
+set -e |
+ |
+if [ "$1" = "configure" ]; then |
+ adduser --quiet --system --home /var/lib/pyscrabble --no-create-home \ |
+ --gecos "PyScrabble server" pyscrabble |
+ install -d -opyscrabble -m2750 /var/lib/pyscrabble |
+ install -d -opyscrabble -gadm -m2750 /var/log/pyscrabble |
+fi |
+ |
+#DEBHELPER# |
Index: debian/pyscrabble-server.postrm |
=================================================================== |
--- debian/pyscrabble-server.postrm (nonexistent) |
+++ debian/pyscrabble-server.postrm (revision 2) |
@@ -0,0 +1,13 @@ |
+#!/bin/sh |
+ |
+set -e |
+ |
+if [ "$1" = "purge" ]; then |
+ rm -rf /var/lib/pyscrabble |
+ rm -rf /var/log/pyscrabble |
+ if which deluser > /dev/null; then |
+ deluser --quiet --system pyscrabble |
+ fi |
+fi |
+ |
+#DEBHELPER# |
Index: debian/pyscrabble-server.default |
=================================================================== |
--- debian/pyscrabble-server.default (nonexistent) |
+++ debian/pyscrabble-server.default (revision 2) |
@@ -0,0 +1,8 @@ |
+# This file will be sourced by /etc/init.d/pyscrabble-server |
+ |
+# The user the server will run as. You'll have to make sure that the |
+# user exists yourself. |
+#USER=pyscrabble |
+ |
+# You can change the name of the PID file that the init script uses. |
+#PIDFILE=/var/run/pyscrabble-server.pid |
Index: debian |
=================================================================== |
--- debian (nonexistent) |
+++ debian (revision 2) |
/debian |
---|
Property changes: |
Added: mergeWithUpstream |
## -0,0 +1 ## |
+1 |
\ No newline at end of property |