Пакет puppetdb: Specfile

%define _unpackaged_files_terminate_build 1

%def_disable initd
%def_enable doc
%def_enable devel
%def_disable check

Name:          puppetdb
Version:       8.4.1
Release:       alt2
Summary:       Centralized Puppet Storage
License:       Apache-2.0
Group:         Other
Url:           https://docs.puppetlabs.com/puppetdb
Vcs:           https://github.com/puppetlabs/puppetdb.git

BuildArch:     noarch
Source:        %name-%version.tar
Source1:       %name.jar
Source3:       %name.init
Source4:       %name.watch
Source5:       %name.service
Source6:       %name.sysconfig
Autoprov:      yes,nopython,nopython3
Autoreq:       yes,nopython,nopython3
Patch:         %name-%version-%release.patch

BuildRequires(pre): /proc rpm-build-java
BuildRequires(pre): rpm-build-ruby
BuildRequires(pre): rpm-build-pyproject
BuildRequires: java-17-openjdk-devel
BuildRequires: leiningen
BuildRequires: clojure
BuildRequires: python3(wheel)
%if_enabled check
BuildRequires: python3(pytest)
BuildRequires: gem(facter) >= 0
BuildRequires: gem(rake) >= 0
BuildRequires: gem(packaging) >= 0.99
BuildRequires: gem(test-unit) >= 0
BuildRequires: gem(rspec) >= 0
BuildRequires: gem(puppetlabs_spec_helper) = 0.10.3
BuildRequires: gem(puppet) >= 0
BuildRequires: gem(puppet-pson) >= 1.1
BuildRequires: gem(mocha) >= 1.0
BuildRequires: gem(httparty) >= 0
BuildRequires: gem(beaker) >= 4.1
BuildRequires: gem(beaker-hostgenerator) >= 2.2.3
BuildRequires: gem(beaker-abs) >= 0.2
BuildRequires: gem(beaker-vmpooler) >= 1.3
BuildRequires: gem(beaker-puppet) >= 1.0
BuildRequires: gem(faraday) >= 1.8.0
BuildRequires: gem(json) >= 0
BuildRequires: gem(puppet) >= 3.8.1
BuildConflicts: gem(packaging) >= 1
BuildConflicts: gem(puppet-pson) >= 2
BuildConflicts: gem(mocha) >= 2
BuildConflicts: gem(beaker) >= 5
BuildConflicts: gem(beaker-hostgenerator) >= 2.3
BuildConflicts: gem(beaker-abs) >= 1
BuildConflicts: gem(beaker-vmpooler) >= 2
BuildConflicts: gem(beaker-puppet) >= 2
BuildConflicts: gem(faraday) >= 3
BuildConflicts: gem(puppet) >= 9.0
%endif

%add_findreq_skiplist %ruby_gemslibdir/**/*
%add_findprov_skiplist %ruby_gemslibdir/**/*
%ruby_use_gem_dependency faraday >= 2.6.0,faraday < 3
Requires:      puppet
Requires:      postgresql
Requires:      clojure
Requires:      gem(puppetdb-terminus)


%description
PuppetDB is the fast, scalable, and reliable data warehouse for Puppet. It
caches data generated by Puppet, and gives you advanced features at awesome
speed with a powerful API.


%package       -n gem-puppetdb-terminus
Version:       3.0.0
Release:       alt2
Summary:       Connect Puppet to PuppetDB by setting up a terminus for PuppetDB
Group:         Development/Ruby
BuildArch:     noarch

Requires:      gem(json) >= 0
Requires:      gem(puppet) >= 3.8.1
Conflicts:     gem(puppet) >= 9.0
Provides:      gem(puppetdb-terminus) = 3.0.0

%description   -n gem-puppetdb-terminus
Puppet terminus files to connect to PuppetDB


%if_enabled    doc
%package       -n puppetdb-terminus-doc
Version:       3.0.0
Release:       alt2
Summary:       Connect Puppet to PuppetDB by setting up a terminus for PuppetDB documentation files
Summary(ru_RU.UTF-8): Файлы сведений для самоцвета puppetdb-terminus
Group:         Development/Documentation
BuildArch:     noarch

Requires:      gem(puppetdb-terminus) = 3.0.0

%description   -n puppetdb-terminus-doc
Connect Puppet to PuppetDB by setting up a terminus for PuppetDB documentation
files.

Puppet terminus files to connect to PuppetDB
%description   -n puppetdb-terminus-doc -l ru_RU.UTF-8
Файлы сведений для самоцвета puppetdb-terminus.
%endif


