forked from perl/perl-Gedcom
149 lines
6.2 KiB
RPMSpec
149 lines
6.2 KiB
RPMSpec
#
|
|
# spec file for package perl-Gedcom
|
|
#
|
|
# Copyright (c) 2025 SUSE LLC and contributors
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define cpan_name Gedcom
|
|
Name: perl-Gedcom
|
|
Version: 1.220.0
|
|
Release: 0
|
|
# 1.22 -> normalize -> 1.220.0
|
|
%define cpan_version 1.22
|
|
License: SUSE-Public-Domain
|
|
Summary: Interface to genealogy GEDCOM files
|
|
URL: https://metacpan.org/release/%{cpan_name}
|
|
Source0: https://cpan.metacpan.org/authors/id/P/PJ/PJCJ/%{cpan_name}-%{cpan_version}.tar.gz
|
|
Source1: cpanspec.yml
|
|
Source100: README.md
|
|
BuildArch: noarch
|
|
BuildRequires: perl
|
|
BuildRequires: perl-macros
|
|
BuildRequires: perl(Pod::Markdown)
|
|
BuildRequires: perl(Test::Pod)
|
|
BuildRequires: perl(Text::Soundex)
|
|
Requires: perl(Text::Soundex)
|
|
Provides: perl(Gedcom) = %{version}
|
|
Provides: perl(Gedcom::CGI) = %{version}
|
|
Provides: perl(Gedcom::Comparison) = %{version}
|
|
Provides: perl(Gedcom::Event) = %{version}
|
|
Provides: perl(Gedcom::Family) = %{version}
|
|
Provides: perl(Gedcom::Grammar) = %{version}
|
|
Provides: perl(Gedcom::Grammar_5_5) = %{version}
|
|
Provides: perl(Gedcom::Grammar_5_5_1) = %{version}
|
|
Provides: perl(Gedcom::Individual) = %{version}
|
|
Provides: perl(Gedcom::Item) = %{version}
|
|
Provides: perl(Gedcom::LifeLines) = %{version}
|
|
Provides: perl(Gedcom::Record) = %{version}
|
|
Provides: perl(Gedcom::WebServices)
|
|
%undefine __perllib_provides
|
|
Recommends: perl(Date::Manip)
|
|
Recommends: perl(Parse::RecDescent)
|
|
Recommends: perl(Roman)
|
|
%{perl_requires}
|
|
|
|
%description
|
|
This module provides for manipulation of GEDCOM files. GEDCOM is a format
|
|
for storing genealogical information designed by The Church of Jesus Christ
|
|
of Latter-Day Saints (http://www.lds.org). Information about GEDCOM used to
|
|
be available as a zip file at
|
|
ftp://gedcom.org/pub/genealogy/gedcom/gedcom55.zip. That may still be the
|
|
case, but it seems to be password protected now. However, the document in
|
|
that archive seems to be available in a somewhat more accessible format at
|
|
https://chronoplexsoftware.com/gedcomvalidator/gedcom/gedcom-5.5.pdf.
|
|
|
|
Requirements:
|
|
|
|
Perl 5.005 or later
|
|
ActivePerl5 Build Number 520 or later has been reported to work
|
|
|
|
Optional Modules:
|
|
|
|
Date::Manip.pm to work with dates
|
|
Text::Soundex.pm to use soundex
|
|
Parse::RecDescent.pm to use lines2perl
|
|
Roman.pm to use the LifeLines function roman from lines2perl
|
|
|
|
The GEDCOM format is specified in a grammar file (gedcom-5.5.grammar).
|
|
Gedcom.pm parses the grammar which is then used to validate and allow
|
|
manipulation of the GEDCOM file. I have only used Gedcom.pm with versions
|
|
5.5 and 5.5.1 of the GEDCOM grammar, which I had to modify slightly to
|
|
correct a few errors. The advantage of this approach is that Gedcom.pm
|
|
should be useful if the GEDCOM grammar is ever updated. It also made the
|
|
software easier to write, and probably more dependable too. I suppose this
|
|
is the virtue of laziness shining through.
|
|
|
|
The vice of laziness is also shining brightly - I need to document how to
|
|
use this module in much greater detail. This is happening - this release
|
|
has more documentation than the previous ones - but if you would like
|
|
information feel free to send me mail or better still, ask on the mailing
|
|
list.
|
|
|
|
This module provides some functions which work over the entire GEDCOM file,
|
|
such as reformatting dates, renumbering entries and ordering the entries.
|
|
It also allows access to individuals, and then to relations of individuals,
|
|
for example sons, siblings, spouse, parents and so forth.
|
|
|
|
The distribution includes a lines2perl program to convert LifeLines
|
|
programs to Perl. The program works, but it has a few rough edges, and some
|
|
missing functionality. I'll be working on it when it hits the top of my
|
|
TODO list.
|
|
|
|
There is now an option for read only access to the GEDCOM file. Actually,
|
|
this doesn't stop you changing or writing the file, but it does parse the
|
|
GEDCOM file lazily, meaning that only those portions of the GEDCOM file
|
|
which are needed will be read. This can provide a substantial saving of
|
|
time and memory providing that not too much of the GEDCOM file is read. If
|
|
you are going to read the whole GEDCOM file, this mode is less efficient
|
|
unless you do some manual housekeeping.
|
|
|
|
Should you find this software useful, or if you make changes to it, or if
|
|
you would like me to make changes to it, please send me mail. I would like
|
|
to have some sort of an idea of the use this software is getting. Apart
|
|
from being of interest to me, this will guide my decisions when I feel the
|
|
need to make changes to the interface.
|
|
|
|
There is a low volume mailing list available for discussing the use of Perl
|
|
in conjunction with genealogical work. This is an appropriate forum for
|
|
discussing Gedcom.pm and if you use or are interested in this module I
|
|
would encourage you to join the list. To subscribe send an empty message to
|
|
perl-gedcom-subscribe@perl.org.
|
|
|
|
To store my genealogy I wrote a syntax file (gedcom.vim) and used vim
|
|
(http://www.vim.org) to enter the data, and Gedcom.pm to validate and
|
|
manipulate it. I find this to be a nice solution.
|
|
|
|
%prep
|
|
%autosetup -n %{cpan_name}-%{cpan_version} -p1
|
|
|
|
find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644
|
|
|
|
%build
|
|
perl Makefile.PL INSTALLDIRS=vendor
|
|
%make_build
|
|
|
|
%check
|
|
make test
|
|
|
|
%install
|
|
%perl_make_install
|
|
%perl_process_packlist
|
|
%perl_gen_filelist
|
|
|
|
%files -f %{name}.files
|
|
%doc CHANGES ged gedcom-5.5.1.grammar gedcom-5.5.grammar gedcom-5.5-strict.grammar gedcom_compare gedcom.vim lines2perl parse_grammar README.md royal.ged tkged TODO
|
|
|
|
%changelog
|