This is an automated email from the git hooks/post-receive script. smcv pushed a commit to branch master in repository game-data-packager.
commit ce8f270106c533e0cffacf523bd3908b435db9d5 Author: Alexandre Detiste <[email protected]> Date: Thu Feb 12 17:18:53 2015 +0100 add debian/copyright generator --- Makefile | 2 ++ data/rott.yaml | 2 ++ doc/adding_a_game.mdwn | 9 +++++++++ game_data_packager/__init__.py | 32 ++++++++++++++++++++++++++++---- game_data_packager/make_template.py | 2 ++ 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 1c4a493..2ee4018 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,7 @@ default: $(DIRS) gzip -nc9 debian/changelog > ./out/changelog.gz chmod 0644 ./out/changelog.gz for f in data/*.yaml data/*.control.in data/*.copyright \ + data/copyright \ data/*.copyright.in data/*.desktop.in \ data/*.preinst.in data/*.README.Debian.in; do \ if [ -L $$f ]; then \ @@ -35,6 +36,7 @@ $(DIRS): clean: rm -f ./out/changelog.gz + rm -f ./out/copyright rm -f ./out/game-data-packager rm -f ./out/foo ./out/bar ./out/baz rm -f ./out/*.control diff --git a/data/rott.yaml b/data/rott.yaml index 0c6a0dc..c982c19 100644 --- a/data/rott.yaml +++ b/data/rott.yaml @@ -28,6 +28,7 @@ packages: - HUNTBGIN.RTL - HUNTBGIN.WAD - REMOTE1.RTS + optional: - VENDOR.DOC rott-registered-data: @@ -40,6 +41,7 @@ packages: - any_registered_rtc - DARKWAR.RTL - DARKWAR.WAD + optional: - LICENSE.TXT rott-extreme-data: diff --git a/doc/adding_a_game.mdwn b/doc/adding_a_game.mdwn index 457d049..40756b5 100644 --- a/doc/adding_a_game.mdwn +++ b/doc/adding_a_game.mdwn @@ -15,6 +15,8 @@ which should get you easily started. * `shortname`: string: the short name of the game, such as `quake3`. * `longname`: string: the "marketing name" of the game, such as Quake III Arena. +* `copyright`: string: © <year_of_first_release> <developper/publisher> + This should match the title screen of the game, if any. * `compress_deb`: boolean, default true: If false, the `.deb` will never be compressed. Use this if it contains non-compressible files (e.g. `*.pk3` which are zip files) for which `xz` will waste a lot of time and @@ -82,6 +84,7 @@ to mapping: * `longname`: string: the "marketing name" of the game or expansion in this package, if it differs from the top-level `longname` +* `copyright`: string: the copyright string, if it differs from top-level * `demo_for`: this reference the full game included in same YAML file `expansion_for`: this reference the matching full game included in the same YAML file. @@ -107,6 +110,12 @@ section of a binary package For new games in `game-data-packager` these are normally `data/*.control.in` and `data/*.copyright`. +`game-data-packager` will automatically build the copyright file +using the contents of the `copyright:` tags in the yaml file; +you only need to provide one if the default generated +copyright file isn't suitable; see for example +`data/descent1-demo-data.copyright`. + `game-data-packager` will automatically provide the control file with default values if missing. It will also ensure that all the field required by policy are present: diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py index 8c6863e..088681e 100644 --- a/game_data_packager/__init__.py +++ b/game_data_packager/__init__.py @@ -1521,10 +1521,10 @@ class GameData(object): return complete def fill_docs(self, package, docdir): + copy_to = os.path.join(docdir, 'copyright') for n in (package.name, self.shortname): copy_from = os.path.join(DATADIR, n + '.copyright') - copy_to = os.path.join(docdir, 'copyright') - + continue if os.path.exists(copy_from): shutil.copyfile(copy_from, copy_to) return @@ -1536,8 +1536,32 @@ class GameData(object): PACKAGE=package.name) return - raise AssertionError('should have found a copyright file for %s' % - package.name) + copy_from = os.path.join(DATADIR, 'copyright') + with open(copy_from, encoding='utf-8') as i, \ + open(copy_to, 'w', encoding='utf-8') as o: + o.write('The package %s was generated using ' + 'game-data-packager.\n\n' % package.name) + o.write('The files under "%s"\n' % package.install_to) + for f in package.install | package.optional: + if self.file_status[f] is FillResult.IMPOSSIBLE: + continue + install_to = self.files[f].install_to + if install_to and install_to.startswith('$docdir'): + o.write('and "/usr/share/doc/%s/"' % package.name) + o.write(' (except for this copyright file)\n') + break + o.write('are user-supplied files with copyright\n') + o.write(package.copyright or self.copyright) + o.write(', with all rights reserved.\n') + # this may either be a real file or a symlink (rott-extreme-data) + # + #The full license appears in /usr/share/doc/PACKAGE/<somefile>, + #/usr/share/doc/PACKAGE/<some-other-file> + for line in i.readlines(): + if line.startswith('#'): + continue + o.write(line) + def fill_extra_files(self, package, destdir): pass diff --git a/game_data_packager/make_template.py b/game_data_packager/make_template.py index 614278e..11523d2 100644 --- a/game_data_packager/make_template.py +++ b/game_data_packager/make_template.py @@ -126,6 +126,7 @@ def do_one_dir(destdir,lower): print('---') if longname: print('longname: %s\n' % longname) + print('copyright: © 1970 FIXME') if destdir.startswith('/usr/local') or destdir.startswith('/opt/'): print('try_repack_from:\n- %s\n' % destdir) yaml.safe_dump(data, stream=sys.stdout, default_flow_style=False) @@ -257,6 +258,7 @@ def do_one_deb(deb): print('# data/%s.yaml' % control['package']) print('%YAML 1.2') print('---') + print('copyright: © 1970 FIXME') yaml.safe_dump(data, stream=sys.stdout, default_flow_style=False) for alg, files in sorted(sums.items()): -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