%if_enabled    devel
%package       -n puppetdb-terminus-devel
Version:       3.0.0
Release:       alt2
Summary:       Connect Puppet to PuppetDB by setting up a terminus for PuppetDB development package
Summary(ru_RU.UTF-8): Файлы для разработки самоцвета puppetdb-terminus
Group:         Development/Ruby
BuildArch:     noarch

Requires:      gem(puppetdb-terminus) = 3.0.0

%description   -n puppetdb-terminus-devel
Connect Puppet to PuppetDB by setting up a terminus for PuppetDB development
package.

Puppet terminus files to connect to PuppetDB
%description   -n puppetdb-terminus-devel -l ru_RU.UTF-8
Файлы для разработки самоцвета puppetdb-terminus.
%endif


%prep
%setup
%autopatch -p1

%build
NO_ACCEPTANCE=true %ruby_build
#lein uberjar

%install
NO_ACCEPTANCE=true %ruby_install
install -D %SOURCE1 %buildroot%_javadir/%name/%name.jar
install -D -m 644 %SOURCE5 %buildroot%_unitdir/%name.service

%if_enabled initd
install -D %SOURCE3 %buildroot%_initdir/%name
install -D ext/puppetdb.tmpfiles.conf %buildroot%_tmpfilesdir/puppetdb.tmpfiles.conf
mkdir -p %buildroot%_runtimedir/%name
cp ext/puppetdb.logrotate.conf %buildroot%_sysconfdir/logrotate.d/puppetdb
%endif

mkdir -p %buildroot%_sysconfdir/logrotate.d %buildroot%ruby_vendorlibdir/

install -D %SOURCE6 %buildroot%_sysconfdir/sysconfig/%name

install -Dm 0755 pdb %buildroot%_bindir/pdb

install -d -m 0755 %buildroot%_sysconfdir/%name/conf.d
install -d -m 0755 %buildroot%_javadir/%name/cli
install -d -m 0755 %buildroot%_javadir/%name/cli/apps
install -d -m 0755 %buildroot%_logdir/%name
install -d -m 0755 %buildroot%_localstatedir/%name
ln -svr %buildroot%_libexecdir/%name/.m2 %buildroot%_localstatedir/%name/.m2

install resources/ext/ezbake.conf %buildroot%_sysconfdir/%name/ezbake.conf
install resources/ext/config/conf.d/auth.conf %buildroot%_sysconfdir/%name/conf.d/auth.conf
install resources/ext/config/conf.d/jetty.ini %buildroot%_sysconfdir/%name/conf.d/jetty.ini
install resources/ext/config/conf.d/config.ini %buildroot%_sysconfdir/%name/conf.d/config.ini
install resources/ext/config/conf.d/repl.ini %buildroot%_sysconfdir/%name/conf.d/repl.ini
install resources/ext/config/conf.d/database.ini %buildroot%_sysconfdir/%name/conf.d/database.ini
install resources/ext/config/request-logging.xml %buildroot%_sysconfdir/%name/request-logging.xml
install resources/ext/config/bootstrap.cfg %buildroot%_sysconfdir/%name/bootstrap.cfg
install resources/ext/config/logback.xml %buildroot%_sysconfdir/%name/logback.xml

install -m 0755 resources/ext/cli/anonymize %buildroot%_javadir/%name/cli/apps/anonymize
install -m 0755 resources/ext/cli/config-migration %buildroot%_javadir/%name/cli/apps/config-migration
install -m 0755 resources/ext/cli/upgrade %buildroot%_javadir/%name/cli/apps/upgrade
#ruby -rerb -e 'File.open("resources/ext/cli/ssl-setup.erb", "w") { |f| f.puts ERB.new(IO.read("%buildroot%_javadir/%name/cli/apps/ssl-setup")).result }'
#ruby -rerb -e 'File.open("resources/ext/cli/delete-reports.erb", "w") { |f| f.puts ERB.new(IO.read("%buildroot%_javadir/%name/cli/apps/delete-reports")).result }'
cp -pr .m2 %buildroot%_libexecdir/%name/

%check
%ruby_test

%pre
getent group _puppetdb > /dev/null || groupadd -r _puppetdb || :
getent passwd _puppetdb >/dev/null || \
   useradd -r --gid _puppetdb --home %_localstatedir/%name --shell $(which nologin) \
   --comment "puppetdb daemon"  _puppetdb || :

%post
%post_service %name

%preun
%preun_service %name

%files
%_javadir/%name/*
%_libexecdir/%name
%_unitdir/%name.service
%dir %_sysconfdir/%name
%attr(0770,_puppetdb,_puppetdb) %_localstatedir/%name
%if_enabled initd
%_initdir/%name
%_tmpfilesdir/puppetdb.tmpfiles.conf
%_sysconfdir/logrotate.d/%name
%doc ext/docs/%name/*
%endif
%dir %_javadir/%name
%dir %attr(0770,_puppetdb,_puppetdb) %_logdir/%name
%dir %_sysconfdir/%name/conf.d
%dir %_sysconfdir/%name/ezbake.conf
%dir %_sysconfdir/%name/image_templates/ec2.yaml
%dir %_javadir/%name/cli
%dir %_javadir/%name/cli/apps
%_javadir/%name/cli/apps/*
%_bindir/pdb

%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/sysconfig/%name
%config(noreplace) %attr(0770,_puppetdb,_puppetdb) %_sysconfdir/%name/image_templates
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/image_templates/ec2.yaml
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/request-logging.xml
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/conf.d/auth.conf
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/conf.d/jetty.ini
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/conf.d/config.ini
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/conf.d/repl.ini
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/conf.d/database.ini
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/bootstrap.cfg
%config(noreplace) %attr(0660,_puppetdb,_puppetdb) %_sysconfdir/%name/logback.xml


%files         -n gem-puppetdb-terminus
%doc README.md
%ruby_gemspecdir/puppetdb-terminus-3.0.0.gemspec
%ruby_gemslibdir/puppetdb-terminus-3.0.0

%if_enabled    doc
%files         -n puppetdb-terminus-doc
%doc README.md
%ruby_gemsdocdir/puppetdb-terminus-3.0.0
%endif

%if_enabled    devel
%files         -n puppetdb-terminus-devel
%doc README.md
%endif


%changelog
* Tue Mar 19 2024 Pavel Skrylev <majioa@altlinux.org> 8.4.1-alt2
- + added prebuild bundle clojes
- ! fixed spec minorly

* Fri Mar 15 2024 Pavel Skrylev <majioa@altlinux.org> 8.4.1-alt1
- ^ 7.12.0 -> 8.4.1

* Mon Dec 26 2022 Andrey Cherepanov <cas@altlinux.org> 7.12.0-alt1
- New version 7.12.0.
- Add %%post_service and %%preun_service call.

* Thu Nov 24 2022 Pavel Skrylev <majioa@altlinux.org> 6.13.0-alt2.1
- ! ruby script folder to proper ones from site to vendor

* Mon Sep 13 2021 Danil Shein <dshein@altlinux.org> 6.13.0-alt2
- fix build errors

* Mon Oct 26 2020 Aleksei Nikiforov <darktemplar@altlinux.org> 6.13.0-alt1
- Updated to upstream version 6.13.0 (Fixes: CVE-2020-7943).

* Sat Jul 06 2019 Igor Vlasenko <viy@altlinux.ru> 6.2.0-alt3
- NMU: remove rpm-build-ubt from BR:

* Mon Jul 01 2019 Andrey Bychkov <mrdrew@altlinux.org> 6.2.0-alt2
- fix path to puppetdb.conf

* Wed Mar 06 2019 Andrey Bychkov <mrdrew@altlinux.org> 6.2.0-alt1
- Version updated to 6.2.0

* Thu Dec 27 2018 Andrey Bychkov <mrdrew@altlinux.org> 6.1.0-alt1
- Version updated to 6.1.0

* Fri Nov 09 2018 Andrey Bychkov <mrdrew@altlinux.org> 6.0.1-alt1
- Update version to 6.0.1

* Mon Sep 03 2018 Andrey Cherepanov <cas@altlinux.org> 5.2.4-alt1.S1.1
- Rebuild for new Ruby autorequirements.

* Tue Jul 31 2018 Andrey Bychkov <mrdrew@altlinux.org> 5.2.4-alt1%ubt
- Update version to 5.2.4

* Mon May 28 2018 Maxim Voronov <mvoronov@altlinux.org> 5.2.2-alt2%ubt
- Use ubt macro

* Fri May 18 2018 Maxim Voronov <mvoronov@altlinux.org> 5.2.2-alt1
- Update to 5.2.2

* Wed Dec 27 2017 Mikhail Gordeev <obirvalger@altlinux.org> 5.1.3-alt1
- Update to 5.1.3 and fully repack

* Wed Nov 29 2017 Mikhail Gordeev <obirvalger@altlinux.org> 4.4.0-alt2
- Currently does not support start option because of puppetserver needed

* Tue Sep 05 2017 Andrey Cherepanov <cas@altlinux.org> 4.4.0-alt1.1
- Rebuild with Ruby 2.4.1

* Mon May 22 2017 Gordeev Mikhail <obirvalger@altlinux.org> 4.4.0-alt1
- Initial build in Sisyphus