Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:marec2000:cryptocoins:ports
c-lightning
c-lightning.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File c-lightning.spec of Package c-lightning
# # spec file for package c-lightning # # Copyright (c) 2024 SUSE LLC # # 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/ # # settings %define progname lightning %define progbase %{progname} %define display_name Lightning Network # set blockchain network %define bc_network bitcoin Name: c-lightning Version: 24.5.0 Release: 0 Summary: Lightning Network for P2P digital currency License: MIT Group: Productivity/Networking/Other URL: https://blockstream.com/%{progname}/ Source0: %{progname}-%{version}.tar.xz Patch0: %{name}-libexec.patch Patch1: %{name}-script.patch BuildRequires: automake BuildRequires: gmp-devel BuildRequires: jq BuildRequires: libsodium-devel BuildRequires: libtool BuildRequires: python3-Mako BuildRequires: python3-devel BuildRequires: python3-mrkd BuildRequires: python3-pytest %if 0%{?suse_version} && 0%{?suse_version} <= 1320 BuildRequires: shadow %endif BuildRequires: sqlite3-devel BuildRequires: zlib-devel %if ! %{defined _rundir} %define _rundir %{_localstatedir}/run %endif # set binary names %define daemon_name %{progbase}d %define cli_name %{progbase}-cli %define hsmtool_name %{progbase}-hsmtool %define reckless_name reckless # set package names %define daemon_packname %{name}d # set runtime parameters %define prog_confdirbase %{progbase} %define prog_rundirbase %{progbase} %define prog_statedirbase %{progbase} %define prog_confdir %{_sysconfdir}/%{prog_confdirbase} %define prog_logdir %{_localstatedir}/log/%{progbase} %define prog_rundir %{_rundir}/%{prog_rundirbase} %define prog_statedir %{_localstatedir}/lib/%{prog_statedirbase} %define prog_conffile %{prog_confdir}/%{progbase}.conf %define prog_logfile %{prog_logdir}/%{daemon_name}.log %define prog_pidfile %{prog_rundir}/%{daemon_name}.pid %define prog_user %{progbase} %define prog_group %{progbase} # set install parameters %define service_filename %{daemon_name}.service %define network_service_filename %{bc_network}d.service %define pkg_rundirconffile %{_tmpfilesdir}/%{progbase}_rundir.conf %if 0%{?suse_version} && 0%{?suse_version} >= 1500 %define pkg_bashcompdir %{_datadir}/bash-completion/completions %else %define pkg_bashcompdir %{_sysconfdir}/bash_completion.d %define pkg_bashcompsuffix .bash-completion %endif # set description %define description_text C-Lightning is a lightweight, highly customizable and standard compliant implementation of the Lightning Network Protocol. # set summary and description for utils package %define pkg_utils_description This package provides %{display_name} CLI and %{display_name} HSM-Tool. %description %{description_text} %package utils Summary: Utils for %{name} Group: Productivity/Networking/Other Provides: %{progname}-utils = %{version} %description utils %{description_text} %{pkg_utils_description} %package -n %{daemon_packname} Summary: Headless daemon for %{name} Group: Productivity/Networking/Other Requires: %{bc_network}-utils Requires: logrotate Recommends: %{bc_network}d Provides: %{progname}d = %{version} %{?systemd_requires} %description -n %{daemon_packname} %{description_text} This package provides %{daemon_name}, a headless %{display_name} daemon. %package doc Summary: Documentation for %{name} Group: Documentation/Man BuildArch: noarch Provides: %{progname}-doc = %{version} Recommends: %{daemon_packname} = %{version} %description doc %{description_text} This package contains the documentation for %{name}. %prep %setup -q -n %{progname}-%{version} %if 0%{?suse_version} && ( 0%{?suse_version} < 1500 || ( 0%{?is_opensuse} && 0%{?suse_version} == 1500 && 0%{?sle_version} && 0%{?sle_version} <= 150600 ) ) %patch0 %endif %patch1 # setup systemd service %{__sed} -i 's#^\# \$ systemctl edit lightningd.service$#\# $ systemctl edit %{service_filename}#g' contrib/init/%{service_filename} %{__sed} -i 's#^\# /etc/lightningd/lightningd.conf#\# %{prog_conffile}#g' contrib/init/%{service_filename} %{__sed} -i 's#^Description=Core Lightning daemon$#Description=%{display_name} Daemon#g' contrib/init/%{service_filename} %{__sed} -i 's#^Requires=bitcoind.service$#Requires=%{network_service_filename}#g' contrib/init/%{service_filename} %{__sed} -i 's#^After=bitcoind.service$#After=%{network_service_filename}#g' contrib/init/%{service_filename} %{__sed} -i 's#^PIDFile=/run/lightningd/lightningd.pid$#PIDFile=%{prog_pidfile}#g' contrib/init/%{service_filename} %{__sed} -i 's#^ExecStart=/usr/bin/lightningd --daemon --conf /etc/lightningd/lightningd.conf --pid-file=/run/lightningd/lightningd.pid$#ExecStart=%{_bindir}/%{daemon_name} --daemon --conf %{prog_conffile} --pid-file=%{prog_pidfile} --lightning-dir=%{prog_statedir}\nExecReload=/bin/kill -HUP \$MAINPID#g' contrib/init/%{service_filename} %{__sed} -i 's#^\# Creates /run/lightningd owned by bitcoin$#\# Creates %{prog_rundir} owned by %{prog_user}#g' contrib/init/%{service_filename} %{__sed} -i 's#^RuntimeDirectory=lightningd$#RuntimeDirectory=%{prog_rundirbase}#g' contrib/init/%{service_filename} %{__sed} -i 's#^\# Creates /etc/lightningd owned by bitcoin$#\# Creates %{prog_confdir} owned by %{prog_user}#g' contrib/init/%{service_filename} %{__sed} -i 's#^ConfigurationDirectory=lightningd$#ConfigurationDirectory=%{prog_confdirbase}#g' contrib/init/%{service_filename} %{__sed} -i 's#^User=bitcoin$#User=%{prog_user}#g' contrib/init/%{service_filename} %{__sed} -i 's#^Group=bitcoin$#Group=%{prog_group}#g' contrib/init/%{service_filename} # setup default config file echo -e "#\n# %{progbase}.conf\n#" > %{progbase}.conf echo -e "\n# general options" >> %{progbase}.conf echo "network=%{bc_network}" >> %{progbase}.conf echo -e "\n# daemon options" >> %{progbase}.conf echo "log-level=info" >> %{progbase}.conf echo "log-file=%{prog_logfile}" >> %{progbase}.conf echo "wallet=sqlite3://%{prog_statedir}/%{bc_network}/lightningd.sqlite3" >> %{progbase}.conf echo "#encrypted-hsm=" >> %{progbase}.conf echo -e "\n# node options" >> %{progbase}.conf echo "#fee-base=1000" >> %{progbase}.conf echo "#fee-per-satoshi=10" >> %{progbase}.conf echo "#min-capacity-sat=10000" >> %{progbase}.conf echo -e "\n# bitcoin control options" >> %{progbase}.conf echo "bitcoin-cli=%{_bindir}/%{bc_network}-cli" >> %{progbase}.conf echo "bitcoin-datadir=%{_localstatedir}/lib/%{bc_network}" >> %{progbase}.conf echo "#bitcoin-rpcuser=" >> %{progbase}.conf echo "#bitcoin-rpcpassword=" >> %{progbase}.conf echo "bitcoin-rpcconnect=localhost" >> %{progbase}.conf echo "bitcoin-rpcport=8332" >> %{progbase}.conf # generate logrotate configuration echo "%{prog_logfile} {" > %{progname}.logrotate echo " compress" >> %{progname}.logrotate echo " dateext" >> %{progname}.logrotate echo " daily" >> %{progname}.logrotate echo " rotate 90" >> %{progname}.logrotate echo " notifempty" >> %{progname}.logrotate echo " missingok" >> %{progname}.logrotate echo " su %{prog_user} %{prog_group}" >> %{progname}.logrotate echo " copytruncate" >> %{progname}.logrotate echo " create 640" >> %{progname}.logrotate echo "}" >> %{progname}.logrotate # setup run folder echo "d %{prog_rundir} 0710 root %{prog_group}" > rundir.conf %build ./configure --prefix=%{_prefix} --disable-static --disable-rust %{__make} %install %make_install %{__strip} -sp %{buildroot}%{_bindir}/%{daemon_name} %{__strip} -sp %{buildroot}%{_bindir}/%{cli_name} %{__strip} -sp %{buildroot}%{_bindir}/%{hsmtool_name} %{__strip} -sp %{buildroot}%{_libexecdir}/%{name}/%{progbase}_* %{__strip} -sp %{buildroot}%{_libexecdir}/%{name}/plugins/[a-b,d-v,x-z]* %{__strip} -sp %{buildroot}%{_libexecdir}/%{name}/plugins/c[a-k,m-z]* %{__strip} -sp %{buildroot}%{_libexecdir}/%{name}/plugins/cln-* # install daemon supplementary files %{__install} -D -m 0644 -p %{progbase}.conf %{buildroot}%{prog_conffile} %{__install} -D -m 0644 -p contrib/init/%{service_filename} %{buildroot}%{_unitdir}/%{service_filename} %{__install} -D -m 0644 -p contrib/%{cli_name}.bash-completion %{buildroot}%{pkg_bashcompdir}/%{cli_name}%{?pkg_bashcompsuffix} %{__install} -d -m 0710 %{buildroot}%{prog_logdir} %{__install} -D -m 0644 -p %{progname}.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{daemon_packname} %{__install} -d -m 0710 %{buildroot}%{prog_statedir} %{__install} -d -m 0755 %{buildroot}%{_sbindir} %{__ln_s} %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{daemon_name} # install run folder configuration %{__install} -D -m 0644 -p rundir.conf %{buildroot}/%{pkg_rundirconffile} # eliminate installed docs %{__rm} -fr %{buildroot}%{_datadir}/doc # eliminate other rubbish %{__rm} -fr %{buildroot}%{_libexecdir}/%{name}/plugins/clnrest/.github %{__rm} -f %{buildroot}%{_libexecdir}/%{name}/plugins/clnrest/Makefile %{__rm} -f %{buildroot}%{_libexecdir}/%{name}/plugins/wss-proxy/Makefile # no rpath check on arm architectures %ifarch %arm export NO_BRP_CHECK_RPATH=true %endif # %%check # %%{__make} %{?_smp_mflags} check %pre -n %{daemon_packname} getent group %{prog_group} > /dev/null || groupadd -r %{prog_group} getent passwd %{prog_user} > /dev/null || useradd -r -g %{prog_group} -d %{prog_statedir} -s /sbin/nologin -c "%{progbase} daemon" %{prog_user} %service_add_pre %{service_filename} %preun -n %{daemon_packname} %service_del_preun %{service_filename} %post -n %{daemon_packname} %service_add_post %{service_filename} %if 0%{?suse_version} && ( 0%{?suse_version} > 1320 || ( 0%{?is_opensuse} && 0%{?suse_version} == 1315 && 0%{?sle_version} && 0%{?sle_version} >= 120100 ) ) %tmpfiles_create %{pkg_rundirconffile} %else systemd-tmpfiles --create %{pkg_rundirconffile} >/dev/null 2>&1 || : %endif %postun -n %{daemon_packname} %service_del_postun %{service_filename} %files utils %defattr(-,root,root,-) %attr(755,root,root) %{_bindir}/%{cli_name} %attr(755,root,root) %{_bindir}/%{hsmtool_name} %attr(755,root,root) %{_bindir}/%{reckless_name} %{pkg_bashcompdir}/%{cli_name}%{?pkg_bashcompsuffix} %{_mandir}/man1/%{cli_name}.1%{?ext_man} %{_mandir}/man7/%{reckless_name}.7%{?ext_man} %{_mandir}/man8/%{hsmtool_name}.8%{?ext_man} %files -n %{daemon_packname} %defattr(-,root,root,-) %attr(755,root,root) %{_bindir}/%{daemon_name} %{_sbindir}/rc%{daemon_name} %{_unitdir}/%{service_filename} %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/* %dir %attr(710,root,%{prog_group}) %{prog_confdir} %config(noreplace) %attr(640,root,%{prog_group}) %{prog_conffile} %dir %attr(700,%{prog_user},%{prog_group}) %{prog_logdir} %config(noreplace) %{_sysconfdir}/logrotate.d/%{daemon_packname} %dir %attr(710,%{prog_user},%{prog_group}) %{prog_statedir} %ghost %{prog_rundir} %if 0%{?suse_version} && ( 0%{?suse_version} <= 1310 || 0%{?suse_version} == 1320 || ( 0%{?is_opensuse} && 0%{?suse_version} == 1315 && 0%{?sle_version} && 0%{?sle_version} == 120100 ) ) %dir %{_tmpfilesdir} %endif %{pkg_rundirconffile} %{_mandir}/man5/*.5%{?ext_man} %{_mandir}/man7/%{daemon_name}-*.7%{?ext_man} %{_mandir}/man7/%{progbase}-*.7%{?ext_man} %{_mandir}/man8/%{daemon_name}.8%{?ext_man} %files doc %defattr(-,root,root,-) %doc CHANGELOG.md SECURITY.md README.md %license LICENSE %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor